From 8685c4450012da3326bc8c7a80447c67c291b4e8 Mon Sep 17 00:00:00 2001 From: pschott Date: Mon, 23 Oct 2023 11:18:42 +0100 Subject: [PATCH] Combine multiple lat/longs onto same map (#13) * Combine multiple lat/longs onto same map --------- Co-authored-by: Patricia Schott --- dist/css/styles.css | 2 +- dist/images/hero-image.png | Bin 17631 -> 0 bytes dist/images/marker-icon-s.png | Bin 0 -> 1038 bytes dist/images/w3w.loc.png | Bin 0 -> 8187 bytes dist/images/w3w.png | Bin 0 -> 5484 bytes dist/images/w3w_Symbol_RGB_WhiteRed.png | Bin 5426 -> 0 bytes dist/js/experian-address-validation.js | 4 +- dist/lib/address-search.d.ts | 1 - dist/lib/address-search.js | 1243 ----------------------- dist/lib/address-search.js.map | 1 - dist/lib/class-types.js | 44 - dist/lib/class-types.js.map | 1 - dist/lib/datasets-codes.js | 462 --------- dist/lib/datasets-codes.js.map | 1 - dist/lib/event-factory.js | 42 - dist/lib/event-factory.js.map | 1 - dist/lib/index.js | 3 - dist/lib/index.js.map | 1 - dist/lib/request.js | 50 - dist/lib/request.js.map | 1 - dist/lib/search-options.js | 27 - dist/lib/search-options.js.map | 1 - dist/lib/translations.js | 18 - dist/lib/translations.js.map | 1 - index.html | 81 +- src/images/marker-icon-s.png | Bin 0 -> 1038 bytes src/images/w3w.loc.png | Bin 0 -> 8187 bytes src/images/w3w.png | Bin 0 -> 5484 bytes src/images/w3w_Symbol_RGB_WhiteRed.png | Bin 5426 -> 0 bytes src/ts/address-search.ts | 8 +- 30 files changed, 62 insertions(+), 1931 deletions(-) delete mode 100644 dist/images/hero-image.png create mode 100644 dist/images/marker-icon-s.png create mode 100644 dist/images/w3w.loc.png create mode 100644 dist/images/w3w.png delete mode 100644 dist/images/w3w_Symbol_RGB_WhiteRed.png delete mode 100644 dist/lib/address-search.js delete mode 100644 dist/lib/address-search.js.map delete mode 100644 dist/lib/class-types.js delete mode 100644 dist/lib/class-types.js.map delete mode 100644 dist/lib/datasets-codes.js delete mode 100644 dist/lib/datasets-codes.js.map delete mode 100644 dist/lib/event-factory.js delete mode 100644 dist/lib/event-factory.js.map delete mode 100644 dist/lib/index.js delete mode 100644 dist/lib/index.js.map delete mode 100644 dist/lib/request.js delete mode 100644 dist/lib/request.js.map delete mode 100644 dist/lib/search-options.js delete mode 100644 dist/lib/search-options.js.map delete mode 100644 dist/lib/translations.js delete mode 100644 dist/lib/translations.js.map create mode 100644 src/images/marker-icon-s.png create mode 100644 src/images/w3w.loc.png create mode 100644 src/images/w3w.png delete mode 100644 src/images/w3w_Symbol_RGB_WhiteRed.png diff --git a/dist/css/styles.css b/dist/css/styles.css index efedeb7..3b9dbec 100644 --- a/dist/css/styles.css +++ b/dist/css/styles.css @@ -355,4 +355,4 @@ button:hover { .formatted-address label { width: 100%; } */ -} +} \ No newline at end of file diff --git a/dist/images/hero-image.png b/dist/images/hero-image.png deleted file mode 100644 index 12094834b230d3fae45652a0181d6d34afc66b77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17631 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 IM6N<$g1I>AdH?_b literal 0 HcmV?d00001 diff --git a/dist/images/w3w.loc.png b/dist/images/w3w.loc.png new file mode 100644 index 0000000000000000000000000000000000000000..dc98c3b71a568473ca3610552edabc56c608e178 GIT binary patch literal 8187 zcmeHLX*iVa+n**ArpNN2l)_ZD6bdE#2-#&P%SegrLfO+OR1%GZ?CWGp_I)k;nz1~{ zpk%U+Fov^tEuQ87!XkP&V<r#`t&98V14-ts?rkN`F_NHy@~|xI1t?832fz%rXFZd~{S!AIZ(ES^^0`TmXXVJoJ*;ny2cAJ8$&q@s z>=4KoRu~lW={gz$$<;wXAQ#x^AocM7F8!B@{}>Z&8z@NIWyd8**L!j8yDEPfN+lTK z25c52S6^Rs9Lu zB#-*6-6uQ1g(9zMurr<5ctzx8woKZ68a|tpxSh`-wxtbI*c8F^5g#Aj?QCHei0rag z++L)USbb`)iOX3WxFElEYQWDryIs9%Y-tXDKC(Owd3)h#lApo&Zih&=K*D105UoP8 zq(1+zHN0$z-`MnN7Xnj7%(P}+Uw*)n5NTnoNYT=gE|%vI40=HTbb zo?~{hX(=<=e12OiQr^??pS!lsvg_+gmq)AdReH~74MaVi;Z<` zo{`~hZBpV3LPHfoWUu9!j;X&)=yr6peKfDQjp$Vsj1v1{cCe1Da|6SK1SP|2j?y7?*&%n!8IV}5IR3&{4xgu^c5KOVq zw!IN%u4%1jBEbBuFYuQBTkVSNoA*e~K3B?$r4sg0r6653j@nen>qb6v7@4|rHnQn+!Nxvw*wm;Nfbvwa*ZmUcs!PxQPD8=dp)4n6r-X`*a=_qPJ#C+%u>V#wh= zTuiXQxb~(uojfu>-cyhD0>`qch>ofp?7Z)~J9_2OmrGc&9?R-np{g~>0}!c5SH+{Y zHw~F-v~7hg%WlOw4$kab%L)rTMb-Lq?t4ILFja4i0CRDUnOXr?jA+A5r{>k1A^Wle zb0$-fy&s1oTXG7kJ7+p2%7_D->>>xp>g2HL) zY^@j=V>&JQQL#n) z+8++-dEhidZB2*K@AxJ#G$1HwSYUy37vmRpRHq9c#>Mx%;@Dqg`i8H<@`Z8!^q7tc z<{KC!K9Ul%rygmph(`7i7j56FSNJ1(v%|~=`bMVrp_d0k(dpmJaj17sq_Z&qiz@>R znxTKbE6!-a!{$V=X+>@KzQ{; zm|n8mZ(1u2)}>RtRGKBOquD+Lnd6+<51x`2kNtda^e`V6Yiwq^+MKy?aBy4-65gwb zL0Ee1iix}-@~5jD;o{k~s9%8$X*>kY=m zu5WLyK9X`DA8qkiUsu~t+J-z}cQ8S+IGoD388}W;_@kYOM*S5h5W@7%LD2JvGV)^9 ztnUq}1n-Iz-BV=?2bOuz!1R#EJKv`o2)atGl#Jxr+c~-KTfHZ9b5pzHv?Zbz0Yakp zZ#Gr5fI9Yy%ZL(I?DM7mcG7RTJ-;fb0Jq%nA(@coQIj4v+xVwa{)^SPSlvCg(*U;x z5da`)C)R(-S=0iHghVY*`7!rSp{*w=pnT-zY&@}?pwbfYrQ9dr@W@n zn+ZMUwa!I_!@V2d1gNR9CoqY4N(<$k{F4p|3TPhlTV*U=i8A<^&Qi@AIai$@9++|* zhH+)m%+vF>lfa5O%z4gz|9NDeJ_TD{1brETT}702Nrqb8>7_!UYULmoUhl>}K6w7* zyU3ND@{}T-;62}evgYAB2;V*H>W{!Mw=2re;B#E6XZ-$@l1~7NiLkKR#hdkq(bU>P zT`&l5hik>ThT~$jx`a%t?u8sE0N8YxdSX6&PX$$D{GVd2Fypv{?my{VDiHCky@}!X zJN^k(J}O&afkr(8Dl6`fS*dtXm#GD6l7g`gf?oVLUUzl~8;y(gWvWT@)Q&&MdJh;3 zgOus1^rx19y@!g5OwL_)7}d1OK&V>Gj=xWiedn0AEvm9FIc$`?Uu)?rUjpGq5#I$m zC|1na`Je2;(yIrg83WQH;|RA}c7wh46d!|O5KYR;K1(}-Sh1pEo&15p{jyANo{VI% zZvIj*t9xtGV|q|_lZ3B0x}O11c3{x0)|K2*Wnc;VD4S~F)U;;6R=!;%@bUx{hG7Pc zy7z;X=d}cH$~SK(-?@kb;*P<2&e*%TrrI=B3c)`gM8*Uh>^WM_^HrE?pm_?CB{|pZ zg^d;m!NbPEEY7H|qH906CRkt?h&$FW2gq@;r%D$GGcGV3;ED#gTANmKqj@L(SXi!v z=BeL`jZEm#Z2S`!=Bda#&hxESmF~CYLCvW4Ro@IheULrnH_%_cHQrhbw-(l_f5EYb zB@MjaaFHC%1Kjy1Xg}&AE)V9YWGp5f1cq@LZXaF*Amf#+j6ddOpB-o?j=9GA?xFj( zBLHnDI+`rm_$R#wsr*ktVJ!Mt2FW3rH$CJ$niBGV%bD}&{=V@W{-%tShC1L=W`2#zKD%K-KJU3X-IA3tykbYHpjak z1!yetoc;rQ2+(m-&ics>M$UPU>8v86!=_nC{C*PYCL`~p+pKMO?~NY+Hh20|B>Ic0 z^GCau-9NcSeJ?dN*FcPa48)3t1BjJd#QpyG95BV|PR!S{Q=`VptmllnV&s7{1ld$I zr@jY!sg?66Q1j6Mkm%(#ZA}o1bj?hndf|f(;_@Zuev8VxNK269a*x$%@!muGj%MbC z^Bi$|kZLnCB9XA)$8`aDPaH<}+7&{bO*L_Dtf(sU)hW=76>)}n`J+D%fN{Vu1g^x( zYRWUkxL61Lx6B+Np#v9u&_#GVTWKfSa_(xdP<@~j25q}LW1!B|6*J|x2ZWjyvW|;uG;t~j{TC6%O=9Ft@$SZRB)=?{`R;W zhlG7OE|wsI8k|npJlI@I6;95dhX;b19(8KA|6SXGU;R>$%LdvX?GBQG`s#=Da#iK$8R_WW*i%t{ED=l}xDcCdegJxwakTF)Iuc;^xjHw$tN|06|>O z59eWez*DqW@z#~lQ?b&tYq;mqw2}$lv-6uH6}wJ*;hPCswly>#XcnvS$z6%n2&npZ z^kbMEYT4*4w+*}xD72Y>p3-g0x7TQV9_D+yuiR`XF9BF^xpkGZ@6O02`zA({nG+l@URFHI-ZAbfI_JAfu+^TPI_zdQ-V z@!eplaL?ozts@}(my6}PE%=^T=zDc+uI#>YW1_8=a3-h`xLwLHM!2ihMzLnSBjfee z>t}$wdfUVZt6c=k!kry4qGfLYWo?B~qMd1~ueQ#Aa(A}=&5yzH-J2RHoLNY?)Hk}I zvlcS9r^ITbpV)PL+y*7+rWS{Ew*L5#SIMoLGTX1#uI=ysj=*`s^GxcL^PEolTQ9FO%05^GgB|5dbZyp%lkeGoy1Csh zTa^1L%Ue<^vzx!=Sv{ro_~rW=)MM`LM$2EFo9u4YoS2u;Hut%*#Xg6Uha6YE>a{FS zp!|Pm$?mLLIuKJD%h?o!Gr_n{As8DwkkRKjM3eJ_SBayGLqS#_EI*p$+F3ar=R&;(hPDx zHY@jVdl#+K*Nrq~Ju*4l+_!kau&TVRp%jTvLq@pvq_^`q#{W&z5Q&lF%~E+CFp+WT zFH6S8+Yf&HYBw(NdcfBr&$JW_RS@lp)i-^dvRb4!JEwQ;8}4|>v0uZ@9X`6W(N}#( z4z-?y)3k}&>3Sbd~p)-e+U;D%N?+GL7Ex2>WX1}+8AfiaGO@v8}BOd zIk*QIQP!UAkVto3XsssXrqu~Ke6jyWaR^iaMVVOR8Ra3Z)`Z%!7b@s9h0M09 zm^WTWslyspQe}9uj0HR82)^{-dz)@q+uN|~F1)0b%(ZcD-D_i=V;PB`WI4Xvk*@sn zXKbmg;Hz_03Cz`FCPtUvwfsDrw8Ti`opBaNQP$;JpbLqH6y;=m;UT(U6b8dj3Q;wXFP2 z{8=KbLE=l);VF7JjdzM$<1}r$YdKN&&ctHhtcuMh3K}86JoUmc!oQEq_}~q^4ZeXc zYg}@naKDX`u#h~zQtY2 zq<127nu0$huv`OS&TOoJ`@5WpVq>4V%hcVgLeSJF#r)0Dzxzn7?*-1*aCcClrZCe; zW3WFvqoivkQ;+$6B9Rj!cNlFP^@Bj}$n3*TZPYcjOn3Er)-FpjaEnf4T6%&jfb9XY zWq(J`pi1#D!#&(g>Q40ByLeI!9o%??3>9!}I((yBkJ(Gw@U3>ns)XfseC=kKye^R| zs%(pbm#v)py}_+}&pT_-aU`>MTpEkCHyieu?X_|_l|1qLBwclTruYbm zrG%{`b|iV5k5l@%f8I`eee`qj&^!cAgMwMLkA_a%U9mBZYPn+RKT9w4UV3cuMgm(f z8(noOa$;0~TfP{~b>lnjwpB8Oy4_)dq2Bz=MfC~t*eN8szG!JW$&}FA!WExV75vxy zay)3@zrIT1@j+f~jMR%MmofjXUKLK1kB>*UxNVUX{}P6idOtN@T}@{+F4i}k`+{5< zHz0Wi2BtaY^+$6>MUs~$*6`gn4D&-R!@1f3#4#AuL-*J3a0N&b^_8X;CRy)k|B#|? z$+!WvX#efoNbpipGVP-2c0)@}1pTNPb@ z0Zx+$!}@LYkLP|INV&^jDMMKJfn9ZRSr=sX-Uq!2K!Y#l?J@#tb~#>tw~Bph3@_U+ zCog|uofFU&q%a6*1J0YPNZRV7Z0_!4G;xVos=>isAxamqBp5~7G+VWlC8yTz{;>3* zZ0<~|)b(2KPN*!h&pt!6>L8Y0643QI&QEWk;2HTHxWgHZI;J%RC@{Vok!sF8H0z1m zb;1L5tK3N&wA)Lz8h&y|l`w@fm_d05Z}I|PzFBheZ>8&A#wd#-#gyg^d|LSj)zE3} zp)~i*ED9b3DDkPvNUf(4$(PZ-?Y(KuGUY}|=|(_$UOJ`ONrRt)f(C`zrhcwM^v~+- z98E9D)2cJAFap0pvS1lou<3#??UNqlgvE(x)Pz9Vv>pZ#;c#)GR zgP+JDU`qa@2a(X>B&?8(yz#;vIhhboP&2Lz{uMCm8&ckCQ)C@fjYK0v%!jWolwlY* z@#l^(qQ(mR5{SHz7f=Pf7hevthk`$Qq?Z2$Z3IF@2hn;eESi*>{&9TrQpIZt)You- zkwf4H6cKRReB?9@#dq9cD(4bi9rme4oIi0-k}sbAatE7!u9n=Y81mi+<=;SNsV9MQ z5M9X|24BV24z9?zhhG&bV$1vWSRqSQ!D4Oz{1mc!{O(0rxqs2kflYAtj$=>A%p!Ac^ z*5?7$1--@FQJ%PAS9Cg0-6yWDXALs#haV`Q5m$wYCZ#uL=Ec>d{fL;uzKx}wxzh{z zi`14z?O7QG&Kqs1gY(~b{6BHgG>m-Lv_IbR@NbFJKa}UilO+55rEFSnzI-2A1?$sn zA{SL(qI(+Pct6jp(0i!v>N@JkuiWyTa9UMNdk)t|Ia@7HRvFPkYDVwFQg~dckl8$F z*~f`UW`{g10aX1j0!d4)Y4Fu*Hb!zy z2gB)ig*V;rD)GRG$cPhpSf+UwP88|7u35)0l7l}hgqR@bDr2zJm5I_yavCeQ&nMo4 z7y~WV9J;u?>a%|83QG)Xp1vdBlhcV;N{x1&*9oey=pt0BmtSxvuvs_uJX2V=Q}cJ* z`XL-_wH{|6xTU7Jy=*8rUqydzQh=H5wWPaxhlocUyMU~S!8PMPuZP<%DTSC)T7`1H zze=(Th6V;?B$3%V%!e+ggeW!G(Bu zctowO&N%Y$>`4b#+P=Nu&2>}UP4KfP+|km4r?yXK9z6WR-~56(4^MrX@DCI}coqz` z`Zb(~N9;9p?a5LTlLjxPBFrhtiXpt{p%zbnD1X=AQIZ8qBa%;c?UF#C(`=6cB#peSQ z5#EGS$2%DWhq0K7;+U&d&mCZ80fckG4~_@n60sz*8s+8X6S?(TWJ&s%O>>C^EM~7x z_-s4PfF3I+7`CmsO|)~}z{D;$)5lK6urpG5c#L%wwxxM)oJrtGKl{JyzYc@4U=~wJ zHcYf#o6*fcy{fK6b&E<6UncO8>S@Zv=lPnrti{H}?2WH?;|XhTl@Jkc(?d7L=c&Wi z5+oN|XVU59G~8hfT{O+O{)o{|cOb*={iN#t8^PVDLUeQX>`4Ccuc&{J{ z=e57C+->QZqc*?AbIsUw49PTZ>m6#~WdftS89}k47wD*aXkUrIUj3fQKySTOirmPX zr^a_|^qyGG-|1Ywnl*BM9=7k-&KjL~3w4^7wOq9tSSA)DV38&&Wu#Kg?x!bpjd)7bF~{%wbdsLh#b~uX4~cJc zG-)n{#|yi&x9EvucnYkJ=^^W_7D<)VG+xg+i&sZ1cfK#o(hi!gH@(5Z5~5EIhI3Ft>qjrF(P~x?KAAhkszBkaE^IdYEzj4W#&d9J{ zv{#6D7p&)bxV9-GD38DxN4ApGk|z5+fH6G1;{`#ff95gF@cN z@c_N#yO!RPc(l=4&njwT(a%)I3NloVpJ;%fSzVDW2vdi4P2;8J$#i{v40&!Wl(-Q& zg12Tsl&xFJ-0I{Ka ziaFxynmcDwxNkHN1v8-|OCP74Q^@$PvZ~?EN*gE?k*fP!o`$Xmqd+Q!5y%S{#z?sW zlc`+O9Tg%frIgVNp+}t{V>S3KvL7?d{xp>7dH|V#Oh|vE%OHeq4Y|Iqgx4*{Dh9<~ zbLHZf%X_50RMm8!`^VqCOES8Ylro3Q&8&X$I-y)ka7tFpfp&kUx}V}ReG7%6+*1uB zoTL3JmS);$cnfaT${vzx;d6Cro0w!Yx?>0rdQXpV$iD z&~CwOSL?grnF73EHwidwAN{e(cXsIarh4F6L#vnIDQ}7_Ui)8*Xfj`dT*a%0i2$M^ z^MsXJvU+pX`rqFWVJ;dV%oc!)AC-L0CI9Ml4MJbu;Lye3Q8-6F?sURHWteHn9zH^> z!a#{#wYaifJ_j|y7a)fQ?-?%%1cq8dJR^pv>?gk5!$-8FKl%xe)?M~vzP%I42^O_c zbw9CfzA;g&#PUrgT)L1VX7EaPY)W90U8x&D_Q_j>QxQjrUiyw=dyX6tW%G-^N*spQ=S=J!b0|)s(5KSUBgHfyjVZa#|>Bb~J0r5Ax zq)Dt*Nk4Q2SsVzU-@T8Ty!k22C7(-+h_eY#D{^bw4LvYJGXQzD==G%F{&q=@VU#r9 z0Eb?d`6wTPbw(9X9&0L8dRF~8enJUya??RU{p#Q?Dm8V!5jfRpS0IvB_X);z3TXZ_ zdbXF#iMXw4C+Zi51Q$vVn3b?w+rYy!uAn>!&J~-v*|@vAH(}z|EVbpmI!@N^<~2(J zK+x0l9T)m(R0~+AquC}?5I^&be(8}QTW6&t}4%amJAh?7C_8eb>k z6*#2WUA$}DUxb9vUv^YbFE;RJFRpAQd-NTXXh9}C{lBWtG~vv;)?>CqSlY{1Pf(i; z9E6ILf%&Zb)>*PkBvd&<=(l$BT+q14%*~8u6F;=@MCk|!$rnL>$8eH{m|mu4u81~97> zgb%Vfto%g;g>-kLe|c zGFi8|x{(Qk&X8_<(Ny1V5Z&v*6134BX2I_bQ_lGxHlEIa?b?gX&{t>G^>D~eFBl#j zH2M8EY}f{cn-tPQr8uMhmR;Uc>=h7$dB#hIuv-xDH-PCqemt1;szi;zW8FBB_4~~q zLDM9cSY_9`9p><#@TVDix-ZAcFa+sPwl)@(II{8L;QufAhB+0?+5hp;^}6-j#N#UI z@PNLYZNr$IBiRjI(DUO**cnzR?R6E<+rBBDm|{o2$02}=g94(yR8Sc$2l528uh*PB zCjgmCzR2QTs(}Z%WYnwlCzpo@^<7FBK2JI?hWtz3Q30_+J#{6bL(4f}hFz22Sf-K# zIdfj9bnjz^(ITjYr;VWaXThvQ$Mxc)JY4W%{%iX?C$((ED~*F)Z?T!s(1SUHU+P{lJe!aDS~RGn zTOeo;VW9uUBQ2mD0Pufz_U=GX*g%gp3nP_9qPddbN98hI)uai`Oh&q3FF>pTi&|@(t|i^Kfv{*$O~2_8 zJ;XW@K+FO#73fh!atkO@9Np}jysB?AlEP^O!xZVM$ba*r17Q0h&p4Rdk%}~d=l3K} z>h=^y27-?AZE${NbU~C`8S21d40f4$0vrKA*_gqpQ&;Z${Kuj$4Tp^!%}5861@j=k z~LUz~UxU*iKrch}i`bTk7O${i=Sl^kJPo?I=Z zTEgnfx{<`x)Ktj8N;M5xY1g4jQeaX?i5WWwjIy^tP*ET;D({|4xmUF?+EEPplBrJ2 z=s**J+~tHPX^sTla{|@h@b?9050?^+x`XUg-g$p`<4o;`Z;`nqs$%DqGZ@jtWDVf1 zLly71szK#QsX`CVSe1J?rr6l#RWFAeNu_@P4XE%_$LgCV!a2`%P~_3$Rp`a=)~Uhh zj-5Y2FEd?bW#$rJowl4BJf)@=B--Ep^pve%CUPWh{mY%Eh5U1JkzI+qwv!*ejyGju z^KQ(^Z!al_xtKIZEWMCpxy)rxw$FsfPlNamH15oFQs36o!n#*i?mWxi8NBV`sM)@L zgEd$9!^rmc&ts>EFLsy-`sN#|>2Y74#cq=HIySfT*Ty^aCWYeHYv|-klj#r7LU!K8 zC;DUB58w+n-}h(Z@P+ZJwga(z0%?U2@g5)3swe(Zyw{42c!ZcCW6PpbAanL0GzVsJK^r?pa%)cKaO>8 zEYKgpip=A;e@LT-$ia;B#$8Hl!$qY0$z+?tm{_Q5VAsZ@+FO)kz9PLBf8aqSu~u4^{tUtK+8_Hi=U|@t>@R&9|UJxYDp(CEuL{{l>N0f6dF?r@5pal26h6jrrpMUIJaXKiW`E%h%a~f_&9Z5lz4Oj+@*iHG+x32NZ#4L^ z;-8kdHdc@V{fST(=;{?^%_7p(h2oiAXQ{=)mQl0c7N6yk#J4w!p3KkZGwjSw_<79^ p;h*rlEjIh#_1}iUe&P-v-Q4CS<_gXM{29t)eb)9&t;OY={{;ImH0=NY literal 0 HcmV?d00001 diff --git a/dist/images/w3w_Symbol_RGB_WhiteRed.png b/dist/images/w3w_Symbol_RGB_WhiteRed.png deleted file mode 100644 index 5a7b8293b761536445afcccdde6bbebd9770615e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5426 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 diff --git a/dist/js/experian-address-validation.js b/dist/js/experian-address-validation.js index c26b9c2..17ef97e 100644 --- a/dist/js/experian-address-validation.js +++ b/dist/js/experian-address-validation.js @@ -1,2 +1,2 @@ -!function(){"use strict";var e,s=function(){function e(){this.collection={}}return e.prototype.on=function(e,s){this.collection[e]=this.collection[e]||[],this.collection[e].push(s)},e.prototype.trigger=function(e,s){if(this.collection[e])for(var t=0;t=200&&d.currentRequest.status<400){var s=JSON.parse(d.currentRequest.responseText);t(s)}else d.instance.searchSpinner.hide(),d.instance.events.trigger("request-error",e),d.instance.events.trigger("request-error-".concat(d.currentRequest.status),e)},this.currentRequest.onerror=function(e){d.instance.searchSpinner.hide(),d.instance.events.trigger("request-error",e)},this.currentRequest.ontimeout=function(e){d.instance.searchSpinner.hide(),d.instance.events.trigger("request-timeout",e)},this.currentRequest.send(o)},e}();!function(e){e.AUTOCOMPLETE="autocomplete",e.SINGLELINE="singleline",e.VALIDATE="validate"}(e||(e={}));var a={enableWhat3Words:!0,searchType:e.AUTOCOMPLETE,input:{placeholderText:"Start typing an address...",applyFocus:!1},formattedAddressContainer:{showHeading:!1,headingType:"h3",validatedHeadingText:"Validated address",manualHeadingText:"Manual address entered"},searchAgain:{visible:!0,text:"Search again"},useAddressEnteredText:" - Use address entered or try again...",useSpinner:!1,language:"en",addressLineLabels:["address_line_1","address_line_2","address_line_3","locality","region","postal_code","country"]},d=[{country:"Afghanistan",iso3Code:"AFG",iso2Code:"AF",datasetCode:"af-address-ed",searchType:"singleline, validate"},{country:"Afghanistan",iso3Code:"AFG",iso2Code:"AF",datasetCode:"af-address-eh",searchType:"autocomplete"},{country:"Albania",iso3Code:"ALB",iso2Code:"AL",datasetCode:"al-address-ed",searchType:"singleline, validate"},{country:"Albania",iso3Code:"ALB",iso2Code:"AL",datasetCode:"al-address-eh",searchType:"autocomplete"},{country:"Algeria",iso3Code:"DZA",iso2Code:"DZ",datasetCode:"dz-address-ed",searchType:"singleline, validate"},{country:"Algeria",iso3Code:"DZA",iso2Code:"DZ",datasetCode:"dz-address-eh",searchType:"autocomplete"},{country:"American Samoa",iso3Code:"ASM",iso2Code:"AS",datasetCode:"as-address-eh",searchType:"autocomplete"},{country:"Andorra",iso3Code:"AND",iso2Code:"AD",datasetCode:"ad-address-ed",searchType:"singleline, validate"},{country:"Andorra",iso3Code:"AND",iso2Code:"AD",datasetCode:"ad-address-eh",searchType:"autocomplete"},{country:"Angola",iso3Code:"AGO",iso2Code:"AO",datasetCode:"ao-address-ed",searchType:"singleline, validate"},{country:"Angola",iso3Code:"AGO",iso2Code:"AO",datasetCode:"ao-address-eh",searchType:"autocomplete"},{country:"Anguilla",iso3Code:"AIA",iso2Code:"AI",datasetCode:"ai-address-eh",searchType:"autocomplete"},{country:"Antarctica",iso3Code:"ATA",iso2Code:"AQ",datasetCode:"aq-address-ed",searchType:"singleline, validate"},{country:"Antigua and Barbuda",iso3Code:"ATG",iso2Code:"AG",datasetCode:"ag-address-ed",searchType:"singleline, validate"},{country:"Antigua and Barbuda",iso3Code:"ATG",iso2Code:"AG",datasetCode:"ag-address-eh",searchType:"autocomplete"},{country:"Argentina",iso3Code:"ARG",iso2Code:"AR",datasetCode:"ar-address-ed",searchType:"singleline, validate"},{country:"Argentina",iso3Code:"ARG",iso2Code:"AR",datasetCode:"ar-address-eh",searchType:"autocomplete"},{country:"Armenia",iso3Code:"ARM",iso2Code:"AM",datasetCode:"am-address-ed",searchType:"singleline, validate"},{country:"Armenia",iso3Code:"ARM",iso2Code:"AM",datasetCode:"am-address-eh",searchType:"autocomplete"},{country:"Aruba",iso3Code:"ABW",iso2Code:"AW",datasetCode:"aw-address-ed",searchType:"singleline, validate"},{country:"Aruba",iso3Code:"ABW",iso2Code:"AW",datasetCode:"aw-address-eh",searchType:"autocomplete"},{country:"Australia DataFusion",iso3Code:"AUS",iso2Code:"AU",datasetCode:"au-address-datafusion",searchType:"autocomplete, singleline, typedown"},{country:"Australia Geocoded National Address",iso3Code:"AUS",iso2Code:"AU",datasetCode:"au-address-gnaf",searchType:"autocomplete, singleline, typedown, validate"},{country:"Australia Postal Address",iso3Code:"AUS",iso2Code:"AU",datasetCode:"au-address",searchType:"autocomplete, singleline, typedown, validate"},{country:"Austria",iso3Code:"AUT",iso2Code:"AT",datasetCode:"at-address-eh",searchType:"autocomplete"},{country:"Austria",iso3Code:"AUT",iso2Code:"AT",datasetCode:"az-address-ed",searchType:"singleline, validate"},{country:"Azerbaijan",iso3Code:"AZE",iso2Code:"AZ",datasetCode:"az-address-ed",searchType:"singleline, validate"},{country:"Azerbaijan",iso3Code:"AZE",iso2Code:"AZ",datasetCode:"az-address-eh",searchType:"autocomplete"},{country:"Bahamas",iso3Code:"BHS",iso2Code:"BS",datasetCode:"bs-address-ed",searchType:"singleline, validate"},{country:"Bahamas",iso3Code:"BHS",iso2Code:"BS",datasetCode:"bs-address-eh",searchType:"autocomplete"},{country:"Bahrain",iso3Code:"BHR",iso2Code:"BH",datasetCode:"bh-address-ed",searchType:"singleline, validate"},{country:"Bahrain",iso3Code:"BHR",iso2Code:"BH",datasetCode:"bh-address-eh",searchType:"autocomplete"},{country:"Bangladesh",iso3Code:"BGD",iso2Code:"BD",datasetCode:"bd-address-ed",searchType:"singleline, validate"},{country:"Bangladesh",iso3Code:"BGD",iso2Code:"BD",datasetCode:"bd-address-eh",searchType:"autocomplete"},{country:"Barbados",iso3Code:"BRB",iso2Code:"BB",datasetCode:"bb-address-ed",searchType:"singleline, validate"},{country:"Barbados",iso3Code:"BRB",iso2Code:"BB",datasetCode:"bb-address-eh",searchType:"autocomplete"},{country:"Belarus",iso3Code:"BLR",iso2Code:"BY",datasetCode:"by-address-ed",searchType:"singleline, validate"},{country:"Belarus",iso3Code:"BLR",iso2Code:"BY",datasetCode:"by-address-eh",searchType:"autocomplete"},{country:"Belgium",iso3Code:"BEL",iso2Code:"BE",datasetCode:"be-address",searchType:"singleline, typedown"},{country:"Belgium",iso3Code:"BEL",iso2Code:"BE",datasetCode:"be-address-ed",searchType:" validate"},{country:"Belgium",iso3Code:"BEL",iso2Code:"BE",datasetCode:"be-address-eh",searchType:"autocomplete"},{country:"Belize",iso3Code:"BLZ",iso2Code:"BZ",datasetCode:"bz-address-ed",searchType:"singleline, validate"},{country:"Belize",iso3Code:"BLZ",iso2Code:"BZ",datasetCode:"bz-address-eh",searchType:"autocomplete"},{country:"Benin",iso3Code:"BEN",iso2Code:"BJ",datasetCode:"bj-address-ed",searchType:"singleline, validate"},{country:"Benin",iso3Code:"BEN",iso2Code:"BJ",datasetCode:"bj-address-eh",searchType:"autocomplete"},{country:"Bermuda",iso3Code:"BMU",iso2Code:"BM",datasetCode:"bm-address-ed",searchType:"singleline, validate"},{country:"Bermuda",iso3Code:"BMU",iso2Code:"BM",datasetCode:"bm-address-eh",searchType:"autocomplete"},{country:"Bhutan",iso3Code:"BTN",iso2Code:"BT",datasetCode:"bt-address-ed",searchType:"singleline, validate"},{country:"Bhutan",iso3Code:"BTN",iso2Code:"BT",datasetCode:"bt-address-eh",searchType:"autocomplete"},{country:"Bolivia",iso3Code:"BOL",iso2Code:"BO",datasetCode:"bo-address-ed",searchType:"singleline, validate"},{country:"Bolivia",iso3Code:"BOL",iso2Code:"BO",datasetCode:"bo-address-eh",searchType:"autocomplete"},{country:"Bonaire, Sint Eustatius and Saba",iso3Code:"BES",iso2Code:"BQ",datasetCode:"bq-address-ed",searchType:"singleline, validate"},{country:"Bonaire, Sint Eustatius and Saba",iso3Code:"BES",iso2Code:"BQ",datasetCode:"bq-address-eh",searchType:"autocomplete"},{country:"Bosnia and Herzegovina",iso3Code:"BIH",iso2Code:"BA",datasetCode:"ba-address-ed",searchType:"singleline, validate"},{country:"Bosnia and Herzegovina",iso3Code:"BIH",iso2Code:"BA",datasetCode:"ba-address-eh",searchType:"autocomplete"},{country:"Botswana",iso3Code:"BWA",iso2Code:"BW",datasetCode:"bw-address-ed",searchType:"singleline, validate"},{country:"Botswana",iso3Code:"BWA",iso2Code:"BW",datasetCode:"bw-address-eh",searchType:"autocomplete"},{country:"Brazil",iso3Code:"BRA",iso2Code:"BR",datasetCode:"br-address-ed",searchType:"singleline, validate"},{country:"Brazil",iso3Code:"BRA",iso2Code:"BR",datasetCode:"br-address-eh",searchType:"autocomplete"},{country:"Brunei Darussalam",iso3Code:"BRN",iso2Code:"BN",datasetCode:"bn-address-ed",searchType:"singleline, validate"},{country:"Brunei Darussalam",iso3Code:"BRN",iso2Code:"BN",datasetCode:"bn-address-eh",searchType:"autocomplete"},{country:"Bulgaria",iso3Code:"BGR",iso2Code:"BG",datasetCode:"bg-address-ed",searchType:"singleline, validate"},{country:"Bulgaria",iso3Code:"BGR",iso2Code:"BG",datasetCode:"bg-address-eh",searchType:"autocomplete"},{country:"Burkina Faso",iso3Code:"BFA",iso2Code:"BF",datasetCode:"bf-address-ed",searchType:"singleline, validate"},{country:"Burkina Faso",iso3Code:"BFA",iso2Code:"BF",datasetCode:"bf-address-eh",searchType:"autocomplete"},{country:"Burundi",iso3Code:"BDI",iso2Code:"BI",datasetCode:"bi-address-eh",searchType:"autocomplete"},{country:"Cambodia",iso3Code:"KHM",iso2Code:"KH",datasetCode:"kh-address-ed",searchType:"singleline, validate"},{country:"Cambodia",iso3Code:"KHM",iso2Code:"KH",datasetCode:"kh-address-eh",searchType:"autocomplete"},{country:"Cameroon",iso3Code:"CMR",iso2Code:"CM",datasetCode:"cm-address-ed",searchType:"singleline, validate"},{country:"Cameroon",iso3Code:"CMR",iso2Code:"CM",datasetCode:"cm-address-eh",searchType:"autocomplete"},{country:"Canada",iso3Code:"CAN",iso2Code:"CA",datasetCode:"ca-address",searchType:"autocomplete, singleline, typedown, validate"},{country:"Cape Verde",iso3Code:"CPV",iso2Code:"CV",datasetCode:"cv-address-ed",searchType:"singleline, validate"},{country:"Cape Verde",iso3Code:"CPV",iso2Code:"CV",datasetCode:"cv-address-eh",searchType:"autocomplete"},{country:"Cayman Islands",iso3Code:"CYM",iso2Code:"KY",datasetCode:"ky-address-ed",searchType:"singleline, validate"},{country:"Cayman Islands",iso3Code:"CYM",iso2Code:"KY",datasetCode:"ky-address-eh",searchType:"autocomplete"},{country:"Central African Republic",iso3Code:"CAF",iso2Code:"CF",datasetCode:"cf-address-ed",searchType:"singleline, validate"},{country:"Central African Republic",iso3Code:"CAF",iso2Code:"CF",datasetCode:"cf-address-eh",searchType:"autocomplete"},{country:"Chad",iso3Code:"TCD",iso2Code:"TD",datasetCode:"td-address-ed",searchType:"singleline, validate"},{country:"Chad",iso3Code:"TCD",iso2Code:"TD",datasetCode:"td-address-eh",searchType:"autocomplete"},{country:"Chile",iso3Code:"CHL",iso2Code:"CL",datasetCode:"cl-address-ed",searchType:"singleline, validate"},{country:"Chile",iso3Code:"CHL",iso2Code:"CL",datasetCode:"cl-address-eh",searchType:"autocomplete"},{country:"China",iso3Code:"CHN",iso2Code:"CN",datasetCode:"cn-address-ed",searchType:"singleline, validate"},{country:"China",iso3Code:"CHN",iso2Code:"CN",datasetCode:"cn-address-eh",searchType:"autocomplete"},{country:"Christmas Island",iso3Code:"CXR",iso2Code:"CX",datasetCode:"cx-address-eh",searchType:"autocomplete"},{country:"Cocos Island",iso3Code:"CCK",iso2Code:"CC",datasetCode:"cc-address-eh",searchType:"autocomplete"},{country:"Colombia",iso3Code:"COL",iso2Code:"CO",datasetCode:"co-address-ed",searchType:"singleline, validate"},{country:"Colombia",iso3Code:"COL",iso2Code:"CO",datasetCode:"co-address-eh",searchType:"autocomplete"},{country:"Comoros",iso3Code:"COM",iso2Code:"KM",datasetCode:"km-address-ed",searchType:"singleline, validate"},{country:"Comoros",iso3Code:"COM",iso2Code:"KM",datasetCode:"km-address-eh",searchType:"autocomplete"},{country:"Congo",iso3Code:"COG",iso2Code:"CG",datasetCode:"cg-address-ed",searchType:"singleline, validate"},{country:"Congo",iso3Code:"COG",iso2Code:"CG",datasetCode:"cg-address-eh",searchType:"autocomplete"},{country:"Congo, The Democratic Republic of the",iso3Code:"COD",iso2Code:"CD",datasetCode:"cd-address-ed",searchType:"singleline, validate"},{country:"Congo, The Democratic Republic of the",iso3Code:"COD",iso2Code:"CD",datasetCode:"cd-address-eh",searchType:"autocomplete"},{country:"Cook Islands",iso3Code:"COK",iso2Code:"CK",datasetCode:"ck-address-ed",searchType:"singleline, validate"},{country:"Cook Islands",iso3Code:"COK",iso2Code:"CK",datasetCode:"ck-address-eh",searchType:"autocomplete"},{country:"Costa Rica",iso3Code:"CRI",iso2Code:"CR",datasetCode:"cr-address-ed",searchType:"singleline, validate"},{country:"Costa Rica",iso3Code:"CRI",iso2Code:"CR",datasetCode:"cr-address-eh",searchType:"autocomplete"},{country:"Croatia",iso3Code:"HRV",iso2Code:"HR",datasetCode:"hr-address-ed",searchType:"singleline, validate"},{country:"Croatia",iso3Code:"HRV",iso2Code:"HR",datasetCode:"hr-address-eh",searchType:"autocomplete"},{country:"Cuba",iso3Code:"CUB",iso2Code:"CU",datasetCode:"cu-address-ed",searchType:"singleline, validate"},{country:"Cuba",iso3Code:"CUB",iso2Code:"CU",datasetCode:"cu-address-eh",searchType:"autocomplete"},{country:"Curaçao",iso3Code:"CUW",iso2Code:"CW",datasetCode:"cw-address-ed",searchType:"singleline, validate"},{country:"Curaçao",iso3Code:"CUW",iso2Code:"CW",datasetCode:"cw-address-eh",searchType:"autocomplete"},{country:"Cyprus",iso3Code:"CYP",iso2Code:"CY",datasetCode:"cy-address-ed",searchType:"singleline, validate"},{country:"Cyprus",iso3Code:"CYP",iso2Code:"CY",datasetCode:"cy-address-eh",searchType:"autocomplete"},{country:"Czech Republic",iso3Code:"CZE",iso2Code:"CZ",datasetCode:"cz-address-ed",searchType:"singleline, validate"},{country:"Czech Republic",iso3Code:"CZE",iso2Code:"CZ",datasetCode:"cz-address-eh",searchType:"autocomplete"},{country:"Côte d'Ivoire",iso3Code:"CIV",iso2Code:"CI",datasetCode:"ci-address-ed",searchType:"singleline, validate"},{country:"Côte d'Ivoire",iso3Code:"CIV",iso2Code:"CI",datasetCode:"ci-address-eh",searchType:"autocomplete"},{country:"Denmark",iso3Code:"DNK",iso2Code:"DK",datasetCode:"dk-address-ed",searchType:"singleline, validate"},{country:"Denmark",iso3Code:"DNK",iso2Code:"DK",datasetCode:"dk-address-eh",searchType:"autocomplete"},{country:"Djibouti",iso3Code:"DJI",iso2Code:"DJ",datasetCode:"dj-address-ed",searchType:"singleline, validate"},{country:"Djibouti",iso3Code:"DJI",iso2Code:"DJ",datasetCode:"dj-address-eh",searchType:"autocomplete"},{country:"Dominica",iso3Code:"DMA",iso2Code:"DM",datasetCode:"dm-address-ed",searchType:"singleline, validate"},{country:"Dominica",iso3Code:"DMA",iso2Code:"DM",datasetCode:"dm-address-eh",searchType:"autocomplete"},{country:"Dominican Republic",iso3Code:"DOM",iso2Code:"DO",datasetCode:"do-address-ed",searchType:"singleline, validate"},{country:"Dominican Republic",iso3Code:"DOM",iso2Code:"DO",datasetCode:"do-address-eh",searchType:"autocomplete"},{country:"Ecuador",iso3Code:"ECU",iso2Code:"EC",datasetCode:"ec-address-ed",searchType:"singleline, validate"},{country:"Ecuador",iso3Code:"ECU",iso2Code:"EC",datasetCode:"ec-address-eh",searchType:"autocomplete"},{country:"Egypt",iso3Code:"EGY",iso2Code:"EG",datasetCode:"eg-address-ed",searchType:"singleline, validate"},{country:"Egypt",iso3Code:"EGY",iso2Code:"EG",datasetCode:"eg-address-eh",searchType:"autocomplete"},{country:"El Salvador",iso3Code:"SLV",iso2Code:"SV",datasetCode:"sv-address-ed",searchType:"singleline, validate"},{country:"El Salvador",iso3Code:"SLV",iso2Code:"SV",datasetCode:"sv-address-eh",searchType:"autocomplete"},{country:"Equatorial Guinea",iso3Code:"GNQ",iso2Code:"GQ",datasetCode:"gq-address-ed",searchType:"singleline, validate"},{country:"Equatorial Guinea",iso3Code:"GNQ",iso2Code:"GQ",datasetCode:"gq-address-eh",searchType:"autocomplete"},{country:"Eritrea",iso3Code:"ERI",iso2Code:"ER",datasetCode:"er-address-ed",searchType:"singleline, validate"},{country:"Eritrea",iso3Code:"ERI",iso2Code:"ER",datasetCode:"er-address-eh",searchType:"autocomplete"},{country:"Estonia",iso3Code:"EST",iso2Code:"EE",datasetCode:"ee-address-ed",searchType:"singleline, validate"},{country:"Estonia",iso3Code:"EST",iso2Code:"EE",datasetCode:"ee-address-eh",searchType:"autocomplete"},{country:"Ethiopia",iso3Code:"ETH",iso2Code:"ET",datasetCode:"et-address-ed",searchType:"singleline, validate"},{country:"Ethiopia",iso3Code:"ETH",iso2Code:"ET",datasetCode:"et-address-eh",searchType:"autocomplete"},{country:"Falkland Islands (Malvinas)",iso3Code:"FLK",iso2Code:"FK",datasetCode:"fk-address-eh",searchType:"autocomplete"},{country:"Faroe Islands",iso3Code:"FRO",iso2Code:"FO",datasetCode:"fo-address-ed",searchType:"singleline, validate"},{country:"Faroe Islands",iso3Code:"FRO",iso2Code:"FO",datasetCode:"fo-address-eh",searchType:"autocomplete"},{country:"Fiji",iso3Code:"FJI",iso2Code:"FJ",datasetCode:"fj-address-ed",searchType:"singleline, validate"},{country:"Fiji",iso3Code:"FJI",iso2Code:"FJ",datasetCode:"fj-address-eh",searchType:"autocomplete"},{country:"Finland",iso3Code:"FIN",iso2Code:"FI",datasetCode:"fi-address",searchType:"singleline, typedown"},{country:"Finland",iso3Code:"FIN",iso2Code:"FI",datasetCode:"fi-address-ed",searchType:"validate"},{country:"Finland",iso3Code:"FIN",iso2Code:"FI",datasetCode:"fi-address-eh",searchType:"autocomplete"},{country:"France Street Level",iso3Code:"FRA",iso2Code:"FR",datasetCode:"fr-address-streetlevel",searchType:"singleline, typedown, validate"},{country:"France Sub-Premises Level",iso3Code:"FRA",iso2Code:"FR",datasetCode:"fr-additional-hexaline3",searchType:"autocomplete, singleline, typedown"},{country:"France Premises Level",iso3Code:"FRA",iso2Code:"FR",datasetCode:"fr-address",searchType:"singleline, typedown, validate"},{country:"French Guiana",iso3Code:"GUF",iso2Code:"GF",datasetCode:"gf-address-eh",searchType:"autocomplete"},{country:"French Polynesia",iso3Code:"PYF",iso2Code:"PF",datasetCode:"pf-address-eh",searchType:"autocomplete"},{country:"Gabon",iso3Code:"GAB",iso2Code:"GA",datasetCode:"ga-address-ed",searchType:"singleline, validate"},{country:"Gabon",iso3Code:"GAB",iso2Code:"GA",datasetCode:"ga-address-eh",searchType:"autocomplete"},{country:"Gambia",iso3Code:"GMB",iso2Code:"GM",datasetCode:"gm-address-ed",searchType:"singleline, validate"},{country:"Gambia",iso3Code:"GMB",iso2Code:"GM",datasetCode:"gm-address-eh",searchType:"autocomplete"},{country:"Georgia",iso3Code:"GEO",iso2Code:"GE",datasetCode:"ge-address-ed",searchType:"singleline, validate"},{country:"Georgia",iso3Code:"GEO",iso2Code:"GE",datasetCode:"ge-address-eh",searchType:"autocomplete"},{country:"Germany",iso3Code:"DEU",iso2Code:"DE",datasetCode:"de-address",searchType:"singleline, typedown, validate"},{country:"Germany",iso3Code:"DEU",iso2Code:"DE",datasetCode:"de-address-ed",searchType:"validate"},{country:"Germany",iso3Code:"DEU",iso2Code:"DE",datasetCode:"de-address-eh",searchType:"autocomplete"},{country:"Ghana",iso3Code:"GHA",iso2Code:"GH",datasetCode:"gh-address-ed",searchType:"singleline, validate"},{country:"Ghana",iso3Code:"GHA",iso2Code:"GH",datasetCode:"gh-address-eh",searchType:"autocomplete"},{country:"Gibraltar",iso3Code:"GIB",iso2Code:"GI",datasetCode:"gi-address-eh",searchType:"autocomplete"},{country:"Greece",iso3Code:"GRC",iso2Code:"GR",datasetCode:"gr-address-ed",searchType:"singleline, validate"},{country:"Greece",iso3Code:"GRC",iso2Code:"GR",datasetCode:"gr-address-eh",searchType:"autocomplete"},{country:"Greenland",iso3Code:"GRL",iso2Code:"GL",datasetCode:"gl-address-ed",searchType:"singleline, validate"},{country:"Greenland",iso3Code:"GRL",iso2Code:"GL",datasetCode:"gl-address-eh",searchType:"autocomplete"},{country:"Grenada",iso3Code:"GRD",iso2Code:"GD",datasetCode:"gd-address-ed",searchType:"singleline, validate"},{country:"Grenada",iso3Code:"GRD",iso2Code:"GD",datasetCode:"gd-address-eh",searchType:"autocomplete"},{country:"Guadeloupe",iso3Code:"GLP",iso2Code:"GP",datasetCode:"gp-address-eh",searchType:"autocomplete"},{country:"Guam",iso3Code:"GUM",iso2Code:"GU",datasetCode:"gu-address-eh",searchType:"autocomplete"},{country:"Guatemala",iso3Code:"GTM",iso2Code:"GT",datasetCode:"gt-address-ed",searchType:"singleline, validate"},{country:"Guatemala",iso3Code:"GTM",iso2Code:"GT",datasetCode:"gt-address-eh",searchType:"autocomplete"},{country:"Guinea",iso3Code:"GIN",iso2Code:"GN",datasetCode:"gn-address-ed",searchType:"singleline, validate"},{country:"Guinea",iso3Code:"GIN",iso2Code:"GN",datasetCode:"gn-address-eh",searchType:"autocomplete"},{country:"Guinea-Bissau",iso3Code:"GNB",iso2Code:"GW",datasetCode:"gw-address-ed",searchType:"singleline, validate"},{country:"Guinea-Bissau",iso3Code:"GNB",iso2Code:"GW",datasetCode:"gw-address-eh",searchType:"autocomplete"},{country:"Guyana",iso3Code:"GUY",iso2Code:"GY",datasetCode:"gy-address-ed",searchType:"singleline, validate"},{country:"Guyana",iso3Code:"GUY",iso2Code:"GY",datasetCode:"gy-address-eh",searchType:"autocomplete"},{country:"Haiti",iso3Code:"HTI",iso2Code:"HT",datasetCode:"ht-address-ed",searchType:"singleline, validate"},{country:"Haiti",iso3Code:"HTI",iso2Code:"HT",datasetCode:"ht-address-eh",searchType:"autocomplete"},{country:"Honduras",iso3Code:"HND",iso2Code:"HN",datasetCode:"hn-address-ed",searchType:"singleline, validate"},{country:"Honduras",iso3Code:"HND",iso2Code:"HN",datasetCode:"hn-address-eh",searchType:"autocomplete"},{country:"Hong Kong",iso3Code:"HKG",iso2Code:"HK",datasetCode:"hk-address-ed",searchType:"singleline, validate"},{country:"Hong Kong",iso3Code:"HKG",iso2Code:"HK",datasetCode:"hk-address-eh",searchType:"autocomplete"},{country:"Hungary",iso3Code:"HUN",iso2Code:"HU",datasetCode:"hu-address-ed",searchType:"singleline, validate"},{country:"Hungary",iso3Code:"HUN",iso2Code:"HU",datasetCode:"hu-address-eh",searchType:"autocomplete"},{country:"Iceland",iso3Code:"ISL",iso2Code:"IS",datasetCode:"is-address-ed",searchType:"singleline, validate"},{country:"Iceland",iso3Code:"ISL",iso2Code:"IS",datasetCode:"is-address-eh",searchType:"autocomplete"},{country:"India",iso3Code:"IND",iso2Code:"IN",datasetCode:"in-address-ed",searchType:"singleline, validate"},{country:"India",iso3Code:"IND",iso2Code:"IN",datasetCode:"in-address-eh",searchType:"autocomplete"},{country:"Indonesia",iso3Code:"IDN",iso2Code:"ID",datasetCode:"id-address-ed",searchType:"singleline, validate"},{country:"Indonesia",iso3Code:"IDN",iso2Code:"ID",datasetCode:"id-address-eh",searchType:"autocomplete"},{country:"Iran, Islamic Republic of",iso3Code:"IRN",iso2Code:"IR",datasetCode:"ir-address-ed",searchType:"singleline, validate"},{country:"Iran, Islamic Republic of",iso3Code:"IRN",iso2Code:"IR",datasetCode:"ir-address-eh",searchType:"autocomplete"},{country:"Iraq",iso3Code:"IRQ",iso2Code:"IQ",datasetCode:"iq-address-ed",searchType:"singleline, validate"},{country:"Iraq",iso3Code:"IRQ",iso2Code:"IQ",datasetCode:"iq-address-eh",searchType:"autocomplete"},{country:"Ireland",iso3Code:"IRL",iso2Code:"IE",datasetCode:"ie-address",searchType:"singleline, typedown"},{country:"Ireland",iso3Code:"IRL",iso2Code:"IE",datasetCode:"ie-address-ed",searchType:"singleline, validate"},{country:"Ireland",iso3Code:"IRL",iso2Code:"IE",datasetCode:"ie-address-eh",searchType:"autocomplete"},{country:"Ireland Eircode",iso3Code:"IRL",iso2Code:"IE",datasetCode:"ie-additional-eircode",searchType:"autocomplete"},{country:"Ireland ECAD",iso3Code:"IRL",iso2Code:"IE",datasetCode:"ie-address-ecad",searchType:"autocomplete"},{country:"Israel",iso3Code:"ISR",iso2Code:"IL",datasetCode:"il-address-ed",searchType:"singleline, validate"},{country:"Israel",iso3Code:"ISR",iso2Code:"IL",datasetCode:"il-address-eh",searchType:"autocomplete"},{country:"Italy",iso3Code:"ITA",iso2Code:"IT",datasetCode:"it-address-ed",searchType:"singleline, validate"},{country:"Italy",iso3Code:"ITA",iso2Code:"IT",datasetCode:"it-address-eh",searchType:"autocomplete"},{country:"Jamaica",iso3Code:"JAM",iso2Code:"JM",datasetCode:"jm-address-ed",searchType:"singleline, validate"},{country:"Jamaica",iso3Code:"JAM",iso2Code:"JM",datasetCode:"jm-address-eh",searchType:"autocomplete"},{country:"Japan",iso3Code:"JPN",iso2Code:"JP",datasetCode:"jp-address-ed",searchType:"singleline, validate"},{country:"Japan",iso3Code:"JPN",iso2Code:"JP",datasetCode:"jp-address",searchType:"singleline, validate"},{country:"Jordan",iso3Code:"JOR",iso2Code:"JO",datasetCode:"jo-address-ed",searchType:"singleline, validate"},{country:"Jordan",iso3Code:"JOR",iso2Code:"JO",datasetCode:"jo-address-eh",searchType:"autocomplete"},{country:"Kazakhstan",iso3Code:"KAZ",iso2Code:"KZ",datasetCode:"kz-address-ed",searchType:"singleline, validate"},{country:"Kazakhstan",iso3Code:"KAZ",iso2Code:"KZ",datasetCode:"kz-address-eh",searchType:"autocomplete"},{country:"Kenya",iso3Code:"KEN",iso2Code:"KE",datasetCode:"ke-address-ed",searchType:"singleline, validate"},{country:"Kenya",iso3Code:"KEN",iso2Code:"KE",datasetCode:"ke-address-eh",searchType:"autocomplete"},{country:"Kiribati",iso3Code:"KIR",iso2Code:"KI",datasetCode:"ki-address-ed",searchType:"singleline, validate"},{country:"Kiribati",iso3Code:"KIR",iso2Code:"KI",datasetCode:"ki-address-eh",searchType:"autocomplete"},{country:"Korea, Democratic People's Republic of",iso3Code:"PRK",iso2Code:"KP",datasetCode:"kp-address-ed",searchType:"singleline, validate"},{country:"Korea, Democratic People's Republic of",iso3Code:"PRK",iso2Code:"KP",datasetCode:"kp-address-eh",searchType:"autocomplete"},{country:"Korea, Republic of",iso3Code:"KOR",iso2Code:"KR",datasetCode:"kr-address-ed",searchType:"singleline, validate"},{country:"Korea, Republic of",iso3Code:"KOR",iso2Code:"KR",datasetCode:"kr-address-eh",searchType:"autocomplete"},{country:"Kosovo",iso3Code:"KOS",iso2Code:"XK",datasetCode:"kv-address-eh",searchType:"autocomplete"},{country:"Kuwait",iso3Code:"KWT",iso2Code:"KW",datasetCode:"kw-address-ed",searchType:"singleline, validate"},{country:"Kuwait",iso3Code:"KWT",iso2Code:"KW",datasetCode:"kw-address-eh",searchType:"autocomplete"},{country:"Kyrgyzstan",iso3Code:"KGZ",iso2Code:"KG",datasetCode:"kg-address-ed",searchType:"singleline, validate"},{country:"Kyrgyzstan",iso3Code:"KGZ",iso2Code:"KG",datasetCode:"kg-address-eh",searchType:"autocomplete"},{country:"Laos",iso3Code:"LAO",iso2Code:"LA",datasetCode:"la-address-ed",searchType:"singleline, validate"},{country:"Laos",iso3Code:"LAO",iso2Code:"LA",datasetCode:"la-address-eh",searchType:"autocomplete"},{country:"Latvia",iso3Code:"LVA",iso2Code:"LV",datasetCode:"lv-address-ed",searchType:"singleline, validate"},{country:"Latvia",iso3Code:"LVA",iso2Code:"LV",datasetCode:"lv-address-eh",searchType:"autocomplete"},{country:"Lebanon",iso3Code:"LBN",iso2Code:"LB",datasetCode:"lb-address-ed",searchType:"singleline, validate"},{country:"Lebanon",iso3Code:"LBN",iso2Code:"LB",datasetCode:"lb-address-eh",searchType:"autocomplete"},{country:"Lesotho",iso3Code:"LSO",iso2Code:"LS",datasetCode:"ls-address-ed",searchType:"singleline, validate"},{country:"Lesotho",iso3Code:"LSO",iso2Code:"LS",datasetCode:"ls-address-eh",searchType:"autocomplete"},{country:"Liberia",iso3Code:"LBR",iso2Code:"LR",datasetCode:"lr-address-ed",searchType:"singleline, validate"},{country:"Liberia",iso3Code:"LBR",iso2Code:"LR",datasetCode:"lr-address-eh",searchType:"autocomplete"},{country:"Libya",iso3Code:"LBY",iso2Code:"LY",datasetCode:"ly-address-ed",searchType:"singleline, validate"},{country:"Libya",iso3Code:"LBY",iso2Code:"LY",datasetCode:"ly-address-eh",searchType:"autocomplete"},{country:"Liechtenstein",iso3Code:"LIE",iso2Code:"LI",datasetCode:"li-address-ed",searchType:"singleline, validate"},{country:"Liechtenstein",iso3Code:"LIE",iso2Code:"LI",datasetCode:"li-address-eh",searchType:"autocomplete"},{country:"Lithuania",iso3Code:"LTU",iso2Code:"LT",datasetCode:"lt-address-ed",searchType:"singleline, validate"},{country:"Lithuania",iso3Code:"LTU",iso2Code:"LT",datasetCode:"lt-address-eh",searchType:"autocomplete"},{country:"Luxembourg",iso3Code:"LUX",iso2Code:"LU",datasetCode:"lu-address-ed",searchType:"singleline, validate"},{country:"Luxembourg",iso3Code:"LUX",iso2Code:"LU",datasetCode:"lu-address-eh",searchType:"autocomplete"},{country:"Macau",iso3Code:"MAC",iso2Code:"MO",datasetCode:"lv-address-ed",searchType:"singleline, validate"},{country:"Macau",iso3Code:"MAC",iso2Code:"MO",datasetCode:"lv-address-eh",searchType:"autocomplete"},{country:"Madagascar",iso3Code:"MDG",iso2Code:"MG",datasetCode:"mo-address-ed",searchType:"singleline, validate"},{country:"Madagascar",iso3Code:"MDG",iso2Code:"MG",datasetCode:"mo-address-eh",searchType:"autocomplete"},{country:"Malawi",iso3Code:"MWI",iso2Code:"MW",datasetCode:"mw-address-ed",searchType:"singleline, validate"},{country:"Malawi",iso3Code:"MWI",iso2Code:"MW",datasetCode:"mw-address-eh",searchType:"autocomplete"},{country:"Malaysia",iso3Code:"MYS",iso2Code:"MY",datasetCode:"my-address-ed",searchType:"singleline, validate"},{country:"Malaysia",iso3Code:"MYS",iso2Code:"MY",datasetCode:"my-address-eh",searchType:"autocomplete"},{country:"Maldives",iso3Code:"MDV",iso2Code:"MV",datasetCode:"mv-address-ed",searchType:"singleline, validate"},{country:"Maldives",iso3Code:"MDV",iso2Code:"MV",datasetCode:"mv-address-eh",searchType:"autocomplete"},{country:"Mali",iso3Code:"MLI",iso2Code:"ML",datasetCode:"ml-address-ed",searchType:"singleline, validate"},{country:"Mali",iso3Code:"MLI",iso2Code:"ML",datasetCode:"ml-address-eh",searchType:"autocomplete"},{country:"Malta",iso3Code:"MLT",iso2Code:"MT",datasetCode:"mt-address-ed",searchType:"singleline, validate"},{country:"Malta",iso3Code:"MLT",iso2Code:"MT",datasetCode:"mt-address-eh",searchType:"autocomplete"},{country:"Marshall Islands",iso3Code:"MHL",iso2Code:"MH",datasetCode:"mh-address-eh",searchType:"autocomplete"},{country:"Martinique",iso3Code:"MTQ",iso2Code:"MQ",datasetCode:"mq-address-eh",searchType:"autocomplete"},{country:"Mauritania",iso3Code:"MRT",iso2Code:"MR",datasetCode:"mr-address-ed",searchType:"singleline, validate"},{country:"Mauritania",iso3Code:"MRT",iso2Code:"MR",datasetCode:"mr-address-eh",searchType:"autocomplete"},{country:"Mauritius",iso3Code:"MUS",iso2Code:"MU",datasetCode:"mu-address-ed",searchType:"singleline, validate"},{country:"Mauritius",iso3Code:"MUS",iso2Code:"MU",datasetCode:"mu-address-eh",searchType:"autocomplete"},{country:"Mayotte",iso3Code:"MYT",iso2Code:"YT",datasetCode:"yt-address-eh",searchType:"autocomplete"},{country:"Mexico",iso3Code:"MEX",iso2Code:"MX",datasetCode:"mx-address-ed",searchType:"singleline, validate"},{country:"Mexico",iso3Code:"MEX",iso2Code:"MX",datasetCode:"mx-address-eh",searchType:"autocomplete"},{country:"Micronesia, Federated States of",iso3Code:"FSM",iso2Code:"FM",datasetCode:"fm-address-eh",searchType:"autocomplete"},{country:"Moldova",iso3Code:"MDA",iso2Code:"MD",datasetCode:"md-address-ed",searchType:"singleline, validate"},{country:"Moldova",iso3Code:"MDA",iso2Code:"MD",datasetCode:"md-address-eh",searchType:"autocomplete"},{country:"Monaco",iso3Code:"MCO",iso2Code:"MC",datasetCode:"mc-address-ed",searchType:"singleline, validate"},{country:"Monaco",iso3Code:"MCO",iso2Code:"MC",datasetCode:"mc-address-eh",searchType:"autocomplete"},{country:"Mongolia",iso3Code:"MNG",iso2Code:"MN",datasetCode:"mn-address-ed",searchType:"singleline, validate"},{country:"Mongolia",iso3Code:"MNG",iso2Code:"MN",datasetCode:"mn-address-eh",searchType:"autocomplete"},{country:"Montenegro",iso3Code:"MNE",iso2Code:"ME",datasetCode:"me-address-ed",searchType:"singleline, validate"},{country:"Montenegro",iso3Code:"MNE",iso2Code:"ME",datasetCode:"me-address-eh",searchType:"autocomplete"},{country:"Montserrat",iso3Code:"MSR",iso2Code:"MS",datasetCode:"ms-address-eh",searchType:"autocomplete"},{country:"Morocco",iso3Code:"MAR",iso2Code:"MA",datasetCode:"ma-address-ed",searchType:"singleline, validate"},{country:"Morocco",iso3Code:"MAR",iso2Code:"MA",datasetCode:"ma-address-eh",searchType:"autocomplete"},{country:"Mozambique",iso3Code:"MOZ",iso2Code:"MZ",datasetCode:"mz-address-ed",searchType:"singleline, validate"},{country:"Mozambique",iso3Code:"MOZ",iso2Code:"MZ",datasetCode:"mz-address-eh",searchType:"autocomplete"},{country:"Myanmar",iso3Code:"MMR",iso2Code:"MM",datasetCode:"mm-address-ed",searchType:"singleline, validate"},{country:"Myanmar",iso3Code:"MMR",iso2Code:"MM",datasetCode:"mm-address-eh",searchType:"autocomplete"},{country:"Namibia",iso3Code:"NAM",iso2Code:"NA",datasetCode:"na-address-ed",searchType:"singleline, validate"},{country:"Namibia",iso3Code:"NAM",iso2Code:"NA",datasetCode:"na-address-eh",searchType:"autocomplete"},{country:"Nauru",iso3Code:"NRU",iso2Code:"NR",datasetCode:"nr-address-ed",searchType:"singleline, validate"},{country:"Nauru",iso3Code:"NRU",iso2Code:"NR",datasetCode:"nr-address-eh",searchType:"autocomplete"},{country:"Nepal",iso3Code:"NPL",iso2Code:"NP",datasetCode:"np-address-ed",searchType:"singleline, validate"},{country:"Nepal",iso3Code:"NPL",iso2Code:"NP",datasetCode:"np-address-eh",searchType:"autocomplete"},{country:"Netherlands",iso3Code:"NLD",iso2Code:"NL",datasetCode:"nl-address-ed",searchType:"singleline, validate"},{country:"Netherlands",iso3Code:"NLD",iso2Code:"NL",datasetCode:"nl-address-eh",searchType:"autocomplete"},{country:"New Caledonia",iso3Code:"NCL",iso2Code:"NC",datasetCode:"nc-address-eh",searchType:"autocomplete"},{country:"New Zealand DataFusion",iso3Code:"NZL",iso2Code:"NZ",datasetCode:"nz-additional-datafusion",searchType:"autocomplete, singleline, typedown, validate"},{country:"New Zealand Postal Address",iso3Code:"NZL",iso2Code:"NZ",datasetCode:"nz-address",searchType:"autocomplete, singleline, typedown, validate"},{country:"Nicaragua",iso3Code:"NIC",iso2Code:"NI",datasetCode:"ni-address-ed",searchType:"singleline, validate"},{country:"Nicaragua",iso3Code:"NIC",iso2Code:"NI",datasetCode:"ni-address-eh",searchType:"autocomplete"},{country:"Niger",iso3Code:"NER",iso2Code:"NE",datasetCode:"ne-address-ed",searchType:"singleline, validate"},{country:"Niger",iso3Code:"NER",iso2Code:"NE",datasetCode:"ne-address-eh",searchType:"autocomplete"},{country:"Nigeria",iso3Code:"NGA",iso2Code:"NG",datasetCode:"ng-address-ed",searchType:"singleline, validate"},{country:"Nigeria",iso3Code:"NGA",iso2Code:"NG",datasetCode:"ng-address-eh",searchType:"autocomplete"},{country:"Niue",iso3Code:"NIU",iso2Code:"NU",datasetCode:"nu-address-ed",searchType:"singleline, validate"},{country:"Norfolk Island",iso3Code:"NFK",iso2Code:"NF",datasetCode:"nf-address-ed",searchType:"singleline, validate"},{country:"Norfolk Island",iso3Code:"NFK",iso2Code:"NF",datasetCode:"nf-address-eh",searchType:"autocomplete"},{country:"North Macedonia",iso3Code:"MKD",iso2Code:"MK",datasetCode:"mk-address-ed",searchType:"singleline, validate"},{country:"North Macedonia",iso3Code:"MKD",iso2Code:"MK",datasetCode:"mk-address-eh",searchType:"autocomplete"},{country:"Northern Mariana Islands",iso3Code:"MNP",iso2Code:"MP",datasetCode:"mp-address-eh",searchType:"autocomplete"},{country:"Norway",iso3Code:"NOR",iso2Code:"NO",datasetCode:"no-address-ed",searchType:"validate"},{country:"Norway",iso3Code:"NOR",iso2Code:"NO",datasetCode:"no-address-eh",searchType:"autocomplete"},{country:"Oman",iso3Code:"OMN",iso2Code:"OM",datasetCode:"om-address-ed",searchType:"singleline, validate"},{country:"Oman",iso3Code:"OMN",iso2Code:"OM",datasetCode:"om-address-eh",searchType:"autocomplete"},{country:"Pakistan",iso3Code:"PAK",iso2Code:"PK",datasetCode:"pk-address-ed",searchType:"singleline, validate"},{country:"Pakistan",iso3Code:"PAK",iso2Code:"PK",datasetCode:"pk-address-eh",searchType:"autocomplete"},{country:"Palau",iso3Code:"PLW",iso2Code:"PW",datasetCode:"pw-address-eh",searchType:"autocomplete"},{country:"Palestine",iso3Code:"PSE",iso2Code:"PS",datasetCode:"ps-address-eh",searchType:"autocomplete"},{country:"Panama",iso3Code:"PAN",iso2Code:"PA",datasetCode:"pa-address-ed",searchType:"singleline, validate"},{country:"Panama",iso3Code:"PAN",iso2Code:"PA",datasetCode:"pa-address-eh",searchType:"autocomplete"},{country:"Papua New Guinea",iso3Code:"PNG",iso2Code:"PG",datasetCode:"pg-address-ed",searchType:"singleline, validate"},{country:"Papua New Guinea",iso3Code:"PNG",iso2Code:"PG",datasetCode:"pg-address-eh",searchType:"autocomplete"},{country:"Paraguay",iso3Code:"PRY",iso2Code:"PY",datasetCode:"py-address-ed",searchType:"singleline, validate"},{country:"Paraguay",iso3Code:"PRY",iso2Code:"PY",datasetCode:"py-address-eh",searchType:"autocomplete"},{country:"Peru",iso3Code:"PER",iso2Code:"PE",datasetCode:"pe-address-ed",searchType:"singleline, validate"},{country:"Peru",iso3Code:"PER",iso2Code:"PE",datasetCode:"pe-address-eh",searchType:"autocomplete"},{country:"Philippines",iso3Code:"PHL",iso2Code:"PH",datasetCode:"ph-address-ed",searchType:"singleline, validate"},{country:"Philippines",iso3Code:"PHL",iso2Code:"PH",datasetCode:"ph-address-eh",searchType:"autocomplete"},{country:"Pitcairn Islands",iso3Code:"PCN",iso2Code:"PN",datasetCode:"pn-address-eh",searchType:"autocomplete"},{country:"Poland",iso3Code:"POL",iso2Code:"PL",datasetCode:"pl-address-ed",searchType:"singleline, validate"},{country:"Poland",iso3Code:"POL",iso2Code:"PL",datasetCode:"pl-address-eh",searchType:"autocomplete"},{country:"Portugal",iso3Code:"PRT",iso2Code:"PT",datasetCode:"pt-address-ed",searchType:"singleline, validate"},{country:"Portugal",iso3Code:"PRT",iso2Code:"PT",datasetCode:"pt-address-eh",searchType:"autocomplete"},{country:"Qatar",iso3Code:"QAT",iso2Code:"QA",datasetCode:"qa-address-ed",searchType:"singleline, validate"},{country:"Qatar",iso3Code:"QAT",iso2Code:"QA",datasetCode:"qa-address-eh",searchType:"autocomplete"},{country:"Romania",iso3Code:"ROU",iso2Code:"RO",datasetCode:"ro-address-ed",searchType:"singleline, validate"},{country:"Romania",iso3Code:"ROU",iso2Code:"RO",datasetCode:"ro-address-eh",searchType:"autocomplete"},{country:"Russian Federation",iso3Code:"RUS",iso2Code:"RU",datasetCode:"ru-address-ed",searchType:"singleline, validate"},{country:"Russian Federation",iso3Code:"RUS",iso2Code:"RU",datasetCode:"ru-address-eh",searchType:"autocomplete"},{country:"Rwanda",iso3Code:"RWA",iso2Code:"RW",datasetCode:"rw-address-ed",searchType:"singleline, validate"},{country:"Rwanda",iso3Code:"RWA",iso2Code:"RW",datasetCode:"rw-address-eh",searchType:"autocomplete"},{country:"Réunion",iso3Code:"REU",iso2Code:"RE",datasetCode:"re-address-eh",searchType:"autocomplete"},{country:"Saint Barthélemy",iso3Code:"BLM",iso2Code:"BL",datasetCode:"bl-address-eh",searchType:"autocomplete"},{country:"Saint Helena",iso3Code:"SHN",iso2Code:"SH",datasetCode:"sh-address-eh",searchType:"autocomplete"},{country:"Saint Kitts and Nevis",iso3Code:"KNA",iso2Code:"KN",datasetCode:"kn-address-ed",searchType:"singleline, validate"},{country:"Saint Kitts and Nevis",iso3Code:"KNA",iso2Code:"KN",datasetCode:"kn-address-eh",searchType:"autocomplete"},{country:"Saint Lucia",iso3Code:"LCA",iso2Code:"LC",datasetCode:"lc-address-eh",searchType:"autocomplete"},{country:"Saint Pierre and Miquelon",iso3Code:"SPM",iso2Code:"PM",datasetCode:"pm-address-eh",searchType:"autocomplete"},{country:"Saint Vincent and the Grenadines",iso3Code:"VCT",iso2Code:"VC",datasetCode:"vc-address-ed",searchType:"singleline, validate"},{country:"Saint Vincent and the Grenadines",iso3Code:"VCT",iso2Code:"VC",datasetCode:"vc-address-eh",searchType:"autocomplete"},{country:"Samoa",iso3Code:"WSM",iso2Code:"WS",datasetCode:"ws-address-ed",searchType:"singleline, validate"},{country:"Samoa",iso3Code:"WSM",iso2Code:"WS",datasetCode:"ws-address-eh",searchType:"autocomplete"},{country:"San Marino",iso3Code:"SMR",iso2Code:"SM",datasetCode:"sm-address-ed",searchType:"singleline, validate"},{country:"San Marino",iso3Code:"SMR",iso2Code:"SM",datasetCode:"sm-address-eh",searchType:"autocomplete"},{country:"Sao Tome and Principe",iso3Code:"STP",iso2Code:"ST",datasetCode:"st-address-ed",searchType:"singleline, validate"},{country:"Sao Tome and Principe",iso3Code:"STP",iso2Code:"ST",datasetCode:"st-address-eh",searchType:"autocomplete"},{country:"Saudi Arabia",iso3Code:"SAU",iso2Code:"SA",datasetCode:"sa-address-ed",searchType:"singleline, validate"},{country:"Saudi Arabia",iso3Code:"SAU",iso2Code:"SA",datasetCode:"sa-address-eh",searchType:"autocomplete"},{country:"Senegal",iso3Code:"SEN",iso2Code:"SN",datasetCode:"sn-address-ed",searchType:"singleline, validate"},{country:"Senegal",iso3Code:"SEN",iso2Code:"SN",datasetCode:"sn-address-eh",searchType:"autocomplete"},{country:"Serbia",iso3Code:"SRB",iso2Code:"RS",datasetCode:"rs-address-ed",searchType:"singleline, validate"},{country:"Serbia",iso3Code:"SRB",iso2Code:"RS",datasetCode:"rs-address-eh",searchType:"autocomplete"},{country:"Seychelles",iso3Code:"SYC",iso2Code:"SC",datasetCode:"sc-address-ed",searchType:"singleline, validate"},{country:"Seychelles",iso3Code:"SYC",iso2Code:"SC",datasetCode:"sc-address-eh",searchType:"autocomplete"},{country:"Sierra Leone",iso3Code:"SLE",iso2Code:"SL",datasetCode:"sl-address-ed",searchType:"singleline, validate"},{country:"Sierra Leone",iso3Code:"SLE",iso2Code:"SL",datasetCode:"sl-address-eh",searchType:"autocomplete"},{country:"Singapore",iso3Code:"SGP",iso2Code:"SG",datasetCode:"sg-address",searchType:"autocomplete, singleline, typedown, validate"},{country:"Sint Maarten",iso3Code:"SXM",iso2Code:"SX",datasetCode:"sx-address-ed",searchType:"singleline, validate"},{country:"Sint Maarten",iso3Code:"SXM",iso2Code:"SX",datasetCode:"sx-address-eh",searchType:"autocomplete"},{country:"Slovakia",iso3Code:"SVK",iso2Code:"SK",datasetCode:"sk-address-ed",searchType:"singleline, validate"},{country:"Slovakia",iso3Code:"SVK",iso2Code:"SK",datasetCode:"sk-address-eh",searchType:"autocomplete"},{country:"Slovenia",iso3Code:"SVN",iso2Code:"SI",datasetCode:"si-address-ed",searchType:"singleline, validate"},{country:"Slovenia",iso3Code:"SVN",iso2Code:"SI",datasetCode:"si-address-eh",searchType:"autocomplete"},{country:"Solomon Islands",iso3Code:"SLB",iso2Code:"SB",datasetCode:"sb-address-ed",searchType:"singleline, validate"},{country:"Solomon Islands",iso3Code:"SLB",iso2Code:"SB",datasetCode:"sb-address-eh",searchType:"autocomplete"},{country:"Somalia",iso3Code:"SOM",iso2Code:"SO",datasetCode:"so-address-ed",searchType:"singleline, validate"},{country:"Somalia",iso3Code:"SOM",iso2Code:"SO",datasetCode:"so-address-eh",searchType:"autocomplete"},{country:"South Africa",iso3Code:"ZAF",iso2Code:"ZA",datasetCode:"za-address-ed",searchType:"singleline, validate"},{country:"South Africa",iso3Code:"ZAF",iso2Code:"ZA",datasetCode:"za-address-eh",searchType:"autocomplete"},{country:"South Georgia and the South Sandwich Islands",iso3Code:"SGS",iso2Code:"GS",datasetCode:"gs-address-eh",searchType:"autocomplete"},{country:"South Sudan",iso3Code:"SSD",iso2Code:"SS",datasetCode:"ss-address-ed",searchType:"singleline, validate"},{country:"South Sudan",iso3Code:"SSD",iso2Code:"SS",datasetCode:"ss-address-eh",searchType:"autocomplete"},{country:"Spain",iso3Code:"ESP",iso2Code:"ES",datasetCode:"es-address",searchType:"singleline, typedown"},{country:"Spain",iso3Code:"ESP",iso2Code:"ES",datasetCode:"es-address-ed",searchType:"validate"},{country:"Spain",iso3Code:"ESP",iso2Code:"ES",datasetCode:"es-address-eh",searchType:"autocomplete"},{country:"Sri Lanka",iso3Code:"LKA",iso2Code:"LK",datasetCode:"lk-address-ed",searchType:"singleline, validate"},{country:"Sudan",iso3Code:"SDN",iso2Code:"SD",datasetCode:"sd-address-ed",searchType:"singleline, validate"},{country:"Sudan",iso3Code:"SDN",iso2Code:"SD",datasetCode:"sd-address-eh",searchType:"autocomplete"},{country:"Suriname",iso3Code:"SUR",iso2Code:"SR",datasetCode:"sr-address-ed",searchType:"singleline, validate"},{country:"Suriname",iso3Code:"SUR",iso2Code:"SR",datasetCode:"sr-address-eh",searchType:"autocomplete"},{country:"Svalbard and Jan Mayen Islands",iso3Code:"SJM",iso2Code:"SJ",datasetCode:"sj-address-eh",searchType:"autocomplete"},{country:"Swaziland (Eswatini)",iso3Code:"SWZ",iso2Code:"SZ",datasetCode:"sz-address-ed",searchType:"singleline, validate"},{country:"Swaziland (Eswatini)",iso3Code:"SWZ",iso2Code:"SZ",datasetCode:"sz-address-eh",searchType:"autocomplete"},{country:"Sweden",iso3Code:"SWE",iso2Code:"SE",datasetCode:"se-address",searchType:"singleline, typedown"},{country:"Sweden",iso3Code:"SWE",iso2Code:"SE",datasetCode:"se-address-ed",searchType:"validate"},{country:"Sweden",iso3Code:"SWE",iso2Code:"SE",datasetCode:"se-address-eh",searchType:"autocomplete"},{country:"Switzerland",iso3Code:"CHE",iso2Code:"CH",datasetCode:"ch-address",searchType:"singleline, typedown"},{country:"Switzerland",iso3Code:"CHE",iso2Code:"CH",datasetCode:"ch-address-ed",searchType:"validate"},{country:"Switzerland",iso3Code:"CHE",iso2Code:"CH",datasetCode:"ch-address-eh",searchType:"autocomplete"},{country:"Syria",iso3Code:"SYR",iso2Code:"SY",datasetCode:"sy-address-ed",searchType:"singleline, validate"},{country:"Syria",iso3Code:"SYR",iso2Code:"SY",datasetCode:"sy-address-eh",searchType:"autocomplete"},{country:"Taiwan",iso3Code:"TWN",iso2Code:"TW",datasetCode:"tw-address-ed",searchType:"singleline, validate"},{country:"Taiwan",iso3Code:"TWN",iso2Code:"TW",datasetCode:"tw-address-eh",searchType:"autocomplete"},{country:"Tajikistan",iso3Code:"TJK",iso2Code:"TJ",datasetCode:"tj-address-ed",searchType:"singleline, validate"},{country:"Tajikistan",iso3Code:"TJK",iso2Code:"TJ",datasetCode:"tj-address-eh",searchType:"autocomplete"},{country:"Tanzania",iso3Code:"TZA",iso2Code:"TZ",datasetCode:"tz-address-ed",searchType:"singleline, validate"},{country:"Tanzania",iso3Code:"TZA",iso2Code:"TZ",datasetCode:"tz-address-eh",searchType:"autocomplete"},{country:"Thailand",iso3Code:"THA",iso2Code:"TH",datasetCode:"th-address-ed",searchType:"singleline, validate"},{country:"Thailand",iso3Code:"THA",iso2Code:"TH",datasetCode:"th-address-eh",searchType:"autocomplete"},{country:"Timor-Leste",iso3Code:"TLS",iso2Code:"TL",datasetCode:"tl-address-ed",searchType:"singleline, validate"},{country:"Timor-Leste",iso3Code:"TLS",iso2Code:"TL",datasetCode:"tl-address-eh",searchType:"autocomplete"},{country:"Togo",iso3Code:"TGO",iso2Code:"TG",datasetCode:"tg-address-ed",searchType:"singleline, validate"},{country:"Togo",iso3Code:"TGO",iso2Code:"TG",datasetCode:"tg-address-eh",searchType:"autocomplete"},{country:"Tokelau",iso3Code:"TKL",iso2Code:"TK",datasetCode:"tk-address-ed",searchType:"singleline, validate"},{country:"Tokelau",iso3Code:"TKL",iso2Code:"TK",datasetCode:"tk-address-eh",searchType:"autocomplete"},{country:"Tonga",iso3Code:"TON",iso2Code:"TO",datasetCode:"to-address-ed",searchType:"singleline, validate"},{country:"Tonga",iso3Code:"TON",iso2Code:"TO",datasetCode:"to-address-eh",searchType:"autocomplete"},{country:"Trinidad and Tobago",iso3Code:"TTO",iso2Code:"TT",datasetCode:"tt-address-ed",searchType:"singleline, validate"},{country:"Trinidad and Tobago",iso3Code:"TTO",iso2Code:"TT",datasetCode:"tt-address-eh",searchType:"autocomplete"},{country:"Tunisia",iso3Code:"TUN",iso2Code:"TN",datasetCode:"tn-address-ed",searchType:"singleline, validate"},{country:"Tunisia",iso3Code:"TUN",iso2Code:"TN",datasetCode:"tn-address-eh",searchType:"autocomplete"},{country:"Turkey",iso3Code:"TUR",iso2Code:"TR",datasetCode:"tr-address-ed",searchType:"singleline, validate"},{country:"Turkey",iso3Code:"TUR",iso2Code:"TR",datasetCode:"tr-address-eh",searchType:"autocomplete"},{country:"Turkish Republic of Northern Cyprus",iso3Code:"NCY",iso2Code:"CY",datasetCode:"ny-address-eh",searchType:"autocomplete"},{country:"Turkmenistan",iso3Code:"TKM",iso2Code:"TM",datasetCode:"tm-address-ed",searchType:"singleline, validate"},{country:"Turkmenistan",iso3Code:"TKM",iso2Code:"TM",datasetCode:"tm-address-eh",searchType:"autocomplete"},{country:"Turks and Caicos Islands",iso3Code:"TCA",iso2Code:"TC",datasetCode:"tc-address-eh",searchType:"autocomplete"},{country:"Tuvalu",iso3Code:"TUV",iso2Code:"TV",datasetCode:"tv-address-ed",searchType:"singleline, validate"},{country:"Tuvalu",iso3Code:"TUV",iso2Code:"TV",datasetCode:"tv-address-eh",searchType:"autocomplete"},{country:"Uganda",iso3Code:"UGA",iso2Code:"UG",datasetCode:"ug-address-ed",searchType:"singleline, validate"},{country:"Uganda",iso3Code:"UGA",iso2Code:"UG",datasetCode:"ug-address-eh",searchType:"autocomplete"},{country:"Ukraine",iso3Code:"UKR",iso2Code:"UA",datasetCode:"ua-address-ed",searchType:"singleline, validate"},{country:"Ukraine",iso3Code:"UKR",iso2Code:"UA",datasetCode:"ua-address-eh",searchType:"autocomplete"},{country:"United Arab Emirates",iso3Code:"ARE",iso2Code:"AE",datasetCode:"ae-address-ed",searchType:"singleline, validate"},{country:"United Arab Emirates",iso3Code:"ARE",iso2Code:"AE",datasetCode:"ae-address-eh",searchType:"autocomplete"},{country:"United Kingdom",iso3Code:"GBR",iso2Code:"GB",datasetCode:["gb-address"],searchType:"autocomplete"},{country:"United Kingdom",iso3Code:"GBR",iso2Code:"GB",datasetCode:["gb-additional-business","gb-additional-multipleresidence","gb-additional-notyetbuilt"],searchType:"singleline"},{country:"United Kingdom AddressBase Premium",iso3Code:"GBR",iso2Code:"GB",datasetCode:"gb-address-addressbase",searchType:"singleline, typedown, validate, lookup"},{country:"United Kingdom AddressBase Premium with Islands",iso3Code:"GBR",iso2Code:"GB",datasetCode:"gb-additional-addressbaseislands",searchType:"singleline, typedown, validate, lookup"},{country:"United Kingdom Business Names",iso3Code:"GBR",iso2Code:"GB",datasetCode:"gb-additional-business",searchType:"singleline, typedown"},{country:"United Kingdom Electricity",iso3Code:"GBR",iso2Code:"GB",datasetCode:"gb-additional-electricity",searchType:"singleline, typedown, validate, lookup"},{country:"United Kingdom Gas",iso3Code:"GBR",iso2Code:"GB",datasetCode:"gb-additional-gas",searchType:"singleline, typedown, validate, lookup"},{country:"United Kingdom Street Level",iso3Code:"GBR",iso2Code:"GB",datasetCode:"gb-address-streetlevel",searchType:"singleline, typedown"},{country:"United Kingdom Extended Business",iso3Code:"GBR",iso2Code:"GB",datasetCode:"gb-additional-businessextended",searchType:"singleline, typedown, validate, lookup"},{country:"United Kingdom Cymraeg (Welsh Language) Postal Address",iso3Code:"GBR",iso2Code:"GB",datasetCode:"gb-address-wales",searchType:"singleline, typedown, validate"},{country:"United States of America",iso3Code:"USA",iso2Code:"US",datasetCode:"us-address",searchType:"autocomplete, singleline, typedown, validate"},{country:"Uruguay",iso3Code:"URY",iso2Code:"UY",datasetCode:"uy-address-ed",searchType:"singleline, validate"},{country:"Uruguay",iso3Code:"URY",iso2Code:"UY",datasetCode:"uy-address-eh",searchType:"autocomplete"},{country:"Uzbekistan",iso3Code:"UZB",iso2Code:"UZ",datasetCode:"uz-address-ed",searchType:"singleline, validate"},{country:"Uzbekistan",iso3Code:"UZB",iso2Code:"UZ",datasetCode:"uz-address-eh",searchType:"autocomplete"},{country:"Vanuatu",iso3Code:"VUT",iso2Code:"VU",datasetCode:"vu-address-ed",searchType:"singleline, validate"},{country:"Vanuatu",iso3Code:"VUT",iso2Code:"VU",datasetCode:"vu-address-eh",searchType:"autocomplete"},{country:"Vatican City (Holy See)",iso3Code:"VAT",iso2Code:"VA",datasetCode:"va-address-ed",searchType:"singleline, validate"},{country:"Vatican City (Holy See)",iso3Code:"VAT",iso2Code:"VA",datasetCode:"va-address-eh",searchType:"autocomplete"},{country:"Venezuela",iso3Code:"VEN",iso2Code:"VE",datasetCode:"ve-address-ed",searchType:"singleline, validate"},{country:"Venezuela",iso3Code:"VEN",iso2Code:"VE",datasetCode:"ve-address-eh",searchType:"autocomplete"},{country:"Viet Nam",iso3Code:"VNM",iso2Code:"VN",datasetCode:"vn-address-ed",searchType:"singleline, validate"},{country:"Viet Nam",iso3Code:"VNM",iso2Code:"VN",datasetCode:"vn-address-eh",searchType:"autocomplete"},{country:"Virgin Islands, British",iso3Code:"VGB",iso2Code:"VG",datasetCode:"vg-address-eh",searchType:"autocomplete"},{country:"Virgin Islands, U.S.",iso3Code:"VIR",iso2Code:"VI",datasetCode:"vi-address-eh",searchType:"autocomplete"},{country:"Wallis and Futuna Islands",iso3Code:"WLF",iso2Code:"WF",datasetCode:"wf-address-eh",searchType:"autocomplete"},{country:"Western Sahara",iso3Code:"ESH",iso2Code:"EH",datasetCode:"eh-address-ed",searchType:"singleline, validate"},{country:"Western Sahara",iso3Code:"ESH",iso2Code:"EH",datasetCode:"eh-address-eh",searchType:"autocomplete"},{country:"Yemen",iso3Code:"YEM",iso2Code:"YE",datasetCode:"ye-address-ed",searchType:"singleline, validate"},{country:"Yemen",iso3Code:"YEM",iso2Code:"YE",datasetCode:"ye-address-eh",searchType:"autocomplete"},{country:"Zambia",iso3Code:"ZMB",iso2Code:"ZM",datasetCode:"zm-address-ed",searchType:"singleline, validate"},{country:"Zambia",iso3Code:"ZMB",iso2Code:"ZM",datasetCode:"zm-address-eh",searchType:"autocomplete"},{country:"Zimbabwe",iso3Code:"ZWE",iso2Code:"ZW",datasetCode:"zw-address-ed",searchType:"singleline, validate"},{country:"Zimbabwe",iso3Code:"ZWE",iso2Code:"ZW",datasetCode:"zw-address-eh",searchType:"autocomplete"}],i={en:{gbr:{locality:"Town/City",region:"County",postal_code:"Post code"},usa:{locality:"City",region:"State",postal_code:"ZIP code"}}},r=function(){this.size=0,this.maxSuggestions=25},n=function(){function s(s){var o=this;this.baseUrl="https://api.experianaperture.io/",this.searchEndpoint="address/search/v1",this.lookupEndpoint="address/lookup/v2",this.validateEndpoint="address/validate/v1",this.promptsetEndpoint="address/promptsets/v1",this.stepInEndpoint="address/suggestions/stepin/v1",this.refineEndpoint="address/suggestions/refine/v1",this.enrichmentEndpoint="enrichment/v2",this.what3WordCountries=["GBR"],this.what3WordsKeyword="what3words",this.poweredByLogo={element:null,create:function(e){var s={text:"".concat(this.svg," Powered by Experian"),format:""},t=e.createListItem(s);return t.classList.add("powered-by-experian"),e.list.parentNode.appendChild(t),t},destroy:function(e){this.element&&(e.list.parentNode.removeChild(this.element),this.element=void 0)},svg:''},this.result={formattedAddressContainer:null,lastAddressField:null,generateAddressLineRequired:!1,show:function(s){if(o.searchSpinner.hide(),o.picklist.hide(),o.lastSearchTerm="",o.searchType===e.AUTOCOMPLETE||s.result.address&&"No matches"!==s.result.confidence){o.inputs.forEach((function(e){return e.value=""})),o.result.calculateIfAddressLineGenerationRequired(),o.result.formattedAddressContainer=o.options.elements.formattedAddressContainer,!o.result.formattedAddressContainer&&o.result.generateAddressLineRequired&&o.result.createFormattedAddressContainer();for(var t=0;t0)for(var s=0;s?/";:£§º©®\s]+[.。。・・︒។։။۔።।][^0-9`~!@#$%^&*()+\-_=[{\]}\\|'<,.>?/";:£§º©®\s]+[.。。・・︒។։။۔።।][^0-9`~!@#$%^&*()+\-_=[{\]}\\|'<,.>?/";:£§º©®\s]+|[^0-9`~!@#$%^&*()+\-_=[{\]}\\|'<,.>?/";:£§º©®\s]+([\u0020\u00A0][^0-9`~!@#$%^&*()+\-_=[{\]}\\|'<,.>?/";:£§º©®\s]+){1,3}[.。。・・︒។։။۔።।][^0-9`~!@#$%^&*()+\-_=[{\]}\\|'<,.>?/";:£§º©®\s]+([\u0020\u00A0][^0-9`~!@#$%^&*()+\-_=[{\]}\\|'<,.>?/";:£§º©®\s]+){1,3}[.。。・・︒។։။۔።।][^0-9`~!@#$%^&*()+\-_=[{\]}\\|'<,.>?/";:£§º©®\s]+([\u0020\u00A0][^0-9`~!@#$%^&*()+\-_=[{\]}\\|'<,.>?/";:£§º©®\s]+){1,3})$/.test(this.currentSearchTerm.trim())&&this.options.enableWhat3Words&&this.what3WordCountries.indexOf(this.currentCountryCode)>-1?(this.isWhat3Words=!0,this.currentSearchTerm=this.currentSearchTerm.trim()):(this.isWhat3Words=!1,this.shouldTriggerWhat3WordsEnrichment=!1),this.events.trigger("pre-search",this.currentSearchTerm);var o=this.isWhat3Words?this.generateLookupDataForApiCall(this.currentSearchTerm,!0):this.generateSearchDataForApiCall();this.lastSearchTerm=this.currentSearchTerm,this.searchSpinner.hide(),this.searchSpinner.show();var a=void 0,d=void 0,i=void 0;this.isWhat3Words?(a=this.baseUrl+this.lookupEndpoint,d=[],i=this.picklist.showWhat3Words):(a=this.baseUrl+(this.searchType===e.VALIDATE?this.validateEndpoint:this.searchEndpoint),d=this.searchType===e.VALIDATE?[{key:"Add-Metadata",value:!0}]:[],i=this.searchType===e.VALIDATE?this.result.handleValidateResponse:this.picklist.show),this.request.send(a,"POST",i,o,d)}else this.lastSearchTerm!==this.currentSearchTerm&&this.picklist.hide()},s.prototype.getKey=function(e){var s=e.key;switch(s){case"Down":case"ArrowDown":return"ArrowDown";case"Up":case"ArrowUp":return"ArrowUp";case"Spacebar":case" ":return" ";case"Escape":case"Esc":return"Escape";default:return s}},s.prototype.canSearch=function(){return this.options.enabled&&""!==this.currentSearchTerm&&this.currentSearchTerm.length>3&&this.lastSearchTerm!==this.currentSearchTerm&&this.currentCountryCode&&!0===this.hasSearchInputBeenReset},s.prototype.createPicklist=function(){var s=this;this.picklist=new r,this.picklist.maxSuggestions=25,this.picklist.tabCount=-1,this.picklist.show=function(t){var o;s.picklist.items=null==t?void 0:t.result.suggestions,s.picklist.handleCommonShowPicklistLogic(),(null===(o=s.picklist.items)||void 0===o?void 0:o.length)>0?(s.picklist.refine.isNeeded(t)&&s.picklist.refine.createInput(t.result.suggestions_prompt,t.result.suggestions_key),s.searchType===e.VALIDATE&&s.picklist.displaySuggestionsHeader(),s.picklist.items.forEach((function(e){var t=s.picklist.createListItem(e);s.picklist.list.appendChild(t),s.picklist.listen(t)})),s.searchType===e.VALIDATE&&s.picklist.displayUseAddressEnteredFooter(),s.picklist.scrollIntoViewIfNeeded()):s.picklist.handleEmptyPicklist(t),s.poweredByLogo.element=s.poweredByLogo.element||s.poweredByLogo.create(s.picklist),s.events.trigger("post-picklist-create",s.picklist.items)},this.picklist.showWhat3Words=function(e){var t;s.picklist.what3wordsItems=null==e?void 0:e.result.suggestions,s.picklist.handleCommonShowPicklistLogic(),(null===(t=s.picklist.what3wordsItems)||void 0===t?void 0:t.length)>0?(s.picklist.what3wordsItems.forEach((function(e){var t=s.picklist.createWhat3WordsListItem(e);s.picklist.list.appendChild(t),s.picklist.listen(t)})),s.picklist.scrollIntoViewIfNeeded()):s.picklist.handleEmptyPicklist(e),s.poweredByLogo.element=s.poweredByLogo.element||s.poweredByLogo.create(s.picklist),s.events.trigger("post-picklist-create",s.picklist.items)},this.picklist.showLookup=function(e){var t;s.isWhat3Words=!1,s.picklist.lookupItems=null==e?void 0:e.result.addresses,s.picklist.handleCommonShowPicklistLogic(),(null===(t=s.picklist.lookupItems)||void 0===t?void 0:t.length)>0?(s.picklist.lookupItems.forEach((function(e){var t=s.picklist.createLookupListItem(e);s.picklist.list.appendChild(t),s.picklist.listen(t)})),s.picklist.scrollIntoViewIfNeeded()):s.picklist.handleEmptyPicklist(e),s.poweredByLogo.element=s.poweredByLogo.element||s.poweredByLogo.create(s.picklist),s.events.trigger("post-picklist-create",s.picklist.items)},this.picklist.handleCommonShowPicklistLogic=function(){var e;s.picklist.currentItem=null,s.picklist.size=null===(e=s.picklist.items)||void 0===e?void 0:e.length,s.picklist.resetTabCount(),s.searchSpinner.hide(),s.picklist.list=s.picklist.list||s.picklist.createList(),s.picklist.list.innerHTML="",s.picklist.useAddressEntered.destroy(),s.events.trigger("pre-picklist-create",s.picklist.items)},this.picklist.hide=function(){if(s.picklist.currentItem=null,s.picklist.useAddressEntered.destroy(),s.poweredByLogo.destroy(s.picklist),s.inputs){var t=s.searchType===e.SINGLELINE?s.inputs.length-1:0;s.inputs[t].classList.remove("showing-suggestions")}s.picklist.list&&(s.picklist.container.remove(),s.picklist.list=void 0)},this.picklist.handleEmptyPicklist=function(e){var t;s.picklist.useAddressEntered.element=s.picklist.useAddressEntered.element||s.picklist.useAddressEntered.create(null===(t=e.result)||void 0===t?void 0:t.confidence),s.picklist.scrollIntoViewIfNeeded(),"function"==typeof s.picklist.handleEmptyPicklistCallback&&s.picklist.handleEmptyPicklistCallback()},this.picklist.displaySuggestionsHeader=function(){var e=document.querySelector(".picklist-suggestions-header")||document.createElement("div");e.classList.add("picklist-suggestions-header"),e.innerText="Suggestions:",s.picklist.list.parentNode.insertBefore(e,s.picklist.list)},this.picklist.displayUseAddressEnteredFooter=function(){var e=document.querySelector(".picklist-use-entered-container")||document.createElement("div");e.classList.add("picklist-use-entered-container"),s.picklist.list.parentNode.insertBefore(e,s.picklist.list.nextElementSibling);var t=document.querySelector(".picklist-use-entered-header")||document.createElement("div");t.classList.add("picklist-use-entered-header"),t.innerText="Or use address entered:",e.appendChild(t);var o=document.querySelector(".picklist-use-entered-option")||document.createElement("div");o.classList.add("picklist-use-entered-option"),o.innerText=s.currentSearchTerm.replace(/,+/g,", "),o.addEventListener("click",s.picklist.useAddressEntered.click),e.appendChild(o)},this.picklist.scrollIntoViewIfNeeded=function(){var e=s.picklist.container.getBoundingClientRect().top<0,t=s.picklist.container.getBoundingClientRect().bottom>window.innerHeight;(e||t)&&s.picklist.container.scrollIntoView()},this.picklist.useAddressEntered={element:null,create:function(e){var t={text:"".concat(e," ").concat(s.options.useAddressEnteredText)},o=s.picklist.createListItem(t);return o.classList.add("use-address-entered"),o.setAttribute("title","Enter address manually"),s.picklist.list=s.picklist.list||s.picklist.createList(),s.picklist.list.parentNode.insertBefore(o,s.picklist.container.firstChild),o.addEventListener("click",s.picklist.useAddressEntered.click),o},destroy:function(){s.picklist.useAddressEntered.element&&(s.picklist.list.parentNode.removeChild(s.picklist.useAddressEntered.element),s.picklist.useAddressEntered.element=void 0)},click:function(){var e={result:{confidence:"No matches",address:{address_line_1:"",address_line_2:"",address_line_3:"",locality:"",region:"",postal_code:"",country:""}}};if(s.currentSearchTerm){var t=s.currentSearchTerm.split(",");t[0]&&(e.result.address.address_line_1=t[0]),t[1]&&(e.result.address.address_line_2=t[1]),t[2]&&(e.result.address.address_line_3=t[2]);for(var o=3;oa.length-1&&(s.picklist.tabCount=0,t=!0);var d=a[s.picklist.tabCount],i=s.picklist.list.querySelector(".selected");i&&i.classList.remove("selected"),d.classList.add("selected"),s.picklist.currentItem=d;var r=s.picklist.list.offsetTop,n=s.picklist.list.offsetTop+s.picklist.list.offsetHeight,c=s.picklist.list.scrollTop,l=d.offsetTop,C=d.offsetTop+d.offsetHeight,u=d.offsetHeight;t?s.picklist.list.scrollTop=0:o?s.picklist.list.scrollTop=999:C+u>n?s.picklist.list.scrollTop=c+u:l-u-r";t=t.substring(0,s[o][0])+a+t.substring(s[o][1])}return t},this.picklist.listen=function(e){e.addEventListener("click",s.picklist.pick.bind(null,e))},this.picklist.checkEnter=function(e){if("Enter"===e.key||"Tab"===e.key){var t=void 0;1===s.picklist.size?t=s.picklist.list.querySelectorAll("div")[0]:s.picklist.currentItem&&(t=s.picklist.currentItem),t&&s.picklist.pick(t)}},this.picklist.pick=function(e){s.events.trigger("post-picklist-selection",e);var t=e.getElementsByTagName("div");s.isWhat3Words?s.lookup(t[0].innerHTML):e.getAttribute("format")?s.format(e.getAttribute("format")):s.refine(e.getAttribute("refine"))}},s.prototype.format=function(e){this.events.trigger("pre-formatting-search",e),this.searchSpinner.hide(),this.request.send(e,"GET",this.result.show,void 0,[{key:"Add-Metadata",value:!0}])},s.prototype.refine=function(e){this.events.trigger("pre-refinement",e),this.searchSpinner.hide(),this.request.send("".concat(this.baseUrl).concat(this.stepInEndpoint,"/").concat(e),"GET",this.picklist.show)},s.prototype.lookup=function(e){this.events.trigger("pre-lookup",e),this.searchSpinner.hide();var s=this.generateLookupDataForApiCall(e,!1),t=this.baseUrl+this.lookupEndpoint,o=this.picklist.showLookup;this.shouldTriggerWhat3WordsEnrichment=!0,this.request.send(t,"POST",o,s,[{key:"Add-Addresses",value:!0}])},s.prototype.checkTab=function(e){var s=this.getKey(e);"Tab"!==s?"Enter"===s&&e.preventDefault():this.picklist.keyup(e)},s.prototype.toggleSearchInputs=function(e){var s,t,o,a="show"===e?"remove":"add";null===(s=this.options.elements.inputs)||void 0===s||s.forEach((function(e){return e.parentNode.querySelectorAll(".toggle").forEach((function(e){return e.classList[a]("hidden")}))})),null===(t=this.options.elements.countryList)||void 0===t||t.parentNode.querySelectorAll(".toggle").forEach((function(e){return e.classList[a]("hidden")})),null===(o=this.options.elements.lookupButton)||void 0===o||o.parentNode.querySelectorAll(".toggle").forEach((function(e){return e.classList[a]("hidden")}))},s.prototype.globalReset=function(e){e&&e.preventDefault(),this.options.enabled=!0,this.result.hide(),this.hasSearchInputBeenReset=!0,this.inputs.forEach((function(e){return e.value=""})),this.picklist.hide(),this.toggleSearchInputs("show"),this.inputs[0].focus(),this.events.trigger("post-reset")},s}();window.AddressValidation=n}(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Z0JBQy9GLENBQUNrQixRQUFTLGFBQWNDLFNBQVUsTUFBT0MsU0FBVSxLQUFNQyxZQUFhLGdCQUFpQnJCLFdBQVksd0JBQ25HLENBQUNrQixRQUFTLGFBQWNDLFNBQVUsTUFBT0MsU0FBVSxLQUFNQyxZQUFhLGdCQUFpQnJCLFdBQVksZ0JBQ25HLENBQUNrQixRQUFTLE9BQVFDLFNBQVUsTUFBT0MsU0FBVSxLQUFNQyxZQUFhLGdCQUFpQnJCLFdBQVksd0JBQzdGLENBQUNrQixRQUFTLE9BQVFDLFNBQVUsTUFBT0MsU0FBVSxLQUFNQyxZQUFhLGdCQUFpQnJCLFdBQVksZ0JBQzdGLENBQUNrQixRQUFTLFNBQVVDLFNBQVUsTUFBT0MsU0FBVSxLQUFNQyxZQUFhLGdCQUFpQnJCLFdBQVksd0JBQy9GLENBQUNrQixRQUFTLFNBQVVDLFNBQVUsTUFBT0MsU0FBVSxLQUFNQyxZQUFhLGdCQUFpQnJCLFdBQVksZ0JBQy9GLENBQUNrQixRQUFTLFVBQVdDLFNBQVUsTUFBT0MsU0FBVSxLQUFNQyxZQUFhLGdCQUFpQnJCLFdBQVksd0JBQ2hHLENBQUNrQixRQUFTLFVBQVdDLFNBQVUsTUFBT0MsU0FBVSxLQUFNQyxZQUFhLGdCQUFpQnJCLFdBQVksZ0JBQ2hHLENBQUNrQixRQUFTLFVBQVdDLFNBQVUsTUFBT0MsU0FBVSxLQUFNQyxZQUFhLGdCQUFpQnJCLFdBQVksd0JBQ2hHLENBQUNrQixRQUFTLFVBQVdDLFNBQVUsTUFBT0MsU0FBVSxLQUFNQyxZQUFhLGdCQUFpQnJCLFdBQVksZ0JBQ2hHLENBQUNrQixRQUFTLFVBQVdDLFNBQVUsTUFBT0MsU0FBVSxLQUFNQyxZQUFhLGdCQUFpQnJCLFdBQVksd0JBQ2hHLENBQUNrQixRQUFTLFVBQVdDLFNBQVUsTUFBT0MsU0FBVSxLQUFNQyxZQUFhLGdCQUFpQnJCLFdBQVksZ0JBQ2hHLENBQUNrQixRQUFTLFFBQVNDLFNBQVUsTUFBT0MsU0FBVSxLQUFNQyxZQUFhLGdCQUFpQnJCLFdBQVksd0JBQzlGLENBQUNrQixRQUFTLFFBQVNDLFNBQVUsTUFBT0MsU0FBVSxL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VSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSxnQkFDaEcsQ0FBQ2tCLFFBQVMsYUFBY0MsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSx3QkFDbkcsQ0FBQ2tCLFFBQVMsYUFBY0MsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSxnQkFDbkcsQ0FBQ2tCLFFBQVMsVUFBV0MsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSx3QkFDaEcsQ0FBQ2tCLFFBQVMsVUFBV0MsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSxnQkFDaEcsQ0FBQ2tCLFFBQVMsVUFBV0MsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSx3QkFDaEcsQ0FBQ2tCLFFBQVMsVUFBV0MsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSxnQkFDaEcsQ0FBQ2tCLFFBQVMsUUFBU0MsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSx3QkFDOUYsQ0FBQ2tCLFFBQVMsUUFBU0MsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSxnQkFDOUYsQ0FBQ2tCLFFBQVMsUUFBU0MsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSx3QkFDOUYsQ0FBQ2tCLFFBQVMsUUFBU0MsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSxnQkFDOUYsQ0FBQ2tCLFFBQVMsY0FBZUMsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSx3QkFDcEcsQ0FBQ2tCLFFBQVMsY0FBZUMsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSxnQkFDcEcsQ0FBQ2tCLFFBQVMsZ0JBQWlCQyxTQUFVLE1BQU9DLFNBQVUsS0FBTUMsWUFBYSxnQkFBaUJyQixXQUFZLGdC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QixHQUFTLE9BQUFBLEVBQU1tRCxXQUFXc04saUJBQWlCLFdBQVc1UixTQUFRLFNBQUEyRCxHQUFXLE9BQUFBLEVBQVFRLFVBQVV5TyxHQUFVLGdCQUMxRyxRQUFqQyxFQUFBcFUsS0FBS3NCLFFBQVFzRixTQUFTZ0gsbUJBQVcsU0FBRTlILFdBQVdzTixpQkFBaUIsV0FBVzVSLFNBQVEsU0FBQTJELEdBQVcsT0FBQUEsRUFBUVEsVUFBVXlPLEdBQVUsYUFDdkYsUUFBbEMsRUFBQXBVLEtBQUtzQixRQUFRc0YsU0FBU3VHLG9CQUFZLFNBQUVySCxXQUFXc04saUJBQWlCLFdBQVc1UixTQUFRLFNBQUEyRCxHQUFXLE9BQUFBLEVBQVFRLFVBQVV5TyxHQUFVLGNBR3BILFlBQUExSyxZQUFSLFNBQW9CNUosR0FDZEEsR0FDRkEsRUFBTThPLGlCQUdSNU8sS0FBS3NCLFFBQVEwSyxTQUFVLEVBRXZCaE0sS0FBS21HLE9BQU9oRSxPQUVabkMsS0FBS21ILHlCQUEwQixFQUcvQm5ILEtBQUswRyxPQUFPbEYsU0FBUSxTQUFBbUIsR0FBUyxPQUFBQSxFQUFNaEIsTUFBUSxNQUUzQzNCLEtBQUtxRixTQUFTbEQsT0FFZG5DLEtBQUtrSCxtQkFBbUIsUUFFeEJsSCxLQUFLMEcsT0FBTyxHQUFHaUgsUUFHZjNOLEtBQUtvQyxPQUFPbEMsUUFBUSxlQUV4QixFQTE0Q0EsR0NDQTJSLE9BQU93QyxrQkFBb0IsRSIsInNvdXJjZXMiOlsid2VicGFjazovL2V4cGVyaWFuLWFkZHJlc3MtdmFsaWRhdGlvbi8uL3NyYy90cy9ldmVudC1mYWN0b3J5LnRzIiwid2VicGFjazovL2V4cGVyaWFuLWFkZHJlc3MtdmFsaWRhdGlvbi8uL3NyYy90cy9zZWFyY2gtb3B0aW9ucy50cyIsIndlYnBhY2s6Ly9leHBlcmlhbi1hZGRyZXNzLXZhbGlkYXRpb24vLi9zcmMvdHMvcmVxdWVzdC50cyIsIndlYnBhY2s6Ly9leHBlcmlhbi1hZGRyZXNzLXZhbGlkYXRpb24vLi9zcmMvdHMvZGF0YXNldHMtY29kZXMudHMiLCJ3ZWJwYWNrOi8vZXhwZXJpYW4tYWRkcmVzcy12YWxpZGF0aW9uLy4vc3JjL3RzL3RyYW5zbGF0aW9ucy50cyIsIndlYnBhY2s6Ly9leHBlcmlhbi1hZGRyZXNzLXZhbGlkYXRpb24vLi9zcmMvdHMvY2xhc3MtdHlwZXMudHMiLCJ3ZWJwYWNrOi8vZXhwZXJpYW4tYWRkcmVzcy12YWxpZGF0aW9uLy4vc3JjL3RzL2FkZHJlc3Mtc2VhcmNoLnRzIiwid2VicGFjazovL2V4cGVyaWFuLWFkZHJlc3MtdmFsaWRhdGlvbi8uL3NyYy90cy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE1ldGhvZCBldmVudCBsaXN0ZW5lciAocHViL3N1YiB0eXBlIHRoaW5nKVxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFdmVudEZhY3Rvcnkge1xuICAvLyBDcmVhdGUgYW4gb2JqZWN0IHRvIGhvbGQgdGhlIGNvbGxlY3Rpb24gb2YgZXZlbnRzXG4gIGNvbGxlY3Rpb24gPSB7fTtcblxuICAvLyBTdWJzY3JpYmUgYSBuZXcgZXZlbnRcbiAgb24oZXZlbnQsIGFjdGlvbikge1xuICAgIC8vIENyZWF0ZSB0aGUgcHJvcGVydHkgYXJyYXkgb24gdGhlIGNvbGxlY3Rpb24gb2JqZWN0XG4gICAgdGhpcy5jb2xsZWN0aW9uW2V2ZW50XSA9IHRoaXMuY29sbGVjdGlvbltldmVudF0gfHwgW107XG4gICAgLy8gUHVzaCBhIG5ldyBhY3Rpb24gZm9yIHRoaXMgZXZlbnQgb250byB0aGUgYXJyYXlcbiAgICB0aGlzLmNvbGxlY3Rpb25bZXZlbnRdLnB1c2goYWN0aW9uKTtcbiAgfVxuXG4gIC8vIFB1Ymxpc2ggKHRyaWdnZXIpIGFuIGV2ZW50XG4gIHRyaWdnZXIoZXZlbnQsIGRhdGEpIHtcbiAgICAvLyBJZiB0aGlzIGV2ZW50IGlzIGluIG91ciBjb2xsZWN0aW9uIChpLmUuIGFueW9uZSdzIHN1YnNjcmliZWQpXG4gICAgaWYgKHRoaXMuY29sbGVjdGlvbltldmVudF0pIHtcbiAgICAgIC8vIExvb3Agb3ZlciBhbGwgdGhlIGFjdGlvbnMgZm9yIHRoaXMgZXZlbnRcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jb2xsZWN0aW9uW2V2ZW50XS5sZW5ndGg7IGkrKykge1xuICAgICAgICAvLyBDcmVhdGUgYXJyYXkgd2l0aCBkZWZhdWx0IGRhdGEgYXMgMXN0IGl0ZW1cbiAgICAgICAgY29uc3QgYXJncyA9IFtkYXRhXTtcblxuICAgICAgICAvLyBMb29wIG92ZXIgYWRkaXRpb25hbCBhcmdzIGFuZCBhZGQgdG8gYXJyYXlcbiAgICAgICAgZm9yIChsZXQgYSA9IDI7IGEgPCBhcmd1bWVudHMubGVuZ3RoOyBhKyspIHtcbiAgICAgICAgICBhcmdzLnB1c2goYXJndW1lbnRzW2FdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENhbGwgZWFjaCBhY3Rpb24gZm9yIHRoaXMgZXZlbnQgdHlwZSwgcGFzc2luZyB0aGUgYXJnc1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHRoaXMuY29sbGVjdGlvbltldmVudF1baV0uYXBwbHkodGhpcy5jb2xsZWN0aW9uLCBhcmdzKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIC8vIFdoYXQgdG8gZG8/IFVuY29tbWVudCB0aGUgYmVsb3cgdG8gc2hvdyBlcnJvcnMgaW4geW91ciBldmVudCBhY3Rpb25zXG4gICAgICAgICAgLy9jb25zb2xlLmVycm9yKGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJleHBvcnQgaW50ZXJmYWNlIEFkZHJlc3NTZWFyY2hPcHRpb25zIHtcclxuICBlbmFibGVkOiBib29sZWFuO1xyXG4gIHRva2VuOiBzdHJpbmc7XHJcbiAgZW5hYmxlV2hhdDNXb3JkczogYm9vbGVhbjtcclxuICBzZWFyY2hUeXBlOiBBZGRyZXNzVmFsaWRhdGlvbk1vZGU7XHJcbiAgbWF4U3VnZ2VzdGlvbnM6IG51bWJlcjtcclxuICBsYW5ndWFnZTogc3RyaW5nO1xyXG4gIGxvY2F0aW9uOiBzdHJpbmc7XHJcbiAgdXNlU3Bpbm5lcjogYm9vbGVhbjtcclxuICBjb3VudHJ5Q29kZT86IHN0cmluZztcclxuICBjb3VudHJ5Q29kZU1hcHBpbmc/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xyXG4gIGFwcGx5Rm9jdXM6IGJvb2xlYW47XHJcbiAgcGxhY2Vob2xkZXJUZXh0OiBzdHJpbmc7XHJcbiAgdXNlQWRkcmVzc0VudGVyZWRUZXh0OiBzdHJpbmc7XHJcbiAgc2VhcmNoQWdhaW46IHsgdmlzaWJsZT86IGJvb2xlYW4sIHRleHQ/OiBzdHJpbmcsIGxpbms/OiBIVE1MQnV0dG9uRWxlbWVudCB9O1xyXG4gIGZvcm1hdHRlZEFkZHJlc3NDb250YWluZXI6IHsgc2hvd0hlYWRpbmc6IGJvb2xlYW4sIGhlYWRpbmdUeXBlOiBzdHJpbmcsIHZhbGlkYXRlZEhlYWRpbmdUZXh0OiBzdHJpbmcsIG1hbnVhbEhlYWRpbmdUZXh0OiBzdHJpbmcgfTtcclxuICBlbGVtZW50czogeyBpbnB1dD86IEhUTUxJbnB1dEVsZW1lbnQsIGlucHV0cz86IEhUTUxJbnB1dEVsZW1lbnRbXSwgY291bnRyeUxpc3Q/OiBIVE1MU2VsZWN0RWxlbWVudCwgYWRkcmVzc19saW5lXzE/OiBIVE1MSW5wdXRFbGVtZW50LCBhZGRyZXNzX2xpbmVfMj86IEhUTUxJbnB1dEVsZW1lbnQsIGFkZHJlc3NfbGluZV8zPzogSFRNTElucHV0RWxlbWVudCwgbG9jYWxpdHk/OiBIVE1MSW5wdXRFbGVtZW50LCByZWdpb24/OiBIVE1MSW5wdXRFbGVtZW50LCBwb3N0YWxfY29kZT86IEhUTUxJbnB1dEVsZW1lbnQsIGNvdW50cnk/OiBIVE1MSW5wdXRFbGVtZW50LCBmb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyPzogSFRNTEVsZW1lbnQsIGxvb2t1cEJ1dHRvbj86IEhUTUxCdXR0b25FbGVtZW50IH07XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEFkZHJlc3NWYWxpZGF0aW9uTW9kZSB7XHJcbiAgQVVUT0NPTVBMRVRFID0gJ2F1dG9jb21wbGV0ZScsXHJcbiAgU0lOR0xFTElORSA9ICdzaW5nbGVsaW5lJyxcclxuICBWQUxJREFURSA9ICd2YWxpZGF0ZSdcclxufVxyXG5cclxuLy8gRGVmYXVsdCBzZXR0aW5nc1xyXG5leHBvcnQgY29uc3QgZGVmYXVsdHMgPSB7XHJcbiAgZW5hYmxlV2hhdDNXb3JkczogdHJ1ZSxcclxuICBzZWFyY2hUeXBlOiBBZGRyZXNzVmFsaWRhdGlvbk1vZGUuQVVUT0NPTVBMRVRFLFxyXG4gIGlucHV0OiB7IHBsYWNlaG9sZGVyVGV4dDogJ1N0YXJ0IHR5cGluZyBhbiBhZGRyZXNzLi4uJywgYXBwbHlGb2N1czogZmFsc2UgfSxcclxuICBmb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyOiB7IHNob3dIZWFkaW5nOiBmYWxzZSwgaGVhZGluZ1R5cGU6ICdoMycsIHZhbGlkYXRlZEhlYWRpbmdUZXh0OiAnVmFsaWRhdGVkIGFkZHJlc3MnLCBtYW51YWxIZWFkaW5nVGV4dDogJ01hbnVhbCBhZGRyZXNzIGVudGVyZWQnIH0sXHJcbiAgc2VhcmNoQWdhaW46IHsgdmlzaWJsZTogdHJ1ZSwgdGV4dDogJ1NlYXJjaCBhZ2FpbicgfSxcclxuICB1c2VBZGRyZXNzRW50ZXJlZFRleHQ6ICc8ZW0+IC0gVXNlIGFkZHJlc3MgZW50ZXJlZCBvciB0cnkgYWdhaW4uLi48L2VtPicsXHJcbiAgdXNlU3Bpbm5lcjogZmFsc2UsXHJcbiAgbGFuZ3VhZ2U6ICdlbicsXHJcbiAgYWRkcmVzc0xpbmVMYWJlbHM6IFtcclxuICAgICdhZGRyZXNzX2xpbmVfMScsXHJcbiAgICAnYWRkcmVzc19saW5lXzInLFxyXG4gICAgJ2FkZHJlc3NfbGluZV8zJyxcclxuICAgICdsb2NhbGl0eScsXHJcbiAgICAncmVnaW9uJyxcclxuICAgICdwb3N0YWxfY29kZScsXHJcbiAgICAnY291bnRyeSdcclxuICBdXHJcbn07IiwiZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVxdWVzdCB7XG4gIGluc3RhbmNlO1xuICBjb25zdHJ1Y3RvcihpbnN0YW5jZSkge1xuICAgIHRoaXMuaW5zdGFuY2UgPSBpbnN0YW5jZTtcbiAgfVxuXG4gIHB1YmxpYyBjdXJyZW50UmVxdWVzdDtcblxuXG4gIHB1YmxpYyBzZW5kKHVybDogc3RyaW5nLCBtZXRob2Q6ICdHRVQnIHwgJ1BPU1QnLCBjYWxsYmFjazogKGRhdGE6IG9iamVjdCkgPT4gdm9pZCwgZGF0YT86IHN0cmluZywgaGVhZGVyczoge2tleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgYm9vbGVhbn1bXSA9IFtdKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50UmVxdWVzdCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xuICAgIHRoaXMuY3VycmVudFJlcXVlc3Qub3BlbihtZXRob2QsIHVybCwgdHJ1ZSk7XG4gICAgdGhpcy5jdXJyZW50UmVxdWVzdC50aW1lb3V0ID0gNTAwMDsgLy8gNSBzZWNvbmRzXG4gICAgdGhpcy5jdXJyZW50UmVxdWVzdC5zZXRSZXF1ZXN0SGVhZGVyKCdhdXRoLXRva2VuJywgdGhpcy5pbnN0YW5jZS5vcHRpb25zLnRva2VuKTtcbiAgICB0aGlzLmN1cnJlbnRSZXF1ZXN0LnNldFJlcXVlc3RIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XG4gICAgdGhpcy5jdXJyZW50UmVxdWVzdC5zZXRSZXF1ZXN0SGVhZGVyKCdBY2NlcHQnLCAnYXBwbGljYXRpb24vanNvbicpO1xuXG4gICAgLy8gQWRkIGFkZGl0aW9uYWwgaGVhZGVycyBpZiBzdXBwbGllZFxuICAgIGhlYWRlcnMuZm9yRWFjaChoZWFkZXIgPT4gdGhpcy5jdXJyZW50UmVxdWVzdC5zZXRSZXF1ZXN0SGVhZGVyKGhlYWRlci5rZXksIGhlYWRlci52YWx1ZSkpO1xuXG4gICAgdGhpcy5jdXJyZW50UmVxdWVzdC5vbmxvYWQgPSAoeGhyKSA9PiB7XG4gICAgICBpZiAodGhpcy5jdXJyZW50UmVxdWVzdC5zdGF0dXMgPj0gMjAwICYmIHRoaXMuY3VycmVudFJlcXVlc3Quc3RhdHVzIDwgNDAwKSB7XG4gICAgICAgIC8vIFN1Y2Nlc3MhXG4gICAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKHRoaXMuY3VycmVudFJlcXVlc3QucmVzcG9uc2VUZXh0KTtcbiAgICAgICAgY2FsbGJhY2soZGF0YSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBXZSByZWFjaGVkIG91ciB0YXJnZXQgc2VydmVyLCBidXQgaXQgcmV0dXJuZWQgYW4gZXJyb3JcbiAgICAgICAgdGhpcy5pbnN0YW5jZS5zZWFyY2hTcGlubmVyLmhpZGUoKTtcblxuICAgICAgICAvLyBGaXJlIGFuIGV2ZW50IHRvIG5vdGlmeSB1c2VycyBvZiBhIGdlbmVyYWwgZXJyb3JcbiAgICAgICAgdGhpcy5pbnN0YW5jZS5ldmVudHMudHJpZ2dlcigncmVxdWVzdC1lcnJvcicsIHhocik7XG4gICAgICAgIC8vIEZpcmUgYW4gZXZlbnQgZm9yIHRoZSBzcGVjaWZpYyBzdGF0dXMgY29kZVxuICAgICAgICB0aGlzLmluc3RhbmNlLmV2ZW50cy50cmlnZ2VyKGByZXF1ZXN0LWVycm9yLSR7dGhpcy5jdXJyZW50UmVxdWVzdC5zdGF0dXN9YCwgeGhyKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdGhpcy5jdXJyZW50UmVxdWVzdC5vbmVycm9yID0gKHhocikgPT4ge1xuICAgICAgLy8gVGhlcmUgd2FzIGEgY29ubmVjdGlvbiBlcnJvciBvZiBzb21lIHNvcnRcbiAgICAgIC8vIEhpZGUgdGhlIGlubGluZSBzZWFyY2ggc3Bpbm5lclxuICAgICAgdGhpcy5pbnN0YW5jZS5zZWFyY2hTcGlubmVyLmhpZGUoKTtcblxuICAgICAgLy8gRmlyZSBhbiBldmVudCB0byBub3RpZnkgdXNlcnMgb2YgYW4gZXJyb3JcbiAgICAgIHRoaXMuaW5zdGFuY2UuZXZlbnRzLnRyaWdnZXIoJ3JlcXVlc3QtZXJyb3InLCB4aHIpO1xuICAgIH07XG5cbiAgICB0aGlzLmN1cnJlbnRSZXF1ZXN0Lm9udGltZW91dCA9ICh4aHIpID0+IHtcbiAgICAgIC8vIFRoZXJlIHdhcyBhIGNvbm5lY3Rpb24gdGltZW91dFxuICAgICAgLy8gSGlkZSB0aGUgaW5saW5lIHNlYXJjaCBzcGlubmVyXG4gICAgICB0aGlzLmluc3RhbmNlLnNlYXJjaFNwaW5uZXIuaGlkZSgpO1xuXG4gICAgICAvLyBGaXJlIGFuIGV2ZW50IHRvIG5vdGlmeSB1c2VycyBvZiB0aGUgdGltZW91dFxuICAgICAgdGhpcy5pbnN0YW5jZS5ldmVudHMudHJpZ2dlcigncmVxdWVzdC10aW1lb3V0JywgeGhyKTtcbiAgICB9O1xuXG4gICAgdGhpcy5jdXJyZW50UmVxdWVzdC5zZW5kKGRhdGEpO1xuICB9XG59IiwiZXhwb3J0IGNvbnN0IGRhdGFzZXRDb2RlcyA9IFtcbiAge2NvdW50cnk6ICdBZmdoYW5pc3RhbicsIGlzbzNDb2RlOiAnQUZHJywgaXNvMkNvZGU6ICdBRicsIGRhdGFzZXRDb2RlOiAnYWYtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0FmZ2hhbmlzdGFuJywgaXNvM0NvZGU6ICdBRkcnLCBpc28yQ29kZTogJ0FGJywgZGF0YXNldENvZGU6ICdhZi1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0FsYmFuaWEnLCBpc28zQ29kZTogJ0FMQicsIGlzbzJDb2RlOiAnQUwnLCBkYXRhc2V0Q29kZTogJ2FsLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdBbGJhbmlhJywgaXNvM0NvZGU6ICdBTEInLCBpc28yQ29kZTogJ0FMJywgZGF0YXNldENvZGU6ICdhbC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0FsZ2VyaWEnLCBpc28zQ29kZTogJ0RaQScsIGlzbzJDb2RlOiAnRFonLCBkYXRhc2V0Q29kZTogJ2R6LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdBbGdlcmlhJywgaXNvM0NvZGU6ICdEWkEnLCBpc28yQ29kZTogJ0RaJywgZGF0YXNldENvZGU6ICdkei1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0FtZXJpY2FuIFNhbW9hJywgaXNvM0NvZGU6ICdBU00nLCBpc28yQ29kZTogJ0FTJywgZGF0YXNldENvZGU6ICdhcy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0FuZG9ycmEnLCBpc28zQ29kZTogJ0FORCcsIGlzbzJDb2RlOiAnQUQnLCBkYXRhc2V0Q29kZTogJ2FkLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdBbmRvcnJhJywgaXNvM0NvZGU6ICdBTkQnLCBpc28yQ29kZTogJ0FEJywgZGF0YXNldENvZGU6ICdhZC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0FuZ29sYScsIGlzbzNDb2RlOiAnQUdPJywgaXNvMkNvZGU6ICdBTycsIGRhdGFzZXRDb2RlOiAnYW8tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0FuZ29sYScsIGlzbzNDb2RlOiAnQUdPJywgaXNvMkNvZGU6ICdBTycsIGRhdGFzZXRDb2RlOiAnYW8tYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdBbmd1aWxsYScsIGlzbzNDb2RlOiAnQUlBJywgaXNvMkNvZGU6ICdBSScsIGRhdGFzZXRDb2RlOiAnYWktYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdBbnRhcmN0aWNhJywgaXNvM0NvZGU6ICdBVEEnLCBpc28yQ29kZTogJ0FRJywgZGF0YXNldENvZGU6ICdhcS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnQW50aWd1YSBhbmQgQmFyYnVkYScsIGlzbzNDb2RlOiAnQVRHJywgaXNvMkNvZGU6ICdBRycsIGRhdGFzZXRDb2RlOiAnYWctYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0FudGlndWEgYW5kIEJhcmJ1ZGEnLCBpc28zQ29kZTogJ0FURycsIGlzbzJDb2RlOiAnQUcnLCBkYXRhc2V0Q29kZTogJ2FnLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnQXJnZW50aW5hJywgaXNvM0NvZGU6ICdBUkcnLCBpc28yQ29kZTogJ0FSJywgZGF0YXNldENvZGU6ICdhci1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnQXJnZW50aW5hJywgaXNvM0NvZGU6ICdBUkcnLCBpc28yQ29kZTogJ0FSJywgZGF0YXNldENvZGU6ICdhci1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0FybWVuaWEnLCBpc28zQ29kZTogJ0FSTScsIGlzbzJDb2RlOiAnQU0nLCBkYXRhc2V0Q29kZTogJ2FtLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdBcm1lbmlhJywgaXNvM0NvZGU6ICdBUk0nLCBpc28yQ29kZTogJ0FNJywgZGF0YXNldENvZGU6ICdhbS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0FydWJhJywgaXNvM0NvZGU6ICdBQlcnLCBpc28yQ29kZTogJ0FXJywgZGF0YXNldENvZGU6ICdhdy1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnQXJ1YmEnLCBpc28zQ29kZTogJ0FCVycsIGlzbzJDb2RlOiAnQVcnLCBkYXRhc2V0Q29kZTogJ2F3LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnQXVzdHJhbGlhIERhdGFGdXNpb24nLCBpc28zQ29kZTogJ0FVUycsIGlzbzJDb2RlOiAnQVUnLCBkYXRhc2V0Q29kZTogJ2F1LWFkZHJlc3MtZGF0YWZ1c2lvbicsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUsIHNpbmdsZWxpbmUsIHR5cGVkb3duJ30sXG4gIHtjb3VudHJ5OiAnQXVzdHJhbGlhIEdlb2NvZGVkIE5hdGlvbmFsIEFkZHJlc3MnLCBpc28zQ29kZTogJ0FVUycsIGlzbzJDb2RlOiAnQVUnLCBkYXRhc2V0Q29kZTogJ2F1LWFkZHJlc3MtZ25hZicsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUsIHNpbmdsZWxpbmUsIHR5cGVkb3duLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0F1c3RyYWxpYSBQb3N0YWwgQWRkcmVzcycsIGlzbzNDb2RlOiAnQVVTJywgaXNvMkNvZGU6ICdBVScsIGRhdGFzZXRDb2RlOiAnYXUtYWRkcmVzcycsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUsIHNpbmdsZWxpbmUsIHR5cGVkb3duLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0F1c3RyaWEnLCBpc28zQ29kZTogJ0FVVCcsIGlzbzJDb2RlOiAnQVQnLCBkYXRhc2V0Q29kZTogJ2F0LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnQXVzdHJpYScsIGlzbzNDb2RlOiAnQVVUJywgaXNvMkNvZGU6ICdBVCcsIGRhdGFzZXRDb2RlOiAnYXotYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0F6ZXJiYWlqYW4nLCBpc28zQ29kZTogJ0FaRScsIGlzbzJDb2RlOiAnQVonLCBkYXRhc2V0Q29kZTogJ2F6LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdBemVyYmFpamFuJywgaXNvM0NvZGU6ICdBWkUnLCBpc28yQ29kZTogJ0FaJywgZGF0YXNldENvZGU6ICdhei1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0JhaGFtYXMnLCBpc28zQ29kZTogJ0JIUycsIGlzbzJDb2RlOiAnQlMnLCBkYXRhc2V0Q29kZTogJ2JzLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdCYWhhbWFzJywgaXNvM0NvZGU6ICdCSFMnLCBpc28yQ29kZTogJ0JTJywgZGF0YXNldENvZGU6ICdicy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0JhaHJhaW4nLCBpc28zQ29kZTogJ0JIUicsIGlzbzJDb2RlOiAnQkgnLCBkYXRhc2V0Q29kZTogJ2JoLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdCYWhyYWluJywgaXNvM0NvZGU6ICdCSFInLCBpc28yQ29kZTogJ0JIJywgZGF0YXNldENvZGU6ICdiaC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0JhbmdsYWRlc2gnLCBpc28zQ29kZTogJ0JHRCcsIGlzbzJDb2RlOiAnQkQnLCBkYXRhc2V0Q29kZTogJ2JkLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdCYW5nbGFkZXNoJywgaXNvM0NvZGU6ICdCR0QnLCBpc28yQ29kZTogJ0JEJywgZGF0YXNldENvZGU6ICdiZC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0JhcmJhZG9zJywgaXNvM0NvZGU6ICdCUkInLCBpc28yQ29kZTogJ0JCJywgZGF0YXNldENvZGU6ICdiYi1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnQmFyYmFkb3MnLCBpc28zQ29kZTogJ0JSQicsIGlzbzJDb2RlOiAnQkInLCBkYXRhc2V0Q29kZTogJ2JiLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnQmVsYXJ1cycsIGlzbzNDb2RlOiAnQkxSJywgaXNvMkNvZGU6ICdCWScsIGRhdGFzZXRDb2RlOiAnYnktYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0JlbGFydXMnLCBpc28zQ29kZTogJ0JMUicsIGlzbzJDb2RlOiAnQlknLCBkYXRhc2V0Q29kZTogJ2J5LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnQmVsZ2l1bScsIGlzbzNDb2RlOiAnQkVMJywgaXNvMkNvZGU6ICdCRScsIGRhdGFzZXRDb2RlOiAnYmUtYWRkcmVzcycsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB0eXBlZG93bid9LFxuICB7Y291bnRyeTogJ0JlbGdpdW0nLCBpc28zQ29kZTogJ0JFTCcsIGlzbzJDb2RlOiAnQkUnLCBkYXRhc2V0Q29kZTogJ2JlLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnQmVsZ2l1bScsIGlzbzNDb2RlOiAnQkVMJywgaXNvMkNvZGU6ICdCRScsIGRhdGFzZXRDb2RlOiAnYmUtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdCZWxpemUnLCBpc28zQ29kZTogJ0JMWicsIGlzbzJDb2RlOiAnQlonLCBkYXRhc2V0Q29kZTogJ2J6LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdCZWxpemUnLCBpc28zQ29kZTogJ0JMWicsIGlzbzJDb2RlOiAnQlonLCBkYXRhc2V0Q29kZTogJ2J6LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnQmVuaW4nLCBpc28zQ29kZTogJ0JFTicsIGlzbzJDb2RlOiAnQkonLCBkYXRhc2V0Q29kZTogJ2JqLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdCZW5pbicsIGlzbzNDb2RlOiAnQkVOJywgaXNvMkNvZGU6ICdCSicsIGRhdGFzZXRDb2RlOiAnYmotYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdCZXJtdWRhJywgaXNvM0NvZGU6ICdCTVUnLCBpc28yQ29kZTogJ0JNJywgZGF0YXNldENvZGU6ICdibS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnQmVybXVkYScsIGlzbzNDb2RlOiAnQk1VJywgaXNvMkNvZGU6ICdCTScsIGRhdGFzZXRDb2RlOiAnYm0tYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdCaHV0YW4nLCBpc28zQ29kZTogJ0JUTicsIGlzbzJDb2RlOiAnQlQnLCBkYXRhc2V0Q29kZTogJ2J0LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdCaHV0YW4nLCBpc28zQ29kZTogJ0JUTicsIGlzbzJDb2RlOiAnQlQnLCBkYXRhc2V0Q29kZTogJ2J0LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnQm9saXZpYScsIGlzbzNDb2RlOiAnQk9MJywgaXNvMkNvZGU6ICdCTycsIGRhdGFzZXRDb2RlOiAnYm8tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0JvbGl2aWEnLCBpc28zQ29kZTogJ0JPTCcsIGlzbzJDb2RlOiAnQk8nLCBkYXRhc2V0Q29kZTogJ2JvLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnQm9uYWlyZSwgU2ludCBFdXN0YXRpdXMgYW5kIFNhYmEnLCBpc28zQ29kZTogJ0JFUycsIGlzbzJDb2RlOiAnQlEnLCBkYXRhc2V0Q29kZTogJ2JxLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdCb25haXJlLCBTaW50IEV1c3RhdGl1cyBhbmQgU2FiYScsIGlzbzNDb2RlOiAnQkVTJywgaXNvMkNvZGU6ICdCUScsIGRhdGFzZXRDb2RlOiAnYnEtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdCb3NuaWEgYW5kIEhlcnplZ292aW5hJywgaXNvM0NvZGU6ICdCSUgnLCBpc28yQ29kZTogJ0JBJywgZGF0YXNldENvZGU6ICdiYS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnQm9zbmlhIGFuZCBIZXJ6ZWdvdmluYScsIGlzbzNDb2RlOiAnQklIJywgaXNvMkNvZGU6ICdCQScsIGRhdGFzZXRDb2RlOiAnYmEtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdCb3Rzd2FuYScsIGlzbzNDb2RlOiAnQldBJywgaXNvMkNvZGU6ICdCVycsIGRhdGFzZXRDb2RlOiAnYnctYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0JvdHN3YW5hJywgaXNvM0NvZGU6ICdCV0EnLCBpc28yQ29kZTogJ0JXJywgZGF0YXNldENvZGU6ICdidy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0JyYXppbCcsIGlzbzNDb2RlOiAnQlJBJywgaXNvMkNvZGU6ICdCUicsIGRhdGFzZXRDb2RlOiAnYnItYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0JyYXppbCcsIGlzbzNDb2RlOiAnQlJBJywgaXNvMkNvZGU6ICdCUicsIGRhdGFzZXRDb2RlOiAnYnItYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdCcnVuZWkgRGFydXNzYWxhbScsIGlzbzNDb2RlOiAnQlJOJywgaXNvMkNvZGU6ICdCTicsIGRhdGFzZXRDb2RlOiAnYm4tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0JydW5laSBEYXJ1c3NhbGFtJywgaXNvM0NvZGU6ICdCUk4nLCBpc28yQ29kZTogJ0JOJywgZGF0YXNldENvZGU6ICdibi1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0J1bGdhcmlhJywgaXNvM0NvZGU6ICdCR1InLCBpc28yQ29kZTogJ0JHJywgZGF0YXNldENvZGU6ICdiZy1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnQnVsZ2FyaWEnLCBpc28zQ29kZTogJ0JHUicsIGlzbzJDb2RlOiAnQkcnLCBkYXRhc2V0Q29kZTogJ2JnLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnQnVya2luYSBGYXNvJywgaXNvM0NvZGU6ICdCRkEnLCBpc28yQ29kZTogJ0JGJywgZGF0YXNldENvZGU6ICdiZi1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnQnVya2luYSBGYXNvJywgaXNvM0NvZGU6ICdCRkEnLCBpc28yQ29kZTogJ0JGJywgZGF0YXNldENvZGU6ICdiZi1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0J1cnVuZGknLCBpc28zQ29kZTogJ0JESScsIGlzbzJDb2RlOiAnQkknLCBkYXRhc2V0Q29kZTogJ2JpLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnQ2FtYm9kaWEnLCBpc28zQ29kZTogJ0tITScsIGlzbzJDb2RlOiAnS0gnLCBkYXRhc2V0Q29kZTogJ2toLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdDYW1ib2RpYScsIGlzbzNDb2RlOiAnS0hNJywgaXNvMkNvZGU6ICdLSCcsIGRhdGFzZXRDb2RlOiAna2gtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdDYW1lcm9vbicsIGlzbzNDb2RlOiAnQ01SJywgaXNvMkNvZGU6ICdDTScsIGRhdGFzZXRDb2RlOiAnY20tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0NhbWVyb29uJywgaXNvM0NvZGU6ICdDTVInLCBpc28yQ29kZTogJ0NNJywgZGF0YXNldENvZGU6ICdjbS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0NhbmFkYScsIGlzbzNDb2RlOiAnQ0FOJywgaXNvMkNvZGU6ICdDQScsIGRhdGFzZXRDb2RlOiAnY2EtYWRkcmVzcycsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUsIHNpbmdsZWxpbmUsIHR5cGVkb3duLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0NhcGUgVmVyZGUnLCBpc28zQ29kZTogJ0NQVicsIGlzbzJDb2RlOiAnQ1YnLCBkYXRhc2V0Q29kZTogJ2N2LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdDYXBlIFZlcmRlJywgaXNvM0NvZGU6ICdDUFYnLCBpc28yQ29kZTogJ0NWJywgZGF0YXNldENvZGU6ICdjdi1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0NheW1hbiBJc2xhbmRzJywgaXNvM0NvZGU6ICdDWU0nLCBpc28yQ29kZTogJ0tZJywgZGF0YXNldENvZGU6ICdreS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnQ2F5bWFuIElzbGFuZHMnLCBpc28zQ29kZTogJ0NZTScsIGlzbzJDb2RlOiAnS1knLCBkYXRhc2V0Q29kZTogJ2t5LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnQ2VudHJhbCBBZnJpY2FuIFJlcHVibGljJywgaXNvM0NvZGU6ICdDQUYnLCBpc28yQ29kZTogJ0NGJywgZGF0YXNldENvZGU6ICdjZi1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnQ2VudHJhbCBBZnJpY2FuIFJlcHVibGljJywgaXNvM0NvZGU6ICdDQUYnLCBpc28yQ29kZTogJ0NGJywgZGF0YXNldENvZGU6ICdjZi1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0NoYWQnLCBpc28zQ29kZTogJ1RDRCcsIGlzbzJDb2RlOiAnVEQnLCBkYXRhc2V0Q29kZTogJ3RkLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdDaGFkJywgaXNvM0NvZGU6ICdUQ0QnLCBpc28yQ29kZTogJ1REJywgZGF0YXNldENvZGU6ICd0ZC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0NoaWxlJywgaXNvM0NvZGU6ICdDSEwnLCBpc28yQ29kZTogJ0NMJywgZGF0YXNldENvZGU6ICdjbC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnQ2hpbGUnLCBpc28zQ29kZTogJ0NITCcsIGlzbzJDb2RlOiAnQ0wnLCBkYXRhc2V0Q29kZTogJ2NsLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnQ2hpbmEnLCBpc28zQ29kZTogJ0NITicsIGlzbzJDb2RlOiAnQ04nLCBkYXRhc2V0Q29kZTogJ2NuLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdDaGluYScsIGlzbzNDb2RlOiAnQ0hOJywgaXNvMkNvZGU6ICdDTicsIGRhdGFzZXRDb2RlOiAnY24tYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdDaHJpc3RtYXMgSXNsYW5kJywgaXNvM0NvZGU6ICdDWFInLCBpc28yQ29kZTogJ0NYJywgZGF0YXNldENvZGU6ICdjeC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0NvY29zIElzbGFuZCcsIGlzbzNDb2RlOiAnQ0NLJywgaXNvMkNvZGU6ICdDQycsIGRhdGFzZXRDb2RlOiAnY2MtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdDb2xvbWJpYScsIGlzbzNDb2RlOiAnQ09MJywgaXNvMkNvZGU6ICdDTycsIGRhdGFzZXRDb2RlOiAnY28tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0NvbG9tYmlhJywgaXNvM0NvZGU6ICdDT0wnLCBpc28yQ29kZTogJ0NPJywgZGF0YXNldENvZGU6ICdjby1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0NvbW9yb3MnLCBpc28zQ29kZTogJ0NPTScsIGlzbzJDb2RlOiAnS00nLCBkYXRhc2V0Q29kZTogJ2ttLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdDb21vcm9zJywgaXNvM0NvZGU6ICdDT00nLCBpc28yQ29kZTogJ0tNJywgZGF0YXNldENvZGU6ICdrbS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0NvbmdvJywgaXNvM0NvZGU6ICdDT0cnLCBpc28yQ29kZTogJ0NHJywgZGF0YXNldENvZGU6ICdjZy1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnQ29uZ28nLCBpc28zQ29kZTogJ0NPRycsIGlzbzJDb2RlOiAnQ0cnLCBkYXRhc2V0Q29kZTogJ2NnLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnQ29uZ28sIFRoZSBEZW1vY3JhdGljIFJlcHVibGljIG9mIHRoZScsIGlzbzNDb2RlOiAnQ09EJywgaXNvMkNvZGU6ICdDRCcsIGRhdGFzZXRDb2RlOiAnY2QtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0NvbmdvLCBUaGUgRGVtb2NyYXRpYyBSZXB1YmxpYyBvZiB0aGUnLCBpc28zQ29kZTogJ0NPRCcsIGlzbzJDb2RlOiAnQ0QnLCBkYXRhc2V0Q29kZTogJ2NkLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnQ29vayBJc2xhbmRzJywgaXNvM0NvZGU6ICdDT0snLCBpc28yQ29kZTogJ0NLJywgZGF0YXNldENvZGU6ICdjay1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnQ29vayBJc2xhbmRzJywgaXNvM0NvZGU6ICdDT0snLCBpc28yQ29kZTogJ0NLJywgZGF0YXNldENvZGU6ICdjay1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0Nvc3RhIFJpY2EnLCBpc28zQ29kZTogJ0NSSScsIGlzbzJDb2RlOiAnQ1InLCBkYXRhc2V0Q29kZTogJ2NyLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdDb3N0YSBSaWNhJywgaXNvM0NvZGU6ICdDUkknLCBpc28yQ29kZTogJ0NSJywgZGF0YXNldENvZGU6ICdjci1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0Nyb2F0aWEnLCBpc28zQ29kZTogJ0hSVicsIGlzbzJDb2RlOiAnSFInLCBkYXRhc2V0Q29kZTogJ2hyLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdDcm9hdGlhJywgaXNvM0NvZGU6ICdIUlYnLCBpc28yQ29kZTogJ0hSJywgZGF0YXNldENvZGU6ICdoci1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0N1YmEnLCBpc28zQ29kZTogJ0NVQicsIGlzbzJDb2RlOiAnQ1UnLCBkYXRhc2V0Q29kZTogJ2N1LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdDdWJhJywgaXNvM0NvZGU6ICdDVUInLCBpc28yQ29kZTogJ0NVJywgZGF0YXNldENvZGU6ICdjdS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0N1cmHDp2FvJywgaXNvM0NvZGU6ICdDVVcnLCBpc28yQ29kZTogJ0NXJywgZGF0YXNldENvZGU6ICdjdy1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnQ3VyYcOnYW8nLCBpc28zQ29kZTogJ0NVVycsIGlzbzJDb2RlOiAnQ1cnLCBkYXRhc2V0Q29kZTogJ2N3LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnQ3lwcnVzJywgaXNvM0NvZGU6ICdDWVAnLCBpc28yQ29kZTogJ0NZJywgZGF0YXNldENvZGU6ICdjeS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnQ3lwcnVzJywgaXNvM0NvZGU6ICdDWVAnLCBpc28yQ29kZTogJ0NZJywgZGF0YXNldENvZGU6ICdjeS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0N6ZWNoIFJlcHVibGljJywgaXNvM0NvZGU6ICdDWkUnLCBpc28yQ29kZTogJ0NaJywgZGF0YXNldENvZGU6ICdjei1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnQ3plY2ggUmVwdWJsaWMnLCBpc28zQ29kZTogJ0NaRScsIGlzbzJDb2RlOiAnQ1onLCBkYXRhc2V0Q29kZTogJ2N6LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnQ8O0dGUgZFxcJ0l2b2lyZScsIGlzbzNDb2RlOiAnQ0lWJywgaXNvMkNvZGU6ICdDSScsIGRhdGFzZXRDb2RlOiAnY2ktYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0PDtHRlIGRcXCdJdm9pcmUnLCBpc28zQ29kZTogJ0NJVicsIGlzbzJDb2RlOiAnQ0knLCBkYXRhc2V0Q29kZTogJ2NpLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnRGVubWFyaycsIGlzbzNDb2RlOiAnRE5LJywgaXNvMkNvZGU6ICdESycsIGRhdGFzZXRDb2RlOiAnZGstYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0Rlbm1hcmsnLCBpc28zQ29kZTogJ0ROSycsIGlzbzJDb2RlOiAnREsnLCBkYXRhc2V0Q29kZTogJ2RrLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnRGppYm91dGknLCBpc28zQ29kZTogJ0RKSScsIGlzbzJDb2RlOiAnREonLCBkYXRhc2V0Q29kZTogJ2RqLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdEamlib3V0aScsIGlzbzNDb2RlOiAnREpJJywgaXNvMkNvZGU6ICdESicsIGRhdGFzZXRDb2RlOiAnZGotYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdEb21pbmljYScsIGlzbzNDb2RlOiAnRE1BJywgaXNvMkNvZGU6ICdETScsIGRhdGFzZXRDb2RlOiAnZG0tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0RvbWluaWNhJywgaXNvM0NvZGU6ICdETUEnLCBpc28yQ29kZTogJ0RNJywgZGF0YXNldENvZGU6ICdkbS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0RvbWluaWNhbiBSZXB1YmxpYycsIGlzbzNDb2RlOiAnRE9NJywgaXNvMkNvZGU6ICdETycsIGRhdGFzZXRDb2RlOiAnZG8tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0RvbWluaWNhbiBSZXB1YmxpYycsIGlzbzNDb2RlOiAnRE9NJywgaXNvMkNvZGU6ICdETycsIGRhdGFzZXRDb2RlOiAnZG8tYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdFY3VhZG9yJywgaXNvM0NvZGU6ICdFQ1UnLCBpc28yQ29kZTogJ0VDJywgZGF0YXNldENvZGU6ICdlYy1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnRWN1YWRvcicsIGlzbzNDb2RlOiAnRUNVJywgaXNvMkNvZGU6ICdFQycsIGRhdGFzZXRDb2RlOiAnZWMtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdFZ3lwdCcsIGlzbzNDb2RlOiAnRUdZJywgaXNvMkNvZGU6ICdFRycsIGRhdGFzZXRDb2RlOiAnZWctYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0VneXB0JywgaXNvM0NvZGU6ICdFR1knLCBpc28yQ29kZTogJ0VHJywgZGF0YXNldENvZGU6ICdlZy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0VsIFNhbHZhZG9yJywgaXNvM0NvZGU6ICdTTFYnLCBpc28yQ29kZTogJ1NWJywgZGF0YXNldENvZGU6ICdzdi1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnRWwgU2FsdmFkb3InLCBpc28zQ29kZTogJ1NMVicsIGlzbzJDb2RlOiAnU1YnLCBkYXRhc2V0Q29kZTogJ3N2LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnRXF1YXRvcmlhbCBHdWluZWEnLCBpc28zQ29kZTogJ0dOUScsIGlzbzJDb2RlOiAnR1EnLCBkYXRhc2V0Q29kZTogJ2dxLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdFcXVhdG9yaWFsIEd1aW5lYScsIGlzbzNDb2RlOiAnR05RJywgaXNvMkNvZGU6ICdHUScsIGRhdGFzZXRDb2RlOiAnZ3EtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdFcml0cmVhJywgaXNvM0NvZGU6ICdFUkknLCBpc28yQ29kZTogJ0VSJywgZGF0YXNldENvZGU6ICdlci1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnRXJpdHJlYScsIGlzbzNDb2RlOiAnRVJJJywgaXNvMkNvZGU6ICdFUicsIGRhdGFzZXRDb2RlOiAnZXItYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdFc3RvbmlhJywgaXNvM0NvZGU6ICdFU1QnLCBpc28yQ29kZTogJ0VFJywgZGF0YXNldENvZGU6ICdlZS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnRXN0b25pYScsIGlzbzNDb2RlOiAnRVNUJywgaXNvMkNvZGU6ICdFRScsIGRhdGFzZXRDb2RlOiAnZWUtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdFdGhpb3BpYScsIGlzbzNDb2RlOiAnRVRIJywgaXNvMkNvZGU6ICdFVCcsIGRhdGFzZXRDb2RlOiAnZXQtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0V0aGlvcGlhJywgaXNvM0NvZGU6ICdFVEgnLCBpc28yQ29kZTogJ0VUJywgZGF0YXNldENvZGU6ICdldC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0ZhbGtsYW5kIElzbGFuZHMgKE1hbHZpbmFzKScsIGlzbzNDb2RlOiAnRkxLJywgaXNvMkNvZGU6ICdGSycsIGRhdGFzZXRDb2RlOiAnZmstYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdGYXJvZSBJc2xhbmRzJywgaXNvM0NvZGU6ICdGUk8nLCBpc28yQ29kZTogJ0ZPJywgZGF0YXNldENvZGU6ICdmby1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnRmFyb2UgSXNsYW5kcycsIGlzbzNDb2RlOiAnRlJPJywgaXNvMkNvZGU6ICdGTycsIGRhdGFzZXRDb2RlOiAnZm8tYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdGaWppJywgaXNvM0NvZGU6ICdGSkknLCBpc28yQ29kZTogJ0ZKJywgZGF0YXNldENvZGU6ICdmai1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnRmlqaScsIGlzbzNDb2RlOiAnRkpJJywgaXNvMkNvZGU6ICdGSicsIGRhdGFzZXRDb2RlOiAnZmotYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdGaW5sYW5kJywgaXNvM0NvZGU6ICdGSU4nLCBpc28yQ29kZTogJ0ZJJywgZGF0YXNldENvZGU6ICdmaS1hZGRyZXNzJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHR5cGVkb3duJ30sXG4gIHtjb3VudHJ5OiAnRmlubGFuZCcsIGlzbzNDb2RlOiAnRklOJywgaXNvMkNvZGU6ICdGSScsIGRhdGFzZXRDb2RlOiAnZmktYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICd2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0ZpbmxhbmQnLCBpc28zQ29kZTogJ0ZJTicsIGlzbzJDb2RlOiAnRkknLCBkYXRhc2V0Q29kZTogJ2ZpLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnRnJhbmNlIFN0cmVldCBMZXZlbCcsIGlzbzNDb2RlOiAnRlJBJywgaXNvMkNvZGU6ICdGUicsIGRhdGFzZXRDb2RlOiAnZnItYWRkcmVzcy1zdHJlZXRsZXZlbCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB0eXBlZG93biwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdGcmFuY2UgU3ViLVByZW1pc2VzIExldmVsJywgaXNvM0NvZGU6ICdGUkEnLCBpc28yQ29kZTogJ0ZSJywgZGF0YXNldENvZGU6ICdmci1hZGRpdGlvbmFsLWhleGFsaW5lMycsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUsIHNpbmdsZWxpbmUsIHR5cGVkb3duJ30sXG4gIHtjb3VudHJ5OiAnRnJhbmNlIFByZW1pc2VzIExldmVsJywgaXNvM0NvZGU6ICdGUkEnLCBpc28yQ29kZTogJ0ZSJywgZGF0YXNldENvZGU6ICdmci1hZGRyZXNzJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHR5cGVkb3duLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0ZyZW5jaCBHdWlhbmEnLCBpc28zQ29kZTogJ0dVRicsIGlzbzJDb2RlOiAnR0YnLCBkYXRhc2V0Q29kZTogJ2dmLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnRnJlbmNoIFBvbHluZXNpYScsIGlzbzNDb2RlOiAnUFlGJywgaXNvMkNvZGU6ICdQRicsIGRhdGFzZXRDb2RlOiAncGYtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdHYWJvbicsIGlzbzNDb2RlOiAnR0FCJywgaXNvMkNvZGU6ICdHQScsIGRhdGFzZXRDb2RlOiAnZ2EtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0dhYm9uJywgaXNvM0NvZGU6ICdHQUInLCBpc28yQ29kZTogJ0dBJywgZGF0YXNldENvZGU6ICdnYS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0dhbWJpYScsIGlzbzNDb2RlOiAnR01CJywgaXNvMkNvZGU6ICdHTScsIGRhdGFzZXRDb2RlOiAnZ20tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0dhbWJpYScsIGlzbzNDb2RlOiAnR01CJywgaXNvMkNvZGU6ICdHTScsIGRhdGFzZXRDb2RlOiAnZ20tYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdHZW9yZ2lhJywgaXNvM0NvZGU6ICdHRU8nLCBpc28yQ29kZTogJ0dFJywgZGF0YXNldENvZGU6ICdnZS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnR2VvcmdpYScsIGlzbzNDb2RlOiAnR0VPJywgaXNvMkNvZGU6ICdHRScsIGRhdGFzZXRDb2RlOiAnZ2UtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdHZXJtYW55JywgaXNvM0NvZGU6ICdERVUnLCBpc28yQ29kZTogJ0RFJywgZGF0YXNldENvZGU6ICdkZS1hZGRyZXNzJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHR5cGVkb3duLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0dlcm1hbnknLCBpc28zQ29kZTogJ0RFVScsIGlzbzJDb2RlOiAnREUnLCBkYXRhc2V0Q29kZTogJ2RlLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAndmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdHZXJtYW55JywgaXNvM0NvZGU6ICdERVUnLCBpc28yQ29kZTogJ0RFJywgZGF0YXNldENvZGU6ICdkZS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0doYW5hJywgaXNvM0NvZGU6ICdHSEEnLCBpc28yQ29kZTogJ0dIJywgZGF0YXNldENvZGU6ICdnaC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnR2hhbmEnLCBpc28zQ29kZTogJ0dIQScsIGlzbzJDb2RlOiAnR0gnLCBkYXRhc2V0Q29kZTogJ2doLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnR2licmFsdGFyJywgaXNvM0NvZGU6ICdHSUInLCBpc28yQ29kZTogJ0dJJywgZGF0YXNldENvZGU6ICdnaS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0dyZWVjZScsIGlzbzNDb2RlOiAnR1JDJywgaXNvMkNvZGU6ICdHUicsIGRhdGFzZXRDb2RlOiAnZ3ItYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0dyZWVjZScsIGlzbzNDb2RlOiAnR1JDJywgaXNvMkNvZGU6ICdHUicsIGRhdGFzZXRDb2RlOiAnZ3ItYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdHcmVlbmxhbmQnLCBpc28zQ29kZTogJ0dSTCcsIGlzbzJDb2RlOiAnR0wnLCBkYXRhc2V0Q29kZTogJ2dsLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdHcmVlbmxhbmQnLCBpc28zQ29kZTogJ0dSTCcsIGlzbzJDb2RlOiAnR0wnLCBkYXRhc2V0Q29kZTogJ2dsLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnR3JlbmFkYScsIGlzbzNDb2RlOiAnR1JEJywgaXNvMkNvZGU6ICdHRCcsIGRhdGFzZXRDb2RlOiAnZ2QtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0dyZW5hZGEnLCBpc28zQ29kZTogJ0dSRCcsIGlzbzJDb2RlOiAnR0QnLCBkYXRhc2V0Q29kZTogJ2dkLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnR3VhZGVsb3VwZScsIGlzbzNDb2RlOiAnR0xQJywgaXNvMkNvZGU6ICdHUCcsIGRhdGFzZXRDb2RlOiAnZ3AtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdHdWFtJywgaXNvM0NvZGU6ICdHVU0nLCBpc28yQ29kZTogJ0dVJywgZGF0YXNldENvZGU6ICdndS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0d1YXRlbWFsYScsIGlzbzNDb2RlOiAnR1RNJywgaXNvMkNvZGU6ICdHVCcsIGRhdGFzZXRDb2RlOiAnZ3QtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0d1YXRlbWFsYScsIGlzbzNDb2RlOiAnR1RNJywgaXNvMkNvZGU6ICdHVCcsIGRhdGFzZXRDb2RlOiAnZ3QtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdHdWluZWEnLCBpc28zQ29kZTogJ0dJTicsIGlzbzJDb2RlOiAnR04nLCBkYXRhc2V0Q29kZTogJ2duLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdHdWluZWEnLCBpc28zQ29kZTogJ0dJTicsIGlzbzJDb2RlOiAnR04nLCBkYXRhc2V0Q29kZTogJ2duLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnR3VpbmVhLUJpc3NhdScsIGlzbzNDb2RlOiAnR05CJywgaXNvMkNvZGU6ICdHVycsIGRhdGFzZXRDb2RlOiAnZ3ctYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0d1aW5lYS1CaXNzYXUnLCBpc28zQ29kZTogJ0dOQicsIGlzbzJDb2RlOiAnR1cnLCBkYXRhc2V0Q29kZTogJ2d3LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnR3V5YW5hJywgaXNvM0NvZGU6ICdHVVknLCBpc28yQ29kZTogJ0dZJywgZGF0YXNldENvZGU6ICdneS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnR3V5YW5hJywgaXNvM0NvZGU6ICdHVVknLCBpc28yQ29kZTogJ0dZJywgZGF0YXNldENvZGU6ICdneS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0hhaXRpJywgaXNvM0NvZGU6ICdIVEknLCBpc28yQ29kZTogJ0hUJywgZGF0YXNldENvZGU6ICdodC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnSGFpdGknLCBpc28zQ29kZTogJ0hUSScsIGlzbzJDb2RlOiAnSFQnLCBkYXRhc2V0Q29kZTogJ2h0LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnSG9uZHVyYXMnLCBpc28zQ29kZTogJ0hORCcsIGlzbzJDb2RlOiAnSE4nLCBkYXRhc2V0Q29kZTogJ2huLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdIb25kdXJhcycsIGlzbzNDb2RlOiAnSE5EJywgaXNvMkNvZGU6ICdITicsIGRhdGFzZXRDb2RlOiAnaG4tYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdIb25nIEtvbmcnLCBpc28zQ29kZTogJ0hLRycsIGlzbzJDb2RlOiAnSEsnLCBkYXRhc2V0Q29kZTogJ2hrLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdIb25nIEtvbmcnLCBpc28zQ29kZTogJ0hLRycsIGlzbzJDb2RlOiAnSEsnLCBkYXRhc2V0Q29kZTogJ2hrLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnSHVuZ2FyeScsIGlzbzNDb2RlOiAnSFVOJywgaXNvMkNvZGU6ICdIVScsIGRhdGFzZXRDb2RlOiAnaHUtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0h1bmdhcnknLCBpc28zQ29kZTogJ0hVTicsIGlzbzJDb2RlOiAnSFUnLCBkYXRhc2V0Q29kZTogJ2h1LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnSWNlbGFuZCcsIGlzbzNDb2RlOiAnSVNMJywgaXNvMkNvZGU6ICdJUycsIGRhdGFzZXRDb2RlOiAnaXMtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0ljZWxhbmQnLCBpc28zQ29kZTogJ0lTTCcsIGlzbzJDb2RlOiAnSVMnLCBkYXRhc2V0Q29kZTogJ2lzLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnSW5kaWEnLCBpc28zQ29kZTogJ0lORCcsIGlzbzJDb2RlOiAnSU4nLCBkYXRhc2V0Q29kZTogJ2luLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdJbmRpYScsIGlzbzNDb2RlOiAnSU5EJywgaXNvMkNvZGU6ICdJTicsIGRhdGFzZXRDb2RlOiAnaW4tYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdJbmRvbmVzaWEnLCBpc28zQ29kZTogJ0lETicsIGlzbzJDb2RlOiAnSUQnLCBkYXRhc2V0Q29kZTogJ2lkLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdJbmRvbmVzaWEnLCBpc28zQ29kZTogJ0lETicsIGlzbzJDb2RlOiAnSUQnLCBkYXRhc2V0Q29kZTogJ2lkLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnSXJhbiwgSXNsYW1pYyBSZXB1YmxpYyBvZicsIGlzbzNDb2RlOiAnSVJOJywgaXNvMkNvZGU6ICdJUicsIGRhdGFzZXRDb2RlOiAnaXItYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0lyYW4sIElzbGFtaWMgUmVwdWJsaWMgb2YnLCBpc28zQ29kZTogJ0lSTicsIGlzbzJDb2RlOiAnSVInLCBkYXRhc2V0Q29kZTogJ2lyLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnSXJhcScsIGlzbzNDb2RlOiAnSVJRJywgaXNvMkNvZGU6ICdJUScsIGRhdGFzZXRDb2RlOiAnaXEtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0lyYXEnLCBpc28zQ29kZTogJ0lSUScsIGlzbzJDb2RlOiAnSVEnLCBkYXRhc2V0Q29kZTogJ2lxLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnSXJlbGFuZCcsIGlzbzNDb2RlOiAnSVJMJywgaXNvMkNvZGU6ICdJRScsIGRhdGFzZXRDb2RlOiAnaWUtYWRkcmVzcycsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB0eXBlZG93bid9LFxuICB7Y291bnRyeTogJ0lyZWxhbmQnLCBpc28zQ29kZTogJ0lSTCcsIGlzbzJDb2RlOiAnSUUnLCBkYXRhc2V0Q29kZTogJ2llLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdJcmVsYW5kJywgaXNvM0NvZGU6ICdJUkwnLCBpc28yQ29kZTogJ0lFJywgZGF0YXNldENvZGU6ICdpZS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0lyZWxhbmQgRWlyY29kZScsIGlzbzNDb2RlOiAnSVJMJywgaXNvMkNvZGU6ICdJRScsIGRhdGFzZXRDb2RlOiAnaWUtYWRkaXRpb25hbC1laXJjb2RlJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0lyZWxhbmQgRUNBRCcsIGlzbzNDb2RlOiAnSVJMJywgaXNvMkNvZGU6ICdJRScsIGRhdGFzZXRDb2RlOiAnaWUtYWRkcmVzcy1lY2FkJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0lzcmFlbCcsIGlzbzNDb2RlOiAnSVNSJywgaXNvMkNvZGU6ICdJTCcsIGRhdGFzZXRDb2RlOiAnaWwtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0lzcmFlbCcsIGlzbzNDb2RlOiAnSVNSJywgaXNvMkNvZGU6ICdJTCcsIGRhdGFzZXRDb2RlOiAnaWwtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdJdGFseScsIGlzbzNDb2RlOiAnSVRBJywgaXNvMkNvZGU6ICdJVCcsIGRhdGFzZXRDb2RlOiAnaXQtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0l0YWx5JywgaXNvM0NvZGU6ICdJVEEnLCBpc28yQ29kZTogJ0lUJywgZGF0YXNldENvZGU6ICdpdC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0phbWFpY2EnLCBpc28zQ29kZTogJ0pBTScsIGlzbzJDb2RlOiAnSk0nLCBkYXRhc2V0Q29kZTogJ2ptLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdKYW1haWNhJywgaXNvM0NvZGU6ICdKQU0nLCBpc28yQ29kZTogJ0pNJywgZGF0YXNldENvZGU6ICdqbS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0phcGFuJywgaXNvM0NvZGU6ICdKUE4nLCBpc28yQ29kZTogJ0pQJywgZGF0YXNldENvZGU6ICdqcC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnSmFwYW4nLCBpc28zQ29kZTogJ0pQTicsIGlzbzJDb2RlOiAnSlAnLCBkYXRhc2V0Q29kZTogJ2pwLWFkZHJlc3MnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdKb3JkYW4nLCBpc28zQ29kZTogJ0pPUicsIGlzbzJDb2RlOiAnSk8nLCBkYXRhc2V0Q29kZTogJ2pvLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdKb3JkYW4nLCBpc28zQ29kZTogJ0pPUicsIGlzbzJDb2RlOiAnSk8nLCBkYXRhc2V0Q29kZTogJ2pvLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnS2F6YWtoc3RhbicsIGlzbzNDb2RlOiAnS0FaJywgaXNvMkNvZGU6ICdLWicsIGRhdGFzZXRDb2RlOiAna3otYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0themFraHN0YW4nLCBpc28zQ29kZTogJ0tBWicsIGlzbzJDb2RlOiAnS1onLCBkYXRhc2V0Q29kZTogJ2t6LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnS2VueWEnLCBpc28zQ29kZTogJ0tFTicsIGlzbzJDb2RlOiAnS0UnLCBkYXRhc2V0Q29kZTogJ2tlLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdLZW55YScsIGlzbzNDb2RlOiAnS0VOJywgaXNvMkNvZGU6ICdLRScsIGRhdGFzZXRDb2RlOiAna2UtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdLaXJpYmF0aScsIGlzbzNDb2RlOiAnS0lSJywgaXNvMkNvZGU6ICdLSScsIGRhdGFzZXRDb2RlOiAna2ktYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0tpcmliYXRpJywgaXNvM0NvZGU6ICdLSVInLCBpc28yQ29kZTogJ0tJJywgZGF0YXNldENvZGU6ICdraS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0tvcmVhLCBEZW1vY3JhdGljIFBlb3BsZVxcJ3MgUmVwdWJsaWMgb2YnLCBpc28zQ29kZTogJ1BSSycsIGlzbzJDb2RlOiAnS1AnLCBkYXRhc2V0Q29kZTogJ2twLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdLb3JlYSwgRGVtb2NyYXRpYyBQZW9wbGVcXCdzIFJlcHVibGljIG9mJywgaXNvM0NvZGU6ICdQUksnLCBpc28yQ29kZTogJ0tQJywgZGF0YXNldENvZGU6ICdrcC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0tvcmVhLCBSZXB1YmxpYyBvZicsIGlzbzNDb2RlOiAnS09SJywgaXNvMkNvZGU6ICdLUicsIGRhdGFzZXRDb2RlOiAna3ItYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0tvcmVhLCBSZXB1YmxpYyBvZicsIGlzbzNDb2RlOiAnS09SJywgaXNvMkNvZGU6ICdLUicsIGRhdGFzZXRDb2RlOiAna3ItYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdLb3Nvdm8nLCBpc28zQ29kZTogJ0tPUycsIGlzbzJDb2RlOiAnWEsnLCBkYXRhc2V0Q29kZTogJ2t2LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnS3V3YWl0JywgaXNvM0NvZGU6ICdLV1QnLCBpc28yQ29kZTogJ0tXJywgZGF0YXNldENvZGU6ICdrdy1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnS3V3YWl0JywgaXNvM0NvZGU6ICdLV1QnLCBpc28yQ29kZTogJ0tXJywgZGF0YXNldENvZGU6ICdrdy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0t5cmd5enN0YW4nLCBpc28zQ29kZTogJ0tHWicsIGlzbzJDb2RlOiAnS0cnLCBkYXRhc2V0Q29kZTogJ2tnLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdLeXJneXpzdGFuJywgaXNvM0NvZGU6ICdLR1onLCBpc28yQ29kZTogJ0tHJywgZGF0YXNldENvZGU6ICdrZy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0xhb3MnLCBpc28zQ29kZTogJ0xBTycsIGlzbzJDb2RlOiAnTEEnLCBkYXRhc2V0Q29kZTogJ2xhLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdMYW9zJywgaXNvM0NvZGU6ICdMQU8nLCBpc28yQ29kZTogJ0xBJywgZGF0YXNldENvZGU6ICdsYS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0xhdHZpYScsIGlzbzNDb2RlOiAnTFZBJywgaXNvMkNvZGU6ICdMVicsIGRhdGFzZXRDb2RlOiAnbHYtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0xhdHZpYScsIGlzbzNDb2RlOiAnTFZBJywgaXNvMkNvZGU6ICdMVicsIGRhdGFzZXRDb2RlOiAnbHYtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdMZWJhbm9uJywgaXNvM0NvZGU6ICdMQk4nLCBpc28yQ29kZTogJ0xCJywgZGF0YXNldENvZGU6ICdsYi1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnTGViYW5vbicsIGlzbzNDb2RlOiAnTEJOJywgaXNvMkNvZGU6ICdMQicsIGRhdGFzZXRDb2RlOiAnbGItYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdMZXNvdGhvJywgaXNvM0NvZGU6ICdMU08nLCBpc28yQ29kZTogJ0xTJywgZGF0YXNldENvZGU6ICdscy1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnTGVzb3RobycsIGlzbzNDb2RlOiAnTFNPJywgaXNvMkNvZGU6ICdMUycsIGRhdGFzZXRDb2RlOiAnbHMtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdMaWJlcmlhJywgaXNvM0NvZGU6ICdMQlInLCBpc28yQ29kZTogJ0xSJywgZGF0YXNldENvZGU6ICdsci1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnTGliZXJpYScsIGlzbzNDb2RlOiAnTEJSJywgaXNvMkNvZGU6ICdMUicsIGRhdGFzZXRDb2RlOiAnbHItYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdMaWJ5YScsIGlzbzNDb2RlOiAnTEJZJywgaXNvMkNvZGU6ICdMWScsIGRhdGFzZXRDb2RlOiAnbHktYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0xpYnlhJywgaXNvM0NvZGU6ICdMQlknLCBpc28yQ29kZTogJ0xZJywgZGF0YXNldENvZGU6ICdseS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0xpZWNodGVuc3RlaW4nLCBpc28zQ29kZTogJ0xJRScsIGlzbzJDb2RlOiAnTEknLCBkYXRhc2V0Q29kZTogJ2xpLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdMaWVjaHRlbnN0ZWluJywgaXNvM0NvZGU6ICdMSUUnLCBpc28yQ29kZTogJ0xJJywgZGF0YXNldENvZGU6ICdsaS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ0xpdGh1YW5pYScsIGlzbzNDb2RlOiAnTFRVJywgaXNvMkNvZGU6ICdMVCcsIGRhdGFzZXRDb2RlOiAnbHQtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ0xpdGh1YW5pYScsIGlzbzNDb2RlOiAnTFRVJywgaXNvMkNvZGU6ICdMVCcsIGRhdGFzZXRDb2RlOiAnbHQtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdMdXhlbWJvdXJnJywgaXNvM0NvZGU6ICdMVVgnLCBpc28yQ29kZTogJ0xVJywgZGF0YXNldENvZGU6ICdsdS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnTHV4ZW1ib3VyZycsIGlzbzNDb2RlOiAnTFVYJywgaXNvMkNvZGU6ICdMVScsIGRhdGFzZXRDb2RlOiAnbHUtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdNYWNhdScsIGlzbzNDb2RlOiAnTUFDJywgaXNvMkNvZGU6ICdNTycsIGRhdGFzZXRDb2RlOiAnbHYtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ01hY2F1JywgaXNvM0NvZGU6ICdNQUMnLCBpc28yQ29kZTogJ01PJywgZGF0YXNldENvZGU6ICdsdi1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ01hZGFnYXNjYXInLCBpc28zQ29kZTogJ01ERycsIGlzbzJDb2RlOiAnTUcnLCBkYXRhc2V0Q29kZTogJ21vLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdNYWRhZ2FzY2FyJywgaXNvM0NvZGU6ICdNREcnLCBpc28yQ29kZTogJ01HJywgZGF0YXNldENvZGU6ICdtby1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ01hbGF3aScsIGlzbzNDb2RlOiAnTVdJJywgaXNvMkNvZGU6ICdNVycsIGRhdGFzZXRDb2RlOiAnbXctYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ01hbGF3aScsIGlzbzNDb2RlOiAnTVdJJywgaXNvMkNvZGU6ICdNVycsIGRhdGFzZXRDb2RlOiAnbXctYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdNYWxheXNpYScsIGlzbzNDb2RlOiAnTVlTJywgaXNvMkNvZGU6ICdNWScsIGRhdGFzZXRDb2RlOiAnbXktYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ01hbGF5c2lhJywgaXNvM0NvZGU6ICdNWVMnLCBpc28yQ29kZTogJ01ZJywgZGF0YXNldENvZGU6ICdteS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ01hbGRpdmVzJywgaXNvM0NvZGU6ICdNRFYnLCBpc28yQ29kZTogJ01WJywgZGF0YXNldENvZGU6ICdtdi1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnTWFsZGl2ZXMnLCBpc28zQ29kZTogJ01EVicsIGlzbzJDb2RlOiAnTVYnLCBkYXRhc2V0Q29kZTogJ212LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnTWFsaScsIGlzbzNDb2RlOiAnTUxJJywgaXNvMkNvZGU6ICdNTCcsIGRhdGFzZXRDb2RlOiAnbWwtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ01hbGknLCBpc28zQ29kZTogJ01MSScsIGlzbzJDb2RlOiAnTUwnLCBkYXRhc2V0Q29kZTogJ21sLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnTWFsdGEnLCBpc28zQ29kZTogJ01MVCcsIGlzbzJDb2RlOiAnTVQnLCBkYXRhc2V0Q29kZTogJ210LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdNYWx0YScsIGlzbzNDb2RlOiAnTUxUJywgaXNvMkNvZGU6ICdNVCcsIGRhdGFzZXRDb2RlOiAnbXQtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdNYXJzaGFsbCBJc2xhbmRzJywgaXNvM0NvZGU6ICdNSEwnLCBpc28yQ29kZTogJ01IJywgZGF0YXNldENvZGU6ICdtaC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ01hcnRpbmlxdWUnLCBpc28zQ29kZTogJ01UUScsIGlzbzJDb2RlOiAnTVEnLCBkYXRhc2V0Q29kZTogJ21xLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnTWF1cml0YW5pYScsIGlzbzNDb2RlOiAnTVJUJywgaXNvMkNvZGU6ICdNUicsIGRhdGFzZXRDb2RlOiAnbXItYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ01hdXJpdGFuaWEnLCBpc28zQ29kZTogJ01SVCcsIGlzbzJDb2RlOiAnTVInLCBkYXRhc2V0Q29kZTogJ21yLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnTWF1cml0aXVzJywgaXNvM0NvZGU6ICdNVVMnLCBpc28yQ29kZTogJ01VJywgZGF0YXNldENvZGU6ICdtdS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnTWF1cml0aXVzJywgaXNvM0NvZGU6ICdNVVMnLCBpc28yQ29kZTogJ01VJywgZGF0YXNldENvZGU6ICdtdS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ01heW90dGUnLCBpc28zQ29kZTogJ01ZVCcsIGlzbzJDb2RlOiAnWVQnLCBkYXRhc2V0Q29kZTogJ3l0LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnTWV4aWNvJywgaXNvM0NvZGU6ICdNRVgnLCBpc28yQ29kZTogJ01YJywgZGF0YXNldENvZGU6ICdteC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnTWV4aWNvJywgaXNvM0NvZGU6ICdNRVgnLCBpc28yQ29kZTogJ01YJywgZGF0YXNldENvZGU6ICdteC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ01pY3JvbmVzaWEsIEZlZGVyYXRlZCBTdGF0ZXMgb2YnLCBpc28zQ29kZTogJ0ZTTScsIGlzbzJDb2RlOiAnRk0nLCBkYXRhc2V0Q29kZTogJ2ZtLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnTW9sZG92YScsIGlzbzNDb2RlOiAnTURBJywgaXNvMkNvZGU6ICdNRCcsIGRhdGFzZXRDb2RlOiAnbWQtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ01vbGRvdmEnLCBpc28zQ29kZTogJ01EQScsIGlzbzJDb2RlOiAnTUQnLCBkYXRhc2V0Q29kZTogJ21kLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnTW9uYWNvJywgaXNvM0NvZGU6ICdNQ08nLCBpc28yQ29kZTogJ01DJywgZGF0YXNldENvZGU6ICdtYy1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnTW9uYWNvJywgaXNvM0NvZGU6ICdNQ08nLCBpc28yQ29kZTogJ01DJywgZGF0YXNldENvZGU6ICdtYy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ01vbmdvbGlhJywgaXNvM0NvZGU6ICdNTkcnLCBpc28yQ29kZTogJ01OJywgZGF0YXNldENvZGU6ICdtbi1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnTW9uZ29saWEnLCBpc28zQ29kZTogJ01ORycsIGlzbzJDb2RlOiAnTU4nLCBkYXRhc2V0Q29kZTogJ21uLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnTW9udGVuZWdybycsIGlzbzNDb2RlOiAnTU5FJywgaXNvMkNvZGU6ICdNRScsIGRhdGFzZXRDb2RlOiAnbWUtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ01vbnRlbmVncm8nLCBpc28zQ29kZTogJ01ORScsIGlzbzJDb2RlOiAnTUUnLCBkYXRhc2V0Q29kZTogJ21lLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnTW9udHNlcnJhdCcsIGlzbzNDb2RlOiAnTVNSJywgaXNvMkNvZGU6ICdNUycsIGRhdGFzZXRDb2RlOiAnbXMtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdNb3JvY2NvJywgaXNvM0NvZGU6ICdNQVInLCBpc28yQ29kZTogJ01BJywgZGF0YXNldENvZGU6ICdtYS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnTW9yb2NjbycsIGlzbzNDb2RlOiAnTUFSJywgaXNvMkNvZGU6ICdNQScsIGRhdGFzZXRDb2RlOiAnbWEtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdNb3phbWJpcXVlJywgaXNvM0NvZGU6ICdNT1onLCBpc28yQ29kZTogJ01aJywgZGF0YXNldENvZGU6ICdtei1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnTW96YW1iaXF1ZScsIGlzbzNDb2RlOiAnTU9aJywgaXNvMkNvZGU6ICdNWicsIGRhdGFzZXRDb2RlOiAnbXotYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdNeWFubWFyJywgaXNvM0NvZGU6ICdNTVInLCBpc28yQ29kZTogJ01NJywgZGF0YXNldENvZGU6ICdtbS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnTXlhbm1hcicsIGlzbzNDb2RlOiAnTU1SJywgaXNvMkNvZGU6ICdNTScsIGRhdGFzZXRDb2RlOiAnbW0tYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdOYW1pYmlhJywgaXNvM0NvZGU6ICdOQU0nLCBpc28yQ29kZTogJ05BJywgZGF0YXNldENvZGU6ICduYS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnTmFtaWJpYScsIGlzbzNDb2RlOiAnTkFNJywgaXNvMkNvZGU6ICdOQScsIGRhdGFzZXRDb2RlOiAnbmEtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdOYXVydScsIGlzbzNDb2RlOiAnTlJVJywgaXNvMkNvZGU6ICdOUicsIGRhdGFzZXRDb2RlOiAnbnItYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ05hdXJ1JywgaXNvM0NvZGU6ICdOUlUnLCBpc28yQ29kZTogJ05SJywgZGF0YXNldENvZGU6ICduci1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ05lcGFsJywgaXNvM0NvZGU6ICdOUEwnLCBpc28yQ29kZTogJ05QJywgZGF0YXNldENvZGU6ICducC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnTmVwYWwnLCBpc28zQ29kZTogJ05QTCcsIGlzbzJDb2RlOiAnTlAnLCBkYXRhc2V0Q29kZTogJ25wLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnTmV0aGVybGFuZHMnLCBpc28zQ29kZTogJ05MRCcsIGlzbzJDb2RlOiAnTkwnLCBkYXRhc2V0Q29kZTogJ25sLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdOZXRoZXJsYW5kcycsIGlzbzNDb2RlOiAnTkxEJywgaXNvMkNvZGU6ICdOTCcsIGRhdGFzZXRDb2RlOiAnbmwtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdOZXcgQ2FsZWRvbmlhJywgaXNvM0NvZGU6ICdOQ0wnLCBpc28yQ29kZTogJ05DJywgZGF0YXNldENvZGU6ICduYy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ05ldyBaZWFsYW5kIERhdGFGdXNpb24nLCBpc28zQ29kZTogJ05aTCcsIGlzbzJDb2RlOiAnTlonLCBkYXRhc2V0Q29kZTogJ256LWFkZGl0aW9uYWwtZGF0YWZ1c2lvbicsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUsIHNpbmdsZWxpbmUsIHR5cGVkb3duLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ05ldyBaZWFsYW5kIFBvc3RhbCBBZGRyZXNzJywgaXNvM0NvZGU6ICdOWkwnLCBpc28yQ29kZTogJ05aJywgZGF0YXNldENvZGU6ICduei1hZGRyZXNzJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSwgc2luZ2xlbGluZSwgdHlwZWRvd24sIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnTmljYXJhZ3VhJywgaXNvM0NvZGU6ICdOSUMnLCBpc28yQ29kZTogJ05JJywgZGF0YXNldENvZGU6ICduaS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnTmljYXJhZ3VhJywgaXNvM0NvZGU6ICdOSUMnLCBpc28yQ29kZTogJ05JJywgZGF0YXNldENvZGU6ICduaS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ05pZ2VyJywgaXNvM0NvZGU6ICdORVInLCBpc28yQ29kZTogJ05FJywgZGF0YXNldENvZGU6ICduZS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnTmlnZXInLCBpc28zQ29kZTogJ05FUicsIGlzbzJDb2RlOiAnTkUnLCBkYXRhc2V0Q29kZTogJ25lLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnTmlnZXJpYScsIGlzbzNDb2RlOiAnTkdBJywgaXNvMkNvZGU6ICdORycsIGRhdGFzZXRDb2RlOiAnbmctYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ05pZ2VyaWEnLCBpc28zQ29kZTogJ05HQScsIGlzbzJDb2RlOiAnTkcnLCBkYXRhc2V0Q29kZTogJ25nLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnTml1ZScsIGlzbzNDb2RlOiAnTklVJywgaXNvMkNvZGU6ICdOVScsIGRhdGFzZXRDb2RlOiAnbnUtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ05vcmZvbGsgSXNsYW5kJywgaXNvM0NvZGU6ICdORksnLCBpc28yQ29kZTogJ05GJywgZGF0YXNldENvZGU6ICduZi1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnTm9yZm9sayBJc2xhbmQnLCBpc28zQ29kZTogJ05GSycsIGlzbzJDb2RlOiAnTkYnLCBkYXRhc2V0Q29kZTogJ25mLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnTm9ydGggTWFjZWRvbmlhJywgaXNvM0NvZGU6ICdNS0QnLCBpc28yQ29kZTogJ01LJywgZGF0YXNldENvZGU6ICdtay1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnTm9ydGggTWFjZWRvbmlhJywgaXNvM0NvZGU6ICdNS0QnLCBpc28yQ29kZTogJ01LJywgZGF0YXNldENvZGU6ICdtay1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ05vcnRoZXJuIE1hcmlhbmEgSXNsYW5kcycsIGlzbzNDb2RlOiAnTU5QJywgaXNvMkNvZGU6ICdNUCcsIGRhdGFzZXRDb2RlOiAnbXAtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdOb3J3YXknLCBpc28zQ29kZTogJ05PUicsIGlzbzJDb2RlOiAnTk8nLCBkYXRhc2V0Q29kZTogJ25vLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAndmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdOb3J3YXknLCBpc28zQ29kZTogJ05PUicsIGlzbzJDb2RlOiAnTk8nLCBkYXRhc2V0Q29kZTogJ25vLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnT21hbicsIGlzbzNDb2RlOiAnT01OJywgaXNvMkNvZGU6ICdPTScsIGRhdGFzZXRDb2RlOiAnb20tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ09tYW4nLCBpc28zQ29kZTogJ09NTicsIGlzbzJDb2RlOiAnT00nLCBkYXRhc2V0Q29kZTogJ29tLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnUGFraXN0YW4nLCBpc28zQ29kZTogJ1BBSycsIGlzbzJDb2RlOiAnUEsnLCBkYXRhc2V0Q29kZTogJ3BrLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdQYWtpc3RhbicsIGlzbzNDb2RlOiAnUEFLJywgaXNvMkNvZGU6ICdQSycsIGRhdGFzZXRDb2RlOiAncGstYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdQYWxhdScsIGlzbzNDb2RlOiAnUExXJywgaXNvMkNvZGU6ICdQVycsIGRhdGFzZXRDb2RlOiAncHctYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdQYWxlc3RpbmUnLCBpc28zQ29kZTogJ1BTRScsIGlzbzJDb2RlOiAnUFMnLCBkYXRhc2V0Q29kZTogJ3BzLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnUGFuYW1hJywgaXNvM0NvZGU6ICdQQU4nLCBpc28yQ29kZTogJ1BBJywgZGF0YXNldENvZGU6ICdwYS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnUGFuYW1hJywgaXNvM0NvZGU6ICdQQU4nLCBpc28yQ29kZTogJ1BBJywgZGF0YXNldENvZGU6ICdwYS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ1BhcHVhIE5ldyBHdWluZWEnLCBpc28zQ29kZTogJ1BORycsIGlzbzJDb2RlOiAnUEcnLCBkYXRhc2V0Q29kZTogJ3BnLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdQYXB1YSBOZXcgR3VpbmVhJywgaXNvM0NvZGU6ICdQTkcnLCBpc28yQ29kZTogJ1BHJywgZGF0YXNldENvZGU6ICdwZy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ1BhcmFndWF5JywgaXNvM0NvZGU6ICdQUlknLCBpc28yQ29kZTogJ1BZJywgZGF0YXNldENvZGU6ICdweS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnUGFyYWd1YXknLCBpc28zQ29kZTogJ1BSWScsIGlzbzJDb2RlOiAnUFknLCBkYXRhc2V0Q29kZTogJ3B5LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnUGVydScsIGlzbzNDb2RlOiAnUEVSJywgaXNvMkNvZGU6ICdQRScsIGRhdGFzZXRDb2RlOiAncGUtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ1BlcnUnLCBpc28zQ29kZTogJ1BFUicsIGlzbzJDb2RlOiAnUEUnLCBkYXRhc2V0Q29kZTogJ3BlLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnUGhpbGlwcGluZXMnLCBpc28zQ29kZTogJ1BITCcsIGlzbzJDb2RlOiAnUEgnLCBkYXRhc2V0Q29kZTogJ3BoLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdQaGlsaXBwaW5lcycsIGlzbzNDb2RlOiAnUEhMJywgaXNvMkNvZGU6ICdQSCcsIGRhdGFzZXRDb2RlOiAncGgtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdQaXRjYWlybiBJc2xhbmRzJywgaXNvM0NvZGU6ICdQQ04nLCBpc28yQ29kZTogJ1BOJywgZGF0YXNldENvZGU6ICdwbi1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ1BvbGFuZCcsIGlzbzNDb2RlOiAnUE9MJywgaXNvMkNvZGU6ICdQTCcsIGRhdGFzZXRDb2RlOiAncGwtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ1BvbGFuZCcsIGlzbzNDb2RlOiAnUE9MJywgaXNvMkNvZGU6ICdQTCcsIGRhdGFzZXRDb2RlOiAncGwtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdQb3J0dWdhbCcsIGlzbzNDb2RlOiAnUFJUJywgaXNvMkNvZGU6ICdQVCcsIGRhdGFzZXRDb2RlOiAncHQtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ1BvcnR1Z2FsJywgaXNvM0NvZGU6ICdQUlQnLCBpc28yQ29kZTogJ1BUJywgZGF0YXNldENvZGU6ICdwdC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ1FhdGFyJywgaXNvM0NvZGU6ICdRQVQnLCBpc28yQ29kZTogJ1FBJywgZGF0YXNldENvZGU6ICdxYS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnUWF0YXInLCBpc28zQ29kZTogJ1FBVCcsIGlzbzJDb2RlOiAnUUEnLCBkYXRhc2V0Q29kZTogJ3FhLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnUm9tYW5pYScsIGlzbzNDb2RlOiAnUk9VJywgaXNvMkNvZGU6ICdSTycsIGRhdGFzZXRDb2RlOiAncm8tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ1JvbWFuaWEnLCBpc28zQ29kZTogJ1JPVScsIGlzbzJDb2RlOiAnUk8nLCBkYXRhc2V0Q29kZTogJ3JvLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnUnVzc2lhbiBGZWRlcmF0aW9uJywgaXNvM0NvZGU6ICdSVVMnLCBpc28yQ29kZTogJ1JVJywgZGF0YXNldENvZGU6ICdydS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnUnVzc2lhbiBGZWRlcmF0aW9uJywgaXNvM0NvZGU6ICdSVVMnLCBpc28yQ29kZTogJ1JVJywgZGF0YXNldENvZGU6ICdydS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ1J3YW5kYScsIGlzbzNDb2RlOiAnUldBJywgaXNvMkNvZGU6ICdSVycsIGRhdGFzZXRDb2RlOiAncnctYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ1J3YW5kYScsIGlzbzNDb2RlOiAnUldBJywgaXNvMkNvZGU6ICdSVycsIGRhdGFzZXRDb2RlOiAncnctYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdSw6l1bmlvbicsIGlzbzNDb2RlOiAnUkVVJywgaXNvMkNvZGU6ICdSRScsIGRhdGFzZXRDb2RlOiAncmUtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdTYWludCBCYXJ0aMOpbGVteScsIGlzbzNDb2RlOiAnQkxNJywgaXNvMkNvZGU6ICdCTCcsIGRhdGFzZXRDb2RlOiAnYmwtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdTYWludCBIZWxlbmEnLCBpc28zQ29kZTogJ1NITicsIGlzbzJDb2RlOiAnU0gnLCBkYXRhc2V0Q29kZTogJ3NoLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnU2FpbnQgS2l0dHMgYW5kIE5ldmlzJywgaXNvM0NvZGU6ICdLTkEnLCBpc28yQ29kZTogJ0tOJywgZGF0YXNldENvZGU6ICdrbi1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnU2FpbnQgS2l0dHMgYW5kIE5ldmlzJywgaXNvM0NvZGU6ICdLTkEnLCBpc28yQ29kZTogJ0tOJywgZGF0YXNldENvZGU6ICdrbi1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ1NhaW50IEx1Y2lhJywgaXNvM0NvZGU6ICdMQ0EnLCBpc28yQ29kZTogJ0xDJywgZGF0YXNldENvZGU6ICdsYy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ1NhaW50IFBpZXJyZSBhbmQgTWlxdWVsb24nLCBpc28zQ29kZTogJ1NQTScsIGlzbzJDb2RlOiAnUE0nLCBkYXRhc2V0Q29kZTogJ3BtLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnU2FpbnQgVmluY2VudCBhbmQgdGhlIEdyZW5hZGluZXMnLCBpc28zQ29kZTogJ1ZDVCcsIGlzbzJDb2RlOiAnVkMnLCBkYXRhc2V0Q29kZTogJ3ZjLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdTYWludCBWaW5jZW50IGFuZCB0aGUgR3JlbmFkaW5lcycsIGlzbzNDb2RlOiAnVkNUJywgaXNvMkNvZGU6ICdWQycsIGRhdGFzZXRDb2RlOiAndmMtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdTYW1vYScsIGlzbzNDb2RlOiAnV1NNJywgaXNvMkNvZGU6ICdXUycsIGRhdGFzZXRDb2RlOiAnd3MtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ1NhbW9hJywgaXNvM0NvZGU6ICdXU00nLCBpc28yQ29kZTogJ1dTJywgZGF0YXNldENvZGU6ICd3cy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ1NhbiBNYXJpbm8nLCBpc28zQ29kZTogJ1NNUicsIGlzbzJDb2RlOiAnU00nLCBkYXRhc2V0Q29kZTogJ3NtLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdTYW4gTWFyaW5vJywgaXNvM0NvZGU6ICdTTVInLCBpc28yQ29kZTogJ1NNJywgZGF0YXNldENvZGU6ICdzbS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ1NhbyBUb21lIGFuZCBQcmluY2lwZScsIGlzbzNDb2RlOiAnU1RQJywgaXNvMkNvZGU6ICdTVCcsIGRhdGFzZXRDb2RlOiAnc3QtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ1NhbyBUb21lIGFuZCBQcmluY2lwZScsIGlzbzNDb2RlOiAnU1RQJywgaXNvMkNvZGU6ICdTVCcsIGRhdGFzZXRDb2RlOiAnc3QtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdTYXVkaSBBcmFiaWEnLCBpc28zQ29kZTogJ1NBVScsIGlzbzJDb2RlOiAnU0EnLCBkYXRhc2V0Q29kZTogJ3NhLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdTYXVkaSBBcmFiaWEnLCBpc28zQ29kZTogJ1NBVScsIGlzbzJDb2RlOiAnU0EnLCBkYXRhc2V0Q29kZTogJ3NhLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnU2VuZWdhbCcsIGlzbzNDb2RlOiAnU0VOJywgaXNvMkNvZGU6ICdTTicsIGRhdGFzZXRDb2RlOiAnc24tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ1NlbmVnYWwnLCBpc28zQ29kZTogJ1NFTicsIGlzbzJDb2RlOiAnU04nLCBkYXRhc2V0Q29kZTogJ3NuLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnU2VyYmlhJywgaXNvM0NvZGU6ICdTUkInLCBpc28yQ29kZTogJ1JTJywgZGF0YXNldENvZGU6ICdycy1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnU2VyYmlhJywgaXNvM0NvZGU6ICdTUkInLCBpc28yQ29kZTogJ1JTJywgZGF0YXNldENvZGU6ICdycy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ1NleWNoZWxsZXMnLCBpc28zQ29kZTogJ1NZQycsIGlzbzJDb2RlOiAnU0MnLCBkYXRhc2V0Q29kZTogJ3NjLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdTZXljaGVsbGVzJywgaXNvM0NvZGU6ICdTWUMnLCBpc28yQ29kZTogJ1NDJywgZGF0YXNldENvZGU6ICdzYy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ1NpZXJyYSBMZW9uZScsIGlzbzNDb2RlOiAnU0xFJywgaXNvMkNvZGU6ICdTTCcsIGRhdGFzZXRDb2RlOiAnc2wtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ1NpZXJyYSBMZW9uZScsIGlzbzNDb2RlOiAnU0xFJywgaXNvMkNvZGU6ICdTTCcsIGRhdGFzZXRDb2RlOiAnc2wtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdTaW5nYXBvcmUnLCBpc28zQ29kZTogJ1NHUCcsIGlzbzJDb2RlOiAnU0cnLCBkYXRhc2V0Q29kZTogJ3NnLWFkZHJlc3MnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlLCBzaW5nbGVsaW5lLCB0eXBlZG93biwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdTaW50IE1hYXJ0ZW4nLCBpc28zQ29kZTogJ1NYTScsIGlzbzJDb2RlOiAnU1gnLCBkYXRhc2V0Q29kZTogJ3N4LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdTaW50IE1hYXJ0ZW4nLCBpc28zQ29kZTogJ1NYTScsIGlzbzJDb2RlOiAnU1gnLCBkYXRhc2V0Q29kZTogJ3N4LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnU2xvdmFraWEnLCBpc28zQ29kZTogJ1NWSycsIGlzbzJDb2RlOiAnU0snLCBkYXRhc2V0Q29kZTogJ3NrLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdTbG92YWtpYScsIGlzbzNDb2RlOiAnU1ZLJywgaXNvMkNvZGU6ICdTSycsIGRhdGFzZXRDb2RlOiAnc2stYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdTbG92ZW5pYScsIGlzbzNDb2RlOiAnU1ZOJywgaXNvMkNvZGU6ICdTSScsIGRhdGFzZXRDb2RlOiAnc2ktYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ1Nsb3ZlbmlhJywgaXNvM0NvZGU6ICdTVk4nLCBpc28yQ29kZTogJ1NJJywgZGF0YXNldENvZGU6ICdzaS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ1NvbG9tb24gSXNsYW5kcycsIGlzbzNDb2RlOiAnU0xCJywgaXNvMkNvZGU6ICdTQicsIGRhdGFzZXRDb2RlOiAnc2ItYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ1NvbG9tb24gSXNsYW5kcycsIGlzbzNDb2RlOiAnU0xCJywgaXNvMkNvZGU6ICdTQicsIGRhdGFzZXRDb2RlOiAnc2ItYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdTb21hbGlhJywgaXNvM0NvZGU6ICdTT00nLCBpc28yQ29kZTogJ1NPJywgZGF0YXNldENvZGU6ICdzby1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnU29tYWxpYScsIGlzbzNDb2RlOiAnU09NJywgaXNvMkNvZGU6ICdTTycsIGRhdGFzZXRDb2RlOiAnc28tYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdTb3V0aCBBZnJpY2EnLCBpc28zQ29kZTogJ1pBRicsIGlzbzJDb2RlOiAnWkEnLCBkYXRhc2V0Q29kZTogJ3phLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdTb3V0aCBBZnJpY2EnLCBpc28zQ29kZTogJ1pBRicsIGlzbzJDb2RlOiAnWkEnLCBkYXRhc2V0Q29kZTogJ3phLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnU291dGggR2VvcmdpYSBhbmQgdGhlIFNvdXRoIFNhbmR3aWNoIElzbGFuZHMnLCBpc28zQ29kZTogJ1NHUycsIGlzbzJDb2RlOiAnR1MnLCBkYXRhc2V0Q29kZTogJ2dzLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnU291dGggU3VkYW4nLCBpc28zQ29kZTogJ1NTRCcsIGlzbzJDb2RlOiAnU1MnLCBkYXRhc2V0Q29kZTogJ3NzLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdTb3V0aCBTdWRhbicsIGlzbzNDb2RlOiAnU1NEJywgaXNvMkNvZGU6ICdTUycsIGRhdGFzZXRDb2RlOiAnc3MtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdTcGFpbicsIGlzbzNDb2RlOiAnRVNQJywgaXNvMkNvZGU6ICdFUycsIGRhdGFzZXRDb2RlOiAnZXMtYWRkcmVzcycsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB0eXBlZG93bid9LFxuICB7Y291bnRyeTogJ1NwYWluJywgaXNvM0NvZGU6ICdFU1AnLCBpc28yQ29kZTogJ0VTJywgZGF0YXNldENvZGU6ICdlcy1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3ZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnU3BhaW4nLCBpc28zQ29kZTogJ0VTUCcsIGlzbzJDb2RlOiAnRVMnLCBkYXRhc2V0Q29kZTogJ2VzLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnU3JpIExhbmthJywgaXNvM0NvZGU6ICdMS0EnLCBpc28yQ29kZTogJ0xLJywgZGF0YXNldENvZGU6ICdsay1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnU3VkYW4nLCBpc28zQ29kZTogJ1NETicsIGlzbzJDb2RlOiAnU0QnLCBkYXRhc2V0Q29kZTogJ3NkLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdTdWRhbicsIGlzbzNDb2RlOiAnU0ROJywgaXNvMkNvZGU6ICdTRCcsIGRhdGFzZXRDb2RlOiAnc2QtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdTdXJpbmFtZScsIGlzbzNDb2RlOiAnU1VSJywgaXNvMkNvZGU6ICdTUicsIGRhdGFzZXRDb2RlOiAnc3ItYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ1N1cmluYW1lJywgaXNvM0NvZGU6ICdTVVInLCBpc28yQ29kZTogJ1NSJywgZGF0YXNldENvZGU6ICdzci1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ1N2YWxiYXJkIGFuZCBKYW4gTWF5ZW4gSXNsYW5kcycsIGlzbzNDb2RlOiAnU0pNJywgaXNvMkNvZGU6ICdTSicsIGRhdGFzZXRDb2RlOiAnc2otYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdTd2F6aWxhbmQgKEVzd2F0aW5pKScsIGlzbzNDb2RlOiAnU1daJywgaXNvMkNvZGU6ICdTWicsIGRhdGFzZXRDb2RlOiAnc3otYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ1N3YXppbGFuZCAoRXN3YXRpbmkpJywgaXNvM0NvZGU6ICdTV1onLCBpc28yQ29kZTogJ1NaJywgZGF0YXNldENvZGU6ICdzei1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ1N3ZWRlbicsIGlzbzNDb2RlOiAnU1dFJywgaXNvMkNvZGU6ICdTRScsIGRhdGFzZXRDb2RlOiAnc2UtYWRkcmVzcycsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB0eXBlZG93bid9LFxuICB7Y291bnRyeTogJ1N3ZWRlbicsIGlzbzNDb2RlOiAnU1dFJywgaXNvMkNvZGU6ICdTRScsIGRhdGFzZXRDb2RlOiAnc2UtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICd2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ1N3ZWRlbicsIGlzbzNDb2RlOiAnU1dFJywgaXNvMkNvZGU6ICdTRScsIGRhdGFzZXRDb2RlOiAnc2UtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdTd2l0emVybGFuZCcsIGlzbzNDb2RlOiAnQ0hFJywgaXNvMkNvZGU6ICdDSCcsIGRhdGFzZXRDb2RlOiAnY2gtYWRkcmVzcycsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB0eXBlZG93bid9LFxuICB7Y291bnRyeTogJ1N3aXR6ZXJsYW5kJywgaXNvM0NvZGU6ICdDSEUnLCBpc28yQ29kZTogJ0NIJywgZGF0YXNldENvZGU6ICdjaC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3ZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnU3dpdHplcmxhbmQnLCBpc28zQ29kZTogJ0NIRScsIGlzbzJDb2RlOiAnQ0gnLCBkYXRhc2V0Q29kZTogJ2NoLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnU3lyaWEnLCBpc28zQ29kZTogJ1NZUicsIGlzbzJDb2RlOiAnU1knLCBkYXRhc2V0Q29kZTogJ3N5LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdTeXJpYScsIGlzbzNDb2RlOiAnU1lSJywgaXNvMkNvZGU6ICdTWScsIGRhdGFzZXRDb2RlOiAnc3ktYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdUYWl3YW4nLCBpc28zQ29kZTogJ1RXTicsIGlzbzJDb2RlOiAnVFcnLCBkYXRhc2V0Q29kZTogJ3R3LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdUYWl3YW4nLCBpc28zQ29kZTogJ1RXTicsIGlzbzJDb2RlOiAnVFcnLCBkYXRhc2V0Q29kZTogJ3R3LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnVGFqaWtpc3RhbicsIGlzbzNDb2RlOiAnVEpLJywgaXNvMkNvZGU6ICdUSicsIGRhdGFzZXRDb2RlOiAndGotYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ1RhamlraXN0YW4nLCBpc28zQ29kZTogJ1RKSycsIGlzbzJDb2RlOiAnVEonLCBkYXRhc2V0Q29kZTogJ3RqLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnVGFuemFuaWEnLCBpc28zQ29kZTogJ1RaQScsIGlzbzJDb2RlOiAnVFonLCBkYXRhc2V0Q29kZTogJ3R6LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdUYW56YW5pYScsIGlzbzNDb2RlOiAnVFpBJywgaXNvMkNvZGU6ICdUWicsIGRhdGFzZXRDb2RlOiAndHotYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdUaGFpbGFuZCcsIGlzbzNDb2RlOiAnVEhBJywgaXNvMkNvZGU6ICdUSCcsIGRhdGFzZXRDb2RlOiAndGgtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ1RoYWlsYW5kJywgaXNvM0NvZGU6ICdUSEEnLCBpc28yQ29kZTogJ1RIJywgZGF0YXNldENvZGU6ICd0aC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ1RpbW9yLUxlc3RlJywgaXNvM0NvZGU6ICdUTFMnLCBpc28yQ29kZTogJ1RMJywgZGF0YXNldENvZGU6ICd0bC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnVGltb3ItTGVzdGUnLCBpc28zQ29kZTogJ1RMUycsIGlzbzJDb2RlOiAnVEwnLCBkYXRhc2V0Q29kZTogJ3RsLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnVG9nbycsIGlzbzNDb2RlOiAnVEdPJywgaXNvMkNvZGU6ICdURycsIGRhdGFzZXRDb2RlOiAndGctYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ1RvZ28nLCBpc28zQ29kZTogJ1RHTycsIGlzbzJDb2RlOiAnVEcnLCBkYXRhc2V0Q29kZTogJ3RnLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnVG9rZWxhdScsIGlzbzNDb2RlOiAnVEtMJywgaXNvMkNvZGU6ICdUSycsIGRhdGFzZXRDb2RlOiAndGstYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ1Rva2VsYXUnLCBpc28zQ29kZTogJ1RLTCcsIGlzbzJDb2RlOiAnVEsnLCBkYXRhc2V0Q29kZTogJ3RrLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnVG9uZ2EnLCBpc28zQ29kZTogJ1RPTicsIGlzbzJDb2RlOiAnVE8nLCBkYXRhc2V0Q29kZTogJ3RvLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdUb25nYScsIGlzbzNDb2RlOiAnVE9OJywgaXNvMkNvZGU6ICdUTycsIGRhdGFzZXRDb2RlOiAndG8tYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdUcmluaWRhZCBhbmQgVG9iYWdvJywgaXNvM0NvZGU6ICdUVE8nLCBpc28yQ29kZTogJ1RUJywgZGF0YXNldENvZGU6ICd0dC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnVHJpbmlkYWQgYW5kIFRvYmFnbycsIGlzbzNDb2RlOiAnVFRPJywgaXNvMkNvZGU6ICdUVCcsIGRhdGFzZXRDb2RlOiAndHQtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdUdW5pc2lhJywgaXNvM0NvZGU6ICdUVU4nLCBpc28yQ29kZTogJ1ROJywgZGF0YXNldENvZGU6ICd0bi1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnVHVuaXNpYScsIGlzbzNDb2RlOiAnVFVOJywgaXNvMkNvZGU6ICdUTicsIGRhdGFzZXRDb2RlOiAndG4tYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdUdXJrZXknLCBpc28zQ29kZTogJ1RVUicsIGlzbzJDb2RlOiAnVFInLCBkYXRhc2V0Q29kZTogJ3RyLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdUdXJrZXknLCBpc28zQ29kZTogJ1RVUicsIGlzbzJDb2RlOiAnVFInLCBkYXRhc2V0Q29kZTogJ3RyLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnVHVya2lzaCBSZXB1YmxpYyBvZiBOb3J0aGVybiBDeXBydXMnLCBpc28zQ29kZTogJ05DWScsIGlzbzJDb2RlOiAnQ1knLCBkYXRhc2V0Q29kZTogJ255LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnVHVya21lbmlzdGFuJywgaXNvM0NvZGU6ICdUS00nLCBpc28yQ29kZTogJ1RNJywgZGF0YXNldENvZGU6ICd0bS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnVHVya21lbmlzdGFuJywgaXNvM0NvZGU6ICdUS00nLCBpc28yQ29kZTogJ1RNJywgZGF0YXNldENvZGU6ICd0bS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ1R1cmtzIGFuZCBDYWljb3MgSXNsYW5kcycsIGlzbzNDb2RlOiAnVENBJywgaXNvMkNvZGU6ICdUQycsIGRhdGFzZXRDb2RlOiAndGMtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdUdXZhbHUnLCBpc28zQ29kZTogJ1RVVicsIGlzbzJDb2RlOiAnVFYnLCBkYXRhc2V0Q29kZTogJ3R2LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdUdXZhbHUnLCBpc28zQ29kZTogJ1RVVicsIGlzbzJDb2RlOiAnVFYnLCBkYXRhc2V0Q29kZTogJ3R2LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnVWdhbmRhJywgaXNvM0NvZGU6ICdVR0EnLCBpc28yQ29kZTogJ1VHJywgZGF0YXNldENvZGU6ICd1Zy1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnVWdhbmRhJywgaXNvM0NvZGU6ICdVR0EnLCBpc28yQ29kZTogJ1VHJywgZGF0YXNldENvZGU6ICd1Zy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ1VrcmFpbmUnLCBpc28zQ29kZTogJ1VLUicsIGlzbzJDb2RlOiAnVUEnLCBkYXRhc2V0Q29kZTogJ3VhLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdVa3JhaW5lJywgaXNvM0NvZGU6ICdVS1InLCBpc28yQ29kZTogJ1VBJywgZGF0YXNldENvZGU6ICd1YS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ1VuaXRlZCBBcmFiIEVtaXJhdGVzJywgaXNvM0NvZGU6ICdBUkUnLCBpc28yQ29kZTogJ0FFJywgZGF0YXNldENvZGU6ICdhZS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnVW5pdGVkIEFyYWIgRW1pcmF0ZXMnLCBpc28zQ29kZTogJ0FSRScsIGlzbzJDb2RlOiAnQUUnLCBkYXRhc2V0Q29kZTogJ2FlLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnVW5pdGVkIEtpbmdkb20nLCBpc28zQ29kZTogJ0dCUicsIGlzbzJDb2RlOiAnR0InLCBkYXRhc2V0Q29kZTogWydnYi1hZGRyZXNzJ10sIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdVbml0ZWQgS2luZ2RvbScsIGlzbzNDb2RlOiAnR0JSJywgaXNvMkNvZGU6ICdHQicsIGRhdGFzZXRDb2RlOiBbJ2diLWFkZGl0aW9uYWwtYnVzaW5lc3MnLCAnZ2ItYWRkaXRpb25hbC1tdWx0aXBsZXJlc2lkZW5jZScsICdnYi1hZGRpdGlvbmFsLW5vdHlldGJ1aWx0J10sIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lJ30sXG4gIHtjb3VudHJ5OiAnVW5pdGVkIEtpbmdkb20gQWRkcmVzc0Jhc2UgUHJlbWl1bScsIGlzbzNDb2RlOiAnR0JSJywgaXNvMkNvZGU6ICdHQicsIGRhdGFzZXRDb2RlOiAnZ2ItYWRkcmVzcy1hZGRyZXNzYmFzZScsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB0eXBlZG93biwgdmFsaWRhdGUsIGxvb2t1cCd9LFxuICB7Y291bnRyeTogJ1VuaXRlZCBLaW5nZG9tIEFkZHJlc3NCYXNlIFByZW1pdW0gd2l0aCBJc2xhbmRzJywgaXNvM0NvZGU6ICdHQlInLCBpc28yQ29kZTogJ0dCJywgZGF0YXNldENvZGU6ICdnYi1hZGRpdGlvbmFsLWFkZHJlc3NiYXNlaXNsYW5kcycsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB0eXBlZG93biwgdmFsaWRhdGUsIGxvb2t1cCd9LFxuICB7Y291bnRyeTogJ1VuaXRlZCBLaW5nZG9tIEJ1c2luZXNzIE5hbWVzJywgaXNvM0NvZGU6ICdHQlInLCBpc28yQ29kZTogJ0dCJywgZGF0YXNldENvZGU6ICdnYi1hZGRpdGlvbmFsLWJ1c2luZXNzJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHR5cGVkb3duJ30sXG4gIHtjb3VudHJ5OiAnVW5pdGVkIEtpbmdkb20gRWxlY3RyaWNpdHknLCBpc28zQ29kZTogJ0dCUicsIGlzbzJDb2RlOiAnR0InLCBkYXRhc2V0Q29kZTogJ2diLWFkZGl0aW9uYWwtZWxlY3RyaWNpdHknLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdHlwZWRvd24sIHZhbGlkYXRlLCBsb29rdXAnfSxcbiAge2NvdW50cnk6ICdVbml0ZWQgS2luZ2RvbSBHYXMnLCBpc28zQ29kZTogJ0dCUicsIGlzbzJDb2RlOiAnR0InLCBkYXRhc2V0Q29kZTogJ2diLWFkZGl0aW9uYWwtZ2FzJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHR5cGVkb3duLCB2YWxpZGF0ZSwgbG9va3VwJ30sXG4gIHtjb3VudHJ5OiAnVW5pdGVkIEtpbmdkb20gU3RyZWV0IExldmVsJywgaXNvM0NvZGU6ICdHQlInLCBpc28yQ29kZTogJ0dCJywgZGF0YXNldENvZGU6ICdnYi1hZGRyZXNzLXN0cmVldGxldmVsJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHR5cGVkb3duJ30sXG4gIHtjb3VudHJ5OiAnVW5pdGVkIEtpbmdkb20gRXh0ZW5kZWQgQnVzaW5lc3MnLCBpc28zQ29kZTogJ0dCUicsIGlzbzJDb2RlOiAnR0InLCBkYXRhc2V0Q29kZTogJ2diLWFkZGl0aW9uYWwtYnVzaW5lc3NleHRlbmRlZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB0eXBlZG93biwgdmFsaWRhdGUsIGxvb2t1cCd9LFxuICB7Y291bnRyeTogJ1VuaXRlZCBLaW5nZG9tIEN5bXJhZWcgKFdlbHNoIExhbmd1YWdlKSBQb3N0YWwgQWRkcmVzcycsIGlzbzNDb2RlOiAnR0JSJywgaXNvMkNvZGU6ICdHQicsIGRhdGFzZXRDb2RlOiAnZ2ItYWRkcmVzcy13YWxlcycsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB0eXBlZG93biwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdVbml0ZWQgU3RhdGVzIG9mIEFtZXJpY2EnLCBpc28zQ29kZTogJ1VTQScsIGlzbzJDb2RlOiAnVVMnLCBkYXRhc2V0Q29kZTogJ3VzLWFkZHJlc3MnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlLCBzaW5nbGVsaW5lLCB0eXBlZG93biwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdVcnVndWF5JywgaXNvM0NvZGU6ICdVUlknLCBpc28yQ29kZTogJ1VZJywgZGF0YXNldENvZGU6ICd1eS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnVXJ1Z3VheScsIGlzbzNDb2RlOiAnVVJZJywgaXNvMkNvZGU6ICdVWScsIGRhdGFzZXRDb2RlOiAndXktYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdVemJla2lzdGFuJywgaXNvM0NvZGU6ICdVWkInLCBpc28yQ29kZTogJ1VaJywgZGF0YXNldENvZGU6ICd1ei1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnVXpiZWtpc3RhbicsIGlzbzNDb2RlOiAnVVpCJywgaXNvMkNvZGU6ICdVWicsIGRhdGFzZXRDb2RlOiAndXotYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdWYW51YXR1JywgaXNvM0NvZGU6ICdWVVQnLCBpc28yQ29kZTogJ1ZVJywgZGF0YXNldENvZGU6ICd2dS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXG4gIHtjb3VudHJ5OiAnVmFudWF0dScsIGlzbzNDb2RlOiAnVlVUJywgaXNvMkNvZGU6ICdWVScsIGRhdGFzZXRDb2RlOiAndnUtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdWYXRpY2FuIENpdHkgKEhvbHkgU2VlKScsIGlzbzNDb2RlOiAnVkFUJywgaXNvMkNvZGU6ICdWQScsIGRhdGFzZXRDb2RlOiAndmEtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ1ZhdGljYW4gQ2l0eSAoSG9seSBTZWUpJywgaXNvM0NvZGU6ICdWQVQnLCBpc28yQ29kZTogJ1ZBJywgZGF0YXNldENvZGU6ICd2YS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ1ZlbmV6dWVsYScsIGlzbzNDb2RlOiAnVkVOJywgaXNvMkNvZGU6ICdWRScsIGRhdGFzZXRDb2RlOiAndmUtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ1ZlbmV6dWVsYScsIGlzbzNDb2RlOiAnVkVOJywgaXNvMkNvZGU6ICdWRScsIGRhdGFzZXRDb2RlOiAndmUtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdWaWV0IE5hbScsIGlzbzNDb2RlOiAnVk5NJywgaXNvMkNvZGU6ICdWTicsIGRhdGFzZXRDb2RlOiAndm4tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ1ZpZXQgTmFtJywgaXNvM0NvZGU6ICdWTk0nLCBpc28yQ29kZTogJ1ZOJywgZGF0YXNldENvZGU6ICd2bi1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ1ZpcmdpbiBJc2xhbmRzLCBCcml0aXNoJywgaXNvM0NvZGU6ICdWR0InLCBpc28yQ29kZTogJ1ZHJywgZGF0YXNldENvZGU6ICd2Zy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ1ZpcmdpbiBJc2xhbmRzLCBVLlMuJywgaXNvM0NvZGU6ICdWSVInLCBpc28yQ29kZTogJ1ZJJywgZGF0YXNldENvZGU6ICd2aS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ1dhbGxpcyBhbmQgRnV0dW5hIElzbGFuZHMnLCBpc28zQ29kZTogJ1dMRicsIGlzbzJDb2RlOiAnV0YnLCBkYXRhc2V0Q29kZTogJ3dmLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXG4gIHtjb3VudHJ5OiAnV2VzdGVybiBTYWhhcmEnLCBpc28zQ29kZTogJ0VTSCcsIGlzbzJDb2RlOiAnRUgnLCBkYXRhc2V0Q29kZTogJ2VoLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcbiAge2NvdW50cnk6ICdXZXN0ZXJuIFNhaGFyYScsIGlzbzNDb2RlOiAnRVNIJywgaXNvMkNvZGU6ICdFSCcsIGRhdGFzZXRDb2RlOiAnZWgtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdZZW1lbicsIGlzbzNDb2RlOiAnWUVNJywgaXNvMkNvZGU6ICdZRScsIGRhdGFzZXRDb2RlOiAneWUtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ1llbWVuJywgaXNvM0NvZGU6ICdZRU0nLCBpc28yQ29kZTogJ1lFJywgZGF0YXNldENvZGU6ICd5ZS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxuICB7Y291bnRyeTogJ1phbWJpYScsIGlzbzNDb2RlOiAnWk1CJywgaXNvMkNvZGU6ICdaTScsIGRhdGFzZXRDb2RlOiAnem0tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ1phbWJpYScsIGlzbzNDb2RlOiAnWk1CJywgaXNvMkNvZGU6ICdaTScsIGRhdGFzZXRDb2RlOiAnem0tYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcbiAge2NvdW50cnk6ICdaaW1iYWJ3ZScsIGlzbzNDb2RlOiAnWldFJywgaXNvMkNvZGU6ICdaVycsIGRhdGFzZXRDb2RlOiAnenctYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxuICB7Y291bnRyeTogJ1ppbWJhYndlJywgaXNvM0NvZGU6ICdaV0UnLCBpc28yQ29kZTogJ1pXJywgZGF0YXNldENvZGU6ICd6dy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9XG5dOyIsIi8vIFRyYW5zbGF0aW9uc1xuZXhwb3J0IGNvbnN0IHRyYW5zbGF0aW9ucyA9IHtcbiAgLy8gbGFuZ3VhZ2UgLyBjb3VudHJ5IC8gcHJvcGVydHlcbiAgZW46IHtcbiAgICBnYnI6IHtcbiAgICAgIGxvY2FsaXR5OiAnVG93bi9DaXR5JyxcbiAgICAgIHJlZ2lvbjogJ0NvdW50eScsXG4gICAgICBwb3N0YWxfY29kZTogJ1Bvc3QgY29kZSdcbiAgICB9LFxuICAgIHVzYToge1xuICAgICAgbG9jYWxpdHk6ICdDaXR5JyxcbiAgICAgIHJlZ2lvbjogJ1N0YXRlJyxcbiAgICAgIHBvc3RhbF9jb2RlOiAnWklQIGNvZGUnXG4gICAgfVxuICB9XG4gIC8vIEFkZCBvdGhlciBsYW5ndWFnZXMgYmVsb3dcbn07IiwiZXhwb3J0IGNsYXNzIFBpY2tsaXN0IHtcclxuICBpdGVtczogUGlja2xpc3RJdGVtW107XHJcbiAgd2hhdDN3b3Jkc0l0ZW1zOiBXaGF0M1dvcmRzUGlja0xpc3RbXTtcclxuICBsb29rdXBJdGVtczogTG9va3VwQWRkcmVzc1tdO1xyXG4gIGN1cnJlbnRJdGVtO1xyXG4gIGxpc3Q6IEhUTUxEaXZFbGVtZW50O1xyXG4gIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XHJcbiAgc2l6ZSA9IDA7XHJcbiAgbWF4U3VnZ2VzdGlvbnMgPSAyNTtcclxuICBzaG93OiAoaXRlbXM6IFNlYXJjaFJlc3BvbnNlKSA9PiB2b2lkO1xyXG4gIHNob3dXaGF0M1dvcmRzOiAoaXRlbXM6IExvb2t1cFczV1Jlc3BvbnNlKSA9PiB2b2lkO1xyXG4gIHNob3dMb29rdXA6IChpdGVtczogTG9va3VwVjJSZXNwb25zZSkgPT4gdm9pZDtcclxuICBoaWRlOiAoKSA9PiB2b2lkO1xyXG4gIGhhbmRsZUVtcHR5UGlja2xpc3Q6IChpdGVtczogU2VhcmNoUmVzcG9uc2UgfCBMb29rdXBXM1dSZXNwb25zZSB8IExvb2t1cFYyUmVzcG9uc2UpID0+IHZvaWQ7XHJcbiAgaGFuZGxlRW1wdHlQaWNrbGlzdENhbGxiYWNrOiAoKSA9PiB2b2lkO1xyXG4gIGhhbmRsZUNvbW1vblNob3dQaWNrbGlzdExvZ2ljOiAoKSA9PiB2b2lkO1xyXG4gIHJlZmluZTogUmVmaW5lbWVudDtcclxuICB1c2VBZGRyZXNzRW50ZXJlZDogVXNlQWRkcmVzc0VudGVyZWQ7XHJcbiAgY3JlYXRlTGlzdDogKCkgPT4gSFRNTERpdkVsZW1lbnQ7XHJcbiAgY3JlYXRlTGlzdEl0ZW06IChpdGVtOiBQaWNrbGlzdEl0ZW0pID0+IEhUTUxEaXZFbGVtZW50O1xyXG4gIGNyZWF0ZUxvb2t1cExpc3RJdGVtOiAoaXRlbTogTG9va3VwQWRkcmVzcykgPT4gSFRNTERpdkVsZW1lbnQ7XHJcbiAgY3JlYXRlV2hhdDNXb3Jkc0xpc3RJdGVtOiAoaXRlbTogV2hhdDNXb3Jkc1BpY2tMaXN0KSA9PiBIVE1MRGl2RWxlbWVudDtcclxuICB0YWJDb3VudDogbnVtYmVyO1xyXG4gIHJlc2V0VGFiQ291bnQ6ICgpID0+IHZvaWQ7XHJcbiAga2V5dXA6IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4gdm9pZDtcclxuICBhZGRNYXRjaGluZ0VtcGhhc2lzOiAoaXRlbSkgPT4gc3RyaW5nO1xyXG4gIGxpc3RlbjogKHJvdykgPT4gdm9pZDtcclxuICBjaGVja0VudGVyOiAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHZvaWQ7XHJcbiAgcGljazogKGl0ZW0pID0+IHZvaWQ7XHJcbiAgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZDogKCkgPT4gdm9pZDtcclxuICBkaXNwbGF5U3VnZ2VzdGlvbnNIZWFkZXI6ICgpID0+IHZvaWQ7XHJcbiAgZGlzcGxheVVzZUFkZHJlc3NFbnRlcmVkRm9vdGVyOiAoKSA9PiB2b2lkO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQWRkcmVzc1ZhbGlkYXRpb25SZXN1bHQge1xyXG4gIGZvcm1hdHRlZEFkZHJlc3NDb250YWluZXI7XHJcbiAgbGFzdEFkZHJlc3NGaWVsZDtcclxuICBnZW5lcmF0ZUFkZHJlc3NMaW5lUmVxdWlyZWQ6IGJvb2xlYW47XHJcbiAgc2hvdzogKGRhdGEpID0+IHZvaWQ7XHJcbiAgaGlkZTogKCkgPT4gdm9pZDtcclxuICBjcmVhdGVBZGRyZXNzTGluZTogQ3JlYXRlQWRkcmVzc0xpbmU7XHJcbiAgY3JlYXRlRm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lcjogKCkgPT4gdm9pZDtcclxuICBjcmVhdGVIZWFkaW5nOiAoKSA9PiB2b2lkO1xyXG4gIHVwZGF0ZUhlYWRpbmc6ICh0ZXh0OiBzdHJpbmcpID0+IHZvaWQ7XHJcbiAgY2FsY3VsYXRlSWZBZGRyZXNzTGluZUdlbmVyYXRpb25SZXF1aXJlZDogKCkgPT4gdm9pZDtcclxuICB1cGRhdGVBZGRyZXNzTGluZTogKGtleTogc3RyaW5nLCBhZGRyZXNzTGluZU9iamVjdCwgY2xhc3NOYW1lOiBzdHJpbmcpID0+IHZvaWQ7XHJcbiAgdXBkYXRlTGFiZWw6IChrZXk6IHN0cmluZykgPT4gc3RyaW5nO1xyXG4gIGNyZWF0ZVNlYXJjaEFnYWluTGluazogKCkgPT4gdm9pZDtcclxuICByZW5kZXJJbnB1dExpc3Q6IChpbnB1dEFycmF5KSA9PiB2b2lkO1xyXG4gIGhhbmRsZVZhbGlkYXRlUmVzcG9uc2U6IChyZXNwb25zZTogU2VhcmNoUmVzcG9uc2UpID0+IHZvaWQ7XHJcbn1cclxuXHJcbmNsYXNzIENyZWF0ZUFkZHJlc3NMaW5lIHtcclxuICBpbnB1dDogKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBjbGFzc05hbWU6IHN0cmluZykgPT4gSFRNTERpdkVsZW1lbnQ7XHJcbiAgbGFiZWw6IChrZXk6IHN0cmluZykgPT4gc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaFJlc3BvbnNlIHtcclxuICByZXN1bHQ/OiB7XHJcbiAgICBzdWdnZXN0aW9uczogUGlja2xpc3RJdGVtW107XHJcbiAgICBzdWdnZXN0aW9uc19wcm9tcHQ/OiBzdHJpbmc7XHJcbiAgICBzdWdnZXN0aW9uc19rZXk/OiBzdHJpbmc7XHJcbiAgICBjb25maWRlbmNlOiBzdHJpbmc7XHJcbiAgICBhZGRyZXNzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTG9va3VwVzNXUmVzcG9uc2Uge1xyXG4gIHJlc3VsdD86IHtcclxuICAgIG1vcmVfcmVzdWx0c19hdmFpbGFibGU6IGJvb2xlYW47XHJcbiAgICBzdWdnZXN0aW9uczogV2hhdDNXb3Jkc1BpY2tMaXN0W107XHJcbiAgICBjb25maWRlbmNlOiBzdHJpbmc7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExvb2t1cFYyUmVzcG9uc2Uge1xyXG4gIHJlc3VsdD86IHtcclxuICAgIG1vcmVfcmVzdWx0c19hdmFpbGFibGU6IGJvb2xlYW47XHJcbiAgICBjb25maWRlbmNlOiBzdHJpbmc7XHJcbiAgICBhZGRyZXNzZXM6IExvb2t1cEFkZHJlc3NbXTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTG9va3VwQWRkcmVzcyB7XHJcbiAgdGV4dDogc3RyaW5nO1xyXG4gIGdsb2JhbF9hZGRyZXNzX2tleTogc3RyaW5nO1xyXG4gIGZvcm1hdDogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFdoYXQzV29yZHNQaWNrTGlzdCB7XHJcbiAgd2hhdDN3b3JkczogV2hhdDNXb3Jkc1N1Z2dlc3Rpb247XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgV2hhdDNXb3Jkc1N1Z2dlc3Rpb24ge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBkZXNjcmlwdGlvbjogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGlja2xpc3RJdGVtIHtcclxuICB0ZXh0OiBzdHJpbmc7XHJcbiAgZm9ybWF0Pzogc3RyaW5nO1xyXG4gIG1hdGNoZWQ/OiBudW1iZXJbXVtdO1xyXG4gIGdsb2JhbF9hZGRyZXNzX2tleT86IHN0cmluZztcclxuICBhZGRpdGlvbmFsX2F0dHJpYnV0ZXM/OiB7IG5hbWU6IHN0cmluZywgVmFsdWU6IHN0cmluZyB9W107XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBVc2VBZGRyZXNzRW50ZXJlZCB7XHJcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQ7XHJcbiAgY3JlYXRlOiAoY29uZmlkZW5jZTogc3RyaW5nKSA9PiBIVE1MRGl2RWxlbWVudDtcclxuICBkZXN0cm95OiAoKSA9PiB2b2lkO1xyXG4gIGNsaWNrOiAoKSA9PiB2b2lkO1xyXG4gIGZvcm1hdE1hbnVhbEFkZHJlc3NMaW5lOiAobGluZXMsIGkpID0+IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBSZWZpbmVtZW50IHtcclxuICBlbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50O1xyXG4gIGlzTmVlZGVkOiAocmVzcG9uc2U6IFNlYXJjaFJlc3BvbnNlKSA9PiBib29sZWFuO1xyXG4gIGNyZWF0ZUlucHV0OiAocHJvbXB0OiBzdHJpbmcsIGtleTogc3RyaW5nKSA9PiB2b2lkO1xyXG4gIGVudGVyOiAoZXZlbnQ6IEV2ZW50KSA9PiB2b2lkO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU2VhcmNoU3Bpbm5lciB7XHJcbiAgc2hvdzogKCkgPT4gdm9pZDtcclxuICBoaWRlOiAoKSA9PiB2b2lkO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUG93ZXJlZEJ5TG9nbyB7XHJcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQ7XHJcbiAgY3JlYXRlOiAocGlja2xpc3QpID0+IEhUTUxEaXZFbGVtZW50O1xyXG4gIGRlc3Ryb3k6IChwaWNrbGlzdCkgPT4gdm9pZDtcclxuICBzdmc6IHN0cmluZztcclxufSIsImltcG9ydCBFdmVudEZhY3RvcnkgZnJvbSAnLi9ldmVudC1mYWN0b3J5JztcclxuaW1wb3J0IFJlcXVlc3QgZnJvbSAnLi9yZXF1ZXN0JztcclxuaW1wb3J0IHsgQWRkcmVzc1NlYXJjaE9wdGlvbnMsIEFkZHJlc3NWYWxpZGF0aW9uTW9kZSwgZGVmYXVsdHMgfSBmcm9tICcuL3NlYXJjaC1vcHRpb25zJztcclxuaW1wb3J0IHsgZGF0YXNldENvZGVzIH0gZnJvbSAnLi9kYXRhc2V0cy1jb2Rlcyc7XHJcbmltcG9ydCB7IHRyYW5zbGF0aW9ucyB9IGZyb20gJy4vdHJhbnNsYXRpb25zJztcclxuaW1wb3J0IHsgQWRkcmVzc1ZhbGlkYXRpb25SZXN1bHQsIExvb2t1cEFkZHJlc3MsIExvb2t1cFYyUmVzcG9uc2UsIExvb2t1cFczV1Jlc3BvbnNlLCBQaWNrbGlzdCwgUGlja2xpc3RJdGVtLCBQb3dlcmVkQnlMb2dvLCBTZWFyY2hSZXNwb25zZSwgV2hhdDNXb3Jkc1BpY2tMaXN0IH0gZnJvbSAnLi9jbGFzcy10eXBlcyc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBZGRyZXNzVmFsaWRhdGlvbiB7XHJcbiAgcHVibGljIG9wdGlvbnM6IEFkZHJlc3NTZWFyY2hPcHRpb25zO1xyXG4gIHB1YmxpYyBzZWFyY2hUeXBlOiBBZGRyZXNzVmFsaWRhdGlvbk1vZGU7XHJcbiAgcHVibGljIGV2ZW50cztcclxuICBwdWJsaWMgcmVxdWVzdDogUmVxdWVzdDtcclxuXHJcbiAgcHJpdmF0ZSBiYXNlVXJsID0gJ2h0dHBzOi8vYXBpLmV4cGVyaWFuYXBlcnR1cmUuaW8vJztcclxuICBwcml2YXRlIHNlYXJjaEVuZHBvaW50ID0gJ2FkZHJlc3Mvc2VhcmNoL3YxJztcclxuICBwcml2YXRlIGxvb2t1cEVuZHBvaW50ID0gJ2FkZHJlc3MvbG9va3VwL3YyJztcclxuICBwcml2YXRlIHZhbGlkYXRlRW5kcG9pbnQgPSAnYWRkcmVzcy92YWxpZGF0ZS92MSc7XHJcbiAgcHJpdmF0ZSBwcm9tcHRzZXRFbmRwb2ludCA9ICdhZGRyZXNzL3Byb21wdHNldHMvdjEnO1xyXG4gIHByaXZhdGUgc3RlcEluRW5kcG9pbnQgPSAnYWRkcmVzcy9zdWdnZXN0aW9ucy9zdGVwaW4vdjEnO1xyXG4gIHByaXZhdGUgcmVmaW5lRW5kcG9pbnQgPSAnYWRkcmVzcy9zdWdnZXN0aW9ucy9yZWZpbmUvdjEnO1xyXG4gIHByaXZhdGUgZW5yaWNobWVudEVuZHBvaW50ID0gJ2VucmljaG1lbnQvdjInO1xyXG5cclxuICBwcml2YXRlIHdoYXQzV29yZENvdW50cmllcyA9IFsnR0JSJ107XHJcbiAgcHJpdmF0ZSB3aGF0M1dvcmRzS2V5d29yZCA9ICd3aGF0M3dvcmRzJztcclxuXHJcbiAgcHJpdmF0ZSBwaWNrbGlzdDogUGlja2xpc3Q7XHJcbiAgcHJpdmF0ZSBpbnB1dHM6IEhUTUxJbnB1dEVsZW1lbnRbXTtcclxuICBwcml2YXRlIGxhc3RTZWFyY2hUZXJtOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBjdXJyZW50U2VhcmNoVGVybTogc3RyaW5nO1xyXG4gIHByaXZhdGUgc2hvdWxkVHJpZ2dlcldoYXQzV29yZHNFbnJpY2htZW50OiBib29sZWFuO1xyXG4gIHByaXZhdGUgY3VycmVudENvdW50cnlDb2RlOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBjdXJyZW50RGF0YVNldDogc3RyaW5nIHwgc3RyaW5nW107XHJcbiAgcHJpdmF0ZSBoYXNTZWFyY2hJbnB1dEJlZW5SZXNldDogYm9vbGVhbjtcclxuICBwcml2YXRlIGNvdW50cnlDb2RlTWFwcGluZztcclxuICBwcml2YXRlIGxvb2t1cEZuO1xyXG4gIHByaXZhdGUga2V5VXBGbjtcclxuICBwcml2YXRlIGNoZWNrVGFiRm47XHJcbiAgcHJpdmF0ZSBpc1doYXQzV29yZHM6IGJvb2xlYW47XHJcblxyXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEFkZHJlc3NTZWFyY2hPcHRpb25zKSB7XHJcbiAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLm1lcmdlRGVmYXVsdE9wdGlvbnMob3B0aW9ucyk7XHJcblxyXG4gICAgdGhpcy5ldmVudHMgPSBuZXcgRXZlbnRGYWN0b3J5KCk7XHJcblxyXG4gICAgdGhpcy5zZXR1cCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFRva2VuKHRva2VuOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMub3B0aW9ucy50b2tlbiA9IHRva2VuO1xyXG4gICAgdGhpcy5zZXR1cCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFNlYXJjaFR5cGUoc2VhcmNoVHlwZTogQWRkcmVzc1ZhbGlkYXRpb25Nb2RlKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlYXJjaFR5cGUgPSBzZWFyY2hUeXBlO1xyXG4gICAgdGhpcy5nbG9iYWxSZXNldCgpO1xyXG4gICAgdGhpcy5zZXRJbnB1dHMoKTtcclxuICAgIHRoaXMuZXZlbnRzLnRyaWdnZXIoJ3Bvc3Qtc2VhcmNoLXR5cGUtY2hhbmdlJywgc2VhcmNoVHlwZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0RW5yaWNobWVudERhdGEoZ2xvYmFsQWRkcmVzc0tleTogc3RyaW5nKSB7XHJcbiAgICBpZiAoZ2xvYmFsQWRkcmVzc0tleSkge1xyXG4gICAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICAgIGNvdW50cnlfaXNvOiB0aGlzLmN1cnJlbnRDb3VudHJ5Q29kZSxcclxuICAgICAgICBrZXlzOiB7XHJcbiAgICAgICAgICBnbG9iYWxfYWRkcmVzc19rZXk6IGdsb2JhbEFkZHJlc3NLZXlcclxuICAgICAgICB9LFxyXG4gICAgICAgIGF0dHJpYnV0ZXM6IHtcclxuICAgICAgICAgIGdlb2NvZGVzOiBbJ2xhdGl0dWRlJywgJ2xvbmdpdHVkZScsICdtYXRjaF9sZXZlbCddLFxyXG4gICAgICAgICAgd2hhdDN3b3JkczogdGhpcy5zaG91bGRUcmlnZ2VyV2hhdDNXb3Jkc0VucmljaG1lbnQgPyBcclxuICAgICAgICAgICAgWydsYXRpdHVkZScsICdsb25naXR1ZGUnLCAnbmFtZScsICdkZXNjcmlwdGlvbiddIDogbnVsbFxyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgICAgXHJcbiAgICAgIHRoaXMuZXZlbnRzLnRyaWdnZXIoJ3ByZS1lbnJpY2htZW50Jyk7XHJcbiAgICAgIHRoaXMucmVxdWVzdC5zZW5kKHRoaXMuYmFzZVVybCArIHRoaXMuZW5yaWNobWVudEVuZHBvaW50LCAnUE9TVCcsIHRoaXMuaGFuZGxlRW5yaWNobWVudFJlc3VsdC5iaW5kKHRoaXMpLCBKU09OLnN0cmluZ2lmeShkYXRhKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldHVwKCk6IHZvaWQge1xyXG4gICAgLy8gR2V0IHRva2VuIGFuZCBwcm9jZWVkIGlmIGl0J3MgcHJlc2VudFxyXG4gICAgaWYgKHRoaXMudG9rZW4pIHtcclxuICAgICAgdGhpcy5oYXNTZWFyY2hJbnB1dEJlZW5SZXNldCA9IHRydWU7XHJcblxyXG4gICAgICAvLyBJbnN0YW50aWF0ZSBhIG5ldyBSZXF1ZXN0IGNsYXNzIGZvciB1c2Ugd2hlbiBtYWtpbmcgQVBJIGNhbGxzXHJcbiAgICAgIHRoaXMucmVxdWVzdCA9IG5ldyBSZXF1ZXN0KHRoaXMpO1xyXG5cclxuICAgICAgLy8gU2V0IHRoZSBjb3VudHJ5IGxpc3RcclxuICAgICAgdGhpcy5zZXRDb3VudHJ5TGlzdCgpO1xyXG5cclxuICAgICAgLy8gU2V0IHRoZSBpbnB1dCBmaWVsZHMgZm9yIHRoaXMgc2VhcmNoIHR5cGVcclxuICAgICAgdGhpcy5zZXRJbnB1dHMoKTtcclxuXHJcbiAgICAgIC8vIFNldHVwIGEgcGlja2xpc3Qgb2JqZWN0XHJcbiAgICAgIHRoaXMuY3JlYXRlUGlja2xpc3QoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIFRyaWdnZXIgYSA0MDEgVW5hdXRob3JpemVkIGV2ZW50IGlmIGEgdG9rZW4gZG9lcyBub3QgZXhpc3RcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmV2ZW50cy50cmlnZ2VyKCdyZXF1ZXN0LWVycm9yLTQwMScpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlRW5yaWNobWVudFJlc3VsdChyZXNwb25zZSkge1xyXG4gICAgdGhpcy5ldmVudHMudHJpZ2dlcigncG9zdC1lbnJpY2htZW50JywgcmVzcG9uc2UpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRQYXJhbWV0ZXIobmFtZSk6IHN0cmluZyB7XHJcbiAgICBuYW1lID0gbmFtZS5yZXBsYWNlKC9bW10vLCAnXFxcXFsnKS5yZXBsYWNlKC9bXFxdXS8sICdcXFxcXScpO1xyXG4gICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKCdbXFxcXD8mXScgKyBuYW1lICsgJz0oW14mI10qKScpLFxyXG4gICAgICByZXN1bHRzID0gcmVnZXguZXhlYyhsb2NhdGlvbi5zZWFyY2gpO1xyXG4gICAgcmV0dXJuIHJlc3VsdHMgPT09IG51bGwgPyAnJyA6IGRlY29kZVVSSUNvbXBvbmVudChyZXN1bHRzWzFdLnJlcGxhY2UoL1xcKy9nLCAnICcpKTtcclxuICB9XHJcblxyXG4gIC8vIFRyeSBhbmQgZ2V0IHRva2VuIGZyb20gdGhlIHF1ZXJ5IHN0cmluZyBpZiBpdCdzIG5vdCBhbHJlYWR5IHByb3ZpZGVkXHJcbiAgcHJpdmF0ZSBnZXQgdG9rZW4oKTogc3RyaW5nIHtcclxuICAgIGlmICghdGhpcy5vcHRpb25zLnRva2VuKSB7XHJcbiAgICAgIHRoaXMub3B0aW9ucy50b2tlbiA9IHRoaXMuZ2V0UGFyYW1ldGVyKCd0b2tlbicpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy50b2tlbjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbWVyZ2VEZWZhdWx0T3B0aW9ucyhjdXN0b21PcHRpb25zKTogQWRkcmVzc1NlYXJjaE9wdGlvbnMge1xyXG4gICAgY29uc3QgaW5zdGFuY2U6IEFkZHJlc3NTZWFyY2hPcHRpb25zID0gY3VzdG9tT3B0aW9ucyB8fCB7fTtcclxuXHJcbiAgICBpbnN0YW5jZS5lbmFibGVkID0gdHJ1ZTtcclxuICAgIHRoaXMuc2VhcmNoVHlwZSA9IGluc3RhbmNlLnNlYXJjaFR5cGUgfHwgZGVmYXVsdHMuc2VhcmNoVHlwZTtcclxuICAgIGluc3RhbmNlLmVuYWJsZVdoYXQzV29yZHMgPSBpbnN0YW5jZS5lbmFibGVXaGF0M1dvcmRzIHx8IGRlZmF1bHRzLmVuYWJsZVdoYXQzV29yZHM7XHJcbiAgICBpbnN0YW5jZS5zZWFyY2hUeXBlID0gaW5zdGFuY2Uuc2VhcmNoVHlwZSB8fCBkZWZhdWx0cy5zZWFyY2hUeXBlO1xyXG4gICAgaW5zdGFuY2UubGFuZ3VhZ2UgPSBpbnN0YW5jZS5sYW5ndWFnZSB8fCBkZWZhdWx0cy5sYW5ndWFnZTtcclxuICAgIGluc3RhbmNlLnVzZVNwaW5uZXIgPSBpbnN0YW5jZS51c2VTcGlubmVyIHx8IGRlZmF1bHRzLnVzZVNwaW5uZXI7XHJcbiAgICBpbnN0YW5jZS5hcHBseUZvY3VzID0gKHR5cGVvZiBpbnN0YW5jZS5hcHBseUZvY3VzICE9PSAndW5kZWZpbmVkJykgPyBpbnN0YW5jZS5hcHBseUZvY3VzIDogZGVmYXVsdHMuaW5wdXQuYXBwbHlGb2N1cztcclxuICAgIGluc3RhbmNlLnBsYWNlaG9sZGVyVGV4dCA9IGluc3RhbmNlLnBsYWNlaG9sZGVyVGV4dCB8fCBkZWZhdWx0cy5pbnB1dC5wbGFjZWhvbGRlclRleHQ7XHJcbiAgICBpbnN0YW5jZS5zZWFyY2hBZ2FpbiA9IGluc3RhbmNlLnNlYXJjaEFnYWluIHx8IHt9O1xyXG4gICAgaW5zdGFuY2Uuc2VhcmNoQWdhaW4udmlzaWJsZSA9ICh0eXBlb2YgaW5zdGFuY2Uuc2VhcmNoQWdhaW4udmlzaWJsZSAhPT0gJ3VuZGVmaW5lZCcpID8gaW5zdGFuY2Uuc2VhcmNoQWdhaW4udmlzaWJsZSA6IGRlZmF1bHRzLnNlYXJjaEFnYWluLnZpc2libGU7XHJcbiAgICBpbnN0YW5jZS5zZWFyY2hBZ2Fpbi50ZXh0ID0gaW5zdGFuY2Uuc2VhcmNoQWdhaW4udGV4dCB8fCBkZWZhdWx0cy5zZWFyY2hBZ2Fpbi50ZXh0O1xyXG4gICAgaW5zdGFuY2UuZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lciA9IGluc3RhbmNlLmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIgfHwgZGVmYXVsdHMuZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lcjtcclxuICAgIGluc3RhbmNlLmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIuc2hvd0hlYWRpbmcgPSAodHlwZW9mIGluc3RhbmNlLmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIuc2hvd0hlYWRpbmcgIT09ICd1bmRlZmluZWQnKSA/IGluc3RhbmNlLmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIuc2hvd0hlYWRpbmcgOiBkZWZhdWx0cy5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyLnNob3dIZWFkaW5nO1xyXG4gICAgaW5zdGFuY2UuZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lci5oZWFkaW5nVHlwZSA9IGluc3RhbmNlLmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIuaGVhZGluZ1R5cGUgfHwgZGVmYXVsdHMuZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lci5oZWFkaW5nVHlwZTtcclxuICAgIGluc3RhbmNlLmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIudmFsaWRhdGVkSGVhZGluZ1RleHQgPSBpbnN0YW5jZS5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyLnZhbGlkYXRlZEhlYWRpbmdUZXh0IHx8IGRlZmF1bHRzLmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIudmFsaWRhdGVkSGVhZGluZ1RleHQ7XHJcbiAgICBpbnN0YW5jZS5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyLm1hbnVhbEhlYWRpbmdUZXh0ID0gaW5zdGFuY2UuZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lci5tYW51YWxIZWFkaW5nVGV4dCB8fCBkZWZhdWx0cy5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyLm1hbnVhbEhlYWRpbmdUZXh0O1xyXG4gICAgaW5zdGFuY2UudXNlQWRkcmVzc0VudGVyZWRUZXh0ID0gaW5zdGFuY2UudXNlQWRkcmVzc0VudGVyZWRUZXh0IHx8IGRlZmF1bHRzLnVzZUFkZHJlc3NFbnRlcmVkVGV4dDtcclxuICAgIGluc3RhbmNlLmVsZW1lbnRzID0gaW5zdGFuY2UuZWxlbWVudHMgfHwge307XHJcblxyXG4gICAgcmV0dXJuIGluc3RhbmNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRQcm9tcHRzZXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50Q291bnRyeUNvZGUpIHtcclxuICAgICAgLy8gVXNpbmcgdGhlIGNvdW50cnkgY29kZSBhbmQgdGhlIHNlYXJjaCB0eXBlLCBsb29rdXAgd2hhdCB0aGUgcmVsZXZhbnQgZGF0YXNldCBjb2RlIHNob3VsZCBiZVxyXG4gICAgICB0aGlzLmN1cnJlbnREYXRhU2V0ID0gdGhpcy5sb29rdXBEYXRhc2V0Q29kZSgpO1xyXG4gICAgICBpZiAodGhpcy5jdXJyZW50RGF0YVNldCkge1xyXG5cclxuICAgICAgICAvLy8gVGVtcG9yYXJ5IG1lYXN1cmUgdW50aWwgdGhlIHByb21wdHNldCBlbmRwb2ludCBzdXBwb3J0cyBBdXRvY29tcGxldGUgYW5kIFZhbGlkYXRlXHJcbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoVHlwZSA9PT0gQWRkcmVzc1ZhbGlkYXRpb25Nb2RlLkFVVE9DT01QTEVURSkge1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmhhbmRsZVByb21wdHNldFJlc3VsdCh7IHJlc3VsdDogeyBsaW5lczogW3sgZXhhbXBsZTogdGhpcy5vcHRpb25zLnBsYWNlaG9sZGVyVGV4dCwgcHJvbXB0OiAnQWRkcmVzcycsIHN1Z2dlc3RlZF9pbnB1dF9sZW5ndGg6IDE2MCB9XSB9IH0pKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2VhcmNoVHlwZSA9PT0gQWRkcmVzc1ZhbGlkYXRpb25Nb2RlLlZBTElEQVRFKSB7XHJcbiAgICAgICAgICBjb25zdCBsaW5lcyA9IFtcclxuICAgICAgICAgICAgeyBwcm9tcHQ6ICdBZGRyZXNzIGxpbmUgMScsIHN1Z2dlc3RlZF9pbnB1dF9sZW5ndGg6IDE2MCB9LFxyXG4gICAgICAgICAgICB7IHByb21wdDogJ0FkZHJlc3MgbGluZSAyJywgc3VnZ2VzdGVkX2lucHV0X2xlbmd0aDogMTYwIH0sXHJcbiAgICAgICAgICAgIHsgcHJvbXB0OiAnQWRkcmVzcyBsaW5lIDMnLCBzdWdnZXN0ZWRfaW5wdXRfbGVuZ3RoOiAxNjAgfSxcclxuICAgICAgICAgICAgeyBwcm9tcHQ6IHRoaXMucmVzdWx0LmNyZWF0ZUFkZHJlc3NMaW5lLmxhYmVsKCdsb2NhbGl0eScpLCBzdWdnZXN0ZWRfaW5wdXRfbGVuZ3RoOiAxNjAgfSxcclxuICAgICAgICAgICAgeyBwcm9tcHQ6IHRoaXMucmVzdWx0LmNyZWF0ZUFkZHJlc3NMaW5lLmxhYmVsKCdyZWdpb24nKSwgc3VnZ2VzdGVkX2lucHV0X2xlbmd0aDogMTYwIH0sXHJcbiAgICAgICAgICAgIHsgcHJvbXB0OiB0aGlzLnJlc3VsdC5jcmVhdGVBZGRyZXNzTGluZS5sYWJlbCgncG9zdGFsX2NvZGUnKSwgc3VnZ2VzdGVkX2lucHV0X2xlbmd0aDogMTYwIH1cclxuICAgICAgICAgIF07XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuaGFuZGxlUHJvbXB0c2V0UmVzdWx0KHsgcmVzdWx0OiB7IGxpbmVzIH0gfSkpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZGF0YSA9IHtcclxuICAgICAgICAgIGNvdW50cnlfaXNvOiB0aGlzLmN1cnJlbnRDb3VudHJ5Q29kZSxcclxuICAgICAgICAgIGRhdGFzZXRzOiBBcnJheS5pc0FycmF5KHRoaXMuY3VycmVudERhdGFTZXQpID8gdGhpcy5jdXJyZW50RGF0YVNldCA6IFt0aGlzLmN1cnJlbnREYXRhU2V0XSxcclxuICAgICAgICAgIHNlYXJjaF90eXBlOiB0aGlzLnNlYXJjaFR5cGUsXHJcbiAgICAgICAgICBwcm9tcHRfc2V0OiAnb3B0aW1hbCdcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuZXZlbnRzLnRyaWdnZXIoJ3ByZS1wcm9tcHRzZXQtY2hlY2snKTtcclxuICAgICAgICB0aGlzLnJlcXVlc3Quc2VuZCh0aGlzLmJhc2VVcmwgKyB0aGlzLnByb21wdHNldEVuZHBvaW50LCAnUE9TVCcsIHRoaXMuaGFuZGxlUHJvbXB0c2V0UmVzdWx0LmJpbmQodGhpcyksIEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsb29rdXBEYXRhc2V0Q29kZSgpOiBzdHJpbmcgfCBzdHJpbmdbXSB7XHJcbiAgICBjb25zdCBpdGVtID0gZGF0YXNldENvZGVzLmZpbmQoZGF0YXNldCA9PiBkYXRhc2V0LmlzbzNDb2RlID09PSB0aGlzLmN1cnJlbnRDb3VudHJ5Q29kZSAmJiBkYXRhc2V0LnNlYXJjaFR5cGUuaW5jbHVkZXModGhpcy5zZWFyY2hUeXBlKSk7XHJcbiAgICBpZiAoaXRlbSkge1xyXG4gICAgICByZXR1cm4gaXRlbS5kYXRhc2V0Q29kZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlUHJvbXB0c2V0UmVzdWx0KHJlc3BvbnNlKTogdm9pZCB7XHJcbiAgICAvLyBSZW1vdmUgYW55IGN1cnJlbnRseSBkaXNwbGF5ZWQgcGlja2xpc3Qgd2hlbiB0aGUgcHJvbXB0c2V0IGNoYW5nZXNcclxuICAgIHRoaXMucGlja2xpc3QuaGlkZSgpO1xyXG5cclxuICAgIC8vIFRyaWdnZXIgYSBuZXcgZXZlbnQgdG8gbm90aWZ5IHN1YnNjcmliZXJzXHJcbiAgICB0aGlzLmV2ZW50cy50cmlnZ2VyKCdwb3N0LXByb21wdHNldC1jaGVjaycsIHJlc3BvbnNlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRJbnB1dHMoaW5wdXRzID0gdGhpcy5vcHRpb25zLmVsZW1lbnRzLmlucHV0cyk6IHZvaWQge1xyXG4gICAgLy8gSWYgYWRkcmVzcyBpbnB1dHMgZXhpc3QgdGhlbiByZWdpc3RlciB0aGVzZSB3aXRoIGV2ZW50IGxpc3RlbmVycywgb3RoZXJ3aXNlIGNhbGwgdGhlIHByb21wdHNldCBlbmRwb2ludCB0byByZXRyaWV2ZSB0aGVtXHJcbiAgICBpZiAoaW5wdXRzKSB7XHJcbiAgICAgIHRoaXMucmVnaXN0ZXJJbnB1dHMoaW5wdXRzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIE1ha2UgYW4gQVBJIGNhbGwgdG8gZ2V0IHRoZSBwcm9tcHRzZXQgZm9yIHRoaXMgY291bnRyeS9kYXRhc2V0L2VuZ2luZVxyXG4gICAgICB0aGlzLmdldFByb21wdHNldCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnNlYXJjaFR5cGUgPT09IEFkZHJlc3NWYWxpZGF0aW9uTW9kZS5TSU5HTEVMSU5FIHx8IHRoaXMuc2VhcmNoVHlwZSA9PT0gQWRkcmVzc1ZhbGlkYXRpb25Nb2RlLlZBTElEQVRFKSB7XHJcbiAgICAgIC8vIEJpbmQgYW4gZXZlbnQgbGlzdGVuZXIgb24gdGhlIGxvb2t1cCBidXR0b25cclxuICAgICAgaWYgKHRoaXMub3B0aW9ucy5lbGVtZW50cy5sb29rdXBCdXR0b24pIHtcclxuICAgICAgICB0aGlzLmxvb2t1cEZuID0gdGhpcy5zZWFyY2guYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLm9wdGlvbnMuZWxlbWVudHMubG9va3VwQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5sb29rdXBGbik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVnaXN0ZXJJbnB1dHMoaW5wdXRzOiBIVE1MSW5wdXRFbGVtZW50W10pIHtcclxuICAgIC8vIElmIG5ldyBpbnB1dHMgaGF2ZSBiZWVuIHByb3ZpZGVkLCBlbnN1cmUgd2UgdXBkYXRlIHRoZSBlbGVtZW50cyBhcnJheSB0byBjYXB0dXJlIHRoZW1cclxuICAgIHRoaXMuaW5wdXRzID0gQXJyYXkuZnJvbShpbnB1dHMpO1xyXG5cclxuICAgIHRoaXMuaW5wdXRzLmZvckVhY2goaW5wdXQgPT4ge1xyXG4gICAgICAvLyBEaXNhYmxlIGF1dG9jb21wbGV0ZSBvbiB0aGUgZm9ybSBmaWVsZFxyXG4gICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ2F1dG9jb21wbGV0ZScsICduZXctcGFzc3dvcmQnKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLnNlYXJjaFR5cGUgPT09IEFkZHJlc3NWYWxpZGF0aW9uTW9kZS5BVVRPQ09NUExFVEUpIHtcclxuICAgICAgICAvLyBCaW5kIGFuIGV2ZW50IGxpc3RlbmVyIG9uIHRoZSBpbnB1dFxyXG4gICAgICAgIHRoaXMua2V5VXBGbiA9IHRoaXMuc2VhcmNoLmJpbmQodGhpcyk7XHJcbiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLmtleVVwRm4pO1xyXG4gICAgICAgIHRoaXMuY2hlY2tUYWJGbiA9IHRoaXMuY2hlY2tUYWIuYmluZCh0aGlzKTtcclxuICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5jaGVja1RhYkZuKTtcclxuICAgICAgICAvLyBTZXQgYSBwbGFjZWhvbGRlciBmb3IgdGhlIGlucHV0XHJcbiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicsIHRoaXMub3B0aW9ucy5wbGFjZWhvbGRlclRleHQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBCaW5kIGFuIGV2ZW50IGxpc3RlbmVyIG9uIHRoZSBpbnB1dCB0byBhbGxvdyB1c2VycyB0byB0cmF2ZXJzZSB1cCBhbmQgZG93biB0aGUgcGlja2xpc3QgdXNpbmcgdGhlIGtleWJvYXJkXHJcbiAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgdGhpcy5oYW5kbGVLZXlib2FyZEV2ZW50LmJpbmQodGhpcykpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5jb3VudHJ5Q29kZU1hcHBpbmcgPSB0aGlzLm9wdGlvbnMuY291bnRyeUNvZGVNYXBwaW5nIHx8IHt9O1xyXG5cclxuICAgIC8vIEFwcGx5IGZvY3VzIHRvIHRoZSBmaXJzdCBpbnB1dFxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5hcHBseUZvY3VzKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRzWzBdLmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldENvdW50cnlMaXN0KCk6IHZvaWQge1xyXG4gICAgLy8gU2V0IHRoZSBpbml0aWFsIGNvdW50cnkgY29kZSBmcm9tIGVpdGhlciB0aGUgdmFsdWUgb2YgYSBjb3VudHJ5IGxpc3QgSFRNTCBlbGVtZW50IG9yIGEgc3RhdGljIGNvdW50cnkgY29kZVxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5lbGVtZW50cy5jb3VudHJ5TGlzdCkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRDb3VudHJ5Q29kZSA9IHRoaXMub3B0aW9ucy5lbGVtZW50cy5jb3VudHJ5TGlzdC52YWx1ZTtcclxuXHJcbiAgICAgIC8vIExpc3RlbiBmb3Igd2hlbiBhIGNvdW50cnkgaXMgY2hhbmdlZCBhbmQgY2FsbCB0aGUgcHJvbXB0c2V0IGVuZHBvaW50XHJcbiAgICAgIHRoaXMub3B0aW9ucy5lbGVtZW50cy5jb3VudHJ5TGlzdC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLmhhbmRsZUNvdW50cnlMaXN0Q2hhbmdlLmJpbmQodGhpcykpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLm9wdGlvbnMuY291bnRyeUNvZGUpIHtcclxuICAgICAgdGhpcy5jdXJyZW50Q291bnRyeUNvZGUgPSB0aGlzLm9wdGlvbnMuY291bnRyeUNvZGU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BsZWFzZSBwcm92aWRlIGEgY291bnRyeSBjb2RlIG9yIGEgY291bnRyeSBsaXN0IGVsZW1lbnQnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFdoZW4gYSBjb3VudHJ5IGZyb20gdGhlIGxpc3QgaXMgY2hhbmdlZCwgdXBkYXRlIHRoZSBjdXJyZW50IGNvdW50cnkgY29kZSBhbmQgY2FsbCB0aGUgcHJvbXB0c2V0IGVuZHBvaW50IGFnYWluXHJcbiAgcHJpdmF0ZSBoYW5kbGVDb3VudHJ5TGlzdENoYW5nZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3VycmVudENvdW50cnlDb2RlID0gdGhpcy5vcHRpb25zLmVsZW1lbnRzLmNvdW50cnlMaXN0LnZhbHVlO1xyXG4gICAgdGhpcy5nZXRQcm9tcHRzZXQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2VuZXJhdGVTZWFyY2hEYXRhRm9yQXBpQ2FsbCgpOiBzdHJpbmcge1xyXG4gICAgLy8gSWYgYSBkYXRhc2V0IGNvZGUgaGFzbid0IGJlZW4gc2V0IHlldCwgdHJ5IGFuZCBsb29rIGl0IHVwXHJcbiAgICBpZiAoIXRoaXMuY3VycmVudERhdGFTZXQpIHtcclxuICAgICAgdGhpcy5jdXJyZW50RGF0YVNldCA9IHRoaXMubG9va3VwRGF0YXNldENvZGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICBjb3VudHJ5X2lzbzogdGhpcy5jdXJyZW50Q291bnRyeUNvZGUsXHJcbiAgICAgIGNvbXBvbmVudHM6IHsgdW5zcGVjaWZpZWQ6IFt0aGlzLmN1cnJlbnRTZWFyY2hUZXJtXSB9LFxyXG4gICAgICBkYXRhc2V0czogQXJyYXkuaXNBcnJheSh0aGlzLmN1cnJlbnREYXRhU2V0KSA/IHRoaXMuY3VycmVudERhdGFTZXQgOiBbdGhpcy5jdXJyZW50RGF0YVNldF0sXHJcbiAgICAgIG1heF9zdWdnZXN0aW9uczogKHRoaXMub3B0aW9ucy5tYXhTdWdnZXN0aW9ucyB8fCB0aGlzLnBpY2tsaXN0Lm1heFN1Z2dlc3Rpb25zKVxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAodGhpcy5zZWFyY2hUeXBlID09PSBBZGRyZXNzVmFsaWRhdGlvbk1vZGUuU0lOR0xFTElORSB8fCB0aGlzLnNlYXJjaFR5cGUgPT09IEFkZHJlc3NWYWxpZGF0aW9uTW9kZS5WQUxJREFURSkge1xyXG4gICAgICBkYXRhWydvcHRpb25zJ10gPSBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbmFtZTogJ2ZsYXR0ZW4nLFxyXG4gICAgICAgICAgVmFsdWU6ICd0cnVlJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbmFtZTogJ2ludGVuc2l0eScsXHJcbiAgICAgICAgICBWYWx1ZTogJ2Nsb3NlJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbmFtZTogJ3Byb21wdF9zZXQnLFxyXG4gICAgICAgICAgVmFsdWU6ICdkZWZhdWx0J1xyXG4gICAgICAgIH1cclxuICAgICAgXTtcclxuXHJcbiAgICAgIGlmICh0aGlzLnNlYXJjaFR5cGUgPT09IEFkZHJlc3NWYWxpZGF0aW9uTW9kZS5TSU5HTEVMSU5FKSB7XHJcbiAgICAgICAgZGF0YVsnb3B0aW9ucyddLnB1c2goe1xyXG4gICAgICAgICAgbmFtZTogJ3NlYXJjaF90eXBlJyxcclxuICAgICAgICAgIFZhbHVlOiAnc2luZ2xlbGluZSdcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMuc2VhcmNoVHlwZSA9PT0gQWRkcmVzc1ZhbGlkYXRpb25Nb2RlLlZBTElEQVRFKSB7XHJcbiAgICAgICAgZGF0YVsnbGF5b3V0cyddID0gWydkZWZhdWx0J107XHJcbiAgICAgICAgZGF0YVsnbGF5b3V0X2Zvcm1hdCddID0gJ2RlZmF1bHQnO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5sb2NhdGlvbikge1xyXG4gICAgICBkYXRhWydsb2NhdGlvbiddID0gdGhpcy5vcHRpb25zLmxvY2F0aW9uO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZW5lcmF0ZUxvb2t1cERhdGFGb3JBcGlDYWxsKGlucHV0OiBzdHJpbmcsIHNob3VsZEdldFN1Z2dlc3Rpb25zOiBib29sZWFuKTogc3RyaW5nIHtcclxuICAgIC8vIElmIGEgZGF0YXNldCBjb2RlIGhhc24ndCBiZWVuIHNldCB5ZXQsIHRyeSBhbmQgbG9vayBpdCB1cFxyXG4gICAgaWYgKCF0aGlzLmN1cnJlbnREYXRhU2V0KSB7XHJcbiAgICAgIHRoaXMuY3VycmVudERhdGFTZXQgPSB0aGlzLmxvb2t1cERhdGFzZXRDb2RlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZGF0YSA9IHtcclxuICAgICAgY291bnRyeV9pc286IHRoaXMuY3VycmVudENvdW50cnlDb2RlLFxyXG4gICAgICBkYXRhc2V0czogQXJyYXkuaXNBcnJheSh0aGlzLmN1cnJlbnREYXRhU2V0KSA/IHRoaXMuY3VycmVudERhdGFTZXQgOiBbdGhpcy5jdXJyZW50RGF0YVNldF0sXHJcbiAgICAgIG1heF9zdWdnZXN0aW9uczogKHRoaXMub3B0aW9ucy5tYXhTdWdnZXN0aW9ucyB8fCB0aGlzLnBpY2tsaXN0Lm1heFN1Z2dlc3Rpb25zKSxcclxuICAgICAga2V5OiB7XHJcbiAgICAgICAgdHlwZTogdGhpcy53aGF0M1dvcmRzS2V5d29yZCxcclxuICAgICAgICB2YWx1ZTogdGhpcy5nZXRXaGF0M1dvcmRzTG9va3VwVmFsdWUoaW5wdXQsIHNob3VsZEdldFN1Z2dlc3Rpb25zKSxcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoZGF0YSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFdoYXQzV29yZHNMb29rdXBWYWx1ZShpbnB1dDogc3RyaW5nLCBzaG91bGRHZXRTdWdnZXN0aW9uczogYm9vbGVhbik6IHN0cmluZyB7XHJcbiAgICBpZiAoaW5wdXQuc3RhcnRzV2l0aCgnLy8vJykgJiYgc2hvdWxkR2V0U3VnZ2VzdGlvbnMpIHtcclxuICAgICAgaW5wdXQgPSBpbnB1dC5zbGljZSgzKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaW5wdXQ7XHJcbiAgfVxyXG5cclxuICAvLyBBbGxvdyB0aGUga2V5Ym9hcmQgdG8gYmUgdXNlZCB0byBlaXRoZXIgdHJhdmVyc2UgdXAgYW5kIGRvd24gdGhlIHBpY2tsaXN0IGFuZCBzZWxlY3QgYW4gaXRlbSwgb3IgdHJpZ2dlciBhIG5ldyBzZWFyY2hcclxuICBwcml2YXRlIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgLy8gSGFuZGxlIGtleWJvYXJkIG5hdmlnYXRpb25cclxuICAgIGNvbnN0IGtleSA9IHRoaXMuZ2V0S2V5KGV2ZW50KTtcclxuXHJcbiAgICAvLyBJZiBhIHBpY2tsaXN0IGlzIHBvcHVsYXRlZCB0aGVuIHRyaWdnZXIgaXRzIGtleXVwIGV2ZW50IHRvIHNlbGVjdCBhbiBpdGVtXHJcbiAgICBpZiAodGhpcy5waWNrbGlzdC5zaXplKSB7XHJcbiAgICAgIGlmIChrZXkgPT09ICdBcnJvd1VwJyB8fCBrZXkgPT09ICdBcnJvd0Rvd24nIHx8IGtleSA9PT0gJ0VudGVyJykge1xyXG4gICAgICAgIHRoaXMucGlja2xpc3Qua2V5dXAoZXZlbnQpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gT3RoZXJ3aXNlLCBlbmFibGUgcHJlc3NpbmcgJ2VudGVyJyB0byB0cmlnZ2VyIGEgbmV3IHNlYXJjaFxyXG4gICAgICBpZiAoa2V5ID09PSAnRW50ZXInKSB7XHJcbiAgICAgICAgdGhpcy5zZWFyY2goZXZlbnQpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gTWFpbiBmdW5jdGlvbiB0byBzZWFyY2ggZm9yIGFuIGFkZHJlc3MgZnJvbSBhbiBpbnB1dCBzdHJpbmdcclxuICBwcml2YXRlIHNlYXJjaChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICB0aGlzLmN1cnJlbnRTZWFyY2hUZXJtID0gdGhpcy5pbnB1dHMubWFwKGlucHV0ID0+IGlucHV0LnZhbHVlKS5qb2luKCcsJyk7XHJcblxyXG4gICAgLy8gR3JhYiB0aGUgY291bnRyeSBJU08gY29kZSBhbmQgKGlmIGl0IGlzIHByZXNlbnQpIHRoZSBkYXRhc2V0IG5hbWUgZnJvbSB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgY291bnRyeUxpc3QgKGZvcm1hdDoge2NvdW50cnlJc29Db2RlfTt7ZGF0YXNldH0pXHJcbiAgICBjb25zdCBjdXJyZW50Q291bnRyeUluZm8gPSB0aGlzLmNvdW50cnlDb2RlTWFwcGluZ1t0aGlzLmN1cnJlbnRDb3VudHJ5Q29kZV0gfHwgdGhpcy5jdXJyZW50Q291bnRyeUNvZGU7XHJcbiAgICBjb25zdCBjb3VudHJ5Q29kZUFuZERhdGFzZXQgPSBjdXJyZW50Q291bnRyeUluZm8uc3BsaXQoJzsnKTtcclxuXHJcbiAgICB0aGlzLmN1cnJlbnRDb3VudHJ5Q29kZSA9IGNvdW50cnlDb2RlQW5kRGF0YXNldFswXTtcclxuICAgIGlmIChjb3VudHJ5Q29kZUFuZERhdGFzZXRbMV0pIHtcclxuICAgICAgdGhpcy5jdXJyZW50RGF0YVNldCA9IGNvdW50cnlDb2RlQW5kRGF0YXNldFsxXTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAoUmUtKXNldCB0aGUgcHJvcGVydHkgc3RhdGluZyB3aGV0aGVyIHRoZSBzZWFyY2ggaW5wdXQgaGFzIGJlZW4gcmVzZXQuXHJcbiAgICAvLyBUaGlzIGlzIG5lZWRlZCBmb3IgaW5zdGFuY2VzIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBpcyBhbHNvIGFuIGFkZHJlc3NcclxuICAgIC8vIG91dHB1dCBmaWVsZC4gQWZ0ZXIgYW4gYWRkcmVzcyBoYXMgYmVlbiByZXR1cm5lZCwgeW91IGRvbid0IHdhbnQgYSBuZXcgXHJcbiAgICAvLyBzZWFyY2ggYmVpbmcgdHJpZ2dlcmVkIHVudGlsIHRoZSBmaWVsZCBoYXMgYmVlbiBjbGVhcmVkLlxyXG4gICAgaWYgKHRoaXMuY3VycmVudFNlYXJjaFRlcm0gPT09ICcnKSB7XHJcbiAgICAgIHRoaXMuaGFzU2VhcmNoSW5wdXRCZWVuUmVzZXQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIENoZWNrIGlmIHNlYXJjaGluZyBpcyBwZXJtaXR0ZWRcclxuICAgIGlmICh0aGlzLmNhblNlYXJjaCgpKSB7XHJcbiAgICAgIC8vIEFib3J0IGFueSBvdXRzdGFuZGluZyByZXF1ZXN0c1xyXG4gICAgICBpZiAodGhpcy5yZXF1ZXN0LmN1cnJlbnRSZXF1ZXN0KSB7XHJcbiAgICAgICAgdGhpcy5yZXF1ZXN0LmN1cnJlbnRSZXF1ZXN0LmFib3J0KCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIFJlZ2V4IHRoYXQgY2hlY2tzIGlmIHRoZSBpbnB1dCBpcyB0aGUgZm9ybWF0IGZvciBhIHdoYXQzd29yZHMgc2VhcmNoLiBFeDogLy8vYS5iLmNcclxuICAgICAgY29uc3QgcmVnZXggPSAvXlxcL3swLH0oPzpbXjAtOWB+IUAjJCVeJiooKStcXC1fPVt7XFxdfVxcXFx8JzwsLj4/L1wiOzrCo8KnwrrCqcKuXFxzXStbLu+9oeOAgu+9peODu++4kuGflNaJ4YGL25ThjaLgpaRdW14wLTlgfiFAIyQlXiYqKCkrXFwtXz1be1xcXX1cXFxcfCc8LC4+Py9cIjs6wqPCp8K6wqnCrlxcc10rWy7vvaHjgILvvaXjg7vvuJLhn5TWieGBi9uU4Y2i4KWkXVteMC05YH4hQCMkJV4mKigpK1xcLV89W3tcXF19XFxcXHwnPCwuPj8vXCI7OsKjwqfCusKpwq5cXHNdK3xbXjAtOWB+IUAjJCVeJiooKStcXC1fPVt7XFxdfVxcXFx8JzwsLj4/L1wiOzrCo8KnwrrCqcKuXFxzXSsoW1xcdTAwMjBcXHUwMEEwXVteMC05YH4hQCMkJV4mKigpK1xcLV89W3tcXF19XFxcXHwnPCwuPj8vXCI7OsKjwqfCusKpwq5cXHNdKyl7MSwzfVsu772h44CC772l44O777iS4Z+U1onhgYvblOGNouClpF1bXjAtOWB+IUAjJCVeJiooKStcXC1fPVt7XFxdfVxcXFx8JzwsLj4/L1wiOzrCo8KnwrrCqcKuXFxzXSsoW1xcdTAwMjBcXHUwMEEwXVteMC05YH4hQCMkJV4mKigpK1xcLV89W3tcXF19XFxcXHwnPCwuPj8vXCI7OsKjwqfCusKpwq5cXHNdKyl7MSwzfVsu772h44CC772l44O777iS4Z+U1onhgYvblOGNouClpF1bXjAtOWB+IUAjJCVeJiooKStcXC1fPVt7XFxdfVxcXFx8JzwsLj4/L1wiOzrCo8KnwrrCqcKuXFxzXSsoW1xcdTAwMjBcXHUwMEEwXVteMC05YH4hQCMkJV4mKigpK1xcLV89W3tcXF19XFxcXHwnPCwuPj8vXCI7OsKjwqfCusKpwq5cXHNdKyl7MSwzfSkkLztcclxuXHJcbiAgICAgIGlmIChyZWdleC50ZXN0KHRoaXMuY3VycmVudFNlYXJjaFRlcm0udHJpbSgpKSAmJiB0aGlzLm9wdGlvbnMuZW5hYmxlV2hhdDNXb3JkcyAmJiB0aGlzLndoYXQzV29yZENvdW50cmllcy5pbmRleE9mKHRoaXMuY3VycmVudENvdW50cnlDb2RlKSA+IC0xKSB7XHJcbiAgICAgICAgdGhpcy5pc1doYXQzV29yZHMgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY3VycmVudFNlYXJjaFRlcm0gPSB0aGlzLmN1cnJlbnRTZWFyY2hUZXJtLnRyaW0oKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLmlzV2hhdDNXb3JkcyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2hvdWxkVHJpZ2dlcldoYXQzV29yZHNFbnJpY2htZW50ID0gZmFsc2U7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIEZpcmUgYW4gZXZlbnQgYmVmb3JlIGEgc2VhcmNoIHRha2VzIHBsYWNlXHJcbiAgICAgIHRoaXMuZXZlbnRzLnRyaWdnZXIoJ3ByZS1zZWFyY2gnLCB0aGlzLmN1cnJlbnRTZWFyY2hUZXJtKTtcclxuXHJcbiAgICAgIC8vIENvbnN0cnVjdCB0aGUgbmV3IFNlYXJjaCBVUkwgYW5kIGRhdGFcclxuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuaXNXaGF0M1dvcmRzID8gdGhpcy5nZW5lcmF0ZUxvb2t1cERhdGFGb3JBcGlDYWxsKHRoaXMuY3VycmVudFNlYXJjaFRlcm0sIHRydWUpIDogdGhpcy5nZW5lcmF0ZVNlYXJjaERhdGFGb3JBcGlDYWxsKCk7XHJcblxyXG4gICAgICAvLyBTdG9yZSB0aGUgbGFzdCBzZWFyY2ggdGVybVxyXG4gICAgICB0aGlzLmxhc3RTZWFyY2hUZXJtID0gdGhpcy5jdXJyZW50U2VhcmNoVGVybTtcclxuXHJcbiAgICAgIC8vIEhpZGUgdGhlIGlubGluZSBzZWFyY2ggc3Bpbm5lclxyXG4gICAgICB0aGlzLnNlYXJjaFNwaW5uZXIuaGlkZSgpO1xyXG5cclxuICAgICAgLy8gU2hvdyBhbiBpbmxpbmUgc3Bpbm5lciB3aGlsc3Qgc2VhcmNoaW5nXHJcbiAgICAgIHRoaXMuc2VhcmNoU3Bpbm5lci5zaG93KCk7XHJcblxyXG4gICAgICBsZXQgdXJsLCBoZWFkZXJzLCBjYWxsYmFjaztcclxuICAgICAgLy8gU2V0IHRoZSBBUEkgVVJMLCBoZWFkZXJzIGFuZCBjYWxsYmFjayBmdW5jdGlvbiBkZXBlbmRpbmcgb24gdGhlIHNlYXJjaCB0eXBlXHJcbiAgICAgIGlmICh0aGlzLmlzV2hhdDNXb3Jkcykge1xyXG4gICAgICAgIHVybCA9IHRoaXMuYmFzZVVybCArIHRoaXMubG9va3VwRW5kcG9pbnQ7XHJcbiAgICAgICAgaGVhZGVycyA9IFtdO1xyXG4gICAgICAgIGNhbGxiYWNrID0gdGhpcy5waWNrbGlzdC5zaG93V2hhdDNXb3JkcztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB1cmwgPSB0aGlzLmJhc2VVcmwgKyAodGhpcy5zZWFyY2hUeXBlID09PSBBZGRyZXNzVmFsaWRhdGlvbk1vZGUuVkFMSURBVEUgPyB0aGlzLnZhbGlkYXRlRW5kcG9pbnQgOiB0aGlzLnNlYXJjaEVuZHBvaW50KTtcclxuICAgICAgICBoZWFkZXJzID0gdGhpcy5zZWFyY2hUeXBlID09PSBBZGRyZXNzVmFsaWRhdGlvbk1vZGUuVkFMSURBVEUgPyBbeyBrZXk6ICdBZGQtTWV0YWRhdGEnLCB2YWx1ZTogdHJ1ZSB9XSA6IFtdO1xyXG4gICAgICAgIGNhbGxiYWNrID0gdGhpcy5zZWFyY2hUeXBlID09PSBBZGRyZXNzVmFsaWRhdGlvbk1vZGUuVkFMSURBVEUgPyB0aGlzLnJlc3VsdC5oYW5kbGVWYWxpZGF0ZVJlc3BvbnNlIDogdGhpcy5waWNrbGlzdC5zaG93O1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBJbml0aWF0ZSBuZXcgU2VhcmNoIHJlcXVlc3RcclxuICAgICAgdGhpcy5yZXF1ZXN0LnNlbmQodXJsLCAnUE9TVCcsIGNhbGxiYWNrLCBkYXRhLCBoZWFkZXJzKTtcclxuXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMubGFzdFNlYXJjaFRlcm0gIT09IHRoaXMuY3VycmVudFNlYXJjaFRlcm0pIHtcclxuICAgICAgLy8gQ2xlYXIgdGhlIHBpY2tsaXN0IGlmIHRoZSBzZWFyY2ggdGVybSBpcyBjbGVhcmVkL2VtcHR5XHJcbiAgICAgIHRoaXMucGlja2xpc3QuaGlkZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gSGVscGVyIG1ldGhvZCB0byByZXR1cm4gYSBjb25zaXN0ZW50IGtleSBuYW1lXHJcbiAgcHJpdmF0ZSBnZXRLZXkoeyBrZXkgfSk6IHN0cmluZyB7XHJcbiAgICBzd2l0Y2ggKGtleSkge1xyXG4gICAgICBjYXNlICdEb3duJzpcclxuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcclxuICAgICAgICByZXR1cm4gJ0Fycm93RG93bic7XHJcbiAgICAgIGNhc2UgJ1VwJzpcclxuICAgICAgY2FzZSAnQXJyb3dVcCc6XHJcbiAgICAgICAgcmV0dXJuICdBcnJvd1VwJztcclxuICAgICAgY2FzZSAnU3BhY2ViYXInOlxyXG4gICAgICBjYXNlICcgJzpcclxuICAgICAgICByZXR1cm4gJyAnO1xyXG4gICAgICBjYXNlICdFc2NhcGUnOlxyXG4gICAgICBjYXNlICdFc2MnOlxyXG4gICAgICAgIHJldHVybiAnRXNjYXBlJztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4ga2V5O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjYW5TZWFyY2goKTogYm9vbGVhbiB7XHJcbiAgICAvLyBJZiBzZWFyY2hpbmcgb24gdGhpcyBpbnN0YW5jZSBpcyBlbmFibGVkLCBhbmRcclxuICAgIHJldHVybiAodGhpcy5vcHRpb25zLmVuYWJsZWQgJiZcclxuICAgICAgLy8gSWYgc2VhcmNoIHRlcm0gaXMgbm90IGVtcHR5LCBhbmRcclxuICAgICAgdGhpcy5jdXJyZW50U2VhcmNoVGVybSAhPT0gJycgJiZcclxuICAgICAgLy8gSWYgdGhlIHNlYXJjaCB0ZXJtIGlzIGF0IGxlYXN0IDQgY2hhcmFjdGVyc1xyXG4gICAgICB0aGlzLmN1cnJlbnRTZWFyY2hUZXJtLmxlbmd0aCA+IDMgJiZcclxuICAgICAgLy8gSWYgc2VhcmNoIHRlcm0gaXMgbm90IHRoZSBzYW1lIGFzIHByZXZpb3VzIHNlYXJjaCB0ZXJtLCBhbmRcclxuICAgICAgdGhpcy5sYXN0U2VhcmNoVGVybSAhPT0gdGhpcy5jdXJyZW50U2VhcmNoVGVybSAmJlxyXG4gICAgICAvLyBJZiB0aGUgY291bnRyeSBpcyBub3QgZW1wdHksIGFuZFxyXG4gICAgICB0aGlzLmN1cnJlbnRDb3VudHJ5Q29kZSAmJlxyXG4gICAgICAvLyBJZiBzZWFyY2ggaW5wdXQgaGFzIGJlZW4gcmVzZXQgKGlmIGFwcGxpY2FibGUpXHJcbiAgICAgIHRoaXMuaGFzU2VhcmNoSW5wdXRCZWVuUmVzZXQgPT09IHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwb3dlcmVkQnlMb2dvOiBQb3dlcmVkQnlMb2dvID0ge1xyXG4gICAgZWxlbWVudDogbnVsbCxcclxuICAgIC8vIENyZWF0ZSBhIFwiUG93ZXJlZCBieSBFeHBlcmlhblwiIGZvb3RlclxyXG4gICAgY3JlYXRlKHBpY2tsaXN0KSB7XHJcbiAgICAgIGNvbnN0IGl0ZW0gPSB7XHJcbiAgICAgICAgdGV4dDogYCR7dGhpcy5zdmd9IDxlbT5Qb3dlcmVkIGJ5IEV4cGVyaWFuPC9lbT5gLFxyXG4gICAgICAgIGZvcm1hdDogJydcclxuICAgICAgfTtcclxuICAgICAgY29uc3QgbGlzdEl0ZW0gPSBwaWNrbGlzdC5jcmVhdGVMaXN0SXRlbShpdGVtKTtcclxuICAgICAgbGlzdEl0ZW0uY2xhc3NMaXN0LmFkZCgncG93ZXJlZC1ieS1leHBlcmlhbicpO1xyXG4gICAgICBwaWNrbGlzdC5saXN0LnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQobGlzdEl0ZW0pO1xyXG4gICAgICByZXR1cm4gbGlzdEl0ZW07XHJcbiAgICB9LFxyXG4gICAgLy8gRGVzdHJveSB0aGUgXCJQb3dlcmVkIGJ5IEV4cGVyaWFuXCIgZm9vdGVyXHJcbiAgICBkZXN0cm95KHBpY2tsaXN0KSB7XHJcbiAgICAgIGlmICh0aGlzLmVsZW1lbnQpIHtcclxuICAgICAgICBwaWNrbGlzdC5saXN0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50KTtcclxuICAgICAgICB0aGlzLmVsZW1lbnQgPSB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBzdmc6IGA8c3ZnIGNsYXNzPVwiZXhwZXJpYW4tbG9nb1wiIHZlcnNpb249XCIxLjFcIiB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMThcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIgeD1cIjBweFwiIHk9XCIwcHhcIiB2aWV3Qm94PVwiMCAwIDEyMCAxMjBcIiBzdHlsZT1cIlwiIHhtbDpzcGFjZT1cInByZXNlcnZlXCIgcm9sZT1cImltZ1wiIGFyaWEtbGFiZWw9XCJQb3dlcmVkIGJ5IEV4cGVyaWFuXCI+XHJcbiAgICAgICAgICAgIDx0aXRsZT5FeHBlcmlhbiBsb2dvPC90aXRsZT5cclxuICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBzdHlsZT1cImZpbGw6ICMwRTZFQjZcIiBkPVwiTTU2LjEsMjdoLTEzYy0zLjksMC03LTMuMS03LTdWN2MwLTMuOSwzLjEtNyw3LTdoMTNjMy45LDAsNywzLjEsNyw3djEzQzYzLjEsMjMuOCw2MCwyNyw1Ni4xLDI3XCI+PC9wYXRoPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggc3R5bGU9XCJmaWxsOiAjNzIyMTdCXCIgZD1cIk0yMi41LDU2LjFINy45Yy00LjMsMC03LjktMy41LTcuOS03LjlWMzMuNmMwLTQuMywzLjUtNy45LDcuOS03LjloMTQuNmM0LjMsMCw3LjksMy41LDcuOSw3Ljl2MTQuNkMzMC40LDUyLjYsMjYuOCw1Ni4xLDIyLjUsNTYuMVwiPjwvcGF0aD5cclxuICAgICAgICAgICAgICAgIDxwYXRoIHN0eWxlPVwiZmlsbDogI0IxMjM4NFwiIGQ9XCJNMjEuMSw4Ni40aC04LjljLTIuNywwLTQuOC0yLjEtNC44LTQuOHYtOC45YzAtMi43LDIuMi00LjgsNC44LTQuOGg4LjljMi43LDAsNC44LDIuMiw0LjgsNC44djguOUMyNS45LDg0LjMsMjMuNyw4Ni40LDIxLjEsODYuNFwiPjwvcGF0aD5cclxuICAgICAgICAgICAgICAgIDxwYXRoIHN0eWxlPVwiZmlsbDogI0U3Mjg4N1wiIGQ9XCJNNDUuMSwxMTQuN0gzNC41Yy0zLjEsMC01LjctMi41LTUuNy01LjdWOTguNGMwLTMuMSwyLjUtNS43LDUuNy01LjdoMTAuNmMzLjEsMCw1LjcsMi41LDUuNyw1LjdWMTA5QzUwLjcsMTEyLjEsNDguMiwxMTQuNyw0NS4xLDExNC43XCI+PC9wYXRoPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggc3R5bGU9XCJmaWxsOiAjRTcyODg3XCIgZD1cIk04My44LDMyLjNoLTcuM2MtMi4yLDAtMy45LTEuOC0zLjktMy45di03LjNjMC0yLjIsMS44LTMuOSwzLjktMy45aDcuM2MyLjIsMCwzLjksMS44LDMuOSwzLjl2Ny4zQzg3LjcsMzAuNSw4NS45LDMyLjMsODMuOCwzMi4zXCI+PC9wYXRoPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggc3R5bGU9XCJmaWxsOiAjMDA0NjkxXCIgZD1cIk04MS43LDYxLjhDODEuNSw1MS4xLDcyLDQyLDYwLjcsNDJDNDksNDIsMzkuNiw1MS4zLDM5LjYsNjIuOUMzOS42LDc0LjYsNDksODQsNjAuNyw4NGM1LjYsMCwxMC44LTIuMiwxNC42LTUuOWMwLjctMC43LDEuMi0xLjYsMS4yLTIuNmMwLTEuOS0xLjYtMy41LTMuNS0zLjVjLTEuMSwwLTIsMC43LTIuOCwxLjRjLTIuNCwyLjUtNS45LDMuNy05LjUsMy43Yy03LDAtMTIuNy00LjgtMTMuOS0xMS41aDMxLjVjMCwwLDAsMCwwLjEsMGgwLjFjMC4xLDAsMC4xLDAsMC4yLDBjMC4xLDAsMC4yLDAsMC40LTAuMUM4MC40LDY1LDgxLjcsNjMuNiw4MS43LDYxLjh6IE02MC43LDQ4LjljNi4zLDAsMTEuNiw0LjEsMTMuNCw5LjdINDcuM0M0OS4xLDUzLDU0LjMsNDguOSw2MC43LDQ4Ljl6XCI+PC9wYXRoPlxyXG4gICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgPC9zdmc+YFxyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlUGlja2xpc3QoKSB7XHJcbiAgICAvLyBJbnN0YW50aWF0ZSBhIG5ldyBQaWNrbGlzdCBjbGFzcyBhbmQgc2V0IHRoZSBwcm9wZXJ0aWVzIGJlbG93XHJcbiAgICB0aGlzLnBpY2tsaXN0ID0gbmV3IFBpY2tsaXN0KCk7XHJcblxyXG4gICAgLy8gU2V0IGluaXRpYWwgbWF4IHNpemVcclxuICAgIHRoaXMucGlja2xpc3QubWF4U3VnZ2VzdGlvbnMgPSAyNTtcclxuICAgIC8vIFRhYiBjb3VudCB1c2VkIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uXHJcbiAgICB0aGlzLnBpY2tsaXN0LnRhYkNvdW50ID0gLTE7XHJcbiAgICAvLyBSZW5kZXIgYSBwaWNrbGlzdCBvZiBzZWFyY2ggcmVzdWx0c1xyXG5cclxuICAgIHRoaXMucGlja2xpc3Quc2hvdyA9IChpdGVtczogU2VhcmNoUmVzcG9uc2UpID0+IHtcclxuICAgICAgLy8gU3RvcmUgdGhlIHBpY2tsaXN0IGl0ZW1zXHJcbiAgICAgIHRoaXMucGlja2xpc3QuaXRlbXMgPSBpdGVtcz8ucmVzdWx0LnN1Z2dlc3Rpb25zO1xyXG5cclxuICAgICAgdGhpcy5waWNrbGlzdC5oYW5kbGVDb21tb25TaG93UGlja2xpc3RMb2dpYygpO1xyXG5cclxuICAgICAgaWYgKHRoaXMucGlja2xpc3QuaXRlbXM/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAvLyBJZiBhIHBpY2tsaXN0IG5lZWRzIFwicmVmaW5pbmdcIiB0aGVuIHByZXBlbmQgYSB0ZXh0Ym94IHRvIGFsbG93IHRoZSB1c2VyIHRvIGVudGVyIHRoZWlyIHNlbGVjdGlvblxyXG4gICAgICAgIGlmICh0aGlzLnBpY2tsaXN0LnJlZmluZS5pc05lZWRlZChpdGVtcykpIHtcclxuICAgICAgICAgIHRoaXMucGlja2xpc3QucmVmaW5lLmNyZWF0ZUlucHV0KGl0ZW1zLnJlc3VsdC5zdWdnZXN0aW9uc19wcm9tcHQsIGl0ZW1zLnJlc3VsdC5zdWdnZXN0aW9uc19rZXkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoVHlwZSA9PT0gQWRkcmVzc1ZhbGlkYXRpb25Nb2RlLlZBTElEQVRFKSB7XHJcbiAgICAgICAgICB0aGlzLnBpY2tsaXN0LmRpc3BsYXlTdWdnZXN0aW9uc0hlYWRlcigpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gSXRlcmF0ZSBvdmVyIGFuZCBzaG93IHJlc3VsdHNcclxuICAgICAgICB0aGlzLnBpY2tsaXN0Lml0ZW1zLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgICAgICAvLyBDcmVhdGUgYSBuZXcgaXRlbS9yb3cgaW4gdGhlIHBpY2tsaXN0XHJcbiAgICAgICAgICBjb25zdCBsaXN0SXRlbSA9IHRoaXMucGlja2xpc3QuY3JlYXRlTGlzdEl0ZW0oaXRlbSk7XHJcbiAgICAgICAgICB0aGlzLnBpY2tsaXN0Lmxpc3QuYXBwZW5kQ2hpbGQobGlzdEl0ZW0pO1xyXG5cclxuICAgICAgICAgIC8vIExpc3RlbiBmb3Igc2VsZWN0aW9uIG9uIHRoaXMgaXRlbVxyXG4gICAgICAgICAgdGhpcy5waWNrbGlzdC5saXN0ZW4obGlzdEl0ZW0pO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5zZWFyY2hUeXBlID09PSBBZGRyZXNzVmFsaWRhdGlvbk1vZGUuVkFMSURBVEUpIHtcclxuICAgICAgICAgIHRoaXMucGlja2xpc3QuZGlzcGxheVVzZUFkZHJlc3NFbnRlcmVkRm9vdGVyKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnBpY2tsaXN0LnNjcm9sbEludG9WaWV3SWZOZWVkZWQoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnBpY2tsaXN0LmhhbmRsZUVtcHR5UGlja2xpc3QoaXRlbXMpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBBZGQgYSBcIlBvd2VyZWQgYnkgRXhwZXJpYW5cIiBsb2dvIHRvIHRoZSBwaWNrbGlzdCBmb290ZXJcclxuICAgICAgdGhpcy5wb3dlcmVkQnlMb2dvLmVsZW1lbnQgPSB0aGlzLnBvd2VyZWRCeUxvZ28uZWxlbWVudCB8fCB0aGlzLnBvd2VyZWRCeUxvZ28uY3JlYXRlKHRoaXMucGlja2xpc3QpO1xyXG5cclxuICAgICAgLy8gRmlyZSBhbiBldmVudCBhZnRlciBwaWNrbGlzdCBpcyBjcmVhdGVkXHJcbiAgICAgIHRoaXMuZXZlbnRzLnRyaWdnZXIoJ3Bvc3QtcGlja2xpc3QtY3JlYXRlJywgdGhpcy5waWNrbGlzdC5pdGVtcyk7XHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMucGlja2xpc3Quc2hvd1doYXQzV29yZHMgPSAoaXRlbXM6IExvb2t1cFczV1Jlc3BvbnNlKSA9PiB7XHJcbiAgICAgIC8vIFN0b3JlIHRoZSBwaWNrbGlzdCBpdGVtc1xyXG4gICAgICB0aGlzLnBpY2tsaXN0LndoYXQzd29yZHNJdGVtcyA9IGl0ZW1zPy5yZXN1bHQuc3VnZ2VzdGlvbnM7XHJcblxyXG4gICAgICB0aGlzLnBpY2tsaXN0LmhhbmRsZUNvbW1vblNob3dQaWNrbGlzdExvZ2ljKCk7XHJcblxyXG4gICAgICBpZiAodGhpcy5waWNrbGlzdC53aGF0M3dvcmRzSXRlbXM/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAvLyBJdGVyYXRlIG92ZXIgYW5kIHNob3cgcmVzdWx0c1xyXG4gICAgICAgIHRoaXMucGlja2xpc3Qud2hhdDN3b3Jkc0l0ZW1zLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgICAgICAvLyBDcmVhdGUgYSBuZXcgaXRlbS9yb3cgaW4gdGhlIHBpY2tsaXN0XHJcbiAgICAgICAgICBjb25zdCBsaXN0SXRlbSA9IHRoaXMucGlja2xpc3QuY3JlYXRlV2hhdDNXb3Jkc0xpc3RJdGVtKGl0ZW0pO1xyXG4gICAgICAgICAgdGhpcy5waWNrbGlzdC5saXN0LmFwcGVuZENoaWxkKGxpc3RJdGVtKTtcclxuXHJcbiAgICAgICAgICAvLyBMaXN0ZW4gZm9yIHNlbGVjdGlvbiBvbiB0aGlzIGl0ZW1cclxuICAgICAgICAgIHRoaXMucGlja2xpc3QubGlzdGVuKGxpc3RJdGVtKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5waWNrbGlzdC5zY3JvbGxJbnRvVmlld0lmTmVlZGVkKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5waWNrbGlzdC5oYW5kbGVFbXB0eVBpY2tsaXN0KGl0ZW1zKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gQWRkIGEgXCJQb3dlcmVkIGJ5IEV4cGVyaWFuXCIgbG9nbyB0byB0aGUgcGlja2xpc3QgZm9vdGVyXHJcbiAgICAgIHRoaXMucG93ZXJlZEJ5TG9nby5lbGVtZW50ID0gdGhpcy5wb3dlcmVkQnlMb2dvLmVsZW1lbnQgfHwgdGhpcy5wb3dlcmVkQnlMb2dvLmNyZWF0ZSh0aGlzLnBpY2tsaXN0KTtcclxuXHJcbiAgICAgIC8vIEZpcmUgYW4gZXZlbnQgYWZ0ZXIgcGlja2xpc3QgaXMgY3JlYXRlZFxyXG4gICAgICB0aGlzLmV2ZW50cy50cmlnZ2VyKCdwb3N0LXBpY2tsaXN0LWNyZWF0ZScsIHRoaXMucGlja2xpc3QuaXRlbXMpO1xyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLnBpY2tsaXN0LnNob3dMb29rdXAgPSAoaXRlbXM6IExvb2t1cFYyUmVzcG9uc2UpID0+IHtcclxuICAgICAgLy8gU2V0IGlzV2hhdDNXb3JkcyB0byBcImZhbHNlXCIgYXMgd2UgYXJlIG5vIGxvbmdlciBzaG93aW5nIHdoYXQzd29yZHMgYWRkcmVzc2VzIFxyXG4gICAgICB0aGlzLmlzV2hhdDNXb3JkcyA9IGZhbHNlO1xyXG5cclxuICAgICAgLy8gU3RvcmUgdGhlIHBpY2tsaXN0IGl0ZW1zXHJcbiAgICAgIHRoaXMucGlja2xpc3QubG9va3VwSXRlbXMgPSBpdGVtcz8ucmVzdWx0LmFkZHJlc3NlcztcclxuXHJcbiAgICAgIHRoaXMucGlja2xpc3QuaGFuZGxlQ29tbW9uU2hvd1BpY2tsaXN0TG9naWMoKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLnBpY2tsaXN0Lmxvb2t1cEl0ZW1zPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgLy8gSXRlcmF0ZSBvdmVyIGFuZCBzaG93IHJlc3VsdHNcclxuICAgICAgICB0aGlzLnBpY2tsaXN0Lmxvb2t1cEl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgICAgICAvLyBDcmVhdGUgYSBuZXcgaXRlbS9yb3cgaW4gdGhlIHBpY2tsaXN0XHJcbiAgICAgICAgICBjb25zdCBsaXN0SXRlbSA9IHRoaXMucGlja2xpc3QuY3JlYXRlTG9va3VwTGlzdEl0ZW0oaXRlbSk7XHJcbiAgICAgICAgICB0aGlzLnBpY2tsaXN0Lmxpc3QuYXBwZW5kQ2hpbGQobGlzdEl0ZW0pO1xyXG5cclxuICAgICAgICAgIC8vIExpc3RlbiBmb3Igc2VsZWN0aW9uIG9uIHRoaXMgaXRlbVxyXG4gICAgICAgICAgdGhpcy5waWNrbGlzdC5saXN0ZW4obGlzdEl0ZW0pO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLnBpY2tsaXN0LnNjcm9sbEludG9WaWV3SWZOZWVkZWQoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnBpY2tsaXN0LmhhbmRsZUVtcHR5UGlja2xpc3QoaXRlbXMpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBBZGQgYSBcIlBvd2VyZWQgYnkgRXhwZXJpYW5cIiBsb2dvIHRvIHRoZSBwaWNrbGlzdCBmb290ZXJcclxuICAgICAgdGhpcy5wb3dlcmVkQnlMb2dvLmVsZW1lbnQgPSB0aGlzLnBvd2VyZWRCeUxvZ28uZWxlbWVudCB8fCB0aGlzLnBvd2VyZWRCeUxvZ28uY3JlYXRlKHRoaXMucGlja2xpc3QpO1xyXG5cclxuICAgICAgLy8gRmlyZSBhbiBldmVudCBhZnRlciBwaWNrbGlzdCBpcyBjcmVhdGVkXHJcbiAgICAgIHRoaXMuZXZlbnRzLnRyaWdnZXIoJ3Bvc3QtcGlja2xpc3QtY3JlYXRlJywgdGhpcy5waWNrbGlzdC5pdGVtcyk7XHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMucGlja2xpc3QuaGFuZGxlQ29tbW9uU2hvd1BpY2tsaXN0TG9naWMgPSAoKSA9PiB7XHJcbiAgICAgIC8vIFJlc2V0IGFueSBwcmV2aW91c2x5IHNlbGVjdGVkIGN1cnJlbnQgaXRlbVxyXG4gICAgICB0aGlzLnBpY2tsaXN0LmN1cnJlbnRJdGVtID0gbnVsbDtcclxuXHJcbiAgICAgIC8vIFVwZGF0ZSBwaWNrbGlzdCBzaXplXHJcbiAgICAgIHRoaXMucGlja2xpc3Quc2l6ZSA9IHRoaXMucGlja2xpc3QuaXRlbXM/Lmxlbmd0aDtcclxuXHJcbiAgICAgIC8vIFJlc2V0IHRoZSBwaWNrbGlzdCB0YWIgY291bnQgKHVzZWQgZm9yIGtleWJvYXJkIG5hdmlnYXRpb24pXHJcbiAgICAgIHRoaXMucGlja2xpc3QucmVzZXRUYWJDb3VudCgpO1xyXG5cclxuICAgICAgLy8gSGlkZSB0aGUgaW5saW5lIHNlYXJjaCBzcGlubmVyXHJcbiAgICAgIHRoaXMuc2VhcmNoU3Bpbm5lci5oaWRlKCk7XHJcblxyXG4gICAgICAvLyBHZXQvQ3JlYXRlIHBpY2tsaXN0IGNvbnRhaW5lciBlbGVtZW50XHJcbiAgICAgIHRoaXMucGlja2xpc3QubGlzdCA9IHRoaXMucGlja2xpc3QubGlzdCB8fCB0aGlzLnBpY2tsaXN0LmNyZWF0ZUxpc3QoKTtcclxuXHJcbiAgICAgIC8vIEVuc3VyZSBwcmV2aW91cyByZXN1bHRzIGFyZSBjbGVhcmVkXHJcbiAgICAgIHRoaXMucGlja2xpc3QubGlzdC5pbm5lckhUTUwgPSAnJztcclxuICAgICAgdGhpcy5waWNrbGlzdC51c2VBZGRyZXNzRW50ZXJlZC5kZXN0cm95KCk7XHJcblxyXG4gICAgICAvLyBGaXJlIGFuIGV2ZW50IGJlZm9yZSBwaWNrbGlzdCBpcyBjcmVhdGVkXHJcbiAgICAgIHRoaXMuZXZlbnRzLnRyaWdnZXIoJ3ByZS1waWNrbGlzdC1jcmVhdGUnLCB0aGlzLnBpY2tsaXN0Lml0ZW1zKTtcclxuICAgIH07XHJcblxyXG4gICAgLy8gUmVtb3ZlIHRoZSBwaWNrbGlzdFxyXG4gICAgdGhpcy5waWNrbGlzdC5oaWRlID0gKCkgPT4ge1xyXG4gICAgICAvLyBDbGVhciB0aGUgY3VycmVudCBwaWNrbGlzdCBpdGVtXHJcbiAgICAgIHRoaXMucGlja2xpc3QuY3VycmVudEl0ZW0gPSBudWxsO1xyXG4gICAgICAvLyBSZW1vdmUgdGhlIFwidXNlIGFkZHJlc3MgZW50ZXJlZFwiIG9wdGlvbiB0b29cclxuICAgICAgdGhpcy5waWNrbGlzdC51c2VBZGRyZXNzRW50ZXJlZC5kZXN0cm95KCk7XHJcbiAgICAgIC8vIFJlbW92ZSB0aGUgXCJQb3dlcmVkIGJ5IEV4cGVyaWFuXCIgbG9nb1xyXG4gICAgICB0aGlzLnBvd2VyZWRCeUxvZ28uZGVzdHJveSh0aGlzLnBpY2tsaXN0KTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmlucHV0cykge1xyXG4gICAgICAgIC8vIFJlbW92ZSB0aGUgY2xhc3MgZGVub3RpbmcgYSBwaWNrbGlzdCAtIGlmIFNpbmdsZWxpbmUgbW9kZSBpcyB1c2VkLCB0aGVuIGl0IGlzIHRoZSBsYXN0IGlucHV0IGZpZWxkLCBvdGhlcndpc2UgdXNlIHRoZSBmaXJzdCBvbmVcclxuICAgICAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMuc2VhcmNoVHlwZSA9PT0gQWRkcmVzc1ZhbGlkYXRpb25Nb2RlLlNJTkdMRUxJTkUgPyB0aGlzLmlucHV0cy5sZW5ndGggLSAxIDogMDtcclxuICAgICAgICB0aGlzLmlucHV0c1twb3NpdGlvbl0uY2xhc3NMaXN0LnJlbW92ZSgnc2hvd2luZy1zdWdnZXN0aW9ucycpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBSZW1vdmUgdGhlIG1haW4gcGlja2xpc3QgY29udGFpbmVyXHJcbiAgICAgIGlmICh0aGlzLnBpY2tsaXN0Lmxpc3QpIHtcclxuICAgICAgICB0aGlzLnBpY2tsaXN0LmNvbnRhaW5lci5yZW1vdmUoKTtcclxuICAgICAgICB0aGlzLnBpY2tsaXN0Lmxpc3QgPSB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5waWNrbGlzdC5oYW5kbGVFbXB0eVBpY2tsaXN0ID0gKGl0ZW1zOiBTZWFyY2hSZXNwb25zZSB8IExvb2t1cFczV1Jlc3BvbnNlIHwgTG9va3VwVjJSZXNwb25zZSkgPT4ge1xyXG4gICAgICAvLyBDcmVhdGUgYSBuZXcgaXRlbS9yb3cgaW4gdGhlIHBpY2tsaXN0IHNob3dpbmcgXCJObyBtYXRjaGVzXCIgdGhhdCBhbGxvd3MgdGhlIFwidXNlIGFkZHJlc3MgZW50ZXJlZFwiIG9wdGlvblxyXG4gICAgICB0aGlzLnBpY2tsaXN0LnVzZUFkZHJlc3NFbnRlcmVkLmVsZW1lbnQgPSB0aGlzLnBpY2tsaXN0LnVzZUFkZHJlc3NFbnRlcmVkLmVsZW1lbnQgfHwgdGhpcy5waWNrbGlzdC51c2VBZGRyZXNzRW50ZXJlZC5jcmVhdGUoaXRlbXMucmVzdWx0Py5jb25maWRlbmNlKTtcclxuXHJcbiAgICAgIHRoaXMucGlja2xpc3Quc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCgpO1xyXG5cclxuICAgICAgLy8gUHJvdmlkZSBpbXBsZW1lbnRpbmcgc2VhcmNoIHR5cGVzIHdpdGggYSBtZWFucyBvZiBpbnZva2luZyBhIGN1c3RvbSBjYWxsYmFja1xyXG4gICAgICBpZiAodHlwZW9mIHRoaXMucGlja2xpc3QuaGFuZGxlRW1wdHlQaWNrbGlzdENhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgdGhpcy5waWNrbGlzdC5oYW5kbGVFbXB0eVBpY2tsaXN0Q2FsbGJhY2soKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICAvLyBQcmVwZW5kIGEgdGl0bGUgYmVmb3JlIHRoZSBzdWdnZXN0aW9uc1xyXG4gICAgdGhpcy5waWNrbGlzdC5kaXNwbGF5U3VnZ2VzdGlvbnNIZWFkZXIgPSAoKSA9PiB7XHJcbiAgICAgIGNvbnN0IHRpdGxlRGl2ID0gKDxIVE1MRWxlbWVudD5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucGlja2xpc3Qtc3VnZ2VzdGlvbnMtaGVhZGVyJykgfHwgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpO1xyXG4gICAgICB0aXRsZURpdi5jbGFzc0xpc3QuYWRkKCdwaWNrbGlzdC1zdWdnZXN0aW9ucy1oZWFkZXInKTtcclxuICAgICAgdGl0bGVEaXYuaW5uZXJUZXh0ID0gJ1N1Z2dlc3Rpb25zOic7XHJcbiAgICAgIHRoaXMucGlja2xpc3QubGlzdC5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aXRsZURpdiwgdGhpcy5waWNrbGlzdC5saXN0KTtcclxuICAgIH07XHJcblxyXG4gICAgLy8gQXBwZW5kIGEgZm9vdGVyIGF0IHRoZSBib3R0b20gb2YgdGhlIHBpY2tsaXN0IHByb3ZpZGluZyBhbiBvcHRpb24gdG8gXCJ1c2UgYWRkcmVzcyBlbnRlcmVkXCJcclxuICAgIHRoaXMucGlja2xpc3QuZGlzcGxheVVzZUFkZHJlc3NFbnRlcmVkRm9vdGVyID0gKCkgPT4ge1xyXG4gICAgICBjb25zdCBjb250YWluZXJEaXYgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucGlja2xpc3QtdXNlLWVudGVyZWQtY29udGFpbmVyJykgfHwgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgIGNvbnRhaW5lckRpdi5jbGFzc0xpc3QuYWRkKCdwaWNrbGlzdC11c2UtZW50ZXJlZC1jb250YWluZXInKTtcclxuICAgICAgdGhpcy5waWNrbGlzdC5saXN0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGNvbnRhaW5lckRpdiwgdGhpcy5waWNrbGlzdC5saXN0Lm5leHRFbGVtZW50U2libGluZyk7XHJcblxyXG4gICAgICBjb25zdCB0aXRsZURpdiA9ICg8SFRNTEVsZW1lbnQ+ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnBpY2tsaXN0LXVzZS1lbnRlcmVkLWhlYWRlcicpIHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTtcclxuICAgICAgdGl0bGVEaXYuY2xhc3NMaXN0LmFkZCgncGlja2xpc3QtdXNlLWVudGVyZWQtaGVhZGVyJyk7XHJcbiAgICAgIHRpdGxlRGl2LmlubmVyVGV4dCA9ICdPciB1c2UgYWRkcmVzcyBlbnRlcmVkOic7XHJcbiAgICAgIGNvbnRhaW5lckRpdi5hcHBlbmRDaGlsZCh0aXRsZURpdik7XHJcblxyXG4gICAgICBjb25zdCBpdGVtRGl2ID0gKDxIVE1MRWxlbWVudD5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucGlja2xpc3QtdXNlLWVudGVyZWQtb3B0aW9uJykgfHwgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpO1xyXG4gICAgICBpdGVtRGl2LmNsYXNzTGlzdC5hZGQoJ3BpY2tsaXN0LXVzZS1lbnRlcmVkLW9wdGlvbicpO1xyXG4gICAgICBpdGVtRGl2LmlubmVyVGV4dCA9IHRoaXMuY3VycmVudFNlYXJjaFRlcm0ucmVwbGFjZSgvLCsvZywgJywgJyk7XHJcbiAgICAgIGl0ZW1EaXYuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLnBpY2tsaXN0LnVzZUFkZHJlc3NFbnRlcmVkLmNsaWNrKTtcclxuICAgICAgY29udGFpbmVyRGl2LmFwcGVuZENoaWxkKGl0ZW1EaXYpO1xyXG4gICAgfTtcclxuXHJcbiAgICAvLyBJZiB0aGUgcGlja2xpc3QgY29udGFpbmVyIGlzIG91dCBvZiBib3VuZHMgdG8gdGhlIHRvcCBvciBib3R0b20sIHRoZW4gc2Nyb2xsIGl0IGludG8gdmlld1xyXG4gICAgdGhpcy5waWNrbGlzdC5zY3JvbGxJbnRvVmlld0lmTmVlZGVkID0gKCkgPT4ge1xyXG4gICAgICBjb25zdCBvdXRPZkJvdW5kc1RvcCA9IHRoaXMucGlja2xpc3QuY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCA8IDA7XHJcbiAgICAgIGNvbnN0IG91dE9mQm91bmRzQm90dG9tID0gdGhpcy5waWNrbGlzdC5jb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tID4gd2luZG93LmlubmVySGVpZ2h0O1xyXG5cclxuICAgICAgaWYgKG91dE9mQm91bmRzVG9wIHx8IG91dE9mQm91bmRzQm90dG9tKSB7XHJcbiAgICAgICAgdGhpcy5waWNrbGlzdC5jb250YWluZXIuc2Nyb2xsSW50b1ZpZXcoKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLnBpY2tsaXN0LnVzZUFkZHJlc3NFbnRlcmVkID0ge1xyXG4gICAgICBlbGVtZW50OiBudWxsLFxyXG4gICAgICAvLyBDcmVhdGUgYSBcInVzZSBhZGRyZXNzIGVudGVyZWRcIiBvcHRpb25cclxuICAgICAgY3JlYXRlOiAoY29uZmlkZW5jZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaXRlbSA9IHtcclxuICAgICAgICAgIHRleHQ6IGAke2NvbmZpZGVuY2V9ICR7dGhpcy5vcHRpb25zLnVzZUFkZHJlc3NFbnRlcmVkVGV4dH1gXHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zdCBsaXN0SXRlbSA9IHRoaXMucGlja2xpc3QuY3JlYXRlTGlzdEl0ZW0oaXRlbSk7XHJcbiAgICAgICAgbGlzdEl0ZW0uY2xhc3NMaXN0LmFkZCgndXNlLWFkZHJlc3MtZW50ZXJlZCcpO1xyXG4gICAgICAgIGxpc3RJdGVtLnNldEF0dHJpYnV0ZSgndGl0bGUnLCAnRW50ZXIgYWRkcmVzcyBtYW51YWxseScpO1xyXG4gICAgICAgIHRoaXMucGlja2xpc3QubGlzdCA9IHRoaXMucGlja2xpc3QubGlzdCB8fCB0aGlzLnBpY2tsaXN0LmNyZWF0ZUxpc3QoKTtcclxuICAgICAgICB0aGlzLnBpY2tsaXN0Lmxpc3QucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobGlzdEl0ZW0sIHRoaXMucGlja2xpc3QuY29udGFpbmVyLmZpcnN0Q2hpbGQpO1xyXG4gICAgICAgIGxpc3RJdGVtLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5waWNrbGlzdC51c2VBZGRyZXNzRW50ZXJlZC5jbGljayk7XHJcbiAgICAgICAgcmV0dXJuIGxpc3RJdGVtO1xyXG4gICAgICB9LFxyXG4gICAgICAvLyBEZXN0cm95IHRoZSBcInVzZSBhZGRyZXNzIGVudGVyZWRcIiBvcHRpb25cclxuICAgICAgZGVzdHJveTogKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLnBpY2tsaXN0LnVzZUFkZHJlc3NFbnRlcmVkLmVsZW1lbnQpIHtcclxuICAgICAgICAgIHRoaXMucGlja2xpc3QubGlzdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMucGlja2xpc3QudXNlQWRkcmVzc0VudGVyZWQuZWxlbWVudCk7XHJcbiAgICAgICAgICB0aGlzLnBpY2tsaXN0LnVzZUFkZHJlc3NFbnRlcmVkLmVsZW1lbnQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAvLyBVc2UgdGhlIGFkZHJlc3MgZW50ZXJlZCBhcyB0aGUgRm9ybWF0dGVkIGFkZHJlc3NcclxuICAgICAgY2xpY2s6ICgpID0+IHtcclxuICAgICAgICBjb25zdCBpbnB1dERhdGEgPSB7XHJcbiAgICAgICAgICByZXN1bHQ6IHtcclxuICAgICAgICAgICAgY29uZmlkZW5jZTogJ05vIG1hdGNoZXMnLFxyXG4gICAgICAgICAgICBhZGRyZXNzOiB7XHJcbiAgICAgICAgICAgICAgYWRkcmVzc19saW5lXzE6ICcnLFxyXG4gICAgICAgICAgICAgIGFkZHJlc3NfbGluZV8yOiAnJyxcclxuICAgICAgICAgICAgICBhZGRyZXNzX2xpbmVfMzogJycsXHJcbiAgICAgICAgICAgICAgbG9jYWxpdHk6ICcnLFxyXG4gICAgICAgICAgICAgIHJlZ2lvbjogJycsXHJcbiAgICAgICAgICAgICAgcG9zdGFsX2NvZGU6ICcnLFxyXG4gICAgICAgICAgICAgIGNvdW50cnk6ICcnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBpZiAodGhpcy5jdXJyZW50U2VhcmNoVGVybSkge1xyXG4gICAgICAgICAgLy8gVHJ5IGFuZCBzcGxpdCBpbnRvIGxpbmVzIGJ5IHVzaW5nIGNvbW1hIGRlbGltaXRlclxyXG4gICAgICAgICAgY29uc3QgbGluZXMgPSB0aGlzLmN1cnJlbnRTZWFyY2hUZXJtLnNwbGl0KCcsJyk7XHJcbiAgICAgICAgICBpZiAobGluZXNbMF0pIHtcclxuICAgICAgICAgICAgaW5wdXREYXRhLnJlc3VsdC5hZGRyZXNzLmFkZHJlc3NfbGluZV8xID0gbGluZXNbMF07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAobGluZXNbMV0pIHtcclxuICAgICAgICAgICAgaW5wdXREYXRhLnJlc3VsdC5hZGRyZXNzLmFkZHJlc3NfbGluZV8yID0gbGluZXNbMV07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAobGluZXNbMl0pIHtcclxuICAgICAgICAgICAgaW5wdXREYXRhLnJlc3VsdC5hZGRyZXNzLmFkZHJlc3NfbGluZV8zID0gbGluZXNbMl07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBmb3IgKGxldCBpID0gMzsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlucHV0RGF0YS5yZXN1bHQuYWRkcmVzcy5hZGRyZXNzX2xpbmVfMyArPSBsaW5lc1tpXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucmVzdWx0LnNob3coaW5wdXREYXRhKTtcclxuICAgICAgICB0aGlzLnJlc3VsdC51cGRhdGVIZWFkaW5nKHRoaXMub3B0aW9ucy5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyLm1hbnVhbEhlYWRpbmdUZXh0KTtcclxuICAgICAgfSxcclxuICAgICAgLy8gQ3JlYXRlIGFuZCByZXR1cm4gYW4gYWRkcmVzcyBsaW5lIG9iamVjdCB3aXRoIHRoZSBrZXkgYXMgdGhlIGxhYmVsXHJcbiAgICAgIGZvcm1hdE1hbnVhbEFkZHJlc3NMaW5lOiBmdW5jdGlvbiAobGluZXMsIGkpIHtcclxuICAgICAgICBjb25zdCBrZXkgPSBkZWZhdWx0cy5hZGRyZXNzTGluZUxhYmVsc1tpXTtcclxuICAgICAgICBjb25zdCBsaW5lT2JqZWN0ID0ge307XHJcbiAgICAgICAgbGluZU9iamVjdFtrZXldID0gbGluZXNbaV0gfHwgJyc7XHJcbiAgICAgICAgcmV0dXJuIGxpbmVPYmplY3Q7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgLy8gQ3JlYXRlIHRoZSBwaWNrbGlzdCBsaXN0IChhbmQgY29udGFpbmVyKSBhbmQgaW5qZWN0IGFmdGVyIHRoZSBpbnB1dFxyXG4gICAgdGhpcy5waWNrbGlzdC5jcmVhdGVMaXN0ID0gKCkgPT4ge1xyXG4gICAgICAvLyBJZiBTaW5nbGVsaW5lIG1vZGUgaXMgdXNlZCwgdGhlbiBhcHBlbmQgdGhlIHBpY2tsaXN0IGFmdGVyIHRoZSBsYXN0IGlucHV0IGZpZWxkLCBvdGhlcndpc2UgdXNlIHRoZSBmaXJzdCBvbmVcclxuICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLnNlYXJjaFR5cGUgPT09IEFkZHJlc3NWYWxpZGF0aW9uTW9kZS5TSU5HTEVMSU5FID8gdGhpcy5pbnB1dHMubGVuZ3RoIC0gMSA6IDA7XHJcblxyXG4gICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ2FkZHJlc3MtcGlja2xpc3QtY29udGFpbmVyJyk7XHJcbiAgICAgIHRoaXMucGlja2xpc3QuY29udGFpbmVyID0gY29udGFpbmVyO1xyXG5cclxuICAgICAgLy8gSW5zZXJ0IHRoZSBwaWNrbGlzdCBjb250YWluZXIgYWZ0ZXIgdGhlIGlucHV0XHJcbiAgICAgIHRoaXMuaW5wdXRzW3Bvc2l0aW9uXS5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLnBpY2tsaXN0LmNvbnRhaW5lciwgdGhpcy5pbnB1dHNbcG9zaXRpb25dLm5leHRFbGVtZW50U2libGluZyk7XHJcblxyXG4gICAgICBjb25zdCBsaXN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgIGxpc3QuY2xhc3NMaXN0LmFkZCgnYWRkcmVzcy1waWNrbGlzdCcpO1xyXG4gICAgICAvLyBBcHBlbmQgdGhlIHBpY2tsaXN0IHRvIHRoZSBpbm5lciB3cmFwcGVyXHJcbiAgICAgIHRoaXMucGlja2xpc3QuY29udGFpbmVyLmFwcGVuZENoaWxkKGxpc3QpO1xyXG5cclxuICAgICAgLy8gQWRkIGEgY2xhc3MgdG8gdGhlIGlucHV0IHRvIGRlbm90ZSB0aGF0IGEgcGlja2xpc3Qgd2l0aCBzdWdnZXN0aW9ucyBpcyBiZWluZyBzaG93blxyXG4gICAgICB0aGlzLmlucHV0c1twb3NpdGlvbl0uY2xhc3NMaXN0LmFkZCgnc2hvd2luZy1zdWdnZXN0aW9ucycpO1xyXG5cclxuICAgICAgbGlzdC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5waWNrbGlzdC5jaGVja0VudGVyKTtcclxuICAgICAgcmV0dXJuIGxpc3Q7XHJcbiAgICB9O1xyXG5cclxuICAgIC8vIENyZWF0ZSBhIG5ldyBwaWNrbGlzdCBpdGVtL3Jvd1xyXG4gICAgdGhpcy5waWNrbGlzdC5jcmVhdGVMaXN0SXRlbSA9IChpdGVtOiBQaWNrbGlzdEl0ZW0pID0+IHtcclxuICAgICAgY29uc3Qgcm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgIHJvdy5pbm5lckhUTUwgPSB0aGlzLnBpY2tsaXN0LmFkZE1hdGNoaW5nRW1waGFzaXMoaXRlbSk7XHJcblxyXG4gICAgICAvLyBTdG9yZSB0aGUgRm9ybWF0IFVSTCBpZiBpdCBleGlzdHMsIG90aGVyd2lzZSB1c2UgdGhlIGdsb2JhbF9hZGRyZXNzX2tleSBhcyBhIFwicmVmaW5lbWVudFwiIHByb3BlcnR5XHJcbiAgICAgIGlmIChpdGVtLmZvcm1hdCkge1xyXG4gICAgICAgIHJvdy5zZXRBdHRyaWJ1dGUoJ2Zvcm1hdCcsIGl0ZW0uZm9ybWF0KTtcclxuICAgICAgfSBlbHNlIGlmIChpdGVtLmdsb2JhbF9hZGRyZXNzX2tleSkge1xyXG4gICAgICAgIHJvdy5zZXRBdHRyaWJ1dGUoJ3JlZmluZScsIGl0ZW0uZ2xvYmFsX2FkZHJlc3Nfa2V5KTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gcm93O1xyXG4gICAgfTtcclxuXHJcbiAgICAvLyBDcmVhdGUgYSBuZXcgcGlja2xpc3QgaXRlbS9yb3cgZm9yIHdoYXQzd29yZHNcclxuICAgIHRoaXMucGlja2xpc3QuY3JlYXRlV2hhdDNXb3Jkc0xpc3RJdGVtID0gKGl0ZW06IFdoYXQzV29yZHNQaWNrTGlzdCkgPT4ge1xyXG4gICAgICBjb25zdCByb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgY29uc3QgbmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG5cclxuICAgICAgcm93LmNsYXNzTmFtZSA9IHRoaXMud2hhdDNXb3Jkc0tleXdvcmQ7XHJcbiAgICAgIG5hbWUuY2xhc3NOYW1lID0gJ3doYXQzV29yZHMtbmFtZSc7XHJcbiAgICAgIGRlc2NyaXB0aW9uLmNsYXNzTmFtZSA9ICd3aGF0M1dvcmRzLWRlc2NyaXB0aW9uJztcclxuXHJcbiAgICAgIG5hbWUuaW5uZXJIVE1MID0gJy8vLycgKyBpdGVtLndoYXQzd29yZHMubmFtZTtcclxuICAgICAgZGVzY3JpcHRpb24uaW5uZXJIVE1MID0gaXRlbS53aGF0M3dvcmRzLmRlc2NyaXB0aW9uO1xyXG5cclxuICAgICAgcm93LmFwcGVuZENoaWxkKG5hbWUpO1xyXG4gICAgICByb3cuYXBwZW5kQ2hpbGQoZGVzY3JpcHRpb24pO1xyXG5cclxuICAgICAgcmV0dXJuIHJvdztcclxuICAgIH07XHJcblxyXG5cclxuICAgIC8vIENyZWF0ZSBhIG5ldyBwaWNrbGlzdCBpdGVtL3JvdyBmb3IgbG9va3VwIGl0ZW1zXHJcbiAgICB0aGlzLnBpY2tsaXN0LmNyZWF0ZUxvb2t1cExpc3RJdGVtID0gKGl0ZW06IExvb2t1cEFkZHJlc3MpID0+IHtcclxuICAgICAgY29uc3Qgcm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcblxyXG4gICAgICByb3cuaW5uZXJIVE1MID0gaXRlbS50ZXh0O1xyXG5cclxuICAgICAgLy8gU3RvcmUgdGhlIEZvcm1hdCBVUkwgaWYgaXQgZXhpc3RzLCBvdGhlcndpc2UgdXNlIHRoZSBnbG9iYWxfYWRkcmVzc19rZXkgYXMgYSBcInJlZmluZW1lbnRcIiBwcm9wZXJ0eVxyXG4gICAgICBpZiAoaXRlbS5mb3JtYXQpIHtcclxuICAgICAgICByb3cuc2V0QXR0cmlidXRlKCdmb3JtYXQnLCBpdGVtLmZvcm1hdCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaXRlbS5nbG9iYWxfYWRkcmVzc19rZXkpIHtcclxuICAgICAgICByb3cuc2V0QXR0cmlidXRlKCdyZWZpbmUnLCBpdGVtLmdsb2JhbF9hZGRyZXNzX2tleSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHJvdztcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5waWNrbGlzdC5yZWZpbmUgPSB7XHJcbiAgICAgIGVsZW1lbnQ6IG51bGwsXHJcbiAgICAgIC8vIFJldHVybnMgd2hldGhlciB0aGUgcGlja2xpc3QgbmVlZHMgcmVmaW5pbmcuIFRoaXMgaGFwcGVucyBhZnRlciBhbiBpdGVtIGhhcyBiZWVuIFwic3RlcHBlZCBpbnRvXCIgYnV0IGhhcyBhbiB1bnJlc29sdmFibGUgcmFuZ2UuXHJcbiAgICAgIC8vIFRoZSB1c2VyIGlzIHByb21wdGVkIHRvIGVudGVyIHRoZWlyIHNlbGVjdGlvbiAoZS5nLiBidWlsZGluZyBudW1iZXIpLlxyXG4gICAgICBpc05lZWRlZDogKHJlc3BvbnNlOiBTZWFyY2hSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlYXJjaFR5cGUgIT09IEFkZHJlc3NWYWxpZGF0aW9uTW9kZS5BVVRPQ09NUExFVEUgJiYgKHJlc3BvbnNlLnJlc3VsdC5jb25maWRlbmNlID09PSAnUHJlbWlzZXMgcGFydGlhbCcgfHwgcmVzcG9uc2UucmVzdWx0LmNvbmZpZGVuY2UgPT09ICdTdHJlZXQgcGFydGlhbCcgfHwgcmVzcG9uc2UucmVzdWx0LmNvbmZpZGVuY2UgPT09ICdNdWx0aXBsZSBtYXRjaGVzJyk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGNyZWF0ZUlucHV0OiAocHJvbXB0OiBzdHJpbmcsIGtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgcm93ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnBpY2tsaXN0LXJlZmluZW1lbnQtYm94JykgfHwgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgICAgcm93LmNsYXNzTGlzdC5hZGQoJ3BpY2tsaXN0LXJlZmluZW1lbnQtYm94Jyk7XHJcblxyXG4gICAgICAgIGNvbnN0IGlucHV0ID0gKDxIVE1MSW5wdXRFbGVtZW50PmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5waWNrbGlzdC1yZWZpbmVtZW50LWJveCBpbnB1dCcpIHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0JykpO1xyXG4gICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgndHlwZScsICd0ZXh0Jyk7XHJcbiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicsIHByb21wdCk7XHJcbiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdrZXknLCBrZXkpO1xyXG4gICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnYXV0b2NvbXBsZXRlJywgJ25ldy1wYXNzd29yZCcpO1xyXG4gICAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLnBpY2tsaXN0LnJlZmluZS5lbnRlci5iaW5kKHRoaXMpKTtcclxuICAgICAgICB0aGlzLnBpY2tsaXN0LnJlZmluZS5lbGVtZW50ID0gaW5wdXQ7XHJcblxyXG4gICAgICAgIGNvbnN0IGJ1dHRvbiA9ICg8SFRNTEJ1dHRvbkVsZW1lbnQ+ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnBpY2tsaXN0LXJlZmluZW1lbnQtYm94IGJ1dHRvbicpIHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpKTtcclxuICAgICAgICBidXR0b24uaW5uZXJUZXh0ID0gJ1JlZmluZSc7XHJcbiAgICAgICAgYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5waWNrbGlzdC5yZWZpbmUuZW50ZXIpO1xyXG5cclxuICAgICAgICByb3cuYXBwZW5kQ2hpbGQoaW5wdXQpO1xyXG4gICAgICAgIHJvdy5hcHBlbmRDaGlsZChidXR0b24pO1xyXG4gICAgICAgIHRoaXMucGlja2xpc3QubGlzdC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShyb3csIHRoaXMucGlja2xpc3QubGlzdCk7XHJcblxyXG4gICAgICAgIGlucHV0LmZvY3VzKCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVudGVyOiAoZXZlbnQ6IEV2ZW50KSA9PiB7XHJcbiAgICAgICAgLy8gQWxsb3cgYSBuZXcgcmVmaW5lbWVudCBlbnRyeSBpZiB0aGUgZW50ZXIga2V5IHdhcyB1c2VkIGluc2lkZSB0aGUgdGV4dGJveCBvciB0aGUgYnV0dG9uIHdhcyBjbGlja2VkXHJcbiAgICAgICAgaWYgKChldmVudCBpbnN0YW5jZW9mIEtleWJvYXJkRXZlbnQgJiYgZXZlbnQua2V5ID09PSAnRW50ZXInKSB8fCBldmVudCBpbnN0YW5jZW9mIE1vdXNlRXZlbnQpIHtcclxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgICAgICAgLy8gSWYgYSBwaWNrbGlzdCBpdGVtIGlzIGN1cnJlbnRseSBzZWxlY3RlZCwgdGhlbiBwb3RlbnRpYWxseSB1c2UgdGhpcyBpbnN0ZWFkIG9mIHdoYXQncyBpbiB0aGUgaW5wdXQgZmllbGRcclxuICAgICAgICAgIGlmICh0aGlzLnBpY2tsaXN0LmN1cnJlbnRJdGVtKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGlja2xpc3QuY2hlY2tFbnRlcihldmVudCBhcyBLZXlib2FyZEV2ZW50KTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgICAgICAgIC8vIFRha2UgdGhlIHZhbHVlIGZyb20gdGhlIGlucHV0IGZpZWxkIGFuZCB1c2UgdGhpcyB0byBmdXJ0aGVyIHJlZmluZSB0aGUgYWRkcmVzc1xyXG4gICAgICAgICAgaWYgKHRoaXMucGlja2xpc3QucmVmaW5lLmVsZW1lbnQudmFsdWUpIHtcclxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IEpTT04uc3RyaW5naWZ5KHsgcmVmaW5lbWVudDogdGhpcy5waWNrbGlzdC5yZWZpbmUuZWxlbWVudC52YWx1ZSB9KTtcclxuICAgICAgICAgICAgY29uc3Qga2V5ID0gdGhpcy5waWNrbGlzdC5yZWZpbmUuZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2tleScpO1xyXG4gICAgICAgICAgICB0aGlzLnJlcXVlc3Quc2VuZChgJHt0aGlzLmJhc2VVcmx9JHt0aGlzLnJlZmluZUVuZHBvaW50fS8ke2tleX1gLCAnUE9TVCcsIHRoaXMucmVzdWx0LmhhbmRsZVZhbGlkYXRlUmVzcG9uc2UsIGRhdGEpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5waWNrbGlzdC5zaXplICYmIGV2ZW50IGluc3RhbmNlb2YgS2V5Ym9hcmRFdmVudCAmJiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJyB8fCBldmVudC5rZXkgPT09ICdFbnRlcicpKSB7XHJcbiAgICAgICAgICB0aGlzLnBpY2tsaXN0LmtleXVwKGV2ZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5waWNrbGlzdC5yZXNldFRhYkNvdW50ID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLnBpY2tsaXN0LnRhYkNvdW50ID0gLTE7XHJcbiAgICB9O1xyXG5cclxuICAgIC8vIEtleWJvYXJkIG5hdmlnYXRpb25cclxuICAgIHRoaXMucGlja2xpc3Qua2V5dXAgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcclxuICAgICAgaWYgKCF0aGlzLnBpY2tsaXN0Lmxpc3QpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMucGlja2xpc3QuY2hlY2tFbnRlcihldmVudCk7XHJcblxyXG4gICAgICAvLyBHZXQgYSBsaXN0IG9mIGFsbCB0aGUgYWRkcmVzc2VzIGluIHRoZSBwaWNrbGlzdFxyXG4gICAgICBjb25zdCBhZGRyZXNzZXMgPSB0aGlzLnBpY2tsaXN0Lmxpc3QucXVlcnlTZWxlY3RvckFsbCgnZGl2Jyk7XHJcbiAgICAgIGxldCBmaXJzdEFkZHJlc3M7XHJcbiAgICAgIGxldCBsYXN0QWRkcmVzcztcclxuXHJcbiAgICAgIC8vIElmIHRoZSBwaWNrbGlzdCBpcyBlbXB0eSwganVzdCByZXR1cm5cclxuICAgICAgaWYgKGFkZHJlc3Nlcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIFNldCB0aGUgdGFiQ291bnQgYmFzZWQgb24gcHJldmlvdXMgYW5kIGRpcmVjdGlvblxyXG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcpIHtcclxuICAgICAgICB0aGlzLnBpY2tsaXN0LnRhYkNvdW50LS07XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xyXG4gICAgICAgIHRoaXMucGlja2xpc3QudGFiQ291bnQrKztcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gU2V0IHRvcCBhbmQgYm90dG9tIHBvc2l0aW9ucyBhbmQgZW5hYmxlIHdyYXAtYXJvdW5kXHJcbiAgICAgIGlmICh0aGlzLnBpY2tsaXN0LnRhYkNvdW50IDwgMCkge1xyXG4gICAgICAgIHRoaXMucGlja2xpc3QudGFiQ291bnQgPSBhZGRyZXNzZXMubGVuZ3RoIC0gMTtcclxuICAgICAgICBsYXN0QWRkcmVzcyA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMucGlja2xpc3QudGFiQ291bnQgPiBhZGRyZXNzZXMubGVuZ3RoIC0gMSkge1xyXG4gICAgICAgIHRoaXMucGlja2xpc3QudGFiQ291bnQgPSAwO1xyXG4gICAgICAgIGZpcnN0QWRkcmVzcyA9IHRydWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIEhpZ2hsaWdodCB0aGUgc2VsZWN0ZWQgYWRkcmVzc1xyXG4gICAgICBjb25zdCBjdXJyZW50bHlIaWdobGlnaHRlZCA9IGFkZHJlc3Nlc1t0aGlzLnBpY2tsaXN0LnRhYkNvdW50XTtcclxuICAgICAgLy8gUmVtb3ZlIGFueSBwcmV2aW91c2x5IGhpZ2hsaWdodGVkIG9uZXNcclxuICAgICAgY29uc3QgcHJldmlvdXNseUhpZ2hsaWdodGVkID0gdGhpcy5waWNrbGlzdC5saXN0LnF1ZXJ5U2VsZWN0b3IoJy5zZWxlY3RlZCcpO1xyXG4gICAgICBpZiAocHJldmlvdXNseUhpZ2hsaWdodGVkKSB7XHJcbiAgICAgICAgcHJldmlvdXNseUhpZ2hsaWdodGVkLmNsYXNzTGlzdC5yZW1vdmUoJ3NlbGVjdGVkJyk7XHJcbiAgICAgIH1cclxuICAgICAgY3VycmVudGx5SGlnaGxpZ2h0ZWQuY2xhc3NMaXN0LmFkZCgnc2VsZWN0ZWQnKTtcclxuICAgICAgLy8gU2V0IHRoZSBjdXJyZW50SXRlbSBvbiB0aGUgcGlja2xpc3QgdG8gdGhlIGN1cnJlbnRseSBoaWdobGlnaHRlZCBhZGRyZXNzXHJcbiAgICAgIHRoaXMucGlja2xpc3QuY3VycmVudEl0ZW0gPSBjdXJyZW50bHlIaWdobGlnaHRlZDtcclxuXHJcbiAgICAgIC8vIFNjcm9sbCBhZGRyZXNzIGludG8gdmlldywgaWYgcmVxdWlyZWRcclxuICAgICAgY29uc3QgYWRkcmVzc0xpc3RDb29yZHMgPSB7XHJcbiAgICAgICAgdG9wOiB0aGlzLnBpY2tsaXN0Lmxpc3Qub2Zmc2V0VG9wLFxyXG4gICAgICAgIGJvdHRvbTogdGhpcy5waWNrbGlzdC5saXN0Lm9mZnNldFRvcCArIHRoaXMucGlja2xpc3QubGlzdC5vZmZzZXRIZWlnaHQsXHJcbiAgICAgICAgc2Nyb2xsVG9wOiB0aGlzLnBpY2tsaXN0Lmxpc3Quc2Nyb2xsVG9wLFxyXG4gICAgICAgIHNlbGVjdGVkVG9wOiBjdXJyZW50bHlIaWdobGlnaHRlZC5vZmZzZXRUb3AsXHJcbiAgICAgICAgc2VsZWN0ZWRCb3R0b206IGN1cnJlbnRseUhpZ2hsaWdodGVkLm9mZnNldFRvcCArIGN1cnJlbnRseUhpZ2hsaWdodGVkLm9mZnNldEhlaWdodCxcclxuICAgICAgICBzY3JvbGxBbW91bnQ6IGN1cnJlbnRseUhpZ2hsaWdodGVkLm9mZnNldEhlaWdodFxyXG4gICAgICB9O1xyXG4gICAgICBpZiAoZmlyc3RBZGRyZXNzKSB7XHJcbiAgICAgICAgdGhpcy5waWNrbGlzdC5saXN0LnNjcm9sbFRvcCA9IDA7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAobGFzdEFkZHJlc3MpIHtcclxuICAgICAgICB0aGlzLnBpY2tsaXN0Lmxpc3Quc2Nyb2xsVG9wID0gOTk5O1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKGFkZHJlc3NMaXN0Q29vcmRzLnNlbGVjdGVkQm90dG9tICsgYWRkcmVzc0xpc3RDb29yZHMuc2Nyb2xsQW1vdW50ID4gYWRkcmVzc0xpc3RDb29yZHMuYm90dG9tKSB7XHJcbiAgICAgICAgdGhpcy5waWNrbGlzdC5saXN0LnNjcm9sbFRvcCA9IGFkZHJlc3NMaXN0Q29vcmRzLnNjcm9sbFRvcCArIGFkZHJlc3NMaXN0Q29vcmRzLnNjcm9sbEFtb3VudDtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChhZGRyZXNzTGlzdENvb3Jkcy5zZWxlY3RlZFRvcCAtIGFkZHJlc3NMaXN0Q29vcmRzLnNjcm9sbEFtb3VudCAtIGFkZHJlc3NMaXN0Q29vcmRzLnRvcCA8IGFkZHJlc3NMaXN0Q29vcmRzLnNjcm9sbFRvcCkge1xyXG4gICAgICAgIHRoaXMucGlja2xpc3QubGlzdC5zY3JvbGxUb3AgPSBhZGRyZXNzTGlzdENvb3Jkcy5zY3JvbGxUb3AgLSBhZGRyZXNzTGlzdENvb3Jkcy5zY3JvbGxBbW91bnQ7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgLy8gQWRkIGVtcGhhc2lzIHRvIHRoZSBwaWNrbGlzdCBpdGVtcyBoaWdobGlnaHRpbmcgdGhlIG1hdGNoXHJcbiAgICB0aGlzLnBpY2tsaXN0LmFkZE1hdGNoaW5nRW1waGFzaXMgPSBmdW5jdGlvbiAoaXRlbSkge1xyXG4gICAgICBjb25zdCBoaWdobGlnaHRzID0gaXRlbS5tYXRjaGVkIHx8IFtdO1xyXG4gICAgICBsZXQgbGFiZWwgPSBpdGVtLnRleHQ7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaGlnaGxpZ2h0cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGNvbnN0IHJlcGxhY2VtZW50ID0gJzxiPicgKyBsYWJlbC5zdWJzdHJpbmcoaGlnaGxpZ2h0c1tpXVswXSwgaGlnaGxpZ2h0c1tpXVsxXSkgKyAnPC9iPic7XHJcbiAgICAgICAgbGFiZWwgPSBsYWJlbC5zdWJzdHJpbmcoMCwgaGlnaGxpZ2h0c1tpXVswXSkgKyByZXBsYWNlbWVudCArIGxhYmVsLnN1YnN0cmluZyhoaWdobGlnaHRzW2ldWzFdKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIGxhYmVsO1xyXG4gICAgfTtcclxuXHJcbiAgICAvLyBMaXN0ZW4gdG8gYSBwaWNrbGlzdCBzZWxlY3Rpb25cclxuICAgIHRoaXMucGlja2xpc3QubGlzdGVuID0gKHJvdykgPT4ge1xyXG4gICAgICByb3cuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLnBpY2tsaXN0LnBpY2suYmluZChudWxsLCByb3cpKTtcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5waWNrbGlzdC5jaGVja0VudGVyID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XHJcbiAgICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicgfHwgZXZlbnQua2V5ID09PSAnVGFiJykge1xyXG4gICAgICAgIGxldCBwaWNrbGlzdEl0ZW07XHJcbiAgICAgICAgLy8gSWYgcGlja2xpc3QgY29udGFpbnMgMSBhZGRyZXNzIHRoZW4gdXNlIHRoaXMgb25lIHRvIGZvcm1hdFxyXG4gICAgICAgIGlmICh0aGlzLnBpY2tsaXN0LnNpemUgPT09IDEpIHtcclxuICAgICAgICAgIHBpY2tsaXN0SXRlbSA9IHRoaXMucGlja2xpc3QubGlzdC5xdWVyeVNlbGVjdG9yQWxsKCdkaXYnKVswXTtcclxuICAgICAgICB9IC8vIEVsc2UgdXNlIHRoZSBjdXJyZW50bHkgaGlnaGxpZ2h0ZWQgb25lIHdoZW4gbmF2aWdhdGlvbiB1c2luZyBrZXlib2FyZFxyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMucGlja2xpc3QuY3VycmVudEl0ZW0pIHtcclxuICAgICAgICAgIHBpY2tsaXN0SXRlbSA9IHRoaXMucGlja2xpc3QuY3VycmVudEl0ZW07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChwaWNrbGlzdEl0ZW0pIHtcclxuICAgICAgICAgIHRoaXMucGlja2xpc3QucGljayhwaWNrbGlzdEl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICAvLyBIb3cgdG8gaGFuZGxlIGEgcGlja2xpc3Qgc2VsZWN0aW9uXHJcbiAgICB0aGlzLnBpY2tsaXN0LnBpY2sgPSAoaXRlbSkgPT4ge1xyXG4gICAgICAvLyBGaXJlIGFuIGV2ZW50IHdoZW4gYW4gYWRkcmVzcyBpcyBwaWNrZWRcclxuICAgICAgdGhpcy5ldmVudHMudHJpZ2dlcigncG9zdC1waWNrbGlzdC1zZWxlY3Rpb24nLCBpdGVtKTtcclxuXHJcbiAgICAgIGNvbnN0IGVsZW1lbnRzID0gaXRlbS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZGl2Jyk7XHJcblxyXG4gICAgICBpZiAodGhpcy5pc1doYXQzV29yZHMpIHtcclxuICAgICAgICB0aGlzLmxvb2t1cChlbGVtZW50c1swXS5pbm5lckhUTUwpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIC8vIEdldCBhIGZpbmFsIGFkZHJlc3MgdXNpbmcgcGlja2xpc3QgaXRlbSB1bmxlc3MgaXQgbmVlZHMgcmVmaW5lbWVudFxyXG4gICAgICAgIGlmIChpdGVtLmdldEF0dHJpYnV0ZSgnZm9ybWF0JykpIHtcclxuICAgICAgICAgIHRoaXMuZm9ybWF0KGl0ZW0uZ2V0QXR0cmlidXRlKCdmb3JtYXQnKSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMucmVmaW5lKGl0ZW0uZ2V0QXR0cmlidXRlKCdyZWZpbmUnKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmb3JtYXQodXJsOiBzdHJpbmcpIHtcclxuICAgIC8vIFRyaWdnZXIgYW4gZXZlbnRcclxuICAgIHRoaXMuZXZlbnRzLnRyaWdnZXIoJ3ByZS1mb3JtYXR0aW5nLXNlYXJjaCcsIHVybCk7XHJcblxyXG4gICAgLy8gSGlkZSB0aGUgc2VhcmNoaW5nIHNwaW5uZXJcclxuICAgIHRoaXMuc2VhcmNoU3Bpbm5lci5oaWRlKCk7XHJcblxyXG4gICAgLy8gSW5pdGlhdGUgYSBuZXcgRm9ybWF0IHJlcXVlc3RcclxuICAgIHRoaXMucmVxdWVzdC5zZW5kKHVybCwgJ0dFVCcsIHRoaXMucmVzdWx0LnNob3csIHVuZGVmaW5lZCwgW3sga2V5OiAnQWRkLU1ldGFkYXRhJywgdmFsdWU6IHRydWUgfS8qLCB7a2V5OiAnQWRkLUNvbXBvbmVudHMnLCB2YWx1ZTogdHJ1ZX0qL10pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWZpbmUoa2V5OiBzdHJpbmcpIHtcclxuICAgIC8vIFRyaWdnZXIgYW4gZXZlbnRcclxuICAgIHRoaXMuZXZlbnRzLnRyaWdnZXIoJ3ByZS1yZWZpbmVtZW50Jywga2V5KTtcclxuXHJcbiAgICAvLyBIaWRlIHRoZSBzZWFyY2hpbmcgc3Bpbm5lclxyXG4gICAgdGhpcy5zZWFyY2hTcGlubmVyLmhpZGUoKTtcclxuXHJcbiAgICAvLyBJbml0aWF0ZSBhIG5ldyBTdGVwLWluIHJlcXVlc3QgdXNpbmcgdGhlIGdsb2JhbCBhZGRyZXNzIGtleVxyXG4gICAgdGhpcy5yZXF1ZXN0LnNlbmQoYCR7dGhpcy5iYXNlVXJsfSR7dGhpcy5zdGVwSW5FbmRwb2ludH0vJHtrZXl9YCwgJ0dFVCcsIHRoaXMucGlja2xpc3Quc2hvdyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHJpdmF0ZSBsb29rdXAoa2V5OiBzdHJpbmcpIHtcclxuICAgIC8vIFRyaWdnZXIgYW4gZXZlbnRcclxuICAgIHRoaXMuZXZlbnRzLnRyaWdnZXIoJ3ByZS1sb29rdXAnLCBrZXkpO1xyXG5cclxuICAgIC8vIEhpZGUgdGhlIHNlYXJjaGluZyBzcGlubmVyXHJcbiAgICB0aGlzLnNlYXJjaFNwaW5uZXIuaGlkZSgpO1xyXG5cclxuICAgIC8vR2V0IHRoZSBsb29rdXAgcmVxdWV0XHJcbiAgICBjb25zdCBsb29rdXBWMlJlcXVlc3QgPSB0aGlzLmdlbmVyYXRlTG9va3VwRGF0YUZvckFwaUNhbGwoa2V5LCBmYWxzZSk7XHJcblxyXG4gICAgY29uc3QgdXJsID0gdGhpcy5iYXNlVXJsICsgdGhpcy5sb29rdXBFbmRwb2ludDtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBbeyBrZXk6ICdBZGQtQWRkcmVzc2VzJywgdmFsdWU6IHRydWUgfV07XHJcbiAgICBjb25zdCBjYWxsYmFjayA9IHRoaXMucGlja2xpc3Quc2hvd0xvb2t1cDtcclxuXHJcbiAgICAvL1NldCB0aGUgc2hvdWxkVHJpZ2dlcldoYXQzV29yZHNFbnJpY2htZW50IHNvIHRoYXQgd2UgY2FuIHRyaWdnZXIgaXQgYWZ0ZXIgdGhlIHVzZXIgY2hvb3NlcyBhbiBhZGRyZXNzLlxyXG4gICAgdGhpcy5zaG91bGRUcmlnZ2VyV2hhdDNXb3Jkc0VucmljaG1lbnQgPSB0cnVlO1xyXG5cclxuICAgIC8vIEluaXRpYXRlIG5ldyBTZWFyY2ggcmVxdWVzdFxyXG4gICAgdGhpcy5yZXF1ZXN0LnNlbmQodXJsLCAnUE9TVCcsIGNhbGxiYWNrLCBsb29rdXBWMlJlcXVlc3QsIGhlYWRlcnMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZXN1bHQ6IEFkZHJlc3NWYWxpZGF0aW9uUmVzdWx0ID0ge1xyXG4gICAgZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lcjogbnVsbCxcclxuICAgIGxhc3RBZGRyZXNzRmllbGQ6IG51bGwsXHJcbiAgICBnZW5lcmF0ZUFkZHJlc3NMaW5lUmVxdWlyZWQ6IGZhbHNlLFxyXG4gICAgLy8gUmVuZGVyIGEgRm9ybWF0dGVkIGFkZHJlc3NcclxuICAgIHNob3c6IChkYXRhOiBTZWFyY2hSZXNwb25zZSkgPT4ge1xyXG4gICAgICAvLyBIaWRlIHRoZSBpbmxpbmUgc2VhcmNoIHNwaW5uZXJcclxuICAgICAgdGhpcy5zZWFyY2hTcGlubmVyLmhpZGUoKTtcclxuXHJcbiAgICAgIC8vIEhpZGUgdGhlIHBpY2tsaXN0XHJcbiAgICAgIHRoaXMucGlja2xpc3QuaGlkZSgpO1xyXG5cclxuICAgICAgLy8gQ2xlYXIgdGhlIHByZXZpb3VzIHNlYXJjaCB0ZXJtXHJcbiAgICAgIHRoaXMubGFzdFNlYXJjaFRlcm0gPSAnJztcclxuXHJcbiAgICAgIC8vIEFsbG93IEF1dG9jb21wbGV0ZSB0aHJvdWdoIGFzIGl0IHdpbGwgbmVlZCB0byBjcmVhdGUgdGhlIGFkZGl0aW9uYWwgb3V0cHV0IGZpZWxkcyBmb3IgdGhlIGZpbmFsIGFkZHJlc3MuXHJcbiAgICAgIC8vIE90aGVyd2lzZSwgb25seSByZW5kZXIgdGhlIGZpbmFsIGFkZHJlc3MgaWYgdGhlcmUgYXJlIHJlc3VsdHMgYXZhaWxhYmxlLlxyXG4gICAgICBpZiAodGhpcy5zZWFyY2hUeXBlID09PSBBZGRyZXNzVmFsaWRhdGlvbk1vZGUuQVVUT0NPTVBMRVRFIHx8IChkYXRhLnJlc3VsdC5hZGRyZXNzICYmIGRhdGEucmVzdWx0LmNvbmZpZGVuY2UgIT09ICdObyBtYXRjaGVzJykpIHtcclxuXHJcbiAgICAgICAgLy8gQ2xlYXIgc2VhcmNoIGlucHV0KHMpXHJcbiAgICAgICAgdGhpcy5pbnB1dHMuZm9yRWFjaChpbnB1dCA9PiBpbnB1dC52YWx1ZSA9ICcnKTtcclxuXHJcbiAgICAgICAgLy8gQ2FsY3VsYXRlIGlmIHdlIG5lZWRlZCB0byBnZW5lcmF0ZSB0aGUgZm9ybWF0dGVkIGFkZHJlc3MgaW5wdXQgZmllbGRzIGxhdGVyXHJcbiAgICAgICAgdGhpcy5yZXN1bHQuY2FsY3VsYXRlSWZBZGRyZXNzTGluZUdlbmVyYXRpb25SZXF1aXJlZCgpO1xyXG5cclxuICAgICAgICAvLyBHZXQgZm9ybWF0dGVkIGFkZHJlc3MgY29udGFpbmVyIGVsZW1lbnRcclxuICAgICAgICAvLyBPbmx5IGNyZWF0ZSBhIGNvbnRhaW5lciBpZiB3ZSdyZSBjcmVhdGluZyBpbnB1dHMuIE90aGVyd2lzZSB0aGUgdXNlciB3aWxsIGhhdmUgdGhlaXIgb3duIGNvbnRhaW5lci5cclxuICAgICAgICB0aGlzLnJlc3VsdC5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyID0gdGhpcy5vcHRpb25zLmVsZW1lbnRzLmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXI7XHJcbiAgICAgICAgaWYgKCF0aGlzLnJlc3VsdC5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyICYmIHRoaXMucmVzdWx0LmdlbmVyYXRlQWRkcmVzc0xpbmVSZXF1aXJlZCkge1xyXG4gICAgICAgICAgdGhpcy5yZXN1bHQuY3JlYXRlRm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lcigpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gTG9vcCBvdmVyIGVhY2ggZm9ybWF0dGVkIGFkZHJlc3MgY29tcG9uZW50XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBPYmplY3Qua2V5cyhkYXRhLnJlc3VsdC5hZGRyZXNzKS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgY29uc3Qga2V5ID0gT2JqZWN0LmtleXMoZGF0YS5yZXN1bHQuYWRkcmVzcylbaV07XHJcbiAgICAgICAgICBjb25zdCBhZGRyZXNzQ29tcG9uZW50ID0gZGF0YS5yZXN1bHQuYWRkcmVzc1trZXldO1xyXG4gICAgICAgICAgLy8gQmluZCB0aGUgYWRkcmVzcyBlbGVtZW50IHRvIHRoZSB1c2VyJ3MgYWRkcmVzcyBmaWVsZCAob3IgY3JlYXRlIGEgbmV3IG9uZSlcclxuICAgICAgICAgIHRoaXMucmVzdWx0LnVwZGF0ZUFkZHJlc3NMaW5lKGtleSwgYWRkcmVzc0NvbXBvbmVudCwgJ2FkZHJlc3MtbGluZS1pbnB1dCcpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gSGlkZSBjb3VudHJ5IGFuZCBhZGRyZXNzIHNlYXJjaCBmaWVsZHMgKGlmIHRoZXkgaGF2ZSBhICd0b2dnbGUnIGNsYXNzKVxyXG4gICAgICAgIHRoaXMudG9nZ2xlU2VhcmNoSW5wdXRzKCdoaWRlJyk7XHJcblxyXG4gICAgICAgIC8vIEVuYWJsZSB1c2VycyB0byBzZWFyY2ggYWdhaW4gc3Vic2VxdWVudGx5XHJcbiAgICAgICAgdGhpcy5oYXNTZWFyY2hJbnB1dEJlZW5SZXNldCA9IHRydWU7XHJcblxyXG4gICAgICAgIC8vIElmIGFuIGFkZHJlc3MgbGluZSBpcyBhbHNvIHRoZSBtYWluIHNlYXJjaCBpbnB1dCwgc2V0IHByb3BlcnR5IHRvIGZhbHNlLlxyXG4gICAgICAgIC8vIFRoaXMgZW5zdXJlcyB0aGF0IHR5cGluZyBpbiB0aGUgZmllbGQgYWdhaW4gKGFmdGVyIGFuIGFkZHJlc3MgaGFzIGJlZW5cclxuICAgICAgICAvLyByZXR1cm5lZCkgd2lsbCBub3QgdHJpZ2dlciBhIG5ldyBzZWFyY2guXHJcbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoVHlwZSA9PT0gQWRkcmVzc1ZhbGlkYXRpb25Nb2RlLkFVVE9DT01QTEVURSkge1xyXG4gICAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IGluIHRoaXMub3B0aW9ucy5lbGVtZW50cykge1xyXG4gICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMub3B0aW9ucy5lbGVtZW50cywgZWxlbWVudCkpIHtcclxuICAgICAgICAgICAgICAvLyBFeGNsdWRpbmcgdGhlIGlucHV0IGl0c2VsZiwgZG9lcyBhbm90aGVyIGVsZW1lbnQgbWF0Y2ggdGhlIGlucHV0IGZpZWxkP1xyXG4gICAgICAgICAgICAgIGlmIChlbGVtZW50ICE9PSAnaW5wdXQnICYmIHRoaXMub3B0aW9ucy5lbGVtZW50c1tlbGVtZW50XSA9PT0gdGhpcy5pbnB1dHNbMF0pIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGFzU2VhcmNoSW5wdXRCZWVuUmVzZXQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gQ3JlYXRlIHRoZSAnU2VhcmNoIGFnYWluJyBsaW5rIGFuZCBpbnNlcnQgaW50byBET01cclxuICAgICAgICB0aGlzLnJlc3VsdC5jcmVhdGVTZWFyY2hBZ2FpbkxpbmsoKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gRmlyZSBhbiBldmVudCB0byBzYXkgd2UndmUgZ290IHRoZSBmb3JtYXR0ZWQgYWRkcmVzc1xyXG4gICAgICB0aGlzLmV2ZW50cy50cmlnZ2VyKCdwb3N0LWZvcm1hdHRpbmctc2VhcmNoJywgZGF0YSk7XHJcbiAgICB9LFxyXG4gICAgaGlkZTogKCkgPT4ge1xyXG4gICAgICAvLyBEZWxldGUgdGhlIGZvcm1hdHRlZCBhZGRyZXNzIGNvbnRhaW5lclxyXG4gICAgICBpZiAodGhpcy5yZXN1bHQuZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lcikge1xyXG4gICAgICAgIHRoaXMucmVzdWx0LmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLnJlc3VsdC5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyKTtcclxuICAgICAgICB0aGlzLnJlc3VsdC5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyID0gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIERlbGV0ZSB0aGUgc2VhcmNoIGFnYWluIGxpbmtcclxuICAgICAgaWYgKHRoaXMub3B0aW9ucy5zZWFyY2hBZ2Fpbi5saW5rKSB7XHJcbiAgICAgICAgdGhpcy5vcHRpb25zLnNlYXJjaEFnYWluLmxpbmsucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLm9wdGlvbnMuc2VhcmNoQWdhaW4ubGluayk7XHJcbiAgICAgICAgdGhpcy5vcHRpb25zLnNlYXJjaEFnYWluLmxpbmsgPSB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuICAgICAgLy8gUmVtb3ZlIHByZXZpb3VzIHZhbHVlIGZyb20gdXNlcidzIHJlc3VsdCBmaWVsZFxyXG4gICAgICAvLyBMb29wIG92ZXIgdGhlaXIgZWxlbWVudHNcclxuICAgICAgZm9yIChjb25zdCBlbGVtZW50IGluIHRoaXMub3B0aW9ucy5lbGVtZW50cykge1xyXG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5vcHRpb25zLmVsZW1lbnRzLCBlbGVtZW50KSkge1xyXG4gICAgICAgICAgLy8gSWYgaXQgbWF0Y2hlcyBhbiBcImFkZHJlc3NcIiBlbGVtZW50XHJcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRlZmF1bHRzLmFkZHJlc3NMaW5lTGFiZWxzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gZGVmYXVsdHMuYWRkcmVzc0xpbmVMYWJlbHNbaV07XHJcbiAgICAgICAgICAgIC8vIE9ubHkgcmVzZXQgdGhlIHZhbHVlIGlmIGl0J3Mgbm90IGFuIGlucHV0IGZpZWxkXHJcbiAgICAgICAgICAgIGlmIChsYWJlbCA9PT0gZWxlbWVudCAmJiB0aGlzLm9wdGlvbnMuZWxlbWVudHNbZWxlbWVudF0gIT09IHRoaXMuaW5wdXRzWzBdKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLmVsZW1lbnRzW2VsZW1lbnRdLnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBjcmVhdGVBZGRyZXNzTGluZToge1xyXG4gICAgICAvLyBDcmVhdGUgYW4gaW5wdXQgdG8gc3RvcmUgdGhlIGFkZHJlc3MgbGluZVxyXG4gICAgICBpbnB1dDogKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBjbGFzc05hbWU6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIC8vIENyZWF0ZSBhIHdyYXBwZXJcclxuICAgICAgICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgICBkaXYuY2xhc3NMaXN0LmFkZChjbGFzc05hbWUpO1xyXG5cclxuICAgICAgICAvLyBDcmVhdGUgdGhlIGxhYmVsXHJcbiAgICAgICAgY29uc3QgbGFiZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsYWJlbCcpO1xyXG4gICAgICAgIGxhYmVsLmlubmVySFRNTCA9IGtleS5yZXBsYWNlKC8oW0EtWl0pL2csICcgJDEnKSAvLyBBZGQgc3BhY2UgYmVmb3JlIGNhcGl0YWwgTGV0dGVyc1xyXG4gICAgICAgICAgLnJlcGxhY2UoLyhbMC05XSkvZywgJyAkMScpIC8vIEFkZCBzcGFjZSBiZWZvcmUgbnVtYmVyc1xyXG4gICAgICAgICAgLnJlcGxhY2UoL14uLywgZnVuY3Rpb24gKHN0cikgeyByZXR1cm4gc3RyLnRvVXBwZXJDYXNlKCk7IH0pOyAvLyBNYWtlIGZpcnN0IGxldHRlciBvZiB3b3JkIGEgY2FwaXRhbCBsZXR0ZXJcclxuICAgICAgICBkaXYuYXBwZW5kQ2hpbGQobGFiZWwpO1xyXG5cclxuICAgICAgICAvLyBDcmVhdGUgdGhlIGlucHV0XHJcbiAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xyXG4gICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgndHlwZScsICd0ZXh0Jyk7XHJcbiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywga2V5KTtcclxuICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgdmFsdWUpO1xyXG4gICAgICAgIGRpdi5hcHBlbmRDaGlsZChpbnB1dCk7XHJcbiAgICAgICAgcmV0dXJuIGRpdjtcclxuICAgICAgfSxcclxuICAgICAgLy8gQ3JlYXRlIHRoZSBhZGRyZXNzIGxpbmUgbGFiZWwgYmFzZWQgb24gdGhlIGNvdW50cnkgYW5kIGxhbmd1YWdlXHJcbiAgICAgIGxhYmVsOiAoa2V5OiBzdHJpbmcpID0+IHtcclxuICAgICAgICBsZXQgbGFiZWwgPSBrZXk7XHJcbiAgICAgICAgY29uc3QgbGFuZ3VhZ2UgPSB0aGlzLm9wdGlvbnMubGFuZ3VhZ2UudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICBjb25zdCBjb3VudHJ5ID0gdGhpcy5jdXJyZW50Q291bnRyeUNvZGUudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICBpZiAodHJhbnNsYXRpb25zKSB7XHJcbiAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCB0cmFuc2xhdGVkTGFiZWwgPSB0cmFuc2xhdGlvbnNbbGFuZ3VhZ2VdW2NvdW50cnldW2tleV07XHJcbiAgICAgICAgICAgIGlmICh0cmFuc2xhdGVkTGFiZWwpIHtcclxuICAgICAgICAgICAgICBsYWJlbCA9IHRyYW5zbGF0ZWRMYWJlbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAvLyBUcmFuc2xhdGlvbiBkb2Vzbid0IGV4aXN0IGZvciBrZXlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGxhYmVsO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLy8gQ3JlYXRlIHRoZSBmb3JtYXR0ZWQgYWRkcmVzcyBjb250YWluZXIgYW5kIGluamVjdCBhZnRlciB0aGUgaW5wdXRcclxuICAgIGNyZWF0ZUZvcm1hdHRlZEFkZHJlc3NDb250YWluZXI6ICgpID0+IHtcclxuICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgIGNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCdmb3JtYXR0ZWQtYWRkcmVzcycpO1xyXG5cclxuICAgICAgLy8gSWYgU2luZ2xlbGluZSBtb2RlIGlzIHVzZWQsIHRoZW4gYXBwZW5kIHRoZSBmb3JtYXR0ZWQgYWRkcmVzcyBhZnRlciB0aGUgbGFzdCBpbnB1dCBmaWVsZCwgb3RoZXJ3aXNlIHVzZSB0aGUgZmlyc3Qgb25lXHJcbiAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5zZWFyY2hUeXBlID09PSBBZGRyZXNzVmFsaWRhdGlvbk1vZGUuU0lOR0xFTElORSA/IHRoaXMuaW5wdXRzLmxlbmd0aCAtIDEgOiAwO1xyXG5cclxuICAgICAgLy8gSW5zZXJ0IHRoZSBjb250YWluZXIgYWZ0ZXIgdGhlIGlucHV0XHJcbiAgICAgIHRoaXMuaW5wdXRzW3Bvc2l0aW9uXS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShjb250YWluZXIsIHRoaXMuaW5wdXRzW3Bvc2l0aW9uXS5uZXh0U2libGluZyk7XHJcbiAgICAgIHRoaXMucmVzdWx0LmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIgPSBjb250YWluZXI7XHJcbiAgICB9LFxyXG4gICAgLy8gQ3JlYXRlIGEgaGVhZGluZyBmb3IgdGhlIGZvcm1hdHRlZCBhZGRyZXNzIGNvbnRhaW5lclxyXG4gICAgY3JlYXRlSGVhZGluZzogKCkgPT4ge1xyXG4gICAgICAvLyBDcmVhdGUgYSBoZWFkaW5nIGZvciB0aGUgZm9ybWF0dGVkIGFkZHJlc3NcclxuICAgICAgaWYgKHRoaXMub3B0aW9ucy5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyLnNob3dIZWFkaW5nKSB7XHJcbiAgICAgICAgY29uc3QgaGVhZGluZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5vcHRpb25zLmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIuaGVhZGluZ1R5cGUpO1xyXG4gICAgICAgIGhlYWRpbmcuaW5uZXJIVE1MID0gdGhpcy5vcHRpb25zLmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIudmFsaWRhdGVkSGVhZGluZ1RleHQ7XHJcbiAgICAgICAgdGhpcy5yZXN1bHQuZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lci5hcHBlbmRDaGlsZChoZWFkaW5nKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8vIFVwZGF0ZSB0aGUgaGVhZGluZyB0ZXh0IGluIHRoZSBmb3JtYXR0ZWQgYWRkcmVzcyBjb250YWluZXJcclxuICAgIHVwZGF0ZUhlYWRpbmc6ICh0ZXh0KSA9PiB7XHJcbiAgICAgIC8vQ2hhbmdlIHRoZSBoZWFkaW5nIHRleHQgdG8gXCJNYW51YWwgYWRkcmVzcyBlbnRlcmVkXCJcclxuICAgICAgaWYgKHRoaXMub3B0aW9ucy5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyLnNob3dIZWFkaW5nKSB7XHJcbiAgICAgICAgY29uc3QgaGVhZGluZyA9IHRoaXMucmVzdWx0LmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIucXVlcnlTZWxlY3Rvcih0aGlzLm9wdGlvbnMuZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lci5oZWFkaW5nVHlwZSk7XHJcbiAgICAgICAgaGVhZGluZy5pbm5lckhUTUwgPSB0ZXh0O1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgY2FsY3VsYXRlSWZBZGRyZXNzTGluZUdlbmVyYXRpb25SZXF1aXJlZDogKCkgPT4ge1xyXG4gICAgICB0aGlzLnJlc3VsdC5nZW5lcmF0ZUFkZHJlc3NMaW5lUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRlZmF1bHRzLmFkZHJlc3NMaW5lTGFiZWxzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgY29uc3Qga2V5ID0gZGVmYXVsdHMuYWRkcmVzc0xpbmVMYWJlbHNbaV07XHJcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5lbGVtZW50c1trZXldKSB7XHJcbiAgICAgICAgICB0aGlzLnJlc3VsdC5nZW5lcmF0ZUFkZHJlc3NMaW5lUmVxdWlyZWQgPSBmYWxzZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIHVwZGF0ZUFkZHJlc3NMaW5lOiAoa2V5OiBzdHJpbmcsIGFkZHJlc3NMaW5lT2JqZWN0LCBjbGFzc05hbWU6IHN0cmluZykgPT4ge1xyXG4gICAgICAvLyBFaXRoZXIgYXBwZW5kIHRoZSByZXN1bHQgdG8gdGhlIHVzZXIncyBhZGRyZXNzIGZpZWxkIG9yIGNyZWF0ZSBhIG5ldyBmaWVsZCBmb3IgdGhlbVxyXG4gICAgICBpZiAodGhpcy5vcHRpb25zLmVsZW1lbnRzW2tleV0pIHtcclxuICAgICAgICBjb25zdCBhZGRyZXNzRmllbGQgPSB0aGlzLm9wdGlvbnMuZWxlbWVudHNba2V5XTtcclxuICAgICAgICB0aGlzLnJlc3VsdC51cGRhdGVMYWJlbChrZXkpO1xyXG4gICAgICAgIGxldCB2YWx1ZSA9IGFkZHJlc3NMaW5lT2JqZWN0O1xyXG4gICAgICAgIC8vIElmIGEgdmFsdWUgaXMgYWxyZWFkeSBwcmVzZW50LCBwcmVwZW5kIGEgY29tbWEgYW5kIHNwYWNlXHJcbiAgICAgICAgaWYgKGFkZHJlc3NGaWVsZC52YWx1ZSAmJiB2YWx1ZSkge1xyXG4gICAgICAgICAgdmFsdWUgPSAnLCAnICsgdmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIERlY2lkZSB3aGF0IHByb3BlcnR5IG9mIHRoZSBub2RlIHdlIG5lZWQgdG8gdXBkYXRlLiBpLmUuIGlmIGl0J3Mgbm90IGEgZm9ybSBmaWVsZCwgdXBkYXRlIHRoZSBpbm5lclRleHQuXHJcbiAgICAgICAgaWYgKGFkZHJlc3NGaWVsZC5ub2RlTmFtZSA9PT0gJ0lOUFVUJyB8fCBhZGRyZXNzRmllbGQubm9kZU5hbWUgPT09ICdURVhUQVJFQScgfHwgYWRkcmVzc0ZpZWxkLm5vZGVOYW1lID09PSAnU0VMRUNUJykge1xyXG4gICAgICAgICAgYWRkcmVzc0ZpZWxkLnZhbHVlICs9IHZhbHVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBhZGRyZXNzRmllbGQuaW5uZXJUZXh0ICs9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBTdG9yZSBhIHJlY29yZCBvZiB0aGVpciBsYXN0IGFkZHJlc3MgZmllbGRcclxuICAgICAgICB0aGlzLnJlc3VsdC5sYXN0QWRkcmVzc0ZpZWxkID0gYWRkcmVzc0ZpZWxkO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMucmVzdWx0LmdlbmVyYXRlQWRkcmVzc0xpbmVSZXF1aXJlZCkge1xyXG4gICAgICAgIC8vIENyZWF0ZSBhbiBpbnB1dCB0byBzdG9yZSB0aGUgYWRkcmVzcyBsaW5lXHJcbiAgICAgICAgY29uc3QgbGFiZWwgPSB0aGlzLnJlc3VsdC5jcmVhdGVBZGRyZXNzTGluZS5sYWJlbChrZXkpO1xyXG4gICAgICAgIGNvbnN0IGZpZWxkID0gdGhpcy5yZXN1bHQuY3JlYXRlQWRkcmVzc0xpbmUuaW5wdXQobGFiZWwsIGFkZHJlc3NMaW5lT2JqZWN0LCBjbGFzc05hbWUpO1xyXG4gICAgICAgIC8vIEluc2VydCBpbnRvIERPTVxyXG4gICAgICAgIHRoaXMucmVzdWx0LmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIuYXBwZW5kQ2hpbGQoZmllbGQpO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLy8gVXBkYXRlIHRoZSBsYWJlbCBpZiB0cmFuc2xhdGlvbiBpcyBwcmVzZW50XHJcbiAgICB1cGRhdGVMYWJlbDogKGtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIGxldCBsYWJlbCA9IGtleTtcclxuICAgICAgY29uc3QgbGFuZ3VhZ2UgPSB0aGlzLm9wdGlvbnMubGFuZ3VhZ2UudG9Mb3dlckNhc2UoKTtcclxuICAgICAgY29uc3QgY291bnRyeSA9IHRoaXMuY3VycmVudENvdW50cnlDb2RlLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIGlmICh0cmFuc2xhdGlvbnMpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgY29uc3QgdHJhbnNsYXRlZExhYmVsID0gdHJhbnNsYXRpb25zW2xhbmd1YWdlXVtjb3VudHJ5XVtrZXldO1xyXG4gICAgICAgICAgaWYgKHRyYW5zbGF0ZWRMYWJlbCkge1xyXG4gICAgICAgICAgICBsYWJlbCA9IHRyYW5zbGF0ZWRMYWJlbDtcclxuICAgICAgICAgICAgY29uc3QgbGFiZWxzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2xhYmVsJyk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGFiZWxzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgaWYgKGxhYmVsc1tpXS5odG1sRm9yID09PSBrZXkpIHtcclxuICAgICAgICAgICAgICAgIGxhYmVsc1tpXS5pbm5lckhUTUwgPSB0cmFuc2xhdGVkTGFiZWw7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgLy8gVHJhbnNsYXRpb24gZG9lc24ndCBleGlzdCBmb3Iga2V5XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBsYWJlbDtcclxuICAgIH0sXHJcbiAgICAvLyBDcmVhdGUgdGhlICdTZWFyY2ggYWdhaW4nIGxpbmsgdGhhdCByZXNldHMgdGhlIHNlYXJjaFxyXG4gICAgY3JlYXRlU2VhcmNoQWdhaW5MaW5rOiAoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMuc2VhcmNoQWdhaW4udmlzaWJsZSkge1xyXG4gICAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTtcclxuICAgICAgICBsaW5rLnNldEF0dHJpYnV0ZSgndHlwZScsICdidXR0b24nKTtcclxuICAgICAgICBsaW5rLmNsYXNzTGlzdC5hZGQoJ3NlYXJjaC1hZ2Fpbi1idXR0b24nKTtcclxuICAgICAgICBsaW5rLmlubmVyVGV4dCA9IHRoaXMub3B0aW9ucy5zZWFyY2hBZ2Fpbi50ZXh0O1xyXG4gICAgICAgIC8vIEJpbmQgZXZlbnQgbGlzdGVuZXJcclxuICAgICAgICBsaW5rLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5nbG9iYWxSZXNldC5iaW5kKHRoaXMpKTtcclxuICAgICAgICAvLyBTdG9yZSBhIHJlZmVyZW5jZSB0byB0aGUgbGluayBlbGVtZW50XHJcbiAgICAgICAgdGhpcy5vcHRpb25zLnNlYXJjaEFnYWluLmxpbmsgPSBsaW5rO1xyXG5cclxuICAgICAgICAvLyBJbnNlcnQgaW50byB0aGUgZm9ybWF0dGVkIGFkZHJlc3MgY29udGFpbmVyXHJcbiAgICAgICAgaWYgKHRoaXMucmVzdWx0LmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIpIHtcclxuICAgICAgICAgIHRoaXMucmVzdWx0LmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIuYXBwZW5kQ2hpbGQobGluayk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnJlc3VsdC5sYXN0QWRkcmVzc0ZpZWxkKSB7XHJcbiAgICAgICAgICAvLyBJbnNlcnQgYWZ0ZXIgbGFzdCBhZGRyZXNzIGZpZWxkXHJcbiAgICAgICAgICB0aGlzLnJlc3VsdC5sYXN0QWRkcmVzc0ZpZWxkLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGxpbmssIHRoaXMucmVzdWx0Lmxhc3RBZGRyZXNzRmllbGQubmV4dFNpYmxpbmcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8vIFdyaXRlIHRoZSBsaXN0IG9mIGhpZGRlbiBhZGRyZXNzIGxpbmUgaW5wdXRzIHRvIHRoZSBET01cclxuICAgIHJlbmRlcklucHV0TGlzdDogKGlucHV0QXJyYXkpID0+IHtcclxuICAgICAgaWYgKGlucHV0QXJyYXkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRBcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgdGhpcy5yZXN1bHQuZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lci5hcHBlbmRDaGlsZChpbnB1dEFycmF5W2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvLyBEZWNpZGUgd2hldGhlciB0byBlaXRoZXIgc2hvdyBhIHBpY2tsaXN0IG9yIGEgdmVyaWZpZWQgcmVzdWx0IGZyb20gYSBWYWxpZGF0ZSByZXNwb25zZVxyXG4gICAgaGFuZGxlVmFsaWRhdGVSZXNwb25zZTogKHJlc3BvbnNlOiBTZWFyY2hSZXNwb25zZSkgPT4ge1xyXG4gICAgICBpZiAocmVzcG9uc2UucmVzdWx0LmNvbmZpZGVuY2UgPT09ICdWZXJpZmllZCBtYXRjaCcpIHtcclxuICAgICAgICAvLyBJZiB0aGUgcmVzcG9uc2UgY29udGFpbnMgYW4gYWRkcmVzcywgdGhlbiB1c2UgdGhpcyBkaXJlY3RseSBpbiB0aGUgcmVzdWx0XHJcbiAgICAgICAgaWYgKHJlc3BvbnNlLnJlc3VsdC5hZGRyZXNzKSB7XHJcbiAgICAgICAgICB0aGlzLnJlc3VsdC5zaG93KHJlc3BvbnNlKTtcclxuICAgICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLnJlc3VsdC5zdWdnZXN0aW9ucykge1xyXG4gICAgICAgICAgLy8gSWYgdGhlIHZlcmlmaWVkIG1hdGNoIHN0aWxsIGNvbnRhaW5zIGEgc3VnZ2VzdGlvbiwgdGhlbiB3ZSBuZWVkIHRvIGZvcm1hdCB0aGlzIGZpcnN0XHJcbiAgICAgICAgICB0aGlzLmZvcm1hdChyZXNwb25zZS5yZXN1bHQuc3VnZ2VzdGlvbnNbMF0uZm9ybWF0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2UucmVzdWx0LnN1Z2dlc3Rpb25zKSB7XHJcbiAgICAgICAgLy8gSWYgdGhlIHVzZXIgbmVlZHMgdG8gcGljayBhIHN1Z2dlc3Rpb24sIHRoZW4gZGlzcGxheSB0aGUgcGlja2xpc3RcclxuICAgICAgICB0aGlzLnBpY2tsaXN0LnNob3cocmVzcG9uc2UpO1xyXG4gICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLnJlc3VsdC5jb25maWRlbmNlID09PSAnTm8gbWF0Y2hlcycpIHtcclxuICAgICAgICAvLyBJZiB0aGVyZSBhcmUgbm8gbWF0Y2hlcywgdGhlbiBhbGxvdyBcInVzZSBhZGRyZXNzIGVudGVyZWRcIlxyXG4gICAgICAgIHRoaXMucGlja2xpc3QuaGFuZGxlRW1wdHlQaWNrbGlzdChyZXNwb25zZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG5cclxuICBwcml2YXRlIGNoZWNrVGFiKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCBrZXkgPSB0aGlzLmdldEtleShldmVudCk7XHJcbiAgICBpZiAoa2V5ID09PSAnVGFiJykge1xyXG4gICAgICB0aGlzLnBpY2tsaXN0LmtleXVwKGV2ZW50KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfSBlbHNlIGlmIChrZXkgPT09ICdFbnRlcicpIHtcclxuICAgICAgLy8gUHJldmVudCBhbiAnRW50ZXInIGtleXByZXNzIG9uIHRoZSBpbnB1dCBzdWJtaXR0aW5nIHRoZSBmb3JtXHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNlYXJjaFNwaW5uZXIgPSB7XHJcbiAgICBzaG93OiAoKSA9PiB7XHJcbiAgICAgIC8vIFJldHVybiBpZiB3ZSdyZSBub3QgZGlzcGxheWluZyBhIHNwaW5uZXJcclxuICAgICAgaWYgKCF0aGlzLm9wdGlvbnMudXNlU3Bpbm5lcikge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICAvLyBDcmVhdGUgdGhlIHNwaW5uZXIgY29udGFpbmVyXHJcbiAgICAgIGNvbnN0IHNwaW5uZXJDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgc3Bpbm5lckNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCdsb2FkZXInKTtcclxuICAgICAgc3Bpbm5lckNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCdsb2FkZXItaW5saW5lJyk7XHJcblxyXG4gICAgICAvLyBDcmVhdGUgdGhlIHNwaW5uZXJcclxuICAgICAgY29uc3Qgc3Bpbm5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICBzcGlubmVyLmNsYXNzTGlzdC5hZGQoJ3NwaW5uZXInKTtcclxuICAgICAgc3Bpbm5lckNvbnRhaW5lci5hcHBlbmRDaGlsZChzcGlubmVyKTtcclxuXHJcbiAgICAgIC8vIEluc2VydCB0aGUgc3Bpbm5lciBhZnRlciB0aGUgZmllbGRcclxuICAgICAgdGhpcy5pbnB1dHNbMF0ucGFyZW50Tm9kZT8uaW5zZXJ0QmVmb3JlKHNwaW5uZXJDb250YWluZXIsIHRoaXMuaW5wdXRzWzBdLm5leHRTaWJsaW5nKTtcclxuICAgIH0sXHJcblxyXG4gICAgaGlkZTogKCkgPT4ge1xyXG4gICAgICAvLyBSZXR1cm4gaWYgd2UncmUgbm90IGRpc3BsYXlpbmcgYSBzcGlubmVyXHJcbiAgICAgIGlmICghdGhpcy5vcHRpb25zLnVzZVNwaW5uZXIpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgY29uc3Qgc3Bpbm5lciA9IHRoaXMuaW5wdXRzWzBdLnBhcmVudE5vZGU/LnF1ZXJ5U2VsZWN0b3IoJy5sb2FkZXItaW5saW5lJyk7XHJcbiAgICAgIGlmIChzcGlubmVyKSB7XHJcbiAgICAgICAgdGhpcy5pbnB1dHNbMF0ucGFyZW50Tm9kZT8ucmVtb3ZlQ2hpbGQoc3Bpbm5lcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG5cclxuICAvLyBUb2dnbGUgdGhlIFwiaGlkZGVuXCIgY2xhc3MgdG8gZWl0aGVyIHNob3cgb3IgaGlkZSB0aGUgaW5wdXQgYW5kIGNvdW50cnkgZmllbGQocylcclxuICBwcml2YXRlIHRvZ2dsZVNlYXJjaElucHV0cyhzdGF0ZTogJ3Nob3cnIHwgJ2hpZGUnKSB7XHJcbiAgICBjb25zdCBtb2RpZmllciA9IHN0YXRlID09PSAnc2hvdycgPyAncmVtb3ZlJyA6ICdhZGQnO1xyXG4gICAgdGhpcy5vcHRpb25zLmVsZW1lbnRzLmlucHV0cz8uZm9yRWFjaChpbnB1dCA9PiBpbnB1dC5wYXJlbnROb2RlLnF1ZXJ5U2VsZWN0b3JBbGwoJy50b2dnbGUnKS5mb3JFYWNoKGVsZW1lbnQgPT4gZWxlbWVudC5jbGFzc0xpc3RbbW9kaWZpZXJdKCdoaWRkZW4nKSkpO1xyXG4gICAgdGhpcy5vcHRpb25zLmVsZW1lbnRzLmNvdW50cnlMaXN0Py5wYXJlbnROb2RlLnF1ZXJ5U2VsZWN0b3JBbGwoJy50b2dnbGUnKS5mb3JFYWNoKGVsZW1lbnQgPT4gZWxlbWVudC5jbGFzc0xpc3RbbW9kaWZpZXJdKCdoaWRkZW4nKSk7XHJcbiAgICB0aGlzLm9wdGlvbnMuZWxlbWVudHMubG9va3VwQnV0dG9uPy5wYXJlbnROb2RlLnF1ZXJ5U2VsZWN0b3JBbGwoJy50b2dnbGUnKS5mb3JFYWNoKGVsZW1lbnQgPT4gZWxlbWVudC5jbGFzc0xpc3RbbW9kaWZpZXJdKCdoaWRkZW4nKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdsb2JhbFJlc2V0KGV2ZW50Pykge1xyXG4gICAgaWYgKGV2ZW50KSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgICAvLyBFbmFibGUgc2VhcmNoaW5nXHJcbiAgICB0aGlzLm9wdGlvbnMuZW5hYmxlZCA9IHRydWU7XHJcbiAgICAvLyBIaWRlIGZvcm1hdHRlZCBhZGRyZXNzXHJcbiAgICB0aGlzLnJlc3VsdC5oaWRlKCk7XHJcbiAgICAvLyBSZXNldCBzZWFyY2ggaW5wdXQgYmFja1xyXG4gICAgdGhpcy5oYXNTZWFyY2hJbnB1dEJlZW5SZXNldCA9IHRydWU7XHJcblxyXG4gICAgLy8gQ2xlYXIgdGhlIGlucHV0IGZpZWxkKHMpXHJcbiAgICB0aGlzLmlucHV0cy5mb3JFYWNoKGlucHV0ID0+IGlucHV0LnZhbHVlID0gJycpO1xyXG4gICAgLy8gUmVtb3ZlIHRoZSBwaWNrbGlzdCAoaWYgcHJlc2VudClcclxuICAgIHRoaXMucGlja2xpc3QuaGlkZSgpO1xyXG4gICAgLy8gU2hvdyBzZWFyY2ggaW5wdXRcclxuICAgIHRoaXMudG9nZ2xlU2VhcmNoSW5wdXRzKCdzaG93Jyk7XHJcbiAgICAvLyBBcHBseSBmb2N1cyB0byBpbnB1dFxyXG4gICAgdGhpcy5pbnB1dHNbMF0uZm9jdXMoKTtcclxuXHJcbiAgICAvLyBGaXJlIGFuIGV2ZW50IGFmdGVyIGEgcmVzZXRcclxuICAgIHRoaXMuZXZlbnRzLnRyaWdnZXIoJ3Bvc3QtcmVzZXQnKTtcclxuICB9XHJcbn1cclxuIiwiaW1wb3J0IEFkZHJlc3NWYWxpZGF0aW9uIGZyb20gJy4vYWRkcmVzcy1zZWFyY2gnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBXaW5kb3cge1xuICAgIEFkZHJlc3NWYWxpZGF0aW9uOiBhbnk7XG4gIH1cbn1cblxud2luZG93LkFkZHJlc3NWYWxpZGF0aW9uID0gQWRkcmVzc1ZhbGlkYXRpb247Il0sIm5hbWVzIjpbIkFkZHJlc3NWYWxpZGF0aW9uTW9kZSIsImNvbGxlY3Rpb24iLCJvbiIsImV2ZW50IiwiYWN0aW9uIiwidGhpcyIsInB1c2giLCJ0cmlnZ2VyIiwiZGF0YSIsImkiLCJsZW5ndGgiLCJhcmdzIiwiYSIsImFyZ3VtZW50cyIsImFwcGx5IiwiZSIsImluc3RhbmNlIiwic2VuZCIsInVybCIsIm1ldGhvZCIsImNhbGxiYWNrIiwiaGVhZGVycyIsImN1cnJlbnRSZXF1ZXN0IiwiWE1MSHR0cFJlcXVlc3QiLCJvcGVuIiwidGltZW91dCIsInNldFJlcXVlc3RIZWFkZXIiLCJvcHRpb25zIiwidG9rZW4iLCJmb3JFYWNoIiwiaGVhZGVyIiwia2V5IiwidmFsdWUiLCJvbmxvYWQiLCJ4aHIiLCJzdGF0dXMiLCJKU09OIiwicGFyc2UiLCJyZXNwb25zZVRleHQiLCJzZWFyY2hTcGlubmVyIiwiaGlkZSIsImV2ZW50cyIsIm9uZXJyb3IiLCJvbnRpbWVvdXQiLCJkZWZhdWx0cyIsImVuYWJsZVdoYXQzV29yZHMiLCJzZWFyY2hUeXBlIiwiQVVUT0NPTVBMRVRFIiwiaW5wdXQiLCJwbGFjZWhvbGRlclRleHQiLCJhcHBseUZvY3VzIiwiZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lciIsInNob3dIZWFkaW5nIiwiaGVhZGluZ1R5cGUiLCJ2YWxpZGF0ZWRIZWFkaW5nVGV4dCIsIm1hbnVhbEhlYWRpbmdUZXh0Iiwic2VhcmNoQWdhaW4iLCJ2aXNpYmxlIiwidGV4dCIsInVzZUFkZHJlc3NFbnRlcmVkVGV4dCIsInVzZVNwaW5uZXIiLCJsYW5ndWFnZSIsImFkZHJlc3NMaW5lTGFiZWxzIiwiZGF0YXNldENvZGVzIiwiY291bnRyeSIsImlzbzNDb2RlIiwiaXNvMkNvZGUiLCJkYXRhc2V0Q29kZSIsInRyYW5zbGF0aW9ucyIsImVuIiwiZ2JyIiwibG9jYWxpdHkiLCJyZWdpb24iLCJwb3N0YWxfY29kZSIsInVzYSIsInNpemUiLCJtYXhTdWdnZXN0aW9ucyIsImJhc2VVcmwiLCJzZWFyY2hFbmRwb2ludCIsImxvb2t1cEVuZHBvaW50IiwidmFsaWRhdGVFbmRwb2ludCIsInByb21wdHNldEVuZHBvaW50Iiwic3RlcEluRW5kcG9pbnQiLCJyZWZpbmVFbmRwb2ludCIsImVucmljaG1lbnRFbmRwb2ludCIsIndoYXQzV29yZENvdW50cmllcyIsIndoYXQzV29yZHNLZXl3b3JkIiwicG93ZXJlZEJ5TG9nbyIsImVsZW1lbnQiLCJjcmVhdGUiLCJwaWNrbGlzdCIsIml0ZW0iLCJzdmciLCJmb3JtYXQiLCJsaXN0SXRlbSIsImNyZWF0ZUxpc3RJdGVtIiwiY2xhc3NMaXN0IiwiYWRkIiwibGlzdCIsInBhcmVudE5vZGUiLCJhcHBlbmRDaGlsZCIsImRlc3Ryb3kiLCJyZW1vdmVDaGlsZCIsInVuZGVmaW5lZCIsInJlc3VsdCIsImxhc3RBZGRyZXNzRmllbGQiLCJnZW5lcmF0ZUFkZHJlc3NMaW5lUmVxdWlyZWQiLCJzaG93IiwibGFzdFNlYXJjaFRlcm0iLCJhZGRyZXNzIiwiY29uZmlkZW5jZSIsImlucHV0cyIsImNhbGN1bGF0ZUlmQWRkcmVzc0xpbmVHZW5lcmF0aW9uUmVxdWlyZWQiLCJlbGVtZW50cyIsImNyZWF0ZUZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIiLCJPYmplY3QiLCJrZXlzIiwiYWRkcmVzc0NvbXBvbmVudCIsInVwZGF0ZUFkZHJlc3NMaW5lIiwidG9nZ2xlU2VhcmNoSW5wdXRzIiwiaGFzU2VhcmNoSW5wdXRCZWVuUmVzZXQiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJjcmVhdGVTZWFyY2hBZ2FpbkxpbmsiLCJsaW5rIiwiY3JlYXRlQWRkcmVzc0xpbmUiLCJjbGFzc05hbWUiLCJkaXYiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJsYWJlbCIsImlubmVySFRNTCIsInJlcGxhY2UiLCJzdHIiLCJ0b1VwcGVyQ2FzZSIsInNldEF0dHJpYnV0ZSIsInRvTG93ZXJDYXNlIiwiY3VycmVudENvdW50cnlDb2RlIiwidHJhbnNsYXRlZExhYmVsIiwiY29udGFpbmVyIiwicG9zaXRpb24iLCJTSU5HTEVMSU5FIiwiaW5zZXJ0QmVmb3JlIiwibmV4dFNpYmxpbmciLCJjcmVhdGVIZWFkaW5nIiwiaGVhZGluZyIsInVwZGF0ZUhlYWRpbmciLCJxdWVyeVNlbGVjdG9yIiwiYWRkcmVzc0xpbmVPYmplY3QiLCJhZGRyZXNzRmllbGQiLCJ1cGRhdGVMYWJlbCIsIm5vZGVOYW1lIiwiaW5uZXJUZXh0IiwiZmllbGQiLCJsYWJlbHMiLCJnZXRFbGVtZW50c0J5VGFnTmFtZSIsImh0bWxGb3IiLCJhZGRFdmVudExpc3RlbmVyIiwiZ2xvYmFsUmVzZXQiLCJiaW5kIiwicmVuZGVySW5wdXRMaXN0IiwiaW5wdXRBcnJheSIsImhhbmRsZVZhbGlkYXRlUmVzcG9uc2UiLCJyZXNwb25zZSIsInN1Z2dlc3Rpb25zIiwiaGFuZGxlRW1wdHlQaWNrbGlzdCIsInNwaW5uZXJDb250YWluZXIiLCJzcGlubmVyIiwibWVyZ2VEZWZhdWx0T3B0aW9ucyIsInNldHVwIiwic2V0VG9rZW4iLCJzZXRTZWFyY2hUeXBlIiwic2V0SW5wdXRzIiwiZ2V0RW5yaWNobWVudERhdGEiLCJnbG9iYWxBZGRyZXNzS2V5IiwiY291bnRyeV9pc28iLCJnbG9iYWxfYWRkcmVzc19rZXkiLCJhdHRyaWJ1dGVzIiwiZ2VvY29kZXMiLCJ3aGF0M3dvcmRzIiwic2hvdWxkVHJpZ2dlcldoYXQzV29yZHNFbnJpY2htZW50IiwicmVxdWVzdCIsImhhbmRsZUVucmljaG1lbnRSZXN1bHQiLCJzdHJpbmdpZnkiLCJzZXRDb3VudHJ5TGlzdCIsImNyZWF0ZVBpY2tsaXN0Iiwic2V0VGltZW91dCIsImdldFBhcmFtZXRlciIsIm5hbWUiLCJyZXN1bHRzIiwiUmVnRXhwIiwiZXhlYyIsImxvY2F0aW9uIiwic2VhcmNoIiwiZGVjb2RlVVJJQ29tcG9uZW50IiwiY3VzdG9tT3B0aW9ucyIsImVuYWJsZWQiLCJnZXRQcm9tcHRzZXQiLCJjdXJyZW50RGF0YVNldCIsImxvb2t1cERhdGFzZXRDb2RlIiwiaGFuZGxlUHJvbXB0c2V0UmVzdWx0IiwibGluZXMiLCJleGFtcGxlIiwicHJvbXB0Iiwic3VnZ2VzdGVkX2lucHV0X2xlbmd0aCIsIlZBTElEQVRFIiwiZGF0YXNldHMiLCJBcnJheSIsImlzQXJyYXkiLCJzZWFyY2hfdHlwZSIsInByb21wdF9zZXQiLCJmaW5kIiwiZGF0YXNldCIsImluY2x1ZGVzIiwicmVnaXN0ZXJJbnB1dHMiLCJsb29rdXBCdXR0b24iLCJsb29rdXBGbiIsImZyb20iLCJrZXlVcEZuIiwiY2hlY2tUYWJGbiIsImNoZWNrVGFiIiwiaGFuZGxlS2V5Ym9hcmRFdmVudCIsImNvdW50cnlDb2RlTWFwcGluZyIsImZvY3VzIiwiY291bnRyeUxpc3QiLCJoYW5kbGVDb3VudHJ5TGlzdENoYW5nZSIsImNvdW50cnlDb2RlIiwiRXJyb3IiLCJnZW5lcmF0ZVNlYXJjaERhdGFGb3JBcGlDYWxsIiwiY29tcG9uZW50cyIsInVuc3BlY2lmaWVkIiwiY3VycmVudFNlYXJjaFRlcm0iLCJtYXhfc3VnZ2VzdGlvbnMiLCJWYWx1ZSIsImdlbmVyYXRlTG9va3VwRGF0YUZvckFwaUNhbGwiLCJzaG91bGRHZXRTdWdnZXN0aW9ucyIsInR5cGUiLCJnZXRXaGF0M1dvcmRzTG9va3VwVmFsdWUiLCJzdGFydHNXaXRoIiwic2xpY2UiLCJwcmV2ZW50RGVmYXVsdCIsImdldEtleSIsImtleXVwIiwibWFwIiwiam9pbiIsImNvdW50cnlDb2RlQW5kRGF0YXNldCIsInNwbGl0IiwiY2FuU2VhcmNoIiwiYWJvcnQiLCJ0ZXN0IiwidHJpbSIsImluZGV4T2YiLCJpc1doYXQzV29yZHMiLCJzaG93V2hhdDNXb3JkcyIsIlBpY2tsaXN0IiwidGFiQ291bnQiLCJpdGVtcyIsImhhbmRsZUNvbW1vblNob3dQaWNrbGlzdExvZ2ljIiwicmVmaW5lIiwiaXNOZWVkZWQiLCJjcmVhdGVJbnB1dCIsInN1Z2dlc3Rpb25zX3Byb21wdCIsInN1Z2dlc3Rpb25zX2tleSIsImRpc3BsYXlTdWdnZXN0aW9uc0hlYWRlciIsImxpc3RlbiIsImRpc3BsYXlVc2VBZGRyZXNzRW50ZXJlZEZvb3RlciIsInNjcm9sbEludG9WaWV3SWZOZWVkZWQiLCJ3aGF0M3dvcmRzSXRlbXMiLCJjcmVhdGVXaGF0M1dvcmRzTGlzdEl0ZW0iLCJzaG93TG9va3VwIiwibG9va3VwSXRlbXMiLCJhZGRyZXNzZXMiLCJjcmVhdGVMb29rdXBMaXN0SXRlbSIsImN1cnJlbnRJdGVtIiwicmVzZXRUYWJDb3VudCIsImNyZWF0ZUxpc3QiLCJ1c2VBZGRyZXNzRW50ZXJlZCIsInJlbW92ZSIsImhhbmRsZUVtcHR5UGlja2xpc3RDYWxsYmFjayIsInRpdGxlRGl2IiwiY29udGFpbmVyRGl2IiwibmV4dEVsZW1lbnRTaWJsaW5nIiwiaXRlbURpdiIsImNsaWNrIiwib3V0T2ZCb3VuZHNUb3AiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJ0b3AiLCJvdXRPZkJvdW5kc0JvdHRvbSIsImJvdHRvbSIsIndpbmRvdyIsImlubmVySGVpZ2h0Iiwic2Nyb2xsSW50b1ZpZXciLCJmaXJzdENoaWxkIiwiaW5wdXREYXRhIiwiYWRkcmVzc19saW5lXzEiLCJhZGRyZXNzX2xpbmVfMiIsImFkZHJlc3NfbGluZV8zIiwiZm9ybWF0TWFudWFsQWRkcmVzc0xpbmUiLCJsaW5lT2JqZWN0IiwiY2hlY2tFbnRlciIsInJvdyIsImFkZE1hdGNoaW5nRW1waGFzaXMiLCJkZXNjcmlwdGlvbiIsImVudGVyIiwiYnV0dG9uIiwiS2V5Ym9hcmRFdmVudCIsIk1vdXNlRXZlbnQiLCJzdG9wUHJvcGFnYXRpb24iLCJyZWZpbmVtZW50IiwiZ2V0QXR0cmlidXRlIiwiZmlyc3RBZGRyZXNzIiwibGFzdEFkZHJlc3MiLCJxdWVyeVNlbGVjdG9yQWxsIiwiY3VycmVudGx5SGlnaGxpZ2h0ZWQiLCJwcmV2aW91c2x5SGlnaGxpZ2h0ZWQiLCJhZGRyZXNzTGlzdENvb3JkcyIsIm9mZnNldFRvcCIsIm9mZnNldEhlaWdodCIsInNjcm9sbFRvcCIsImhpZ2hsaWdodHMiLCJtYXRjaGVkIiwicmVwbGFjZW1lbnQiLCJzdWJzdHJpbmciLCJwaWNrIiwicGlja2xpc3RJdGVtIiwibG9va3VwIiwibG9va3VwVjJSZXF1ZXN0Iiwic3RhdGUiLCJtb2RpZmllciIsIkFkZHJlc3NWYWxpZGF0aW9uIl0sInNvdXJjZVJvb3QiOiIifQ== \ No newline at end of file +!function(){"use strict";var e,s=function(){function e(){this.collection={}}return e.prototype.on=function(e,s){this.collection[e]=this.collection[e]||[],this.collection[e].push(s)},e.prototype.trigger=function(e,s){if(this.collection[e])for(var t=0;t=200&&d.currentRequest.status<400){var s=JSON.parse(d.currentRequest.responseText);t(s)}else d.instance.searchSpinner.hide(),d.instance.events.trigger("request-error",e),d.instance.events.trigger("request-error-".concat(d.currentRequest.status),e)},this.currentRequest.onerror=function(e){d.instance.searchSpinner.hide(),d.instance.events.trigger("request-error",e)},this.currentRequest.ontimeout=function(e){d.instance.searchSpinner.hide(),d.instance.events.trigger("request-timeout",e)},this.currentRequest.send(o)},e}();!function(e){e.AUTOCOMPLETE="autocomplete",e.SINGLELINE="singleline",e.VALIDATE="validate"}(e||(e={}));var a={enableWhat3Words:!0,searchType:e.AUTOCOMPLETE,input:{placeholderText:"Start typing an address...",applyFocus:!1},formattedAddressContainer:{showHeading:!1,headingType:"h3",validatedHeadingText:"Validated address",manualHeadingText:"Manual address entered"},searchAgain:{visible:!0,text:"Search again"},useAddressEnteredText:" - Use address entered or try again...",useSpinner:!1,language:"en",addressLineLabels:["address_line_1","address_line_2","address_line_3","locality","region","postal_code","country"]},d=[{country:"Afghanistan",iso3Code:"AFG",iso2Code:"AF",datasetCode:"af-address-ed",searchType:"singleline, validate"},{country:"Afghanistan",iso3Code:"AFG",iso2Code:"AF",datasetCode:"af-address-eh",searchType:"autocomplete"},{country:"Albania",iso3Code:"ALB",iso2Code:"AL",datasetCode:"al-address-ed",searchType:"singleline, validate"},{country:"Albania",iso3Code:"ALB",iso2Code:"AL",datasetCode:"al-address-eh",searchType:"autocomplete"},{country:"Algeria",iso3Code:"DZA",iso2Code:"DZ",datasetCode:"dz-address-ed",searchType:"singleline, validate"},{country:"Algeria",iso3Code:"DZA",iso2Code:"DZ",datasetCode:"dz-address-eh",searchType:"autocomplete"},{country:"American Samoa",iso3Code:"ASM",iso2Code:"AS",datasetCode:"as-address-eh",searchType:"autocomplete"},{country:"Andorra",iso3Code:"AND",iso2Code:"AD",datasetCode:"ad-address-ed",searchType:"singleline, validate"},{country:"Andorra",iso3Code:"AND",iso2Code:"AD",datasetCode:"ad-address-eh",searchType:"autocomplete"},{country:"Angola",iso3Code:"AGO",iso2Code:"AO",datasetCode:"ao-address-ed",searchType:"singleline, validate"},{country:"Angola",iso3Code:"AGO",iso2Code:"AO",datasetCode:"ao-address-eh",searchType:"autocomplete"},{country:"Anguilla",iso3Code:"AIA",iso2Code:"AI",datasetCode:"ai-address-eh",searchType:"autocomplete"},{country:"Antarctica",iso3Code:"ATA",iso2Code:"AQ",datasetCode:"aq-address-ed",searchType:"singleline, validate"},{country:"Antigua and Barbuda",iso3Code:"ATG",iso2Code:"AG",datasetCode:"ag-address-ed",searchType:"singleline, validate"},{country:"Antigua and Barbuda",iso3Code:"ATG",iso2Code:"AG",datasetCode:"ag-address-eh",searchType:"autocomplete"},{country:"Argentina",iso3Code:"ARG",iso2Code:"AR",datasetCode:"ar-address-ed",searchType:"singleline, validate"},{country:"Argentina",iso3Code:"ARG",iso2Code:"AR",datasetCode:"ar-address-eh",searchType:"autocomplete"},{country:"Armenia",iso3Code:"ARM",iso2Code:"AM",datasetCode:"am-address-ed",searchType:"singleline, validate"},{country:"Armenia",iso3Code:"ARM",iso2Code:"AM",datasetCode:"am-address-eh",searchType:"autocomplete"},{country:"Aruba",iso3Code:"ABW",iso2Code:"AW",datasetCode:"aw-address-ed",searchType:"singleline, validate"},{country:"Aruba",iso3Code:"ABW",iso2Code:"AW",datasetCode:"aw-address-eh",searchType:"autocomplete"},{country:"Australia DataFusion",iso3Code:"AUS",iso2Code:"AU",datasetCode:"au-address-datafusion",searchType:"autocomplete, singleline, typedown"},{country:"Australia Geocoded National Address",iso3Code:"AUS",iso2Code:"AU",datasetCode:"au-address-gnaf",searchType:"autocomplete, singleline, typedown, validate"},{country:"Australia Postal Address",iso3Code:"AUS",iso2Code:"AU",datasetCode:"au-address",searchType:"autocomplete, singleline, typedown, validate"},{country:"Austria",iso3Code:"AUT",iso2Code:"AT",datasetCode:"at-address-eh",searchType:"autocomplete"},{country:"Austria",iso3Code:"AUT",iso2Code:"AT",datasetCode:"az-address-ed",searchType:"singleline, validate"},{country:"Azerbaijan",iso3Code:"AZE",iso2Code:"AZ",datasetCode:"az-address-ed",searchType:"singleline, validate"},{country:"Azerbaijan",iso3Code:"AZE",iso2Code:"AZ",datasetCode:"az-address-eh",searchType:"autocomplete"},{country:"Bahamas",iso3Code:"BHS",iso2Code:"BS",datasetCode:"bs-address-ed",searchType:"singleline, validate"},{country:"Bahamas",iso3Code:"BHS",iso2Code:"BS",datasetCode:"bs-address-eh",searchType:"autocomplete"},{country:"Bahrain",iso3Code:"BHR",iso2Code:"BH",datasetCode:"bh-address-ed",searchType:"singleline, validate"},{country:"Bahrain",iso3Code:"BHR",iso2Code:"BH",datasetCode:"bh-address-eh",searchType:"autocomplete"},{country:"Bangladesh",iso3Code:"BGD",iso2Code:"BD",datasetCode:"bd-address-ed",searchType:"singleline, validate"},{country:"Bangladesh",iso3Code:"BGD",iso2Code:"BD",datasetCode:"bd-address-eh",searchType:"autocomplete"},{country:"Barbados",iso3Code:"BRB",iso2Code:"BB",datasetCode:"bb-address-ed",searchType:"singleline, validate"},{country:"Barbados",iso3Code:"BRB",iso2Code:"BB",datasetCode:"bb-address-eh",searchType:"autocomplete"},{country:"Belarus",iso3Code:"BLR",iso2Code:"BY",datasetCode:"by-address-ed",searchType:"singleline, validate"},{country:"Belarus",iso3Code:"BLR",iso2Code:"BY",datasetCode:"by-address-eh",searchType:"autocomplete"},{country:"Belgium",iso3Code:"BEL",iso2Code:"BE",datasetCode:"be-address",searchType:"singleline, typedown"},{country:"Belgium",iso3Code:"BEL",iso2Code:"BE",datasetCode:"be-address-ed",searchType:" validate"},{country:"Belgium",iso3Code:"BEL",iso2Code:"BE",datasetCode:"be-address-eh",searchType:"autocomplete"},{country:"Belize",iso3Code:"BLZ",iso2Code:"BZ",datasetCode:"bz-address-ed",searchType:"singleline, validate"},{country:"Belize",iso3Code:"BLZ",iso2Code:"BZ",datasetCode:"bz-address-eh",searchType:"autocomplete"},{country:"Benin",iso3Code:"BEN",iso2Code:"BJ",datasetCode:"bj-address-ed",searchType:"singleline, validate"},{country:"Benin",iso3Code:"BEN",iso2Code:"BJ",datasetCode:"bj-address-eh",searchType:"autocomplete"},{country:"Bermuda",iso3Code:"BMU",iso2Code:"BM",datasetCode:"bm-address-ed",searchType:"singleline, validate"},{country:"Bermuda",iso3Code:"BMU",iso2Code:"BM",datasetCode:"bm-address-eh",searchType:"autocomplete"},{country:"Bhutan",iso3Code:"BTN",iso2Code:"BT",datasetCode:"bt-address-ed",searchType:"singleline, validate"},{country:"Bhutan",iso3Code:"BTN",iso2Code:"BT",datasetCode:"bt-address-eh",searchType:"autocomplete"},{country:"Bolivia",iso3Code:"BOL",iso2Code:"BO",datasetCode:"bo-address-ed",searchType:"singleline, validate"},{country:"Bolivia",iso3Code:"BOL",iso2Code:"BO",datasetCode:"bo-address-eh",searchType:"autocomplete"},{country:"Bonaire, Sint Eustatius and Saba",iso3Code:"BES",iso2Code:"BQ",datasetCode:"bq-address-ed",searchType:"singleline, validate"},{country:"Bonaire, Sint Eustatius and Saba",iso3Code:"BES",iso2Code:"BQ",datasetCode:"bq-address-eh",searchType:"autocomplete"},{country:"Bosnia and Herzegovina",iso3Code:"BIH",iso2Code:"BA",datasetCode:"ba-address-ed",searchType:"singleline, validate"},{country:"Bosnia and Herzegovina",iso3Code:"BIH",iso2Code:"BA",datasetCode:"ba-address-eh",searchType:"autocomplete"},{country:"Botswana",iso3Code:"BWA",iso2Code:"BW",datasetCode:"bw-address-ed",searchType:"singleline, validate"},{country:"Botswana",iso3Code:"BWA",iso2Code:"BW",datasetCode:"bw-address-eh",searchType:"autocomplete"},{country:"Brazil",iso3Code:"BRA",iso2Code:"BR",datasetCode:"br-address-ed",searchType:"singleline, validate"},{country:"Brazil",iso3Code:"BRA",iso2Code:"BR",datasetCode:"br-address-eh",searchType:"autocomplete"},{country:"Brunei Darussalam",iso3Code:"BRN",iso2Code:"BN",datasetCode:"bn-address-ed",searchType:"singleline, validate"},{country:"Brunei Darussalam",iso3Code:"BRN",iso2Code:"BN",datasetCode:"bn-address-eh",searchType:"autocomplete"},{country:"Bulgaria",iso3Code:"BGR",iso2Code:"BG",datasetCode:"bg-address-ed",searchType:"singleline, validate"},{country:"Bulgaria",iso3Code:"BGR",iso2Code:"BG",datasetCode:"bg-address-eh",searchType:"autocomplete"},{country:"Burkina Faso",iso3Code:"BFA",iso2Code:"BF",datasetCode:"bf-address-ed",searchType:"singleline, validate"},{country:"Burkina Faso",iso3Code:"BFA",iso2Code:"BF",datasetCode:"bf-address-eh",searchType:"autocomplete"},{country:"Burundi",iso3Code:"BDI",iso2Code:"BI",datasetCode:"bi-address-eh",searchType:"autocomplete"},{country:"Cambodia",iso3Code:"KHM",iso2Code:"KH",datasetCode:"kh-address-ed",searchType:"singleline, validate"},{country:"Cambodia",iso3Code:"KHM",iso2Code:"KH",datasetCode:"kh-address-eh",searchType:"autocomplete"},{country:"Cameroon",iso3Code:"CMR",iso2Code:"CM",datasetCode:"cm-address-ed",searchType:"singleline, validate"},{country:"Cameroon",iso3Code:"CMR",iso2Code:"CM",datasetCode:"cm-address-eh",searchType:"autocomplete"},{country:"Canada",iso3Code:"CAN",iso2Code:"CA",datasetCode:"ca-address",searchType:"autocomplete, singleline, typedown, validate"},{country:"Cape Verde",iso3Code:"CPV",iso2Code:"CV",datasetCode:"cv-address-ed",searchType:"singleline, validate"},{country:"Cape Verde",iso3Code:"CPV",iso2Code:"CV",datasetCode:"cv-address-eh",searchType:"autocomplete"},{country:"Cayman Islands",iso3Code:"CYM",iso2Code:"KY",datasetCode:"ky-address-ed",searchType:"singleline, validate"},{country:"Cayman Islands",iso3Code:"CYM",iso2Code:"KY",datasetCode:"ky-address-eh",searchType:"autocomplete"},{country:"Central African Republic",iso3Code:"CAF",iso2Code:"CF",datasetCode:"cf-address-ed",searchType:"singleline, validate"},{country:"Central African Republic",iso3Code:"CAF",iso2Code:"CF",datasetCode:"cf-address-eh",searchType:"autocomplete"},{country:"Chad",iso3Code:"TCD",iso2Code:"TD",datasetCode:"td-address-ed",searchType:"singleline, validate"},{country:"Chad",iso3Code:"TCD",iso2Code:"TD",datasetCode:"td-address-eh",searchType:"autocomplete"},{country:"Chile",iso3Code:"CHL",iso2Code:"CL",datasetCode:"cl-address-ed",searchType:"singleline, validate"},{country:"Chile",iso3Code:"CHL",iso2Code:"CL",datasetCode:"cl-address-eh",searchType:"autocomplete"},{country:"China",iso3Code:"CHN",iso2Code:"CN",datasetCode:"cn-address-ed",searchType:"singleline, validate"},{country:"China",iso3Code:"CHN",iso2Code:"CN",datasetCode:"cn-address-eh",searchType:"autocomplete"},{country:"Christmas Island",iso3Code:"CXR",iso2Code:"CX",datasetCode:"cx-address-eh",searchType:"autocomplete"},{country:"Cocos Island",iso3Code:"CCK",iso2Code:"CC",datasetCode:"cc-address-eh",searchType:"autocomplete"},{country:"Colombia",iso3Code:"COL",iso2Code:"CO",datasetCode:"co-address-ed",searchType:"singleline, validate"},{country:"Colombia",iso3Code:"COL",iso2Code:"CO",datasetCode:"co-address-eh",searchType:"autocomplete"},{country:"Comoros",iso3Code:"COM",iso2Code:"KM",datasetCode:"km-address-ed",searchType:"singleline, validate"},{country:"Comoros",iso3Code:"COM",iso2Code:"KM",datasetCode:"km-address-eh",searchType:"autocomplete"},{country:"Congo",iso3Code:"COG",iso2Code:"CG",datasetCode:"cg-address-ed",searchType:"singleline, validate"},{country:"Congo",iso3Code:"COG",iso2Code:"CG",datasetCode:"cg-address-eh",searchType:"autocomplete"},{country:"Congo, The Democratic Republic of the",iso3Code:"COD",iso2Code:"CD",datasetCode:"cd-address-ed",searchType:"singleline, validate"},{country:"Congo, The Democratic Republic of the",iso3Code:"COD",iso2Code:"CD",datasetCode:"cd-address-eh",searchType:"autocomplete"},{country:"Cook Islands",iso3Code:"COK",iso2Code:"CK",datasetCode:"ck-address-ed",searchType:"singleline, validate"},{country:"Cook Islands",iso3Code:"COK",iso2Code:"CK",datasetCode:"ck-address-eh",searchType:"autocomplete"},{country:"Costa Rica",iso3Code:"CRI",iso2Code:"CR",datasetCode:"cr-address-ed",searchType:"singleline, validate"},{country:"Costa Rica",iso3Code:"CRI",iso2Code:"CR",datasetCode:"cr-address-eh",searchType:"autocomplete"},{country:"Croatia",iso3Code:"HRV",iso2Code:"HR",datasetCode:"hr-address-ed",searchType:"singleline, validate"},{country:"Croatia",iso3Code:"HRV",iso2Code:"HR",datasetCode:"hr-address-eh",searchType:"autocomplete"},{country:"Cuba",iso3Code:"CUB",iso2Code:"CU",datasetCode:"cu-address-ed",searchType:"singleline, validate"},{country:"Cuba",iso3Code:"CUB",iso2Code:"CU",datasetCode:"cu-address-eh",searchType:"autocomplete"},{country:"Curaçao",iso3Code:"CUW",iso2Code:"CW",datasetCode:"cw-address-ed",searchType:"singleline, validate"},{country:"Curaçao",iso3Code:"CUW",iso2Code:"CW",datasetCode:"cw-address-eh",searchType:"autocomplete"},{country:"Cyprus",iso3Code:"CYP",iso2Code:"CY",datasetCode:"cy-address-ed",searchType:"singleline, validate"},{country:"Cyprus",iso3Code:"CYP",iso2Code:"CY",datasetCode:"cy-address-eh",searchType:"autocomplete"},{country:"Czech Republic",iso3Code:"CZE",iso2Code:"CZ",datasetCode:"cz-address-ed",searchType:"singleline, validate"},{country:"Czech Republic",iso3Code:"CZE",iso2Code:"CZ",datasetCode:"cz-address-eh",searchType:"autocomplete"},{country:"Côte d'Ivoire",iso3Code:"CIV",iso2Code:"CI",datasetCode:"ci-address-ed",searchType:"singleline, validate"},{country:"Côte d'Ivoire",iso3Code:"CIV",iso2Code:"CI",datasetCode:"ci-address-eh",searchType:"autocomplete"},{country:"Denmark",iso3Code:"DNK",iso2Code:"DK",datasetCode:"dk-address-ed",searchType:"singleline, validate"},{country:"Denmark",iso3Code:"DNK",iso2Code:"DK",datasetCode:"dk-address-eh",searchType:"autocomplete"},{country:"Djibouti",iso3Code:"DJI",iso2Code:"DJ",datasetCode:"dj-address-ed",searchType:"singleline, validate"},{country:"Djibouti",iso3Code:"DJI",iso2Code:"DJ",datasetCode:"dj-address-eh",searchType:"autocomplete"},{country:"Dominica",iso3Code:"DMA",iso2Code:"DM",datasetCode:"dm-address-ed",searchType:"singleline, validate"},{country:"Dominica",iso3Code:"DMA",iso2Code:"DM",datasetCode:"dm-address-eh",searchType:"autocomplete"},{country:"Dominican Republic",iso3Code:"DOM",iso2Code:"DO",datasetCode:"do-address-ed",searchType:"singleline, validate"},{country:"Dominican Republic",iso3Code:"DOM",iso2Code:"DO",datasetCode:"do-address-eh",searchType:"autocomplete"},{country:"Ecuador",iso3Code:"ECU",iso2Code:"EC",datasetCode:"ec-address-ed",searchType:"singleline, validate"},{country:"Ecuador",iso3Code:"ECU",iso2Code:"EC",datasetCode:"ec-address-eh",searchType:"autocomplete"},{country:"Egypt",iso3Code:"EGY",iso2Code:"EG",datasetCode:"eg-address-ed",searchType:"singleline, validate"},{country:"Egypt",iso3Code:"EGY",iso2Code:"EG",datasetCode:"eg-address-eh",searchType:"autocomplete"},{country:"El Salvador",iso3Code:"SLV",iso2Code:"SV",datasetCode:"sv-address-ed",searchType:"singleline, validate"},{country:"El Salvador",iso3Code:"SLV",iso2Code:"SV",datasetCode:"sv-address-eh",searchType:"autocomplete"},{country:"Equatorial Guinea",iso3Code:"GNQ",iso2Code:"GQ",datasetCode:"gq-address-ed",searchType:"singleline, validate"},{country:"Equatorial Guinea",iso3Code:"GNQ",iso2Code:"GQ",datasetCode:"gq-address-eh",searchType:"autocomplete"},{country:"Eritrea",iso3Code:"ERI",iso2Code:"ER",datasetCode:"er-address-ed",searchType:"singleline, validate"},{country:"Eritrea",iso3Code:"ERI",iso2Code:"ER",datasetCode:"er-address-eh",searchType:"autocomplete"},{country:"Estonia",iso3Code:"EST",iso2Code:"EE",datasetCode:"ee-address-ed",searchType:"singleline, validate"},{country:"Estonia",iso3Code:"EST",iso2Code:"EE",datasetCode:"ee-address-eh",searchType:"autocomplete"},{country:"Ethiopia",iso3Code:"ETH",iso2Code:"ET",datasetCode:"et-address-ed",searchType:"singleline, validate"},{country:"Ethiopia",iso3Code:"ETH",iso2Code:"ET",datasetCode:"et-address-eh",searchType:"autocomplete"},{country:"Falkland Islands (Malvinas)",iso3Code:"FLK",iso2Code:"FK",datasetCode:"fk-address-eh",searchType:"autocomplete"},{country:"Faroe Islands",iso3Code:"FRO",iso2Code:"FO",datasetCode:"fo-address-ed",searchType:"singleline, validate"},{country:"Faroe Islands",iso3Code:"FRO",iso2Code:"FO",datasetCode:"fo-address-eh",searchType:"autocomplete"},{country:"Fiji",iso3Code:"FJI",iso2Code:"FJ",datasetCode:"fj-address-ed",searchType:"singleline, validate"},{country:"Fiji",iso3Code:"FJI",iso2Code:"FJ",datasetCode:"fj-address-eh",searchType:"autocomplete"},{country:"Finland",iso3Code:"FIN",iso2Code:"FI",datasetCode:"fi-address",searchType:"singleline, typedown"},{country:"Finland",iso3Code:"FIN",iso2Code:"FI",datasetCode:"fi-address-ed",searchType:"validate"},{country:"Finland",iso3Code:"FIN",iso2Code:"FI",datasetCode:"fi-address-eh",searchType:"autocomplete"},{country:"France Street Level",iso3Code:"FRA",iso2Code:"FR",datasetCode:"fr-address-streetlevel",searchType:"singleline, typedown, validate"},{country:"France Sub-Premises Level",iso3Code:"FRA",iso2Code:"FR",datasetCode:"fr-additional-hexaline3",searchType:"autocomplete, singleline, typedown"},{country:"France Premises Level",iso3Code:"FRA",iso2Code:"FR",datasetCode:"fr-address",searchType:"singleline, typedown, validate"},{country:"French Guiana",iso3Code:"GUF",iso2Code:"GF",datasetCode:"gf-address-eh",searchType:"autocomplete"},{country:"French Polynesia",iso3Code:"PYF",iso2Code:"PF",datasetCode:"pf-address-eh",searchType:"autocomplete"},{country:"Gabon",iso3Code:"GAB",iso2Code:"GA",datasetCode:"ga-address-ed",searchType:"singleline, validate"},{country:"Gabon",iso3Code:"GAB",iso2Code:"GA",datasetCode:"ga-address-eh",searchType:"autocomplete"},{country:"Gambia",iso3Code:"GMB",iso2Code:"GM",datasetCode:"gm-address-ed",searchType:"singleline, validate"},{country:"Gambia",iso3Code:"GMB",iso2Code:"GM",datasetCode:"gm-address-eh",searchType:"autocomplete"},{country:"Georgia",iso3Code:"GEO",iso2Code:"GE",datasetCode:"ge-address-ed",searchType:"singleline, validate"},{country:"Georgia",iso3Code:"GEO",iso2Code:"GE",datasetCode:"ge-address-eh",searchType:"autocomplete"},{country:"Germany",iso3Code:"DEU",iso2Code:"DE",datasetCode:"de-address",searchType:"singleline, typedown, validate"},{country:"Germany",iso3Code:"DEU",iso2Code:"DE",datasetCode:"de-address-ed",searchType:"validate"},{country:"Germany",iso3Code:"DEU",iso2Code:"DE",datasetCode:"de-address-eh",searchType:"autocomplete"},{country:"Ghana",iso3Code:"GHA",iso2Code:"GH",datasetCode:"gh-address-ed",searchType:"singleline, validate"},{country:"Ghana",iso3Code:"GHA",iso2Code:"GH",datasetCode:"gh-address-eh",searchType:"autocomplete"},{country:"Gibraltar",iso3Code:"GIB",iso2Code:"GI",datasetCode:"gi-address-eh",searchType:"autocomplete"},{country:"Greece",iso3Code:"GRC",iso2Code:"GR",datasetCode:"gr-address-ed",searchType:"singleline, validate"},{country:"Greece",iso3Code:"GRC",iso2Code:"GR",datasetCode:"gr-address-eh",searchType:"autocomplete"},{country:"Greenland",iso3Code:"GRL",iso2Code:"GL",datasetCode:"gl-address-ed",searchType:"singleline, validate"},{country:"Greenland",iso3Code:"GRL",iso2Code:"GL",datasetCode:"gl-address-eh",searchType:"autocomplete"},{country:"Grenada",iso3Code:"GRD",iso2Code:"GD",datasetCode:"gd-address-ed",searchType:"singleline, validate"},{country:"Grenada",iso3Code:"GRD",iso2Code:"GD",datasetCode:"gd-address-eh",searchType:"autocomplete"},{country:"Guadeloupe",iso3Code:"GLP",iso2Code:"GP",datasetCode:"gp-address-eh",searchType:"autocomplete"},{country:"Guam",iso3Code:"GUM",iso2Code:"GU",datasetCode:"gu-address-eh",searchType:"autocomplete"},{country:"Guatemala",iso3Code:"GTM",iso2Code:"GT",datasetCode:"gt-address-ed",searchType:"singleline, validate"},{country:"Guatemala",iso3Code:"GTM",iso2Code:"GT",datasetCode:"gt-address-eh",searchType:"autocomplete"},{country:"Guinea",iso3Code:"GIN",iso2Code:"GN",datasetCode:"gn-address-ed",searchType:"singleline, validate"},{country:"Guinea",iso3Code:"GIN",iso2Code:"GN",datasetCode:"gn-address-eh",searchType:"autocomplete"},{country:"Guinea-Bissau",iso3Code:"GNB",iso2Code:"GW",datasetCode:"gw-address-ed",searchType:"singleline, validate"},{country:"Guinea-Bissau",iso3Code:"GNB",iso2Code:"GW",datasetCode:"gw-address-eh",searchType:"autocomplete"},{country:"Guyana",iso3Code:"GUY",iso2Code:"GY",datasetCode:"gy-address-ed",searchType:"singleline, validate"},{country:"Guyana",iso3Code:"GUY",iso2Code:"GY",datasetCode:"gy-address-eh",searchType:"autocomplete"},{country:"Haiti",iso3Code:"HTI",iso2Code:"HT",datasetCode:"ht-address-ed",searchType:"singleline, validate"},{country:"Haiti",iso3Code:"HTI",iso2Code:"HT",datasetCode:"ht-address-eh",searchType:"autocomplete"},{country:"Honduras",iso3Code:"HND",iso2Code:"HN",datasetCode:"hn-address-ed",searchType:"singleline, validate"},{country:"Honduras",iso3Code:"HND",iso2Code:"HN",datasetCode:"hn-address-eh",searchType:"autocomplete"},{country:"Hong Kong",iso3Code:"HKG",iso2Code:"HK",datasetCode:"hk-address-ed",searchType:"singleline, validate"},{country:"Hong Kong",iso3Code:"HKG",iso2Code:"HK",datasetCode:"hk-address-eh",searchType:"autocomplete"},{country:"Hungary",iso3Code:"HUN",iso2Code:"HU",datasetCode:"hu-address-ed",searchType:"singleline, validate"},{country:"Hungary",iso3Code:"HUN",iso2Code:"HU",datasetCode:"hu-address-eh",searchType:"autocomplete"},{country:"Iceland",iso3Code:"ISL",iso2Code:"IS",datasetCode:"is-address-ed",searchType:"singleline, validate"},{country:"Iceland",iso3Code:"ISL",iso2Code:"IS",datasetCode:"is-address-eh",searchType:"autocomplete"},{country:"India",iso3Code:"IND",iso2Code:"IN",datasetCode:"in-address-ed",searchType:"singleline, validate"},{country:"India",iso3Code:"IND",iso2Code:"IN",datasetCode:"in-address-eh",searchType:"autocomplete"},{country:"Indonesia",iso3Code:"IDN",iso2Code:"ID",datasetCode:"id-address-ed",searchType:"singleline, validate"},{country:"Indonesia",iso3Code:"IDN",iso2Code:"ID",datasetCode:"id-address-eh",searchType:"autocomplete"},{country:"Iran, Islamic Republic of",iso3Code:"IRN",iso2Code:"IR",datasetCode:"ir-address-ed",searchType:"singleline, validate"},{country:"Iran, Islamic Republic of",iso3Code:"IRN",iso2Code:"IR",datasetCode:"ir-address-eh",searchType:"autocomplete"},{country:"Iraq",iso3Code:"IRQ",iso2Code:"IQ",datasetCode:"iq-address-ed",searchType:"singleline, validate"},{country:"Iraq",iso3Code:"IRQ",iso2Code:"IQ",datasetCode:"iq-address-eh",searchType:"autocomplete"},{country:"Ireland",iso3Code:"IRL",iso2Code:"IE",datasetCode:"ie-address",searchType:"singleline, typedown"},{country:"Ireland",iso3Code:"IRL",iso2Code:"IE",datasetCode:"ie-address-ed",searchType:"singleline, validate"},{country:"Ireland",iso3Code:"IRL",iso2Code:"IE",datasetCode:"ie-address-eh",searchType:"autocomplete"},{country:"Ireland Eircode",iso3Code:"IRL",iso2Code:"IE",datasetCode:"ie-additional-eircode",searchType:"autocomplete"},{country:"Ireland ECAD",iso3Code:"IRL",iso2Code:"IE",datasetCode:"ie-address-ecad",searchType:"autocomplete"},{country:"Israel",iso3Code:"ISR",iso2Code:"IL",datasetCode:"il-address-ed",searchType:"singleline, validate"},{country:"Israel",iso3Code:"ISR",iso2Code:"IL",datasetCode:"il-address-eh",searchType:"autocomplete"},{country:"Italy",iso3Code:"ITA",iso2Code:"IT",datasetCode:"it-address-ed",searchType:"singleline, validate"},{country:"Italy",iso3Code:"ITA",iso2Code:"IT",datasetCode:"it-address-eh",searchType:"autocomplete"},{country:"Jamaica",iso3Code:"JAM",iso2Code:"JM",datasetCode:"jm-address-ed",searchType:"singleline, validate"},{country:"Jamaica",iso3Code:"JAM",iso2Code:"JM",datasetCode:"jm-address-eh",searchType:"autocomplete"},{country:"Japan",iso3Code:"JPN",iso2Code:"JP",datasetCode:"jp-address-ed",searchType:"singleline, validate"},{country:"Japan",iso3Code:"JPN",iso2Code:"JP",datasetCode:"jp-address",searchType:"singleline, validate"},{country:"Jordan",iso3Code:"JOR",iso2Code:"JO",datasetCode:"jo-address-ed",searchType:"singleline, validate"},{country:"Jordan",iso3Code:"JOR",iso2Code:"JO",datasetCode:"jo-address-eh",searchType:"autocomplete"},{country:"Kazakhstan",iso3Code:"KAZ",iso2Code:"KZ",datasetCode:"kz-address-ed",searchType:"singleline, validate"},{country:"Kazakhstan",iso3Code:"KAZ",iso2Code:"KZ",datasetCode:"kz-address-eh",searchType:"autocomplete"},{country:"Kenya",iso3Code:"KEN",iso2Code:"KE",datasetCode:"ke-address-ed",searchType:"singleline, validate"},{country:"Kenya",iso3Code:"KEN",iso2Code:"KE",datasetCode:"ke-address-eh",searchType:"autocomplete"},{country:"Kiribati",iso3Code:"KIR",iso2Code:"KI",datasetCode:"ki-address-ed",searchType:"singleline, validate"},{country:"Kiribati",iso3Code:"KIR",iso2Code:"KI",datasetCode:"ki-address-eh",searchType:"autocomplete"},{country:"Korea, Democratic People's Republic of",iso3Code:"PRK",iso2Code:"KP",datasetCode:"kp-address-ed",searchType:"singleline, validate"},{country:"Korea, Democratic People's Republic of",iso3Code:"PRK",iso2Code:"KP",datasetCode:"kp-address-eh",searchType:"autocomplete"},{country:"Korea, Republic of",iso3Code:"KOR",iso2Code:"KR",datasetCode:"kr-address-ed",searchType:"singleline, validate"},{country:"Korea, Republic of",iso3Code:"KOR",iso2Code:"KR",datasetCode:"kr-address-eh",searchType:"autocomplete"},{country:"Kosovo",iso3Code:"KOS",iso2Code:"XK",datasetCode:"kv-address-eh",searchType:"autocomplete"},{country:"Kuwait",iso3Code:"KWT",iso2Code:"KW",datasetCode:"kw-address-ed",searchType:"singleline, validate"},{country:"Kuwait",iso3Code:"KWT",iso2Code:"KW",datasetCode:"kw-address-eh",searchType:"autocomplete"},{country:"Kyrgyzstan",iso3Code:"KGZ",iso2Code:"KG",datasetCode:"kg-address-ed",searchType:"singleline, validate"},{country:"Kyrgyzstan",iso3Code:"KGZ",iso2Code:"KG",datasetCode:"kg-address-eh",searchType:"autocomplete"},{country:"Laos",iso3Code:"LAO",iso2Code:"LA",datasetCode:"la-address-ed",searchType:"singleline, validate"},{country:"Laos",iso3Code:"LAO",iso2Code:"LA",datasetCode:"la-address-eh",searchType:"autocomplete"},{country:"Latvia",iso3Code:"LVA",iso2Code:"LV",datasetCode:"lv-address-ed",searchType:"singleline, validate"},{country:"Latvia",iso3Code:"LVA",iso2Code:"LV",datasetCode:"lv-address-eh",searchType:"autocomplete"},{country:"Lebanon",iso3Code:"LBN",iso2Code:"LB",datasetCode:"lb-address-ed",searchType:"singleline, validate"},{country:"Lebanon",iso3Code:"LBN",iso2Code:"LB",datasetCode:"lb-address-eh",searchType:"autocomplete"},{country:"Lesotho",iso3Code:"LSO",iso2Code:"LS",datasetCode:"ls-address-ed",searchType:"singleline, validate"},{country:"Lesotho",iso3Code:"LSO",iso2Code:"LS",datasetCode:"ls-address-eh",searchType:"autocomplete"},{country:"Liberia",iso3Code:"LBR",iso2Code:"LR",datasetCode:"lr-address-ed",searchType:"singleline, validate"},{country:"Liberia",iso3Code:"LBR",iso2Code:"LR",datasetCode:"lr-address-eh",searchType:"autocomplete"},{country:"Libya",iso3Code:"LBY",iso2Code:"LY",datasetCode:"ly-address-ed",searchType:"singleline, validate"},{country:"Libya",iso3Code:"LBY",iso2Code:"LY",datasetCode:"ly-address-eh",searchType:"autocomplete"},{country:"Liechtenstein",iso3Code:"LIE",iso2Code:"LI",datasetCode:"li-address-ed",searchType:"singleline, validate"},{country:"Liechtenstein",iso3Code:"LIE",iso2Code:"LI",datasetCode:"li-address-eh",searchType:"autocomplete"},{country:"Lithuania",iso3Code:"LTU",iso2Code:"LT",datasetCode:"lt-address-ed",searchType:"singleline, validate"},{country:"Lithuania",iso3Code:"LTU",iso2Code:"LT",datasetCode:"lt-address-eh",searchType:"autocomplete"},{country:"Luxembourg",iso3Code:"LUX",iso2Code:"LU",datasetCode:"lu-address-ed",searchType:"singleline, validate"},{country:"Luxembourg",iso3Code:"LUX",iso2Code:"LU",datasetCode:"lu-address-eh",searchType:"autocomplete"},{country:"Macau",iso3Code:"MAC",iso2Code:"MO",datasetCode:"lv-address-ed",searchType:"singleline, validate"},{country:"Macau",iso3Code:"MAC",iso2Code:"MO",datasetCode:"lv-address-eh",searchType:"autocomplete"},{country:"Madagascar",iso3Code:"MDG",iso2Code:"MG",datasetCode:"mo-address-ed",searchType:"singleline, validate"},{country:"Madagascar",iso3Code:"MDG",iso2Code:"MG",datasetCode:"mo-address-eh",searchType:"autocomplete"},{country:"Malawi",iso3Code:"MWI",iso2Code:"MW",datasetCode:"mw-address-ed",searchType:"singleline, validate"},{country:"Malawi",iso3Code:"MWI",iso2Code:"MW",datasetCode:"mw-address-eh",searchType:"autocomplete"},{country:"Malaysia",iso3Code:"MYS",iso2Code:"MY",datasetCode:"my-address-ed",searchType:"singleline, validate"},{country:"Malaysia",iso3Code:"MYS",iso2Code:"MY",datasetCode:"my-address-eh",searchType:"autocomplete"},{country:"Maldives",iso3Code:"MDV",iso2Code:"MV",datasetCode:"mv-address-ed",searchType:"singleline, validate"},{country:"Maldives",iso3Code:"MDV",iso2Code:"MV",datasetCode:"mv-address-eh",searchType:"autocomplete"},{country:"Mali",iso3Code:"MLI",iso2Code:"ML",datasetCode:"ml-address-ed",searchType:"singleline, validate"},{country:"Mali",iso3Code:"MLI",iso2Code:"ML",datasetCode:"ml-address-eh",searchType:"autocomplete"},{country:"Malta",iso3Code:"MLT",iso2Code:"MT",datasetCode:"mt-address-ed",searchType:"singleline, validate"},{country:"Malta",iso3Code:"MLT",iso2Code:"MT",datasetCode:"mt-address-eh",searchType:"autocomplete"},{country:"Marshall Islands",iso3Code:"MHL",iso2Code:"MH",datasetCode:"mh-address-eh",searchType:"autocomplete"},{country:"Martinique",iso3Code:"MTQ",iso2Code:"MQ",datasetCode:"mq-address-eh",searchType:"autocomplete"},{country:"Mauritania",iso3Code:"MRT",iso2Code:"MR",datasetCode:"mr-address-ed",searchType:"singleline, validate"},{country:"Mauritania",iso3Code:"MRT",iso2Code:"MR",datasetCode:"mr-address-eh",searchType:"autocomplete"},{country:"Mauritius",iso3Code:"MUS",iso2Code:"MU",datasetCode:"mu-address-ed",searchType:"singleline, validate"},{country:"Mauritius",iso3Code:"MUS",iso2Code:"MU",datasetCode:"mu-address-eh",searchType:"autocomplete"},{country:"Mayotte",iso3Code:"MYT",iso2Code:"YT",datasetCode:"yt-address-eh",searchType:"autocomplete"},{country:"Mexico",iso3Code:"MEX",iso2Code:"MX",datasetCode:"mx-address-ed",searchType:"singleline, validate"},{country:"Mexico",iso3Code:"MEX",iso2Code:"MX",datasetCode:"mx-address-eh",searchType:"autocomplete"},{country:"Micronesia, Federated States of",iso3Code:"FSM",iso2Code:"FM",datasetCode:"fm-address-eh",searchType:"autocomplete"},{country:"Moldova",iso3Code:"MDA",iso2Code:"MD",datasetCode:"md-address-ed",searchType:"singleline, validate"},{country:"Moldova",iso3Code:"MDA",iso2Code:"MD",datasetCode:"md-address-eh",searchType:"autocomplete"},{country:"Monaco",iso3Code:"MCO",iso2Code:"MC",datasetCode:"mc-address-ed",searchType:"singleline, validate"},{country:"Monaco",iso3Code:"MCO",iso2Code:"MC",datasetCode:"mc-address-eh",searchType:"autocomplete"},{country:"Mongolia",iso3Code:"MNG",iso2Code:"MN",datasetCode:"mn-address-ed",searchType:"singleline, validate"},{country:"Mongolia",iso3Code:"MNG",iso2Code:"MN",datasetCode:"mn-address-eh",searchType:"autocomplete"},{country:"Montenegro",iso3Code:"MNE",iso2Code:"ME",datasetCode:"me-address-ed",searchType:"singleline, validate"},{country:"Montenegro",iso3Code:"MNE",iso2Code:"ME",datasetCode:"me-address-eh",searchType:"autocomplete"},{country:"Montserrat",iso3Code:"MSR",iso2Code:"MS",datasetCode:"ms-address-eh",searchType:"autocomplete"},{country:"Morocco",iso3Code:"MAR",iso2Code:"MA",datasetCode:"ma-address-ed",searchType:"singleline, validate"},{country:"Morocco",iso3Code:"MAR",iso2Code:"MA",datasetCode:"ma-address-eh",searchType:"autocomplete"},{country:"Mozambique",iso3Code:"MOZ",iso2Code:"MZ",datasetCode:"mz-address-ed",searchType:"singleline, validate"},{country:"Mozambique",iso3Code:"MOZ",iso2Code:"MZ",datasetCode:"mz-address-eh",searchType:"autocomplete"},{country:"Myanmar",iso3Code:"MMR",iso2Code:"MM",datasetCode:"mm-address-ed",searchType:"singleline, validate"},{country:"Myanmar",iso3Code:"MMR",iso2Code:"MM",datasetCode:"mm-address-eh",searchType:"autocomplete"},{country:"Namibia",iso3Code:"NAM",iso2Code:"NA",datasetCode:"na-address-ed",searchType:"singleline, validate"},{country:"Namibia",iso3Code:"NAM",iso2Code:"NA",datasetCode:"na-address-eh",searchType:"autocomplete"},{country:"Nauru",iso3Code:"NRU",iso2Code:"NR",datasetCode:"nr-address-ed",searchType:"singleline, validate"},{country:"Nauru",iso3Code:"NRU",iso2Code:"NR",datasetCode:"nr-address-eh",searchType:"autocomplete"},{country:"Nepal",iso3Code:"NPL",iso2Code:"NP",datasetCode:"np-address-ed",searchType:"singleline, validate"},{country:"Nepal",iso3Code:"NPL",iso2Code:"NP",datasetCode:"np-address-eh",searchType:"autocomplete"},{country:"Netherlands",iso3Code:"NLD",iso2Code:"NL",datasetCode:"nl-address-ed",searchType:"singleline, validate"},{country:"Netherlands",iso3Code:"NLD",iso2Code:"NL",datasetCode:"nl-address-eh",searchType:"autocomplete"},{country:"New Caledonia",iso3Code:"NCL",iso2Code:"NC",datasetCode:"nc-address-eh",searchType:"autocomplete"},{country:"New Zealand DataFusion",iso3Code:"NZL",iso2Code:"NZ",datasetCode:"nz-additional-datafusion",searchType:"autocomplete, singleline, typedown, validate"},{country:"New Zealand Postal Address",iso3Code:"NZL",iso2Code:"NZ",datasetCode:"nz-address",searchType:"autocomplete, singleline, typedown, validate"},{country:"Nicaragua",iso3Code:"NIC",iso2Code:"NI",datasetCode:"ni-address-ed",searchType:"singleline, validate"},{country:"Nicaragua",iso3Code:"NIC",iso2Code:"NI",datasetCode:"ni-address-eh",searchType:"autocomplete"},{country:"Niger",iso3Code:"NER",iso2Code:"NE",datasetCode:"ne-address-ed",searchType:"singleline, validate"},{country:"Niger",iso3Code:"NER",iso2Code:"NE",datasetCode:"ne-address-eh",searchType:"autocomplete"},{country:"Nigeria",iso3Code:"NGA",iso2Code:"NG",datasetCode:"ng-address-ed",searchType:"singleline, validate"},{country:"Nigeria",iso3Code:"NGA",iso2Code:"NG",datasetCode:"ng-address-eh",searchType:"autocomplete"},{country:"Niue",iso3Code:"NIU",iso2Code:"NU",datasetCode:"nu-address-ed",searchType:"singleline, validate"},{country:"Norfolk Island",iso3Code:"NFK",iso2Code:"NF",datasetCode:"nf-address-ed",searchType:"singleline, validate"},{country:"Norfolk Island",iso3Code:"NFK",iso2Code:"NF",datasetCode:"nf-address-eh",searchType:"autocomplete"},{country:"North Macedonia",iso3Code:"MKD",iso2Code:"MK",datasetCode:"mk-address-ed",searchType:"singleline, validate"},{country:"North Macedonia",iso3Code:"MKD",iso2Code:"MK",datasetCode:"mk-address-eh",searchType:"autocomplete"},{country:"Northern Mariana Islands",iso3Code:"MNP",iso2Code:"MP",datasetCode:"mp-address-eh",searchType:"autocomplete"},{country:"Norway",iso3Code:"NOR",iso2Code:"NO",datasetCode:"no-address-ed",searchType:"validate"},{country:"Norway",iso3Code:"NOR",iso2Code:"NO",datasetCode:"no-address-eh",searchType:"autocomplete"},{country:"Oman",iso3Code:"OMN",iso2Code:"OM",datasetCode:"om-address-ed",searchType:"singleline, validate"},{country:"Oman",iso3Code:"OMN",iso2Code:"OM",datasetCode:"om-address-eh",searchType:"autocomplete"},{country:"Pakistan",iso3Code:"PAK",iso2Code:"PK",datasetCode:"pk-address-ed",searchType:"singleline, validate"},{country:"Pakistan",iso3Code:"PAK",iso2Code:"PK",datasetCode:"pk-address-eh",searchType:"autocomplete"},{country:"Palau",iso3Code:"PLW",iso2Code:"PW",datasetCode:"pw-address-eh",searchType:"autocomplete"},{country:"Palestine",iso3Code:"PSE",iso2Code:"PS",datasetCode:"ps-address-eh",searchType:"autocomplete"},{country:"Panama",iso3Code:"PAN",iso2Code:"PA",datasetCode:"pa-address-ed",searchType:"singleline, validate"},{country:"Panama",iso3Code:"PAN",iso2Code:"PA",datasetCode:"pa-address-eh",searchType:"autocomplete"},{country:"Papua New Guinea",iso3Code:"PNG",iso2Code:"PG",datasetCode:"pg-address-ed",searchType:"singleline, validate"},{country:"Papua New Guinea",iso3Code:"PNG",iso2Code:"PG",datasetCode:"pg-address-eh",searchType:"autocomplete"},{country:"Paraguay",iso3Code:"PRY",iso2Code:"PY",datasetCode:"py-address-ed",searchType:"singleline, validate"},{country:"Paraguay",iso3Code:"PRY",iso2Code:"PY",datasetCode:"py-address-eh",searchType:"autocomplete"},{country:"Peru",iso3Code:"PER",iso2Code:"PE",datasetCode:"pe-address-ed",searchType:"singleline, validate"},{country:"Peru",iso3Code:"PER",iso2Code:"PE",datasetCode:"pe-address-eh",searchType:"autocomplete"},{country:"Philippines",iso3Code:"PHL",iso2Code:"PH",datasetCode:"ph-address-ed",searchType:"singleline, validate"},{country:"Philippines",iso3Code:"PHL",iso2Code:"PH",datasetCode:"ph-address-eh",searchType:"autocomplete"},{country:"Pitcairn Islands",iso3Code:"PCN",iso2Code:"PN",datasetCode:"pn-address-eh",searchType:"autocomplete"},{country:"Poland",iso3Code:"POL",iso2Code:"PL",datasetCode:"pl-address-ed",searchType:"singleline, validate"},{country:"Poland",iso3Code:"POL",iso2Code:"PL",datasetCode:"pl-address-eh",searchType:"autocomplete"},{country:"Portugal",iso3Code:"PRT",iso2Code:"PT",datasetCode:"pt-address-ed",searchType:"singleline, validate"},{country:"Portugal",iso3Code:"PRT",iso2Code:"PT",datasetCode:"pt-address-eh",searchType:"autocomplete"},{country:"Qatar",iso3Code:"QAT",iso2Code:"QA",datasetCode:"qa-address-ed",searchType:"singleline, validate"},{country:"Qatar",iso3Code:"QAT",iso2Code:"QA",datasetCode:"qa-address-eh",searchType:"autocomplete"},{country:"Romania",iso3Code:"ROU",iso2Code:"RO",datasetCode:"ro-address-ed",searchType:"singleline, validate"},{country:"Romania",iso3Code:"ROU",iso2Code:"RO",datasetCode:"ro-address-eh",searchType:"autocomplete"},{country:"Russian Federation",iso3Code:"RUS",iso2Code:"RU",datasetCode:"ru-address-ed",searchType:"singleline, validate"},{country:"Russian Federation",iso3Code:"RUS",iso2Code:"RU",datasetCode:"ru-address-eh",searchType:"autocomplete"},{country:"Rwanda",iso3Code:"RWA",iso2Code:"RW",datasetCode:"rw-address-ed",searchType:"singleline, validate"},{country:"Rwanda",iso3Code:"RWA",iso2Code:"RW",datasetCode:"rw-address-eh",searchType:"autocomplete"},{country:"Réunion",iso3Code:"REU",iso2Code:"RE",datasetCode:"re-address-eh",searchType:"autocomplete"},{country:"Saint Barthélemy",iso3Code:"BLM",iso2Code:"BL",datasetCode:"bl-address-eh",searchType:"autocomplete"},{country:"Saint Helena",iso3Code:"SHN",iso2Code:"SH",datasetCode:"sh-address-eh",searchType:"autocomplete"},{country:"Saint Kitts and Nevis",iso3Code:"KNA",iso2Code:"KN",datasetCode:"kn-address-ed",searchType:"singleline, validate"},{country:"Saint Kitts and Nevis",iso3Code:"KNA",iso2Code:"KN",datasetCode:"kn-address-eh",searchType:"autocomplete"},{country:"Saint Lucia",iso3Code:"LCA",iso2Code:"LC",datasetCode:"lc-address-eh",searchType:"autocomplete"},{country:"Saint Pierre and Miquelon",iso3Code:"SPM",iso2Code:"PM",datasetCode:"pm-address-eh",searchType:"autocomplete"},{country:"Saint Vincent and the Grenadines",iso3Code:"VCT",iso2Code:"VC",datasetCode:"vc-address-ed",searchType:"singleline, validate"},{country:"Saint Vincent and the Grenadines",iso3Code:"VCT",iso2Code:"VC",datasetCode:"vc-address-eh",searchType:"autocomplete"},{country:"Samoa",iso3Code:"WSM",iso2Code:"WS",datasetCode:"ws-address-ed",searchType:"singleline, validate"},{country:"Samoa",iso3Code:"WSM",iso2Code:"WS",datasetCode:"ws-address-eh",searchType:"autocomplete"},{country:"San Marino",iso3Code:"SMR",iso2Code:"SM",datasetCode:"sm-address-ed",searchType:"singleline, validate"},{country:"San Marino",iso3Code:"SMR",iso2Code:"SM",datasetCode:"sm-address-eh",searchType:"autocomplete"},{country:"Sao Tome and Principe",iso3Code:"STP",iso2Code:"ST",datasetCode:"st-address-ed",searchType:"singleline, validate"},{country:"Sao Tome and Principe",iso3Code:"STP",iso2Code:"ST",datasetCode:"st-address-eh",searchType:"autocomplete"},{country:"Saudi Arabia",iso3Code:"SAU",iso2Code:"SA",datasetCode:"sa-address-ed",searchType:"singleline, validate"},{country:"Saudi Arabia",iso3Code:"SAU",iso2Code:"SA",datasetCode:"sa-address-eh",searchType:"autocomplete"},{country:"Senegal",iso3Code:"SEN",iso2Code:"SN",datasetCode:"sn-address-ed",searchType:"singleline, validate"},{country:"Senegal",iso3Code:"SEN",iso2Code:"SN",datasetCode:"sn-address-eh",searchType:"autocomplete"},{country:"Serbia",iso3Code:"SRB",iso2Code:"RS",datasetCode:"rs-address-ed",searchType:"singleline, validate"},{country:"Serbia",iso3Code:"SRB",iso2Code:"RS",datasetCode:"rs-address-eh",searchType:"autocomplete"},{country:"Seychelles",iso3Code:"SYC",iso2Code:"SC",datasetCode:"sc-address-ed",searchType:"singleline, validate"},{country:"Seychelles",iso3Code:"SYC",iso2Code:"SC",datasetCode:"sc-address-eh",searchType:"autocomplete"},{country:"Sierra Leone",iso3Code:"SLE",iso2Code:"SL",datasetCode:"sl-address-ed",searchType:"singleline, validate"},{country:"Sierra Leone",iso3Code:"SLE",iso2Code:"SL",datasetCode:"sl-address-eh",searchType:"autocomplete"},{country:"Singapore",iso3Code:"SGP",iso2Code:"SG",datasetCode:"sg-address",searchType:"autocomplete, singleline, typedown, validate"},{country:"Sint Maarten",iso3Code:"SXM",iso2Code:"SX",datasetCode:"sx-address-ed",searchType:"singleline, validate"},{country:"Sint Maarten",iso3Code:"SXM",iso2Code:"SX",datasetCode:"sx-address-eh",searchType:"autocomplete"},{country:"Slovakia",iso3Code:"SVK",iso2Code:"SK",datasetCode:"sk-address-ed",searchType:"singleline, validate"},{country:"Slovakia",iso3Code:"SVK",iso2Code:"SK",datasetCode:"sk-address-eh",searchType:"autocomplete"},{country:"Slovenia",iso3Code:"SVN",iso2Code:"SI",datasetCode:"si-address-ed",searchType:"singleline, validate"},{country:"Slovenia",iso3Code:"SVN",iso2Code:"SI",datasetCode:"si-address-eh",searchType:"autocomplete"},{country:"Solomon Islands",iso3Code:"SLB",iso2Code:"SB",datasetCode:"sb-address-ed",searchType:"singleline, validate"},{country:"Solomon Islands",iso3Code:"SLB",iso2Code:"SB",datasetCode:"sb-address-eh",searchType:"autocomplete"},{country:"Somalia",iso3Code:"SOM",iso2Code:"SO",datasetCode:"so-address-ed",searchType:"singleline, validate"},{country:"Somalia",iso3Code:"SOM",iso2Code:"SO",datasetCode:"so-address-eh",searchType:"autocomplete"},{country:"South Africa",iso3Code:"ZAF",iso2Code:"ZA",datasetCode:"za-address-ed",searchType:"singleline, validate"},{country:"South Africa",iso3Code:"ZAF",iso2Code:"ZA",datasetCode:"za-address-eh",searchType:"autocomplete"},{country:"South Georgia and the South Sandwich Islands",iso3Code:"SGS",iso2Code:"GS",datasetCode:"gs-address-eh",searchType:"autocomplete"},{country:"South Sudan",iso3Code:"SSD",iso2Code:"SS",datasetCode:"ss-address-ed",searchType:"singleline, validate"},{country:"South Sudan",iso3Code:"SSD",iso2Code:"SS",datasetCode:"ss-address-eh",searchType:"autocomplete"},{country:"Spain",iso3Code:"ESP",iso2Code:"ES",datasetCode:"es-address",searchType:"singleline, typedown"},{country:"Spain",iso3Code:"ESP",iso2Code:"ES",datasetCode:"es-address-ed",searchType:"validate"},{country:"Spain",iso3Code:"ESP",iso2Code:"ES",datasetCode:"es-address-eh",searchType:"autocomplete"},{country:"Sri Lanka",iso3Code:"LKA",iso2Code:"LK",datasetCode:"lk-address-ed",searchType:"singleline, validate"},{country:"Sudan",iso3Code:"SDN",iso2Code:"SD",datasetCode:"sd-address-ed",searchType:"singleline, validate"},{country:"Sudan",iso3Code:"SDN",iso2Code:"SD",datasetCode:"sd-address-eh",searchType:"autocomplete"},{country:"Suriname",iso3Code:"SUR",iso2Code:"SR",datasetCode:"sr-address-ed",searchType:"singleline, validate"},{country:"Suriname",iso3Code:"SUR",iso2Code:"SR",datasetCode:"sr-address-eh",searchType:"autocomplete"},{country:"Svalbard and Jan Mayen Islands",iso3Code:"SJM",iso2Code:"SJ",datasetCode:"sj-address-eh",searchType:"autocomplete"},{country:"Swaziland (Eswatini)",iso3Code:"SWZ",iso2Code:"SZ",datasetCode:"sz-address-ed",searchType:"singleline, validate"},{country:"Swaziland (Eswatini)",iso3Code:"SWZ",iso2Code:"SZ",datasetCode:"sz-address-eh",searchType:"autocomplete"},{country:"Sweden",iso3Code:"SWE",iso2Code:"SE",datasetCode:"se-address",searchType:"singleline, typedown"},{country:"Sweden",iso3Code:"SWE",iso2Code:"SE",datasetCode:"se-address-ed",searchType:"validate"},{country:"Sweden",iso3Code:"SWE",iso2Code:"SE",datasetCode:"se-address-eh",searchType:"autocomplete"},{country:"Switzerland",iso3Code:"CHE",iso2Code:"CH",datasetCode:"ch-address",searchType:"singleline, typedown"},{country:"Switzerland",iso3Code:"CHE",iso2Code:"CH",datasetCode:"ch-address-ed",searchType:"validate"},{country:"Switzerland",iso3Code:"CHE",iso2Code:"CH",datasetCode:"ch-address-eh",searchType:"autocomplete"},{country:"Syria",iso3Code:"SYR",iso2Code:"SY",datasetCode:"sy-address-ed",searchType:"singleline, validate"},{country:"Syria",iso3Code:"SYR",iso2Code:"SY",datasetCode:"sy-address-eh",searchType:"autocomplete"},{country:"Taiwan",iso3Code:"TWN",iso2Code:"TW",datasetCode:"tw-address-ed",searchType:"singleline, validate"},{country:"Taiwan",iso3Code:"TWN",iso2Code:"TW",datasetCode:"tw-address-eh",searchType:"autocomplete"},{country:"Tajikistan",iso3Code:"TJK",iso2Code:"TJ",datasetCode:"tj-address-ed",searchType:"singleline, validate"},{country:"Tajikistan",iso3Code:"TJK",iso2Code:"TJ",datasetCode:"tj-address-eh",searchType:"autocomplete"},{country:"Tanzania",iso3Code:"TZA",iso2Code:"TZ",datasetCode:"tz-address-ed",searchType:"singleline, validate"},{country:"Tanzania",iso3Code:"TZA",iso2Code:"TZ",datasetCode:"tz-address-eh",searchType:"autocomplete"},{country:"Thailand",iso3Code:"THA",iso2Code:"TH",datasetCode:"th-address-ed",searchType:"singleline, validate"},{country:"Thailand",iso3Code:"THA",iso2Code:"TH",datasetCode:"th-address-eh",searchType:"autocomplete"},{country:"Timor-Leste",iso3Code:"TLS",iso2Code:"TL",datasetCode:"tl-address-ed",searchType:"singleline, validate"},{country:"Timor-Leste",iso3Code:"TLS",iso2Code:"TL",datasetCode:"tl-address-eh",searchType:"autocomplete"},{country:"Togo",iso3Code:"TGO",iso2Code:"TG",datasetCode:"tg-address-ed",searchType:"singleline, validate"},{country:"Togo",iso3Code:"TGO",iso2Code:"TG",datasetCode:"tg-address-eh",searchType:"autocomplete"},{country:"Tokelau",iso3Code:"TKL",iso2Code:"TK",datasetCode:"tk-address-ed",searchType:"singleline, validate"},{country:"Tokelau",iso3Code:"TKL",iso2Code:"TK",datasetCode:"tk-address-eh",searchType:"autocomplete"},{country:"Tonga",iso3Code:"TON",iso2Code:"TO",datasetCode:"to-address-ed",searchType:"singleline, validate"},{country:"Tonga",iso3Code:"TON",iso2Code:"TO",datasetCode:"to-address-eh",searchType:"autocomplete"},{country:"Trinidad and Tobago",iso3Code:"TTO",iso2Code:"TT",datasetCode:"tt-address-ed",searchType:"singleline, validate"},{country:"Trinidad and Tobago",iso3Code:"TTO",iso2Code:"TT",datasetCode:"tt-address-eh",searchType:"autocomplete"},{country:"Tunisia",iso3Code:"TUN",iso2Code:"TN",datasetCode:"tn-address-ed",searchType:"singleline, validate"},{country:"Tunisia",iso3Code:"TUN",iso2Code:"TN",datasetCode:"tn-address-eh",searchType:"autocomplete"},{country:"Turkey",iso3Code:"TUR",iso2Code:"TR",datasetCode:"tr-address-ed",searchType:"singleline, validate"},{country:"Turkey",iso3Code:"TUR",iso2Code:"TR",datasetCode:"tr-address-eh",searchType:"autocomplete"},{country:"Turkish Republic of Northern Cyprus",iso3Code:"NCY",iso2Code:"CY",datasetCode:"ny-address-eh",searchType:"autocomplete"},{country:"Turkmenistan",iso3Code:"TKM",iso2Code:"TM",datasetCode:"tm-address-ed",searchType:"singleline, validate"},{country:"Turkmenistan",iso3Code:"TKM",iso2Code:"TM",datasetCode:"tm-address-eh",searchType:"autocomplete"},{country:"Turks and Caicos Islands",iso3Code:"TCA",iso2Code:"TC",datasetCode:"tc-address-eh",searchType:"autocomplete"},{country:"Tuvalu",iso3Code:"TUV",iso2Code:"TV",datasetCode:"tv-address-ed",searchType:"singleline, validate"},{country:"Tuvalu",iso3Code:"TUV",iso2Code:"TV",datasetCode:"tv-address-eh",searchType:"autocomplete"},{country:"Uganda",iso3Code:"UGA",iso2Code:"UG",datasetCode:"ug-address-ed",searchType:"singleline, validate"},{country:"Uganda",iso3Code:"UGA",iso2Code:"UG",datasetCode:"ug-address-eh",searchType:"autocomplete"},{country:"Ukraine",iso3Code:"UKR",iso2Code:"UA",datasetCode:"ua-address-ed",searchType:"singleline, validate"},{country:"Ukraine",iso3Code:"UKR",iso2Code:"UA",datasetCode:"ua-address-eh",searchType:"autocomplete"},{country:"United Arab Emirates",iso3Code:"ARE",iso2Code:"AE",datasetCode:"ae-address-ed",searchType:"singleline, validate"},{country:"United Arab Emirates",iso3Code:"ARE",iso2Code:"AE",datasetCode:"ae-address-eh",searchType:"autocomplete"},{country:"United Kingdom",iso3Code:"GBR",iso2Code:"GB",datasetCode:["gb-address"],searchType:"autocomplete"},{country:"United Kingdom",iso3Code:"GBR",iso2Code:"GB",datasetCode:["gb-additional-business","gb-additional-multipleresidence","gb-additional-notyetbuilt"],searchType:"singleline"},{country:"United Kingdom AddressBase Premium",iso3Code:"GBR",iso2Code:"GB",datasetCode:"gb-address-addressbase",searchType:"singleline, typedown, validate, lookup"},{country:"United Kingdom AddressBase Premium with Islands",iso3Code:"GBR",iso2Code:"GB",datasetCode:"gb-additional-addressbaseislands",searchType:"singleline, typedown, validate, lookup"},{country:"United Kingdom Business Names",iso3Code:"GBR",iso2Code:"GB",datasetCode:"gb-additional-business",searchType:"singleline, typedown"},{country:"United Kingdom Electricity",iso3Code:"GBR",iso2Code:"GB",datasetCode:"gb-additional-electricity",searchType:"singleline, typedown, validate, lookup"},{country:"United Kingdom Gas",iso3Code:"GBR",iso2Code:"GB",datasetCode:"gb-additional-gas",searchType:"singleline, typedown, validate, lookup"},{country:"United Kingdom Street Level",iso3Code:"GBR",iso2Code:"GB",datasetCode:"gb-address-streetlevel",searchType:"singleline, typedown"},{country:"United Kingdom Extended Business",iso3Code:"GBR",iso2Code:"GB",datasetCode:"gb-additional-businessextended",searchType:"singleline, typedown, validate, lookup"},{country:"United Kingdom Cymraeg (Welsh Language) Postal Address",iso3Code:"GBR",iso2Code:"GB",datasetCode:"gb-address-wales",searchType:"singleline, typedown, validate"},{country:"United States of America",iso3Code:"USA",iso2Code:"US",datasetCode:"us-address",searchType:"autocomplete, singleline, typedown, validate"},{country:"Uruguay",iso3Code:"URY",iso2Code:"UY",datasetCode:"uy-address-ed",searchType:"singleline, validate"},{country:"Uruguay",iso3Code:"URY",iso2Code:"UY",datasetCode:"uy-address-eh",searchType:"autocomplete"},{country:"Uzbekistan",iso3Code:"UZB",iso2Code:"UZ",datasetCode:"uz-address-ed",searchType:"singleline, validate"},{country:"Uzbekistan",iso3Code:"UZB",iso2Code:"UZ",datasetCode:"uz-address-eh",searchType:"autocomplete"},{country:"Vanuatu",iso3Code:"VUT",iso2Code:"VU",datasetCode:"vu-address-ed",searchType:"singleline, validate"},{country:"Vanuatu",iso3Code:"VUT",iso2Code:"VU",datasetCode:"vu-address-eh",searchType:"autocomplete"},{country:"Vatican City (Holy See)",iso3Code:"VAT",iso2Code:"VA",datasetCode:"va-address-ed",searchType:"singleline, validate"},{country:"Vatican City (Holy See)",iso3Code:"VAT",iso2Code:"VA",datasetCode:"va-address-eh",searchType:"autocomplete"},{country:"Venezuela",iso3Code:"VEN",iso2Code:"VE",datasetCode:"ve-address-ed",searchType:"singleline, validate"},{country:"Venezuela",iso3Code:"VEN",iso2Code:"VE",datasetCode:"ve-address-eh",searchType:"autocomplete"},{country:"Viet Nam",iso3Code:"VNM",iso2Code:"VN",datasetCode:"vn-address-ed",searchType:"singleline, validate"},{country:"Viet Nam",iso3Code:"VNM",iso2Code:"VN",datasetCode:"vn-address-eh",searchType:"autocomplete"},{country:"Virgin Islands, British",iso3Code:"VGB",iso2Code:"VG",datasetCode:"vg-address-eh",searchType:"autocomplete"},{country:"Virgin Islands, U.S.",iso3Code:"VIR",iso2Code:"VI",datasetCode:"vi-address-eh",searchType:"autocomplete"},{country:"Wallis and Futuna Islands",iso3Code:"WLF",iso2Code:"WF",datasetCode:"wf-address-eh",searchType:"autocomplete"},{country:"Western Sahara",iso3Code:"ESH",iso2Code:"EH",datasetCode:"eh-address-ed",searchType:"singleline, validate"},{country:"Western Sahara",iso3Code:"ESH",iso2Code:"EH",datasetCode:"eh-address-eh",searchType:"autocomplete"},{country:"Yemen",iso3Code:"YEM",iso2Code:"YE",datasetCode:"ye-address-ed",searchType:"singleline, validate"},{country:"Yemen",iso3Code:"YEM",iso2Code:"YE",datasetCode:"ye-address-eh",searchType:"autocomplete"},{country:"Zambia",iso3Code:"ZMB",iso2Code:"ZM",datasetCode:"zm-address-ed",searchType:"singleline, validate"},{country:"Zambia",iso3Code:"ZMB",iso2Code:"ZM",datasetCode:"zm-address-eh",searchType:"autocomplete"},{country:"Zimbabwe",iso3Code:"ZWE",iso2Code:"ZW",datasetCode:"zw-address-ed",searchType:"singleline, validate"},{country:"Zimbabwe",iso3Code:"ZWE",iso2Code:"ZW",datasetCode:"zw-address-eh",searchType:"autocomplete"}],i={en:{gbr:{locality:"Town/City",region:"County",postal_code:"Post code"},usa:{locality:"City",region:"State",postal_code:"ZIP code"}}},r=function(){this.size=0,this.maxSuggestions=25},n=function(){function s(s){var o=this;this.baseUrl="https://api.experianaperture.io/",this.searchEndpoint="address/search/v1",this.lookupEndpoint="address/lookup/v2",this.validateEndpoint="address/validate/v1",this.promptsetEndpoint="address/promptsets/v1",this.stepInEndpoint="address/suggestions/stepin/v1",this.refineEndpoint="address/suggestions/refine/v1",this.enrichmentEndpoint="enrichment/v2",this.what3WordCountries=["GBR"],this.what3WordsKeyword="what3words",this.poweredByLogo={element:null,create:function(e){var s={text:"".concat(this.svg," Powered by Experian"),format:""},t=e.createListItem(s);return t.classList.add("powered-by-experian"),e.list.parentNode.appendChild(t),t},destroy:function(e){this.element&&(e.list.parentNode.removeChild(this.element),this.element=void 0)},svg:''},this.result={formattedAddressContainer:null,lastAddressField:null,generateAddressLineRequired:!1,show:function(s){if(o.searchSpinner.hide(),o.picklist.hide(),o.lastSearchTerm="",o.searchType===e.AUTOCOMPLETE||s.result.address&&"No matches"!==s.result.confidence){o.inputs.forEach((function(e){return e.value=""})),o.result.calculateIfAddressLineGenerationRequired(),o.result.formattedAddressContainer=o.options.elements.formattedAddressContainer,!o.result.formattedAddressContainer&&o.result.generateAddressLineRequired&&o.result.createFormattedAddressContainer();for(var t=0;t0)for(var s=0;s?/";:£§º©®\s]+[.。。・・︒។։။۔።।][^0-9`~!@#$%^&*()+\-_=[{\]}\\|'<,.>?/";:£§º©®\s]+[.。。・・︒។։။۔።।][^0-9`~!@#$%^&*()+\-_=[{\]}\\|'<,.>?/";:£§º©®\s]+|[^0-9`~!@#$%^&*()+\-_=[{\]}\\|'<,.>?/";:£§º©®\s]+([\u0020\u00A0][^0-9`~!@#$%^&*()+\-_=[{\]}\\|'<,.>?/";:£§º©®\s]+){1,3}[.。。・・︒។։။۔።।][^0-9`~!@#$%^&*()+\-_=[{\]}\\|'<,.>?/";:£§º©®\s]+([\u0020\u00A0][^0-9`~!@#$%^&*()+\-_=[{\]}\\|'<,.>?/";:£§º©®\s]+){1,3}[.。。・・︒។։။۔።।][^0-9`~!@#$%^&*()+\-_=[{\]}\\|'<,.>?/";:£§º©®\s]+([\u0020\u00A0][^0-9`~!@#$%^&*()+\-_=[{\]}\\|'<,.>?/";:£§º©®\s]+){1,3})$/.test(this.currentSearchTerm.trim())&&this.options.enableWhat3Words&&this.what3WordCountries.indexOf(this.currentCountryCode)>-1?(this.isWhat3Words=!0,this.currentSearchTerm=this.currentSearchTerm.trim()):this.isWhat3Words=!1,this.events.trigger("pre-search",this.currentSearchTerm);var o=this.isWhat3Words?this.generateLookupDataForApiCall(this.currentSearchTerm,!0):this.generateSearchDataForApiCall();this.lastSearchTerm=this.currentSearchTerm,this.searchSpinner.hide(),this.searchSpinner.show();var a=void 0,d=void 0,i=void 0;this.isWhat3Words?(a=this.baseUrl+this.lookupEndpoint,d=[],i=this.picklist.showWhat3Words):(a=this.baseUrl+(this.searchType===e.VALIDATE?this.validateEndpoint:this.searchEndpoint),d=this.searchType===e.VALIDATE?[{key:"Add-Metadata",value:!0}]:[],i=this.searchType===e.VALIDATE?this.result.handleValidateResponse:this.picklist.show),this.request.send(a,"POST",i,o,d)}else this.lastSearchTerm!==this.currentSearchTerm&&this.picklist.hide()},s.prototype.getKey=function(e){var s=e.key;switch(s){case"Down":case"ArrowDown":return"ArrowDown";case"Up":case"ArrowUp":return"ArrowUp";case"Spacebar":case" ":return" ";case"Escape":case"Esc":return"Escape";default:return s}},s.prototype.canSearch=function(){return this.options.enabled&&""!==this.currentSearchTerm&&this.currentSearchTerm.length>3&&this.lastSearchTerm!==this.currentSearchTerm&&this.currentCountryCode&&!0===this.hasSearchInputBeenReset},s.prototype.createPicklist=function(){var s=this;this.picklist=new r,this.picklist.maxSuggestions=25,this.picklist.tabCount=-1,this.picklist.show=function(t){var o;s.picklist.items=null==t?void 0:t.result.suggestions,s.picklist.handleCommonShowPicklistLogic(),(null===(o=s.picklist.items)||void 0===o?void 0:o.length)>0?(s.picklist.refine.isNeeded(t)&&s.picklist.refine.createInput(t.result.suggestions_prompt,t.result.suggestions_key),s.searchType===e.VALIDATE&&s.picklist.displaySuggestionsHeader(),s.picklist.items.forEach((function(e){var t=s.picklist.createListItem(e);s.picklist.list.appendChild(t),s.picklist.listen(t)})),s.searchType===e.VALIDATE&&s.picklist.displayUseAddressEnteredFooter(),s.picklist.scrollIntoViewIfNeeded()):s.picklist.handleEmptyPicklist(t),s.poweredByLogo.element=s.poweredByLogo.element||s.poweredByLogo.create(s.picklist),s.events.trigger("post-picklist-create",s.picklist.items)},this.picklist.showWhat3Words=function(e){var t;s.picklist.what3wordsItems=null==e?void 0:e.result.suggestions,s.picklist.handleCommonShowPicklistLogic(),(null===(t=s.picklist.what3wordsItems)||void 0===t?void 0:t.length)>0?(s.picklist.what3wordsItems.forEach((function(e){var t=s.picklist.createWhat3WordsListItem(e);s.picklist.list.appendChild(t),s.picklist.listen(t)})),s.picklist.scrollIntoViewIfNeeded()):s.picklist.handleEmptyPicklist(e),s.poweredByLogo.element=s.poweredByLogo.element||s.poweredByLogo.create(s.picklist),s.events.trigger("post-picklist-create",s.picklist.items)},this.picklist.showLookup=function(e){var t;s.isWhat3Words=!1,s.picklist.lookupItems=null==e?void 0:e.result.addresses,s.picklist.handleCommonShowPicklistLogic(),(null===(t=s.picklist.lookupItems)||void 0===t?void 0:t.length)>0?(s.picklist.lookupItems.forEach((function(e){var t=s.picklist.createLookupListItem(e);s.picklist.list.appendChild(t),s.picklist.listen(t)})),s.picklist.scrollIntoViewIfNeeded()):s.picklist.handleEmptyPicklist(e),s.poweredByLogo.element=s.poweredByLogo.element||s.poweredByLogo.create(s.picklist),s.events.trigger("post-picklist-create",s.picklist.items)},this.picklist.handleCommonShowPicklistLogic=function(){var e;s.picklist.currentItem=null,s.picklist.size=null===(e=s.picklist.items)||void 0===e?void 0:e.length,s.picklist.resetTabCount(),s.searchSpinner.hide(),s.picklist.list=s.picklist.list||s.picklist.createList(),s.picklist.list.innerHTML="",s.picklist.useAddressEntered.destroy(),s.events.trigger("pre-picklist-create",s.picklist.items)},this.picklist.hide=function(){if(s.picklist.currentItem=null,s.picklist.useAddressEntered.destroy(),s.poweredByLogo.destroy(s.picklist),s.inputs){var t=s.searchType===e.SINGLELINE?s.inputs.length-1:0;s.inputs[t].classList.remove("showing-suggestions")}s.picklist.list&&(s.picklist.container.remove(),s.picklist.list=void 0)},this.picklist.handleEmptyPicklist=function(e){var t;s.picklist.useAddressEntered.element=s.picklist.useAddressEntered.element||s.picklist.useAddressEntered.create(null===(t=e.result)||void 0===t?void 0:t.confidence),s.picklist.scrollIntoViewIfNeeded(),"function"==typeof s.picklist.handleEmptyPicklistCallback&&s.picklist.handleEmptyPicklistCallback()},this.picklist.displaySuggestionsHeader=function(){var e=document.querySelector(".picklist-suggestions-header")||document.createElement("div");e.classList.add("picklist-suggestions-header"),e.innerText="Suggestions:",s.picklist.list.parentNode.insertBefore(e,s.picklist.list)},this.picklist.displayUseAddressEnteredFooter=function(){var e=document.querySelector(".picklist-use-entered-container")||document.createElement("div");e.classList.add("picklist-use-entered-container"),s.picklist.list.parentNode.insertBefore(e,s.picklist.list.nextElementSibling);var t=document.querySelector(".picklist-use-entered-header")||document.createElement("div");t.classList.add("picklist-use-entered-header"),t.innerText="Or use address entered:",e.appendChild(t);var o=document.querySelector(".picklist-use-entered-option")||document.createElement("div");o.classList.add("picklist-use-entered-option"),o.innerText=s.currentSearchTerm.replace(/,+/g,", "),o.addEventListener("click",s.picklist.useAddressEntered.click),e.appendChild(o)},this.picklist.scrollIntoViewIfNeeded=function(){var e=s.picklist.container.getBoundingClientRect().top<0,t=s.picklist.container.getBoundingClientRect().bottom>window.innerHeight;(e||t)&&s.picklist.container.scrollIntoView()},this.picklist.useAddressEntered={element:null,create:function(e){var t={text:"".concat(e," ").concat(s.options.useAddressEnteredText)},o=s.picklist.createListItem(t);return o.classList.add("use-address-entered"),o.setAttribute("title","Enter address manually"),s.picklist.list=s.picklist.list||s.picklist.createList(),s.picklist.list.parentNode.insertBefore(o,s.picklist.container.firstChild),o.addEventListener("click",s.picklist.useAddressEntered.click),o},destroy:function(){s.picklist.useAddressEntered.element&&(s.picklist.list.parentNode.removeChild(s.picklist.useAddressEntered.element),s.picklist.useAddressEntered.element=void 0)},click:function(){var e={result:{confidence:"No matches",address:{address_line_1:"",address_line_2:"",address_line_3:"",locality:"",region:"",postal_code:"",country:""}}};if(s.currentSearchTerm){var t=s.currentSearchTerm.split(",");t[0]&&(e.result.address.address_line_1=t[0]),t[1]&&(e.result.address.address_line_2=t[1]),t[2]&&(e.result.address.address_line_3=t[2]);for(var o=3;oa.length-1&&(s.picklist.tabCount=0,t=!0);var d=a[s.picklist.tabCount],i=s.picklist.list.querySelector(".selected");i&&i.classList.remove("selected"),d.classList.add("selected"),s.picklist.currentItem=d;var r=s.picklist.list.offsetTop,n=s.picklist.list.offsetTop+s.picklist.list.offsetHeight,c=s.picklist.list.scrollTop,l=d.offsetTop,C=d.offsetTop+d.offsetHeight,u=d.offsetHeight;t?s.picklist.list.scrollTop=0:o?s.picklist.list.scrollTop=999:C+u>n?s.picklist.list.scrollTop=c+u:l-u-r";t=t.substring(0,s[o][0])+a+t.substring(s[o][1])}return t},this.picklist.listen=function(e){e.addEventListener("click",s.picklist.pick.bind(null,e))},this.picklist.checkEnter=function(e){if("Enter"===e.key||"Tab"===e.key){var t=void 0;1===s.picklist.size?t=s.picklist.list.querySelectorAll("div")[0]:s.picklist.currentItem&&(t=s.picklist.currentItem),t&&s.picklist.pick(t)}},this.picklist.pick=function(e){s.events.trigger("post-picklist-selection",e);var t=e.getElementsByTagName("div");s.isWhat3Words?s.lookup(t[0].innerHTML):e.getAttribute("format")?s.format(e.getAttribute("format")):s.refine(e.getAttribute("refine"))}},s.prototype.format=function(e){this.events.trigger("pre-formatting-search",e),this.searchSpinner.hide(),this.request.send(e,"GET",this.result.show,void 0,[{key:"Add-Metadata",value:!0}])},s.prototype.refine=function(e){this.events.trigger("pre-refinement",e),this.searchSpinner.hide(),this.request.send("".concat(this.baseUrl).concat(this.stepInEndpoint,"/").concat(e),"GET",this.picklist.show)},s.prototype.lookup=function(e){this.events.trigger("pre-lookup",e),this.searchSpinner.hide();var s=this.generateLookupDataForApiCall(e,!1),t=this.baseUrl+this.lookupEndpoint,o=this.picklist.showLookup;this.request.send(t,"POST",o,s,[{key:"Add-Addresses",value:!0}])},s.prototype.checkTab=function(e){var s=this.getKey(e);"Tab"!==s?"Enter"===s&&e.preventDefault():this.picklist.keyup(e)},s.prototype.toggleSearchInputs=function(e){var s,t,o,a="show"===e?"remove":"add";null===(s=this.options.elements.inputs)||void 0===s||s.forEach((function(e){return e.parentNode.querySelectorAll(".toggle").forEach((function(e){return e.classList[a]("hidden")}))})),null===(t=this.options.elements.countryList)||void 0===t||t.parentNode.querySelectorAll(".toggle").forEach((function(e){return e.classList[a]("hidden")})),null===(o=this.options.elements.lookupButton)||void 0===o||o.parentNode.querySelectorAll(".toggle").forEach((function(e){return e.classList[a]("hidden")}))},s.prototype.globalReset=function(e){e&&e.preventDefault(),this.options.enabled=!0,this.result.hide(),this.hasSearchInputBeenReset=!0,this.inputs.forEach((function(e){return e.value=""})),this.picklist.hide(),this.toggleSearchInputs("show"),this.inputs[0].focus(),this.events.trigger("post-reset")},s}();window.AddressValidation=n}(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Z0JBQy9GLENBQUNrQixRQUFTLGFBQWNDLFNBQVUsTUFBT0MsU0FBVSxLQUFNQyxZQUFhLGdCQUFpQnJCLFdBQVksd0JBQ25HLENBQUNrQixRQUFTLGFBQWNDLFNBQVUsTUFBT0MsU0FBVSxLQUFNQyxZQUFhLGdCQUFpQnJCLFdBQVksZ0JBQ25HLENBQUNrQixRQUFTLE9BQVFDLFNBQVUsTUFBT0MsU0FBVSxLQUFNQyxZQUFhLGdCQUFpQnJCLFdBQVksd0JBQzdGLENBQUNrQixRQUFTLE9BQVFDLFNBQVUsTUFBT0MsU0FBVSxLQUFNQyxZQUFhLGdCQUFpQnJCLFdBQVksZ0JBQzdGLENBQUNrQixRQUFTLFNBQVVDLFNBQVUsTUFBT0MsU0FBVSxLQUFNQyxZQUFhLGdCQUFpQnJCLFdBQVksd0JBQy9GLENBQUNrQixRQUFTLFNBQVVDLFNBQVUsTUFBT0MsU0FBVSxLQUFNQyxZQUFhLGdCQUFpQnJCLFdBQVksZ0JBQy9GLENBQUNrQixRQUFTLFVBQVdDLFNBQVUsTUFBT0MsU0FBVSxLQUFNQyxZQUFhLGdCQUFpQnJCLFdBQVksd0JBQ2hHLENBQUNrQixRQUFTLFVBQVdDLFNBQVUsTUFBT0MsU0FBVSxLQUFNQyxZQUFhLGdCQUFpQnJCLFdBQVksZ0JBQ2hHLENBQUNrQixRQUFTLFVBQVdDLFNBQVUsTUFBT0MsU0FBVSxLQUFNQyxZQUFhLGdCQUFpQnJCLFdBQVksd0JBQ2hHLENBQUNrQixRQUFTLFVBQVdDLFNBQVUsTUFBT0MsU0FBVSxLQUFNQyxZQUFhLGdCQUFpQnJCLFdBQVksZ0JBQ2hHLENBQUNrQixRQUFTLFVBQVdDLFNBQVUsTUFBT0MsU0FBVSxLQUFNQyxZQUFhLGdCQUFpQnJCLFdBQVksd0JBQ2hHLENBQUNrQixRQUFTLFVBQVdDLFNBQVUsTUFBT0MsU0FBVSxLQUFNQyxZQUFhLGdCQUFpQnJCLFdBQVksZ0JBQ2hHLENBQUNrQixRQUFTLFFBQVNDLFNBQVUsTUFBT0MsU0FBVSxLQUFNQyxZQUFhLGdCQUFpQnJCLFdBQVksd0JBQzlGLENBQUNrQixRQUFTLFFBQVNDLFNBQVUsTUFBT0MsU0FBVSxL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VSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSxnQkFDaEcsQ0FBQ2tCLFFBQVMsYUFBY0MsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSx3QkFDbkcsQ0FBQ2tCLFFBQVMsYUFBY0MsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSxnQkFDbkcsQ0FBQ2tCLFFBQVMsVUFBV0MsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSx3QkFDaEcsQ0FBQ2tCLFFBQVMsVUFBV0MsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSxnQkFDaEcsQ0FBQ2tCLFFBQVMsVUFBV0MsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSx3QkFDaEcsQ0FBQ2tCLFFBQVMsVUFBV0MsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSxnQkFDaEcsQ0FBQ2tCLFFBQVMsUUFBU0MsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSx3QkFDOUYsQ0FBQ2tCLFFBQVMsUUFBU0MsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSxnQkFDOUYsQ0FBQ2tCLFFBQVMsUUFBU0MsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSx3QkFDOUYsQ0FBQ2tCLFFBQVMsUUFBU0MsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSxnQkFDOUYsQ0FBQ2tCLFFBQVMsY0FBZUMsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSx3QkFDcEcsQ0FBQ2tCLFFBQVMsY0FBZUMsU0FBVSxNQUFPQyxTQUFVLEtBQU1DLFlBQWEsZ0JBQWlCckIsV0FBWSxnQkFDcEcsQ0FBQ2tCLFFBQVMsZ0JBQWlCQyxTQUFVLE1BQU9DLFNBQVUsS0FBTUMsWUFBYSxnQkFBaUJyQixXQUFZLGdC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QVczUixTQUFRLFNBQUEyRCxHQUFXLE9BQUFBLEVBQVFRLFVBQVV3TyxHQUFVLGdCQUMxRyxRQUFqQyxFQUFBblUsS0FBS3NCLFFBQVFzRixTQUFTK0csbUJBQVcsU0FBRTdILFdBQVdxTixpQkFBaUIsV0FBVzNSLFNBQVEsU0FBQTJELEdBQVcsT0FBQUEsRUFBUVEsVUFBVXdPLEdBQVUsYUFDdkYsUUFBbEMsRUFBQW5VLEtBQUtzQixRQUFRc0YsU0FBU3NHLG9CQUFZLFNBQUVwSCxXQUFXcU4saUJBQWlCLFdBQVczUixTQUFRLFNBQUEyRCxHQUFXLE9BQUFBLEVBQVFRLFVBQVV3TyxHQUFVLGNBR3BILFlBQUF6SyxZQUFSLFNBQW9CNUosR0FDZEEsR0FDRkEsRUFBTTZPLGlCQUdSM08sS0FBS3NCLFFBQVF5SyxTQUFVLEVBRXZCL0wsS0FBS21HLE9BQU9oRSxPQUVabkMsS0FBS21ILHlCQUEwQixFQUcvQm5ILEtBQUswRyxPQUFPbEYsU0FBUSxTQUFBbUIsR0FBUyxPQUFBQSxFQUFNaEIsTUFBUSxNQUUzQzNCLEtBQUtxRixTQUFTbEQsT0FFZG5DLEtBQUtrSCxtQkFBbUIsUUFFeEJsSCxLQUFLMEcsT0FBTyxHQUFHZ0gsUUFHZjFOLEtBQUtvQyxPQUFPbEMsUUFBUSxlQUV4QixFQXA0Q0EsR0NDQTBSLE9BQU93QyxrQkFBb0IsRSIsInNvdXJjZXMiOlsid2VicGFjazovL2V4cGVyaWFuLWFkZHJlc3MtdmFsaWRhdGlvbi8uL3NyYy90cy9ldmVudC1mYWN0b3J5LnRzIiwid2VicGFjazovL2V4cGVyaWFuLWFkZHJlc3MtdmFsaWRhdGlvbi8uL3NyYy90cy9zZWFyY2gtb3B0aW9ucy50cyIsIndlYnBhY2s6Ly9leHBlcmlhbi1hZGRyZXNzLXZhbGlkYXRpb24vLi9zcmMvdHMvcmVxdWVzdC50cyIsIndlYnBhY2s6Ly9leHBlcmlhbi1hZGRyZXNzLXZhbGlkYXRpb24vLi9zcmMvdHMvZGF0YXNldHMtY29kZXMudHMiLCJ3ZWJwYWNrOi8vZXhwZXJpYW4tYWRkcmVzcy12YWxpZGF0aW9uLy4vc3JjL3RzL3RyYW5zbGF0aW9ucy50cyIsIndlYnBhY2s6Ly9leHBlcmlhbi1hZGRyZXNzLXZhbGlkYXRpb24vLi9zcmMvdHMvY2xhc3MtdHlwZXMudHMiLCJ3ZWJwYWNrOi8vZXhwZXJpYW4tYWRkcmVzcy12YWxpZGF0aW9uLy4vc3JjL3RzL2FkZHJlc3Mtc2VhcmNoLnRzIiwid2VicGFjazovL2V4cGVyaWFuLWFkZHJlc3MtdmFsaWRhdGlvbi8uL3NyYy90cy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogTWV0aG9kIGV2ZW50IGxpc3RlbmVyIChwdWIvc3ViIHR5cGUgdGhpbmcpXHJcbiAqL1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFdmVudEZhY3Rvcnkge1xyXG4gIC8vIENyZWF0ZSBhbiBvYmplY3QgdG8gaG9sZCB0aGUgY29sbGVjdGlvbiBvZiBldmVudHNcclxuICBjb2xsZWN0aW9uID0ge307XHJcblxyXG4gIC8vIFN1YnNjcmliZSBhIG5ldyBldmVudFxyXG4gIG9uKGV2ZW50LCBhY3Rpb24pIHtcclxuICAgIC8vIENyZWF0ZSB0aGUgcHJvcGVydHkgYXJyYXkgb24gdGhlIGNvbGxlY3Rpb24gb2JqZWN0XHJcbiAgICB0aGlzLmNvbGxlY3Rpb25bZXZlbnRdID0gdGhpcy5jb2xsZWN0aW9uW2V2ZW50XSB8fCBbXTtcclxuICAgIC8vIFB1c2ggYSBuZXcgYWN0aW9uIGZvciB0aGlzIGV2ZW50IG9udG8gdGhlIGFycmF5XHJcbiAgICB0aGlzLmNvbGxlY3Rpb25bZXZlbnRdLnB1c2goYWN0aW9uKTtcclxuICB9XHJcblxyXG4gIC8vIFB1Ymxpc2ggKHRyaWdnZXIpIGFuIGV2ZW50XHJcbiAgdHJpZ2dlcihldmVudCwgZGF0YSkge1xyXG4gICAgLy8gSWYgdGhpcyBldmVudCBpcyBpbiBvdXIgY29sbGVjdGlvbiAoaS5lLiBhbnlvbmUncyBzdWJzY3JpYmVkKVxyXG4gICAgaWYgKHRoaXMuY29sbGVjdGlvbltldmVudF0pIHtcclxuICAgICAgLy8gTG9vcCBvdmVyIGFsbCB0aGUgYWN0aW9ucyBmb3IgdGhpcyBldmVudFxyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY29sbGVjdGlvbltldmVudF0ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAvLyBDcmVhdGUgYXJyYXkgd2l0aCBkZWZhdWx0IGRhdGEgYXMgMXN0IGl0ZW1cclxuICAgICAgICBjb25zdCBhcmdzID0gW2RhdGFdO1xyXG5cclxuICAgICAgICAvLyBMb29wIG92ZXIgYWRkaXRpb25hbCBhcmdzIGFuZCBhZGQgdG8gYXJyYXlcclxuICAgICAgICBmb3IgKGxldCBhID0gMjsgYSA8IGFyZ3VtZW50cy5sZW5ndGg7IGErKykge1xyXG4gICAgICAgICAgYXJncy5wdXNoKGFyZ3VtZW50c1thXSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBDYWxsIGVhY2ggYWN0aW9uIGZvciB0aGlzIGV2ZW50IHR5cGUsIHBhc3NpbmcgdGhlIGFyZ3NcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgdGhpcy5jb2xsZWN0aW9uW2V2ZW50XVtpXS5hcHBseSh0aGlzLmNvbGxlY3Rpb24sIGFyZ3MpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgIC8vIFdoYXQgdG8gZG8/IFVuY29tbWVudCB0aGUgYmVsb3cgdG8gc2hvdyBlcnJvcnMgaW4geW91ciBldmVudCBhY3Rpb25zXHJcbiAgICAgICAgICAvL2NvbnNvbGUuZXJyb3IoZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsImV4cG9ydCBpbnRlcmZhY2UgQWRkcmVzc1NlYXJjaE9wdGlvbnMge1xyXG4gIGVuYWJsZWQ6IGJvb2xlYW47XHJcbiAgdG9rZW46IHN0cmluZztcclxuICBlbmFibGVXaGF0M1dvcmRzOiBib29sZWFuO1xyXG4gIHNlYXJjaFR5cGU6IEFkZHJlc3NWYWxpZGF0aW9uTW9kZTtcclxuICBtYXhTdWdnZXN0aW9uczogbnVtYmVyO1xyXG4gIGxhbmd1YWdlOiBzdHJpbmc7XHJcbiAgbG9jYXRpb246IHN0cmluZztcclxuICB1c2VTcGlubmVyOiBib29sZWFuO1xyXG4gIGNvdW50cnlDb2RlPzogc3RyaW5nO1xyXG4gIGNvdW50cnlDb2RlTWFwcGluZz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XHJcbiAgYXBwbHlGb2N1czogYm9vbGVhbjtcclxuICBwbGFjZWhvbGRlclRleHQ6IHN0cmluZztcclxuICB1c2VBZGRyZXNzRW50ZXJlZFRleHQ6IHN0cmluZztcclxuICBzZWFyY2hBZ2FpbjogeyB2aXNpYmxlPzogYm9vbGVhbiwgdGV4dD86IHN0cmluZywgbGluaz86IEhUTUxCdXR0b25FbGVtZW50IH07XHJcbiAgZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lcjogeyBzaG93SGVhZGluZzogYm9vbGVhbiwgaGVhZGluZ1R5cGU6IHN0cmluZywgdmFsaWRhdGVkSGVhZGluZ1RleHQ6IHN0cmluZywgbWFudWFsSGVhZGluZ1RleHQ6IHN0cmluZyB9O1xyXG4gIGVsZW1lbnRzOiB7IGlucHV0PzogSFRNTElucHV0RWxlbWVudCwgaW5wdXRzPzogSFRNTElucHV0RWxlbWVudFtdLCBjb3VudHJ5TGlzdD86IEhUTUxTZWxlY3RFbGVtZW50LCBhZGRyZXNzX2xpbmVfMT86IEhUTUxJbnB1dEVsZW1lbnQsIGFkZHJlc3NfbGluZV8yPzogSFRNTElucHV0RWxlbWVudCwgYWRkcmVzc19saW5lXzM/OiBIVE1MSW5wdXRFbGVtZW50LCBsb2NhbGl0eT86IEhUTUxJbnB1dEVsZW1lbnQsIHJlZ2lvbj86IEhUTUxJbnB1dEVsZW1lbnQsIHBvc3RhbF9jb2RlPzogSFRNTElucHV0RWxlbWVudCwgY291bnRyeT86IEhUTUxJbnB1dEVsZW1lbnQsIGZvcm1hdHRlZEFkZHJlc3NDb250YWluZXI/OiBIVE1MRWxlbWVudCwgbG9va3VwQnV0dG9uPzogSFRNTEJ1dHRvbkVsZW1lbnQgfTtcclxufVxyXG5cclxuZXhwb3J0IGVudW0gQWRkcmVzc1ZhbGlkYXRpb25Nb2RlIHtcclxuICBBVVRPQ09NUExFVEUgPSAnYXV0b2NvbXBsZXRlJyxcclxuICBTSU5HTEVMSU5FID0gJ3NpbmdsZWxpbmUnLFxyXG4gIFZBTElEQVRFID0gJ3ZhbGlkYXRlJ1xyXG59XHJcblxyXG4vLyBEZWZhdWx0IHNldHRpbmdzXHJcbmV4cG9ydCBjb25zdCBkZWZhdWx0cyA9IHtcclxuICBlbmFibGVXaGF0M1dvcmRzOiB0cnVlLFxyXG4gIHNlYXJjaFR5cGU6IEFkZHJlc3NWYWxpZGF0aW9uTW9kZS5BVVRPQ09NUExFVEUsXHJcbiAgaW5wdXQ6IHsgcGxhY2Vob2xkZXJUZXh0OiAnU3RhcnQgdHlwaW5nIGFuIGFkZHJlc3MuLi4nLCBhcHBseUZvY3VzOiBmYWxzZSB9LFxyXG4gIGZvcm1hdHRlZEFkZHJlc3NDb250YWluZXI6IHsgc2hvd0hlYWRpbmc6IGZhbHNlLCBoZWFkaW5nVHlwZTogJ2gzJywgdmFsaWRhdGVkSGVhZGluZ1RleHQ6ICdWYWxpZGF0ZWQgYWRkcmVzcycsIG1hbnVhbEhlYWRpbmdUZXh0OiAnTWFudWFsIGFkZHJlc3MgZW50ZXJlZCcgfSxcclxuICBzZWFyY2hBZ2FpbjogeyB2aXNpYmxlOiB0cnVlLCB0ZXh0OiAnU2VhcmNoIGFnYWluJyB9LFxyXG4gIHVzZUFkZHJlc3NFbnRlcmVkVGV4dDogJzxlbT4gLSBVc2UgYWRkcmVzcyBlbnRlcmVkIG9yIHRyeSBhZ2Fpbi4uLjwvZW0+JyxcclxuICB1c2VTcGlubmVyOiBmYWxzZSxcclxuICBsYW5ndWFnZTogJ2VuJyxcclxuICBhZGRyZXNzTGluZUxhYmVsczogW1xyXG4gICAgJ2FkZHJlc3NfbGluZV8xJyxcclxuICAgICdhZGRyZXNzX2xpbmVfMicsXHJcbiAgICAnYWRkcmVzc19saW5lXzMnLFxyXG4gICAgJ2xvY2FsaXR5JyxcclxuICAgICdyZWdpb24nLFxyXG4gICAgJ3Bvc3RhbF9jb2RlJyxcclxuICAgICdjb3VudHJ5J1xyXG4gIF1cclxufTsiLCJleHBvcnQgZGVmYXVsdCBjbGFzcyBSZXF1ZXN0IHtcclxuICBpbnN0YW5jZTtcclxuICBjb25zdHJ1Y3RvcihpbnN0YW5jZSkge1xyXG4gICAgdGhpcy5pbnN0YW5jZSA9IGluc3RhbmNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGN1cnJlbnRSZXF1ZXN0O1xyXG5cclxuXHJcbiAgcHVibGljIHNlbmQodXJsOiBzdHJpbmcsIG1ldGhvZDogJ0dFVCcgfCAnUE9TVCcsIGNhbGxiYWNrOiAoZGF0YTogb2JqZWN0KSA9PiB2b2lkLCBkYXRhPzogc3RyaW5nLCBoZWFkZXJzOiB7a2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBib29sZWFufVtdID0gW10pOiB2b2lkIHtcclxuICAgIHRoaXMuY3VycmVudFJlcXVlc3QgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcclxuICAgIHRoaXMuY3VycmVudFJlcXVlc3Qub3BlbihtZXRob2QsIHVybCwgdHJ1ZSk7XHJcbiAgICB0aGlzLmN1cnJlbnRSZXF1ZXN0LnRpbWVvdXQgPSA1MDAwOyAvLyA1IHNlY29uZHNcclxuICAgIHRoaXMuY3VycmVudFJlcXVlc3Quc2V0UmVxdWVzdEhlYWRlcignYXV0aC10b2tlbicsIHRoaXMuaW5zdGFuY2Uub3B0aW9ucy50b2tlbik7XHJcbiAgICB0aGlzLmN1cnJlbnRSZXF1ZXN0LnNldFJlcXVlc3RIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICB0aGlzLmN1cnJlbnRSZXF1ZXN0LnNldFJlcXVlc3RIZWFkZXIoJ0FjY2VwdCcsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcblxyXG4gICAgLy8gQWRkIGFkZGl0aW9uYWwgaGVhZGVycyBpZiBzdXBwbGllZFxyXG4gICAgaGVhZGVycy5mb3JFYWNoKGhlYWRlciA9PiB0aGlzLmN1cnJlbnRSZXF1ZXN0LnNldFJlcXVlc3RIZWFkZXIoaGVhZGVyLmtleSwgaGVhZGVyLnZhbHVlKSk7XHJcblxyXG4gICAgdGhpcy5jdXJyZW50UmVxdWVzdC5vbmxvYWQgPSAoeGhyKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRSZXF1ZXN0LnN0YXR1cyA+PSAyMDAgJiYgdGhpcy5jdXJyZW50UmVxdWVzdC5zdGF0dXMgPCA0MDApIHtcclxuICAgICAgICAvLyBTdWNjZXNzIVxyXG4gICAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKHRoaXMuY3VycmVudFJlcXVlc3QucmVzcG9uc2VUZXh0KTtcclxuICAgICAgICBjYWxsYmFjayhkYXRhKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBXZSByZWFjaGVkIG91ciB0YXJnZXQgc2VydmVyLCBidXQgaXQgcmV0dXJuZWQgYW4gZXJyb3JcclxuICAgICAgICB0aGlzLmluc3RhbmNlLnNlYXJjaFNwaW5uZXIuaGlkZSgpO1xyXG5cclxuICAgICAgICAvLyBGaXJlIGFuIGV2ZW50IHRvIG5vdGlmeSB1c2VycyBvZiBhIGdlbmVyYWwgZXJyb3JcclxuICAgICAgICB0aGlzLmluc3RhbmNlLmV2ZW50cy50cmlnZ2VyKCdyZXF1ZXN0LWVycm9yJywgeGhyKTtcclxuICAgICAgICAvLyBGaXJlIGFuIGV2ZW50IGZvciB0aGUgc3BlY2lmaWMgc3RhdHVzIGNvZGVcclxuICAgICAgICB0aGlzLmluc3RhbmNlLmV2ZW50cy50cmlnZ2VyKGByZXF1ZXN0LWVycm9yLSR7dGhpcy5jdXJyZW50UmVxdWVzdC5zdGF0dXN9YCwgeGhyKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLmN1cnJlbnRSZXF1ZXN0Lm9uZXJyb3IgPSAoeGhyKSA9PiB7XHJcbiAgICAgIC8vIFRoZXJlIHdhcyBhIGNvbm5lY3Rpb24gZXJyb3Igb2Ygc29tZSBzb3J0XHJcbiAgICAgIC8vIEhpZGUgdGhlIGlubGluZSBzZWFyY2ggc3Bpbm5lclxyXG4gICAgICB0aGlzLmluc3RhbmNlLnNlYXJjaFNwaW5uZXIuaGlkZSgpO1xyXG5cclxuICAgICAgLy8gRmlyZSBhbiBldmVudCB0byBub3RpZnkgdXNlcnMgb2YgYW4gZXJyb3JcclxuICAgICAgdGhpcy5pbnN0YW5jZS5ldmVudHMudHJpZ2dlcigncmVxdWVzdC1lcnJvcicsIHhocik7XHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuY3VycmVudFJlcXVlc3Qub250aW1lb3V0ID0gKHhocikgPT4ge1xyXG4gICAgICAvLyBUaGVyZSB3YXMgYSBjb25uZWN0aW9uIHRpbWVvdXRcclxuICAgICAgLy8gSGlkZSB0aGUgaW5saW5lIHNlYXJjaCBzcGlubmVyXHJcbiAgICAgIHRoaXMuaW5zdGFuY2Uuc2VhcmNoU3Bpbm5lci5oaWRlKCk7XHJcblxyXG4gICAgICAvLyBGaXJlIGFuIGV2ZW50IHRvIG5vdGlmeSB1c2VycyBvZiB0aGUgdGltZW91dFxyXG4gICAgICB0aGlzLmluc3RhbmNlLmV2ZW50cy50cmlnZ2VyKCdyZXF1ZXN0LXRpbWVvdXQnLCB4aHIpO1xyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLmN1cnJlbnRSZXF1ZXN0LnNlbmQoZGF0YSk7XHJcbiAgfVxyXG59IiwiZXhwb3J0IGNvbnN0IGRhdGFzZXRDb2RlcyA9IFtcclxuICB7Y291bnRyeTogJ0FmZ2hhbmlzdGFuJywgaXNvM0NvZGU6ICdBRkcnLCBpc28yQ29kZTogJ0FGJywgZGF0YXNldENvZGU6ICdhZi1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdBZmdoYW5pc3RhbicsIGlzbzNDb2RlOiAnQUZHJywgaXNvMkNvZGU6ICdBRicsIGRhdGFzZXRDb2RlOiAnYWYtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0FsYmFuaWEnLCBpc28zQ29kZTogJ0FMQicsIGlzbzJDb2RlOiAnQUwnLCBkYXRhc2V0Q29kZTogJ2FsLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0FsYmFuaWEnLCBpc28zQ29kZTogJ0FMQicsIGlzbzJDb2RlOiAnQUwnLCBkYXRhc2V0Q29kZTogJ2FsLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdBbGdlcmlhJywgaXNvM0NvZGU6ICdEWkEnLCBpc28yQ29kZTogJ0RaJywgZGF0YXNldENvZGU6ICdkei1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdBbGdlcmlhJywgaXNvM0NvZGU6ICdEWkEnLCBpc28yQ29kZTogJ0RaJywgZGF0YXNldENvZGU6ICdkei1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQW1lcmljYW4gU2Ftb2EnLCBpc28zQ29kZTogJ0FTTScsIGlzbzJDb2RlOiAnQVMnLCBkYXRhc2V0Q29kZTogJ2FzLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdBbmRvcnJhJywgaXNvM0NvZGU6ICdBTkQnLCBpc28yQ29kZTogJ0FEJywgZGF0YXNldENvZGU6ICdhZC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdBbmRvcnJhJywgaXNvM0NvZGU6ICdBTkQnLCBpc28yQ29kZTogJ0FEJywgZGF0YXNldENvZGU6ICdhZC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQW5nb2xhJywgaXNvM0NvZGU6ICdBR08nLCBpc28yQ29kZTogJ0FPJywgZGF0YXNldENvZGU6ICdhby1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdBbmdvbGEnLCBpc28zQ29kZTogJ0FHTycsIGlzbzJDb2RlOiAnQU8nLCBkYXRhc2V0Q29kZTogJ2FvLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdBbmd1aWxsYScsIGlzbzNDb2RlOiAnQUlBJywgaXNvMkNvZGU6ICdBSScsIGRhdGFzZXRDb2RlOiAnYWktYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0FudGFyY3RpY2EnLCBpc28zQ29kZTogJ0FUQScsIGlzbzJDb2RlOiAnQVEnLCBkYXRhc2V0Q29kZTogJ2FxLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0FudGlndWEgYW5kIEJhcmJ1ZGEnLCBpc28zQ29kZTogJ0FURycsIGlzbzJDb2RlOiAnQUcnLCBkYXRhc2V0Q29kZTogJ2FnLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0FudGlndWEgYW5kIEJhcmJ1ZGEnLCBpc28zQ29kZTogJ0FURycsIGlzbzJDb2RlOiAnQUcnLCBkYXRhc2V0Q29kZTogJ2FnLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdBcmdlbnRpbmEnLCBpc28zQ29kZTogJ0FSRycsIGlzbzJDb2RlOiAnQVInLCBkYXRhc2V0Q29kZTogJ2FyLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0FyZ2VudGluYScsIGlzbzNDb2RlOiAnQVJHJywgaXNvMkNvZGU6ICdBUicsIGRhdGFzZXRDb2RlOiAnYXItYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0FybWVuaWEnLCBpc28zQ29kZTogJ0FSTScsIGlzbzJDb2RlOiAnQU0nLCBkYXRhc2V0Q29kZTogJ2FtLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0FybWVuaWEnLCBpc28zQ29kZTogJ0FSTScsIGlzbzJDb2RlOiAnQU0nLCBkYXRhc2V0Q29kZTogJ2FtLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdBcnViYScsIGlzbzNDb2RlOiAnQUJXJywgaXNvMkNvZGU6ICdBVycsIGRhdGFzZXRDb2RlOiAnYXctYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQXJ1YmEnLCBpc28zQ29kZTogJ0FCVycsIGlzbzJDb2RlOiAnQVcnLCBkYXRhc2V0Q29kZTogJ2F3LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdBdXN0cmFsaWEgRGF0YUZ1c2lvbicsIGlzbzNDb2RlOiAnQVVTJywgaXNvMkNvZGU6ICdBVScsIGRhdGFzZXRDb2RlOiAnYXUtYWRkcmVzcy1kYXRhZnVzaW9uJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSwgc2luZ2xlbGluZSwgdHlwZWRvd24nfSxcclxuICB7Y291bnRyeTogJ0F1c3RyYWxpYSBHZW9jb2RlZCBOYXRpb25hbCBBZGRyZXNzJywgaXNvM0NvZGU6ICdBVVMnLCBpc28yQ29kZTogJ0FVJywgZGF0YXNldENvZGU6ICdhdS1hZGRyZXNzLWduYWYnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlLCBzaW5nbGVsaW5lLCB0eXBlZG93biwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0F1c3RyYWxpYSBQb3N0YWwgQWRkcmVzcycsIGlzbzNDb2RlOiAnQVVTJywgaXNvMkNvZGU6ICdBVScsIGRhdGFzZXRDb2RlOiAnYXUtYWRkcmVzcycsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUsIHNpbmdsZWxpbmUsIHR5cGVkb3duLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQXVzdHJpYScsIGlzbzNDb2RlOiAnQVVUJywgaXNvMkNvZGU6ICdBVCcsIGRhdGFzZXRDb2RlOiAnYXQtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0F1c3RyaWEnLCBpc28zQ29kZTogJ0FVVCcsIGlzbzJDb2RlOiAnQVQnLCBkYXRhc2V0Q29kZTogJ2F6LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0F6ZXJiYWlqYW4nLCBpc28zQ29kZTogJ0FaRScsIGlzbzJDb2RlOiAnQVonLCBkYXRhc2V0Q29kZTogJ2F6LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0F6ZXJiYWlqYW4nLCBpc28zQ29kZTogJ0FaRScsIGlzbzJDb2RlOiAnQVonLCBkYXRhc2V0Q29kZTogJ2F6LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdCYWhhbWFzJywgaXNvM0NvZGU6ICdCSFMnLCBpc28yQ29kZTogJ0JTJywgZGF0YXNldENvZGU6ICdicy1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdCYWhhbWFzJywgaXNvM0NvZGU6ICdCSFMnLCBpc28yQ29kZTogJ0JTJywgZGF0YXNldENvZGU6ICdicy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQmFocmFpbicsIGlzbzNDb2RlOiAnQkhSJywgaXNvMkNvZGU6ICdCSCcsIGRhdGFzZXRDb2RlOiAnYmgtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQmFocmFpbicsIGlzbzNDb2RlOiAnQkhSJywgaXNvMkNvZGU6ICdCSCcsIGRhdGFzZXRDb2RlOiAnYmgtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0JhbmdsYWRlc2gnLCBpc28zQ29kZTogJ0JHRCcsIGlzbzJDb2RlOiAnQkQnLCBkYXRhc2V0Q29kZTogJ2JkLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0JhbmdsYWRlc2gnLCBpc28zQ29kZTogJ0JHRCcsIGlzbzJDb2RlOiAnQkQnLCBkYXRhc2V0Q29kZTogJ2JkLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdCYXJiYWRvcycsIGlzbzNDb2RlOiAnQlJCJywgaXNvMkNvZGU6ICdCQicsIGRhdGFzZXRDb2RlOiAnYmItYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQmFyYmFkb3MnLCBpc28zQ29kZTogJ0JSQicsIGlzbzJDb2RlOiAnQkInLCBkYXRhc2V0Q29kZTogJ2JiLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdCZWxhcnVzJywgaXNvM0NvZGU6ICdCTFInLCBpc28yQ29kZTogJ0JZJywgZGF0YXNldENvZGU6ICdieS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdCZWxhcnVzJywgaXNvM0NvZGU6ICdCTFInLCBpc28yQ29kZTogJ0JZJywgZGF0YXNldENvZGU6ICdieS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQmVsZ2l1bScsIGlzbzNDb2RlOiAnQkVMJywgaXNvMkNvZGU6ICdCRScsIGRhdGFzZXRDb2RlOiAnYmUtYWRkcmVzcycsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB0eXBlZG93bid9LFxyXG4gIHtjb3VudHJ5OiAnQmVsZ2l1bScsIGlzbzNDb2RlOiAnQkVMJywgaXNvMkNvZGU6ICdCRScsIGRhdGFzZXRDb2RlOiAnYmUtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICcgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0JlbGdpdW0nLCBpc28zQ29kZTogJ0JFTCcsIGlzbzJDb2RlOiAnQkUnLCBkYXRhc2V0Q29kZTogJ2JlLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdCZWxpemUnLCBpc28zQ29kZTogJ0JMWicsIGlzbzJDb2RlOiAnQlonLCBkYXRhc2V0Q29kZTogJ2J6LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0JlbGl6ZScsIGlzbzNDb2RlOiAnQkxaJywgaXNvMkNvZGU6ICdCWicsIGRhdGFzZXRDb2RlOiAnYnotYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0JlbmluJywgaXNvM0NvZGU6ICdCRU4nLCBpc28yQ29kZTogJ0JKJywgZGF0YXNldENvZGU6ICdiai1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdCZW5pbicsIGlzbzNDb2RlOiAnQkVOJywgaXNvMkNvZGU6ICdCSicsIGRhdGFzZXRDb2RlOiAnYmotYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0Jlcm11ZGEnLCBpc28zQ29kZTogJ0JNVScsIGlzbzJDb2RlOiAnQk0nLCBkYXRhc2V0Q29kZTogJ2JtLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0Jlcm11ZGEnLCBpc28zQ29kZTogJ0JNVScsIGlzbzJDb2RlOiAnQk0nLCBkYXRhc2V0Q29kZTogJ2JtLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdCaHV0YW4nLCBpc28zQ29kZTogJ0JUTicsIGlzbzJDb2RlOiAnQlQnLCBkYXRhc2V0Q29kZTogJ2J0LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0JodXRhbicsIGlzbzNDb2RlOiAnQlROJywgaXNvMkNvZGU6ICdCVCcsIGRhdGFzZXRDb2RlOiAnYnQtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0JvbGl2aWEnLCBpc28zQ29kZTogJ0JPTCcsIGlzbzJDb2RlOiAnQk8nLCBkYXRhc2V0Q29kZTogJ2JvLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0JvbGl2aWEnLCBpc28zQ29kZTogJ0JPTCcsIGlzbzJDb2RlOiAnQk8nLCBkYXRhc2V0Q29kZTogJ2JvLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdCb25haXJlLCBTaW50IEV1c3RhdGl1cyBhbmQgU2FiYScsIGlzbzNDb2RlOiAnQkVTJywgaXNvMkNvZGU6ICdCUScsIGRhdGFzZXRDb2RlOiAnYnEtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQm9uYWlyZSwgU2ludCBFdXN0YXRpdXMgYW5kIFNhYmEnLCBpc28zQ29kZTogJ0JFUycsIGlzbzJDb2RlOiAnQlEnLCBkYXRhc2V0Q29kZTogJ2JxLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdCb3NuaWEgYW5kIEhlcnplZ292aW5hJywgaXNvM0NvZGU6ICdCSUgnLCBpc28yQ29kZTogJ0JBJywgZGF0YXNldENvZGU6ICdiYS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdCb3NuaWEgYW5kIEhlcnplZ292aW5hJywgaXNvM0NvZGU6ICdCSUgnLCBpc28yQ29kZTogJ0JBJywgZGF0YXNldENvZGU6ICdiYS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQm90c3dhbmEnLCBpc28zQ29kZTogJ0JXQScsIGlzbzJDb2RlOiAnQlcnLCBkYXRhc2V0Q29kZTogJ2J3LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0JvdHN3YW5hJywgaXNvM0NvZGU6ICdCV0EnLCBpc28yQ29kZTogJ0JXJywgZGF0YXNldENvZGU6ICdidy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQnJhemlsJywgaXNvM0NvZGU6ICdCUkEnLCBpc28yQ29kZTogJ0JSJywgZGF0YXNldENvZGU6ICdici1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdCcmF6aWwnLCBpc28zQ29kZTogJ0JSQScsIGlzbzJDb2RlOiAnQlInLCBkYXRhc2V0Q29kZTogJ2JyLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdCcnVuZWkgRGFydXNzYWxhbScsIGlzbzNDb2RlOiAnQlJOJywgaXNvMkNvZGU6ICdCTicsIGRhdGFzZXRDb2RlOiAnYm4tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQnJ1bmVpIERhcnVzc2FsYW0nLCBpc28zQ29kZTogJ0JSTicsIGlzbzJDb2RlOiAnQk4nLCBkYXRhc2V0Q29kZTogJ2JuLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdCdWxnYXJpYScsIGlzbzNDb2RlOiAnQkdSJywgaXNvMkNvZGU6ICdCRycsIGRhdGFzZXRDb2RlOiAnYmctYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQnVsZ2FyaWEnLCBpc28zQ29kZTogJ0JHUicsIGlzbzJDb2RlOiAnQkcnLCBkYXRhc2V0Q29kZTogJ2JnLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdCdXJraW5hIEZhc28nLCBpc28zQ29kZTogJ0JGQScsIGlzbzJDb2RlOiAnQkYnLCBkYXRhc2V0Q29kZTogJ2JmLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0J1cmtpbmEgRmFzbycsIGlzbzNDb2RlOiAnQkZBJywgaXNvMkNvZGU6ICdCRicsIGRhdGFzZXRDb2RlOiAnYmYtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0J1cnVuZGknLCBpc28zQ29kZTogJ0JESScsIGlzbzJDb2RlOiAnQkknLCBkYXRhc2V0Q29kZTogJ2JpLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdDYW1ib2RpYScsIGlzbzNDb2RlOiAnS0hNJywgaXNvMkNvZGU6ICdLSCcsIGRhdGFzZXRDb2RlOiAna2gtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQ2FtYm9kaWEnLCBpc28zQ29kZTogJ0tITScsIGlzbzJDb2RlOiAnS0gnLCBkYXRhc2V0Q29kZTogJ2toLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdDYW1lcm9vbicsIGlzbzNDb2RlOiAnQ01SJywgaXNvMkNvZGU6ICdDTScsIGRhdGFzZXRDb2RlOiAnY20tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQ2FtZXJvb24nLCBpc28zQ29kZTogJ0NNUicsIGlzbzJDb2RlOiAnQ00nLCBkYXRhc2V0Q29kZTogJ2NtLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdDYW5hZGEnLCBpc28zQ29kZTogJ0NBTicsIGlzbzJDb2RlOiAnQ0EnLCBkYXRhc2V0Q29kZTogJ2NhLWFkZHJlc3MnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlLCBzaW5nbGVsaW5lLCB0eXBlZG93biwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0NhcGUgVmVyZGUnLCBpc28zQ29kZTogJ0NQVicsIGlzbzJDb2RlOiAnQ1YnLCBkYXRhc2V0Q29kZTogJ2N2LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0NhcGUgVmVyZGUnLCBpc28zQ29kZTogJ0NQVicsIGlzbzJDb2RlOiAnQ1YnLCBkYXRhc2V0Q29kZTogJ2N2LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdDYXltYW4gSXNsYW5kcycsIGlzbzNDb2RlOiAnQ1lNJywgaXNvMkNvZGU6ICdLWScsIGRhdGFzZXRDb2RlOiAna3ktYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQ2F5bWFuIElzbGFuZHMnLCBpc28zQ29kZTogJ0NZTScsIGlzbzJDb2RlOiAnS1knLCBkYXRhc2V0Q29kZTogJ2t5LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdDZW50cmFsIEFmcmljYW4gUmVwdWJsaWMnLCBpc28zQ29kZTogJ0NBRicsIGlzbzJDb2RlOiAnQ0YnLCBkYXRhc2V0Q29kZTogJ2NmLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0NlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYycsIGlzbzNDb2RlOiAnQ0FGJywgaXNvMkNvZGU6ICdDRicsIGRhdGFzZXRDb2RlOiAnY2YtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0NoYWQnLCBpc28zQ29kZTogJ1RDRCcsIGlzbzJDb2RlOiAnVEQnLCBkYXRhc2V0Q29kZTogJ3RkLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0NoYWQnLCBpc28zQ29kZTogJ1RDRCcsIGlzbzJDb2RlOiAnVEQnLCBkYXRhc2V0Q29kZTogJ3RkLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdDaGlsZScsIGlzbzNDb2RlOiAnQ0hMJywgaXNvMkNvZGU6ICdDTCcsIGRhdGFzZXRDb2RlOiAnY2wtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQ2hpbGUnLCBpc28zQ29kZTogJ0NITCcsIGlzbzJDb2RlOiAnQ0wnLCBkYXRhc2V0Q29kZTogJ2NsLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdDaGluYScsIGlzbzNDb2RlOiAnQ0hOJywgaXNvMkNvZGU6ICdDTicsIGRhdGFzZXRDb2RlOiAnY24tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQ2hpbmEnLCBpc28zQ29kZTogJ0NITicsIGlzbzJDb2RlOiAnQ04nLCBkYXRhc2V0Q29kZTogJ2NuLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdDaHJpc3RtYXMgSXNsYW5kJywgaXNvM0NvZGU6ICdDWFInLCBpc28yQ29kZTogJ0NYJywgZGF0YXNldENvZGU6ICdjeC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQ29jb3MgSXNsYW5kJywgaXNvM0NvZGU6ICdDQ0snLCBpc28yQ29kZTogJ0NDJywgZGF0YXNldENvZGU6ICdjYy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQ29sb21iaWEnLCBpc28zQ29kZTogJ0NPTCcsIGlzbzJDb2RlOiAnQ08nLCBkYXRhc2V0Q29kZTogJ2NvLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0NvbG9tYmlhJywgaXNvM0NvZGU6ICdDT0wnLCBpc28yQ29kZTogJ0NPJywgZGF0YXNldENvZGU6ICdjby1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQ29tb3JvcycsIGlzbzNDb2RlOiAnQ09NJywgaXNvMkNvZGU6ICdLTScsIGRhdGFzZXRDb2RlOiAna20tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQ29tb3JvcycsIGlzbzNDb2RlOiAnQ09NJywgaXNvMkNvZGU6ICdLTScsIGRhdGFzZXRDb2RlOiAna20tYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0NvbmdvJywgaXNvM0NvZGU6ICdDT0cnLCBpc28yQ29kZTogJ0NHJywgZGF0YXNldENvZGU6ICdjZy1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdDb25nbycsIGlzbzNDb2RlOiAnQ09HJywgaXNvMkNvZGU6ICdDRycsIGRhdGFzZXRDb2RlOiAnY2ctYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0NvbmdvLCBUaGUgRGVtb2NyYXRpYyBSZXB1YmxpYyBvZiB0aGUnLCBpc28zQ29kZTogJ0NPRCcsIGlzbzJDb2RlOiAnQ0QnLCBkYXRhc2V0Q29kZTogJ2NkLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0NvbmdvLCBUaGUgRGVtb2NyYXRpYyBSZXB1YmxpYyBvZiB0aGUnLCBpc28zQ29kZTogJ0NPRCcsIGlzbzJDb2RlOiAnQ0QnLCBkYXRhc2V0Q29kZTogJ2NkLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdDb29rIElzbGFuZHMnLCBpc28zQ29kZTogJ0NPSycsIGlzbzJDb2RlOiAnQ0snLCBkYXRhc2V0Q29kZTogJ2NrLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0Nvb2sgSXNsYW5kcycsIGlzbzNDb2RlOiAnQ09LJywgaXNvMkNvZGU6ICdDSycsIGRhdGFzZXRDb2RlOiAnY2stYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0Nvc3RhIFJpY2EnLCBpc28zQ29kZTogJ0NSSScsIGlzbzJDb2RlOiAnQ1InLCBkYXRhc2V0Q29kZTogJ2NyLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0Nvc3RhIFJpY2EnLCBpc28zQ29kZTogJ0NSSScsIGlzbzJDb2RlOiAnQ1InLCBkYXRhc2V0Q29kZTogJ2NyLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdDcm9hdGlhJywgaXNvM0NvZGU6ICdIUlYnLCBpc28yQ29kZTogJ0hSJywgZGF0YXNldENvZGU6ICdoci1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdDcm9hdGlhJywgaXNvM0NvZGU6ICdIUlYnLCBpc28yQ29kZTogJ0hSJywgZGF0YXNldENvZGU6ICdoci1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQ3ViYScsIGlzbzNDb2RlOiAnQ1VCJywgaXNvMkNvZGU6ICdDVScsIGRhdGFzZXRDb2RlOiAnY3UtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQ3ViYScsIGlzbzNDb2RlOiAnQ1VCJywgaXNvMkNvZGU6ICdDVScsIGRhdGFzZXRDb2RlOiAnY3UtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0N1cmHDp2FvJywgaXNvM0NvZGU6ICdDVVcnLCBpc28yQ29kZTogJ0NXJywgZGF0YXNldENvZGU6ICdjdy1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdDdXJhw6dhbycsIGlzbzNDb2RlOiAnQ1VXJywgaXNvMkNvZGU6ICdDVycsIGRhdGFzZXRDb2RlOiAnY3ctYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0N5cHJ1cycsIGlzbzNDb2RlOiAnQ1lQJywgaXNvMkNvZGU6ICdDWScsIGRhdGFzZXRDb2RlOiAnY3ktYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQ3lwcnVzJywgaXNvM0NvZGU6ICdDWVAnLCBpc28yQ29kZTogJ0NZJywgZGF0YXNldENvZGU6ICdjeS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQ3plY2ggUmVwdWJsaWMnLCBpc28zQ29kZTogJ0NaRScsIGlzbzJDb2RlOiAnQ1onLCBkYXRhc2V0Q29kZTogJ2N6LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0N6ZWNoIFJlcHVibGljJywgaXNvM0NvZGU6ICdDWkUnLCBpc28yQ29kZTogJ0NaJywgZGF0YXNldENvZGU6ICdjei1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQ8O0dGUgZFxcJ0l2b2lyZScsIGlzbzNDb2RlOiAnQ0lWJywgaXNvMkNvZGU6ICdDSScsIGRhdGFzZXRDb2RlOiAnY2ktYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnQ8O0dGUgZFxcJ0l2b2lyZScsIGlzbzNDb2RlOiAnQ0lWJywgaXNvMkNvZGU6ICdDSScsIGRhdGFzZXRDb2RlOiAnY2ktYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0Rlbm1hcmsnLCBpc28zQ29kZTogJ0ROSycsIGlzbzJDb2RlOiAnREsnLCBkYXRhc2V0Q29kZTogJ2RrLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0Rlbm1hcmsnLCBpc28zQ29kZTogJ0ROSycsIGlzbzJDb2RlOiAnREsnLCBkYXRhc2V0Q29kZTogJ2RrLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdEamlib3V0aScsIGlzbzNDb2RlOiAnREpJJywgaXNvMkNvZGU6ICdESicsIGRhdGFzZXRDb2RlOiAnZGotYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnRGppYm91dGknLCBpc28zQ29kZTogJ0RKSScsIGlzbzJDb2RlOiAnREonLCBkYXRhc2V0Q29kZTogJ2RqLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdEb21pbmljYScsIGlzbzNDb2RlOiAnRE1BJywgaXNvMkNvZGU6ICdETScsIGRhdGFzZXRDb2RlOiAnZG0tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnRG9taW5pY2EnLCBpc28zQ29kZTogJ0RNQScsIGlzbzJDb2RlOiAnRE0nLCBkYXRhc2V0Q29kZTogJ2RtLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdEb21pbmljYW4gUmVwdWJsaWMnLCBpc28zQ29kZTogJ0RPTScsIGlzbzJDb2RlOiAnRE8nLCBkYXRhc2V0Q29kZTogJ2RvLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0RvbWluaWNhbiBSZXB1YmxpYycsIGlzbzNDb2RlOiAnRE9NJywgaXNvMkNvZGU6ICdETycsIGRhdGFzZXRDb2RlOiAnZG8tYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0VjdWFkb3InLCBpc28zQ29kZTogJ0VDVScsIGlzbzJDb2RlOiAnRUMnLCBkYXRhc2V0Q29kZTogJ2VjLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0VjdWFkb3InLCBpc28zQ29kZTogJ0VDVScsIGlzbzJDb2RlOiAnRUMnLCBkYXRhc2V0Q29kZTogJ2VjLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdFZ3lwdCcsIGlzbzNDb2RlOiAnRUdZJywgaXNvMkNvZGU6ICdFRycsIGRhdGFzZXRDb2RlOiAnZWctYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnRWd5cHQnLCBpc28zQ29kZTogJ0VHWScsIGlzbzJDb2RlOiAnRUcnLCBkYXRhc2V0Q29kZTogJ2VnLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdFbCBTYWx2YWRvcicsIGlzbzNDb2RlOiAnU0xWJywgaXNvMkNvZGU6ICdTVicsIGRhdGFzZXRDb2RlOiAnc3YtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnRWwgU2FsdmFkb3InLCBpc28zQ29kZTogJ1NMVicsIGlzbzJDb2RlOiAnU1YnLCBkYXRhc2V0Q29kZTogJ3N2LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdFcXVhdG9yaWFsIEd1aW5lYScsIGlzbzNDb2RlOiAnR05RJywgaXNvMkNvZGU6ICdHUScsIGRhdGFzZXRDb2RlOiAnZ3EtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnRXF1YXRvcmlhbCBHdWluZWEnLCBpc28zQ29kZTogJ0dOUScsIGlzbzJDb2RlOiAnR1EnLCBkYXRhc2V0Q29kZTogJ2dxLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdFcml0cmVhJywgaXNvM0NvZGU6ICdFUkknLCBpc28yQ29kZTogJ0VSJywgZGF0YXNldENvZGU6ICdlci1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdFcml0cmVhJywgaXNvM0NvZGU6ICdFUkknLCBpc28yQ29kZTogJ0VSJywgZGF0YXNldENvZGU6ICdlci1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnRXN0b25pYScsIGlzbzNDb2RlOiAnRVNUJywgaXNvMkNvZGU6ICdFRScsIGRhdGFzZXRDb2RlOiAnZWUtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnRXN0b25pYScsIGlzbzNDb2RlOiAnRVNUJywgaXNvMkNvZGU6ICdFRScsIGRhdGFzZXRDb2RlOiAnZWUtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0V0aGlvcGlhJywgaXNvM0NvZGU6ICdFVEgnLCBpc28yQ29kZTogJ0VUJywgZGF0YXNldENvZGU6ICdldC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdFdGhpb3BpYScsIGlzbzNDb2RlOiAnRVRIJywgaXNvMkNvZGU6ICdFVCcsIGRhdGFzZXRDb2RlOiAnZXQtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0ZhbGtsYW5kIElzbGFuZHMgKE1hbHZpbmFzKScsIGlzbzNDb2RlOiAnRkxLJywgaXNvMkNvZGU6ICdGSycsIGRhdGFzZXRDb2RlOiAnZmstYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0Zhcm9lIElzbGFuZHMnLCBpc28zQ29kZTogJ0ZSTycsIGlzbzJDb2RlOiAnRk8nLCBkYXRhc2V0Q29kZTogJ2ZvLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0Zhcm9lIElzbGFuZHMnLCBpc28zQ29kZTogJ0ZSTycsIGlzbzJDb2RlOiAnRk8nLCBkYXRhc2V0Q29kZTogJ2ZvLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdGaWppJywgaXNvM0NvZGU6ICdGSkknLCBpc28yQ29kZTogJ0ZKJywgZGF0YXNldENvZGU6ICdmai1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdGaWppJywgaXNvM0NvZGU6ICdGSkknLCBpc28yQ29kZTogJ0ZKJywgZGF0YXNldENvZGU6ICdmai1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnRmlubGFuZCcsIGlzbzNDb2RlOiAnRklOJywgaXNvMkNvZGU6ICdGSScsIGRhdGFzZXRDb2RlOiAnZmktYWRkcmVzcycsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB0eXBlZG93bid9LFxyXG4gIHtjb3VudHJ5OiAnRmlubGFuZCcsIGlzbzNDb2RlOiAnRklOJywgaXNvMkNvZGU6ICdGSScsIGRhdGFzZXRDb2RlOiAnZmktYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICd2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnRmlubGFuZCcsIGlzbzNDb2RlOiAnRklOJywgaXNvMkNvZGU6ICdGSScsIGRhdGFzZXRDb2RlOiAnZmktYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0ZyYW5jZSBTdHJlZXQgTGV2ZWwnLCBpc28zQ29kZTogJ0ZSQScsIGlzbzJDb2RlOiAnRlInLCBkYXRhc2V0Q29kZTogJ2ZyLWFkZHJlc3Mtc3RyZWV0bGV2ZWwnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdHlwZWRvd24sIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdGcmFuY2UgU3ViLVByZW1pc2VzIExldmVsJywgaXNvM0NvZGU6ICdGUkEnLCBpc28yQ29kZTogJ0ZSJywgZGF0YXNldENvZGU6ICdmci1hZGRpdGlvbmFsLWhleGFsaW5lMycsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUsIHNpbmdsZWxpbmUsIHR5cGVkb3duJ30sXHJcbiAge2NvdW50cnk6ICdGcmFuY2UgUHJlbWlzZXMgTGV2ZWwnLCBpc28zQ29kZTogJ0ZSQScsIGlzbzJDb2RlOiAnRlInLCBkYXRhc2V0Q29kZTogJ2ZyLWFkZHJlc3MnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdHlwZWRvd24sIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdGcmVuY2ggR3VpYW5hJywgaXNvM0NvZGU6ICdHVUYnLCBpc28yQ29kZTogJ0dGJywgZGF0YXNldENvZGU6ICdnZi1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnRnJlbmNoIFBvbHluZXNpYScsIGlzbzNDb2RlOiAnUFlGJywgaXNvMkNvZGU6ICdQRicsIGRhdGFzZXRDb2RlOiAncGYtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0dhYm9uJywgaXNvM0NvZGU6ICdHQUInLCBpc28yQ29kZTogJ0dBJywgZGF0YXNldENvZGU6ICdnYS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdHYWJvbicsIGlzbzNDb2RlOiAnR0FCJywgaXNvMkNvZGU6ICdHQScsIGRhdGFzZXRDb2RlOiAnZ2EtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0dhbWJpYScsIGlzbzNDb2RlOiAnR01CJywgaXNvMkNvZGU6ICdHTScsIGRhdGFzZXRDb2RlOiAnZ20tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnR2FtYmlhJywgaXNvM0NvZGU6ICdHTUInLCBpc28yQ29kZTogJ0dNJywgZGF0YXNldENvZGU6ICdnbS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnR2VvcmdpYScsIGlzbzNDb2RlOiAnR0VPJywgaXNvMkNvZGU6ICdHRScsIGRhdGFzZXRDb2RlOiAnZ2UtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnR2VvcmdpYScsIGlzbzNDb2RlOiAnR0VPJywgaXNvMkNvZGU6ICdHRScsIGRhdGFzZXRDb2RlOiAnZ2UtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0dlcm1hbnknLCBpc28zQ29kZTogJ0RFVScsIGlzbzJDb2RlOiAnREUnLCBkYXRhc2V0Q29kZTogJ2RlLWFkZHJlc3MnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdHlwZWRvd24sIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdHZXJtYW55JywgaXNvM0NvZGU6ICdERVUnLCBpc28yQ29kZTogJ0RFJywgZGF0YXNldENvZGU6ICdkZS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3ZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdHZXJtYW55JywgaXNvM0NvZGU6ICdERVUnLCBpc28yQ29kZTogJ0RFJywgZGF0YXNldENvZGU6ICdkZS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnR2hhbmEnLCBpc28zQ29kZTogJ0dIQScsIGlzbzJDb2RlOiAnR0gnLCBkYXRhc2V0Q29kZTogJ2doLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0doYW5hJywgaXNvM0NvZGU6ICdHSEEnLCBpc28yQ29kZTogJ0dIJywgZGF0YXNldENvZGU6ICdnaC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnR2licmFsdGFyJywgaXNvM0NvZGU6ICdHSUInLCBpc28yQ29kZTogJ0dJJywgZGF0YXNldENvZGU6ICdnaS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnR3JlZWNlJywgaXNvM0NvZGU6ICdHUkMnLCBpc28yQ29kZTogJ0dSJywgZGF0YXNldENvZGU6ICdnci1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdHcmVlY2UnLCBpc28zQ29kZTogJ0dSQycsIGlzbzJDb2RlOiAnR1InLCBkYXRhc2V0Q29kZTogJ2dyLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdHcmVlbmxhbmQnLCBpc28zQ29kZTogJ0dSTCcsIGlzbzJDb2RlOiAnR0wnLCBkYXRhc2V0Q29kZTogJ2dsLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0dyZWVubGFuZCcsIGlzbzNDb2RlOiAnR1JMJywgaXNvMkNvZGU6ICdHTCcsIGRhdGFzZXRDb2RlOiAnZ2wtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0dyZW5hZGEnLCBpc28zQ29kZTogJ0dSRCcsIGlzbzJDb2RlOiAnR0QnLCBkYXRhc2V0Q29kZTogJ2dkLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0dyZW5hZGEnLCBpc28zQ29kZTogJ0dSRCcsIGlzbzJDb2RlOiAnR0QnLCBkYXRhc2V0Q29kZTogJ2dkLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdHdWFkZWxvdXBlJywgaXNvM0NvZGU6ICdHTFAnLCBpc28yQ29kZTogJ0dQJywgZGF0YXNldENvZGU6ICdncC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnR3VhbScsIGlzbzNDb2RlOiAnR1VNJywgaXNvMkNvZGU6ICdHVScsIGRhdGFzZXRDb2RlOiAnZ3UtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0d1YXRlbWFsYScsIGlzbzNDb2RlOiAnR1RNJywgaXNvMkNvZGU6ICdHVCcsIGRhdGFzZXRDb2RlOiAnZ3QtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnR3VhdGVtYWxhJywgaXNvM0NvZGU6ICdHVE0nLCBpc28yQ29kZTogJ0dUJywgZGF0YXNldENvZGU6ICdndC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnR3VpbmVhJywgaXNvM0NvZGU6ICdHSU4nLCBpc28yQ29kZTogJ0dOJywgZGF0YXNldENvZGU6ICdnbi1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdHdWluZWEnLCBpc28zQ29kZTogJ0dJTicsIGlzbzJDb2RlOiAnR04nLCBkYXRhc2V0Q29kZTogJ2duLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdHdWluZWEtQmlzc2F1JywgaXNvM0NvZGU6ICdHTkInLCBpc28yQ29kZTogJ0dXJywgZGF0YXNldENvZGU6ICdndy1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdHdWluZWEtQmlzc2F1JywgaXNvM0NvZGU6ICdHTkInLCBpc28yQ29kZTogJ0dXJywgZGF0YXNldENvZGU6ICdndy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnR3V5YW5hJywgaXNvM0NvZGU6ICdHVVknLCBpc28yQ29kZTogJ0dZJywgZGF0YXNldENvZGU6ICdneS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdHdXlhbmEnLCBpc28zQ29kZTogJ0dVWScsIGlzbzJDb2RlOiAnR1knLCBkYXRhc2V0Q29kZTogJ2d5LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdIYWl0aScsIGlzbzNDb2RlOiAnSFRJJywgaXNvMkNvZGU6ICdIVCcsIGRhdGFzZXRDb2RlOiAnaHQtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnSGFpdGknLCBpc28zQ29kZTogJ0hUSScsIGlzbzJDb2RlOiAnSFQnLCBkYXRhc2V0Q29kZTogJ2h0LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdIb25kdXJhcycsIGlzbzNDb2RlOiAnSE5EJywgaXNvMkNvZGU6ICdITicsIGRhdGFzZXRDb2RlOiAnaG4tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnSG9uZHVyYXMnLCBpc28zQ29kZTogJ0hORCcsIGlzbzJDb2RlOiAnSE4nLCBkYXRhc2V0Q29kZTogJ2huLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdIb25nIEtvbmcnLCBpc28zQ29kZTogJ0hLRycsIGlzbzJDb2RlOiAnSEsnLCBkYXRhc2V0Q29kZTogJ2hrLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0hvbmcgS29uZycsIGlzbzNDb2RlOiAnSEtHJywgaXNvMkNvZGU6ICdISycsIGRhdGFzZXRDb2RlOiAnaGstYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0h1bmdhcnknLCBpc28zQ29kZTogJ0hVTicsIGlzbzJDb2RlOiAnSFUnLCBkYXRhc2V0Q29kZTogJ2h1LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0h1bmdhcnknLCBpc28zQ29kZTogJ0hVTicsIGlzbzJDb2RlOiAnSFUnLCBkYXRhc2V0Q29kZTogJ2h1LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdJY2VsYW5kJywgaXNvM0NvZGU6ICdJU0wnLCBpc28yQ29kZTogJ0lTJywgZGF0YXNldENvZGU6ICdpcy1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdJY2VsYW5kJywgaXNvM0NvZGU6ICdJU0wnLCBpc28yQ29kZTogJ0lTJywgZGF0YXNldENvZGU6ICdpcy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnSW5kaWEnLCBpc28zQ29kZTogJ0lORCcsIGlzbzJDb2RlOiAnSU4nLCBkYXRhc2V0Q29kZTogJ2luLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0luZGlhJywgaXNvM0NvZGU6ICdJTkQnLCBpc28yQ29kZTogJ0lOJywgZGF0YXNldENvZGU6ICdpbi1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnSW5kb25lc2lhJywgaXNvM0NvZGU6ICdJRE4nLCBpc28yQ29kZTogJ0lEJywgZGF0YXNldENvZGU6ICdpZC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdJbmRvbmVzaWEnLCBpc28zQ29kZTogJ0lETicsIGlzbzJDb2RlOiAnSUQnLCBkYXRhc2V0Q29kZTogJ2lkLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdJcmFuLCBJc2xhbWljIFJlcHVibGljIG9mJywgaXNvM0NvZGU6ICdJUk4nLCBpc28yQ29kZTogJ0lSJywgZGF0YXNldENvZGU6ICdpci1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdJcmFuLCBJc2xhbWljIFJlcHVibGljIG9mJywgaXNvM0NvZGU6ICdJUk4nLCBpc28yQ29kZTogJ0lSJywgZGF0YXNldENvZGU6ICdpci1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnSXJhcScsIGlzbzNDb2RlOiAnSVJRJywgaXNvMkNvZGU6ICdJUScsIGRhdGFzZXRDb2RlOiAnaXEtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnSXJhcScsIGlzbzNDb2RlOiAnSVJRJywgaXNvMkNvZGU6ICdJUScsIGRhdGFzZXRDb2RlOiAnaXEtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0lyZWxhbmQnLCBpc28zQ29kZTogJ0lSTCcsIGlzbzJDb2RlOiAnSUUnLCBkYXRhc2V0Q29kZTogJ2llLWFkZHJlc3MnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdHlwZWRvd24nfSxcclxuICB7Y291bnRyeTogJ0lyZWxhbmQnLCBpc28zQ29kZTogJ0lSTCcsIGlzbzJDb2RlOiAnSUUnLCBkYXRhc2V0Q29kZTogJ2llLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0lyZWxhbmQnLCBpc28zQ29kZTogJ0lSTCcsIGlzbzJDb2RlOiAnSUUnLCBkYXRhc2V0Q29kZTogJ2llLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdJcmVsYW5kIEVpcmNvZGUnLCBpc28zQ29kZTogJ0lSTCcsIGlzbzJDb2RlOiAnSUUnLCBkYXRhc2V0Q29kZTogJ2llLWFkZGl0aW9uYWwtZWlyY29kZScsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0lyZWxhbmQgRUNBRCcsIGlzbzNDb2RlOiAnSVJMJywgaXNvMkNvZGU6ICdJRScsIGRhdGFzZXRDb2RlOiAnaWUtYWRkcmVzcy1lY2FkJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnSXNyYWVsJywgaXNvM0NvZGU6ICdJU1InLCBpc28yQ29kZTogJ0lMJywgZGF0YXNldENvZGU6ICdpbC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdJc3JhZWwnLCBpc28zQ29kZTogJ0lTUicsIGlzbzJDb2RlOiAnSUwnLCBkYXRhc2V0Q29kZTogJ2lsLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdJdGFseScsIGlzbzNDb2RlOiAnSVRBJywgaXNvMkNvZGU6ICdJVCcsIGRhdGFzZXRDb2RlOiAnaXQtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnSXRhbHknLCBpc28zQ29kZTogJ0lUQScsIGlzbzJDb2RlOiAnSVQnLCBkYXRhc2V0Q29kZTogJ2l0LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdKYW1haWNhJywgaXNvM0NvZGU6ICdKQU0nLCBpc28yQ29kZTogJ0pNJywgZGF0YXNldENvZGU6ICdqbS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdKYW1haWNhJywgaXNvM0NvZGU6ICdKQU0nLCBpc28yQ29kZTogJ0pNJywgZGF0YXNldENvZGU6ICdqbS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnSmFwYW4nLCBpc28zQ29kZTogJ0pQTicsIGlzbzJDb2RlOiAnSlAnLCBkYXRhc2V0Q29kZTogJ2pwLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0phcGFuJywgaXNvM0NvZGU6ICdKUE4nLCBpc28yQ29kZTogJ0pQJywgZGF0YXNldENvZGU6ICdqcC1hZGRyZXNzJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdKb3JkYW4nLCBpc28zQ29kZTogJ0pPUicsIGlzbzJDb2RlOiAnSk8nLCBkYXRhc2V0Q29kZTogJ2pvLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0pvcmRhbicsIGlzbzNDb2RlOiAnSk9SJywgaXNvMkNvZGU6ICdKTycsIGRhdGFzZXRDb2RlOiAnam8tYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0themFraHN0YW4nLCBpc28zQ29kZTogJ0tBWicsIGlzbzJDb2RlOiAnS1onLCBkYXRhc2V0Q29kZTogJ2t6LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0themFraHN0YW4nLCBpc28zQ29kZTogJ0tBWicsIGlzbzJDb2RlOiAnS1onLCBkYXRhc2V0Q29kZTogJ2t6LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdLZW55YScsIGlzbzNDb2RlOiAnS0VOJywgaXNvMkNvZGU6ICdLRScsIGRhdGFzZXRDb2RlOiAna2UtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnS2VueWEnLCBpc28zQ29kZTogJ0tFTicsIGlzbzJDb2RlOiAnS0UnLCBkYXRhc2V0Q29kZTogJ2tlLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdLaXJpYmF0aScsIGlzbzNDb2RlOiAnS0lSJywgaXNvMkNvZGU6ICdLSScsIGRhdGFzZXRDb2RlOiAna2ktYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnS2lyaWJhdGknLCBpc28zQ29kZTogJ0tJUicsIGlzbzJDb2RlOiAnS0knLCBkYXRhc2V0Q29kZTogJ2tpLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdLb3JlYSwgRGVtb2NyYXRpYyBQZW9wbGVcXCdzIFJlcHVibGljIG9mJywgaXNvM0NvZGU6ICdQUksnLCBpc28yQ29kZTogJ0tQJywgZGF0YXNldENvZGU6ICdrcC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdLb3JlYSwgRGVtb2NyYXRpYyBQZW9wbGVcXCdzIFJlcHVibGljIG9mJywgaXNvM0NvZGU6ICdQUksnLCBpc28yQ29kZTogJ0tQJywgZGF0YXNldENvZGU6ICdrcC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnS29yZWEsIFJlcHVibGljIG9mJywgaXNvM0NvZGU6ICdLT1InLCBpc28yQ29kZTogJ0tSJywgZGF0YXNldENvZGU6ICdrci1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdLb3JlYSwgUmVwdWJsaWMgb2YnLCBpc28zQ29kZTogJ0tPUicsIGlzbzJDb2RlOiAnS1InLCBkYXRhc2V0Q29kZTogJ2tyLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdLb3Nvdm8nLCBpc28zQ29kZTogJ0tPUycsIGlzbzJDb2RlOiAnWEsnLCBkYXRhc2V0Q29kZTogJ2t2LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdLdXdhaXQnLCBpc28zQ29kZTogJ0tXVCcsIGlzbzJDb2RlOiAnS1cnLCBkYXRhc2V0Q29kZTogJ2t3LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0t1d2FpdCcsIGlzbzNDb2RlOiAnS1dUJywgaXNvMkNvZGU6ICdLVycsIGRhdGFzZXRDb2RlOiAna3ctYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0t5cmd5enN0YW4nLCBpc28zQ29kZTogJ0tHWicsIGlzbzJDb2RlOiAnS0cnLCBkYXRhc2V0Q29kZTogJ2tnLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0t5cmd5enN0YW4nLCBpc28zQ29kZTogJ0tHWicsIGlzbzJDb2RlOiAnS0cnLCBkYXRhc2V0Q29kZTogJ2tnLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdMYW9zJywgaXNvM0NvZGU6ICdMQU8nLCBpc28yQ29kZTogJ0xBJywgZGF0YXNldENvZGU6ICdsYS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdMYW9zJywgaXNvM0NvZGU6ICdMQU8nLCBpc28yQ29kZTogJ0xBJywgZGF0YXNldENvZGU6ICdsYS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTGF0dmlhJywgaXNvM0NvZGU6ICdMVkEnLCBpc28yQ29kZTogJ0xWJywgZGF0YXNldENvZGU6ICdsdi1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdMYXR2aWEnLCBpc28zQ29kZTogJ0xWQScsIGlzbzJDb2RlOiAnTFYnLCBkYXRhc2V0Q29kZTogJ2x2LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdMZWJhbm9uJywgaXNvM0NvZGU6ICdMQk4nLCBpc28yQ29kZTogJ0xCJywgZGF0YXNldENvZGU6ICdsYi1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdMZWJhbm9uJywgaXNvM0NvZGU6ICdMQk4nLCBpc28yQ29kZTogJ0xCJywgZGF0YXNldENvZGU6ICdsYi1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTGVzb3RobycsIGlzbzNDb2RlOiAnTFNPJywgaXNvMkNvZGU6ICdMUycsIGRhdGFzZXRDb2RlOiAnbHMtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTGVzb3RobycsIGlzbzNDb2RlOiAnTFNPJywgaXNvMkNvZGU6ICdMUycsIGRhdGFzZXRDb2RlOiAnbHMtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ0xpYmVyaWEnLCBpc28zQ29kZTogJ0xCUicsIGlzbzJDb2RlOiAnTFInLCBkYXRhc2V0Q29kZTogJ2xyLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ0xpYmVyaWEnLCBpc28zQ29kZTogJ0xCUicsIGlzbzJDb2RlOiAnTFInLCBkYXRhc2V0Q29kZTogJ2xyLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdMaWJ5YScsIGlzbzNDb2RlOiAnTEJZJywgaXNvMkNvZGU6ICdMWScsIGRhdGFzZXRDb2RlOiAnbHktYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTGlieWEnLCBpc28zQ29kZTogJ0xCWScsIGlzbzJDb2RlOiAnTFknLCBkYXRhc2V0Q29kZTogJ2x5LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdMaWVjaHRlbnN0ZWluJywgaXNvM0NvZGU6ICdMSUUnLCBpc28yQ29kZTogJ0xJJywgZGF0YXNldENvZGU6ICdsaS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdMaWVjaHRlbnN0ZWluJywgaXNvM0NvZGU6ICdMSUUnLCBpc28yQ29kZTogJ0xJJywgZGF0YXNldENvZGU6ICdsaS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTGl0aHVhbmlhJywgaXNvM0NvZGU6ICdMVFUnLCBpc28yQ29kZTogJ0xUJywgZGF0YXNldENvZGU6ICdsdC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdMaXRodWFuaWEnLCBpc28zQ29kZTogJ0xUVScsIGlzbzJDb2RlOiAnTFQnLCBkYXRhc2V0Q29kZTogJ2x0LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdMdXhlbWJvdXJnJywgaXNvM0NvZGU6ICdMVVgnLCBpc28yQ29kZTogJ0xVJywgZGF0YXNldENvZGU6ICdsdS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdMdXhlbWJvdXJnJywgaXNvM0NvZGU6ICdMVVgnLCBpc28yQ29kZTogJ0xVJywgZGF0YXNldENvZGU6ICdsdS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTWFjYXUnLCBpc28zQ29kZTogJ01BQycsIGlzbzJDb2RlOiAnTU8nLCBkYXRhc2V0Q29kZTogJ2x2LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ01hY2F1JywgaXNvM0NvZGU6ICdNQUMnLCBpc28yQ29kZTogJ01PJywgZGF0YXNldENvZGU6ICdsdi1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTWFkYWdhc2NhcicsIGlzbzNDb2RlOiAnTURHJywgaXNvMkNvZGU6ICdNRycsIGRhdGFzZXRDb2RlOiAnbW8tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTWFkYWdhc2NhcicsIGlzbzNDb2RlOiAnTURHJywgaXNvMkNvZGU6ICdNRycsIGRhdGFzZXRDb2RlOiAnbW8tYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ01hbGF3aScsIGlzbzNDb2RlOiAnTVdJJywgaXNvMkNvZGU6ICdNVycsIGRhdGFzZXRDb2RlOiAnbXctYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTWFsYXdpJywgaXNvM0NvZGU6ICdNV0knLCBpc28yQ29kZTogJ01XJywgZGF0YXNldENvZGU6ICdtdy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTWFsYXlzaWEnLCBpc28zQ29kZTogJ01ZUycsIGlzbzJDb2RlOiAnTVknLCBkYXRhc2V0Q29kZTogJ215LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ01hbGF5c2lhJywgaXNvM0NvZGU6ICdNWVMnLCBpc28yQ29kZTogJ01ZJywgZGF0YXNldENvZGU6ICdteS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTWFsZGl2ZXMnLCBpc28zQ29kZTogJ01EVicsIGlzbzJDb2RlOiAnTVYnLCBkYXRhc2V0Q29kZTogJ212LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ01hbGRpdmVzJywgaXNvM0NvZGU6ICdNRFYnLCBpc28yQ29kZTogJ01WJywgZGF0YXNldENvZGU6ICdtdi1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTWFsaScsIGlzbzNDb2RlOiAnTUxJJywgaXNvMkNvZGU6ICdNTCcsIGRhdGFzZXRDb2RlOiAnbWwtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTWFsaScsIGlzbzNDb2RlOiAnTUxJJywgaXNvMkNvZGU6ICdNTCcsIGRhdGFzZXRDb2RlOiAnbWwtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ01hbHRhJywgaXNvM0NvZGU6ICdNTFQnLCBpc28yQ29kZTogJ01UJywgZGF0YXNldENvZGU6ICdtdC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdNYWx0YScsIGlzbzNDb2RlOiAnTUxUJywgaXNvMkNvZGU6ICdNVCcsIGRhdGFzZXRDb2RlOiAnbXQtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ01hcnNoYWxsIElzbGFuZHMnLCBpc28zQ29kZTogJ01ITCcsIGlzbzJDb2RlOiAnTUgnLCBkYXRhc2V0Q29kZTogJ21oLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdNYXJ0aW5pcXVlJywgaXNvM0NvZGU6ICdNVFEnLCBpc28yQ29kZTogJ01RJywgZGF0YXNldENvZGU6ICdtcS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTWF1cml0YW5pYScsIGlzbzNDb2RlOiAnTVJUJywgaXNvMkNvZGU6ICdNUicsIGRhdGFzZXRDb2RlOiAnbXItYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTWF1cml0YW5pYScsIGlzbzNDb2RlOiAnTVJUJywgaXNvMkNvZGU6ICdNUicsIGRhdGFzZXRDb2RlOiAnbXItYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ01hdXJpdGl1cycsIGlzbzNDb2RlOiAnTVVTJywgaXNvMkNvZGU6ICdNVScsIGRhdGFzZXRDb2RlOiAnbXUtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTWF1cml0aXVzJywgaXNvM0NvZGU6ICdNVVMnLCBpc28yQ29kZTogJ01VJywgZGF0YXNldENvZGU6ICdtdS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTWF5b3R0ZScsIGlzbzNDb2RlOiAnTVlUJywgaXNvMkNvZGU6ICdZVCcsIGRhdGFzZXRDb2RlOiAneXQtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ01leGljbycsIGlzbzNDb2RlOiAnTUVYJywgaXNvMkNvZGU6ICdNWCcsIGRhdGFzZXRDb2RlOiAnbXgtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTWV4aWNvJywgaXNvM0NvZGU6ICdNRVgnLCBpc28yQ29kZTogJ01YJywgZGF0YXNldENvZGU6ICdteC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTWljcm9uZXNpYSwgRmVkZXJhdGVkIFN0YXRlcyBvZicsIGlzbzNDb2RlOiAnRlNNJywgaXNvMkNvZGU6ICdGTScsIGRhdGFzZXRDb2RlOiAnZm0tYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ01vbGRvdmEnLCBpc28zQ29kZTogJ01EQScsIGlzbzJDb2RlOiAnTUQnLCBkYXRhc2V0Q29kZTogJ21kLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ01vbGRvdmEnLCBpc28zQ29kZTogJ01EQScsIGlzbzJDb2RlOiAnTUQnLCBkYXRhc2V0Q29kZTogJ21kLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdNb25hY28nLCBpc28zQ29kZTogJ01DTycsIGlzbzJDb2RlOiAnTUMnLCBkYXRhc2V0Q29kZTogJ21jLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ01vbmFjbycsIGlzbzNDb2RlOiAnTUNPJywgaXNvMkNvZGU6ICdNQycsIGRhdGFzZXRDb2RlOiAnbWMtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ01vbmdvbGlhJywgaXNvM0NvZGU6ICdNTkcnLCBpc28yQ29kZTogJ01OJywgZGF0YXNldENvZGU6ICdtbi1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdNb25nb2xpYScsIGlzbzNDb2RlOiAnTU5HJywgaXNvMkNvZGU6ICdNTicsIGRhdGFzZXRDb2RlOiAnbW4tYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ01vbnRlbmVncm8nLCBpc28zQ29kZTogJ01ORScsIGlzbzJDb2RlOiAnTUUnLCBkYXRhc2V0Q29kZTogJ21lLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ01vbnRlbmVncm8nLCBpc28zQ29kZTogJ01ORScsIGlzbzJDb2RlOiAnTUUnLCBkYXRhc2V0Q29kZTogJ21lLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdNb250c2VycmF0JywgaXNvM0NvZGU6ICdNU1InLCBpc28yQ29kZTogJ01TJywgZGF0YXNldENvZGU6ICdtcy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTW9yb2NjbycsIGlzbzNDb2RlOiAnTUFSJywgaXNvMkNvZGU6ICdNQScsIGRhdGFzZXRDb2RlOiAnbWEtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTW9yb2NjbycsIGlzbzNDb2RlOiAnTUFSJywgaXNvMkNvZGU6ICdNQScsIGRhdGFzZXRDb2RlOiAnbWEtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ01vemFtYmlxdWUnLCBpc28zQ29kZTogJ01PWicsIGlzbzJDb2RlOiAnTVonLCBkYXRhc2V0Q29kZTogJ216LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ01vemFtYmlxdWUnLCBpc28zQ29kZTogJ01PWicsIGlzbzJDb2RlOiAnTVonLCBkYXRhc2V0Q29kZTogJ216LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdNeWFubWFyJywgaXNvM0NvZGU6ICdNTVInLCBpc28yQ29kZTogJ01NJywgZGF0YXNldENvZGU6ICdtbS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdNeWFubWFyJywgaXNvM0NvZGU6ICdNTVInLCBpc28yQ29kZTogJ01NJywgZGF0YXNldENvZGU6ICdtbS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTmFtaWJpYScsIGlzbzNDb2RlOiAnTkFNJywgaXNvMkNvZGU6ICdOQScsIGRhdGFzZXRDb2RlOiAnbmEtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTmFtaWJpYScsIGlzbzNDb2RlOiAnTkFNJywgaXNvMkNvZGU6ICdOQScsIGRhdGFzZXRDb2RlOiAnbmEtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ05hdXJ1JywgaXNvM0NvZGU6ICdOUlUnLCBpc28yQ29kZTogJ05SJywgZGF0YXNldENvZGU6ICduci1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdOYXVydScsIGlzbzNDb2RlOiAnTlJVJywgaXNvMkNvZGU6ICdOUicsIGRhdGFzZXRDb2RlOiAnbnItYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ05lcGFsJywgaXNvM0NvZGU6ICdOUEwnLCBpc28yQ29kZTogJ05QJywgZGF0YXNldENvZGU6ICducC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdOZXBhbCcsIGlzbzNDb2RlOiAnTlBMJywgaXNvMkNvZGU6ICdOUCcsIGRhdGFzZXRDb2RlOiAnbnAtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ05ldGhlcmxhbmRzJywgaXNvM0NvZGU6ICdOTEQnLCBpc28yQ29kZTogJ05MJywgZGF0YXNldENvZGU6ICdubC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdOZXRoZXJsYW5kcycsIGlzbzNDb2RlOiAnTkxEJywgaXNvMkNvZGU6ICdOTCcsIGRhdGFzZXRDb2RlOiAnbmwtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ05ldyBDYWxlZG9uaWEnLCBpc28zQ29kZTogJ05DTCcsIGlzbzJDb2RlOiAnTkMnLCBkYXRhc2V0Q29kZTogJ25jLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdOZXcgWmVhbGFuZCBEYXRhRnVzaW9uJywgaXNvM0NvZGU6ICdOWkwnLCBpc28yQ29kZTogJ05aJywgZGF0YXNldENvZGU6ICduei1hZGRpdGlvbmFsLWRhdGFmdXNpb24nLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlLCBzaW5nbGVsaW5lLCB0eXBlZG93biwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ05ldyBaZWFsYW5kIFBvc3RhbCBBZGRyZXNzJywgaXNvM0NvZGU6ICdOWkwnLCBpc28yQ29kZTogJ05aJywgZGF0YXNldENvZGU6ICduei1hZGRyZXNzJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSwgc2luZ2xlbGluZSwgdHlwZWRvd24sIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdOaWNhcmFndWEnLCBpc28zQ29kZTogJ05JQycsIGlzbzJDb2RlOiAnTkknLCBkYXRhc2V0Q29kZTogJ25pLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ05pY2FyYWd1YScsIGlzbzNDb2RlOiAnTklDJywgaXNvMkNvZGU6ICdOSScsIGRhdGFzZXRDb2RlOiAnbmktYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ05pZ2VyJywgaXNvM0NvZGU6ICdORVInLCBpc28yQ29kZTogJ05FJywgZGF0YXNldENvZGU6ICduZS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdOaWdlcicsIGlzbzNDb2RlOiAnTkVSJywgaXNvMkNvZGU6ICdORScsIGRhdGFzZXRDb2RlOiAnbmUtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ05pZ2VyaWEnLCBpc28zQ29kZTogJ05HQScsIGlzbzJDb2RlOiAnTkcnLCBkYXRhc2V0Q29kZTogJ25nLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ05pZ2VyaWEnLCBpc28zQ29kZTogJ05HQScsIGlzbzJDb2RlOiAnTkcnLCBkYXRhc2V0Q29kZTogJ25nLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdOaXVlJywgaXNvM0NvZGU6ICdOSVUnLCBpc28yQ29kZTogJ05VJywgZGF0YXNldENvZGU6ICdudS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdOb3Jmb2xrIElzbGFuZCcsIGlzbzNDb2RlOiAnTkZLJywgaXNvMkNvZGU6ICdORicsIGRhdGFzZXRDb2RlOiAnbmYtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTm9yZm9sayBJc2xhbmQnLCBpc28zQ29kZTogJ05GSycsIGlzbzJDb2RlOiAnTkYnLCBkYXRhc2V0Q29kZTogJ25mLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdOb3J0aCBNYWNlZG9uaWEnLCBpc28zQ29kZTogJ01LRCcsIGlzbzJDb2RlOiAnTUsnLCBkYXRhc2V0Q29kZTogJ21rLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ05vcnRoIE1hY2Vkb25pYScsIGlzbzNDb2RlOiAnTUtEJywgaXNvMkNvZGU6ICdNSycsIGRhdGFzZXRDb2RlOiAnbWstYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ05vcnRoZXJuIE1hcmlhbmEgSXNsYW5kcycsIGlzbzNDb2RlOiAnTU5QJywgaXNvMkNvZGU6ICdNUCcsIGRhdGFzZXRDb2RlOiAnbXAtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ05vcndheScsIGlzbzNDb2RlOiAnTk9SJywgaXNvMkNvZGU6ICdOTycsIGRhdGFzZXRDb2RlOiAnbm8tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICd2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnTm9yd2F5JywgaXNvM0NvZGU6ICdOT1InLCBpc28yQ29kZTogJ05PJywgZGF0YXNldENvZGU6ICduby1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnT21hbicsIGlzbzNDb2RlOiAnT01OJywgaXNvMkNvZGU6ICdPTScsIGRhdGFzZXRDb2RlOiAnb20tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnT21hbicsIGlzbzNDb2RlOiAnT01OJywgaXNvMkNvZGU6ICdPTScsIGRhdGFzZXRDb2RlOiAnb20tYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1Bha2lzdGFuJywgaXNvM0NvZGU6ICdQQUsnLCBpc28yQ29kZTogJ1BLJywgZGF0YXNldENvZGU6ICdway1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdQYWtpc3RhbicsIGlzbzNDb2RlOiAnUEFLJywgaXNvMkNvZGU6ICdQSycsIGRhdGFzZXRDb2RlOiAncGstYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1BhbGF1JywgaXNvM0NvZGU6ICdQTFcnLCBpc28yQ29kZTogJ1BXJywgZGF0YXNldENvZGU6ICdwdy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnUGFsZXN0aW5lJywgaXNvM0NvZGU6ICdQU0UnLCBpc28yQ29kZTogJ1BTJywgZGF0YXNldENvZGU6ICdwcy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnUGFuYW1hJywgaXNvM0NvZGU6ICdQQU4nLCBpc28yQ29kZTogJ1BBJywgZGF0YXNldENvZGU6ICdwYS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdQYW5hbWEnLCBpc28zQ29kZTogJ1BBTicsIGlzbzJDb2RlOiAnUEEnLCBkYXRhc2V0Q29kZTogJ3BhLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdQYXB1YSBOZXcgR3VpbmVhJywgaXNvM0NvZGU6ICdQTkcnLCBpc28yQ29kZTogJ1BHJywgZGF0YXNldENvZGU6ICdwZy1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdQYXB1YSBOZXcgR3VpbmVhJywgaXNvM0NvZGU6ICdQTkcnLCBpc28yQ29kZTogJ1BHJywgZGF0YXNldENvZGU6ICdwZy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnUGFyYWd1YXknLCBpc28zQ29kZTogJ1BSWScsIGlzbzJDb2RlOiAnUFknLCBkYXRhc2V0Q29kZTogJ3B5LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1BhcmFndWF5JywgaXNvM0NvZGU6ICdQUlknLCBpc28yQ29kZTogJ1BZJywgZGF0YXNldENvZGU6ICdweS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnUGVydScsIGlzbzNDb2RlOiAnUEVSJywgaXNvMkNvZGU6ICdQRScsIGRhdGFzZXRDb2RlOiAncGUtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnUGVydScsIGlzbzNDb2RlOiAnUEVSJywgaXNvMkNvZGU6ICdQRScsIGRhdGFzZXRDb2RlOiAncGUtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1BoaWxpcHBpbmVzJywgaXNvM0NvZGU6ICdQSEwnLCBpc28yQ29kZTogJ1BIJywgZGF0YXNldENvZGU6ICdwaC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdQaGlsaXBwaW5lcycsIGlzbzNDb2RlOiAnUEhMJywgaXNvMkNvZGU6ICdQSCcsIGRhdGFzZXRDb2RlOiAncGgtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1BpdGNhaXJuIElzbGFuZHMnLCBpc28zQ29kZTogJ1BDTicsIGlzbzJDb2RlOiAnUE4nLCBkYXRhc2V0Q29kZTogJ3BuLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdQb2xhbmQnLCBpc28zQ29kZTogJ1BPTCcsIGlzbzJDb2RlOiAnUEwnLCBkYXRhc2V0Q29kZTogJ3BsLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1BvbGFuZCcsIGlzbzNDb2RlOiAnUE9MJywgaXNvMkNvZGU6ICdQTCcsIGRhdGFzZXRDb2RlOiAncGwtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1BvcnR1Z2FsJywgaXNvM0NvZGU6ICdQUlQnLCBpc28yQ29kZTogJ1BUJywgZGF0YXNldENvZGU6ICdwdC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdQb3J0dWdhbCcsIGlzbzNDb2RlOiAnUFJUJywgaXNvMkNvZGU6ICdQVCcsIGRhdGFzZXRDb2RlOiAncHQtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1FhdGFyJywgaXNvM0NvZGU6ICdRQVQnLCBpc28yQ29kZTogJ1FBJywgZGF0YXNldENvZGU6ICdxYS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdRYXRhcicsIGlzbzNDb2RlOiAnUUFUJywgaXNvMkNvZGU6ICdRQScsIGRhdGFzZXRDb2RlOiAncWEtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1JvbWFuaWEnLCBpc28zQ29kZTogJ1JPVScsIGlzbzJDb2RlOiAnUk8nLCBkYXRhc2V0Q29kZTogJ3JvLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1JvbWFuaWEnLCBpc28zQ29kZTogJ1JPVScsIGlzbzJDb2RlOiAnUk8nLCBkYXRhc2V0Q29kZTogJ3JvLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdSdXNzaWFuIEZlZGVyYXRpb24nLCBpc28zQ29kZTogJ1JVUycsIGlzbzJDb2RlOiAnUlUnLCBkYXRhc2V0Q29kZTogJ3J1LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1J1c3NpYW4gRmVkZXJhdGlvbicsIGlzbzNDb2RlOiAnUlVTJywgaXNvMkNvZGU6ICdSVScsIGRhdGFzZXRDb2RlOiAncnUtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1J3YW5kYScsIGlzbzNDb2RlOiAnUldBJywgaXNvMkNvZGU6ICdSVycsIGRhdGFzZXRDb2RlOiAncnctYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnUndhbmRhJywgaXNvM0NvZGU6ICdSV0EnLCBpc28yQ29kZTogJ1JXJywgZGF0YXNldENvZGU6ICdydy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnUsOpdW5pb24nLCBpc28zQ29kZTogJ1JFVScsIGlzbzJDb2RlOiAnUkUnLCBkYXRhc2V0Q29kZTogJ3JlLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdTYWludCBCYXJ0aMOpbGVteScsIGlzbzNDb2RlOiAnQkxNJywgaXNvMkNvZGU6ICdCTCcsIGRhdGFzZXRDb2RlOiAnYmwtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1NhaW50IEhlbGVuYScsIGlzbzNDb2RlOiAnU0hOJywgaXNvMkNvZGU6ICdTSCcsIGRhdGFzZXRDb2RlOiAnc2gtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1NhaW50IEtpdHRzIGFuZCBOZXZpcycsIGlzbzNDb2RlOiAnS05BJywgaXNvMkNvZGU6ICdLTicsIGRhdGFzZXRDb2RlOiAna24tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnU2FpbnQgS2l0dHMgYW5kIE5ldmlzJywgaXNvM0NvZGU6ICdLTkEnLCBpc28yQ29kZTogJ0tOJywgZGF0YXNldENvZGU6ICdrbi1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnU2FpbnQgTHVjaWEnLCBpc28zQ29kZTogJ0xDQScsIGlzbzJDb2RlOiAnTEMnLCBkYXRhc2V0Q29kZTogJ2xjLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdTYWludCBQaWVycmUgYW5kIE1pcXVlbG9uJywgaXNvM0NvZGU6ICdTUE0nLCBpc28yQ29kZTogJ1BNJywgZGF0YXNldENvZGU6ICdwbS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnU2FpbnQgVmluY2VudCBhbmQgdGhlIEdyZW5hZGluZXMnLCBpc28zQ29kZTogJ1ZDVCcsIGlzbzJDb2RlOiAnVkMnLCBkYXRhc2V0Q29kZTogJ3ZjLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1NhaW50IFZpbmNlbnQgYW5kIHRoZSBHcmVuYWRpbmVzJywgaXNvM0NvZGU6ICdWQ1QnLCBpc28yQ29kZTogJ1ZDJywgZGF0YXNldENvZGU6ICd2Yy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnU2Ftb2EnLCBpc28zQ29kZTogJ1dTTScsIGlzbzJDb2RlOiAnV1MnLCBkYXRhc2V0Q29kZTogJ3dzLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1NhbW9hJywgaXNvM0NvZGU6ICdXU00nLCBpc28yQ29kZTogJ1dTJywgZGF0YXNldENvZGU6ICd3cy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnU2FuIE1hcmlubycsIGlzbzNDb2RlOiAnU01SJywgaXNvMkNvZGU6ICdTTScsIGRhdGFzZXRDb2RlOiAnc20tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnU2FuIE1hcmlubycsIGlzbzNDb2RlOiAnU01SJywgaXNvMkNvZGU6ICdTTScsIGRhdGFzZXRDb2RlOiAnc20tYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1NhbyBUb21lIGFuZCBQcmluY2lwZScsIGlzbzNDb2RlOiAnU1RQJywgaXNvMkNvZGU6ICdTVCcsIGRhdGFzZXRDb2RlOiAnc3QtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnU2FvIFRvbWUgYW5kIFByaW5jaXBlJywgaXNvM0NvZGU6ICdTVFAnLCBpc28yQ29kZTogJ1NUJywgZGF0YXNldENvZGU6ICdzdC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnU2F1ZGkgQXJhYmlhJywgaXNvM0NvZGU6ICdTQVUnLCBpc28yQ29kZTogJ1NBJywgZGF0YXNldENvZGU6ICdzYS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdTYXVkaSBBcmFiaWEnLCBpc28zQ29kZTogJ1NBVScsIGlzbzJDb2RlOiAnU0EnLCBkYXRhc2V0Q29kZTogJ3NhLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdTZW5lZ2FsJywgaXNvM0NvZGU6ICdTRU4nLCBpc28yQ29kZTogJ1NOJywgZGF0YXNldENvZGU6ICdzbi1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdTZW5lZ2FsJywgaXNvM0NvZGU6ICdTRU4nLCBpc28yQ29kZTogJ1NOJywgZGF0YXNldENvZGU6ICdzbi1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnU2VyYmlhJywgaXNvM0NvZGU6ICdTUkInLCBpc28yQ29kZTogJ1JTJywgZGF0YXNldENvZGU6ICdycy1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdTZXJiaWEnLCBpc28zQ29kZTogJ1NSQicsIGlzbzJDb2RlOiAnUlMnLCBkYXRhc2V0Q29kZTogJ3JzLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdTZXljaGVsbGVzJywgaXNvM0NvZGU6ICdTWUMnLCBpc28yQ29kZTogJ1NDJywgZGF0YXNldENvZGU6ICdzYy1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdTZXljaGVsbGVzJywgaXNvM0NvZGU6ICdTWUMnLCBpc28yQ29kZTogJ1NDJywgZGF0YXNldENvZGU6ICdzYy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnU2llcnJhIExlb25lJywgaXNvM0NvZGU6ICdTTEUnLCBpc28yQ29kZTogJ1NMJywgZGF0YXNldENvZGU6ICdzbC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdTaWVycmEgTGVvbmUnLCBpc28zQ29kZTogJ1NMRScsIGlzbzJDb2RlOiAnU0wnLCBkYXRhc2V0Q29kZTogJ3NsLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdTaW5nYXBvcmUnLCBpc28zQ29kZTogJ1NHUCcsIGlzbzJDb2RlOiAnU0cnLCBkYXRhc2V0Q29kZTogJ3NnLWFkZHJlc3MnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlLCBzaW5nbGVsaW5lLCB0eXBlZG93biwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1NpbnQgTWFhcnRlbicsIGlzbzNDb2RlOiAnU1hNJywgaXNvMkNvZGU6ICdTWCcsIGRhdGFzZXRDb2RlOiAnc3gtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnU2ludCBNYWFydGVuJywgaXNvM0NvZGU6ICdTWE0nLCBpc28yQ29kZTogJ1NYJywgZGF0YXNldENvZGU6ICdzeC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnU2xvdmFraWEnLCBpc28zQ29kZTogJ1NWSycsIGlzbzJDb2RlOiAnU0snLCBkYXRhc2V0Q29kZTogJ3NrLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1Nsb3Zha2lhJywgaXNvM0NvZGU6ICdTVksnLCBpc28yQ29kZTogJ1NLJywgZGF0YXNldENvZGU6ICdzay1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnU2xvdmVuaWEnLCBpc28zQ29kZTogJ1NWTicsIGlzbzJDb2RlOiAnU0knLCBkYXRhc2V0Q29kZTogJ3NpLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1Nsb3ZlbmlhJywgaXNvM0NvZGU6ICdTVk4nLCBpc28yQ29kZTogJ1NJJywgZGF0YXNldENvZGU6ICdzaS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnU29sb21vbiBJc2xhbmRzJywgaXNvM0NvZGU6ICdTTEInLCBpc28yQ29kZTogJ1NCJywgZGF0YXNldENvZGU6ICdzYi1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdTb2xvbW9uIElzbGFuZHMnLCBpc28zQ29kZTogJ1NMQicsIGlzbzJDb2RlOiAnU0InLCBkYXRhc2V0Q29kZTogJ3NiLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdTb21hbGlhJywgaXNvM0NvZGU6ICdTT00nLCBpc28yQ29kZTogJ1NPJywgZGF0YXNldENvZGU6ICdzby1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdTb21hbGlhJywgaXNvM0NvZGU6ICdTT00nLCBpc28yQ29kZTogJ1NPJywgZGF0YXNldENvZGU6ICdzby1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnU291dGggQWZyaWNhJywgaXNvM0NvZGU6ICdaQUYnLCBpc28yQ29kZTogJ1pBJywgZGF0YXNldENvZGU6ICd6YS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdTb3V0aCBBZnJpY2EnLCBpc28zQ29kZTogJ1pBRicsIGlzbzJDb2RlOiAnWkEnLCBkYXRhc2V0Q29kZTogJ3phLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdTb3V0aCBHZW9yZ2lhIGFuZCB0aGUgU291dGggU2FuZHdpY2ggSXNsYW5kcycsIGlzbzNDb2RlOiAnU0dTJywgaXNvMkNvZGU6ICdHUycsIGRhdGFzZXRDb2RlOiAnZ3MtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1NvdXRoIFN1ZGFuJywgaXNvM0NvZGU6ICdTU0QnLCBpc28yQ29kZTogJ1NTJywgZGF0YXNldENvZGU6ICdzcy1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdTb3V0aCBTdWRhbicsIGlzbzNDb2RlOiAnU1NEJywgaXNvMkNvZGU6ICdTUycsIGRhdGFzZXRDb2RlOiAnc3MtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1NwYWluJywgaXNvM0NvZGU6ICdFU1AnLCBpc28yQ29kZTogJ0VTJywgZGF0YXNldENvZGU6ICdlcy1hZGRyZXNzJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHR5cGVkb3duJ30sXHJcbiAge2NvdW50cnk6ICdTcGFpbicsIGlzbzNDb2RlOiAnRVNQJywgaXNvMkNvZGU6ICdFUycsIGRhdGFzZXRDb2RlOiAnZXMtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICd2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnU3BhaW4nLCBpc28zQ29kZTogJ0VTUCcsIGlzbzJDb2RlOiAnRVMnLCBkYXRhc2V0Q29kZTogJ2VzLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdTcmkgTGFua2EnLCBpc28zQ29kZTogJ0xLQScsIGlzbzJDb2RlOiAnTEsnLCBkYXRhc2V0Q29kZTogJ2xrLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1N1ZGFuJywgaXNvM0NvZGU6ICdTRE4nLCBpc28yQ29kZTogJ1NEJywgZGF0YXNldENvZGU6ICdzZC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdTdWRhbicsIGlzbzNDb2RlOiAnU0ROJywgaXNvMkNvZGU6ICdTRCcsIGRhdGFzZXRDb2RlOiAnc2QtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1N1cmluYW1lJywgaXNvM0NvZGU6ICdTVVInLCBpc28yQ29kZTogJ1NSJywgZGF0YXNldENvZGU6ICdzci1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdTdXJpbmFtZScsIGlzbzNDb2RlOiAnU1VSJywgaXNvMkNvZGU6ICdTUicsIGRhdGFzZXRDb2RlOiAnc3ItYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1N2YWxiYXJkIGFuZCBKYW4gTWF5ZW4gSXNsYW5kcycsIGlzbzNDb2RlOiAnU0pNJywgaXNvMkNvZGU6ICdTSicsIGRhdGFzZXRDb2RlOiAnc2otYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1N3YXppbGFuZCAoRXN3YXRpbmkpJywgaXNvM0NvZGU6ICdTV1onLCBpc28yQ29kZTogJ1NaJywgZGF0YXNldENvZGU6ICdzei1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdTd2F6aWxhbmQgKEVzd2F0aW5pKScsIGlzbzNDb2RlOiAnU1daJywgaXNvMkNvZGU6ICdTWicsIGRhdGFzZXRDb2RlOiAnc3otYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1N3ZWRlbicsIGlzbzNDb2RlOiAnU1dFJywgaXNvMkNvZGU6ICdTRScsIGRhdGFzZXRDb2RlOiAnc2UtYWRkcmVzcycsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB0eXBlZG93bid9LFxyXG4gIHtjb3VudHJ5OiAnU3dlZGVuJywgaXNvM0NvZGU6ICdTV0UnLCBpc28yQ29kZTogJ1NFJywgZGF0YXNldENvZGU6ICdzZS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3ZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdTd2VkZW4nLCBpc28zQ29kZTogJ1NXRScsIGlzbzJDb2RlOiAnU0UnLCBkYXRhc2V0Q29kZTogJ3NlLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdTd2l0emVybGFuZCcsIGlzbzNDb2RlOiAnQ0hFJywgaXNvMkNvZGU6ICdDSCcsIGRhdGFzZXRDb2RlOiAnY2gtYWRkcmVzcycsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB0eXBlZG93bid9LFxyXG4gIHtjb3VudHJ5OiAnU3dpdHplcmxhbmQnLCBpc28zQ29kZTogJ0NIRScsIGlzbzJDb2RlOiAnQ0gnLCBkYXRhc2V0Q29kZTogJ2NoLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAndmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1N3aXR6ZXJsYW5kJywgaXNvM0NvZGU6ICdDSEUnLCBpc28yQ29kZTogJ0NIJywgZGF0YXNldENvZGU6ICdjaC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnU3lyaWEnLCBpc28zQ29kZTogJ1NZUicsIGlzbzJDb2RlOiAnU1knLCBkYXRhc2V0Q29kZTogJ3N5LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1N5cmlhJywgaXNvM0NvZGU6ICdTWVInLCBpc28yQ29kZTogJ1NZJywgZGF0YXNldENvZGU6ICdzeS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVGFpd2FuJywgaXNvM0NvZGU6ICdUV04nLCBpc28yQ29kZTogJ1RXJywgZGF0YXNldENvZGU6ICd0dy1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdUYWl3YW4nLCBpc28zQ29kZTogJ1RXTicsIGlzbzJDb2RlOiAnVFcnLCBkYXRhc2V0Q29kZTogJ3R3LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdUYWppa2lzdGFuJywgaXNvM0NvZGU6ICdUSksnLCBpc28yQ29kZTogJ1RKJywgZGF0YXNldENvZGU6ICd0ai1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdUYWppa2lzdGFuJywgaXNvM0NvZGU6ICdUSksnLCBpc28yQ29kZTogJ1RKJywgZGF0YXNldENvZGU6ICd0ai1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVGFuemFuaWEnLCBpc28zQ29kZTogJ1RaQScsIGlzbzJDb2RlOiAnVFonLCBkYXRhc2V0Q29kZTogJ3R6LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1RhbnphbmlhJywgaXNvM0NvZGU6ICdUWkEnLCBpc28yQ29kZTogJ1RaJywgZGF0YXNldENvZGU6ICd0ei1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVGhhaWxhbmQnLCBpc28zQ29kZTogJ1RIQScsIGlzbzJDb2RlOiAnVEgnLCBkYXRhc2V0Q29kZTogJ3RoLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1RoYWlsYW5kJywgaXNvM0NvZGU6ICdUSEEnLCBpc28yQ29kZTogJ1RIJywgZGF0YXNldENvZGU6ICd0aC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVGltb3ItTGVzdGUnLCBpc28zQ29kZTogJ1RMUycsIGlzbzJDb2RlOiAnVEwnLCBkYXRhc2V0Q29kZTogJ3RsLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1RpbW9yLUxlc3RlJywgaXNvM0NvZGU6ICdUTFMnLCBpc28yQ29kZTogJ1RMJywgZGF0YXNldENvZGU6ICd0bC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVG9nbycsIGlzbzNDb2RlOiAnVEdPJywgaXNvMkNvZGU6ICdURycsIGRhdGFzZXRDb2RlOiAndGctYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVG9nbycsIGlzbzNDb2RlOiAnVEdPJywgaXNvMkNvZGU6ICdURycsIGRhdGFzZXRDb2RlOiAndGctYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1Rva2VsYXUnLCBpc28zQ29kZTogJ1RLTCcsIGlzbzJDb2RlOiAnVEsnLCBkYXRhc2V0Q29kZTogJ3RrLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1Rva2VsYXUnLCBpc28zQ29kZTogJ1RLTCcsIGlzbzJDb2RlOiAnVEsnLCBkYXRhc2V0Q29kZTogJ3RrLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdUb25nYScsIGlzbzNDb2RlOiAnVE9OJywgaXNvMkNvZGU6ICdUTycsIGRhdGFzZXRDb2RlOiAndG8tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVG9uZ2EnLCBpc28zQ29kZTogJ1RPTicsIGlzbzJDb2RlOiAnVE8nLCBkYXRhc2V0Q29kZTogJ3RvLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdUcmluaWRhZCBhbmQgVG9iYWdvJywgaXNvM0NvZGU6ICdUVE8nLCBpc28yQ29kZTogJ1RUJywgZGF0YXNldENvZGU6ICd0dC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdUcmluaWRhZCBhbmQgVG9iYWdvJywgaXNvM0NvZGU6ICdUVE8nLCBpc28yQ29kZTogJ1RUJywgZGF0YXNldENvZGU6ICd0dC1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVHVuaXNpYScsIGlzbzNDb2RlOiAnVFVOJywgaXNvMkNvZGU6ICdUTicsIGRhdGFzZXRDb2RlOiAndG4tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVHVuaXNpYScsIGlzbzNDb2RlOiAnVFVOJywgaXNvMkNvZGU6ICdUTicsIGRhdGFzZXRDb2RlOiAndG4tYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1R1cmtleScsIGlzbzNDb2RlOiAnVFVSJywgaXNvMkNvZGU6ICdUUicsIGRhdGFzZXRDb2RlOiAndHItYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVHVya2V5JywgaXNvM0NvZGU6ICdUVVInLCBpc28yQ29kZTogJ1RSJywgZGF0YXNldENvZGU6ICd0ci1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVHVya2lzaCBSZXB1YmxpYyBvZiBOb3J0aGVybiBDeXBydXMnLCBpc28zQ29kZTogJ05DWScsIGlzbzJDb2RlOiAnQ1knLCBkYXRhc2V0Q29kZTogJ255LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdUdXJrbWVuaXN0YW4nLCBpc28zQ29kZTogJ1RLTScsIGlzbzJDb2RlOiAnVE0nLCBkYXRhc2V0Q29kZTogJ3RtLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1R1cmttZW5pc3RhbicsIGlzbzNDb2RlOiAnVEtNJywgaXNvMkNvZGU6ICdUTScsIGRhdGFzZXRDb2RlOiAndG0tYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1R1cmtzIGFuZCBDYWljb3MgSXNsYW5kcycsIGlzbzNDb2RlOiAnVENBJywgaXNvMkNvZGU6ICdUQycsIGRhdGFzZXRDb2RlOiAndGMtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1R1dmFsdScsIGlzbzNDb2RlOiAnVFVWJywgaXNvMkNvZGU6ICdUVicsIGRhdGFzZXRDb2RlOiAndHYtYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVHV2YWx1JywgaXNvM0NvZGU6ICdUVVYnLCBpc28yQ29kZTogJ1RWJywgZGF0YXNldENvZGU6ICd0di1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVWdhbmRhJywgaXNvM0NvZGU6ICdVR0EnLCBpc28yQ29kZTogJ1VHJywgZGF0YXNldENvZGU6ICd1Zy1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdVZ2FuZGEnLCBpc28zQ29kZTogJ1VHQScsIGlzbzJDb2RlOiAnVUcnLCBkYXRhc2V0Q29kZTogJ3VnLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdVa3JhaW5lJywgaXNvM0NvZGU6ICdVS1InLCBpc28yQ29kZTogJ1VBJywgZGF0YXNldENvZGU6ICd1YS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdVa3JhaW5lJywgaXNvM0NvZGU6ICdVS1InLCBpc28yQ29kZTogJ1VBJywgZGF0YXNldENvZGU6ICd1YS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVW5pdGVkIEFyYWIgRW1pcmF0ZXMnLCBpc28zQ29kZTogJ0FSRScsIGlzbzJDb2RlOiAnQUUnLCBkYXRhc2V0Q29kZTogJ2FlLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1VuaXRlZCBBcmFiIEVtaXJhdGVzJywgaXNvM0NvZGU6ICdBUkUnLCBpc28yQ29kZTogJ0FFJywgZGF0YXNldENvZGU6ICdhZS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVW5pdGVkIEtpbmdkb20nLCBpc28zQ29kZTogJ0dCUicsIGlzbzJDb2RlOiAnR0InLCBkYXRhc2V0Q29kZTogWydnYi1hZGRyZXNzJ10sIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1VuaXRlZCBLaW5nZG9tJywgaXNvM0NvZGU6ICdHQlInLCBpc28yQ29kZTogJ0dCJywgZGF0YXNldENvZGU6IFsnZ2ItYWRkaXRpb25hbC1idXNpbmVzcycsICdnYi1hZGRpdGlvbmFsLW11bHRpcGxlcmVzaWRlbmNlJywgJ2diLWFkZGl0aW9uYWwtbm90eWV0YnVpbHQnXSwgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUnfSxcclxuICB7Y291bnRyeTogJ1VuaXRlZCBLaW5nZG9tIEFkZHJlc3NCYXNlIFByZW1pdW0nLCBpc28zQ29kZTogJ0dCUicsIGlzbzJDb2RlOiAnR0InLCBkYXRhc2V0Q29kZTogJ2diLWFkZHJlc3MtYWRkcmVzc2Jhc2UnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdHlwZWRvd24sIHZhbGlkYXRlLCBsb29rdXAnfSxcclxuICB7Y291bnRyeTogJ1VuaXRlZCBLaW5nZG9tIEFkZHJlc3NCYXNlIFByZW1pdW0gd2l0aCBJc2xhbmRzJywgaXNvM0NvZGU6ICdHQlInLCBpc28yQ29kZTogJ0dCJywgZGF0YXNldENvZGU6ICdnYi1hZGRpdGlvbmFsLWFkZHJlc3NiYXNlaXNsYW5kcycsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB0eXBlZG93biwgdmFsaWRhdGUsIGxvb2t1cCd9LFxyXG4gIHtjb3VudHJ5OiAnVW5pdGVkIEtpbmdkb20gQnVzaW5lc3MgTmFtZXMnLCBpc28zQ29kZTogJ0dCUicsIGlzbzJDb2RlOiAnR0InLCBkYXRhc2V0Q29kZTogJ2diLWFkZGl0aW9uYWwtYnVzaW5lc3MnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdHlwZWRvd24nfSxcclxuICB7Y291bnRyeTogJ1VuaXRlZCBLaW5nZG9tIEVsZWN0cmljaXR5JywgaXNvM0NvZGU6ICdHQlInLCBpc28yQ29kZTogJ0dCJywgZGF0YXNldENvZGU6ICdnYi1hZGRpdGlvbmFsLWVsZWN0cmljaXR5Jywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHR5cGVkb3duLCB2YWxpZGF0ZSwgbG9va3VwJ30sXHJcbiAge2NvdW50cnk6ICdVbml0ZWQgS2luZ2RvbSBHYXMnLCBpc28zQ29kZTogJ0dCUicsIGlzbzJDb2RlOiAnR0InLCBkYXRhc2V0Q29kZTogJ2diLWFkZGl0aW9uYWwtZ2FzJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHR5cGVkb3duLCB2YWxpZGF0ZSwgbG9va3VwJ30sXHJcbiAge2NvdW50cnk6ICdVbml0ZWQgS2luZ2RvbSBTdHJlZXQgTGV2ZWwnLCBpc28zQ29kZTogJ0dCUicsIGlzbzJDb2RlOiAnR0InLCBkYXRhc2V0Q29kZTogJ2diLWFkZHJlc3Mtc3RyZWV0bGV2ZWwnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdHlwZWRvd24nfSxcclxuICB7Y291bnRyeTogJ1VuaXRlZCBLaW5nZG9tIEV4dGVuZGVkIEJ1c2luZXNzJywgaXNvM0NvZGU6ICdHQlInLCBpc28yQ29kZTogJ0dCJywgZGF0YXNldENvZGU6ICdnYi1hZGRpdGlvbmFsLWJ1c2luZXNzZXh0ZW5kZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdHlwZWRvd24sIHZhbGlkYXRlLCBsb29rdXAnfSxcclxuICB7Y291bnRyeTogJ1VuaXRlZCBLaW5nZG9tIEN5bXJhZWcgKFdlbHNoIExhbmd1YWdlKSBQb3N0YWwgQWRkcmVzcycsIGlzbzNDb2RlOiAnR0JSJywgaXNvMkNvZGU6ICdHQicsIGRhdGFzZXRDb2RlOiAnZ2ItYWRkcmVzcy13YWxlcycsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB0eXBlZG93biwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1VuaXRlZCBTdGF0ZXMgb2YgQW1lcmljYScsIGlzbzNDb2RlOiAnVVNBJywgaXNvMkNvZGU6ICdVUycsIGRhdGFzZXRDb2RlOiAndXMtYWRkcmVzcycsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUsIHNpbmdsZWxpbmUsIHR5cGVkb3duLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVXJ1Z3VheScsIGlzbzNDb2RlOiAnVVJZJywgaXNvMkNvZGU6ICdVWScsIGRhdGFzZXRDb2RlOiAndXktYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVXJ1Z3VheScsIGlzbzNDb2RlOiAnVVJZJywgaXNvMkNvZGU6ICdVWScsIGRhdGFzZXRDb2RlOiAndXktYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1V6YmVraXN0YW4nLCBpc28zQ29kZTogJ1VaQicsIGlzbzJDb2RlOiAnVVonLCBkYXRhc2V0Q29kZTogJ3V6LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1V6YmVraXN0YW4nLCBpc28zQ29kZTogJ1VaQicsIGlzbzJDb2RlOiAnVVonLCBkYXRhc2V0Q29kZTogJ3V6LWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdWYW51YXR1JywgaXNvM0NvZGU6ICdWVVQnLCBpc28yQ29kZTogJ1ZVJywgZGF0YXNldENvZGU6ICd2dS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdWYW51YXR1JywgaXNvM0NvZGU6ICdWVVQnLCBpc28yQ29kZTogJ1ZVJywgZGF0YXNldENvZGU6ICd2dS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVmF0aWNhbiBDaXR5IChIb2x5IFNlZSknLCBpc28zQ29kZTogJ1ZBVCcsIGlzbzJDb2RlOiAnVkEnLCBkYXRhc2V0Q29kZTogJ3ZhLWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1ZhdGljYW4gQ2l0eSAoSG9seSBTZWUpJywgaXNvM0NvZGU6ICdWQVQnLCBpc28yQ29kZTogJ1ZBJywgZGF0YXNldENvZGU6ICd2YS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVmVuZXp1ZWxhJywgaXNvM0NvZGU6ICdWRU4nLCBpc28yQ29kZTogJ1ZFJywgZGF0YXNldENvZGU6ICd2ZS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdWZW5lenVlbGEnLCBpc28zQ29kZTogJ1ZFTicsIGlzbzJDb2RlOiAnVkUnLCBkYXRhc2V0Q29kZTogJ3ZlLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdWaWV0IE5hbScsIGlzbzNDb2RlOiAnVk5NJywgaXNvMkNvZGU6ICdWTicsIGRhdGFzZXRDb2RlOiAndm4tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnVmlldCBOYW0nLCBpc28zQ29kZTogJ1ZOTScsIGlzbzJDb2RlOiAnVk4nLCBkYXRhc2V0Q29kZTogJ3ZuLWFkZHJlc3MtZWgnLCBzZWFyY2hUeXBlOiAnYXV0b2NvbXBsZXRlJ30sXHJcbiAge2NvdW50cnk6ICdWaXJnaW4gSXNsYW5kcywgQnJpdGlzaCcsIGlzbzNDb2RlOiAnVkdCJywgaXNvMkNvZGU6ICdWRycsIGRhdGFzZXRDb2RlOiAndmctYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1ZpcmdpbiBJc2xhbmRzLCBVLlMuJywgaXNvM0NvZGU6ICdWSVInLCBpc28yQ29kZTogJ1ZJJywgZGF0YXNldENvZGU6ICd2aS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnV2FsbGlzIGFuZCBGdXR1bmEgSXNsYW5kcycsIGlzbzNDb2RlOiAnV0xGJywgaXNvMkNvZGU6ICdXRicsIGRhdGFzZXRDb2RlOiAnd2YtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1dlc3Rlcm4gU2FoYXJhJywgaXNvM0NvZGU6ICdFU0gnLCBpc28yQ29kZTogJ0VIJywgZGF0YXNldENvZGU6ICdlaC1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdXZXN0ZXJuIFNhaGFyYScsIGlzbzNDb2RlOiAnRVNIJywgaXNvMkNvZGU6ICdFSCcsIGRhdGFzZXRDb2RlOiAnZWgtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1llbWVuJywgaXNvM0NvZGU6ICdZRU0nLCBpc28yQ29kZTogJ1lFJywgZGF0YXNldENvZGU6ICd5ZS1hZGRyZXNzLWVkJywgc2VhcmNoVHlwZTogJ3NpbmdsZWxpbmUsIHZhbGlkYXRlJ30sXHJcbiAge2NvdW50cnk6ICdZZW1lbicsIGlzbzNDb2RlOiAnWUVNJywgaXNvMkNvZGU6ICdZRScsIGRhdGFzZXRDb2RlOiAneWUtYWRkcmVzcy1laCcsIHNlYXJjaFR5cGU6ICdhdXRvY29tcGxldGUnfSxcclxuICB7Y291bnRyeTogJ1phbWJpYScsIGlzbzNDb2RlOiAnWk1CJywgaXNvMkNvZGU6ICdaTScsIGRhdGFzZXRDb2RlOiAnem0tYWRkcmVzcy1lZCcsIHNlYXJjaFR5cGU6ICdzaW5nbGVsaW5lLCB2YWxpZGF0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnWmFtYmlhJywgaXNvM0NvZGU6ICdaTUInLCBpc28yQ29kZTogJ1pNJywgZGF0YXNldENvZGU6ICd6bS1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9LFxyXG4gIHtjb3VudHJ5OiAnWmltYmFid2UnLCBpc28zQ29kZTogJ1pXRScsIGlzbzJDb2RlOiAnWlcnLCBkYXRhc2V0Q29kZTogJ3p3LWFkZHJlc3MtZWQnLCBzZWFyY2hUeXBlOiAnc2luZ2xlbGluZSwgdmFsaWRhdGUnfSxcclxuICB7Y291bnRyeTogJ1ppbWJhYndlJywgaXNvM0NvZGU6ICdaV0UnLCBpc28yQ29kZTogJ1pXJywgZGF0YXNldENvZGU6ICd6dy1hZGRyZXNzLWVoJywgc2VhcmNoVHlwZTogJ2F1dG9jb21wbGV0ZSd9XHJcbl07IiwiLy8gVHJhbnNsYXRpb25zXHJcbmV4cG9ydCBjb25zdCB0cmFuc2xhdGlvbnMgPSB7XHJcbiAgLy8gbGFuZ3VhZ2UgLyBjb3VudHJ5IC8gcHJvcGVydHlcclxuICBlbjoge1xyXG4gICAgZ2JyOiB7XHJcbiAgICAgIGxvY2FsaXR5OiAnVG93bi9DaXR5JyxcclxuICAgICAgcmVnaW9uOiAnQ291bnR5JyxcclxuICAgICAgcG9zdGFsX2NvZGU6ICdQb3N0IGNvZGUnXHJcbiAgICB9LFxyXG4gICAgdXNhOiB7XHJcbiAgICAgIGxvY2FsaXR5OiAnQ2l0eScsXHJcbiAgICAgIHJlZ2lvbjogJ1N0YXRlJyxcclxuICAgICAgcG9zdGFsX2NvZGU6ICdaSVAgY29kZSdcclxuICAgIH1cclxuICB9XHJcbiAgLy8gQWRkIG90aGVyIGxhbmd1YWdlcyBiZWxvd1xyXG59OyIsImV4cG9ydCBjbGFzcyBQaWNrbGlzdCB7XHJcbiAgaXRlbXM6IFBpY2tsaXN0SXRlbVtdO1xyXG4gIHdoYXQzd29yZHNJdGVtczogV2hhdDNXb3Jkc1BpY2tMaXN0W107XHJcbiAgbG9va3VwSXRlbXM6IExvb2t1cEFkZHJlc3NbXTtcclxuICBjdXJyZW50SXRlbTtcclxuICBsaXN0OiBIVE1MRGl2RWxlbWVudDtcclxuICBjb250YWluZXI6IEhUTUxFbGVtZW50O1xyXG4gIHNpemUgPSAwO1xyXG4gIG1heFN1Z2dlc3Rpb25zID0gMjU7XHJcbiAgc2hvdzogKGl0ZW1zOiBTZWFyY2hSZXNwb25zZSkgPT4gdm9pZDtcclxuICBzaG93V2hhdDNXb3JkczogKGl0ZW1zOiBMb29rdXBXM1dSZXNwb25zZSkgPT4gdm9pZDtcclxuICBzaG93TG9va3VwOiAoaXRlbXM6IExvb2t1cFYyUmVzcG9uc2UpID0+IHZvaWQ7XHJcbiAgaGlkZTogKCkgPT4gdm9pZDtcclxuICBoYW5kbGVFbXB0eVBpY2tsaXN0OiAoaXRlbXM6IFNlYXJjaFJlc3BvbnNlIHwgTG9va3VwVzNXUmVzcG9uc2UgfCBMb29rdXBWMlJlc3BvbnNlKSA9PiB2b2lkO1xyXG4gIGhhbmRsZUVtcHR5UGlja2xpc3RDYWxsYmFjazogKCkgPT4gdm9pZDtcclxuICBoYW5kbGVDb21tb25TaG93UGlja2xpc3RMb2dpYzogKCkgPT4gdm9pZDtcclxuICByZWZpbmU6IFJlZmluZW1lbnQ7XHJcbiAgdXNlQWRkcmVzc0VudGVyZWQ6IFVzZUFkZHJlc3NFbnRlcmVkO1xyXG4gIGNyZWF0ZUxpc3Q6ICgpID0+IEhUTUxEaXZFbGVtZW50O1xyXG4gIGNyZWF0ZUxpc3RJdGVtOiAoaXRlbTogUGlja2xpc3RJdGVtKSA9PiBIVE1MRGl2RWxlbWVudDtcclxuICBjcmVhdGVMb29rdXBMaXN0SXRlbTogKGl0ZW06IExvb2t1cEFkZHJlc3MpID0+IEhUTUxEaXZFbGVtZW50O1xyXG4gIGNyZWF0ZVdoYXQzV29yZHNMaXN0SXRlbTogKGl0ZW06IFdoYXQzV29yZHNQaWNrTGlzdCkgPT4gSFRNTERpdkVsZW1lbnQ7XHJcbiAgdGFiQ291bnQ6IG51bWJlcjtcclxuICByZXNldFRhYkNvdW50OiAoKSA9PiB2b2lkO1xyXG4gIGtleXVwOiAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHZvaWQ7XHJcbiAgYWRkTWF0Y2hpbmdFbXBoYXNpczogKGl0ZW0pID0+IHN0cmluZztcclxuICBsaXN0ZW46IChyb3cpID0+IHZvaWQ7XHJcbiAgY2hlY2tFbnRlcjogKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB2b2lkO1xyXG4gIHBpY2s6IChpdGVtKSA9PiB2b2lkO1xyXG4gIHNjcm9sbEludG9WaWV3SWZOZWVkZWQ6ICgpID0+IHZvaWQ7XHJcbiAgZGlzcGxheVN1Z2dlc3Rpb25zSGVhZGVyOiAoKSA9PiB2b2lkO1xyXG4gIGRpc3BsYXlVc2VBZGRyZXNzRW50ZXJlZEZvb3RlcjogKCkgPT4gdm9pZDtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEFkZHJlc3NWYWxpZGF0aW9uUmVzdWx0IHtcclxuICBmb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyO1xyXG4gIGxhc3RBZGRyZXNzRmllbGQ7XHJcbiAgZ2VuZXJhdGVBZGRyZXNzTGluZVJlcXVpcmVkOiBib29sZWFuO1xyXG4gIHNob3c6IChkYXRhKSA9PiB2b2lkO1xyXG4gIGhpZGU6ICgpID0+IHZvaWQ7XHJcbiAgY3JlYXRlQWRkcmVzc0xpbmU6IENyZWF0ZUFkZHJlc3NMaW5lO1xyXG4gIGNyZWF0ZUZvcm1hdHRlZEFkZHJlc3NDb250YWluZXI6ICgpID0+IHZvaWQ7XHJcbiAgY3JlYXRlSGVhZGluZzogKCkgPT4gdm9pZDtcclxuICB1cGRhdGVIZWFkaW5nOiAodGV4dDogc3RyaW5nKSA9PiB2b2lkO1xyXG4gIGNhbGN1bGF0ZUlmQWRkcmVzc0xpbmVHZW5lcmF0aW9uUmVxdWlyZWQ6ICgpID0+IHZvaWQ7XHJcbiAgdXBkYXRlQWRkcmVzc0xpbmU6IChrZXk6IHN0cmluZywgYWRkcmVzc0xpbmVPYmplY3QsIGNsYXNzTmFtZTogc3RyaW5nKSA9PiB2b2lkO1xyXG4gIHVwZGF0ZUxhYmVsOiAoa2V5OiBzdHJpbmcpID0+IHN0cmluZztcclxuICBjcmVhdGVTZWFyY2hBZ2Fpbkxpbms6ICgpID0+IHZvaWQ7XHJcbiAgcmVuZGVySW5wdXRMaXN0OiAoaW5wdXRBcnJheSkgPT4gdm9pZDtcclxuICBoYW5kbGVWYWxpZGF0ZVJlc3BvbnNlOiAocmVzcG9uc2U6IFNlYXJjaFJlc3BvbnNlKSA9PiB2b2lkO1xyXG59XHJcblxyXG5jbGFzcyBDcmVhdGVBZGRyZXNzTGluZSB7XHJcbiAgaW5wdXQ6IChrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZywgY2xhc3NOYW1lOiBzdHJpbmcpID0+IEhUTUxEaXZFbGVtZW50O1xyXG4gIGxhYmVsOiAoa2V5OiBzdHJpbmcpID0+IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hSZXNwb25zZSB7XHJcbiAgcmVzdWx0Pzoge1xyXG4gICAgc3VnZ2VzdGlvbnM6IFBpY2tsaXN0SXRlbVtdO1xyXG4gICAgc3VnZ2VzdGlvbnNfcHJvbXB0Pzogc3RyaW5nO1xyXG4gICAgc3VnZ2VzdGlvbnNfa2V5Pzogc3RyaW5nO1xyXG4gICAgY29uZmlkZW5jZTogc3RyaW5nO1xyXG4gICAgYWRkcmVzcz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExvb2t1cFczV1Jlc3BvbnNlIHtcclxuICByZXN1bHQ/OiB7XHJcbiAgICBtb3JlX3Jlc3VsdHNfYXZhaWxhYmxlOiBib29sZWFuO1xyXG4gICAgc3VnZ2VzdGlvbnM6IFdoYXQzV29yZHNQaWNrTGlzdFtdO1xyXG4gICAgY29uZmlkZW5jZTogc3RyaW5nO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMb29rdXBWMlJlc3BvbnNlIHtcclxuICByZXN1bHQ/OiB7XHJcbiAgICBtb3JlX3Jlc3VsdHNfYXZhaWxhYmxlOiBib29sZWFuO1xyXG4gICAgY29uZmlkZW5jZTogc3RyaW5nO1xyXG4gICAgYWRkcmVzc2VzOiBMb29rdXBBZGRyZXNzW107XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExvb2t1cEFkZHJlc3Mge1xyXG4gIHRleHQ6IHN0cmluZztcclxuICBnbG9iYWxfYWRkcmVzc19rZXk6IHN0cmluZztcclxuICBmb3JtYXQ6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBXaGF0M1dvcmRzUGlja0xpc3Qge1xyXG4gIHdoYXQzd29yZHM6IFdoYXQzV29yZHNTdWdnZXN0aW9uO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFdoYXQzV29yZHNTdWdnZXN0aW9uIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb246IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tsaXN0SXRlbSB7XHJcbiAgdGV4dDogc3RyaW5nO1xyXG4gIGZvcm1hdD86IHN0cmluZztcclxuICBtYXRjaGVkPzogbnVtYmVyW11bXTtcclxuICBnbG9iYWxfYWRkcmVzc19rZXk/OiBzdHJpbmc7XHJcbiAgYWRkaXRpb25hbF9hdHRyaWJ1dGVzPzogeyBuYW1lOiBzdHJpbmcsIFZhbHVlOiBzdHJpbmcgfVtdO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVXNlQWRkcmVzc0VudGVyZWQge1xyXG4gIGVsZW1lbnQ6IEhUTUxFbGVtZW50O1xyXG4gIGNyZWF0ZTogKGNvbmZpZGVuY2U6IHN0cmluZykgPT4gSFRNTERpdkVsZW1lbnQ7XHJcbiAgZGVzdHJveTogKCkgPT4gdm9pZDtcclxuICBjbGljazogKCkgPT4gdm9pZDtcclxuICBmb3JtYXRNYW51YWxBZGRyZXNzTGluZTogKGxpbmVzLCBpKSA9PiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUmVmaW5lbWVudCB7XHJcbiAgZWxlbWVudDogSFRNTElucHV0RWxlbWVudDtcclxuICBpc05lZWRlZDogKHJlc3BvbnNlOiBTZWFyY2hSZXNwb25zZSkgPT4gYm9vbGVhbjtcclxuICBjcmVhdGVJbnB1dDogKHByb21wdDogc3RyaW5nLCBrZXk6IHN0cmluZykgPT4gdm9pZDtcclxuICBlbnRlcjogKGV2ZW50OiBFdmVudCkgPT4gdm9pZDtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNlYXJjaFNwaW5uZXIge1xyXG4gIHNob3c6ICgpID0+IHZvaWQ7XHJcbiAgaGlkZTogKCkgPT4gdm9pZDtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBvd2VyZWRCeUxvZ28ge1xyXG4gIGVsZW1lbnQ6IEhUTUxFbGVtZW50O1xyXG4gIGNyZWF0ZTogKHBpY2tsaXN0KSA9PiBIVE1MRGl2RWxlbWVudDtcclxuICBkZXN0cm95OiAocGlja2xpc3QpID0+IHZvaWQ7XHJcbiAgc3ZnOiBzdHJpbmc7XHJcbn0iLCJpbXBvcnQgRXZlbnRGYWN0b3J5IGZyb20gJy4vZXZlbnQtZmFjdG9yeSc7XHJcbmltcG9ydCBSZXF1ZXN0IGZyb20gJy4vcmVxdWVzdCc7XHJcbmltcG9ydCB7IEFkZHJlc3NTZWFyY2hPcHRpb25zLCBBZGRyZXNzVmFsaWRhdGlvbk1vZGUsIGRlZmF1bHRzIH0gZnJvbSAnLi9zZWFyY2gtb3B0aW9ucyc7XHJcbmltcG9ydCB7IGRhdGFzZXRDb2RlcyB9IGZyb20gJy4vZGF0YXNldHMtY29kZXMnO1xyXG5pbXBvcnQgeyB0cmFuc2xhdGlvbnMgfSBmcm9tICcuL3RyYW5zbGF0aW9ucyc7XHJcbmltcG9ydCB7IEFkZHJlc3NWYWxpZGF0aW9uUmVzdWx0LCBMb29rdXBBZGRyZXNzLCBMb29rdXBWMlJlc3BvbnNlLCBMb29rdXBXM1dSZXNwb25zZSwgUGlja2xpc3QsIFBpY2tsaXN0SXRlbSwgUG93ZXJlZEJ5TG9nbywgU2VhcmNoUmVzcG9uc2UsIFdoYXQzV29yZHNQaWNrTGlzdCB9IGZyb20gJy4vY2xhc3MtdHlwZXMnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQWRkcmVzc1ZhbGlkYXRpb24ge1xyXG4gIHB1YmxpYyBvcHRpb25zOiBBZGRyZXNzU2VhcmNoT3B0aW9ucztcclxuICBwdWJsaWMgc2VhcmNoVHlwZTogQWRkcmVzc1ZhbGlkYXRpb25Nb2RlO1xyXG4gIHB1YmxpYyBldmVudHM7XHJcbiAgcHVibGljIHJlcXVlc3Q6IFJlcXVlc3Q7XHJcblxyXG4gIHByaXZhdGUgYmFzZVVybCA9ICdodHRwczovL2FwaS5leHBlcmlhbmFwZXJ0dXJlLmlvLyc7XHJcbiAgcHJpdmF0ZSBzZWFyY2hFbmRwb2ludCA9ICdhZGRyZXNzL3NlYXJjaC92MSc7XHJcbiAgcHJpdmF0ZSBsb29rdXBFbmRwb2ludCA9ICdhZGRyZXNzL2xvb2t1cC92Mic7XHJcbiAgcHJpdmF0ZSB2YWxpZGF0ZUVuZHBvaW50ID0gJ2FkZHJlc3MvdmFsaWRhdGUvdjEnO1xyXG4gIHByaXZhdGUgcHJvbXB0c2V0RW5kcG9pbnQgPSAnYWRkcmVzcy9wcm9tcHRzZXRzL3YxJztcclxuICBwcml2YXRlIHN0ZXBJbkVuZHBvaW50ID0gJ2FkZHJlc3Mvc3VnZ2VzdGlvbnMvc3RlcGluL3YxJztcclxuICBwcml2YXRlIHJlZmluZUVuZHBvaW50ID0gJ2FkZHJlc3Mvc3VnZ2VzdGlvbnMvcmVmaW5lL3YxJztcclxuICBwcml2YXRlIGVucmljaG1lbnRFbmRwb2ludCA9ICdlbnJpY2htZW50L3YyJztcclxuXHJcbiAgcHJpdmF0ZSB3aGF0M1dvcmRDb3VudHJpZXMgPSBbJ0dCUiddO1xyXG4gIHByaXZhdGUgd2hhdDNXb3Jkc0tleXdvcmQgPSAnd2hhdDN3b3Jkcyc7XHJcblxyXG4gIHByaXZhdGUgcGlja2xpc3Q6IFBpY2tsaXN0O1xyXG4gIHByaXZhdGUgaW5wdXRzOiBIVE1MSW5wdXRFbGVtZW50W107XHJcbiAgcHJpdmF0ZSBsYXN0U2VhcmNoVGVybTogc3RyaW5nO1xyXG4gIHByaXZhdGUgY3VycmVudFNlYXJjaFRlcm06IHN0cmluZztcclxuICBwcml2YXRlIGN1cnJlbnRDb3VudHJ5Q29kZTogc3RyaW5nO1xyXG4gIHByaXZhdGUgY3VycmVudERhdGFTZXQ6IHN0cmluZyB8IHN0cmluZ1tdO1xyXG4gIHByaXZhdGUgaGFzU2VhcmNoSW5wdXRCZWVuUmVzZXQ6IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSBjb3VudHJ5Q29kZU1hcHBpbmc7XHJcbiAgcHJpdmF0ZSBsb29rdXBGbjtcclxuICBwcml2YXRlIGtleVVwRm47XHJcbiAgcHJpdmF0ZSBjaGVja1RhYkZuO1xyXG4gIHByaXZhdGUgaXNXaGF0M1dvcmRzOiBib29sZWFuO1xyXG5cclxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBBZGRyZXNzU2VhcmNoT3B0aW9ucykge1xyXG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5tZXJnZURlZmF1bHRPcHRpb25zKG9wdGlvbnMpO1xyXG5cclxuICAgIHRoaXMuZXZlbnRzID0gbmV3IEV2ZW50RmFjdG9yeSgpO1xyXG5cclxuICAgIHRoaXMuc2V0dXAoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRUb2tlbih0b2tlbjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLm9wdGlvbnMudG9rZW4gPSB0b2tlbjtcclxuICAgIHRoaXMuc2V0dXAoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRTZWFyY2hUeXBlKHNlYXJjaFR5cGU6IEFkZHJlc3NWYWxpZGF0aW9uTW9kZSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWFyY2hUeXBlID0gc2VhcmNoVHlwZTtcclxuICAgIHRoaXMuZ2xvYmFsUmVzZXQoKTtcclxuICAgIHRoaXMuc2V0SW5wdXRzKCk7XHJcbiAgICB0aGlzLmV2ZW50cy50cmlnZ2VyKCdwb3N0LXNlYXJjaC10eXBlLWNoYW5nZScsIHNlYXJjaFR5cGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEVucmljaG1lbnREYXRhKGdsb2JhbEFkZHJlc3NLZXk6IHN0cmluZykge1xyXG4gICAgaWYgKGdsb2JhbEFkZHJlc3NLZXkpIHtcclxuICAgICAgY29uc3QgZGF0YSA9IHtcclxuICAgICAgICBjb3VudHJ5X2lzbzogdGhpcy5jdXJyZW50Q291bnRyeUNvZGUsXHJcbiAgICAgICAga2V5czoge1xyXG4gICAgICAgICAgZ2xvYmFsX2FkZHJlc3Nfa2V5OiBnbG9iYWxBZGRyZXNzS2V5XHJcbiAgICAgICAgfSxcclxuICAgICAgICBhdHRyaWJ1dGVzOiB7XHJcbiAgICAgICAgICBnZW9jb2RlczogWydsYXRpdHVkZScsICdsb25naXR1ZGUnLCAnbWF0Y2hfbGV2ZWwnXSxcclxuICAgICAgICAgIHdoYXQzd29yZHM6IHRoaXMuY3VycmVudENvdW50cnlDb2RlID09ICdHQlInID8gWydsYXRpdHVkZScsICdsb25naXR1ZGUnLCAnbmFtZScsICdkZXNjcmlwdGlvbiddIDogbnVsbFxyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgICAgXHJcbiAgICAgIHRoaXMuZXZlbnRzLnRyaWdnZXIoJ3ByZS1lbnJpY2htZW50Jyk7XHJcbiAgICAgIHRoaXMucmVxdWVzdC5zZW5kKHRoaXMuYmFzZVVybCArIHRoaXMuZW5yaWNobWVudEVuZHBvaW50LCAnUE9TVCcsIHRoaXMuaGFuZGxlRW5yaWNobWVudFJlc3VsdC5iaW5kKHRoaXMpLCBKU09OLnN0cmluZ2lmeShkYXRhKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldHVwKCk6IHZvaWQge1xyXG4gICAgLy8gR2V0IHRva2VuIGFuZCBwcm9jZWVkIGlmIGl0J3MgcHJlc2VudFxyXG4gICAgaWYgKHRoaXMudG9rZW4pIHtcclxuICAgICAgdGhpcy5oYXNTZWFyY2hJbnB1dEJlZW5SZXNldCA9IHRydWU7XHJcblxyXG4gICAgICAvLyBJbnN0YW50aWF0ZSBhIG5ldyBSZXF1ZXN0IGNsYXNzIGZvciB1c2Ugd2hlbiBtYWtpbmcgQVBJIGNhbGxzXHJcbiAgICAgIHRoaXMucmVxdWVzdCA9IG5ldyBSZXF1ZXN0KHRoaXMpO1xyXG5cclxuICAgICAgLy8gU2V0IHRoZSBjb3VudHJ5IGxpc3RcclxuICAgICAgdGhpcy5zZXRDb3VudHJ5TGlzdCgpO1xyXG5cclxuICAgICAgLy8gU2V0IHRoZSBpbnB1dCBmaWVsZHMgZm9yIHRoaXMgc2VhcmNoIHR5cGVcclxuICAgICAgdGhpcy5zZXRJbnB1dHMoKTtcclxuXHJcbiAgICAgIC8vIFNldHVwIGEgcGlja2xpc3Qgb2JqZWN0XHJcbiAgICAgIHRoaXMuY3JlYXRlUGlja2xpc3QoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIFRyaWdnZXIgYSA0MDEgVW5hdXRob3JpemVkIGV2ZW50IGlmIGEgdG9rZW4gZG9lcyBub3QgZXhpc3RcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmV2ZW50cy50cmlnZ2VyKCdyZXF1ZXN0LWVycm9yLTQwMScpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlRW5yaWNobWVudFJlc3VsdChyZXNwb25zZSkge1xyXG4gICAgdGhpcy5ldmVudHMudHJpZ2dlcigncG9zdC1lbnJpY2htZW50JywgcmVzcG9uc2UpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRQYXJhbWV0ZXIobmFtZSk6IHN0cmluZyB7XHJcbiAgICBuYW1lID0gbmFtZS5yZXBsYWNlKC9bW10vLCAnXFxcXFsnKS5yZXBsYWNlKC9bXFxdXS8sICdcXFxcXScpO1xyXG4gICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKCdbXFxcXD8mXScgKyBuYW1lICsgJz0oW14mI10qKScpLFxyXG4gICAgICByZXN1bHRzID0gcmVnZXguZXhlYyhsb2NhdGlvbi5zZWFyY2gpO1xyXG4gICAgcmV0dXJuIHJlc3VsdHMgPT09IG51bGwgPyAnJyA6IGRlY29kZVVSSUNvbXBvbmVudChyZXN1bHRzWzFdLnJlcGxhY2UoL1xcKy9nLCAnICcpKTtcclxuICB9XHJcblxyXG4gIC8vIFRyeSBhbmQgZ2V0IHRva2VuIGZyb20gdGhlIHF1ZXJ5IHN0cmluZyBpZiBpdCdzIG5vdCBhbHJlYWR5IHByb3ZpZGVkXHJcbiAgcHJpdmF0ZSBnZXQgdG9rZW4oKTogc3RyaW5nIHtcclxuICAgIGlmICghdGhpcy5vcHRpb25zLnRva2VuKSB7XHJcbiAgICAgIHRoaXMub3B0aW9ucy50b2tlbiA9IHRoaXMuZ2V0UGFyYW1ldGVyKCd0b2tlbicpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy50b2tlbjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbWVyZ2VEZWZhdWx0T3B0aW9ucyhjdXN0b21PcHRpb25zKTogQWRkcmVzc1NlYXJjaE9wdGlvbnMge1xyXG4gICAgY29uc3QgaW5zdGFuY2U6IEFkZHJlc3NTZWFyY2hPcHRpb25zID0gY3VzdG9tT3B0aW9ucyB8fCB7fTtcclxuXHJcbiAgICBpbnN0YW5jZS5lbmFibGVkID0gdHJ1ZTtcclxuICAgIHRoaXMuc2VhcmNoVHlwZSA9IGluc3RhbmNlLnNlYXJjaFR5cGUgfHwgZGVmYXVsdHMuc2VhcmNoVHlwZTtcclxuICAgIGluc3RhbmNlLmVuYWJsZVdoYXQzV29yZHMgPSBpbnN0YW5jZS5lbmFibGVXaGF0M1dvcmRzIHx8IGRlZmF1bHRzLmVuYWJsZVdoYXQzV29yZHM7XHJcbiAgICBpbnN0YW5jZS5zZWFyY2hUeXBlID0gaW5zdGFuY2Uuc2VhcmNoVHlwZSB8fCBkZWZhdWx0cy5zZWFyY2hUeXBlO1xyXG4gICAgaW5zdGFuY2UubGFuZ3VhZ2UgPSBpbnN0YW5jZS5sYW5ndWFnZSB8fCBkZWZhdWx0cy5sYW5ndWFnZTtcclxuICAgIGluc3RhbmNlLnVzZVNwaW5uZXIgPSBpbnN0YW5jZS51c2VTcGlubmVyIHx8IGRlZmF1bHRzLnVzZVNwaW5uZXI7XHJcbiAgICBpbnN0YW5jZS5hcHBseUZvY3VzID0gKHR5cGVvZiBpbnN0YW5jZS5hcHBseUZvY3VzICE9PSAndW5kZWZpbmVkJykgPyBpbnN0YW5jZS5hcHBseUZvY3VzIDogZGVmYXVsdHMuaW5wdXQuYXBwbHlGb2N1cztcclxuICAgIGluc3RhbmNlLnBsYWNlaG9sZGVyVGV4dCA9IGluc3RhbmNlLnBsYWNlaG9sZGVyVGV4dCB8fCBkZWZhdWx0cy5pbnB1dC5wbGFjZWhvbGRlclRleHQ7XHJcbiAgICBpbnN0YW5jZS5zZWFyY2hBZ2FpbiA9IGluc3RhbmNlLnNlYXJjaEFnYWluIHx8IHt9O1xyXG4gICAgaW5zdGFuY2Uuc2VhcmNoQWdhaW4udmlzaWJsZSA9ICh0eXBlb2YgaW5zdGFuY2Uuc2VhcmNoQWdhaW4udmlzaWJsZSAhPT0gJ3VuZGVmaW5lZCcpID8gaW5zdGFuY2Uuc2VhcmNoQWdhaW4udmlzaWJsZSA6IGRlZmF1bHRzLnNlYXJjaEFnYWluLnZpc2libGU7XHJcbiAgICBpbnN0YW5jZS5zZWFyY2hBZ2Fpbi50ZXh0ID0gaW5zdGFuY2Uuc2VhcmNoQWdhaW4udGV4dCB8fCBkZWZhdWx0cy5zZWFyY2hBZ2Fpbi50ZXh0O1xyXG4gICAgaW5zdGFuY2UuZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lciA9IGluc3RhbmNlLmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIgfHwgZGVmYXVsdHMuZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lcjtcclxuICAgIGluc3RhbmNlLmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIuc2hvd0hlYWRpbmcgPSAodHlwZW9mIGluc3RhbmNlLmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIuc2hvd0hlYWRpbmcgIT09ICd1bmRlZmluZWQnKSA/IGluc3RhbmNlLmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIuc2hvd0hlYWRpbmcgOiBkZWZhdWx0cy5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyLnNob3dIZWFkaW5nO1xyXG4gICAgaW5zdGFuY2UuZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lci5oZWFkaW5nVHlwZSA9IGluc3RhbmNlLmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIuaGVhZGluZ1R5cGUgfHwgZGVmYXVsdHMuZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lci5oZWFkaW5nVHlwZTtcclxuICAgIGluc3RhbmNlLmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIudmFsaWRhdGVkSGVhZGluZ1RleHQgPSBpbnN0YW5jZS5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyLnZhbGlkYXRlZEhlYWRpbmdUZXh0IHx8IGRlZmF1bHRzLmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIudmFsaWRhdGVkSGVhZGluZ1RleHQ7XHJcbiAgICBpbnN0YW5jZS5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyLm1hbnVhbEhlYWRpbmdUZXh0ID0gaW5zdGFuY2UuZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lci5tYW51YWxIZWFkaW5nVGV4dCB8fCBkZWZhdWx0cy5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyLm1hbnVhbEhlYWRpbmdUZXh0O1xyXG4gICAgaW5zdGFuY2UudXNlQWRkcmVzc0VudGVyZWRUZXh0ID0gaW5zdGFuY2UudXNlQWRkcmVzc0VudGVyZWRUZXh0IHx8IGRlZmF1bHRzLnVzZUFkZHJlc3NFbnRlcmVkVGV4dDtcclxuICAgIGluc3RhbmNlLmVsZW1lbnRzID0gaW5zdGFuY2UuZWxlbWVudHMgfHwge307XHJcblxyXG4gICAgcmV0dXJuIGluc3RhbmNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRQcm9tcHRzZXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50Q291bnRyeUNvZGUpIHtcclxuICAgICAgLy8gVXNpbmcgdGhlIGNvdW50cnkgY29kZSBhbmQgdGhlIHNlYXJjaCB0eXBlLCBsb29rdXAgd2hhdCB0aGUgcmVsZXZhbnQgZGF0YXNldCBjb2RlIHNob3VsZCBiZVxyXG4gICAgICB0aGlzLmN1cnJlbnREYXRhU2V0ID0gdGhpcy5sb29rdXBEYXRhc2V0Q29kZSgpO1xyXG4gICAgICBpZiAodGhpcy5jdXJyZW50RGF0YVNldCkge1xyXG5cclxuICAgICAgICAvLy8gVGVtcG9yYXJ5IG1lYXN1cmUgdW50aWwgdGhlIHByb21wdHNldCBlbmRwb2ludCBzdXBwb3J0cyBBdXRvY29tcGxldGUgYW5kIFZhbGlkYXRlXHJcbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoVHlwZSA9PT0gQWRkcmVzc1ZhbGlkYXRpb25Nb2RlLkFVVE9DT01QTEVURSkge1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmhhbmRsZVByb21wdHNldFJlc3VsdCh7IHJlc3VsdDogeyBsaW5lczogW3sgZXhhbXBsZTogdGhpcy5vcHRpb25zLnBsYWNlaG9sZGVyVGV4dCwgcHJvbXB0OiAnQWRkcmVzcycsIHN1Z2dlc3RlZF9pbnB1dF9sZW5ndGg6IDE2MCB9XSB9IH0pKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2VhcmNoVHlwZSA9PT0gQWRkcmVzc1ZhbGlkYXRpb25Nb2RlLlZBTElEQVRFKSB7XHJcbiAgICAgICAgICBjb25zdCBsaW5lcyA9IFtcclxuICAgICAgICAgICAgeyBwcm9tcHQ6ICdBZGRyZXNzIGxpbmUgMScsIHN1Z2dlc3RlZF9pbnB1dF9sZW5ndGg6IDE2MCB9LFxyXG4gICAgICAgICAgICB7IHByb21wdDogJ0FkZHJlc3MgbGluZSAyJywgc3VnZ2VzdGVkX2lucHV0X2xlbmd0aDogMTYwIH0sXHJcbiAgICAgICAgICAgIHsgcHJvbXB0OiAnQWRkcmVzcyBsaW5lIDMnLCBzdWdnZXN0ZWRfaW5wdXRfbGVuZ3RoOiAxNjAgfSxcclxuICAgICAgICAgICAgeyBwcm9tcHQ6IHRoaXMucmVzdWx0LmNyZWF0ZUFkZHJlc3NMaW5lLmxhYmVsKCdsb2NhbGl0eScpLCBzdWdnZXN0ZWRfaW5wdXRfbGVuZ3RoOiAxNjAgfSxcclxuICAgICAgICAgICAgeyBwcm9tcHQ6IHRoaXMucmVzdWx0LmNyZWF0ZUFkZHJlc3NMaW5lLmxhYmVsKCdyZWdpb24nKSwgc3VnZ2VzdGVkX2lucHV0X2xlbmd0aDogMTYwIH0sXHJcbiAgICAgICAgICAgIHsgcHJvbXB0OiB0aGlzLnJlc3VsdC5jcmVhdGVBZGRyZXNzTGluZS5sYWJlbCgncG9zdGFsX2NvZGUnKSwgc3VnZ2VzdGVkX2lucHV0X2xlbmd0aDogMTYwIH1cclxuICAgICAgICAgIF07XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuaGFuZGxlUHJvbXB0c2V0UmVzdWx0KHsgcmVzdWx0OiB7IGxpbmVzIH0gfSkpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZGF0YSA9IHtcclxuICAgICAgICAgIGNvdW50cnlfaXNvOiB0aGlzLmN1cnJlbnRDb3VudHJ5Q29kZSxcclxuICAgICAgICAgIGRhdGFzZXRzOiBBcnJheS5pc0FycmF5KHRoaXMuY3VycmVudERhdGFTZXQpID8gdGhpcy5jdXJyZW50RGF0YVNldCA6IFt0aGlzLmN1cnJlbnREYXRhU2V0XSxcclxuICAgICAgICAgIHNlYXJjaF90eXBlOiB0aGlzLnNlYXJjaFR5cGUsXHJcbiAgICAgICAgICBwcm9tcHRfc2V0OiAnb3B0aW1hbCdcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuZXZlbnRzLnRyaWdnZXIoJ3ByZS1wcm9tcHRzZXQtY2hlY2snKTtcclxuICAgICAgICB0aGlzLnJlcXVlc3Quc2VuZCh0aGlzLmJhc2VVcmwgKyB0aGlzLnByb21wdHNldEVuZHBvaW50LCAnUE9TVCcsIHRoaXMuaGFuZGxlUHJvbXB0c2V0UmVzdWx0LmJpbmQodGhpcyksIEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsb29rdXBEYXRhc2V0Q29kZSgpOiBzdHJpbmcgfCBzdHJpbmdbXSB7XHJcbiAgICBjb25zdCBpdGVtID0gZGF0YXNldENvZGVzLmZpbmQoZGF0YXNldCA9PiBkYXRhc2V0LmlzbzNDb2RlID09PSB0aGlzLmN1cnJlbnRDb3VudHJ5Q29kZSAmJiBkYXRhc2V0LnNlYXJjaFR5cGUuaW5jbHVkZXModGhpcy5zZWFyY2hUeXBlKSk7XHJcbiAgICBpZiAoaXRlbSkge1xyXG4gICAgICByZXR1cm4gaXRlbS5kYXRhc2V0Q29kZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlUHJvbXB0c2V0UmVzdWx0KHJlc3BvbnNlKTogdm9pZCB7XHJcbiAgICAvLyBSZW1vdmUgYW55IGN1cnJlbnRseSBkaXNwbGF5ZWQgcGlja2xpc3Qgd2hlbiB0aGUgcHJvbXB0c2V0IGNoYW5nZXNcclxuICAgIHRoaXMucGlja2xpc3QuaGlkZSgpO1xyXG5cclxuICAgIC8vIFRyaWdnZXIgYSBuZXcgZXZlbnQgdG8gbm90aWZ5IHN1YnNjcmliZXJzXHJcbiAgICB0aGlzLmV2ZW50cy50cmlnZ2VyKCdwb3N0LXByb21wdHNldC1jaGVjaycsIHJlc3BvbnNlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRJbnB1dHMoaW5wdXRzID0gdGhpcy5vcHRpb25zLmVsZW1lbnRzLmlucHV0cyk6IHZvaWQge1xyXG4gICAgLy8gSWYgYWRkcmVzcyBpbnB1dHMgZXhpc3QgdGhlbiByZWdpc3RlciB0aGVzZSB3aXRoIGV2ZW50IGxpc3RlbmVycywgb3RoZXJ3aXNlIGNhbGwgdGhlIHByb21wdHNldCBlbmRwb2ludCB0byByZXRyaWV2ZSB0aGVtXHJcbiAgICBpZiAoaW5wdXRzKSB7XHJcbiAgICAgIHRoaXMucmVnaXN0ZXJJbnB1dHMoaW5wdXRzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIE1ha2UgYW4gQVBJIGNhbGwgdG8gZ2V0IHRoZSBwcm9tcHRzZXQgZm9yIHRoaXMgY291bnRyeS9kYXRhc2V0L2VuZ2luZVxyXG4gICAgICB0aGlzLmdldFByb21wdHNldCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnNlYXJjaFR5cGUgPT09IEFkZHJlc3NWYWxpZGF0aW9uTW9kZS5TSU5HTEVMSU5FIHx8IHRoaXMuc2VhcmNoVHlwZSA9PT0gQWRkcmVzc1ZhbGlkYXRpb25Nb2RlLlZBTElEQVRFKSB7XHJcbiAgICAgIC8vIEJpbmQgYW4gZXZlbnQgbGlzdGVuZXIgb24gdGhlIGxvb2t1cCBidXR0b25cclxuICAgICAgaWYgKHRoaXMub3B0aW9ucy5lbGVtZW50cy5sb29rdXBCdXR0b24pIHtcclxuICAgICAgICB0aGlzLmxvb2t1cEZuID0gdGhpcy5zZWFyY2guYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLm9wdGlvbnMuZWxlbWVudHMubG9va3VwQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5sb29rdXBGbik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVnaXN0ZXJJbnB1dHMoaW5wdXRzOiBIVE1MSW5wdXRFbGVtZW50W10pIHtcclxuICAgIC8vIElmIG5ldyBpbnB1dHMgaGF2ZSBiZWVuIHByb3ZpZGVkLCBlbnN1cmUgd2UgdXBkYXRlIHRoZSBlbGVtZW50cyBhcnJheSB0byBjYXB0dXJlIHRoZW1cclxuICAgIHRoaXMuaW5wdXRzID0gQXJyYXkuZnJvbShpbnB1dHMpO1xyXG5cclxuICAgIHRoaXMuaW5wdXRzLmZvckVhY2goaW5wdXQgPT4ge1xyXG4gICAgICAvLyBEaXNhYmxlIGF1dG9jb21wbGV0ZSBvbiB0aGUgZm9ybSBmaWVsZFxyXG4gICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ2F1dG9jb21wbGV0ZScsICduZXctcGFzc3dvcmQnKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLnNlYXJjaFR5cGUgPT09IEFkZHJlc3NWYWxpZGF0aW9uTW9kZS5BVVRPQ09NUExFVEUpIHtcclxuICAgICAgICAvLyBCaW5kIGFuIGV2ZW50IGxpc3RlbmVyIG9uIHRoZSBpbnB1dFxyXG4gICAgICAgIHRoaXMua2V5VXBGbiA9IHRoaXMuc2VhcmNoLmJpbmQodGhpcyk7XHJcbiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLmtleVVwRm4pO1xyXG4gICAgICAgIHRoaXMuY2hlY2tUYWJGbiA9IHRoaXMuY2hlY2tUYWIuYmluZCh0aGlzKTtcclxuICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5jaGVja1RhYkZuKTtcclxuICAgICAgICAvLyBTZXQgYSBwbGFjZWhvbGRlciBmb3IgdGhlIGlucHV0XHJcbiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicsIHRoaXMub3B0aW9ucy5wbGFjZWhvbGRlclRleHQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBCaW5kIGFuIGV2ZW50IGxpc3RlbmVyIG9uIHRoZSBpbnB1dCB0byBhbGxvdyB1c2VycyB0byB0cmF2ZXJzZSB1cCBhbmQgZG93biB0aGUgcGlja2xpc3QgdXNpbmcgdGhlIGtleWJvYXJkXHJcbiAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgdGhpcy5oYW5kbGVLZXlib2FyZEV2ZW50LmJpbmQodGhpcykpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5jb3VudHJ5Q29kZU1hcHBpbmcgPSB0aGlzLm9wdGlvbnMuY291bnRyeUNvZGVNYXBwaW5nIHx8IHt9O1xyXG5cclxuICAgIC8vIEFwcGx5IGZvY3VzIHRvIHRoZSBmaXJzdCBpbnB1dFxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5hcHBseUZvY3VzKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRzWzBdLmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldENvdW50cnlMaXN0KCk6IHZvaWQge1xyXG4gICAgLy8gU2V0IHRoZSBpbml0aWFsIGNvdW50cnkgY29kZSBmcm9tIGVpdGhlciB0aGUgdmFsdWUgb2YgYSBjb3VudHJ5IGxpc3QgSFRNTCBlbGVtZW50IG9yIGEgc3RhdGljIGNvdW50cnkgY29kZVxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5lbGVtZW50cy5jb3VudHJ5TGlzdCkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRDb3VudHJ5Q29kZSA9IHRoaXMub3B0aW9ucy5lbGVtZW50cy5jb3VudHJ5TGlzdC52YWx1ZTtcclxuXHJcbiAgICAgIC8vIExpc3RlbiBmb3Igd2hlbiBhIGNvdW50cnkgaXMgY2hhbmdlZCBhbmQgY2FsbCB0aGUgcHJvbXB0c2V0IGVuZHBvaW50XHJcbiAgICAgIHRoaXMub3B0aW9ucy5lbGVtZW50cy5jb3VudHJ5TGlzdC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLmhhbmRsZUNvdW50cnlMaXN0Q2hhbmdlLmJpbmQodGhpcykpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLm9wdGlvbnMuY291bnRyeUNvZGUpIHtcclxuICAgICAgdGhpcy5jdXJyZW50Q291bnRyeUNvZGUgPSB0aGlzLm9wdGlvbnMuY291bnRyeUNvZGU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BsZWFzZSBwcm92aWRlIGEgY291bnRyeSBjb2RlIG9yIGEgY291bnRyeSBsaXN0IGVsZW1lbnQnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFdoZW4gYSBjb3VudHJ5IGZyb20gdGhlIGxpc3QgaXMgY2hhbmdlZCwgdXBkYXRlIHRoZSBjdXJyZW50IGNvdW50cnkgY29kZSBhbmQgY2FsbCB0aGUgcHJvbXB0c2V0IGVuZHBvaW50IGFnYWluXHJcbiAgcHJpdmF0ZSBoYW5kbGVDb3VudHJ5TGlzdENoYW5nZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3VycmVudENvdW50cnlDb2RlID0gdGhpcy5vcHRpb25zLmVsZW1lbnRzLmNvdW50cnlMaXN0LnZhbHVlO1xyXG4gICAgdGhpcy5nZXRQcm9tcHRzZXQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2VuZXJhdGVTZWFyY2hEYXRhRm9yQXBpQ2FsbCgpOiBzdHJpbmcge1xyXG4gICAgLy8gSWYgYSBkYXRhc2V0IGNvZGUgaGFzbid0IGJlZW4gc2V0IHlldCwgdHJ5IGFuZCBsb29rIGl0IHVwXHJcbiAgICBpZiAoIXRoaXMuY3VycmVudERhdGFTZXQpIHtcclxuICAgICAgdGhpcy5jdXJyZW50RGF0YVNldCA9IHRoaXMubG9va3VwRGF0YXNldENvZGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICBjb3VudHJ5X2lzbzogdGhpcy5jdXJyZW50Q291bnRyeUNvZGUsXHJcbiAgICAgIGNvbXBvbmVudHM6IHsgdW5zcGVjaWZpZWQ6IFt0aGlzLmN1cnJlbnRTZWFyY2hUZXJtXSB9LFxyXG4gICAgICBkYXRhc2V0czogQXJyYXkuaXNBcnJheSh0aGlzLmN1cnJlbnREYXRhU2V0KSA/IHRoaXMuY3VycmVudERhdGFTZXQgOiBbdGhpcy5jdXJyZW50RGF0YVNldF0sXHJcbiAgICAgIG1heF9zdWdnZXN0aW9uczogKHRoaXMub3B0aW9ucy5tYXhTdWdnZXN0aW9ucyB8fCB0aGlzLnBpY2tsaXN0Lm1heFN1Z2dlc3Rpb25zKVxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAodGhpcy5zZWFyY2hUeXBlID09PSBBZGRyZXNzVmFsaWRhdGlvbk1vZGUuU0lOR0xFTElORSB8fCB0aGlzLnNlYXJjaFR5cGUgPT09IEFkZHJlc3NWYWxpZGF0aW9uTW9kZS5WQUxJREFURSkge1xyXG4gICAgICBkYXRhWydvcHRpb25zJ10gPSBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbmFtZTogJ2ZsYXR0ZW4nLFxyXG4gICAgICAgICAgVmFsdWU6ICd0cnVlJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbmFtZTogJ2ludGVuc2l0eScsXHJcbiAgICAgICAgICBWYWx1ZTogJ2Nsb3NlJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbmFtZTogJ3Byb21wdF9zZXQnLFxyXG4gICAgICAgICAgVmFsdWU6ICdkZWZhdWx0J1xyXG4gICAgICAgIH1cclxuICAgICAgXTtcclxuXHJcbiAgICAgIGlmICh0aGlzLnNlYXJjaFR5cGUgPT09IEFkZHJlc3NWYWxpZGF0aW9uTW9kZS5TSU5HTEVMSU5FKSB7XHJcbiAgICAgICAgZGF0YVsnb3B0aW9ucyddLnB1c2goe1xyXG4gICAgICAgICAgbmFtZTogJ3NlYXJjaF90eXBlJyxcclxuICAgICAgICAgIFZhbHVlOiAnc2luZ2xlbGluZSdcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMuc2VhcmNoVHlwZSA9PT0gQWRkcmVzc1ZhbGlkYXRpb25Nb2RlLlZBTElEQVRFKSB7XHJcbiAgICAgICAgZGF0YVsnbGF5b3V0cyddID0gWydkZWZhdWx0J107XHJcbiAgICAgICAgZGF0YVsnbGF5b3V0X2Zvcm1hdCddID0gJ2RlZmF1bHQnO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5sb2NhdGlvbikge1xyXG4gICAgICBkYXRhWydsb2NhdGlvbiddID0gdGhpcy5vcHRpb25zLmxvY2F0aW9uO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZW5lcmF0ZUxvb2t1cERhdGFGb3JBcGlDYWxsKGlucHV0OiBzdHJpbmcsIHNob3VsZEdldFN1Z2dlc3Rpb25zOiBib29sZWFuKTogc3RyaW5nIHtcclxuICAgIC8vIElmIGEgZGF0YXNldCBjb2RlIGhhc24ndCBiZWVuIHNldCB5ZXQsIHRyeSBhbmQgbG9vayBpdCB1cFxyXG4gICAgaWYgKCF0aGlzLmN1cnJlbnREYXRhU2V0KSB7XHJcbiAgICAgIHRoaXMuY3VycmVudERhdGFTZXQgPSB0aGlzLmxvb2t1cERhdGFzZXRDb2RlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZGF0YSA9IHtcclxuICAgICAgY291bnRyeV9pc286IHRoaXMuY3VycmVudENvdW50cnlDb2RlLFxyXG4gICAgICBkYXRhc2V0czogQXJyYXkuaXNBcnJheSh0aGlzLmN1cnJlbnREYXRhU2V0KSA/IHRoaXMuY3VycmVudERhdGFTZXQgOiBbdGhpcy5jdXJyZW50RGF0YVNldF0sXHJcbiAgICAgIG1heF9zdWdnZXN0aW9uczogKHRoaXMub3B0aW9ucy5tYXhTdWdnZXN0aW9ucyB8fCB0aGlzLnBpY2tsaXN0Lm1heFN1Z2dlc3Rpb25zKSxcclxuICAgICAga2V5OiB7XHJcbiAgICAgICAgdHlwZTogdGhpcy53aGF0M1dvcmRzS2V5d29yZCxcclxuICAgICAgICB2YWx1ZTogdGhpcy5nZXRXaGF0M1dvcmRzTG9va3VwVmFsdWUoaW5wdXQsIHNob3VsZEdldFN1Z2dlc3Rpb25zKSxcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoZGF0YSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFdoYXQzV29yZHNMb29rdXBWYWx1ZShpbnB1dDogc3RyaW5nLCBzaG91bGRHZXRTdWdnZXN0aW9uczogYm9vbGVhbik6IHN0cmluZyB7XHJcbiAgICBpZiAoaW5wdXQuc3RhcnRzV2l0aCgnLy8vJykgJiYgc2hvdWxkR2V0U3VnZ2VzdGlvbnMpIHtcclxuICAgICAgaW5wdXQgPSBpbnB1dC5zbGljZSgzKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaW5wdXQ7XHJcbiAgfVxyXG5cclxuICAvLyBBbGxvdyB0aGUga2V5Ym9hcmQgdG8gYmUgdXNlZCB0byBlaXRoZXIgdHJhdmVyc2UgdXAgYW5kIGRvd24gdGhlIHBpY2tsaXN0IGFuZCBzZWxlY3QgYW4gaXRlbSwgb3IgdHJpZ2dlciBhIG5ldyBzZWFyY2hcclxuICBwcml2YXRlIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgLy8gSGFuZGxlIGtleWJvYXJkIG5hdmlnYXRpb25cclxuICAgIGNvbnN0IGtleSA9IHRoaXMuZ2V0S2V5KGV2ZW50KTtcclxuXHJcbiAgICAvLyBJZiBhIHBpY2tsaXN0IGlzIHBvcHVsYXRlZCB0aGVuIHRyaWdnZXIgaXRzIGtleXVwIGV2ZW50IHRvIHNlbGVjdCBhbiBpdGVtXHJcbiAgICBpZiAodGhpcy5waWNrbGlzdC5zaXplKSB7XHJcbiAgICAgIGlmIChrZXkgPT09ICdBcnJvd1VwJyB8fCBrZXkgPT09ICdBcnJvd0Rvd24nIHx8IGtleSA9PT0gJ0VudGVyJykge1xyXG4gICAgICAgIHRoaXMucGlja2xpc3Qua2V5dXAoZXZlbnQpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gT3RoZXJ3aXNlLCBlbmFibGUgcHJlc3NpbmcgJ2VudGVyJyB0byB0cmlnZ2VyIGEgbmV3IHNlYXJjaFxyXG4gICAgICBpZiAoa2V5ID09PSAnRW50ZXInKSB7XHJcbiAgICAgICAgdGhpcy5zZWFyY2goZXZlbnQpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gTWFpbiBmdW5jdGlvbiB0byBzZWFyY2ggZm9yIGFuIGFkZHJlc3MgZnJvbSBhbiBpbnB1dCBzdHJpbmdcclxuICBwcml2YXRlIHNlYXJjaChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICB0aGlzLmN1cnJlbnRTZWFyY2hUZXJtID0gdGhpcy5pbnB1dHMubWFwKGlucHV0ID0+IGlucHV0LnZhbHVlKS5qb2luKCcsJyk7XHJcblxyXG4gICAgLy8gR3JhYiB0aGUgY291bnRyeSBJU08gY29kZSBhbmQgKGlmIGl0IGlzIHByZXNlbnQpIHRoZSBkYXRhc2V0IG5hbWUgZnJvbSB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgY291bnRyeUxpc3QgKGZvcm1hdDoge2NvdW50cnlJc29Db2RlfTt7ZGF0YXNldH0pXHJcbiAgICBjb25zdCBjdXJyZW50Q291bnRyeUluZm8gPSB0aGlzLmNvdW50cnlDb2RlTWFwcGluZ1t0aGlzLmN1cnJlbnRDb3VudHJ5Q29kZV0gfHwgdGhpcy5jdXJyZW50Q291bnRyeUNvZGU7XHJcbiAgICBjb25zdCBjb3VudHJ5Q29kZUFuZERhdGFzZXQgPSBjdXJyZW50Q291bnRyeUluZm8uc3BsaXQoJzsnKTtcclxuXHJcbiAgICB0aGlzLmN1cnJlbnRDb3VudHJ5Q29kZSA9IGNvdW50cnlDb2RlQW5kRGF0YXNldFswXTtcclxuICAgIGlmIChjb3VudHJ5Q29kZUFuZERhdGFzZXRbMV0pIHtcclxuICAgICAgdGhpcy5jdXJyZW50RGF0YVNldCA9IGNvdW50cnlDb2RlQW5kRGF0YXNldFsxXTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAoUmUtKXNldCB0aGUgcHJvcGVydHkgc3RhdGluZyB3aGV0aGVyIHRoZSBzZWFyY2ggaW5wdXQgaGFzIGJlZW4gcmVzZXQuXHJcbiAgICAvLyBUaGlzIGlzIG5lZWRlZCBmb3IgaW5zdGFuY2VzIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBpcyBhbHNvIGFuIGFkZHJlc3NcclxuICAgIC8vIG91dHB1dCBmaWVsZC4gQWZ0ZXIgYW4gYWRkcmVzcyBoYXMgYmVlbiByZXR1cm5lZCwgeW91IGRvbid0IHdhbnQgYSBuZXcgXHJcbiAgICAvLyBzZWFyY2ggYmVpbmcgdHJpZ2dlcmVkIHVudGlsIHRoZSBmaWVsZCBoYXMgYmVlbiBjbGVhcmVkLlxyXG4gICAgaWYgKHRoaXMuY3VycmVudFNlYXJjaFRlcm0gPT09ICcnKSB7XHJcbiAgICAgIHRoaXMuaGFzU2VhcmNoSW5wdXRCZWVuUmVzZXQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIENoZWNrIGlmIHNlYXJjaGluZyBpcyBwZXJtaXR0ZWRcclxuICAgIGlmICh0aGlzLmNhblNlYXJjaCgpKSB7XHJcbiAgICAgIC8vIEFib3J0IGFueSBvdXRzdGFuZGluZyByZXF1ZXN0c1xyXG4gICAgICBpZiAodGhpcy5yZXF1ZXN0LmN1cnJlbnRSZXF1ZXN0KSB7XHJcbiAgICAgICAgdGhpcy5yZXF1ZXN0LmN1cnJlbnRSZXF1ZXN0LmFib3J0KCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIFJlZ2V4IHRoYXQgY2hlY2tzIGlmIHRoZSBpbnB1dCBpcyB0aGUgZm9ybWF0IGZvciBhIHdoYXQzd29yZHMgc2VhcmNoLiBFeDogLy8vYS5iLmNcclxuICAgICAgY29uc3QgcmVnZXggPSAvXlxcL3swLH0oPzpbXjAtOWB+IUAjJCVeJiooKStcXC1fPVt7XFxdfVxcXFx8JzwsLj4/L1wiOzrCo8KnwrrCqcKuXFxzXStbLu+9oeOAgu+9peODu++4kuGflNaJ4YGL25ThjaLgpaRdW14wLTlgfiFAIyQlXiYqKCkrXFwtXz1be1xcXX1cXFxcfCc8LC4+Py9cIjs6wqPCp8K6wqnCrlxcc10rWy7vvaHjgILvvaXjg7vvuJLhn5TWieGBi9uU4Y2i4KWkXVteMC05YH4hQCMkJV4mKigpK1xcLV89W3tcXF19XFxcXHwnPCwuPj8vXCI7OsKjwqfCusKpwq5cXHNdK3xbXjAtOWB+IUAjJCVeJiooKStcXC1fPVt7XFxdfVxcXFx8JzwsLj4/L1wiOzrCo8KnwrrCqcKuXFxzXSsoW1xcdTAwMjBcXHUwMEEwXVteMC05YH4hQCMkJV4mKigpK1xcLV89W3tcXF19XFxcXHwnPCwuPj8vXCI7OsKjwqfCusKpwq5cXHNdKyl7MSwzfVsu772h44CC772l44O777iS4Z+U1onhgYvblOGNouClpF1bXjAtOWB+IUAjJCVeJiooKStcXC1fPVt7XFxdfVxcXFx8JzwsLj4/L1wiOzrCo8KnwrrCqcKuXFxzXSsoW1xcdTAwMjBcXHUwMEEwXVteMC05YH4hQCMkJV4mKigpK1xcLV89W3tcXF19XFxcXHwnPCwuPj8vXCI7OsKjwqfCusKpwq5cXHNdKyl7MSwzfVsu772h44CC772l44O777iS4Z+U1onhgYvblOGNouClpF1bXjAtOWB+IUAjJCVeJiooKStcXC1fPVt7XFxdfVxcXFx8JzwsLj4/L1wiOzrCo8KnwrrCqcKuXFxzXSsoW1xcdTAwMjBcXHUwMEEwXVteMC05YH4hQCMkJV4mKigpK1xcLV89W3tcXF19XFxcXHwnPCwuPj8vXCI7OsKjwqfCusKpwq5cXHNdKyl7MSwzfSkkLztcclxuXHJcbiAgICAgIGlmIChyZWdleC50ZXN0KHRoaXMuY3VycmVudFNlYXJjaFRlcm0udHJpbSgpKSAmJiB0aGlzLm9wdGlvbnMuZW5hYmxlV2hhdDNXb3JkcyAmJiB0aGlzLndoYXQzV29yZENvdW50cmllcy5pbmRleE9mKHRoaXMuY3VycmVudENvdW50cnlDb2RlKSA+IC0xKSB7XHJcbiAgICAgICAgdGhpcy5pc1doYXQzV29yZHMgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY3VycmVudFNlYXJjaFRlcm0gPSB0aGlzLmN1cnJlbnRTZWFyY2hUZXJtLnRyaW0oKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLmlzV2hhdDNXb3JkcyA9IGZhbHNlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBGaXJlIGFuIGV2ZW50IGJlZm9yZSBhIHNlYXJjaCB0YWtlcyBwbGFjZVxyXG4gICAgICB0aGlzLmV2ZW50cy50cmlnZ2VyKCdwcmUtc2VhcmNoJywgdGhpcy5jdXJyZW50U2VhcmNoVGVybSk7XHJcblxyXG4gICAgICAvLyBDb25zdHJ1Y3QgdGhlIG5ldyBTZWFyY2ggVVJMIGFuZCBkYXRhXHJcbiAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmlzV2hhdDNXb3JkcyA/IHRoaXMuZ2VuZXJhdGVMb29rdXBEYXRhRm9yQXBpQ2FsbCh0aGlzLmN1cnJlbnRTZWFyY2hUZXJtLCB0cnVlKSA6IHRoaXMuZ2VuZXJhdGVTZWFyY2hEYXRhRm9yQXBpQ2FsbCgpO1xyXG5cclxuICAgICAgLy8gU3RvcmUgdGhlIGxhc3Qgc2VhcmNoIHRlcm1cclxuICAgICAgdGhpcy5sYXN0U2VhcmNoVGVybSA9IHRoaXMuY3VycmVudFNlYXJjaFRlcm07XHJcblxyXG4gICAgICAvLyBIaWRlIHRoZSBpbmxpbmUgc2VhcmNoIHNwaW5uZXJcclxuICAgICAgdGhpcy5zZWFyY2hTcGlubmVyLmhpZGUoKTtcclxuXHJcbiAgICAgIC8vIFNob3cgYW4gaW5saW5lIHNwaW5uZXIgd2hpbHN0IHNlYXJjaGluZ1xyXG4gICAgICB0aGlzLnNlYXJjaFNwaW5uZXIuc2hvdygpO1xyXG5cclxuICAgICAgbGV0IHVybCwgaGVhZGVycywgY2FsbGJhY2s7XHJcbiAgICAgIC8vIFNldCB0aGUgQVBJIFVSTCwgaGVhZGVycyBhbmQgY2FsbGJhY2sgZnVuY3Rpb24gZGVwZW5kaW5nIG9uIHRoZSBzZWFyY2ggdHlwZVxyXG4gICAgICBpZiAodGhpcy5pc1doYXQzV29yZHMpIHtcclxuICAgICAgICB1cmwgPSB0aGlzLmJhc2VVcmwgKyB0aGlzLmxvb2t1cEVuZHBvaW50O1xyXG4gICAgICAgIGhlYWRlcnMgPSBbXTtcclxuICAgICAgICBjYWxsYmFjayA9IHRoaXMucGlja2xpc3Quc2hvd1doYXQzV29yZHM7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdXJsID0gdGhpcy5iYXNlVXJsICsgKHRoaXMuc2VhcmNoVHlwZSA9PT0gQWRkcmVzc1ZhbGlkYXRpb25Nb2RlLlZBTElEQVRFID8gdGhpcy52YWxpZGF0ZUVuZHBvaW50IDogdGhpcy5zZWFyY2hFbmRwb2ludCk7XHJcbiAgICAgICAgaGVhZGVycyA9IHRoaXMuc2VhcmNoVHlwZSA9PT0gQWRkcmVzc1ZhbGlkYXRpb25Nb2RlLlZBTElEQVRFID8gW3sga2V5OiAnQWRkLU1ldGFkYXRhJywgdmFsdWU6IHRydWUgfV0gOiBbXTtcclxuICAgICAgICBjYWxsYmFjayA9IHRoaXMuc2VhcmNoVHlwZSA9PT0gQWRkcmVzc1ZhbGlkYXRpb25Nb2RlLlZBTElEQVRFID8gdGhpcy5yZXN1bHQuaGFuZGxlVmFsaWRhdGVSZXNwb25zZSA6IHRoaXMucGlja2xpc3Quc2hvdztcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gSW5pdGlhdGUgbmV3IFNlYXJjaCByZXF1ZXN0XHJcbiAgICAgIHRoaXMucmVxdWVzdC5zZW5kKHVybCwgJ1BPU1QnLCBjYWxsYmFjaywgZGF0YSwgaGVhZGVycyk7XHJcblxyXG4gICAgfSBlbHNlIGlmICh0aGlzLmxhc3RTZWFyY2hUZXJtICE9PSB0aGlzLmN1cnJlbnRTZWFyY2hUZXJtKSB7XHJcbiAgICAgIC8vIENsZWFyIHRoZSBwaWNrbGlzdCBpZiB0aGUgc2VhcmNoIHRlcm0gaXMgY2xlYXJlZC9lbXB0eVxyXG4gICAgICB0aGlzLnBpY2tsaXN0LmhpZGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIEhlbHBlciBtZXRob2QgdG8gcmV0dXJuIGEgY29uc2lzdGVudCBrZXkgbmFtZVxyXG4gIHByaXZhdGUgZ2V0S2V5KHsga2V5IH0pOiBzdHJpbmcge1xyXG4gICAgc3dpdGNoIChrZXkpIHtcclxuICAgICAgY2FzZSAnRG93bic6XHJcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XHJcbiAgICAgICAgcmV0dXJuICdBcnJvd0Rvd24nO1xyXG4gICAgICBjYXNlICdVcCc6XHJcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxyXG4gICAgICAgIHJldHVybiAnQXJyb3dVcCc7XHJcbiAgICAgIGNhc2UgJ1NwYWNlYmFyJzpcclxuICAgICAgY2FzZSAnICc6XHJcbiAgICAgICAgcmV0dXJuICcgJztcclxuICAgICAgY2FzZSAnRXNjYXBlJzpcclxuICAgICAgY2FzZSAnRXNjJzpcclxuICAgICAgICByZXR1cm4gJ0VzY2FwZSc7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIGtleTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2FuU2VhcmNoKCk6IGJvb2xlYW4ge1xyXG4gICAgLy8gSWYgc2VhcmNoaW5nIG9uIHRoaXMgaW5zdGFuY2UgaXMgZW5hYmxlZCwgYW5kXHJcbiAgICByZXR1cm4gKHRoaXMub3B0aW9ucy5lbmFibGVkICYmXHJcbiAgICAgIC8vIElmIHNlYXJjaCB0ZXJtIGlzIG5vdCBlbXB0eSwgYW5kXHJcbiAgICAgIHRoaXMuY3VycmVudFNlYXJjaFRlcm0gIT09ICcnICYmXHJcbiAgICAgIC8vIElmIHRoZSBzZWFyY2ggdGVybSBpcyBhdCBsZWFzdCA0IGNoYXJhY3RlcnNcclxuICAgICAgdGhpcy5jdXJyZW50U2VhcmNoVGVybS5sZW5ndGggPiAzICYmXHJcbiAgICAgIC8vIElmIHNlYXJjaCB0ZXJtIGlzIG5vdCB0aGUgc2FtZSBhcyBwcmV2aW91cyBzZWFyY2ggdGVybSwgYW5kXHJcbiAgICAgIHRoaXMubGFzdFNlYXJjaFRlcm0gIT09IHRoaXMuY3VycmVudFNlYXJjaFRlcm0gJiZcclxuICAgICAgLy8gSWYgdGhlIGNvdW50cnkgaXMgbm90IGVtcHR5LCBhbmRcclxuICAgICAgdGhpcy5jdXJyZW50Q291bnRyeUNvZGUgJiZcclxuICAgICAgLy8gSWYgc2VhcmNoIGlucHV0IGhhcyBiZWVuIHJlc2V0IChpZiBhcHBsaWNhYmxlKVxyXG4gICAgICB0aGlzLmhhc1NlYXJjaElucHV0QmVlblJlc2V0ID09PSB0cnVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcG93ZXJlZEJ5TG9nbzogUG93ZXJlZEJ5TG9nbyA9IHtcclxuICAgIGVsZW1lbnQ6IG51bGwsXHJcbiAgICAvLyBDcmVhdGUgYSBcIlBvd2VyZWQgYnkgRXhwZXJpYW5cIiBmb290ZXJcclxuICAgIGNyZWF0ZShwaWNrbGlzdCkge1xyXG4gICAgICBjb25zdCBpdGVtID0ge1xyXG4gICAgICAgIHRleHQ6IGAke3RoaXMuc3ZnfSA8ZW0+UG93ZXJlZCBieSBFeHBlcmlhbjwvZW0+YCxcclxuICAgICAgICBmb3JtYXQ6ICcnXHJcbiAgICAgIH07XHJcbiAgICAgIGNvbnN0IGxpc3RJdGVtID0gcGlja2xpc3QuY3JlYXRlTGlzdEl0ZW0oaXRlbSk7XHJcbiAgICAgIGxpc3RJdGVtLmNsYXNzTGlzdC5hZGQoJ3Bvd2VyZWQtYnktZXhwZXJpYW4nKTtcclxuICAgICAgcGlja2xpc3QubGlzdC5wYXJlbnROb2RlLmFwcGVuZENoaWxkKGxpc3RJdGVtKTtcclxuICAgICAgcmV0dXJuIGxpc3RJdGVtO1xyXG4gICAgfSxcclxuICAgIC8vIERlc3Ryb3kgdGhlIFwiUG93ZXJlZCBieSBFeHBlcmlhblwiIGZvb3RlclxyXG4gICAgZGVzdHJveShwaWNrbGlzdCkge1xyXG4gICAgICBpZiAodGhpcy5lbGVtZW50KSB7XHJcbiAgICAgICAgcGlja2xpc3QubGlzdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuZWxlbWVudCk7XHJcbiAgICAgICAgdGhpcy5lbGVtZW50ID0gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgc3ZnOiBgPHN2ZyBjbGFzcz1cImV4cGVyaWFuLWxvZ29cIiB2ZXJzaW9uPVwiMS4xXCIgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiIHg9XCIwcHhcIiB5PVwiMHB4XCIgdmlld0JveD1cIjAgMCAxMjAgMTIwXCIgc3R5bGU9XCJcIiB4bWw6c3BhY2U9XCJwcmVzZXJ2ZVwiIHJvbGU9XCJpbWdcIiBhcmlhLWxhYmVsPVwiUG93ZXJlZCBieSBFeHBlcmlhblwiPlxyXG4gICAgICAgICAgICA8dGl0bGU+RXhwZXJpYW4gbG9nbzwvdGl0bGU+XHJcbiAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggc3R5bGU9XCJmaWxsOiAjMEU2RUI2XCIgZD1cIk01Ni4xLDI3aC0xM2MtMy45LDAtNy0zLjEtNy03VjdjMC0zLjksMy4xLTcsNy03aDEzYzMuOSwwLDcsMy4xLDcsN3YxM0M2My4xLDIzLjgsNjAsMjcsNTYuMSwyN1wiPjwvcGF0aD5cclxuICAgICAgICAgICAgICAgIDxwYXRoIHN0eWxlPVwiZmlsbDogIzcyMjE3QlwiIGQ9XCJNMjIuNSw1Ni4xSDcuOWMtNC4zLDAtNy45LTMuNS03LjktNy45VjMzLjZjMC00LjMsMy41LTcuOSw3LjktNy45aDE0LjZjNC4zLDAsNy45LDMuNSw3LjksNy45djE0LjZDMzAuNCw1Mi42LDI2LjgsNTYuMSwyMi41LDU2LjFcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBzdHlsZT1cImZpbGw6ICNCMTIzODRcIiBkPVwiTTIxLjEsODYuNGgtOC45Yy0yLjcsMC00LjgtMi4xLTQuOC00Ljh2LTguOWMwLTIuNywyLjItNC44LDQuOC00LjhoOC45YzIuNywwLDQuOCwyLjIsNC44LDQuOHY4LjlDMjUuOSw4NC4zLDIzLjcsODYuNCwyMS4xLDg2LjRcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBzdHlsZT1cImZpbGw6ICNFNzI4ODdcIiBkPVwiTTQ1LjEsMTE0LjdIMzQuNWMtMy4xLDAtNS43LTIuNS01LjctNS43Vjk4LjRjMC0zLjEsMi41LTUuNyw1LjctNS43aDEwLjZjMy4xLDAsNS43LDIuNSw1LjcsNS43VjEwOUM1MC43LDExMi4xLDQ4LjIsMTE0LjcsNDUuMSwxMTQuN1wiPjwvcGF0aD5cclxuICAgICAgICAgICAgICAgIDxwYXRoIHN0eWxlPVwiZmlsbDogI0U3Mjg4N1wiIGQ9XCJNODMuOCwzMi4zaC03LjNjLTIuMiwwLTMuOS0xLjgtMy45LTMuOXYtNy4zYzAtMi4yLDEuOC0zLjksMy45LTMuOWg3LjNjMi4yLDAsMy45LDEuOCwzLjksMy45djcuM0M4Ny43LDMwLjUsODUuOSwzMi4zLDgzLjgsMzIuM1wiPjwvcGF0aD5cclxuICAgICAgICAgICAgICAgIDxwYXRoIHN0eWxlPVwiZmlsbDogIzAwNDY5MVwiIGQ9XCJNODEuNyw2MS44QzgxLjUsNTEuMSw3Miw0Miw2MC43LDQyQzQ5LDQyLDM5LjYsNTEuMywzOS42LDYyLjlDMzkuNiw3NC42LDQ5LDg0LDYwLjcsODRjNS42LDAsMTAuOC0yLjIsMTQuNi01LjljMC43LTAuNywxLjItMS42LDEuMi0yLjZjMC0xLjktMS42LTMuNS0zLjUtMy41Yy0xLjEsMC0yLDAuNy0yLjgsMS40Yy0yLjQsMi41LTUuOSwzLjctOS41LDMuN2MtNywwLTEyLjctNC44LTEzLjktMTEuNWgzMS41YzAsMCwwLDAsMC4xLDBoMC4xYzAuMSwwLDAuMSwwLDAuMiwwYzAuMSwwLDAuMiwwLDAuNC0wLjFDODAuNCw2NSw4MS43LDYzLjYsODEuNyw2MS44eiBNNjAuNyw0OC45YzYuMywwLDExLjYsNC4xLDEzLjQsOS43SDQ3LjNDNDkuMSw1Myw1NC4zLDQ4LjksNjAuNyw0OC45elwiPjwvcGF0aD5cclxuICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgIDwvc3ZnPmBcclxuICB9O1xyXG5cclxuICBwcml2YXRlIGNyZWF0ZVBpY2tsaXN0KCkge1xyXG4gICAgLy8gSW5zdGFudGlhdGUgYSBuZXcgUGlja2xpc3QgY2xhc3MgYW5kIHNldCB0aGUgcHJvcGVydGllcyBiZWxvd1xyXG4gICAgdGhpcy5waWNrbGlzdCA9IG5ldyBQaWNrbGlzdCgpO1xyXG5cclxuICAgIC8vIFNldCBpbml0aWFsIG1heCBzaXplXHJcbiAgICB0aGlzLnBpY2tsaXN0Lm1heFN1Z2dlc3Rpb25zID0gMjU7XHJcbiAgICAvLyBUYWIgY291bnQgdXNlZCBmb3Iga2V5Ym9hcmQgbmF2aWdhdGlvblxyXG4gICAgdGhpcy5waWNrbGlzdC50YWJDb3VudCA9IC0xO1xyXG4gICAgLy8gUmVuZGVyIGEgcGlja2xpc3Qgb2Ygc2VhcmNoIHJlc3VsdHNcclxuXHJcbiAgICB0aGlzLnBpY2tsaXN0LnNob3cgPSAoaXRlbXM6IFNlYXJjaFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIC8vIFN0b3JlIHRoZSBwaWNrbGlzdCBpdGVtc1xyXG4gICAgICB0aGlzLnBpY2tsaXN0Lml0ZW1zID0gaXRlbXM/LnJlc3VsdC5zdWdnZXN0aW9ucztcclxuXHJcbiAgICAgIHRoaXMucGlja2xpc3QuaGFuZGxlQ29tbW9uU2hvd1BpY2tsaXN0TG9naWMoKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLnBpY2tsaXN0Lml0ZW1zPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgLy8gSWYgYSBwaWNrbGlzdCBuZWVkcyBcInJlZmluaW5nXCIgdGhlbiBwcmVwZW5kIGEgdGV4dGJveCB0byBhbGxvdyB0aGUgdXNlciB0byBlbnRlciB0aGVpciBzZWxlY3Rpb25cclxuICAgICAgICBpZiAodGhpcy5waWNrbGlzdC5yZWZpbmUuaXNOZWVkZWQoaXRlbXMpKSB7XHJcbiAgICAgICAgICB0aGlzLnBpY2tsaXN0LnJlZmluZS5jcmVhdGVJbnB1dChpdGVtcy5yZXN1bHQuc3VnZ2VzdGlvbnNfcHJvbXB0LCBpdGVtcy5yZXN1bHQuc3VnZ2VzdGlvbnNfa2V5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnNlYXJjaFR5cGUgPT09IEFkZHJlc3NWYWxpZGF0aW9uTW9kZS5WQUxJREFURSkge1xyXG4gICAgICAgICAgdGhpcy5waWNrbGlzdC5kaXNwbGF5U3VnZ2VzdGlvbnNIZWFkZXIoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIEl0ZXJhdGUgb3ZlciBhbmQgc2hvdyByZXN1bHRzXHJcbiAgICAgICAgdGhpcy5waWNrbGlzdC5pdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IGl0ZW0vcm93IGluIHRoZSBwaWNrbGlzdFxyXG4gICAgICAgICAgY29uc3QgbGlzdEl0ZW0gPSB0aGlzLnBpY2tsaXN0LmNyZWF0ZUxpc3RJdGVtKGl0ZW0pO1xyXG4gICAgICAgICAgdGhpcy5waWNrbGlzdC5saXN0LmFwcGVuZENoaWxkKGxpc3RJdGVtKTtcclxuXHJcbiAgICAgICAgICAvLyBMaXN0ZW4gZm9yIHNlbGVjdGlvbiBvbiB0aGlzIGl0ZW1cclxuICAgICAgICAgIHRoaXMucGlja2xpc3QubGlzdGVuKGxpc3RJdGVtKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoVHlwZSA9PT0gQWRkcmVzc1ZhbGlkYXRpb25Nb2RlLlZBTElEQVRFKSB7XHJcbiAgICAgICAgICB0aGlzLnBpY2tsaXN0LmRpc3BsYXlVc2VBZGRyZXNzRW50ZXJlZEZvb3RlcigpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5waWNrbGlzdC5zY3JvbGxJbnRvVmlld0lmTmVlZGVkKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5waWNrbGlzdC5oYW5kbGVFbXB0eVBpY2tsaXN0KGl0ZW1zKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gQWRkIGEgXCJQb3dlcmVkIGJ5IEV4cGVyaWFuXCIgbG9nbyB0byB0aGUgcGlja2xpc3QgZm9vdGVyXHJcbiAgICAgIHRoaXMucG93ZXJlZEJ5TG9nby5lbGVtZW50ID0gdGhpcy5wb3dlcmVkQnlMb2dvLmVsZW1lbnQgfHwgdGhpcy5wb3dlcmVkQnlMb2dvLmNyZWF0ZSh0aGlzLnBpY2tsaXN0KTtcclxuXHJcbiAgICAgIC8vIEZpcmUgYW4gZXZlbnQgYWZ0ZXIgcGlja2xpc3QgaXMgY3JlYXRlZFxyXG4gICAgICB0aGlzLmV2ZW50cy50cmlnZ2VyKCdwb3N0LXBpY2tsaXN0LWNyZWF0ZScsIHRoaXMucGlja2xpc3QuaXRlbXMpO1xyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLnBpY2tsaXN0LnNob3dXaGF0M1dvcmRzID0gKGl0ZW1zOiBMb29rdXBXM1dSZXNwb25zZSkgPT4ge1xyXG4gICAgICAvLyBTdG9yZSB0aGUgcGlja2xpc3QgaXRlbXNcclxuICAgICAgdGhpcy5waWNrbGlzdC53aGF0M3dvcmRzSXRlbXMgPSBpdGVtcz8ucmVzdWx0LnN1Z2dlc3Rpb25zO1xyXG5cclxuICAgICAgdGhpcy5waWNrbGlzdC5oYW5kbGVDb21tb25TaG93UGlja2xpc3RMb2dpYygpO1xyXG5cclxuICAgICAgaWYgKHRoaXMucGlja2xpc3Qud2hhdDN3b3Jkc0l0ZW1zPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgLy8gSXRlcmF0ZSBvdmVyIGFuZCBzaG93IHJlc3VsdHNcclxuICAgICAgICB0aGlzLnBpY2tsaXN0LndoYXQzd29yZHNJdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IGl0ZW0vcm93IGluIHRoZSBwaWNrbGlzdFxyXG4gICAgICAgICAgY29uc3QgbGlzdEl0ZW0gPSB0aGlzLnBpY2tsaXN0LmNyZWF0ZVdoYXQzV29yZHNMaXN0SXRlbShpdGVtKTtcclxuICAgICAgICAgIHRoaXMucGlja2xpc3QubGlzdC5hcHBlbmRDaGlsZChsaXN0SXRlbSk7XHJcblxyXG4gICAgICAgICAgLy8gTGlzdGVuIGZvciBzZWxlY3Rpb24gb24gdGhpcyBpdGVtXHJcbiAgICAgICAgICB0aGlzLnBpY2tsaXN0Lmxpc3RlbihsaXN0SXRlbSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMucGlja2xpc3Quc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucGlja2xpc3QuaGFuZGxlRW1wdHlQaWNrbGlzdChpdGVtcyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIEFkZCBhIFwiUG93ZXJlZCBieSBFeHBlcmlhblwiIGxvZ28gdG8gdGhlIHBpY2tsaXN0IGZvb3RlclxyXG4gICAgICB0aGlzLnBvd2VyZWRCeUxvZ28uZWxlbWVudCA9IHRoaXMucG93ZXJlZEJ5TG9nby5lbGVtZW50IHx8IHRoaXMucG93ZXJlZEJ5TG9nby5jcmVhdGUodGhpcy5waWNrbGlzdCk7XHJcblxyXG4gICAgICAvLyBGaXJlIGFuIGV2ZW50IGFmdGVyIHBpY2tsaXN0IGlzIGNyZWF0ZWRcclxuICAgICAgdGhpcy5ldmVudHMudHJpZ2dlcigncG9zdC1waWNrbGlzdC1jcmVhdGUnLCB0aGlzLnBpY2tsaXN0Lml0ZW1zKTtcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5waWNrbGlzdC5zaG93TG9va3VwID0gKGl0ZW1zOiBMb29rdXBWMlJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIC8vIFNldCBpc1doYXQzV29yZHMgdG8gXCJmYWxzZVwiIGFzIHdlIGFyZSBubyBsb25nZXIgc2hvd2luZyB3aGF0M3dvcmRzIGFkZHJlc3NlcyBcclxuICAgICAgdGhpcy5pc1doYXQzV29yZHMgPSBmYWxzZTtcclxuXHJcbiAgICAgIC8vIFN0b3JlIHRoZSBwaWNrbGlzdCBpdGVtc1xyXG4gICAgICB0aGlzLnBpY2tsaXN0Lmxvb2t1cEl0ZW1zID0gaXRlbXM/LnJlc3VsdC5hZGRyZXNzZXM7XHJcblxyXG4gICAgICB0aGlzLnBpY2tsaXN0LmhhbmRsZUNvbW1vblNob3dQaWNrbGlzdExvZ2ljKCk7XHJcblxyXG4gICAgICBpZiAodGhpcy5waWNrbGlzdC5sb29rdXBJdGVtcz8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIC8vIEl0ZXJhdGUgb3ZlciBhbmQgc2hvdyByZXN1bHRzXHJcbiAgICAgICAgdGhpcy5waWNrbGlzdC5sb29rdXBJdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IGl0ZW0vcm93IGluIHRoZSBwaWNrbGlzdFxyXG4gICAgICAgICAgY29uc3QgbGlzdEl0ZW0gPSB0aGlzLnBpY2tsaXN0LmNyZWF0ZUxvb2t1cExpc3RJdGVtKGl0ZW0pO1xyXG4gICAgICAgICAgdGhpcy5waWNrbGlzdC5saXN0LmFwcGVuZENoaWxkKGxpc3RJdGVtKTtcclxuXHJcbiAgICAgICAgICAvLyBMaXN0ZW4gZm9yIHNlbGVjdGlvbiBvbiB0aGlzIGl0ZW1cclxuICAgICAgICAgIHRoaXMucGlja2xpc3QubGlzdGVuKGxpc3RJdGVtKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5waWNrbGlzdC5zY3JvbGxJbnRvVmlld0lmTmVlZGVkKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5waWNrbGlzdC5oYW5kbGVFbXB0eVBpY2tsaXN0KGl0ZW1zKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gQWRkIGEgXCJQb3dlcmVkIGJ5IEV4cGVyaWFuXCIgbG9nbyB0byB0aGUgcGlja2xpc3QgZm9vdGVyXHJcbiAgICAgIHRoaXMucG93ZXJlZEJ5TG9nby5lbGVtZW50ID0gdGhpcy5wb3dlcmVkQnlMb2dvLmVsZW1lbnQgfHwgdGhpcy5wb3dlcmVkQnlMb2dvLmNyZWF0ZSh0aGlzLnBpY2tsaXN0KTtcclxuXHJcbiAgICAgIC8vIEZpcmUgYW4gZXZlbnQgYWZ0ZXIgcGlja2xpc3QgaXMgY3JlYXRlZFxyXG4gICAgICB0aGlzLmV2ZW50cy50cmlnZ2VyKCdwb3N0LXBpY2tsaXN0LWNyZWF0ZScsIHRoaXMucGlja2xpc3QuaXRlbXMpO1xyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLnBpY2tsaXN0LmhhbmRsZUNvbW1vblNob3dQaWNrbGlzdExvZ2ljID0gKCkgPT4ge1xyXG4gICAgICAvLyBSZXNldCBhbnkgcHJldmlvdXNseSBzZWxlY3RlZCBjdXJyZW50IGl0ZW1cclxuICAgICAgdGhpcy5waWNrbGlzdC5jdXJyZW50SXRlbSA9IG51bGw7XHJcblxyXG4gICAgICAvLyBVcGRhdGUgcGlja2xpc3Qgc2l6ZVxyXG4gICAgICB0aGlzLnBpY2tsaXN0LnNpemUgPSB0aGlzLnBpY2tsaXN0Lml0ZW1zPy5sZW5ndGg7XHJcblxyXG4gICAgICAvLyBSZXNldCB0aGUgcGlja2xpc3QgdGFiIGNvdW50ICh1c2VkIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uKVxyXG4gICAgICB0aGlzLnBpY2tsaXN0LnJlc2V0VGFiQ291bnQoKTtcclxuXHJcbiAgICAgIC8vIEhpZGUgdGhlIGlubGluZSBzZWFyY2ggc3Bpbm5lclxyXG4gICAgICB0aGlzLnNlYXJjaFNwaW5uZXIuaGlkZSgpO1xyXG5cclxuICAgICAgLy8gR2V0L0NyZWF0ZSBwaWNrbGlzdCBjb250YWluZXIgZWxlbWVudFxyXG4gICAgICB0aGlzLnBpY2tsaXN0Lmxpc3QgPSB0aGlzLnBpY2tsaXN0Lmxpc3QgfHwgdGhpcy5waWNrbGlzdC5jcmVhdGVMaXN0KCk7XHJcblxyXG4gICAgICAvLyBFbnN1cmUgcHJldmlvdXMgcmVzdWx0cyBhcmUgY2xlYXJlZFxyXG4gICAgICB0aGlzLnBpY2tsaXN0Lmxpc3QuaW5uZXJIVE1MID0gJyc7XHJcbiAgICAgIHRoaXMucGlja2xpc3QudXNlQWRkcmVzc0VudGVyZWQuZGVzdHJveSgpO1xyXG5cclxuICAgICAgLy8gRmlyZSBhbiBldmVudCBiZWZvcmUgcGlja2xpc3QgaXMgY3JlYXRlZFxyXG4gICAgICB0aGlzLmV2ZW50cy50cmlnZ2VyKCdwcmUtcGlja2xpc3QtY3JlYXRlJywgdGhpcy5waWNrbGlzdC5pdGVtcyk7XHJcbiAgICB9O1xyXG5cclxuICAgIC8vIFJlbW92ZSB0aGUgcGlja2xpc3RcclxuICAgIHRoaXMucGlja2xpc3QuaGlkZSA9ICgpID0+IHtcclxuICAgICAgLy8gQ2xlYXIgdGhlIGN1cnJlbnQgcGlja2xpc3QgaXRlbVxyXG4gICAgICB0aGlzLnBpY2tsaXN0LmN1cnJlbnRJdGVtID0gbnVsbDtcclxuICAgICAgLy8gUmVtb3ZlIHRoZSBcInVzZSBhZGRyZXNzIGVudGVyZWRcIiBvcHRpb24gdG9vXHJcbiAgICAgIHRoaXMucGlja2xpc3QudXNlQWRkcmVzc0VudGVyZWQuZGVzdHJveSgpO1xyXG4gICAgICAvLyBSZW1vdmUgdGhlIFwiUG93ZXJlZCBieSBFeHBlcmlhblwiIGxvZ29cclxuICAgICAgdGhpcy5wb3dlcmVkQnlMb2dvLmRlc3Ryb3kodGhpcy5waWNrbGlzdCk7XHJcblxyXG4gICAgICBpZiAodGhpcy5pbnB1dHMpIHtcclxuICAgICAgICAvLyBSZW1vdmUgdGhlIGNsYXNzIGRlbm90aW5nIGEgcGlja2xpc3QgLSBpZiBTaW5nbGVsaW5lIG1vZGUgaXMgdXNlZCwgdGhlbiBpdCBpcyB0aGUgbGFzdCBpbnB1dCBmaWVsZCwgb3RoZXJ3aXNlIHVzZSB0aGUgZmlyc3Qgb25lXHJcbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLnNlYXJjaFR5cGUgPT09IEFkZHJlc3NWYWxpZGF0aW9uTW9kZS5TSU5HTEVMSU5FID8gdGhpcy5pbnB1dHMubGVuZ3RoIC0gMSA6IDA7XHJcbiAgICAgICAgdGhpcy5pbnB1dHNbcG9zaXRpb25dLmNsYXNzTGlzdC5yZW1vdmUoJ3Nob3dpbmctc3VnZ2VzdGlvbnMnKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gUmVtb3ZlIHRoZSBtYWluIHBpY2tsaXN0IGNvbnRhaW5lclxyXG4gICAgICBpZiAodGhpcy5waWNrbGlzdC5saXN0KSB7XHJcbiAgICAgICAgdGhpcy5waWNrbGlzdC5jb250YWluZXIucmVtb3ZlKCk7XHJcbiAgICAgICAgdGhpcy5waWNrbGlzdC5saXN0ID0gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMucGlja2xpc3QuaGFuZGxlRW1wdHlQaWNrbGlzdCA9IChpdGVtczogU2VhcmNoUmVzcG9uc2UgfCBMb29rdXBXM1dSZXNwb25zZSB8IExvb2t1cFYyUmVzcG9uc2UpID0+IHtcclxuICAgICAgLy8gQ3JlYXRlIGEgbmV3IGl0ZW0vcm93IGluIHRoZSBwaWNrbGlzdCBzaG93aW5nIFwiTm8gbWF0Y2hlc1wiIHRoYXQgYWxsb3dzIHRoZSBcInVzZSBhZGRyZXNzIGVudGVyZWRcIiBvcHRpb25cclxuICAgICAgdGhpcy5waWNrbGlzdC51c2VBZGRyZXNzRW50ZXJlZC5lbGVtZW50ID0gdGhpcy5waWNrbGlzdC51c2VBZGRyZXNzRW50ZXJlZC5lbGVtZW50IHx8IHRoaXMucGlja2xpc3QudXNlQWRkcmVzc0VudGVyZWQuY3JlYXRlKGl0ZW1zLnJlc3VsdD8uY29uZmlkZW5jZSk7XHJcblxyXG4gICAgICB0aGlzLnBpY2tsaXN0LnNjcm9sbEludG9WaWV3SWZOZWVkZWQoKTtcclxuXHJcbiAgICAgIC8vIFByb3ZpZGUgaW1wbGVtZW50aW5nIHNlYXJjaCB0eXBlcyB3aXRoIGEgbWVhbnMgb2YgaW52b2tpbmcgYSBjdXN0b20gY2FsbGJhY2tcclxuICAgICAgaWYgKHR5cGVvZiB0aGlzLnBpY2tsaXN0LmhhbmRsZUVtcHR5UGlja2xpc3RDYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgIHRoaXMucGlja2xpc3QuaGFuZGxlRW1wdHlQaWNrbGlzdENhbGxiYWNrKCk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgLy8gUHJlcGVuZCBhIHRpdGxlIGJlZm9yZSB0aGUgc3VnZ2VzdGlvbnNcclxuICAgIHRoaXMucGlja2xpc3QuZGlzcGxheVN1Z2dlc3Rpb25zSGVhZGVyID0gKCkgPT4ge1xyXG4gICAgICBjb25zdCB0aXRsZURpdiA9ICg8SFRNTEVsZW1lbnQ+ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnBpY2tsaXN0LXN1Z2dlc3Rpb25zLWhlYWRlcicpIHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTtcclxuICAgICAgdGl0bGVEaXYuY2xhc3NMaXN0LmFkZCgncGlja2xpc3Qtc3VnZ2VzdGlvbnMtaGVhZGVyJyk7XHJcbiAgICAgIHRpdGxlRGl2LmlubmVyVGV4dCA9ICdTdWdnZXN0aW9uczonO1xyXG4gICAgICB0aGlzLnBpY2tsaXN0Lmxpc3QucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGl0bGVEaXYsIHRoaXMucGlja2xpc3QubGlzdCk7XHJcbiAgICB9O1xyXG5cclxuICAgIC8vIEFwcGVuZCBhIGZvb3RlciBhdCB0aGUgYm90dG9tIG9mIHRoZSBwaWNrbGlzdCBwcm92aWRpbmcgYW4gb3B0aW9uIHRvIFwidXNlIGFkZHJlc3MgZW50ZXJlZFwiXHJcbiAgICB0aGlzLnBpY2tsaXN0LmRpc3BsYXlVc2VBZGRyZXNzRW50ZXJlZEZvb3RlciA9ICgpID0+IHtcclxuICAgICAgY29uc3QgY29udGFpbmVyRGl2ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnBpY2tsaXN0LXVzZS1lbnRlcmVkLWNvbnRhaW5lcicpIHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICBjb250YWluZXJEaXYuY2xhc3NMaXN0LmFkZCgncGlja2xpc3QtdXNlLWVudGVyZWQtY29udGFpbmVyJyk7XHJcbiAgICAgIHRoaXMucGlja2xpc3QubGlzdC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShjb250YWluZXJEaXYsIHRoaXMucGlja2xpc3QubGlzdC5uZXh0RWxlbWVudFNpYmxpbmcpO1xyXG5cclxuICAgICAgY29uc3QgdGl0bGVEaXYgPSAoPEhUTUxFbGVtZW50PmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5waWNrbGlzdC11c2UtZW50ZXJlZC1oZWFkZXInKSB8fCBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7XHJcbiAgICAgIHRpdGxlRGl2LmNsYXNzTGlzdC5hZGQoJ3BpY2tsaXN0LXVzZS1lbnRlcmVkLWhlYWRlcicpO1xyXG4gICAgICB0aXRsZURpdi5pbm5lclRleHQgPSAnT3IgdXNlIGFkZHJlc3MgZW50ZXJlZDonO1xyXG4gICAgICBjb250YWluZXJEaXYuYXBwZW5kQ2hpbGQodGl0bGVEaXYpO1xyXG5cclxuICAgICAgY29uc3QgaXRlbURpdiA9ICg8SFRNTEVsZW1lbnQ+ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnBpY2tsaXN0LXVzZS1lbnRlcmVkLW9wdGlvbicpIHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTtcclxuICAgICAgaXRlbURpdi5jbGFzc0xpc3QuYWRkKCdwaWNrbGlzdC11c2UtZW50ZXJlZC1vcHRpb24nKTtcclxuICAgICAgaXRlbURpdi5pbm5lclRleHQgPSB0aGlzLmN1cnJlbnRTZWFyY2hUZXJtLnJlcGxhY2UoLywrL2csICcsICcpO1xyXG4gICAgICBpdGVtRGl2LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5waWNrbGlzdC51c2VBZGRyZXNzRW50ZXJlZC5jbGljayk7XHJcbiAgICAgIGNvbnRhaW5lckRpdi5hcHBlbmRDaGlsZChpdGVtRGl2KTtcclxuICAgIH07XHJcblxyXG4gICAgLy8gSWYgdGhlIHBpY2tsaXN0IGNvbnRhaW5lciBpcyBvdXQgb2YgYm91bmRzIHRvIHRoZSB0b3Agb3IgYm90dG9tLCB0aGVuIHNjcm9sbCBpdCBpbnRvIHZpZXdcclxuICAgIHRoaXMucGlja2xpc3Quc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCA9ICgpID0+IHtcclxuICAgICAgY29uc3Qgb3V0T2ZCb3VuZHNUb3AgPSB0aGlzLnBpY2tsaXN0LmNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgPCAwO1xyXG4gICAgICBjb25zdCBvdXRPZkJvdW5kc0JvdHRvbSA9IHRoaXMucGlja2xpc3QuY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbSA+IHdpbmRvdy5pbm5lckhlaWdodDtcclxuXHJcbiAgICAgIGlmIChvdXRPZkJvdW5kc1RvcCB8fCBvdXRPZkJvdW5kc0JvdHRvbSkge1xyXG4gICAgICAgIHRoaXMucGlja2xpc3QuY29udGFpbmVyLnNjcm9sbEludG9WaWV3KCk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5waWNrbGlzdC51c2VBZGRyZXNzRW50ZXJlZCA9IHtcclxuICAgICAgZWxlbWVudDogbnVsbCxcclxuICAgICAgLy8gQ3JlYXRlIGEgXCJ1c2UgYWRkcmVzcyBlbnRlcmVkXCIgb3B0aW9uXHJcbiAgICAgIGNyZWF0ZTogKGNvbmZpZGVuY2U6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIGNvbnN0IGl0ZW0gPSB7XHJcbiAgICAgICAgICB0ZXh0OiBgJHtjb25maWRlbmNlfSAke3RoaXMub3B0aW9ucy51c2VBZGRyZXNzRW50ZXJlZFRleHR9YFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29uc3QgbGlzdEl0ZW0gPSB0aGlzLnBpY2tsaXN0LmNyZWF0ZUxpc3RJdGVtKGl0ZW0pO1xyXG4gICAgICAgIGxpc3RJdGVtLmNsYXNzTGlzdC5hZGQoJ3VzZS1hZGRyZXNzLWVudGVyZWQnKTtcclxuICAgICAgICBsaXN0SXRlbS5zZXRBdHRyaWJ1dGUoJ3RpdGxlJywgJ0VudGVyIGFkZHJlc3MgbWFudWFsbHknKTtcclxuICAgICAgICB0aGlzLnBpY2tsaXN0Lmxpc3QgPSB0aGlzLnBpY2tsaXN0Lmxpc3QgfHwgdGhpcy5waWNrbGlzdC5jcmVhdGVMaXN0KCk7XHJcbiAgICAgICAgdGhpcy5waWNrbGlzdC5saXN0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGxpc3RJdGVtLCB0aGlzLnBpY2tsaXN0LmNvbnRhaW5lci5maXJzdENoaWxkKTtcclxuICAgICAgICBsaXN0SXRlbS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMucGlja2xpc3QudXNlQWRkcmVzc0VudGVyZWQuY2xpY2spO1xyXG4gICAgICAgIHJldHVybiBsaXN0SXRlbTtcclxuICAgICAgfSxcclxuICAgICAgLy8gRGVzdHJveSB0aGUgXCJ1c2UgYWRkcmVzcyBlbnRlcmVkXCIgb3B0aW9uXHJcbiAgICAgIGRlc3Ryb3k6ICgpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5waWNrbGlzdC51c2VBZGRyZXNzRW50ZXJlZC5lbGVtZW50KSB7XHJcbiAgICAgICAgICB0aGlzLnBpY2tsaXN0Lmxpc3QucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLnBpY2tsaXN0LnVzZUFkZHJlc3NFbnRlcmVkLmVsZW1lbnQpO1xyXG4gICAgICAgICAgdGhpcy5waWNrbGlzdC51c2VBZGRyZXNzRW50ZXJlZC5lbGVtZW50ID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgLy8gVXNlIHRoZSBhZGRyZXNzIGVudGVyZWQgYXMgdGhlIEZvcm1hdHRlZCBhZGRyZXNzXHJcbiAgICAgIGNsaWNrOiAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaW5wdXREYXRhID0ge1xyXG4gICAgICAgICAgcmVzdWx0OiB7XHJcbiAgICAgICAgICAgIGNvbmZpZGVuY2U6ICdObyBtYXRjaGVzJyxcclxuICAgICAgICAgICAgYWRkcmVzczoge1xyXG4gICAgICAgICAgICAgIGFkZHJlc3NfbGluZV8xOiAnJyxcclxuICAgICAgICAgICAgICBhZGRyZXNzX2xpbmVfMjogJycsXHJcbiAgICAgICAgICAgICAgYWRkcmVzc19saW5lXzM6ICcnLFxyXG4gICAgICAgICAgICAgIGxvY2FsaXR5OiAnJyxcclxuICAgICAgICAgICAgICByZWdpb246ICcnLFxyXG4gICAgICAgICAgICAgIHBvc3RhbF9jb2RlOiAnJyxcclxuICAgICAgICAgICAgICBjb3VudHJ5OiAnJ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudFNlYXJjaFRlcm0pIHtcclxuICAgICAgICAgIC8vIFRyeSBhbmQgc3BsaXQgaW50byBsaW5lcyBieSB1c2luZyBjb21tYSBkZWxpbWl0ZXJcclxuICAgICAgICAgIGNvbnN0IGxpbmVzID0gdGhpcy5jdXJyZW50U2VhcmNoVGVybS5zcGxpdCgnLCcpO1xyXG4gICAgICAgICAgaWYgKGxpbmVzWzBdKSB7XHJcbiAgICAgICAgICAgIGlucHV0RGF0YS5yZXN1bHQuYWRkcmVzcy5hZGRyZXNzX2xpbmVfMSA9IGxpbmVzWzBdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGxpbmVzWzFdKSB7XHJcbiAgICAgICAgICAgIGlucHV0RGF0YS5yZXN1bHQuYWRkcmVzcy5hZGRyZXNzX2xpbmVfMiA9IGxpbmVzWzFdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGxpbmVzWzJdKSB7XHJcbiAgICAgICAgICAgIGlucHV0RGF0YS5yZXN1bHQuYWRkcmVzcy5hZGRyZXNzX2xpbmVfMyA9IGxpbmVzWzJdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZm9yIChsZXQgaSA9IDM7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpbnB1dERhdGEucmVzdWx0LmFkZHJlc3MuYWRkcmVzc19saW5lXzMgKz0gbGluZXNbaV07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnJlc3VsdC5zaG93KGlucHV0RGF0YSk7XHJcbiAgICAgICAgdGhpcy5yZXN1bHQudXBkYXRlSGVhZGluZyh0aGlzLm9wdGlvbnMuZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lci5tYW51YWxIZWFkaW5nVGV4dCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIC8vIENyZWF0ZSBhbmQgcmV0dXJuIGFuIGFkZHJlc3MgbGluZSBvYmplY3Qgd2l0aCB0aGUga2V5IGFzIHRoZSBsYWJlbFxyXG4gICAgICBmb3JtYXRNYW51YWxBZGRyZXNzTGluZTogZnVuY3Rpb24gKGxpbmVzLCBpKSB7XHJcbiAgICAgICAgY29uc3Qga2V5ID0gZGVmYXVsdHMuYWRkcmVzc0xpbmVMYWJlbHNbaV07XHJcbiAgICAgICAgY29uc3QgbGluZU9iamVjdCA9IHt9O1xyXG4gICAgICAgIGxpbmVPYmplY3Rba2V5XSA9IGxpbmVzW2ldIHx8ICcnO1xyXG4gICAgICAgIHJldHVybiBsaW5lT2JqZWN0O1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIC8vIENyZWF0ZSB0aGUgcGlja2xpc3QgbGlzdCAoYW5kIGNvbnRhaW5lcikgYW5kIGluamVjdCBhZnRlciB0aGUgaW5wdXRcclxuICAgIHRoaXMucGlja2xpc3QuY3JlYXRlTGlzdCA9ICgpID0+IHtcclxuICAgICAgLy8gSWYgU2luZ2xlbGluZSBtb2RlIGlzIHVzZWQsIHRoZW4gYXBwZW5kIHRoZSBwaWNrbGlzdCBhZnRlciB0aGUgbGFzdCBpbnB1dCBmaWVsZCwgb3RoZXJ3aXNlIHVzZSB0aGUgZmlyc3Qgb25lXHJcbiAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5zZWFyY2hUeXBlID09PSBBZGRyZXNzVmFsaWRhdGlvbk1vZGUuU0lOR0xFTElORSA/IHRoaXMuaW5wdXRzLmxlbmd0aCAtIDEgOiAwO1xyXG5cclxuICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgIGNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCdhZGRyZXNzLXBpY2tsaXN0LWNvbnRhaW5lcicpO1xyXG4gICAgICB0aGlzLnBpY2tsaXN0LmNvbnRhaW5lciA9IGNvbnRhaW5lcjtcclxuXHJcbiAgICAgIC8vIEluc2VydCB0aGUgcGlja2xpc3QgY29udGFpbmVyIGFmdGVyIHRoZSBpbnB1dFxyXG4gICAgICB0aGlzLmlucHV0c1twb3NpdGlvbl0ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcy5waWNrbGlzdC5jb250YWluZXIsIHRoaXMuaW5wdXRzW3Bvc2l0aW9uXS5uZXh0RWxlbWVudFNpYmxpbmcpO1xyXG5cclxuICAgICAgY29uc3QgbGlzdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICBsaXN0LmNsYXNzTGlzdC5hZGQoJ2FkZHJlc3MtcGlja2xpc3QnKTtcclxuICAgICAgLy8gQXBwZW5kIHRoZSBwaWNrbGlzdCB0byB0aGUgaW5uZXIgd3JhcHBlclxyXG4gICAgICB0aGlzLnBpY2tsaXN0LmNvbnRhaW5lci5hcHBlbmRDaGlsZChsaXN0KTtcclxuXHJcbiAgICAgIC8vIEFkZCBhIGNsYXNzIHRvIHRoZSBpbnB1dCB0byBkZW5vdGUgdGhhdCBhIHBpY2tsaXN0IHdpdGggc3VnZ2VzdGlvbnMgaXMgYmVpbmcgc2hvd25cclxuICAgICAgdGhpcy5pbnB1dHNbcG9zaXRpb25dLmNsYXNzTGlzdC5hZGQoJ3Nob3dpbmctc3VnZ2VzdGlvbnMnKTtcclxuXHJcbiAgICAgIGxpc3QuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMucGlja2xpc3QuY2hlY2tFbnRlcik7XHJcbiAgICAgIHJldHVybiBsaXN0O1xyXG4gICAgfTtcclxuXHJcbiAgICAvLyBDcmVhdGUgYSBuZXcgcGlja2xpc3QgaXRlbS9yb3dcclxuICAgIHRoaXMucGlja2xpc3QuY3JlYXRlTGlzdEl0ZW0gPSAoaXRlbTogUGlja2xpc3RJdGVtKSA9PiB7XHJcbiAgICAgIGNvbnN0IHJvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICByb3cuaW5uZXJIVE1MID0gdGhpcy5waWNrbGlzdC5hZGRNYXRjaGluZ0VtcGhhc2lzKGl0ZW0pO1xyXG5cclxuICAgICAgLy8gU3RvcmUgdGhlIEZvcm1hdCBVUkwgaWYgaXQgZXhpc3RzLCBvdGhlcndpc2UgdXNlIHRoZSBnbG9iYWxfYWRkcmVzc19rZXkgYXMgYSBcInJlZmluZW1lbnRcIiBwcm9wZXJ0eVxyXG4gICAgICBpZiAoaXRlbS5mb3JtYXQpIHtcclxuICAgICAgICByb3cuc2V0QXR0cmlidXRlKCdmb3JtYXQnLCBpdGVtLmZvcm1hdCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaXRlbS5nbG9iYWxfYWRkcmVzc19rZXkpIHtcclxuICAgICAgICByb3cuc2V0QXR0cmlidXRlKCdyZWZpbmUnLCBpdGVtLmdsb2JhbF9hZGRyZXNzX2tleSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHJvdztcclxuICAgIH07XHJcblxyXG4gICAgLy8gQ3JlYXRlIGEgbmV3IHBpY2tsaXN0IGl0ZW0vcm93IGZvciB3aGF0M3dvcmRzXHJcbiAgICB0aGlzLnBpY2tsaXN0LmNyZWF0ZVdoYXQzV29yZHNMaXN0SXRlbSA9IChpdGVtOiBXaGF0M1dvcmRzUGlja0xpc3QpID0+IHtcclxuICAgICAgY29uc3Qgcm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgIGNvbnN0IG5hbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuXHJcbiAgICAgIHJvdy5jbGFzc05hbWUgPSB0aGlzLndoYXQzV29yZHNLZXl3b3JkO1xyXG4gICAgICBuYW1lLmNsYXNzTmFtZSA9ICd3aGF0M1dvcmRzLW5hbWUnO1xyXG4gICAgICBkZXNjcmlwdGlvbi5jbGFzc05hbWUgPSAnd2hhdDNXb3Jkcy1kZXNjcmlwdGlvbic7XHJcblxyXG4gICAgICBuYW1lLmlubmVySFRNTCA9ICcvLy8nICsgaXRlbS53aGF0M3dvcmRzLm5hbWU7XHJcbiAgICAgIGRlc2NyaXB0aW9uLmlubmVySFRNTCA9IGl0ZW0ud2hhdDN3b3Jkcy5kZXNjcmlwdGlvbjtcclxuXHJcbiAgICAgIHJvdy5hcHBlbmRDaGlsZChuYW1lKTtcclxuICAgICAgcm93LmFwcGVuZENoaWxkKGRlc2NyaXB0aW9uKTtcclxuXHJcbiAgICAgIHJldHVybiByb3c7XHJcbiAgICB9O1xyXG5cclxuXHJcbiAgICAvLyBDcmVhdGUgYSBuZXcgcGlja2xpc3QgaXRlbS9yb3cgZm9yIGxvb2t1cCBpdGVtc1xyXG4gICAgdGhpcy5waWNrbGlzdC5jcmVhdGVMb29rdXBMaXN0SXRlbSA9IChpdGVtOiBMb29rdXBBZGRyZXNzKSA9PiB7XHJcbiAgICAgIGNvbnN0IHJvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG5cclxuICAgICAgcm93LmlubmVySFRNTCA9IGl0ZW0udGV4dDtcclxuXHJcbiAgICAgIC8vIFN0b3JlIHRoZSBGb3JtYXQgVVJMIGlmIGl0IGV4aXN0cywgb3RoZXJ3aXNlIHVzZSB0aGUgZ2xvYmFsX2FkZHJlc3Nfa2V5IGFzIGEgXCJyZWZpbmVtZW50XCIgcHJvcGVydHlcclxuICAgICAgaWYgKGl0ZW0uZm9ybWF0KSB7XHJcbiAgICAgICAgcm93LnNldEF0dHJpYnV0ZSgnZm9ybWF0JywgaXRlbS5mb3JtYXQpO1xyXG4gICAgICB9IGVsc2UgaWYgKGl0ZW0uZ2xvYmFsX2FkZHJlc3Nfa2V5KSB7XHJcbiAgICAgICAgcm93LnNldEF0dHJpYnV0ZSgncmVmaW5lJywgaXRlbS5nbG9iYWxfYWRkcmVzc19rZXkpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiByb3c7XHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMucGlja2xpc3QucmVmaW5lID0ge1xyXG4gICAgICBlbGVtZW50OiBudWxsLFxyXG4gICAgICAvLyBSZXR1cm5zIHdoZXRoZXIgdGhlIHBpY2tsaXN0IG5lZWRzIHJlZmluaW5nLiBUaGlzIGhhcHBlbnMgYWZ0ZXIgYW4gaXRlbSBoYXMgYmVlbiBcInN0ZXBwZWQgaW50b1wiIGJ1dCBoYXMgYW4gdW5yZXNvbHZhYmxlIHJhbmdlLlxyXG4gICAgICAvLyBUaGUgdXNlciBpcyBwcm9tcHRlZCB0byBlbnRlciB0aGVpciBzZWxlY3Rpb24gKGUuZy4gYnVpbGRpbmcgbnVtYmVyKS5cclxuICAgICAgaXNOZWVkZWQ6IChyZXNwb25zZTogU2VhcmNoUmVzcG9uc2UpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZWFyY2hUeXBlICE9PSBBZGRyZXNzVmFsaWRhdGlvbk1vZGUuQVVUT0NPTVBMRVRFICYmIChyZXNwb25zZS5yZXN1bHQuY29uZmlkZW5jZSA9PT0gJ1ByZW1pc2VzIHBhcnRpYWwnIHx8IHJlc3BvbnNlLnJlc3VsdC5jb25maWRlbmNlID09PSAnU3RyZWV0IHBhcnRpYWwnIHx8IHJlc3BvbnNlLnJlc3VsdC5jb25maWRlbmNlID09PSAnTXVsdGlwbGUgbWF0Y2hlcycpO1xyXG4gICAgICB9LFxyXG4gICAgICBjcmVhdGVJbnB1dDogKHByb21wdDogc3RyaW5nLCBrZXk6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIGNvbnN0IHJvdyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5waWNrbGlzdC1yZWZpbmVtZW50LWJveCcpIHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICAgIHJvdy5jbGFzc0xpc3QuYWRkKCdwaWNrbGlzdC1yZWZpbmVtZW50LWJveCcpO1xyXG5cclxuICAgICAgICBjb25zdCBpbnB1dCA9ICg8SFRNTElucHV0RWxlbWVudD5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucGlja2xpc3QtcmVmaW5lbWVudC1ib3ggaW5wdXQnKSB8fCBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpKTtcclxuICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dCcpO1xyXG4gICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInLCBwcm9tcHQpO1xyXG4gICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgna2V5Jywga2V5KTtcclxuICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ2F1dG9jb21wbGV0ZScsICduZXctcGFzc3dvcmQnKTtcclxuICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5waWNrbGlzdC5yZWZpbmUuZW50ZXIuYmluZCh0aGlzKSk7XHJcbiAgICAgICAgdGhpcy5waWNrbGlzdC5yZWZpbmUuZWxlbWVudCA9IGlucHV0O1xyXG5cclxuICAgICAgICBjb25zdCBidXR0b24gPSAoPEhUTUxCdXR0b25FbGVtZW50PmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5waWNrbGlzdC1yZWZpbmVtZW50LWJveCBidXR0b24nKSB8fCBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKSk7XHJcbiAgICAgICAgYnV0dG9uLmlubmVyVGV4dCA9ICdSZWZpbmUnO1xyXG4gICAgICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMucGlja2xpc3QucmVmaW5lLmVudGVyKTtcclxuXHJcbiAgICAgICAgcm93LmFwcGVuZENoaWxkKGlucHV0KTtcclxuICAgICAgICByb3cuYXBwZW5kQ2hpbGQoYnV0dG9uKTtcclxuICAgICAgICB0aGlzLnBpY2tsaXN0Lmxpc3QucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocm93LCB0aGlzLnBpY2tsaXN0Lmxpc3QpO1xyXG5cclxuICAgICAgICBpbnB1dC5mb2N1cygpO1xyXG4gICAgICB9LFxyXG4gICAgICBlbnRlcjogKGV2ZW50OiBFdmVudCkgPT4ge1xyXG4gICAgICAgIC8vIEFsbG93IGEgbmV3IHJlZmluZW1lbnQgZW50cnkgaWYgdGhlIGVudGVyIGtleSB3YXMgdXNlZCBpbnNpZGUgdGhlIHRleHRib3ggb3IgdGhlIGJ1dHRvbiB3YXMgY2xpY2tlZFxyXG4gICAgICAgIGlmICgoZXZlbnQgaW5zdGFuY2VvZiBLZXlib2FyZEV2ZW50ICYmIGV2ZW50LmtleSA9PT0gJ0VudGVyJykgfHwgZXZlbnQgaW5zdGFuY2VvZiBNb3VzZUV2ZW50KSB7XHJcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgICAgICAgIC8vIElmIGEgcGlja2xpc3QgaXRlbSBpcyBjdXJyZW50bHkgc2VsZWN0ZWQsIHRoZW4gcG90ZW50aWFsbHkgdXNlIHRoaXMgaW5zdGVhZCBvZiB3aGF0J3MgaW4gdGhlIGlucHV0IGZpZWxkXHJcbiAgICAgICAgICBpZiAodGhpcy5waWNrbGlzdC5jdXJyZW50SXRlbSkge1xyXG4gICAgICAgICAgICB0aGlzLnBpY2tsaXN0LmNoZWNrRW50ZXIoZXZlbnQgYXMgS2V5Ym9hcmRFdmVudCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICAgICAgICAvLyBUYWtlIHRoZSB2YWx1ZSBmcm9tIHRoZSBpbnB1dCBmaWVsZCBhbmQgdXNlIHRoaXMgdG8gZnVydGhlciByZWZpbmUgdGhlIGFkZHJlc3NcclxuICAgICAgICAgIGlmICh0aGlzLnBpY2tsaXN0LnJlZmluZS5lbGVtZW50LnZhbHVlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnN0cmluZ2lmeSh7IHJlZmluZW1lbnQ6IHRoaXMucGlja2xpc3QucmVmaW5lLmVsZW1lbnQudmFsdWUgfSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IHRoaXMucGlja2xpc3QucmVmaW5lLmVsZW1lbnQuZ2V0QXR0cmlidXRlKCdrZXknKTtcclxuICAgICAgICAgICAgdGhpcy5yZXF1ZXN0LnNlbmQoYCR7dGhpcy5iYXNlVXJsfSR7dGhpcy5yZWZpbmVFbmRwb2ludH0vJHtrZXl9YCwgJ1BPU1QnLCB0aGlzLnJlc3VsdC5oYW5kbGVWYWxpZGF0ZVJlc3BvbnNlLCBkYXRhKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMucGlja2xpc3Quc2l6ZSAmJiBldmVudCBpbnN0YW5jZW9mIEtleWJvYXJkRXZlbnQgJiYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicgfHwgZXZlbnQua2V5ID09PSAnRW50ZXInKSkge1xyXG4gICAgICAgICAgdGhpcy5waWNrbGlzdC5rZXl1cChldmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMucGlja2xpc3QucmVzZXRUYWJDb3VudCA9ICgpID0+IHtcclxuICAgICAgdGhpcy5waWNrbGlzdC50YWJDb3VudCA9IC0xO1xyXG4gICAgfTtcclxuXHJcbiAgICAvLyBLZXlib2FyZCBuYXZpZ2F0aW9uXHJcbiAgICB0aGlzLnBpY2tsaXN0LmtleXVwID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XHJcbiAgICAgIGlmICghdGhpcy5waWNrbGlzdC5saXN0KSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnBpY2tsaXN0LmNoZWNrRW50ZXIoZXZlbnQpO1xyXG5cclxuICAgICAgLy8gR2V0IGEgbGlzdCBvZiBhbGwgdGhlIGFkZHJlc3NlcyBpbiB0aGUgcGlja2xpc3RcclxuICAgICAgY29uc3QgYWRkcmVzc2VzID0gdGhpcy5waWNrbGlzdC5saXN0LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RpdicpO1xyXG4gICAgICBsZXQgZmlyc3RBZGRyZXNzO1xyXG4gICAgICBsZXQgbGFzdEFkZHJlc3M7XHJcblxyXG4gICAgICAvLyBJZiB0aGUgcGlja2xpc3QgaXMgZW1wdHksIGp1c3QgcmV0dXJuXHJcbiAgICAgIGlmIChhZGRyZXNzZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBTZXQgdGhlIHRhYkNvdW50IGJhc2VkIG9uIHByZXZpb3VzIGFuZCBkaXJlY3Rpb25cclxuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XHJcbiAgICAgICAgdGhpcy5waWNrbGlzdC50YWJDb3VudC0tO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcclxuICAgICAgICB0aGlzLnBpY2tsaXN0LnRhYkNvdW50Kys7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIFNldCB0b3AgYW5kIGJvdHRvbSBwb3NpdGlvbnMgYW5kIGVuYWJsZSB3cmFwLWFyb3VuZFxyXG4gICAgICBpZiAodGhpcy5waWNrbGlzdC50YWJDb3VudCA8IDApIHtcclxuICAgICAgICB0aGlzLnBpY2tsaXN0LnRhYkNvdW50ID0gYWRkcmVzc2VzLmxlbmd0aCAtIDE7XHJcbiAgICAgICAgbGFzdEFkZHJlc3MgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnBpY2tsaXN0LnRhYkNvdW50ID4gYWRkcmVzc2VzLmxlbmd0aCAtIDEpIHtcclxuICAgICAgICB0aGlzLnBpY2tsaXN0LnRhYkNvdW50ID0gMDtcclxuICAgICAgICBmaXJzdEFkZHJlc3MgPSB0cnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBIaWdobGlnaHQgdGhlIHNlbGVjdGVkIGFkZHJlc3NcclxuICAgICAgY29uc3QgY3VycmVudGx5SGlnaGxpZ2h0ZWQgPSBhZGRyZXNzZXNbdGhpcy5waWNrbGlzdC50YWJDb3VudF07XHJcbiAgICAgIC8vIFJlbW92ZSBhbnkgcHJldmlvdXNseSBoaWdobGlnaHRlZCBvbmVzXHJcbiAgICAgIGNvbnN0IHByZXZpb3VzbHlIaWdobGlnaHRlZCA9IHRoaXMucGlja2xpc3QubGlzdC5xdWVyeVNlbGVjdG9yKCcuc2VsZWN0ZWQnKTtcclxuICAgICAgaWYgKHByZXZpb3VzbHlIaWdobGlnaHRlZCkge1xyXG4gICAgICAgIHByZXZpb3VzbHlIaWdobGlnaHRlZC5jbGFzc0xpc3QucmVtb3ZlKCdzZWxlY3RlZCcpO1xyXG4gICAgICB9XHJcbiAgICAgIGN1cnJlbnRseUhpZ2hsaWdodGVkLmNsYXNzTGlzdC5hZGQoJ3NlbGVjdGVkJyk7XHJcbiAgICAgIC8vIFNldCB0aGUgY3VycmVudEl0ZW0gb24gdGhlIHBpY2tsaXN0IHRvIHRoZSBjdXJyZW50bHkgaGlnaGxpZ2h0ZWQgYWRkcmVzc1xyXG4gICAgICB0aGlzLnBpY2tsaXN0LmN1cnJlbnRJdGVtID0gY3VycmVudGx5SGlnaGxpZ2h0ZWQ7XHJcblxyXG4gICAgICAvLyBTY3JvbGwgYWRkcmVzcyBpbnRvIHZpZXcsIGlmIHJlcXVpcmVkXHJcbiAgICAgIGNvbnN0IGFkZHJlc3NMaXN0Q29vcmRzID0ge1xyXG4gICAgICAgIHRvcDogdGhpcy5waWNrbGlzdC5saXN0Lm9mZnNldFRvcCxcclxuICAgICAgICBib3R0b206IHRoaXMucGlja2xpc3QubGlzdC5vZmZzZXRUb3AgKyB0aGlzLnBpY2tsaXN0Lmxpc3Qub2Zmc2V0SGVpZ2h0LFxyXG4gICAgICAgIHNjcm9sbFRvcDogdGhpcy5waWNrbGlzdC5saXN0LnNjcm9sbFRvcCxcclxuICAgICAgICBzZWxlY3RlZFRvcDogY3VycmVudGx5SGlnaGxpZ2h0ZWQub2Zmc2V0VG9wLFxyXG4gICAgICAgIHNlbGVjdGVkQm90dG9tOiBjdXJyZW50bHlIaWdobGlnaHRlZC5vZmZzZXRUb3AgKyBjdXJyZW50bHlIaWdobGlnaHRlZC5vZmZzZXRIZWlnaHQsXHJcbiAgICAgICAgc2Nyb2xsQW1vdW50OiBjdXJyZW50bHlIaWdobGlnaHRlZC5vZmZzZXRIZWlnaHRcclxuICAgICAgfTtcclxuICAgICAgaWYgKGZpcnN0QWRkcmVzcykge1xyXG4gICAgICAgIHRoaXMucGlja2xpc3QubGlzdC5zY3JvbGxUb3AgPSAwO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKGxhc3RBZGRyZXNzKSB7XHJcbiAgICAgICAgdGhpcy5waWNrbGlzdC5saXN0LnNjcm9sbFRvcCA9IDk5OTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChhZGRyZXNzTGlzdENvb3Jkcy5zZWxlY3RlZEJvdHRvbSArIGFkZHJlc3NMaXN0Q29vcmRzLnNjcm9sbEFtb3VudCA+IGFkZHJlc3NMaXN0Q29vcmRzLmJvdHRvbSkge1xyXG4gICAgICAgIHRoaXMucGlja2xpc3QubGlzdC5zY3JvbGxUb3AgPSBhZGRyZXNzTGlzdENvb3Jkcy5zY3JvbGxUb3AgKyBhZGRyZXNzTGlzdENvb3Jkcy5zY3JvbGxBbW91bnQ7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAoYWRkcmVzc0xpc3RDb29yZHMuc2VsZWN0ZWRUb3AgLSBhZGRyZXNzTGlzdENvb3Jkcy5zY3JvbGxBbW91bnQgLSBhZGRyZXNzTGlzdENvb3Jkcy50b3AgPCBhZGRyZXNzTGlzdENvb3Jkcy5zY3JvbGxUb3ApIHtcclxuICAgICAgICB0aGlzLnBpY2tsaXN0Lmxpc3Quc2Nyb2xsVG9wID0gYWRkcmVzc0xpc3RDb29yZHMuc2Nyb2xsVG9wIC0gYWRkcmVzc0xpc3RDb29yZHMuc2Nyb2xsQW1vdW50O1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIC8vIEFkZCBlbXBoYXNpcyB0byB0aGUgcGlja2xpc3QgaXRlbXMgaGlnaGxpZ2h0aW5nIHRoZSBtYXRjaFxyXG4gICAgdGhpcy5waWNrbGlzdC5hZGRNYXRjaGluZ0VtcGhhc2lzID0gZnVuY3Rpb24gKGl0ZW0pIHtcclxuICAgICAgY29uc3QgaGlnaGxpZ2h0cyA9IGl0ZW0ubWF0Y2hlZCB8fCBbXTtcclxuICAgICAgbGV0IGxhYmVsID0gaXRlbS50ZXh0O1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGhpZ2hsaWdodHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCByZXBsYWNlbWVudCA9ICc8Yj4nICsgbGFiZWwuc3Vic3RyaW5nKGhpZ2hsaWdodHNbaV1bMF0sIGhpZ2hsaWdodHNbaV1bMV0pICsgJzwvYj4nO1xyXG4gICAgICAgIGxhYmVsID0gbGFiZWwuc3Vic3RyaW5nKDAsIGhpZ2hsaWdodHNbaV1bMF0pICsgcmVwbGFjZW1lbnQgKyBsYWJlbC5zdWJzdHJpbmcoaGlnaGxpZ2h0c1tpXVsxXSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBsYWJlbDtcclxuICAgIH07XHJcblxyXG4gICAgLy8gTGlzdGVuIHRvIGEgcGlja2xpc3Qgc2VsZWN0aW9uXHJcbiAgICB0aGlzLnBpY2tsaXN0Lmxpc3RlbiA9IChyb3cpID0+IHtcclxuICAgICAgcm93LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5waWNrbGlzdC5waWNrLmJpbmQobnVsbCwgcm93KSk7XHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMucGlja2xpc3QuY2hlY2tFbnRlciA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xyXG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJ1RhYicpIHtcclxuICAgICAgICBsZXQgcGlja2xpc3RJdGVtO1xyXG4gICAgICAgIC8vIElmIHBpY2tsaXN0IGNvbnRhaW5zIDEgYWRkcmVzcyB0aGVuIHVzZSB0aGlzIG9uZSB0byBmb3JtYXRcclxuICAgICAgICBpZiAodGhpcy5waWNrbGlzdC5zaXplID09PSAxKSB7XHJcbiAgICAgICAgICBwaWNrbGlzdEl0ZW0gPSB0aGlzLnBpY2tsaXN0Lmxpc3QucXVlcnlTZWxlY3RvckFsbCgnZGl2JylbMF07XHJcbiAgICAgICAgfSAvLyBFbHNlIHVzZSB0aGUgY3VycmVudGx5IGhpZ2hsaWdodGVkIG9uZSB3aGVuIG5hdmlnYXRpb24gdXNpbmcga2V5Ym9hcmRcclxuICAgICAgICBlbHNlIGlmICh0aGlzLnBpY2tsaXN0LmN1cnJlbnRJdGVtKSB7XHJcbiAgICAgICAgICBwaWNrbGlzdEl0ZW0gPSB0aGlzLnBpY2tsaXN0LmN1cnJlbnRJdGVtO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocGlja2xpc3RJdGVtKSB7XHJcbiAgICAgICAgICB0aGlzLnBpY2tsaXN0LnBpY2socGlja2xpc3RJdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgLy8gSG93IHRvIGhhbmRsZSBhIHBpY2tsaXN0IHNlbGVjdGlvblxyXG4gICAgdGhpcy5waWNrbGlzdC5waWNrID0gKGl0ZW0pID0+IHtcclxuICAgICAgLy8gRmlyZSBhbiBldmVudCB3aGVuIGFuIGFkZHJlc3MgaXMgcGlja2VkXHJcbiAgICAgIHRoaXMuZXZlbnRzLnRyaWdnZXIoJ3Bvc3QtcGlja2xpc3Qtc2VsZWN0aW9uJywgaXRlbSk7XHJcblxyXG4gICAgICBjb25zdCBlbGVtZW50cyA9IGl0ZW0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2RpdicpO1xyXG5cclxuICAgICAgaWYgKHRoaXMuaXNXaGF0M1dvcmRzKSB7XHJcbiAgICAgICAgdGhpcy5sb29rdXAoZWxlbWVudHNbMF0uaW5uZXJIVE1MKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICAvLyBHZXQgYSBmaW5hbCBhZGRyZXNzIHVzaW5nIHBpY2tsaXN0IGl0ZW0gdW5sZXNzIGl0IG5lZWRzIHJlZmluZW1lbnRcclxuICAgICAgICBpZiAoaXRlbS5nZXRBdHRyaWJ1dGUoJ2Zvcm1hdCcpKSB7XHJcbiAgICAgICAgICB0aGlzLmZvcm1hdChpdGVtLmdldEF0dHJpYnV0ZSgnZm9ybWF0JykpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnJlZmluZShpdGVtLmdldEF0dHJpYnV0ZSgncmVmaW5lJykpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZm9ybWF0KHVybDogc3RyaW5nKSB7XHJcbiAgICAvLyBUcmlnZ2VyIGFuIGV2ZW50XHJcbiAgICB0aGlzLmV2ZW50cy50cmlnZ2VyKCdwcmUtZm9ybWF0dGluZy1zZWFyY2gnLCB1cmwpO1xyXG5cclxuICAgIC8vIEhpZGUgdGhlIHNlYXJjaGluZyBzcGlubmVyXHJcbiAgICB0aGlzLnNlYXJjaFNwaW5uZXIuaGlkZSgpO1xyXG5cclxuICAgIC8vIEluaXRpYXRlIGEgbmV3IEZvcm1hdCByZXF1ZXN0XHJcbiAgICB0aGlzLnJlcXVlc3Quc2VuZCh1cmwsICdHRVQnLCB0aGlzLnJlc3VsdC5zaG93LCB1bmRlZmluZWQsIFt7IGtleTogJ0FkZC1NZXRhZGF0YScsIHZhbHVlOiB0cnVlIH0vKiwge2tleTogJ0FkZC1Db21wb25lbnRzJywgdmFsdWU6IHRydWV9Ki9dKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVmaW5lKGtleTogc3RyaW5nKSB7XHJcbiAgICAvLyBUcmlnZ2VyIGFuIGV2ZW50XHJcbiAgICB0aGlzLmV2ZW50cy50cmlnZ2VyKCdwcmUtcmVmaW5lbWVudCcsIGtleSk7XHJcblxyXG4gICAgLy8gSGlkZSB0aGUgc2VhcmNoaW5nIHNwaW5uZXJcclxuICAgIHRoaXMuc2VhcmNoU3Bpbm5lci5oaWRlKCk7XHJcblxyXG4gICAgLy8gSW5pdGlhdGUgYSBuZXcgU3RlcC1pbiByZXF1ZXN0IHVzaW5nIHRoZSBnbG9iYWwgYWRkcmVzcyBrZXlcclxuICAgIHRoaXMucmVxdWVzdC5zZW5kKGAke3RoaXMuYmFzZVVybH0ke3RoaXMuc3RlcEluRW5kcG9pbnR9LyR7a2V5fWAsICdHRVQnLCB0aGlzLnBpY2tsaXN0LnNob3cpO1xyXG4gIH1cclxuXHJcblxyXG4gIHByaXZhdGUgbG9va3VwKGtleTogc3RyaW5nKSB7XHJcbiAgICAvLyBUcmlnZ2VyIGFuIGV2ZW50XHJcbiAgICB0aGlzLmV2ZW50cy50cmlnZ2VyKCdwcmUtbG9va3VwJywga2V5KTtcclxuXHJcbiAgICAvLyBIaWRlIHRoZSBzZWFyY2hpbmcgc3Bpbm5lclxyXG4gICAgdGhpcy5zZWFyY2hTcGlubmVyLmhpZGUoKTtcclxuXHJcbiAgICAvL0dldCB0aGUgbG9va3VwIHJlcXVldFxyXG4gICAgY29uc3QgbG9va3VwVjJSZXF1ZXN0ID0gdGhpcy5nZW5lcmF0ZUxvb2t1cERhdGFGb3JBcGlDYWxsKGtleSwgZmFsc2UpO1xyXG5cclxuICAgIGNvbnN0IHVybCA9IHRoaXMuYmFzZVVybCArIHRoaXMubG9va3VwRW5kcG9pbnQ7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gW3sga2V5OiAnQWRkLUFkZHJlc3NlcycsIHZhbHVlOiB0cnVlIH1dO1xyXG4gICAgY29uc3QgY2FsbGJhY2sgPSB0aGlzLnBpY2tsaXN0LnNob3dMb29rdXA7XHJcblxyXG4gICAgLy8gSW5pdGlhdGUgbmV3IFNlYXJjaCByZXF1ZXN0XHJcbiAgICB0aGlzLnJlcXVlc3Quc2VuZCh1cmwsICdQT1NUJywgY2FsbGJhY2ssIGxvb2t1cFYyUmVxdWVzdCwgaGVhZGVycyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc3VsdDogQWRkcmVzc1ZhbGlkYXRpb25SZXN1bHQgPSB7XHJcbiAgICBmb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyOiBudWxsLFxyXG4gICAgbGFzdEFkZHJlc3NGaWVsZDogbnVsbCxcclxuICAgIGdlbmVyYXRlQWRkcmVzc0xpbmVSZXF1aXJlZDogZmFsc2UsXHJcbiAgICAvLyBSZW5kZXIgYSBGb3JtYXR0ZWQgYWRkcmVzc1xyXG4gICAgc2hvdzogKGRhdGE6IFNlYXJjaFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIC8vIEhpZGUgdGhlIGlubGluZSBzZWFyY2ggc3Bpbm5lclxyXG4gICAgICB0aGlzLnNlYXJjaFNwaW5uZXIuaGlkZSgpO1xyXG5cclxuICAgICAgLy8gSGlkZSB0aGUgcGlja2xpc3RcclxuICAgICAgdGhpcy5waWNrbGlzdC5oaWRlKCk7XHJcblxyXG4gICAgICAvLyBDbGVhciB0aGUgcHJldmlvdXMgc2VhcmNoIHRlcm1cclxuICAgICAgdGhpcy5sYXN0U2VhcmNoVGVybSA9ICcnO1xyXG5cclxuICAgICAgLy8gQWxsb3cgQXV0b2NvbXBsZXRlIHRocm91Z2ggYXMgaXQgd2lsbCBuZWVkIHRvIGNyZWF0ZSB0aGUgYWRkaXRpb25hbCBvdXRwdXQgZmllbGRzIGZvciB0aGUgZmluYWwgYWRkcmVzcy5cclxuICAgICAgLy8gT3RoZXJ3aXNlLCBvbmx5IHJlbmRlciB0aGUgZmluYWwgYWRkcmVzcyBpZiB0aGVyZSBhcmUgcmVzdWx0cyBhdmFpbGFibGUuXHJcbiAgICAgIGlmICh0aGlzLnNlYXJjaFR5cGUgPT09IEFkZHJlc3NWYWxpZGF0aW9uTW9kZS5BVVRPQ09NUExFVEUgfHwgKGRhdGEucmVzdWx0LmFkZHJlc3MgJiYgZGF0YS5yZXN1bHQuY29uZmlkZW5jZSAhPT0gJ05vIG1hdGNoZXMnKSkge1xyXG5cclxuICAgICAgICAvLyBDbGVhciBzZWFyY2ggaW5wdXQocylcclxuICAgICAgICB0aGlzLmlucHV0cy5mb3JFYWNoKGlucHV0ID0+IGlucHV0LnZhbHVlID0gJycpO1xyXG5cclxuICAgICAgICAvLyBDYWxjdWxhdGUgaWYgd2UgbmVlZGVkIHRvIGdlbmVyYXRlIHRoZSBmb3JtYXR0ZWQgYWRkcmVzcyBpbnB1dCBmaWVsZHMgbGF0ZXJcclxuICAgICAgICB0aGlzLnJlc3VsdC5jYWxjdWxhdGVJZkFkZHJlc3NMaW5lR2VuZXJhdGlvblJlcXVpcmVkKCk7XHJcblxyXG4gICAgICAgIC8vIEdldCBmb3JtYXR0ZWQgYWRkcmVzcyBjb250YWluZXIgZWxlbWVudFxyXG4gICAgICAgIC8vIE9ubHkgY3JlYXRlIGEgY29udGFpbmVyIGlmIHdlJ3JlIGNyZWF0aW5nIGlucHV0cy4gT3RoZXJ3aXNlIHRoZSB1c2VyIHdpbGwgaGF2ZSB0aGVpciBvd24gY29udGFpbmVyLlxyXG4gICAgICAgIHRoaXMucmVzdWx0LmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIgPSB0aGlzLm9wdGlvbnMuZWxlbWVudHMuZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lcjtcclxuICAgICAgICBpZiAoIXRoaXMucmVzdWx0LmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIgJiYgdGhpcy5yZXN1bHQuZ2VuZXJhdGVBZGRyZXNzTGluZVJlcXVpcmVkKSB7XHJcbiAgICAgICAgICB0aGlzLnJlc3VsdC5jcmVhdGVGb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBMb29wIG92ZXIgZWFjaCBmb3JtYXR0ZWQgYWRkcmVzcyBjb21wb25lbnRcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IE9iamVjdC5rZXlzKGRhdGEucmVzdWx0LmFkZHJlc3MpLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBjb25zdCBrZXkgPSBPYmplY3Qua2V5cyhkYXRhLnJlc3VsdC5hZGRyZXNzKVtpXTtcclxuICAgICAgICAgIGNvbnN0IGFkZHJlc3NDb21wb25lbnQgPSBkYXRhLnJlc3VsdC5hZGRyZXNzW2tleV07XHJcbiAgICAgICAgICAvLyBCaW5kIHRoZSBhZGRyZXNzIGVsZW1lbnQgdG8gdGhlIHVzZXIncyBhZGRyZXNzIGZpZWxkIChvciBjcmVhdGUgYSBuZXcgb25lKVxyXG4gICAgICAgICAgdGhpcy5yZXN1bHQudXBkYXRlQWRkcmVzc0xpbmUoa2V5LCBhZGRyZXNzQ29tcG9uZW50LCAnYWRkcmVzcy1saW5lLWlucHV0Jyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBIaWRlIGNvdW50cnkgYW5kIGFkZHJlc3Mgc2VhcmNoIGZpZWxkcyAoaWYgdGhleSBoYXZlIGEgJ3RvZ2dsZScgY2xhc3MpXHJcbiAgICAgICAgdGhpcy50b2dnbGVTZWFyY2hJbnB1dHMoJ2hpZGUnKTtcclxuXHJcbiAgICAgICAgLy8gRW5hYmxlIHVzZXJzIHRvIHNlYXJjaCBhZ2FpbiBzdWJzZXF1ZW50bHlcclxuICAgICAgICB0aGlzLmhhc1NlYXJjaElucHV0QmVlblJlc2V0ID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgLy8gSWYgYW4gYWRkcmVzcyBsaW5lIGlzIGFsc28gdGhlIG1haW4gc2VhcmNoIGlucHV0LCBzZXQgcHJvcGVydHkgdG8gZmFsc2UuXHJcbiAgICAgICAgLy8gVGhpcyBlbnN1cmVzIHRoYXQgdHlwaW5nIGluIHRoZSBmaWVsZCBhZ2FpbiAoYWZ0ZXIgYW4gYWRkcmVzcyBoYXMgYmVlblxyXG4gICAgICAgIC8vIHJldHVybmVkKSB3aWxsIG5vdCB0cmlnZ2VyIGEgbmV3IHNlYXJjaC5cclxuICAgICAgICBpZiAodGhpcy5zZWFyY2hUeXBlID09PSBBZGRyZXNzVmFsaWRhdGlvbk1vZGUuQVVUT0NPTVBMRVRFKSB7XHJcbiAgICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgaW4gdGhpcy5vcHRpb25zLmVsZW1lbnRzKSB7XHJcbiAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5vcHRpb25zLmVsZW1lbnRzLCBlbGVtZW50KSkge1xyXG4gICAgICAgICAgICAgIC8vIEV4Y2x1ZGluZyB0aGUgaW5wdXQgaXRzZWxmLCBkb2VzIGFub3RoZXIgZWxlbWVudCBtYXRjaCB0aGUgaW5wdXQgZmllbGQ/XHJcbiAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgIT09ICdpbnB1dCcgJiYgdGhpcy5vcHRpb25zLmVsZW1lbnRzW2VsZW1lbnRdID09PSB0aGlzLmlucHV0c1swXSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5oYXNTZWFyY2hJbnB1dEJlZW5SZXNldCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBDcmVhdGUgdGhlICdTZWFyY2ggYWdhaW4nIGxpbmsgYW5kIGluc2VydCBpbnRvIERPTVxyXG4gICAgICAgIHRoaXMucmVzdWx0LmNyZWF0ZVNlYXJjaEFnYWluTGluaygpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBGaXJlIGFuIGV2ZW50IHRvIHNheSB3ZSd2ZSBnb3QgdGhlIGZvcm1hdHRlZCBhZGRyZXNzXHJcbiAgICAgIHRoaXMuZXZlbnRzLnRyaWdnZXIoJ3Bvc3QtZm9ybWF0dGluZy1zZWFyY2gnLCBkYXRhKTtcclxuICAgIH0sXHJcbiAgICBoaWRlOiAoKSA9PiB7XHJcbiAgICAgIC8vIERlbGV0ZSB0aGUgZm9ybWF0dGVkIGFkZHJlc3MgY29udGFpbmVyXHJcbiAgICAgIGlmICh0aGlzLnJlc3VsdC5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyKSB7XHJcbiAgICAgICAgdGhpcy5yZXN1bHQuZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMucmVzdWx0LmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIpO1xyXG4gICAgICAgIHRoaXMucmVzdWx0LmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuICAgICAgLy8gRGVsZXRlIHRoZSBzZWFyY2ggYWdhaW4gbGlua1xyXG4gICAgICBpZiAodGhpcy5vcHRpb25zLnNlYXJjaEFnYWluLmxpbmspIHtcclxuICAgICAgICB0aGlzLm9wdGlvbnMuc2VhcmNoQWdhaW4ubGluay5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMub3B0aW9ucy5zZWFyY2hBZ2Fpbi5saW5rKTtcclxuICAgICAgICB0aGlzLm9wdGlvbnMuc2VhcmNoQWdhaW4ubGluayA9IHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG4gICAgICAvLyBSZW1vdmUgcHJldmlvdXMgdmFsdWUgZnJvbSB1c2VyJ3MgcmVzdWx0IGZpZWxkXHJcbiAgICAgIC8vIExvb3Agb3ZlciB0aGVpciBlbGVtZW50c1xyXG4gICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgaW4gdGhpcy5vcHRpb25zLmVsZW1lbnRzKSB7XHJcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLm9wdGlvbnMuZWxlbWVudHMsIGVsZW1lbnQpKSB7XHJcbiAgICAgICAgICAvLyBJZiBpdCBtYXRjaGVzIGFuIFwiYWRkcmVzc1wiIGVsZW1lbnRcclxuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGVmYXVsdHMuYWRkcmVzc0xpbmVMYWJlbHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBkZWZhdWx0cy5hZGRyZXNzTGluZUxhYmVsc1tpXTtcclxuICAgICAgICAgICAgLy8gT25seSByZXNldCB0aGUgdmFsdWUgaWYgaXQncyBub3QgYW4gaW5wdXQgZmllbGRcclxuICAgICAgICAgICAgaWYgKGxhYmVsID09PSBlbGVtZW50ICYmIHRoaXMub3B0aW9ucy5lbGVtZW50c1tlbGVtZW50XSAhPT0gdGhpcy5pbnB1dHNbMF0pIHtcclxuICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMuZWxlbWVudHNbZWxlbWVudF0udmFsdWUgPSAnJztcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGNyZWF0ZUFkZHJlc3NMaW5lOiB7XHJcbiAgICAgIC8vIENyZWF0ZSBhbiBpbnB1dCB0byBzdG9yZSB0aGUgYWRkcmVzcyBsaW5lXHJcbiAgICAgIGlucHV0OiAoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIGNsYXNzTmFtZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgLy8gQ3JlYXRlIGEgd3JhcHBlclxyXG4gICAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICAgIGRpdi5jbGFzc0xpc3QuYWRkKGNsYXNzTmFtZSk7XHJcblxyXG4gICAgICAgIC8vIENyZWF0ZSB0aGUgbGFiZWxcclxuICAgICAgICBjb25zdCBsYWJlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xhYmVsJyk7XHJcbiAgICAgICAgbGFiZWwuaW5uZXJIVE1MID0ga2V5LnJlcGxhY2UoLyhbQS1aXSkvZywgJyAkMScpIC8vIEFkZCBzcGFjZSBiZWZvcmUgY2FwaXRhbCBMZXR0ZXJzXHJcbiAgICAgICAgICAucmVwbGFjZSgvKFswLTldKS9nLCAnICQxJykgLy8gQWRkIHNwYWNlIGJlZm9yZSBudW1iZXJzXHJcbiAgICAgICAgICAucmVwbGFjZSgvXi4vLCBmdW5jdGlvbiAoc3RyKSB7IHJldHVybiBzdHIudG9VcHBlckNhc2UoKTsgfSk7IC8vIE1ha2UgZmlyc3QgbGV0dGVyIG9mIHdvcmQgYSBjYXBpdGFsIGxldHRlclxyXG4gICAgICAgIGRpdi5hcHBlbmRDaGlsZChsYWJlbCk7XHJcblxyXG4gICAgICAgIC8vIENyZWF0ZSB0aGUgaW5wdXRcclxuICAgICAgICBjb25zdCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XHJcbiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCd0eXBlJywgJ3RleHQnKTtcclxuICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCBrZXkpO1xyXG4gICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgndmFsdWUnLCB2YWx1ZSk7XHJcbiAgICAgICAgZGl2LmFwcGVuZENoaWxkKGlucHV0KTtcclxuICAgICAgICByZXR1cm4gZGl2O1xyXG4gICAgICB9LFxyXG4gICAgICAvLyBDcmVhdGUgdGhlIGFkZHJlc3MgbGluZSBsYWJlbCBiYXNlZCBvbiB0aGUgY291bnRyeSBhbmQgbGFuZ3VhZ2VcclxuICAgICAgbGFiZWw6IChrZXk6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIGxldCBsYWJlbCA9IGtleTtcclxuICAgICAgICBjb25zdCBsYW5ndWFnZSA9IHRoaXMub3B0aW9ucy5sYW5ndWFnZS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgIGNvbnN0IGNvdW50cnkgPSB0aGlzLmN1cnJlbnRDb3VudHJ5Q29kZS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgIGlmICh0cmFuc2xhdGlvbnMpIHtcclxuICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zbGF0ZWRMYWJlbCA9IHRyYW5zbGF0aW9uc1tsYW5ndWFnZV1bY291bnRyeV1ba2V5XTtcclxuICAgICAgICAgICAgaWYgKHRyYW5zbGF0ZWRMYWJlbCkge1xyXG4gICAgICAgICAgICAgIGxhYmVsID0gdHJhbnNsYXRlZExhYmVsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIC8vIFRyYW5zbGF0aW9uIGRvZXNuJ3QgZXhpc3QgZm9yIGtleVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbGFiZWw7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvLyBDcmVhdGUgdGhlIGZvcm1hdHRlZCBhZGRyZXNzIGNvbnRhaW5lciBhbmQgaW5qZWN0IGFmdGVyIHRoZSBpbnB1dFxyXG4gICAgY3JlYXRlRm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lcjogKCkgPT4ge1xyXG4gICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ2Zvcm1hdHRlZC1hZGRyZXNzJyk7XHJcblxyXG4gICAgICAvLyBJZiBTaW5nbGVsaW5lIG1vZGUgaXMgdXNlZCwgdGhlbiBhcHBlbmQgdGhlIGZvcm1hdHRlZCBhZGRyZXNzIGFmdGVyIHRoZSBsYXN0IGlucHV0IGZpZWxkLCBvdGhlcndpc2UgdXNlIHRoZSBmaXJzdCBvbmVcclxuICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLnNlYXJjaFR5cGUgPT09IEFkZHJlc3NWYWxpZGF0aW9uTW9kZS5TSU5HTEVMSU5FID8gdGhpcy5pbnB1dHMubGVuZ3RoIC0gMSA6IDA7XHJcblxyXG4gICAgICAvLyBJbnNlcnQgdGhlIGNvbnRhaW5lciBhZnRlciB0aGUgaW5wdXRcclxuICAgICAgdGhpcy5pbnB1dHNbcG9zaXRpb25dLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGNvbnRhaW5lciwgdGhpcy5pbnB1dHNbcG9zaXRpb25dLm5leHRTaWJsaW5nKTtcclxuICAgICAgdGhpcy5yZXN1bHQuZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lciA9IGNvbnRhaW5lcjtcclxuICAgIH0sXHJcbiAgICAvLyBDcmVhdGUgYSBoZWFkaW5nIGZvciB0aGUgZm9ybWF0dGVkIGFkZHJlc3MgY29udGFpbmVyXHJcbiAgICBjcmVhdGVIZWFkaW5nOiAoKSA9PiB7XHJcbiAgICAgIC8vIENyZWF0ZSBhIGhlYWRpbmcgZm9yIHRoZSBmb3JtYXR0ZWQgYWRkcmVzc1xyXG4gICAgICBpZiAodGhpcy5vcHRpb25zLmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIuc2hvd0hlYWRpbmcpIHtcclxuICAgICAgICBjb25zdCBoZWFkaW5nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLm9wdGlvbnMuZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lci5oZWFkaW5nVHlwZSk7XHJcbiAgICAgICAgaGVhZGluZy5pbm5lckhUTUwgPSB0aGlzLm9wdGlvbnMuZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lci52YWxpZGF0ZWRIZWFkaW5nVGV4dDtcclxuICAgICAgICB0aGlzLnJlc3VsdC5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyLmFwcGVuZENoaWxkKGhlYWRpbmcpO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLy8gVXBkYXRlIHRoZSBoZWFkaW5nIHRleHQgaW4gdGhlIGZvcm1hdHRlZCBhZGRyZXNzIGNvbnRhaW5lclxyXG4gICAgdXBkYXRlSGVhZGluZzogKHRleHQpID0+IHtcclxuICAgICAgLy9DaGFuZ2UgdGhlIGhlYWRpbmcgdGV4dCB0byBcIk1hbnVhbCBhZGRyZXNzIGVudGVyZWRcIlxyXG4gICAgICBpZiAodGhpcy5vcHRpb25zLmZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIuc2hvd0hlYWRpbmcpIHtcclxuICAgICAgICBjb25zdCBoZWFkaW5nID0gdGhpcy5yZXN1bHQuZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lci5xdWVyeVNlbGVjdG9yKHRoaXMub3B0aW9ucy5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyLmhlYWRpbmdUeXBlKTtcclxuICAgICAgICBoZWFkaW5nLmlubmVySFRNTCA9IHRleHQ7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBjYWxjdWxhdGVJZkFkZHJlc3NMaW5lR2VuZXJhdGlvblJlcXVpcmVkOiAoKSA9PiB7XHJcbiAgICAgIHRoaXMucmVzdWx0LmdlbmVyYXRlQWRkcmVzc0xpbmVSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGVmYXVsdHMuYWRkcmVzc0xpbmVMYWJlbHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCBrZXkgPSBkZWZhdWx0cy5hZGRyZXNzTGluZUxhYmVsc1tpXTtcclxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmVsZW1lbnRzW2tleV0pIHtcclxuICAgICAgICAgIHRoaXMucmVzdWx0LmdlbmVyYXRlQWRkcmVzc0xpbmVSZXF1aXJlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgdXBkYXRlQWRkcmVzc0xpbmU6IChrZXk6IHN0cmluZywgYWRkcmVzc0xpbmVPYmplY3QsIGNsYXNzTmFtZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIC8vIEVpdGhlciBhcHBlbmQgdGhlIHJlc3VsdCB0byB0aGUgdXNlcidzIGFkZHJlc3MgZmllbGQgb3IgY3JlYXRlIGEgbmV3IGZpZWxkIGZvciB0aGVtXHJcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMuZWxlbWVudHNba2V5XSkge1xyXG4gICAgICAgIGNvbnN0IGFkZHJlc3NGaWVsZCA9IHRoaXMub3B0aW9ucy5lbGVtZW50c1trZXldO1xyXG4gICAgICAgIHRoaXMucmVzdWx0LnVwZGF0ZUxhYmVsKGtleSk7XHJcbiAgICAgICAgbGV0IHZhbHVlID0gYWRkcmVzc0xpbmVPYmplY3Q7XHJcbiAgICAgICAgLy8gSWYgYSB2YWx1ZSBpcyBhbHJlYWR5IHByZXNlbnQsIHByZXBlbmQgYSBjb21tYSBhbmQgc3BhY2VcclxuICAgICAgICBpZiAoYWRkcmVzc0ZpZWxkLnZhbHVlICYmIHZhbHVlKSB7XHJcbiAgICAgICAgICB2YWx1ZSA9ICcsICcgKyB2YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gRGVjaWRlIHdoYXQgcHJvcGVydHkgb2YgdGhlIG5vZGUgd2UgbmVlZCB0byB1cGRhdGUuIGkuZS4gaWYgaXQncyBub3QgYSBmb3JtIGZpZWxkLCB1cGRhdGUgdGhlIGlubmVyVGV4dC5cclxuICAgICAgICBpZiAoYWRkcmVzc0ZpZWxkLm5vZGVOYW1lID09PSAnSU5QVVQnIHx8IGFkZHJlc3NGaWVsZC5ub2RlTmFtZSA9PT0gJ1RFWFRBUkVBJyB8fCBhZGRyZXNzRmllbGQubm9kZU5hbWUgPT09ICdTRUxFQ1QnKSB7XHJcbiAgICAgICAgICBhZGRyZXNzRmllbGQudmFsdWUgKz0gdmFsdWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGFkZHJlc3NGaWVsZC5pbm5lclRleHQgKz0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFN0b3JlIGEgcmVjb3JkIG9mIHRoZWlyIGxhc3QgYWRkcmVzcyBmaWVsZFxyXG4gICAgICAgIHRoaXMucmVzdWx0Lmxhc3RBZGRyZXNzRmllbGQgPSBhZGRyZXNzRmllbGQ7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5yZXN1bHQuZ2VuZXJhdGVBZGRyZXNzTGluZVJlcXVpcmVkKSB7XHJcbiAgICAgICAgLy8gQ3JlYXRlIGFuIGlucHV0IHRvIHN0b3JlIHRoZSBhZGRyZXNzIGxpbmVcclxuICAgICAgICBjb25zdCBsYWJlbCA9IHRoaXMucmVzdWx0LmNyZWF0ZUFkZHJlc3NMaW5lLmxhYmVsKGtleSk7XHJcbiAgICAgICAgY29uc3QgZmllbGQgPSB0aGlzLnJlc3VsdC5jcmVhdGVBZGRyZXNzTGluZS5pbnB1dChsYWJlbCwgYWRkcmVzc0xpbmVPYmplY3QsIGNsYXNzTmFtZSk7XHJcbiAgICAgICAgLy8gSW5zZXJ0IGludG8gRE9NXHJcbiAgICAgICAgdGhpcy5yZXN1bHQuZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lci5hcHBlbmRDaGlsZChmaWVsZCk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvLyBVcGRhdGUgdGhlIGxhYmVsIGlmIHRyYW5zbGF0aW9uIGlzIHByZXNlbnRcclxuICAgIHVwZGF0ZUxhYmVsOiAoa2V5OiBzdHJpbmcpID0+IHtcclxuICAgICAgbGV0IGxhYmVsID0ga2V5O1xyXG4gICAgICBjb25zdCBsYW5ndWFnZSA9IHRoaXMub3B0aW9ucy5sYW5ndWFnZS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICBjb25zdCBjb3VudHJ5ID0gdGhpcy5jdXJyZW50Q291bnRyeUNvZGUudG9Mb3dlckNhc2UoKTtcclxuICAgICAgaWYgKHRyYW5zbGF0aW9ucykge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICBjb25zdCB0cmFuc2xhdGVkTGFiZWwgPSB0cmFuc2xhdGlvbnNbbGFuZ3VhZ2VdW2NvdW50cnldW2tleV07XHJcbiAgICAgICAgICBpZiAodHJhbnNsYXRlZExhYmVsKSB7XHJcbiAgICAgICAgICAgIGxhYmVsID0gdHJhbnNsYXRlZExhYmVsO1xyXG4gICAgICAgICAgICBjb25zdCBsYWJlbHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnbGFiZWwnKTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsYWJlbHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICBpZiAobGFiZWxzW2ldLmh0bWxGb3IgPT09IGtleSkge1xyXG4gICAgICAgICAgICAgICAgbGFiZWxzW2ldLmlubmVySFRNTCA9IHRyYW5zbGF0ZWRMYWJlbDtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAvLyBUcmFuc2xhdGlvbiBkb2Vzbid0IGV4aXN0IGZvciBrZXlcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGxhYmVsO1xyXG4gICAgfSxcclxuICAgIC8vIENyZWF0ZSB0aGUgJ1NlYXJjaCBhZ2FpbicgbGluayB0aGF0IHJlc2V0cyB0aGUgc2VhcmNoXHJcbiAgICBjcmVhdGVTZWFyY2hBZ2Fpbkxpbms6ICgpID0+IHtcclxuICAgICAgaWYgKHRoaXMub3B0aW9ucy5zZWFyY2hBZ2Fpbi52aXNpYmxlKSB7XHJcbiAgICAgICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpO1xyXG4gICAgICAgIGxpbmsuc2V0QXR0cmlidXRlKCd0eXBlJywgJ2J1dHRvbicpO1xyXG4gICAgICAgIGxpbmsuY2xhc3NMaXN0LmFkZCgnc2VhcmNoLWFnYWluLWJ1dHRvbicpO1xyXG4gICAgICAgIGxpbmsuaW5uZXJUZXh0ID0gdGhpcy5vcHRpb25zLnNlYXJjaEFnYWluLnRleHQ7XHJcbiAgICAgICAgLy8gQmluZCBldmVudCBsaXN0ZW5lclxyXG4gICAgICAgIGxpbmsuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmdsb2JhbFJlc2V0LmJpbmQodGhpcykpO1xyXG4gICAgICAgIC8vIFN0b3JlIGEgcmVmZXJlbmNlIHRvIHRoZSBsaW5rIGVsZW1lbnRcclxuICAgICAgICB0aGlzLm9wdGlvbnMuc2VhcmNoQWdhaW4ubGluayA9IGxpbms7XHJcblxyXG4gICAgICAgIC8vIEluc2VydCBpbnRvIHRoZSBmb3JtYXR0ZWQgYWRkcmVzcyBjb250YWluZXJcclxuICAgICAgICBpZiAodGhpcy5yZXN1bHQuZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lcikge1xyXG4gICAgICAgICAgdGhpcy5yZXN1bHQuZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lci5hcHBlbmRDaGlsZChsaW5rKTtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMucmVzdWx0Lmxhc3RBZGRyZXNzRmllbGQpIHtcclxuICAgICAgICAgIC8vIEluc2VydCBhZnRlciBsYXN0IGFkZHJlc3MgZmllbGRcclxuICAgICAgICAgIHRoaXMucmVzdWx0Lmxhc3RBZGRyZXNzRmllbGQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobGluaywgdGhpcy5yZXN1bHQubGFzdEFkZHJlc3NGaWVsZC5uZXh0U2libGluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLy8gV3JpdGUgdGhlIGxpc3Qgb2YgaGlkZGVuIGFkZHJlc3MgbGluZSBpbnB1dHMgdG8gdGhlIERPTVxyXG4gICAgcmVuZGVySW5wdXRMaXN0OiAoaW5wdXRBcnJheSkgPT4ge1xyXG4gICAgICBpZiAoaW5wdXRBcnJheS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dEFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICB0aGlzLnJlc3VsdC5mb3JtYXR0ZWRBZGRyZXNzQ29udGFpbmVyLmFwcGVuZENoaWxkKGlucHV0QXJyYXlbaV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8vIERlY2lkZSB3aGV0aGVyIHRvIGVpdGhlciBzaG93IGEgcGlja2xpc3Qgb3IgYSB2ZXJpZmllZCByZXN1bHQgZnJvbSBhIFZhbGlkYXRlIHJlc3BvbnNlXHJcbiAgICBoYW5kbGVWYWxpZGF0ZVJlc3BvbnNlOiAocmVzcG9uc2U6IFNlYXJjaFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGlmIChyZXNwb25zZS5yZXN1bHQuY29uZmlkZW5jZSA9PT0gJ1ZlcmlmaWVkIG1hdGNoJykge1xyXG4gICAgICAgIC8vIElmIHRoZSByZXNwb25zZSBjb250YWlucyBhbiBhZGRyZXNzLCB0aGVuIHVzZSB0aGlzIGRpcmVjdGx5IGluIHRoZSByZXN1bHRcclxuICAgICAgICBpZiAocmVzcG9uc2UucmVzdWx0LmFkZHJlc3MpIHtcclxuICAgICAgICAgIHRoaXMucmVzdWx0LnNob3cocmVzcG9uc2UpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2UucmVzdWx0LnN1Z2dlc3Rpb25zKSB7XHJcbiAgICAgICAgICAvLyBJZiB0aGUgdmVyaWZpZWQgbWF0Y2ggc3RpbGwgY29udGFpbnMgYSBzdWdnZXN0aW9uLCB0aGVuIHdlIG5lZWQgdG8gZm9ybWF0IHRoaXMgZmlyc3RcclxuICAgICAgICAgIHRoaXMuZm9ybWF0KHJlc3BvbnNlLnJlc3VsdC5zdWdnZXN0aW9uc1swXS5mb3JtYXQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmIChyZXNwb25zZS5yZXN1bHQuc3VnZ2VzdGlvbnMpIHtcclxuICAgICAgICAvLyBJZiB0aGUgdXNlciBuZWVkcyB0byBwaWNrIGEgc3VnZ2VzdGlvbiwgdGhlbiBkaXNwbGF5IHRoZSBwaWNrbGlzdFxyXG4gICAgICAgIHRoaXMucGlja2xpc3Quc2hvdyhyZXNwb25zZSk7XHJcbiAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2UucmVzdWx0LmNvbmZpZGVuY2UgPT09ICdObyBtYXRjaGVzJykge1xyXG4gICAgICAgIC8vIElmIHRoZXJlIGFyZSBubyBtYXRjaGVzLCB0aGVuIGFsbG93IFwidXNlIGFkZHJlc3MgZW50ZXJlZFwiXHJcbiAgICAgICAgdGhpcy5waWNrbGlzdC5oYW5kbGVFbXB0eVBpY2tsaXN0KHJlc3BvbnNlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgY2hlY2tUYWIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGtleSA9IHRoaXMuZ2V0S2V5KGV2ZW50KTtcclxuICAgIGlmIChrZXkgPT09ICdUYWInKSB7XHJcbiAgICAgIHRoaXMucGlja2xpc3Qua2V5dXAoZXZlbnQpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ0VudGVyJykge1xyXG4gICAgICAvLyBQcmV2ZW50IGFuICdFbnRlcicga2V5cHJlc3Mgb24gdGhlIGlucHV0IHN1Ym1pdHRpbmcgdGhlIGZvcm1cclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2VhcmNoU3Bpbm5lciA9IHtcclxuICAgIHNob3c6ICgpID0+IHtcclxuICAgICAgLy8gUmV0dXJuIGlmIHdlJ3JlIG5vdCBkaXNwbGF5aW5nIGEgc3Bpbm5lclxyXG4gICAgICBpZiAoIXRoaXMub3B0aW9ucy51c2VTcGlubmVyKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIENyZWF0ZSB0aGUgc3Bpbm5lciBjb250YWluZXJcclxuICAgICAgY29uc3Qgc3Bpbm5lckNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICBzcGlubmVyQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ2xvYWRlcicpO1xyXG4gICAgICBzcGlubmVyQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ2xvYWRlci1pbmxpbmUnKTtcclxuXHJcbiAgICAgIC8vIENyZWF0ZSB0aGUgc3Bpbm5lclxyXG4gICAgICBjb25zdCBzcGlubmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgIHNwaW5uZXIuY2xhc3NMaXN0LmFkZCgnc3Bpbm5lcicpO1xyXG4gICAgICBzcGlubmVyQ29udGFpbmVyLmFwcGVuZENoaWxkKHNwaW5uZXIpO1xyXG5cclxuICAgICAgLy8gSW5zZXJ0IHRoZSBzcGlubmVyIGFmdGVyIHRoZSBmaWVsZFxyXG4gICAgICB0aGlzLmlucHV0c1swXS5wYXJlbnROb2RlPy5pbnNlcnRCZWZvcmUoc3Bpbm5lckNvbnRhaW5lciwgdGhpcy5pbnB1dHNbMF0ubmV4dFNpYmxpbmcpO1xyXG4gICAgfSxcclxuXHJcbiAgICBoaWRlOiAoKSA9PiB7XHJcbiAgICAgIC8vIFJldHVybiBpZiB3ZSdyZSBub3QgZGlzcGxheWluZyBhIHNwaW5uZXJcclxuICAgICAgaWYgKCF0aGlzLm9wdGlvbnMudXNlU3Bpbm5lcikge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBzcGlubmVyID0gdGhpcy5pbnB1dHNbMF0ucGFyZW50Tm9kZT8ucXVlcnlTZWxlY3RvcignLmxvYWRlci1pbmxpbmUnKTtcclxuICAgICAgaWYgKHNwaW5uZXIpIHtcclxuICAgICAgICB0aGlzLmlucHV0c1swXS5wYXJlbnROb2RlPy5yZW1vdmVDaGlsZChzcGlubmVyKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIC8vIFRvZ2dsZSB0aGUgXCJoaWRkZW5cIiBjbGFzcyB0byBlaXRoZXIgc2hvdyBvciBoaWRlIHRoZSBpbnB1dCBhbmQgY291bnRyeSBmaWVsZChzKVxyXG4gIHByaXZhdGUgdG9nZ2xlU2VhcmNoSW5wdXRzKHN0YXRlOiAnc2hvdycgfCAnaGlkZScpIHtcclxuICAgIGNvbnN0IG1vZGlmaWVyID0gc3RhdGUgPT09ICdzaG93JyA/ICdyZW1vdmUnIDogJ2FkZCc7XHJcbiAgICB0aGlzLm9wdGlvbnMuZWxlbWVudHMuaW5wdXRzPy5mb3JFYWNoKGlucHV0ID0+IGlucHV0LnBhcmVudE5vZGUucXVlcnlTZWxlY3RvckFsbCgnLnRvZ2dsZScpLmZvckVhY2goZWxlbWVudCA9PiBlbGVtZW50LmNsYXNzTGlzdFttb2RpZmllcl0oJ2hpZGRlbicpKSk7XHJcbiAgICB0aGlzLm9wdGlvbnMuZWxlbWVudHMuY291bnRyeUxpc3Q/LnBhcmVudE5vZGUucXVlcnlTZWxlY3RvckFsbCgnLnRvZ2dsZScpLmZvckVhY2goZWxlbWVudCA9PiBlbGVtZW50LmNsYXNzTGlzdFttb2RpZmllcl0oJ2hpZGRlbicpKTtcclxuICAgIHRoaXMub3B0aW9ucy5lbGVtZW50cy5sb29rdXBCdXR0b24/LnBhcmVudE5vZGUucXVlcnlTZWxlY3RvckFsbCgnLnRvZ2dsZScpLmZvckVhY2goZWxlbWVudCA9PiBlbGVtZW50LmNsYXNzTGlzdFttb2RpZmllcl0oJ2hpZGRlbicpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2xvYmFsUmVzZXQoZXZlbnQ/KSB7XHJcbiAgICBpZiAoZXZlbnQpIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICAgIC8vIEVuYWJsZSBzZWFyY2hpbmdcclxuICAgIHRoaXMub3B0aW9ucy5lbmFibGVkID0gdHJ1ZTtcclxuICAgIC8vIEhpZGUgZm9ybWF0dGVkIGFkZHJlc3NcclxuICAgIHRoaXMucmVzdWx0LmhpZGUoKTtcclxuICAgIC8vIFJlc2V0IHNlYXJjaCBpbnB1dCBiYWNrXHJcbiAgICB0aGlzLmhhc1NlYXJjaElucHV0QmVlblJlc2V0ID0gdHJ1ZTtcclxuXHJcbiAgICAvLyBDbGVhciB0aGUgaW5wdXQgZmllbGQocylcclxuICAgIHRoaXMuaW5wdXRzLmZvckVhY2goaW5wdXQgPT4gaW5wdXQudmFsdWUgPSAnJyk7XHJcbiAgICAvLyBSZW1vdmUgdGhlIHBpY2tsaXN0IChpZiBwcmVzZW50KVxyXG4gICAgdGhpcy5waWNrbGlzdC5oaWRlKCk7XHJcbiAgICAvLyBTaG93IHNlYXJjaCBpbnB1dFxyXG4gICAgdGhpcy50b2dnbGVTZWFyY2hJbnB1dHMoJ3Nob3cnKTtcclxuICAgIC8vIEFwcGx5IGZvY3VzIHRvIGlucHV0XHJcbiAgICB0aGlzLmlucHV0c1swXS5mb2N1cygpO1xyXG5cclxuICAgIC8vIEZpcmUgYW4gZXZlbnQgYWZ0ZXIgYSByZXNldFxyXG4gICAgdGhpcy5ldmVudHMudHJpZ2dlcigncG9zdC1yZXNldCcpO1xyXG4gIH1cclxufVxyXG4iLCJpbXBvcnQgQWRkcmVzc1ZhbGlkYXRpb24gZnJvbSAnLi9hZGRyZXNzLXNlYXJjaCc7XHJcblxyXG5kZWNsYXJlIGdsb2JhbCB7XHJcbiAgaW50ZXJmYWNlIFdpbmRvdyB7XHJcbiAgICBBZGRyZXNzVmFsaWRhdGlvbjogYW55O1xyXG4gIH1cclxufVxyXG5cclxud2luZG93LkFkZHJlc3NWYWxpZGF0aW9uID0gQWRkcmVzc1ZhbGlkYXRpb247Il0sIm5hbWVzIjpbIkFkZHJlc3NWYWxpZGF0aW9uTW9kZSIsImNvbGxlY3Rpb24iLCJvbiIsImV2ZW50IiwiYWN0aW9uIiwidGhpcyIsInB1c2giLCJ0cmlnZ2VyIiwiZGF0YSIsImkiLCJsZW5ndGgiLCJhcmdzIiwiYSIsImFyZ3VtZW50cyIsImFwcGx5IiwiZSIsImluc3RhbmNlIiwic2VuZCIsInVybCIsIm1ldGhvZCIsImNhbGxiYWNrIiwiaGVhZGVycyIsImN1cnJlbnRSZXF1ZXN0IiwiWE1MSHR0cFJlcXVlc3QiLCJvcGVuIiwidGltZW91dCIsInNldFJlcXVlc3RIZWFkZXIiLCJvcHRpb25zIiwidG9rZW4iLCJmb3JFYWNoIiwiaGVhZGVyIiwia2V5IiwidmFsdWUiLCJvbmxvYWQiLCJ4aHIiLCJzdGF0dXMiLCJKU09OIiwicGFyc2UiLCJyZXNwb25zZVRleHQiLCJzZWFyY2hTcGlubmVyIiwiaGlkZSIsImV2ZW50cyIsIm9uZXJyb3IiLCJvbnRpbWVvdXQiLCJkZWZhdWx0cyIsImVuYWJsZVdoYXQzV29yZHMiLCJzZWFyY2hUeXBlIiwiQVVUT0NPTVBMRVRFIiwiaW5wdXQiLCJwbGFjZWhvbGRlclRleHQiLCJhcHBseUZvY3VzIiwiZm9ybWF0dGVkQWRkcmVzc0NvbnRhaW5lciIsInNob3dIZWFkaW5nIiwiaGVhZGluZ1R5cGUiLCJ2YWxpZGF0ZWRIZWFkaW5nVGV4dCIsIm1hbnVhbEhlYWRpbmdUZXh0Iiwic2VhcmNoQWdhaW4iLCJ2aXNpYmxlIiwidGV4dCIsInVzZUFkZHJlc3NFbnRlcmVkVGV4dCIsInVzZVNwaW5uZXIiLCJsYW5ndWFnZSIsImFkZHJlc3NMaW5lTGFiZWxzIiwiZGF0YXNldENvZGVzIiwiY291bnRyeSIsImlzbzNDb2RlIiwiaXNvMkNvZGUiLCJkYXRhc2V0Q29kZSIsInRyYW5zbGF0aW9ucyIsImVuIiwiZ2JyIiwibG9jYWxpdHkiLCJyZWdpb24iLCJwb3N0YWxfY29kZSIsInVzYSIsInNpemUiLCJtYXhTdWdnZXN0aW9ucyIsImJhc2VVcmwiLCJzZWFyY2hFbmRwb2ludCIsImxvb2t1cEVuZHBvaW50IiwidmFsaWRhdGVFbmRwb2ludCIsInByb21wdHNldEVuZHBvaW50Iiwic3RlcEluRW5kcG9pbnQiLCJyZWZpbmVFbmRwb2ludCIsImVucmljaG1lbnRFbmRwb2ludCIsIndoYXQzV29yZENvdW50cmllcyIsIndoYXQzV29yZHNLZXl3b3JkIiwicG93ZXJlZEJ5TG9nbyIsImVsZW1lbnQiLCJjcmVhdGUiLCJwaWNrbGlzdCIsIml0ZW0iLCJzdmciLCJmb3JtYXQiLCJsaXN0SXRlbSIsImNyZWF0ZUxpc3RJdGVtIiwiY2xhc3NMaXN0IiwiYWRkIiwibGlzdCIsInBhcmVudE5vZGUiLCJhcHBlbmRDaGlsZCIsImRlc3Ryb3kiLCJyZW1vdmVDaGlsZCIsInVuZGVmaW5lZCIsInJlc3VsdCIsImxhc3RBZGRyZXNzRmllbGQiLCJnZW5lcmF0ZUFkZHJlc3NMaW5lUmVxdWlyZWQiLCJzaG93IiwibGFzdFNlYXJjaFRlcm0iLCJhZGRyZXNzIiwiY29uZmlkZW5jZSIsImlucHV0cyIsImNhbGN1bGF0ZUlmQWRkcmVzc0xpbmVHZW5lcmF0aW9uUmVxdWlyZWQiLCJlbGVtZW50cyIsImNyZWF0ZUZvcm1hdHRlZEFkZHJlc3NDb250YWluZXIiLCJPYmplY3QiLCJrZXlzIiwiYWRkcmVzc0NvbXBvbmVudCIsInVwZGF0ZUFkZHJlc3NMaW5lIiwidG9nZ2xlU2VhcmNoSW5wdXRzIiwiaGFzU2VhcmNoSW5wdXRCZWVuUmVzZXQiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJjcmVhdGVTZWFyY2hBZ2FpbkxpbmsiLCJsaW5rIiwiY3JlYXRlQWRkcmVzc0xpbmUiLCJjbGFzc05hbWUiLCJkaXYiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJsYWJlbCIsImlubmVySFRNTCIsInJlcGxhY2UiLCJzdHIiLCJ0b1VwcGVyQ2FzZSIsInNldEF0dHJpYnV0ZSIsInRvTG93ZXJDYXNlIiwiY3VycmVudENvdW50cnlDb2RlIiwidHJhbnNsYXRlZExhYmVsIiwiY29udGFpbmVyIiwicG9zaXRpb24iLCJTSU5HTEVMSU5FIiwiaW5zZXJ0QmVmb3JlIiwibmV4dFNpYmxpbmciLCJjcmVhdGVIZWFkaW5nIiwiaGVhZGluZyIsInVwZGF0ZUhlYWRpbmciLCJxdWVyeVNlbGVjdG9yIiwiYWRkcmVzc0xpbmVPYmplY3QiLCJhZGRyZXNzRmllbGQiLCJ1cGRhdGVMYWJlbCIsIm5vZGVOYW1lIiwiaW5uZXJUZXh0IiwiZmllbGQiLCJsYWJlbHMiLCJnZXRFbGVtZW50c0J5VGFnTmFtZSIsImh0bWxGb3IiLCJhZGRFdmVudExpc3RlbmVyIiwiZ2xvYmFsUmVzZXQiLCJiaW5kIiwicmVuZGVySW5wdXRMaXN0IiwiaW5wdXRBcnJheSIsImhhbmRsZVZhbGlkYXRlUmVzcG9uc2UiLCJyZXNwb25zZSIsInN1Z2dlc3Rpb25zIiwiaGFuZGxlRW1wdHlQaWNrbGlzdCIsInNwaW5uZXJDb250YWluZXIiLCJzcGlubmVyIiwibWVyZ2VEZWZhdWx0T3B0aW9ucyIsInNldHVwIiwic2V0VG9rZW4iLCJzZXRTZWFyY2hUeXBlIiwic2V0SW5wdXRzIiwiZ2V0RW5yaWNobWVudERhdGEiLCJnbG9iYWxBZGRyZXNzS2V5IiwiY291bnRyeV9pc28iLCJnbG9iYWxfYWRkcmVzc19rZXkiLCJhdHRyaWJ1dGVzIiwiZ2VvY29kZXMiLCJ3aGF0M3dvcmRzIiwicmVxdWVzdCIsImhhbmRsZUVucmljaG1lbnRSZXN1bHQiLCJzdHJpbmdpZnkiLCJzZXRDb3VudHJ5TGlzdCIsImNyZWF0ZVBpY2tsaXN0Iiwic2V0VGltZW91dCIsImdldFBhcmFtZXRlciIsIm5hbWUiLCJyZXN1bHRzIiwiUmVnRXhwIiwiZXhlYyIsImxvY2F0aW9uIiwic2VhcmNoIiwiZGVjb2RlVVJJQ29tcG9uZW50IiwiY3VzdG9tT3B0aW9ucyIsImVuYWJsZWQiLCJnZXRQcm9tcHRzZXQiLCJjdXJyZW50RGF0YVNldCIsImxvb2t1cERhdGFzZXRDb2RlIiwiaGFuZGxlUHJvbXB0c2V0UmVzdWx0IiwibGluZXMiLCJleGFtcGxlIiwicHJvbXB0Iiwic3VnZ2VzdGVkX2lucHV0X2xlbmd0aCIsIlZBTElEQVRFIiwiZGF0YXNldHMiLCJBcnJheSIsImlzQXJyYXkiLCJzZWFyY2hfdHlwZSIsInByb21wdF9zZXQiLCJmaW5kIiwiZGF0YXNldCIsImluY2x1ZGVzIiwicmVnaXN0ZXJJbnB1dHMiLCJsb29rdXBCdXR0b24iLCJsb29rdXBGbiIsImZyb20iLCJrZXlVcEZuIiwiY2hlY2tUYWJGbiIsImNoZWNrVGFiIiwiaGFuZGxlS2V5Ym9hcmRFdmVudCIsImNvdW50cnlDb2RlTWFwcGluZyIsImZvY3VzIiwiY291bnRyeUxpc3QiLCJoYW5kbGVDb3VudHJ5TGlzdENoYW5nZSIsImNvdW50cnlDb2RlIiwiRXJyb3IiLCJnZW5lcmF0ZVNlYXJjaERhdGFGb3JBcGlDYWxsIiwiY29tcG9uZW50cyIsInVuc3BlY2lmaWVkIiwiY3VycmVudFNlYXJjaFRlcm0iLCJtYXhfc3VnZ2VzdGlvbnMiLCJWYWx1ZSIsImdlbmVyYXRlTG9va3VwRGF0YUZvckFwaUNhbGwiLCJzaG91bGRHZXRTdWdnZXN0aW9ucyIsInR5cGUiLCJnZXRXaGF0M1dvcmRzTG9va3VwVmFsdWUiLCJzdGFydHNXaXRoIiwic2xpY2UiLCJwcmV2ZW50RGVmYXVsdCIsImdldEtleSIsImtleXVwIiwibWFwIiwiam9pbiIsImNvdW50cnlDb2RlQW5kRGF0YXNldCIsInNwbGl0IiwiY2FuU2VhcmNoIiwiYWJvcnQiLCJ0ZXN0IiwidHJpbSIsImluZGV4T2YiLCJpc1doYXQzV29yZHMiLCJzaG93V2hhdDNXb3JkcyIsIlBpY2tsaXN0IiwidGFiQ291bnQiLCJpdGVtcyIsImhhbmRsZUNvbW1vblNob3dQaWNrbGlzdExvZ2ljIiwicmVmaW5lIiwiaXNOZWVkZWQiLCJjcmVhdGVJbnB1dCIsInN1Z2dlc3Rpb25zX3Byb21wdCIsInN1Z2dlc3Rpb25zX2tleSIsImRpc3BsYXlTdWdnZXN0aW9uc0hlYWRlciIsImxpc3RlbiIsImRpc3BsYXlVc2VBZGRyZXNzRW50ZXJlZEZvb3RlciIsInNjcm9sbEludG9WaWV3SWZOZWVkZWQiLCJ3aGF0M3dvcmRzSXRlbXMiLCJjcmVhdGVXaGF0M1dvcmRzTGlzdEl0ZW0iLCJzaG93TG9va3VwIiwibG9va3VwSXRlbXMiLCJhZGRyZXNzZXMiLCJjcmVhdGVMb29rdXBMaXN0SXRlbSIsImN1cnJlbnRJdGVtIiwicmVzZXRUYWJDb3VudCIsImNyZWF0ZUxpc3QiLCJ1c2VBZGRyZXNzRW50ZXJlZCIsInJlbW92ZSIsImhhbmRsZUVtcHR5UGlja2xpc3RDYWxsYmFjayIsInRpdGxlRGl2IiwiY29udGFpbmVyRGl2IiwibmV4dEVsZW1lbnRTaWJsaW5nIiwiaXRlbURpdiIsImNsaWNrIiwib3V0T2ZCb3VuZHNUb3AiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJ0b3AiLCJvdXRPZkJvdW5kc0JvdHRvbSIsImJvdHRvbSIsIndpbmRvdyIsImlubmVySGVpZ2h0Iiwic2Nyb2xsSW50b1ZpZXciLCJmaXJzdENoaWxkIiwiaW5wdXREYXRhIiwiYWRkcmVzc19saW5lXzEiLCJhZGRyZXNzX2xpbmVfMiIsImFkZHJlc3NfbGluZV8zIiwiZm9ybWF0TWFudWFsQWRkcmVzc0xpbmUiLCJsaW5lT2JqZWN0IiwiY2hlY2tFbnRlciIsInJvdyIsImFkZE1hdGNoaW5nRW1waGFzaXMiLCJkZXNjcmlwdGlvbiIsImVudGVyIiwiYnV0dG9uIiwiS2V5Ym9hcmRFdmVudCIsIk1vdXNlRXZlbnQiLCJzdG9wUHJvcGFnYXRpb24iLCJyZWZpbmVtZW50IiwiZ2V0QXR0cmlidXRlIiwiZmlyc3RBZGRyZXNzIiwibGFzdEFkZHJlc3MiLCJxdWVyeVNlbGVjdG9yQWxsIiwiY3VycmVudGx5SGlnaGxpZ2h0ZWQiLCJwcmV2aW91c2x5SGlnaGxpZ2h0ZWQiLCJhZGRyZXNzTGlzdENvb3JkcyIsIm9mZnNldFRvcCIsIm9mZnNldEhlaWdodCIsInNjcm9sbFRvcCIsImhpZ2hsaWdodHMiLCJtYXRjaGVkIiwicmVwbGFjZW1lbnQiLCJzdWJzdHJpbmciLCJwaWNrIiwicGlja2xpc3RJdGVtIiwibG9va3VwIiwibG9va3VwVjJSZXF1ZXN0Iiwic3RhdGUiLCJtb2RpZmllciIsIkFkZHJlc3NWYWxpZGF0aW9uIl0sInNvdXJjZVJvb3QiOiIifQ== \ No newline at end of file diff --git a/dist/lib/address-search.d.ts b/dist/lib/address-search.d.ts index e084ca2..d34724b 100644 --- a/dist/lib/address-search.d.ts +++ b/dist/lib/address-search.d.ts @@ -19,7 +19,6 @@ export default class AddressValidation { private inputs; private lastSearchTerm; private currentSearchTerm; - private shouldTriggerWhat3WordsEnrichment; private currentCountryCode; private currentDataSet; private hasSearchInputBeenReset; diff --git a/dist/lib/address-search.js b/dist/lib/address-search.js deleted file mode 100644 index 6fa42ce..0000000 --- a/dist/lib/address-search.js +++ /dev/null @@ -1,1243 +0,0 @@ -import EventFactory from './event-factory'; -import Request from './request'; -import { AddressValidationMode, defaults } from './search-options'; -import { datasetCodes } from './datasets-codes'; -import { translations } from './translations'; -import { Picklist } from './class-types'; -var AddressValidation = /** @class */ (function () { - function AddressValidation(options) { - var _this = this; - this.baseUrl = 'https://api.experianaperture.io/'; - this.searchEndpoint = 'address/search/v1'; - this.lookupEndpoint = 'address/lookup/v2'; - this.validateEndpoint = 'address/validate/v1'; - this.promptsetEndpoint = 'address/promptsets/v1'; - this.stepInEndpoint = 'address/suggestions/stepin/v1'; - this.refineEndpoint = 'address/suggestions/refine/v1'; - this.enrichmentEndpoint = 'enrichment/v2'; - this.what3WordCountries = ['GBR']; - this.what3WordsKeyword = 'what3words'; - this.poweredByLogo = { - element: null, - // Create a "Powered by Experian" footer - create: function (picklist) { - var item = { - text: "".concat(this.svg, " Powered by Experian"), - format: '' - }; - var listItem = picklist.createListItem(item); - listItem.classList.add('powered-by-experian'); - picklist.list.parentNode.appendChild(listItem); - return listItem; - }, - // Destroy the "Powered by Experian" footer - destroy: function (picklist) { - if (this.element) { - picklist.list.parentNode.removeChild(this.element); - this.element = undefined; - } - }, - svg: "\n Experian logo\n \n \n \n \n \n \n \n \n " - }; - this.result = { - formattedAddressContainer: null, - lastAddressField: null, - generateAddressLineRequired: false, - // Render a Formatted address - show: function (data) { - // Hide the inline search spinner - _this.searchSpinner.hide(); - // Hide the picklist - _this.picklist.hide(); - // Clear the previous search term - _this.lastSearchTerm = ''; - // Allow Autocomplete through as it will need to create the additional output fields for the final address. - // Otherwise, only render the final address if there are results available. - if (_this.searchType === AddressValidationMode.AUTOCOMPLETE || (data.result.address && data.result.confidence !== 'No matches')) { - // Clear search input(s) - _this.inputs.forEach(function (input) { return input.value = ''; }); - // Calculate if we needed to generate the formatted address input fields later - _this.result.calculateIfAddressLineGenerationRequired(); - // Get formatted address container element - // Only create a container if we're creating inputs. Otherwise the user will have their own container. - _this.result.formattedAddressContainer = _this.options.elements.formattedAddressContainer; - if (!_this.result.formattedAddressContainer && _this.result.generateAddressLineRequired) { - _this.result.createFormattedAddressContainer(); - } - // Loop over each formatted address component - for (var i = 0; i < Object.keys(data.result.address).length; i++) { - var key = Object.keys(data.result.address)[i]; - var addressComponent = data.result.address[key]; - // Bind the address element to the user's address field (or create a new one) - _this.result.updateAddressLine(key, addressComponent, 'address-line-input'); - } - // Hide country and address search fields (if they have a 'toggle' class) - _this.toggleSearchInputs('hide'); - // Enable users to search again subsequently - _this.hasSearchInputBeenReset = true; - // If an address line is also the main search input, set property to false. - // This ensures that typing in the field again (after an address has been - // returned) will not trigger a new search. - if (_this.searchType === AddressValidationMode.AUTOCOMPLETE) { - for (var element in _this.options.elements) { - if (Object.prototype.hasOwnProperty.call(_this.options.elements, element)) { - // Excluding the input itself, does another element match the input field? - if (element !== 'input' && _this.options.elements[element] === _this.inputs[0]) { - _this.hasSearchInputBeenReset = false; - break; - } - } - } - } - // Create the 'Search again' link and insert into DOM - _this.result.createSearchAgainLink(); - } - // Fire an event to say we've got the formatted address - _this.events.trigger('post-formatting-search', data); - }, - hide: function () { - // Delete the formatted address container - if (_this.result.formattedAddressContainer) { - _this.result.formattedAddressContainer.parentNode.removeChild(_this.result.formattedAddressContainer); - _this.result.formattedAddressContainer = undefined; - } - // Delete the search again link - if (_this.options.searchAgain.link) { - _this.options.searchAgain.link.parentNode.removeChild(_this.options.searchAgain.link); - _this.options.searchAgain.link = undefined; - } - // Remove previous value from user's result field - // Loop over their elements - for (var element in _this.options.elements) { - if (Object.prototype.hasOwnProperty.call(_this.options.elements, element)) { - // If it matches an "address" element - for (var i = 0; i < defaults.addressLineLabels.length; i++) { - var label = defaults.addressLineLabels[i]; - // Only reset the value if it's not an input field - if (label === element && _this.options.elements[element] !== _this.inputs[0]) { - _this.options.elements[element].value = ''; - break; - } - } - } - } - }, - createAddressLine: { - // Create an input to store the address line - input: function (key, value, className) { - // Create a wrapper - var div = document.createElement('div'); - div.classList.add(className); - // Create the label - var label = document.createElement('label'); - label.innerHTML = key.replace(/([A-Z])/g, ' $1') // Add space before capital Letters - .replace(/([0-9])/g, ' $1') // Add space before numbers - .replace(/^./, function (str) { return str.toUpperCase(); }); // Make first letter of word a capital letter - div.appendChild(label); - // Create the input - var input = document.createElement('input'); - input.setAttribute('type', 'text'); - input.setAttribute('name', key); - input.setAttribute('value', value); - div.appendChild(input); - return div; - }, - // Create the address line label based on the country and language - label: function (key) { - var label = key; - var language = _this.options.language.toLowerCase(); - var country = _this.currentCountryCode.toLowerCase(); - if (translations) { - try { - var translatedLabel = translations[language][country][key]; - if (translatedLabel) { - label = translatedLabel; - } - } - catch (e) { - // Translation doesn't exist for key - } - } - return label; - } - }, - // Create the formatted address container and inject after the input - createFormattedAddressContainer: function () { - var container = document.createElement('div'); - container.classList.add('formatted-address'); - // If Singleline mode is used, then append the formatted address after the last input field, otherwise use the first one - var position = _this.searchType === AddressValidationMode.SINGLELINE ? _this.inputs.length - 1 : 0; - // Insert the container after the input - _this.inputs[position].parentNode.insertBefore(container, _this.inputs[position].nextSibling); - _this.result.formattedAddressContainer = container; - }, - // Create a heading for the formatted address container - createHeading: function () { - // Create a heading for the formatted address - if (_this.options.formattedAddressContainer.showHeading) { - var heading = document.createElement(_this.options.formattedAddressContainer.headingType); - heading.innerHTML = _this.options.formattedAddressContainer.validatedHeadingText; - _this.result.formattedAddressContainer.appendChild(heading); - } - }, - // Update the heading text in the formatted address container - updateHeading: function (text) { - //Change the heading text to "Manual address entered" - if (_this.options.formattedAddressContainer.showHeading) { - var heading = _this.result.formattedAddressContainer.querySelector(_this.options.formattedAddressContainer.headingType); - heading.innerHTML = text; - } - }, - calculateIfAddressLineGenerationRequired: function () { - _this.result.generateAddressLineRequired = true; - for (var i = 0; i < defaults.addressLineLabels.length; i++) { - var key = defaults.addressLineLabels[i]; - if (_this.options.elements[key]) { - _this.result.generateAddressLineRequired = false; - break; - } - } - }, - updateAddressLine: function (key, addressLineObject, className) { - // Either append the result to the user's address field or create a new field for them - if (_this.options.elements[key]) { - var addressField = _this.options.elements[key]; - _this.result.updateLabel(key); - var value = addressLineObject; - // If a value is already present, prepend a comma and space - if (addressField.value && value) { - value = ', ' + value; - } - // Decide what property of the node we need to update. i.e. if it's not a form field, update the innerText. - if (addressField.nodeName === 'INPUT' || addressField.nodeName === 'TEXTAREA' || addressField.nodeName === 'SELECT') { - addressField.value += value; - } - else { - addressField.innerText += value; - } - // Store a record of their last address field - _this.result.lastAddressField = addressField; - } - else if (_this.result.generateAddressLineRequired) { - // Create an input to store the address line - var label = _this.result.createAddressLine.label(key); - var field = _this.result.createAddressLine.input(label, addressLineObject, className); - // Insert into DOM - _this.result.formattedAddressContainer.appendChild(field); - } - }, - // Update the label if translation is present - updateLabel: function (key) { - var label = key; - var language = _this.options.language.toLowerCase(); - var country = _this.currentCountryCode.toLowerCase(); - if (translations) { - try { - var translatedLabel = translations[language][country][key]; - if (translatedLabel) { - label = translatedLabel; - var labels = document.getElementsByTagName('label'); - for (var i = 0; i < labels.length; i++) { - if (labels[i].htmlFor === key) { - labels[i].innerHTML = translatedLabel; - } - } - } - } - catch (e) { - // Translation doesn't exist for key - } - } - return label; - }, - // Create the 'Search again' link that resets the search - createSearchAgainLink: function () { - if (_this.options.searchAgain.visible) { - var link = document.createElement('button'); - link.setAttribute('type', 'button'); - link.classList.add('search-again-button'); - link.innerText = _this.options.searchAgain.text; - // Bind event listener - link.addEventListener('click', _this.globalReset.bind(_this)); - // Store a reference to the link element - _this.options.searchAgain.link = link; - // Insert into the formatted address container - if (_this.result.formattedAddressContainer) { - _this.result.formattedAddressContainer.appendChild(link); - } - else if (_this.result.lastAddressField) { - // Insert after last address field - _this.result.lastAddressField.parentNode.insertBefore(link, _this.result.lastAddressField.nextSibling); - } - } - }, - // Write the list of hidden address line inputs to the DOM - renderInputList: function (inputArray) { - if (inputArray.length > 0) { - for (var i = 0; i < inputArray.length; i++) { - _this.result.formattedAddressContainer.appendChild(inputArray[i]); - } - } - }, - // Decide whether to either show a picklist or a verified result from a Validate response - handleValidateResponse: function (response) { - if (response.result.confidence === 'Verified match') { - // If the response contains an address, then use this directly in the result - if (response.result.address) { - _this.result.show(response); - } - else if (response.result.suggestions) { - // If the verified match still contains a suggestion, then we need to format this first - _this.format(response.result.suggestions[0].format); - } - } - else if (response.result.suggestions) { - // If the user needs to pick a suggestion, then display the picklist - _this.picklist.show(response); - } - else if (response.result.confidence === 'No matches') { - // If there are no matches, then allow "use address entered" - _this.picklist.handleEmptyPicklist(response); - } - } - }; - this.searchSpinner = { - show: function () { - var _a; - // Return if we're not displaying a spinner - if (!_this.options.useSpinner) { - return; - } - // Create the spinner container - var spinnerContainer = document.createElement('div'); - spinnerContainer.classList.add('loader'); - spinnerContainer.classList.add('loader-inline'); - // Create the spinner - var spinner = document.createElement('div'); - spinner.classList.add('spinner'); - spinnerContainer.appendChild(spinner); - // Insert the spinner after the field - (_a = _this.inputs[0].parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(spinnerContainer, _this.inputs[0].nextSibling); - }, - hide: function () { - var _a, _b; - // Return if we're not displaying a spinner - if (!_this.options.useSpinner) { - return; - } - var spinner = (_a = _this.inputs[0].parentNode) === null || _a === void 0 ? void 0 : _a.querySelector('.loader-inline'); - if (spinner) { - (_b = _this.inputs[0].parentNode) === null || _b === void 0 ? void 0 : _b.removeChild(spinner); - } - } - }; - this.options = this.mergeDefaultOptions(options); - this.events = new EventFactory(); - this.setup(); - } - AddressValidation.prototype.setToken = function (token) { - this.options.token = token; - this.setup(); - }; - AddressValidation.prototype.setSearchType = function (searchType) { - this.searchType = searchType; - this.globalReset(); - this.setInputs(); - this.events.trigger('post-search-type-change', searchType); - }; - AddressValidation.prototype.getEnrichmentData = function (globalAddressKey) { - if (globalAddressKey) { - var data = { - country_iso: this.currentCountryCode, - keys: { - global_address_key: globalAddressKey - }, - attributes: { - geocodes: ['latitude', 'longitude', 'match_level'], - what3words: this.shouldTriggerWhat3WordsEnrichment ? - ['latitude', 'longitude', 'name', 'description'] : null - } - }; - this.events.trigger('pre-enrichment'); - this.request.send(this.baseUrl + this.enrichmentEndpoint, 'POST', this.handleEnrichmentResult.bind(this), JSON.stringify(data)); - } - }; - AddressValidation.prototype.setup = function () { - var _this = this; - // Get token and proceed if it's present - if (this.token) { - this.hasSearchInputBeenReset = true; - // Instantiate a new Request class for use when making API calls - this.request = new Request(this); - // Set the country list - this.setCountryList(); - // Set the input fields for this search type - this.setInputs(); - // Setup a picklist object - this.createPicklist(); - } - else { - // Trigger a 401 Unauthorized event if a token does not exist - setTimeout(function () { return _this.events.trigger('request-error-401'); }); - } - }; - AddressValidation.prototype.handleEnrichmentResult = function (response) { - this.events.trigger('post-enrichment', response); - }; - AddressValidation.prototype.getParameter = function (name) { - name = name.replace(/[[]/, '\\[').replace(/[\]]/, '\\]'); - var regex = new RegExp('[\\?&]' + name + '=([^&#]*)'), results = regex.exec(location.search); - return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' ')); - }; - Object.defineProperty(AddressValidation.prototype, "token", { - // Try and get token from the query string if it's not already provided - get: function () { - if (!this.options.token) { - this.options.token = this.getParameter('token'); - } - return this.options.token; - }, - enumerable: false, - configurable: true - }); - AddressValidation.prototype.mergeDefaultOptions = function (customOptions) { - var instance = customOptions || {}; - instance.enabled = true; - this.searchType = instance.searchType || defaults.searchType; - instance.enableWhat3Words = instance.enableWhat3Words || defaults.enableWhat3Words; - instance.searchType = instance.searchType || defaults.searchType; - instance.language = instance.language || defaults.language; - instance.useSpinner = instance.useSpinner || defaults.useSpinner; - instance.applyFocus = (typeof instance.applyFocus !== 'undefined') ? instance.applyFocus : defaults.input.applyFocus; - instance.placeholderText = instance.placeholderText || defaults.input.placeholderText; - instance.searchAgain = instance.searchAgain || {}; - instance.searchAgain.visible = (typeof instance.searchAgain.visible !== 'undefined') ? instance.searchAgain.visible : defaults.searchAgain.visible; - instance.searchAgain.text = instance.searchAgain.text || defaults.searchAgain.text; - instance.formattedAddressContainer = instance.formattedAddressContainer || defaults.formattedAddressContainer; - instance.formattedAddressContainer.showHeading = (typeof instance.formattedAddressContainer.showHeading !== 'undefined') ? instance.formattedAddressContainer.showHeading : defaults.formattedAddressContainer.showHeading; - instance.formattedAddressContainer.headingType = instance.formattedAddressContainer.headingType || defaults.formattedAddressContainer.headingType; - instance.formattedAddressContainer.validatedHeadingText = instance.formattedAddressContainer.validatedHeadingText || defaults.formattedAddressContainer.validatedHeadingText; - instance.formattedAddressContainer.manualHeadingText = instance.formattedAddressContainer.manualHeadingText || defaults.formattedAddressContainer.manualHeadingText; - instance.useAddressEnteredText = instance.useAddressEnteredText || defaults.useAddressEnteredText; - instance.elements = instance.elements || {}; - return instance; - }; - AddressValidation.prototype.getPromptset = function () { - var _this = this; - if (this.currentCountryCode) { - // Using the country code and the search type, lookup what the relevant dataset code should be - this.currentDataSet = this.lookupDatasetCode(); - if (this.currentDataSet) { - /// Temporary measure until the promptset endpoint supports Autocomplete and Validate - if (this.searchType === AddressValidationMode.AUTOCOMPLETE) { - setTimeout(function () { return _this.handlePromptsetResult({ result: { lines: [{ example: _this.options.placeholderText, prompt: 'Address', suggested_input_length: 160 }] } }); }); - return; - } - else if (this.searchType === AddressValidationMode.VALIDATE) { - var lines_1 = [ - { prompt: 'Address line 1', suggested_input_length: 160 }, - { prompt: 'Address line 2', suggested_input_length: 160 }, - { prompt: 'Address line 3', suggested_input_length: 160 }, - { prompt: this.result.createAddressLine.label('locality'), suggested_input_length: 160 }, - { prompt: this.result.createAddressLine.label('region'), suggested_input_length: 160 }, - { prompt: this.result.createAddressLine.label('postal_code'), suggested_input_length: 160 } - ]; - setTimeout(function () { return _this.handlePromptsetResult({ result: { lines: lines_1 } }); }); - return; - } - var data = { - country_iso: this.currentCountryCode, - datasets: Array.isArray(this.currentDataSet) ? this.currentDataSet : [this.currentDataSet], - search_type: this.searchType, - prompt_set: 'optimal' - }; - this.events.trigger('pre-promptset-check'); - this.request.send(this.baseUrl + this.promptsetEndpoint, 'POST', this.handlePromptsetResult.bind(this), JSON.stringify(data)); - } - } - }; - AddressValidation.prototype.lookupDatasetCode = function () { - var _this = this; - var item = datasetCodes.find(function (dataset) { return dataset.iso3Code === _this.currentCountryCode && dataset.searchType.includes(_this.searchType); }); - if (item) { - return item.datasetCode; - } - }; - AddressValidation.prototype.handlePromptsetResult = function (response) { - // Remove any currently displayed picklist when the promptset changes - this.picklist.hide(); - // Trigger a new event to notify subscribers - this.events.trigger('post-promptset-check', response); - }; - AddressValidation.prototype.setInputs = function (inputs) { - if (inputs === void 0) { inputs = this.options.elements.inputs; } - // If address inputs exist then register these with event listeners, otherwise call the promptset endpoint to retrieve them - if (inputs) { - this.registerInputs(inputs); - } - else { - // Make an API call to get the promptset for this country/dataset/engine - this.getPromptset(); - } - if (this.searchType === AddressValidationMode.SINGLELINE || this.searchType === AddressValidationMode.VALIDATE) { - // Bind an event listener on the lookup button - if (this.options.elements.lookupButton) { - this.lookupFn = this.search.bind(this); - this.options.elements.lookupButton.addEventListener('click', this.lookupFn); - } - } - }; - AddressValidation.prototype.registerInputs = function (inputs) { - var _this = this; - // If new inputs have been provided, ensure we update the elements array to capture them - this.inputs = Array.from(inputs); - this.inputs.forEach(function (input) { - // Disable autocomplete on the form field - input.setAttribute('autocomplete', 'new-password'); - if (_this.searchType === AddressValidationMode.AUTOCOMPLETE) { - // Bind an event listener on the input - _this.keyUpFn = _this.search.bind(_this); - input.addEventListener('keyup', _this.keyUpFn); - _this.checkTabFn = _this.checkTab.bind(_this); - input.addEventListener('keydown', _this.checkTabFn); - // Set a placeholder for the input - input.setAttribute('placeholder', _this.options.placeholderText); - } - // Bind an event listener on the input to allow users to traverse up and down the picklist using the keyboard - input.addEventListener('keyup', _this.handleKeyboardEvent.bind(_this)); - }); - this.countryCodeMapping = this.options.countryCodeMapping || {}; - // Apply focus to the first input - if (this.options.applyFocus) { - this.inputs[0].focus(); - } - }; - AddressValidation.prototype.setCountryList = function () { - // Set the initial country code from either the value of a country list HTML element or a static country code - if (this.options.elements.countryList) { - this.currentCountryCode = this.options.elements.countryList.value; - // Listen for when a country is changed and call the promptset endpoint - this.options.elements.countryList.addEventListener('change', this.handleCountryListChange.bind(this)); - } - else if (this.options.countryCode) { - this.currentCountryCode = this.options.countryCode; - } - else { - throw new Error('Please provide a country code or a country list element'); - } - }; - // When a country from the list is changed, update the current country code and call the promptset endpoint again - AddressValidation.prototype.handleCountryListChange = function () { - this.currentCountryCode = this.options.elements.countryList.value; - this.getPromptset(); - }; - AddressValidation.prototype.generateSearchDataForApiCall = function () { - // If a dataset code hasn't been set yet, try and look it up - if (!this.currentDataSet) { - this.currentDataSet = this.lookupDatasetCode(); - } - var data = { - country_iso: this.currentCountryCode, - components: { unspecified: [this.currentSearchTerm] }, - datasets: Array.isArray(this.currentDataSet) ? this.currentDataSet : [this.currentDataSet], - max_suggestions: (this.options.maxSuggestions || this.picklist.maxSuggestions) - }; - if (this.searchType === AddressValidationMode.SINGLELINE || this.searchType === AddressValidationMode.VALIDATE) { - data['options'] = [ - { - name: 'flatten', - Value: 'true' - }, - { - name: 'intensity', - Value: 'close' - }, - { - name: 'prompt_set', - Value: 'default' - } - ]; - if (this.searchType === AddressValidationMode.SINGLELINE) { - data['options'].push({ - name: 'search_type', - Value: 'singleline' - }); - } - if (this.searchType === AddressValidationMode.VALIDATE) { - data['layouts'] = ['default']; - data['layout_format'] = 'default'; - } - } - if (this.options.location) { - data['location'] = this.options.location; - } - return JSON.stringify(data); - }; - AddressValidation.prototype.generateLookupDataForApiCall = function (input, shouldGetSuggestions) { - // If a dataset code hasn't been set yet, try and look it up - if (!this.currentDataSet) { - this.currentDataSet = this.lookupDatasetCode(); - } - var data = { - country_iso: this.currentCountryCode, - datasets: Array.isArray(this.currentDataSet) ? this.currentDataSet : [this.currentDataSet], - max_suggestions: (this.options.maxSuggestions || this.picklist.maxSuggestions), - key: { - type: this.what3WordsKeyword, - value: this.getWhat3WordsLookupValue(input, shouldGetSuggestions), - } - }; - return JSON.stringify(data); - }; - AddressValidation.prototype.getWhat3WordsLookupValue = function (input, shouldGetSuggestions) { - if (input.startsWith('///') && shouldGetSuggestions) { - input = input.slice(3); - } - return input; - }; - // Allow the keyboard to be used to either traverse up and down the picklist and select an item, or trigger a new search - AddressValidation.prototype.handleKeyboardEvent = function (event) { - event.preventDefault(); - // Handle keyboard navigation - var key = this.getKey(event); - // If a picklist is populated then trigger its keyup event to select an item - if (this.picklist.size) { - if (key === 'ArrowUp' || key === 'ArrowDown' || key === 'Enter') { - this.picklist.keyup(event); - return; - } - } - else { - // Otherwise, enable pressing 'enter' to trigger a new search - if (key === 'Enter') { - this.search(event); - return; - } - } - }; - // Main function to search for an address from an input string - AddressValidation.prototype.search = function (event) { - event.preventDefault(); - this.currentSearchTerm = this.inputs.map(function (input) { return input.value; }).join(','); - // Grab the country ISO code and (if it is present) the dataset name from the current value of the countryList (format: {countryIsoCode};{dataset}) - var currentCountryInfo = this.countryCodeMapping[this.currentCountryCode] || this.currentCountryCode; - var countryCodeAndDataset = currentCountryInfo.split(';'); - this.currentCountryCode = countryCodeAndDataset[0]; - if (countryCodeAndDataset[1]) { - this.currentDataSet = countryCodeAndDataset[1]; - } - // (Re-)set the property stating whether the search input has been reset. - // This is needed for instances when the search input is also an address - // output field. After an address has been returned, you don't want a new - // search being triggered until the field has been cleared. - if (this.currentSearchTerm === '') { - this.hasSearchInputBeenReset = true; - } - // Check if searching is permitted - if (this.canSearch()) { - // Abort any outstanding requests - if (this.request.currentRequest) { - this.request.currentRequest.abort(); - } - // Regex that checks if the input is the format for a what3words search. Ex: ///a.b.c - var regex = /^\/{0,}(?:[^0-9`~!@#$%^&*()+\-_=[{\]}\\|'<,.>?/";:£§º©®\s]+[.。。・・︒។։။۔።।][^0-9`~!@#$%^&*()+\-_=[{\]}\\|'<,.>?/";:£§º©®\s]+[.。。・・︒។։။۔።।][^0-9`~!@#$%^&*()+\-_=[{\]}\\|'<,.>?/";:£§º©®\s]+|[^0-9`~!@#$%^&*()+\-_=[{\]}\\|'<,.>?/";:£§º©®\s]+([\u0020\u00A0][^0-9`~!@#$%^&*()+\-_=[{\]}\\|'<,.>?/";:£§º©®\s]+){1,3}[.。。・・︒។։။۔።।][^0-9`~!@#$%^&*()+\-_=[{\]}\\|'<,.>?/";:£§º©®\s]+([\u0020\u00A0][^0-9`~!@#$%^&*()+\-_=[{\]}\\|'<,.>?/";:£§º©®\s]+){1,3}[.。。・・︒។։။۔።।][^0-9`~!@#$%^&*()+\-_=[{\]}\\|'<,.>?/";:£§º©®\s]+([\u0020\u00A0][^0-9`~!@#$%^&*()+\-_=[{\]}\\|'<,.>?/";:£§º©®\s]+){1,3})$/; - if (regex.test(this.currentSearchTerm.trim()) && this.options.enableWhat3Words && this.what3WordCountries.indexOf(this.currentCountryCode) > -1) { - this.isWhat3Words = true; - this.currentSearchTerm = this.currentSearchTerm.trim(); - } - else { - this.isWhat3Words = false; - this.shouldTriggerWhat3WordsEnrichment = false; - } - // Fire an event before a search takes place - this.events.trigger('pre-search', this.currentSearchTerm); - // Construct the new Search URL and data - var data = this.isWhat3Words ? this.generateLookupDataForApiCall(this.currentSearchTerm, true) : this.generateSearchDataForApiCall(); - // Store the last search term - this.lastSearchTerm = this.currentSearchTerm; - // Hide the inline search spinner - this.searchSpinner.hide(); - // Show an inline spinner whilst searching - this.searchSpinner.show(); - var url = void 0, headers = void 0, callback = void 0; - // Set the API URL, headers and callback function depending on the search type - if (this.isWhat3Words) { - url = this.baseUrl + this.lookupEndpoint; - headers = []; - callback = this.picklist.showWhat3Words; - } - else { - url = this.baseUrl + (this.searchType === AddressValidationMode.VALIDATE ? this.validateEndpoint : this.searchEndpoint); - headers = this.searchType === AddressValidationMode.VALIDATE ? [{ key: 'Add-Metadata', value: true }] : []; - callback = this.searchType === AddressValidationMode.VALIDATE ? this.result.handleValidateResponse : this.picklist.show; - } - // Initiate new Search request - this.request.send(url, 'POST', callback, data, headers); - } - else if (this.lastSearchTerm !== this.currentSearchTerm) { - // Clear the picklist if the search term is cleared/empty - this.picklist.hide(); - } - }; - // Helper method to return a consistent key name - AddressValidation.prototype.getKey = function (_a) { - var key = _a.key; - switch (key) { - case 'Down': - case 'ArrowDown': - return 'ArrowDown'; - case 'Up': - case 'ArrowUp': - return 'ArrowUp'; - case 'Spacebar': - case ' ': - return ' '; - case 'Escape': - case 'Esc': - return 'Escape'; - default: - return key; - } - }; - AddressValidation.prototype.canSearch = function () { - // If searching on this instance is enabled, and - return (this.options.enabled && - // If search term is not empty, and - this.currentSearchTerm !== '' && - // If the search term is at least 4 characters - this.currentSearchTerm.length > 3 && - // If search term is not the same as previous search term, and - this.lastSearchTerm !== this.currentSearchTerm && - // If the country is not empty, and - this.currentCountryCode && - // If search input has been reset (if applicable) - this.hasSearchInputBeenReset === true); - }; - AddressValidation.prototype.createPicklist = function () { - var _this = this; - // Instantiate a new Picklist class and set the properties below - this.picklist = new Picklist(); - // Set initial max size - this.picklist.maxSuggestions = 25; - // Tab count used for keyboard navigation - this.picklist.tabCount = -1; - // Render a picklist of search results - this.picklist.show = function (items) { - var _a; - // Store the picklist items - _this.picklist.items = items === null || items === void 0 ? void 0 : items.result.suggestions; - _this.picklist.handleCommonShowPicklistLogic(); - if (((_a = _this.picklist.items) === null || _a === void 0 ? void 0 : _a.length) > 0) { - // If a picklist needs "refining" then prepend a textbox to allow the user to enter their selection - if (_this.picklist.refine.isNeeded(items)) { - _this.picklist.refine.createInput(items.result.suggestions_prompt, items.result.suggestions_key); - } - if (_this.searchType === AddressValidationMode.VALIDATE) { - _this.picklist.displaySuggestionsHeader(); - } - // Iterate over and show results - _this.picklist.items.forEach(function (item) { - // Create a new item/row in the picklist - var listItem = _this.picklist.createListItem(item); - _this.picklist.list.appendChild(listItem); - // Listen for selection on this item - _this.picklist.listen(listItem); - }); - if (_this.searchType === AddressValidationMode.VALIDATE) { - _this.picklist.displayUseAddressEnteredFooter(); - } - _this.picklist.scrollIntoViewIfNeeded(); - } - else { - _this.picklist.handleEmptyPicklist(items); - } - // Add a "Powered by Experian" logo to the picklist footer - _this.poweredByLogo.element = _this.poweredByLogo.element || _this.poweredByLogo.create(_this.picklist); - // Fire an event after picklist is created - _this.events.trigger('post-picklist-create', _this.picklist.items); - }; - this.picklist.showWhat3Words = function (items) { - var _a; - // Store the picklist items - _this.picklist.what3wordsItems = items === null || items === void 0 ? void 0 : items.result.suggestions; - _this.picklist.handleCommonShowPicklistLogic(); - if (((_a = _this.picklist.what3wordsItems) === null || _a === void 0 ? void 0 : _a.length) > 0) { - // Iterate over and show results - _this.picklist.what3wordsItems.forEach(function (item) { - // Create a new item/row in the picklist - var listItem = _this.picklist.createWhat3WordsListItem(item); - _this.picklist.list.appendChild(listItem); - // Listen for selection on this item - _this.picklist.listen(listItem); - }); - _this.picklist.scrollIntoViewIfNeeded(); - } - else { - _this.picklist.handleEmptyPicklist(items); - } - // Add a "Powered by Experian" logo to the picklist footer - _this.poweredByLogo.element = _this.poweredByLogo.element || _this.poweredByLogo.create(_this.picklist); - // Fire an event after picklist is created - _this.events.trigger('post-picklist-create', _this.picklist.items); - }; - this.picklist.showLookup = function (items) { - var _a; - // Set isWhat3Words to "false" as we are no longer showing what3words addresses - _this.isWhat3Words = false; - // Store the picklist items - _this.picklist.lookupItems = items === null || items === void 0 ? void 0 : items.result.addresses; - _this.picklist.handleCommonShowPicklistLogic(); - if (((_a = _this.picklist.lookupItems) === null || _a === void 0 ? void 0 : _a.length) > 0) { - // Iterate over and show results - _this.picklist.lookupItems.forEach(function (item) { - // Create a new item/row in the picklist - var listItem = _this.picklist.createLookupListItem(item); - _this.picklist.list.appendChild(listItem); - // Listen for selection on this item - _this.picklist.listen(listItem); - }); - _this.picklist.scrollIntoViewIfNeeded(); - } - else { - _this.picklist.handleEmptyPicklist(items); - } - // Add a "Powered by Experian" logo to the picklist footer - _this.poweredByLogo.element = _this.poweredByLogo.element || _this.poweredByLogo.create(_this.picklist); - // Fire an event after picklist is created - _this.events.trigger('post-picklist-create', _this.picklist.items); - }; - this.picklist.handleCommonShowPicklistLogic = function () { - var _a; - // Reset any previously selected current item - _this.picklist.currentItem = null; - // Update picklist size - _this.picklist.size = (_a = _this.picklist.items) === null || _a === void 0 ? void 0 : _a.length; - // Reset the picklist tab count (used for keyboard navigation) - _this.picklist.resetTabCount(); - // Hide the inline search spinner - _this.searchSpinner.hide(); - // Get/Create picklist container element - _this.picklist.list = _this.picklist.list || _this.picklist.createList(); - // Ensure previous results are cleared - _this.picklist.list.innerHTML = ''; - _this.picklist.useAddressEntered.destroy(); - // Fire an event before picklist is created - _this.events.trigger('pre-picklist-create', _this.picklist.items); - }; - // Remove the picklist - this.picklist.hide = function () { - // Clear the current picklist item - _this.picklist.currentItem = null; - // Remove the "use address entered" option too - _this.picklist.useAddressEntered.destroy(); - // Remove the "Powered by Experian" logo - _this.poweredByLogo.destroy(_this.picklist); - if (_this.inputs) { - // Remove the class denoting a picklist - if Singleline mode is used, then it is the last input field, otherwise use the first one - var position = _this.searchType === AddressValidationMode.SINGLELINE ? _this.inputs.length - 1 : 0; - _this.inputs[position].classList.remove('showing-suggestions'); - } - // Remove the main picklist container - if (_this.picklist.list) { - _this.picklist.container.remove(); - _this.picklist.list = undefined; - } - }; - this.picklist.handleEmptyPicklist = function (items) { - var _a; - // Create a new item/row in the picklist showing "No matches" that allows the "use address entered" option - _this.picklist.useAddressEntered.element = _this.picklist.useAddressEntered.element || _this.picklist.useAddressEntered.create((_a = items.result) === null || _a === void 0 ? void 0 : _a.confidence); - _this.picklist.scrollIntoViewIfNeeded(); - // Provide implementing search types with a means of invoking a custom callback - if (typeof _this.picklist.handleEmptyPicklistCallback === 'function') { - _this.picklist.handleEmptyPicklistCallback(); - } - }; - // Prepend a title before the suggestions - this.picklist.displaySuggestionsHeader = function () { - var titleDiv = (document.querySelector('.picklist-suggestions-header') || document.createElement('div')); - titleDiv.classList.add('picklist-suggestions-header'); - titleDiv.innerText = 'Suggestions:'; - _this.picklist.list.parentNode.insertBefore(titleDiv, _this.picklist.list); - }; - // Append a footer at the bottom of the picklist providing an option to "use address entered" - this.picklist.displayUseAddressEnteredFooter = function () { - var containerDiv = document.querySelector('.picklist-use-entered-container') || document.createElement('div'); - containerDiv.classList.add('picklist-use-entered-container'); - _this.picklist.list.parentNode.insertBefore(containerDiv, _this.picklist.list.nextElementSibling); - var titleDiv = (document.querySelector('.picklist-use-entered-header') || document.createElement('div')); - titleDiv.classList.add('picklist-use-entered-header'); - titleDiv.innerText = 'Or use address entered:'; - containerDiv.appendChild(titleDiv); - var itemDiv = (document.querySelector('.picklist-use-entered-option') || document.createElement('div')); - itemDiv.classList.add('picklist-use-entered-option'); - itemDiv.innerText = _this.currentSearchTerm.replace(/,+/g, ', '); - itemDiv.addEventListener('click', _this.picklist.useAddressEntered.click); - containerDiv.appendChild(itemDiv); - }; - // If the picklist container is out of bounds to the top or bottom, then scroll it into view - this.picklist.scrollIntoViewIfNeeded = function () { - var outOfBoundsTop = _this.picklist.container.getBoundingClientRect().top < 0; - var outOfBoundsBottom = _this.picklist.container.getBoundingClientRect().bottom > window.innerHeight; - if (outOfBoundsTop || outOfBoundsBottom) { - _this.picklist.container.scrollIntoView(); - } - }; - this.picklist.useAddressEntered = { - element: null, - // Create a "use address entered" option - create: function (confidence) { - var item = { - text: "".concat(confidence, " ").concat(_this.options.useAddressEnteredText) - }; - var listItem = _this.picklist.createListItem(item); - listItem.classList.add('use-address-entered'); - listItem.setAttribute('title', 'Enter address manually'); - _this.picklist.list = _this.picklist.list || _this.picklist.createList(); - _this.picklist.list.parentNode.insertBefore(listItem, _this.picklist.container.firstChild); - listItem.addEventListener('click', _this.picklist.useAddressEntered.click); - return listItem; - }, - // Destroy the "use address entered" option - destroy: function () { - if (_this.picklist.useAddressEntered.element) { - _this.picklist.list.parentNode.removeChild(_this.picklist.useAddressEntered.element); - _this.picklist.useAddressEntered.element = undefined; - } - }, - // Use the address entered as the Formatted address - click: function () { - var inputData = { - result: { - confidence: 'No matches', - address: { - address_line_1: '', - address_line_2: '', - address_line_3: '', - locality: '', - region: '', - postal_code: '', - country: '' - } - } - }; - if (_this.currentSearchTerm) { - // Try and split into lines by using comma delimiter - var lines = _this.currentSearchTerm.split(','); - if (lines[0]) { - inputData.result.address.address_line_1 = lines[0]; - } - if (lines[1]) { - inputData.result.address.address_line_2 = lines[1]; - } - if (lines[2]) { - inputData.result.address.address_line_3 = lines[2]; - } - for (var i = 3; i < lines.length; i++) { - inputData.result.address.address_line_3 += lines[i]; - } - } - _this.result.show(inputData); - _this.result.updateHeading(_this.options.formattedAddressContainer.manualHeadingText); - }, - // Create and return an address line object with the key as the label - formatManualAddressLine: function (lines, i) { - var key = defaults.addressLineLabels[i]; - var lineObject = {}; - lineObject[key] = lines[i] || ''; - return lineObject; - } - }; - // Create the picklist list (and container) and inject after the input - this.picklist.createList = function () { - // If Singleline mode is used, then append the picklist after the last input field, otherwise use the first one - var position = _this.searchType === AddressValidationMode.SINGLELINE ? _this.inputs.length - 1 : 0; - var container = document.createElement('div'); - container.classList.add('address-picklist-container'); - _this.picklist.container = container; - // Insert the picklist container after the input - _this.inputs[position].parentNode.insertBefore(_this.picklist.container, _this.inputs[position].nextElementSibling); - var list = document.createElement('div'); - list.classList.add('address-picklist'); - // Append the picklist to the inner wrapper - _this.picklist.container.appendChild(list); - // Add a class to the input to denote that a picklist with suggestions is being shown - _this.inputs[position].classList.add('showing-suggestions'); - list.addEventListener('keydown', _this.picklist.checkEnter); - return list; - }; - // Create a new picklist item/row - this.picklist.createListItem = function (item) { - var row = document.createElement('div'); - row.innerHTML = _this.picklist.addMatchingEmphasis(item); - // Store the Format URL if it exists, otherwise use the global_address_key as a "refinement" property - if (item.format) { - row.setAttribute('format', item.format); - } - else if (item.global_address_key) { - row.setAttribute('refine', item.global_address_key); - } - return row; - }; - // Create a new picklist item/row for what3words - this.picklist.createWhat3WordsListItem = function (item) { - var row = document.createElement('div'); - var name = document.createElement('div'); - var description = document.createElement('div'); - row.className = _this.what3WordsKeyword; - name.className = 'what3Words-name'; - description.className = 'what3Words-description'; - name.innerHTML = '///' + item.what3words.name; - description.innerHTML = item.what3words.description; - row.appendChild(name); - row.appendChild(description); - return row; - }; - // Create a new picklist item/row for lookup items - this.picklist.createLookupListItem = function (item) { - var row = document.createElement('div'); - row.innerHTML = item.text; - // Store the Format URL if it exists, otherwise use the global_address_key as a "refinement" property - if (item.format) { - row.setAttribute('format', item.format); - } - else if (item.global_address_key) { - row.setAttribute('refine', item.global_address_key); - } - return row; - }; - this.picklist.refine = { - element: null, - // Returns whether the picklist needs refining. This happens after an item has been "stepped into" but has an unresolvable range. - // The user is prompted to enter their selection (e.g. building number). - isNeeded: function (response) { - return _this.searchType !== AddressValidationMode.AUTOCOMPLETE && (response.result.confidence === 'Premises partial' || response.result.confidence === 'Street partial' || response.result.confidence === 'Multiple matches'); - }, - createInput: function (prompt, key) { - var row = document.querySelector('.picklist-refinement-box') || document.createElement('div'); - row.classList.add('picklist-refinement-box'); - var input = (document.querySelector('.picklist-refinement-box input') || document.createElement('input')); - input.setAttribute('type', 'text'); - input.setAttribute('placeholder', prompt); - input.setAttribute('key', key); - input.setAttribute('autocomplete', 'new-password'); - input.addEventListener('keydown', _this.picklist.refine.enter.bind(_this)); - _this.picklist.refine.element = input; - var button = (document.querySelector('.picklist-refinement-box button') || document.createElement('button')); - button.innerText = 'Refine'; - button.addEventListener('click', _this.picklist.refine.enter); - row.appendChild(input); - row.appendChild(button); - _this.picklist.list.parentNode.insertBefore(row, _this.picklist.list); - input.focus(); - }, - enter: function (event) { - // Allow a new refinement entry if the enter key was used inside the textbox or the button was clicked - if ((event instanceof KeyboardEvent && event.key === 'Enter') || event instanceof MouseEvent) { - event.preventDefault(); - // If a picklist item is currently selected, then potentially use this instead of what's in the input field - if (_this.picklist.currentItem) { - _this.picklist.checkEnter(event); - return; - } - event.stopPropagation(); - // Take the value from the input field and use this to further refine the address - if (_this.picklist.refine.element.value) { - var data = JSON.stringify({ refinement: _this.picklist.refine.element.value }); - var key = _this.picklist.refine.element.getAttribute('key'); - _this.request.send("".concat(_this.baseUrl).concat(_this.refineEndpoint, "/").concat(key), 'POST', _this.result.handleValidateResponse, data); - } - } - else if (_this.picklist.size && event instanceof KeyboardEvent && (event.key === 'ArrowUp' || event.key === 'ArrowDown' || event.key === 'Enter')) { - _this.picklist.keyup(event); - } - } - }; - this.picklist.resetTabCount = function () { - _this.picklist.tabCount = -1; - }; - // Keyboard navigation - this.picklist.keyup = function (event) { - if (!_this.picklist.list) { - return; - } - _this.picklist.checkEnter(event); - // Get a list of all the addresses in the picklist - var addresses = _this.picklist.list.querySelectorAll('div'); - var firstAddress; - var lastAddress; - // If the picklist is empty, just return - if (addresses.length === 0) { - return; - } - // Set the tabCount based on previous and direction - if (event.key === 'ArrowUp') { - _this.picklist.tabCount--; - } - else if (event.key === 'ArrowDown') { - _this.picklist.tabCount++; - } - // Set top and bottom positions and enable wrap-around - if (_this.picklist.tabCount < 0) { - _this.picklist.tabCount = addresses.length - 1; - lastAddress = true; - } - if (_this.picklist.tabCount > addresses.length - 1) { - _this.picklist.tabCount = 0; - firstAddress = true; - } - // Highlight the selected address - var currentlyHighlighted = addresses[_this.picklist.tabCount]; - // Remove any previously highlighted ones - var previouslyHighlighted = _this.picklist.list.querySelector('.selected'); - if (previouslyHighlighted) { - previouslyHighlighted.classList.remove('selected'); - } - currentlyHighlighted.classList.add('selected'); - // Set the currentItem on the picklist to the currently highlighted address - _this.picklist.currentItem = currentlyHighlighted; - // Scroll address into view, if required - var addressListCoords = { - top: _this.picklist.list.offsetTop, - bottom: _this.picklist.list.offsetTop + _this.picklist.list.offsetHeight, - scrollTop: _this.picklist.list.scrollTop, - selectedTop: currentlyHighlighted.offsetTop, - selectedBottom: currentlyHighlighted.offsetTop + currentlyHighlighted.offsetHeight, - scrollAmount: currentlyHighlighted.offsetHeight - }; - if (firstAddress) { - _this.picklist.list.scrollTop = 0; - } - else if (lastAddress) { - _this.picklist.list.scrollTop = 999; - } - else if (addressListCoords.selectedBottom + addressListCoords.scrollAmount > addressListCoords.bottom) { - _this.picklist.list.scrollTop = addressListCoords.scrollTop + addressListCoords.scrollAmount; - } - else if (addressListCoords.selectedTop - addressListCoords.scrollAmount - addressListCoords.top < addressListCoords.scrollTop) { - _this.picklist.list.scrollTop = addressListCoords.scrollTop - addressListCoords.scrollAmount; - } - }; - // Add emphasis to the picklist items highlighting the match - this.picklist.addMatchingEmphasis = function (item) { - var highlights = item.matched || []; - var label = item.text; - for (var i = 0; i < highlights.length; i++) { - var replacement = '' + label.substring(highlights[i][0], highlights[i][1]) + ''; - label = label.substring(0, highlights[i][0]) + replacement + label.substring(highlights[i][1]); - } - return label; - }; - // Listen to a picklist selection - this.picklist.listen = function (row) { - row.addEventListener('click', _this.picklist.pick.bind(null, row)); - }; - this.picklist.checkEnter = function (event) { - if (event.key === 'Enter' || event.key === 'Tab') { - var picklistItem = void 0; - // If picklist contains 1 address then use this one to format - if (_this.picklist.size === 1) { - picklistItem = _this.picklist.list.querySelectorAll('div')[0]; - } // Else use the currently highlighted one when navigation using keyboard - else if (_this.picklist.currentItem) { - picklistItem = _this.picklist.currentItem; - } - if (picklistItem) { - _this.picklist.pick(picklistItem); - } - } - }; - // How to handle a picklist selection - this.picklist.pick = function (item) { - // Fire an event when an address is picked - _this.events.trigger('post-picklist-selection', item); - var elements = item.getElementsByTagName('div'); - if (_this.isWhat3Words) { - _this.lookup(elements[0].innerHTML); - } - else { - // Get a final address using picklist item unless it needs refinement - if (item.getAttribute('format')) { - _this.format(item.getAttribute('format')); - } - else { - _this.refine(item.getAttribute('refine')); - } - } - }; - }; - AddressValidation.prototype.format = function (url) { - // Trigger an event - this.events.trigger('pre-formatting-search', url); - // Hide the searching spinner - this.searchSpinner.hide(); - // Initiate a new Format request - this.request.send(url, 'GET', this.result.show, undefined, [{ key: 'Add-Metadata', value: true } /*, {key: 'Add-Components', value: true}*/]); - }; - AddressValidation.prototype.refine = function (key) { - // Trigger an event - this.events.trigger('pre-refinement', key); - // Hide the searching spinner - this.searchSpinner.hide(); - // Initiate a new Step-in request using the global address key - this.request.send("".concat(this.baseUrl).concat(this.stepInEndpoint, "/").concat(key), 'GET', this.picklist.show); - }; - AddressValidation.prototype.lookup = function (key) { - // Trigger an event - this.events.trigger('pre-lookup', key); - // Hide the searching spinner - this.searchSpinner.hide(); - //Get the lookup requet - var lookupV2Request = this.generateLookupDataForApiCall(key, false); - var url = this.baseUrl + this.lookupEndpoint; - var headers = [{ key: 'Add-Addresses', value: true }]; - var callback = this.picklist.showLookup; - //Set the shouldTriggerWhat3WordsEnrichment so that we can trigger it after the user chooses an address. - this.shouldTriggerWhat3WordsEnrichment = true; - // Initiate new Search request - this.request.send(url, 'POST', callback, lookupV2Request, headers); - }; - AddressValidation.prototype.checkTab = function (event) { - var key = this.getKey(event); - if (key === 'Tab') { - this.picklist.keyup(event); - return; - } - else if (key === 'Enter') { - // Prevent an 'Enter' keypress on the input submitting the form - event.preventDefault(); - } - }; - // Toggle the "hidden" class to either show or hide the input and country field(s) - AddressValidation.prototype.toggleSearchInputs = function (state) { - var _a, _b, _c; - var modifier = state === 'show' ? 'remove' : 'add'; - (_a = this.options.elements.inputs) === null || _a === void 0 ? void 0 : _a.forEach(function (input) { return input.parentNode.querySelectorAll('.toggle').forEach(function (element) { return element.classList[modifier]('hidden'); }); }); - (_b = this.options.elements.countryList) === null || _b === void 0 ? void 0 : _b.parentNode.querySelectorAll('.toggle').forEach(function (element) { return element.classList[modifier]('hidden'); }); - (_c = this.options.elements.lookupButton) === null || _c === void 0 ? void 0 : _c.parentNode.querySelectorAll('.toggle').forEach(function (element) { return element.classList[modifier]('hidden'); }); - }; - AddressValidation.prototype.globalReset = function (event) { - if (event) { - event.preventDefault(); - } - // Enable searching - this.options.enabled = true; - // Hide formatted address - this.result.hide(); - // Reset search input back - this.hasSearchInputBeenReset = true; - // Clear the input field(s) - this.inputs.forEach(function (input) { return input.value = ''; }); - // Remove the picklist (if present) - this.picklist.hide(); - // Show search input - this.toggleSearchInputs('show'); - // Apply focus to input - this.inputs[0].focus(); - // Fire an event after a reset - this.events.trigger('post-reset'); - }; - return AddressValidation; -}()); -export default AddressValidation; -//# sourceMappingURL=address-search.js.map \ No newline at end of file diff --git a/dist/lib/address-search.js.map b/dist/lib/address-search.js.map deleted file mode 100644 index 144c592..0000000 --- a/dist/lib/address-search.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"address-search.js","sourceRoot":"","sources":["../../src/ts/address-search.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/lib/class-types.js b/dist/lib/class-types.js deleted file mode 100644 index b400e9a..0000000 --- a/dist/lib/class-types.js +++ /dev/null @@ -1,44 +0,0 @@ -var Picklist = /** @class */ (function () { - function Picklist() { - this.size = 0; - this.maxSuggestions = 25; - } - return Picklist; -}()); -export { Picklist }; -var AddressValidationResult = /** @class */ (function () { - function AddressValidationResult() { - } - return AddressValidationResult; -}()); -export { AddressValidationResult }; -var CreateAddressLine = /** @class */ (function () { - function CreateAddressLine() { - } - return CreateAddressLine; -}()); -var UseAddressEntered = /** @class */ (function () { - function UseAddressEntered() { - } - return UseAddressEntered; -}()); -export { UseAddressEntered }; -var Refinement = /** @class */ (function () { - function Refinement() { - } - return Refinement; -}()); -export { Refinement }; -var SearchSpinner = /** @class */ (function () { - function SearchSpinner() { - } - return SearchSpinner; -}()); -export { SearchSpinner }; -var PoweredByLogo = /** @class */ (function () { - function PoweredByLogo() { - } - return PoweredByLogo; -}()); -export { PoweredByLogo }; -//# sourceMappingURL=class-types.js.map \ No newline at end of file diff --git a/dist/lib/class-types.js.map b/dist/lib/class-types.js.map deleted file mode 100644 index 5f65148..0000000 --- a/dist/lib/class-types.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"class-types.js","sourceRoot":"","sources":["../../src/ts/class-types.ts"],"names":[],"mappings":"AAAA;IAAA;QAOE,SAAI,GAAG,CAAC,CAAC;QACT,mBAAc,GAAG,EAAE,CAAC;IAwBtB,CAAC;IAAD,eAAC;AAAD,CAAC,AAhCD,IAgCC;;AAED;IAAA;IAgBA,CAAC;IAAD,8BAAC;AAAD,CAAC,AAhBD,IAgBC;;AAED;IAAA;IAGA,CAAC;IAAD,wBAAC;AAAD,CAAC,AAHD,IAGC;AAmDD;IAAA;IAMA,CAAC;IAAD,wBAAC;AAAD,CAAC,AAND,IAMC;;AAED;IAAA;IAKA,CAAC;IAAD,iBAAC;AAAD,CAAC,AALD,IAKC;;AAED;IAAA;IAGA,CAAC;IAAD,oBAAC;AAAD,CAAC,AAHD,IAGC;;AAED;IAAA;IAKA,CAAC;IAAD,oBAAC;AAAD,CAAC,AALD,IAKC"} \ No newline at end of file diff --git a/dist/lib/datasets-codes.js b/dist/lib/datasets-codes.js deleted file mode 100644 index b021660..0000000 --- a/dist/lib/datasets-codes.js +++ /dev/null @@ -1,462 +0,0 @@ -export var datasetCodes = [ - { country: 'Afghanistan', iso3Code: 'AFG', iso2Code: 'AF', datasetCode: 'af-address-ed', searchType: 'singleline, validate' }, - { country: 'Afghanistan', iso3Code: 'AFG', iso2Code: 'AF', datasetCode: 'af-address-eh', searchType: 'autocomplete' }, - { country: 'Albania', iso3Code: 'ALB', iso2Code: 'AL', datasetCode: 'al-address-ed', searchType: 'singleline, validate' }, - { country: 'Albania', iso3Code: 'ALB', iso2Code: 'AL', datasetCode: 'al-address-eh', searchType: 'autocomplete' }, - { country: 'Algeria', iso3Code: 'DZA', iso2Code: 'DZ', datasetCode: 'dz-address-ed', searchType: 'singleline, validate' }, - { country: 'Algeria', iso3Code: 'DZA', iso2Code: 'DZ', datasetCode: 'dz-address-eh', searchType: 'autocomplete' }, - { country: 'American Samoa', iso3Code: 'ASM', iso2Code: 'AS', datasetCode: 'as-address-eh', searchType: 'autocomplete' }, - { country: 'Andorra', iso3Code: 'AND', iso2Code: 'AD', datasetCode: 'ad-address-ed', searchType: 'singleline, validate' }, - { country: 'Andorra', iso3Code: 'AND', iso2Code: 'AD', datasetCode: 'ad-address-eh', searchType: 'autocomplete' }, - { country: 'Angola', iso3Code: 'AGO', iso2Code: 'AO', datasetCode: 'ao-address-ed', searchType: 'singleline, validate' }, - { country: 'Angola', iso3Code: 'AGO', iso2Code: 'AO', datasetCode: 'ao-address-eh', searchType: 'autocomplete' }, - { country: 'Anguilla', iso3Code: 'AIA', iso2Code: 'AI', datasetCode: 'ai-address-eh', searchType: 'autocomplete' }, - { country: 'Antarctica', iso3Code: 'ATA', iso2Code: 'AQ', datasetCode: 'aq-address-ed', searchType: 'singleline, validate' }, - { country: 'Antigua and Barbuda', iso3Code: 'ATG', iso2Code: 'AG', datasetCode: 'ag-address-ed', searchType: 'singleline, validate' }, - { country: 'Antigua and Barbuda', iso3Code: 'ATG', iso2Code: 'AG', datasetCode: 'ag-address-eh', searchType: 'autocomplete' }, - { country: 'Argentina', iso3Code: 'ARG', iso2Code: 'AR', datasetCode: 'ar-address-ed', searchType: 'singleline, validate' }, - { country: 'Argentina', iso3Code: 'ARG', iso2Code: 'AR', datasetCode: 'ar-address-eh', searchType: 'autocomplete' }, - { country: 'Armenia', iso3Code: 'ARM', iso2Code: 'AM', datasetCode: 'am-address-ed', searchType: 'singleline, validate' }, - { country: 'Armenia', iso3Code: 'ARM', iso2Code: 'AM', datasetCode: 'am-address-eh', searchType: 'autocomplete' }, - { country: 'Aruba', iso3Code: 'ABW', iso2Code: 'AW', datasetCode: 'aw-address-ed', searchType: 'singleline, validate' }, - { country: 'Aruba', iso3Code: 'ABW', iso2Code: 'AW', datasetCode: 'aw-address-eh', searchType: 'autocomplete' }, - { country: 'Australia DataFusion', iso3Code: 'AUS', iso2Code: 'AU', datasetCode: 'au-address-datafusion', searchType: 'autocomplete, singleline, typedown' }, - { country: 'Australia Geocoded National Address', iso3Code: 'AUS', iso2Code: 'AU', datasetCode: 'au-address-gnaf', searchType: 'autocomplete, singleline, typedown, validate' }, - { country: 'Australia Postal Address', iso3Code: 'AUS', iso2Code: 'AU', datasetCode: 'au-address', searchType: 'autocomplete, singleline, typedown, validate' }, - { country: 'Austria', iso3Code: 'AUT', iso2Code: 'AT', datasetCode: 'at-address-eh', searchType: 'autocomplete' }, - { country: 'Austria', iso3Code: 'AUT', iso2Code: 'AT', datasetCode: 'az-address-ed', searchType: 'singleline, validate' }, - { country: 'Azerbaijan', iso3Code: 'AZE', iso2Code: 'AZ', datasetCode: 'az-address-ed', searchType: 'singleline, validate' }, - { country: 'Azerbaijan', iso3Code: 'AZE', iso2Code: 'AZ', datasetCode: 'az-address-eh', searchType: 'autocomplete' }, - { country: 'Bahamas', iso3Code: 'BHS', iso2Code: 'BS', datasetCode: 'bs-address-ed', searchType: 'singleline, validate' }, - { country: 'Bahamas', iso3Code: 'BHS', iso2Code: 'BS', datasetCode: 'bs-address-eh', searchType: 'autocomplete' }, - { country: 'Bahrain', iso3Code: 'BHR', iso2Code: 'BH', datasetCode: 'bh-address-ed', searchType: 'singleline, validate' }, - { country: 'Bahrain', iso3Code: 'BHR', iso2Code: 'BH', datasetCode: 'bh-address-eh', searchType: 'autocomplete' }, - { country: 'Bangladesh', iso3Code: 'BGD', iso2Code: 'BD', datasetCode: 'bd-address-ed', searchType: 'singleline, validate' }, - { country: 'Bangladesh', iso3Code: 'BGD', iso2Code: 'BD', datasetCode: 'bd-address-eh', searchType: 'autocomplete' }, - { country: 'Barbados', iso3Code: 'BRB', iso2Code: 'BB', datasetCode: 'bb-address-ed', searchType: 'singleline, validate' }, - { country: 'Barbados', iso3Code: 'BRB', iso2Code: 'BB', datasetCode: 'bb-address-eh', searchType: 'autocomplete' }, - { country: 'Belarus', iso3Code: 'BLR', iso2Code: 'BY', datasetCode: 'by-address-ed', searchType: 'singleline, validate' }, - { country: 'Belarus', iso3Code: 'BLR', iso2Code: 'BY', datasetCode: 'by-address-eh', searchType: 'autocomplete' }, - { country: 'Belgium', iso3Code: 'BEL', iso2Code: 'BE', datasetCode: 'be-address', searchType: 'singleline, typedown' }, - { country: 'Belgium', iso3Code: 'BEL', iso2Code: 'BE', datasetCode: 'be-address-ed', searchType: ' validate' }, - { country: 'Belgium', iso3Code: 'BEL', iso2Code: 'BE', datasetCode: 'be-address-eh', searchType: 'autocomplete' }, - { country: 'Belize', iso3Code: 'BLZ', iso2Code: 'BZ', datasetCode: 'bz-address-ed', searchType: 'singleline, validate' }, - { country: 'Belize', iso3Code: 'BLZ', iso2Code: 'BZ', datasetCode: 'bz-address-eh', searchType: 'autocomplete' }, - { country: 'Benin', iso3Code: 'BEN', iso2Code: 'BJ', datasetCode: 'bj-address-ed', searchType: 'singleline, validate' }, - { country: 'Benin', iso3Code: 'BEN', iso2Code: 'BJ', datasetCode: 'bj-address-eh', searchType: 'autocomplete' }, - { country: 'Bermuda', iso3Code: 'BMU', iso2Code: 'BM', datasetCode: 'bm-address-ed', searchType: 'singleline, validate' }, - { country: 'Bermuda', iso3Code: 'BMU', iso2Code: 'BM', datasetCode: 'bm-address-eh', searchType: 'autocomplete' }, - { country: 'Bhutan', iso3Code: 'BTN', iso2Code: 'BT', datasetCode: 'bt-address-ed', searchType: 'singleline, validate' }, - { country: 'Bhutan', iso3Code: 'BTN', iso2Code: 'BT', datasetCode: 'bt-address-eh', searchType: 'autocomplete' }, - { country: 'Bolivia', iso3Code: 'BOL', iso2Code: 'BO', datasetCode: 'bo-address-ed', searchType: 'singleline, validate' }, - { country: 'Bolivia', iso3Code: 'BOL', iso2Code: 'BO', datasetCode: 'bo-address-eh', searchType: 'autocomplete' }, - { country: 'Bonaire, Sint Eustatius and Saba', iso3Code: 'BES', iso2Code: 'BQ', datasetCode: 'bq-address-ed', searchType: 'singleline, validate' }, - { country: 'Bonaire, Sint Eustatius and Saba', iso3Code: 'BES', iso2Code: 'BQ', datasetCode: 'bq-address-eh', searchType: 'autocomplete' }, - { country: 'Bosnia and Herzegovina', iso3Code: 'BIH', iso2Code: 'BA', datasetCode: 'ba-address-ed', searchType: 'singleline, validate' }, - { country: 'Bosnia and Herzegovina', iso3Code: 'BIH', iso2Code: 'BA', datasetCode: 'ba-address-eh', searchType: 'autocomplete' }, - { country: 'Botswana', iso3Code: 'BWA', iso2Code: 'BW', datasetCode: 'bw-address-ed', searchType: 'singleline, validate' }, - { country: 'Botswana', iso3Code: 'BWA', iso2Code: 'BW', datasetCode: 'bw-address-eh', searchType: 'autocomplete' }, - { country: 'Brazil', iso3Code: 'BRA', iso2Code: 'BR', datasetCode: 'br-address-ed', searchType: 'singleline, validate' }, - { country: 'Brazil', iso3Code: 'BRA', iso2Code: 'BR', datasetCode: 'br-address-eh', searchType: 'autocomplete' }, - { country: 'Brunei Darussalam', iso3Code: 'BRN', iso2Code: 'BN', datasetCode: 'bn-address-ed', searchType: 'singleline, validate' }, - { country: 'Brunei Darussalam', iso3Code: 'BRN', iso2Code: 'BN', datasetCode: 'bn-address-eh', searchType: 'autocomplete' }, - { country: 'Bulgaria', iso3Code: 'BGR', iso2Code: 'BG', datasetCode: 'bg-address-ed', searchType: 'singleline, validate' }, - { country: 'Bulgaria', iso3Code: 'BGR', iso2Code: 'BG', datasetCode: 'bg-address-eh', searchType: 'autocomplete' }, - { country: 'Burkina Faso', iso3Code: 'BFA', iso2Code: 'BF', datasetCode: 'bf-address-ed', searchType: 'singleline, validate' }, - { country: 'Burkina Faso', iso3Code: 'BFA', iso2Code: 'BF', datasetCode: 'bf-address-eh', searchType: 'autocomplete' }, - { country: 'Burundi', iso3Code: 'BDI', iso2Code: 'BI', datasetCode: 'bi-address-eh', searchType: 'autocomplete' }, - { country: 'Cambodia', iso3Code: 'KHM', iso2Code: 'KH', datasetCode: 'kh-address-ed', searchType: 'singleline, validate' }, - { country: 'Cambodia', iso3Code: 'KHM', iso2Code: 'KH', datasetCode: 'kh-address-eh', searchType: 'autocomplete' }, - { country: 'Cameroon', iso3Code: 'CMR', iso2Code: 'CM', datasetCode: 'cm-address-ed', searchType: 'singleline, validate' }, - { country: 'Cameroon', iso3Code: 'CMR', iso2Code: 'CM', datasetCode: 'cm-address-eh', searchType: 'autocomplete' }, - { country: 'Canada', iso3Code: 'CAN', iso2Code: 'CA', datasetCode: 'ca-address', searchType: 'autocomplete, singleline, typedown, validate' }, - { country: 'Cape Verde', iso3Code: 'CPV', iso2Code: 'CV', datasetCode: 'cv-address-ed', searchType: 'singleline, validate' }, - { country: 'Cape Verde', iso3Code: 'CPV', iso2Code: 'CV', datasetCode: 'cv-address-eh', searchType: 'autocomplete' }, - { country: 'Cayman Islands', iso3Code: 'CYM', iso2Code: 'KY', datasetCode: 'ky-address-ed', searchType: 'singleline, validate' }, - { country: 'Cayman Islands', iso3Code: 'CYM', iso2Code: 'KY', datasetCode: 'ky-address-eh', searchType: 'autocomplete' }, - { country: 'Central African Republic', iso3Code: 'CAF', iso2Code: 'CF', datasetCode: 'cf-address-ed', searchType: 'singleline, validate' }, - { country: 'Central African Republic', iso3Code: 'CAF', iso2Code: 'CF', datasetCode: 'cf-address-eh', searchType: 'autocomplete' }, - { country: 'Chad', iso3Code: 'TCD', iso2Code: 'TD', datasetCode: 'td-address-ed', searchType: 'singleline, validate' }, - { country: 'Chad', iso3Code: 'TCD', iso2Code: 'TD', datasetCode: 'td-address-eh', searchType: 'autocomplete' }, - { country: 'Chile', iso3Code: 'CHL', iso2Code: 'CL', datasetCode: 'cl-address-ed', searchType: 'singleline, validate' }, - { country: 'Chile', iso3Code: 'CHL', iso2Code: 'CL', datasetCode: 'cl-address-eh', searchType: 'autocomplete' }, - { country: 'China', iso3Code: 'CHN', iso2Code: 'CN', datasetCode: 'cn-address-ed', searchType: 'singleline, validate' }, - { country: 'China', iso3Code: 'CHN', iso2Code: 'CN', datasetCode: 'cn-address-eh', searchType: 'autocomplete' }, - { country: 'Christmas Island', iso3Code: 'CXR', iso2Code: 'CX', datasetCode: 'cx-address-eh', searchType: 'autocomplete' }, - { country: 'Cocos Island', iso3Code: 'CCK', iso2Code: 'CC', datasetCode: 'cc-address-eh', searchType: 'autocomplete' }, - { country: 'Colombia', iso3Code: 'COL', iso2Code: 'CO', datasetCode: 'co-address-ed', searchType: 'singleline, validate' }, - { country: 'Colombia', iso3Code: 'COL', iso2Code: 'CO', datasetCode: 'co-address-eh', searchType: 'autocomplete' }, - { country: 'Comoros', iso3Code: 'COM', iso2Code: 'KM', datasetCode: 'km-address-ed', searchType: 'singleline, validate' }, - { country: 'Comoros', iso3Code: 'COM', iso2Code: 'KM', datasetCode: 'km-address-eh', searchType: 'autocomplete' }, - { country: 'Congo', iso3Code: 'COG', iso2Code: 'CG', datasetCode: 'cg-address-ed', searchType: 'singleline, validate' }, - { country: 'Congo', iso3Code: 'COG', iso2Code: 'CG', datasetCode: 'cg-address-eh', searchType: 'autocomplete' }, - { country: 'Congo, The Democratic Republic of the', iso3Code: 'COD', iso2Code: 'CD', datasetCode: 'cd-address-ed', searchType: 'singleline, validate' }, - { country: 'Congo, The Democratic Republic of the', iso3Code: 'COD', iso2Code: 'CD', datasetCode: 'cd-address-eh', searchType: 'autocomplete' }, - { country: 'Cook Islands', iso3Code: 'COK', iso2Code: 'CK', datasetCode: 'ck-address-ed', searchType: 'singleline, validate' }, - { country: 'Cook Islands', iso3Code: 'COK', iso2Code: 'CK', datasetCode: 'ck-address-eh', searchType: 'autocomplete' }, - { country: 'Costa Rica', iso3Code: 'CRI', iso2Code: 'CR', datasetCode: 'cr-address-ed', searchType: 'singleline, validate' }, - { country: 'Costa Rica', iso3Code: 'CRI', iso2Code: 'CR', datasetCode: 'cr-address-eh', searchType: 'autocomplete' }, - { country: 'Croatia', iso3Code: 'HRV', iso2Code: 'HR', datasetCode: 'hr-address-ed', searchType: 'singleline, validate' }, - { country: 'Croatia', iso3Code: 'HRV', iso2Code: 'HR', datasetCode: 'hr-address-eh', searchType: 'autocomplete' }, - { country: 'Cuba', iso3Code: 'CUB', iso2Code: 'CU', datasetCode: 'cu-address-ed', searchType: 'singleline, validate' }, - { country: 'Cuba', iso3Code: 'CUB', iso2Code: 'CU', datasetCode: 'cu-address-eh', searchType: 'autocomplete' }, - { country: 'Curaçao', iso3Code: 'CUW', iso2Code: 'CW', datasetCode: 'cw-address-ed', searchType: 'singleline, validate' }, - { country: 'Curaçao', iso3Code: 'CUW', iso2Code: 'CW', datasetCode: 'cw-address-eh', searchType: 'autocomplete' }, - { country: 'Cyprus', iso3Code: 'CYP', iso2Code: 'CY', datasetCode: 'cy-address-ed', searchType: 'singleline, validate' }, - { country: 'Cyprus', iso3Code: 'CYP', iso2Code: 'CY', datasetCode: 'cy-address-eh', searchType: 'autocomplete' }, - { country: 'Czech Republic', iso3Code: 'CZE', iso2Code: 'CZ', datasetCode: 'cz-address-ed', searchType: 'singleline, validate' }, - { country: 'Czech Republic', iso3Code: 'CZE', iso2Code: 'CZ', datasetCode: 'cz-address-eh', searchType: 'autocomplete' }, - { country: 'Côte d\'Ivoire', iso3Code: 'CIV', iso2Code: 'CI', datasetCode: 'ci-address-ed', searchType: 'singleline, validate' }, - { country: 'Côte d\'Ivoire', iso3Code: 'CIV', iso2Code: 'CI', datasetCode: 'ci-address-eh', searchType: 'autocomplete' }, - { country: 'Denmark', iso3Code: 'DNK', iso2Code: 'DK', datasetCode: 'dk-address-ed', searchType: 'singleline, validate' }, - { country: 'Denmark', iso3Code: 'DNK', iso2Code: 'DK', datasetCode: 'dk-address-eh', searchType: 'autocomplete' }, - { country: 'Djibouti', iso3Code: 'DJI', iso2Code: 'DJ', datasetCode: 'dj-address-ed', searchType: 'singleline, validate' }, - { country: 'Djibouti', iso3Code: 'DJI', iso2Code: 'DJ', datasetCode: 'dj-address-eh', searchType: 'autocomplete' }, - { country: 'Dominica', iso3Code: 'DMA', iso2Code: 'DM', datasetCode: 'dm-address-ed', searchType: 'singleline, validate' }, - { country: 'Dominica', iso3Code: 'DMA', iso2Code: 'DM', datasetCode: 'dm-address-eh', searchType: 'autocomplete' }, - { country: 'Dominican Republic', iso3Code: 'DOM', iso2Code: 'DO', datasetCode: 'do-address-ed', searchType: 'singleline, validate' }, - { country: 'Dominican Republic', iso3Code: 'DOM', iso2Code: 'DO', datasetCode: 'do-address-eh', searchType: 'autocomplete' }, - { country: 'Ecuador', iso3Code: 'ECU', iso2Code: 'EC', datasetCode: 'ec-address-ed', searchType: 'singleline, validate' }, - { country: 'Ecuador', iso3Code: 'ECU', iso2Code: 'EC', datasetCode: 'ec-address-eh', searchType: 'autocomplete' }, - { country: 'Egypt', iso3Code: 'EGY', iso2Code: 'EG', datasetCode: 'eg-address-ed', searchType: 'singleline, validate' }, - { country: 'Egypt', iso3Code: 'EGY', iso2Code: 'EG', datasetCode: 'eg-address-eh', searchType: 'autocomplete' }, - { country: 'El Salvador', iso3Code: 'SLV', iso2Code: 'SV', datasetCode: 'sv-address-ed', searchType: 'singleline, validate' }, - { country: 'El Salvador', iso3Code: 'SLV', iso2Code: 'SV', datasetCode: 'sv-address-eh', searchType: 'autocomplete' }, - { country: 'Equatorial Guinea', iso3Code: 'GNQ', iso2Code: 'GQ', datasetCode: 'gq-address-ed', searchType: 'singleline, validate' }, - { country: 'Equatorial Guinea', iso3Code: 'GNQ', iso2Code: 'GQ', datasetCode: 'gq-address-eh', searchType: 'autocomplete' }, - { country: 'Eritrea', iso3Code: 'ERI', iso2Code: 'ER', datasetCode: 'er-address-ed', searchType: 'singleline, validate' }, - { country: 'Eritrea', iso3Code: 'ERI', iso2Code: 'ER', datasetCode: 'er-address-eh', searchType: 'autocomplete' }, - { country: 'Estonia', iso3Code: 'EST', iso2Code: 'EE', datasetCode: 'ee-address-ed', searchType: 'singleline, validate' }, - { country: 'Estonia', iso3Code: 'EST', iso2Code: 'EE', datasetCode: 'ee-address-eh', searchType: 'autocomplete' }, - { country: 'Ethiopia', iso3Code: 'ETH', iso2Code: 'ET', datasetCode: 'et-address-ed', searchType: 'singleline, validate' }, - { country: 'Ethiopia', iso3Code: 'ETH', iso2Code: 'ET', datasetCode: 'et-address-eh', searchType: 'autocomplete' }, - { country: 'Falkland Islands (Malvinas)', iso3Code: 'FLK', iso2Code: 'FK', datasetCode: 'fk-address-eh', searchType: 'autocomplete' }, - { country: 'Faroe Islands', iso3Code: 'FRO', iso2Code: 'FO', datasetCode: 'fo-address-ed', searchType: 'singleline, validate' }, - { country: 'Faroe Islands', iso3Code: 'FRO', iso2Code: 'FO', datasetCode: 'fo-address-eh', searchType: 'autocomplete' }, - { country: 'Fiji', iso3Code: 'FJI', iso2Code: 'FJ', datasetCode: 'fj-address-ed', searchType: 'singleline, validate' }, - { country: 'Fiji', iso3Code: 'FJI', iso2Code: 'FJ', datasetCode: 'fj-address-eh', searchType: 'autocomplete' }, - { country: 'Finland', iso3Code: 'FIN', iso2Code: 'FI', datasetCode: 'fi-address', searchType: 'singleline, typedown' }, - { country: 'Finland', iso3Code: 'FIN', iso2Code: 'FI', datasetCode: 'fi-address-ed', searchType: 'validate' }, - { country: 'Finland', iso3Code: 'FIN', iso2Code: 'FI', datasetCode: 'fi-address-eh', searchType: 'autocomplete' }, - { country: 'France Street Level', iso3Code: 'FRA', iso2Code: 'FR', datasetCode: 'fr-address-streetlevel', searchType: 'singleline, typedown, validate' }, - { country: 'France Sub-Premises Level', iso3Code: 'FRA', iso2Code: 'FR', datasetCode: 'fr-additional-hexaline3', searchType: 'autocomplete, singleline, typedown' }, - { country: 'France Premises Level', iso3Code: 'FRA', iso2Code: 'FR', datasetCode: 'fr-address', searchType: 'singleline, typedown, validate' }, - { country: 'French Guiana', iso3Code: 'GUF', iso2Code: 'GF', datasetCode: 'gf-address-eh', searchType: 'autocomplete' }, - { country: 'French Polynesia', iso3Code: 'PYF', iso2Code: 'PF', datasetCode: 'pf-address-eh', searchType: 'autocomplete' }, - { country: 'Gabon', iso3Code: 'GAB', iso2Code: 'GA', datasetCode: 'ga-address-ed', searchType: 'singleline, validate' }, - { country: 'Gabon', iso3Code: 'GAB', iso2Code: 'GA', datasetCode: 'ga-address-eh', searchType: 'autocomplete' }, - { country: 'Gambia', iso3Code: 'GMB', iso2Code: 'GM', datasetCode: 'gm-address-ed', searchType: 'singleline, validate' }, - { country: 'Gambia', iso3Code: 'GMB', iso2Code: 'GM', datasetCode: 'gm-address-eh', searchType: 'autocomplete' }, - { country: 'Georgia', iso3Code: 'GEO', iso2Code: 'GE', datasetCode: 'ge-address-ed', searchType: 'singleline, validate' }, - { country: 'Georgia', iso3Code: 'GEO', iso2Code: 'GE', datasetCode: 'ge-address-eh', searchType: 'autocomplete' }, - { country: 'Germany', iso3Code: 'DEU', iso2Code: 'DE', datasetCode: 'de-address', searchType: 'singleline, typedown, validate' }, - { country: 'Germany', iso3Code: 'DEU', iso2Code: 'DE', datasetCode: 'de-address-ed', searchType: 'validate' }, - { country: 'Germany', iso3Code: 'DEU', iso2Code: 'DE', datasetCode: 'de-address-eh', searchType: 'autocomplete' }, - { country: 'Ghana', iso3Code: 'GHA', iso2Code: 'GH', datasetCode: 'gh-address-ed', searchType: 'singleline, validate' }, - { country: 'Ghana', iso3Code: 'GHA', iso2Code: 'GH', datasetCode: 'gh-address-eh', searchType: 'autocomplete' }, - { country: 'Gibraltar', iso3Code: 'GIB', iso2Code: 'GI', datasetCode: 'gi-address-eh', searchType: 'autocomplete' }, - { country: 'Greece', iso3Code: 'GRC', iso2Code: 'GR', datasetCode: 'gr-address-ed', searchType: 'singleline, validate' }, - { country: 'Greece', iso3Code: 'GRC', iso2Code: 'GR', datasetCode: 'gr-address-eh', searchType: 'autocomplete' }, - { country: 'Greenland', iso3Code: 'GRL', iso2Code: 'GL', datasetCode: 'gl-address-ed', searchType: 'singleline, validate' }, - { country: 'Greenland', iso3Code: 'GRL', iso2Code: 'GL', datasetCode: 'gl-address-eh', searchType: 'autocomplete' }, - { country: 'Grenada', iso3Code: 'GRD', iso2Code: 'GD', datasetCode: 'gd-address-ed', searchType: 'singleline, validate' }, - { country: 'Grenada', iso3Code: 'GRD', iso2Code: 'GD', datasetCode: 'gd-address-eh', searchType: 'autocomplete' }, - { country: 'Guadeloupe', iso3Code: 'GLP', iso2Code: 'GP', datasetCode: 'gp-address-eh', searchType: 'autocomplete' }, - { country: 'Guam', iso3Code: 'GUM', iso2Code: 'GU', datasetCode: 'gu-address-eh', searchType: 'autocomplete' }, - { country: 'Guatemala', iso3Code: 'GTM', iso2Code: 'GT', datasetCode: 'gt-address-ed', searchType: 'singleline, validate' }, - { country: 'Guatemala', iso3Code: 'GTM', iso2Code: 'GT', datasetCode: 'gt-address-eh', searchType: 'autocomplete' }, - { country: 'Guinea', iso3Code: 'GIN', iso2Code: 'GN', datasetCode: 'gn-address-ed', searchType: 'singleline, validate' }, - { country: 'Guinea', iso3Code: 'GIN', iso2Code: 'GN', datasetCode: 'gn-address-eh', searchType: 'autocomplete' }, - { country: 'Guinea-Bissau', iso3Code: 'GNB', iso2Code: 'GW', datasetCode: 'gw-address-ed', searchType: 'singleline, validate' }, - { country: 'Guinea-Bissau', iso3Code: 'GNB', iso2Code: 'GW', datasetCode: 'gw-address-eh', searchType: 'autocomplete' }, - { country: 'Guyana', iso3Code: 'GUY', iso2Code: 'GY', datasetCode: 'gy-address-ed', searchType: 'singleline, validate' }, - { country: 'Guyana', iso3Code: 'GUY', iso2Code: 'GY', datasetCode: 'gy-address-eh', searchType: 'autocomplete' }, - { country: 'Haiti', iso3Code: 'HTI', iso2Code: 'HT', datasetCode: 'ht-address-ed', searchType: 'singleline, validate' }, - { country: 'Haiti', iso3Code: 'HTI', iso2Code: 'HT', datasetCode: 'ht-address-eh', searchType: 'autocomplete' }, - { country: 'Honduras', iso3Code: 'HND', iso2Code: 'HN', datasetCode: 'hn-address-ed', searchType: 'singleline, validate' }, - { country: 'Honduras', iso3Code: 'HND', iso2Code: 'HN', datasetCode: 'hn-address-eh', searchType: 'autocomplete' }, - { country: 'Hong Kong', iso3Code: 'HKG', iso2Code: 'HK', datasetCode: 'hk-address-ed', searchType: 'singleline, validate' }, - { country: 'Hong Kong', iso3Code: 'HKG', iso2Code: 'HK', datasetCode: 'hk-address-eh', searchType: 'autocomplete' }, - { country: 'Hungary', iso3Code: 'HUN', iso2Code: 'HU', datasetCode: 'hu-address-ed', searchType: 'singleline, validate' }, - { country: 'Hungary', iso3Code: 'HUN', iso2Code: 'HU', datasetCode: 'hu-address-eh', searchType: 'autocomplete' }, - { country: 'Iceland', iso3Code: 'ISL', iso2Code: 'IS', datasetCode: 'is-address-ed', searchType: 'singleline, validate' }, - { country: 'Iceland', iso3Code: 'ISL', iso2Code: 'IS', datasetCode: 'is-address-eh', searchType: 'autocomplete' }, - { country: 'India', iso3Code: 'IND', iso2Code: 'IN', datasetCode: 'in-address-ed', searchType: 'singleline, validate' }, - { country: 'India', iso3Code: 'IND', iso2Code: 'IN', datasetCode: 'in-address-eh', searchType: 'autocomplete' }, - { country: 'Indonesia', iso3Code: 'IDN', iso2Code: 'ID', datasetCode: 'id-address-ed', searchType: 'singleline, validate' }, - { country: 'Indonesia', iso3Code: 'IDN', iso2Code: 'ID', datasetCode: 'id-address-eh', searchType: 'autocomplete' }, - { country: 'Iran, Islamic Republic of', iso3Code: 'IRN', iso2Code: 'IR', datasetCode: 'ir-address-ed', searchType: 'singleline, validate' }, - { country: 'Iran, Islamic Republic of', iso3Code: 'IRN', iso2Code: 'IR', datasetCode: 'ir-address-eh', searchType: 'autocomplete' }, - { country: 'Iraq', iso3Code: 'IRQ', iso2Code: 'IQ', datasetCode: 'iq-address-ed', searchType: 'singleline, validate' }, - { country: 'Iraq', iso3Code: 'IRQ', iso2Code: 'IQ', datasetCode: 'iq-address-eh', searchType: 'autocomplete' }, - { country: 'Ireland', iso3Code: 'IRL', iso2Code: 'IE', datasetCode: 'ie-address', searchType: 'singleline, typedown' }, - { country: 'Ireland', iso3Code: 'IRL', iso2Code: 'IE', datasetCode: 'ie-address-ed', searchType: 'singleline, validate' }, - { country: 'Ireland', iso3Code: 'IRL', iso2Code: 'IE', datasetCode: 'ie-address-eh', searchType: 'autocomplete' }, - { country: 'Ireland Eircode', iso3Code: 'IRL', iso2Code: 'IE', datasetCode: 'ie-additional-eircode', searchType: 'autocomplete' }, - { country: 'Ireland ECAD', iso3Code: 'IRL', iso2Code: 'IE', datasetCode: 'ie-address-ecad', searchType: 'autocomplete' }, - { country: 'Israel', iso3Code: 'ISR', iso2Code: 'IL', datasetCode: 'il-address-ed', searchType: 'singleline, validate' }, - { country: 'Israel', iso3Code: 'ISR', iso2Code: 'IL', datasetCode: 'il-address-eh', searchType: 'autocomplete' }, - { country: 'Italy', iso3Code: 'ITA', iso2Code: 'IT', datasetCode: 'it-address-ed', searchType: 'singleline, validate' }, - { country: 'Italy', iso3Code: 'ITA', iso2Code: 'IT', datasetCode: 'it-address-eh', searchType: 'autocomplete' }, - { country: 'Jamaica', iso3Code: 'JAM', iso2Code: 'JM', datasetCode: 'jm-address-ed', searchType: 'singleline, validate' }, - { country: 'Jamaica', iso3Code: 'JAM', iso2Code: 'JM', datasetCode: 'jm-address-eh', searchType: 'autocomplete' }, - { country: 'Japan', iso3Code: 'JPN', iso2Code: 'JP', datasetCode: 'jp-address-ed', searchType: 'singleline, validate' }, - { country: 'Japan', iso3Code: 'JPN', iso2Code: 'JP', datasetCode: 'jp-address', searchType: 'singleline, validate' }, - { country: 'Jordan', iso3Code: 'JOR', iso2Code: 'JO', datasetCode: 'jo-address-ed', searchType: 'singleline, validate' }, - { country: 'Jordan', iso3Code: 'JOR', iso2Code: 'JO', datasetCode: 'jo-address-eh', searchType: 'autocomplete' }, - { country: 'Kazakhstan', iso3Code: 'KAZ', iso2Code: 'KZ', datasetCode: 'kz-address-ed', searchType: 'singleline, validate' }, - { country: 'Kazakhstan', iso3Code: 'KAZ', iso2Code: 'KZ', datasetCode: 'kz-address-eh', searchType: 'autocomplete' }, - { country: 'Kenya', iso3Code: 'KEN', iso2Code: 'KE', datasetCode: 'ke-address-ed', searchType: 'singleline, validate' }, - { country: 'Kenya', iso3Code: 'KEN', iso2Code: 'KE', datasetCode: 'ke-address-eh', searchType: 'autocomplete' }, - { country: 'Kiribati', iso3Code: 'KIR', iso2Code: 'KI', datasetCode: 'ki-address-ed', searchType: 'singleline, validate' }, - { country: 'Kiribati', iso3Code: 'KIR', iso2Code: 'KI', datasetCode: 'ki-address-eh', searchType: 'autocomplete' }, - { country: 'Korea, Democratic People\'s Republic of', iso3Code: 'PRK', iso2Code: 'KP', datasetCode: 'kp-address-ed', searchType: 'singleline, validate' }, - { country: 'Korea, Democratic People\'s Republic of', iso3Code: 'PRK', iso2Code: 'KP', datasetCode: 'kp-address-eh', searchType: 'autocomplete' }, - { country: 'Korea, Republic of', iso3Code: 'KOR', iso2Code: 'KR', datasetCode: 'kr-address-ed', searchType: 'singleline, validate' }, - { country: 'Korea, Republic of', iso3Code: 'KOR', iso2Code: 'KR', datasetCode: 'kr-address-eh', searchType: 'autocomplete' }, - { country: 'Kosovo', iso3Code: 'KOS', iso2Code: 'XK', datasetCode: 'kv-address-eh', searchType: 'autocomplete' }, - { country: 'Kuwait', iso3Code: 'KWT', iso2Code: 'KW', datasetCode: 'kw-address-ed', searchType: 'singleline, validate' }, - { country: 'Kuwait', iso3Code: 'KWT', iso2Code: 'KW', datasetCode: 'kw-address-eh', searchType: 'autocomplete' }, - { country: 'Kyrgyzstan', iso3Code: 'KGZ', iso2Code: 'KG', datasetCode: 'kg-address-ed', searchType: 'singleline, validate' }, - { country: 'Kyrgyzstan', iso3Code: 'KGZ', iso2Code: 'KG', datasetCode: 'kg-address-eh', searchType: 'autocomplete' }, - { country: 'Laos', iso3Code: 'LAO', iso2Code: 'LA', datasetCode: 'la-address-ed', searchType: 'singleline, validate' }, - { country: 'Laos', iso3Code: 'LAO', iso2Code: 'LA', datasetCode: 'la-address-eh', searchType: 'autocomplete' }, - { country: 'Latvia', iso3Code: 'LVA', iso2Code: 'LV', datasetCode: 'lv-address-ed', searchType: 'singleline, validate' }, - { country: 'Latvia', iso3Code: 'LVA', iso2Code: 'LV', datasetCode: 'lv-address-eh', searchType: 'autocomplete' }, - { country: 'Lebanon', iso3Code: 'LBN', iso2Code: 'LB', datasetCode: 'lb-address-ed', searchType: 'singleline, validate' }, - { country: 'Lebanon', iso3Code: 'LBN', iso2Code: 'LB', datasetCode: 'lb-address-eh', searchType: 'autocomplete' }, - { country: 'Lesotho', iso3Code: 'LSO', iso2Code: 'LS', datasetCode: 'ls-address-ed', searchType: 'singleline, validate' }, - { country: 'Lesotho', iso3Code: 'LSO', iso2Code: 'LS', datasetCode: 'ls-address-eh', searchType: 'autocomplete' }, - { country: 'Liberia', iso3Code: 'LBR', iso2Code: 'LR', datasetCode: 'lr-address-ed', searchType: 'singleline, validate' }, - { country: 'Liberia', iso3Code: 'LBR', iso2Code: 'LR', datasetCode: 'lr-address-eh', searchType: 'autocomplete' }, - { country: 'Libya', iso3Code: 'LBY', iso2Code: 'LY', datasetCode: 'ly-address-ed', searchType: 'singleline, validate' }, - { country: 'Libya', iso3Code: 'LBY', iso2Code: 'LY', datasetCode: 'ly-address-eh', searchType: 'autocomplete' }, - { country: 'Liechtenstein', iso3Code: 'LIE', iso2Code: 'LI', datasetCode: 'li-address-ed', searchType: 'singleline, validate' }, - { country: 'Liechtenstein', iso3Code: 'LIE', iso2Code: 'LI', datasetCode: 'li-address-eh', searchType: 'autocomplete' }, - { country: 'Lithuania', iso3Code: 'LTU', iso2Code: 'LT', datasetCode: 'lt-address-ed', searchType: 'singleline, validate' }, - { country: 'Lithuania', iso3Code: 'LTU', iso2Code: 'LT', datasetCode: 'lt-address-eh', searchType: 'autocomplete' }, - { country: 'Luxembourg', iso3Code: 'LUX', iso2Code: 'LU', datasetCode: 'lu-address-ed', searchType: 'singleline, validate' }, - { country: 'Luxembourg', iso3Code: 'LUX', iso2Code: 'LU', datasetCode: 'lu-address-eh', searchType: 'autocomplete' }, - { country: 'Macau', iso3Code: 'MAC', iso2Code: 'MO', datasetCode: 'lv-address-ed', searchType: 'singleline, validate' }, - { country: 'Macau', iso3Code: 'MAC', iso2Code: 'MO', datasetCode: 'lv-address-eh', searchType: 'autocomplete' }, - { country: 'Madagascar', iso3Code: 'MDG', iso2Code: 'MG', datasetCode: 'mo-address-ed', searchType: 'singleline, validate' }, - { country: 'Madagascar', iso3Code: 'MDG', iso2Code: 'MG', datasetCode: 'mo-address-eh', searchType: 'autocomplete' }, - { country: 'Malawi', iso3Code: 'MWI', iso2Code: 'MW', datasetCode: 'mw-address-ed', searchType: 'singleline, validate' }, - { country: 'Malawi', iso3Code: 'MWI', iso2Code: 'MW', datasetCode: 'mw-address-eh', searchType: 'autocomplete' }, - { country: 'Malaysia', iso3Code: 'MYS', iso2Code: 'MY', datasetCode: 'my-address-ed', searchType: 'singleline, validate' }, - { country: 'Malaysia', iso3Code: 'MYS', iso2Code: 'MY', datasetCode: 'my-address-eh', searchType: 'autocomplete' }, - { country: 'Maldives', iso3Code: 'MDV', iso2Code: 'MV', datasetCode: 'mv-address-ed', searchType: 'singleline, validate' }, - { country: 'Maldives', iso3Code: 'MDV', iso2Code: 'MV', datasetCode: 'mv-address-eh', searchType: 'autocomplete' }, - { country: 'Mali', iso3Code: 'MLI', iso2Code: 'ML', datasetCode: 'ml-address-ed', searchType: 'singleline, validate' }, - { country: 'Mali', iso3Code: 'MLI', iso2Code: 'ML', datasetCode: 'ml-address-eh', searchType: 'autocomplete' }, - { country: 'Malta', iso3Code: 'MLT', iso2Code: 'MT', datasetCode: 'mt-address-ed', searchType: 'singleline, validate' }, - { country: 'Malta', iso3Code: 'MLT', iso2Code: 'MT', datasetCode: 'mt-address-eh', searchType: 'autocomplete' }, - { country: 'Marshall Islands', iso3Code: 'MHL', iso2Code: 'MH', datasetCode: 'mh-address-eh', searchType: 'autocomplete' }, - { country: 'Martinique', iso3Code: 'MTQ', iso2Code: 'MQ', datasetCode: 'mq-address-eh', searchType: 'autocomplete' }, - { country: 'Mauritania', iso3Code: 'MRT', iso2Code: 'MR', datasetCode: 'mr-address-ed', searchType: 'singleline, validate' }, - { country: 'Mauritania', iso3Code: 'MRT', iso2Code: 'MR', datasetCode: 'mr-address-eh', searchType: 'autocomplete' }, - { country: 'Mauritius', iso3Code: 'MUS', iso2Code: 'MU', datasetCode: 'mu-address-ed', searchType: 'singleline, validate' }, - { country: 'Mauritius', iso3Code: 'MUS', iso2Code: 'MU', datasetCode: 'mu-address-eh', searchType: 'autocomplete' }, - { country: 'Mayotte', iso3Code: 'MYT', iso2Code: 'YT', datasetCode: 'yt-address-eh', searchType: 'autocomplete' }, - { country: 'Mexico', iso3Code: 'MEX', iso2Code: 'MX', datasetCode: 'mx-address-ed', searchType: 'singleline, validate' }, - { country: 'Mexico', iso3Code: 'MEX', iso2Code: 'MX', datasetCode: 'mx-address-eh', searchType: 'autocomplete' }, - { country: 'Micronesia, Federated States of', iso3Code: 'FSM', iso2Code: 'FM', datasetCode: 'fm-address-eh', searchType: 'autocomplete' }, - { country: 'Moldova', iso3Code: 'MDA', iso2Code: 'MD', datasetCode: 'md-address-ed', searchType: 'singleline, validate' }, - { country: 'Moldova', iso3Code: 'MDA', iso2Code: 'MD', datasetCode: 'md-address-eh', searchType: 'autocomplete' }, - { country: 'Monaco', iso3Code: 'MCO', iso2Code: 'MC', datasetCode: 'mc-address-ed', searchType: 'singleline, validate' }, - { country: 'Monaco', iso3Code: 'MCO', iso2Code: 'MC', datasetCode: 'mc-address-eh', searchType: 'autocomplete' }, - { country: 'Mongolia', iso3Code: 'MNG', iso2Code: 'MN', datasetCode: 'mn-address-ed', searchType: 'singleline, validate' }, - { country: 'Mongolia', iso3Code: 'MNG', iso2Code: 'MN', datasetCode: 'mn-address-eh', searchType: 'autocomplete' }, - { country: 'Montenegro', iso3Code: 'MNE', iso2Code: 'ME', datasetCode: 'me-address-ed', searchType: 'singleline, validate' }, - { country: 'Montenegro', iso3Code: 'MNE', iso2Code: 'ME', datasetCode: 'me-address-eh', searchType: 'autocomplete' }, - { country: 'Montserrat', iso3Code: 'MSR', iso2Code: 'MS', datasetCode: 'ms-address-eh', searchType: 'autocomplete' }, - { country: 'Morocco', iso3Code: 'MAR', iso2Code: 'MA', datasetCode: 'ma-address-ed', searchType: 'singleline, validate' }, - { country: 'Morocco', iso3Code: 'MAR', iso2Code: 'MA', datasetCode: 'ma-address-eh', searchType: 'autocomplete' }, - { country: 'Mozambique', iso3Code: 'MOZ', iso2Code: 'MZ', datasetCode: 'mz-address-ed', searchType: 'singleline, validate' }, - { country: 'Mozambique', iso3Code: 'MOZ', iso2Code: 'MZ', datasetCode: 'mz-address-eh', searchType: 'autocomplete' }, - { country: 'Myanmar', iso3Code: 'MMR', iso2Code: 'MM', datasetCode: 'mm-address-ed', searchType: 'singleline, validate' }, - { country: 'Myanmar', iso3Code: 'MMR', iso2Code: 'MM', datasetCode: 'mm-address-eh', searchType: 'autocomplete' }, - { country: 'Namibia', iso3Code: 'NAM', iso2Code: 'NA', datasetCode: 'na-address-ed', searchType: 'singleline, validate' }, - { country: 'Namibia', iso3Code: 'NAM', iso2Code: 'NA', datasetCode: 'na-address-eh', searchType: 'autocomplete' }, - { country: 'Nauru', iso3Code: 'NRU', iso2Code: 'NR', datasetCode: 'nr-address-ed', searchType: 'singleline, validate' }, - { country: 'Nauru', iso3Code: 'NRU', iso2Code: 'NR', datasetCode: 'nr-address-eh', searchType: 'autocomplete' }, - { country: 'Nepal', iso3Code: 'NPL', iso2Code: 'NP', datasetCode: 'np-address-ed', searchType: 'singleline, validate' }, - { country: 'Nepal', iso3Code: 'NPL', iso2Code: 'NP', datasetCode: 'np-address-eh', searchType: 'autocomplete' }, - { country: 'Netherlands', iso3Code: 'NLD', iso2Code: 'NL', datasetCode: 'nl-address-ed', searchType: 'singleline, validate' }, - { country: 'Netherlands', iso3Code: 'NLD', iso2Code: 'NL', datasetCode: 'nl-address-eh', searchType: 'autocomplete' }, - { country: 'New Caledonia', iso3Code: 'NCL', iso2Code: 'NC', datasetCode: 'nc-address-eh', searchType: 'autocomplete' }, - { country: 'New Zealand DataFusion', iso3Code: 'NZL', iso2Code: 'NZ', datasetCode: 'nz-additional-datafusion', searchType: 'autocomplete, singleline, typedown, validate' }, - { country: 'New Zealand Postal Address', iso3Code: 'NZL', iso2Code: 'NZ', datasetCode: 'nz-address', searchType: 'autocomplete, singleline, typedown, validate' }, - { country: 'Nicaragua', iso3Code: 'NIC', iso2Code: 'NI', datasetCode: 'ni-address-ed', searchType: 'singleline, validate' }, - { country: 'Nicaragua', iso3Code: 'NIC', iso2Code: 'NI', datasetCode: 'ni-address-eh', searchType: 'autocomplete' }, - { country: 'Niger', iso3Code: 'NER', iso2Code: 'NE', datasetCode: 'ne-address-ed', searchType: 'singleline, validate' }, - { country: 'Niger', iso3Code: 'NER', iso2Code: 'NE', datasetCode: 'ne-address-eh', searchType: 'autocomplete' }, - { country: 'Nigeria', iso3Code: 'NGA', iso2Code: 'NG', datasetCode: 'ng-address-ed', searchType: 'singleline, validate' }, - { country: 'Nigeria', iso3Code: 'NGA', iso2Code: 'NG', datasetCode: 'ng-address-eh', searchType: 'autocomplete' }, - { country: 'Niue', iso3Code: 'NIU', iso2Code: 'NU', datasetCode: 'nu-address-ed', searchType: 'singleline, validate' }, - { country: 'Norfolk Island', iso3Code: 'NFK', iso2Code: 'NF', datasetCode: 'nf-address-ed', searchType: 'singleline, validate' }, - { country: 'Norfolk Island', iso3Code: 'NFK', iso2Code: 'NF', datasetCode: 'nf-address-eh', searchType: 'autocomplete' }, - { country: 'North Macedonia', iso3Code: 'MKD', iso2Code: 'MK', datasetCode: 'mk-address-ed', searchType: 'singleline, validate' }, - { country: 'North Macedonia', iso3Code: 'MKD', iso2Code: 'MK', datasetCode: 'mk-address-eh', searchType: 'autocomplete' }, - { country: 'Northern Mariana Islands', iso3Code: 'MNP', iso2Code: 'MP', datasetCode: 'mp-address-eh', searchType: 'autocomplete' }, - { country: 'Norway', iso3Code: 'NOR', iso2Code: 'NO', datasetCode: 'no-address-ed', searchType: 'validate' }, - { country: 'Norway', iso3Code: 'NOR', iso2Code: 'NO', datasetCode: 'no-address-eh', searchType: 'autocomplete' }, - { country: 'Oman', iso3Code: 'OMN', iso2Code: 'OM', datasetCode: 'om-address-ed', searchType: 'singleline, validate' }, - { country: 'Oman', iso3Code: 'OMN', iso2Code: 'OM', datasetCode: 'om-address-eh', searchType: 'autocomplete' }, - { country: 'Pakistan', iso3Code: 'PAK', iso2Code: 'PK', datasetCode: 'pk-address-ed', searchType: 'singleline, validate' }, - { country: 'Pakistan', iso3Code: 'PAK', iso2Code: 'PK', datasetCode: 'pk-address-eh', searchType: 'autocomplete' }, - { country: 'Palau', iso3Code: 'PLW', iso2Code: 'PW', datasetCode: 'pw-address-eh', searchType: 'autocomplete' }, - { country: 'Palestine', iso3Code: 'PSE', iso2Code: 'PS', datasetCode: 'ps-address-eh', searchType: 'autocomplete' }, - { country: 'Panama', iso3Code: 'PAN', iso2Code: 'PA', datasetCode: 'pa-address-ed', searchType: 'singleline, validate' }, - { country: 'Panama', iso3Code: 'PAN', iso2Code: 'PA', datasetCode: 'pa-address-eh', searchType: 'autocomplete' }, - { country: 'Papua New Guinea', iso3Code: 'PNG', iso2Code: 'PG', datasetCode: 'pg-address-ed', searchType: 'singleline, validate' }, - { country: 'Papua New Guinea', iso3Code: 'PNG', iso2Code: 'PG', datasetCode: 'pg-address-eh', searchType: 'autocomplete' }, - { country: 'Paraguay', iso3Code: 'PRY', iso2Code: 'PY', datasetCode: 'py-address-ed', searchType: 'singleline, validate' }, - { country: 'Paraguay', iso3Code: 'PRY', iso2Code: 'PY', datasetCode: 'py-address-eh', searchType: 'autocomplete' }, - { country: 'Peru', iso3Code: 'PER', iso2Code: 'PE', datasetCode: 'pe-address-ed', searchType: 'singleline, validate' }, - { country: 'Peru', iso3Code: 'PER', iso2Code: 'PE', datasetCode: 'pe-address-eh', searchType: 'autocomplete' }, - { country: 'Philippines', iso3Code: 'PHL', iso2Code: 'PH', datasetCode: 'ph-address-ed', searchType: 'singleline, validate' }, - { country: 'Philippines', iso3Code: 'PHL', iso2Code: 'PH', datasetCode: 'ph-address-eh', searchType: 'autocomplete' }, - { country: 'Pitcairn Islands', iso3Code: 'PCN', iso2Code: 'PN', datasetCode: 'pn-address-eh', searchType: 'autocomplete' }, - { country: 'Poland', iso3Code: 'POL', iso2Code: 'PL', datasetCode: 'pl-address-ed', searchType: 'singleline, validate' }, - { country: 'Poland', iso3Code: 'POL', iso2Code: 'PL', datasetCode: 'pl-address-eh', searchType: 'autocomplete' }, - { country: 'Portugal', iso3Code: 'PRT', iso2Code: 'PT', datasetCode: 'pt-address-ed', searchType: 'singleline, validate' }, - { country: 'Portugal', iso3Code: 'PRT', iso2Code: 'PT', datasetCode: 'pt-address-eh', searchType: 'autocomplete' }, - { country: 'Qatar', iso3Code: 'QAT', iso2Code: 'QA', datasetCode: 'qa-address-ed', searchType: 'singleline, validate' }, - { country: 'Qatar', iso3Code: 'QAT', iso2Code: 'QA', datasetCode: 'qa-address-eh', searchType: 'autocomplete' }, - { country: 'Romania', iso3Code: 'ROU', iso2Code: 'RO', datasetCode: 'ro-address-ed', searchType: 'singleline, validate' }, - { country: 'Romania', iso3Code: 'ROU', iso2Code: 'RO', datasetCode: 'ro-address-eh', searchType: 'autocomplete' }, - { country: 'Russian Federation', iso3Code: 'RUS', iso2Code: 'RU', datasetCode: 'ru-address-ed', searchType: 'singleline, validate' }, - { country: 'Russian Federation', iso3Code: 'RUS', iso2Code: 'RU', datasetCode: 'ru-address-eh', searchType: 'autocomplete' }, - { country: 'Rwanda', iso3Code: 'RWA', iso2Code: 'RW', datasetCode: 'rw-address-ed', searchType: 'singleline, validate' }, - { country: 'Rwanda', iso3Code: 'RWA', iso2Code: 'RW', datasetCode: 'rw-address-eh', searchType: 'autocomplete' }, - { country: 'Réunion', iso3Code: 'REU', iso2Code: 'RE', datasetCode: 're-address-eh', searchType: 'autocomplete' }, - { country: 'Saint Barthélemy', iso3Code: 'BLM', iso2Code: 'BL', datasetCode: 'bl-address-eh', searchType: 'autocomplete' }, - { country: 'Saint Helena', iso3Code: 'SHN', iso2Code: 'SH', datasetCode: 'sh-address-eh', searchType: 'autocomplete' }, - { country: 'Saint Kitts and Nevis', iso3Code: 'KNA', iso2Code: 'KN', datasetCode: 'kn-address-ed', searchType: 'singleline, validate' }, - { country: 'Saint Kitts and Nevis', iso3Code: 'KNA', iso2Code: 'KN', datasetCode: 'kn-address-eh', searchType: 'autocomplete' }, - { country: 'Saint Lucia', iso3Code: 'LCA', iso2Code: 'LC', datasetCode: 'lc-address-eh', searchType: 'autocomplete' }, - { country: 'Saint Pierre and Miquelon', iso3Code: 'SPM', iso2Code: 'PM', datasetCode: 'pm-address-eh', searchType: 'autocomplete' }, - { country: 'Saint Vincent and the Grenadines', iso3Code: 'VCT', iso2Code: 'VC', datasetCode: 'vc-address-ed', searchType: 'singleline, validate' }, - { country: 'Saint Vincent and the Grenadines', iso3Code: 'VCT', iso2Code: 'VC', datasetCode: 'vc-address-eh', searchType: 'autocomplete' }, - { country: 'Samoa', iso3Code: 'WSM', iso2Code: 'WS', datasetCode: 'ws-address-ed', searchType: 'singleline, validate' }, - { country: 'Samoa', iso3Code: 'WSM', iso2Code: 'WS', datasetCode: 'ws-address-eh', searchType: 'autocomplete' }, - { country: 'San Marino', iso3Code: 'SMR', iso2Code: 'SM', datasetCode: 'sm-address-ed', searchType: 'singleline, validate' }, - { country: 'San Marino', iso3Code: 'SMR', iso2Code: 'SM', datasetCode: 'sm-address-eh', searchType: 'autocomplete' }, - { country: 'Sao Tome and Principe', iso3Code: 'STP', iso2Code: 'ST', datasetCode: 'st-address-ed', searchType: 'singleline, validate' }, - { country: 'Sao Tome and Principe', iso3Code: 'STP', iso2Code: 'ST', datasetCode: 'st-address-eh', searchType: 'autocomplete' }, - { country: 'Saudi Arabia', iso3Code: 'SAU', iso2Code: 'SA', datasetCode: 'sa-address-ed', searchType: 'singleline, validate' }, - { country: 'Saudi Arabia', iso3Code: 'SAU', iso2Code: 'SA', datasetCode: 'sa-address-eh', searchType: 'autocomplete' }, - { country: 'Senegal', iso3Code: 'SEN', iso2Code: 'SN', datasetCode: 'sn-address-ed', searchType: 'singleline, validate' }, - { country: 'Senegal', iso3Code: 'SEN', iso2Code: 'SN', datasetCode: 'sn-address-eh', searchType: 'autocomplete' }, - { country: 'Serbia', iso3Code: 'SRB', iso2Code: 'RS', datasetCode: 'rs-address-ed', searchType: 'singleline, validate' }, - { country: 'Serbia', iso3Code: 'SRB', iso2Code: 'RS', datasetCode: 'rs-address-eh', searchType: 'autocomplete' }, - { country: 'Seychelles', iso3Code: 'SYC', iso2Code: 'SC', datasetCode: 'sc-address-ed', searchType: 'singleline, validate' }, - { country: 'Seychelles', iso3Code: 'SYC', iso2Code: 'SC', datasetCode: 'sc-address-eh', searchType: 'autocomplete' }, - { country: 'Sierra Leone', iso3Code: 'SLE', iso2Code: 'SL', datasetCode: 'sl-address-ed', searchType: 'singleline, validate' }, - { country: 'Sierra Leone', iso3Code: 'SLE', iso2Code: 'SL', datasetCode: 'sl-address-eh', searchType: 'autocomplete' }, - { country: 'Singapore', iso3Code: 'SGP', iso2Code: 'SG', datasetCode: 'sg-address', searchType: 'autocomplete, singleline, typedown, validate' }, - { country: 'Sint Maarten', iso3Code: 'SXM', iso2Code: 'SX', datasetCode: 'sx-address-ed', searchType: 'singleline, validate' }, - { country: 'Sint Maarten', iso3Code: 'SXM', iso2Code: 'SX', datasetCode: 'sx-address-eh', searchType: 'autocomplete' }, - { country: 'Slovakia', iso3Code: 'SVK', iso2Code: 'SK', datasetCode: 'sk-address-ed', searchType: 'singleline, validate' }, - { country: 'Slovakia', iso3Code: 'SVK', iso2Code: 'SK', datasetCode: 'sk-address-eh', searchType: 'autocomplete' }, - { country: 'Slovenia', iso3Code: 'SVN', iso2Code: 'SI', datasetCode: 'si-address-ed', searchType: 'singleline, validate' }, - { country: 'Slovenia', iso3Code: 'SVN', iso2Code: 'SI', datasetCode: 'si-address-eh', searchType: 'autocomplete' }, - { country: 'Solomon Islands', iso3Code: 'SLB', iso2Code: 'SB', datasetCode: 'sb-address-ed', searchType: 'singleline, validate' }, - { country: 'Solomon Islands', iso3Code: 'SLB', iso2Code: 'SB', datasetCode: 'sb-address-eh', searchType: 'autocomplete' }, - { country: 'Somalia', iso3Code: 'SOM', iso2Code: 'SO', datasetCode: 'so-address-ed', searchType: 'singleline, validate' }, - { country: 'Somalia', iso3Code: 'SOM', iso2Code: 'SO', datasetCode: 'so-address-eh', searchType: 'autocomplete' }, - { country: 'South Africa', iso3Code: 'ZAF', iso2Code: 'ZA', datasetCode: 'za-address-ed', searchType: 'singleline, validate' }, - { country: 'South Africa', iso3Code: 'ZAF', iso2Code: 'ZA', datasetCode: 'za-address-eh', searchType: 'autocomplete' }, - { country: 'South Georgia and the South Sandwich Islands', iso3Code: 'SGS', iso2Code: 'GS', datasetCode: 'gs-address-eh', searchType: 'autocomplete' }, - { country: 'South Sudan', iso3Code: 'SSD', iso2Code: 'SS', datasetCode: 'ss-address-ed', searchType: 'singleline, validate' }, - { country: 'South Sudan', iso3Code: 'SSD', iso2Code: 'SS', datasetCode: 'ss-address-eh', searchType: 'autocomplete' }, - { country: 'Spain', iso3Code: 'ESP', iso2Code: 'ES', datasetCode: 'es-address', searchType: 'singleline, typedown' }, - { country: 'Spain', iso3Code: 'ESP', iso2Code: 'ES', datasetCode: 'es-address-ed', searchType: 'validate' }, - { country: 'Spain', iso3Code: 'ESP', iso2Code: 'ES', datasetCode: 'es-address-eh', searchType: 'autocomplete' }, - { country: 'Sri Lanka', iso3Code: 'LKA', iso2Code: 'LK', datasetCode: 'lk-address-ed', searchType: 'singleline, validate' }, - { country: 'Sudan', iso3Code: 'SDN', iso2Code: 'SD', datasetCode: 'sd-address-ed', searchType: 'singleline, validate' }, - { country: 'Sudan', iso3Code: 'SDN', iso2Code: 'SD', datasetCode: 'sd-address-eh', searchType: 'autocomplete' }, - { country: 'Suriname', iso3Code: 'SUR', iso2Code: 'SR', datasetCode: 'sr-address-ed', searchType: 'singleline, validate' }, - { country: 'Suriname', iso3Code: 'SUR', iso2Code: 'SR', datasetCode: 'sr-address-eh', searchType: 'autocomplete' }, - { country: 'Svalbard and Jan Mayen Islands', iso3Code: 'SJM', iso2Code: 'SJ', datasetCode: 'sj-address-eh', searchType: 'autocomplete' }, - { country: 'Swaziland (Eswatini)', iso3Code: 'SWZ', iso2Code: 'SZ', datasetCode: 'sz-address-ed', searchType: 'singleline, validate' }, - { country: 'Swaziland (Eswatini)', iso3Code: 'SWZ', iso2Code: 'SZ', datasetCode: 'sz-address-eh', searchType: 'autocomplete' }, - { country: 'Sweden', iso3Code: 'SWE', iso2Code: 'SE', datasetCode: 'se-address', searchType: 'singleline, typedown' }, - { country: 'Sweden', iso3Code: 'SWE', iso2Code: 'SE', datasetCode: 'se-address-ed', searchType: 'validate' }, - { country: 'Sweden', iso3Code: 'SWE', iso2Code: 'SE', datasetCode: 'se-address-eh', searchType: 'autocomplete' }, - { country: 'Switzerland', iso3Code: 'CHE', iso2Code: 'CH', datasetCode: 'ch-address', searchType: 'singleline, typedown' }, - { country: 'Switzerland', iso3Code: 'CHE', iso2Code: 'CH', datasetCode: 'ch-address-ed', searchType: 'validate' }, - { country: 'Switzerland', iso3Code: 'CHE', iso2Code: 'CH', datasetCode: 'ch-address-eh', searchType: 'autocomplete' }, - { country: 'Syria', iso3Code: 'SYR', iso2Code: 'SY', datasetCode: 'sy-address-ed', searchType: 'singleline, validate' }, - { country: 'Syria', iso3Code: 'SYR', iso2Code: 'SY', datasetCode: 'sy-address-eh', searchType: 'autocomplete' }, - { country: 'Taiwan', iso3Code: 'TWN', iso2Code: 'TW', datasetCode: 'tw-address-ed', searchType: 'singleline, validate' }, - { country: 'Taiwan', iso3Code: 'TWN', iso2Code: 'TW', datasetCode: 'tw-address-eh', searchType: 'autocomplete' }, - { country: 'Tajikistan', iso3Code: 'TJK', iso2Code: 'TJ', datasetCode: 'tj-address-ed', searchType: 'singleline, validate' }, - { country: 'Tajikistan', iso3Code: 'TJK', iso2Code: 'TJ', datasetCode: 'tj-address-eh', searchType: 'autocomplete' }, - { country: 'Tanzania', iso3Code: 'TZA', iso2Code: 'TZ', datasetCode: 'tz-address-ed', searchType: 'singleline, validate' }, - { country: 'Tanzania', iso3Code: 'TZA', iso2Code: 'TZ', datasetCode: 'tz-address-eh', searchType: 'autocomplete' }, - { country: 'Thailand', iso3Code: 'THA', iso2Code: 'TH', datasetCode: 'th-address-ed', searchType: 'singleline, validate' }, - { country: 'Thailand', iso3Code: 'THA', iso2Code: 'TH', datasetCode: 'th-address-eh', searchType: 'autocomplete' }, - { country: 'Timor-Leste', iso3Code: 'TLS', iso2Code: 'TL', datasetCode: 'tl-address-ed', searchType: 'singleline, validate' }, - { country: 'Timor-Leste', iso3Code: 'TLS', iso2Code: 'TL', datasetCode: 'tl-address-eh', searchType: 'autocomplete' }, - { country: 'Togo', iso3Code: 'TGO', iso2Code: 'TG', datasetCode: 'tg-address-ed', searchType: 'singleline, validate' }, - { country: 'Togo', iso3Code: 'TGO', iso2Code: 'TG', datasetCode: 'tg-address-eh', searchType: 'autocomplete' }, - { country: 'Tokelau', iso3Code: 'TKL', iso2Code: 'TK', datasetCode: 'tk-address-ed', searchType: 'singleline, validate' }, - { country: 'Tokelau', iso3Code: 'TKL', iso2Code: 'TK', datasetCode: 'tk-address-eh', searchType: 'autocomplete' }, - { country: 'Tonga', iso3Code: 'TON', iso2Code: 'TO', datasetCode: 'to-address-ed', searchType: 'singleline, validate' }, - { country: 'Tonga', iso3Code: 'TON', iso2Code: 'TO', datasetCode: 'to-address-eh', searchType: 'autocomplete' }, - { country: 'Trinidad and Tobago', iso3Code: 'TTO', iso2Code: 'TT', datasetCode: 'tt-address-ed', searchType: 'singleline, validate' }, - { country: 'Trinidad and Tobago', iso3Code: 'TTO', iso2Code: 'TT', datasetCode: 'tt-address-eh', searchType: 'autocomplete' }, - { country: 'Tunisia', iso3Code: 'TUN', iso2Code: 'TN', datasetCode: 'tn-address-ed', searchType: 'singleline, validate' }, - { country: 'Tunisia', iso3Code: 'TUN', iso2Code: 'TN', datasetCode: 'tn-address-eh', searchType: 'autocomplete' }, - { country: 'Turkey', iso3Code: 'TUR', iso2Code: 'TR', datasetCode: 'tr-address-ed', searchType: 'singleline, validate' }, - { country: 'Turkey', iso3Code: 'TUR', iso2Code: 'TR', datasetCode: 'tr-address-eh', searchType: 'autocomplete' }, - { country: 'Turkish Republic of Northern Cyprus', iso3Code: 'NCY', iso2Code: 'CY', datasetCode: 'ny-address-eh', searchType: 'autocomplete' }, - { country: 'Turkmenistan', iso3Code: 'TKM', iso2Code: 'TM', datasetCode: 'tm-address-ed', searchType: 'singleline, validate' }, - { country: 'Turkmenistan', iso3Code: 'TKM', iso2Code: 'TM', datasetCode: 'tm-address-eh', searchType: 'autocomplete' }, - { country: 'Turks and Caicos Islands', iso3Code: 'TCA', iso2Code: 'TC', datasetCode: 'tc-address-eh', searchType: 'autocomplete' }, - { country: 'Tuvalu', iso3Code: 'TUV', iso2Code: 'TV', datasetCode: 'tv-address-ed', searchType: 'singleline, validate' }, - { country: 'Tuvalu', iso3Code: 'TUV', iso2Code: 'TV', datasetCode: 'tv-address-eh', searchType: 'autocomplete' }, - { country: 'Uganda', iso3Code: 'UGA', iso2Code: 'UG', datasetCode: 'ug-address-ed', searchType: 'singleline, validate' }, - { country: 'Uganda', iso3Code: 'UGA', iso2Code: 'UG', datasetCode: 'ug-address-eh', searchType: 'autocomplete' }, - { country: 'Ukraine', iso3Code: 'UKR', iso2Code: 'UA', datasetCode: 'ua-address-ed', searchType: 'singleline, validate' }, - { country: 'Ukraine', iso3Code: 'UKR', iso2Code: 'UA', datasetCode: 'ua-address-eh', searchType: 'autocomplete' }, - { country: 'United Arab Emirates', iso3Code: 'ARE', iso2Code: 'AE', datasetCode: 'ae-address-ed', searchType: 'singleline, validate' }, - { country: 'United Arab Emirates', iso3Code: 'ARE', iso2Code: 'AE', datasetCode: 'ae-address-eh', searchType: 'autocomplete' }, - { country: 'United Kingdom', iso3Code: 'GBR', iso2Code: 'GB', datasetCode: ['gb-address'], searchType: 'autocomplete' }, - { country: 'United Kingdom', iso3Code: 'GBR', iso2Code: 'GB', datasetCode: ['gb-additional-business', 'gb-additional-multipleresidence', 'gb-additional-notyetbuilt'], searchType: 'singleline' }, - { country: 'United Kingdom AddressBase Premium', iso3Code: 'GBR', iso2Code: 'GB', datasetCode: 'gb-address-addressbase', searchType: 'singleline, typedown, validate, lookup' }, - { country: 'United Kingdom AddressBase Premium with Islands', iso3Code: 'GBR', iso2Code: 'GB', datasetCode: 'gb-additional-addressbaseislands', searchType: 'singleline, typedown, validate, lookup' }, - { country: 'United Kingdom Business Names', iso3Code: 'GBR', iso2Code: 'GB', datasetCode: 'gb-additional-business', searchType: 'singleline, typedown' }, - { country: 'United Kingdom Electricity', iso3Code: 'GBR', iso2Code: 'GB', datasetCode: 'gb-additional-electricity', searchType: 'singleline, typedown, validate, lookup' }, - { country: 'United Kingdom Gas', iso3Code: 'GBR', iso2Code: 'GB', datasetCode: 'gb-additional-gas', searchType: 'singleline, typedown, validate, lookup' }, - { country: 'United Kingdom Street Level', iso3Code: 'GBR', iso2Code: 'GB', datasetCode: 'gb-address-streetlevel', searchType: 'singleline, typedown' }, - { country: 'United Kingdom Extended Business', iso3Code: 'GBR', iso2Code: 'GB', datasetCode: 'gb-additional-businessextended', searchType: 'singleline, typedown, validate, lookup' }, - { country: 'United Kingdom Cymraeg (Welsh Language) Postal Address', iso3Code: 'GBR', iso2Code: 'GB', datasetCode: 'gb-address-wales', searchType: 'singleline, typedown, validate' }, - { country: 'United States of America', iso3Code: 'USA', iso2Code: 'US', datasetCode: 'us-address', searchType: 'autocomplete, singleline, typedown, validate' }, - { country: 'Uruguay', iso3Code: 'URY', iso2Code: 'UY', datasetCode: 'uy-address-ed', searchType: 'singleline, validate' }, - { country: 'Uruguay', iso3Code: 'URY', iso2Code: 'UY', datasetCode: 'uy-address-eh', searchType: 'autocomplete' }, - { country: 'Uzbekistan', iso3Code: 'UZB', iso2Code: 'UZ', datasetCode: 'uz-address-ed', searchType: 'singleline, validate' }, - { country: 'Uzbekistan', iso3Code: 'UZB', iso2Code: 'UZ', datasetCode: 'uz-address-eh', searchType: 'autocomplete' }, - { country: 'Vanuatu', iso3Code: 'VUT', iso2Code: 'VU', datasetCode: 'vu-address-ed', searchType: 'singleline, validate' }, - { country: 'Vanuatu', iso3Code: 'VUT', iso2Code: 'VU', datasetCode: 'vu-address-eh', searchType: 'autocomplete' }, - { country: 'Vatican City (Holy See)', iso3Code: 'VAT', iso2Code: 'VA', datasetCode: 'va-address-ed', searchType: 'singleline, validate' }, - { country: 'Vatican City (Holy See)', iso3Code: 'VAT', iso2Code: 'VA', datasetCode: 'va-address-eh', searchType: 'autocomplete' }, - { country: 'Venezuela', iso3Code: 'VEN', iso2Code: 'VE', datasetCode: 've-address-ed', searchType: 'singleline, validate' }, - { country: 'Venezuela', iso3Code: 'VEN', iso2Code: 'VE', datasetCode: 've-address-eh', searchType: 'autocomplete' }, - { country: 'Viet Nam', iso3Code: 'VNM', iso2Code: 'VN', datasetCode: 'vn-address-ed', searchType: 'singleline, validate' }, - { country: 'Viet Nam', iso3Code: 'VNM', iso2Code: 'VN', datasetCode: 'vn-address-eh', searchType: 'autocomplete' }, - { country: 'Virgin Islands, British', iso3Code: 'VGB', iso2Code: 'VG', datasetCode: 'vg-address-eh', searchType: 'autocomplete' }, - { country: 'Virgin Islands, U.S.', iso3Code: 'VIR', iso2Code: 'VI', datasetCode: 'vi-address-eh', searchType: 'autocomplete' }, - { country: 'Wallis and Futuna Islands', iso3Code: 'WLF', iso2Code: 'WF', datasetCode: 'wf-address-eh', searchType: 'autocomplete' }, - { country: 'Western Sahara', iso3Code: 'ESH', iso2Code: 'EH', datasetCode: 'eh-address-ed', searchType: 'singleline, validate' }, - { country: 'Western Sahara', iso3Code: 'ESH', iso2Code: 'EH', datasetCode: 'eh-address-eh', searchType: 'autocomplete' }, - { country: 'Yemen', iso3Code: 'YEM', iso2Code: 'YE', datasetCode: 'ye-address-ed', searchType: 'singleline, validate' }, - { country: 'Yemen', iso3Code: 'YEM', iso2Code: 'YE', datasetCode: 'ye-address-eh', searchType: 'autocomplete' }, - { country: 'Zambia', iso3Code: 'ZMB', iso2Code: 'ZM', datasetCode: 'zm-address-ed', searchType: 'singleline, validate' }, - { country: 'Zambia', iso3Code: 'ZMB', iso2Code: 'ZM', datasetCode: 'zm-address-eh', searchType: 'autocomplete' }, - { country: 'Zimbabwe', iso3Code: 'ZWE', iso2Code: 'ZW', datasetCode: 'zw-address-ed', searchType: 'singleline, validate' }, - { country: 'Zimbabwe', iso3Code: 'ZWE', iso2Code: 'ZW', datasetCode: 'zw-address-eh', searchType: 'autocomplete' } -]; -//# sourceMappingURL=datasets-codes.js.map \ No newline at end of file diff --git a/dist/lib/datasets-codes.js.map b/dist/lib/datasets-codes.js.map deleted file mode 100644 index 6b7b550..0000000 --- a/dist/lib/datasets-codes.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"datasets-codes.js","sourceRoot":"","sources":["../../src/ts/datasets-codes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,YAAY,GAAG;IAC1B,EAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC3H,EAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACnH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACtH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACtH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC9G,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAChH,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC1H,EAAC,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACnI,EAAC,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC3H,EAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACzH,EAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACjH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACrH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC7G,EAAC,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,uBAAuB,EAAE,UAAU,EAAE,oCAAoC,EAAC;IAC1J,EAAC,OAAO,EAAE,qCAAqC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE,UAAU,EAAE,8CAA8C,EAAC;IAC7K,EAAC,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,8CAA8C,EAAC;IAC7J,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC1H,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAClH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC1H,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAClH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACxH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAChH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACpH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAC;IAC5G,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACtH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC9G,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACrH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC7G,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACtH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC9G,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,kCAAkC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAChJ,EAAC,OAAO,EAAE,kCAAkC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACxI,EAAC,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACtI,EAAC,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC9H,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACxH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAChH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACtH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC9G,EAAC,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACjI,EAAC,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACzH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACxH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAChH,EAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC5H,EAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACpH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACxH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAChH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACxH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAChH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,8CAA8C,EAAC;IAC3I,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC1H,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAClH,EAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC9H,EAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACtH,EAAC,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACxI,EAAC,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAChI,EAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACpH,EAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC5G,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACrH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC7G,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACrH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC7G,EAAC,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACxH,EAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACpH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACxH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAChH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACrH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC7G,EAAC,OAAO,EAAE,uCAAuC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACrJ,EAAC,OAAO,EAAE,uCAAuC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC7I,EAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC5H,EAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACpH,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC1H,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAClH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACpH,EAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC5G,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACtH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC9G,EAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC9H,EAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACtH,EAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC9H,EAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACtH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACxH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAChH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACxH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAChH,EAAC,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAClI,EAAC,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC1H,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACrH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC7G,EAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC3H,EAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACnH,EAAC,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACjI,EAAC,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACzH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACxH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAChH,EAAC,OAAO,EAAE,6BAA6B,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACnI,EAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC7H,EAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACrH,EAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACpH,EAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC5G,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACpH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAC;IAC3G,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,wBAAwB,EAAE,UAAU,EAAE,gCAAgC,EAAC;IACtJ,EAAC,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,yBAAyB,EAAE,UAAU,EAAE,oCAAoC,EAAC;IACjK,EAAC,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,gCAAgC,EAAC;IAC5I,EAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACrH,EAAC,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACxH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACrH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC7G,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACtH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC9G,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,gCAAgC,EAAC;IAC9H,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAC;IAC3G,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACrH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC7G,EAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACjH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACtH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC9G,EAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACzH,EAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACjH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAClH,EAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC5G,EAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACzH,EAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACjH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACtH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC9G,EAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC7H,EAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACrH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACtH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC9G,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACrH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC7G,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACxH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAChH,EAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACzH,EAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACjH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACrH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC7G,EAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACzH,EAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACjH,EAAC,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACzI,EAAC,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACjI,EAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACpH,EAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC5G,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACpH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,uBAAuB,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/H,EAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE,UAAU,EAAE,cAAc,EAAC;IACtH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACtH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC9G,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACrH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC7G,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACrH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAClH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACtH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC9G,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC1H,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAClH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACrH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC7G,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACxH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAChH,EAAC,OAAO,EAAE,yCAAyC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvJ,EAAC,OAAO,EAAE,yCAAyC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/I,EAAC,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAClI,EAAC,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC1H,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC9G,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACtH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC9G,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC1H,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAClH,EAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACpH,EAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC5G,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACtH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC9G,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACrH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC7G,EAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC7H,EAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACrH,EAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACzH,EAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACjH,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC1H,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAClH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACrH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC7G,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC1H,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAClH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACtH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC9G,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACxH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAChH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACxH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAChH,EAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACpH,EAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC5G,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACrH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC7G,EAAC,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACxH,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAClH,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC1H,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAClH,EAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACzH,EAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACjH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACtH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC9G,EAAC,OAAO,EAAE,iCAAiC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACvI,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACtH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC9G,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACxH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAChH,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC1H,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAClH,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAClH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC1H,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAClH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACrH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC7G,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACrH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC7G,EAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC3H,EAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACnH,EAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACrH,EAAC,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,0BAA0B,EAAE,UAAU,EAAE,8CAA8C,EAAC;IACzK,EAAC,OAAO,EAAE,4BAA4B,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,8CAA8C,EAAC;IAC/J,EAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACzH,EAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACjH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACrH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC7G,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACpH,EAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC9H,EAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACtH,EAAC,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC/H,EAAC,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACvH,EAAC,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAChI,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAC;IAC1G,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC9G,EAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACpH,EAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC5G,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACxH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAChH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC7G,EAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACjH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACtH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC9G,EAAC,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAChI,EAAC,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACxH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACxH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAChH,EAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACpH,EAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC5G,EAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC3H,EAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACnH,EAAC,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACxH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACtH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC9G,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACxH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAChH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACrH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC7G,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAClI,EAAC,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC1H,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACtH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC9G,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACxH,EAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACpH,EAAC,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACrI,EAAC,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC7H,EAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACnH,EAAC,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACjI,EAAC,OAAO,EAAE,kCAAkC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAChJ,EAAC,OAAO,EAAE,kCAAkC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACxI,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACrH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC7G,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC1H,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAClH,EAAC,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACrI,EAAC,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC7H,EAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC5H,EAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACpH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACtH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC9G,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC1H,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAClH,EAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC5H,EAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACpH,EAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,8CAA8C,EAAC;IAC9I,EAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC5H,EAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACpH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACxH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAChH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACxH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAChH,EAAC,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC/H,EAAC,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC5H,EAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACpH,EAAC,OAAO,EAAE,8CAA8C,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACpJ,EAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC3H,EAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACnH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAClH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAC;IACzG,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC7G,EAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACzH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACrH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC7G,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACxH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAChH,EAAC,OAAO,EAAE,gCAAgC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACtI,EAAC,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACpI,EAAC,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC5H,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACnH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAC;IAC1G,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC9G,EAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACxH,EAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAC;IAC/G,EAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACnH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACrH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC7G,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACtH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC9G,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC1H,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAClH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACxH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAChH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACxH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAChH,EAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC3H,EAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACnH,EAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACpH,EAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC5G,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACrH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC7G,EAAC,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACnI,EAAC,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC3H,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACtH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC9G,EAAC,OAAO,EAAE,qCAAqC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC3I,EAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC5H,EAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACpH,EAAC,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAChI,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACtH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC9G,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACtH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC9G,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACpI,EAAC,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC5H,EAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,YAAY,CAAC,EAAE,UAAU,EAAE,cAAc,EAAC;IACrH,EAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,wBAAwB,EAAE,iCAAiC,EAAE,2BAA2B,CAAC,EAAE,UAAU,EAAE,YAAY,EAAC;IAC/L,EAAC,OAAO,EAAE,oCAAoC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,wBAAwB,EAAE,UAAU,EAAE,wCAAwC,EAAC;IAC7K,EAAC,OAAO,EAAE,iDAAiD,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,kCAAkC,EAAE,UAAU,EAAE,wCAAwC,EAAC;IACpM,EAAC,OAAO,EAAE,+BAA+B,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,wBAAwB,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACtJ,EAAC,OAAO,EAAE,4BAA4B,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,2BAA2B,EAAE,UAAU,EAAE,wCAAwC,EAAC;IACxK,EAAC,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,wCAAwC,EAAC;IACxJ,EAAC,OAAO,EAAE,6BAA6B,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,wBAAwB,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACpJ,EAAC,OAAO,EAAE,kCAAkC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,gCAAgC,EAAE,UAAU,EAAE,wCAAwC,EAAC;IACnL,EAAC,OAAO,EAAE,wDAAwD,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE,UAAU,EAAE,gCAAgC,EAAC;IACnL,EAAC,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,8CAA8C,EAAC;IAC7J,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC1H,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAClH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvH,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/G,EAAC,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACvI,EAAC,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/H,EAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACzH,EAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACjH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACxH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAChH,EAAC,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC/H,EAAC,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC5H,EAAC,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACjI,EAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IAC9H,EAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IACtH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACrH,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC7G,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACtH,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;IAC9G,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAC;IACxH,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAC;CACjH,CAAC"} \ No newline at end of file diff --git a/dist/lib/event-factory.js b/dist/lib/event-factory.js deleted file mode 100644 index 0140a05..0000000 --- a/dist/lib/event-factory.js +++ /dev/null @@ -1,42 +0,0 @@ -/** - * Method event listener (pub/sub type thing) - */ -var EventFactory = /** @class */ (function () { - function EventFactory() { - // Create an object to hold the collection of events - this.collection = {}; - } - // Subscribe a new event - EventFactory.prototype.on = function (event, action) { - // Create the property array on the collection object - this.collection[event] = this.collection[event] || []; - // Push a new action for this event onto the array - this.collection[event].push(action); - }; - // Publish (trigger) an event - EventFactory.prototype.trigger = function (event, data) { - // If this event is in our collection (i.e. anyone's subscribed) - if (this.collection[event]) { - // Loop over all the actions for this event - for (var i = 0; i < this.collection[event].length; i++) { - // Create array with default data as 1st item - var args = [data]; - // Loop over additional args and add to array - for (var a = 2; a < arguments.length; a++) { - args.push(arguments[a]); - } - // Call each action for this event type, passing the args - try { - this.collection[event][i].apply(this.collection, args); - } - catch (e) { - // What to do? Uncomment the below to show errors in your event actions - //console.error(e); - } - } - } - }; - return EventFactory; -}()); -export default EventFactory; -//# sourceMappingURL=event-factory.js.map \ No newline at end of file diff --git a/dist/lib/event-factory.js.map b/dist/lib/event-factory.js.map deleted file mode 100644 index dab3202..0000000 --- a/dist/lib/event-factory.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"event-factory.js","sourceRoot":"","sources":["../../src/ts/event-factory.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;IAAA;QACE,oDAAoD;QACpD,eAAU,GAAG,EAAE,CAAC;IAkClB,CAAC;IAhCC,wBAAwB;IACxB,yBAAE,GAAF,UAAG,KAAK,EAAE,MAAM;QACd,qDAAqD;QACrD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACtD,kDAAkD;QAClD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,6BAA6B;IAC7B,8BAAO,GAAP,UAAQ,KAAK,EAAE,IAAI;QACjB,gEAAgE;QAChE,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YAC1B,2CAA2C;YAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACtD,6CAA6C;gBAC7C,IAAM,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;gBAEpB,6CAA6C;gBAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACzC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;iBACzB;gBAED,yDAAyD;gBACzD,IAAI;oBACF,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;iBACxD;gBAAC,OAAO,CAAC,EAAE;oBACV,uEAAuE;oBACvE,mBAAmB;iBACpB;aACF;SACF;IACH,CAAC;IACH,mBAAC;AAAD,CAAC,AApCD,IAoCC"} \ No newline at end of file diff --git a/dist/lib/index.js b/dist/lib/index.js deleted file mode 100644 index 7b9c022..0000000 --- a/dist/lib/index.js +++ /dev/null @@ -1,3 +0,0 @@ -import AddressValidation from './address-search'; -window.AddressValidation = AddressValidation; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/lib/index.js.map b/dist/lib/index.js.map deleted file mode 100644 index b77a8a6..0000000 --- a/dist/lib/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ts/index.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,kBAAkB,CAAC;AAQjD,MAAM,CAAC,iBAAiB,GAAG,iBAAiB,CAAC"} \ No newline at end of file diff --git a/dist/lib/request.js b/dist/lib/request.js deleted file mode 100644 index 66f1c9c..0000000 --- a/dist/lib/request.js +++ /dev/null @@ -1,50 +0,0 @@ -var Request = /** @class */ (function () { - function Request(instance) { - this.instance = instance; - } - Request.prototype.send = function (url, method, callback, data, headers) { - var _this = this; - if (headers === void 0) { headers = []; } - this.currentRequest = new XMLHttpRequest(); - this.currentRequest.open(method, url, true); - this.currentRequest.timeout = 5000; // 5 seconds - this.currentRequest.setRequestHeader('auth-token', this.instance.options.token); - this.currentRequest.setRequestHeader('Content-Type', 'application/json'); - this.currentRequest.setRequestHeader('Accept', 'application/json'); - // Add additional headers if supplied - headers.forEach(function (header) { return _this.currentRequest.setRequestHeader(header.key, header.value); }); - this.currentRequest.onload = function (xhr) { - if (_this.currentRequest.status >= 200 && _this.currentRequest.status < 400) { - // Success! - var data_1 = JSON.parse(_this.currentRequest.responseText); - callback(data_1); - } - else { - // We reached our target server, but it returned an error - _this.instance.searchSpinner.hide(); - // Fire an event to notify users of a general error - _this.instance.events.trigger('request-error', xhr); - // Fire an event for the specific status code - _this.instance.events.trigger("request-error-".concat(_this.currentRequest.status), xhr); - } - }; - this.currentRequest.onerror = function (xhr) { - // There was a connection error of some sort - // Hide the inline search spinner - _this.instance.searchSpinner.hide(); - // Fire an event to notify users of an error - _this.instance.events.trigger('request-error', xhr); - }; - this.currentRequest.ontimeout = function (xhr) { - // There was a connection timeout - // Hide the inline search spinner - _this.instance.searchSpinner.hide(); - // Fire an event to notify users of the timeout - _this.instance.events.trigger('request-timeout', xhr); - }; - this.currentRequest.send(data); - }; - return Request; -}()); -export default Request; -//# sourceMappingURL=request.js.map \ No newline at end of file diff --git a/dist/lib/request.js.map b/dist/lib/request.js.map deleted file mode 100644 index 0a6466a..0000000 --- a/dist/lib/request.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/ts/request.ts"],"names":[],"mappings":"AAAA;IAEE,iBAAY,QAAQ;QAClB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAKM,sBAAI,GAAX,UAAY,GAAW,EAAE,MAAsB,EAAE,QAAgC,EAAE,IAAa,EAAE,OAAsD;QAAxJ,iBA8CC;QA9CiG,wBAAA,EAAA,YAAsD;QACtJ,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;QAC3C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,YAAY;QAChD,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAChF,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QACzE,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QAEnE,qCAAqC;QACrC,OAAO,CAAC,OAAO,CAAC,UAAA,MAAM,IAAI,OAAA,KAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,EAA9D,CAA8D,CAAC,CAAC;QAE1F,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,UAAC,GAAG;YAC/B,IAAI,KAAI,CAAC,cAAc,CAAC,MAAM,IAAI,GAAG,IAAI,KAAI,CAAC,cAAc,CAAC,MAAM,GAAG,GAAG,EAAE;gBACzE,WAAW;gBACX,IAAM,MAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;gBAC1D,QAAQ,CAAC,MAAI,CAAC,CAAC;aAChB;iBAAM;gBACL,yDAAyD;gBACzD,KAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;gBAEnC,mDAAmD;gBACnD,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;gBACnD,6CAA6C;gBAC7C,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,wBAAiB,KAAI,CAAC,cAAc,CAAC,MAAM,CAAE,EAAE,GAAG,CAAC,CAAC;aAClF;QACH,CAAC,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,UAAC,GAAG;YAChC,4CAA4C;YAC5C,iCAAiC;YACjC,KAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YAEnC,4CAA4C;YAC5C,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QACrD,CAAC,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,UAAC,GAAG;YAClC,iCAAiC;YACjC,iCAAiC;YACjC,KAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YAEnC,+CAA+C;YAC/C,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;QACvD,CAAC,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IACH,cAAC;AAAD,CAAC,AAxDD,IAwDC"} \ No newline at end of file diff --git a/dist/lib/search-options.js b/dist/lib/search-options.js deleted file mode 100644 index 2c61807..0000000 --- a/dist/lib/search-options.js +++ /dev/null @@ -1,27 +0,0 @@ -export var AddressValidationMode; -(function (AddressValidationMode) { - AddressValidationMode["AUTOCOMPLETE"] = "autocomplete"; - AddressValidationMode["SINGLELINE"] = "singleline"; - AddressValidationMode["VALIDATE"] = "validate"; -})(AddressValidationMode || (AddressValidationMode = {})); -// Default settings -export var defaults = { - enableWhat3Words: true, - searchType: AddressValidationMode.AUTOCOMPLETE, - input: { placeholderText: 'Start typing an address...', applyFocus: false }, - formattedAddressContainer: { showHeading: false, headingType: 'h3', validatedHeadingText: 'Validated address', manualHeadingText: 'Manual address entered' }, - searchAgain: { visible: true, text: 'Search again' }, - useAddressEnteredText: ' - Use address entered or try again...', - useSpinner: false, - language: 'en', - addressLineLabels: [ - 'address_line_1', - 'address_line_2', - 'address_line_3', - 'locality', - 'region', - 'postal_code', - 'country' - ] -}; -//# sourceMappingURL=search-options.js.map \ No newline at end of file diff --git a/dist/lib/search-options.js.map b/dist/lib/search-options.js.map deleted file mode 100644 index aa071a2..0000000 --- a/dist/lib/search-options.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"search-options.js","sourceRoot":"","sources":["../../src/ts/search-options.ts"],"names":[],"mappings":"AAmBA,MAAM,CAAN,IAAY,qBAIX;AAJD,WAAY,qBAAqB;IAC/B,sDAA6B,CAAA;IAC7B,kDAAyB,CAAA;IACzB,8CAAqB,CAAA;AACvB,CAAC,EAJW,qBAAqB,KAArB,qBAAqB,QAIhC;AAED,mBAAmB;AACnB,MAAM,CAAC,IAAM,QAAQ,GAAG;IACtB,gBAAgB,EAAE,IAAI;IACtB,UAAU,EAAE,qBAAqB,CAAC,YAAY;IAC9C,KAAK,EAAE,EAAE,eAAe,EAAE,4BAA4B,EAAE,UAAU,EAAE,KAAK,EAAE;IAC3E,yBAAyB,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,wBAAwB,EAAE;IAC5J,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE;IACpD,qBAAqB,EAAE,iDAAiD;IACxE,UAAU,EAAE,KAAK;IACjB,QAAQ,EAAE,IAAI;IACd,iBAAiB,EAAE;QACjB,gBAAgB;QAChB,gBAAgB;QAChB,gBAAgB;QAChB,UAAU;QACV,QAAQ;QACR,aAAa;QACb,SAAS;KACV;CACF,CAAC"} \ No newline at end of file diff --git a/dist/lib/translations.js b/dist/lib/translations.js deleted file mode 100644 index 4fc8680..0000000 --- a/dist/lib/translations.js +++ /dev/null @@ -1,18 +0,0 @@ -// Translations -export var translations = { - // language / country / property - en: { - gbr: { - locality: 'Town/City', - region: 'County', - postal_code: 'Post code' - }, - usa: { - locality: 'City', - region: 'State', - postal_code: 'ZIP code' - } - } - // Add other languages below -}; -//# sourceMappingURL=translations.js.map \ No newline at end of file diff --git a/dist/lib/translations.js.map b/dist/lib/translations.js.map deleted file mode 100644 index 3291c10..0000000 --- a/dist/lib/translations.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"translations.js","sourceRoot":"","sources":["../../src/ts/translations.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,MAAM,CAAC,IAAM,YAAY,GAAG;IAC1B,gCAAgC;IAChC,EAAE,EAAE;QACF,GAAG,EAAE;YACH,QAAQ,EAAE,WAAW;YACrB,MAAM,EAAE,QAAQ;YAChB,WAAW,EAAE,WAAW;SACzB;QACD,GAAG,EAAE;YACH,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,OAAO;YACf,WAAW,EAAE,UAAU;SACxB;KACF;IACD,4BAA4B;CAC7B,CAAC"} \ No newline at end of file diff --git a/index.html b/index.html index 7e7557d..f71d05d 100644 --- a/index.html +++ b/index.html @@ -341,7 +341,7 @@

Validated address information

- + Download sample code @@ -375,7 +375,7 @@

Validated address information

// Initialise address validation var address = new AddressValidation(options); - var addressValidationMap, addressValidationMarker; + var addressValidationMap, addressValidationW3wMarker, addressValidationGeoMarker; // Accept a new token from the token prompt and set this in the AddressValidation class function addToken() { @@ -469,39 +469,72 @@

Validated address information

address.events.on("post-enrichment", function(data) { if ((data.result.geocodes && data.result.geocodes.latitude) || (data.result.what3words && data.result.what3words.latitude)) { - document.querySelector("#map").classList.remove("hidden"); - - let lat, long; - if (data.result.what3words.latitude && data.result.what3words.longitude && data.result.what3words.name) { + document.querySelector("#map").classList.remove("hidden"); + document.querySelector(".metadata #what3words-key").classList.add("hidden"); + document.querySelector(".metadata #what3words-value").classList.add("hidden"); + + let w3wLat, w3wLong, w3wLatLong; + if (data.result.what3words && data.result.what3words.latitude) { document.querySelector(".metadata #what3words-key").classList.remove("hidden"); document.querySelector(".metadata #what3words-value").classList.remove("hidden"); document.querySelector(".metadata #what3words-value").innerHTML = '///' + data.result.what3words.name; - lat = data.result.what3words.latitude; - long = data.result.what3words.longitude; - } else { - document.querySelector(".metadata #what3words-key").classList.add("hidden"); - document.querySelector(".metadata #what3words-value").classList.add("hidden"); - - lat = data.result.geocodes.latitude; - long = data.result.geocodes.longitude; - } + w3wLat = data.result.what3words.latitude; + w3wLong = data.result.what3words.longitude; + w3wLatLong = [w3wLat, w3wLong]; + } + + let geoLat, geoLong, geoLatLong; + if (data.result.geocodes && data.result.geocodes.latitude) { + geoLat = data.result.geocodes.latitude; + geoLong = data.result.geocodes.longitude; + geoLatLong = [geoLat, geoLong]; + } - var latlong = [lat, long]; var zoom = 16; var attribution = '© OpenStreetMap contributors'; + // Define a custom icon for what3words + var w3wIcon = L.icon({ + iconUrl: './dist/images/w3w.loc.png', + iconSize: [30, 37], // size of the icon + iconAnchor: [15, 36], // point of the icon which will correspond to marker's location + popupAnchor: [0, -20] // point from which the popup should open relative to the iconAnchor + }); - // Intantiate a new map + // Instantiate a new map if (!addressValidationMap) { - addressValidationMap = L.map('map').setView(latlong, zoom); + // The hardcoded coordinated are needed to initialize the map. Will be overwritten with the what3words and geocode markers. + addressValidationMap = L.map('map').setView([51.500264, 0.633506],zoom); L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {attribution}).addTo(addressValidationMap); - addressValidationMarker = L.marker(latlong).addTo(addressValidationMap); } else { - // Update the previous map instance - addressValidationMap.panTo(latlong, {duration: 1}); - addressValidationMarker.setLatLng(latlong); + // Update the previous map instance by removing any existing markers + if (addressValidationW3wMarker) { + addressValidationW3wMarker.remove(); + } + + if (addressValidationGeoMarker) { + addressValidationGeoMarker.remove(); + } } + + // Add new markers for location insight datasets + var markerArray = []; + if (w3wLatLong) { + addressValidationMap.panTo(w3wLatLong, {duration: 1}); + addressValidationW3wMarker = L.marker(w3wLatLong, {icon: w3wIcon}).addTo(addressValidationMap); + markerArray.push(addressValidationW3wMarker); + } + + if (geoLatLong) { + addressValidationMap.panTo(geoLatLong, {duration: 1}); + addressValidationGeoMarker = L.marker(geoLatLong).addTo(addressValidationMap); + markerArray.push(addressValidationGeoMarker); + } + + // Ensure all markers fit onto the map + var group = L.featureGroup(markerArray); + addressValidationMap.fitBounds(group.getBounds().pad(0.25)); } }); @@ -536,7 +569,7 @@

Validated address information

} } - document.querySelector(".metadata #delivery-address-key").innerText = data.result.address ? '📍' : ''; + document.querySelector(".metadata #delivery-address-key").innerHTML = data.result.address ? '' : ''; document.querySelector(".metadata #delivery-address-value").innerHTML = data.result.address ? Object.values(data.result.address).filter(line => line !== "").join("
") : ''; document.querySelector(".metadata").classList.remove("invisible"); @@ -548,6 +581,8 @@

Validated address information

document.querySelector(".metadata #confidence-value").innerText = ''; document.querySelector(".metadata #delivery-type-key").innerText = ''; document.querySelector(".metadata #delivery-type-value").innerText = ''; + document.querySelector(".metadata #what3words-key").classList.add("hidden"); + document.querySelector(".metadata #what3words-value").classList.add("hidden"); document.querySelector(".metadata").classList.add("invisible"); document.querySelector("#map").classList.add("hidden"); diff --git a/src/images/marker-icon-s.png b/src/images/marker-icon-s.png new file mode 100644 index 0000000000000000000000000000000000000000..0fb3e159c3c716063630b9dc3d36b64f3eeb94a6 GIT binary patch literal 1038 zcmV+p1o8WcP)X1^@s6?pbuq00001b5ch_0Itp) z=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1EWbqK~y+TbyQ1e zTvZtU&tvYqGMVX2Ev_sSW0#6FrJyzt5Ujdz=|*tjBF##dqNYVx3Nm6-bs?f6)I~r+ zA#D&*V|}G)GASZjv^1KQJmz_y=jnfL#!05Z4=(rK^MBv}zL&slIPuE-op^XZK8_Je zs@B*J0J)0yD?gk$)!bq2U?3hp`?;6l?7@6K|6DekJ>hv?jZtc>HB<-{_<_F^N6~AR z!orU)J#L&P6(67ZG!K+cAE;EGA1Rfq(h{PK1ylkh1Q;dYp&!4~?Y27Y88GJEpI&|< zq)zN*G7lfD)?UmO%e9`cBoYRsvY^qwyT|z6O@L%aD&^XN>g$~H38y3DFU%b+mPS7u zsoXIhDa-_O$zY@`L#s7F2!%+a6Kx$IN*;yw=K8fT3MP;Sj}?mLW1%9%MRFP@1Gu{w z!{l8Yj+PQ&!Uv8-gLcdeilfyd#KMz2<9Ww4cUNl-8I}%V089u7*6)Olr?Gw}Qp@hNBb_6TG{|Sxj8}QlEHMqPcASMM! z&^a~=`ywIOUcW$%)?dWE);4Za>NUh}_FxoNgM)DKI)~+M4SZ6D0MDJ>@sR(IF=mlU zMwVi~xr!UKQx9GVcD@yA=m?xC4mp;)Hlkyjgq;Q$^$Y#A{*2Wk{y>Lq?KZ^C`oGI9 z2KpJiyHQf%8x{K>t(=<*()Bc2&V|jjZwuUw!lk$WvN(wxvkIqwg+MduI(qHd+RE0SUR@h$N)L2t@O9AaBVL9{PuLZ z=mRkxXf47SD!T#4&DtB)b4!zSx6ockp6W|>#VLsWM*17ed8UUVdzg(1w|>K~Y@yFg zF(huBJKZrde1j&<#Ld%1<#=bJC9Lr4joB&uCGBE3vV$>~RPWYefn!;gV22H;U~?Y# zezDIOV4t{g{T{jW*s@I%J`d!bQ( z>XH8O5ca3t2d>eprnmMNsPL`+(LVgIn1KBfi+$(z4(|fsU)+R4J-XUqNB{r;07*qo IM6N<$g1I>AdH?_b literal 0 HcmV?d00001 diff --git a/src/images/w3w.loc.png b/src/images/w3w.loc.png new file mode 100644 index 0000000000000000000000000000000000000000..dc98c3b71a568473ca3610552edabc56c608e178 GIT binary patch literal 8187 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 literal 0 HcmV?d00001 diff --git a/src/images/w3w_Symbol_RGB_WhiteRed.png b/src/images/w3w_Symbol_RGB_WhiteRed.png deleted file mode 100644 index 5a7b8293b761536445afcccdde6bbebd9770615e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5426 zcmeHLdpwkB8y?X(*!H+tSC-#~>y{S&7GLTbX)q_3JMHg0@}q6Z-u!mg-c|}Cvn2pRI-xof!+xW#( zv+R(OEE0)?$6$KcH(Jy%S~e^R3{!@Pxr8HNF}SVu7z~Ap$LwL@Br!6|K%YR7$7tDp z4*D#C*1MYwuY{Q6D-xLV9AQvV^)&{A@ke&e@$ejp<#V;;e?;B0|7@dw*d&<^4|rz= zdQ_T6@y7e*P5UFlc%umpael#Lt(xjitIu-lBoA7eWkif!>&$FQ==ablWJjDTU23tY zOX#nP=CLyce4n}x4F(!njp0^jjH>K7Tzu;=C&)nQNulQ!r!2B*hJgR9&NyPG$;-Vn zqWTLbH8nL-&xILE$oKL^dgRCe-ax-_=((g>#8hwa)R|Vrkt}*BDMG-%t2E8<5{%6p z2&`IJ(H53TXGPJ%N4K;ZSRD>x+i?!DFHHXBAuOA*O&7QkDSgU7XU}VMl zI$HS4wEAXh_AcxzypLb@(pZ%s?F^y*=pF9kmAAfi>RAtv5~nF#c&L@5XY%@u zO6bkmZ`#7I7WfS%ELC)@(4`jaSv6M@{ybZhE!EoB_W+RN-QFdvAN^cqJ{aKkmZPWF~p4@LoStNf3}mFYnb81s#g>>RI*@ zS~lKT8BKUnzWetbL)53m9l7`KE-!D1&XS%;$1$#^ef+JHr!a209DG-gnM*!Tde%3- z!7b6}2ff6Hw!r=LZ?5NfJdHbV;vc^&oW5P*oJe*wAErz7#N!z2)6ONUSqXIK-<0~@ zKmKB|*18qcY3tB@m>t2Vg~gc+>zhUKH?-4@hV^Crome&N94*b}Rn?talWgM7n$Ocu z@YjE+u9PJnOS$jY_-AU~%JTKh$Yiy=zuGge_H?*73g-;iqz^-Nhh-onx_6N~aQjop z#MJHuLx+V>-RoQHsowXpGBo)A-4uIcq%|z$`;`&EwXP*RGH-s2M|lbK7<77Plu8*0L!U|CH3 z`4$9L58l6lW3(VwkVuxRQ-3GKw=o$>R2wBr98Ez}8W6DR#*iGIZG7*@vTi_aSW$a9XEu5EO&eT9UJ5dsYL+kpCeapzV@RG977R}ipJ5} zHjA;^qzTweqB!F+q5h7sm=}c%uh)y&&)Kl7?U2%ofl8GOag>Ez0hKn;DAN#m9kNF& z)7oSaT>n&^95Qh9My{avIXjlMwCHss2TBa!R-?2)6~z=W`RI)_Lr_ITKIb4s-dCg@ zLjE?6k!mc~ep#oU%0aQ%OnkFQJLpTBDFJKji)M6W)f^DXjS!Y4riipdc*Ov)sPWL@ zQP6HP(rbkMstV0eq#a@kBN<`}0qx^v$PzE^&@n7z@e!LsKMsfy#l(_rST*seDTZ-0 zLu~{W0V@VDWfaU6z)*)BQw1>8Vfx^(RMcU~;4t|$FlCydBnoB(#YmuFsZ2Z*t@7kX z8qOCb28tP?L1j$56dE)PK_}24SO&DvpjUu|<~ylE!_m+nkZ5f>mH-J28ipXMIOqYm zYt8lQO#DPDsusA5j*@x+YFVOf>;knkP*(FWk9KH* zD*O-`AqEe{W+9ou&D8-E`Os#>KH$><69U#k)HaAJ1sX8QpH`Ay`0`krYvkr9u?$jE z+v=(4$Vyp#dh%(Jh)TjS)X|y!`vxlH?SiD$Xwr5WB1u^7Yd0XP8Z5x@(5e07k;6GIqtOUT&W%F_X zfQkB#bfE;mo{Onb-6--VYhcMZhC+%?{&d6I+EOTYrNO2!xscCs{beO}}nSMKXc&C5=icyx7# zK8(FWM#OTX{ZIG1UC+rsa!$M$nA9*eFEbbLjl-!Cg+lmT@0ObBf69cFhTVYxlv9+F}^R zHr{2PA9?9^rdqd+mvCjU*}1*1x6)wf$RiK;9cq$`Kf8EN4WH6H6{S%jvoP!4z+ImV zZdc`mm(SEqYmPHQ`Ipp-GW4Hab@8-18lT{|^va7LRh-_p7!ai~#5J3uzpJIxenI*R zek4iS{jTUas{U0>(SWdO=Iv2-&{;lJW8~$VktY>pAIHwr-ExU}+L;|O(70WZ;d71r zWjHr8EN;;={OoxD3q#MH9*2Jo(ciAt|55hQ{0!yb0Bn0tmwwFcj!mBy2nv;~usvl( zmMabEuQy#}x8gO2B1C)jCxv~hiy=QPewW}^-0^i~J5QqwHgk#b3$MLs7H?GE=YLbm zfbA!tM8k7bHo@h&V5Xuej&SZZ-UD_{Z?{gZuh7)2guT4rz1z!dHSM9xd0Fl!{o|(- zW_M3TCB}2O$HwVQ`bL_bR()691_k)~Em;@XCH?u-;GcDHa@|?+;=etSAN|$68E|qm va~Fe=O3{`0d`$HDr0oAaEZi9D&5Owt>Z}UdPVa|9P>lUvC)+{_^~(PMFiEln diff --git a/src/ts/address-search.ts b/src/ts/address-search.ts index 8922351..d957792 100644 --- a/src/ts/address-search.ts +++ b/src/ts/address-search.ts @@ -27,7 +27,6 @@ export default class AddressValidation { private inputs: HTMLInputElement[]; private lastSearchTerm: string; private currentSearchTerm: string; - private shouldTriggerWhat3WordsEnrichment: boolean; private currentCountryCode: string; private currentDataSet: string | string[]; private hasSearchInputBeenReset: boolean; @@ -66,8 +65,7 @@ export default class AddressValidation { }, attributes: { geocodes: ['latitude', 'longitude', 'match_level'], - what3words: this.shouldTriggerWhat3WordsEnrichment ? - ['latitude', 'longitude', 'name', 'description'] : null + what3words: this.currentCountryCode == 'GBR' ? ['latitude', 'longitude', 'name', 'description'] : null } }; @@ -396,7 +394,6 @@ export default class AddressValidation { } else { this.isWhat3Words = false; - this.shouldTriggerWhat3WordsEnrichment = false; } // Fire an event before a search takes place @@ -1070,9 +1067,6 @@ export default class AddressValidation { const headers = [{ key: 'Add-Addresses', value: true }]; const callback = this.picklist.showLookup; - //Set the shouldTriggerWhat3WordsEnrichment so that we can trigger it after the user chooses an address. - this.shouldTriggerWhat3WordsEnrichment = true; - // Initiate new Search request this.request.send(url, 'POST', callback, lookupV2Request, headers); }