From 9b56af1c2e5fd303a669f91e40973ef79f3c4e7b Mon Sep 17 00:00:00 2001 From: artur Date: Mon, 19 Aug 2024 18:33:09 +0200 Subject: [PATCH] Add updated built assets --- dist/nostr-embed.js | 4 ++-- dist/nostr-embed.js.gz | Bin 168794 -> 168793 bytes 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dist/nostr-embed.js b/dist/nostr-embed.js index 5602f62..fc8acba 100644 --- a/dist/nostr-embed.js +++ b/dist/nostr-embed.js @@ -1,3 +1,3 @@ /*! For license information please see nostr-embed.js.LICENSE.txt */ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.nostrEmbed=t():e.nostrEmbed=t()}(this,(()=>(()=>{var e,t,n={187:(e,t)=>{"use strict";function n(e){if(!Number.isSafeInteger(e))throw new Error(`Wrong integer: ${e}`)}function r(...e){const t=(e,t)=>n=>e(t(n));return{encode:Array.from(e).reverse().reduce(((e,n)=>e?t(e,n.encode):n.encode),void 0),decode:e.reduce(((e,n)=>e?t(e,n.decode):n.decode),void 0)}}function o(e){return{encode:t=>{if(!Array.isArray(t)||t.length&&"number"!=typeof t[0])throw new Error("alphabet.encode input should be an array of numbers");return t.map((t=>{if(n(t),t<0||t>=e.length)throw new Error(`Digit index outside alphabet: ${t} (alphabet: ${e.length})`);return e[t]}))},decode:t=>{if(!Array.isArray(t)||t.length&&"string"!=typeof t[0])throw new Error("alphabet.decode input should be array of strings");return t.map((t=>{if("string"!=typeof t)throw new Error(`alphabet.decode: not string element=${t}`);const n=e.indexOf(t);if(-1===n)throw new Error(`Unknown letter: "${t}". Allowed: ${e}`);return n}))}}}function i(e=""){if("string"!=typeof e)throw new Error("join separator should be string");return{encode:t=>{if(!Array.isArray(t)||t.length&&"string"!=typeof t[0])throw new Error("join.encode input should be array of strings");for(let e of t)if("string"!=typeof e)throw new Error(`join.encode: non-string input=${e}`);return t.join(e)},decode:t=>{if("string"!=typeof t)throw new Error("join.decode input should be string");return t.split(e)}}}function a(e,t="="){if(n(e),"string"!=typeof t)throw new Error("padding chr should be string");return{encode(n){if(!Array.isArray(n)||n.length&&"string"!=typeof n[0])throw new Error("padding.encode input should be array of strings");for(let e of n)if("string"!=typeof e)throw new Error(`padding.encode: non-string input=${e}`);for(;n.length*e%8;)n.push(t);return n},decode(n){if(!Array.isArray(n)||n.length&&"string"!=typeof n[0])throw new Error("padding.encode input should be array of strings");for(let e of n)if("string"!=typeof e)throw new Error(`padding.decode: non-string input=${e}`);let r=n.length;if(r*e%8)throw new Error("Invalid padding: string should have whole number of bytes");for(;r>0&&n[r-1]===t;r--)if(!((r-1)*e%8))throw new Error("Invalid padding: string has too much padding");return n.slice(0,r)}}}function s(e){if("function"!=typeof e)throw new Error("normalize fn should be function");return{encode:e=>e,decode:t=>e(t)}}function c(e,t,r){if(t<2)throw new Error(`convertRadix: wrong from=${t}, base cannot be less than 2`);if(r<2)throw new Error(`convertRadix: wrong to=${r}, base cannot be less than 2`);if(!Array.isArray(e))throw new Error("convertRadix: data should be array");if(!e.length)return[];let o=0;const i=[],a=Array.from(e);for(a.forEach((e=>{if(n(e),e<0||e>=t)throw new Error(`Wrong integer: ${e}`)}));;){let e=0,n=!0;for(let i=o;it?l(t,e%t):e,u=(e,t)=>e+(t-l(e,t));function f(e,t,r,o){if(!Array.isArray(e))throw new Error("convertRadix2: data should be array");if(t<=0||t>32)throw new Error(`convertRadix2: wrong from=${t}`);if(r<=0||r>32)throw new Error(`convertRadix2: wrong to=${r}`);if(u(t,r)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${r} carryBits=${u(t,r)}`);let i=0,a=0;const s=2**r-1,c=[];for(const o of e){if(n(o),o>=2**t)throw new Error(`convertRadix2: invalid data word=${o} from=${t}`);if(i=i<32)throw new Error(`convertRadix2: carry overflow pos=${a} from=${t}`);for(a+=t;a>=r;a-=r)c.push((i>>a-r&s)>>>0);i&=2**a-1}if(i=i<=t)throw new Error("Excess padding");if(!o&&i)throw new Error(`Non-zero padding: ${i}`);return o&&a>0&&c.push(i>>>0),c}function d(e){return n(e),{encode:t=>{if(!(t instanceof Uint8Array))throw new Error("radix.encode input should be Uint8Array");return c(Array.from(t),256,e)},decode:t=>{if(!Array.isArray(t)||t.length&&"number"!=typeof t[0])throw new Error("radix.decode input should be array of strings");return Uint8Array.from(c(t,e,256))}}}function p(e,t=!1){if(n(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(u(8,e)>32||u(e,8)>32)throw new Error("radix2: carry overflow");return{encode:n=>{if(!(n instanceof Uint8Array))throw new Error("radix2.encode input should be Uint8Array");return f(Array.from(n),8,e,!t)},decode:n=>{if(!Array.isArray(n)||n.length&&"number"!=typeof n[0])throw new Error("radix2.decode input should be array of strings");return Uint8Array.from(f(n,e,8,t))}}}function A(e){if("function"!=typeof e)throw new Error("unsafeWrapper fn should be function");return function(...t){try{return e.apply(null,t)}catch(e){}}}function h(e,t){if(n(e),"function"!=typeof t)throw new Error("checksum fn should be function");return{encode(n){if(!(n instanceof Uint8Array))throw new Error("checksum.encode: input should be Uint8Array");const r=t(n).slice(0,e),o=new Uint8Array(n.length+e);return o.set(n),o.set(r,n.length),o},decode(n){if(!(n instanceof Uint8Array))throw new Error("checksum.decode: input should be Uint8Array");const r=n.slice(0,-e),o=t(r).slice(0,e),i=n.slice(-e);for(let t=0;te.toUpperCase().replace(/O/g,"0").replace(/[IL]/g,"1")))),t.base64=r(p(6),o("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),a(6),i("")),t.base64url=r(p(6),o("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),a(6),i(""));const y=e=>r(d(58),o(e),i(""));t.base58=y("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),t.base58flickr=y("123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"),t.base58xrp=y("rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz");const m=[0,2,3,5,6,7,9,10,11];t.base58xmr={encode(e){let n="";for(let r=0;rr(h(4,(t=>e(e(t)))),t.base58);const g=r(o("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),i("")),v=[996825010,642813549,513874426,1027748829,705979059];function w(e){const t=e>>25;let n=(33554431&e)<<5;for(let e=0;e>e&1)&&(n^=v[e]);return n}function _(e,t,n=1){const r=e.length;let o=1;for(let t=0;t126)throw new Error(`Invalid prefix (${e})`);o=w(o)^n>>5}o=w(o);for(let t=0;tn)throw new TypeError(`Wrong string length: ${e.length} (${e}). Expected (8..${n})`);const r=e.toLowerCase();if(e!==r&&e!==e.toUpperCase())throw new Error("String must be lowercase or uppercase");const o=(e=r).lastIndexOf("1");if(0===o||-1===o)throw new Error('Letter "1" must be present between prefix and data only');const i=e.slice(0,o),a=e.slice(o+1);if(a.length<6)throw new Error("Data must be at least 6 characters long");const s=g.decode(a).slice(0,-6),c=_(i,s,t);if(!a.endsWith(c))throw new Error(`Invalid checksum in ${e}: expected "${c}"`);return{prefix:i,words:s}}return{encode:function(e,n,r=90){if("string"!=typeof e)throw new Error("bech32.encode prefix should be string, not "+typeof e);if(!Array.isArray(n)||n.length&&"number"!=typeof n[0])throw new Error("bech32.encode words should be array of numbers, not "+typeof n);const o=e.length+7+n.length;if(!1!==r&&o>r)throw new TypeError(`Length ${o} exceeds limit ${r}`);return`${e=e.toLowerCase()}1${g.encode(n)}${_(e,n,t)}`},decode:a,decodeToBytes:function(e){const{prefix:t,words:n}=a(e,!1);return{prefix:t,words:n,bytes:r(n)}},decodeUnsafe:A(a),fromWords:r,fromWordsUnsafe:i,toWords:o}}t.bech32=b("bech32"),t.bech32m=b("bech32m"),t.utf8={encode:e=>(new TextDecoder).decode(e),decode:e=>(new TextEncoder).encode(e)},t.hex=r(p(4),o("0123456789abcdef"),i(""),s((e=>{if("string"!=typeof e||e.length%2)throw new TypeError(`hex.decode: expected string, got ${typeof e} with length ${e.length}`);return e.toLowerCase()})));const C={utf8:t.utf8,hex:t.hex,base16:t.base16,base32:t.base32,base64:t.base64,base64url:t.base64url,base58:t.base58,base58xmr:t.base58xmr},k=`Invalid encoding type. Available types: ${Object.keys(C).join(", ")}`;t.bytesToString=(e,t)=>{if("string"!=typeof e||!C.hasOwnProperty(e))throw new TypeError(k);if(!(t instanceof Uint8Array))throw new TypeError("bytesToString() expects Uint8Array");return C[e].encode(t)},t.str=t.bytesToString;t.stringToBytes=(e,t)=>{if(!C.hasOwnProperty(e))throw new TypeError(k);if("string"!=typeof t)throw new TypeError("stringToBytes() expects string");return C[e].decode(t)},t.bytes=t.stringToBytes},715:(e,t)=>{"use strict";t.gW=void 0;const n="qpzry9x8gf2tvdw0s3jn54khce6mua7l",r={};for(let e=0;e<32;e++){const t=n.charAt(e);r[t]=e}function o(e){const t=e>>25;return(33554431&e)<<5^996825010&-(t>>0&1)^642813549&-(t>>1&1)^513874426&-(t>>2&1)^1027748829&-(t>>3&1)^705979059&-(t>>4&1)}function i(e){let t=1;for(let n=0;n126)return"Invalid prefix ("+e+")";t=o(t)^r>>5}t=o(t);for(let n=0;n=n;)i-=n,s.push(o>>i&a);if(r)i>0&&s.push(o<=t)return"Excess padding";if(o<n)return"Exceeds length limit";const a=e.toLowerCase(),s=e.toUpperCase();if(e!==a&&e!==s)return"Mixed-case string "+e;const c=(e=a).lastIndexOf("1");if(-1===c)return"No separator character for "+e;if(0===c)return"Missing prefix for "+e;const l=e.slice(0,c),u=e.slice(c+1);if(u.length<6)return"Data too short";let f=i(l);if("string"==typeof f)return f;const d=[];for(let e=0;e=u.length||d.push(n)}return f!==t?"Invalid checksum for "+e:{prefix:l,words:d}}return t="bech32"===e?1:734539939,{decodeUnsafe:function(e,t){const n=a(e,t);if("object"==typeof n)return n},decode:function(e,t){const n=a(e,t);if("object"==typeof n)return n;throw new Error(n)},encode:function(e,r,a){if(a=a||90,e.length+7+r.length>a)throw new TypeError("Exceeds length limit");let s=i(e=e.toLowerCase());if("string"==typeof s)throw new Error(s);let c=e+"1";for(let e=0;e>5!=0)throw new Error("Non 5-bit word");s=o(s)^t,c+=n.charAt(t)}for(let e=0;e<6;++e)s=o(s);s^=t;for(let e=0;e<6;++e){c+=n.charAt(s>>5*(5-e)&31)}return c},toWords:s,fromWordsUnsafe:c,fromWords:l}}t.gW=u("bech32"),u("bech32m")},218:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(537),o=n.n(r),i=n(645),a=n.n(i)()(o());a.push([e.id,"*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 transparent;--tw-ring-shadow:0 0 transparent;--tw-shadow:0 0 transparent;--tw-shadow-colored:0 0 transparent;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 transparent;--tw-ring-shadow:0 0 transparent;--tw-shadow:0 0 transparent;--tw-shadow-colored:0 0 transparent;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.ne-relative{position:relative}.ne-m-0{margin:0}.ne-ms-\\[-25px\\]{margin-left:-25px}.ne-ms-\\[25px\\]{margin-left:25px}.ne-mt-8{margin-top:2rem}.ne-block{display:block}.ne-inline-block{display:inline-block}.ne-flex{display:flex}.ne-hidden{display:none}.ne-h-12{height:3rem}.ne-h-\\[40px\\]{height:40px}.ne-w-12{width:3rem}.ne-w-5{width:1.25rem}.ne-w-\\[40px\\]{width:40px}.ne-w-full{width:100%}.ne-cursor-pointer{cursor:pointer}.ne-list-none{list-style-type:none}.ne-flex-row{flex-direction:row}.ne-flex-col{flex-direction:column}.ne-flex-wrap{flex-wrap:wrap}.ne-items-center{align-items:center}.ne-justify-between{justify-content:space-between}.ne-gap-1{gap:.25rem}.ne-gap-2{gap:.5rem}.ne-gap-4{gap:1rem}.ne-gap-6{gap:1.5rem}.ne-break-words{word-wrap:break-word}.ne-rounded-full{border-radius:9999px}.ne-rounded-lg{border-radius:.5rem}.ne-bg-\\[\\#fcfcfc\\]{--tw-bg-opacity:1;background-color:#fcfcfc;background-color:rgba(252,252,252,var(--tw-bg-opacity))}.ne-object-cover{-o-object-fit:cover;object-fit:cover}.ne-p-0{padding:0}.ne-px-4{padding-left:1rem;padding-right:1rem}.ne-py-5{padding-bottom:1.25rem;padding-top:1.25rem}.ne-pb-3{padding-bottom:.75rem}.ne-font-sans{font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Helvetica Neue,Arial,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.ne-text-lg{font-size:1.125rem;line-height:1.75rem}.ne-text-sm{font-size:.875rem;line-height:1.25rem}.ne-font-bold{font-weight:700}.ne-text-black{--tw-text-opacity:1;color:#000;color:rgba(0,0,0,var(--tw-text-opacity))}.ne-text-gray-900{--tw-text-opacity:1;color:#111827;color:rgba(17,24,39,var(--tw-text-opacity))}.ne-text-red-800{--tw-text-opacity:1;color:#991b1b;color:rgba(153,27,27,var(--tw-text-opacity))}.ne-no-underline{text-decoration-line:none}.ne-opacity-30{opacity:.3}.nostrEmbedCard{--tw-bg-opacity:1;background-color:#fcfcfc;background-color:rgba(252,252,252,var(--tw-bg-opacity));border-radius:.5rem;display:flex;flex-direction:column;gap:2rem;padding:1.25rem 1rem .75rem}@media (min-width:768px){.nostrEmbedCard{max-width:600px}}.nostrEmbedCard{border:1px solid #ddd;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Helvetica Neue,Arial,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;text-align:left}.cardContent{word-wrap:break-word;font-size:1.125rem;line-height:1.75rem;white-space:pre-line}.cardContentMedia{text-align:center}.cardContentMedia>iframe,.cardContentMedia>img,.cardContentMedia>video{border-radius:15px;width:50%}.cardProfile{align-items:center;display:flex;flex-direction:row;gap:1rem}.profileImg{border-radius:9999px;height:3rem;width:3rem}.followedProdileImg{border-radius:9999px;height:40px;margin-left:-25px;-o-object-fit:cover;object-fit:cover;position:relative;width:40px}.followedProdileImg:hover{z-index:999}.profileDetails{display:flex;flex-direction:column}.profileName{font-size:1.125rem;font-weight:700;line-height:1.75rem}.profileName a{--tw-text-opacity:1;color:#111827;color:rgba(17,24,39,var(--tw-text-opacity));text-decoration-line:none}.profileName a:hover{--tw-text-opacity:1;color:#4b5563;color:rgba(75,85,99,var(--tw-text-opacity))}.profilePkey{align-items:center;flex-direction:row}.cardMeta,.profilePkey{display:flex;gap:.25rem}.cardMeta{flex-direction:column}@media (min-width:768px){.cardMeta{gap:.5rem}}hr{border-color:#ddd;margin:.25rem;opacity:.3;width:100%}.cardInteractions{display:flex;flex-direction:row;justify-content:space-between}@media (min-width:768px){.cardInteractions{gap:2.5rem;justify-content:flex-start}}.interactionContainer{align-items:center;display:flex;flex-direction:row;gap:.5rem}.copyIcon,.heartIcon,.linkIcon,.replyIcon,.repostIcon{display:block;height:1.25rem;width:1.25rem}.copyIcon,.heartIcon,.linkCopyBtn,.linkIcon,.linkLink,.replyIcon,.repostIcon{--tw-text-opacity:1;color:#111827;color:rgba(17,24,39,var(--tw-text-opacity))}.linkCopyBtn,.linkLink{align-items:center;background-color:transparent;border:0;cursor:pointer;display:flex;flex-direction:row;gap:.5rem;position:relative;text-decoration-line:none}.linkCopyBtn:hover,.linkCopyBtn:hover .copyIcon,.linkLink:hover{--tw-text-opacity:1;color:#4b5563;color:rgba(75,85,99,var(--tw-text-opacity))}.linkCopyBtn.green,.linkCopyBtn.green .copyIcon{--tw-text-opacity:1;color:#16a34a;color:rgba(22,163,74,var(--tw-text-opacity))}.displayText{display:none}@media (min-width:768px){.displayText{display:flex;font-size:.875rem;line-height:1.25rem;visibility:visible}}.copyText{display:none}.nostrichLink{display:flex;flex-grow:1;justify-content:flex-end}.cardTitle{margin:0}.cardDescription{margin-top:0}.cardList{display:flex;flex-direction:column;gap:20px;margin-top:10px}.profileWithoutImg{background-color:#e9e9e9;border-radius:50%;height:50px;width:50px}.diffProfiles{font-size:1.2rem;font-weight:700}.hover\\:ne-z-\\[999\\]:hover{z-index:999}@media (min-width:768px){.md\\:ne-visible{visibility:visible}.md\\:ne-flex{display:flex}.md\\:ne-max-w-\\[600px\\]{max-width:600px}.md\\:ne-justify-start{justify-content:flex-start}}","",{version:3,sources:["webpack://./src/components/style.css",""],names:[],mappings:"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",sourcesContent:["@tailwind base;\n@tailwind components;\n@tailwind utilities;\n\n.nostrEmbedCard {\n @apply ne-px-4 ne-py-5 ne-pb-3 ne-bg-[#fcfcfc] ne-rounded-lg md:ne-max-w-[600px] ne-flex ne-flex-col ne-gap-8;\n @apply ne-font-sans ne-text-left;\n border: 1px solid #ddd;\n}\n\n.cardContent {\n @apply ne-text-lg ne-break-words ne-whitespace-pre-line;\n}\n\n.cardContentMedia {\n text-align: center;\n}\n\n.cardContentMedia > video,\n.cardContentMedia > img,\n.cardContentMedia > iframe {\n border-radius: 15px;\n width: 50%;\n}\n\n.cardProfile {\n @apply ne-flex ne-flex-row ne-gap-4 ne-items-center;\n}\n\n.profileImg {\n @apply ne-w-12 ne-h-12 ne-rounded-full;\n}\n\n.followedProdileImg {\n @apply ne-w-[40px] ne-h-[40px] ne-rounded-full ne-ms-[-25px] ne-object-cover hover:ne-z-[999] ne-relative ;\n}\n\n.profileDetails {\n @apply ne-flex ne-flex-col;\n}\n\n.profileName {\n @apply ne-text-lg ne-font-bold;\n}\n\n.profileName a {\n @apply ne-no-underline ne-text-gray-900;\n}\n.profileName a:hover {\n @apply ne-text-gray-600;\n}\n\n.profilePkey {\n @apply ne-flex ne-flex-row ne-gap-1 ne-items-center;\n}\n\n.cardMeta {\n @apply ne-flex ne-flex-col ne-gap-1 md:ne-gap-2;\n}\n\nhr {\n @apply ne-w-full ne-opacity-30 ne-m-1;\n border-color: #ddd;\n}\n\n.cardInteractions {\n @apply ne-flex ne-flex-row ne-justify-between md:ne-justify-start md:ne-gap-10;\n}\n\n.interactionContainer {\n @apply ne-flex ne-flex-row ne-items-center ne-gap-2;\n}\n\n.replyIcon,\n.repostIcon,\n.heartIcon,\n.linkIcon,\n.copyIcon {\n @apply ne-text-gray-900 ne-block ne-w-5 ne-h-5;\n}\n\n.linkCopyBtn,\n.linkLink {\n @apply ne-text-gray-900 ne-no-underline ne-flex ne-flex-row ne-items-center ne-gap-2 ne-cursor-pointer ne-relative;\n border: 0;\n background-color: transparent;\n}\n\n.linkCopyBtn:hover,\n.linkLink:hover,\n.linkCopyBtn:hover .copyIcon {\n @apply ne-text-gray-600;\n}\n\n.linkCopyBtn.green,\n.linkCopyBtn.green .copyIcon {\n @apply ne-text-green-600;\n}\n\n.displayText {\n @apply ne-hidden md:ne-flex md:ne-visible md:ne-text-sm;\n}\n\n.copyText {\n @apply ne-hidden;\n}\n\n.nostrichLink {\n @apply ne-flex;\n flex-grow: 1;\n justify-content: flex-end;\n}\n\n.cardTitle {\n margin: 0;\n}\n\n.cardDescription {\n margin-top: 0;\n}\n\n.cardList {\n display: flex;\n flex-direction: column;\n gap: 20px;\n margin-top: 10px;\n}\n\n.profileWithoutImg {\n width: 50px;\n height: 50px;\n background-color: #e9e9e9;\n border-radius: 50%;\n}\n\n.diffProfiles {\n font-weight: bold;\n font-size: 1.2rem;\n}\n",null],sourceRoot:""}]);const s=a},645:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",r=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),r&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),r&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,r,o,i){"string"==typeof e&&(e=[[null,e,void 0]]);var a={};if(r)for(var s=0;s0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=i),n&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=n):u[2]=n),o&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=o):u[4]="".concat(o)),t.push(u))}},t}},537:e=>{"use strict";e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if("function"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),o="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),i="/*# ".concat(o," */");return[t].concat([i]).join("\n")}return[t].join("\n")}},632:(e,t,n)=>{const{bech32:r,hex:o,utf8:i}=n(187),a={bech32:"bc",pubKeyHash:0,scriptHash:5,validWitnessVersions:[0]},s={bech32:"tb",pubKeyHash:111,scriptHash:196,validWitnessVersions:[0]},c={bech32:"bcrt",pubKeyHash:111,scriptHash:196,validWitnessVersions:[0]},l={bech32:"sb",pubKeyHash:63,scriptHash:123,validWitnessVersions:[0]},u=["option_data_loss_protect","initial_routing_sync","option_upfront_shutdown_script","gossip_queries","var_onion_optin","gossip_queries_ex","option_static_remotekey","payment_secret","basic_mpp","option_support_large_channel"],f={m:BigInt(1e3),u:BigInt(1e6),n:BigInt(1e9),p:BigInt(1e12)},d=BigInt("2100000000000000000"),p=BigInt(1e11),A={payment_hash:1,payment_secret:16,description:13,payee:19,description_hash:23,expiry:6,min_final_cltv_expiry:24,fallback_address:9,route_hint:3,feature_bits:5,metadata:27},h={};for(let e=0,t=Object.keys(A);eo.encode(r.fromWordsUnsafe(e)),16:e=>o.encode(r.fromWordsUnsafe(e)),13:e=>i.encode(r.fromWordsUnsafe(e)),19:e=>o.encode(r.fromWordsUnsafe(e)),23:e=>o.encode(r.fromWordsUnsafe(e)),27:e=>o.encode(r.fromWordsUnsafe(e)),6:g,24:g,3:function(e){const t=[];let n,i,a,s,c,l=r.fromWordsUnsafe(e);for(;l.length>0;)n=o.encode(l.slice(0,33)),i=o.encode(l.slice(33,41)),a=parseInt(o.encode(l.slice(41,45)),16),s=parseInt(o.encode(l.slice(45,49)),16),c=parseInt(o.encode(l.slice(49,51)),16),l=l.slice(51),t.push({pubkey:n,short_channel_id:i,fee_base_msat:a,fee_proportional_millionths:s,cltv_expiry_delta:c});return t},5:function(e){const t=e.slice().reverse().map((e=>[!!(1&e),!!(2&e),!!(4&e),!!(8&e),!!(16&e)])).reduce(((e,t)=>e.concat(t)),[]);for(;t.length<2*u.length;)t.push(!1);const n={};u.forEach(((e,r)=>{let o;o=t[2*r]?"required":t[2*r+1]?"supported":"unsupported",n[e]=o}));const r=t.slice(2*u.length);return n.extra_bits={start_bit:2*u.length,bits:r,has_required:r.reduce(((e,t,n)=>n%2!=0?e||!1:e||t),!1)},n}};function m(e){return t=>({tagCode:parseInt(e),words:r.encode("unknown",t,Number.MAX_SAFE_INTEGER)})}function g(e){return e.reverse().reduce(((e,t,n)=>e+t*Math.pow(32,n)),0)}function v(e,t){let n,r;if(e.slice(-1).match(/^[munp]$/))n=e.slice(-1),r=e.slice(0,-1);else{if(e.slice(-1).match(/^[^munp0-9]$/))throw new Error("Not a valid multiplier for the amount");r=e}if(!r.match(/^\d+$/))throw new Error("Not a valid human readable amount");const o=BigInt(r),i=n?o*p/f[n]:o*p;if("p"===n&&o%BigInt(10)!==BigInt(0)||i>d)throw new Error("Amount is outside of valid range");return t?i.toString():i}e.exports={decode:function(e,t){if("string"!=typeof e)throw new Error("Lightning Payment Request must be string");if("ln"!==e.slice(0,2).toLowerCase())throw new Error("Not a proper lightning payment request");const n=[],i=r.decode(e,Number.MAX_SAFE_INTEGER);e=e.toLowerCase();const u=i.prefix;let f=i.words,d=e.slice(u.length+1),p=f.slice(-104);f=f.slice(0,-104);let w=u.match(/^ln(\S+?)(\d*)([a-zA-Z]?)$/);if(w&&!w[2]&&(w=u.match(/^ln(\S+)$/)),!w)throw new Error("Not a proper lightning payment request");n.push({name:"lightning_network",letters:"ln"});const _=w[1];let b;if(t){if(void 0===t.bech32||void 0===t.pubKeyHash||void 0===t.scriptHash||!Array.isArray(t.validWitnessVersions))throw new Error("Invalid network");b=t}else switch(_){case a.bech32:b=a;break;case s.bech32:b=s;break;case c.bech32:b=c;break;case l.bech32:b=l}if(!b||b.bech32!==_)throw new Error("Unknown coin bech32 prefix");n.push({name:"coin_network",letters:_,value:b});const C=w[2];let k;if(C){k=v(C+w[3],!0),n.push({name:"amount",letters:w[2]+w[3],value:k})}else k=null;n.push({name:"separator",letters:"1"});const x=g(f.slice(0,7));let B,E,S,I;for(f=f.slice(7),n.push({name:"timestamp",letters:d.slice(0,7),value:x}),d=d.slice(7);f.length>0;){const e=f[0].toString();B=h[e]||"unknown_tag",E=y[e]||m(e),f=f.slice(1),S=g(f.slice(0,2)),f=f.slice(2),I=f.slice(0,S),f=f.slice(S),n.push({name:B,tag:d[0],letters:d.slice(0,3+S),value:E(I)}),d=d.slice(3+S)}n.push({name:"signature",letters:d.slice(0,104),value:o.encode(r.fromWordsUnsafe(p))}),d=d.slice(104),n.push({name:"checksum",letters:d});let N={paymentRequest:e,sections:n,get expiry(){let e=n.find((e=>"expiry"===e.name));if(e)return P("timestamp")+e.value},get route_hints(){return n.filter((e=>"route_hint"===e.name)).map((e=>e.value))}};for(let e in A)"route_hint"!==e&&Object.defineProperty(N,e,{get:()=>P(e)});return N;function P(e){let t=n.find((t=>t.name===e));return t?t.value:void 0}},hrpToMillisat:v}},379:e=>{"use strict";var t=[];function n(e){for(var n=-1,r=0;r{"use strict";var t={};e.exports=function(e,n){var r=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(n)}},216:e=>{"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},565:(e,t,n)=>{"use strict";e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},795:e=>{"use strict";e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var r="";n.supports&&(r+="@supports (".concat(n.supports,") {")),n.media&&(r+="@media ".concat(n.media," {"));var o=void 0!==n.layer;o&&(r+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),r+=n.css,o&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}");var i=n.sourceMap;i&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),t.styleTagTransform(r,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},589:e=>{"use strict";e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},856:()=>{}},r={};function o(e){var t=r[e];if(void 0!==t)return t.exports;var i=r[e]={id:e,exports:{}};return n[e](i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,o.t=function(n,r){if(1&r&&(n=this(n)),8&r)return n;if("object"==typeof n&&n){if(4&r&&n.__esModule)return n;if(16&r&&"function"==typeof n.then)return n}var i=Object.create(null);o.r(i);var a={};e=e||[null,t({}),t([]),t(t)];for(var s=2&r&&n;"object"==typeof s&&!~e.indexOf(s);s=t(s))Object.getOwnPropertyNames(s).forEach((e=>a[e]=()=>n[e]));return a.default=()=>n,o.d(i,a),i},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.nc=void 0;var i={};return(()=>{"use strict";o.r(i),o.d(i,{init:()=>Nn});var e,t,n,r,a,s,c,l={},u=[],f=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,d=Array.isArray;function p(e,t){for(var n in t)e[n]=t[n];return e}function A(e){var t=e.parentNode;t&&t.removeChild(e)}function h(t,n,r){var o,i,a,s={};for(a in n)"key"==a?o=n[a]:"ref"==a?i=n[a]:s[a]=n[a];if(arguments.length>2&&(s.children=arguments.length>3?e.call(arguments,2):r),"function"==typeof t&&null!=t.defaultProps)for(a in t.defaultProps)void 0===s[a]&&(s[a]=t.defaultProps[a]);return y(t,s,o,i,null)}function y(e,r,o,i,a){var s={type:e,props:r,key:o,ref:i,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==a?++n:a};return null==a&&null!=t.vnode&&t.vnode(s),s}function m(e){return e.children}function g(e,t){this.props=e,this.context=t}function v(e,t){if(null==t)return e.__?v(e.__,e.__.__k.indexOf(e)+1):null;for(var n;tt&&r.sort(c));b.__r=0}function C(e,t,n,r,o,i,a,s,c,f,p){var A,h,g,v,w,_,b,C,E,S,I=0,N=r&&r.__k||u,T=N.length,j=T,O=t.length;for(n.__k=[],A=0;A0?y(v.type,v.props,v.key,v.ref?v.ref:null,v.__v):v)&&(v.__=n,v.__b=n.__b+1,-1===(C=B(v,N,b=A+I,j))?g=l:(g=N[C]||l,N[C]=void 0,j--),P(e,v,g,o,i,a,s,c,f,p),w=v.__e,(h=v.ref)&&g.ref!=h&&(g.ref&&U(g.ref,null,v),p.push(h,v.__c||w,v)),null!=w&&(null==_&&(_=w),S=!(E=g===l||null===g.__v)&&C===b,E?-1==C&&I--:C!==b&&(C===b+1?(I++,S=!0):C>b?j>O-b?(I+=C-b,S=!0):I--:I=C(null!=c?1:0))for(;a>=0||s=0){if((c=t[a])&&o==c.key&&i===c.type)return a;a--}if(s(e+t/z)/t,V={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar(e){const{n:t}=F,n=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-R*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),o=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=n,a=BigInt("0x100000000000000000000000000000000"),s=q(i*e,t),c=q(-r*e,t);let l=_e(e-s*n-c*o,t),u=_e(-s*r-c*i,t);const f=l>a,d=u>a;if(f&&(l=t-l),d&&(u=t-u),l>a||u>a)throw new Error("splitScalarEndo: Endomorphism failed, k="+e);return{k1neg:f,k1:l,k2neg:d,k2:u}}},Y=32,Z=32,K=Y+1,J=2*Y+1;function Q(e){const{a:t,b:n}=F,r=_e(e*e),o=_e(r*e);return _e(o+t*e+n)}const X=F.a===W;class ee extends Error{constructor(e){super(e)}}function te(e){if(!(e instanceof ne))throw new TypeError("JacobianPoint expected")}class ne{constructor(e,t,n){this.x=e,this.y=t,this.z=n}static fromAffine(e){if(!(e instanceof ie))throw new TypeError("JacobianPoint#fromAffine: expected Point");return e.equals(ie.ZERO)?ne.ZERO:new ne(e.x,e.y,R)}static toAffineBatch(e){const t=function(e,t=F.P){const n=new Array(e.length),r=e.reduce(((e,r,o)=>r===W?e:(n[o]=e,_e(e*r,t))),R),o=Ce(r,t);return e.reduceRight(((e,r,o)=>r===W?e:(n[o]=_e(e*n[o],t),_e(e*r,t))),o),n}(e.map((e=>e.z)));return e.map(((e,n)=>e.toAffine(t[n])))}static normalizeZ(e){return ne.toAffineBatch(e).map(ne.fromAffine)}equals(e){te(e);const{x:t,y:n,z:r}=this,{x:o,y:i,z:a}=e,s=_e(r*r),c=_e(a*a),l=_e(t*c),u=_e(o*s),f=_e(_e(n*a)*c),d=_e(_e(i*r)*s);return l===u&&f===d}negate(){return new ne(this.x,_e(-this.y),this.z)}double(){const{x:e,y:t,z:n}=this,r=_e(e*e),o=_e(t*t),i=_e(o*o),a=e+o,s=_e(z*(_e(a*a)-r-i)),c=_e($*r),l=_e(c*c),u=_e(l-z*s),f=_e(c*(s-u)-G*i),d=_e(z*t*n);return new ne(u,f,d)}add(e){te(e);const{x:t,y:n,z:r}=this,{x:o,y:i,z:a}=e;if(o===W||i===W)return this;if(t===W||n===W)return e;const s=_e(r*r),c=_e(a*a),l=_e(t*c),u=_e(o*s),f=_e(_e(n*a)*c),d=_e(_e(i*r)*s),p=_e(u-l),A=_e(d-f);if(p===W)return A===W?this.double():ne.ZERO;const h=_e(p*p),y=_e(p*h),m=_e(l*h),g=_e(A*A-y-z*m),v=_e(A*(m-g)-f*y),w=_e(r*a*p);return new ne(g,v,w)}subtract(e){return this.add(e.negate())}multiplyUnsafe(e){const t=ne.ZERO;if("bigint"==typeof e&&e===W)return t;let n=we(e);if(n===R)return this;if(!X){let e=t,r=this;for(;n>W;)n&R&&(e=e.add(r)),r=r.double(),n>>=R;return e}let{k1neg:r,k1:o,k2neg:i,k2:a}=V.splitScalar(n),s=t,c=t,l=this;for(;o>W||a>W;)o&R&&(s=s.add(l)),a&R&&(c=c.add(l)),l=l.double(),o>>=R,a>>=R;return r&&(s=s.negate()),i&&(c=c.negate()),c=new ne(_e(c.x*V.beta),c.y,c.z),s.add(c)}precomputeWindow(e){const t=X?128/e+1:256/e+1,n=[];let r=this,o=r;for(let i=0;i>=u,a>s&&(a-=l,e+=R);const f=n,d=n+Math.abs(a)-1,p=t%2!=0,A=a<0;0===a?i=i.add(re(p,r[f])):o=o.add(re(A,r[d]))}return{p:o,f:i}}multiply(e,t){let n,r,o=we(e);if(X){const{k1neg:e,k1:i,k2neg:a,k2:s}=V.splitScalar(o);let{p:c,f:l}=this.wNAF(i,t),{p:u,f}=this.wNAF(s,t);c=re(e,c),u=re(a,u),u=new ne(_e(u.x*V.beta),u.y,u.z),n=c.add(u),r=l.add(f)}else{const{p:e,f:i}=this.wNAF(o,t);n=e,r=i}return ne.normalizeZ([n,r])[0]}toAffine(e){const{x:t,y:n,z:r}=this,o=this.equals(ne.ZERO);null==e&&(e=o?G:Ce(r));const i=e,a=_e(i*i),s=_e(a*i),c=_e(t*a),l=_e(n*s),u=_e(r*i);if(o)return ie.ZERO;if(u!==R)throw new Error("invZ was invalid");return new ie(c,l)}}function re(e,t){const n=t.negate();return e?n:t}ne.BASE=new ne(F.Gx,F.Gy,R),ne.ZERO=new ne(W,R,W);const oe=new WeakMap;class ie{constructor(e,t){this.x=e,this.y=t}_setWindowSize(e){this._WINDOW_SIZE=e,oe.delete(this)}hasEvenY(){return this.y%z===W}static fromCompressedHex(e){const t=32===e.length,n=ge(t?e:e.subarray(1));if(!Se(n))throw new Error("Point is not on curve");let r=function(e){const{P:t}=F,n=BigInt(6),r=BigInt(11),o=BigInt(22),i=BigInt(23),a=BigInt(44),s=BigInt(88),c=e*e*e%t,l=c*c*e%t,u=be(l,$)*l%t,f=be(u,$)*l%t,d=be(f,z)*c%t,p=be(d,r)*d%t,A=be(p,o)*p%t,h=be(A,a)*A%t,y=be(h,s)*h%t,m=be(y,a)*A%t,g=be(m,$)*l%t,v=be(g,i)*p%t,w=be(v,n)*c%t,_=be(w,z),b=_*_%t;if(b!==e)throw new Error("Cannot find square root");return _}(Q(n));const o=(r&R)===R;if(t)o&&(r=_e(-r));else{1==(1&e[0])!==o&&(r=_e(-r))}const i=new ie(n,r);return i.assertValidity(),i}static fromUncompressedHex(e){const t=ge(e.subarray(1,Y+1)),n=ge(e.subarray(Y+1,2*Y+1)),r=new ie(t,n);return r.assertValidity(),r}static fromHex(e){const t=ve(e),n=t.length,r=t[0];if(n===Y)return this.fromCompressedHex(t);if(n===K&&(2===r||3===r))return this.fromCompressedHex(t);if(n===J&&4===r)return this.fromUncompressedHex(t);throw new Error(`Point.fromHex: received invalid point. Expected 32-${K} compressed bytes or ${J} uncompressed bytes, not ${n}`)}static fromPrivateKey(e){return ie.BASE.multiply(Ie(e))}static fromSignature(e,t,n){const{r,s:o}=Pe(t);if(![0,1,2,3].includes(n))throw new Error("Cannot recover: invalid recovery bit");const i=ke(ve(e)),{n:a}=F,s=2===n||3===n?r+a:r,c=Ce(s,a),l=_e(-i*c,a),u=_e(o*c,a),f=1&n?"03":"02",d=ie.fromHex(f+pe(s)),p=ie.BASE.multiplyAndAddUnsafe(d,l,u);if(!p)throw new Error("Cannot recover signature: point at infinify");return p.assertValidity(),p}toRawBytes(e=!1){return me(this.toHex(e))}toHex(e=!1){const t=pe(this.x);if(e){return`${this.hasEvenY()?"02":"03"}${t}`}return`04${t}${pe(this.y)}`}toHexX(){return this.toHex(!0).slice(2)}toRawX(){return this.toRawBytes(!0).slice(1)}assertValidity(){const e="Point is not on elliptic curve",{x:t,y:n}=this;if(!Se(t)||!Se(n))throw new Error(e);const r=_e(n*n);if(_e(r-Q(t))!==W)throw new Error(e)}equals(e){return this.x===e.x&&this.y===e.y}negate(){return new ie(this.x,_e(-this.y))}double(){return ne.fromAffine(this).double().toAffine()}add(e){return ne.fromAffine(this).add(ne.fromAffine(e)).toAffine()}subtract(e){return this.add(e.negate())}multiply(e){return ne.fromAffine(this).multiply(e,this).toAffine()}multiplyAndAddUnsafe(e,t,n){const r=ne.fromAffine(this),o=t===W||t===R||this!==ie.BASE?r.multiplyUnsafe(t):r.multiply(t),i=ne.fromAffine(e).multiplyUnsafe(n),a=o.add(i);return a.equals(ne.ZERO)?void 0:a.toAffine()}}function ae(e){return Number.parseInt(e[0],16)>=8?"00"+e:e}function se(e){if(e.length<2||2!==e[0])throw new Error(`Invalid signature integer tag: ${fe(e)}`);const t=e[1],n=e.subarray(2,t+2);if(!t||n.length!==t)throw new Error("Invalid signature integer: wrong length");if(0===n[0]&&n[1]<=127)throw new Error("Invalid signature integer: trailing length");return{data:ge(n),left:e.subarray(t+2)}}ie.BASE=new ie(F.Gx,F.Gy),ie.ZERO=new ie(W,W);class ce{constructor(e,t){this.r=e,this.s=t,this.assertValidity()}static fromCompact(e){const t=e instanceof Uint8Array,n="Signature.fromCompact";if("string"!=typeof e&&!t)throw new TypeError(`${n}: Expected string or Uint8Array`);const r=t?fe(e):e;if(128!==r.length)throw new Error(`${n}: Expected 64-byte hex`);return new ce(ye(r.slice(0,64)),ye(r.slice(64,128)))}static fromDER(e){const t=e instanceof Uint8Array;if("string"!=typeof e&&!t)throw new TypeError("Signature.fromDER: Expected string or Uint8Array");const{r:n,s:r}=function(e){if(e.length<2||48!=e[0])throw new Error(`Invalid signature tag: ${fe(e)}`);if(e[1]!==e.length-2)throw new Error("Invalid signature: incorrect length");const{data:t,left:n}=se(e.subarray(2)),{data:r,left:o}=se(n);if(o.length)throw new Error(`Invalid signature: left bytes after parsing: ${fe(o)}`);return{r:t,s:r}}(t?e:me(e));return new ce(n,r)}static fromHex(e){return this.fromDER(e)}assertValidity(){const{r:e,s:t}=this;if(!Ee(e))throw new Error("Invalid Signature: r must be 0 < r < n");if(!Ee(t))throw new Error("Invalid Signature: s must be 0 < s < n")}hasHighS(){const e=F.n>>R;return this.s>e}normalizeS(){return this.hasHighS()?new ce(this.r,_e(-this.s,F.n)):this}toDERRawBytes(){return me(this.toDERHex())}toDERHex(){const e=ae(he(this.s)),t=ae(he(this.r)),n=e.length/2,r=t.length/2,o=he(n),i=he(r);return`30${he(r+n+4)}02${i}${t}02${o}${e}`}toRawBytes(){return this.toDERRawBytes()}toHex(){return this.toDERHex()}toCompactRawBytes(){return me(this.toCompactHex())}toCompactHex(){return pe(this.r)+pe(this.s)}}function le(...e){if(!e.every((e=>e instanceof Uint8Array)))throw new Error("Uint8Array list expected");if(1===e.length)return e[0];const t=e.reduce(((e,t)=>e+t.length),0),n=new Uint8Array(t);for(let t=0,r=0;tt.toString(16).padStart(2,"0")));function fe(e){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");let t="";for(let n=0;n0)return BigInt(e);if("bigint"==typeof e&&Ee(e))return e;throw new TypeError("Expected valid private scalar: 0 < scalar < curve.n")}function _e(e,t=F.P){const n=e%t;return n>=W?n:t+n}function be(e,t){const{P:n}=F;let r=e;for(;t-- >W;)r*=r,r%=n;return r}function Ce(e,t=F.P){if(e===W||t<=W)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let n=_e(e,t),r=t,o=W,i=R,a=R,s=W;for(;n!==W;){const e=r/n,t=r%n,c=o-a*e,l=i-s*e;r=n,n=t,o=a,i=s,a=c,s=l}if(r!==R)throw new Error("invert: does not exist");return _e(o,t)}function ke(e,t=!1){const n=function(e){const t=8*e.length-8*Z,n=ge(e);return t>0?n>>BigInt(t):n}(e);if(t)return n;const{n:r}=F;return n>=r?n-r:n}let xe,Be;function Ee(e){return W0)t=BigInt(e);else if("string"==typeof e){if(e.length!==2*Z)throw new Error("Expected 32 bytes of private key");t=ye(e)}else{if(!(e instanceof Uint8Array))throw new TypeError("Expected valid private key");if(e.length!==Z)throw new Error("Expected 32 bytes of private key");t=ge(e)}if(!Ee(t))throw new Error("Expected private key: 0 < key < n");return t}function Ne(e){return e instanceof ie?(e.assertValidity(),e):ie.fromHex(e)}function Pe(e){if(e instanceof ce)return e.assertValidity(),e;try{return ce.fromDER(e)}catch(t){return ce.fromCompact(e)}}function Te(e){return _e(ge(e),F.n)}class je{constructor(e,t){this.r=e,this.s=t,this.assertValidity()}static fromHex(e){const t=ve(e);if(64!==t.length)throw new TypeError(`SchnorrSignature.fromHex: expected 64 bytes, not ${t.length}`);const n=ge(t.subarray(0,32)),r=ge(t.subarray(32,64));return new je(n,r)}assertValidity(){const{r:e,s:t}=this;if(!Se(e)||!Ee(t))throw new Error("Invalid signature")}toHex(){return pe(this.r)+pe(this.s)}toRawBytes(){return me(this.toHex())}}class Ue{constructor(e,t,n=$e.randomBytes()){if(null==e)throw new TypeError(`sign: Expected valid message, not "${e}"`);this.m=ve(e);const{x:r,scalar:o}=this.getScalar(Ie(t));if(this.px=r,this.d=o,this.rand=ve(n),32!==this.rand.length)throw new TypeError("sign: Expected 32 bytes of aux randomness")}getScalar(e){const t=ie.fromPrivateKey(e),n=t.hasEvenY()?e:F.n-e;return{point:t,scalar:n,x:t.toRawX()}}initNonce(e,t){return Ae(e^ge(t))}finalizeNonce(e){const t=_e(ge(e),F.n);if(t===W)throw new Error("sign: Creation of signature failed. k is zero");const{point:n,x:r,scalar:o}=this.getScalar(t);return{R:n,rx:r,k:o}}finalizeSig(e,t,n,r){return new je(e.x,_e(t+n*r,F.n)).toRawBytes()}error(){throw new Error("sign: Invalid signature produced")}async calc(){const{m:e,d:t,px:n,rand:r}=this,o=$e.taggedHash,i=this.initNonce(t,await o(Re.aux,r)),{R:a,rx:s,k:c}=this.finalizeNonce(await o(Re.nonce,i,n,e)),l=Te(await o(Re.challenge,s,n,e)),u=this.finalizeSig(a,c,l,t);return await De(u,e,n)||this.error(),u}calcSync(){const{m:e,d:t,px:n,rand:r}=this,o=$e.taggedHashSync,i=this.initNonce(t,o(Re.aux,r)),{R:a,rx:s,k:c}=this.finalizeNonce(o(Re.nonce,i,n,e)),l=Te(o(Re.challenge,s,n,e)),u=this.finalizeSig(a,c,l,t);return He(u,e,n)||this.error(),u}}function Le(e,t,n){const r=e instanceof je,o=r?e:je.fromHex(e);return r&&o.assertValidity(),{...o,m:ve(t),P:Ne(n)}}function Oe(e,t,n,r){const o=ie.BASE.multiplyAndAddUnsafe(t,Ie(n),_e(-r,F.n));return!(!o||!o.hasEvenY()||o.x!==e)}async function De(e,t,n){try{const{r,s:o,m:i,P:a}=Le(e,t,n),s=Te(await $e.taggedHash(Re.challenge,Ae(r),a.toRawX(),i));return Oe(r,a,o,s)}catch(e){return!1}}function He(e,t,n){try{const{r,s:o,m:i,P:a}=Le(e,t,n),s=Te($e.taggedHashSync(Re.challenge,Ae(r),a.toRawX(),i));return Oe(r,a,o,s)}catch(e){if(e instanceof ee)throw e;return!1}}const Me={Signature:je,getPublicKey:function(e){return ie.fromPrivateKey(e).toRawX()},sign:async function(e,t,n){return new Ue(e,t,n).calc()},verify:De,signSync:function(e,t,n){return new Ue(e,t,n).calcSync()},verifySync:He};ie.BASE._setWindowSize(8);const We={node:M,web:"object"==typeof self&&"crypto"in self?self.crypto:void 0},Re={challenge:"BIP0340/challenge",aux:"BIP0340/aux",nonce:"BIP0340/nonce"},ze={},$e={bytesToHex:fe,hexToBytes:me,concatBytes:le,mod:_e,invert:Ce,isValidPrivateKey(e){try{return Ie(e),!0}catch(e){return!1}},_bigintTo32Bytes:Ae,_normalizePrivateKey:Ie,hashToPrivateKey:e=>{e=ve(e);const t=Z+8;if(e.length1024)throw new Error("Expected valid bytes of private key as per FIPS 186");return Ae(_e(ge(e),F.n-R)+R)},randomBytes:(e=32)=>{if(We.web)return We.web.getRandomValues(new Uint8Array(e));if(We.node){const{randomBytes:t}=We.node;return Uint8Array.from(t(e))}throw new Error("The environment doesn't have randomBytes function")},randomPrivateKey:()=>$e.hashToPrivateKey($e.randomBytes(Z+8)),precompute(e=8,t=ie.BASE){const n=t===ie.BASE?t:new ie(t.x,t.y);return n._setWindowSize(e),n.multiply($),n},sha256:async(...e)=>{if(We.web){const t=await We.web.subtle.digest("SHA-256",le(...e));return new Uint8Array(t)}if(We.node){const{createHash:t}=We.node,n=t("sha256");return e.forEach((e=>n.update(e))),Uint8Array.from(n.digest())}throw new Error("The environment doesn't have sha256 function")},hmacSha256:async(e,...t)=>{if(We.web){const n=await We.web.subtle.importKey("raw",e,{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]),r=le(...t),o=await We.web.subtle.sign("HMAC",n,r);return new Uint8Array(o)}if(We.node){const{createHmac:n}=We.node,r=n("sha256",e);return t.forEach((e=>r.update(e))),Uint8Array.from(r.digest())}throw new Error("The environment doesn't have hmac-sha256 function")},sha256Sync:void 0,hmacSha256Sync:void 0,taggedHash:async(e,...t)=>{let n=ze[e];if(void 0===n){const t=await $e.sha256(Uint8Array.from(e,(e=>e.charCodeAt(0))));n=le(t,t),ze[e]=n}return $e.sha256(n,...t)},taggedHashSync:(e,...t)=>{if("function"!=typeof xe)throw new ee("sha256Sync is undefined, you need to set it");let n=ze[e];if(void 0===n){const t=xe(Uint8Array.from(e,(e=>e.charCodeAt(0))));n=le(t,t),ze[e]=n}return xe(n,...t)},_JacobianPoint:ne};Object.defineProperties($e,{sha256Sync:{configurable:!1,get:()=>xe,set(e){xe||(xe=e)}},hmacSha256Sync:{configurable:!1,get:()=>Be,set(e){Be||(Be=e)}}});var Ge=o(632),Fe=o(715),qe=new TextDecoder("utf-8"),Ve=Array.from({length:256},(function(e,t){return t.toString(16).padStart(2,"0")}));function Ye(e){for(var t=[],n=0;n=1e6?Math.round(e/1e5)/10+"M":e>=1e3?Math.round(e/100)/10+"K":e}function tt(e){for(var t={},n=e;n.length>0;){var r=n[0],o=n[1],i=n.slice(2,2+o);n=n.slice(2+o),i.length=r.__.length&&r.__.push({__V:lt}),r.__[e]}function yt(e){return st=1,function(e,t,n){var r=ht(rt++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):bt(void 0,t),function(e){var t=r.__N?r.__N[0]:r.__[0],n=r.t(t,e);t!==n&&(r.__N=[n,r.__[1]],r.__c.setState({}))}],r.__c=ot,!ot.u)){var o=function(e,t,n){if(!r.__c.__H)return!0;var o=r.__c.__H.__.filter((function(e){return e.__c}));if(o.every((function(e){return!e.__N})))return!i||i.call(this,e,t,n);var a=!1;return o.forEach((function(e){if(e.__N){var t=e.__[0];e.__=e.__N,e.__N=void 0,t!==e.__[0]&&(a=!0)}})),!(!a&&r.__c.props===e)&&(!i||i.call(this,e,t,n))};ot.u=!0;var i=ot.shouldComponentUpdate,a=ot.componentWillUpdate;ot.componentWillUpdate=function(e,t,n){if(this.__e){var r=i;i=void 0,o(e,t,n),i=r}a&&a.call(this,e,t,n)},ot.shouldComponentUpdate=o}return r.__N||r.__}(bt,e)}function mt(){for(var e;e=ct.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(wt),e.__H.__h.forEach(_t),e.__H.__h=[]}catch(n){e.__H.__h=[],t.__e(n,e.__v)}}t.__b=function(e){ot=null,ut&&ut(e)},t.__r=function(e){ft&&ft(e),rt=0;var t=(ot=e.__c).__H;t&&(it===ot?(t.__h=[],ot.__h=[],t.__.forEach((function(e){e.__N&&(e.__=e.__N),e.__V=lt,e.__N=e.i=void 0}))):(t.__h.forEach(wt),t.__h.forEach(_t),t.__h=[],rt=0)),it=ot},t.diffed=function(e){dt&&dt(e);var n=e.__c;n&&n.__H&&(n.__H.__h.length&&(1!==ct.push(n)&&at===t.requestAnimationFrame||((at=t.requestAnimationFrame)||vt)(mt)),n.__H.__.forEach((function(e){e.i&&(e.__H=e.i),e.__V!==lt&&(e.__=e.__V),e.i=void 0,e.__V=lt}))),it=ot=null},t.__c=function(e,n){n.some((function(e){try{e.__h.forEach(wt),e.__h=e.__h.filter((function(e){return!e.__||_t(e)}))}catch(r){n.some((function(e){e.__h&&(e.__h=[])})),n=[],t.__e(r,e.__v)}})),pt&&pt(e,n)},t.unmount=function(e){At&&At(e);var n,r=e.__c;r&&r.__H&&(r.__H.__.forEach((function(e){try{wt(e)}catch(e){n=e}})),r.__H=void 0,n&&t.__e(n,r.__v))};var gt="function"==typeof requestAnimationFrame;function vt(e){var t,n=function(){clearTimeout(r),gt&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,100);gt&&(t=requestAnimationFrame(n))}function wt(e){var t=ot,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),ot=t}function _t(e){var t=ot;e.__c=e.__(),ot=t}function bt(e,t){return"function"==typeof t?t(e):t}var Ct=0;function kt(e,n,r,o,i,a){var s,c,l={};for(c in n)"ref"==c?s=n[c]:l[c]=n[c];var u={type:e,props:l,key:r,ref:s,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:--Ct,__source:i,__self:a};if("function"==typeof e&&(s=e.defaultProps))for(c in s)void 0===l[c]&&(l[c]=s[c]);return t.vnode&&t.vnode(u),u}const xt=function(e){var t=e.additionalClasses,n="copyIcon";if(t){var r=t.split(" ");r.push(n),n=r.join(" ")}return kt("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor",width:"1.25rem",height:"1.25rem",class:n,children:kt("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M8.25 7.5V6.108c0-1.135.845-2.098 1.976-2.192.373-.03.748-.057 1.123-.08M15.75 18H18a2.25 2.25 0 002.25-2.25V6.108c0-1.135-.845-2.098-1.976-2.192a48.424 48.424 0 00-1.123-.08M15.75 18.75v-1.875a3.375 3.375 0 00-3.375-3.375h-1.5a1.125 1.125 0 01-1.125-1.125v-1.5A3.375 3.375 0 006.375 7.5H5.25m11.9-3.664A2.251 2.251 0 0015 2.25h-1.5a2.251 2.251 0 00-2.15 1.586m5.8 0c.065.21.1.433.1.664v.75h-6V4.5c0-.231.035-.454.1-.664M6.75 7.5H4.875c-.621 0-1.125.504-1.125 1.125v12c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V16.5a9 9 0 00-9-9z"})})};var Bt=o(379),Et=o.n(Bt),St=o(795),It=o.n(St),Nt=o(569),Pt=o.n(Nt),Tt=o(565),jt=o.n(Tt),Ut=o(216),Lt=o.n(Ut),Ot=o(589),Dt=o.n(Ot),Ht=o(218),Mt={};Mt.styleTagTransform=Dt(),Mt.setAttributes=jt(),Mt.insert=Pt().bind(null,"head"),Mt.domAPI=It(),Mt.insertStyleElement=Lt();Et()(Ht.Z,Mt);Ht.Z&&Ht.Z.locals&&Ht.Z.locals;function Wt(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,a,s=[],c=!0,l=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,o=e}finally{try{if(!c&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Rt(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Rt(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Rt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&(null==t?void 0:t.countTaggedProfiles)>Object.keys(null==t?void 0:t.taggedProfiles).length?kt("div",{className:"diffProfiles",children:["And ",sn(t)," more profiles."]}):null]}),(null==t?void 0:t.profilesList.error)&&kt("div",{className:"cardContent ne-text-red-800",children:null==t?void 0:t.profilesList.content})]}),kt(en,{profilesList:null==t?void 0:t.profilesList,likesCount:null==t?void 0:t.likesCount,repliesCount:null==t?void 0:t.repliesCount,repostsCount:null==t?void 0:t.repostsCount,zapAmount:null==t?void 0:t.zapAmount,options:null==n?void 0:n.options})]})}function sn(e){var t;return Object.keys(null==e?void 0:e.taggedProfiles).length>0&&null!=e&&e.countTaggedProfiles&&(t=(null==e?void 0:e.countTaggedProfiles)-Object.keys(null==e?void 0:e.taggedProfiles).length),t}const cn=function(e){var t=e.additionalClasses,n="followersIcon";if(t){var r=t.split(" ");r.push(n),n=r.join(" ")}return kt("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor",width:"1.25rem",height:"1.25rem",class:n,children:kt("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15 19.128a9.38 9.38 0 002.625.372 9.337 9.337 0 004.121-.952 4.125 4.125 0 00-7.533-2.493M15 19.128v-.003c0-1.113-.285-2.16-.786-3.07M15 19.128v.106A12.318 12.318 0 018.624 21c-2.331 0-4.512-.645-6.374-1.766l-.001-.109a6.375 6.375 0 0111.964-3.07M12 6.375a3.375 3.375 0 11-6.75 0 3.375 3.375 0 016.75 0zm8.25 2.25a2.625 2.625 0 11-5.25 0 2.625 2.625 0 015.25 0z"})})};const ln=function(e){var t,n,r=e.profile,o=e.followersCount,i=e.zapAmount,a=e.options;return r&&r.pubkey&&(t=Ke(r.pubkey),n=et(i)),kt("div",{className:"cardMeta",children:[kt("hr",{}),kt("div",{className:"cardInteractions",children:[null!=a&&a.hideCounters?null:kt(m,{children:[a&&a.showZaps?kt("div",{className:"interactionContainer",title:"Total sats zapped",children:[kt(Zt,{additionalClasses:"w-5 h-5"}),kt("span",{className:"zapAmount",children:n})]}):null,kt("div",{className:"interactionContainer",title:"Number of followers",children:[kt(cn,{additionalClasses:"w-5 h-5"}),kt("span",{className:"followersCount",children:o})]})]}),kt("div",{className:"interactionContainer",children:kt("a",{target:"_blank",rel:"noopener noreferrer nofollow",href:"https://nostr.band/".concat(t),className:"linkLink",children:[kt(Jt,{additionalClasses:"w-5 h-5 hover:text-gray-600"}),kt("span",{className:"displayText",children:"Open"})]})}),a&&a.showCopyAddr?kt("div",{className:"interactionContainer",children:kt(zt,{iconClasses:"w-5 h-5",displayText:"Copy Npub",copyText:t})}):null]})]})};const un=function(e){var t,n,r,o,i,a,s=e.follows,c=void 0===s?[]:s,l=e.options;if(null==l||!l.showFollowing)return kt(m,{});var u=c.slice(0,10).map((function(e){var t,n=JSON.parse(e.content);return{id:null==e?void 0:e.id,npubLink:"https://nostr.band/".concat(Ke(null==e?void 0:e.pubkey)),display_name:null==n?void 0:n.display_name,picture:null==n?void 0:n.picture,cachedImage:(t=null==e?void 0:e.pubkey,"https://media.nostr.band/thumbs/".concat(t.slice(-4),"/").concat(t,"-picture-64")),name:null==n?void 0:n.name}})),f=u.filter((function(e){return e.name&&e.display_name}));return kt("div",{children:[kt("hr",{}),kt("div",{className:"ne-flex ne-gap-6 ne-flex-wrap ne-items-center ne-mt-8",children:[kt("ul",{className:"ne-list-none ne-p-0 ne-flex ne-ms-[25px] ne-m-0 ne-items-center",children:u.map((function(e){return kt("li",{children:kt("a",{className:"ne-inline-block",rel:"noopener noreferrer nofollow",target:"_blank",href:e.npubLink,children:kt(Vt,{fullImage:null==e?void 0:e.picture,thumbnail:null==e?void 0:e.cachedImage,isProfileImage:!1})})},null==e?void 0:e.id)}))}),kt("div",{children:[kt("h2",{className:"ne-m-0 ne-font-bold ne-text-lg",children:["Follows ",c.length," profiles"]}),kt("div",{className:"ne-m-0 ne-text-sm",children:["Including "," ",kt("a",{rel:"noopener noreferrer nofollow",target:"_blank",className:"ne-text-black",href:null===(t=f[0])||void 0===t?void 0:t.npubLink,children:null===(n=f[0])||void 0===n?void 0:n.display_name}),f[1]?", ":"",kt("a",{rel:"noopener noreferrer nofollow",target:"_blank",className:"ne-text-black",href:null===(r=f[1])||void 0===r?void 0:r.npubLink,children:null===(o=f[1])||void 0===o?void 0:o.display_name}),f[2]?" and ":"",kt("a",{rel:"noopener noreferrer nofollow",target:"_blank",className:"ne-text-black",href:null===(i=f[2])||void 0===i?void 0:i.npubLink,children:null===(a=f[2])||void 0===a?void 0:a.display_name})]})]})]})]})};function fn(e){var t,n,r,o,i=e.state,a=e.props;return kt("div",{className:"nostrEmbedCard",children:[kt(Yt,{profilePkey:null==i?void 0:i.id,profile:null==i?void 0:i.profile,options:null==a?void 0:a.options}),kt("div",{className:null!=i&&i.profile.error?"cardContent ne-text-red-800":"cardContent",children:[null!=i&&null!==(t=i.profile)&&void 0!==t&&t.website?kt("p",{children:["Website:"," ",kt("a",{href:null==i||null===(n=i.profile)||void 0===n?void 0:n.website,target:"_blank",rel:"noopener noreferrer nofollow",children:null==i||null===(r=i.profile)||void 0===r?void 0:r.website})]}):"",(null==i||null===(o=i.profile)||void 0===o?void 0:o.about)||"Loading..."]}),Boolean(null==i?void 0:i.follows.length)&&kt(un,{follows:null==i?void 0:i.follows,options:null==a?void 0:a.options}),kt(ln,{profile:null==i?void 0:i.profile,followersCount:null==i?void 0:i.followersCount,zapAmount:null==i?void 0:i.zapAmount,options:null==a?void 0:a.options})]})}function dn(e){var t=e.state;return kt("div",{className:"nostrEmbedCard",children:["Zap content: ",JSON.stringify(null==t?void 0:t.event)]})}function pn(e){if(null==e||!e.event.content)return"";var t=function(e){var t,n="".concat((t=e).slice(0,10),"...").concat(t.slice(-4));return kt("a",{target:"_blank",rel:"noopener noreferrer nofollow",href:"https://nostr.band/".concat(e),children:n})},n=function(t,n){var r=Xe(t);if(n in(null==e?void 0:e.taggedProfiles)){var o=null==e?void 0:e.taggedProfiles[n];r=(null==o?void 0:o.name)||(null==o?void 0:o.display_name)||r}return kt("a",{target:"_blank",rel:"noopener noreferrer nofollow",href:"https://nostr.band/".concat(t),children:["@",r]})},r=null==e?void 0:e.event,o=r.content.split(/(#\[\d+\])/gi).map((function(e){var o=e.match(/#\[(\d+)\]/);if(o&&2===o.length){var i=parseInt(o[1]);if(i=2){var a=r.tags[i];switch(a[0]){case"p":return n(Ke(a[1]),a[1]);case"e":return t(Ze(a[1]));case"t":return kt("a",{target:"_blank",rel:"noopener noreferrer nofollow",href:"https://nostr.band/?q=%23".concat(a[1]),children:["#",a[1]]})}}return e}return e.split(/(nostr:[a-z0-9]+)/gi).map((function(e){var r=e.match(/nostr:([a-z0-9]+)/);if(r&&2===r.length){if(r[1].startsWith("note1")||r[1].startsWith("nevent1")||r[1].startsWith("naddr1"))return t(r[1]);if(r[1].startsWith("npub1")){var o=r[1],i=Qe(r[1]);if(i)return n(o,i)}else if(r[1].startsWith("nprofile1")){var a=function(e){var t,n=Fe.gW.decode(e,300);if("nprofile"!=n.prefix)return null;var r=tt(new Uint8Array(Fe.gW.fromWords(n.words)));if(null===(t=r[0])||void 0===t||!t[0])throw new Error("missing TLV 0 for nprofile");if(32!==r[0][0].length)throw new Error("TLV 0 should be 32 bytes");return{type:"nprofile",data:{pubkey:nt(r[0][0]),relays:r[1]?r[1].map((function(e){return qe.decode(e)})):[]}}}(r[1]),s=(a.type,a.data);if(s){var c=Ke(s.pubkey);return n(c,s.pubkey)}}return e}return e.split(/((?:http|ftp|https):\/\/(?:[\w+?.\w+])+(?:[a-zA-Z0-9~!@#$%^&*()_\-=+\\/?.:;',]*)?(?:[-A-Za-z0-9+&@#/%=~_|]))/i).map((function(e){return e.match(/^https?:\/\//)?function(e){return function(e){var t=yn(hn(e),0);return An(t,nn)}(e)?kt("div",{className:"cardContentMedia",children:kt("video",{src:e,controls:!0})}):function(e){var t=yn(hn(e),0);return An(t,tn)}(e)?kt("div",{className:"cardContentMedia",children:kt("img",{className:"cardContentImage",src:e,alt:""})}):function(e){var t=yn(hn(e),0);return function(e,t){return t.some((function(t){return e.includes(t)}))}(t,rn)}(e)?(e.includes("/watch")&&(e=(e=e.replace("/watch","/embed")).replace("?v=","/")),kt("div",{className:"cardContentMedia",children:kt("iframe",{src:e})})):kt("a",{target:"_blank",rel:"noopener noreferrer nofollow",href:e,children:e})}(e):e}))}))}));return o}function An(e,t){return t.some((function(t){return e.endsWith(t)}))}function hn(e){return e.toLowerCase()}function yn(e,t){var n=e.split("?");return n.length>t?n[t]:e}function mn(e){var t=e.state,n=e.props;return kt("div",{className:"nostrEmbedCard",children:[kt(Yt,{profilePkey:null==t?void 0:t.profilePkey,profile:null==t?void 0:t.profile,options:null==n?void 0:n.options}),kt("div",{className:null!=t&&t.event.error?"cardContent ne-text-red-800":"cardContent",children:pn(t)}),kt(en,{note:null==t?void 0:t.event,likesCount:null==t?void 0:t.likesCount,repliesCount:null==t?void 0:t.repliesCount,repostsCount:null==t?void 0:t.repostsCount,zapAmount:null==t?void 0:t.zapAmount,options:null==n?void 0:n.options})]})}function gn(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return vn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return vn(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}function vn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var s=n.call(i,"catchLoc"),c=n.call(i,"finallyLoc");if(s&&c){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;k(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:B(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},e}function bn(e,t,n,r,o,i,a){try{var s=e[i](a),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,o)}function Cn(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){bn(i,r,o,a,s,"next",e)}function s(e){bn(i,r,o,a,s,"throw",e)}a(void 0)}))}}function kn(e,t){for(var n=0;n1)return void(t[1]in r&&r[t[1]].on_event(null));if("COUNT"==t[0]&&3==t.length)return void(t[1]in r&&r[t[1]].on_count(t[2]));if("EVENT"!=t[0]||t.length<3)throw"Unknown reply from relay";t[1]in r&&r[t[1]].on_event(t[2])}catch(t){console.log("relay",n.url,"bad message",e,"error",t),err(t)}},n.subscribe=function(t){var o=t.type,i=t.sub,a=t.ok,s=t.err,c="embed-"+Math.random(),l=[o,c,i];n.send(JSON.stringify(l));var u=function(){var e=c;c=null,n.send(JSON.stringify(["CLOSE",e])),delete r[e]},f=[],d=[],p=function(){c&&(clearTimeout(A),u(),a(f))},A=setTimeout((function(){u(),f.length||d.length?h(null):s("timeout on relay",n.url)}),i.limit&&1==i.limit?2e3:6e3),h=function(){var t=Cn(_n().mark((function t(n){return _n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(d.push(n),!(d.length>1)){t.next=3;break}return t.abrupt("return");case 3:if(!d.length){t.next=19;break}if(n=d[0],t.t0=n,!t.t0){t.next=10;break}return t.next=9,e.isValidEvent(n);case 9:t.t0=t.sent;case 10:if(!t.t0){t.next=12;break}f.push(n);case 12:if(d.shift(),n&&(!i.limit||i.limit!=f.length)){t.next=17;break}return d.splice(0,d.length),p(),t.abrupt("break",19);case 17:t.next=3;break;case 19:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),y=function(){var e=Cn(_n().mark((function e(t){return _n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("COUNT"==o){e.next=2;break}return e.abrupt("return");case 2:f.push(t),p();case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();r[c]={ok:a,err:s,on_event:h,on_count:y}},n.listEvents=function(e){var t=e.sub,r=e.ok,o=e.err;n.subscribe({type:"REQ",sub:t,ok:r,err:o})},n.countEvents=function(e){var t=e.sub,r=e.ok,o=e.err;n.subscribe({type:"COUNT",sub:t,ok:function(e){r(e.length?e[0]:null)},err:o})}}}},{key:"getEvent",value:function(e){var t=e.socket,n=e.sub;return e.ok,e.err,new Promise((function(e,r){n.limit=1,t.listEvents({sub:n,ok:function(t){e(t?t[0]:null)},err:r})}))}},{key:"listEvents",value:function(e){var t=e.socket,n=e.sub;return new Promise((function(e,r){t.listEvents({sub:n,ok:e,err:r})}))}},{key:"countEvents",value:function(e){var t=e.socket,n=e.sub;return new Promise((function(e,r){t.countEvents({sub:n,ok:e,err:r})}))}},{key:"fetchEvent",value:function(e){var t=this,n=e.socket,r=e.noteId,o={ids:[r]};this.getEvent({socket:n,sub:o}).then((function(e){if(!e)throw console.log("Error: We can't find that note on this relay"),"Event not found";t.setState({event:e,kind:e.kind,profilePkey:e.pubkey}),t.fetchProfile({socket:n,profilePkey:e.pubkey}),1==e.kind?(t.fetchMeta({socket:n,noteId:r}),t.fetchTags({socket:n,tags:e.tags})):e.kind})).catch((function(e){console.log("Error fetching note: ".concat(e)),t.setState({event:{id:r,error:!0,content:"Sorry, we weren't able to find and parse this note on the specified relay."}})}))}},{key:"fetchProfile",value:function(e){var t=this,n=e.socket,r=e.profilePkey,o={kinds:[0],authors:[r]};this.getEvent({socket:n,sub:o}).then((function(e){if(!e)throw"Event not found";var o,i=JSON.parse(e.content);i.pubkey=r,t.setState({profilePkey:r,profile:i}),0==t.state.kind&&(t.fetchProfileMeta({socket:n,pubkey:r}),null!==(o=t.props.options)&&void 0!==o&&o.showFollowing&&t.fetchFollows({socket:n,pubkey:r}))})).catch((function(e){console.log("Error fetching profile: ".concat(e)),t.setState({profile:{pubkey:r,error:!0,about:"Sorry, we weren't able to find this profile on the specified relay."}})}))}},{key:"fetchFollows",value:function(e){var t=this,n=e.socket,r={kinds:[3],authors:[e.pubkey]},o=[];this.getEvent({socket:n,sub:r}).then((function(e){if(!e)throw"Event not found";null==e||e.tags.forEach((function(e){"p"===e[0]&&o.push(e[1])})),t.fetchFollowProfiles({socket:n,pubkeys:o})})).catch((function(e){console.error("Error fetching follows: ".concat(e))}))}},{key:"fetchFollowProfiles",value:function(e){var t=this,n=e.socket,r={kinds:[0],authors:e.pubkeys};this.listEvents({socket:n,sub:r}).then((function(e){e&&t.setState({follows:e})})).catch((function(e){console.error("Error fetching follow profiles: ".concat(e))}))}},{key:"fetchNaddr",value:function(e){var t=this,n=e.socket,r=e.data,o={kinds:[r.kind],"#d":[r.identifier],authors:[r.pubkey]};this.getEvent({socket:n,sub:o}).then((function(e){if(!e)throw"Event not found";if(t.setState({event:e,kind:e.kind}),t.fetchProfile({socket:n,profilePkey:e.pubkey}),3==e.kind||3e4==e.kind){var o=t.getProfilesListObj(e.tags);o.created_at=e.created_at,o.id="".concat(r.kind,":").concat(r.pubkey,":").concat(r.identifier),o.naddr=t.props.id,t.setState({profilesList:o}),t.fetchTags({socket:n,tags:e.tags}),t.fetchMeta({socket:n,data:r})}})).catch((function(e){console.log("Error fetching event by naddr: ".concat(e)),t.setState({profilesList:{error:!0,content:"Sorry, we weren't able to find this event on the specified relay."}})}))}},{key:"fetchTags",value:function(e){var t,n=this,r=e.socket,o=e.tags,i={kinds:[0],authors:[]},a=0,s=gn(o);try{for(s.s();!(t=s.n()).done;){var c=t.value;i.authors.length<100&&c.length>=2&&"p"==c[0]&&i.authors.push(c[1]),c.length>=2&&"p"==c[0]&&a++}}catch(e){s.e(e)}finally{s.f()}this.setState((function(e){return{countTaggedProfiles:e.countTaggedProfiles+a}})),i.authors.length&&this.listEvents({socket:r,sub:i}).then((function(e){var t,r={},o=gn(e);try{for(o.s();!(t=o.n()).done;){var i=t.value;try{var a=JSON.parse(i.content);r[i.pubkey]=a}catch(e){console.log("Error bad event content",e,i.content)}}}catch(e){o.e(e)}finally{o.f()}n.setState({taggedProfiles:r})})).catch((function(e){console.log("Error fetching tagged profiles: ".concat(e))}))}},{key:"getProfilesListObj",value:function(e){var t={};return e.forEach((function(e){e&&e[0]&&("name"===e[0]&&(t.name=e[1]),"d"===e[0]&&(t.d=e[1]),"description"===e[0]&&(t.description=e[1]))})),t}},{key:"getZapAmount",value:function(e){try{var t,n=gn(e.tags);try{for(n.s();!(t=n.n()).done;){var r=t.value;if(r.length>=2&&"bolt11"==r[0]){var o,i=gn((0,Ge.decode)(r[1]).sections);try{for(i.s();!(o=i.n()).done;){var a=o.value;if("amount"==a.name)return parseInt(a.value)}}catch(e){i.e(e)}finally{i.f()}break}}}catch(e){n.e(e)}finally{n.f()}}catch(t){console.log("Error bad zap",t,e)}return 0}},{key:"onListMetaEvents",value:function(e){var t,n=this,r=gn(e);try{var o=function(){var e=t.value;switch(e.kind){case KIND_REPOST:n.setState((function(e){return{repostsCount:e.repostsCount+1}}));break;case KIND_REACTION:n.setState((function(e){return{likesCount:e.likesCount+1}}));break;case 1:n.setState((function(e){return{repliesCount:e.repliesCount+1}}));break;case on:n.setState((function(t){return{zapAmount:t.zapAmount+n.getZapAmount(e)}}));break;default:console.log("Unknown note kind")}};for(r.s();!(t=r.n()).done;)o()}catch(e){r.e(e)}finally{r.f()}}},{key:"fetchMeta",value:function(e){var t,n=e.socket,r=e.noteId,o=e.data;if(null===(t=this.props.options)||void 0===t||!t.hideCounters)return n.url.includes("wss://relay.nostr.band")?this.fetchMetaCount({socket:n,noteId:r,data:o}):this.fetchMetaList({socket:n,noteId:r,data:o})}},{key:"fetchMetaCount",value:function(e){var t=this,n=e.socket,r=e.noteId,o=e.data,i=function(e){return r?{kinds:[e],"#e":[r]}:o?{kinds:[e],"#a":["".concat(o.kind,":").concat(o.pubkey,":").concat(o.identifier)]}:void 0};this.countEvents({socket:n,sub:i(1)}).then((function(e){t.setState((function(t){return{repliesCount:e?e.count:0}}))})),this.countEvents({socket:n,sub:i(KIND_REPOST)}).then((function(e){t.setState((function(t){return{repostsCount:e?e.count:0}}))})),this.countEvents({socket:n,sub:i(KIND_REACTION)}).then((function(e){t.setState((function(t){return{likesCount:e?e.count:0}}))})),this.listEvents({socket:n,sub:i(on)}).then((function(e){t.onListMetaEvents(e)}))}},{key:"fetchMetaList",value:function(e){var t=this,n=e.socket,r=e.noteId,o=e.data,i=this.getSubOnFetchMetaList({noteId:r,data:o});this.listEvents({socket:n,sub:i}).then((function(e){t.onListMetaEvents(e)}))}},{key:"getSubOnFetchMetaList",value:function(e){var t=e.noteId,n=e.data;return t?{kinds:[1,KIND_REPOST,KIND_REACTION,on],"#e":[t]}:n?{kinds:[1,KIND_REPOST,KIND_REACTION,on],"#a":["".concat(n.kind,":").concat(n.pubkey,":").concat(n.identifier)]}:void 0}},{key:"onListProfileMetaEvents",value:function(e){var t,n=this,r=gn(e);try{var o=function(){var e=t.value;switch(e.kind){case 3:n.setState((function(e){return{followersCount:e.followersCount+1}}));break;case on:n.setState((function(t){return{zapAmount:t.zapAmount+n.getZapAmount(e)}}));break;default:console.log("Unknown event kind")}};for(r.s();!(t=r.n()).done;)o()}catch(e){r.e(e)}finally{r.f()}}},{key:"fetchProfileMetaCount",value:function(e){var t=this,n=e.socket,r=e.pubkey,o=function(e){return{kinds:[e],"#p":[r]}};this.countEvents({socket:n,sub:o(3)}).then((function(e){t.setState((function(t){return{followersCount:e?e.count:0}}))})),this.listEvents({socket:n,sub:o(on)}).then((function(e){t.onListProfileMetaEvents(e)}))}},{key:"fetchProfileMetaList",value:function(e){var t=this,n=e.socket,r=e.pubkey,o={kinds:[3,on],"#p":[r]};this.listEvents({socket:n,sub:o}).then((function(e){t.onListProfileMetaEvents(e)}))}},{key:"fetchProfileMeta",value:function(e){var t,n,r=e.socket,o=e.pubkey;if(console.log(null===(t=this.props.options)||void 0===t?void 0:t.hideCounters),null===(n=this.props.options)||void 0===n||!n.hideCounters)return r.url.includes("wss://relay.nostr.band")?this.fetchProfileMetaCount({socket:r,pubkey:o}):this.fetchProfileMetaList({socket:r,pubkey:o})}},{key:"render",value:function(){switch(this.state.kind){case 0:return kt(fn,{props:this.props,state:this.state});case 3:case 3e4:return kt(an,{props:this.props,state:this.state});case on:return kt(dn,{state:this.state});default:return kt(mn,{props:this.props,state:this.state})}}}],n&&kn(t.prototype,n),r&&kn(t,r),Object.defineProperty(t,"prototype",{writable:!1}),c}(g);const In=Sn;function Nn(e,t,n,r){n||(n="wss://relay.nostr.band/");var o=document.querySelector(t)?document.querySelector(t):document.querySelector("body");D(h(In,{id:e,relay:n,options:r}),o)}})(),i})())); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RWhDLElBNW5CRjRvQixHQUFBN0IsR0FBQTRCLEVBQUF2c0IsVUFBQXdzQixHQUFBQyxHQUFBOUIsR0FBQTRCLEVBQUFFLEdBQUF2L0IsT0FBQUMsZUFBQW8vQixFQUFBLGFBQUFySCxVQUFBLElBNG5CR2dILENBQUEsQ0FubkJhLENBQVMySixHQXNuQnpCLFlDN25CTyxTQUFTQyxHQUFLL2hDLEVBQUlnaUMsRUFBU3pJLEVBQU9qeUIsR0FFbENpeUIsSUFDSEEsRUFBUSwyQkFFVixJQUFNMEksRUFBZ0I5NEIsU0FBU0MsY0FBYzQ0QixHQUN6Qzc0QixTQUFTQyxjQUFjNDRCLEdBQ3ZCNzRCLFNBQVNDLGNBQWMsUUFFM0JzRyxFQUFPbkQsRUFBRTRyQixHQUFZLENBQUVuNEIsR0FBQUEsRUFBSXU1QixNQUFBQSxFQUFPanlCLFFBQUFBLElBQVkyNkIsRUFDaEQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9ub3N0ckVtYmVkL3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkL3dlYnBhY2svcnVudGltZS9jcmVhdGUgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0Iiwid2VicGFjazovL25vc3RyRW1iZWQvLi9ub2RlX21vZHVsZXMvQHNjdXJlL2Jhc2UvbGliL2luZGV4LmpzIiwid2VicGFjazovL25vc3RyRW1iZWQvLi9ub2RlX21vZHVsZXMvYmVjaDMyL2Rpc3QvaW5kZXguanMiLCJ3ZWJwYWNrOi8vbm9zdHJFbWJlZC8uL3NyYy9jb21wb25lbnRzL3N0eWxlLmNzcyIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkLy4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qcyIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkLy4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanMiLCJ3ZWJwYWNrOi8vbm9zdHJFbWJlZC8uL25vZGVfbW9kdWxlcy9saWdodC1ib2x0MTEtZGVjb2Rlci9ib2x0MTEuanMiLCJ3ZWJwYWNrOi8vbm9zdHJFbWJlZC8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qcyIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkLy4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qcyIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkLy4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzIiwid2VicGFjazovL25vc3RyRW1iZWQvLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanMiLCJ3ZWJwYWNrOi8vbm9zdHJFbWJlZC8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzIiwid2VicGFjazovL25vc3RyRW1iZWQvLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qcyIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL25vc3RyRW1iZWQvd2VicGFjay9ydW50aW1lL2NvbXBhdCBnZXQgZGVmYXVsdCBleHBvcnQiLCJ3ZWJwYWNrOi8vbm9zdHJFbWJlZC93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vbm9zdHJFbWJlZC93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL25vc3RyRW1iZWQvd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkL3dlYnBhY2svcnVudGltZS9ub25jZSIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkLy4vbm9kZV9tb2R1bGVzL3ByZWFjdC9kaXN0L3ByZWFjdC5tb2R1bGUuanMiLCJ3ZWJwYWNrOi8vbm9zdHJFbWJlZC8uL25vZGVfbW9kdWxlcy9Abm9ibGUvc2VjcDI1NmsxL2xpYi9lc20vaW5kZXguanMiLCJ3ZWJwYWNrOi8vbm9zdHJFbWJlZC8uL3NyYy91dGlscy9jb21tb24uanMiLCJ3ZWJwYWNrOi8vbm9zdHJFbWJlZC8uL25vZGVfbW9kdWxlcy9wcmVhY3QvaG9va3MvZGlzdC9ob29rcy5tb2R1bGUuanMiLCJ3ZWJwYWNrOi8vbm9zdHJFbWJlZC8uL25vZGVfbW9kdWxlcy9wcmVhY3QvanN4LXJ1bnRpbWUvZGlzdC9qc3hSdW50aW1lLm1vZHVsZS5qcyIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkLy4vc3JjL2NvbXBvbmVudHMvaWNvbnMvY29weUljb24uanN4Iiwid2VicGFjazovL25vc3RyRW1iZWQvLi9zcmMvY29tcG9uZW50cy9zdHlsZS5jc3M/ZmM3YyIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkLy4vc3JjL2NvbXBvbmVudHMvY29weVRleHQuanN4Iiwid2VicGFjazovL25vc3RyRW1iZWQvLi9zcmMvY29tcG9uZW50cy9pY29ucy9rZXlJY29uLmpzeCIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkLy4vc3JjL2NvbXBvbmVudHMvaWNvbnMvbm9zdHJpY2hJY29uLmpzeCIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkLy4vc3JjL2NvbXBvbmVudHMvcHJvZmlsZUltYWdlLmpzeCIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkLy4vc3JjL2NvbXBvbmVudHMvcHJvZmlsZS5qc3giLCJ3ZWJwYWNrOi8vbm9zdHJFbWJlZC8uL3NyYy9jb21wb25lbnRzL2ljb25zL2JvbHRJY29uLmpzeCIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkLy4vc3JjL2NvbXBvbmVudHMvaWNvbnMvaGVhcnRJY29uLmpzeCIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkLy4vc3JjL2NvbXBvbmVudHMvaWNvbnMvbGlua0ljb24uanN4Iiwid2VicGFjazovL25vc3RyRW1iZWQvLi9zcmMvY29tcG9uZW50cy9pY29ucy9yZXBseUljb24uanN4Iiwid2VicGFjazovL25vc3RyRW1iZWQvLi9zcmMvY29tcG9uZW50cy9pY29ucy9yZXBvc3RJY29uLmpzeCIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkLy4vc3JjL2NvbXBvbmVudHMvbWV0YS5qc3giLCJ3ZWJwYWNrOi8vbm9zdHJFbWJlZC8uL3NyYy9jb25maWcvY29uZmlnLmpzIiwid2VicGFjazovL25vc3RyRW1iZWQvLi9zcmMvbWFpbi9jb21wb25lbnRzL1Byb2ZpbGVzTGlzdC5qc3giLCJ3ZWJwYWNrOi8vbm9zdHJFbWJlZC8uL3NyYy9jb21wb25lbnRzL2ljb25zL2ZvbGxvd2Vyc0ljb24uanN4Iiwid2VicGFjazovL25vc3RyRW1iZWQvLi9zcmMvY29tcG9uZW50cy9wcm9maWxlTWV0YS5qc3giLCJ3ZWJwYWNrOi8vbm9zdHJFbWJlZC8uL3NyYy9jb21wb25lbnRzL3Byb2ZpbGVGb2xsb3dzLmpzeCIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkLy4vc3JjL21haW4vY29tcG9uZW50cy9Qcm9maWxlLmpzeCIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkLy4vc3JjL21haW4vY29tcG9uZW50cy9aYXAuanN4Iiwid2VicGFjazovL25vc3RyRW1iZWQvLi9zcmMvdXRpbHMvZm9ybWF0Q29udGVudC5qcyIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkLy4vc3JjL21haW4vY29tcG9uZW50cy9Ob3RlLmpzeCIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkLy4vc3JjL21haW4vTm9zdHJFbWJlZC5qc3giLCJ3ZWJwYWNrOi8vbm9zdHJFbWJlZC8uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShbXSwgZmFjdG9yeSk7XG5cdGVsc2UgaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKVxuXHRcdGV4cG9ydHNbXCJub3N0ckVtYmVkXCJdID0gZmFjdG9yeSgpO1xuXHRlbHNlXG5cdFx0cm9vdFtcIm5vc3RyRW1iZWRcIl0gPSBmYWN0b3J5KCk7XG59KSh0aGlzLCAoKSA9PiB7XG5yZXR1cm4gIiwidmFyIGdldFByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mID8gKG9iaikgPT4gKE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmopKSA6IChvYmopID0+IChvYmouX19wcm90b19fKTtcbnZhciBsZWFmUHJvdG90eXBlcztcbi8vIGNyZWF0ZSBhIGZha2UgbmFtZXNwYWNlIG9iamVjdFxuLy8gbW9kZSAmIDE6IHZhbHVlIGlzIGEgbW9kdWxlIGlkLCByZXF1aXJlIGl0XG4vLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0aGUgbnNcbi8vIG1vZGUgJiA0OiByZXR1cm4gdmFsdWUgd2hlbiBhbHJlYWR5IG5zIG9iamVjdFxuLy8gbW9kZSAmIDE2OiByZXR1cm4gdmFsdWUgd2hlbiBpdCdzIFByb21pc2UtbGlrZVxuLy8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZVxuX193ZWJwYWNrX3JlcXVpcmVfXy50ID0gZnVuY3Rpb24odmFsdWUsIG1vZGUpIHtcblx0aWYobW9kZSAmIDEpIHZhbHVlID0gdGhpcyh2YWx1ZSk7XG5cdGlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7XG5cdGlmKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUpIHtcblx0XHRpZigobW9kZSAmIDQpICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcblx0XHRpZigobW9kZSAmIDE2KSAmJiB0eXBlb2YgdmFsdWUudGhlbiA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHZhbHVlO1xuXHR9XG5cdHZhciBucyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cdF9fd2VicGFja19yZXF1aXJlX18ucihucyk7XG5cdHZhciBkZWYgPSB7fTtcblx0bGVhZlByb3RvdHlwZXMgPSBsZWFmUHJvdG90eXBlcyB8fCBbbnVsbCwgZ2V0UHJvdG8oe30pLCBnZXRQcm90byhbXSksIGdldFByb3RvKGdldFByb3RvKV07XG5cdGZvcih2YXIgY3VycmVudCA9IG1vZGUgJiAyICYmIHZhbHVlOyB0eXBlb2YgY3VycmVudCA9PSAnb2JqZWN0JyAmJiAhfmxlYWZQcm90b3R5cGVzLmluZGV4T2YoY3VycmVudCk7IGN1cnJlbnQgPSBnZXRQcm90byhjdXJyZW50KSkge1xuXHRcdE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGN1cnJlbnQpLmZvckVhY2goKGtleSkgPT4gKGRlZltrZXldID0gKCkgPT4gKHZhbHVlW2tleV0pKSk7XG5cdH1cblx0ZGVmWydkZWZhdWx0J10gPSAoKSA9PiAodmFsdWUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGRlZik7XG5cdHJldHVybiBucztcbn07IiwiXCJ1c2Ugc3RyaWN0XCI7XG4vKiEgc2N1cmUtYmFzZSAtIE1JVCBMaWNlbnNlIChjKSAyMDIyIFBhdWwgTWlsbGVyIChwYXVsbWlsbHIuY29tKSAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5ieXRlcyA9IGV4cG9ydHMuc3RyaW5nVG9CeXRlcyA9IGV4cG9ydHMuc3RyID0gZXhwb3J0cy5ieXRlc1RvU3RyaW5nID0gZXhwb3J0cy5oZXggPSBleHBvcnRzLnV0ZjggPSBleHBvcnRzLmJlY2gzMm0gPSBleHBvcnRzLmJlY2gzMiA9IGV4cG9ydHMuYmFzZTU4Y2hlY2sgPSBleHBvcnRzLmJhc2U1OHhtciA9IGV4cG9ydHMuYmFzZTU4eHJwID0gZXhwb3J0cy5iYXNlNThmbGlja3IgPSBleHBvcnRzLmJhc2U1OCA9IGV4cG9ydHMuYmFzZTY0dXJsID0gZXhwb3J0cy5iYXNlNjQgPSBleHBvcnRzLmJhc2UzMmNyb2NrZm9yZCA9IGV4cG9ydHMuYmFzZTMyaGV4ID0gZXhwb3J0cy5iYXNlMzIgPSBleHBvcnRzLmJhc2UxNiA9IGV4cG9ydHMudXRpbHMgPSBleHBvcnRzLmFzc2VydE51bWJlciA9IHZvaWQgMDtcbmZ1bmN0aW9uIGFzc2VydE51bWJlcihuKSB7XG4gICAgaWYgKCFOdW1iZXIuaXNTYWZlSW50ZWdlcihuKSlcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBXcm9uZyBpbnRlZ2VyOiAke259YCk7XG59XG5leHBvcnRzLmFzc2VydE51bWJlciA9IGFzc2VydE51bWJlcjtcbmZ1bmN0aW9uIGNoYWluKC4uLmFyZ3MpIHtcbiAgICBjb25zdCB3cmFwID0gKGEsIGIpID0+IChjKSA9PiBhKGIoYykpO1xuICAgIGNvbnN0IGVuY29kZSA9IEFycmF5LmZyb20oYXJncylcbiAgICAgICAgLnJldmVyc2UoKVxuICAgICAgICAucmVkdWNlKChhY2MsIGkpID0+IChhY2MgPyB3cmFwKGFjYywgaS5lbmNvZGUpIDogaS5lbmNvZGUpLCB1bmRlZmluZWQpO1xuICAgIGNvbnN0IGRlY29kZSA9IGFyZ3MucmVkdWNlKChhY2MsIGkpID0+IChhY2MgPyB3cmFwKGFjYywgaS5kZWNvZGUpIDogaS5kZWNvZGUpLCB1bmRlZmluZWQpO1xuICAgIHJldHVybiB7IGVuY29kZSwgZGVjb2RlIH07XG59XG5mdW5jdGlvbiBhbHBoYWJldChhbHBoYWJldCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIGVuY29kZTogKGRpZ2l0cykgPT4ge1xuICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGRpZ2l0cykgfHwgKGRpZ2l0cy5sZW5ndGggJiYgdHlwZW9mIGRpZ2l0c1swXSAhPT0gJ251bWJlcicpKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignYWxwaGFiZXQuZW5jb2RlIGlucHV0IHNob3VsZCBiZSBhbiBhcnJheSBvZiBudW1iZXJzJyk7XG4gICAgICAgICAgICByZXR1cm4gZGlnaXRzLm1hcCgoaSkgPT4ge1xuICAgICAgICAgICAgICAgIGFzc2VydE51bWJlcihpKTtcbiAgICAgICAgICAgICAgICBpZiAoaSA8IDAgfHwgaSA+PSBhbHBoYWJldC5sZW5ndGgpXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRGlnaXQgaW5kZXggb3V0c2lkZSBhbHBoYWJldDogJHtpfSAoYWxwaGFiZXQ6ICR7YWxwaGFiZXQubGVuZ3RofSlgKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWxwaGFiZXRbaV07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgZGVjb2RlOiAoaW5wdXQpID0+IHtcbiAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShpbnB1dCkgfHwgKGlucHV0Lmxlbmd0aCAmJiB0eXBlb2YgaW5wdXRbMF0gIT09ICdzdHJpbmcnKSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2FscGhhYmV0LmRlY29kZSBpbnB1dCBzaG91bGQgYmUgYXJyYXkgb2Ygc3RyaW5ncycpO1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0Lm1hcCgobGV0dGVyKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBsZXR0ZXIgIT09ICdzdHJpbmcnKVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGFscGhhYmV0LmRlY29kZTogbm90IHN0cmluZyBlbGVtZW50PSR7bGV0dGVyfWApO1xuICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gYWxwaGFiZXQuaW5kZXhPZihsZXR0ZXIpO1xuICAgICAgICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBsZXR0ZXI6IFwiJHtsZXR0ZXJ9XCIuIEFsbG93ZWQ6ICR7YWxwaGFiZXR9YCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGpvaW4oc2VwYXJhdG9yID0gJycpIHtcbiAgICBpZiAodHlwZW9mIHNlcGFyYXRvciAhPT0gJ3N0cmluZycpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignam9pbiBzZXBhcmF0b3Igc2hvdWxkIGJlIHN0cmluZycpO1xuICAgIHJldHVybiB7XG4gICAgICAgIGVuY29kZTogKGZyb20pID0+IHtcbiAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShmcm9tKSB8fCAoZnJvbS5sZW5ndGggJiYgdHlwZW9mIGZyb21bMF0gIT09ICdzdHJpbmcnKSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2pvaW4uZW5jb2RlIGlucHV0IHNob3VsZCBiZSBhcnJheSBvZiBzdHJpbmdzJyk7XG4gICAgICAgICAgICBmb3IgKGxldCBpIG9mIGZyb20pXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBpICE9PSAnc3RyaW5nJylcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBqb2luLmVuY29kZTogbm9uLXN0cmluZyBpbnB1dD0ke2l9YCk7XG4gICAgICAgICAgICByZXR1cm4gZnJvbS5qb2luKHNlcGFyYXRvcik7XG4gICAgICAgIH0sXG4gICAgICAgIGRlY29kZTogKHRvKSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHRvICE9PSAnc3RyaW5nJylcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2pvaW4uZGVjb2RlIGlucHV0IHNob3VsZCBiZSBzdHJpbmcnKTtcbiAgICAgICAgICAgIHJldHVybiB0by5zcGxpdChzZXBhcmF0b3IpO1xuICAgICAgICB9LFxuICAgIH07XG59XG5mdW5jdGlvbiBwYWRkaW5nKGJpdHMsIGNociA9ICc9Jykge1xuICAgIGFzc2VydE51bWJlcihiaXRzKTtcbiAgICBpZiAodHlwZW9mIGNociAhPT0gJ3N0cmluZycpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcigncGFkZGluZyBjaHIgc2hvdWxkIGJlIHN0cmluZycpO1xuICAgIHJldHVybiB7XG4gICAgICAgIGVuY29kZShkYXRhKSB7XG4gICAgICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoZGF0YSkgfHwgKGRhdGEubGVuZ3RoICYmIHR5cGVvZiBkYXRhWzBdICE9PSAnc3RyaW5nJykpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdwYWRkaW5nLmVuY29kZSBpbnB1dCBzaG91bGQgYmUgYXJyYXkgb2Ygc3RyaW5ncycpO1xuICAgICAgICAgICAgZm9yIChsZXQgaSBvZiBkYXRhKVxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgaSAhPT0gJ3N0cmluZycpXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgcGFkZGluZy5lbmNvZGU6IG5vbi1zdHJpbmcgaW5wdXQ9JHtpfWApO1xuICAgICAgICAgICAgd2hpbGUgKChkYXRhLmxlbmd0aCAqIGJpdHMpICUgOClcbiAgICAgICAgICAgICAgICBkYXRhLnB1c2goY2hyKTtcbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9LFxuICAgICAgICBkZWNvZGUoaW5wdXQpIHtcbiAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShpbnB1dCkgfHwgKGlucHV0Lmxlbmd0aCAmJiB0eXBlb2YgaW5wdXRbMF0gIT09ICdzdHJpbmcnKSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3BhZGRpbmcuZW5jb2RlIGlucHV0IHNob3VsZCBiZSBhcnJheSBvZiBzdHJpbmdzJyk7XG4gICAgICAgICAgICBmb3IgKGxldCBpIG9mIGlucHV0KVxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgaSAhPT0gJ3N0cmluZycpXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgcGFkZGluZy5kZWNvZGU6IG5vbi1zdHJpbmcgaW5wdXQ9JHtpfWApO1xuICAgICAgICAgICAgbGV0IGVuZCA9IGlucHV0Lmxlbmd0aDtcbiAgICAgICAgICAgIGlmICgoZW5kICogYml0cykgJSA4KVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBwYWRkaW5nOiBzdHJpbmcgc2hvdWxkIGhhdmUgd2hvbGUgbnVtYmVyIG9mIGJ5dGVzJyk7XG4gICAgICAgICAgICBmb3IgKDsgZW5kID4gMCAmJiBpbnB1dFtlbmQgLSAxXSA9PT0gY2hyOyBlbmQtLSkge1xuICAgICAgICAgICAgICAgIGlmICghKCgoZW5kIC0gMSkgKiBiaXRzKSAlIDgpKVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgcGFkZGluZzogc3RyaW5nIGhhcyB0b28gbXVjaCBwYWRkaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gaW5wdXQuc2xpY2UoMCwgZW5kKTtcbiAgICAgICAgfSxcbiAgICB9O1xufVxuZnVuY3Rpb24gbm9ybWFsaXplKGZuKSB7XG4gICAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJylcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdub3JtYWxpemUgZm4gc2hvdWxkIGJlIGZ1bmN0aW9uJyk7XG4gICAgcmV0dXJuIHsgZW5jb2RlOiAoZnJvbSkgPT4gZnJvbSwgZGVjb2RlOiAodG8pID0+IGZuKHRvKSB9O1xufVxuZnVuY3Rpb24gY29udmVydFJhZGl4KGRhdGEsIGZyb20sIHRvKSB7XG4gICAgaWYgKGZyb20gPCAyKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGNvbnZlcnRSYWRpeDogd3JvbmcgZnJvbT0ke2Zyb219LCBiYXNlIGNhbm5vdCBiZSBsZXNzIHRoYW4gMmApO1xuICAgIGlmICh0byA8IDIpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgY29udmVydFJhZGl4OiB3cm9uZyB0bz0ke3RvfSwgYmFzZSBjYW5ub3QgYmUgbGVzcyB0aGFuIDJgKTtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZGF0YSkpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignY29udmVydFJhZGl4OiBkYXRhIHNob3VsZCBiZSBhcnJheScpO1xuICAgIGlmICghZGF0YS5sZW5ndGgpXG4gICAgICAgIHJldHVybiBbXTtcbiAgICBsZXQgcG9zID0gMDtcbiAgICBjb25zdCByZXMgPSBbXTtcbiAgICBjb25zdCBkaWdpdHMgPSBBcnJheS5mcm9tKGRhdGEpO1xuICAgIGRpZ2l0cy5mb3JFYWNoKChkKSA9PiB7XG4gICAgICAgIGFzc2VydE51bWJlcihkKTtcbiAgICAgICAgaWYgKGQgPCAwIHx8IGQgPj0gZnJvbSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgV3JvbmcgaW50ZWdlcjogJHtkfWApO1xuICAgIH0pO1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgIGxldCBjYXJyeSA9IDA7XG4gICAgICAgIGxldCBkb25lID0gdHJ1ZTtcbiAgICAgICAgZm9yIChsZXQgaSA9IHBvczsgaSA8IGRpZ2l0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgZGlnaXQgPSBkaWdpdHNbaV07XG4gICAgICAgICAgICBjb25zdCBkaWdpdEJhc2UgPSBmcm9tICogY2FycnkgKyBkaWdpdDtcbiAgICAgICAgICAgIGlmICghTnVtYmVyLmlzU2FmZUludGVnZXIoZGlnaXRCYXNlKSB8fFxuICAgICAgICAgICAgICAgIChmcm9tICogY2FycnkpIC8gZnJvbSAhPT0gY2FycnkgfHxcbiAgICAgICAgICAgICAgICBkaWdpdEJhc2UgLSBkaWdpdCAhPT0gZnJvbSAqIGNhcnJ5KSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdjb252ZXJ0UmFkaXg6IGNhcnJ5IG92ZXJmbG93Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXJyeSA9IGRpZ2l0QmFzZSAlIHRvO1xuICAgICAgICAgICAgZGlnaXRzW2ldID0gTWF0aC5mbG9vcihkaWdpdEJhc2UgLyB0byk7XG4gICAgICAgICAgICBpZiAoIU51bWJlci5pc1NhZmVJbnRlZ2VyKGRpZ2l0c1tpXSkgfHwgZGlnaXRzW2ldICogdG8gKyBjYXJyeSAhPT0gZGlnaXRCYXNlKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignY29udmVydFJhZGl4OiBjYXJyeSBvdmVyZmxvdycpO1xuICAgICAgICAgICAgaWYgKCFkb25lKVxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgZWxzZSBpZiAoIWRpZ2l0c1tpXSlcbiAgICAgICAgICAgICAgICBwb3MgPSBpO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIGRvbmUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXMucHVzaChjYXJyeSk7XG4gICAgICAgIGlmIChkb25lKVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGggLSAxICYmIGRhdGFbaV0gPT09IDA7IGkrKylcbiAgICAgICAgcmVzLnB1c2goMCk7XG4gICAgcmV0dXJuIHJlcy5yZXZlcnNlKCk7XG59XG5jb25zdCBnY2QgPSAoYSwgYikgPT4gKCFiID8gYSA6IGdjZChiLCBhICUgYikpO1xuY29uc3QgcmFkaXgyY2FycnkgPSAoZnJvbSwgdG8pID0+IGZyb20gKyAodG8gLSBnY2QoZnJvbSwgdG8pKTtcbmZ1bmN0aW9uIGNvbnZlcnRSYWRpeDIoZGF0YSwgZnJvbSwgdG8sIHBhZGRpbmcpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZGF0YSkpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignY29udmVydFJhZGl4MjogZGF0YSBzaG91bGQgYmUgYXJyYXknKTtcbiAgICBpZiAoZnJvbSA8PSAwIHx8IGZyb20gPiAzMilcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBjb252ZXJ0UmFkaXgyOiB3cm9uZyBmcm9tPSR7ZnJvbX1gKTtcbiAgICBpZiAodG8gPD0gMCB8fCB0byA+IDMyKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGNvbnZlcnRSYWRpeDI6IHdyb25nIHRvPSR7dG99YCk7XG4gICAgaWYgKHJhZGl4MmNhcnJ5KGZyb20sIHRvKSA+IDMyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgY29udmVydFJhZGl4MjogY2Fycnkgb3ZlcmZsb3cgZnJvbT0ke2Zyb219IHRvPSR7dG99IGNhcnJ5Qml0cz0ke3JhZGl4MmNhcnJ5KGZyb20sIHRvKX1gKTtcbiAgICB9XG4gICAgbGV0IGNhcnJ5ID0gMDtcbiAgICBsZXQgcG9zID0gMDtcbiAgICBjb25zdCBtYXNrID0gMiAqKiB0byAtIDE7XG4gICAgY29uc3QgcmVzID0gW107XG4gICAgZm9yIChjb25zdCBuIG9mIGRhdGEpIHtcbiAgICAgICAgYXNzZXJ0TnVtYmVyKG4pO1xuICAgICAgICBpZiAobiA+PSAyICoqIGZyb20pXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGNvbnZlcnRSYWRpeDI6IGludmFsaWQgZGF0YSB3b3JkPSR7bn0gZnJvbT0ke2Zyb219YCk7XG4gICAgICAgIGNhcnJ5ID0gKGNhcnJ5IDw8IGZyb20pIHwgbjtcbiAgICAgICAgaWYgKHBvcyArIGZyb20gPiAzMilcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgY29udmVydFJhZGl4MjogY2Fycnkgb3ZlcmZsb3cgcG9zPSR7cG9zfSBmcm9tPSR7ZnJvbX1gKTtcbiAgICAgICAgcG9zICs9IGZyb207XG4gICAgICAgIGZvciAoOyBwb3MgPj0gdG87IHBvcyAtPSB0bylcbiAgICAgICAgICAgIHJlcy5wdXNoKCgoY2FycnkgPj4gKHBvcyAtIHRvKSkgJiBtYXNrKSA+Pj4gMCk7XG4gICAgICAgIGNhcnJ5ICY9IDIgKiogcG9zIC0gMTtcbiAgICB9XG4gICAgY2FycnkgPSAoY2FycnkgPDwgKHRvIC0gcG9zKSkgJiBtYXNrO1xuICAgIGlmICghcGFkZGluZyAmJiBwb3MgPj0gZnJvbSlcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeGNlc3MgcGFkZGluZycpO1xuICAgIGlmICghcGFkZGluZyAmJiBjYXJyeSlcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBOb24temVybyBwYWRkaW5nOiAke2NhcnJ5fWApO1xuICAgIGlmIChwYWRkaW5nICYmIHBvcyA+IDApXG4gICAgICAgIHJlcy5wdXNoKGNhcnJ5ID4+PiAwKTtcbiAgICByZXR1cm4gcmVzO1xufVxuZnVuY3Rpb24gcmFkaXgobnVtKSB7XG4gICAgYXNzZXJ0TnVtYmVyKG51bSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgZW5jb2RlOiAoYnl0ZXMpID0+IHtcbiAgICAgICAgICAgIGlmICghKGJ5dGVzIGluc3RhbmNlb2YgVWludDhBcnJheSkpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdyYWRpeC5lbmNvZGUgaW5wdXQgc2hvdWxkIGJlIFVpbnQ4QXJyYXknKTtcbiAgICAgICAgICAgIHJldHVybiBjb252ZXJ0UmFkaXgoQXJyYXkuZnJvbShieXRlcyksIDIgKiogOCwgbnVtKTtcbiAgICAgICAgfSxcbiAgICAgICAgZGVjb2RlOiAoZGlnaXRzKSA9PiB7XG4gICAgICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoZGlnaXRzKSB8fCAoZGlnaXRzLmxlbmd0aCAmJiB0eXBlb2YgZGlnaXRzWzBdICE9PSAnbnVtYmVyJykpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdyYWRpeC5kZWNvZGUgaW5wdXQgc2hvdWxkIGJlIGFycmF5IG9mIHN0cmluZ3MnKTtcbiAgICAgICAgICAgIHJldHVybiBVaW50OEFycmF5LmZyb20oY29udmVydFJhZGl4KGRpZ2l0cywgbnVtLCAyICoqIDgpKTtcbiAgICAgICAgfSxcbiAgICB9O1xufVxuZnVuY3Rpb24gcmFkaXgyKGJpdHMsIHJldlBhZGRpbmcgPSBmYWxzZSkge1xuICAgIGFzc2VydE51bWJlcihiaXRzKTtcbiAgICBpZiAoYml0cyA8PSAwIHx8IGJpdHMgPiAzMilcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdyYWRpeDI6IGJpdHMgc2hvdWxkIGJlIGluICgwLi4zMl0nKTtcbiAgICBpZiAocmFkaXgyY2FycnkoOCwgYml0cykgPiAzMiB8fCByYWRpeDJjYXJyeShiaXRzLCA4KSA+IDMyKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3JhZGl4MjogY2Fycnkgb3ZlcmZsb3cnKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBlbmNvZGU6IChieXRlcykgPT4ge1xuICAgICAgICAgICAgaWYgKCEoYnl0ZXMgaW5zdGFuY2VvZiBVaW50OEFycmF5KSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3JhZGl4Mi5lbmNvZGUgaW5wdXQgc2hvdWxkIGJlIFVpbnQ4QXJyYXknKTtcbiAgICAgICAgICAgIHJldHVybiBjb252ZXJ0UmFkaXgyKEFycmF5LmZyb20oYnl0ZXMpLCA4LCBiaXRzLCAhcmV2UGFkZGluZyk7XG4gICAgICAgIH0sXG4gICAgICAgIGRlY29kZTogKGRpZ2l0cykgPT4ge1xuICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGRpZ2l0cykgfHwgKGRpZ2l0cy5sZW5ndGggJiYgdHlwZW9mIGRpZ2l0c1swXSAhPT0gJ251bWJlcicpKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigncmFkaXgyLmRlY29kZSBpbnB1dCBzaG91bGQgYmUgYXJyYXkgb2Ygc3RyaW5ncycpO1xuICAgICAgICAgICAgcmV0dXJuIFVpbnQ4QXJyYXkuZnJvbShjb252ZXJ0UmFkaXgyKGRpZ2l0cywgYml0cywgOCwgcmV2UGFkZGluZykpO1xuICAgICAgICB9LFxuICAgIH07XG59XG5mdW5jdGlvbiB1bnNhZmVXcmFwcGVyKGZuKSB7XG4gICAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJylcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd1bnNhZmVXcmFwcGVyIGZuIHNob3VsZCBiZSBmdW5jdGlvbicpO1xuICAgIHJldHVybiBmdW5jdGlvbiAoLi4uYXJncykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIGZuLmFwcGx5KG51bGwsIGFyZ3MpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7IH1cbiAgICB9O1xufVxuZnVuY3Rpb24gY2hlY2tzdW0obGVuLCBmbikge1xuICAgIGFzc2VydE51bWJlcihsZW4pO1xuICAgIGlmICh0eXBlb2YgZm4gIT09ICdmdW5jdGlvbicpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignY2hlY2tzdW0gZm4gc2hvdWxkIGJlIGZ1bmN0aW9uJyk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgZW5jb2RlKGRhdGEpIHtcbiAgICAgICAgICAgIGlmICghKGRhdGEgaW5zdGFuY2VvZiBVaW50OEFycmF5KSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NoZWNrc3VtLmVuY29kZTogaW5wdXQgc2hvdWxkIGJlIFVpbnQ4QXJyYXknKTtcbiAgICAgICAgICAgIGNvbnN0IGNoZWNrc3VtID0gZm4oZGF0YSkuc2xpY2UoMCwgbGVuKTtcbiAgICAgICAgICAgIGNvbnN0IHJlcyA9IG5ldyBVaW50OEFycmF5KGRhdGEubGVuZ3RoICsgbGVuKTtcbiAgICAgICAgICAgIHJlcy5zZXQoZGF0YSk7XG4gICAgICAgICAgICByZXMuc2V0KGNoZWNrc3VtLCBkYXRhLmxlbmd0aCk7XG4gICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICB9LFxuICAgICAgICBkZWNvZGUoZGF0YSkge1xuICAgICAgICAgICAgaWYgKCEoZGF0YSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignY2hlY2tzdW0uZGVjb2RlOiBpbnB1dCBzaG91bGQgYmUgVWludDhBcnJheScpO1xuICAgICAgICAgICAgY29uc3QgcGF5bG9hZCA9IGRhdGEuc2xpY2UoMCwgLWxlbik7XG4gICAgICAgICAgICBjb25zdCBuZXdDaGVja3N1bSA9IGZuKHBheWxvYWQpLnNsaWNlKDAsIGxlbik7XG4gICAgICAgICAgICBjb25zdCBvbGRDaGVja3N1bSA9IGRhdGEuc2xpY2UoLWxlbik7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKVxuICAgICAgICAgICAgICAgIGlmIChuZXdDaGVja3N1bVtpXSAhPT0gb2xkQ2hlY2tzdW1baV0pXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjaGVja3N1bScpO1xuICAgICAgICAgICAgcmV0dXJuIHBheWxvYWQ7XG4gICAgICAgIH0sXG4gICAgfTtcbn1cbmV4cG9ydHMudXRpbHMgPSB7IGFscGhhYmV0LCBjaGFpbiwgY2hlY2tzdW0sIHJhZGl4LCByYWRpeDIsIGpvaW4sIHBhZGRpbmcgfTtcbmV4cG9ydHMuYmFzZTE2ID0gY2hhaW4ocmFkaXgyKDQpLCBhbHBoYWJldCgnMDEyMzQ1Njc4OUFCQ0RFRicpLCBqb2luKCcnKSk7XG5leHBvcnRzLmJhc2UzMiA9IGNoYWluKHJhZGl4Mig1KSwgYWxwaGFiZXQoJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMjM0NTY3JyksIHBhZGRpbmcoNSksIGpvaW4oJycpKTtcbmV4cG9ydHMuYmFzZTMyaGV4ID0gY2hhaW4ocmFkaXgyKDUpLCBhbHBoYWJldCgnMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVYnKSwgcGFkZGluZyg1KSwgam9pbignJykpO1xuZXhwb3J0cy5iYXNlMzJjcm9ja2ZvcmQgPSBjaGFpbihyYWRpeDIoNSksIGFscGhhYmV0KCcwMTIzNDU2Nzg5QUJDREVGR0hKS01OUFFSU1RWV1hZWicpLCBqb2luKCcnKSwgbm9ybWFsaXplKChzKSA9PiBzLnRvVXBwZXJDYXNlKCkucmVwbGFjZSgvTy9nLCAnMCcpLnJlcGxhY2UoL1tJTF0vZywgJzEnKSkpO1xuZXhwb3J0cy5iYXNlNjQgPSBjaGFpbihyYWRpeDIoNiksIGFscGhhYmV0KCdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvJyksIHBhZGRpbmcoNiksIGpvaW4oJycpKTtcbmV4cG9ydHMuYmFzZTY0dXJsID0gY2hhaW4ocmFkaXgyKDYpLCBhbHBoYWJldCgnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODktXycpLCBwYWRkaW5nKDYpLCBqb2luKCcnKSk7XG5jb25zdCBnZW5CYXNlNTggPSAoYWJjKSA9PiBjaGFpbihyYWRpeCg1OCksIGFscGhhYmV0KGFiYyksIGpvaW4oJycpKTtcbmV4cG9ydHMuYmFzZTU4ID0gZ2VuQmFzZTU4KCcxMjM0NTY3ODlBQkNERUZHSEpLTE1OUFFSU1RVVldYWVphYmNkZWZnaGlqa21ub3BxcnN0dXZ3eHl6Jyk7XG5leHBvcnRzLmJhc2U1OGZsaWNrciA9IGdlbkJhc2U1OCgnMTIzNDU2Nzg5YWJjZGVmZ2hpamttbm9wcXJzdHV2d3h5ekFCQ0RFRkdISktMTU5QUVJTVFVWV1hZWicpO1xuZXhwb3J0cy5iYXNlNTh4cnAgPSBnZW5CYXNlNTgoJ3Jwc2huYWYzOXdCVURORUdISktMTTRQUVJTVDdWV1hZWjJiY2RlQ2c2NWprbThvRnFpMXR1dkF4eXonKTtcbmNvbnN0IFhNUl9CTE9DS19MRU4gPSBbMCwgMiwgMywgNSwgNiwgNywgOSwgMTAsIDExXTtcbmV4cG9ydHMuYmFzZTU4eG1yID0ge1xuICAgIGVuY29kZShkYXRhKSB7XG4gICAgICAgIGxldCByZXMgPSAnJztcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSArPSA4KSB7XG4gICAgICAgICAgICBjb25zdCBibG9jayA9IGRhdGEuc3ViYXJyYXkoaSwgaSArIDgpO1xuICAgICAgICAgICAgcmVzICs9IGV4cG9ydHMuYmFzZTU4LmVuY29kZShibG9jaykucGFkU3RhcnQoWE1SX0JMT0NLX0xFTltibG9jay5sZW5ndGhdLCAnMScpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfSxcbiAgICBkZWNvZGUoc3RyKSB7XG4gICAgICAgIGxldCByZXMgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpICs9IDExKSB7XG4gICAgICAgICAgICBjb25zdCBzbGljZSA9IHN0ci5zbGljZShpLCBpICsgMTEpO1xuICAgICAgICAgICAgY29uc3QgYmxvY2tMZW4gPSBYTVJfQkxPQ0tfTEVOLmluZGV4T2Yoc2xpY2UubGVuZ3RoKTtcbiAgICAgICAgICAgIGNvbnN0IGJsb2NrID0gZXhwb3J0cy5iYXNlNTguZGVjb2RlKHNsaWNlKTtcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgYmxvY2subGVuZ3RoIC0gYmxvY2tMZW47IGorKykge1xuICAgICAgICAgICAgICAgIGlmIChibG9ja1tqXSAhPT0gMClcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYXNlNTh4bXI6IHdyb25nIHBhZGRpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlcyA9IHJlcy5jb25jYXQoQXJyYXkuZnJvbShibG9jay5zbGljZShibG9jay5sZW5ndGggLSBibG9ja0xlbikpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gVWludDhBcnJheS5mcm9tKHJlcyk7XG4gICAgfSxcbn07XG5jb25zdCBiYXNlNThjaGVjayA9IChzaGEyNTYpID0+IGNoYWluKGNoZWNrc3VtKDQsIChkYXRhKSA9PiBzaGEyNTYoc2hhMjU2KGRhdGEpKSksIGV4cG9ydHMuYmFzZTU4KTtcbmV4cG9ydHMuYmFzZTU4Y2hlY2sgPSBiYXNlNThjaGVjaztcbmNvbnN0IEJFQ0hfQUxQSEFCRVQgPSBjaGFpbihhbHBoYWJldCgncXB6cnk5eDhnZjJ0dmR3MHMzam41NGtoY2U2bXVhN2wnKSwgam9pbignJykpO1xuY29uc3QgUE9MWU1PRF9HRU5FUkFUT1JTID0gWzB4M2I2YTU3YjIsIDB4MjY1MDhlNmQsIDB4MWVhMTE5ZmEsIDB4M2Q0MjMzZGQsIDB4MmExNDYyYjNdO1xuZnVuY3Rpb24gYmVjaDMyUG9seW1vZChwcmUpIHtcbiAgICBjb25zdCBiID0gcHJlID4+IDI1O1xuICAgIGxldCBjaGsgPSAocHJlICYgMHgxZmZmZmZmKSA8PCA1O1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgUE9MWU1PRF9HRU5FUkFUT1JTLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmICgoKGIgPj4gaSkgJiAxKSA9PT0gMSlcbiAgICAgICAgICAgIGNoayBePSBQT0xZTU9EX0dFTkVSQVRPUlNbaV07XG4gICAgfVxuICAgIHJldHVybiBjaGs7XG59XG5mdW5jdGlvbiBiZWNoQ2hlY2tzdW0ocHJlZml4LCB3b3JkcywgZW5jb2RpbmdDb25zdCA9IDEpIHtcbiAgICBjb25zdCBsZW4gPSBwcmVmaXgubGVuZ3RoO1xuICAgIGxldCBjaGsgPSAxO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgY29uc3QgYyA9IHByZWZpeC5jaGFyQ29kZUF0KGkpO1xuICAgICAgICBpZiAoYyA8IDMzIHx8IGMgPiAxMjYpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcHJlZml4ICgke3ByZWZpeH0pYCk7XG4gICAgICAgIGNoayA9IGJlY2gzMlBvbHltb2QoY2hrKSBeIChjID4+IDUpO1xuICAgIH1cbiAgICBjaGsgPSBiZWNoMzJQb2x5bW9kKGNoayk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKylcbiAgICAgICAgY2hrID0gYmVjaDMyUG9seW1vZChjaGspIF4gKHByZWZpeC5jaGFyQ29kZUF0KGkpICYgMHgxZik7XG4gICAgZm9yIChsZXQgdiBvZiB3b3JkcylcbiAgICAgICAgY2hrID0gYmVjaDMyUG9seW1vZChjaGspIF4gdjtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDY7IGkrKylcbiAgICAgICAgY2hrID0gYmVjaDMyUG9seW1vZChjaGspO1xuICAgIGNoayBePSBlbmNvZGluZ0NvbnN0O1xuICAgIHJldHVybiBCRUNIX0FMUEhBQkVULmVuY29kZShjb252ZXJ0UmFkaXgyKFtjaGsgJSAyICoqIDMwXSwgMzAsIDUsIGZhbHNlKSk7XG59XG5mdW5jdGlvbiBnZW5CZWNoMzIoZW5jb2RpbmcpIHtcbiAgICBjb25zdCBFTkNPRElOR19DT05TVCA9IGVuY29kaW5nID09PSAnYmVjaDMyJyA/IDEgOiAweDJiYzgzMGEzO1xuICAgIGNvbnN0IF93b3JkcyA9IHJhZGl4Mig1KTtcbiAgICBjb25zdCBmcm9tV29yZHMgPSBfd29yZHMuZGVjb2RlO1xuICAgIGNvbnN0IHRvV29yZHMgPSBfd29yZHMuZW5jb2RlO1xuICAgIGNvbnN0IGZyb21Xb3Jkc1Vuc2FmZSA9IHVuc2FmZVdyYXBwZXIoZnJvbVdvcmRzKTtcbiAgICBmdW5jdGlvbiBlbmNvZGUocHJlZml4LCB3b3JkcywgbGltaXQgPSA5MCkge1xuICAgICAgICBpZiAodHlwZW9mIHByZWZpeCAhPT0gJ3N0cmluZycpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGJlY2gzMi5lbmNvZGUgcHJlZml4IHNob3VsZCBiZSBzdHJpbmcsIG5vdCAke3R5cGVvZiBwcmVmaXh9YCk7XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheSh3b3JkcykgfHwgKHdvcmRzLmxlbmd0aCAmJiB0eXBlb2Ygd29yZHNbMF0gIT09ICdudW1iZXInKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgYmVjaDMyLmVuY29kZSB3b3JkcyBzaG91bGQgYmUgYXJyYXkgb2YgbnVtYmVycywgbm90ICR7dHlwZW9mIHdvcmRzfWApO1xuICAgICAgICBjb25zdCBhY3R1YWxMZW5ndGggPSBwcmVmaXgubGVuZ3RoICsgNyArIHdvcmRzLmxlbmd0aDtcbiAgICAgICAgaWYgKGxpbWl0ICE9PSBmYWxzZSAmJiBhY3R1YWxMZW5ndGggPiBsaW1pdClcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYExlbmd0aCAke2FjdHVhbExlbmd0aH0gZXhjZWVkcyBsaW1pdCAke2xpbWl0fWApO1xuICAgICAgICBwcmVmaXggPSBwcmVmaXgudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgcmV0dXJuIGAke3ByZWZpeH0xJHtCRUNIX0FMUEhBQkVULmVuY29kZSh3b3Jkcyl9JHtiZWNoQ2hlY2tzdW0ocHJlZml4LCB3b3JkcywgRU5DT0RJTkdfQ09OU1QpfWA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRlY29kZShzdHIsIGxpbWl0ID0gOTApIHtcbiAgICAgICAgaWYgKHR5cGVvZiBzdHIgIT09ICdzdHJpbmcnKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBiZWNoMzIuZGVjb2RlIGlucHV0IHNob3VsZCBiZSBzdHJpbmcsIG5vdCAke3R5cGVvZiBzdHJ9YCk7XG4gICAgICAgIGlmIChzdHIubGVuZ3RoIDwgOCB8fCAobGltaXQgIT09IGZhbHNlICYmIHN0ci5sZW5ndGggPiBsaW1pdCkpXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBXcm9uZyBzdHJpbmcgbGVuZ3RoOiAke3N0ci5sZW5ndGh9ICgke3N0cn0pLiBFeHBlY3RlZCAoOC4uJHtsaW1pdH0pYCk7XG4gICAgICAgIGNvbnN0IGxvd2VyZWQgPSBzdHIudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKHN0ciAhPT0gbG93ZXJlZCAmJiBzdHIgIT09IHN0ci50b1VwcGVyQ2FzZSgpKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBTdHJpbmcgbXVzdCBiZSBsb3dlcmNhc2Ugb3IgdXBwZXJjYXNlYCk7XG4gICAgICAgIHN0ciA9IGxvd2VyZWQ7XG4gICAgICAgIGNvbnN0IHNlcEluZGV4ID0gc3RyLmxhc3RJbmRleE9mKCcxJyk7XG4gICAgICAgIGlmIChzZXBJbmRleCA9PT0gMCB8fCBzZXBJbmRleCA9PT0gLTEpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYExldHRlciBcIjFcIiBtdXN0IGJlIHByZXNlbnQgYmV0d2VlbiBwcmVmaXggYW5kIGRhdGEgb25seWApO1xuICAgICAgICBjb25zdCBwcmVmaXggPSBzdHIuc2xpY2UoMCwgc2VwSW5kZXgpO1xuICAgICAgICBjb25zdCBfd29yZHMgPSBzdHIuc2xpY2Uoc2VwSW5kZXggKyAxKTtcbiAgICAgICAgaWYgKF93b3Jkcy5sZW5ndGggPCA2KVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhIG11c3QgYmUgYXQgbGVhc3QgNiBjaGFyYWN0ZXJzIGxvbmcnKTtcbiAgICAgICAgY29uc3Qgd29yZHMgPSBCRUNIX0FMUEhBQkVULmRlY29kZShfd29yZHMpLnNsaWNlKDAsIC02KTtcbiAgICAgICAgY29uc3Qgc3VtID0gYmVjaENoZWNrc3VtKHByZWZpeCwgd29yZHMsIEVOQ09ESU5HX0NPTlNUKTtcbiAgICAgICAgaWYgKCFfd29yZHMuZW5kc1dpdGgoc3VtKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjaGVja3N1bSBpbiAke3N0cn06IGV4cGVjdGVkIFwiJHtzdW19XCJgKTtcbiAgICAgICAgcmV0dXJuIHsgcHJlZml4LCB3b3JkcyB9O1xuICAgIH1cbiAgICBjb25zdCBkZWNvZGVVbnNhZmUgPSB1bnNhZmVXcmFwcGVyKGRlY29kZSk7XG4gICAgZnVuY3Rpb24gZGVjb2RlVG9CeXRlcyhzdHIpIHtcbiAgICAgICAgY29uc3QgeyBwcmVmaXgsIHdvcmRzIH0gPSBkZWNvZGUoc3RyLCBmYWxzZSk7XG4gICAgICAgIHJldHVybiB7IHByZWZpeCwgd29yZHMsIGJ5dGVzOiBmcm9tV29yZHMod29yZHMpIH07XG4gICAgfVxuICAgIHJldHVybiB7IGVuY29kZSwgZGVjb2RlLCBkZWNvZGVUb0J5dGVzLCBkZWNvZGVVbnNhZmUsIGZyb21Xb3JkcywgZnJvbVdvcmRzVW5zYWZlLCB0b1dvcmRzIH07XG59XG5leHBvcnRzLmJlY2gzMiA9IGdlbkJlY2gzMignYmVjaDMyJyk7XG5leHBvcnRzLmJlY2gzMm0gPSBnZW5CZWNoMzIoJ2JlY2gzMm0nKTtcbmV4cG9ydHMudXRmOCA9IHtcbiAgICBlbmNvZGU6IChkYXRhKSA9PiBuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUoZGF0YSksXG4gICAgZGVjb2RlOiAoc3RyKSA9PiBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoc3RyKSxcbn07XG5leHBvcnRzLmhleCA9IGNoYWluKHJhZGl4Mig0KSwgYWxwaGFiZXQoJzAxMjM0NTY3ODlhYmNkZWYnKSwgam9pbignJyksIG5vcm1hbGl6ZSgocykgPT4ge1xuICAgIGlmICh0eXBlb2YgcyAhPT0gJ3N0cmluZycgfHwgcy5sZW5ndGggJSAyKVxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBoZXguZGVjb2RlOiBleHBlY3RlZCBzdHJpbmcsIGdvdCAke3R5cGVvZiBzfSB3aXRoIGxlbmd0aCAke3MubGVuZ3RofWApO1xuICAgIHJldHVybiBzLnRvTG93ZXJDYXNlKCk7XG59KSk7XG5jb25zdCBDT0RFUlMgPSB7XG4gICAgdXRmODogZXhwb3J0cy51dGY4LCBoZXg6IGV4cG9ydHMuaGV4LCBiYXNlMTY6IGV4cG9ydHMuYmFzZTE2LCBiYXNlMzI6IGV4cG9ydHMuYmFzZTMyLCBiYXNlNjQ6IGV4cG9ydHMuYmFzZTY0LCBiYXNlNjR1cmw6IGV4cG9ydHMuYmFzZTY0dXJsLCBiYXNlNTg6IGV4cG9ydHMuYmFzZTU4LCBiYXNlNTh4bXI6IGV4cG9ydHMuYmFzZTU4eG1yXG59O1xuY29uc3QgY29kZXJUeXBlRXJyb3IgPSBgSW52YWxpZCBlbmNvZGluZyB0eXBlLiBBdmFpbGFibGUgdHlwZXM6ICR7T2JqZWN0LmtleXMoQ09ERVJTKS5qb2luKCcsICcpfWA7XG5jb25zdCBieXRlc1RvU3RyaW5nID0gKHR5cGUsIGJ5dGVzKSA9PiB7XG4gICAgaWYgKHR5cGVvZiB0eXBlICE9PSAnc3RyaW5nJyB8fCAhQ09ERVJTLmhhc093blByb3BlcnR5KHR5cGUpKVxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGNvZGVyVHlwZUVycm9yKTtcbiAgICBpZiAoIShieXRlcyBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpKVxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdieXRlc1RvU3RyaW5nKCkgZXhwZWN0cyBVaW50OEFycmF5Jyk7XG4gICAgcmV0dXJuIENPREVSU1t0eXBlXS5lbmNvZGUoYnl0ZXMpO1xufTtcbmV4cG9ydHMuYnl0ZXNUb1N0cmluZyA9IGJ5dGVzVG9TdHJpbmc7XG5leHBvcnRzLnN0ciA9IGV4cG9ydHMuYnl0ZXNUb1N0cmluZztcbmNvbnN0IHN0cmluZ1RvQnl0ZXMgPSAodHlwZSwgc3RyKSA9PiB7XG4gICAgaWYgKCFDT0RFUlMuaGFzT3duUHJvcGVydHkodHlwZSkpXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoY29kZXJUeXBlRXJyb3IpO1xuICAgIGlmICh0eXBlb2Ygc3RyICE9PSAnc3RyaW5nJylcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignc3RyaW5nVG9CeXRlcygpIGV4cGVjdHMgc3RyaW5nJyk7XG4gICAgcmV0dXJuIENPREVSU1t0eXBlXS5kZWNvZGUoc3RyKTtcbn07XG5leHBvcnRzLnN0cmluZ1RvQnl0ZXMgPSBzdHJpbmdUb0J5dGVzO1xuZXhwb3J0cy5ieXRlcyA9IGV4cG9ydHMuc3RyaW5nVG9CeXRlcztcbiIsIid1c2Ugc3RyaWN0Jztcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuYmVjaDMybSA9IGV4cG9ydHMuYmVjaDMyID0gdm9pZCAwO1xuY29uc3QgQUxQSEFCRVQgPSAncXB6cnk5eDhnZjJ0dmR3MHMzam41NGtoY2U2bXVhN2wnO1xuY29uc3QgQUxQSEFCRVRfTUFQID0ge307XG5mb3IgKGxldCB6ID0gMDsgeiA8IEFMUEhBQkVULmxlbmd0aDsgeisrKSB7XG4gICAgY29uc3QgeCA9IEFMUEhBQkVULmNoYXJBdCh6KTtcbiAgICBBTFBIQUJFVF9NQVBbeF0gPSB6O1xufVxuZnVuY3Rpb24gcG9seW1vZFN0ZXAocHJlKSB7XG4gICAgY29uc3QgYiA9IHByZSA+PiAyNTtcbiAgICByZXR1cm4gKCgocHJlICYgMHgxZmZmZmZmKSA8PCA1KSBeXG4gICAgICAgICgtKChiID4+IDApICYgMSkgJiAweDNiNmE1N2IyKSBeXG4gICAgICAgICgtKChiID4+IDEpICYgMSkgJiAweDI2NTA4ZTZkKSBeXG4gICAgICAgICgtKChiID4+IDIpICYgMSkgJiAweDFlYTExOWZhKSBeXG4gICAgICAgICgtKChiID4+IDMpICYgMSkgJiAweDNkNDIzM2RkKSBeXG4gICAgICAgICgtKChiID4+IDQpICYgMSkgJiAweDJhMTQ2MmIzKSk7XG59XG5mdW5jdGlvbiBwcmVmaXhDaGsocHJlZml4KSB7XG4gICAgbGV0IGNoayA9IDE7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcmVmaXgubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgY29uc3QgYyA9IHByZWZpeC5jaGFyQ29kZUF0KGkpO1xuICAgICAgICBpZiAoYyA8IDMzIHx8IGMgPiAxMjYpXG4gICAgICAgICAgICByZXR1cm4gJ0ludmFsaWQgcHJlZml4ICgnICsgcHJlZml4ICsgJyknO1xuICAgICAgICBjaGsgPSBwb2x5bW9kU3RlcChjaGspIF4gKGMgPj4gNSk7XG4gICAgfVxuICAgIGNoayA9IHBvbHltb2RTdGVwKGNoayk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcmVmaXgubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgY29uc3QgdiA9IHByZWZpeC5jaGFyQ29kZUF0KGkpO1xuICAgICAgICBjaGsgPSBwb2x5bW9kU3RlcChjaGspIF4gKHYgJiAweDFmKTtcbiAgICB9XG4gICAgcmV0dXJuIGNoaztcbn1cbmZ1bmN0aW9uIGNvbnZlcnQoZGF0YSwgaW5CaXRzLCBvdXRCaXRzLCBwYWQpIHtcbiAgICBsZXQgdmFsdWUgPSAwO1xuICAgIGxldCBiaXRzID0gMDtcbiAgICBjb25zdCBtYXhWID0gKDEgPDwgb3V0Qml0cykgLSAxO1xuICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7ICsraSkge1xuICAgICAgICB2YWx1ZSA9ICh2YWx1ZSA8PCBpbkJpdHMpIHwgZGF0YVtpXTtcbiAgICAgICAgYml0cyArPSBpbkJpdHM7XG4gICAgICAgIHdoaWxlIChiaXRzID49IG91dEJpdHMpIHtcbiAgICAgICAgICAgIGJpdHMgLT0gb3V0Qml0cztcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKCh2YWx1ZSA+PiBiaXRzKSAmIG1heFYpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChwYWQpIHtcbiAgICAgICAgaWYgKGJpdHMgPiAwKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaCgodmFsdWUgPDwgKG91dEJpdHMgLSBiaXRzKSkgJiBtYXhWKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgaWYgKGJpdHMgPj0gaW5CaXRzKVxuICAgICAgICAgICAgcmV0dXJuICdFeGNlc3MgcGFkZGluZyc7XG4gICAgICAgIGlmICgodmFsdWUgPDwgKG91dEJpdHMgLSBiaXRzKSkgJiBtYXhWKVxuICAgICAgICAgICAgcmV0dXJuICdOb24temVybyBwYWRkaW5nJztcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbmZ1bmN0aW9uIHRvV29yZHMoYnl0ZXMpIHtcbiAgICByZXR1cm4gY29udmVydChieXRlcywgOCwgNSwgdHJ1ZSk7XG59XG5mdW5jdGlvbiBmcm9tV29yZHNVbnNhZmUod29yZHMpIHtcbiAgICBjb25zdCByZXMgPSBjb252ZXJ0KHdvcmRzLCA1LCA4LCBmYWxzZSk7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkocmVzKSlcbiAgICAgICAgcmV0dXJuIHJlcztcbn1cbmZ1bmN0aW9uIGZyb21Xb3Jkcyh3b3Jkcykge1xuICAgIGNvbnN0IHJlcyA9IGNvbnZlcnQod29yZHMsIDUsIDgsIGZhbHNlKTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShyZXMpKVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIHRocm93IG5ldyBFcnJvcihyZXMpO1xufVxuZnVuY3Rpb24gZ2V0TGlicmFyeUZyb21FbmNvZGluZyhlbmNvZGluZykge1xuICAgIGxldCBFTkNPRElOR19DT05TVDtcbiAgICBpZiAoZW5jb2RpbmcgPT09ICdiZWNoMzInKSB7XG4gICAgICAgIEVOQ09ESU5HX0NPTlNUID0gMTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIEVOQ09ESU5HX0NPTlNUID0gMHgyYmM4MzBhMztcbiAgICB9XG4gICAgZnVuY3Rpb24gZW5jb2RlKHByZWZpeCwgd29yZHMsIExJTUlUKSB7XG4gICAgICAgIExJTUlUID0gTElNSVQgfHwgOTA7XG4gICAgICAgIGlmIChwcmVmaXgubGVuZ3RoICsgNyArIHdvcmRzLmxlbmd0aCA+IExJTUlUKVxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignRXhjZWVkcyBsZW5ndGggbGltaXQnKTtcbiAgICAgICAgcHJlZml4ID0gcHJlZml4LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIC8vIGRldGVybWluZSBjaGsgbW9kXG4gICAgICAgIGxldCBjaGsgPSBwcmVmaXhDaGsocHJlZml4KTtcbiAgICAgICAgaWYgKHR5cGVvZiBjaGsgPT09ICdzdHJpbmcnKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGNoayk7XG4gICAgICAgIGxldCByZXN1bHQgPSBwcmVmaXggKyAnMSc7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgd29yZHMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgIGNvbnN0IHggPSB3b3Jkc1tpXTtcbiAgICAgICAgICAgIGlmICh4ID4+IDUgIT09IDApXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb24gNS1iaXQgd29yZCcpO1xuICAgICAgICAgICAgY2hrID0gcG9seW1vZFN0ZXAoY2hrKSBeIHg7XG4gICAgICAgICAgICByZXN1bHQgKz0gQUxQSEFCRVQuY2hhckF0KHgpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNjsgKytpKSB7XG4gICAgICAgICAgICBjaGsgPSBwb2x5bW9kU3RlcChjaGspO1xuICAgICAgICB9XG4gICAgICAgIGNoayBePSBFTkNPRElOR19DT05TVDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA2OyArK2kpIHtcbiAgICAgICAgICAgIGNvbnN0IHYgPSAoY2hrID4+ICgoNSAtIGkpICogNSkpICYgMHgxZjtcbiAgICAgICAgICAgIHJlc3VsdCArPSBBTFBIQUJFVC5jaGFyQXQodik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgZnVuY3Rpb24gX19kZWNvZGUoc3RyLCBMSU1JVCkge1xuICAgICAgICBMSU1JVCA9IExJTUlUIHx8IDkwO1xuICAgICAgICBpZiAoc3RyLmxlbmd0aCA8IDgpXG4gICAgICAgICAgICByZXR1cm4gc3RyICsgJyB0b28gc2hvcnQnO1xuICAgICAgICBpZiAoc3RyLmxlbmd0aCA+IExJTUlUKVxuICAgICAgICAgICAgcmV0dXJuICdFeGNlZWRzIGxlbmd0aCBsaW1pdCc7XG4gICAgICAgIC8vIGRvbid0IGFsbG93IG1peGVkIGNhc2VcbiAgICAgICAgY29uc3QgbG93ZXJlZCA9IHN0ci50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCB1cHBlcmVkID0gc3RyLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgIGlmIChzdHIgIT09IGxvd2VyZWQgJiYgc3RyICE9PSB1cHBlcmVkKVxuICAgICAgICAgICAgcmV0dXJuICdNaXhlZC1jYXNlIHN0cmluZyAnICsgc3RyO1xuICAgICAgICBzdHIgPSBsb3dlcmVkO1xuICAgICAgICBjb25zdCBzcGxpdCA9IHN0ci5sYXN0SW5kZXhPZignMScpO1xuICAgICAgICBpZiAoc3BsaXQgPT09IC0xKVxuICAgICAgICAgICAgcmV0dXJuICdObyBzZXBhcmF0b3IgY2hhcmFjdGVyIGZvciAnICsgc3RyO1xuICAgICAgICBpZiAoc3BsaXQgPT09IDApXG4gICAgICAgICAgICByZXR1cm4gJ01pc3NpbmcgcHJlZml4IGZvciAnICsgc3RyO1xuICAgICAgICBjb25zdCBwcmVmaXggPSBzdHIuc2xpY2UoMCwgc3BsaXQpO1xuICAgICAgICBjb25zdCB3b3JkQ2hhcnMgPSBzdHIuc2xpY2Uoc3BsaXQgKyAxKTtcbiAgICAgICAgaWYgKHdvcmRDaGFycy5sZW5ndGggPCA2KVxuICAgICAgICAgICAgcmV0dXJuICdEYXRhIHRvbyBzaG9ydCc7XG4gICAgICAgIGxldCBjaGsgPSBwcmVmaXhDaGsocHJlZml4KTtcbiAgICAgICAgaWYgKHR5cGVvZiBjaGsgPT09ICdzdHJpbmcnKVxuICAgICAgICAgICAgcmV0dXJuIGNoaztcbiAgICAgICAgY29uc3Qgd29yZHMgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB3b3JkQ2hhcnMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgIGNvbnN0IGMgPSB3b3JkQ2hhcnMuY2hhckF0KGkpO1xuICAgICAgICAgICAgY29uc3QgdiA9IEFMUEhBQkVUX01BUFtjXTtcbiAgICAgICAgICAgIGlmICh2ID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgcmV0dXJuICdVbmtub3duIGNoYXJhY3RlciAnICsgYztcbiAgICAgICAgICAgIGNoayA9IHBvbHltb2RTdGVwKGNoaykgXiB2O1xuICAgICAgICAgICAgLy8gbm90IGluIHRoZSBjaGVja3N1bT9cbiAgICAgICAgICAgIGlmIChpICsgNiA+PSB3b3JkQ2hhcnMubGVuZ3RoKVxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgd29yZHMucHVzaCh2KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hrICE9PSBFTkNPRElOR19DT05TVClcbiAgICAgICAgICAgIHJldHVybiAnSW52YWxpZCBjaGVja3N1bSBmb3IgJyArIHN0cjtcbiAgICAgICAgcmV0dXJuIHsgcHJlZml4LCB3b3JkcyB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZWNvZGVVbnNhZmUoc3RyLCBMSU1JVCkge1xuICAgICAgICBjb25zdCByZXMgPSBfX2RlY29kZShzdHIsIExJTUlUKTtcbiAgICAgICAgaWYgKHR5cGVvZiByZXMgPT09ICdvYmplY3QnKVxuICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gICAgZnVuY3Rpb24gZGVjb2RlKHN0ciwgTElNSVQpIHtcbiAgICAgICAgY29uc3QgcmVzID0gX19kZWNvZGUoc3RyLCBMSU1JVCk7XG4gICAgICAgIGlmICh0eXBlb2YgcmVzID09PSAnb2JqZWN0JylcbiAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihyZXMpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBkZWNvZGVVbnNhZmUsXG4gICAgICAgIGRlY29kZSxcbiAgICAgICAgZW5jb2RlLFxuICAgICAgICB0b1dvcmRzLFxuICAgICAgICBmcm9tV29yZHNVbnNhZmUsXG4gICAgICAgIGZyb21Xb3JkcyxcbiAgICB9O1xufVxuZXhwb3J0cy5iZWNoMzIgPSBnZXRMaWJyYXJ5RnJvbUVuY29kaW5nKCdiZWNoMzInKTtcbmV4cG9ydHMuYmVjaDMybSA9IGdldExpYnJhcnlGcm9tRW5jb2RpbmcoJ2JlY2gzMm0nKTtcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIGAqLDphZnRlciw6YmVmb3Jley0tdHctYm9yZGVyLXNwYWNpbmcteDowOy0tdHctYm9yZGVyLXNwYWNpbmcteTowOy0tdHctdHJhbnNsYXRlLXg6MDstLXR3LXRyYW5zbGF0ZS15OjA7LS10dy1yb3RhdGU6MDstLXR3LXNrZXcteDowOy0tdHctc2tldy15OjA7LS10dy1zY2FsZS14OjE7LS10dy1zY2FsZS15OjE7LS10dy1wYW4teDogOy0tdHctcGFuLXk6IDstLXR3LXBpbmNoLXpvb206IDstLXR3LXNjcm9sbC1zbmFwLXN0cmljdG5lc3M6cHJveGltaXR5Oy0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbjogOy0tdHctZ3JhZGllbnQtdmlhLXBvc2l0aW9uOiA7LS10dy1ncmFkaWVudC10by1wb3NpdGlvbjogOy0tdHctb3JkaW5hbDogOy0tdHctc2xhc2hlZC16ZXJvOiA7LS10dy1udW1lcmljLWZpZ3VyZTogOy0tdHctbnVtZXJpYy1zcGFjaW5nOiA7LS10dy1udW1lcmljLWZyYWN0aW9uOiA7LS10dy1yaW5nLWluc2V0OiA7LS10dy1yaW5nLW9mZnNldC13aWR0aDowcHg7LS10dy1yaW5nLW9mZnNldC1jb2xvcjojZmZmOy0tdHctcmluZy1jb2xvcjpyZ2JhKDU5LDEzMCwyNDYsLjUpOy0tdHctcmluZy1vZmZzZXQtc2hhZG93OjAgMCB0cmFuc3BhcmVudDstLXR3LXJpbmctc2hhZG93OjAgMCB0cmFuc3BhcmVudDstLXR3LXNoYWRvdzowIDAgdHJhbnNwYXJlbnQ7LS10dy1zaGFkb3ctY29sb3JlZDowIDAgdHJhbnNwYXJlbnQ7LS10dy1ibHVyOiA7LS10dy1icmlnaHRuZXNzOiA7LS10dy1jb250cmFzdDogOy0tdHctZ3JheXNjYWxlOiA7LS10dy1odWUtcm90YXRlOiA7LS10dy1pbnZlcnQ6IDstLXR3LXNhdHVyYXRlOiA7LS10dy1zZXBpYTogOy0tdHctZHJvcC1zaGFkb3c6IDstLXR3LWJhY2tkcm9wLWJsdXI6IDstLXR3LWJhY2tkcm9wLWJyaWdodG5lc3M6IDstLXR3LWJhY2tkcm9wLWNvbnRyYXN0OiA7LS10dy1iYWNrZHJvcC1ncmF5c2NhbGU6IDstLXR3LWJhY2tkcm9wLWh1ZS1yb3RhdGU6IDstLXR3LWJhY2tkcm9wLWludmVydDogOy0tdHctYmFja2Ryb3Atb3BhY2l0eTogOy0tdHctYmFja2Ryb3Atc2F0dXJhdGU6IDstLXR3LWJhY2tkcm9wLXNlcGlhOiB9OjpiYWNrZHJvcHstLXR3LWJvcmRlci1zcGFjaW5nLXg6MDstLXR3LWJvcmRlci1zcGFjaW5nLXk6MDstLXR3LXRyYW5zbGF0ZS14OjA7LS10dy10cmFuc2xhdGUteTowOy0tdHctcm90YXRlOjA7LS10dy1za2V3LXg6MDstLXR3LXNrZXcteTowOy0tdHctc2NhbGUteDoxOy0tdHctc2NhbGUteToxOy0tdHctcGFuLXg6IDstLXR3LXBhbi15OiA7LS10dy1waW5jaC16b29tOiA7LS10dy1zY3JvbGwtc25hcC1zdHJpY3RuZXNzOnByb3hpbWl0eTstLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb246IDstLXR3LWdyYWRpZW50LXZpYS1wb3NpdGlvbjogOy0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb246IDstLXR3LW9yZGluYWw6IDstLXR3LXNsYXNoZWQtemVybzogOy0tdHctbnVtZXJpYy1maWd1cmU6IDstLXR3LW51bWVyaWMtc3BhY2luZzogOy0tdHctbnVtZXJpYy1mcmFjdGlvbjogOy0tdHctcmluZy1pbnNldDogOy0tdHctcmluZy1vZmZzZXQtd2lkdGg6MHB4Oy0tdHctcmluZy1vZmZzZXQtY29sb3I6I2ZmZjstLXR3LXJpbmctY29sb3I6cmdiYSg1OSwxMzAsMjQ2LC41KTstLXR3LXJpbmctb2Zmc2V0LXNoYWRvdzowIDAgdHJhbnNwYXJlbnQ7LS10dy1yaW5nLXNoYWRvdzowIDAgdHJhbnNwYXJlbnQ7LS10dy1zaGFkb3c6MCAwIHRyYW5zcGFyZW50Oy0tdHctc2hhZG93LWNvbG9yZWQ6MCAwIHRyYW5zcGFyZW50Oy0tdHctYmx1cjogOy0tdHctYnJpZ2h0bmVzczogOy0tdHctY29udHJhc3Q6IDstLXR3LWdyYXlzY2FsZTogOy0tdHctaHVlLXJvdGF0ZTogOy0tdHctaW52ZXJ0OiA7LS10dy1zYXR1cmF0ZTogOy0tdHctc2VwaWE6IDstLXR3LWRyb3Atc2hhZG93OiA7LS10dy1iYWNrZHJvcC1ibHVyOiA7LS10dy1iYWNrZHJvcC1icmlnaHRuZXNzOiA7LS10dy1iYWNrZHJvcC1jb250cmFzdDogOy0tdHctYmFja2Ryb3AtZ3JheXNjYWxlOiA7LS10dy1iYWNrZHJvcC1odWUtcm90YXRlOiA7LS10dy1iYWNrZHJvcC1pbnZlcnQ6IDstLXR3LWJhY2tkcm9wLW9wYWNpdHk6IDstLXR3LWJhY2tkcm9wLXNhdHVyYXRlOiA7LS10dy1iYWNrZHJvcC1zZXBpYTogfS5uZS1yZWxhdGl2ZXtwb3NpdGlvbjpyZWxhdGl2ZX0ubmUtbS0we21hcmdpbjowfS5uZS1tcy1cXFxcWy0yNXB4XFxcXF17bWFyZ2luLWxlZnQ6LTI1cHh9Lm5lLW1zLVxcXFxbMjVweFxcXFxde21hcmdpbi1sZWZ0OjI1cHh9Lm5lLW10LTh7bWFyZ2luLXRvcDoycmVtfS5uZS1ibG9ja3tkaXNwbGF5OmJsb2NrfS5uZS1pbmxpbmUtYmxvY2t7ZGlzcGxheTppbmxpbmUtYmxvY2t9Lm5lLWZsZXh7ZGlzcGxheTpmbGV4fS5uZS1oaWRkZW57ZGlzcGxheTpub25lfS5uZS1oLTEye2hlaWdodDozcmVtfS5uZS1oLVxcXFxbNDBweFxcXFxde2hlaWdodDo0MHB4fS5uZS13LTEye3dpZHRoOjNyZW19Lm5lLXctNXt3aWR0aDoxLjI1cmVtfS5uZS13LVxcXFxbNDBweFxcXFxde3dpZHRoOjQwcHh9Lm5lLXctZnVsbHt3aWR0aDoxMDAlfS5uZS1jdXJzb3ItcG9pbnRlcntjdXJzb3I6cG9pbnRlcn0ubmUtbGlzdC1ub25le2xpc3Qtc3R5bGUtdHlwZTpub25lfS5uZS1mbGV4LXJvd3tmbGV4LWRpcmVjdGlvbjpyb3d9Lm5lLWZsZXgtY29se2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0ubmUtZmxleC13cmFwe2ZsZXgtd3JhcDp3cmFwfS5uZS1pdGVtcy1jZW50ZXJ7YWxpZ24taXRlbXM6Y2VudGVyfS5uZS1qdXN0aWZ5LWJldHdlZW57anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59Lm5lLWdhcC0xe2dhcDouMjVyZW19Lm5lLWdhcC0ye2dhcDouNXJlbX0ubmUtZ2FwLTR7Z2FwOjFyZW19Lm5lLWdhcC02e2dhcDoxLjVyZW19Lm5lLWJyZWFrLXdvcmRze3dvcmQtd3JhcDpicmVhay13b3JkfS5uZS1yb3VuZGVkLWZ1bGx7Ym9yZGVyLXJhZGl1czo5OTk5cHh9Lm5lLXJvdW5kZWQtbGd7Ym9yZGVyLXJhZGl1czouNXJlbX0ubmUtYmctXFxcXFtcXFxcI2ZjZmNmY1xcXFxdey0tdHctYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6I2ZjZmNmYztiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjUyLDI1MiwyNTIsdmFyKC0tdHctYmctb3BhY2l0eSkpfS5uZS1vYmplY3QtY292ZXJ7LW8tb2JqZWN0LWZpdDpjb3ZlcjtvYmplY3QtZml0OmNvdmVyfS5uZS1wLTB7cGFkZGluZzowfS5uZS1weC00e3BhZGRpbmctbGVmdDoxcmVtO3BhZGRpbmctcmlnaHQ6MXJlbX0ubmUtcHktNXtwYWRkaW5nLWJvdHRvbToxLjI1cmVtO3BhZGRpbmctdG9wOjEuMjVyZW19Lm5lLXBiLTN7cGFkZGluZy1ib3R0b206Ljc1cmVtfS5uZS1mb250LXNhbnN7Zm9udC1mYW1pbHk6dWktc2Fucy1zZXJpZixzeXN0ZW0tdWksLWFwcGxlLXN5c3RlbSxTZWdvZSBVSSxSb2JvdG8sVWJ1bnR1LENhbnRhcmVsbCxOb3RvIFNhbnMsc2Fucy1zZXJpZixCbGlua01hY1N5c3RlbUZvbnQsSGVsdmV0aWNhIE5ldWUsQXJpYWwsQXBwbGUgQ29sb3IgRW1vamksU2Vnb2UgVUkgRW1vamksU2Vnb2UgVUkgU3ltYm9sLE5vdG8gQ29sb3IgRW1vaml9Lm5lLXRleHQtbGd7Zm9udC1zaXplOjEuMTI1cmVtO2xpbmUtaGVpZ2h0OjEuNzVyZW19Lm5lLXRleHQtc217Zm9udC1zaXplOi44NzVyZW07bGluZS1oZWlnaHQ6MS4yNXJlbX0ubmUtZm9udC1ib2xke2ZvbnQtd2VpZ2h0OjcwMH0ubmUtdGV4dC1ibGFja3stLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOiMwMDA7Y29sb3I6cmdiYSgwLDAsMCx2YXIoLS10dy10ZXh0LW9wYWNpdHkpKX0ubmUtdGV4dC1ncmF5LTkwMHstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOiMxMTE4Mjc7Y29sb3I6cmdiYSgxNywyNCwzOSx2YXIoLS10dy10ZXh0LW9wYWNpdHkpKX0ubmUtdGV4dC1yZWQtODAwey0tdHctdGV4dC1vcGFjaXR5OjE7Y29sb3I6Izk5MWIxYjtjb2xvcjpyZ2JhKDE1MywyNywyNyx2YXIoLS10dy10ZXh0LW9wYWNpdHkpKX0ubmUtbm8tdW5kZXJsaW5le3RleHQtZGVjb3JhdGlvbi1saW5lOm5vbmV9Lm5lLW9wYWNpdHktMzB7b3BhY2l0eTouM30ubm9zdHJFbWJlZENhcmR7LS10dy1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjojZmNmY2ZjO2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTIsMjUyLDI1Mix2YXIoLS10dy1iZy1vcGFjaXR5KSk7Ym9yZGVyLXJhZGl1czouNXJlbTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoycmVtO3BhZGRpbmc6MS4yNXJlbSAxcmVtIC43NXJlbX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7Lm5vc3RyRW1iZWRDYXJke21heC13aWR0aDo2MDBweH19Lm5vc3RyRW1iZWRDYXJke2JvcmRlcjoxcHggc29saWQgI2RkZDtmb250LWZhbWlseTp1aS1zYW5zLXNlcmlmLHN5c3RlbS11aSwtYXBwbGUtc3lzdGVtLFNlZ29lIFVJLFJvYm90byxVYnVudHUsQ2FudGFyZWxsLE5vdG8gU2FucyxzYW5zLXNlcmlmLEJsaW5rTWFjU3lzdGVtRm9udCxIZWx2ZXRpY2EgTmV1ZSxBcmlhbCxBcHBsZSBDb2xvciBFbW9qaSxTZWdvZSBVSSBFbW9qaSxTZWdvZSBVSSBTeW1ib2wsTm90byBDb2xvciBFbW9qaTt0ZXh0LWFsaWduOmxlZnR9LmNhcmRDb250ZW50e3dvcmQtd3JhcDpicmVhay13b3JkO2ZvbnQtc2l6ZToxLjEyNXJlbTtsaW5lLWhlaWdodDoxLjc1cmVtO3doaXRlLXNwYWNlOnByZS1saW5lfS5jYXJkQ29udGVudE1lZGlhe3RleHQtYWxpZ246Y2VudGVyfS5jYXJkQ29udGVudE1lZGlhPmlmcmFtZSwuY2FyZENvbnRlbnRNZWRpYT5pbWcsLmNhcmRDb250ZW50TWVkaWE+dmlkZW97Ym9yZGVyLXJhZGl1czoxNXB4O3dpZHRoOjUwJX0uY2FyZFByb2ZpbGV7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7Z2FwOjFyZW19LnByb2ZpbGVJbWd7Ym9yZGVyLXJhZGl1czo5OTk5cHg7aGVpZ2h0OjNyZW07d2lkdGg6M3JlbX0uZm9sbG93ZWRQcm9kaWxlSW1ne2JvcmRlci1yYWRpdXM6OTk5OXB4O2hlaWdodDo0MHB4O21hcmdpbi1sZWZ0Oi0yNXB4Oy1vLW9iamVjdC1maXQ6Y292ZXI7b2JqZWN0LWZpdDpjb3Zlcjtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDo0MHB4fS5mb2xsb3dlZFByb2RpbGVJbWc6aG92ZXJ7ei1pbmRleDo5OTl9LnByb2ZpbGVEZXRhaWxze2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LnByb2ZpbGVOYW1le2ZvbnQtc2l6ZToxLjEyNXJlbTtmb250LXdlaWdodDo3MDA7bGluZS1oZWlnaHQ6MS43NXJlbX0ucHJvZmlsZU5hbWUgYXstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOiMxMTE4Mjc7Y29sb3I6cmdiYSgxNywyNCwzOSx2YXIoLS10dy10ZXh0LW9wYWNpdHkpKTt0ZXh0LWRlY29yYXRpb24tbGluZTpub25lfS5wcm9maWxlTmFtZSBhOmhvdmVyey0tdHctdGV4dC1vcGFjaXR5OjE7Y29sb3I6IzRiNTU2Mztjb2xvcjpyZ2JhKDc1LDg1LDk5LHZhcigtLXR3LXRleHQtb3BhY2l0eSkpfS5wcm9maWxlUGtleXthbGlnbi1pdGVtczpjZW50ZXI7ZmxleC1kaXJlY3Rpb246cm93fS5jYXJkTWV0YSwucHJvZmlsZVBrZXl7ZGlzcGxheTpmbGV4O2dhcDouMjVyZW19LmNhcmRNZXRhe2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmNhcmRNZXRhe2dhcDouNXJlbX19aHJ7Ym9yZGVyLWNvbG9yOiNkZGQ7bWFyZ2luOi4yNXJlbTtvcGFjaXR5Oi4zO3dpZHRoOjEwMCV9LmNhcmRJbnRlcmFjdGlvbnN7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmNhcmRJbnRlcmFjdGlvbnN7Z2FwOjIuNXJlbTtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH19LmludGVyYWN0aW9uQ29udGFpbmVye2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2dhcDouNXJlbX0uY29weUljb24sLmhlYXJ0SWNvbiwubGlua0ljb24sLnJlcGx5SWNvbiwucmVwb3N0SWNvbntkaXNwbGF5OmJsb2NrO2hlaWdodDoxLjI1cmVtO3dpZHRoOjEuMjVyZW19LmNvcHlJY29uLC5oZWFydEljb24sLmxpbmtDb3B5QnRuLC5saW5rSWNvbiwubGlua0xpbmssLnJlcGx5SWNvbiwucmVwb3N0SWNvbnstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOiMxMTE4Mjc7Y29sb3I6cmdiYSgxNywyNCwzOSx2YXIoLS10dy10ZXh0LW9wYWNpdHkpKX0ubGlua0NvcHlCdG4sLmxpbmtMaW5re2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjowO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7Z2FwOi41cmVtO3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtZGVjb3JhdGlvbi1saW5lOm5vbmV9LmxpbmtDb3B5QnRuOmhvdmVyLC5saW5rQ29weUJ0bjpob3ZlciAuY29weUljb24sLmxpbmtMaW5rOmhvdmVyey0tdHctdGV4dC1vcGFjaXR5OjE7Y29sb3I6IzRiNTU2Mztjb2xvcjpyZ2JhKDc1LDg1LDk5LHZhcigtLXR3LXRleHQtb3BhY2l0eSkpfS5saW5rQ29weUJ0bi5ncmVlbiwubGlua0NvcHlCdG4uZ3JlZW4gLmNvcHlJY29uey0tdHctdGV4dC1vcGFjaXR5OjE7Y29sb3I6IzE2YTM0YTtjb2xvcjpyZ2JhKDIyLDE2Myw3NCx2YXIoLS10dy10ZXh0LW9wYWNpdHkpKX0uZGlzcGxheVRleHR7ZGlzcGxheTpub25lfUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsuZGlzcGxheVRleHR7ZGlzcGxheTpmbGV4O2ZvbnQtc2l6ZTouODc1cmVtO2xpbmUtaGVpZ2h0OjEuMjVyZW07dmlzaWJpbGl0eTp2aXNpYmxlfX0uY29weVRleHR7ZGlzcGxheTpub25lfS5ub3N0cmljaExpbmt7ZGlzcGxheTpmbGV4O2ZsZXgtZ3JvdzoxO2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uY2FyZFRpdGxle21hcmdpbjowfS5jYXJkRGVzY3JpcHRpb257bWFyZ2luLXRvcDowfS5jYXJkTGlzdHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoyMHB4O21hcmdpbi10b3A6MTBweH0ucHJvZmlsZVdpdGhvdXRJbWd7YmFja2dyb3VuZC1jb2xvcjojZTllOWU5O2JvcmRlci1yYWRpdXM6NTAlO2hlaWdodDo1MHB4O3dpZHRoOjUwcHh9LmRpZmZQcm9maWxlc3tmb250LXNpemU6MS4ycmVtO2ZvbnQtd2VpZ2h0OjcwMH0uaG92ZXJcXFxcOm5lLXotXFxcXFs5OTlcXFxcXTpob3Zlcnt6LWluZGV4Ojk5OX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7Lm1kXFxcXDpuZS12aXNpYmxle3Zpc2liaWxpdHk6dmlzaWJsZX0ubWRcXFxcOm5lLWZsZXh7ZGlzcGxheTpmbGV4fS5tZFxcXFw6bmUtbWF4LXctXFxcXFs2MDBweFxcXFxde21heC13aWR0aDo2MDBweH0ubWRcXFxcOm5lLWp1c3RpZnktc3RhcnR7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9fWAsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vc3JjL2NvbXBvbmVudHMvc3R5bGUuY3NzXCIsXCI8bm8gc291cmNlPlwiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQSxpQkFBQSx1QkFBYyxDQUFkLHVCQUFjLENBQWQsa0JBQWMsQ0FBZCxrQkFBYyxDQUFkLGFBQWMsQ0FBZCxhQUFjLENBQWQsYUFBYyxDQUFkLGNBQWMsQ0FBZCxjQUFjLENBQWQsWUFBYyxDQUFkLFlBQWMsQ0FBZCxpQkFBYyxDQUFkLHFDQUFjLENBQWQsNkJBQWMsQ0FBZCw0QkFBYyxDQUFkLDJCQUFjLENBQWQsY0FBYyxDQUFkLG1CQUFjLENBQWQscUJBQWMsQ0FBZCxzQkFBYyxDQUFkLHVCQUFjLENBQWQsaUJBQWMsQ0FBZCwwQkFBYyxDQUFkLDJCQUFjLENBQWQsbUNBQWMsQ0FBZCx1Q0FBYyxDQUFkLGdDQUFjLENBQWQsMkJBQWMsQ0FBZCxtQ0FBYyxDQUFkLFdBQWMsQ0FBZCxpQkFBYyxDQUFkLGVBQWMsQ0FBZCxnQkFBYyxDQUFkLGlCQUFjLENBQWQsYUFBYyxDQUFkLGVBQWMsQ0FBZCxZQUFjLENBQWQsa0JBQWMsQ0FBZCxvQkFBYyxDQUFkLDBCQUFjLENBQWQsd0JBQWMsQ0FBZCx5QkFBYyxDQUFkLDBCQUFjLENBQWQsc0JBQWMsQ0FBZCx1QkFBYyxDQUFkLHdCQUFjLENBQWQscUJBQWMsQ0FBZCxXQUFBLHVCQUFjLENBQWQsdUJBQWMsQ0FBZCxrQkFBYyxDQUFkLGtCQUFjLENBQWQsYUFBYyxDQUFkLGFBQWMsQ0FBZCxhQUFjLENBQWQsY0FBYyxDQUFkLGNBQWMsQ0FBZCxZQUFjLENBQWQsWUFBYyxDQUFkLGlCQUFjLENBQWQscUNBQWMsQ0FBZCw2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LENBQ1osd0JBRmMsQ0FLaEIsV0FDRSxRQUNGLENBRUEsaUJBQ0UsWUFDRixDQUVBLFVBQ0UsWUFBYSxDQUNiLHFCQUFzQixDQUN0QixRQUFTLENBQ1QsZUFDRixDQUVBLG1CQUdFLHdCQUF5QixDQUN6QixpQkFBa0IsQ0FGbEIsV0FBWSxDQURaLFVBSUYsQ0FFQSxjQUVFLGdCQUFpQixDQURqQixlQUVGLENBMUlBLDJCQUFBLFlDQUEsQURBQSx5QkFBQSxnQkFBQSxtQkNBQSxBREFBLGFBQUEsYUNBQSxBREFBLHdCQUFBLGdCQ0FBLEFEQUEsc0JBQUEsMkJDQUEsQ0FBQVwiLFwic291cmNlc0NvbnRlbnRcIjpbXCJAdGFpbHdpbmQgYmFzZTtcXG5AdGFpbHdpbmQgY29tcG9uZW50cztcXG5AdGFpbHdpbmQgdXRpbGl0aWVzO1xcblxcbi5ub3N0ckVtYmVkQ2FyZCB7XFxuICBAYXBwbHkgbmUtcHgtNCBuZS1weS01IG5lLXBiLTMgbmUtYmctWyNmY2ZjZmNdIG5lLXJvdW5kZWQtbGcgbWQ6bmUtbWF4LXctWzYwMHB4XSBuZS1mbGV4IG5lLWZsZXgtY29sIG5lLWdhcC04O1xcbiAgQGFwcGx5IG5lLWZvbnQtc2FucyBuZS10ZXh0LWxlZnQ7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xcbn1cXG5cXG4uY2FyZENvbnRlbnQge1xcbiAgQGFwcGx5IG5lLXRleHQtbGcgbmUtYnJlYWstd29yZHMgbmUtd2hpdGVzcGFjZS1wcmUtbGluZTtcXG59XFxuXFxuLmNhcmRDb250ZW50TWVkaWEge1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbn1cXG5cXG4uY2FyZENvbnRlbnRNZWRpYSA+IHZpZGVvLFxcbi5jYXJkQ29udGVudE1lZGlhID4gaW1nLFxcbi5jYXJkQ29udGVudE1lZGlhID4gaWZyYW1lIHtcXG4gIGJvcmRlci1yYWRpdXM6IDE1cHg7XFxuICB3aWR0aDogNTAlO1xcbn1cXG5cXG4uY2FyZFByb2ZpbGUge1xcbiAgQGFwcGx5IG5lLWZsZXggbmUtZmxleC1yb3cgbmUtZ2FwLTQgbmUtaXRlbXMtY2VudGVyO1xcbn1cXG5cXG4ucHJvZmlsZUltZyB7XFxuICBAYXBwbHkgbmUtdy0xMiBuZS1oLTEyIG5lLXJvdW5kZWQtZnVsbDtcXG59XFxuXFxuLmZvbGxvd2VkUHJvZGlsZUltZyB7XFxuICBAYXBwbHkgbmUtdy1bNDBweF0gbmUtaC1bNDBweF0gbmUtcm91bmRlZC1mdWxsIG5lLW1zLVstMjVweF0gbmUtb2JqZWN0LWNvdmVyIGhvdmVyOm5lLXotWzk5OV0gbmUtcmVsYXRpdmUgO1xcbn1cXG5cXG4ucHJvZmlsZURldGFpbHMge1xcbiAgQGFwcGx5IG5lLWZsZXggbmUtZmxleC1jb2w7XFxufVxcblxcbi5wcm9maWxlTmFtZSB7XFxuICBAYXBwbHkgbmUtdGV4dC1sZyBuZS1mb250LWJvbGQ7XFxufVxcblxcbi5wcm9maWxlTmFtZSBhIHtcXG4gIEBhcHBseSBuZS1uby11bmRlcmxpbmUgbmUtdGV4dC1ncmF5LTkwMDtcXG59XFxuLnByb2ZpbGVOYW1lIGE6aG92ZXIge1xcbiAgQGFwcGx5IG5lLXRleHQtZ3JheS02MDA7XFxufVxcblxcbi5wcm9maWxlUGtleSB7XFxuICBAYXBwbHkgbmUtZmxleCBuZS1mbGV4LXJvdyBuZS1nYXAtMSBuZS1pdGVtcy1jZW50ZXI7XFxufVxcblxcbi5jYXJkTWV0YSB7XFxuICBAYXBwbHkgbmUtZmxleCBuZS1mbGV4LWNvbCBuZS1nYXAtMSBtZDpuZS1nYXAtMjtcXG59XFxuXFxuaHIge1xcbiAgQGFwcGx5IG5lLXctZnVsbCBuZS1vcGFjaXR5LTMwIG5lLW0tMTtcXG4gIGJvcmRlci1jb2xvcjogI2RkZDtcXG59XFxuXFxuLmNhcmRJbnRlcmFjdGlvbnMge1xcbiAgQGFwcGx5IG5lLWZsZXggbmUtZmxleC1yb3cgbmUtanVzdGlmeS1iZXR3ZWVuIG1kOm5lLWp1c3RpZnktc3RhcnQgbWQ6bmUtZ2FwLTEwO1xcbn1cXG5cXG4uaW50ZXJhY3Rpb25Db250YWluZXIge1xcbiAgQGFwcGx5IG5lLWZsZXggbmUtZmxleC1yb3cgbmUtaXRlbXMtY2VudGVyIG5lLWdhcC0yO1xcbn1cXG5cXG4ucmVwbHlJY29uLFxcbi5yZXBvc3RJY29uLFxcbi5oZWFydEljb24sXFxuLmxpbmtJY29uLFxcbi5jb3B5SWNvbiB7XFxuICBAYXBwbHkgbmUtdGV4dC1ncmF5LTkwMCBuZS1ibG9jayBuZS13LTUgbmUtaC01O1xcbn1cXG5cXG4ubGlua0NvcHlCdG4sXFxuLmxpbmtMaW5rIHtcXG4gIEBhcHBseSBuZS10ZXh0LWdyYXktOTAwIG5lLW5vLXVuZGVybGluZSBuZS1mbGV4IG5lLWZsZXgtcm93IG5lLWl0ZW1zLWNlbnRlciBuZS1nYXAtMiBuZS1jdXJzb3ItcG9pbnRlciBuZS1yZWxhdGl2ZTtcXG4gIGJvcmRlcjogMDtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG5cXG4ubGlua0NvcHlCdG46aG92ZXIsXFxuLmxpbmtMaW5rOmhvdmVyLFxcbi5saW5rQ29weUJ0bjpob3ZlciAuY29weUljb24ge1xcbiAgQGFwcGx5IG5lLXRleHQtZ3JheS02MDA7XFxufVxcblxcbi5saW5rQ29weUJ0bi5ncmVlbixcXG4ubGlua0NvcHlCdG4uZ3JlZW4gLmNvcHlJY29uIHtcXG4gIEBhcHBseSBuZS10ZXh0LWdyZWVuLTYwMDtcXG59XFxuXFxuLmRpc3BsYXlUZXh0IHtcXG4gIEBhcHBseSBuZS1oaWRkZW4gbWQ6bmUtZmxleCBtZDpuZS12aXNpYmxlIG1kOm5lLXRleHQtc207XFxufVxcblxcbi5jb3B5VGV4dCB7XFxuICBAYXBwbHkgbmUtaGlkZGVuO1xcbn1cXG5cXG4ubm9zdHJpY2hMaW5rIHtcXG4gIEBhcHBseSBuZS1mbGV4O1xcbiAgZmxleC1ncm93OiAxO1xcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcXG59XFxuXFxuLmNhcmRUaXRsZSB7XFxuICBtYXJnaW46IDA7XFxufVxcblxcbi5jYXJkRGVzY3JpcHRpb24ge1xcbiAgbWFyZ2luLXRvcDogMDtcXG59XFxuXFxuLmNhcmRMaXN0IHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgZ2FwOiAyMHB4O1xcbiAgbWFyZ2luLXRvcDogMTBweDtcXG59XFxuXFxuLnByb2ZpbGVXaXRob3V0SW1nIHtcXG4gIHdpZHRoOiA1MHB4O1xcbiAgaGVpZ2h0OiA1MHB4O1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U5ZTllOTtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG59XFxuXFxuLmRpZmZQcm9maWxlcyB7XFxuICBmb250LXdlaWdodDogYm9sZDtcXG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xcbn1cXG5cIixudWxsXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCJcInVzZSBzdHJpY3RcIjtcblxuLypcbiAgTUlUIExpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcbiAgQXV0aG9yIFRvYmlhcyBLb3BwZXJzIEBzb2tyYVxuKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcpIHtcbiAgdmFyIGxpc3QgPSBbXTtcblxuICAvLyByZXR1cm4gdGhlIGxpc3Qgb2YgbW9kdWxlcyBhcyBjc3Mgc3RyaW5nXG4gIGxpc3QudG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHZhciBjb250ZW50ID0gXCJcIjtcbiAgICAgIHZhciBuZWVkTGF5ZXIgPSB0eXBlb2YgaXRlbVs1XSAhPT0gXCJ1bmRlZmluZWRcIjtcbiAgICAgIGlmIChpdGVtWzRdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChpdGVtWzRdLCBcIikge1wiKTtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVtWzJdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAbWVkaWEgXCIuY29uY2F0KGl0ZW1bMl0sIFwiIHtcIik7XG4gICAgICB9XG4gICAgICBpZiAobmVlZExheWVyKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAbGF5ZXJcIi5jb25jYXQoaXRlbVs1XS5sZW5ndGggPiAwID8gXCIgXCIuY29uY2F0KGl0ZW1bNV0pIDogXCJcIiwgXCIge1wiKTtcbiAgICAgIH1cbiAgICAgIGNvbnRlbnQgKz0gY3NzV2l0aE1hcHBpbmdUb1N0cmluZyhpdGVtKTtcbiAgICAgIGlmIChuZWVkTGF5ZXIpIHtcbiAgICAgICAgY29udGVudCArPSBcIn1cIjtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVtWzJdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJ9XCI7XG4gICAgICB9XG4gICAgICBpZiAoaXRlbVs0XSkge1xuICAgICAgICBjb250ZW50ICs9IFwifVwiO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgfSkuam9pbihcIlwiKTtcbiAgfTtcblxuICAvLyBpbXBvcnQgYSBsaXN0IG9mIG1vZHVsZXMgaW50byB0aGUgbGlzdFxuICBsaXN0LmkgPSBmdW5jdGlvbiBpKG1vZHVsZXMsIG1lZGlhLCBkZWR1cGUsIHN1cHBvcnRzLCBsYXllcikge1xuICAgIGlmICh0eXBlb2YgbW9kdWxlcyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgbW9kdWxlcyA9IFtbbnVsbCwgbW9kdWxlcywgdW5kZWZpbmVkXV07XG4gICAgfVxuICAgIHZhciBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzID0ge307XG4gICAgaWYgKGRlZHVwZSkge1xuICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCB0aGlzLmxlbmd0aDsgaysrKSB7XG4gICAgICAgIHZhciBpZCA9IHRoaXNba11bMF07XG4gICAgICAgIGlmIChpZCAhPSBudWxsKSB7XG4gICAgICAgICAgYWxyZWFkeUltcG9ydGVkTW9kdWxlc1tpZF0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAodmFyIF9rID0gMDsgX2sgPCBtb2R1bGVzLmxlbmd0aDsgX2srKykge1xuICAgICAgdmFyIGl0ZW0gPSBbXS5jb25jYXQobW9kdWxlc1tfa10pO1xuICAgICAgaWYgKGRlZHVwZSAmJiBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzW2l0ZW1bMF1dKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBsYXllciAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICBpZiAodHlwZW9mIGl0ZW1bNV0gPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICBpdGVtWzVdID0gbGF5ZXI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQGxheWVyXCIuY29uY2F0KGl0ZW1bNV0ubGVuZ3RoID4gMCA/IFwiIFwiLmNvbmNhdChpdGVtWzVdKSA6IFwiXCIsIFwiIHtcIikuY29uY2F0KGl0ZW1bMV0sIFwifVwiKTtcbiAgICAgICAgICBpdGVtWzVdID0gbGF5ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChtZWRpYSkge1xuICAgICAgICBpZiAoIWl0ZW1bMl0pIHtcbiAgICAgICAgICBpdGVtWzJdID0gbWVkaWE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQG1lZGlhIFwiLmNvbmNhdChpdGVtWzJdLCBcIiB7XCIpLmNvbmNhdChpdGVtWzFdLCBcIn1cIik7XG4gICAgICAgICAgaXRlbVsyXSA9IG1lZGlhO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc3VwcG9ydHMpIHtcbiAgICAgICAgaWYgKCFpdGVtWzRdKSB7XG4gICAgICAgICAgaXRlbVs0XSA9IFwiXCIuY29uY2F0KHN1cHBvcnRzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpdGVtWzFdID0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChpdGVtWzRdLCBcIikge1wiKS5jb25jYXQoaXRlbVsxXSwgXCJ9XCIpO1xuICAgICAgICAgIGl0ZW1bNF0gPSBzdXBwb3J0cztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGlzdC5wdXNoKGl0ZW0pO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIGxpc3Q7XG59OyIsIlwidXNlIHN0cmljdFwiO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdGVtKSB7XG4gIHZhciBjb250ZW50ID0gaXRlbVsxXTtcbiAgdmFyIGNzc01hcHBpbmcgPSBpdGVtWzNdO1xuICBpZiAoIWNzc01hcHBpbmcpIHtcbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuICBpZiAodHlwZW9mIGJ0b2EgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIHZhciBiYXNlNjQgPSBidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShjc3NNYXBwaW5nKSkpKTtcbiAgICB2YXIgZGF0YSA9IFwic291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsXCIuY29uY2F0KGJhc2U2NCk7XG4gICAgdmFyIHNvdXJjZU1hcHBpbmcgPSBcIi8qIyBcIi5jb25jYXQoZGF0YSwgXCIgKi9cIik7XG4gICAgcmV0dXJuIFtjb250ZW50XS5jb25jYXQoW3NvdXJjZU1hcHBpbmddKS5qb2luKFwiXFxuXCIpO1xuICB9XG4gIHJldHVybiBbY29udGVudF0uam9pbihcIlxcblwiKTtcbn07IiwiY29uc3Qge2JlY2gzMiwgaGV4LCB1dGY4fSA9IHJlcXVpcmUoJ0BzY3VyZS9iYXNlJylcblxuLy8gZGVmYXVsdHMgZm9yIGVuY29kZTsgZGVmYXVsdCB0aW1lc3RhbXAgaXMgY3VycmVudCB0aW1lIGF0IGNhbGxcbmNvbnN0IERFRkFVTFRORVRXT1JLID0ge1xuICAvLyBkZWZhdWx0IG5ldHdvcmsgaXMgYml0Y29pblxuICBiZWNoMzI6ICdiYycsXG4gIHB1YktleUhhc2g6IDB4MDAsXG4gIHNjcmlwdEhhc2g6IDB4MDUsXG4gIHZhbGlkV2l0bmVzc1ZlcnNpb25zOiBbMF1cbn1cbmNvbnN0IFRFU1RORVRXT1JLID0ge1xuICBiZWNoMzI6ICd0YicsXG4gIHB1YktleUhhc2g6IDB4NmYsXG4gIHNjcmlwdEhhc2g6IDB4YzQsXG4gIHZhbGlkV2l0bmVzc1ZlcnNpb25zOiBbMF1cbn1cbmNvbnN0IFJFR1RFU1RORVRXT1JLID0ge1xuICBiZWNoMzI6ICdiY3J0JyxcbiAgcHViS2V5SGFzaDogMHg2ZixcbiAgc2NyaXB0SGFzaDogMHhjNCxcbiAgdmFsaWRXaXRuZXNzVmVyc2lvbnM6IFswXVxufVxuY29uc3QgU0lNTkVUV09SSyA9IHtcbiAgYmVjaDMyOiAnc2InLFxuICBwdWJLZXlIYXNoOiAweDNmLFxuICBzY3JpcHRIYXNoOiAweDdiLFxuICB2YWxpZFdpdG5lc3NWZXJzaW9uczogWzBdXG59XG5cbmNvbnN0IEZFQVRVUkVCSVRfT1JERVIgPSBbXG4gICdvcHRpb25fZGF0YV9sb3NzX3Byb3RlY3QnLFxuICAnaW5pdGlhbF9yb3V0aW5nX3N5bmMnLFxuICAnb3B0aW9uX3VwZnJvbnRfc2h1dGRvd25fc2NyaXB0JyxcbiAgJ2dvc3NpcF9xdWVyaWVzJyxcbiAgJ3Zhcl9vbmlvbl9vcHRpbicsXG4gICdnb3NzaXBfcXVlcmllc19leCcsXG4gICdvcHRpb25fc3RhdGljX3JlbW90ZWtleScsXG4gICdwYXltZW50X3NlY3JldCcsXG4gICdiYXNpY19tcHAnLFxuICAnb3B0aW9uX3N1cHBvcnRfbGFyZ2VfY2hhbm5lbCdcbl1cblxuY29uc3QgRElWSVNPUlMgPSB7XG4gIG06IEJpZ0ludCgxZTMpLFxuICB1OiBCaWdJbnQoMWU2KSxcbiAgbjogQmlnSW50KDFlOSksXG4gIHA6IEJpZ0ludCgxZTEyKVxufVxuXG5jb25zdCBNQVhfTUlMTElTQVRTID0gQmlnSW50KCcyMTAwMDAwMDAwMDAwMDAwMDAwJylcblxuY29uc3QgTUlMTElTQVRTX1BFUl9CVEMgPSBCaWdJbnQoMWUxMSlcblxuY29uc3QgVEFHQ09ERVMgPSB7XG4gIHBheW1lbnRfaGFzaDogMSxcbiAgcGF5bWVudF9zZWNyZXQ6IDE2LFxuICBkZXNjcmlwdGlvbjogMTMsXG4gIHBheWVlOiAxOSxcbiAgZGVzY3JpcHRpb25faGFzaDogMjMsIC8vIGNvbW1pdCB0byBsb25nZXIgZGVzY3JpcHRpb25zICh1c2VkIGJ5IGxudXJsLXBheSlcbiAgZXhwaXJ5OiA2LCAvLyBkZWZhdWx0OiAzNjAwICgxIGhvdXIpXG4gIG1pbl9maW5hbF9jbHR2X2V4cGlyeTogMjQsIC8vIGRlZmF1bHQ6IDlcbiAgZmFsbGJhY2tfYWRkcmVzczogOSxcbiAgcm91dGVfaGludDogMywgLy8gZm9yIGV4dHJhIHJvdXRpbmcgaW5mbyAocHJpdmF0ZSBldGMuKVxuICBmZWF0dXJlX2JpdHM6IDUsXG4gIG1ldGFkYXRhOiAyN1xufVxuXG4vLyByZXZlcnNlIHRoZSBrZXlzIGFuZCB2YWx1ZXMgb2YgVEFHQ09ERVMgYW5kIGluc2VydCBpbnRvIFRBR05BTUVTXG5jb25zdCBUQUdOQU1FUyA9IHt9XG5mb3IgKGxldCBpID0gMCwga2V5cyA9IE9iamVjdC5rZXlzKFRBR0NPREVTKTsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgY29uc3QgY3VycmVudE5hbWUgPSBrZXlzW2ldXG4gIGNvbnN0IGN1cnJlbnRDb2RlID0gVEFHQ09ERVNba2V5c1tpXV0udG9TdHJpbmcoKVxuICBUQUdOQU1FU1tjdXJyZW50Q29kZV0gPSBjdXJyZW50TmFtZVxufVxuXG5jb25zdCBUQUdQQVJTRVJTID0ge1xuICAxOiB3b3JkcyA9PiBoZXguZW5jb2RlKGJlY2gzMi5mcm9tV29yZHNVbnNhZmUod29yZHMpKSwgLy8gMjU2IGJpdHNcbiAgMTY6IHdvcmRzID0+IGhleC5lbmNvZGUoYmVjaDMyLmZyb21Xb3Jkc1Vuc2FmZSh3b3JkcykpLCAvLyAyNTYgYml0c1xuICAxMzogd29yZHMgPT4gdXRmOC5lbmNvZGUoYmVjaDMyLmZyb21Xb3Jkc1Vuc2FmZSh3b3JkcykpLCAvLyBzdHJpbmcgdmFyaWFibGUgbGVuZ3RoXG4gIDE5OiB3b3JkcyA9PiBoZXguZW5jb2RlKGJlY2gzMi5mcm9tV29yZHNVbnNhZmUod29yZHMpKSwgLy8gMjY0IGJpdHNcbiAgMjM6IHdvcmRzID0+IGhleC5lbmNvZGUoYmVjaDMyLmZyb21Xb3Jkc1Vuc2FmZSh3b3JkcykpLCAvLyAyNTYgYml0c1xuICAyNzogd29yZHMgPT4gaGV4LmVuY29kZShiZWNoMzIuZnJvbVdvcmRzVW5zYWZlKHdvcmRzKSksIC8vIHZhcmlhYmxlXG4gIDY6IHdvcmRzVG9JbnRCRSwgLy8gZGVmYXVsdDogMzYwMCAoMSBob3VyKVxuICAyNDogd29yZHNUb0ludEJFLCAvLyBkZWZhdWx0OiA5XG4gIDM6IHJvdXRpbmdJbmZvUGFyc2VyLCAvLyBmb3IgZXh0cmEgcm91dGluZyBpbmZvIChwcml2YXRlIGV0Yy4pXG4gIDU6IGZlYXR1cmVCaXRzUGFyc2VyIC8vIGtlZXAgZmVhdHVyZSBiaXRzIGFzIGFycmF5IG9mIDUgYml0IHdvcmRzXG59XG5cbmZ1bmN0aW9uIGdldFVua25vd25QYXJzZXIodGFnQ29kZSkge1xuICByZXR1cm4gd29yZHMgPT4gKHtcbiAgICB0YWdDb2RlOiBwYXJzZUludCh0YWdDb2RlKSxcbiAgICB3b3JkczogYmVjaDMyLmVuY29kZSgndW5rbm93bicsIHdvcmRzLCBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUilcbiAgfSlcbn1cblxuZnVuY3Rpb24gd29yZHNUb0ludEJFKHdvcmRzKSB7XG4gIHJldHVybiB3b3Jkcy5yZXZlcnNlKCkucmVkdWNlKCh0b3RhbCwgaXRlbSwgaW5kZXgpID0+IHtcbiAgICByZXR1cm4gdG90YWwgKyBpdGVtICogTWF0aC5wb3coMzIsIGluZGV4KVxuICB9LCAwKVxufVxuXG4vLyBmaXJzdCBjb252ZXJ0IGZyb20gd29yZHMgdG8gYnVmZmVyLCB0cmltbWluZyBwYWRkaW5nIHdoZXJlIG5lY2Vzc2FyeVxuLy8gcGFyc2UgaW4gNTEgYnl0ZSBjaHVua3MuIFNlZSBlbmNvZGVyIGZvciBkZXRhaWxzLlxuZnVuY3Rpb24gcm91dGluZ0luZm9QYXJzZXIod29yZHMpIHtcbiAgY29uc3Qgcm91dGVzID0gW11cbiAgbGV0IHB1YmtleSxcbiAgICBzaG9ydENoYW5uZWxJZCxcbiAgICBmZWVCYXNlTVNhdHMsXG4gICAgZmVlUHJvcG9ydGlvbmFsTWlsbGlvbnRocyxcbiAgICBjbHR2RXhwaXJ5RGVsdGFcbiAgbGV0IHJvdXRlc0J1ZmZlciA9IGJlY2gzMi5mcm9tV29yZHNVbnNhZmUod29yZHMpXG4gIHdoaWxlIChyb3V0ZXNCdWZmZXIubGVuZ3RoID4gMCkge1xuICAgIHB1YmtleSA9IGhleC5lbmNvZGUocm91dGVzQnVmZmVyLnNsaWNlKDAsIDMzKSkgLy8gMzMgYnl0ZXNcbiAgICBzaG9ydENoYW5uZWxJZCA9IGhleC5lbmNvZGUocm91dGVzQnVmZmVyLnNsaWNlKDMzLCA0MSkpIC8vIDggYnl0ZXNcbiAgICBmZWVCYXNlTVNhdHMgPSBwYXJzZUludChoZXguZW5jb2RlKHJvdXRlc0J1ZmZlci5zbGljZSg0MSwgNDUpKSwgMTYpIC8vIDQgYnl0ZXNcbiAgICBmZWVQcm9wb3J0aW9uYWxNaWxsaW9udGhzID0gcGFyc2VJbnQoXG4gICAgICBoZXguZW5jb2RlKHJvdXRlc0J1ZmZlci5zbGljZSg0NSwgNDkpKSxcbiAgICAgIDE2XG4gICAgKSAvLyA0IGJ5dGVzXG4gICAgY2x0dkV4cGlyeURlbHRhID0gcGFyc2VJbnQoaGV4LmVuY29kZShyb3V0ZXNCdWZmZXIuc2xpY2UoNDksIDUxKSksIDE2KSAvLyAyIGJ5dGVzXG5cbiAgICByb3V0ZXNCdWZmZXIgPSByb3V0ZXNCdWZmZXIuc2xpY2UoNTEpXG5cbiAgICByb3V0ZXMucHVzaCh7XG4gICAgICBwdWJrZXksXG4gICAgICBzaG9ydF9jaGFubmVsX2lkOiBzaG9ydENoYW5uZWxJZCxcbiAgICAgIGZlZV9iYXNlX21zYXQ6IGZlZUJhc2VNU2F0cyxcbiAgICAgIGZlZV9wcm9wb3J0aW9uYWxfbWlsbGlvbnRoczogZmVlUHJvcG9ydGlvbmFsTWlsbGlvbnRocyxcbiAgICAgIGNsdHZfZXhwaXJ5X2RlbHRhOiBjbHR2RXhwaXJ5RGVsdGFcbiAgICB9KVxuICB9XG4gIHJldHVybiByb3V0ZXNcbn1cblxuZnVuY3Rpb24gZmVhdHVyZUJpdHNQYXJzZXIod29yZHMpIHtcbiAgY29uc3QgYm9vbHMgPSB3b3Jkc1xuICAgIC5zbGljZSgpXG4gICAgLnJldmVyc2UoKVxuICAgIC5tYXAod29yZCA9PiBbXG4gICAgICAhISh3b3JkICYgMGIxKSxcbiAgICAgICEhKHdvcmQgJiAwYjEwKSxcbiAgICAgICEhKHdvcmQgJiAwYjEwMCksXG4gICAgICAhISh3b3JkICYgMGIxMDAwKSxcbiAgICAgICEhKHdvcmQgJiAwYjEwMDAwKVxuICAgIF0pXG4gICAgLnJlZHVjZSgoZmluYWxBcnIsIGl0ZW1BcnIpID0+IGZpbmFsQXJyLmNvbmNhdChpdGVtQXJyKSwgW10pXG4gIHdoaWxlIChib29scy5sZW5ndGggPCBGRUFUVVJFQklUX09SREVSLmxlbmd0aCAqIDIpIHtcbiAgICBib29scy5wdXNoKGZhbHNlKVxuICB9XG5cbiAgY29uc3QgZmVhdHVyZUJpdHMgPSB7fVxuXG4gIEZFQVRVUkVCSVRfT1JERVIuZm9yRWFjaCgoZmVhdHVyZU5hbWUsIGluZGV4KSA9PiB7XG4gICAgbGV0IHN0YXR1c1xuICAgIGlmIChib29sc1tpbmRleCAqIDJdKSB7XG4gICAgICBzdGF0dXMgPSAncmVxdWlyZWQnXG4gICAgfSBlbHNlIGlmIChib29sc1tpbmRleCAqIDIgKyAxXSkge1xuICAgICAgc3RhdHVzID0gJ3N1cHBvcnRlZCdcbiAgICB9IGVsc2Uge1xuICAgICAgc3RhdHVzID0gJ3Vuc3VwcG9ydGVkJ1xuICAgIH1cbiAgICBmZWF0dXJlQml0c1tmZWF0dXJlTmFtZV0gPSBzdGF0dXNcbiAgfSlcblxuICBjb25zdCBleHRyYUJpdHMgPSBib29scy5zbGljZShGRUFUVVJFQklUX09SREVSLmxlbmd0aCAqIDIpXG4gIGZlYXR1cmVCaXRzLmV4dHJhX2JpdHMgPSB7XG4gICAgc3RhcnRfYml0OiBGRUFUVVJFQklUX09SREVSLmxlbmd0aCAqIDIsXG4gICAgYml0czogZXh0cmFCaXRzLFxuICAgIGhhc19yZXF1aXJlZDogZXh0cmFCaXRzLnJlZHVjZShcbiAgICAgIChyZXN1bHQsIGJpdCwgaW5kZXgpID0+XG4gICAgICAgIGluZGV4ICUgMiAhPT0gMCA/IHJlc3VsdCB8fCBmYWxzZSA6IHJlc3VsdCB8fCBiaXQsXG4gICAgICBmYWxzZVxuICAgIClcbiAgfVxuXG4gIHJldHVybiBmZWF0dXJlQml0c1xufVxuXG5mdW5jdGlvbiBocnBUb01pbGxpc2F0KGhycFN0cmluZywgb3V0cHV0U3RyaW5nKSB7XG4gIGxldCBkaXZpc29yLCB2YWx1ZVxuICBpZiAoaHJwU3RyaW5nLnNsaWNlKC0xKS5tYXRjaCgvXlttdW5wXSQvKSkge1xuICAgIGRpdmlzb3IgPSBocnBTdHJpbmcuc2xpY2UoLTEpXG4gICAgdmFsdWUgPSBocnBTdHJpbmcuc2xpY2UoMCwgLTEpXG4gIH0gZWxzZSBpZiAoaHJwU3RyaW5nLnNsaWNlKC0xKS5tYXRjaCgvXltebXVucDAtOV0kLykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBhIHZhbGlkIG11bHRpcGxpZXIgZm9yIHRoZSBhbW91bnQnKVxuICB9IGVsc2Uge1xuICAgIHZhbHVlID0gaHJwU3RyaW5nXG4gIH1cblxuICBpZiAoIXZhbHVlLm1hdGNoKC9eXFxkKyQvKSlcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBhIHZhbGlkIGh1bWFuIHJlYWRhYmxlIGFtb3VudCcpXG5cbiAgY29uc3QgdmFsdWVCTiA9IEJpZ0ludCh2YWx1ZSlcblxuICBjb25zdCBtaWxsaXNhdG9zaGlzQk4gPSBkaXZpc29yXG4gICAgPyAodmFsdWVCTiAqIE1JTExJU0FUU19QRVJfQlRDKSAvIERJVklTT1JTW2Rpdmlzb3JdXG4gICAgOiB2YWx1ZUJOICogTUlMTElTQVRTX1BFUl9CVENcblxuICBpZiAoXG4gICAgKGRpdmlzb3IgPT09ICdwJyAmJiAhKHZhbHVlQk4gJSBCaWdJbnQoMTApID09PSBCaWdJbnQoMCkpKSB8fFxuICAgIG1pbGxpc2F0b3NoaXNCTiA+IE1BWF9NSUxMSVNBVFNcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdBbW91bnQgaXMgb3V0c2lkZSBvZiB2YWxpZCByYW5nZScpXG4gIH1cblxuICByZXR1cm4gb3V0cHV0U3RyaW5nID8gbWlsbGlzYXRvc2hpc0JOLnRvU3RyaW5nKCkgOiBtaWxsaXNhdG9zaGlzQk5cbn1cblxuLy8gZGVjb2RlIHdpbGwgb25seSBoYXZlIGV4dHJhIGNvbW1lbnRzIHRoYXQgYXJlbid0IGNvdmVyZWQgaW4gZW5jb2RlIGNvbW1lbnRzLlxuLy8gYWxzbyBpZiBhbnl0aGluZyBpcyBoYXJkIHRvIHJlYWQgSSdsbCBjb21tZW50LlxuZnVuY3Rpb24gZGVjb2RlKHBheW1lbnRSZXF1ZXN0LCBuZXR3b3JrKSB7XG4gIGlmICh0eXBlb2YgcGF5bWVudFJlcXVlc3QgIT09ICdzdHJpbmcnKVxuICAgIHRocm93IG5ldyBFcnJvcignTGlnaHRuaW5nIFBheW1lbnQgUmVxdWVzdCBtdXN0IGJlIHN0cmluZycpXG4gIGlmIChwYXltZW50UmVxdWVzdC5zbGljZSgwLCAyKS50b0xvd2VyQ2FzZSgpICE9PSAnbG4nKVxuICAgIHRocm93IG5ldyBFcnJvcignTm90IGEgcHJvcGVyIGxpZ2h0bmluZyBwYXltZW50IHJlcXVlc3QnKVxuXG4gIGNvbnN0IHNlY3Rpb25zID0gW11cbiAgY29uc3QgZGVjb2RlZCA9IGJlY2gzMi5kZWNvZGUocGF5bWVudFJlcXVlc3QsIE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKVxuICBwYXltZW50UmVxdWVzdCA9IHBheW1lbnRSZXF1ZXN0LnRvTG93ZXJDYXNlKClcbiAgY29uc3QgcHJlZml4ID0gZGVjb2RlZC5wcmVmaXhcbiAgbGV0IHdvcmRzID0gZGVjb2RlZC53b3Jkc1xuICBsZXQgbGV0dGVycyA9IHBheW1lbnRSZXF1ZXN0LnNsaWNlKHByZWZpeC5sZW5ndGggKyAxKVxuICBsZXQgc2lnV29yZHMgPSB3b3Jkcy5zbGljZSgtMTA0KVxuICB3b3JkcyA9IHdvcmRzLnNsaWNlKDAsIC0xMDQpXG5cbiAgLy8gV2l0aG91dCByZXZlcnNlIGxvb2t1cHMsIGNhbid0IHNheSB0aGF0IHRoZSBtdWx0aXBpZXIgYXQgdGhlIGVuZCBtdXN0XG4gIC8vIGhhdmUgYSBudW1iZXIgYmVmb3JlIGl0LCBzbyBpbnN0ZWFkIHdlIHBhcnNlLCBhbmQgaWYgdGhlIHNlY29uZCBncm91cFxuICAvLyBkb2Vzbid0IGhhdmUgYW55dGhpbmcsIHRoZXJlJ3MgYSBnb29kIGNoYW5jZSB0aGUgbGFzdCBsZXR0ZXIgb2YgdGhlXG4gIC8vIGNvaW4gdHlwZSBnb3QgY2FwdHVyZWQgYnkgdGhlIHRoaXJkIGdyb3VwLCBzbyBqdXN0IHJlLXJlZ2V4IHdpdGhvdXRcbiAgLy8gdGhlIG51bWJlci5cbiAgbGV0IHByZWZpeE1hdGNoZXMgPSBwcmVmaXgubWF0Y2goL15sbihcXFMrPykoXFxkKikoW2EtekEtWl0/KSQvKVxuICBpZiAocHJlZml4TWF0Y2hlcyAmJiAhcHJlZml4TWF0Y2hlc1syXSlcbiAgICBwcmVmaXhNYXRjaGVzID0gcHJlZml4Lm1hdGNoKC9ebG4oXFxTKykkLylcbiAgaWYgKCFwcmVmaXhNYXRjaGVzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgYSBwcm9wZXIgbGlnaHRuaW5nIHBheW1lbnQgcmVxdWVzdCcpXG4gIH1cblxuICAvLyBcImxuXCIgc2VjdGlvblxuICBzZWN0aW9ucy5wdXNoKHtcbiAgICBuYW1lOiAnbGlnaHRuaW5nX25ldHdvcmsnLFxuICAgIGxldHRlcnM6ICdsbidcbiAgfSlcblxuICAvLyBcImJjXCIgc2VjdGlvblxuICBjb25zdCBiZWNoMzJQcmVmaXggPSBwcmVmaXhNYXRjaGVzWzFdXG4gIGxldCBjb2luTmV0d29ya1xuICBpZiAoIW5ldHdvcmspIHtcbiAgICBzd2l0Y2ggKGJlY2gzMlByZWZpeCkge1xuICAgICAgY2FzZSBERUZBVUxUTkVUV09SSy5iZWNoMzI6XG4gICAgICAgIGNvaW5OZXR3b3JrID0gREVGQVVMVE5FVFdPUktcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgVEVTVE5FVFdPUksuYmVjaDMyOlxuICAgICAgICBjb2luTmV0d29yayA9IFRFU1RORVRXT1JLXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIFJFR1RFU1RORVRXT1JLLmJlY2gzMjpcbiAgICAgICAgY29pbk5ldHdvcmsgPSBSRUdURVNUTkVUV09SS1xuICAgICAgICBicmVha1xuICAgICAgY2FzZSBTSU1ORVRXT1JLLmJlY2gzMjpcbiAgICAgICAgY29pbk5ldHdvcmsgPSBTSU1ORVRXT1JLXG4gICAgICAgIGJyZWFrXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChcbiAgICAgIG5ldHdvcmsuYmVjaDMyID09PSB1bmRlZmluZWQgfHxcbiAgICAgIG5ldHdvcmsucHViS2V5SGFzaCA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICBuZXR3b3JrLnNjcmlwdEhhc2ggPT09IHVuZGVmaW5lZCB8fFxuICAgICAgIUFycmF5LmlzQXJyYXkobmV0d29yay52YWxpZFdpdG5lc3NWZXJzaW9ucylcbiAgICApXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgbmV0d29yaycpXG4gICAgY29pbk5ldHdvcmsgPSBuZXR3b3JrXG4gIH1cbiAgaWYgKCFjb2luTmV0d29yayB8fCBjb2luTmV0d29yay5iZWNoMzIgIT09IGJlY2gzMlByZWZpeCkge1xuICAgIHRocm93IG5ldyBFcnJvcignVW5rbm93biBjb2luIGJlY2gzMiBwcmVmaXgnKVxuICB9XG4gIHNlY3Rpb25zLnB1c2goe1xuICAgIG5hbWU6ICdjb2luX25ldHdvcmsnLFxuICAgIGxldHRlcnM6IGJlY2gzMlByZWZpeCxcbiAgICB2YWx1ZTogY29pbk5ldHdvcmtcbiAgfSlcblxuICAvLyBhbW91bnQgc2VjdGlvblxuICBjb25zdCB2YWx1ZSA9IHByZWZpeE1hdGNoZXNbMl1cbiAgbGV0IG1pbGxpc2F0b3NoaXNcbiAgaWYgKHZhbHVlKSB7XG4gICAgY29uc3QgZGl2aXNvciA9IHByZWZpeE1hdGNoZXNbM11cbiAgICBtaWxsaXNhdG9zaGlzID0gaHJwVG9NaWxsaXNhdCh2YWx1ZSArIGRpdmlzb3IsIHRydWUpXG4gICAgc2VjdGlvbnMucHVzaCh7XG4gICAgICBuYW1lOiAnYW1vdW50JyxcbiAgICAgIGxldHRlcnM6IHByZWZpeE1hdGNoZXNbMl0gKyBwcmVmaXhNYXRjaGVzWzNdLFxuICAgICAgdmFsdWU6IG1pbGxpc2F0b3NoaXNcbiAgICB9KVxuICB9IGVsc2Uge1xuICAgIG1pbGxpc2F0b3NoaXMgPSBudWxsXG4gIH1cblxuICAvLyBcIjFcIiBzZXBhcmF0b3JcbiAgc2VjdGlvbnMucHVzaCh7XG4gICAgbmFtZTogJ3NlcGFyYXRvcicsXG4gICAgbGV0dGVyczogJzEnXG4gIH0pXG5cbiAgLy8gdGltZXN0YW1wXG4gIGNvbnN0IHRpbWVzdGFtcCA9IHdvcmRzVG9JbnRCRSh3b3Jkcy5zbGljZSgwLCA3KSlcbiAgd29yZHMgPSB3b3Jkcy5zbGljZSg3KSAvLyB0cmltIG9mZiB0aGUgbGVmdCA3IHdvcmRzXG4gIHNlY3Rpb25zLnB1c2goe1xuICAgIG5hbWU6ICd0aW1lc3RhbXAnLFxuICAgIGxldHRlcnM6IGxldHRlcnMuc2xpY2UoMCwgNyksXG4gICAgdmFsdWU6IHRpbWVzdGFtcFxuICB9KVxuICBsZXR0ZXJzID0gbGV0dGVycy5zbGljZSg3KVxuXG4gIGxldCB0YWdOYW1lLCBwYXJzZXIsIHRhZ0xlbmd0aCwgdGFnV29yZHNcbiAgLy8gd2UgaGF2ZSBubyB0YWcgY291bnQgdG8gZ28gb24sIHNvIGp1c3Qga2VlcCBoYWNraW5nIG9mZiB3b3Jkc1xuICAvLyB1bnRpbCB3ZSBoYXZlIG5vbmUuXG4gIHdoaWxlICh3b3Jkcy5sZW5ndGggPiAwKSB7XG4gICAgY29uc3QgdGFnQ29kZSA9IHdvcmRzWzBdLnRvU3RyaW5nKClcbiAgICB0YWdOYW1lID0gVEFHTkFNRVNbdGFnQ29kZV0gfHwgJ3Vua25vd25fdGFnJ1xuICAgIHBhcnNlciA9IFRBR1BBUlNFUlNbdGFnQ29kZV0gfHwgZ2V0VW5rbm93blBhcnNlcih0YWdDb2RlKVxuICAgIHdvcmRzID0gd29yZHMuc2xpY2UoMSlcblxuICAgIHRhZ0xlbmd0aCA9IHdvcmRzVG9JbnRCRSh3b3Jkcy5zbGljZSgwLCAyKSlcbiAgICB3b3JkcyA9IHdvcmRzLnNsaWNlKDIpXG5cbiAgICB0YWdXb3JkcyA9IHdvcmRzLnNsaWNlKDAsIHRhZ0xlbmd0aClcbiAgICB3b3JkcyA9IHdvcmRzLnNsaWNlKHRhZ0xlbmd0aClcblxuICAgIHNlY3Rpb25zLnB1c2goe1xuICAgICAgbmFtZTogdGFnTmFtZSxcbiAgICAgIHRhZzogbGV0dGVyc1swXSxcbiAgICAgIGxldHRlcnM6IGxldHRlcnMuc2xpY2UoMCwgMSArIDIgKyB0YWdMZW5ndGgpLFxuICAgICAgdmFsdWU6IHBhcnNlcih0YWdXb3JkcykgLy8gc2VlOiBwYXJzZXJzIGZvciBtb3JlIGNvbW1lbnRzXG4gICAgfSlcbiAgICBsZXR0ZXJzID0gbGV0dGVycy5zbGljZSgxICsgMiArIHRhZ0xlbmd0aClcbiAgfVxuXG4gIC8vIHNpZ25hdHVyZVxuICBzZWN0aW9ucy5wdXNoKHtcbiAgICBuYW1lOiAnc2lnbmF0dXJlJyxcbiAgICBsZXR0ZXJzOiBsZXR0ZXJzLnNsaWNlKDAsIDEwNCksXG4gICAgdmFsdWU6IGhleC5lbmNvZGUoYmVjaDMyLmZyb21Xb3Jkc1Vuc2FmZShzaWdXb3JkcykpXG4gIH0pXG4gIGxldHRlcnMgPSBsZXR0ZXJzLnNsaWNlKDEwNClcblxuICAvLyBjaGVja3N1bVxuICBzZWN0aW9ucy5wdXNoKHtcbiAgICBuYW1lOiAnY2hlY2tzdW0nLFxuICAgIGxldHRlcnM6IGxldHRlcnNcbiAgfSlcblxuICBsZXQgcmVzdWx0ID0ge1xuICAgIHBheW1lbnRSZXF1ZXN0LFxuICAgIHNlY3Rpb25zLFxuXG4gICAgZ2V0IGV4cGlyeSgpIHtcbiAgICAgIGxldCBleHAgPSBzZWN0aW9ucy5maW5kKHMgPT4gcy5uYW1lID09PSAnZXhwaXJ5JylcbiAgICAgIGlmIChleHApIHJldHVybiBnZXRWYWx1ZSgndGltZXN0YW1wJykgKyBleHAudmFsdWVcbiAgICB9LFxuXG4gICAgZ2V0IHJvdXRlX2hpbnRzKCkge1xuICAgICAgcmV0dXJuIHNlY3Rpb25zLmZpbHRlcihzID0+IHMubmFtZSA9PT0gJ3JvdXRlX2hpbnQnKS5tYXAocyA9PiBzLnZhbHVlKVxuICAgIH1cbiAgfVxuXG4gIGZvciAobGV0IG5hbWUgaW4gVEFHQ09ERVMpIHtcbiAgICBpZiAobmFtZSA9PT0gJ3JvdXRlX2hpbnQnKSB7XG4gICAgICAvLyByb3V0ZSBoaW50cyBjYW4gYmUgbXVsdGlwbGUsIHNvIHRoaXMgd29uJ3Qgd29yayBmb3IgdGhlbVxuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVzdWx0LCBuYW1lLCB7XG4gICAgICBnZXQoKSB7XG4gICAgICAgIHJldHVybiBnZXRWYWx1ZShuYW1lKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICByZXR1cm4gcmVzdWx0XG5cbiAgZnVuY3Rpb24gZ2V0VmFsdWUobmFtZSkge1xuICAgIGxldCBzZWN0aW9uID0gc2VjdGlvbnMuZmluZChzID0+IHMubmFtZSA9PT0gbmFtZSlcbiAgICByZXR1cm4gc2VjdGlvbiA/IHNlY3Rpb24udmFsdWUgOiB1bmRlZmluZWRcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgZGVjb2RlLFxuICBocnBUb01pbGxpc2F0XG59XG4iLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIHN0eWxlc0luRE9NID0gW107XG5mdW5jdGlvbiBnZXRJbmRleEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKSB7XG4gIHZhciByZXN1bHQgPSAtMTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHlsZXNJbkRPTS5sZW5ndGg7IGkrKykge1xuICAgIGlmIChzdHlsZXNJbkRPTVtpXS5pZGVudGlmaWVyID09PSBpZGVudGlmaWVyKSB7XG4gICAgICByZXN1bHQgPSBpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5mdW5jdGlvbiBtb2R1bGVzVG9Eb20obGlzdCwgb3B0aW9ucykge1xuICB2YXIgaWRDb3VudE1hcCA9IHt9O1xuICB2YXIgaWRlbnRpZmllcnMgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGl0ZW0gPSBsaXN0W2ldO1xuICAgIHZhciBpZCA9IG9wdGlvbnMuYmFzZSA/IGl0ZW1bMF0gKyBvcHRpb25zLmJhc2UgOiBpdGVtWzBdO1xuICAgIHZhciBjb3VudCA9IGlkQ291bnRNYXBbaWRdIHx8IDA7XG4gICAgdmFyIGlkZW50aWZpZXIgPSBcIlwiLmNvbmNhdChpZCwgXCIgXCIpLmNvbmNhdChjb3VudCk7XG4gICAgaWRDb3VudE1hcFtpZF0gPSBjb3VudCArIDE7XG4gICAgdmFyIGluZGV4QnlJZGVudGlmaWVyID0gZ2V0SW5kZXhCeUlkZW50aWZpZXIoaWRlbnRpZmllcik7XG4gICAgdmFyIG9iaiA9IHtcbiAgICAgIGNzczogaXRlbVsxXSxcbiAgICAgIG1lZGlhOiBpdGVtWzJdLFxuICAgICAgc291cmNlTWFwOiBpdGVtWzNdLFxuICAgICAgc3VwcG9ydHM6IGl0ZW1bNF0sXG4gICAgICBsYXllcjogaXRlbVs1XVxuICAgIH07XG4gICAgaWYgKGluZGV4QnlJZGVudGlmaWVyICE9PSAtMSkge1xuICAgICAgc3R5bGVzSW5ET01baW5kZXhCeUlkZW50aWZpZXJdLnJlZmVyZW5jZXMrKztcbiAgICAgIHN0eWxlc0luRE9NW2luZGV4QnlJZGVudGlmaWVyXS51cGRhdGVyKG9iaik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciB1cGRhdGVyID0gYWRkRWxlbWVudFN0eWxlKG9iaiwgb3B0aW9ucyk7XG4gICAgICBvcHRpb25zLmJ5SW5kZXggPSBpO1xuICAgICAgc3R5bGVzSW5ET00uc3BsaWNlKGksIDAsIHtcbiAgICAgICAgaWRlbnRpZmllcjogaWRlbnRpZmllcixcbiAgICAgICAgdXBkYXRlcjogdXBkYXRlcixcbiAgICAgICAgcmVmZXJlbmNlczogMVxuICAgICAgfSk7XG4gICAgfVxuICAgIGlkZW50aWZpZXJzLnB1c2goaWRlbnRpZmllcik7XG4gIH1cbiAgcmV0dXJuIGlkZW50aWZpZXJzO1xufVxuZnVuY3Rpb24gYWRkRWxlbWVudFN0eWxlKG9iaiwgb3B0aW9ucykge1xuICB2YXIgYXBpID0gb3B0aW9ucy5kb21BUEkob3B0aW9ucyk7XG4gIGFwaS51cGRhdGUob2JqKTtcbiAgdmFyIHVwZGF0ZXIgPSBmdW5jdGlvbiB1cGRhdGVyKG5ld09iaikge1xuICAgIGlmIChuZXdPYmopIHtcbiAgICAgIGlmIChuZXdPYmouY3NzID09PSBvYmouY3NzICYmIG5ld09iai5tZWRpYSA9PT0gb2JqLm1lZGlhICYmIG5ld09iai5zb3VyY2VNYXAgPT09IG9iai5zb3VyY2VNYXAgJiYgbmV3T2JqLnN1cHBvcnRzID09PSBvYmouc3VwcG9ydHMgJiYgbmV3T2JqLmxheWVyID09PSBvYmoubGF5ZXIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgYXBpLnVwZGF0ZShvYmogPSBuZXdPYmopO1xuICAgIH0gZWxzZSB7XG4gICAgICBhcGkucmVtb3ZlKCk7XG4gICAgfVxuICB9O1xuICByZXR1cm4gdXBkYXRlcjtcbn1cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGxpc3QsIG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIGxpc3QgPSBsaXN0IHx8IFtdO1xuICB2YXIgbGFzdElkZW50aWZpZXJzID0gbW9kdWxlc1RvRG9tKGxpc3QsIG9wdGlvbnMpO1xuICByZXR1cm4gZnVuY3Rpb24gdXBkYXRlKG5ld0xpc3QpIHtcbiAgICBuZXdMaXN0ID0gbmV3TGlzdCB8fCBbXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxhc3RJZGVudGlmaWVycy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGlkZW50aWZpZXIgPSBsYXN0SWRlbnRpZmllcnNbaV07XG4gICAgICB2YXIgaW5kZXggPSBnZXRJbmRleEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKTtcbiAgICAgIHN0eWxlc0luRE9NW2luZGV4XS5yZWZlcmVuY2VzLS07XG4gICAgfVxuICAgIHZhciBuZXdMYXN0SWRlbnRpZmllcnMgPSBtb2R1bGVzVG9Eb20obmV3TGlzdCwgb3B0aW9ucyk7XG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGxhc3RJZGVudGlmaWVycy5sZW5ndGg7IF9pKyspIHtcbiAgICAgIHZhciBfaWRlbnRpZmllciA9IGxhc3RJZGVudGlmaWVyc1tfaV07XG4gICAgICB2YXIgX2luZGV4ID0gZ2V0SW5kZXhCeUlkZW50aWZpZXIoX2lkZW50aWZpZXIpO1xuICAgICAgaWYgKHN0eWxlc0luRE9NW19pbmRleF0ucmVmZXJlbmNlcyA9PT0gMCkge1xuICAgICAgICBzdHlsZXNJbkRPTVtfaW5kZXhdLnVwZGF0ZXIoKTtcbiAgICAgICAgc3R5bGVzSW5ET00uc3BsaWNlKF9pbmRleCwgMSk7XG4gICAgICB9XG4gICAgfVxuICAgIGxhc3RJZGVudGlmaWVycyA9IG5ld0xhc3RJZGVudGlmaWVycztcbiAgfTtcbn07IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBtZW1vID0ge307XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gZ2V0VGFyZ2V0KHRhcmdldCkge1xuICBpZiAodHlwZW9mIG1lbW9bdGFyZ2V0XSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgIHZhciBzdHlsZVRhcmdldCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGFyZ2V0KTtcblxuICAgIC8vIFNwZWNpYWwgY2FzZSB0byByZXR1cm4gaGVhZCBvZiBpZnJhbWUgaW5zdGVhZCBvZiBpZnJhbWUgaXRzZWxmXG4gICAgaWYgKHdpbmRvdy5IVE1MSUZyYW1lRWxlbWVudCAmJiBzdHlsZVRhcmdldCBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MSUZyYW1lRWxlbWVudCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gVGhpcyB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbiBpZiBhY2Nlc3MgdG8gaWZyYW1lIGlzIGJsb2NrZWRcbiAgICAgICAgLy8gZHVlIHRvIGNyb3NzLW9yaWdpbiByZXN0cmljdGlvbnNcbiAgICAgICAgc3R5bGVUYXJnZXQgPSBzdHlsZVRhcmdldC5jb250ZW50RG9jdW1lbnQuaGVhZDtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgICAgICAgc3R5bGVUYXJnZXQgPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgICBtZW1vW3RhcmdldF0gPSBzdHlsZVRhcmdldDtcbiAgfVxuICByZXR1cm4gbWVtb1t0YXJnZXRdO1xufVxuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIGluc2VydEJ5U2VsZWN0b3IoaW5zZXJ0LCBzdHlsZSkge1xuICB2YXIgdGFyZ2V0ID0gZ2V0VGFyZ2V0KGluc2VydCk7XG4gIGlmICghdGFyZ2V0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiQ291bGRuJ3QgZmluZCBhIHN0eWxlIHRhcmdldC4gVGhpcyBwcm9iYWJseSBtZWFucyB0aGF0IHRoZSB2YWx1ZSBmb3IgdGhlICdpbnNlcnQnIHBhcmFtZXRlciBpcyBpbnZhbGlkLlwiKTtcbiAgfVxuICB0YXJnZXQuYXBwZW5kQ2hpbGQoc3R5bGUpO1xufVxubW9kdWxlLmV4cG9ydHMgPSBpbnNlcnRCeVNlbGVjdG9yOyIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIGluc2VydFN0eWxlRWxlbWVudChvcHRpb25zKSB7XG4gIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO1xuICBvcHRpb25zLnNldEF0dHJpYnV0ZXMoZWxlbWVudCwgb3B0aW9ucy5hdHRyaWJ1dGVzKTtcbiAgb3B0aW9ucy5pbnNlcnQoZWxlbWVudCwgb3B0aW9ucy5vcHRpb25zKTtcbiAgcmV0dXJuIGVsZW1lbnQ7XG59XG5tb2R1bGUuZXhwb3J0cyA9IGluc2VydFN0eWxlRWxlbWVudDsiLCJcInVzZSBzdHJpY3RcIjtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBzZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMoc3R5bGVFbGVtZW50KSB7XG4gIHZhciBub25jZSA9IHR5cGVvZiBfX3dlYnBhY2tfbm9uY2VfXyAhPT0gXCJ1bmRlZmluZWRcIiA/IF9fd2VicGFja19ub25jZV9fIDogbnVsbDtcbiAgaWYgKG5vbmNlKSB7XG4gICAgc3R5bGVFbGVtZW50LnNldEF0dHJpYnV0ZShcIm5vbmNlXCIsIG5vbmNlKTtcbiAgfVxufVxubW9kdWxlLmV4cG9ydHMgPSBzZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXM7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gYXBwbHkoc3R5bGVFbGVtZW50LCBvcHRpb25zLCBvYmopIHtcbiAgdmFyIGNzcyA9IFwiXCI7XG4gIGlmIChvYmouc3VwcG9ydHMpIHtcbiAgICBjc3MgKz0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChvYmouc3VwcG9ydHMsIFwiKSB7XCIpO1xuICB9XG4gIGlmIChvYmoubWVkaWEpIHtcbiAgICBjc3MgKz0gXCJAbWVkaWEgXCIuY29uY2F0KG9iai5tZWRpYSwgXCIge1wiKTtcbiAgfVxuICB2YXIgbmVlZExheWVyID0gdHlwZW9mIG9iai5sYXllciAhPT0gXCJ1bmRlZmluZWRcIjtcbiAgaWYgKG5lZWRMYXllcikge1xuICAgIGNzcyArPSBcIkBsYXllclwiLmNvbmNhdChvYmoubGF5ZXIubGVuZ3RoID4gMCA/IFwiIFwiLmNvbmNhdChvYmoubGF5ZXIpIDogXCJcIiwgXCIge1wiKTtcbiAgfVxuICBjc3MgKz0gb2JqLmNzcztcbiAgaWYgKG5lZWRMYXllcikge1xuICAgIGNzcyArPSBcIn1cIjtcbiAgfVxuICBpZiAob2JqLm1lZGlhKSB7XG4gICAgY3NzICs9IFwifVwiO1xuICB9XG4gIGlmIChvYmouc3VwcG9ydHMpIHtcbiAgICBjc3MgKz0gXCJ9XCI7XG4gIH1cbiAgdmFyIHNvdXJjZU1hcCA9IG9iai5zb3VyY2VNYXA7XG4gIGlmIChzb3VyY2VNYXAgJiYgdHlwZW9mIGJ0b2EgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICBjc3MgKz0gXCJcXG4vKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LFwiLmNvbmNhdChidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShzb3VyY2VNYXApKSkpLCBcIiAqL1wiKTtcbiAgfVxuXG4gIC8vIEZvciBvbGQgSUVcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICAqL1xuICBvcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtKGNzcywgc3R5bGVFbGVtZW50LCBvcHRpb25zLm9wdGlvbnMpO1xufVxuZnVuY3Rpb24gcmVtb3ZlU3R5bGVFbGVtZW50KHN0eWxlRWxlbWVudCkge1xuICAvLyBpc3RhbmJ1bCBpZ25vcmUgaWZcbiAgaWYgKHN0eWxlRWxlbWVudC5wYXJlbnROb2RlID09PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHN0eWxlRWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHN0eWxlRWxlbWVudCk7XG59XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gZG9tQVBJKG9wdGlvbnMpIHtcbiAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgIHJldHVybiB7XG4gICAgICB1cGRhdGU6IGZ1bmN0aW9uIHVwZGF0ZSgpIHt9LFxuICAgICAgcmVtb3ZlOiBmdW5jdGlvbiByZW1vdmUoKSB7fVxuICAgIH07XG4gIH1cbiAgdmFyIHN0eWxlRWxlbWVudCA9IG9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50KG9wdGlvbnMpO1xuICByZXR1cm4ge1xuICAgIHVwZGF0ZTogZnVuY3Rpb24gdXBkYXRlKG9iaikge1xuICAgICAgYXBwbHkoc3R5bGVFbGVtZW50LCBvcHRpb25zLCBvYmopO1xuICAgIH0sXG4gICAgcmVtb3ZlOiBmdW5jdGlvbiByZW1vdmUoKSB7XG4gICAgICByZW1vdmVTdHlsZUVsZW1lbnQoc3R5bGVFbGVtZW50KTtcbiAgICB9XG4gIH07XG59XG5tb2R1bGUuZXhwb3J0cyA9IGRvbUFQSTsiLCJcInVzZSBzdHJpY3RcIjtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBzdHlsZVRhZ1RyYW5zZm9ybShjc3MsIHN0eWxlRWxlbWVudCkge1xuICBpZiAoc3R5bGVFbGVtZW50LnN0eWxlU2hlZXQpIHtcbiAgICBzdHlsZUVsZW1lbnQuc3R5bGVTaGVldC5jc3NUZXh0ID0gY3NzO1xuICB9IGVsc2Uge1xuICAgIHdoaWxlIChzdHlsZUVsZW1lbnQuZmlyc3RDaGlsZCkge1xuICAgICAgc3R5bGVFbGVtZW50LnJlbW92ZUNoaWxkKHN0eWxlRWxlbWVudC5maXJzdENoaWxkKTtcbiAgICB9XG4gICAgc3R5bGVFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNzcykpO1xuICB9XG59XG5tb2R1bGUuZXhwb3J0cyA9IHN0eWxlVGFnVHJhbnNmb3JtOyIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0aWQ6IG1vZHVsZUlkLFxuXHRcdC8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4iLCIvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5uID0gKG1vZHVsZSkgPT4ge1xuXHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cblx0XHQoKSA9PiAobW9kdWxlWydkZWZhdWx0J10pIDpcblx0XHQoKSA9PiAobW9kdWxlKTtcblx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgeyBhOiBnZXR0ZXIgfSk7XG5cdHJldHVybiBnZXR0ZXI7XG59OyIsIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IChleHBvcnRzLCBkZWZpbml0aW9uKSA9PiB7XG5cdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG5cdFx0fVxuXHR9XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCIvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4ge1xuXHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcblx0fVxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm5jID0gdW5kZWZpbmVkOyIsInZhciBuLGwsdSx0LGksbyxyLGYsZSxjPXt9LHM9W10sYT0vYWNpdHxleCg/OnN8Z3xufHB8JCl8cnBofGdyaWR8b3dzfG1uY3xudHd8aW5lW2NoXXx6b298Xm9yZHxpdGVyYS9pLGg9QXJyYXkuaXNBcnJheTtmdW5jdGlvbiB2KG4sbCl7Zm9yKHZhciB1IGluIGwpblt1XT1sW3VdO3JldHVybiBufWZ1bmN0aW9uIHAobil7dmFyIGw9bi5wYXJlbnROb2RlO2wmJmwucmVtb3ZlQ2hpbGQobil9ZnVuY3Rpb24geShsLHUsdCl7dmFyIGksbyxyLGY9e307Zm9yKHIgaW4gdSlcImtleVwiPT1yP2k9dVtyXTpcInJlZlwiPT1yP289dVtyXTpmW3JdPXVbcl07aWYoYXJndW1lbnRzLmxlbmd0aD4yJiYoZi5jaGlsZHJlbj1hcmd1bWVudHMubGVuZ3RoPjM/bi5jYWxsKGFyZ3VtZW50cywyKTp0KSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBsJiZudWxsIT1sLmRlZmF1bHRQcm9wcylmb3IociBpbiBsLmRlZmF1bHRQcm9wcyl2b2lkIDA9PT1mW3JdJiYoZltyXT1sLmRlZmF1bHRQcm9wc1tyXSk7cmV0dXJuIGQobCxmLGksbyxudWxsKX1mdW5jdGlvbiBkKG4sdCxpLG8scil7dmFyIGY9e3R5cGU6bixwcm9wczp0LGtleTppLHJlZjpvLF9fazpudWxsLF9fOm51bGwsX19iOjAsX19lOm51bGwsX19kOnZvaWQgMCxfX2M6bnVsbCxfX2g6bnVsbCxjb25zdHJ1Y3Rvcjp2b2lkIDAsX192Om51bGw9PXI/Kyt1OnJ9O3JldHVybiBudWxsPT1yJiZudWxsIT1sLnZub2RlJiZsLnZub2RlKGYpLGZ9ZnVuY3Rpb24gXygpe3JldHVybntjdXJyZW50Om51bGx9fWZ1bmN0aW9uIGsobil7cmV0dXJuIG4uY2hpbGRyZW59ZnVuY3Rpb24gYihuLGwpe3RoaXMucHJvcHM9bix0aGlzLmNvbnRleHQ9bH1mdW5jdGlvbiBnKG4sbCl7aWYobnVsbD09bClyZXR1cm4gbi5fXz9nKG4uX18sbi5fXy5fX2suaW5kZXhPZihuKSsxKTpudWxsO2Zvcih2YXIgdTtsPG4uX19rLmxlbmd0aDtsKyspaWYobnVsbCE9KHU9bi5fX2tbbF0pJiZudWxsIT11Ll9fZSlyZXR1cm4gdS5fX2U7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2Ygbi50eXBlP2cobik6bnVsbH1mdW5jdGlvbiBtKG4pe3ZhciBsLHU7aWYobnVsbCE9KG49bi5fXykmJm51bGwhPW4uX19jKXtmb3Iobi5fX2U9bi5fX2MuYmFzZT1udWxsLGw9MDtsPG4uX19rLmxlbmd0aDtsKyspaWYobnVsbCE9KHU9bi5fX2tbbF0pJiZudWxsIT11Ll9fZSl7bi5fX2U9bi5fX2MuYmFzZT11Ll9fZTticmVha31yZXR1cm4gbShuKX19ZnVuY3Rpb24gdyhuKXsoIW4uX19kJiYobi5fX2Q9ITApJiZpLnB1c2gobikmJiF4Ll9fcisrfHxvIT09bC5kZWJvdW5jZVJlbmRlcmluZykmJigobz1sLmRlYm91bmNlUmVuZGVyaW5nKXx8cikoeCl9ZnVuY3Rpb24geCgpe3ZhciBuLGwsdSx0LG8scixlLGMscztmb3IoaS5zb3J0KGYpO249aS5zaGlmdCgpOyluLl9fZCYmKGw9aS5sZW5ndGgsdD12b2lkIDAsbz12b2lkIDAscj12b2lkIDAsYz0oZT0odT1uKS5fX3YpLl9fZSwocz11Ll9fUCkmJih0PVtdLG89W10sKHI9dih7fSxlKSkuX192PWUuX192KzEsTChzLGUscix1Ll9fbix2b2lkIDAhPT1zLm93bmVyU1ZHRWxlbWVudCxudWxsIT1lLl9faD9bY106bnVsbCx0LG51bGw9PWM/ZyhlKTpjLGUuX19oLG8pLE0odCxlLG8pLGUuX19lIT1jJiZtKGUpKSxpLmxlbmd0aD5sJiZpLnNvcnQoZikpO3guX19yPTB9ZnVuY3Rpb24gUChuLGwsdSx0LGksbyxyLGYsZSxhLHYpe3ZhciBwLHksXyxiLGcsbSx3LHgsUCxTLEg9MCxJPXQmJnQuX19rfHxzLFQ9SS5sZW5ndGgsaj1ULHo9bC5sZW5ndGg7Zm9yKHUuX19rPVtdLHA9MDtwPHo7cCsrKW51bGwhPShiPXUuX19rW3BdPW51bGw9PShiPWxbcF0pfHxcImJvb2xlYW5cIj09dHlwZW9mIGJ8fFwiZnVuY3Rpb25cIj09dHlwZW9mIGI/bnVsbDpcInN0cmluZ1wiPT10eXBlb2YgYnx8XCJudW1iZXJcIj09dHlwZW9mIGJ8fFwiYmlnaW50XCI9PXR5cGVvZiBiP2QobnVsbCxiLG51bGwsbnVsbCxiKTpoKGIpP2Qoayx7Y2hpbGRyZW46Yn0sbnVsbCxudWxsLG51bGwpOmIuX19iPjA/ZChiLnR5cGUsYi5wcm9wcyxiLmtleSxiLnJlZj9iLnJlZjpudWxsLGIuX192KTpiKSYmKGIuX189dSxiLl9fYj11Ll9fYisxLC0xPT09KHg9QShiLEksdz1wK0gsaikpP189YzooXz1JW3hdfHxjLElbeF09dm9pZCAwLGotLSksTChuLGIsXyxpLG8scixmLGUsYSx2KSxnPWIuX19lLCh5PWIucmVmKSYmXy5yZWYhPXkmJihfLnJlZiYmTyhfLnJlZixudWxsLGIpLHYucHVzaCh5LGIuX19jfHxnLGIpKSxudWxsIT1nJiYobnVsbD09bSYmKG09ZyksUz0hKFA9Xz09PWN8fG51bGw9PT1fLl9fdikmJng9PT13LFA/LTE9PXgmJkgtLTp4IT09dyYmKHg9PT13KzE/KEgrKyxTPSEwKTp4Pnc/aj56LXc/KEgrPXgtdyxTPSEwKTpILS06SD14PHcmJng9PXctMT94LXc6MCksdz1wK0gsUz1TfHx4PT1wJiYhUCxcImZ1bmN0aW9uXCIhPXR5cGVvZiBiLnR5cGV8fHg9PT13JiZfLl9fayE9PWIuX19rP1wiZnVuY3Rpb25cIj09dHlwZW9mIGIudHlwZXx8Uz92b2lkIDAhPT1iLl9fZD8oZT1iLl9fZCxiLl9fZD12b2lkIDApOmU9Zy5uZXh0U2libGluZzplPSQobixnLGUpOmU9QyhiLGUsbiksXCJmdW5jdGlvblwiPT10eXBlb2YgdS50eXBlJiYodS5fX2Q9ZSkpKTtmb3IodS5fX2U9bSxwPVQ7cC0tOyludWxsIT1JW3BdJiYoXCJmdW5jdGlvblwiPT10eXBlb2YgdS50eXBlJiZudWxsIT1JW3BdLl9fZSYmSVtwXS5fX2U9PXUuX19kJiYodS5fX2Q9SVtwXS5fX2UubmV4dFNpYmxpbmcpLHEoSVtwXSxJW3BdKSl9ZnVuY3Rpb24gQyhuLGwsdSl7Zm9yKHZhciB0LGk9bi5fX2ssbz0wO2kmJm88aS5sZW5ndGg7bysrKSh0PWlbb10pJiYodC5fXz1uLGw9XCJmdW5jdGlvblwiPT10eXBlb2YgdC50eXBlP0ModCxsLHUpOiQodSx0Ll9fZSxsKSk7cmV0dXJuIGx9ZnVuY3Rpb24gUyhuLGwpe3JldHVybiBsPWx8fFtdLG51bGw9PW58fFwiYm9vbGVhblwiPT10eXBlb2Ygbnx8KGgobik/bi5zb21lKGZ1bmN0aW9uKG4pe1MobixsKX0pOmwucHVzaChuKSksbH1mdW5jdGlvbiAkKG4sbCx1KXtyZXR1cm4gbnVsbD09dXx8dS5wYXJlbnROb2RlIT09bj9uLmluc2VydEJlZm9yZShsLG51bGwpOmw9PXUmJm51bGwhPWwucGFyZW50Tm9kZXx8bi5pbnNlcnRCZWZvcmUobCx1KSxsLm5leHRTaWJsaW5nfWZ1bmN0aW9uIEEobixsLHUsdCl7dmFyIGk9bi5rZXksbz1uLnR5cGUscj11LTEsZj11KzEsZT1sW3VdO2lmKG51bGw9PT1lfHxlJiZpPT1lLmtleSYmbz09PWUudHlwZSlyZXR1cm4gdTtpZih0PihudWxsIT1lPzE6MCkpZm9yKDtyPj0wfHxmPGwubGVuZ3RoOyl7aWYocj49MCl7aWYoKGU9bFtyXSkmJmk9PWUua2V5JiZvPT09ZS50eXBlKXJldHVybiByO3ItLX1pZihmPGwubGVuZ3RoKXtpZigoZT1sW2ZdKSYmaT09ZS5rZXkmJm89PT1lLnR5cGUpcmV0dXJuIGY7ZisrfX1yZXR1cm4tMX1mdW5jdGlvbiBIKG4sbCx1LHQsaSl7dmFyIG87Zm9yKG8gaW4gdSlcImNoaWxkcmVuXCI9PT1vfHxcImtleVwiPT09b3x8byBpbiBsfHxUKG4sbyxudWxsLHVbb10sdCk7Zm9yKG8gaW4gbClpJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBsW29dfHxcImNoaWxkcmVuXCI9PT1vfHxcImtleVwiPT09b3x8XCJ2YWx1ZVwiPT09b3x8XCJjaGVja2VkXCI9PT1vfHx1W29dPT09bFtvXXx8VChuLG8sbFtvXSx1W29dLHQpfWZ1bmN0aW9uIEkobixsLHUpe1wiLVwiPT09bFswXT9uLnNldFByb3BlcnR5KGwsbnVsbD09dT9cIlwiOnUpOm5bbF09bnVsbD09dT9cIlwiOlwibnVtYmVyXCIhPXR5cGVvZiB1fHxhLnRlc3QobCk/dTp1K1wicHhcIn1mdW5jdGlvbiBUKG4sbCx1LHQsaSl7dmFyIG87bjppZihcInN0eWxlXCI9PT1sKWlmKFwic3RyaW5nXCI9PXR5cGVvZiB1KW4uc3R5bGUuY3NzVGV4dD11O2Vsc2V7aWYoXCJzdHJpbmdcIj09dHlwZW9mIHQmJihuLnN0eWxlLmNzc1RleHQ9dD1cIlwiKSx0KWZvcihsIGluIHQpdSYmbCBpbiB1fHxJKG4uc3R5bGUsbCxcIlwiKTtpZih1KWZvcihsIGluIHUpdCYmdVtsXT09PXRbbF18fEkobi5zdHlsZSxsLHVbbF0pfWVsc2UgaWYoXCJvXCI9PT1sWzBdJiZcIm5cIj09PWxbMV0pbz1sIT09KGw9bC5yZXBsYWNlKC9DYXB0dXJlJC8sXCJcIikpLGw9bC50b0xvd2VyQ2FzZSgpaW4gbj9sLnRvTG93ZXJDYXNlKCkuc2xpY2UoMik6bC5zbGljZSgyKSxuLmx8fChuLmw9e30pLG4ubFtsK29dPXUsdT90fHxuLmFkZEV2ZW50TGlzdGVuZXIobCxvP3o6aixvKTpuLnJlbW92ZUV2ZW50TGlzdGVuZXIobCxvP3o6aixvKTtlbHNlIGlmKFwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIiE9PWwpe2lmKGkpbD1sLnJlcGxhY2UoL3hsaW5rKEh8OmgpLyxcImhcIikucmVwbGFjZSgvc05hbWUkLyxcInNcIik7ZWxzZSBpZihcIndpZHRoXCIhPT1sJiZcImhlaWdodFwiIT09bCYmXCJocmVmXCIhPT1sJiZcImxpc3RcIiE9PWwmJlwiZm9ybVwiIT09bCYmXCJ0YWJJbmRleFwiIT09bCYmXCJkb3dubG9hZFwiIT09bCYmXCJyb3dTcGFuXCIhPT1sJiZcImNvbFNwYW5cIiE9PWwmJmwgaW4gbil0cnl7bltsXT1udWxsPT11P1wiXCI6dTticmVhayBufWNhdGNoKG4pe31cImZ1bmN0aW9uXCI9PXR5cGVvZiB1fHwobnVsbD09dXx8ITE9PT11JiZcIi1cIiE9PWxbNF0/bi5yZW1vdmVBdHRyaWJ1dGUobCk6bi5zZXRBdHRyaWJ1dGUobCx1KSl9fWZ1bmN0aW9uIGoobil7cmV0dXJuIHRoaXMubFtuLnR5cGUrITFdKGwuZXZlbnQ/bC5ldmVudChuKTpuKX1mdW5jdGlvbiB6KG4pe3JldHVybiB0aGlzLmxbbi50eXBlKyEwXShsLmV2ZW50P2wuZXZlbnQobik6bil9ZnVuY3Rpb24gTChuLHUsdCxpLG8scixmLGUsYyxzKXt2YXIgYSxwLHksZCxfLGcsbSx3LHgsQyxTLCQsQSxILEksVD11LnR5cGU7aWYodm9pZCAwIT09dS5jb25zdHJ1Y3RvcilyZXR1cm4gbnVsbDtudWxsIT10Ll9faCYmKGM9dC5fX2gsZT11Ll9fZT10Ll9fZSx1Ll9faD1udWxsLHI9W2VdKSwoYT1sLl9fYikmJmEodSk7dHJ5e246aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgVCl7aWYodz11LnByb3BzLHg9KGE9VC5jb250ZXh0VHlwZSkmJmlbYS5fX2NdLEM9YT94P3gucHJvcHMudmFsdWU6YS5fXzppLHQuX19jP209KHA9dS5fX2M9dC5fX2MpLl9fPXAuX19FOihcInByb3RvdHlwZVwiaW4gVCYmVC5wcm90b3R5cGUucmVuZGVyP3UuX19jPXA9bmV3IFQodyxDKToodS5fX2M9cD1uZXcgYih3LEMpLHAuY29uc3RydWN0b3I9VCxwLnJlbmRlcj1CKSx4JiZ4LnN1YihwKSxwLnByb3BzPXcscC5zdGF0ZXx8KHAuc3RhdGU9e30pLHAuY29udGV4dD1DLHAuX19uPWkseT1wLl9fZD0hMCxwLl9faD1bXSxwLl9zYj1bXSksbnVsbD09cC5fX3MmJihwLl9fcz1wLnN0YXRlKSxudWxsIT1ULmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyYmKHAuX19zPT1wLnN0YXRlJiYocC5fX3M9dih7fSxwLl9fcykpLHYocC5fX3MsVC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHModyxwLl9fcykpKSxkPXAucHJvcHMsXz1wLnN0YXRlLHAuX192PXUseSludWxsPT1ULmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyYmbnVsbCE9cC5jb21wb25lbnRXaWxsTW91bnQmJnAuY29tcG9uZW50V2lsbE1vdW50KCksbnVsbCE9cC5jb21wb25lbnREaWRNb3VudCYmcC5fX2gucHVzaChwLmNvbXBvbmVudERpZE1vdW50KTtlbHNle2lmKG51bGw9PVQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzJiZ3IT09ZCYmbnVsbCE9cC5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZwLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHModyxDKSwhcC5fX2UmJihudWxsIT1wLnNob3VsZENvbXBvbmVudFVwZGF0ZSYmITE9PT1wLnNob3VsZENvbXBvbmVudFVwZGF0ZSh3LHAuX19zLEMpfHx1Ll9fdj09PXQuX192KSl7Zm9yKHUuX192IT09dC5fX3YmJihwLnByb3BzPXcscC5zdGF0ZT1wLl9fcyxwLl9fZD0hMSksdS5fX2U9dC5fX2UsdS5fX2s9dC5fX2ssdS5fX2suZm9yRWFjaChmdW5jdGlvbihuKXtuJiYobi5fXz11KX0pLFM9MDtTPHAuX3NiLmxlbmd0aDtTKyspcC5fX2gucHVzaChwLl9zYltTXSk7cC5fc2I9W10scC5fX2gubGVuZ3RoJiZmLnB1c2gocCk7YnJlYWsgbn1udWxsIT1wLmNvbXBvbmVudFdpbGxVcGRhdGUmJnAuY29tcG9uZW50V2lsbFVwZGF0ZSh3LHAuX19zLEMpLG51bGwhPXAuY29tcG9uZW50RGlkVXBkYXRlJiZwLl9faC5wdXNoKGZ1bmN0aW9uKCl7cC5jb21wb25lbnREaWRVcGRhdGUoZCxfLGcpfSl9aWYocC5jb250ZXh0PUMscC5wcm9wcz13LHAuX19QPW4scC5fX2U9ITEsJD1sLl9fcixBPTAsXCJwcm90b3R5cGVcImluIFQmJlQucHJvdG90eXBlLnJlbmRlcil7Zm9yKHAuc3RhdGU9cC5fX3MscC5fX2Q9ITEsJCYmJCh1KSxhPXAucmVuZGVyKHAucHJvcHMscC5zdGF0ZSxwLmNvbnRleHQpLEg9MDtIPHAuX3NiLmxlbmd0aDtIKyspcC5fX2gucHVzaChwLl9zYltIXSk7cC5fc2I9W119ZWxzZSBkb3twLl9fZD0hMSwkJiYkKHUpLGE9cC5yZW5kZXIocC5wcm9wcyxwLnN0YXRlLHAuY29udGV4dCkscC5zdGF0ZT1wLl9fc313aGlsZShwLl9fZCYmKytBPDI1KTtwLnN0YXRlPXAuX19zLG51bGwhPXAuZ2V0Q2hpbGRDb250ZXh0JiYoaT12KHYoe30saSkscC5nZXRDaGlsZENvbnRleHQoKSkpLHl8fG51bGw9PXAuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGV8fChnPXAuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUoZCxfKSksUChuLGgoST1udWxsIT1hJiZhLnR5cGU9PT1rJiZudWxsPT1hLmtleT9hLnByb3BzLmNoaWxkcmVuOmEpP0k6W0ldLHUsdCxpLG8scixmLGUsYyxzKSxwLmJhc2U9dS5fX2UsdS5fX2g9bnVsbCxwLl9faC5sZW5ndGgmJmYucHVzaChwKSxtJiYocC5fX0U9cC5fXz1udWxsKX1lbHNlIG51bGw9PXImJnUuX192PT09dC5fX3Y/KHUuX19rPXQuX19rLHUuX19lPXQuX19lKTp1Ll9fZT1OKHQuX19lLHUsdCxpLG8scixmLGMscyk7KGE9bC5kaWZmZWQpJiZhKHUpfWNhdGNoKG4pe3UuX192PW51bGwsKGN8fG51bGwhPXIpJiYodS5fX2U9ZSx1Ll9faD0hIWMscltyLmluZGV4T2YoZSldPW51bGwpLGwuX19lKG4sdSx0KX19ZnVuY3Rpb24gTShuLHUsdCl7Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKyspTyh0W2ldLHRbKytpXSx0WysraV0pO2wuX19jJiZsLl9fYyh1LG4pLG4uc29tZShmdW5jdGlvbih1KXt0cnl7bj11Ll9faCx1Ll9faD1bXSxuLnNvbWUoZnVuY3Rpb24obil7bi5jYWxsKHUpfSl9Y2F0Y2gobil7bC5fX2Uobix1Ll9fdil9fSl9ZnVuY3Rpb24gTihsLHUsdCxpLG8scixmLGUscyl7dmFyIGEsdix5LGQ9dC5wcm9wcyxfPXUucHJvcHMsaz11LnR5cGUsYj0wO2lmKFwic3ZnXCI9PT1rJiYobz0hMCksbnVsbCE9cilmb3IoO2I8ci5sZW5ndGg7YisrKWlmKChhPXJbYl0pJiZcInNldEF0dHJpYnV0ZVwiaW4gYT09ISFrJiYoaz9hLmxvY2FsTmFtZT09PWs6Mz09PWEubm9kZVR5cGUpKXtsPWEscltiXT1udWxsO2JyZWFrfWlmKG51bGw9PWwpe2lmKG51bGw9PT1rKXJldHVybiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShfKTtsPW8/ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixrKTpkb2N1bWVudC5jcmVhdGVFbGVtZW50KGssXy5pcyYmXykscj1udWxsLGU9ITF9aWYobnVsbD09PWspZD09PV98fGUmJmwuZGF0YT09PV98fChsLmRhdGE9Xyk7ZWxzZXtpZihyPXImJm4uY2FsbChsLmNoaWxkTm9kZXMpLHY9KGQ9dC5wcm9wc3x8YykuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwseT1fLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLCFlKXtpZihudWxsIT1yKWZvcihkPXt9LGI9MDtiPGwuYXR0cmlidXRlcy5sZW5ndGg7YisrKWRbbC5hdHRyaWJ1dGVzW2JdLm5hbWVdPWwuYXR0cmlidXRlc1tiXS52YWx1ZTsoeXx8dikmJih5JiYodiYmeS5fX2h0bWw9PXYuX19odG1sfHx5Ll9faHRtbD09PWwuaW5uZXJIVE1MKXx8KGwuaW5uZXJIVE1MPXkmJnkuX19odG1sfHxcIlwiKSl9aWYoSChsLF8sZCxvLGUpLHkpdS5fX2s9W107ZWxzZSBpZihQKGwsaChiPXUucHJvcHMuY2hpbGRyZW4pP2I6W2JdLHUsdCxpLG8mJlwiZm9yZWlnbk9iamVjdFwiIT09ayxyLGYscj9yWzBdOnQuX19rJiZnKHQsMCksZSxzKSxudWxsIT1yKWZvcihiPXIubGVuZ3RoO2ItLTspbnVsbCE9cltiXSYmcChyW2JdKTtlfHwoXCJ2YWx1ZVwiaW4gXyYmdm9pZCAwIT09KGI9Xy52YWx1ZSkmJihiIT09bC52YWx1ZXx8XCJwcm9ncmVzc1wiPT09ayYmIWJ8fFwib3B0aW9uXCI9PT1rJiZiIT09ZC52YWx1ZSkmJlQobCxcInZhbHVlXCIsYixkLnZhbHVlLCExKSxcImNoZWNrZWRcImluIF8mJnZvaWQgMCE9PShiPV8uY2hlY2tlZCkmJmIhPT1sLmNoZWNrZWQmJlQobCxcImNoZWNrZWRcIixiLGQuY2hlY2tlZCwhMSkpfXJldHVybiBsfWZ1bmN0aW9uIE8obix1LHQpe3RyeXtcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP24odSk6bi5jdXJyZW50PXV9Y2F0Y2gobil7bC5fX2Uobix0KX19ZnVuY3Rpb24gcShuLHUsdCl7dmFyIGksbztpZihsLnVubW91bnQmJmwudW5tb3VudChuKSwoaT1uLnJlZikmJihpLmN1cnJlbnQmJmkuY3VycmVudCE9PW4uX19lfHxPKGksbnVsbCx1KSksbnVsbCE9KGk9bi5fX2MpKXtpZihpLmNvbXBvbmVudFdpbGxVbm1vdW50KXRyeXtpLmNvbXBvbmVudFdpbGxVbm1vdW50KCl9Y2F0Y2gobil7bC5fX2Uobix1KX1pLmJhc2U9aS5fX1A9bnVsbCxuLl9fYz12b2lkIDB9aWYoaT1uLl9faylmb3Iobz0wO288aS5sZW5ndGg7bysrKWlbb10mJnEoaVtvXSx1LHR8fFwiZnVuY3Rpb25cIiE9dHlwZW9mIG4udHlwZSk7dHx8bnVsbD09bi5fX2V8fHAobi5fX2UpLG4uX189bi5fX2U9bi5fX2Q9dm9pZCAwfWZ1bmN0aW9uIEIobixsLHUpe3JldHVybiB0aGlzLmNvbnN0cnVjdG9yKG4sdSl9ZnVuY3Rpb24gRCh1LHQsaSl7dmFyIG8scixmLGU7bC5fXyYmbC5fXyh1LHQpLHI9KG89XCJmdW5jdGlvblwiPT10eXBlb2YgaSk/bnVsbDppJiZpLl9fa3x8dC5fX2ssZj1bXSxlPVtdLEwodCx1PSghbyYmaXx8dCkuX19rPXkoayxudWxsLFt1XSkscnx8YyxjLHZvaWQgMCE9PXQub3duZXJTVkdFbGVtZW50LCFvJiZpP1tpXTpyP251bGw6dC5maXJzdENoaWxkP24uY2FsbCh0LmNoaWxkTm9kZXMpOm51bGwsZiwhbyYmaT9pOnI/ci5fX2U6dC5maXJzdENoaWxkLG8sZSksTShmLHUsZSl9ZnVuY3Rpb24gRShuLGwpe0QobixsLEUpfWZ1bmN0aW9uIEYobCx1LHQpe3ZhciBpLG8scixmLGU9dih7fSxsLnByb3BzKTtmb3IociBpbiBsLnR5cGUmJmwudHlwZS5kZWZhdWx0UHJvcHMmJihmPWwudHlwZS5kZWZhdWx0UHJvcHMpLHUpXCJrZXlcIj09cj9pPXVbcl06XCJyZWZcIj09cj9vPXVbcl06ZVtyXT12b2lkIDA9PT11W3JdJiZ2b2lkIDAhPT1mP2Zbcl06dVtyXTtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4yJiYoZS5jaGlsZHJlbj1hcmd1bWVudHMubGVuZ3RoPjM/bi5jYWxsKGFyZ3VtZW50cywyKTp0KSxkKGwudHlwZSxlLGl8fGwua2V5LG98fGwucmVmLG51bGwpfWZ1bmN0aW9uIEcobixsKXt2YXIgdT17X19jOmw9XCJfX2NDXCIrZSsrLF9fOm4sQ29uc3VtZXI6ZnVuY3Rpb24obixsKXtyZXR1cm4gbi5jaGlsZHJlbihsKX0sUHJvdmlkZXI6ZnVuY3Rpb24obil7dmFyIHUsdDtyZXR1cm4gdGhpcy5nZXRDaGlsZENvbnRleHR8fCh1PVtdLCh0PXt9KVtsXT10aGlzLHRoaXMuZ2V0Q2hpbGRDb250ZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIHR9LHRoaXMuc2hvdWxkQ29tcG9uZW50VXBkYXRlPWZ1bmN0aW9uKG4pe3RoaXMucHJvcHMudmFsdWUhPT1uLnZhbHVlJiZ1LnNvbWUoZnVuY3Rpb24obil7bi5fX2U9ITAsdyhuKX0pfSx0aGlzLnN1Yj1mdW5jdGlvbihuKXt1LnB1c2gobik7dmFyIGw9bi5jb21wb25lbnRXaWxsVW5tb3VudDtuLmNvbXBvbmVudFdpbGxVbm1vdW50PWZ1bmN0aW9uKCl7dS5zcGxpY2UodS5pbmRleE9mKG4pLDEpLGwmJmwuY2FsbChuKX19KSxuLmNoaWxkcmVufX07cmV0dXJuIHUuUHJvdmlkZXIuX189dS5Db25zdW1lci5jb250ZXh0VHlwZT11fW49cy5zbGljZSxsPXtfX2U6ZnVuY3Rpb24obixsLHUsdCl7Zm9yKHZhciBpLG8scjtsPWwuX187KWlmKChpPWwuX19jKSYmIWkuX18pdHJ5e2lmKChvPWkuY29uc3RydWN0b3IpJiZudWxsIT1vLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvciYmKGkuc2V0U3RhdGUoby5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IobikpLHI9aS5fX2QpLG51bGwhPWkuY29tcG9uZW50RGlkQ2F0Y2gmJihpLmNvbXBvbmVudERpZENhdGNoKG4sdHx8e30pLHI9aS5fX2QpLHIpcmV0dXJuIGkuX19FPWl9Y2F0Y2gobCl7bj1sfXRocm93IG59fSx1PTAsdD1mdW5jdGlvbihuKXtyZXR1cm4gbnVsbCE9biYmdm9pZCAwPT09bi5jb25zdHJ1Y3Rvcn0sYi5wcm90b3R5cGUuc2V0U3RhdGU9ZnVuY3Rpb24obixsKXt2YXIgdTt1PW51bGwhPXRoaXMuX19zJiZ0aGlzLl9fcyE9PXRoaXMuc3RhdGU/dGhpcy5fX3M6dGhpcy5fX3M9dih7fSx0aGlzLnN0YXRlKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBuJiYobj1uKHYoe30sdSksdGhpcy5wcm9wcykpLG4mJnYodSxuKSxudWxsIT1uJiZ0aGlzLl9fdiYmKGwmJnRoaXMuX3NiLnB1c2gobCksdyh0aGlzKSl9LGIucHJvdG90eXBlLmZvcmNlVXBkYXRlPWZ1bmN0aW9uKG4pe3RoaXMuX192JiYodGhpcy5fX2U9ITAsbiYmdGhpcy5fX2gucHVzaChuKSx3KHRoaXMpKX0sYi5wcm90b3R5cGUucmVuZGVyPWssaT1bXSxyPVwiZnVuY3Rpb25cIj09dHlwZW9mIFByb21pc2U/UHJvbWlzZS5wcm90b3R5cGUudGhlbi5iaW5kKFByb21pc2UucmVzb2x2ZSgpKTpzZXRUaW1lb3V0LGY9ZnVuY3Rpb24obixsKXtyZXR1cm4gbi5fX3YuX19iLWwuX192Ll9fYn0seC5fX3I9MCxlPTA7ZXhwb3J0e2IgYXMgQ29tcG9uZW50LGsgYXMgRnJhZ21lbnQsRiBhcyBjbG9uZUVsZW1lbnQsRyBhcyBjcmVhdGVDb250ZXh0LHkgYXMgY3JlYXRlRWxlbWVudCxfIGFzIGNyZWF0ZVJlZix5IGFzIGgsRSBhcyBoeWRyYXRlLHQgYXMgaXNWYWxpZEVsZW1lbnQsbCBhcyBvcHRpb25zLEQgYXMgcmVuZGVyLFMgYXMgdG9DaGlsZEFycmF5fTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXByZWFjdC5tb2R1bGUuanMubWFwXG4iLCIvKiEgbm9ibGUtc2VjcDI1NmsxIC0gTUlUIExpY2Vuc2UgKGMpIDIwMTkgUGF1bCBNaWxsZXIgKHBhdWxtaWxsci5jb20pICovXG5pbXBvcnQgKiBhcyBub2RlQ3J5cHRvIGZyb20gJ2NyeXB0byc7XG5jb25zdCBfMG4gPSBCaWdJbnQoMCk7XG5jb25zdCBfMW4gPSBCaWdJbnQoMSk7XG5jb25zdCBfMm4gPSBCaWdJbnQoMik7XG5jb25zdCBfM24gPSBCaWdJbnQoMyk7XG5jb25zdCBfOG4gPSBCaWdJbnQoOCk7XG5jb25zdCBDVVJWRSA9IE9iamVjdC5mcmVlemUoe1xuICAgIGE6IF8wbixcbiAgICBiOiBCaWdJbnQoNyksXG4gICAgUDogQmlnSW50KCcweGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZlZmZmZmZjMmYnKSxcbiAgICBuOiBCaWdJbnQoJzB4ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmViYWFlZGNlNmFmNDhhMDNiYmZkMjVlOGNkMDM2NDE0MScpLFxuICAgIGg6IF8xbixcbiAgICBHeDogQmlnSW50KCc1NTA2NjI2MzAyMjI3NzM0MzY2OTU3ODcxODg5NTE2ODUzNDMyNjI1MDYwMzQ1Mzc3NzU5NDE3NTUwMDE4NzM2MDM4OTExNjcyOTI0MCcpLFxuICAgIEd5OiBCaWdJbnQoJzMyNjcwNTEwMDIwNzU4ODE2OTc4MDgzMDg1MTMwNTA3MDQzMTg0NDcxMjczMzgwNjU5MjQzMjc1OTM4OTA0MzM1NzU3MzM3NDgyNDI0JyksXG4gICAgYmV0YTogQmlnSW50KCcweDdhZTk2YTJiNjU3YzA3MTA2ZTY0NDc5ZWFjMzQzNGU5OWNmMDQ5NzUxMmY1ODk5NWMxMzk2YzI4NzE5NTAxZWUnKSxcbn0pO1xuY29uc3QgZGl2TmVhcmVzdCA9IChhLCBiKSA9PiAoYSArIGIgLyBfMm4pIC8gYjtcbmNvbnN0IGVuZG8gPSB7XG4gICAgYmV0YTogQmlnSW50KCcweDdhZTk2YTJiNjU3YzA3MTA2ZTY0NDc5ZWFjMzQzNGU5OWNmMDQ5NzUxMmY1ODk5NWMxMzk2YzI4NzE5NTAxZWUnKSxcbiAgICBzcGxpdFNjYWxhcihrKSB7XG4gICAgICAgIGNvbnN0IHsgbiB9ID0gQ1VSVkU7XG4gICAgICAgIGNvbnN0IGExID0gQmlnSW50KCcweDMwODZkMjIxYTdkNDZiY2RlODZjOTBlNDkyODRlYjE1Jyk7XG4gICAgICAgIGNvbnN0IGIxID0gLV8xbiAqIEJpZ0ludCgnMHhlNDQzN2VkNjAxMGU4ODI4NmY1NDdmYTkwYWJmZTRjMycpO1xuICAgICAgICBjb25zdCBhMiA9IEJpZ0ludCgnMHgxMTRjYTUwZjdhOGUyZjNmNjU3YzExMDhkOWQ0NGNmZDgnKTtcbiAgICAgICAgY29uc3QgYjIgPSBhMTtcbiAgICAgICAgY29uc3QgUE9XXzJfMTI4ID0gQmlnSW50KCcweDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcpO1xuICAgICAgICBjb25zdCBjMSA9IGRpdk5lYXJlc3QoYjIgKiBrLCBuKTtcbiAgICAgICAgY29uc3QgYzIgPSBkaXZOZWFyZXN0KC1iMSAqIGssIG4pO1xuICAgICAgICBsZXQgazEgPSBtb2QoayAtIGMxICogYTEgLSBjMiAqIGEyLCBuKTtcbiAgICAgICAgbGV0IGsyID0gbW9kKC1jMSAqIGIxIC0gYzIgKiBiMiwgbik7XG4gICAgICAgIGNvbnN0IGsxbmVnID0gazEgPiBQT1dfMl8xMjg7XG4gICAgICAgIGNvbnN0IGsybmVnID0gazIgPiBQT1dfMl8xMjg7XG4gICAgICAgIGlmIChrMW5lZylcbiAgICAgICAgICAgIGsxID0gbiAtIGsxO1xuICAgICAgICBpZiAoazJuZWcpXG4gICAgICAgICAgICBrMiA9IG4gLSBrMjtcbiAgICAgICAgaWYgKGsxID4gUE9XXzJfMTI4IHx8IGsyID4gUE9XXzJfMTI4KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3NwbGl0U2NhbGFyRW5kbzogRW5kb21vcnBoaXNtIGZhaWxlZCwgaz0nICsgayk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgazFuZWcsIGsxLCBrMm5lZywgazIgfTtcbiAgICB9LFxufTtcbmNvbnN0IGZpZWxkTGVuID0gMzI7XG5jb25zdCBncm91cExlbiA9IDMyO1xuY29uc3QgaGFzaExlbiA9IDMyO1xuY29uc3QgY29tcHJlc3NlZExlbiA9IGZpZWxkTGVuICsgMTtcbmNvbnN0IHVuY29tcHJlc3NlZExlbiA9IDIgKiBmaWVsZExlbiArIDE7XG5leHBvcnQgeyBDVVJWRSB9O1xuZnVuY3Rpb24gd2VpZXJzdHJhc3MoeCkge1xuICAgIGNvbnN0IHsgYSwgYiB9ID0gQ1VSVkU7XG4gICAgY29uc3QgeDIgPSBtb2QoeCAqIHgpO1xuICAgIGNvbnN0IHgzID0gbW9kKHgyICogeCk7XG4gICAgcmV0dXJuIG1vZCh4MyArIGEgKiB4ICsgYik7XG59XG5jb25zdCBVU0VfRU5ET01PUlBISVNNID0gQ1VSVkUuYSA9PT0gXzBuO1xuY2xhc3MgU2hhRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IobWVzc2FnZSkge1xuICAgICAgICBzdXBlcihtZXNzYWdlKTtcbiAgICB9XG59XG5mdW5jdGlvbiBhc3NlcnRKYWNQb2ludChvdGhlcikge1xuICAgIGlmICghKG90aGVyIGluc3RhbmNlb2YgSmFjb2JpYW5Qb2ludCkpXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0phY29iaWFuUG9pbnQgZXhwZWN0ZWQnKTtcbn1cbmNsYXNzIEphY29iaWFuUG9pbnQge1xuICAgIGNvbnN0cnVjdG9yKHgsIHksIHopIHtcbiAgICAgICAgdGhpcy54ID0geDtcbiAgICAgICAgdGhpcy55ID0geTtcbiAgICAgICAgdGhpcy56ID0gejtcbiAgICB9XG4gICAgc3RhdGljIGZyb21BZmZpbmUocCkge1xuICAgICAgICBpZiAoIShwIGluc3RhbmNlb2YgUG9pbnQpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdKYWNvYmlhblBvaW50I2Zyb21BZmZpbmU6IGV4cGVjdGVkIFBvaW50Jyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHAuZXF1YWxzKFBvaW50LlpFUk8pKVxuICAgICAgICAgICAgcmV0dXJuIEphY29iaWFuUG9pbnQuWkVSTztcbiAgICAgICAgcmV0dXJuIG5ldyBKYWNvYmlhblBvaW50KHAueCwgcC55LCBfMW4pO1xuICAgIH1cbiAgICBzdGF0aWMgdG9BZmZpbmVCYXRjaChwb2ludHMpIHtcbiAgICAgICAgY29uc3QgdG9JbnYgPSBpbnZlcnRCYXRjaChwb2ludHMubWFwKChwKSA9PiBwLnopKTtcbiAgICAgICAgcmV0dXJuIHBvaW50cy5tYXAoKHAsIGkpID0+IHAudG9BZmZpbmUodG9JbnZbaV0pKTtcbiAgICB9XG4gICAgc3RhdGljIG5vcm1hbGl6ZVoocG9pbnRzKSB7XG4gICAgICAgIHJldHVybiBKYWNvYmlhblBvaW50LnRvQWZmaW5lQmF0Y2gocG9pbnRzKS5tYXAoSmFjb2JpYW5Qb2ludC5mcm9tQWZmaW5lKTtcbiAgICB9XG4gICAgZXF1YWxzKG90aGVyKSB7XG4gICAgICAgIGFzc2VydEphY1BvaW50KG90aGVyKTtcbiAgICAgICAgY29uc3QgeyB4OiBYMSwgeTogWTEsIHo6IFoxIH0gPSB0aGlzO1xuICAgICAgICBjb25zdCB7IHg6IFgyLCB5OiBZMiwgejogWjIgfSA9IG90aGVyO1xuICAgICAgICBjb25zdCBaMVoxID0gbW9kKFoxICogWjEpO1xuICAgICAgICBjb25zdCBaMloyID0gbW9kKFoyICogWjIpO1xuICAgICAgICBjb25zdCBVMSA9IG1vZChYMSAqIFoyWjIpO1xuICAgICAgICBjb25zdCBVMiA9IG1vZChYMiAqIFoxWjEpO1xuICAgICAgICBjb25zdCBTMSA9IG1vZChtb2QoWTEgKiBaMikgKiBaMloyKTtcbiAgICAgICAgY29uc3QgUzIgPSBtb2QobW9kKFkyICogWjEpICogWjFaMSk7XG4gICAgICAgIHJldHVybiBVMSA9PT0gVTIgJiYgUzEgPT09IFMyO1xuICAgIH1cbiAgICBuZWdhdGUoKSB7XG4gICAgICAgIHJldHVybiBuZXcgSmFjb2JpYW5Qb2ludCh0aGlzLngsIG1vZCgtdGhpcy55KSwgdGhpcy56KTtcbiAgICB9XG4gICAgZG91YmxlKCkge1xuICAgICAgICBjb25zdCB7IHg6IFgxLCB5OiBZMSwgejogWjEgfSA9IHRoaXM7XG4gICAgICAgIGNvbnN0IEEgPSBtb2QoWDEgKiBYMSk7XG4gICAgICAgIGNvbnN0IEIgPSBtb2QoWTEgKiBZMSk7XG4gICAgICAgIGNvbnN0IEMgPSBtb2QoQiAqIEIpO1xuICAgICAgICBjb25zdCB4MWIgPSBYMSArIEI7XG4gICAgICAgIGNvbnN0IEQgPSBtb2QoXzJuICogKG1vZCh4MWIgKiB4MWIpIC0gQSAtIEMpKTtcbiAgICAgICAgY29uc3QgRSA9IG1vZChfM24gKiBBKTtcbiAgICAgICAgY29uc3QgRiA9IG1vZChFICogRSk7XG4gICAgICAgIGNvbnN0IFgzID0gbW9kKEYgLSBfMm4gKiBEKTtcbiAgICAgICAgY29uc3QgWTMgPSBtb2QoRSAqIChEIC0gWDMpIC0gXzhuICogQyk7XG4gICAgICAgIGNvbnN0IFozID0gbW9kKF8ybiAqIFkxICogWjEpO1xuICAgICAgICByZXR1cm4gbmV3IEphY29iaWFuUG9pbnQoWDMsIFkzLCBaMyk7XG4gICAgfVxuICAgIGFkZChvdGhlcikge1xuICAgICAgICBhc3NlcnRKYWNQb2ludChvdGhlcik7XG4gICAgICAgIGNvbnN0IHsgeDogWDEsIHk6IFkxLCB6OiBaMSB9ID0gdGhpcztcbiAgICAgICAgY29uc3QgeyB4OiBYMiwgeTogWTIsIHo6IFoyIH0gPSBvdGhlcjtcbiAgICAgICAgaWYgKFgyID09PSBfMG4gfHwgWTIgPT09IF8wbilcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICBpZiAoWDEgPT09IF8wbiB8fCBZMSA9PT0gXzBuKVxuICAgICAgICAgICAgcmV0dXJuIG90aGVyO1xuICAgICAgICBjb25zdCBaMVoxID0gbW9kKFoxICogWjEpO1xuICAgICAgICBjb25zdCBaMloyID0gbW9kKFoyICogWjIpO1xuICAgICAgICBjb25zdCBVMSA9IG1vZChYMSAqIFoyWjIpO1xuICAgICAgICBjb25zdCBVMiA9IG1vZChYMiAqIFoxWjEpO1xuICAgICAgICBjb25zdCBTMSA9IG1vZChtb2QoWTEgKiBaMikgKiBaMloyKTtcbiAgICAgICAgY29uc3QgUzIgPSBtb2QobW9kKFkyICogWjEpICogWjFaMSk7XG4gICAgICAgIGNvbnN0IEggPSBtb2QoVTIgLSBVMSk7XG4gICAgICAgIGNvbnN0IHIgPSBtb2QoUzIgLSBTMSk7XG4gICAgICAgIGlmIChIID09PSBfMG4pIHtcbiAgICAgICAgICAgIGlmIChyID09PSBfMG4pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kb3VibGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBKYWNvYmlhblBvaW50LlpFUk87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgSEggPSBtb2QoSCAqIEgpO1xuICAgICAgICBjb25zdCBISEggPSBtb2QoSCAqIEhIKTtcbiAgICAgICAgY29uc3QgViA9IG1vZChVMSAqIEhIKTtcbiAgICAgICAgY29uc3QgWDMgPSBtb2QociAqIHIgLSBISEggLSBfMm4gKiBWKTtcbiAgICAgICAgY29uc3QgWTMgPSBtb2QociAqIChWIC0gWDMpIC0gUzEgKiBISEgpO1xuICAgICAgICBjb25zdCBaMyA9IG1vZChaMSAqIFoyICogSCk7XG4gICAgICAgIHJldHVybiBuZXcgSmFjb2JpYW5Qb2ludChYMywgWTMsIFozKTtcbiAgICB9XG4gICAgc3VidHJhY3Qob3RoZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkKG90aGVyLm5lZ2F0ZSgpKTtcbiAgICB9XG4gICAgbXVsdGlwbHlVbnNhZmUoc2NhbGFyKSB7XG4gICAgICAgIGNvbnN0IFAwID0gSmFjb2JpYW5Qb2ludC5aRVJPO1xuICAgICAgICBpZiAodHlwZW9mIHNjYWxhciA9PT0gJ2JpZ2ludCcgJiYgc2NhbGFyID09PSBfMG4pXG4gICAgICAgICAgICByZXR1cm4gUDA7XG4gICAgICAgIGxldCBuID0gbm9ybWFsaXplU2NhbGFyKHNjYWxhcik7XG4gICAgICAgIGlmIChuID09PSBfMW4pXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgaWYgKCFVU0VfRU5ET01PUlBISVNNKSB7XG4gICAgICAgICAgICBsZXQgcCA9IFAwO1xuICAgICAgICAgICAgbGV0IGQgPSB0aGlzO1xuICAgICAgICAgICAgd2hpbGUgKG4gPiBfMG4pIHtcbiAgICAgICAgICAgICAgICBpZiAobiAmIF8xbilcbiAgICAgICAgICAgICAgICAgICAgcCA9IHAuYWRkKGQpO1xuICAgICAgICAgICAgICAgIGQgPSBkLmRvdWJsZSgpO1xuICAgICAgICAgICAgICAgIG4gPj49IF8xbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwO1xuICAgICAgICB9XG4gICAgICAgIGxldCB7IGsxbmVnLCBrMSwgazJuZWcsIGsyIH0gPSBlbmRvLnNwbGl0U2NhbGFyKG4pO1xuICAgICAgICBsZXQgazFwID0gUDA7XG4gICAgICAgIGxldCBrMnAgPSBQMDtcbiAgICAgICAgbGV0IGQgPSB0aGlzO1xuICAgICAgICB3aGlsZSAoazEgPiBfMG4gfHwgazIgPiBfMG4pIHtcbiAgICAgICAgICAgIGlmIChrMSAmIF8xbilcbiAgICAgICAgICAgICAgICBrMXAgPSBrMXAuYWRkKGQpO1xuICAgICAgICAgICAgaWYgKGsyICYgXzFuKVxuICAgICAgICAgICAgICAgIGsycCA9IGsycC5hZGQoZCk7XG4gICAgICAgICAgICBkID0gZC5kb3VibGUoKTtcbiAgICAgICAgICAgIGsxID4+PSBfMW47XG4gICAgICAgICAgICBrMiA+Pj0gXzFuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChrMW5lZylcbiAgICAgICAgICAgIGsxcCA9IGsxcC5uZWdhdGUoKTtcbiAgICAgICAgaWYgKGsybmVnKVxuICAgICAgICAgICAgazJwID0gazJwLm5lZ2F0ZSgpO1xuICAgICAgICBrMnAgPSBuZXcgSmFjb2JpYW5Qb2ludChtb2QoazJwLnggKiBlbmRvLmJldGEpLCBrMnAueSwgazJwLnopO1xuICAgICAgICByZXR1cm4gazFwLmFkZChrMnApO1xuICAgIH1cbiAgICBwcmVjb21wdXRlV2luZG93KFcpIHtcbiAgICAgICAgY29uc3Qgd2luZG93cyA9IFVTRV9FTkRPTU9SUEhJU00gPyAxMjggLyBXICsgMSA6IDI1NiAvIFcgKyAxO1xuICAgICAgICBjb25zdCBwb2ludHMgPSBbXTtcbiAgICAgICAgbGV0IHAgPSB0aGlzO1xuICAgICAgICBsZXQgYmFzZSA9IHA7XG4gICAgICAgIGZvciAobGV0IHdpbmRvdyA9IDA7IHdpbmRvdyA8IHdpbmRvd3M7IHdpbmRvdysrKSB7XG4gICAgICAgICAgICBiYXNlID0gcDtcbiAgICAgICAgICAgIHBvaW50cy5wdXNoKGJhc2UpO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCAyICoqIChXIC0gMSk7IGkrKykge1xuICAgICAgICAgICAgICAgIGJhc2UgPSBiYXNlLmFkZChwKTtcbiAgICAgICAgICAgICAgICBwb2ludHMucHVzaChiYXNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHAgPSBiYXNlLmRvdWJsZSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwb2ludHM7XG4gICAgfVxuICAgIHdOQUYobiwgYWZmaW5lUG9pbnQpIHtcbiAgICAgICAgaWYgKCFhZmZpbmVQb2ludCAmJiB0aGlzLmVxdWFscyhKYWNvYmlhblBvaW50LkJBU0UpKVxuICAgICAgICAgICAgYWZmaW5lUG9pbnQgPSBQb2ludC5CQVNFO1xuICAgICAgICBjb25zdCBXID0gKGFmZmluZVBvaW50ICYmIGFmZmluZVBvaW50Ll9XSU5ET1dfU0laRSkgfHwgMTtcbiAgICAgICAgaWYgKDI1NiAlIFcpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUG9pbnQjd05BRjogSW52YWxpZCBwcmVjb21wdXRhdGlvbiB3aW5kb3csIG11c3QgYmUgcG93ZXIgb2YgMicpO1xuICAgICAgICB9XG4gICAgICAgIGxldCBwcmVjb21wdXRlcyA9IGFmZmluZVBvaW50ICYmIHBvaW50UHJlY29tcHV0ZXMuZ2V0KGFmZmluZVBvaW50KTtcbiAgICAgICAgaWYgKCFwcmVjb21wdXRlcykge1xuICAgICAgICAgICAgcHJlY29tcHV0ZXMgPSB0aGlzLnByZWNvbXB1dGVXaW5kb3coVyk7XG4gICAgICAgICAgICBpZiAoYWZmaW5lUG9pbnQgJiYgVyAhPT0gMSkge1xuICAgICAgICAgICAgICAgIHByZWNvbXB1dGVzID0gSmFjb2JpYW5Qb2ludC5ub3JtYWxpemVaKHByZWNvbXB1dGVzKTtcbiAgICAgICAgICAgICAgICBwb2ludFByZWNvbXB1dGVzLnNldChhZmZpbmVQb2ludCwgcHJlY29tcHV0ZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGxldCBwID0gSmFjb2JpYW5Qb2ludC5aRVJPO1xuICAgICAgICBsZXQgZiA9IEphY29iaWFuUG9pbnQuQkFTRTtcbiAgICAgICAgY29uc3Qgd2luZG93cyA9IDEgKyAoVVNFX0VORE9NT1JQSElTTSA/IDEyOCAvIFcgOiAyNTYgLyBXKTtcbiAgICAgICAgY29uc3Qgd2luZG93U2l6ZSA9IDIgKiogKFcgLSAxKTtcbiAgICAgICAgY29uc3QgbWFzayA9IEJpZ0ludCgyICoqIFcgLSAxKTtcbiAgICAgICAgY29uc3QgbWF4TnVtYmVyID0gMiAqKiBXO1xuICAgICAgICBjb25zdCBzaGlmdEJ5ID0gQmlnSW50KFcpO1xuICAgICAgICBmb3IgKGxldCB3aW5kb3cgPSAwOyB3aW5kb3cgPCB3aW5kb3dzOyB3aW5kb3crKykge1xuICAgICAgICAgICAgY29uc3Qgb2Zmc2V0ID0gd2luZG93ICogd2luZG93U2l6ZTtcbiAgICAgICAgICAgIGxldCB3Yml0cyA9IE51bWJlcihuICYgbWFzayk7XG4gICAgICAgICAgICBuID4+PSBzaGlmdEJ5O1xuICAgICAgICAgICAgaWYgKHdiaXRzID4gd2luZG93U2l6ZSkge1xuICAgICAgICAgICAgICAgIHdiaXRzIC09IG1heE51bWJlcjtcbiAgICAgICAgICAgICAgICBuICs9IF8xbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG9mZnNldDEgPSBvZmZzZXQ7XG4gICAgICAgICAgICBjb25zdCBvZmZzZXQyID0gb2Zmc2V0ICsgTWF0aC5hYnMod2JpdHMpIC0gMTtcbiAgICAgICAgICAgIGNvbnN0IGNvbmQxID0gd2luZG93ICUgMiAhPT0gMDtcbiAgICAgICAgICAgIGNvbnN0IGNvbmQyID0gd2JpdHMgPCAwO1xuICAgICAgICAgICAgaWYgKHdiaXRzID09PSAwKSB7XG4gICAgICAgICAgICAgICAgZiA9IGYuYWRkKGNvbnN0VGltZU5lZ2F0ZShjb25kMSwgcHJlY29tcHV0ZXNbb2Zmc2V0MV0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHAgPSBwLmFkZChjb25zdFRpbWVOZWdhdGUoY29uZDIsIHByZWNvbXB1dGVzW29mZnNldDJdKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgcCwgZiB9O1xuICAgIH1cbiAgICBtdWx0aXBseShzY2FsYXIsIGFmZmluZVBvaW50KSB7XG4gICAgICAgIGxldCBuID0gbm9ybWFsaXplU2NhbGFyKHNjYWxhcik7XG4gICAgICAgIGxldCBwb2ludDtcbiAgICAgICAgbGV0IGZha2U7XG4gICAgICAgIGlmIChVU0VfRU5ET01PUlBISVNNKSB7XG4gICAgICAgICAgICBjb25zdCB7IGsxbmVnLCBrMSwgazJuZWcsIGsyIH0gPSBlbmRvLnNwbGl0U2NhbGFyKG4pO1xuICAgICAgICAgICAgbGV0IHsgcDogazFwLCBmOiBmMXAgfSA9IHRoaXMud05BRihrMSwgYWZmaW5lUG9pbnQpO1xuICAgICAgICAgICAgbGV0IHsgcDogazJwLCBmOiBmMnAgfSA9IHRoaXMud05BRihrMiwgYWZmaW5lUG9pbnQpO1xuICAgICAgICAgICAgazFwID0gY29uc3RUaW1lTmVnYXRlKGsxbmVnLCBrMXApO1xuICAgICAgICAgICAgazJwID0gY29uc3RUaW1lTmVnYXRlKGsybmVnLCBrMnApO1xuICAgICAgICAgICAgazJwID0gbmV3IEphY29iaWFuUG9pbnQobW9kKGsycC54ICogZW5kby5iZXRhKSwgazJwLnksIGsycC56KTtcbiAgICAgICAgICAgIHBvaW50ID0gazFwLmFkZChrMnApO1xuICAgICAgICAgICAgZmFrZSA9IGYxcC5hZGQoZjJwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHsgcCwgZiB9ID0gdGhpcy53TkFGKG4sIGFmZmluZVBvaW50KTtcbiAgICAgICAgICAgIHBvaW50ID0gcDtcbiAgICAgICAgICAgIGZha2UgPSBmO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBKYWNvYmlhblBvaW50Lm5vcm1hbGl6ZVooW3BvaW50LCBmYWtlXSlbMF07XG4gICAgfVxuICAgIHRvQWZmaW5lKGludlopIHtcbiAgICAgICAgY29uc3QgeyB4LCB5LCB6IH0gPSB0aGlzO1xuICAgICAgICBjb25zdCBpczAgPSB0aGlzLmVxdWFscyhKYWNvYmlhblBvaW50LlpFUk8pO1xuICAgICAgICBpZiAoaW52WiA9PSBudWxsKVxuICAgICAgICAgICAgaW52WiA9IGlzMCA/IF84biA6IGludmVydCh6KTtcbiAgICAgICAgY29uc3QgaXoxID0gaW52WjtcbiAgICAgICAgY29uc3QgaXoyID0gbW9kKGl6MSAqIGl6MSk7XG4gICAgICAgIGNvbnN0IGl6MyA9IG1vZChpejIgKiBpejEpO1xuICAgICAgICBjb25zdCBheCA9IG1vZCh4ICogaXoyKTtcbiAgICAgICAgY29uc3QgYXkgPSBtb2QoeSAqIGl6Myk7XG4gICAgICAgIGNvbnN0IHp6ID0gbW9kKHogKiBpejEpO1xuICAgICAgICBpZiAoaXMwKVxuICAgICAgICAgICAgcmV0dXJuIFBvaW50LlpFUk87XG4gICAgICAgIGlmICh6eiAhPT0gXzFuKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZaIHdhcyBpbnZhbGlkJyk7XG4gICAgICAgIHJldHVybiBuZXcgUG9pbnQoYXgsIGF5KTtcbiAgICB9XG59XG5KYWNvYmlhblBvaW50LkJBU0UgPSBuZXcgSmFjb2JpYW5Qb2ludChDVVJWRS5HeCwgQ1VSVkUuR3ksIF8xbik7XG5KYWNvYmlhblBvaW50LlpFUk8gPSBuZXcgSmFjb2JpYW5Qb2ludChfMG4sIF8xbiwgXzBuKTtcbmZ1bmN0aW9uIGNvbnN0VGltZU5lZ2F0ZShjb25kaXRpb24sIGl0ZW0pIHtcbiAgICBjb25zdCBuZWcgPSBpdGVtLm5lZ2F0ZSgpO1xuICAgIHJldHVybiBjb25kaXRpb24gPyBuZWcgOiBpdGVtO1xufVxuY29uc3QgcG9pbnRQcmVjb21wdXRlcyA9IG5ldyBXZWFrTWFwKCk7XG5leHBvcnQgY2xhc3MgUG9pbnQge1xuICAgIGNvbnN0cnVjdG9yKHgsIHkpIHtcbiAgICAgICAgdGhpcy54ID0geDtcbiAgICAgICAgdGhpcy55ID0geTtcbiAgICB9XG4gICAgX3NldFdpbmRvd1NpemUod2luZG93U2l6ZSkge1xuICAgICAgICB0aGlzLl9XSU5ET1dfU0laRSA9IHdpbmRvd1NpemU7XG4gICAgICAgIHBvaW50UHJlY29tcHV0ZXMuZGVsZXRlKHRoaXMpO1xuICAgIH1cbiAgICBoYXNFdmVuWSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMueSAlIF8ybiA9PT0gXzBuO1xuICAgIH1cbiAgICBzdGF0aWMgZnJvbUNvbXByZXNzZWRIZXgoYnl0ZXMpIHtcbiAgICAgICAgY29uc3QgaXNTaG9ydCA9IGJ5dGVzLmxlbmd0aCA9PT0gMzI7XG4gICAgICAgIGNvbnN0IHggPSBieXRlc1RvTnVtYmVyKGlzU2hvcnQgPyBieXRlcyA6IGJ5dGVzLnN1YmFycmF5KDEpKTtcbiAgICAgICAgaWYgKCFpc1ZhbGlkRmllbGRFbGVtZW50KHgpKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdQb2ludCBpcyBub3Qgb24gY3VydmUnKTtcbiAgICAgICAgY29uc3QgeTIgPSB3ZWllcnN0cmFzcyh4KTtcbiAgICAgICAgbGV0IHkgPSBzcXJ0TW9kKHkyKTtcbiAgICAgICAgY29uc3QgaXNZT2RkID0gKHkgJiBfMW4pID09PSBfMW47XG4gICAgICAgIGlmIChpc1Nob3J0KSB7XG4gICAgICAgICAgICBpZiAoaXNZT2RkKVxuICAgICAgICAgICAgICAgIHkgPSBtb2QoLXkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgaXNGaXJzdEJ5dGVPZGQgPSAoYnl0ZXNbMF0gJiAxKSA9PT0gMTtcbiAgICAgICAgICAgIGlmIChpc0ZpcnN0Qnl0ZU9kZCAhPT0gaXNZT2RkKVxuICAgICAgICAgICAgICAgIHkgPSBtb2QoLXkpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBvaW50ID0gbmV3IFBvaW50KHgsIHkpO1xuICAgICAgICBwb2ludC5hc3NlcnRWYWxpZGl0eSgpO1xuICAgICAgICByZXR1cm4gcG9pbnQ7XG4gICAgfVxuICAgIHN0YXRpYyBmcm9tVW5jb21wcmVzc2VkSGV4KGJ5dGVzKSB7XG4gICAgICAgIGNvbnN0IHggPSBieXRlc1RvTnVtYmVyKGJ5dGVzLnN1YmFycmF5KDEsIGZpZWxkTGVuICsgMSkpO1xuICAgICAgICBjb25zdCB5ID0gYnl0ZXNUb051bWJlcihieXRlcy5zdWJhcnJheShmaWVsZExlbiArIDEsIGZpZWxkTGVuICogMiArIDEpKTtcbiAgICAgICAgY29uc3QgcG9pbnQgPSBuZXcgUG9pbnQoeCwgeSk7XG4gICAgICAgIHBvaW50LmFzc2VydFZhbGlkaXR5KCk7XG4gICAgICAgIHJldHVybiBwb2ludDtcbiAgICB9XG4gICAgc3RhdGljIGZyb21IZXgoaGV4KSB7XG4gICAgICAgIGNvbnN0IGJ5dGVzID0gZW5zdXJlQnl0ZXMoaGV4KTtcbiAgICAgICAgY29uc3QgbGVuID0gYnl0ZXMubGVuZ3RoO1xuICAgICAgICBjb25zdCBoZWFkZXIgPSBieXRlc1swXTtcbiAgICAgICAgaWYgKGxlbiA9PT0gZmllbGRMZW4pXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mcm9tQ29tcHJlc3NlZEhleChieXRlcyk7XG4gICAgICAgIGlmIChsZW4gPT09IGNvbXByZXNzZWRMZW4gJiYgKGhlYWRlciA9PT0gMHgwMiB8fCBoZWFkZXIgPT09IDB4MDMpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mcm9tQ29tcHJlc3NlZEhleChieXRlcyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxlbiA9PT0gdW5jb21wcmVzc2VkTGVuICYmIGhlYWRlciA9PT0gMHgwNClcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZyb21VbmNvbXByZXNzZWRIZXgoYnl0ZXMpO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBvaW50LmZyb21IZXg6IHJlY2VpdmVkIGludmFsaWQgcG9pbnQuIEV4cGVjdGVkIDMyLSR7Y29tcHJlc3NlZExlbn0gY29tcHJlc3NlZCBieXRlcyBvciAke3VuY29tcHJlc3NlZExlbn0gdW5jb21wcmVzc2VkIGJ5dGVzLCBub3QgJHtsZW59YCk7XG4gICAgfVxuICAgIHN0YXRpYyBmcm9tUHJpdmF0ZUtleShwcml2YXRlS2V5KSB7XG4gICAgICAgIHJldHVybiBQb2ludC5CQVNFLm11bHRpcGx5KG5vcm1hbGl6ZVByaXZhdGVLZXkocHJpdmF0ZUtleSkpO1xuICAgIH1cbiAgICBzdGF0aWMgZnJvbVNpZ25hdHVyZShtc2dIYXNoLCBzaWduYXR1cmUsIHJlY292ZXJ5KSB7XG4gICAgICAgIGNvbnN0IHsgciwgcyB9ID0gbm9ybWFsaXplU2lnbmF0dXJlKHNpZ25hdHVyZSk7XG4gICAgICAgIGlmICghWzAsIDEsIDIsIDNdLmluY2x1ZGVzKHJlY292ZXJ5KSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHJlY292ZXI6IGludmFsaWQgcmVjb3ZlcnkgYml0Jyk7XG4gICAgICAgIGNvbnN0IGggPSB0cnVuY2F0ZUhhc2goZW5zdXJlQnl0ZXMobXNnSGFzaCkpO1xuICAgICAgICBjb25zdCB7IG4gfSA9IENVUlZFO1xuICAgICAgICBjb25zdCByYWRqID0gcmVjb3ZlcnkgPT09IDIgfHwgcmVjb3ZlcnkgPT09IDMgPyByICsgbiA6IHI7XG4gICAgICAgIGNvbnN0IHJpbnYgPSBpbnZlcnQocmFkaiwgbik7XG4gICAgICAgIGNvbnN0IHUxID0gbW9kKC1oICogcmludiwgbik7XG4gICAgICAgIGNvbnN0IHUyID0gbW9kKHMgKiByaW52LCBuKTtcbiAgICAgICAgY29uc3QgcHJlZml4ID0gcmVjb3ZlcnkgJiAxID8gJzAzJyA6ICcwMic7XG4gICAgICAgIGNvbnN0IFIgPSBQb2ludC5mcm9tSGV4KHByZWZpeCArIG51bVRvMzJiU3RyKHJhZGopKTtcbiAgICAgICAgY29uc3QgUSA9IFBvaW50LkJBU0UubXVsdGlwbHlBbmRBZGRVbnNhZmUoUiwgdTEsIHUyKTtcbiAgICAgICAgaWYgKCFRKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgcmVjb3ZlciBzaWduYXR1cmU6IHBvaW50IGF0IGluZmluaWZ5Jyk7XG4gICAgICAgIFEuYXNzZXJ0VmFsaWRpdHkoKTtcbiAgICAgICAgcmV0dXJuIFE7XG4gICAgfVxuICAgIHRvUmF3Qnl0ZXMoaXNDb21wcmVzc2VkID0gZmFsc2UpIHtcbiAgICAgICAgcmV0dXJuIGhleFRvQnl0ZXModGhpcy50b0hleChpc0NvbXByZXNzZWQpKTtcbiAgICB9XG4gICAgdG9IZXgoaXNDb21wcmVzc2VkID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgeCA9IG51bVRvMzJiU3RyKHRoaXMueCk7XG4gICAgICAgIGlmIChpc0NvbXByZXNzZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHByZWZpeCA9IHRoaXMuaGFzRXZlblkoKSA/ICcwMicgOiAnMDMnO1xuICAgICAgICAgICAgcmV0dXJuIGAke3ByZWZpeH0ke3h9YDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBgMDQke3h9JHtudW1UbzMyYlN0cih0aGlzLnkpfWA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdG9IZXhYKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50b0hleCh0cnVlKS5zbGljZSgyKTtcbiAgICB9XG4gICAgdG9SYXdYKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50b1Jhd0J5dGVzKHRydWUpLnNsaWNlKDEpO1xuICAgIH1cbiAgICBhc3NlcnRWYWxpZGl0eSgpIHtcbiAgICAgICAgY29uc3QgbXNnID0gJ1BvaW50IGlzIG5vdCBvbiBlbGxpcHRpYyBjdXJ2ZSc7XG4gICAgICAgIGNvbnN0IHsgeCwgeSB9ID0gdGhpcztcbiAgICAgICAgaWYgKCFpc1ZhbGlkRmllbGRFbGVtZW50KHgpIHx8ICFpc1ZhbGlkRmllbGRFbGVtZW50KHkpKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1zZyk7XG4gICAgICAgIGNvbnN0IGxlZnQgPSBtb2QoeSAqIHkpO1xuICAgICAgICBjb25zdCByaWdodCA9IHdlaWVyc3RyYXNzKHgpO1xuICAgICAgICBpZiAobW9kKGxlZnQgLSByaWdodCkgIT09IF8wbilcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihtc2cpO1xuICAgIH1cbiAgICBlcXVhbHMob3RoZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMueCA9PT0gb3RoZXIueCAmJiB0aGlzLnkgPT09IG90aGVyLnk7XG4gICAgfVxuICAgIG5lZ2F0ZSgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQb2ludCh0aGlzLngsIG1vZCgtdGhpcy55KSk7XG4gICAgfVxuICAgIGRvdWJsZSgpIHtcbiAgICAgICAgcmV0dXJuIEphY29iaWFuUG9pbnQuZnJvbUFmZmluZSh0aGlzKS5kb3VibGUoKS50b0FmZmluZSgpO1xuICAgIH1cbiAgICBhZGQob3RoZXIpIHtcbiAgICAgICAgcmV0dXJuIEphY29iaWFuUG9pbnQuZnJvbUFmZmluZSh0aGlzKS5hZGQoSmFjb2JpYW5Qb2ludC5mcm9tQWZmaW5lKG90aGVyKSkudG9BZmZpbmUoKTtcbiAgICB9XG4gICAgc3VidHJhY3Qob3RoZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkKG90aGVyLm5lZ2F0ZSgpKTtcbiAgICB9XG4gICAgbXVsdGlwbHkoc2NhbGFyKSB7XG4gICAgICAgIHJldHVybiBKYWNvYmlhblBvaW50LmZyb21BZmZpbmUodGhpcykubXVsdGlwbHkoc2NhbGFyLCB0aGlzKS50b0FmZmluZSgpO1xuICAgIH1cbiAgICBtdWx0aXBseUFuZEFkZFVuc2FmZShRLCBhLCBiKSB7XG4gICAgICAgIGNvbnN0IFAgPSBKYWNvYmlhblBvaW50LmZyb21BZmZpbmUodGhpcyk7XG4gICAgICAgIGNvbnN0IGFQID0gYSA9PT0gXzBuIHx8IGEgPT09IF8xbiB8fCB0aGlzICE9PSBQb2ludC5CQVNFID8gUC5tdWx0aXBseVVuc2FmZShhKSA6IFAubXVsdGlwbHkoYSk7XG4gICAgICAgIGNvbnN0IGJRID0gSmFjb2JpYW5Qb2ludC5mcm9tQWZmaW5lKFEpLm11bHRpcGx5VW5zYWZlKGIpO1xuICAgICAgICBjb25zdCBzdW0gPSBhUC5hZGQoYlEpO1xuICAgICAgICByZXR1cm4gc3VtLmVxdWFscyhKYWNvYmlhblBvaW50LlpFUk8pID8gdW5kZWZpbmVkIDogc3VtLnRvQWZmaW5lKCk7XG4gICAgfVxufVxuUG9pbnQuQkFTRSA9IG5ldyBQb2ludChDVVJWRS5HeCwgQ1VSVkUuR3kpO1xuUG9pbnQuWkVSTyA9IG5ldyBQb2ludChfMG4sIF8wbik7XG5mdW5jdGlvbiBzbGljZURFUihzKSB7XG4gICAgcmV0dXJuIE51bWJlci5wYXJzZUludChzWzBdLCAxNikgPj0gOCA/ICcwMCcgKyBzIDogcztcbn1cbmZ1bmN0aW9uIHBhcnNlREVSSW50KGRhdGEpIHtcbiAgICBpZiAoZGF0YS5sZW5ndGggPCAyIHx8IGRhdGFbMF0gIT09IDB4MDIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHNpZ25hdHVyZSBpbnRlZ2VyIHRhZzogJHtieXRlc1RvSGV4KGRhdGEpfWApO1xuICAgIH1cbiAgICBjb25zdCBsZW4gPSBkYXRhWzFdO1xuICAgIGNvbnN0IHJlcyA9IGRhdGEuc3ViYXJyYXkoMiwgbGVuICsgMik7XG4gICAgaWYgKCFsZW4gfHwgcmVzLmxlbmd0aCAhPT0gbGVuKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzaWduYXR1cmUgaW50ZWdlcjogd3JvbmcgbGVuZ3RoYCk7XG4gICAgfVxuICAgIGlmIChyZXNbMF0gPT09IDB4MDAgJiYgcmVzWzFdIDw9IDB4N2YpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHNpZ25hdHVyZSBpbnRlZ2VyOiB0cmFpbGluZyBsZW5ndGgnKTtcbiAgICB9XG4gICAgcmV0dXJuIHsgZGF0YTogYnl0ZXNUb051bWJlcihyZXMpLCBsZWZ0OiBkYXRhLnN1YmFycmF5KGxlbiArIDIpIH07XG59XG5mdW5jdGlvbiBwYXJzZURFUlNpZ25hdHVyZShkYXRhKSB7XG4gICAgaWYgKGRhdGEubGVuZ3RoIDwgMiB8fCBkYXRhWzBdICE9IDB4MzApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHNpZ25hdHVyZSB0YWc6ICR7Ynl0ZXNUb0hleChkYXRhKX1gKTtcbiAgICB9XG4gICAgaWYgKGRhdGFbMV0gIT09IGRhdGEubGVuZ3RoIC0gMikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgc2lnbmF0dXJlOiBpbmNvcnJlY3QgbGVuZ3RoJyk7XG4gICAgfVxuICAgIGNvbnN0IHsgZGF0YTogciwgbGVmdDogc0J5dGVzIH0gPSBwYXJzZURFUkludChkYXRhLnN1YmFycmF5KDIpKTtcbiAgICBjb25zdCB7IGRhdGE6IHMsIGxlZnQ6IHJCeXRlc0xlZnQgfSA9IHBhcnNlREVSSW50KHNCeXRlcyk7XG4gICAgaWYgKHJCeXRlc0xlZnQubGVuZ3RoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzaWduYXR1cmU6IGxlZnQgYnl0ZXMgYWZ0ZXIgcGFyc2luZzogJHtieXRlc1RvSGV4KHJCeXRlc0xlZnQpfWApO1xuICAgIH1cbiAgICByZXR1cm4geyByLCBzIH07XG59XG5leHBvcnQgY2xhc3MgU2lnbmF0dXJlIHtcbiAgICBjb25zdHJ1Y3RvcihyLCBzKSB7XG4gICAgICAgIHRoaXMuciA9IHI7XG4gICAgICAgIHRoaXMucyA9IHM7XG4gICAgICAgIHRoaXMuYXNzZXJ0VmFsaWRpdHkoKTtcbiAgICB9XG4gICAgc3RhdGljIGZyb21Db21wYWN0KGhleCkge1xuICAgICAgICBjb25zdCBhcnIgPSBoZXggaW5zdGFuY2VvZiBVaW50OEFycmF5O1xuICAgICAgICBjb25zdCBuYW1lID0gJ1NpZ25hdHVyZS5mcm9tQ29tcGFjdCc7XG4gICAgICAgIGlmICh0eXBlb2YgaGV4ICE9PSAnc3RyaW5nJyAmJiAhYXJyKVxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgJHtuYW1lfTogRXhwZWN0ZWQgc3RyaW5nIG9yIFVpbnQ4QXJyYXlgKTtcbiAgICAgICAgY29uc3Qgc3RyID0gYXJyID8gYnl0ZXNUb0hleChoZXgpIDogaGV4O1xuICAgICAgICBpZiAoc3RyLmxlbmd0aCAhPT0gMTI4KVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke25hbWV9OiBFeHBlY3RlZCA2NC1ieXRlIGhleGApO1xuICAgICAgICByZXR1cm4gbmV3IFNpZ25hdHVyZShoZXhUb051bWJlcihzdHIuc2xpY2UoMCwgNjQpKSwgaGV4VG9OdW1iZXIoc3RyLnNsaWNlKDY0LCAxMjgpKSk7XG4gICAgfVxuICAgIHN0YXRpYyBmcm9tREVSKGhleCkge1xuICAgICAgICBjb25zdCBhcnIgPSBoZXggaW5zdGFuY2VvZiBVaW50OEFycmF5O1xuICAgICAgICBpZiAodHlwZW9mIGhleCAhPT0gJ3N0cmluZycgJiYgIWFycilcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYFNpZ25hdHVyZS5mcm9tREVSOiBFeHBlY3RlZCBzdHJpbmcgb3IgVWludDhBcnJheWApO1xuICAgICAgICBjb25zdCB7IHIsIHMgfSA9IHBhcnNlREVSU2lnbmF0dXJlKGFyciA/IGhleCA6IGhleFRvQnl0ZXMoaGV4KSk7XG4gICAgICAgIHJldHVybiBuZXcgU2lnbmF0dXJlKHIsIHMpO1xuICAgIH1cbiAgICBzdGF0aWMgZnJvbUhleChoZXgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZnJvbURFUihoZXgpO1xuICAgIH1cbiAgICBhc3NlcnRWYWxpZGl0eSgpIHtcbiAgICAgICAgY29uc3QgeyByLCBzIH0gPSB0aGlzO1xuICAgICAgICBpZiAoIWlzV2l0aGluQ3VydmVPcmRlcihyKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBTaWduYXR1cmU6IHIgbXVzdCBiZSAwIDwgciA8IG4nKTtcbiAgICAgICAgaWYgKCFpc1dpdGhpbkN1cnZlT3JkZXIocykpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgU2lnbmF0dXJlOiBzIG11c3QgYmUgMCA8IHMgPCBuJyk7XG4gICAgfVxuICAgIGhhc0hpZ2hTKCkge1xuICAgICAgICBjb25zdCBIQUxGID0gQ1VSVkUubiA+PiBfMW47XG4gICAgICAgIHJldHVybiB0aGlzLnMgPiBIQUxGO1xuICAgIH1cbiAgICBub3JtYWxpemVTKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNIaWdoUygpID8gbmV3IFNpZ25hdHVyZSh0aGlzLnIsIG1vZCgtdGhpcy5zLCBDVVJWRS5uKSkgOiB0aGlzO1xuICAgIH1cbiAgICB0b0RFUlJhd0J5dGVzKCkge1xuICAgICAgICByZXR1cm4gaGV4VG9CeXRlcyh0aGlzLnRvREVSSGV4KCkpO1xuICAgIH1cbiAgICB0b0RFUkhleCgpIHtcbiAgICAgICAgY29uc3Qgc0hleCA9IHNsaWNlREVSKG51bWJlclRvSGV4VW5wYWRkZWQodGhpcy5zKSk7XG4gICAgICAgIGNvbnN0IHJIZXggPSBzbGljZURFUihudW1iZXJUb0hleFVucGFkZGVkKHRoaXMucikpO1xuICAgICAgICBjb25zdCBzSGV4TCA9IHNIZXgubGVuZ3RoIC8gMjtcbiAgICAgICAgY29uc3QgckhleEwgPSBySGV4Lmxlbmd0aCAvIDI7XG4gICAgICAgIGNvbnN0IHNMZW4gPSBudW1iZXJUb0hleFVucGFkZGVkKHNIZXhMKTtcbiAgICAgICAgY29uc3QgckxlbiA9IG51bWJlclRvSGV4VW5wYWRkZWQockhleEwpO1xuICAgICAgICBjb25zdCBsZW5ndGggPSBudW1iZXJUb0hleFVucGFkZGVkKHJIZXhMICsgc0hleEwgKyA0KTtcbiAgICAgICAgcmV0dXJuIGAzMCR7bGVuZ3RofTAyJHtyTGVufSR7ckhleH0wMiR7c0xlbn0ke3NIZXh9YDtcbiAgICB9XG4gICAgdG9SYXdCeXRlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9ERVJSYXdCeXRlcygpO1xuICAgIH1cbiAgICB0b0hleCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9ERVJIZXgoKTtcbiAgICB9XG4gICAgdG9Db21wYWN0UmF3Qnl0ZXMoKSB7XG4gICAgICAgIHJldHVybiBoZXhUb0J5dGVzKHRoaXMudG9Db21wYWN0SGV4KCkpO1xuICAgIH1cbiAgICB0b0NvbXBhY3RIZXgoKSB7XG4gICAgICAgIHJldHVybiBudW1UbzMyYlN0cih0aGlzLnIpICsgbnVtVG8zMmJTdHIodGhpcy5zKTtcbiAgICB9XG59XG5mdW5jdGlvbiBjb25jYXRCeXRlcyguLi5hcnJheXMpIHtcbiAgICBpZiAoIWFycmF5cy5ldmVyeSgoYikgPT4gYiBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VpbnQ4QXJyYXkgbGlzdCBleHBlY3RlZCcpO1xuICAgIGlmIChhcnJheXMubGVuZ3RoID09PSAxKVxuICAgICAgICByZXR1cm4gYXJyYXlzWzBdO1xuICAgIGNvbnN0IGxlbmd0aCA9IGFycmF5cy5yZWR1Y2UoKGEsIGFycikgPT4gYSArIGFyci5sZW5ndGgsIDApO1xuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBVaW50OEFycmF5KGxlbmd0aCk7XG4gICAgZm9yIChsZXQgaSA9IDAsIHBhZCA9IDA7IGkgPCBhcnJheXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgYXJyID0gYXJyYXlzW2ldO1xuICAgICAgICByZXN1bHQuc2V0KGFyciwgcGFkKTtcbiAgICAgICAgcGFkICs9IGFyci5sZW5ndGg7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5jb25zdCBoZXhlcyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDI1NiB9LCAodiwgaSkgPT4gaS50b1N0cmluZygxNikucGFkU3RhcnQoMiwgJzAnKSk7XG5mdW5jdGlvbiBieXRlc1RvSGV4KHVpbnQ4YSkge1xuICAgIGlmICghKHVpbnQ4YSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIFVpbnQ4QXJyYXknKTtcbiAgICBsZXQgaGV4ID0gJyc7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB1aW50OGEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaGV4ICs9IGhleGVzW3VpbnQ4YVtpXV07XG4gICAgfVxuICAgIHJldHVybiBoZXg7XG59XG5jb25zdCBQT1dfMl8yNTYgPSBCaWdJbnQoJzB4MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnKTtcbmZ1bmN0aW9uIG51bVRvMzJiU3RyKG51bSkge1xuICAgIGlmICh0eXBlb2YgbnVtICE9PSAnYmlnaW50JylcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBiaWdpbnQnKTtcbiAgICBpZiAoIShfMG4gPD0gbnVtICYmIG51bSA8IFBPV18yXzI1NikpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgbnVtYmVyIDAgPD0gbiA8IDJeMjU2Jyk7XG4gICAgcmV0dXJuIG51bS50b1N0cmluZygxNikucGFkU3RhcnQoNjQsICcwJyk7XG59XG5mdW5jdGlvbiBudW1UbzMyYihudW0pIHtcbiAgICBjb25zdCBiID0gaGV4VG9CeXRlcyhudW1UbzMyYlN0cihudW0pKTtcbiAgICBpZiAoYi5sZW5ndGggIT09IDMyKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Vycm9yOiBleHBlY3RlZCAzMiBieXRlcycpO1xuICAgIHJldHVybiBiO1xufVxuZnVuY3Rpb24gbnVtYmVyVG9IZXhVbnBhZGRlZChudW0pIHtcbiAgICBjb25zdCBoZXggPSBudW0udG9TdHJpbmcoMTYpO1xuICAgIHJldHVybiBoZXgubGVuZ3RoICYgMSA/IGAwJHtoZXh9YCA6IGhleDtcbn1cbmZ1bmN0aW9uIGhleFRvTnVtYmVyKGhleCkge1xuICAgIGlmICh0eXBlb2YgaGV4ICE9PSAnc3RyaW5nJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdoZXhUb051bWJlcjogZXhwZWN0ZWQgc3RyaW5nLCBnb3QgJyArIHR5cGVvZiBoZXgpO1xuICAgIH1cbiAgICByZXR1cm4gQmlnSW50KGAweCR7aGV4fWApO1xufVxuZnVuY3Rpb24gaGV4VG9CeXRlcyhoZXgpIHtcbiAgICBpZiAodHlwZW9mIGhleCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignaGV4VG9CeXRlczogZXhwZWN0ZWQgc3RyaW5nLCBnb3QgJyArIHR5cGVvZiBoZXgpO1xuICAgIH1cbiAgICBpZiAoaGV4Lmxlbmd0aCAlIDIpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignaGV4VG9CeXRlczogcmVjZWl2ZWQgaW52YWxpZCB1bnBhZGRlZCBoZXgnICsgaGV4Lmxlbmd0aCk7XG4gICAgY29uc3QgYXJyYXkgPSBuZXcgVWludDhBcnJheShoZXgubGVuZ3RoIC8gMik7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBqID0gaSAqIDI7XG4gICAgICAgIGNvbnN0IGhleEJ5dGUgPSBoZXguc2xpY2UoaiwgaiArIDIpO1xuICAgICAgICBjb25zdCBieXRlID0gTnVtYmVyLnBhcnNlSW50KGhleEJ5dGUsIDE2KTtcbiAgICAgICAgaWYgKE51bWJlci5pc05hTihieXRlKSB8fCBieXRlIDwgMClcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBieXRlIHNlcXVlbmNlJyk7XG4gICAgICAgIGFycmF5W2ldID0gYnl0ZTtcbiAgICB9XG4gICAgcmV0dXJuIGFycmF5O1xufVxuZnVuY3Rpb24gYnl0ZXNUb051bWJlcihieXRlcykge1xuICAgIHJldHVybiBoZXhUb051bWJlcihieXRlc1RvSGV4KGJ5dGVzKSk7XG59XG5mdW5jdGlvbiBlbnN1cmVCeXRlcyhoZXgpIHtcbiAgICByZXR1cm4gaGV4IGluc3RhbmNlb2YgVWludDhBcnJheSA/IFVpbnQ4QXJyYXkuZnJvbShoZXgpIDogaGV4VG9CeXRlcyhoZXgpO1xufVxuZnVuY3Rpb24gbm9ybWFsaXplU2NhbGFyKG51bSkge1xuICAgIGlmICh0eXBlb2YgbnVtID09PSAnbnVtYmVyJyAmJiBOdW1iZXIuaXNTYWZlSW50ZWdlcihudW0pICYmIG51bSA+IDApXG4gICAgICAgIHJldHVybiBCaWdJbnQobnVtKTtcbiAgICBpZiAodHlwZW9mIG51bSA9PT0gJ2JpZ2ludCcgJiYgaXNXaXRoaW5DdXJ2ZU9yZGVyKG51bSkpXG4gICAgICAgIHJldHVybiBudW07XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgdmFsaWQgcHJpdmF0ZSBzY2FsYXI6IDAgPCBzY2FsYXIgPCBjdXJ2ZS5uJyk7XG59XG5mdW5jdGlvbiBtb2QoYSwgYiA9IENVUlZFLlApIHtcbiAgICBjb25zdCByZXN1bHQgPSBhICUgYjtcbiAgICByZXR1cm4gcmVzdWx0ID49IF8wbiA/IHJlc3VsdCA6IGIgKyByZXN1bHQ7XG59XG5mdW5jdGlvbiBwb3cyKHgsIHBvd2VyKSB7XG4gICAgY29uc3QgeyBQIH0gPSBDVVJWRTtcbiAgICBsZXQgcmVzID0geDtcbiAgICB3aGlsZSAocG93ZXItLSA+IF8wbikge1xuICAgICAgICByZXMgKj0gcmVzO1xuICAgICAgICByZXMgJT0gUDtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbn1cbmZ1bmN0aW9uIHNxcnRNb2QoeCkge1xuICAgIGNvbnN0IHsgUCB9ID0gQ1VSVkU7XG4gICAgY29uc3QgXzZuID0gQmlnSW50KDYpO1xuICAgIGNvbnN0IF8xMW4gPSBCaWdJbnQoMTEpO1xuICAgIGNvbnN0IF8yMm4gPSBCaWdJbnQoMjIpO1xuICAgIGNvbnN0IF8yM24gPSBCaWdJbnQoMjMpO1xuICAgIGNvbnN0IF80NG4gPSBCaWdJbnQoNDQpO1xuICAgIGNvbnN0IF84OG4gPSBCaWdJbnQoODgpO1xuICAgIGNvbnN0IGIyID0gKHggKiB4ICogeCkgJSBQO1xuICAgIGNvbnN0IGIzID0gKGIyICogYjIgKiB4KSAlIFA7XG4gICAgY29uc3QgYjYgPSAocG93MihiMywgXzNuKSAqIGIzKSAlIFA7XG4gICAgY29uc3QgYjkgPSAocG93MihiNiwgXzNuKSAqIGIzKSAlIFA7XG4gICAgY29uc3QgYjExID0gKHBvdzIoYjksIF8ybikgKiBiMikgJSBQO1xuICAgIGNvbnN0IGIyMiA9IChwb3cyKGIxMSwgXzExbikgKiBiMTEpICUgUDtcbiAgICBjb25zdCBiNDQgPSAocG93MihiMjIsIF8yMm4pICogYjIyKSAlIFA7XG4gICAgY29uc3QgYjg4ID0gKHBvdzIoYjQ0LCBfNDRuKSAqIGI0NCkgJSBQO1xuICAgIGNvbnN0IGIxNzYgPSAocG93MihiODgsIF84OG4pICogYjg4KSAlIFA7XG4gICAgY29uc3QgYjIyMCA9IChwb3cyKGIxNzYsIF80NG4pICogYjQ0KSAlIFA7XG4gICAgY29uc3QgYjIyMyA9IChwb3cyKGIyMjAsIF8zbikgKiBiMykgJSBQO1xuICAgIGNvbnN0IHQxID0gKHBvdzIoYjIyMywgXzIzbikgKiBiMjIpICUgUDtcbiAgICBjb25zdCB0MiA9IChwb3cyKHQxLCBfNm4pICogYjIpICUgUDtcbiAgICBjb25zdCBydCA9IHBvdzIodDIsIF8ybik7XG4gICAgY29uc3QgeGMgPSAocnQgKiBydCkgJSBQO1xuICAgIGlmICh4YyAhPT0geClcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZmluZCBzcXVhcmUgcm9vdCcpO1xuICAgIHJldHVybiBydDtcbn1cbmZ1bmN0aW9uIGludmVydChudW1iZXIsIG1vZHVsbyA9IENVUlZFLlApIHtcbiAgICBpZiAobnVtYmVyID09PSBfMG4gfHwgbW9kdWxvIDw9IF8wbikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmVydDogZXhwZWN0ZWQgcG9zaXRpdmUgaW50ZWdlcnMsIGdvdCBuPSR7bnVtYmVyfSBtb2Q9JHttb2R1bG99YCk7XG4gICAgfVxuICAgIGxldCBhID0gbW9kKG51bWJlciwgbW9kdWxvKTtcbiAgICBsZXQgYiA9IG1vZHVsbztcbiAgICBsZXQgeCA9IF8wbiwgeSA9IF8xbiwgdSA9IF8xbiwgdiA9IF8wbjtcbiAgICB3aGlsZSAoYSAhPT0gXzBuKSB7XG4gICAgICAgIGNvbnN0IHEgPSBiIC8gYTtcbiAgICAgICAgY29uc3QgciA9IGIgJSBhO1xuICAgICAgICBjb25zdCBtID0geCAtIHUgKiBxO1xuICAgICAgICBjb25zdCBuID0geSAtIHYgKiBxO1xuICAgICAgICBiID0gYSwgYSA9IHIsIHggPSB1LCB5ID0gdiwgdSA9IG0sIHYgPSBuO1xuICAgIH1cbiAgICBjb25zdCBnY2QgPSBiO1xuICAgIGlmIChnY2QgIT09IF8xbilcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZlcnQ6IGRvZXMgbm90IGV4aXN0Jyk7XG4gICAgcmV0dXJuIG1vZCh4LCBtb2R1bG8pO1xufVxuZnVuY3Rpb24gaW52ZXJ0QmF0Y2gobnVtcywgcCA9IENVUlZFLlApIHtcbiAgICBjb25zdCBzY3JhdGNoID0gbmV3IEFycmF5KG51bXMubGVuZ3RoKTtcbiAgICBjb25zdCBsYXN0TXVsdGlwbGllZCA9IG51bXMucmVkdWNlKChhY2MsIG51bSwgaSkgPT4ge1xuICAgICAgICBpZiAobnVtID09PSBfMG4pXG4gICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICBzY3JhdGNoW2ldID0gYWNjO1xuICAgICAgICByZXR1cm4gbW9kKGFjYyAqIG51bSwgcCk7XG4gICAgfSwgXzFuKTtcbiAgICBjb25zdCBpbnZlcnRlZCA9IGludmVydChsYXN0TXVsdGlwbGllZCwgcCk7XG4gICAgbnVtcy5yZWR1Y2VSaWdodCgoYWNjLCBudW0sIGkpID0+IHtcbiAgICAgICAgaWYgKG51bSA9PT0gXzBuKVxuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgc2NyYXRjaFtpXSA9IG1vZChhY2MgKiBzY3JhdGNoW2ldLCBwKTtcbiAgICAgICAgcmV0dXJuIG1vZChhY2MgKiBudW0sIHApO1xuICAgIH0sIGludmVydGVkKTtcbiAgICByZXR1cm4gc2NyYXRjaDtcbn1cbmZ1bmN0aW9uIGJpdHMyaW50XzIoYnl0ZXMpIHtcbiAgICBjb25zdCBkZWx0YSA9IGJ5dGVzLmxlbmd0aCAqIDggLSBncm91cExlbiAqIDg7XG4gICAgY29uc3QgbnVtID0gYnl0ZXNUb051bWJlcihieXRlcyk7XG4gICAgcmV0dXJuIGRlbHRhID4gMCA/IG51bSA+PiBCaWdJbnQoZGVsdGEpIDogbnVtO1xufVxuZnVuY3Rpb24gdHJ1bmNhdGVIYXNoKGhhc2gsIHRydW5jYXRlT25seSA9IGZhbHNlKSB7XG4gICAgY29uc3QgaCA9IGJpdHMyaW50XzIoaGFzaCk7XG4gICAgaWYgKHRydW5jYXRlT25seSlcbiAgICAgICAgcmV0dXJuIGg7XG4gICAgY29uc3QgeyBuIH0gPSBDVVJWRTtcbiAgICByZXR1cm4gaCA+PSBuID8gaCAtIG4gOiBoO1xufVxubGV0IF9zaGEyNTZTeW5jO1xubGV0IF9obWFjU2hhMjU2U3luYztcbmNsYXNzIEhtYWNEcmJnIHtcbiAgICBjb25zdHJ1Y3RvcihoYXNoTGVuLCBxQnl0ZUxlbikge1xuICAgICAgICB0aGlzLmhhc2hMZW4gPSBoYXNoTGVuO1xuICAgICAgICB0aGlzLnFCeXRlTGVuID0gcUJ5dGVMZW47XG4gICAgICAgIGlmICh0eXBlb2YgaGFzaExlbiAhPT0gJ251bWJlcicgfHwgaGFzaExlbiA8IDIpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2hhc2hMZW4gbXVzdCBiZSBhIG51bWJlcicpO1xuICAgICAgICBpZiAodHlwZW9mIHFCeXRlTGVuICE9PSAnbnVtYmVyJyB8fCBxQnl0ZUxlbiA8IDIpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3FCeXRlTGVuIG11c3QgYmUgYSBudW1iZXInKTtcbiAgICAgICAgdGhpcy52ID0gbmV3IFVpbnQ4QXJyYXkoaGFzaExlbikuZmlsbCgxKTtcbiAgICAgICAgdGhpcy5rID0gbmV3IFVpbnQ4QXJyYXkoaGFzaExlbikuZmlsbCgwKTtcbiAgICAgICAgdGhpcy5jb3VudGVyID0gMDtcbiAgICB9XG4gICAgaG1hYyguLi52YWx1ZXMpIHtcbiAgICAgICAgcmV0dXJuIHV0aWxzLmhtYWNTaGEyNTYodGhpcy5rLCAuLi52YWx1ZXMpO1xuICAgIH1cbiAgICBobWFjU3luYyguLi52YWx1ZXMpIHtcbiAgICAgICAgcmV0dXJuIF9obWFjU2hhMjU2U3luYyh0aGlzLmssIC4uLnZhbHVlcyk7XG4gICAgfVxuICAgIGNoZWNrU3luYygpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBfaG1hY1NoYTI1NlN5bmMgIT09ICdmdW5jdGlvbicpXG4gICAgICAgICAgICB0aHJvdyBuZXcgU2hhRXJyb3IoJ2htYWNTaGEyNTZTeW5jIG5lZWRzIHRvIGJlIHNldCcpO1xuICAgIH1cbiAgICBpbmNyKCkge1xuICAgICAgICBpZiAodGhpcy5jb3VudGVyID49IDEwMDApXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RyaWVkIDEsMDAwIGsgdmFsdWVzIGZvciBzaWduKCksIGFsbCB3ZXJlIGludmFsaWQnKTtcbiAgICAgICAgdGhpcy5jb3VudGVyICs9IDE7XG4gICAgfVxuICAgIGFzeW5jIHJlc2VlZChzZWVkID0gbmV3IFVpbnQ4QXJyYXkoKSkge1xuICAgICAgICB0aGlzLmsgPSBhd2FpdCB0aGlzLmhtYWModGhpcy52LCBVaW50OEFycmF5LmZyb20oWzB4MDBdKSwgc2VlZCk7XG4gICAgICAgIHRoaXMudiA9IGF3YWl0IHRoaXMuaG1hYyh0aGlzLnYpO1xuICAgICAgICBpZiAoc2VlZC5sZW5ndGggPT09IDApXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHRoaXMuayA9IGF3YWl0IHRoaXMuaG1hYyh0aGlzLnYsIFVpbnQ4QXJyYXkuZnJvbShbMHgwMV0pLCBzZWVkKTtcbiAgICAgICAgdGhpcy52ID0gYXdhaXQgdGhpcy5obWFjKHRoaXMudik7XG4gICAgfVxuICAgIHJlc2VlZFN5bmMoc2VlZCA9IG5ldyBVaW50OEFycmF5KCkpIHtcbiAgICAgICAgdGhpcy5jaGVja1N5bmMoKTtcbiAgICAgICAgdGhpcy5rID0gdGhpcy5obWFjU3luYyh0aGlzLnYsIFVpbnQ4QXJyYXkuZnJvbShbMHgwMF0pLCBzZWVkKTtcbiAgICAgICAgdGhpcy52ID0gdGhpcy5obWFjU3luYyh0aGlzLnYpO1xuICAgICAgICBpZiAoc2VlZC5sZW5ndGggPT09IDApXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHRoaXMuayA9IHRoaXMuaG1hY1N5bmModGhpcy52LCBVaW50OEFycmF5LmZyb20oWzB4MDFdKSwgc2VlZCk7XG4gICAgICAgIHRoaXMudiA9IHRoaXMuaG1hY1N5bmModGhpcy52KTtcbiAgICB9XG4gICAgYXN5bmMgZ2VuZXJhdGUoKSB7XG4gICAgICAgIHRoaXMuaW5jcigpO1xuICAgICAgICBsZXQgbGVuID0gMDtcbiAgICAgICAgY29uc3Qgb3V0ID0gW107XG4gICAgICAgIHdoaWxlIChsZW4gPCB0aGlzLnFCeXRlTGVuKSB7XG4gICAgICAgICAgICB0aGlzLnYgPSBhd2FpdCB0aGlzLmhtYWModGhpcy52KTtcbiAgICAgICAgICAgIGNvbnN0IHNsID0gdGhpcy52LnNsaWNlKCk7XG4gICAgICAgICAgICBvdXQucHVzaChzbCk7XG4gICAgICAgICAgICBsZW4gKz0gdGhpcy52Lmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29uY2F0Qnl0ZXMoLi4ub3V0KTtcbiAgICB9XG4gICAgZ2VuZXJhdGVTeW5jKCkge1xuICAgICAgICB0aGlzLmNoZWNrU3luYygpO1xuICAgICAgICB0aGlzLmluY3IoKTtcbiAgICAgICAgbGV0IGxlbiA9IDA7XG4gICAgICAgIGNvbnN0IG91dCA9IFtdO1xuICAgICAgICB3aGlsZSAobGVuIDwgdGhpcy5xQnl0ZUxlbikge1xuICAgICAgICAgICAgdGhpcy52ID0gdGhpcy5obWFjU3luYyh0aGlzLnYpO1xuICAgICAgICAgICAgY29uc3Qgc2wgPSB0aGlzLnYuc2xpY2UoKTtcbiAgICAgICAgICAgIG91dC5wdXNoKHNsKTtcbiAgICAgICAgICAgIGxlbiArPSB0aGlzLnYubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb25jYXRCeXRlcyguLi5vdXQpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGlzV2l0aGluQ3VydmVPcmRlcihudW0pIHtcbiAgICByZXR1cm4gXzBuIDwgbnVtICYmIG51bSA8IENVUlZFLm47XG59XG5mdW5jdGlvbiBpc1ZhbGlkRmllbGRFbGVtZW50KG51bSkge1xuICAgIHJldHVybiBfMG4gPCBudW0gJiYgbnVtIDwgQ1VSVkUuUDtcbn1cbmZ1bmN0aW9uIGttZFRvU2lnKGtCeXRlcywgbSwgZCwgbG93UyA9IHRydWUpIHtcbiAgICBjb25zdCB7IG4gfSA9IENVUlZFO1xuICAgIGNvbnN0IGsgPSB0cnVuY2F0ZUhhc2goa0J5dGVzLCB0cnVlKTtcbiAgICBpZiAoIWlzV2l0aGluQ3VydmVPcmRlcihrKSlcbiAgICAgICAgcmV0dXJuO1xuICAgIGNvbnN0IGtpbnYgPSBpbnZlcnQoaywgbik7XG4gICAgY29uc3QgcSA9IFBvaW50LkJBU0UubXVsdGlwbHkoayk7XG4gICAgY29uc3QgciA9IG1vZChxLngsIG4pO1xuICAgIGlmIChyID09PSBfMG4pXG4gICAgICAgIHJldHVybjtcbiAgICBjb25zdCBzID0gbW9kKGtpbnYgKiBtb2QobSArIGQgKiByLCBuKSwgbik7XG4gICAgaWYgKHMgPT09IF8wbilcbiAgICAgICAgcmV0dXJuO1xuICAgIGxldCBzaWcgPSBuZXcgU2lnbmF0dXJlKHIsIHMpO1xuICAgIGxldCByZWNvdmVyeSA9IChxLnggPT09IHNpZy5yID8gMCA6IDIpIHwgTnVtYmVyKHEueSAmIF8xbik7XG4gICAgaWYgKGxvd1MgJiYgc2lnLmhhc0hpZ2hTKCkpIHtcbiAgICAgICAgc2lnID0gc2lnLm5vcm1hbGl6ZVMoKTtcbiAgICAgICAgcmVjb3ZlcnkgXj0gMTtcbiAgICB9XG4gICAgcmV0dXJuIHsgc2lnLCByZWNvdmVyeSB9O1xufVxuZnVuY3Rpb24gbm9ybWFsaXplUHJpdmF0ZUtleShrZXkpIHtcbiAgICBsZXQgbnVtO1xuICAgIGlmICh0eXBlb2Yga2V5ID09PSAnYmlnaW50Jykge1xuICAgICAgICBudW0gPSBrZXk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHR5cGVvZiBrZXkgPT09ICdudW1iZXInICYmIE51bWJlci5pc1NhZmVJbnRlZ2VyKGtleSkgJiYga2V5ID4gMCkge1xuICAgICAgICBudW0gPSBCaWdJbnQoa2V5KTtcbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZW9mIGtleSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgaWYgKGtleS5sZW5ndGggIT09IDIgKiBncm91cExlbilcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgMzIgYnl0ZXMgb2YgcHJpdmF0ZSBrZXknKTtcbiAgICAgICAgbnVtID0gaGV4VG9OdW1iZXIoa2V5KTtcbiAgICB9XG4gICAgZWxzZSBpZiAoa2V5IGluc3RhbmNlb2YgVWludDhBcnJheSkge1xuICAgICAgICBpZiAoa2V5Lmxlbmd0aCAhPT0gZ3JvdXBMZW4pXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIDMyIGJ5dGVzIG9mIHByaXZhdGUga2V5Jyk7XG4gICAgICAgIG51bSA9IGJ5dGVzVG9OdW1iZXIoa2V5KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIHZhbGlkIHByaXZhdGUga2V5Jyk7XG4gICAgfVxuICAgIGlmICghaXNXaXRoaW5DdXJ2ZU9yZGVyKG51bSkpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgcHJpdmF0ZSBrZXk6IDAgPCBrZXkgPCBuJyk7XG4gICAgcmV0dXJuIG51bTtcbn1cbmZ1bmN0aW9uIG5vcm1hbGl6ZVB1YmxpY0tleShwdWJsaWNLZXkpIHtcbiAgICBpZiAocHVibGljS2V5IGluc3RhbmNlb2YgUG9pbnQpIHtcbiAgICAgICAgcHVibGljS2V5LmFzc2VydFZhbGlkaXR5KCk7XG4gICAgICAgIHJldHVybiBwdWJsaWNLZXk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gUG9pbnQuZnJvbUhleChwdWJsaWNLZXkpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIG5vcm1hbGl6ZVNpZ25hdHVyZShzaWduYXR1cmUpIHtcbiAgICBpZiAoc2lnbmF0dXJlIGluc3RhbmNlb2YgU2lnbmF0dXJlKSB7XG4gICAgICAgIHNpZ25hdHVyZS5hc3NlcnRWYWxpZGl0eSgpO1xuICAgICAgICByZXR1cm4gc2lnbmF0dXJlO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICByZXR1cm4gU2lnbmF0dXJlLmZyb21ERVIoc2lnbmF0dXJlKTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHJldHVybiBTaWduYXR1cmUuZnJvbUNvbXBhY3Qoc2lnbmF0dXJlKTtcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0UHVibGljS2V5KHByaXZhdGVLZXksIGlzQ29tcHJlc3NlZCA9IGZhbHNlKSB7XG4gICAgcmV0dXJuIFBvaW50LmZyb21Qcml2YXRlS2V5KHByaXZhdGVLZXkpLnRvUmF3Qnl0ZXMoaXNDb21wcmVzc2VkKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiByZWNvdmVyUHVibGljS2V5KG1zZ0hhc2gsIHNpZ25hdHVyZSwgcmVjb3ZlcnksIGlzQ29tcHJlc3NlZCA9IGZhbHNlKSB7XG4gICAgcmV0dXJuIFBvaW50LmZyb21TaWduYXR1cmUobXNnSGFzaCwgc2lnbmF0dXJlLCByZWNvdmVyeSkudG9SYXdCeXRlcyhpc0NvbXByZXNzZWQpO1xufVxuZnVuY3Rpb24gaXNQcm9iUHViKGl0ZW0pIHtcbiAgICBjb25zdCBhcnIgPSBpdGVtIGluc3RhbmNlb2YgVWludDhBcnJheTtcbiAgICBjb25zdCBzdHIgPSB0eXBlb2YgaXRlbSA9PT0gJ3N0cmluZyc7XG4gICAgY29uc3QgbGVuID0gKGFyciB8fCBzdHIpICYmIGl0ZW0ubGVuZ3RoO1xuICAgIGlmIChhcnIpXG4gICAgICAgIHJldHVybiBsZW4gPT09IGNvbXByZXNzZWRMZW4gfHwgbGVuID09PSB1bmNvbXByZXNzZWRMZW47XG4gICAgaWYgKHN0cilcbiAgICAgICAgcmV0dXJuIGxlbiA9PT0gY29tcHJlc3NlZExlbiAqIDIgfHwgbGVuID09PSB1bmNvbXByZXNzZWRMZW4gKiAyO1xuICAgIGlmIChpdGVtIGluc3RhbmNlb2YgUG9pbnQpXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIHJldHVybiBmYWxzZTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRTaGFyZWRTZWNyZXQocHJpdmF0ZUEsIHB1YmxpY0IsIGlzQ29tcHJlc3NlZCA9IGZhbHNlKSB7XG4gICAgaWYgKGlzUHJvYlB1Yihwcml2YXRlQSkpXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2dldFNoYXJlZFNlY3JldDogZmlyc3QgYXJnIG11c3QgYmUgcHJpdmF0ZSBrZXknKTtcbiAgICBpZiAoIWlzUHJvYlB1YihwdWJsaWNCKSlcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignZ2V0U2hhcmVkU2VjcmV0OiBzZWNvbmQgYXJnIG11c3QgYmUgcHVibGljIGtleScpO1xuICAgIGNvbnN0IGIgPSBub3JtYWxpemVQdWJsaWNLZXkocHVibGljQik7XG4gICAgYi5hc3NlcnRWYWxpZGl0eSgpO1xuICAgIHJldHVybiBiLm11bHRpcGx5KG5vcm1hbGl6ZVByaXZhdGVLZXkocHJpdmF0ZUEpKS50b1Jhd0J5dGVzKGlzQ29tcHJlc3NlZCk7XG59XG5mdW5jdGlvbiBiaXRzMmludChieXRlcykge1xuICAgIGNvbnN0IHNsaWNlID0gYnl0ZXMubGVuZ3RoID4gZmllbGRMZW4gPyBieXRlcy5zbGljZSgwLCBmaWVsZExlbikgOiBieXRlcztcbiAgICByZXR1cm4gYnl0ZXNUb051bWJlcihzbGljZSk7XG59XG5mdW5jdGlvbiBiaXRzMm9jdGV0cyhieXRlcykge1xuICAgIGNvbnN0IHoxID0gYml0czJpbnQoYnl0ZXMpO1xuICAgIGNvbnN0IHoyID0gbW9kKHoxLCBDVVJWRS5uKTtcbiAgICByZXR1cm4gaW50Mm9jdGV0cyh6MiA8IF8wbiA/IHoxIDogejIpO1xufVxuZnVuY3Rpb24gaW50Mm9jdGV0cyhudW0pIHtcbiAgICByZXR1cm4gbnVtVG8zMmIobnVtKTtcbn1cbmZ1bmN0aW9uIGluaXRTaWdBcmdzKG1zZ0hhc2gsIHByaXZhdGVLZXksIGV4dHJhRW50cm9weSkge1xuICAgIGlmIChtc2dIYXNoID09IG51bGwpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgc2lnbjogZXhwZWN0ZWQgdmFsaWQgbWVzc2FnZSBoYXNoLCBub3QgXCIke21zZ0hhc2h9XCJgKTtcbiAgICBjb25zdCBoMSA9IGVuc3VyZUJ5dGVzKG1zZ0hhc2gpO1xuICAgIGNvbnN0IGQgPSBub3JtYWxpemVQcml2YXRlS2V5KHByaXZhdGVLZXkpO1xuICAgIGNvbnN0IHNlZWRBcmdzID0gW2ludDJvY3RldHMoZCksIGJpdHMyb2N0ZXRzKGgxKV07XG4gICAgaWYgKGV4dHJhRW50cm9weSAhPSBudWxsKSB7XG4gICAgICAgIGlmIChleHRyYUVudHJvcHkgPT09IHRydWUpXG4gICAgICAgICAgICBleHRyYUVudHJvcHkgPSB1dGlscy5yYW5kb21CeXRlcyhmaWVsZExlbik7XG4gICAgICAgIGNvbnN0IGUgPSBlbnN1cmVCeXRlcyhleHRyYUVudHJvcHkpO1xuICAgICAgICBpZiAoZS5sZW5ndGggIT09IGZpZWxkTGVuKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBzaWduOiBFeHBlY3RlZCAke2ZpZWxkTGVufSBieXRlcyBvZiBleHRyYSBkYXRhYCk7XG4gICAgICAgIHNlZWRBcmdzLnB1c2goZSk7XG4gICAgfVxuICAgIGNvbnN0IHNlZWQgPSBjb25jYXRCeXRlcyguLi5zZWVkQXJncyk7XG4gICAgY29uc3QgbSA9IGJpdHMyaW50KGgxKTtcbiAgICByZXR1cm4geyBzZWVkLCBtLCBkIH07XG59XG5mdW5jdGlvbiBmaW5hbGl6ZVNpZyhyZWNTaWcsIG9wdHMpIHtcbiAgICBjb25zdCB7IHNpZywgcmVjb3ZlcnkgfSA9IHJlY1NpZztcbiAgICBjb25zdCB7IGRlciwgcmVjb3ZlcmVkIH0gPSBPYmplY3QuYXNzaWduKHsgY2Fub25pY2FsOiB0cnVlLCBkZXI6IHRydWUgfSwgb3B0cyk7XG4gICAgY29uc3QgaGFzaGVkID0gZGVyID8gc2lnLnRvREVSUmF3Qnl0ZXMoKSA6IHNpZy50b0NvbXBhY3RSYXdCeXRlcygpO1xuICAgIHJldHVybiByZWNvdmVyZWQgPyBbaGFzaGVkLCByZWNvdmVyeV0gOiBoYXNoZWQ7XG59XG5hc3luYyBmdW5jdGlvbiBzaWduKG1zZ0hhc2gsIHByaXZLZXksIG9wdHMgPSB7fSkge1xuICAgIGNvbnN0IHsgc2VlZCwgbSwgZCB9ID0gaW5pdFNpZ0FyZ3MobXNnSGFzaCwgcHJpdktleSwgb3B0cy5leHRyYUVudHJvcHkpO1xuICAgIGNvbnN0IGRyYmcgPSBuZXcgSG1hY0RyYmcoaGFzaExlbiwgZ3JvdXBMZW4pO1xuICAgIGF3YWl0IGRyYmcucmVzZWVkKHNlZWQpO1xuICAgIGxldCBzaWc7XG4gICAgd2hpbGUgKCEoc2lnID0ga21kVG9TaWcoYXdhaXQgZHJiZy5nZW5lcmF0ZSgpLCBtLCBkLCBvcHRzLmNhbm9uaWNhbCkpKVxuICAgICAgICBhd2FpdCBkcmJnLnJlc2VlZCgpO1xuICAgIHJldHVybiBmaW5hbGl6ZVNpZyhzaWcsIG9wdHMpO1xufVxuZnVuY3Rpb24gc2lnblN5bmMobXNnSGFzaCwgcHJpdktleSwgb3B0cyA9IHt9KSB7XG4gICAgY29uc3QgeyBzZWVkLCBtLCBkIH0gPSBpbml0U2lnQXJncyhtc2dIYXNoLCBwcml2S2V5LCBvcHRzLmV4dHJhRW50cm9weSk7XG4gICAgY29uc3QgZHJiZyA9IG5ldyBIbWFjRHJiZyhoYXNoTGVuLCBncm91cExlbik7XG4gICAgZHJiZy5yZXNlZWRTeW5jKHNlZWQpO1xuICAgIGxldCBzaWc7XG4gICAgd2hpbGUgKCEoc2lnID0ga21kVG9TaWcoZHJiZy5nZW5lcmF0ZVN5bmMoKSwgbSwgZCwgb3B0cy5jYW5vbmljYWwpKSlcbiAgICAgICAgZHJiZy5yZXNlZWRTeW5jKCk7XG4gICAgcmV0dXJuIGZpbmFsaXplU2lnKHNpZywgb3B0cyk7XG59XG5leHBvcnQgeyBzaWduLCBzaWduU3luYyB9O1xuY29uc3Qgdm9wdHMgPSB7IHN0cmljdDogdHJ1ZSB9O1xuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeShzaWduYXR1cmUsIG1zZ0hhc2gsIHB1YmxpY0tleSwgb3B0cyA9IHZvcHRzKSB7XG4gICAgbGV0IHNpZztcbiAgICB0cnkge1xuICAgICAgICBzaWcgPSBub3JtYWxpemVTaWduYXR1cmUoc2lnbmF0dXJlKTtcbiAgICAgICAgbXNnSGFzaCA9IGVuc3VyZUJ5dGVzKG1zZ0hhc2gpO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCB7IHIsIHMgfSA9IHNpZztcbiAgICBpZiAob3B0cy5zdHJpY3QgJiYgc2lnLmhhc0hpZ2hTKCkpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCBoID0gdHJ1bmNhdGVIYXNoKG1zZ0hhc2gpO1xuICAgIGxldCBQO1xuICAgIHRyeSB7XG4gICAgICAgIFAgPSBub3JtYWxpemVQdWJsaWNLZXkocHVibGljS2V5KTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgeyBuIH0gPSBDVVJWRTtcbiAgICBjb25zdCBzaW52ID0gaW52ZXJ0KHMsIG4pO1xuICAgIGNvbnN0IHUxID0gbW9kKGggKiBzaW52LCBuKTtcbiAgICBjb25zdCB1MiA9IG1vZChyICogc2ludiwgbik7XG4gICAgY29uc3QgUiA9IFBvaW50LkJBU0UubXVsdGlwbHlBbmRBZGRVbnNhZmUoUCwgdTEsIHUyKTtcbiAgICBpZiAoIVIpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCB2ID0gbW9kKFIueCwgbik7XG4gICAgcmV0dXJuIHYgPT09IHI7XG59XG5mdW5jdGlvbiBzY2hub3JyQ2hhbGxlbmdlRmluYWxpemUoY2gpIHtcbiAgICByZXR1cm4gbW9kKGJ5dGVzVG9OdW1iZXIoY2gpLCBDVVJWRS5uKTtcbn1cbmNsYXNzIFNjaG5vcnJTaWduYXR1cmUge1xuICAgIGNvbnN0cnVjdG9yKHIsIHMpIHtcbiAgICAgICAgdGhpcy5yID0gcjtcbiAgICAgICAgdGhpcy5zID0gcztcbiAgICAgICAgdGhpcy5hc3NlcnRWYWxpZGl0eSgpO1xuICAgIH1cbiAgICBzdGF0aWMgZnJvbUhleChoZXgpIHtcbiAgICAgICAgY29uc3QgYnl0ZXMgPSBlbnN1cmVCeXRlcyhoZXgpO1xuICAgICAgICBpZiAoYnl0ZXMubGVuZ3RoICE9PSA2NClcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYFNjaG5vcnJTaWduYXR1cmUuZnJvbUhleDogZXhwZWN0ZWQgNjQgYnl0ZXMsIG5vdCAke2J5dGVzLmxlbmd0aH1gKTtcbiAgICAgICAgY29uc3QgciA9IGJ5dGVzVG9OdW1iZXIoYnl0ZXMuc3ViYXJyYXkoMCwgMzIpKTtcbiAgICAgICAgY29uc3QgcyA9IGJ5dGVzVG9OdW1iZXIoYnl0ZXMuc3ViYXJyYXkoMzIsIDY0KSk7XG4gICAgICAgIHJldHVybiBuZXcgU2Nobm9yclNpZ25hdHVyZShyLCBzKTtcbiAgICB9XG4gICAgYXNzZXJ0VmFsaWRpdHkoKSB7XG4gICAgICAgIGNvbnN0IHsgciwgcyB9ID0gdGhpcztcbiAgICAgICAgaWYgKCFpc1ZhbGlkRmllbGRFbGVtZW50KHIpIHx8ICFpc1dpdGhpbkN1cnZlT3JkZXIocykpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgc2lnbmF0dXJlJyk7XG4gICAgfVxuICAgIHRvSGV4KCkge1xuICAgICAgICByZXR1cm4gbnVtVG8zMmJTdHIodGhpcy5yKSArIG51bVRvMzJiU3RyKHRoaXMucyk7XG4gICAgfVxuICAgIHRvUmF3Qnl0ZXMoKSB7XG4gICAgICAgIHJldHVybiBoZXhUb0J5dGVzKHRoaXMudG9IZXgoKSk7XG4gICAgfVxufVxuZnVuY3Rpb24gc2Nobm9yckdldFB1YmxpY0tleShwcml2YXRlS2V5KSB7XG4gICAgcmV0dXJuIFBvaW50LmZyb21Qcml2YXRlS2V5KHByaXZhdGVLZXkpLnRvUmF3WCgpO1xufVxuY2xhc3MgSW50ZXJuYWxTY2hub3JyU2lnbmF0dXJlIHtcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlLCBwcml2YXRlS2V5LCBhdXhSYW5kID0gdXRpbHMucmFuZG9tQnl0ZXMoKSkge1xuICAgICAgICBpZiAobWVzc2FnZSA9PSBudWxsKVxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgc2lnbjogRXhwZWN0ZWQgdmFsaWQgbWVzc2FnZSwgbm90IFwiJHttZXNzYWdlfVwiYCk7XG4gICAgICAgIHRoaXMubSA9IGVuc3VyZUJ5dGVzKG1lc3NhZ2UpO1xuICAgICAgICBjb25zdCB7IHgsIHNjYWxhciB9ID0gdGhpcy5nZXRTY2FsYXIobm9ybWFsaXplUHJpdmF0ZUtleShwcml2YXRlS2V5KSk7XG4gICAgICAgIHRoaXMucHggPSB4O1xuICAgICAgICB0aGlzLmQgPSBzY2FsYXI7XG4gICAgICAgIHRoaXMucmFuZCA9IGVuc3VyZUJ5dGVzKGF1eFJhbmQpO1xuICAgICAgICBpZiAodGhpcy5yYW5kLmxlbmd0aCAhPT0gMzIpXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdzaWduOiBFeHBlY3RlZCAzMiBieXRlcyBvZiBhdXggcmFuZG9tbmVzcycpO1xuICAgIH1cbiAgICBnZXRTY2FsYXIocHJpdikge1xuICAgICAgICBjb25zdCBwb2ludCA9IFBvaW50LmZyb21Qcml2YXRlS2V5KHByaXYpO1xuICAgICAgICBjb25zdCBzY2FsYXIgPSBwb2ludC5oYXNFdmVuWSgpID8gcHJpdiA6IENVUlZFLm4gLSBwcml2O1xuICAgICAgICByZXR1cm4geyBwb2ludCwgc2NhbGFyLCB4OiBwb2ludC50b1Jhd1goKSB9O1xuICAgIH1cbiAgICBpbml0Tm9uY2UoZCwgdDBoKSB7XG4gICAgICAgIHJldHVybiBudW1UbzMyYihkIF4gYnl0ZXNUb051bWJlcih0MGgpKTtcbiAgICB9XG4gICAgZmluYWxpemVOb25jZShrMGgpIHtcbiAgICAgICAgY29uc3QgazAgPSBtb2QoYnl0ZXNUb051bWJlcihrMGgpLCBDVVJWRS5uKTtcbiAgICAgICAgaWYgKGswID09PSBfMG4pXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3NpZ246IENyZWF0aW9uIG9mIHNpZ25hdHVyZSBmYWlsZWQuIGsgaXMgemVybycpO1xuICAgICAgICBjb25zdCB7IHBvaW50OiBSLCB4OiByeCwgc2NhbGFyOiBrIH0gPSB0aGlzLmdldFNjYWxhcihrMCk7XG4gICAgICAgIHJldHVybiB7IFIsIHJ4LCBrIH07XG4gICAgfVxuICAgIGZpbmFsaXplU2lnKFIsIGssIGUsIGQpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBTY2hub3JyU2lnbmF0dXJlKFIueCwgbW9kKGsgKyBlICogZCwgQ1VSVkUubikpLnRvUmF3Qnl0ZXMoKTtcbiAgICB9XG4gICAgZXJyb3IoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignc2lnbjogSW52YWxpZCBzaWduYXR1cmUgcHJvZHVjZWQnKTtcbiAgICB9XG4gICAgYXN5bmMgY2FsYygpIHtcbiAgICAgICAgY29uc3QgeyBtLCBkLCBweCwgcmFuZCB9ID0gdGhpcztcbiAgICAgICAgY29uc3QgdGFnID0gdXRpbHMudGFnZ2VkSGFzaDtcbiAgICAgICAgY29uc3QgdCA9IHRoaXMuaW5pdE5vbmNlKGQsIGF3YWl0IHRhZyhUQUdTLmF1eCwgcmFuZCkpO1xuICAgICAgICBjb25zdCB7IFIsIHJ4LCBrIH0gPSB0aGlzLmZpbmFsaXplTm9uY2UoYXdhaXQgdGFnKFRBR1Mubm9uY2UsIHQsIHB4LCBtKSk7XG4gICAgICAgIGNvbnN0IGUgPSBzY2hub3JyQ2hhbGxlbmdlRmluYWxpemUoYXdhaXQgdGFnKFRBR1MuY2hhbGxlbmdlLCByeCwgcHgsIG0pKTtcbiAgICAgICAgY29uc3Qgc2lnID0gdGhpcy5maW5hbGl6ZVNpZyhSLCBrLCBlLCBkKTtcbiAgICAgICAgaWYgKCEoYXdhaXQgc2Nobm9yclZlcmlmeShzaWcsIG0sIHB4KSkpXG4gICAgICAgICAgICB0aGlzLmVycm9yKCk7XG4gICAgICAgIHJldHVybiBzaWc7XG4gICAgfVxuICAgIGNhbGNTeW5jKCkge1xuICAgICAgICBjb25zdCB7IG0sIGQsIHB4LCByYW5kIH0gPSB0aGlzO1xuICAgICAgICBjb25zdCB0YWcgPSB1dGlscy50YWdnZWRIYXNoU3luYztcbiAgICAgICAgY29uc3QgdCA9IHRoaXMuaW5pdE5vbmNlKGQsIHRhZyhUQUdTLmF1eCwgcmFuZCkpO1xuICAgICAgICBjb25zdCB7IFIsIHJ4LCBrIH0gPSB0aGlzLmZpbmFsaXplTm9uY2UodGFnKFRBR1Mubm9uY2UsIHQsIHB4LCBtKSk7XG4gICAgICAgIGNvbnN0IGUgPSBzY2hub3JyQ2hhbGxlbmdlRmluYWxpemUodGFnKFRBR1MuY2hhbGxlbmdlLCByeCwgcHgsIG0pKTtcbiAgICAgICAgY29uc3Qgc2lnID0gdGhpcy5maW5hbGl6ZVNpZyhSLCBrLCBlLCBkKTtcbiAgICAgICAgaWYgKCFzY2hub3JyVmVyaWZ5U3luYyhzaWcsIG0sIHB4KSlcbiAgICAgICAgICAgIHRoaXMuZXJyb3IoKTtcbiAgICAgICAgcmV0dXJuIHNpZztcbiAgICB9XG59XG5hc3luYyBmdW5jdGlvbiBzY2hub3JyU2lnbihtc2csIHByaXZLZXksIGF1eFJhbmQpIHtcbiAgICByZXR1cm4gbmV3IEludGVybmFsU2Nobm9yclNpZ25hdHVyZShtc2csIHByaXZLZXksIGF1eFJhbmQpLmNhbGMoKTtcbn1cbmZ1bmN0aW9uIHNjaG5vcnJTaWduU3luYyhtc2csIHByaXZLZXksIGF1eFJhbmQpIHtcbiAgICByZXR1cm4gbmV3IEludGVybmFsU2Nobm9yclNpZ25hdHVyZShtc2csIHByaXZLZXksIGF1eFJhbmQpLmNhbGNTeW5jKCk7XG59XG5mdW5jdGlvbiBpbml0U2Nobm9yclZlcmlmeShzaWduYXR1cmUsIG1lc3NhZ2UsIHB1YmxpY0tleSkge1xuICAgIGNvbnN0IHJhdyA9IHNpZ25hdHVyZSBpbnN0YW5jZW9mIFNjaG5vcnJTaWduYXR1cmU7XG4gICAgY29uc3Qgc2lnID0gcmF3ID8gc2lnbmF0dXJlIDogU2Nobm9yclNpZ25hdHVyZS5mcm9tSGV4KHNpZ25hdHVyZSk7XG4gICAgaWYgKHJhdylcbiAgICAgICAgc2lnLmFzc2VydFZhbGlkaXR5KCk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc2lnLFxuICAgICAgICBtOiBlbnN1cmVCeXRlcyhtZXNzYWdlKSxcbiAgICAgICAgUDogbm9ybWFsaXplUHVibGljS2V5KHB1YmxpY0tleSksXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGZpbmFsaXplU2Nobm9yclZlcmlmeShyLCBQLCBzLCBlKSB7XG4gICAgY29uc3QgUiA9IFBvaW50LkJBU0UubXVsdGlwbHlBbmRBZGRVbnNhZmUoUCwgbm9ybWFsaXplUHJpdmF0ZUtleShzKSwgbW9kKC1lLCBDVVJWRS5uKSk7XG4gICAgaWYgKCFSIHx8ICFSLmhhc0V2ZW5ZKCkgfHwgUi54ICE9PSByKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRydWU7XG59XG5hc3luYyBmdW5jdGlvbiBzY2hub3JyVmVyaWZ5KHNpZ25hdHVyZSwgbWVzc2FnZSwgcHVibGljS2V5KSB7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgeyByLCBzLCBtLCBQIH0gPSBpbml0U2Nobm9yclZlcmlmeShzaWduYXR1cmUsIG1lc3NhZ2UsIHB1YmxpY0tleSk7XG4gICAgICAgIGNvbnN0IGUgPSBzY2hub3JyQ2hhbGxlbmdlRmluYWxpemUoYXdhaXQgdXRpbHMudGFnZ2VkSGFzaChUQUdTLmNoYWxsZW5nZSwgbnVtVG8zMmIociksIFAudG9SYXdYKCksIG0pKTtcbiAgICAgICAgcmV0dXJuIGZpbmFsaXplU2Nobm9yclZlcmlmeShyLCBQLCBzLCBlKTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG5mdW5jdGlvbiBzY2hub3JyVmVyaWZ5U3luYyhzaWduYXR1cmUsIG1lc3NhZ2UsIHB1YmxpY0tleSkge1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHsgciwgcywgbSwgUCB9ID0gaW5pdFNjaG5vcnJWZXJpZnkoc2lnbmF0dXJlLCBtZXNzYWdlLCBwdWJsaWNLZXkpO1xuICAgICAgICBjb25zdCBlID0gc2Nobm9yckNoYWxsZW5nZUZpbmFsaXplKHV0aWxzLnRhZ2dlZEhhc2hTeW5jKFRBR1MuY2hhbGxlbmdlLCBudW1UbzMyYihyKSwgUC50b1Jhd1goKSwgbSkpO1xuICAgICAgICByZXR1cm4gZmluYWxpemVTY2hub3JyVmVyaWZ5KHIsIFAsIHMsIGUpO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgU2hhRXJyb3IpXG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbmV4cG9ydCBjb25zdCBzY2hub3JyID0ge1xuICAgIFNpZ25hdHVyZTogU2Nobm9yclNpZ25hdHVyZSxcbiAgICBnZXRQdWJsaWNLZXk6IHNjaG5vcnJHZXRQdWJsaWNLZXksXG4gICAgc2lnbjogc2Nobm9yclNpZ24sXG4gICAgdmVyaWZ5OiBzY2hub3JyVmVyaWZ5LFxuICAgIHNpZ25TeW5jOiBzY2hub3JyU2lnblN5bmMsXG4gICAgdmVyaWZ5U3luYzogc2Nobm9yclZlcmlmeVN5bmMsXG59O1xuUG9pbnQuQkFTRS5fc2V0V2luZG93U2l6ZSg4KTtcbmNvbnN0IGNyeXB0byA9IHtcbiAgICBub2RlOiBub2RlQ3J5cHRvLFxuICAgIHdlYjogdHlwZW9mIHNlbGYgPT09ICdvYmplY3QnICYmICdjcnlwdG8nIGluIHNlbGYgPyBzZWxmLmNyeXB0byA6IHVuZGVmaW5lZCxcbn07XG5jb25zdCBUQUdTID0ge1xuICAgIGNoYWxsZW5nZTogJ0JJUDAzNDAvY2hhbGxlbmdlJyxcbiAgICBhdXg6ICdCSVAwMzQwL2F1eCcsXG4gICAgbm9uY2U6ICdCSVAwMzQwL25vbmNlJyxcbn07XG5jb25zdCBUQUdHRURfSEFTSF9QUkVGSVhFUyA9IHt9O1xuZXhwb3J0IGNvbnN0IHV0aWxzID0ge1xuICAgIGJ5dGVzVG9IZXgsXG4gICAgaGV4VG9CeXRlcyxcbiAgICBjb25jYXRCeXRlcyxcbiAgICBtb2QsXG4gICAgaW52ZXJ0LFxuICAgIGlzVmFsaWRQcml2YXRlS2V5KHByaXZhdGVLZXkpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIG5vcm1hbGl6ZVByaXZhdGVLZXkocHJpdmF0ZUtleSk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgX2JpZ2ludFRvMzJCeXRlczogbnVtVG8zMmIsXG4gICAgX25vcm1hbGl6ZVByaXZhdGVLZXk6IG5vcm1hbGl6ZVByaXZhdGVLZXksXG4gICAgaGFzaFRvUHJpdmF0ZUtleTogKGhhc2gpID0+IHtcbiAgICAgICAgaGFzaCA9IGVuc3VyZUJ5dGVzKGhhc2gpO1xuICAgICAgICBjb25zdCBtaW5MZW4gPSBncm91cExlbiArIDg7XG4gICAgICAgIGlmIChoYXNoLmxlbmd0aCA8IG1pbkxlbiB8fCBoYXNoLmxlbmd0aCA+IDEwMjQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgdmFsaWQgYnl0ZXMgb2YgcHJpdmF0ZSBrZXkgYXMgcGVyIEZJUFMgMTg2YCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbnVtID0gbW9kKGJ5dGVzVG9OdW1iZXIoaGFzaCksIENVUlZFLm4gLSBfMW4pICsgXzFuO1xuICAgICAgICByZXR1cm4gbnVtVG8zMmIobnVtKTtcbiAgICB9LFxuICAgIHJhbmRvbUJ5dGVzOiAoYnl0ZXNMZW5ndGggPSAzMikgPT4ge1xuICAgICAgICBpZiAoY3J5cHRvLndlYikge1xuICAgICAgICAgICAgcmV0dXJuIGNyeXB0by53ZWIuZ2V0UmFuZG9tVmFsdWVzKG5ldyBVaW50OEFycmF5KGJ5dGVzTGVuZ3RoKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoY3J5cHRvLm5vZGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgcmFuZG9tQnl0ZXMgfSA9IGNyeXB0by5ub2RlO1xuICAgICAgICAgICAgcmV0dXJuIFVpbnQ4QXJyYXkuZnJvbShyYW5kb21CeXRlcyhieXRlc0xlbmd0aCkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlIGVudmlyb25tZW50IGRvZXNuJ3QgaGF2ZSByYW5kb21CeXRlcyBmdW5jdGlvblwiKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgcmFuZG9tUHJpdmF0ZUtleTogKCkgPT4gdXRpbHMuaGFzaFRvUHJpdmF0ZUtleSh1dGlscy5yYW5kb21CeXRlcyhncm91cExlbiArIDgpKSxcbiAgICBwcmVjb21wdXRlKHdpbmRvd1NpemUgPSA4LCBwb2ludCA9IFBvaW50LkJBU0UpIHtcbiAgICAgICAgY29uc3QgY2FjaGVkID0gcG9pbnQgPT09IFBvaW50LkJBU0UgPyBwb2ludCA6IG5ldyBQb2ludChwb2ludC54LCBwb2ludC55KTtcbiAgICAgICAgY2FjaGVkLl9zZXRXaW5kb3dTaXplKHdpbmRvd1NpemUpO1xuICAgICAgICBjYWNoZWQubXVsdGlwbHkoXzNuKTtcbiAgICAgICAgcmV0dXJuIGNhY2hlZDtcbiAgICB9LFxuICAgIHNoYTI1NjogYXN5bmMgKC4uLm1lc3NhZ2VzKSA9PiB7XG4gICAgICAgIGlmIChjcnlwdG8ud2ViKSB7XG4gICAgICAgICAgICBjb25zdCBidWZmZXIgPSBhd2FpdCBjcnlwdG8ud2ViLnN1YnRsZS5kaWdlc3QoJ1NIQS0yNTYnLCBjb25jYXRCeXRlcyguLi5tZXNzYWdlcykpO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KGJ1ZmZlcik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoY3J5cHRvLm5vZGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgY3JlYXRlSGFzaCB9ID0gY3J5cHRvLm5vZGU7XG4gICAgICAgICAgICBjb25zdCBoYXNoID0gY3JlYXRlSGFzaCgnc2hhMjU2Jyk7XG4gICAgICAgICAgICBtZXNzYWdlcy5mb3JFYWNoKChtKSA9PiBoYXNoLnVwZGF0ZShtKSk7XG4gICAgICAgICAgICByZXR1cm4gVWludDhBcnJheS5mcm9tKGhhc2guZGlnZXN0KCkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlIGVudmlyb25tZW50IGRvZXNuJ3QgaGF2ZSBzaGEyNTYgZnVuY3Rpb25cIik7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGhtYWNTaGEyNTY6IGFzeW5jIChrZXksIC4uLm1lc3NhZ2VzKSA9PiB7XG4gICAgICAgIGlmIChjcnlwdG8ud2ViKSB7XG4gICAgICAgICAgICBjb25zdCBja2V5ID0gYXdhaXQgY3J5cHRvLndlYi5zdWJ0bGUuaW1wb3J0S2V5KCdyYXcnLCBrZXksIHsgbmFtZTogJ0hNQUMnLCBoYXNoOiB7IG5hbWU6ICdTSEEtMjU2JyB9IH0sIGZhbHNlLCBbJ3NpZ24nXSk7XG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gY29uY2F0Qnl0ZXMoLi4ubWVzc2FnZXMpO1xuICAgICAgICAgICAgY29uc3QgYnVmZmVyID0gYXdhaXQgY3J5cHRvLndlYi5zdWJ0bGUuc2lnbignSE1BQycsIGNrZXksIG1lc3NhZ2UpO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KGJ1ZmZlcik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoY3J5cHRvLm5vZGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgY3JlYXRlSG1hYyB9ID0gY3J5cHRvLm5vZGU7XG4gICAgICAgICAgICBjb25zdCBoYXNoID0gY3JlYXRlSG1hYygnc2hhMjU2Jywga2V5KTtcbiAgICAgICAgICAgIG1lc3NhZ2VzLmZvckVhY2goKG0pID0+IGhhc2gudXBkYXRlKG0pKTtcbiAgICAgICAgICAgIHJldHVybiBVaW50OEFycmF5LmZyb20oaGFzaC5kaWdlc3QoKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgZW52aXJvbm1lbnQgZG9lc24ndCBoYXZlIGhtYWMtc2hhMjU2IGZ1bmN0aW9uXCIpO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBzaGEyNTZTeW5jOiB1bmRlZmluZWQsXG4gICAgaG1hY1NoYTI1NlN5bmM6IHVuZGVmaW5lZCxcbiAgICB0YWdnZWRIYXNoOiBhc3luYyAodGFnLCAuLi5tZXNzYWdlcykgPT4ge1xuICAgICAgICBsZXQgdGFnUCA9IFRBR0dFRF9IQVNIX1BSRUZJWEVTW3RhZ107XG4gICAgICAgIGlmICh0YWdQID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhZ0ggPSBhd2FpdCB1dGlscy5zaGEyNTYoVWludDhBcnJheS5mcm9tKHRhZywgKGMpID0+IGMuY2hhckNvZGVBdCgwKSkpO1xuICAgICAgICAgICAgdGFnUCA9IGNvbmNhdEJ5dGVzKHRhZ0gsIHRhZ0gpO1xuICAgICAgICAgICAgVEFHR0VEX0hBU0hfUFJFRklYRVNbdGFnXSA9IHRhZ1A7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHV0aWxzLnNoYTI1Nih0YWdQLCAuLi5tZXNzYWdlcyk7XG4gICAgfSxcbiAgICB0YWdnZWRIYXNoU3luYzogKHRhZywgLi4ubWVzc2FnZXMpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBfc2hhMjU2U3luYyAhPT0gJ2Z1bmN0aW9uJylcbiAgICAgICAgICAgIHRocm93IG5ldyBTaGFFcnJvcignc2hhMjU2U3luYyBpcyB1bmRlZmluZWQsIHlvdSBuZWVkIHRvIHNldCBpdCcpO1xuICAgICAgICBsZXQgdGFnUCA9IFRBR0dFRF9IQVNIX1BSRUZJWEVTW3RhZ107XG4gICAgICAgIGlmICh0YWdQID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhZ0ggPSBfc2hhMjU2U3luYyhVaW50OEFycmF5LmZyb20odGFnLCAoYykgPT4gYy5jaGFyQ29kZUF0KDApKSk7XG4gICAgICAgICAgICB0YWdQID0gY29uY2F0Qnl0ZXModGFnSCwgdGFnSCk7XG4gICAgICAgICAgICBUQUdHRURfSEFTSF9QUkVGSVhFU1t0YWddID0gdGFnUDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gX3NoYTI1NlN5bmModGFnUCwgLi4ubWVzc2FnZXMpO1xuICAgIH0sXG4gICAgX0phY29iaWFuUG9pbnQ6IEphY29iaWFuUG9pbnQsXG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnRpZXModXRpbHMsIHtcbiAgICBzaGEyNTZTeW5jOiB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICAgIGdldCgpIHtcbiAgICAgICAgICAgIHJldHVybiBfc2hhMjU2U3luYztcbiAgICAgICAgfSxcbiAgICAgICAgc2V0KHZhbCkge1xuICAgICAgICAgICAgaWYgKCFfc2hhMjU2U3luYylcbiAgICAgICAgICAgICAgICBfc2hhMjU2U3luYyA9IHZhbDtcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIGhtYWNTaGEyNTZTeW5jOiB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICAgIGdldCgpIHtcbiAgICAgICAgICAgIHJldHVybiBfaG1hY1NoYTI1NlN5bmM7XG4gICAgICAgIH0sXG4gICAgICAgIHNldCh2YWwpIHtcbiAgICAgICAgICAgIGlmICghX2htYWNTaGEyNTZTeW5jKVxuICAgICAgICAgICAgICAgIF9obWFjU2hhMjU2U3luYyA9IHZhbDtcbiAgICAgICAgfSxcbiAgICB9LFxufSk7XG4iLCJpbXBvcnQgeyBiZWNoMzIgfSBmcm9tICdiZWNoMzInO1xuXG5jb25zdCB1dGY4RGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcigndXRmLTgnKVxuY29uc3QgaGV4ZXMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiAyNTYgfSwgKHYsIGkpID0+IGkudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsICcwJykpO1xuXG5mdW5jdGlvbiBoZXhUb0J5dGVzKGhleCkge1xuICBsZXQgYnl0ZXMgPSBbXTtcbiAgZm9yIChsZXQgYyA9IDA7IGMgPCBoZXgubGVuZ3RoOyBjICs9IDIpXG4gICAgYnl0ZXMucHVzaChwYXJzZUludChoZXguc3Vic3RyKGMsIDIpLCAxNikpO1xuICByZXR1cm4gYnl0ZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXROb3RlSWQoaGV4SWQpIHtcbiAgY29uc3QgYmIgPSBoZXhUb0J5dGVzKGhleElkKTtcbiAgY29uc3Qgd29yZHMgPSBiZWNoMzIudG9Xb3JkcyhiYik7XG4gIHJldHVybiBiZWNoMzIuZW5jb2RlKCdub3RlJywgd29yZHMsIDEyMCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXROcHViKGhleFB1YmtleSkge1xuICBjb25zdCBiYiA9IGhleFRvQnl0ZXMoaGV4UHVia2V5KTtcbiAgY29uc3Qgd29yZHMgPSBiZWNoMzIudG9Xb3JkcyhiYik7XG4gIHJldHVybiBiZWNoMzIuZW5jb2RlKCducHViJywgd29yZHMsIDEyMCk7XG59XG5cbmZ1bmN0aW9uIGZyb21Xb3Jkcyh3b3Jkcykge1xuICByZXR1cm4gYmVjaDMyLmZyb21Xb3Jkcyh3b3JkcylcbiAgICAubWFwKChieXRlcykgPT4gYnl0ZXMudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsICcwJykpXG4gICAgLmpvaW4oJycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VOb3RlSWQobm90ZUlkKSB7XG4gIGNvbnN0IHIgPSBiZWNoMzIuZGVjb2RlKG5vdGVJZCwgMTIwKTtcbiAgaWYgKHIucHJlZml4ICE9IFwibm90ZVwiKSByZXR1cm4gXCJcIjtcbiAgcmV0dXJuIGZyb21Xb3JkcyhyLndvcmRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlTnB1YihucHViKSB7XG4gIGNvbnN0IHIgPSBiZWNoMzIuZGVjb2RlKG5wdWIsIDEyMCk7XG4gIGlmIChyLnByZWZpeCAhPSBcIm5wdWJcIikgcmV0dXJuIFwiXCI7XG4gIHJldHVybiBmcm9tV29yZHMoci53b3Jkcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZU5wcm9maWxlKG5wcm9maWxlKSB7XG4gIGNvbnN0IHIgPSBiZWNoMzIuZGVjb2RlKG5wcm9maWxlLCAzMDApO1xuICBpZiAoci5wcmVmaXggIT0gXCJucHJvZmlsZVwiKSByZXR1cm4gbnVsbDtcblxuICBjb25zdCBkYXRhID0gbmV3IFVpbnQ4QXJyYXkoYmVjaDMyLmZyb21Xb3JkcyhyLndvcmRzKSlcbiAgY29uc3QgdGx2ID0gcGFyc2VUTFYoZGF0YSk7XG4gIGlmICghdGx2WzBdPy5bMF0pIHRocm93IG5ldyBFcnJvcignbWlzc2luZyBUTFYgMCBmb3IgbnByb2ZpbGUnKVxuICBpZiAodGx2WzBdWzBdLmxlbmd0aCAhPT0gMzIpIHRocm93IG5ldyBFcnJvcignVExWIDAgc2hvdWxkIGJlIDMyIGJ5dGVzJylcblxuICByZXR1cm4ge1xuICAgIHR5cGU6ICducHJvZmlsZScsXG4gICAgZGF0YToge1xuICAgICAgcHVia2V5OiBieXRlc1RvSGV4KHRsdlswXVswXSksXG4gICAgICByZWxheXM6IHRsdlsxXSA/IHRsdlsxXS5tYXAoZCA9PiB1dGY4RGVjb2Rlci5kZWNvZGUoZCkpIDogW11cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlTmFkZHIobmFkZHIpIHtcblxuICBpZiAoIW5hZGRyKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgciA9IGJlY2gzMi5kZWNvZGUobmFkZHIsIDMwMClcbiAgY29uc3QgZGF0YSA9IG5ldyBVaW50OEFycmF5KGJlY2gzMi5mcm9tV29yZHMoci53b3JkcykpXG4gIGNvbnN0IHRsdiA9IHBhcnNlVExWKGRhdGEpO1xuXG4gIGlmICghdGx2WzBdPy5bMF0pIHRocm93IG5ldyBFcnJvcignbWlzc2luZyBUTFYgMCBmb3IgbmFkZHInKVxuICBpZiAoIXRsdlsyXT8uWzBdKSB0aHJvdyBuZXcgRXJyb3IoJ21pc3NpbmcgVExWIDIgZm9yIG5hZGRyJylcbiAgaWYgKHRsdlsyXVswXS5sZW5ndGggIT09IDMyKSB0aHJvdyBuZXcgRXJyb3IoJ1RMViAyIHNob3VsZCBiZSAzMiBieXRlcycpXG4gIGlmICghdGx2WzNdPy5bMF0pIHRocm93IG5ldyBFcnJvcignbWlzc2luZyBUTFYgMyBmb3IgbmFkZHInKVxuICBpZiAodGx2WzNdWzBdLmxlbmd0aCAhPT0gNCkgdGhyb3cgbmV3IEVycm9yKCdUTFYgMyBzaG91bGQgYmUgNCBieXRlcycpXG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnbmFkZHInLFxuICAgIGRhdGE6IHtcbiAgICAgIGlkZW50aWZpZXI6IHV0ZjhEZWNvZGVyLmRlY29kZSh0bHZbMF1bMF0pLFxuICAgICAgcHVia2V5OiBieXRlc1RvSGV4KHRsdlsyXVswXSksXG4gICAgICBraW5kOiBwYXJzZUludChieXRlc1RvSGV4KHRsdlszXVswXSksIDE2KSxcbiAgICAgIHJlbGF5czogdGx2WzFdID8gdGx2WzFdLm1hcChkID0+IHV0ZjhEZWNvZGVyLmRlY29kZShkKSkgOiBbXVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0TnB1YihucHViKSB7XG4gIHJldHVybiBgJHtucHViLnNsaWNlKFxuICAgIDAsXG4gICAgMTJcbiAgKX0uLi4ke25wdWIuc2xpY2UoLTQpfWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXROb3RlSWQobm90ZUlkKSB7XG4gIHJldHVybiBgJHtub3RlSWQuc2xpY2UoXG4gICAgMCxcbiAgICAxMCxcbiAgKX0uLi4ke25vdGVJZC5zbGljZSgtNCl9YDtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0WmFwQW1vdW50KGEpIHtcbiAgYSAvPSAxMDAwO1xuICBpZiAoYSA+PSAxMDAwMDAwKSByZXR1cm4gKE1hdGgucm91bmQoYSAvIDEwMDAwMCkgLyAxMCkgKyBcIk1cIjtcbiAgaWYgKGEgPj0gMTAwMCkgcmV0dXJuIChNYXRoLnJvdW5kKGEgLyAxMDApIC8gMTApICsgXCJLXCI7XG4gIHJldHVybiBhO1xufVxuXG5mdW5jdGlvbiBwYXJzZVRMVihkYXRhKSB7XG4gIGxldCByZXN1bHQgPSB7fVxuICBsZXQgcmVzdCA9IGRhdGFcbiAgd2hpbGUgKHJlc3QubGVuZ3RoID4gMCkge1xuICAgIGxldCB0ID0gcmVzdFswXVxuICAgIGxldCBsID0gcmVzdFsxXVxuICAgIGxldCB2ID0gcmVzdC5zbGljZSgyLCAyICsgbClcbiAgICByZXN0ID0gcmVzdC5zbGljZSgyICsgbClcbiAgICBpZiAodi5sZW5ndGggPCBsKSBjb250aW51ZVxuICAgIHJlc3VsdFt0XSA9IHJlc3VsdFt0XSB8fCBbXVxuICAgIHJlc3VsdFt0XS5wdXNoKHYpXG4gIH1cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG5mdW5jdGlvbiBieXRlc1RvSGV4KHVpbnQ4YSkge1xuICAvLyBwcmUtY2FjaGluZyBpbXByb3ZlcyB0aGUgc3BlZWQgNnhcbiAgaWYgKCEodWludDhhIGluc3RhbmNlb2YgVWludDhBcnJheSkpIHRocm93IG5ldyBFcnJvcignVWludDhBcnJheSBleHBlY3RlZCcpO1xuICBsZXQgaGV4ID0gJyc7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdWludDhhLmxlbmd0aDsgaSsrKSB7XG4gICAgaGV4ICs9IGhleGVzW3VpbnQ4YVtpXV07XG4gIH1cbiAgcmV0dXJuIGhleDtcbn1cbiIsImltcG9ydHtvcHRpb25zIGFzIG59ZnJvbVwicHJlYWN0XCI7dmFyIHQscix1LGksbz0wLGY9W10sYz1bXSxlPW4uX19iLGE9bi5fX3Isdj1uLmRpZmZlZCxsPW4uX19jLG09bi51bm1vdW50O2Z1bmN0aW9uIGQodCx1KXtuLl9faCYmbi5fX2gocix0LG98fHUpLG89MDt2YXIgaT1yLl9fSHx8KHIuX19IPXtfXzpbXSxfX2g6W119KTtyZXR1cm4gdD49aS5fXy5sZW5ndGgmJmkuX18ucHVzaCh7X19WOmN9KSxpLl9fW3RdfWZ1bmN0aW9uIGgobil7cmV0dXJuIG89MSxzKEIsbil9ZnVuY3Rpb24gcyhuLHUsaSl7dmFyIG89ZCh0KyssMik7aWYoby50PW4sIW8uX19jJiYoby5fXz1baT9pKHUpOkIodm9pZCAwLHUpLGZ1bmN0aW9uKG4pe3ZhciB0PW8uX19OP28uX19OWzBdOm8uX19bMF0scj1vLnQodCxuKTt0IT09ciYmKG8uX19OPVtyLG8uX19bMV1dLG8uX19jLnNldFN0YXRlKHt9KSl9XSxvLl9fYz1yLCFyLnUpKXt2YXIgZj1mdW5jdGlvbihuLHQscil7aWYoIW8uX19jLl9fSClyZXR1cm4hMDt2YXIgdT1vLl9fYy5fX0guX18uZmlsdGVyKGZ1bmN0aW9uKG4pe3JldHVybiBuLl9fY30pO2lmKHUuZXZlcnkoZnVuY3Rpb24obil7cmV0dXJuIW4uX19OfSkpcmV0dXJuIWN8fGMuY2FsbCh0aGlzLG4sdCxyKTt2YXIgaT0hMTtyZXR1cm4gdS5mb3JFYWNoKGZ1bmN0aW9uKG4pe2lmKG4uX19OKXt2YXIgdD1uLl9fWzBdO24uX189bi5fX04sbi5fX049dm9pZCAwLHQhPT1uLl9fWzBdJiYoaT0hMCl9fSksISghaSYmby5fX2MucHJvcHM9PT1uKSYmKCFjfHxjLmNhbGwodGhpcyxuLHQscikpfTtyLnU9ITA7dmFyIGM9ci5zaG91bGRDb21wb25lbnRVcGRhdGUsZT1yLmNvbXBvbmVudFdpbGxVcGRhdGU7ci5jb21wb25lbnRXaWxsVXBkYXRlPWZ1bmN0aW9uKG4sdCxyKXtpZih0aGlzLl9fZSl7dmFyIHU9YztjPXZvaWQgMCxmKG4sdCxyKSxjPXV9ZSYmZS5jYWxsKHRoaXMsbix0LHIpfSxyLnNob3VsZENvbXBvbmVudFVwZGF0ZT1mfXJldHVybiBvLl9fTnx8by5fX31mdW5jdGlvbiBwKHUsaSl7dmFyIG89ZCh0KyssMyk7IW4uX19zJiZ6KG8uX19ILGkpJiYoby5fXz11LG8uaT1pLHIuX19ILl9faC5wdXNoKG8pKX1mdW5jdGlvbiB5KHUsaSl7dmFyIG89ZCh0KyssNCk7IW4uX19zJiZ6KG8uX19ILGkpJiYoby5fXz11LG8uaT1pLHIuX19oLnB1c2gobykpfWZ1bmN0aW9uIF8obil7cmV0dXJuIG89NSxGKGZ1bmN0aW9uKCl7cmV0dXJue2N1cnJlbnQ6bn19LFtdKX1mdW5jdGlvbiBBKG4sdCxyKXtvPTYseShmdW5jdGlvbigpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIG4/KG4odCgpKSxmdW5jdGlvbigpe3JldHVybiBuKG51bGwpfSk6bj8obi5jdXJyZW50PXQoKSxmdW5jdGlvbigpe3JldHVybiBuLmN1cnJlbnQ9bnVsbH0pOnZvaWQgMH0sbnVsbD09cj9yOnIuY29uY2F0KG4pKX1mdW5jdGlvbiBGKG4scil7dmFyIHU9ZCh0KyssNyk7cmV0dXJuIHoodS5fX0gscik/KHUuX19WPW4oKSx1Lmk9cix1Ll9faD1uLHUuX19WKTp1Ll9ffWZ1bmN0aW9uIFQobix0KXtyZXR1cm4gbz04LEYoZnVuY3Rpb24oKXtyZXR1cm4gbn0sdCl9ZnVuY3Rpb24gcShuKXt2YXIgdT1yLmNvbnRleHRbbi5fX2NdLGk9ZCh0KyssOSk7cmV0dXJuIGkuYz1uLHU/KG51bGw9PWkuX18mJihpLl9fPSEwLHUuc3ViKHIpKSx1LnByb3BzLnZhbHVlKTpuLl9ffWZ1bmN0aW9uIHgodCxyKXtuLnVzZURlYnVnVmFsdWUmJm4udXNlRGVidWdWYWx1ZShyP3IodCk6dCl9ZnVuY3Rpb24gUChuKXt2YXIgdT1kKHQrKywxMCksaT1oKCk7cmV0dXJuIHUuX189bixyLmNvbXBvbmVudERpZENhdGNofHwoci5jb21wb25lbnREaWRDYXRjaD1mdW5jdGlvbihuLHQpe3UuX18mJnUuX18obix0KSxpWzFdKG4pfSksW2lbMF0sZnVuY3Rpb24oKXtpWzFdKHZvaWQgMCl9XX1mdW5jdGlvbiBWKCl7dmFyIG49ZCh0KyssMTEpO2lmKCFuLl9fKXtmb3IodmFyIHU9ci5fX3Y7bnVsbCE9PXUmJiF1Ll9fbSYmbnVsbCE9PXUuX187KXU9dS5fXzt2YXIgaT11Ll9fbXx8KHUuX19tPVswLDBdKTtuLl9fPVwiUFwiK2lbMF0rXCItXCIraVsxXSsrfXJldHVybiBuLl9ffWZ1bmN0aW9uIGIoKXtmb3IodmFyIHQ7dD1mLnNoaWZ0KCk7KWlmKHQuX19QJiZ0Ll9fSCl0cnl7dC5fX0guX19oLmZvckVhY2goayksdC5fX0guX19oLmZvckVhY2godyksdC5fX0guX19oPVtdfWNhdGNoKHIpe3QuX19ILl9faD1bXSxuLl9fZShyLHQuX192KX19bi5fX2I9ZnVuY3Rpb24obil7cj1udWxsLGUmJmUobil9LG4uX19yPWZ1bmN0aW9uKG4pe2EmJmEobiksdD0wO3ZhciBpPShyPW4uX19jKS5fX0g7aSYmKHU9PT1yPyhpLl9faD1bXSxyLl9faD1bXSxpLl9fLmZvckVhY2goZnVuY3Rpb24obil7bi5fX04mJihuLl9fPW4uX19OKSxuLl9fVj1jLG4uX19OPW4uaT12b2lkIDB9KSk6KGkuX19oLmZvckVhY2goayksaS5fX2guZm9yRWFjaCh3KSxpLl9faD1bXSx0PTApKSx1PXJ9LG4uZGlmZmVkPWZ1bmN0aW9uKHQpe3YmJnYodCk7dmFyIG89dC5fX2M7byYmby5fX0gmJihvLl9fSC5fX2gubGVuZ3RoJiYoMSE9PWYucHVzaChvKSYmaT09PW4ucmVxdWVzdEFuaW1hdGlvbkZyYW1lfHwoKGk9bi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUpfHxqKShiKSksby5fX0guX18uZm9yRWFjaChmdW5jdGlvbihuKXtuLmkmJihuLl9fSD1uLmkpLG4uX19WIT09YyYmKG4uX189bi5fX1YpLG4uaT12b2lkIDAsbi5fX1Y9Y30pKSx1PXI9bnVsbH0sbi5fX2M9ZnVuY3Rpb24odCxyKXtyLnNvbWUoZnVuY3Rpb24odCl7dHJ5e3QuX19oLmZvckVhY2goayksdC5fX2g9dC5fX2guZmlsdGVyKGZ1bmN0aW9uKG4pe3JldHVybiFuLl9ffHx3KG4pfSl9Y2F0Y2godSl7ci5zb21lKGZ1bmN0aW9uKG4pe24uX19oJiYobi5fX2g9W10pfSkscj1bXSxuLl9fZSh1LHQuX192KX19KSxsJiZsKHQscil9LG4udW5tb3VudD1mdW5jdGlvbih0KXttJiZtKHQpO3ZhciByLHU9dC5fX2M7dSYmdS5fX0gmJih1Ll9fSC5fXy5mb3JFYWNoKGZ1bmN0aW9uKG4pe3RyeXtrKG4pfWNhdGNoKG4pe3I9bn19KSx1Ll9fSD12b2lkIDAsciYmbi5fX2Uocix1Ll9fdikpfTt2YXIgZz1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWU7ZnVuY3Rpb24gaihuKXt2YXIgdCxyPWZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHUpLGcmJmNhbmNlbEFuaW1hdGlvbkZyYW1lKHQpLHNldFRpbWVvdXQobil9LHU9c2V0VGltZW91dChyLDEwMCk7ZyYmKHQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHIpKX1mdW5jdGlvbiBrKG4pe3ZhciB0PXIsdT1uLl9fYztcImZ1bmN0aW9uXCI9PXR5cGVvZiB1JiYobi5fX2M9dm9pZCAwLHUoKSkscj10fWZ1bmN0aW9uIHcobil7dmFyIHQ9cjtuLl9fYz1uLl9fKCkscj10fWZ1bmN0aW9uIHoobix0KXtyZXR1cm4hbnx8bi5sZW5ndGghPT10Lmxlbmd0aHx8dC5zb21lKGZ1bmN0aW9uKHQscil7cmV0dXJuIHQhPT1uW3JdfSl9ZnVuY3Rpb24gQihuLHQpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dChuKTp0fWV4cG9ydHtUIGFzIHVzZUNhbGxiYWNrLHEgYXMgdXNlQ29udGV4dCx4IGFzIHVzZURlYnVnVmFsdWUscCBhcyB1c2VFZmZlY3QsUCBhcyB1c2VFcnJvckJvdW5kYXJ5LFYgYXMgdXNlSWQsQSBhcyB1c2VJbXBlcmF0aXZlSGFuZGxlLHkgYXMgdXNlTGF5b3V0RWZmZWN0LEYgYXMgdXNlTWVtbyxzIGFzIHVzZVJlZHVjZXIsXyBhcyB1c2VSZWYsaCBhcyB1c2VTdGF0ZX07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1ob29rcy5tb2R1bGUuanMubWFwXG4iLCJpbXBvcnR7b3B0aW9ucyBhcyByfWZyb21cInByZWFjdFwiO2V4cG9ydHtGcmFnbWVudH1mcm9tXCJwcmVhY3RcIjt2YXIgXz0wO2Z1bmN0aW9uIG8obyxlLG4sdCxmLGwpe3ZhciBzLHUsYT17fTtmb3IodSBpbiBlKVwicmVmXCI9PXU/cz1lW3VdOmFbdV09ZVt1XTt2YXIgaT17dHlwZTpvLHByb3BzOmEsa2V5Om4scmVmOnMsX19rOm51bGwsX186bnVsbCxfX2I6MCxfX2U6bnVsbCxfX2Q6dm9pZCAwLF9fYzpudWxsLF9faDpudWxsLGNvbnN0cnVjdG9yOnZvaWQgMCxfX3Y6LS1fLF9fc291cmNlOmYsX19zZWxmOmx9O2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIG8mJihzPW8uZGVmYXVsdFByb3BzKSlmb3IodSBpbiBzKXZvaWQgMD09PWFbdV0mJihhW3VdPXNbdV0pO3JldHVybiByLnZub2RlJiZyLnZub2RlKGkpLGl9ZXhwb3J0e28gYXMganN4LG8gYXMganN4REVWLG8gYXMganN4c307XG4vLyMgc291cmNlTWFwcGluZ1VSTD1qc3hSdW50aW1lLm1vZHVsZS5qcy5tYXBcbiIsImZ1bmN0aW9uIENvcHlJY29uKHsgYWRkaXRpb25hbENsYXNzZXMgfSkge1xuICBsZXQgY2xhc3NlcyA9ICdjb3B5SWNvbic7XG4gIGlmIChhZGRpdGlvbmFsQ2xhc3Nlcykge1xuICAgIGxldCBhcnIgPSBhZGRpdGlvbmFsQ2xhc3Nlcy5zcGxpdCgnICcpO1xuICAgIGFyci5wdXNoKGNsYXNzZXMpO1xuICAgIGNsYXNzZXMgPSBhcnIuam9pbignICcpO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8c3ZnXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICB3aWR0aD1cIjEuMjVyZW1cIlxuICAgICAgaGVpZ2h0PVwiMS4yNXJlbVwiXG4gICAgICBjbGFzcz17Y2xhc3Nlc31cbiAgICA+XG4gICAgICA8cGF0aFxuICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICBkPVwiTTguMjUgNy41VjYuMTA4YzAtMS4xMzUuODQ1LTIuMDk4IDEuOTc2LTIuMTkyLjM3My0uMDMuNzQ4LS4wNTcgMS4xMjMtLjA4TTE1Ljc1IDE4SDE4YTIuMjUgMi4yNSAwIDAwMi4yNS0yLjI1VjYuMTA4YzAtMS4xMzUtLjg0NS0yLjA5OC0xLjk3Ni0yLjE5MmE0OC40MjQgNDguNDI0IDAgMDAtMS4xMjMtLjA4TTE1Ljc1IDE4Ljc1di0xLjg3NWEzLjM3NSAzLjM3NSAwIDAwLTMuMzc1LTMuMzc1aC0xLjVhMS4xMjUgMS4xMjUgMCAwMS0xLjEyNS0xLjEyNXYtMS41QTMuMzc1IDMuMzc1IDAgMDA2LjM3NSA3LjVINS4yNW0xMS45LTMuNjY0QTIuMjUxIDIuMjUxIDAgMDAxNSAyLjI1aC0xLjVhMi4yNTEgMi4yNTEgMCAwMC0yLjE1IDEuNTg2bTUuOCAwYy4wNjUuMjEuMS40MzMuMS42NjR2Ljc1aC02VjQuNWMwLS4yMzEuMDM1LS40NTQuMS0uNjY0TTYuNzUgNy41SDQuODc1Yy0uNjIxIDAtMS4xMjUuNTA0LTEuMTI1IDEuMTI1djEyYzAgLjYyMS41MDQgMS4xMjUgMS4xMjUgMS4xMjVoOS43NWMuNjIxIDAgMS4xMjUtLjUwNCAxLjEyNS0xLjEyNVYxNi41YTkgOSAwIDAwLTktOXpcIlxuICAgICAgLz5cbiAgICA8L3N2Zz5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29weUljb247XG4iLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3N0eWxlLmNzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xuXG4gICAgICBvcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xuICAgIFxub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3N0eWxlLmNzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsImltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSAncHJlYWN0L2hvb2tzJztcbmltcG9ydCBDb3B5SWNvbiBmcm9tICcuL2ljb25zL2NvcHlJY29uLmpzeCc7XG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9zdHlsZS5jc3MnO1xuXG5mdW5jdGlvbiBDb3B5VGV4dCh7IGljb25DbGFzc2VzLCBkaXNwbGF5VGV4dCwgY29weVRleHQgfSkge1xuICBjb25zdCBbYnRuQ2xhc3Nlcywgc2V0QnRuQ2xhc3Nlc10gPSB1c2VTdGF0ZSgnbGlua0NvcHlCdG4nKTtcblxuICBmdW5jdGlvbiBjb3B5VG9DbGlwYm9hcmQoKSB7XG4gICAgdHJ5IHtcbiAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGNvcHlUZXh0KTtcbiAgICAgIHNldEJ0bkNsYXNzZXMoYCR7YnRuQ2xhc3Nlc30gZ3JlZW5gKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBzZXRCdG5DbGFzc2VzKGJ0bkNsYXNzZXMucmVwbGFjZSgnZ3JlZW4nLCAnJykudHJpbSgpKTtcbiAgICAgIH0sIDUwMCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gY29weTogJywgZXJyKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxidXR0b24gY2xhc3M9e2J0bkNsYXNzZXN9IG9uQ2xpY2s9eygpID0+IGNvcHlUb0NsaXBib2FyZCgpfT5cbiAgICAgIDxDb3B5SWNvbiBhZGRpdGlvbmFsQ2xhc3Nlcz17aWNvbkNsYXNzZXN9IC8+XG5cbiAgICAgIHtkaXNwbGF5VGV4dCAmJiA8c3BhbiBjbGFzcz1cImRpc3BsYXlUZXh0XCI+e2Rpc3BsYXlUZXh0fTwvc3Bhbj59XG4gICAgICA8c3BhbiBjbGFzcz1cImNvcHlUZXh0XCI+e2NvcHlUZXh0fTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29weVRleHQ7XG4iLCJmdW5jdGlvbiBLZXlJY29uKHsgYWRkaXRpb25hbENsYXNzZXMgfSkge1xuICBsZXQgY2xhc3NlcyA9ICdrZXlJY29uJztcbiAgaWYgKGFkZGl0aW9uYWxDbGFzc2VzKSB7XG4gICAgbGV0IGFyciA9IGFkZGl0aW9uYWxDbGFzc2VzLnNwbGl0KCcgJyk7XG4gICAgYXJyLnB1c2goY2xhc3Nlcyk7XG4gICAgY2xhc3NlcyA9IGFyci5qb2luKCcgJyk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxzdmdcbiAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgd2lkdGg9XCIxcmVtXCJcbiAgICAgIGhlaWdodD1cIjFyZW1cIlxuICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGNsYXNzPXtjbGFzc2VzfVxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgIGQ9XCJNMTUuNzUgNS4yNWEzIDMgMCAwMTMgM20zIDBhNiA2IDAgMDEtNy4wMjkgNS45MTJjLS41NjMtLjA5Ny0xLjE1OS4wMjYtMS41NjMuNDNMMTAuNSAxNy4yNUg4LjI1djIuMjVINnYyLjI1SDIuMjV2LTIuODE4YzAtLjU5Ny4yMzctMS4xNy42NTktMS41OTFsNi40OTktNi40OTljLjQwNC0uNDA0LjUyNy0xIC40My0xLjU2M0E2IDYgMCAxMTIxLjc1IDguMjV6XCJcbiAgICAgIC8+XG4gICAgPC9zdmc+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEtleUljb247XG4iLCJmdW5jdGlvbiBOb3N0cmljaEljb24oeyBhZGRpdGlvbmFsQ2xhc3NlcyB9KSB7XG4gIGxldCBjbGFzc2VzID0gJ25vc3RyaWNoSWNvbic7XG4gIGlmIChhZGRpdGlvbmFsQ2xhc3Nlcykge1xuICAgIGxldCBhcnIgPSBhZGRpdGlvbmFsQ2xhc3Nlcy5zcGxpdCgnICcpO1xuICAgIGFyci5wdXNoKGNsYXNzZXMpO1xuICAgIGNsYXNzZXMgPSBhcnIuam9pbignICcpO1xuICB9XG5cbiAgcmV0dXJuIChcblxuICAgIDxzdmdcbiAgICAgIHdpZHRoPVwiM3JlbVwiXG4gICAgICBoZWlnaHQ9XCIzcmVtXCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgNjc0IDc2OVwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgIGNsYXNzPXtjbGFzc2VzfVxuICAgID5cbiAgICAgIDxwYXRoIGQ9XCJNNTY3LjcyOSAzMjQuOTY3QzU4Mi45NDYgNDI4LjA4NCA0NzUuNzk1IDQ0OS40NjUgNDE1LjAyNyA0NDcuMzE4QzQxMS43MDUgNDQ3LjIgNDA4LjU3IDQ0OC44MTkgNDA2LjYzMSA0NTEuNTE5QzQwMC4zODcgNDYwLjIxNCAzODkuOTU2IDQ3Mi4wMTcgMzgxLjk1OCA0NzIuMDE3QzM3My4xMjcgNDcyLjAxNyAzNjUuMTkxIDQ4OS4yMTcgMzYxLjY3NSA0OTkuNjIxQzM2MS4zNiA1MDAuNTU1IDM2Mi4yNzkgNTAxLjQxNCAzNjMuMjE2IDUwMS4xMUM0NTkuODUyIDQ2OS43MTkgNDk3LjczNyA0NTguOTU0IDUxNC4wNDYgNDYxLjk3NEM1MjcuMTk0IDQ2NC40MDkgNTUxLjc4NSA1MDguNDM4IDU2Mi40MzcgNTMwLjE0OEM1MzUuOTU5IDUzMS42NyA1MjcuMTMzIDUwNy45MzEgNTIxLjA0NiA1MDMuNjdDNTE2LjE3NiA1MDAuMjYxIDUxNC4zNSA1MTUuODQ0IDUxNC4wNDYgNTI0LjA2MUM1MDguMjYzIDUyMS4wMTggNTAwLjk1OSA1MTYuNzU3IDUwMC4zNSA1MDMuNjdDNDk5Ljc0MSA0OTAuNTgzIDQ5My4wNDYgNDkzLjkzMSA0ODcuODcyIDQ5NC41MzlDNDgyLjY5OCA0OTUuMTQ4IDQwMy4yNjMgNTIwLjcxMyAzOTEuMzkzIDUyNC4wNjFDMzc5LjUyMyA1MjcuNDA5IDM2NS44MjggNTMxLjk3NCAzNTQuNTY3IDUzOS44ODdDMzM1LjY5NyA1NDkuMDE4IDMyMy41MjMgNTQyLjYyNiAzMjAuMTc1IDUyNy4xMDVDMzE3LjQ5NyA1MTQuNjg3IDMzNC44ODYgNDc2LjQ4MSAzNDMuOTE1IDQ1OC45M0MzMzIuNzU1IDQ2My4wOSAzMDkuNTg0IDQ3MS41MyAzMDYuMTc1IDQ3Mi4wMTdDMzAyLjg1NCA0NzIuNDkyIDI2MC41NDcgNTA1LjE3MiAyMzguMjAzIDUyMi43MDdDMjM3LjA5MSA1MjMuNTggMjM2LjM4IDUyNC44NDkgMjM2LjEzNCA1MjYuMjQxQzIzMi42MjcgNTQ2LjA1NCAyMjEuMTU3IDU1MS41MTYgMjAxLjE3NSA1NjEuOEMxODUuMTE3IDU3MC4wNjYgMTI4LjgyMiA2NTYuNjg0IDEwMC4yNzIgNzAyLjgwM0M5OC41ODU4IDcwNS41MjYgOTYuMTEyNiA3MDcuNjI5IDkzLjQyMDIgNzA5LjM2M0M3NC45Njg2IDcyMS4yNDkgNTYuMDE3OSA3NTMuMDEzIDQ4LjM5MTUgNzY4LjQ1M0MzNy42Nzg0IDczNy41MzIgNTEuNjM3OSA3MTAuOTMxIDU5Ljk1NjggNzAxLjQ5N0M1Ni4zMDQ2IDY5OC4zMzEgNDcuODg0MyA3MDAuMTc4IDQ0LjEzMDYgNzAxLjQ5N0M1NC40Nzg1IDY2NS44ODggOTAuNjk2MSA2NjUuODg4IDg5LjQ3ODcgNjY1Ljg4OEM5Ni4xNzQ0IDY2MC4xMDUgMTc0LjY5NiA1NDcuOCAxNzYuNTIzIDU0Mi42MjZDMTc4LjMzNiA1MzcuNDg4IDE3NS4zNDYgNTEzLjQzNiAyMTQuOTYyIDUwMC4yODdDMjE1LjQ5NSA1MDAuMTEgMjE2LjAyNCA0OTkuODY2IDIxNi40OTcgNDk5LjU2M0MyNDcuMzA2IDQ3OS44MDIgMjcwLjQyMyA0NDcuODY5IDI3OC4xNzUgNDM0LjI3OEMyMzYuNDYyIDQzMS40MDkgMTg4LjU5NiA0MDcuODE2IDE2NC4zNjYgMzkzLjE1MkMxNTkuODczIDM5MC40MzIgMTU1LjA3NyAzODguMTA1IDE0OS44NzEgMzg3LjQwN0MxMTUuNzY0IDM4Mi44MzUgODEuMzI4NSA0MDQuNzkxIDY3LjU2NTUgNDE3LjIzNUM2MS45NjU1IDQwOS40NDMgNjguMjc1NyAzODYuOCA3Mi4xMzA4IDM3Ni40NTJDNTguNDk1OSAzNzQuNTA0IDM4LjQ0OTUgMzk0LjMwNyAzMC4xMzA2IDQwNC40NTJDMjEuMTIxOCAzOTAuMzMgMjkuMDE0NiAzNjUuMDg5IDM0LjA4NzEgMzU0LjIzNEMxNi4wNjk2IDM1NC43MjEgMy44NTUwOSAzNjIuOTU5IDAgMzY3LjAxN0MxNC45MTMxIDI1NS45MyAxMjguOTg0IDI4OC4yMzcgMTMwLjI2MSAyODkuNzEyQzEyNC4xNzQgMjgzLjM4MiAxMjQuNjgyIDI3NS4xMDQgMTI1LjY5NiAyNzEuNzU2QzE5NC43ODMgMjczLjU4MiAyMjcuMDQ1IDI2Mi4wMTcgMjQ3LjQzNiAyNTAuMTQ3QzQwOC4xMzIgMTYwLjM2NCA0NzcuMzcyIDIxNS40NTEgNTAyLjkzNyAyMjkuMjk5QzUyOC41MDIgMjQzLjE0NyA1NzQuOTE2IDI0OC43NzcgNjA3LjAyNSAyMzUuOTk1QzY0NS4zNzMgMjE4LjY0NyA2MzkuNTk5IDE3My45MyA2MzEuODI5IDE1Ni44NjRDNjIzLjMwNyAxMzguMTQ2IDU3NS4yMiAxMTIuMjc2IDU1OC4xNzYgNzkuNTU5MUM1NDEuMTMzIDQ2Ljg0MjIgNTU1LjgyNSA1LjkzNzg5IDU3NS43MjggMS41MTA2MUM1OTQuODAyIC0yLjczMjEzIDYwNy45NzUgMi4zNzM4MyA2MTguMjg1IDExLjY4OTFDNjI1LjE1OSAxNy44OTk0IDY0NC40NiAyMi4zNDEzIDY1Mi41MjUgMjUuMjMyNkM2NjAuNTkgMjguMTIzOSA2NzMuOTgxIDMxLjkyODMgNjczLjIyMSAzNC4yMTA5QzY3Mi40NiAzNi40OTM1IDY1OS41NDggMzYuMTg4OSA2NTcuNTQ3IDM2LjE4ODlDNjUzLjQzOCAzNi4xODg5IDY0OC41NjggMzYuNzk3NiA2NTMuNDM4IDM5LjA4MDJDNjU5LjI0MyA0MS40MzQ4IDY2OC4wNTMgNDQuODc0NSA2NzIuMDk1IDQ3LjA4OEM2NzIuNTQ5IDQ3LjMzNjYgNjcyLjQ1NCA0Ny45NzkxIDY3MS45NTUgNDguMTE1NkM2NDMuODU4IDU1Ljc5OCA2MTguNzY4IDQwLjExMDggNjAwLjE3NyA1OC4xMDJDNTgxLjMwNyA3Ni4zNjMgNjIxLjQ4MSA5MC4zNjMgNjQyLjE3NyAxMTIuMjc2QzY2Mi44NzMgMTM0LjE4OSA2ODQuMTc3IDE2MC4zNjMgNjY3LjEzNCAyMjAuMDE2QzY1My44NzQgMjY2LjQyNCA1OTguMDkzIDMwNS44NDggNTY5LjY1NCAzMjEuMDQ1QzU2OC4yNTUgMzIxLjc5MyA1NjcuNDk3IDMyMy4zOTggNTY3LjcyOSAzMjQuOTY3WlwiIGZpbGw9XCIjN0EzQkZGXCIvPlxuICAgIDwvc3ZnPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBOb3N0cmljaEljb247XG4iLCJpbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gXCJwcmVhY3QvaG9va3NcIjtcbmltcG9ydCBcIi4vc3R5bGUuY3NzXCI7XG5cbmZ1bmN0aW9uIFByb2ZpbGVJbWFnZSh7IHRodW1ibmFpbCwgZnVsbEltYWdlLCBpc1Byb2ZpbGVJbWFnZSA9IHRydWUgfSkge1xuICBjb25zdCBbaXNGdWxsSW1hZ2VMb2FkZWQsIHNldElzRnVsbEltYWdlTG9hZGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2ltYWdlU3JjLCBzZXRJbWFnZVNyY10gPSB1c2VTdGF0ZSh0aHVtYm5haWwpO1xuXG4gIGNvbnN0IG9uRXJyb3IgPSAoKSA9PiB7XG4gICAgaWYgKCFpc0Z1bGxJbWFnZUxvYWRlZCkge1xuICAgICAgc2V0SW1hZ2VTcmMoZnVsbEltYWdlKTtcbiAgICAgIHNldElzRnVsbEltYWdlTG9hZGVkKHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRJbWFnZVNyYyhudWxsKTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIGltYWdlU3JjID8gKFxuICAgIDxpbWcgY2xhc3NOYW1lPXtpc1Byb2ZpbGVJbWFnZSA/IFwicHJvZmlsZUltZyBcIiA6IFwiZm9sbG93ZWRQcm9kaWxlSW1nXCJcbiAgICB9IHNyYz17aW1hZ2VTcmN9IG9uRXJyb3I9e29uRXJyb3J9IC8+XG4gICkgOiAoXG4gICAgPGRpdiBjbGFzcz1cInByb2ZpbGVXaXRob3V0SW1nXCIgLz5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgUHJvZmlsZUltYWdlO1xuIiwiaW1wb3J0IHsgZm9ybWF0TnB1YiwgZ2V0TnB1YiB9IGZyb20gXCIuLi91dGlscy9jb21tb25cIjtcbmltcG9ydCBDb3B5VGV4dCBmcm9tIFwiLi9jb3B5VGV4dC5qc3hcIjtcbmltcG9ydCBLZXlJY29uIGZyb20gXCIuL2ljb25zL2tleUljb24uanN4XCI7XG5pbXBvcnQgTm9zdHJpY2hJY29uIGZyb20gXCIuL2ljb25zL25vc3RyaWNoSWNvbi5qc3hcIjtcbmltcG9ydCBQcm9maWxlSW1hZ2UgZnJvbSBcIi4vcHJvZmlsZUltYWdlLmpzeFwiO1xuXG5mdW5jdGlvbiBQcm9maWxlKHsgcHJvZmlsZVBrZXksIHByb2ZpbGUsIG9wdGlvbnMgfSkge1xuICBsZXQgY2FjaGVkUHJvZmlsZVBpY3R1cmUsIGVuY29kZWRQcm9maWxlUGtleSwgdHJ1bmNhdGVkUHJvZmlsZVBrZXk7XG4gIGlmIChwcm9maWxlUGtleSkge1xuICAgIGVuY29kZWRQcm9maWxlUGtleSA9IGdldE5wdWIocHJvZmlsZVBrZXkpO1xuICAgIHRydW5jYXRlZFByb2ZpbGVQa2V5ID0gYCR7Zm9ybWF0TnB1YihlbmNvZGVkUHJvZmlsZVBrZXkpfWA7XG4gICAgY2FjaGVkUHJvZmlsZVBpY3R1cmUgPSBgaHR0cHM6Ly9tZWRpYS5ub3N0ci5iYW5kL3RodW1icy8ke3Byb2ZpbGVQa2V5LnNsaWNlKFxuICAgICAgLTRcbiAgICApfS8ke3Byb2ZpbGVQa2V5fS1waWN0dXJlLTY0YDtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJjYXJkUHJvZmlsZVwiPlxuICAgICAge2NhY2hlZFByb2ZpbGVQaWN0dXJlICYmIHByb2ZpbGUucGljdHVyZSA/IChcbiAgICAgICAgPFByb2ZpbGVJbWFnZVxuICAgICAgICAgIHRodW1ibmFpbD17Y2FjaGVkUHJvZmlsZVBpY3R1cmV9XG4gICAgICAgICAgZnVsbEltYWdlPXtwcm9maWxlLnBpY3R1cmV9XG4gICAgICAgIC8+XG4gICAgICApIDogKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInByb2ZpbGVXaXRob3V0SW1nXCIgLz5cbiAgICAgICl9XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInByb2ZpbGVEZXRhaWxzXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicHJvZmlsZU5hbWVcIj5cbiAgICAgICAgICA8YVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXIgbm9mb2xsb3dcIlxuICAgICAgICAgICAgaHJlZj17YGh0dHBzOi8vbm9zdHIuYmFuZC8ke2VuY29kZWRQcm9maWxlUGtleX1gfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtwcm9maWxlPy5kaXNwbGF5X25hbWUgfHwgcHJvZmlsZT8ubmFtZSB8fCBcIkxvYWRpbmcuLi5cIn1cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInByb2ZpbGVQa2V5XCI+XG4gICAgICAgICAgPEtleUljb24gYWRkaXRpb25hbENsYXNzZXM9XCJ3LTQgaC00XCIgLz5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJwa2V5XCI+e3RydW5jYXRlZFByb2ZpbGVQa2V5IHx8IFwibnB1Yi4uLlwifTwvc3Bhbj5cbiAgICAgICAgICA8Q29weVRleHQgaWNvbkNsYXNzZXM9XCJ3LTQgaC00XCIgY29weVRleHQ9e2VuY29kZWRQcm9maWxlUGtleX0gLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAge29wdGlvbnMgJiYgIW9wdGlvbnMuaGlkZU5vc3RyaWNoID8gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5vc3RyaWNoTGlua1wiPlxuICAgICAgICAgIDxhXG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlciBub2ZvbGxvd1wiXG4gICAgICAgICAgICBocmVmPXtgaHR0cHM6Ly9oZXlub3N0ci5jb21gfVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwibGlua0xpbmtcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxOb3N0cmljaEljb24gYWRkaXRpb25hbENsYXNzZXM9XCJ3LTQgaC00XCIgLz5cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKSA6IG51bGx9XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFByb2ZpbGU7XG4iLCJmdW5jdGlvbiBCb2x0SWNvbih7IGFkZGl0aW9uYWxDbGFzc2VzIH0pIHtcbiAgbGV0IGNsYXNzZXMgPSAnYm9sdEljb24nO1xuICBpZiAoYWRkaXRpb25hbENsYXNzZXMpIHtcbiAgICBsZXQgYXJyID0gYWRkaXRpb25hbENsYXNzZXMuc3BsaXQoJyAnKTtcbiAgICBhcnIucHVzaChjbGFzc2VzKTtcbiAgICBjbGFzc2VzID0gYXJyLmpvaW4oJyAnKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPHN2Z1xuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICBmaWxsPVwibm9uZVwiXG4gICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgd2lkdGg9XCIxLjI1cmVtXCJcbiAgICAgIGhlaWdodD1cIjEuMjVyZW1cIlxuICAgICAgY2xhc3M9e2NsYXNzZXN9XG4gICAgPlxuICAgICAgPHBhdGhcbiAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgZD1cIk0zLjc1IDEzLjVsMTAuNS0xMS4yNUwxMiAxMC41aDguMjVMOS43NSAyMS43NSAxMiAxMy41SDMuNzV6XCJcbiAgICAgIC8+XG4gICAgPC9zdmc+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEJvbHRJY29uO1xuIiwiZnVuY3Rpb24gSGVhcnRJY29uKHsgYWRkaXRpb25hbENsYXNzZXMgfSkge1xuICBsZXQgY2xhc3NlcyA9ICdoZWFydEljb24nO1xuICBpZiAoYWRkaXRpb25hbENsYXNzZXMpIHtcbiAgICBsZXQgYXJyID0gYWRkaXRpb25hbENsYXNzZXMuc3BsaXQoJyAnKTtcbiAgICBhcnIucHVzaChjbGFzc2VzKTtcbiAgICBjbGFzc2VzID0gYXJyLmpvaW4oJyAnKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPHN2Z1xuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICBmaWxsPVwibm9uZVwiXG4gICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICB3aWR0aD1cIjEuMjVyZW1cIlxuICAgICAgaGVpZ2h0PVwiMS4yNXJlbVwiXG4gICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgY2xhc3M9e2NsYXNzZXN9XG4gICAgPlxuICAgICAgPHBhdGhcbiAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgZD1cIk0yMSA4LjI1YzAtMi40ODUtMi4wOTktNC41LTQuNjg4LTQuNS0xLjkzNSAwLTMuNTk3IDEuMTI2LTQuMzEyIDIuNzMzLS43MTUtMS42MDctMi4zNzctMi43MzMtNC4zMTMtMi43MzNDNS4xIDMuNzUgMyA1Ljc2NSAzIDguMjVjMCA3LjIyIDkgMTIgOSAxMnM5LTQuNzggOS0xMnpcIlxuICAgICAgLz5cbiAgICA8L3N2Zz5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgSGVhcnRJY29uO1xuIiwiZnVuY3Rpb24gTGlua0ljb24oeyBhZGRpdGlvbmFsQ2xhc3NlcyB9KSB7XG4gIGxldCBjbGFzc2VzID0gJ2xpbmtJY29uJztcbiAgaWYgKGFkZGl0aW9uYWxDbGFzc2VzKSB7XG4gICAgbGV0IGFyciA9IGFkZGl0aW9uYWxDbGFzc2VzLnNwbGl0KCcgJyk7XG4gICAgYXJyLnB1c2goY2xhc3Nlcyk7XG4gICAgY2xhc3NlcyA9IGFyci5qb2luKCcgJyk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxzdmdcbiAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgIHdpZHRoPVwiMS4yNXJlbVwiXG4gICAgICBoZWlnaHQ9XCIxLjI1cmVtXCJcbiAgICAgIGNsYXNzPXtjbGFzc2VzfVxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgIGQ9XCJNMTMuMTkgOC42ODhhNC41IDQuNSAwIDAxMS4yNDIgNy4yNDRsLTQuNSA0LjVhNC41IDQuNSAwIDAxLTYuMzY0LTYuMzY0bDEuNzU3LTEuNzU3bTEzLjM1LS42MjJsMS43NTctMS43NTdhNC41IDQuNSAwIDAwLTYuMzY0LTYuMzY0bC00LjUgNC41YTQuNSA0LjUgMCAwMDEuMjQyIDcuMjQ0XCJcbiAgICAgIC8+XG4gICAgPC9zdmc+XG4gICk7XG59XG5leHBvcnQgZGVmYXVsdCBMaW5rSWNvbjtcbiIsImZ1bmN0aW9uIFJlcGx5SWNvbih7IGFkZGl0aW9uYWxDbGFzc2VzIH0pIHtcbiAgbGV0IGNsYXNzZXMgPSAncmVwbHlJY29uJztcbiAgaWYgKGFkZGl0aW9uYWxDbGFzc2VzKSB7XG4gICAgbGV0IGFyciA9IGFkZGl0aW9uYWxDbGFzc2VzLnNwbGl0KCcgJyk7XG4gICAgYXJyLnB1c2goY2xhc3Nlcyk7XG4gICAgY2xhc3NlcyA9IGFyci5qb2luKCcgJyk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxzdmdcbiAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgd2lkdGg9XCIxLjI1cmVtXCJcbiAgICAgIGhlaWdodD1cIjEuMjVyZW1cIlxuICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGNsYXNzPXtjbGFzc2VzfVxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgIGQ9XCJNMjAuMjUgOC41MTFjLjg4NC4yODQgMS41IDEuMTI4IDEuNSAyLjA5N3Y0LjI4NmMwIDEuMTM2LS44NDcgMi4xLTEuOTggMi4xOTMtLjM0LjAyNy0uNjguMDUyLTEuMDIuMDcydjMuMDkxbC0zLTNjLTEuMzU0IDAtMi42OTQtLjA1NS00LjAyLS4xNjNhMi4xMTUgMi4xMTUgMCAwMS0uODI1LS4yNDJtOS4zNDUtOC4zMzRhMi4xMjYgMi4xMjYgMCAwMC0uNDc2LS4wOTUgNDguNjQgNDguNjQgMCAwMC04LjA0OCAwYy0xLjEzMS4wOTQtMS45NzYgMS4wNTctMS45NzYgMi4xOTJ2NC4yODZjMCAuODM3LjQ2IDEuNTggMS4xNTUgMS45NTFtOS4zNDUtOC4zMzRWNi42MzdjMC0xLjYyMS0xLjE1Mi0zLjAyNi0yLjc2LTMuMjM1QTQ4LjQ1NSA0OC40NTUgMCAwMDExLjI1IDNjLTIuMTE1IDAtNC4xOTguMTM3LTYuMjQuNDAyLTEuNjA4LjIwOS0yLjc2IDEuNjE0LTIuNzYgMy4yMzV2Ni4yMjZjMCAxLjYyMSAxLjE1MiAzLjAyNiAyLjc2IDMuMjM1LjU3Ny4wNzUgMS4xNTcuMTQgMS43NC4xOTRWMjFsNC4xNTUtNC4xNTVcIlxuICAgICAgLz5cbiAgICA8L3N2Zz5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgUmVwbHlJY29uO1xuIiwiZnVuY3Rpb24gUmVwb3N0SWNvbih7IGFkZGl0aW9uYWxDbGFzc2VzIH0pIHtcbiAgbGV0IGNsYXNzZXMgPSAncmVwb3N0SWNvbic7XG4gIGlmIChhZGRpdGlvbmFsQ2xhc3Nlcykge1xuICAgIGxldCBhcnIgPSBhZGRpdGlvbmFsQ2xhc3Nlcy5zcGxpdCgnICcpO1xuICAgIGFyci5wdXNoKGNsYXNzZXMpO1xuICAgIGNsYXNzZXMgPSBhcnIuam9pbignICcpO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8c3ZnXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgIHdpZHRoPVwiMS4yNXJlbVwiXG4gICAgICBoZWlnaHQ9XCIxLjI1cmVtXCJcbiAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICBjbGFzcz17Y2xhc3Nlc31cbiAgICA+XG4gICAgICA8cGF0aFxuICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICBkPVwiTTE2LjAyMyA5LjM0OGg0Ljk5MnYtLjAwMU0yLjk4NSAxOS42NDR2LTQuOTkybTAgMGg0Ljk5Mm0tNC45OTMgMGwzLjE4MSAzLjE4M2E4LjI1IDguMjUgMCAwMDEzLjgwMy0zLjdNNC4wMzEgOS44NjVhOC4yNSA4LjI1IDAgMDExMy44MDMtMy43bDMuMTgxIDMuMTgybTAtNC45OTF2NC45OVwiXG4gICAgICAvPlxuICAgIDwvc3ZnPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBSZXBvc3RJY29uO1xuIiwiaW1wb3J0IHsgZm9ybWF0WmFwQW1vdW50LCBnZXROb3RlSWQgfSBmcm9tIFwiLi4vdXRpbHMvY29tbW9uXCI7XG5pbXBvcnQgQ29weVRleHQgZnJvbSBcIi4vY29weVRleHQuanN4XCI7XG5pbXBvcnQgQm9sdEljb24gZnJvbSBcIi4vaWNvbnMvYm9sdEljb24uanN4XCI7XG5pbXBvcnQgSGVhcnRJY29uIGZyb20gXCIuL2ljb25zL2hlYXJ0SWNvbi5qc3hcIjtcbmltcG9ydCBMaW5rSWNvbiBmcm9tIFwiLi9pY29ucy9saW5rSWNvbi5qc3hcIjtcbmltcG9ydCBSZXBseUljb24gZnJvbSBcIi4vaWNvbnMvcmVwbHlJY29uLmpzeFwiO1xuaW1wb3J0IFJlcG9zdEljb24gZnJvbSBcIi4vaWNvbnMvcmVwb3N0SWNvbi5qc3hcIjtcblxuZnVuY3Rpb24gTWV0YSh7XG4gIG5vdGUsXG4gIHByb2ZpbGVzTGlzdCxcbiAgcmVwbGllc0NvdW50LFxuICByZXBvc3RzQ291bnQsXG4gIGxpa2VzQ291bnQsXG4gIHphcEFtb3VudCxcbiAgb3B0aW9ucyxcbn0pIHtcbiAgbGV0IGRhdGUsIGVuY29kZWRJZCwgZm9ybWF0dGVkRGF0ZSwgZm9ybWF0dGVkWmFwQW1vdW50O1xuXG4gIGxldCBjcmVhdGVkQXQgPSBub3RlXG4gICAgPyBub3RlLmNyZWF0ZWRfYXRcbiAgICA6IHByb2ZpbGVzTGlzdFxuICAgICAgPyBwcm9maWxlc0xpc3QuY3JlYXRlZF9hdFxuICAgICAgOiBudWxsO1xuICBpZiAoY3JlYXRlZEF0KSB7XG4gICAgZGF0ZSA9IG5ldyBEYXRlKGNyZWF0ZWRBdCAqIDEwMDApO1xuICAgIGZvcm1hdHRlZERhdGUgPSBkYXRlLnRvTG9jYWxlVGltZVN0cmluZyhcImVuLVVTXCIsIHtcbiAgICAgIGhvdXIxMjogdHJ1ZSxcbiAgICAgIGhvdXI6ICcyLWRpZ2l0JyxcbiAgICAgIG1pbnV0ZTogJzItZGlnaXQnLFxuICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgICAgbW9udGg6ICdzaG9ydCcsXG4gICAgICBkYXk6ICdudW1lcmljJyxcbiAgICB9KTtcbiAgfVxuXG4gIGlmIChub3RlICYmIG5vdGUuaWQpIHtcbiAgICBlbmNvZGVkSWQgPSBnZXROb3RlSWQobm90ZS5pZCk7XG4gIH1cbiAgaWYgKHByb2ZpbGVzTGlzdCkge1xuICAgIGVuY29kZWRJZCA9IHByb2ZpbGVzTGlzdC5pZDtcbiAgfVxuXG4gIGZvcm1hdHRlZFphcEFtb3VudCA9IGZvcm1hdFphcEFtb3VudCh6YXBBbW91bnQpO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJjYXJkTWV0YVwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjYXJkRGF0ZVwiPntmb3JtYXR0ZWREYXRlfTwvZGl2PlxuICAgICAgPGhyIC8+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhcmRJbnRlcmFjdGlvbnNcIj5cbiAgICAgICAge29wdGlvbnM/LmhpZGVDb3VudGVycyA/IG51bGwgOiA8PlxuICAgICAgICB7b3B0aW9ucyAmJiBvcHRpb25zLnNob3daYXBzID8gKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW50ZXJhY3Rpb25Db250YWluZXJcIiB0aXRsZT1cIlRvdGFsIHNhdHMgemFwcGVkXCI+XG4gICAgICAgICAgICA8Qm9sdEljb24gYWRkaXRpb25hbENsYXNzZXM9XCJ3LTUgaC01XCIgLz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInphcEFtb3VudFwiPntmb3JtYXR0ZWRaYXBBbW91bnR9PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbnRlcmFjdGlvbkNvbnRhaW5lclwiIHRpdGxlPVwiTnVtYmVyIG9mIHJlcGxpZXNcIj5cbiAgICAgICAgICA8UmVwbHlJY29uIGFkZGl0aW9uYWxDbGFzc2VzPVwidy01IGgtNVwiIC8+XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicmVwbGllc0NvdW50XCI+e3JlcGxpZXNDb3VudH08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImludGVyYWN0aW9uQ29udGFpbmVyXCIgdGl0bGU9XCJOdW1iZXIgb2YgcmVwb3N0c1wiPlxuICAgICAgICAgIDxSZXBvc3RJY29uIGFkZGl0aW9uYWxDbGFzc2VzPVwidy01IGgtNVwiIC8+XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicmVwb3N0c0NvdW50XCI+e3JlcG9zdHNDb3VudH08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImludGVyYWN0aW9uQ29udGFpbmVyXCIgdGl0bGU9XCJOdW1iZXIgb2YgbGlrZXNcIj5cbiAgICAgICAgICA8SGVhcnRJY29uIGFkZGl0aW9uYWxDbGFzc2VzPVwidy01IGgtNVwiIC8+XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibGlrZXNDb3VudFwiPntsaWtlc0NvdW50fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvPn1cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbnRlcmFjdGlvbkNvbnRhaW5lclwiPlxuICAgICAgICAgIDxhXG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlciBub2ZvbGxvd1wiXG4gICAgICAgICAgICBocmVmPXtcbiAgICAgICAgICAgICAgbm90ZVxuICAgICAgICAgICAgICAgID8gYGh0dHBzOi8vbm9zdHIuYmFuZC8ke2VuY29kZWRJZH1gXG4gICAgICAgICAgICAgICAgOiBgaHR0cHM6Ly9saXN0ci5sb2wvYS8ke3Byb2ZpbGVzTGlzdC5uYWRkcn1gXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjbGFzc05hbWU9XCJsaW5rTGlua1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPExpbmtJY29uIGFkZGl0aW9uYWxDbGFzc2VzPVwidy01IGgtNSBob3Zlcjp0ZXh0LWdyYXktNjAwXCIgLz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRpc3BsYXlUZXh0XCI+T3Blbjwvc3Bhbj5cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7b3B0aW9ucyAmJiBvcHRpb25zLnNob3dDb3B5QWRkciA/IChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImludGVyYWN0aW9uQ29udGFpbmVyXCI+XG4gICAgICAgICAgICA8Q29weVRleHRcbiAgICAgICAgICAgICAgaWNvbkNsYXNzZXM9XCJ3LTUgaC01XCJcbiAgICAgICAgICAgICAgZGlzcGxheVRleHQ9e25vdGUgPyBcIkNvcHkgTm90ZSBJRFwiIDogXCJDb3B5IElEXCJ9XG4gICAgICAgICAgICAgIGNvcHlUZXh0PXtub3RlID8gbm90ZSA6IHByb2ZpbGVzTGlzdC5uYWRkcn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1ldGE7XG4iLCJleHBvcnQgY29uc3QgSU1BR0VfRklMRV9FWFRFTlNJT05TID0gW1wiLmpwZ1wiLCBcIi5qcGVnXCIsIFwiLnBuZ1wiLCBcIi53ZWJwXCIsIFwiLmdpZlwiXTtcbmV4cG9ydCBjb25zdCBWSURFT19GSUxFX0VYVEVOU0lPTlMgPSBbXCIubW92XCIsIFwiLm1wNFwiXTtcbmV4cG9ydCBjb25zdCBZT1VUVUJFX0tFWV9XT1JEUyA9IFtcInlvdXR1YmVcIl07XG5cbmV4cG9ydCBjb25zdCBLSU5EX01FVEEgPSAwO1xuZXhwb3J0IGNvbnN0IEtJTkRfTk9URSA9IDE7XG5leHBvcnQgY29uc3QgS0lORF9DT05UQUNUX0xJU1QgPSAzO1xuZXhwb3J0IGNvbnN0IEtJTkRfUkVQT1NUID0gNjtcbmV4cG9ydCBjb25zdCBLSU5EX1JFQUNUSU9OID0gNztcbmV4cG9ydCBjb25zdCBLSU5EX1pBUCA9IDk3MzU7XG5leHBvcnQgY29uc3QgS0lORF9QUk9GSUxFX0xJU1QgPSAzMDAwMDsiLCJpbXBvcnQgUHJvZmlsZSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9wcm9maWxlLmpzeFwiO1xuaW1wb3J0IE1ldGEgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvbWV0YS5qc3hcIjtcbmltcG9ydCB7S0lORF9DT05UQUNUX0xJU1R9IGZyb20gXCIuLi8uLi9jb25maWcvY29uZmlnXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFByb2ZpbGVzTGlzdCh7c3RhdGUsIHByb3BzfSkge1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwibm9zdHJFbWJlZENhcmRcIj5cbiAgICAgIDxQcm9maWxlXG4gICAgICAgIHByb2ZpbGVQa2V5PXsgc3RhdGU/LmlkLmRhdGEucHVia2V5IH1cbiAgICAgICAgcHJvZmlsZT17IHN0YXRlPy5wcm9maWxlIH1cbiAgICAgICAgb3B0aW9ucz17IHByb3BzPy5vcHRpb25zIH1cbiAgICAgIC8+XG4gICAgICA8ZGl2PlxuICAgICAgICA8aDMgY2xhc3NOYW1lPVwiY2FyZFRpdGxlXCI+XG4gICAgICAgICAgeyBzdGF0ZT8ua2luZCAhPT0gS0lORF9DT05UQUNUX0xJU1QgJiYgc3RhdGU/LnByb2ZpbGVzTGlzdC5uYW1lXG4gICAgICAgICAgICA/IHN0YXRlPy5wcm9maWxlc0xpc3QubmFtZVxuICAgICAgICAgICAgOiBzdGF0ZT8ucHJvZmlsZXNMaXN0LmQgfVxuICAgICAgICAgIHsgc3RhdGU/LmtpbmQgPT09IEtJTkRfQ09OVEFDVF9MSVNUICYmIFwiRm9sbG93aW5nIFwiIH0oXG4gICAgICAgICAgeyBzdGF0ZT8udGFnZ2VkUHJvZmlsZXMgPyBzdGF0ZT8uY291bnRUYWdnZWRQcm9maWxlcyA6IDAgfSlcbiAgICAgICAgPC9oMz5cbiAgICAgICAgeyBzdGF0ZT8ua2luZCAhPT0gS0lORF9DT05UQUNUX0xJU1QgJiYgKFxuICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImNhcmREZXNjcmlwdGlvblwiPnsgc3RhdGU/LnByb2ZpbGVzTGlzdC5kZXNjcmlwdGlvbiB9PC9wPlxuICAgICAgICApIH1cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjYXJkTGlzdFwiPlxuICAgICAgICAgIHsgT2JqZWN0LmtleXMoc3RhdGU/LnRhZ2dlZFByb2ZpbGVzKS5tYXAoKHByb2ZpbGVQa2V5KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8ZGl2IGtleT17IHByb2ZpbGVQa2V5ICsgXCJ0YWdnZWRQcm9maWxlXCIgfT5cbiAgICAgICAgICAgICAgICA8UHJvZmlsZVxuICAgICAgICAgICAgICAgICAgcHJvZmlsZVBrZXk9eyBwcm9maWxlUGtleSB9XG4gICAgICAgICAgICAgICAgICBwcm9maWxlPXsgc3RhdGU/LnRhZ2dlZFByb2ZpbGVzW3Byb2ZpbGVQa2V5XSB9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pIH1cbiAgICAgICAgICB7IHN0YXRlPy5jb3VudFRhZ2dlZFByb2ZpbGVzID4gMCAmJlxuICAgICAgICAgIHN0YXRlPy5jb3VudFRhZ2dlZFByb2ZpbGVzID5cbiAgICAgICAgICBPYmplY3Qua2V5cyhzdGF0ZT8udGFnZ2VkUHJvZmlsZXMpLmxlbmd0aCA/IChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGlmZlByb2ZpbGVzXCI+XG4gICAgICAgICAgICAgIEFuZCB7IGdldERpZmYoc3RhdGUpIH0gbW9yZSBwcm9maWxlcy5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICkgOiBudWxsIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHsgc3RhdGU/LnByb2ZpbGVzTGlzdC5lcnJvciAmJiAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjYXJkQ29udGVudCBuZS10ZXh0LXJlZC04MDBcIj5cbiAgICAgICAgICAgIHsgc3RhdGU/LnByb2ZpbGVzTGlzdC5jb250ZW50IH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKSB9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxNZXRhXG4gICAgICAgIHByb2ZpbGVzTGlzdD17IHN0YXRlPy5wcm9maWxlc0xpc3QgfVxuICAgICAgICBsaWtlc0NvdW50PXsgc3RhdGU/Lmxpa2VzQ291bnQgfVxuICAgICAgICByZXBsaWVzQ291bnQ9eyBzdGF0ZT8ucmVwbGllc0NvdW50IH1cbiAgICAgICAgcmVwb3N0c0NvdW50PXsgc3RhdGU/LnJlcG9zdHNDb3VudCB9XG4gICAgICAgIHphcEFtb3VudD17IHN0YXRlPy56YXBBbW91bnQgfVxuICAgICAgICBvcHRpb25zPXsgcHJvcHM/Lm9wdGlvbnMgfVxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5mdW5jdGlvbiBnZXREaWZmKHN0YXRlKSB7XG4gIGxldCBkaWZmO1xuICBpZiAoT2JqZWN0LmtleXMoc3RhdGU/LnRhZ2dlZFByb2ZpbGVzKS5sZW5ndGggPiAwICYmIHN0YXRlPy5jb3VudFRhZ2dlZFByb2ZpbGVzKSB7XG4gICAgZGlmZiA9IHN0YXRlPy5jb3VudFRhZ2dlZFByb2ZpbGVzIC0gT2JqZWN0LmtleXMoc3RhdGU/LnRhZ2dlZFByb2ZpbGVzKS5sZW5ndGg7XG4gIH1cbiAgcmV0dXJuIGRpZmY7XG59XG4iLCJmdW5jdGlvbiBGb2xsb3dlcnNJY29uKHsgYWRkaXRpb25hbENsYXNzZXMgfSkge1xuICBsZXQgY2xhc3NlcyA9ICdmb2xsb3dlcnNJY29uJztcbiAgaWYgKGFkZGl0aW9uYWxDbGFzc2VzKSB7XG4gICAgbGV0IGFyciA9IGFkZGl0aW9uYWxDbGFzc2VzLnNwbGl0KCcgJyk7XG4gICAgYXJyLnB1c2goY2xhc3Nlcyk7XG4gICAgY2xhc3NlcyA9IGFyci5qb2luKCcgJyk7XG4gIH1cblxuICByZXR1cm4gKFxuXG4gICAgICA8c3ZnXG4gICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICB3aWR0aD1cIjEuMjVyZW1cIlxuICAgICAgIGhlaWdodD1cIjEuMjVyZW1cIlxuICAgICAgIGNsYXNzPXtjbGFzc2VzfVxuICAgICAgPlxuICAgICAgIDxwYXRoXG4gICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgIGQ9XCJNMTUgMTkuMTI4YTkuMzggOS4zOCAwIDAwMi42MjUuMzcyIDkuMzM3IDkuMzM3IDAgMDA0LjEyMS0uOTUyIDQuMTI1IDQuMTI1IDAgMDAtNy41MzMtMi40OTNNMTUgMTkuMTI4di0uMDAzYzAtMS4xMTMtLjI4NS0yLjE2LS43ODYtMy4wN00xNSAxOS4xMjh2LjEwNkExMi4zMTggMTIuMzE4IDAgMDE4LjYyNCAyMWMtMi4zMzEgMC00LjUxMi0uNjQ1LTYuMzc0LTEuNzY2bC0uMDAxLS4xMDlhNi4zNzUgNi4zNzUgMCAwMTExLjk2NC0zLjA3TTEyIDYuMzc1YTMuMzc1IDMuMzc1IDAgMTEtNi43NSAwIDMuMzc1IDMuMzc1IDAgMDE2Ljc1IDB6bTguMjUgMi4yNWEyLjYyNSAyLjYyNSAwIDExLTUuMjUgMCAyLjYyNSAyLjYyNSAwIDAxNS4yNSAwelwiXG4gICAgICAgLz5cbiAgICAgIDwvc3ZnPlxuXG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEZvbGxvd2Vyc0ljb247XG4iLCJpbXBvcnQgeyBmb3JtYXRaYXBBbW91bnQsIGdldE5wdWIgfSBmcm9tIFwiLi4vdXRpbHMvY29tbW9uXCI7XG5pbXBvcnQgQ29weVRleHQgZnJvbSBcIi4vY29weVRleHQuanN4XCI7XG5pbXBvcnQgQm9sdEljb24gZnJvbSBcIi4vaWNvbnMvYm9sdEljb24uanN4XCI7XG5pbXBvcnQgRm9sbG93ZXJzSWNvbiBmcm9tIFwiLi9pY29ucy9mb2xsb3dlcnNJY29uLmpzeFwiO1xuaW1wb3J0IExpbmtJY29uIGZyb20gXCIuL2ljb25zL2xpbmtJY29uLmpzeFwiO1xuXG5mdW5jdGlvbiBQcm9maWxlTWV0YSh7IHByb2ZpbGUsIGZvbGxvd2Vyc0NvdW50LCB6YXBBbW91bnQsIG9wdGlvbnMgfSkge1xuICBsZXQgbnB1YiwgZm9ybWF0dGVkWmFwQW1vdW50O1xuXG4gIGlmIChwcm9maWxlICYmIHByb2ZpbGUucHVia2V5KSB7XG4gICAgbnB1YiA9IGdldE5wdWIocHJvZmlsZS5wdWJrZXkpO1xuICAgIGZvcm1hdHRlZFphcEFtb3VudCA9IGZvcm1hdFphcEFtb3VudCh6YXBBbW91bnQpO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImNhcmRNZXRhXCI+XG4gICAgICA8aHIgLz5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZEludGVyYWN0aW9uc1wiPlxuICAgICAgICB7b3B0aW9ucz8uaGlkZUNvdW50ZXJzID8gbnVsbCA6IDw+XG4gICAgICAgIHtvcHRpb25zICYmIG9wdGlvbnMuc2hvd1phcHMgPyAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbnRlcmFjdGlvbkNvbnRhaW5lclwiIHRpdGxlPVwiVG90YWwgc2F0cyB6YXBwZWRcIj5cbiAgICAgICAgICAgIDxCb2x0SWNvbiBhZGRpdGlvbmFsQ2xhc3Nlcz1cInctNSBoLTVcIiAvPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiemFwQW1vdW50XCI+e2Zvcm1hdHRlZFphcEFtb3VudH08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImludGVyYWN0aW9uQ29udGFpbmVyXCIgdGl0bGU9XCJOdW1iZXIgb2YgZm9sbG93ZXJzXCI+XG4gICAgICAgICAgPEZvbGxvd2Vyc0ljb24gYWRkaXRpb25hbENsYXNzZXM9XCJ3LTUgaC01XCIgLz5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJmb2xsb3dlcnNDb3VudFwiPntmb2xsb3dlcnNDb3VudH08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8Lz59XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW50ZXJhY3Rpb25Db250YWluZXJcIj5cbiAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyIG5vZm9sbG93XCIgaHJlZj17YGh0dHBzOi8vbm9zdHIuYmFuZC8ke25wdWJ9YH1cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImxpbmtMaW5rXCI+XG4gICAgICAgICAgICA8TGlua0ljb24gYWRkaXRpb25hbENsYXNzZXM9XCJ3LTUgaC01IGhvdmVyOnRleHQtZ3JheS02MDBcIiAvPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZGlzcGxheVRleHRcIj5PcGVuPC9zcGFuPlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHtvcHRpb25zICYmIG9wdGlvbnMuc2hvd0NvcHlBZGRyID8gKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW50ZXJhY3Rpb25Db250YWluZXJcIj5cbiAgICAgICAgICAgIDxDb3B5VGV4dFxuICAgICAgICAgICAgICBpY29uQ2xhc3Nlcz1cInctNSBoLTVcIlxuICAgICAgICAgICAgICBkaXNwbGF5VGV4dD1cIkNvcHkgTnB1YlwiXG4gICAgICAgICAgICAgIGNvcHlUZXh0PXtucHVifVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgUHJvZmlsZU1ldGE7XG4iLCJpbXBvcnQgeyBnZXROcHViIH0gZnJvbSBcIi4uL3V0aWxzL2NvbW1vblwiO1xuaW1wb3J0IFByb2ZpbGVJbWFnZSBmcm9tIFwiLi9wcm9maWxlSW1hZ2UuanN4XCI7XG5cbmNvbnN0IFByb2ZpbGVGb2xsb3dzID0gKHsgZm9sbG93cyA9IFtdLCBvcHRpb25zIH0pID0+IHtcbiAgICBpZiAoIW9wdGlvbnM/LnNob3dGb2xsb3dpbmcpIHJldHVybiA8PjwvPlxuXG4gICAgY29uc3QgZ2V0Q2FjaGVkSW1hZ2UgPSAocHVia2V5KSA9PiB7XG4gICAgICAgIHJldHVybiBgaHR0cHM6Ly9tZWRpYS5ub3N0ci5iYW5kL3RodW1icy8ke3B1YmtleS5zbGljZSgtNCl9LyR7cHVia2V5fS1waWN0dXJlLTY0YFxuICAgIH1cblxuICAgIGNvbnN0IHBhcnNlZEZvbGxvd3MgPSBmb2xsb3dzLnNsaWNlKDAsIDEwKS5tYXAoZm9sbG93ID0+IHtcbiAgICAgICAgY29uc3QgY29udGVudCA9IEpTT04ucGFyc2UoZm9sbG93LmNvbnRlbnQpXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogZm9sbG93Py5pZCxcbiAgICAgICAgICAgIG5wdWJMaW5rOiBgaHR0cHM6Ly9ub3N0ci5iYW5kLyR7Z2V0TnB1Yihmb2xsb3c/LnB1YmtleSl9YCxcbiAgICAgICAgICAgIGRpc3BsYXlfbmFtZTogY29udGVudD8uZGlzcGxheV9uYW1lLFxuICAgICAgICAgICAgcGljdHVyZTogY29udGVudD8ucGljdHVyZSxcbiAgICAgICAgICAgIGNhY2hlZEltYWdlOiBnZXRDYWNoZWRJbWFnZShmb2xsb3c/LnB1YmtleSksXG4gICAgICAgICAgICBuYW1lOiBjb250ZW50Py5uYW1lXG4gICAgICAgIH1cbiAgICB9KVxuXG4gICAgY29uc3QgZmlsdGVyUHJvZmlsZXMgPSBwYXJzZWRGb2xsb3dzLmZpbHRlcihwcm9maWxlID0+IHByb2ZpbGUubmFtZSAmJiBwcm9maWxlLmRpc3BsYXlfbmFtZSlcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8aHIgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibmUtZmxleCBuZS1nYXAtNiBuZS1mbGV4LXdyYXAgbmUtaXRlbXMtY2VudGVyIG5lLW10LThcIj5cbiAgICAgICAgICAgICAgICA8dWwgY2xhc3NOYW1lPVwibmUtbGlzdC1ub25lIG5lLXAtMCBuZS1mbGV4IG5lLW1zLVsyNXB4XSBuZS1tLTAgbmUtaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZEZvbGxvd3MubWFwKGZvbGxvdyA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGtleT17Zm9sbG93Py5pZH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9J25lLWlubGluZS1ibG9jaycgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlciBub2ZvbGxvd1wiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9e2ZvbGxvdy5ucHViTGlua30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFByb2ZpbGVJbWFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsSW1hZ2U9e2ZvbGxvdz8ucGljdHVyZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGh1bWJuYWlsPXtmb2xsb3c/LmNhY2hlZEltYWdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1Byb2ZpbGVJbWFnZT17ZmFsc2V9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzTmFtZT1cIm5lLW0tMCBuZS1mb250LWJvbGQgbmUtdGV4dC1sZ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgRm9sbG93cyB7Zm9sbG93cy5sZW5ndGh9IHByb2ZpbGVzXG4gICAgICAgICAgICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibmUtbS0wIG5lLXRleHQtc21cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEluY2x1ZGluZyB7XCIgXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICA8YSByZWw9XCJub29wZW5lciBub3JlZmVycmVyIG5vZm9sbG93XCIgdGFyZ2V0PVwiX2JsYW5rXCIgY2xhc3NOYW1lPSduZS10ZXh0LWJsYWNrJyBocmVmPXtmaWx0ZXJQcm9maWxlc1swXT8ubnB1Ykxpbmt9PntmaWx0ZXJQcm9maWxlc1swXT8uZGlzcGxheV9uYW1lfTwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtmaWx0ZXJQcm9maWxlc1sxXSA/ICcsICcgOiAnJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXIgbm9mb2xsb3dcIiB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzc05hbWU9J25lLXRleHQtYmxhY2snIGhyZWY9e2ZpbHRlclByb2ZpbGVzWzFdPy5ucHViTGlua30+e2ZpbHRlclByb2ZpbGVzWzFdPy5kaXNwbGF5X25hbWV9PC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAge2ZpbHRlclByb2ZpbGVzWzJdID8gJyBhbmQgJyA6ICcnfVxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlciBub2ZvbGxvd1wiIHRhcmdldD1cIl9ibGFua1wiIGNsYXNzTmFtZT0nbmUtdGV4dC1ibGFjaycgaHJlZj17ZmlsdGVyUHJvZmlsZXNbMl0/Lm5wdWJMaW5rfT57ZmlsdGVyUHJvZmlsZXNbMl0/LmRpc3BsYXlfbmFtZX08L2E+XG5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgKVxufVxuXG5leHBvcnQgZGVmYXVsdCBQcm9maWxlRm9sbG93cyIsImltcG9ydCBQcm9maWxlTWV0YSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9wcm9maWxlTWV0YS5qc3hcIjtcbmltcG9ydCBQcm9maWxlRm9sbG93cyBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9wcm9maWxlRm9sbG93cy5qc3hcIjtcbmltcG9ydCBQcm9maWxlQ29tcG9uZW50IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvcHJvZmlsZS5qc3gnXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFByb2ZpbGUoe3N0YXRlLCBwcm9wc30pIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIm5vc3RyRW1iZWRDYXJkXCI+XG4gICAgICAgIDxQcm9maWxlQ29tcG9uZW50XG4gICAgICAgICAgcHJvZmlsZVBrZXk9e3N0YXRlPy5pZH1cbiAgICAgICAgICBwcm9maWxlPXtzdGF0ZT8ucHJvZmlsZX1cbiAgICAgICAgICBvcHRpb25zPXtwcm9wcz8ub3B0aW9uc31cbiAgICAgICAgLz5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzTmFtZT17XG4gICAgICAgICAgICBzdGF0ZT8ucHJvZmlsZS5lcnJvclxuICAgICAgICAgICAgICA/IFwiY2FyZENvbnRlbnQgbmUtdGV4dC1yZWQtODAwXCJcbiAgICAgICAgICAgICAgOiBcImNhcmRDb250ZW50XCJcbiAgICAgICAgICB9XG4gICAgICAgID5cbiAgICAgICAgICB7c3RhdGU/LnByb2ZpbGU/LndlYnNpdGUgPyAoXG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgV2Vic2l0ZTp7XCIgXCJ9XG4gICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgaHJlZj17c3RhdGU/LnByb2ZpbGU/LndlYnNpdGV9XG4gICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyIG5vZm9sbG93XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtzdGF0ZT8ucHJvZmlsZT8ud2Vic2l0ZX1cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICBcIlwiXG4gICAgICAgICAgKX1cbiAgICAgICAgICB7c3RhdGU/LnByb2ZpbGU/LmFib3V0IHx8IFwiTG9hZGluZy4uLlwifVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAge1xuICAgICAgICAgIEJvb2xlYW4oc3RhdGU/LmZvbGxvd3MubGVuZ3RoKSAmJiA8UHJvZmlsZUZvbGxvd3MgZm9sbG93cz17c3RhdGU/LmZvbGxvd3N9IG9wdGlvbnM9e3Byb3BzPy5vcHRpb25zfSAvPlxuICAgICAgICB9XG4gICAgICAgIDxQcm9maWxlTWV0YVxuICAgICAgICAgIHByb2ZpbGU9e3N0YXRlPy5wcm9maWxlfVxuICAgICAgICAgIGZvbGxvd2Vyc0NvdW50PXtzdGF0ZT8uZm9sbG93ZXJzQ291bnR9XG4gICAgICAgICAgemFwQW1vdW50PXtzdGF0ZT8uemFwQW1vdW50fVxuICAgICAgICAgIG9wdGlvbnM9e3Byb3BzPy5vcHRpb25zfVxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG4gIClcbn1cbiIsIlxuXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFphcCh7c3RhdGV9KSB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJub3N0ckVtYmVkQ2FyZFwiPlxuICAgICAgWmFwIGNvbnRlbnQ6IHtKU09OLnN0cmluZ2lmeShzdGF0ZT8uZXZlbnQpfVxuICAgIDwvZGl2PlxuICApXG59IiwiaW1wb3J0IHtmb3JtYXROb3RlSWQsIGZvcm1hdE5wdWIsIGdldE5vdGVJZCwgZ2V0TnB1YiwgcGFyc2VOcHJvZmlsZSwgcGFyc2VOcHVifSBmcm9tIFwiLi9jb21tb25cIjtcbmltcG9ydCB7SU1BR0VfRklMRV9FWFRFTlNJT05TLCBWSURFT19GSUxFX0VYVEVOU0lPTlMsIFlPVVRVQkVfS0VZX1dPUkRTfSBmcm9tIFwiLi4vY29uZmlnL2NvbmZpZ1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0Q29udGVudChzdGF0ZSkge1xuICBpZiAoIXN0YXRlPy5ldmVudC5jb250ZW50KSByZXR1cm4gXCJcIjtcblxuICBjb25zdCBmb3JtYXRFdmVudExpbmsgPSAobm90ZU9yTmFkZHIpID0+IHtcbiAgICBjb25zdCBsYWJlbCA9IGZvcm1hdE5vdGVJZChub3RlT3JOYWRkcik7XG4gICAgcmV0dXJuIChcbiAgICAgIDxhXG4gICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXIgbm9mb2xsb3dcIlxuICAgICAgICBocmVmPXsgYGh0dHBzOi8vbm9zdHIuYmFuZC8keyBub3RlT3JOYWRkciB9YCB9XG4gICAgICA+XG4gICAgICAgIHsgbGFiZWwgfVxuICAgICAgPC9hPlxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgZm9ybWF0UHJvZmlsZUxpbmsgPSAobnB1YiwgcHVia2V5KSA9PiB7XG4gICAgbGV0IGxhYmVsID0gZm9ybWF0TnB1YihucHViKTtcbiAgICBpZiAocHVia2V5IGluIHN0YXRlPy50YWdnZWRQcm9maWxlcykge1xuICAgICAgY29uc3QgdHAgPSBzdGF0ZT8udGFnZ2VkUHJvZmlsZXNbcHVia2V5XTtcbiAgICAgIGxhYmVsID0gdHA/Lm5hbWUgfHwgdHA/LmRpc3BsYXlfbmFtZSB8fCBsYWJlbDtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIDxhXG4gICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXIgbm9mb2xsb3dcIlxuICAgICAgICBocmVmPXsgYGh0dHBzOi8vbm9zdHIuYmFuZC8keyBucHViIH1gIH1cbiAgICAgID5cbiAgICAgICAgQHsgbGFiZWwgfVxuICAgICAgPC9hPlxuICAgICk7XG4gIH07XG5cbiAgY29uc3Qgbm90ZSA9IHN0YXRlPy5ldmVudDtcblxuICBjb25zdCBNZW50aW9uUmVnZXggPSAvKCNcXFtcXGQrXFxdKS9naTtcblxuICAvLyBmaXJzdCAtIHNwbGl0IGJ5ICNbZF0gbWVudGlvbnNcbiAgY29uc3QgZnJhZ21lbnRzID0gbm90ZS5jb250ZW50LnNwbGl0KE1lbnRpb25SZWdleCkubWFwKChtYXRjaCkgPT4ge1xuICAgIGNvbnN0IG1hdGNoVGFnID0gbWF0Y2gubWF0Y2goLyNcXFsoXFxkKylcXF0vKTtcbiAgICBpZiAobWF0Y2hUYWcgJiYgbWF0Y2hUYWcubGVuZ3RoID09PSAyKSB7XG4gICAgICBjb25zdCBpZHggPSBwYXJzZUludChtYXRjaFRhZ1sxXSk7XG4gICAgICBpZiAoaWR4IDwgbm90ZS50YWdzLmxlbmd0aCAmJiBub3RlLnRhZ3NbaWR4XS5sZW5ndGggPj0gMikge1xuICAgICAgICBjb25zdCByZWYgPSBub3RlLnRhZ3NbaWR4XTtcbiAgICAgICAgc3dpdGNoIChyZWZbMF0pIHtcbiAgICAgICAgICBjYXNlIFwicFwiOiB7XG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0UHJvZmlsZUxpbmsoZ2V0TnB1YihyZWZbMV0pLCByZWZbMV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIFwiZVwiOiB7XG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0RXZlbnRMaW5rKGdldE5vdGVJZChyZWZbMV0pKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gbm90IGFkZGluZyBzdXBwb3J0IGZvciAnYScgLSB0b28gbXVjaCBjb2RlIHRvIGZvcm1hdCB0aGUgbmFkZHIsXG4gICAgICAgICAgLy8gYW5kIHRoaXMgbWV0aG9kIGlzIGRlcHJlY2F0ZWQsIHNvIGxldCdzIGhvcGUgd2Ugd29uJ3QgbmVlZCB0aGlzXG4gICAgICAgICAgY2FzZSBcInRcIjoge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXIgbm9mb2xsb3dcIlxuICAgICAgICAgICAgICAgIGhyZWY9eyBgaHR0cHM6Ly9ub3N0ci5iYW5kLz9xPSUyMyR7IHJlZlsxXSB9YCB9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAjeyByZWZbMV0gfVxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyB1bnN1cHBvcnRlZCAjW2RdIHJlZlxuICAgICAgcmV0dXJuIG1hdGNoO1xuICAgIH1cblxuICAgIC8vIG5vdyB0cnkgc3BsaXR0aW5nIGJ5IG5vc3RyOiBsaW5rc1xuICAgIHJldHVybiBtYXRjaC5zcGxpdCgvKG5vc3RyOlthLXowLTldKykvZ2kpLm1hcCgobikgPT4ge1xuICAgICAgY29uc3QgbWF0Y2hOb3N0ciA9IG4ubWF0Y2goL25vc3RyOihbYS16MC05XSspLyk7XG4gICAgICBpZiAobWF0Y2hOb3N0ciAmJiBtYXRjaE5vc3RyLmxlbmd0aCA9PT0gMikge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgbWF0Y2hOb3N0clsxXS5zdGFydHNXaXRoKFwibm90ZTFcIikgfHxcbiAgICAgICAgICBtYXRjaE5vc3RyWzFdLnN0YXJ0c1dpdGgoXCJuZXZlbnQxXCIpIHx8XG4gICAgICAgICAgbWF0Y2hOb3N0clsxXS5zdGFydHNXaXRoKFwibmFkZHIxXCIpXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiBmb3JtYXRFdmVudExpbmsobWF0Y2hOb3N0clsxXSk7XG4gICAgICAgIH0gZWxzZSBpZiAobWF0Y2hOb3N0clsxXS5zdGFydHNXaXRoKFwibnB1YjFcIikpIHtcbiAgICAgICAgICBjb25zdCBucHViID0gbWF0Y2hOb3N0clsxXTtcbiAgICAgICAgICBjb25zdCBwdWJrZXkgPSBwYXJzZU5wdWIobWF0Y2hOb3N0clsxXSk7XG4gICAgICAgICAgaWYgKHB1YmtleSlcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXRQcm9maWxlTGluayhucHViLCBwdWJrZXkpO1xuICAgICAgICB9IGVsc2UgaWYgKG1hdGNoTm9zdHJbMV0uc3RhcnRzV2l0aChcIm5wcm9maWxlMVwiKSkge1xuICAgICAgICAgIGNvbnN0IHt0eXBlLCBkYXRhfSA9IHBhcnNlTnByb2ZpbGUobWF0Y2hOb3N0clsxXSk7XG4gICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIGNvbnN0IG5wdWIgPSBnZXROcHViKGRhdGEucHVia2V5KTtcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXRQcm9maWxlTGluayhucHViLCBkYXRhLnB1YmtleSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gdW5zdXBwb3J0ZWQgb3IgYmFkIG5vc3RyOiBsaW5rXG4gICAgICAgIHJldHVybiBuO1xuICAgICAgfVxuXG4gICAgICAvLyBmaW5hbGx5LCBzcGxpdCBieSB1cmxzXG4gICAgICBjb25zdCB1cmxSZWdleCA9XG4gICAgICAgIC8oKD86aHR0cHxmdHB8aHR0cHMpOlxcL1xcLyg/OltcXHcrPy5cXHcrXSkrKD86W2EtekEtWjAtOX4hQCMkJV4mKigpX1xcLT0rXFxcXC8/Ljo7JyxdKik/KD86Wy1BLVphLXowLTkrJkAjLyU9fl98XSkpL2k7XG4gICAgICByZXR1cm4gbi5zcGxpdCh1cmxSZWdleCkubWFwKChhKSA9PiB7XG4gICAgICAgIGlmIChhLm1hdGNoKC9eaHR0cHM/OlxcL1xcLy8pKSB7XG4gICAgICAgICAgcmV0dXJuIGZvcm1hdExpbmsoYSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGE7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgcmV0dXJuIGZyYWdtZW50cztcbn1cblxuZnVuY3Rpb24gZm9ybWF0TGluayhhKSB7XG4gIGlmIChpc1ZpZGVvKGEpKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZENvbnRlbnRNZWRpYVwiPlxuICAgICAgICA8dmlkZW8gc3JjPXsgYSB9XG4gICAgICAgICAgICAgICBjb250cm9scz48L3ZpZGVvPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfSBlbHNlIGlmIChpc0ltYWdlKGEpKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZENvbnRlbnRNZWRpYVwiPlxuICAgICAgICA8aW1nIGNsYXNzTmFtZT1cImNhcmRDb250ZW50SW1hZ2VcIlxuICAgICAgICAgICAgIHNyYz17IGEgfVxuICAgICAgICAgICAgIGFsdD1cIlwiPjwvaW1nPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfSBlbHNlIGlmIChpc1lvdXR1YmUoYSkpIHtcbiAgICBpZiAoYS5pbmNsdWRlcyhcIi93YXRjaFwiKSkge1xuICAgICAgYSA9IGEucmVwbGFjZShcIi93YXRjaFwiLCBcIi9lbWJlZFwiKTtcbiAgICAgIGEgPSBhLnJlcGxhY2UoXCI/dj1cIiwgXCIvXCIpO1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjYXJkQ29udGVudE1lZGlhXCI+XG4gICAgICAgIDxpZnJhbWUgc3JjPXsgYSB9PjwvaWZyYW1lPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXIgbm9mb2xsb3dcIlxuICAgICAgICAgaHJlZj17IGEgfT5cbiAgICAgICAgeyBhIH1cbiAgICAgIDwvYT5cbiAgICApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGlzSW1hZ2UoYSkge1xuICBjb25zdCBsaW5rID0gc3BsaXRMaW5rKGNoYW5nZUxpbmtSZWdpc3RlcihhKSwgMCk7XG4gIHJldHVybiBpc0FueUVuZFdpdGgobGluaywgSU1BR0VfRklMRV9FWFRFTlNJT05TKTtcbn1cblxuZnVuY3Rpb24gaXNWaWRlbyhhKSB7XG4gIGNvbnN0IGxpbmsgPSBzcGxpdExpbmsoY2hhbmdlTGlua1JlZ2lzdGVyKGEpLCAwKTtcbiAgcmV0dXJuIGlzQW55RW5kV2l0aChsaW5rLCBWSURFT19GSUxFX0VYVEVOU0lPTlMpO1xufVxuXG5mdW5jdGlvbiBpc1lvdXR1YmUoYSkge1xuICBjb25zdCBsaW5rID0gc3BsaXRMaW5rKGNoYW5nZUxpbmtSZWdpc3RlcihhKSwgMCk7XG4gIHJldHVybiBpc0FueUNvbnRhaW5zKGxpbmssIFlPVVRVQkVfS0VZX1dPUkRTKTtcbn1cblxuZnVuY3Rpb24gaXNBbnlFbmRXaXRoKGxpbmssIGV4dGVuc2lvbnMpIHtcbiAgcmV0dXJuIGV4dGVuc2lvbnMuc29tZShmdW5jdGlvbiAoZXh0ZW5zaW9uKSB7XG4gICAgcmV0dXJuIGxpbmsuZW5kc1dpdGgoZXh0ZW5zaW9uKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGlzQW55Q29udGFpbnMobGluaywga2V5V29yZHMpIHtcbiAgcmV0dXJuIGtleVdvcmRzLnNvbWUoZnVuY3Rpb24gKGtleVdvcmQpIHtcbiAgICByZXR1cm4gbGluay5pbmNsdWRlcyhrZXlXb3JkKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGNoYW5nZUxpbmtSZWdpc3RlcihhKSB7XG4gIHJldHVybiBhLnRvTG93ZXJDYXNlKCk7XG59XG5cbmZ1bmN0aW9uIHNwbGl0TGluayhsaW5rLCBlbGVtZW50TnVtYmVyKSB7XG4gIGNvbnN0IGxpbmtBcnJheSA9IGxpbmsuc3BsaXQoXCI/XCIpO1xuICBpZiAobGlua0FycmF5Lmxlbmd0aCA+IGVsZW1lbnROdW1iZXIpIHtcbiAgICByZXR1cm4gbGlua0FycmF5W2VsZW1lbnROdW1iZXJdO1xuICB9XG4gIHJldHVybiBsaW5rO1xufSIsImltcG9ydCBQcm9maWxlQ29tcG9uZW50IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL3Byb2ZpbGUuanN4XCI7XG5pbXBvcnQgTWV0YSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9tZXRhLmpzeFwiO1xuaW1wb3J0IHtmb3JtYXRDb250ZW50fSBmcm9tIFwiLi4vLi4vdXRpbHMvZm9ybWF0Q29udGVudFwiO1xuXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE5vdGUoe3N0YXRlLCBwcm9wc30pIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIm5vc3RyRW1iZWRDYXJkXCI+XG4gICAgICA8UHJvZmlsZUNvbXBvbmVudFxuICAgICAgICBwcm9maWxlUGtleT17IHN0YXRlPy5wcm9maWxlUGtleSB9XG4gICAgICAgIHByb2ZpbGU9eyBzdGF0ZT8ucHJvZmlsZSB9XG4gICAgICAgIG9wdGlvbnM9eyBwcm9wcz8ub3B0aW9ucyB9XG4gICAgICAvPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9e1xuICAgICAgICAgIHN0YXRlPy5ldmVudC5lcnJvclxuICAgICAgICAgICAgPyBcImNhcmRDb250ZW50IG5lLXRleHQtcmVkLTgwMFwiXG4gICAgICAgICAgICA6IFwiY2FyZENvbnRlbnRcIlxuICAgICAgICB9XG4gICAgICA+XG4gICAgICAgIHsgZm9ybWF0Q29udGVudChzdGF0ZSkgfVxuICAgICAgPC9kaXY+XG4gICAgICA8TWV0YVxuICAgICAgICBub3RlPXsgc3RhdGU/LmV2ZW50IH1cbiAgICAgICAgbGlrZXNDb3VudD17IHN0YXRlPy5saWtlc0NvdW50IH1cbiAgICAgICAgcmVwbGllc0NvdW50PXsgc3RhdGU/LnJlcGxpZXNDb3VudCB9XG4gICAgICAgIHJlcG9zdHNDb3VudD17IHN0YXRlPy5yZXBvc3RzQ291bnQgfVxuICAgICAgICB6YXBBbW91bnQ9eyBzdGF0ZT8uemFwQW1vdW50IH1cbiAgICAgICAgb3B0aW9ucz17IHByb3BzPy5vcHRpb25zIH1cbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbiIsImltcG9ydCAqIGFzIHNlY3AgZnJvbSBcIkBub2JsZS9zZWNwMjU2azFcIjtcbmltcG9ydCB7ZGVjb2RlfSBmcm9tIFwibGlnaHQtYm9sdDExLWRlY29kZXJcIjtcbmltcG9ydCB7Q29tcG9uZW50fSBmcm9tIFwicHJlYWN0XCI7XG5pbXBvcnQge3BhcnNlTmFkZHIsIHBhcnNlTm90ZUlkLCBwYXJzZU5wdWIsfSBmcm9tIFwiLi4vdXRpbHMvY29tbW9uXCI7XG5pbXBvcnQgUHJvZmlsZXNMaXN0IGZyb20gXCIuL2NvbXBvbmVudHMvUHJvZmlsZXNMaXN0LmpzeFwiO1xuaW1wb3J0IFByb2ZpbGUgZnJvbSBcIi4vY29tcG9uZW50cy9Qcm9maWxlLmpzeFwiO1xuaW1wb3J0IHtLSU5EX0NPTlRBQ1RfTElTVCwgS0lORF9NRVRBLCBLSU5EX05PVEUsIEtJTkRfUFJPRklMRV9MSVNULCBLSU5EX1pBUH0gZnJvbSBcIi4uL2NvbmZpZy9jb25maWdcIjtcbmltcG9ydCBaYXAgZnJvbSBcIi4vY29tcG9uZW50cy9aYXAuanN4XCI7XG5pbXBvcnQgTm90ZSBmcm9tIFwiLi9jb21wb25lbnRzL05vdGUuanN4XCI7XG5cbmNsYXNzIE5vc3RyRW1iZWQgZXh0ZW5kcyBDb21wb25lbnQge1xuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcblxuICAgIGxldCBpZCA9IHByb3BzLmlkOyAvLyBoZXggZXZlbnQgaWQgYnkgZGVmYXVsdFxuICAgIGxldCBraW5kID0gS0lORF9OT1RFOyAvLyBkZWZhdWx0IGZvciBmZXRjaEV2ZW50XG4gICAgaWYgKHByb3BzLmlkLnN0YXJ0c1dpdGgoXCJucHViMVwiKSkge1xuICAgICAgaWQgPSBwYXJzZU5wdWIocHJvcHMuaWQpO1xuICAgICAga2luZCA9IEtJTkRfTUVUQTsgLy8gZmV0Y2hQcm9maWxlXG4gICAgfSBlbHNlIGlmIChwcm9wcy5pZC5zdGFydHNXaXRoKFwibm90ZTFcIikpIHtcbiAgICAgIGlkID0gcGFyc2VOb3RlSWQocHJvcHMuaWQpO1xuICAgIH0gZWxzZSBpZiAocHJvcHMuaWQuc3RhcnRzV2l0aChcIm5hZGRyXCIpKSB7XG4gICAgICBpZCA9IHBhcnNlTmFkZHIocHJvcHMuaWQpO1xuICAgICAga2luZCA9IEtJTkRfQ09OVEFDVF9MSVNUOyAvLyBkZWZhdWx0IGZvciBmZXRjaE5hZGRyXG4gICAgfVxuXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGlkLFxuICAgICAga2luZCxcbiAgICAgIHJlbGF5OiBwcm9wcy5yZWxheSxcbiAgICAgIGV2ZW50OiB7fSwgLy8gcmF3IHNvdXJjZSBldmVudFxuICAgICAgcHJvZmlsZToge30sIC8vIGF1dGhvciBvZiB0aGUgY3VycmVudCBldmVudFxuICAgICAgcHJvZmlsZXNMaXN0OiB7fSwgLy8gMywgMzAwMDAgZXRjXG4gICAgICB0YWdnZWRQcm9maWxlczoge30sXG4gICAgICBmb2xsb3dzOiBbXSxcbiAgICAgIHByb2ZpbGVQa2V5OiBcIlwiLFxuICAgICAgbGlrZXNDb3VudDogMCxcbiAgICAgIHJlcG9zdHNDb3VudDogMCxcbiAgICAgIHJlcGxpZXNDb3VudDogMCxcbiAgICAgIHphcEFtb3VudDogMCxcbiAgICAgIGZvbGxvd2Vyc0NvdW50OiAwLFxuICAgICAgY291bnRUYWdnZWRQcm9maWxlczogMCxcbiAgICB9O1xuICB9XG5cbiAgc2hhMjU2KHN0cmluZykge1xuICAgIGNvbnN0IHV0ZjggPSBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoc3RyaW5nKTtcbiAgICByZXR1cm4gc2VjcC51dGlscy5zaGEyNTYodXRmOCkudGhlbigoaGFzaEJ1ZmZlcikgPT4ge1xuICAgICAgY29uc3QgaGFzaEFycmF5ID0gQXJyYXkuZnJvbShuZXcgVWludDhBcnJheShoYXNoQnVmZmVyKSk7XG4gICAgICByZXR1cm4gaGFzaEFycmF5XG4gICAgICAgIC5tYXAoKGJ5dGVzKSA9PiBieXRlcy50b1N0cmluZygxNikucGFkU3RhcnQoMiwgXCIwXCIpKVxuICAgICAgICAuam9pbihcIlwiKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGdldE5vc3RyRXZlbnRJRChtKSB7XG4gICAgY29uc3QgYSA9IFswLCBtLnB1YmtleSwgbS5jcmVhdGVkX2F0LCBtLmtpbmQsIG0udGFncywgbS5jb250ZW50XTtcbiAgICBjb25zdCBzID0gSlNPTi5zdHJpbmdpZnkoYSk7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuc2hhMjU2KHMpO1xuICB9XG5cbiAgdmVyaWZ5Tm9zdHJTaWduYXR1cmUoZXZlbnQpIHtcbiAgICByZXR1cm4gc2VjcC5zY2hub3JyLnZlcmlmeShldmVudC5zaWcsIGV2ZW50LmlkLCBldmVudC5wdWJrZXkpO1xuICB9XG5cbiAgYXN5bmMgdmFsaWRhdGVOb3N0ckV2ZW50KGV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmlkICE9PSAoYXdhaXQgdGhpcy5nZXROb3N0ckV2ZW50SUQoZXZlbnQpKSkgcmV0dXJuIGZhbHNlO1xuICAgIGlmICh0eXBlb2YgZXZlbnQuY29udGVudCAhPT0gXCJzdHJpbmdcIikgcmV0dXJuIGZhbHNlO1xuICAgIGlmICh0eXBlb2YgZXZlbnQuY3JlYXRlZF9hdCAhPT0gXCJudW1iZXJcIikgcmV0dXJuIGZhbHNlO1xuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGV2ZW50LnRhZ3MpKSByZXR1cm4gZmFsc2U7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBldmVudC50YWdzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBsZXQgdGFnID0gZXZlbnQudGFnc1tpXTtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheSh0YWcpKSByZXR1cm4gZmFsc2U7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRhZy5sZW5ndGg7IGorKykge1xuICAgICAgICBpZiAodHlwZW9mIHRhZ1tqXSA9PT0gXCJvYmplY3RcIikgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgYXN5bmMgaXNWYWxpZEV2ZW50KGV2KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGV2LmlkICYmXG4gICAgICBldi5wdWJrZXkgJiZcbiAgICAgIGV2LnNpZyAmJlxuICAgICAgKGF3YWl0IHRoaXMudmFsaWRhdGVOb3N0ckV2ZW50KGV2KSkgJiZcbiAgICAgIHRoaXMudmVyaWZ5Tm9zdHJTaWduYXR1cmUoZXYpXG4gICAgKTtcbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHN0YXJ0ID0gKHNvY2tldCkgPT4ge1xuICAgICAgc3dpdGNoICh0aGlzLnN0YXRlLmtpbmQpIHtcbiAgICAgICAgY2FzZSBLSU5EX01FVEE6XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hQcm9maWxlKHtzb2NrZXQsIHByb2ZpbGVQa2V5OiB0aGlzLnN0YXRlLmlkfSk7XG4gICAgICAgIGNhc2UgS0lORF9OT1RFOlxuICAgICAgICAgIHJldHVybiB0aGlzLmZldGNoRXZlbnQoe3NvY2tldCwgbm90ZUlkOiB0aGlzLnN0YXRlLmlkfSk7XG4gICAgICAgIGNhc2UgS0lORF9DT05UQUNUX0xJU1Q6XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hOYWRkcih7c29ja2V0LCBkYXRhOiB0aGlzLnN0YXRlLmlkLmRhdGF9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaWYgKCF3aW5kb3cuX19ub3N0ckVtYmVkKSB3aW5kb3cuX19ub3N0ckVtYmVkID0ge3NvY2tldHM6IHt9fTtcblxuICAgIGxldCBzb2NrZXQgPSBudWxsO1xuICAgIGlmICh0aGlzLnN0YXRlLnJlbGF5IGluIHdpbmRvdy5fX25vc3RyRW1iZWQuc29ja2V0cykge1xuICAgICAgc29ja2V0ID0gd2luZG93Ll9fbm9zdHJFbWJlZC5zb2NrZXRzW3RoaXMuc3RhdGUucmVsYXldO1xuICAgICAgaWYgKHNvY2tldC5yZWFkeVN0YXRlID09IDEpXG4gICAgICAgIC8vIG9wZW5cbiAgICAgICAgc3RhcnQoc29ja2V0KTtcbiAgICAgIGVsc2UgaWYgKHNvY2tldC5yZWFkeVN0YXRlID09IDApXG4gICAgICAgIC8vIGNvbm5lY3RpbmdcbiAgICAgICAgc29ja2V0LnN0YXJ0cy5wdXNoKHN0YXJ0KTtcbiAgICAgIGVsc2Ugc29ja2V0ID0gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoc29ja2V0KSByZXR1cm47XG5cbiAgICBzb2NrZXQgPSBuZXcgV2ViU29ja2V0KHRoaXMuc3RhdGUucmVsYXkpO1xuICAgIHdpbmRvdy5fX25vc3RyRW1iZWQuc29ja2V0c1t0aGlzLnN0YXRlLnJlbGF5XSA9IHNvY2tldDtcblxuICAgIHNvY2tldC5zdGFydHMgPSBbc3RhcnRdO1xuXG4gICAgc29ja2V0Lm9ub3BlbiA9ICgpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKGBDb25uZWN0ZWQgdG8gTm9zdHIgcmVsYXk6ICR7IHNvY2tldC51cmwgfWApO1xuICAgICAgZm9yIChjb25zdCBzIG9mIHNvY2tldC5zdGFydHMpIHMoc29ja2V0KTtcbiAgICAgIHNvY2tldC5zdGFydHMgPSBudWxsO1xuICAgIH07XG5cbiAgICBzb2NrZXQub25lcnJvciA9IChldikgPT4ge1xuICAgICAgY29uc29sZS5sb2coYEZhaWxlZCB0byBjb25uZWN0IHRvIE5vc3RyIHJlbGF5OiAkeyBzb2NrZXQudXJsIH19YCk7XG4gICAgfTtcblxuICAgIGNvbnN0IHN1YnMgPSB7fTtcbiAgICBzb2NrZXQub25tZXNzYWdlID0gKGUpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGQgPSBKU09OLnBhcnNlKGUuZGF0YSk7XG4gICAgICAgIGlmICghZCB8fCAhZC5sZW5ndGgpIHRocm93IFwiQmFkIHJlcGx5IGZyb20gcmVsYXlcIjtcblxuICAgICAgICBpZiAoZFswXSA9PSBcIk5PVElDRVwiICYmIGQubGVuZ3RoID09IDIpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIm5vdGljZSBmcm9tXCIsIHNvY2tldC51cmwsIGRbMV0pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkWzBdID09IFwiRU9TRVwiICYmIGQubGVuZ3RoID4gMSkge1xuICAgICAgICAgIGlmIChkWzFdIGluIHN1YnMpIHN1YnNbZFsxXV0ub25fZXZlbnQobnVsbCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGRbMF0gPT0gXCJDT1VOVFwiICYmIGQubGVuZ3RoID09IDMpIHtcbiAgICAgICAgICBpZiAoZFsxXSBpbiBzdWJzKSBzdWJzW2RbMV1dLm9uX2NvdW50KGRbMl0pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkWzBdICE9IFwiRVZFTlRcIiB8fCBkLmxlbmd0aCA8IDMpIHRocm93IFwiVW5rbm93biByZXBseSBmcm9tIHJlbGF5XCI7XG5cbiAgICAgICAgaWYgKGRbMV0gaW4gc3Vicykgc3Vic1tkWzFdXS5vbl9ldmVudChkWzJdKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFwicmVsYXlcIiwgc29ja2V0LnVybCwgXCJiYWQgbWVzc2FnZVwiLCBlLCBcImVycm9yXCIsIGVycm9yKTtcbiAgICAgICAgZXJyKGVycm9yKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgc29ja2V0LnN1YnNjcmliZSA9ICh7dHlwZSwgc3ViLCBvaywgZXJyfSkgPT4ge1xuICAgICAgbGV0IGlkID0gXCJlbWJlZC1cIiArIE1hdGgucmFuZG9tKCk7XG4gICAgICBjb25zdCByZXEgPSBbdHlwZSwgaWQsIHN1Yl07XG4gICAgICBzb2NrZXQuc2VuZChKU09OLnN0cmluZ2lmeShyZXEpKTtcblxuICAgICAgY29uc3QgY2xvc2UgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHN1Yl9pZCA9IGlkO1xuICAgICAgICBpZCA9IG51bGw7XG4gICAgICAgIHNvY2tldC5zZW5kKEpTT04uc3RyaW5naWZ5KFtcIkNMT1NFXCIsIHN1Yl9pZF0pKTtcbiAgICAgICAgZGVsZXRlIHN1YnNbc3ViX2lkXTtcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGV2ZW50cyA9IFtdO1xuICAgICAgY29uc3QgcXVldWUgPSBbXTtcblxuICAgICAgY29uc3QgZG9uZSA9ICgpID0+IHtcbiAgICAgICAgaWYgKCFpZCkgcmV0dXJuO1xuICAgICAgICBjbGVhclRpbWVvdXQodG8pO1xuICAgICAgICBjbG9zZSgpO1xuICAgICAgICBvayhldmVudHMpO1xuICAgICAgfTtcblxuICAgICAgY29uc3QgdG8gPSBzZXRUaW1lb3V0KFxuICAgICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgLy8gdGVsbCByZWxheSB3ZSdyZSBubyBsb25nZXIgaW50ZXJlc3RlZFxuICAgICAgICAgIGNsb3NlKCk7XG5cbiAgICAgICAgICAvLyBtYXliZSByZWxheSB3L28gRU9TRSBzdXBwb3J0P1xuICAgICAgICAgIGlmIChldmVudHMubGVuZ3RoIHx8IHF1ZXVlLmxlbmd0aCkge1xuICAgICAgICAgICAgb25fZXZlbnQobnVsbCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVycihcInRpbWVvdXQgb24gcmVsYXlcIiwgc29ja2V0LnVybCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBzdWIubGltaXQgJiYgc3ViLmxpbWl0ID09IDEgPyAyMDAwIDogNjAwMFxuICAgICAgKTtcblxuICAgICAgY29uc3Qgb25fZXZlbnQgPSBhc3luYyAoZSkgPT4ge1xuICAgICAgICBxdWV1ZS5wdXNoKGUpO1xuICAgICAgICBpZiAocXVldWUubGVuZ3RoID4gMSkgcmV0dXJuO1xuICAgICAgICB3aGlsZSAocXVldWUubGVuZ3RoKSB7XG4gICAgICAgICAgZSA9IHF1ZXVlWzBdO1xuICAgICAgICAgIGlmIChlICYmIChhd2FpdCB0aGlzLmlzVmFsaWRFdmVudChlKSkpIGV2ZW50cy5wdXNoKGUpO1xuICAgICAgICAgIHF1ZXVlLnNoaWZ0KCk7IC8vIGRlcXVldWUgYWZ0ZXIgd2UndmUgYXdhaXRlZFxuICAgICAgICAgIGlmICghZSB8fCAoc3ViLmxpbWl0ICYmIHN1Yi5saW1pdCA9PSBldmVudHMubGVuZ3RoKSkge1xuICAgICAgICAgICAgcXVldWUuc3BsaWNlKDAsIHF1ZXVlLmxlbmd0aCk7XG4gICAgICAgICAgICBkb25lKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG9uX2NvdW50ID0gYXN5bmMgKGUpID0+IHtcbiAgICAgICAgaWYgKHR5cGUgIT0gXCJDT1VOVFwiKSByZXR1cm47IC8vIG1pc2JlaGF2aW5nIHJlbGF5XG4gICAgICAgIGV2ZW50cy5wdXNoKGUpO1xuICAgICAgICBkb25lKCk7XG4gICAgICB9O1xuXG4gICAgICBzdWJzW2lkXSA9IHtvaywgZXJyLCBvbl9ldmVudCwgb25fY291bnR9O1xuICAgIH07XG5cbiAgICBzb2NrZXQubGlzdEV2ZW50cyA9ICh7c3ViLCBvaywgZXJyfSkgPT4ge1xuICAgICAgc29ja2V0LnN1YnNjcmliZSh7dHlwZTogXCJSRVFcIiwgc3ViLCBvaywgZXJyfSk7XG4gICAgfTtcblxuICAgIHNvY2tldC5jb3VudEV2ZW50cyA9ICh7c3ViLCBvaywgZXJyfSkgPT4ge1xuICAgICAgc29ja2V0LnN1YnNjcmliZSh7XG4gICAgICAgIHR5cGU6IFwiQ09VTlRcIixcbiAgICAgICAgc3ViLFxuICAgICAgICBvazogKGV2ZW50cykgPT4ge1xuICAgICAgICAgIG9rKGV2ZW50cy5sZW5ndGggPyBldmVudHNbMF0gOiBudWxsKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyLFxuICAgICAgfSk7XG4gICAgfTtcbiAgfVxuXG4gIGdldEV2ZW50KHtzb2NrZXQsIHN1Yiwgb2ssIGVycn0pIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKG9rLCBlcnIpID0+IHtcbiAgICAgIHN1Yi5saW1pdCA9IDE7XG4gICAgICBzb2NrZXQubGlzdEV2ZW50cyh7XG4gICAgICAgIHN1YixcbiAgICAgICAgb2s6IChldmVudHMpID0+IHtcbiAgICAgICAgICBvayhldmVudHMgPyBldmVudHNbMF0gOiBudWxsKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBsaXN0RXZlbnRzKHtzb2NrZXQsIHN1Yn0pIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKG9rLCBlcnIpID0+IHtcbiAgICAgIHNvY2tldC5saXN0RXZlbnRzKHtzdWIsIG9rLCBlcnJ9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGNvdW50RXZlbnRzKHtzb2NrZXQsIHN1Yn0pIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKG9rLCBlcnIpID0+IHtcbiAgICAgIHNvY2tldC5jb3VudEV2ZW50cyh7c3ViLCBvaywgZXJyfSk7XG4gICAgfSk7XG4gIH1cblxuICBmZXRjaEV2ZW50KHtzb2NrZXQsIG5vdGVJZH0pIHtcbiAgICBjb25zdCBzdWIgPSB7aWRzOiBbbm90ZUlkXX07XG4gICAgdGhpcy5nZXRFdmVudCh7c29ja2V0LCBzdWJ9KVxuICAgICAgLnRoZW4oKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChldmVudCkge1xuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgZXZlbnQsXG4gICAgICAgICAgICBraW5kOiBldmVudC5raW5kLFxuICAgICAgICAgICAgcHJvZmlsZVBrZXk6IGV2ZW50LnB1YmtleSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLmZldGNoUHJvZmlsZSh7c29ja2V0LCBwcm9maWxlUGtleTogZXZlbnQucHVia2V5fSk7XG4gICAgICAgICAgaWYgKGV2ZW50LmtpbmQgPT0gS0lORF9OT1RFKSB7XG4gICAgICAgICAgICB0aGlzLmZldGNoTWV0YSh7c29ja2V0LCBub3RlSWR9KTtcbiAgICAgICAgICAgIHRoaXMuZmV0Y2hUYWdzKHtzb2NrZXQsIHRhZ3M6IGV2ZW50LnRhZ3N9KTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtpbmQgPT0gS0lORF9aQVApIHtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5sb2coXCJFcnJvcjogV2UgY2FuJ3QgZmluZCB0aGF0IG5vdGUgb24gdGhpcyByZWxheVwiKTtcbiAgICAgICAgICB0aHJvdyBcIkV2ZW50IG5vdCBmb3VuZFwiO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhgRXJyb3IgZmV0Y2hpbmcgbm90ZTogJHsgZXJyb3IgfWApO1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICBldmVudDoge1xuICAgICAgICAgICAgaWQ6IG5vdGVJZCxcbiAgICAgICAgICAgIGVycm9yOiB0cnVlLFxuICAgICAgICAgICAgY29udGVudDpcbiAgICAgICAgICAgICAgXCJTb3JyeSwgd2Ugd2VyZW4ndCBhYmxlIHRvIGZpbmQgYW5kIHBhcnNlIHRoaXMgbm90ZSBvbiB0aGUgc3BlY2lmaWVkIHJlbGF5LlwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cblxuICBmZXRjaFByb2ZpbGUoe3NvY2tldCwgcHJvZmlsZVBrZXl9KSB7XG4gICAgY29uc3Qgc3ViID0ge2tpbmRzOiBbS0lORF9NRVRBXSwgYXV0aG9yczogW3Byb2ZpbGVQa2V5XX07XG4gICAgdGhpcy5nZXRFdmVudCh7c29ja2V0LCBzdWJ9KVxuICAgICAgLnRoZW4oKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChldmVudCkge1xuICAgICAgICAgIGxldCBwYXJzZWRQcm9maWxlID0gSlNPTi5wYXJzZShldmVudC5jb250ZW50KTtcbiAgICAgICAgICBwYXJzZWRQcm9maWxlLnB1YmtleSA9IHByb2ZpbGVQa2V5O1xuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe3Byb2ZpbGVQa2V5LCBwcm9maWxlOiBwYXJzZWRQcm9maWxlfSk7XG4gICAgICAgICAgaWYgKHRoaXMuc3RhdGUua2luZCA9PSBLSU5EX01FVEEpIHtcbiAgICAgICAgICAgIHRoaXMuZmV0Y2hQcm9maWxlTWV0YSh7c29ja2V0LCBwdWJrZXk6IHByb2ZpbGVQa2V5fSk7XG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vcHRpb25zPy5zaG93Rm9sbG93aW5nKSB0aGlzLmZldGNoRm9sbG93cyh7c29ja2V0LCBwdWJrZXk6IHByb2ZpbGVQa2V5fSlcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgXCJFdmVudCBub3QgZm91bmRcIjtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coYEVycm9yIGZldGNoaW5nIHByb2ZpbGU6ICR7IGVycm9yIH1gKTtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgcHJvZmlsZToge1xuICAgICAgICAgICAgcHVia2V5OiBwcm9maWxlUGtleSxcbiAgICAgICAgICAgIGVycm9yOiB0cnVlLFxuICAgICAgICAgICAgYWJvdXQ6XG4gICAgICAgICAgICAgIFwiU29ycnksIHdlIHdlcmVuJ3QgYWJsZSB0byBmaW5kIHRoaXMgcHJvZmlsZSBvbiB0aGUgc3BlY2lmaWVkIHJlbGF5LlwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cblxuICBmZXRjaEZvbGxvd3Moe3NvY2tldCwgcHVia2V5fSkge1xuICAgIGNvbnN0IHN1YiA9IHtcbiAgICAgIGtpbmRzOiBbS0lORF9DT05UQUNUX0xJU1RdLFxuICAgICAgYXV0aG9yczogW3B1YmtleV1cbiAgICB9XG4gICAgbGV0IGZvbGxvd2VkUHVia2V5cyA9IFtdXG4gICAgdGhpcy5nZXRFdmVudCh7c29ja2V0LCBzdWJ9KVxuICAgICAgLnRoZW4oZXZlbnQgPT4ge1xuICAgICAgICBpZiAoZXZlbnQpIHtcbiAgICAgICAgICBldmVudD8udGFncy5mb3JFYWNoKHRhZyA9PiB7XG4gICAgICAgICAgICBpZiAodGFnWzBdID09PSBcInBcIikge1xuICAgICAgICAgICAgICBmb2xsb3dlZFB1YmtleXMucHVzaCh0YWdbMV0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgICB0aGlzLmZldGNoRm9sbG93UHJvZmlsZXMoe3NvY2tldCwgcHVia2V5czogZm9sbG93ZWRQdWJrZXlzfSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBcIkV2ZW50IG5vdCBmb3VuZFwiO1xuICAgICAgICB9XG4gICAgICB9KS5jYXRjaChlcnJvciA9PiB7XG4gICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBmZXRjaGluZyBmb2xsb3dzOiAkeyBlcnJvciB9YCk7XG4gICAgfSlcbiAgfVxuXG4gIGZldGNoRm9sbG93UHJvZmlsZXMoe3NvY2tldCwgcHVia2V5c30pIHtcbiAgICBjb25zdCBzdWIgPSB7XG4gICAgICBraW5kczogW0tJTkRfTUVUQV0sXG4gICAgICBhdXRob3JzOiBwdWJrZXlzXG4gICAgfVxuICAgIHRoaXMubGlzdEV2ZW50cyh7c29ja2V0LCBzdWJ9KS50aGVuKGV2ZW50cyA9PiB7XG4gICAgICBpZiAoZXZlbnRzKSB0aGlzLnNldFN0YXRlKHtmb2xsb3dzOiBldmVudHN9KVxuICAgIH0pLmNhdGNoKGVycm9yID0+IHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yIGZldGNoaW5nIGZvbGxvdyBwcm9maWxlczogJHsgZXJyb3IgfWApO1xuICAgIH0pXG4gIH1cblxuICBmZXRjaE5hZGRyKHtzb2NrZXQsIGRhdGF9KSB7XG4gICAgY29uc3Qgc3ViID0ge1xuICAgICAga2luZHM6IFtkYXRhLmtpbmRdLFxuICAgICAgXCIjZFwiOiBbZGF0YS5pZGVudGlmaWVyXSxcbiAgICAgIGF1dGhvcnM6IFtkYXRhLnB1YmtleV0sXG4gICAgfTtcbiAgICB0aGlzLmdldEV2ZW50KHtzb2NrZXQsIHN1Yn0pXG4gICAgICAudGhlbigoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50KSB7XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7ZXZlbnQsIGtpbmQ6IGV2ZW50LmtpbmR9KTtcbiAgICAgICAgICB0aGlzLmZldGNoUHJvZmlsZSh7c29ja2V0LCBwcm9maWxlUGtleTogZXZlbnQucHVia2V5fSk7XG4gICAgICAgICAgaWYgKGV2ZW50LmtpbmQgPT0gS0lORF9DT05UQUNUX0xJU1QgfHwgZXZlbnQua2luZCA9PSBLSU5EX1BST0ZJTEVfTElTVCkge1xuICAgICAgICAgICAgY29uc3QgcHJvZmlsZXNMaXN0T2JqID0gdGhpcy5nZXRQcm9maWxlc0xpc3RPYmooZXZlbnQudGFncyk7XG4gICAgICAgICAgICBwcm9maWxlc0xpc3RPYmouY3JlYXRlZF9hdCA9IGV2ZW50LmNyZWF0ZWRfYXQ7XG4gICAgICAgICAgICBwcm9maWxlc0xpc3RPYmouaWQgPSBgJHsgZGF0YS5raW5kIH06JHsgZGF0YS5wdWJrZXkgfTokeyBkYXRhLmlkZW50aWZpZXIgfWA7XG4gICAgICAgICAgICBwcm9maWxlc0xpc3RPYmoubmFkZHIgPSB0aGlzLnByb3BzLmlkO1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7cHJvZmlsZXNMaXN0OiBwcm9maWxlc0xpc3RPYmp9KTtcbiAgICAgICAgICAgIHRoaXMuZmV0Y2hUYWdzKHtzb2NrZXQsIHRhZ3M6IGV2ZW50LnRhZ3N9KTtcbiAgICAgICAgICAgIHRoaXMuZmV0Y2hNZXRhKHtzb2NrZXQsIGRhdGF9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgXCJFdmVudCBub3QgZm91bmRcIjtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coYEVycm9yIGZldGNoaW5nIGV2ZW50IGJ5IG5hZGRyOiAkeyBlcnJvciB9YCk7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgIHByb2ZpbGVzTGlzdDoge1xuICAgICAgICAgICAgZXJyb3I6IHRydWUsXG4gICAgICAgICAgICBjb250ZW50OlxuICAgICAgICAgICAgICBcIlNvcnJ5LCB3ZSB3ZXJlbid0IGFibGUgdG8gZmluZCB0aGlzIGV2ZW50IG9uIHRoZSBzcGVjaWZpZWQgcmVsYXkuXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIGZldGNoVGFncyh7c29ja2V0LCB0YWdzfSkge1xuICAgIGNvbnN0IHN1YiA9IHtraW5kczogW0tJTkRfTUVUQV0sIGF1dGhvcnM6IFtdfTtcbiAgICBsZXQgY291bnQgPSAwO1xuXG4gICAgZm9yIChjb25zdCB0IG9mIHRhZ3MpIHtcbiAgICAgIGlmIChzdWIuYXV0aG9ycy5sZW5ndGggPCAxMDApIHtcbiAgICAgICAgaWYgKHQubGVuZ3RoID49IDIgJiYgdFswXSA9PSBcInBcIikge1xuICAgICAgICAgIHN1Yi5hdXRob3JzLnB1c2godFsxXSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHQubGVuZ3RoID49IDIgJiYgdFswXSA9PSBcInBcIikge1xuICAgICAgICBjb3VudCsrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuc2V0U3RhdGUoKHN0YXRlKSA9PiAoe1xuICAgICAgY291bnRUYWdnZWRQcm9maWxlczogc3RhdGUuY291bnRUYWdnZWRQcm9maWxlcyArIGNvdW50LFxuICAgIH0pKTtcblxuICAgIGlmICghc3ViLmF1dGhvcnMubGVuZ3RoKSByZXR1cm47XG5cbiAgICB0aGlzLmxpc3RFdmVudHMoe3NvY2tldCwgc3VifSlcbiAgICAgIC50aGVuKChldmVudHMpID0+IHtcbiAgICAgICAgY29uc3QgdGFnZ2VkUHJvZmlsZXMgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBldmVudCBvZiBldmVudHMpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgbGV0IHAgPSBKU09OLnBhcnNlKGV2ZW50LmNvbnRlbnQpO1xuICAgICAgICAgICAgdGFnZ2VkUHJvZmlsZXNbZXZlbnQucHVia2V5XSA9IHA7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJFcnJvciBiYWQgZXZlbnQgY29udGVudFwiLCBlLCBldmVudC5jb250ZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7dGFnZ2VkUHJvZmlsZXN9KTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBFcnJvciBmZXRjaGluZyB0YWdnZWQgcHJvZmlsZXM6ICR7IGVycm9yIH1gKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgZ2V0UHJvZmlsZXNMaXN0T2JqKHRhZ3MpIHtcbiAgICBsZXQgcHJvZmlsZXNMaXN0ID0ge307XG5cbiAgICB0YWdzLmZvckVhY2goKHRhZykgPT4ge1xuICAgICAgaWYgKHRhZyAmJiB0YWdbMF0pIHtcbiAgICAgICAgaWYgKHRhZ1swXSA9PT0gXCJuYW1lXCIpIHtcbiAgICAgICAgICBwcm9maWxlc0xpc3QubmFtZSA9IHRhZ1sxXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGFnWzBdID09PSBcImRcIikge1xuICAgICAgICAgIHByb2ZpbGVzTGlzdC5kID0gdGFnWzFdO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0YWdbMF0gPT09IFwiZGVzY3JpcHRpb25cIikge1xuICAgICAgICAgIHByb2ZpbGVzTGlzdC5kZXNjcmlwdGlvbiA9IHRhZ1sxXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBwcm9maWxlc0xpc3Q7XG4gIH1cblxuICBnZXRaYXBBbW91bnQoZSkge1xuICAgIHRyeSB7XG4gICAgICBmb3IgKGNvbnN0IHQgb2YgZS50YWdzKSB7XG4gICAgICAgIGlmICh0Lmxlbmd0aCA+PSAyICYmIHRbMF0gPT0gXCJib2x0MTFcIikge1xuICAgICAgICAgIGNvbnN0IGIgPSBkZWNvZGUodFsxXSk7XG4gICAgICAgICAgZm9yIChjb25zdCBzIG9mIGIuc2VjdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChzLm5hbWUgPT0gXCJhbW91bnRcIikgcmV0dXJuIHBhcnNlSW50KHMudmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVyKSB7XG4gICAgICBjb25zb2xlLmxvZyhcIkVycm9yIGJhZCB6YXBcIiwgZXIsIGUpO1xuICAgIH1cbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIG9uTGlzdE1ldGFFdmVudHMoZXZlbnRzKSB7XG4gICAgZm9yIChsZXQgbm90ZUV2ZW50IG9mIGV2ZW50cykge1xuICAgICAgc3dpdGNoIChub3RlRXZlbnRbXCJraW5kXCJdKSB7XG4gICAgICAgIGNhc2UgS0lORF9SRVBPU1Q6XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSgoc3RhdGUpID0+ICh7XG4gICAgICAgICAgICByZXBvc3RzQ291bnQ6IHN0YXRlLnJlcG9zdHNDb3VudCArIDEsXG4gICAgICAgICAgfSkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEtJTkRfUkVBQ1RJT046XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSgoc3RhdGUpID0+ICh7XG4gICAgICAgICAgICBsaWtlc0NvdW50OiBzdGF0ZS5saWtlc0NvdW50ICsgMSxcbiAgICAgICAgICB9KSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgS0lORF9OT1RFOlxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoKHN0YXRlKSA9PiAoe1xuICAgICAgICAgICAgcmVwbGllc0NvdW50OiBzdGF0ZS5yZXBsaWVzQ291bnQgKyAxLFxuICAgICAgICAgIH0pKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBLSU5EX1pBUDpcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKChzdGF0ZSkgPT4gKHtcbiAgICAgICAgICAgIHphcEFtb3VudDogc3RhdGUuemFwQW1vdW50ICsgdGhpcy5nZXRaYXBBbW91bnQobm90ZUV2ZW50KSxcbiAgICAgICAgICB9KSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgY29uc29sZS5sb2coXCJVbmtub3duIG5vdGUga2luZFwiKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmZXRjaE1ldGEoe3NvY2tldCwgbm90ZUlkLCBkYXRhfSkge1xuICAgIGlmKHRoaXMucHJvcHMub3B0aW9ucz8uaGlkZUNvdW50ZXJzKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoc29ja2V0LnVybC5pbmNsdWRlcyhcIndzczovL3JlbGF5Lm5vc3RyLmJhbmRcIikpXG4gICAgICByZXR1cm4gdGhpcy5mZXRjaE1ldGFDb3VudCh7c29ja2V0LCBub3RlSWQsIGRhdGF9KTtcbiAgICBlbHNlIHJldHVybiB0aGlzLmZldGNoTWV0YUxpc3Qoe3NvY2tldCwgbm90ZUlkLCBkYXRhfSk7XG4gIH1cblxuICBmZXRjaE1ldGFDb3VudCh7c29ja2V0LCBub3RlSWQsIGRhdGF9KSB7XG4gICAgY29uc3QgZ2V0U3ViID0gKGtpbmQpID0+IHtcbiAgICAgIGlmIChub3RlSWQpIHtcbiAgICAgICAgcmV0dXJuIHtraW5kczogW2tpbmRdLCBcIiNlXCI6IFtub3RlSWRdfTtcbiAgICAgIH1cblxuICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBraW5kczogW2tpbmRdLFxuICAgICAgICAgIFwiI2FcIjogW2AkeyBkYXRhLmtpbmQgfTokeyBkYXRhLnB1YmtleSB9OiR7IGRhdGEuaWRlbnRpZmllciB9YF0sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMuY291bnRFdmVudHMoe3NvY2tldCwgc3ViOiBnZXRTdWIoS0lORF9OT1RFKX0pLnRoZW4oKGMpID0+IHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoKHN0YXRlKSA9PiAoe1xuICAgICAgICByZXBsaWVzQ291bnQ6IGMgPyBjLmNvdW50IDogMCxcbiAgICAgIH0pKTtcbiAgICB9KTtcbiAgICB0aGlzLmNvdW50RXZlbnRzKHtzb2NrZXQsIHN1YjogZ2V0U3ViKEtJTkRfUkVQT1NUKX0pLnRoZW4oKGMpID0+IHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoKHN0YXRlKSA9PiAoe1xuICAgICAgICByZXBvc3RzQ291bnQ6IGMgPyBjLmNvdW50IDogMCxcbiAgICAgIH0pKTtcbiAgICB9KTtcbiAgICB0aGlzLmNvdW50RXZlbnRzKHtzb2NrZXQsIHN1YjogZ2V0U3ViKEtJTkRfUkVBQ1RJT04pfSkudGhlbigoYykgPT4ge1xuICAgICAgdGhpcy5zZXRTdGF0ZSgoc3RhdGUpID0+ICh7XG4gICAgICAgIGxpa2VzQ291bnQ6IGMgPyBjLmNvdW50IDogMCxcbiAgICAgIH0pKTtcbiAgICB9KTtcbiAgICB0aGlzLmxpc3RFdmVudHMoe3NvY2tldCwgc3ViOiBnZXRTdWIoS0lORF9aQVApfSkudGhlbigoZXZlbnRzKSA9PiB7XG4gICAgICB0aGlzLm9uTGlzdE1ldGFFdmVudHMoZXZlbnRzKTtcbiAgICB9KTtcbiAgfVxuXG4gIGZldGNoTWV0YUxpc3Qoe3NvY2tldCwgbm90ZUlkLCBkYXRhfSkge1xuICAgIGNvbnN0IHN1YiA9IHRoaXMuZ2V0U3ViT25GZXRjaE1ldGFMaXN0KHtub3RlSWQsIGRhdGF9KTtcblxuICAgIHRoaXMubGlzdEV2ZW50cyh7c29ja2V0LCBzdWJ9KS50aGVuKChldmVudHMpID0+IHtcbiAgICAgIHRoaXMub25MaXN0TWV0YUV2ZW50cyhldmVudHMpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0U3ViT25GZXRjaE1ldGFMaXN0KHtub3RlSWQsIGRhdGF9KSB7XG4gICAgaWYgKG5vdGVJZCkge1xuICAgICAgcmV0dXJuIHtraW5kczogW0tJTkRfTk9URSwgS0lORF9SRVBPU1QsIEtJTkRfUkVBQ1RJT04sIEtJTkRfWkFQXSwgXCIjZVwiOiBbbm90ZUlkXX07XG4gICAgfVxuICAgIGlmIChkYXRhKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBraW5kczogW0tJTkRfTk9URSwgS0lORF9SRVBPU1QsIEtJTkRfUkVBQ1RJT04sIEtJTkRfWkFQXSxcbiAgICAgICAgXCIjYVwiOiBbYCR7IGRhdGEua2luZCB9OiR7IGRhdGEucHVia2V5IH06JHsgZGF0YS5pZGVudGlmaWVyIH1gXSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgb25MaXN0UHJvZmlsZU1ldGFFdmVudHMoZXZlbnRzKSB7XG4gICAgZm9yIChsZXQgZSBvZiBldmVudHMpIHtcbiAgICAgIHN3aXRjaCAoZVtcImtpbmRcIl0pIHtcbiAgICAgICAgY2FzZSBLSU5EX0NPTlRBQ1RfTElTVDpcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKChzdGF0ZSkgPT4gKHtcbiAgICAgICAgICAgIGZvbGxvd2Vyc0NvdW50OiBzdGF0ZS5mb2xsb3dlcnNDb3VudCArIDEsXG4gICAgICAgICAgfSkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEtJTkRfWkFQOlxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoKHN0YXRlKSA9PiAoe1xuICAgICAgICAgICAgemFwQW1vdW50OiBzdGF0ZS56YXBBbW91bnQgKyB0aGlzLmdldFphcEFtb3VudChlKSxcbiAgICAgICAgICB9KSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgY29uc29sZS5sb2coXCJVbmtub3duIGV2ZW50IGtpbmRcIik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZmV0Y2hQcm9maWxlTWV0YUNvdW50KHtzb2NrZXQsIHB1YmtleX0pIHtcbiAgICBjb25zdCBnZXRTdWIgPSAoa2luZCkgPT4ge1xuICAgICAgcmV0dXJuIHtraW5kczogW2tpbmRdLCBcIiNwXCI6IFtwdWJrZXldfTtcbiAgICB9O1xuICAgIHRoaXMuY291bnRFdmVudHMoe3NvY2tldCwgc3ViOiBnZXRTdWIoS0lORF9DT05UQUNUX0xJU1QpfSkudGhlbigoYykgPT4ge1xuICAgICAgdGhpcy5zZXRTdGF0ZSgoc3RhdGUpID0+ICh7XG4gICAgICAgIGZvbGxvd2Vyc0NvdW50OiBjID8gYy5jb3VudCA6IDAsXG4gICAgICB9KSk7XG4gICAgfSk7XG4gICAgdGhpcy5saXN0RXZlbnRzKHtzb2NrZXQsIHN1YjogZ2V0U3ViKEtJTkRfWkFQKX0pLnRoZW4oKGV2ZW50cykgPT4ge1xuICAgICAgdGhpcy5vbkxpc3RQcm9maWxlTWV0YUV2ZW50cyhldmVudHMpO1xuICAgIH0pO1xuICB9XG5cbiAgZmV0Y2hQcm9maWxlTWV0YUxpc3Qoe3NvY2tldCwgcHVia2V5fSkge1xuICAgIGNvbnN0IHN1YiA9IHtraW5kczogW0tJTkRfQ09OVEFDVF9MSVNULCBLSU5EX1pBUF0sIFwiI3BcIjogW3B1YmtleV19O1xuICAgIHRoaXMubGlzdEV2ZW50cyh7c29ja2V0LCBzdWJ9KS50aGVuKChldmVudHMpID0+IHtcbiAgICAgIHRoaXMub25MaXN0UHJvZmlsZU1ldGFFdmVudHMoZXZlbnRzKTtcbiAgICB9KTtcbiAgfVxuXG4gIGZldGNoUHJvZmlsZU1ldGEoe3NvY2tldCwgcHVia2V5fSkge1xuICAgIGNvbnNvbGUubG9nKHRoaXMucHJvcHMub3B0aW9ucz8uaGlkZUNvdW50ZXJzKVxuICAgIGlmKHRoaXMucHJvcHMub3B0aW9ucz8uaGlkZUNvdW50ZXJzKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoc29ja2V0LnVybC5pbmNsdWRlcyhcIndzczovL3JlbGF5Lm5vc3RyLmJhbmRcIikpXG4gICAgICByZXR1cm4gdGhpcy5mZXRjaFByb2ZpbGVNZXRhQ291bnQoe3NvY2tldCwgcHVia2V5fSk7XG4gICAgZWxzZSByZXR1cm4gdGhpcy5mZXRjaFByb2ZpbGVNZXRhTGlzdCh7c29ja2V0LCBwdWJrZXl9KTtcbiAgfVxuXG5cbiAgcmVuZGVyKCkge1xuICAgIHN3aXRjaCAodGhpcy5zdGF0ZS5raW5kKSB7XG4gICAgICBjYXNlIEtJTkRfTUVUQTpcbiAgICAgICAgcmV0dXJuIDxQcm9maWxlIHByb3BzPXsgdGhpcy5wcm9wcyB9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZT17IHRoaXMuc3RhdGUgfS8+XG4gICAgICBjYXNlIEtJTkRfQ09OVEFDVF9MSVNUOlxuICAgICAgY2FzZSBLSU5EX1BST0ZJTEVfTElTVDpcbiAgICAgICAgcmV0dXJuIDxQcm9maWxlc0xpc3QgcHJvcHM9eyB0aGlzLnByb3BzIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU9eyB0aGlzLnN0YXRlIH0vPlxuICAgICAgY2FzZSBLSU5EX1pBUDpcbiAgICAgICAgcmV0dXJuIDxaYXAgc3RhdGU9eyB0aGlzLnN0YXRlIH0vPlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIDxOb3RlIHByb3BzPXsgdGhpcy5wcm9wcyB9XG4gICAgICAgICAgICAgICAgICAgICBzdGF0ZT17IHRoaXMuc3RhdGUgfS8+XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE5vc3RyRW1iZWQ7XG4iLCJpbXBvcnQgeyBoLCByZW5kZXIgfSBmcm9tICdwcmVhY3QnO1xuaW1wb3J0IE5vc3RyRW1iZWQgZnJvbSAnLi9tYWluL05vc3RyRW1iZWQuanN4JztcblxuZXhwb3J0IGZ1bmN0aW9uIGluaXQoaWQsIHdyYXBwZXIsIHJlbGF5LCBvcHRpb25zKSB7XG5cbiAgaWYgKCFyZWxheSlcbiAgICByZWxheSA9ICd3c3M6Ly9yZWxheS5ub3N0ci5iYW5kLyc7XG5cbiAgY29uc3QgcmVuZGVyRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Iod3JhcHBlcilcbiAgICA/IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Iod3JhcHBlcilcbiAgICA6IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2JvZHknKTtcblxuICByZW5kZXIoaChOb3N0ckVtYmVkLCB7IGlkLCByZWxheSwgb3B0aW9ucyB9KSwgcmVuZGVyRWxlbWVudCk7XG59XG4iXSwibmFtZXMiOlsicm9vdCIsImZhY3RvcnkiLCJleHBvcnRzIiwibW9kdWxlIiwiZGVmaW5lIiwiYW1kIiwidGhpcyIsImxlYWZQcm90b3R5cGVzIiwiZ2V0UHJvdG8iLCJhc3NlcnROdW1iZXIiLCJuIiwiTnVtYmVyIiwiaXNTYWZlSW50ZWdlciIsIkVycm9yIiwiY2hhaW4iLCJhcmdzIiwid3JhcCIsImEiLCJiIiwiYyIsImVuY29kZSIsIkFycmF5IiwiZnJvbSIsInJldmVyc2UiLCJyZWR1Y2UiLCJhY2MiLCJpIiwidW5kZWZpbmVkIiwiZGVjb2RlIiwiYWxwaGFiZXQiLCJkaWdpdHMiLCJpc0FycmF5IiwibGVuZ3RoIiwibWFwIiwiaW5wdXQiLCJsZXR0ZXIiLCJpbmRleCIsImluZGV4T2YiLCJqb2luIiwic2VwYXJhdG9yIiwidG8iLCJzcGxpdCIsInBhZGRpbmciLCJiaXRzIiwiY2hyIiwiZGF0YSIsInB1c2giLCJlbmQiLCJzbGljZSIsIm5vcm1hbGl6ZSIsImZuIiwiY29udmVydFJhZGl4IiwicG9zIiwicmVzIiwiZm9yRWFjaCIsImQiLCJjYXJyeSIsImRvbmUiLCJkaWdpdCIsImRpZ2l0QmFzZSIsIk1hdGgiLCJmbG9vciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJieXRlcyIsInN0cmluZ1RvQnl0ZXMiLCJzdHIiLCJieXRlc1RvU3RyaW5nIiwiaGV4IiwidXRmOCIsImJlY2gzMm0iLCJiZWNoMzIiLCJiYXNlNThjaGVjayIsImJhc2U1OHhtciIsImJhc2U1OHhycCIsImJhc2U1OGZsaWNrciIsImJhc2U1OCIsImJhc2U2NHVybCIsImJhc2U2NCIsImJhc2UzMmNyb2NrZm9yZCIsImJhc2UzMmhleCIsImJhc2UzMiIsImJhc2UxNiIsInV0aWxzIiwiZ2NkIiwicmFkaXgyY2FycnkiLCJjb252ZXJ0UmFkaXgyIiwibWFzayIsInJhZGl4IiwibnVtIiwiVWludDhBcnJheSIsInJhZGl4MiIsInJldlBhZGRpbmciLCJ1bnNhZmVXcmFwcGVyIiwiYXBwbHkiLCJlIiwiY2hlY2tzdW0iLCJsZW4iLCJzZXQiLCJwYXlsb2FkIiwibmV3Q2hlY2tzdW0iLCJvbGRDaGVja3N1bSIsInMiLCJ0b1VwcGVyQ2FzZSIsInJlcGxhY2UiLCJnZW5CYXNlNTgiLCJhYmMiLCJYTVJfQkxPQ0tfTEVOIiwiYmxvY2siLCJzdWJhcnJheSIsInBhZFN0YXJ0IiwiYmxvY2tMZW4iLCJqIiwiY29uY2F0Iiwic2hhMjU2IiwiQkVDSF9BTFBIQUJFVCIsIlBPTFlNT0RfR0VORVJBVE9SUyIsImJlY2gzMlBvbHltb2QiLCJwcmUiLCJjaGsiLCJiZWNoQ2hlY2tzdW0iLCJwcmVmaXgiLCJ3b3JkcyIsImVuY29kaW5nQ29uc3QiLCJjaGFyQ29kZUF0IiwidiIsImdlbkJlY2gzMiIsImVuY29kaW5nIiwiRU5DT0RJTkdfQ09OU1QiLCJfd29yZHMiLCJmcm9tV29yZHMiLCJ0b1dvcmRzIiwiZnJvbVdvcmRzVW5zYWZlIiwibGltaXQiLCJUeXBlRXJyb3IiLCJsb3dlcmVkIiwidG9Mb3dlckNhc2UiLCJzZXBJbmRleCIsImxhc3RJbmRleE9mIiwic3VtIiwiZW5kc1dpdGgiLCJhY3R1YWxMZW5ndGgiLCJkZWNvZGVUb0J5dGVzIiwiZGVjb2RlVW5zYWZlIiwiVGV4dERlY29kZXIiLCJUZXh0RW5jb2RlciIsIkNPREVSUyIsImNvZGVyVHlwZUVycm9yIiwia2V5cyIsInR5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsIkFMUEhBQkVUIiwiQUxQSEFCRVRfTUFQIiwieiIsIngiLCJjaGFyQXQiLCJwb2x5bW9kU3RlcCIsInByZWZpeENoayIsImNvbnZlcnQiLCJpbkJpdHMiLCJvdXRCaXRzIiwicGFkIiwibWF4ViIsInJlc3VsdCIsImdldExpYnJhcnlGcm9tRW5jb2RpbmciLCJfX2RlY29kZSIsIkxJTUlUIiwidXBwZXJlZCIsIndvcmRDaGFycyIsIl9fX0NTU19MT0FERVJfRVhQT1JUX19fIiwiaWQiLCJjc3NXaXRoTWFwcGluZ1RvU3RyaW5nIiwibGlzdCIsInRvU3RyaW5nIiwiaXRlbSIsImNvbnRlbnQiLCJuZWVkTGF5ZXIiLCJtb2R1bGVzIiwibWVkaWEiLCJkZWR1cGUiLCJzdXBwb3J0cyIsImxheWVyIiwiYWxyZWFkeUltcG9ydGVkTW9kdWxlcyIsImsiLCJfayIsImNzc01hcHBpbmciLCJidG9hIiwidW5lc2NhcGUiLCJlbmNvZGVVUklDb21wb25lbnQiLCJKU09OIiwic3RyaW5naWZ5Iiwic291cmNlTWFwcGluZyIsIkRFRkFVTFRORVRXT1JLIiwicHViS2V5SGFzaCIsInNjcmlwdEhhc2giLCJ2YWxpZFdpdG5lc3NWZXJzaW9ucyIsIlRFU1RORVRXT1JLIiwiUkVHVEVTVE5FVFdPUksiLCJTSU1ORVRXT1JLIiwiRkVBVFVSRUJJVF9PUkRFUiIsIkRJVklTT1JTIiwibSIsIkJpZ0ludCIsInUiLCJwIiwiTUFYX01JTExJU0FUUyIsIk1JTExJU0FUU19QRVJfQlRDIiwiVEFHQ09ERVMiLCJwYXltZW50X2hhc2giLCJwYXltZW50X3NlY3JldCIsImRlc2NyaXB0aW9uIiwicGF5ZWUiLCJkZXNjcmlwdGlvbl9oYXNoIiwiZXhwaXJ5IiwibWluX2ZpbmFsX2NsdHZfZXhwaXJ5IiwiZmFsbGJhY2tfYWRkcmVzcyIsInJvdXRlX2hpbnQiLCJmZWF0dXJlX2JpdHMiLCJtZXRhZGF0YSIsIlRBR05BTUVTIiwiY3VycmVudE5hbWUiLCJjdXJyZW50Q29kZSIsIlRBR1BBUlNFUlMiLCJ3b3Jkc1RvSW50QkUiLCJyb3V0ZXMiLCJwdWJrZXkiLCJzaG9ydENoYW5uZWxJZCIsImZlZUJhc2VNU2F0cyIsImZlZVByb3BvcnRpb25hbE1pbGxpb250aHMiLCJjbHR2RXhwaXJ5RGVsdGEiLCJyb3V0ZXNCdWZmZXIiLCJwYXJzZUludCIsInNob3J0X2NoYW5uZWxfaWQiLCJmZWVfYmFzZV9tc2F0IiwiZmVlX3Byb3BvcnRpb25hbF9taWxsaW9udGhzIiwiY2x0dl9leHBpcnlfZGVsdGEiLCJib29scyIsIndvcmQiLCJmaW5hbEFyciIsIml0ZW1BcnIiLCJmZWF0dXJlQml0cyIsImZlYXR1cmVOYW1lIiwic3RhdHVzIiwiZXh0cmFCaXRzIiwiZXh0cmFfYml0cyIsInN0YXJ0X2JpdCIsImhhc19yZXF1aXJlZCIsImJpdCIsImdldFVua25vd25QYXJzZXIiLCJ0YWdDb2RlIiwiTUFYX1NBRkVfSU5URUdFUiIsInRvdGFsIiwicG93IiwiaHJwVG9NaWxsaXNhdCIsImhycFN0cmluZyIsIm91dHB1dFN0cmluZyIsImRpdmlzb3IiLCJtYXRjaCIsInZhbHVlQk4iLCJtaWxsaXNhdG9zaGlzQk4iLCJwYXltZW50UmVxdWVzdCIsIm5ldHdvcmsiLCJzZWN0aW9ucyIsImRlY29kZWQiLCJsZXR0ZXJzIiwic2lnV29yZHMiLCJwcmVmaXhNYXRjaGVzIiwibmFtZSIsImJlY2gzMlByZWZpeCIsImNvaW5OZXR3b3JrIiwibWlsbGlzYXRvc2hpcyIsInRpbWVzdGFtcCIsInRhZ05hbWUiLCJwYXJzZXIiLCJ0YWdMZW5ndGgiLCJ0YWdXb3JkcyIsInRhZyIsImV4cCIsImZpbmQiLCJnZXRWYWx1ZSIsInJvdXRlX2hpbnRzIiwiZmlsdGVyIiwiZ2V0Iiwic2VjdGlvbiIsInN0eWxlc0luRE9NIiwiZ2V0SW5kZXhCeUlkZW50aWZpZXIiLCJpZGVudGlmaWVyIiwibW9kdWxlc1RvRG9tIiwib3B0aW9ucyIsImlkQ291bnRNYXAiLCJpZGVudGlmaWVycyIsImJhc2UiLCJjb3VudCIsImluZGV4QnlJZGVudGlmaWVyIiwib2JqIiwiY3NzIiwic291cmNlTWFwIiwicmVmZXJlbmNlcyIsInVwZGF0ZXIiLCJhZGRFbGVtZW50U3R5bGUiLCJieUluZGV4Iiwic3BsaWNlIiwiYXBpIiwiZG9tQVBJIiwidXBkYXRlIiwibmV3T2JqIiwicmVtb3ZlIiwibGFzdElkZW50aWZpZXJzIiwibmV3TGlzdCIsIm5ld0xhc3RJZGVudGlmaWVycyIsIl9pIiwiX2luZGV4IiwibWVtbyIsImluc2VydCIsInN0eWxlIiwidGFyZ2V0Iiwic3R5bGVUYXJnZXQiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJ3aW5kb3ciLCJIVE1MSUZyYW1lRWxlbWVudCIsImNvbnRlbnREb2N1bWVudCIsImhlYWQiLCJnZXRUYXJnZXQiLCJhcHBlbmRDaGlsZCIsImVsZW1lbnQiLCJjcmVhdGVFbGVtZW50Iiwic2V0QXR0cmlidXRlcyIsImF0dHJpYnV0ZXMiLCJzdHlsZUVsZW1lbnQiLCJub25jZSIsInNldEF0dHJpYnV0ZSIsImluc2VydFN0eWxlRWxlbWVudCIsInN0eWxlVGFnVHJhbnNmb3JtIiwicGFyZW50Tm9kZSIsInJlbW92ZUNoaWxkIiwicmVtb3ZlU3R5bGVFbGVtZW50Iiwic3R5bGVTaGVldCIsImNzc1RleHQiLCJmaXJzdENoaWxkIiwiY3JlYXRlVGV4dE5vZGUiLCJfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18iLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwibW9kdWxlSWQiLCJjYWNoZWRNb2R1bGUiLCJfX3dlYnBhY2tfbW9kdWxlc19fIiwiZ2V0dGVyIiwiX19lc01vZHVsZSIsImdldFByb3RvdHlwZU9mIiwidCIsIm1vZGUiLCJ0aGVuIiwibnMiLCJjcmVhdGUiLCJyIiwiZGVmIiwiY3VycmVudCIsImdldE93blByb3BlcnR5TmFtZXMiLCJrZXkiLCJkZWZpbml0aW9uIiwibyIsImVudW1lcmFibGUiLCJwcm9wIiwicHJvdG90eXBlIiwiY2FsbCIsIlN5bWJvbCIsInRvU3RyaW5nVGFnIiwibmMiLCJmIiwiaCIsImwiLCJ5IiwiYXJndW1lbnRzIiwiY2hpbGRyZW4iLCJkZWZhdWx0UHJvcHMiLCJwcm9wcyIsInJlZiIsIl9fayIsIl9fIiwiX19iIiwiX19lIiwiX19kIiwiX19jIiwiX19oIiwiY29uc3RydWN0b3IiLCJfX3YiLCJ2bm9kZSIsImNvbnRleHQiLCJnIiwidyIsIl9fciIsImRlYm91bmNlUmVuZGVyaW5nIiwic29ydCIsInNoaWZ0IiwiX19QIiwiTCIsIl9fbiIsIm93bmVyU1ZHRWxlbWVudCIsIk0iLCJQIiwiXyIsIlMiLCJIIiwiSSIsIlQiLCJBIiwiTyIsIm5leHRTaWJsaW5nIiwiJCIsIkMiLCJxIiwiaW5zZXJ0QmVmb3JlIiwic2V0UHJvcGVydHkiLCJ0ZXN0IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJyZW1vdmVBdHRyaWJ1dGUiLCJldmVudCIsImNvbnRleHRUeXBlIiwiX19FIiwicmVuZGVyIiwiQiIsInN1YiIsInN0YXRlIiwiX3NiIiwiX19zIiwiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzIiwiY29tcG9uZW50V2lsbE1vdW50IiwiY29tcG9uZW50RGlkTW91bnQiLCJjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIiwic2hvdWxkQ29tcG9uZW50VXBkYXRlIiwiY29tcG9uZW50V2lsbFVwZGF0ZSIsImNvbXBvbmVudERpZFVwZGF0ZSIsImdldENoaWxkQ29udGV4dCIsImdldFNuYXBzaG90QmVmb3JlVXBkYXRlIiwiTiIsImRpZmZlZCIsInNvbWUiLCJsb2NhbE5hbWUiLCJub2RlVHlwZSIsImNyZWF0ZUVsZW1lbnROUyIsImlzIiwiY2hpbGROb2RlcyIsImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiwiX19odG1sIiwiaW5uZXJIVE1MIiwiY2hlY2tlZCIsInVubW91bnQiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsIkQiLCJnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IiLCJzZXRTdGF0ZSIsImNvbXBvbmVudERpZENhdGNoIiwiZm9yY2VVcGRhdGUiLCJQcm9taXNlIiwiYmluZCIsInJlc29sdmUiLCJzZXRUaW1lb3V0IiwiXzBuIiwiXzFuIiwiXzJuIiwiXzNuIiwiXzhuIiwiQ1VSVkUiLCJmcmVlemUiLCJHeCIsIkd5IiwiYmV0YSIsImRpdk5lYXJlc3QiLCJlbmRvIiwic3BsaXRTY2FsYXIiLCJhMSIsImIxIiwiYTIiLCJiMiIsIlBPV18yXzEyOCIsImMxIiwiYzIiLCJrMSIsIm1vZCIsImsyIiwiazFuZWciLCJrMm5lZyIsImZpZWxkTGVuIiwiZ3JvdXBMZW4iLCJjb21wcmVzc2VkTGVuIiwidW5jb21wcmVzc2VkTGVuIiwid2VpZXJzdHJhc3MiLCJ4MiIsIngzIiwiVVNFX0VORE9NT1JQSElTTSIsIlNoYUVycm9yIiwibWVzc2FnZSIsInN1cGVyIiwiYXNzZXJ0SmFjUG9pbnQiLCJvdGhlciIsIkphY29iaWFuUG9pbnQiLCJzdGF0aWMiLCJQb2ludCIsImVxdWFscyIsIlpFUk8iLCJwb2ludHMiLCJ0b0ludiIsIm51bXMiLCJzY3JhdGNoIiwibGFzdE11bHRpcGxpZWQiLCJpbnZlcnRlZCIsImludmVydCIsInJlZHVjZVJpZ2h0IiwiaW52ZXJ0QmF0Y2giLCJ0b0FmZmluZSIsInRvQWZmaW5lQmF0Y2giLCJmcm9tQWZmaW5lIiwiWDEiLCJZMSIsIloxIiwiWDIiLCJZMiIsIloyIiwiWjFaMSIsIloyWjIiLCJVMSIsIlUyIiwiUzEiLCJTMiIsIm5lZ2F0ZSIsImRvdWJsZSIsIngxYiIsIkUiLCJGIiwiWDMiLCJZMyIsIlozIiwiYWRkIiwiSEgiLCJISEgiLCJWIiwic3VidHJhY3QiLCJtdWx0aXBseVVuc2FmZSIsInNjYWxhciIsIlAwIiwibm9ybWFsaXplU2NhbGFyIiwiazFwIiwiazJwIiwicHJlY29tcHV0ZVdpbmRvdyIsIlciLCJ3aW5kb3dzIiwid05BRiIsImFmZmluZVBvaW50IiwiQkFTRSIsIl9XSU5ET1dfU0laRSIsInByZWNvbXB1dGVzIiwicG9pbnRQcmVjb21wdXRlcyIsIm5vcm1hbGl6ZVoiLCJ3aW5kb3dTaXplIiwibWF4TnVtYmVyIiwic2hpZnRCeSIsIm9mZnNldCIsIndiaXRzIiwib2Zmc2V0MSIsIm9mZnNldDIiLCJhYnMiLCJjb25kMSIsImNvbmQyIiwiY29uc3RUaW1lTmVnYXRlIiwibXVsdGlwbHkiLCJwb2ludCIsImZha2UiLCJmMXAiLCJmMnAiLCJpbnZaIiwiaXMwIiwiaXoxIiwiaXoyIiwiaXozIiwiYXgiLCJheSIsInp6IiwiY29uZGl0aW9uIiwibmVnIiwiV2Vha01hcCIsIl9zZXRXaW5kb3dTaXplIiwiZGVsZXRlIiwiaGFzRXZlblkiLCJpc1Nob3J0IiwiYnl0ZXNUb051bWJlciIsImlzVmFsaWRGaWVsZEVsZW1lbnQiLCJfNm4iLCJfMTFuIiwiXzIybiIsIl8yM24iLCJfNDRuIiwiXzg4biIsImIzIiwiYjYiLCJwb3cyIiwiYjkiLCJiMTEiLCJiMjIiLCJiNDQiLCJiODgiLCJiMTc2IiwiYjIyMCIsImIyMjMiLCJ0MSIsInQyIiwicnQiLCJ4YyIsInNxcnRNb2QiLCJpc1lPZGQiLCJhc3NlcnRWYWxpZGl0eSIsImVuc3VyZUJ5dGVzIiwiaGVhZGVyIiwiZnJvbUNvbXByZXNzZWRIZXgiLCJmcm9tVW5jb21wcmVzc2VkSGV4IiwicHJpdmF0ZUtleSIsIm5vcm1hbGl6ZVByaXZhdGVLZXkiLCJtc2dIYXNoIiwic2lnbmF0dXJlIiwicmVjb3ZlcnkiLCJub3JtYWxpemVTaWduYXR1cmUiLCJpbmNsdWRlcyIsInRydW5jYXRlSGFzaCIsInJhZGoiLCJyaW52IiwidTEiLCJ1MiIsIlIiLCJmcm9tSGV4IiwibnVtVG8zMmJTdHIiLCJRIiwibXVsdGlwbHlBbmRBZGRVbnNhZmUiLCJ0b1Jhd0J5dGVzIiwiaXNDb21wcmVzc2VkIiwiaGV4VG9CeXRlcyIsInRvSGV4IiwidG9IZXhYIiwidG9SYXdYIiwibXNnIiwibGVmdCIsImFQIiwiYlEiLCJzbGljZURFUiIsInBhcnNlREVSSW50IiwiYnl0ZXNUb0hleCIsIlNpZ25hdHVyZSIsImFyciIsImhleFRvTnVtYmVyIiwic0J5dGVzIiwickJ5dGVzTGVmdCIsInBhcnNlREVSU2lnbmF0dXJlIiwiZnJvbURFUiIsImlzV2l0aGluQ3VydmVPcmRlciIsImhhc0hpZ2hTIiwiSEFMRiIsIm5vcm1hbGl6ZVMiLCJ0b0RFUlJhd0J5dGVzIiwidG9ERVJIZXgiLCJzSGV4IiwibnVtYmVyVG9IZXhVbnBhZGRlZCIsInJIZXgiLCJzSGV4TCIsInJIZXhMIiwic0xlbiIsInJMZW4iLCJ0b0NvbXBhY3RSYXdCeXRlcyIsInRvQ29tcGFjdEhleCIsImNvbmNhdEJ5dGVzIiwiYXJyYXlzIiwiZXZlcnkiLCJoZXhlcyIsInVpbnQ4YSIsIlBPV18yXzI1NiIsIm51bVRvMzJiIiwiYXJyYXkiLCJoZXhCeXRlIiwiYnl0ZSIsImlzTmFOIiwicG93ZXIiLCJudW1iZXIiLCJtb2R1bG8iLCJoYXNoIiwidHJ1bmNhdGVPbmx5IiwiZGVsdGEiLCJiaXRzMmludF8yIiwiX3NoYTI1NlN5bmMiLCJfaG1hY1NoYTI1NlN5bmMiLCJub3JtYWxpemVQdWJsaWNLZXkiLCJwdWJsaWNLZXkiLCJlcnJvciIsImZyb21Db21wYWN0Iiwic2Nobm9yckNoYWxsZW5nZUZpbmFsaXplIiwiY2giLCJTY2hub3JyU2lnbmF0dXJlIiwiSW50ZXJuYWxTY2hub3JyU2lnbmF0dXJlIiwiYXV4UmFuZCIsInJhbmRvbUJ5dGVzIiwiZ2V0U2NhbGFyIiwicHgiLCJyYW5kIiwicHJpdiIsImZyb21Qcml2YXRlS2V5IiwiaW5pdE5vbmNlIiwidDBoIiwiZmluYWxpemVOb25jZSIsImswaCIsImswIiwicngiLCJmaW5hbGl6ZVNpZyIsImFzeW5jIiwidGFnZ2VkSGFzaCIsIlRBR1MiLCJhdXgiLCJjaGFsbGVuZ2UiLCJzaWciLCJzY2hub3JyVmVyaWZ5IiwiY2FsY1N5bmMiLCJ0YWdnZWRIYXNoU3luYyIsInNjaG5vcnJWZXJpZnlTeW5jIiwiaW5pdFNjaG5vcnJWZXJpZnkiLCJyYXciLCJmaW5hbGl6ZVNjaG5vcnJWZXJpZnkiLCJzY2hub3JyIiwiZ2V0UHVibGljS2V5Iiwic2lnbiIsInByaXZLZXkiLCJjYWxjIiwidmVyaWZ5Iiwic2lnblN5bmMiLCJ2ZXJpZnlTeW5jIiwibm9kZSIsIndlYiIsInNlbGYiLCJjcnlwdG8iLCJUQUdHRURfSEFTSF9QUkVGSVhFUyIsImlzVmFsaWRQcml2YXRlS2V5IiwiX2JpZ2ludFRvMzJCeXRlcyIsIl9ub3JtYWxpemVQcml2YXRlS2V5IiwiaGFzaFRvUHJpdmF0ZUtleSIsIm1pbkxlbiIsImJ5dGVzTGVuZ3RoIiwiZ2V0UmFuZG9tVmFsdWVzIiwicmFuZG9tUHJpdmF0ZUtleSIsInByZWNvbXB1dGUiLCJjYWNoZWQiLCJtZXNzYWdlcyIsImJ1ZmZlciIsInN1YnRsZSIsImRpZ2VzdCIsImNyZWF0ZUhhc2giLCJobWFjU2hhMjU2IiwiY2tleSIsImltcG9ydEtleSIsImNyZWF0ZUhtYWMiLCJzaGEyNTZTeW5jIiwiaG1hY1NoYTI1NlN5bmMiLCJ0YWdQIiwidGFnSCIsIl9KYWNvYmlhblBvaW50IiwiZGVmaW5lUHJvcGVydGllcyIsImNvbmZpZ3VyYWJsZSIsInZhbCIsInV0ZjhEZWNvZGVyIiwic3Vic3RyIiwiZ2V0Tm90ZUlkIiwiaGV4SWQiLCJiYiIsImdldE5wdWIiLCJoZXhQdWJrZXkiLCJwYXJzZU5wdWIiLCJucHViIiwiZm9ybWF0TnB1YiIsImZvcm1hdFphcEFtb3VudCIsInJvdW5kIiwicGFyc2VUTFYiLCJyZXN0IiwiX19IIiwiX19WIiwiX19OIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiY2xlYXJUaW1lb3V0IiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJfX3NvdXJjZSIsIl9fc2VsZiIsIl9yZWYiLCJhZGRpdGlvbmFsQ2xhc3NlcyIsImNsYXNzZXMiLCJfanN4IiwieG1sbnMiLCJmaWxsIiwidmlld0JveCIsInN0cm9rZSIsIndpZHRoIiwiaGVpZ2h0IiwiY2xhc3MiLCJsb2NhbHMiLCJpY29uQ2xhc3NlcyIsImRpc3BsYXlUZXh0IiwiY29weVRleHQiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJ1c2VTdGF0ZSIsImJ0bkNsYXNzZXMiLCJzZXRCdG5DbGFzc2VzIiwiX2pzeHMiLCJvbkNsaWNrIiwibmF2aWdhdG9yIiwiY2xpcGJvYXJkIiwid3JpdGVUZXh0IiwidHJpbSIsImVyciIsImNvbnNvbGUiLCJjb3B5VG9DbGlwYm9hcmQiLCJDb3B5SWNvbiIsInRodW1ibmFpbCIsImZ1bGxJbWFnZSIsIl9yZWYkaXNQcm9maWxlSW1hZ2UiLCJpc1Byb2ZpbGVJbWFnZSIsImlzRnVsbEltYWdlTG9hZGVkIiwic2V0SXNGdWxsSW1hZ2VMb2FkZWQiLCJfdXNlU3RhdGU0IiwiaW1hZ2VTcmMiLCJzZXRJbWFnZVNyYyIsImNsYXNzTmFtZSIsInNyYyIsIm9uRXJyb3IiLCJjYWNoZWRQcm9maWxlUGljdHVyZSIsImVuY29kZWRQcm9maWxlUGtleSIsInRydW5jYXRlZFByb2ZpbGVQa2V5IiwicHJvZmlsZVBrZXkiLCJwcm9maWxlIiwicGljdHVyZSIsIlByb2ZpbGVJbWFnZSIsInJlbCIsImhyZWYiLCJkaXNwbGF5X25hbWUiLCJLZXlJY29uIiwiQ29weVRleHQiLCJoaWRlTm9zdHJpY2giLCJOb3N0cmljaEljb24iLCJlbmNvZGVkSWQiLCJmb3JtYXR0ZWREYXRlIiwiZm9ybWF0dGVkWmFwQW1vdW50Iiwibm90ZSIsInByb2ZpbGVzTGlzdCIsInJlcGxpZXNDb3VudCIsInJlcG9zdHNDb3VudCIsImxpa2VzQ291bnQiLCJ6YXBBbW91bnQiLCJjcmVhdGVkQXQiLCJjcmVhdGVkX2F0IiwiRGF0ZSIsInRvTG9jYWxlVGltZVN0cmluZyIsImhvdXIxMiIsImhvdXIiLCJtaW51dGUiLCJ5ZWFyIiwibW9udGgiLCJkYXkiLCJoaWRlQ291bnRlcnMiLCJfRnJhZ21lbnQiLCJzaG93WmFwcyIsInRpdGxlIiwiQm9sdEljb24iLCJSZXBseUljb24iLCJSZXBvc3RJY29uIiwiSGVhcnRJY29uIiwibmFkZHIiLCJMaW5rSWNvbiIsInNob3dDb3B5QWRkciIsIklNQUdFX0ZJTEVfRVhURU5TSU9OUyIsIlZJREVPX0ZJTEVfRVhURU5TSU9OUyIsIllPVVRVQkVfS0VZX1dPUkRTIiwiS0lORF9aQVAiLCJQcm9maWxlc0xpc3QiLCJQcm9maWxlIiwia2luZCIsInRhZ2dlZFByb2ZpbGVzIiwiY291bnRUYWdnZWRQcm9maWxlcyIsImdldERpZmYiLCJNZXRhIiwiZGlmZiIsImZvbGxvd2Vyc0NvdW50IiwiRm9sbG93ZXJzSWNvbiIsIl9maWx0ZXJQcm9maWxlcyQiLCJfZmlsdGVyUHJvZmlsZXMkMiIsIl9maWx0ZXJQcm9maWxlcyQzIiwiX2ZpbHRlclByb2ZpbGVzJDQiLCJfZmlsdGVyUHJvZmlsZXMkNSIsIl9maWx0ZXJQcm9maWxlcyQ2IiwiX3JlZiRmb2xsb3dzIiwiZm9sbG93cyIsInNob3dGb2xsb3dpbmciLCJwYXJzZWRGb2xsb3dzIiwiZm9sbG93IiwicGFyc2UiLCJucHViTGluayIsImNhY2hlZEltYWdlIiwiZmlsdGVyUHJvZmlsZXMiLCJfc3RhdGUkcHJvZmlsZSIsIl9zdGF0ZSRwcm9maWxlMiIsIl9zdGF0ZSRwcm9maWxlMyIsIl9zdGF0ZSRwcm9maWxlNCIsIlByb2ZpbGVDb21wb25lbnQiLCJ3ZWJzaXRlIiwiYWJvdXQiLCJCb29sZWFuIiwiUHJvZmlsZUZvbGxvd3MiLCJQcm9maWxlTWV0YSIsIlphcCIsImZvcm1hdENvbnRlbnQiLCJmb3JtYXRFdmVudExpbmsiLCJub3RlT3JOYWRkciIsIm5vdGVJZCIsImxhYmVsIiwiZm9ybWF0UHJvZmlsZUxpbmsiLCJ0cCIsImZyYWdtZW50cyIsIm1hdGNoVGFnIiwiaWR4IiwidGFncyIsIm1hdGNoTm9zdHIiLCJzdGFydHNXaXRoIiwiX3BhcnNlTnByb2ZpbGUiLCJucHJvZmlsZSIsIl90bHYkIiwidGx2IiwicmVsYXlzIiwicGFyc2VOcHJvZmlsZSIsImxpbmsiLCJzcGxpdExpbmsiLCJjaGFuZ2VMaW5rUmVnaXN0ZXIiLCJpc0FueUVuZFdpdGgiLCJpc1ZpZGVvIiwiY29udHJvbHMiLCJpc0ltYWdlIiwiYWx0Iiwia2V5V29yZHMiLCJrZXlXb3JkIiwiaXNBbnlDb250YWlucyIsImlzWW91dHViZSIsImZvcm1hdExpbmsiLCJleHRlbnNpb25zIiwiZXh0ZW5zaW9uIiwiZWxlbWVudE51bWJlciIsImxpbmtBcnJheSIsIk5vdGUiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwiT3AiLCJoYXNPd24iLCJkZXNjIiwiJFN5bWJvbCIsIml0ZXJhdG9yU3ltYm9sIiwiaXRlcmF0b3IiLCJhc3luY0l0ZXJhdG9yU3ltYm9sIiwiYXN5bmNJdGVyYXRvciIsInRvU3RyaW5nVGFnU3ltYm9sIiwid3JpdGFibGUiLCJpbm5lckZuIiwib3V0ZXJGbiIsInRyeUxvY3NMaXN0IiwicHJvdG9HZW5lcmF0b3IiLCJHZW5lcmF0b3IiLCJnZW5lcmF0b3IiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwiYXJnIiwiQ29udGludWVTZW50aW5lbCIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJJdGVyYXRvclByb3RvdHlwZSIsIk5hdGl2ZUl0ZXJhdG9yUHJvdG90eXBlIiwidmFsdWVzIiwiR3AiLCJkZWZpbmVJdGVyYXRvck1ldGhvZHMiLCJtZXRob2QiLCJfaW52b2tlIiwiQXN5bmNJdGVyYXRvciIsIlByb21pc2VJbXBsIiwiaW52b2tlIiwicmVqZWN0IiwicmVjb3JkIiwiX3R5cGVvZiIsIl9fYXdhaXQiLCJ1bndyYXBwZWQiLCJwcmV2aW91c1Byb21pc2UiLCJjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZyIsImRvbmVSZXN1bHQiLCJkZWxlZ2F0ZSIsImRlbGVnYXRlUmVzdWx0IiwibWF5YmVJbnZva2VEZWxlZ2F0ZSIsInNlbnQiLCJfc2VudCIsImRpc3BhdGNoRXhjZXB0aW9uIiwiYWJydXB0IiwibWV0aG9kTmFtZSIsImluZm8iLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJsb2NzIiwiZW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXRlcmFibGUiLCJpdGVyYXRvck1ldGhvZCIsImRpc3BsYXlOYW1lIiwiaXNHZW5lcmF0b3JGdW5jdGlvbiIsImdlbkZ1biIsImN0b3IiLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJhd3JhcCIsIml0ZXIiLCJvYmplY3QiLCJwb3AiLCJza2lwVGVtcFJlc2V0IiwicHJldiIsInN0b3AiLCJyb290UmVjb3JkIiwicnZhbCIsImV4Y2VwdGlvbiIsImhhbmRsZSIsImxvYyIsImNhdWdodCIsImhhc0NhdGNoIiwiaGFzRmluYWxseSIsImZpbmFsbHlFbnRyeSIsImNvbXBsZXRlIiwiZmluaXNoIiwidGhyb3duIiwiZGVsZWdhdGVZaWVsZCIsImFzeW5jR2VuZXJhdG9yU3RlcCIsImdlbiIsIl9uZXh0IiwiX3Rocm93IiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfZGVmaW5lUHJvcGVydGllcyIsImRlc2NyaXB0b3IiLCJoaW50IiwicHJpbSIsInRvUHJpbWl0aXZlIiwiU3RyaW5nIiwiX3RvUHJpbWl0aXZlIiwiX3NldFByb3RvdHlwZU9mIiwiX2NyZWF0ZVN1cGVyIiwiRGVyaXZlZCIsImhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0Iiwic2hhbSIsIlByb3h5IiwidmFsdWVPZiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJTdXBlciIsIl9nZXRQcm90b3R5cGVPZiIsIk5ld1RhcmdldCIsIlJlZmVyZW5jZUVycm9yIiwiX2Fzc2VydFRoaXNJbml0aWFsaXplZCIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIiwiTm9zdHJFbWJlZCIsIl9Db21wb25lbnQiLCJzdWJDbGFzcyIsInN1cGVyQ2xhc3MiLCJfaW5oZXJpdHMiLCJDb25zdHJ1Y3RvciIsInByb3RvUHJvcHMiLCJzdGF0aWNQcm9wcyIsIl9pc1ZhbGlkRXZlbnQiLCJfdmFsaWRhdGVOb3N0ckV2ZW50IiwiX2dldE5vc3RyRXZlbnRJRCIsIl9zdXBlciIsIl90aGlzIiwiaW5zdGFuY2UiLCJfY2xhc3NDYWxsQ2hlY2siLCJwYXJzZU5vdGVJZCIsIl90bHYkMiIsIl90bHYkMyIsIl90bHYkNCIsInBhcnNlTmFkZHIiLCJyZWxheSIsInN0cmluZyIsInNlY3AiLCJoYXNoQnVmZmVyIiwiX2NhbGxlZSIsIl9jb250ZXh0IiwiX3giLCJfY2FsbGVlMiIsIl9jb250ZXh0MiIsInQwIiwiZ2V0Tm9zdHJFdmVudElEIiwiX3gyIiwiX2NhbGxlZTMiLCJldiIsIl9jb250ZXh0MyIsInZhbGlkYXRlTm9zdHJFdmVudCIsInZlcmlmeU5vc3RyU2lnbmF0dXJlIiwiX3gzIiwiX3RoaXMyIiwic3RhcnQiLCJzb2NrZXQiLCJmZXRjaFByb2ZpbGUiLCJmZXRjaEV2ZW50IiwiZmV0Y2hOYWRkciIsIl9fbm9zdHJFbWJlZCIsInNvY2tldHMiLCJyZWFkeVN0YXRlIiwic3RhcnRzIiwiV2ViU29ja2V0Iiwib25vcGVuIiwibG9nIiwidXJsIiwiX3N0ZXAiLCJfaXRlcmF0b3IiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIm9uZXJyb3IiLCJzdWJzIiwib25tZXNzYWdlIiwib25fZXZlbnQiLCJvbl9jb3VudCIsInN1YnNjcmliZSIsIm9rIiwicmFuZG9tIiwicmVxIiwic2VuZCIsImNsb3NlIiwic3ViX2lkIiwiZXZlbnRzIiwicXVldWUiLCJfcmVmMiIsIl9jYWxsZWU0IiwiX2NvbnRleHQ0IiwiaXNWYWxpZEV2ZW50IiwiX3g0IiwiX3JlZjMiLCJfY2FsbGVlNSIsIl9jb250ZXh0NSIsIl94NSIsImxpc3RFdmVudHMiLCJfcmVmNCIsImNvdW50RXZlbnRzIiwiX3JlZjUiLCJfcmVmNiIsIl9yZWY3IiwiX3JlZjgiLCJfcmVmOSIsIl90aGlzMyIsImlkcyIsImdldEV2ZW50IiwiZmV0Y2hNZXRhIiwiZmV0Y2hUYWdzIiwiX3JlZjEwIiwiX3RoaXM0Iiwia2luZHMiLCJhdXRob3JzIiwiX3RoaXM0JHByb3BzJG9wdGlvbnMiLCJwYXJzZWRQcm9maWxlIiwiZmV0Y2hQcm9maWxlTWV0YSIsImZldGNoRm9sbG93cyIsIl9yZWYxMSIsIl90aGlzNSIsImZvbGxvd2VkUHVia2V5cyIsImZldGNoRm9sbG93UHJvZmlsZXMiLCJwdWJrZXlzIiwiX3JlZjEyIiwiX3RoaXM2IiwiX3JlZjEzIiwiX3RoaXM3IiwicHJvZmlsZXNMaXN0T2JqIiwiZ2V0UHJvZmlsZXNMaXN0T2JqIiwiX3JlZjE0IiwiX3N0ZXAyIiwiX3RoaXM4IiwiX2l0ZXJhdG9yMiIsIl9zdGVwMyIsIl9pdGVyYXRvcjMiLCJfc3RlcDQiLCJfaXRlcmF0b3I0IiwiX3N0ZXA1IiwiX2l0ZXJhdG9yNSIsImVyIiwiX3N0ZXA2IiwiX3RoaXM5IiwiX2l0ZXJhdG9yNiIsIl9sb29wIiwibm90ZUV2ZW50IiwiS0lORF9SRVBPU1QiLCJLSU5EX1JFQUNUSU9OIiwiZ2V0WmFwQW1vdW50IiwiX3JlZjE1IiwiX3RoaXMkcHJvcHMkb3B0aW9ucyIsImZldGNoTWV0YUNvdW50IiwiZmV0Y2hNZXRhTGlzdCIsIl9yZWYxNiIsIl90aGlzMTAiLCJnZXRTdWIiLCJvbkxpc3RNZXRhRXZlbnRzIiwiX3JlZjE3IiwiX3RoaXMxMSIsImdldFN1Yk9uRmV0Y2hNZXRhTGlzdCIsIl9yZWYxOCIsIl9zdGVwNyIsIl90aGlzMTIiLCJfaXRlcmF0b3I3IiwiX2xvb3AyIiwiX3JlZjE5IiwiX3RoaXMxMyIsIm9uTGlzdFByb2ZpbGVNZXRhRXZlbnRzIiwiX3JlZjIwIiwiX3RoaXMxNCIsIl9yZWYyMSIsIl90aGlzJHByb3BzJG9wdGlvbnMyIiwiX3RoaXMkcHJvcHMkb3B0aW9uczMiLCJmZXRjaFByb2ZpbGVNZXRhQ291bnQiLCJmZXRjaFByb2ZpbGVNZXRhTGlzdCIsIkNvbXBvbmVudCIsImluaXQiLCJ3cmFwcGVyIiwicmVuZGVyRWxlbWVudCJdLCJzb3VyY2VSb290IjoiIn0= \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.nostrEmbed=t():e.nostrEmbed=t()}(this,(()=>(()=>{var e,t,n={187:(e,t)=>{"use strict";function n(e){if(!Number.isSafeInteger(e))throw new Error(`Wrong integer: ${e}`)}function r(...e){const t=(e,t)=>n=>e(t(n));return{encode:Array.from(e).reverse().reduce(((e,n)=>e?t(e,n.encode):n.encode),void 0),decode:e.reduce(((e,n)=>e?t(e,n.decode):n.decode),void 0)}}function o(e){return{encode:t=>{if(!Array.isArray(t)||t.length&&"number"!=typeof t[0])throw new Error("alphabet.encode input should be an array of numbers");return t.map((t=>{if(n(t),t<0||t>=e.length)throw new Error(`Digit index outside alphabet: ${t} (alphabet: ${e.length})`);return e[t]}))},decode:t=>{if(!Array.isArray(t)||t.length&&"string"!=typeof t[0])throw new Error("alphabet.decode input should be array of strings");return t.map((t=>{if("string"!=typeof t)throw new Error(`alphabet.decode: not string element=${t}`);const n=e.indexOf(t);if(-1===n)throw new Error(`Unknown letter: "${t}". Allowed: ${e}`);return n}))}}}function i(e=""){if("string"!=typeof e)throw new Error("join separator should be string");return{encode:t=>{if(!Array.isArray(t)||t.length&&"string"!=typeof t[0])throw new Error("join.encode input should be array of strings");for(let e of t)if("string"!=typeof e)throw new Error(`join.encode: non-string input=${e}`);return t.join(e)},decode:t=>{if("string"!=typeof t)throw new Error("join.decode input should be string");return t.split(e)}}}function a(e,t="="){if(n(e),"string"!=typeof t)throw new Error("padding chr should be string");return{encode(n){if(!Array.isArray(n)||n.length&&"string"!=typeof n[0])throw new Error("padding.encode input should be array of strings");for(let e of n)if("string"!=typeof e)throw new Error(`padding.encode: non-string input=${e}`);for(;n.length*e%8;)n.push(t);return n},decode(n){if(!Array.isArray(n)||n.length&&"string"!=typeof n[0])throw new Error("padding.encode input should be array of strings");for(let e of n)if("string"!=typeof e)throw new Error(`padding.decode: non-string input=${e}`);let r=n.length;if(r*e%8)throw new Error("Invalid padding: string should have whole number of bytes");for(;r>0&&n[r-1]===t;r--)if(!((r-1)*e%8))throw new Error("Invalid padding: string has too much padding");return n.slice(0,r)}}}function s(e){if("function"!=typeof e)throw new Error("normalize fn should be function");return{encode:e=>e,decode:t=>e(t)}}function c(e,t,r){if(t<2)throw new Error(`convertRadix: wrong from=${t}, base cannot be less than 2`);if(r<2)throw new Error(`convertRadix: wrong to=${r}, base cannot be less than 2`);if(!Array.isArray(e))throw new Error("convertRadix: data should be array");if(!e.length)return[];let o=0;const i=[],a=Array.from(e);for(a.forEach((e=>{if(n(e),e<0||e>=t)throw new Error(`Wrong integer: ${e}`)}));;){let e=0,n=!0;for(let i=o;it?l(t,e%t):e,u=(e,t)=>e+(t-l(e,t));function f(e,t,r,o){if(!Array.isArray(e))throw new Error("convertRadix2: data should be array");if(t<=0||t>32)throw new Error(`convertRadix2: wrong from=${t}`);if(r<=0||r>32)throw new Error(`convertRadix2: wrong to=${r}`);if(u(t,r)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${r} carryBits=${u(t,r)}`);let i=0,a=0;const s=2**r-1,c=[];for(const o of e){if(n(o),o>=2**t)throw new Error(`convertRadix2: invalid data word=${o} from=${t}`);if(i=i<32)throw new Error(`convertRadix2: carry overflow pos=${a} from=${t}`);for(a+=t;a>=r;a-=r)c.push((i>>a-r&s)>>>0);i&=2**a-1}if(i=i<=t)throw new Error("Excess padding");if(!o&&i)throw new Error(`Non-zero padding: ${i}`);return o&&a>0&&c.push(i>>>0),c}function d(e){return n(e),{encode:t=>{if(!(t instanceof Uint8Array))throw new Error("radix.encode input should be Uint8Array");return c(Array.from(t),256,e)},decode:t=>{if(!Array.isArray(t)||t.length&&"number"!=typeof t[0])throw new Error("radix.decode input should be array of strings");return Uint8Array.from(c(t,e,256))}}}function p(e,t=!1){if(n(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(u(8,e)>32||u(e,8)>32)throw new Error("radix2: carry overflow");return{encode:n=>{if(!(n instanceof Uint8Array))throw new Error("radix2.encode input should be Uint8Array");return f(Array.from(n),8,e,!t)},decode:n=>{if(!Array.isArray(n)||n.length&&"number"!=typeof n[0])throw new Error("radix2.decode input should be array of strings");return Uint8Array.from(f(n,e,8,t))}}}function A(e){if("function"!=typeof e)throw new Error("unsafeWrapper fn should be function");return function(...t){try{return e.apply(null,t)}catch(e){}}}function h(e,t){if(n(e),"function"!=typeof t)throw new Error("checksum fn should be function");return{encode(n){if(!(n instanceof Uint8Array))throw new Error("checksum.encode: input should be Uint8Array");const r=t(n).slice(0,e),o=new Uint8Array(n.length+e);return o.set(n),o.set(r,n.length),o},decode(n){if(!(n instanceof Uint8Array))throw new Error("checksum.decode: input should be Uint8Array");const r=n.slice(0,-e),o=t(r).slice(0,e),i=n.slice(-e);for(let t=0;te.toUpperCase().replace(/O/g,"0").replace(/[IL]/g,"1")))),t.base64=r(p(6),o("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),a(6),i("")),t.base64url=r(p(6),o("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),a(6),i(""));const y=e=>r(d(58),o(e),i(""));t.base58=y("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),t.base58flickr=y("123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"),t.base58xrp=y("rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz");const m=[0,2,3,5,6,7,9,10,11];t.base58xmr={encode(e){let n="";for(let r=0;rr(h(4,(t=>e(e(t)))),t.base58);const g=r(o("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),i("")),v=[996825010,642813549,513874426,1027748829,705979059];function w(e){const t=e>>25;let n=(33554431&e)<<5;for(let e=0;e>e&1)&&(n^=v[e]);return n}function _(e,t,n=1){const r=e.length;let o=1;for(let t=0;t126)throw new Error(`Invalid prefix (${e})`);o=w(o)^n>>5}o=w(o);for(let t=0;tn)throw new TypeError(`Wrong string length: ${e.length} (${e}). Expected (8..${n})`);const r=e.toLowerCase();if(e!==r&&e!==e.toUpperCase())throw new Error("String must be lowercase or uppercase");const o=(e=r).lastIndexOf("1");if(0===o||-1===o)throw new Error('Letter "1" must be present between prefix and data only');const i=e.slice(0,o),a=e.slice(o+1);if(a.length<6)throw new Error("Data must be at least 6 characters long");const s=g.decode(a).slice(0,-6),c=_(i,s,t);if(!a.endsWith(c))throw new Error(`Invalid checksum in ${e}: expected "${c}"`);return{prefix:i,words:s}}return{encode:function(e,n,r=90){if("string"!=typeof e)throw new Error("bech32.encode prefix should be string, not "+typeof e);if(!Array.isArray(n)||n.length&&"number"!=typeof n[0])throw new Error("bech32.encode words should be array of numbers, not "+typeof n);const o=e.length+7+n.length;if(!1!==r&&o>r)throw new TypeError(`Length ${o} exceeds limit ${r}`);return`${e=e.toLowerCase()}1${g.encode(n)}${_(e,n,t)}`},decode:a,decodeToBytes:function(e){const{prefix:t,words:n}=a(e,!1);return{prefix:t,words:n,bytes:r(n)}},decodeUnsafe:A(a),fromWords:r,fromWordsUnsafe:i,toWords:o}}t.bech32=b("bech32"),t.bech32m=b("bech32m"),t.utf8={encode:e=>(new TextDecoder).decode(e),decode:e=>(new TextEncoder).encode(e)},t.hex=r(p(4),o("0123456789abcdef"),i(""),s((e=>{if("string"!=typeof e||e.length%2)throw new TypeError(`hex.decode: expected string, got ${typeof e} with length ${e.length}`);return e.toLowerCase()})));const C={utf8:t.utf8,hex:t.hex,base16:t.base16,base32:t.base32,base64:t.base64,base64url:t.base64url,base58:t.base58,base58xmr:t.base58xmr},k=`Invalid encoding type. Available types: ${Object.keys(C).join(", ")}`;t.bytesToString=(e,t)=>{if("string"!=typeof e||!C.hasOwnProperty(e))throw new TypeError(k);if(!(t instanceof Uint8Array))throw new TypeError("bytesToString() expects Uint8Array");return C[e].encode(t)},t.str=t.bytesToString;t.stringToBytes=(e,t)=>{if(!C.hasOwnProperty(e))throw new TypeError(k);if("string"!=typeof t)throw new TypeError("stringToBytes() expects string");return C[e].decode(t)},t.bytes=t.stringToBytes},715:(e,t)=>{"use strict";t.gW=void 0;const n="qpzry9x8gf2tvdw0s3jn54khce6mua7l",r={};for(let e=0;e<32;e++){const t=n.charAt(e);r[t]=e}function o(e){const t=e>>25;return(33554431&e)<<5^996825010&-(t>>0&1)^642813549&-(t>>1&1)^513874426&-(t>>2&1)^1027748829&-(t>>3&1)^705979059&-(t>>4&1)}function i(e){let t=1;for(let n=0;n126)return"Invalid prefix ("+e+")";t=o(t)^r>>5}t=o(t);for(let n=0;n=n;)i-=n,s.push(o>>i&a);if(r)i>0&&s.push(o<=t)return"Excess padding";if(o<n)return"Exceeds length limit";const a=e.toLowerCase(),s=e.toUpperCase();if(e!==a&&e!==s)return"Mixed-case string "+e;const c=(e=a).lastIndexOf("1");if(-1===c)return"No separator character for "+e;if(0===c)return"Missing prefix for "+e;const l=e.slice(0,c),u=e.slice(c+1);if(u.length<6)return"Data too short";let f=i(l);if("string"==typeof f)return f;const d=[];for(let e=0;e=u.length||d.push(n)}return f!==t?"Invalid checksum for "+e:{prefix:l,words:d}}return t="bech32"===e?1:734539939,{decodeUnsafe:function(e,t){const n=a(e,t);if("object"==typeof n)return n},decode:function(e,t){const n=a(e,t);if("object"==typeof n)return n;throw new Error(n)},encode:function(e,r,a){if(a=a||90,e.length+7+r.length>a)throw new TypeError("Exceeds length limit");let s=i(e=e.toLowerCase());if("string"==typeof s)throw new Error(s);let c=e+"1";for(let e=0;e>5!=0)throw new Error("Non 5-bit word");s=o(s)^t,c+=n.charAt(t)}for(let e=0;e<6;++e)s=o(s);s^=t;for(let e=0;e<6;++e){c+=n.charAt(s>>5*(5-e)&31)}return c},toWords:s,fromWordsUnsafe:c,fromWords:l}}t.gW=u("bech32"),u("bech32m")},218:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(537),o=n.n(r),i=n(645),a=n.n(i)()(o());a.push([e.id,"*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 transparent;--tw-ring-shadow:0 0 transparent;--tw-shadow:0 0 transparent;--tw-shadow-colored:0 0 transparent;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 transparent;--tw-ring-shadow:0 0 transparent;--tw-shadow:0 0 transparent;--tw-shadow-colored:0 0 transparent;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.ne-relative{position:relative}.ne-m-0{margin:0}.ne-ms-\\[-25px\\]{margin-left:-25px}.ne-ms-\\[25px\\]{margin-left:25px}.ne-mt-8{margin-top:2rem}.ne-block{display:block}.ne-inline-block{display:inline-block}.ne-flex{display:flex}.ne-hidden{display:none}.ne-h-12{height:3rem}.ne-h-\\[40px\\]{height:40px}.ne-w-12{width:3rem}.ne-w-5{width:1.25rem}.ne-w-\\[40px\\]{width:40px}.ne-w-full{width:100%}.ne-cursor-pointer{cursor:pointer}.ne-list-none{list-style-type:none}.ne-flex-row{flex-direction:row}.ne-flex-col{flex-direction:column}.ne-flex-wrap{flex-wrap:wrap}.ne-items-center{align-items:center}.ne-justify-between{justify-content:space-between}.ne-gap-1{gap:.25rem}.ne-gap-2{gap:.5rem}.ne-gap-4{gap:1rem}.ne-gap-6{gap:1.5rem}.ne-break-words{word-wrap:break-word}.ne-rounded-full{border-radius:9999px}.ne-rounded-lg{border-radius:.5rem}.ne-bg-\\[\\#fcfcfc\\]{--tw-bg-opacity:1;background-color:#fcfcfc;background-color:rgba(252,252,252,var(--tw-bg-opacity))}.ne-object-cover{-o-object-fit:cover;object-fit:cover}.ne-p-0{padding:0}.ne-px-4{padding-left:1rem;padding-right:1rem}.ne-py-5{padding-bottom:1.25rem;padding-top:1.25rem}.ne-pb-3{padding-bottom:.75rem}.ne-font-sans{font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Helvetica Neue,Arial,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.ne-text-lg{font-size:1.125rem;line-height:1.75rem}.ne-text-sm{font-size:.875rem;line-height:1.25rem}.ne-font-bold{font-weight:700}.ne-text-black{--tw-text-opacity:1;color:#000;color:rgba(0,0,0,var(--tw-text-opacity))}.ne-text-gray-900{--tw-text-opacity:1;color:#111827;color:rgba(17,24,39,var(--tw-text-opacity))}.ne-text-red-800{--tw-text-opacity:1;color:#991b1b;color:rgba(153,27,27,var(--tw-text-opacity))}.ne-no-underline{text-decoration-line:none}.ne-opacity-30{opacity:.3}.nostrEmbedCard{--tw-bg-opacity:1;background-color:#fcfcfc;background-color:rgba(252,252,252,var(--tw-bg-opacity));border-radius:.5rem;display:flex;flex-direction:column;gap:2rem;padding:1.25rem 1rem .75rem}@media (min-width:768px){.nostrEmbedCard{max-width:600px}}.nostrEmbedCard{border:1px solid #ddd;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Helvetica Neue,Arial,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;text-align:left}.cardContent{word-wrap:break-word;font-size:1.125rem;line-height:1.75rem;white-space:pre-line}.cardContentMedia{text-align:center}.cardContentMedia>iframe,.cardContentMedia>img,.cardContentMedia>video{border-radius:15px;width:50%}.cardProfile{align-items:center;display:flex;flex-direction:row;gap:1rem}.profileImg{border-radius:9999px;height:3rem;width:3rem}.followedProdileImg{border-radius:9999px;height:40px;margin-left:-25px;-o-object-fit:cover;object-fit:cover;position:relative;width:40px}.followedProdileImg:hover{z-index:999}.profileDetails{display:flex;flex-direction:column}.profileName{font-size:1.125rem;font-weight:700;line-height:1.75rem}.profileName a{--tw-text-opacity:1;color:#111827;color:rgba(17,24,39,var(--tw-text-opacity));text-decoration-line:none}.profileName a:hover{--tw-text-opacity:1;color:#4b5563;color:rgba(75,85,99,var(--tw-text-opacity))}.profilePkey{align-items:center;flex-direction:row}.cardMeta,.profilePkey{display:flex;gap:.25rem}.cardMeta{flex-direction:column}@media (min-width:768px){.cardMeta{gap:.5rem}}hr{border-color:#ddd;margin:.25rem;opacity:.3;width:100%}.cardInteractions{display:flex;flex-direction:row;justify-content:space-between}@media (min-width:768px){.cardInteractions{gap:2.5rem;justify-content:flex-start}}.interactionContainer{align-items:center;display:flex;flex-direction:row;gap:.5rem}.copyIcon,.heartIcon,.linkIcon,.replyIcon,.repostIcon{display:block;height:1.25rem;width:1.25rem}.copyIcon,.heartIcon,.linkCopyBtn,.linkIcon,.linkLink,.replyIcon,.repostIcon{--tw-text-opacity:1;color:#111827;color:rgba(17,24,39,var(--tw-text-opacity))}.linkCopyBtn,.linkLink{align-items:center;background-color:transparent;border:0;cursor:pointer;display:flex;flex-direction:row;gap:.5rem;position:relative;text-decoration-line:none}.linkCopyBtn:hover,.linkCopyBtn:hover .copyIcon,.linkLink:hover{--tw-text-opacity:1;color:#4b5563;color:rgba(75,85,99,var(--tw-text-opacity))}.linkCopyBtn.green,.linkCopyBtn.green .copyIcon{--tw-text-opacity:1;color:#16a34a;color:rgba(22,163,74,var(--tw-text-opacity))}.displayText{display:none}@media (min-width:768px){.displayText{display:flex;font-size:.875rem;line-height:1.25rem;visibility:visible}}.copyText{display:none}.nostrichLink{display:flex;flex-grow:1;justify-content:flex-end}.cardTitle{margin:0}.cardDescription{margin-top:0}.cardList{display:flex;flex-direction:column;gap:20px;margin-top:10px}.profileWithoutImg{background-color:#e9e9e9;border-radius:50%;height:50px;width:50px}.diffProfiles{font-size:1.2rem;font-weight:700}.hover\\:ne-z-\\[999\\]:hover{z-index:999}@media (min-width:768px){.md\\:ne-visible{visibility:visible}.md\\:ne-flex{display:flex}.md\\:ne-max-w-\\[600px\\]{max-width:600px}.md\\:ne-justify-start{justify-content:flex-start}}","",{version:3,sources:["webpack://./src/components/style.css",""],names:[],mappings:"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",sourcesContent:["@tailwind base;\n@tailwind components;\n@tailwind utilities;\n\n.nostrEmbedCard {\n @apply ne-px-4 ne-py-5 ne-pb-3 ne-bg-[#fcfcfc] ne-rounded-lg md:ne-max-w-[600px] ne-flex ne-flex-col ne-gap-8;\n @apply ne-font-sans ne-text-left;\n border: 1px solid #ddd;\n}\n\n.cardContent {\n @apply ne-text-lg ne-break-words ne-whitespace-pre-line;\n}\n\n.cardContentMedia {\n text-align: center;\n}\n\n.cardContentMedia > video,\n.cardContentMedia > img,\n.cardContentMedia > iframe {\n border-radius: 15px;\n width: 50%;\n}\n\n.cardProfile {\n @apply ne-flex ne-flex-row ne-gap-4 ne-items-center;\n}\n\n.profileImg {\n @apply ne-w-12 ne-h-12 ne-rounded-full;\n}\n\n.followedProdileImg {\n @apply ne-w-[40px] ne-h-[40px] ne-rounded-full ne-ms-[-25px] ne-object-cover hover:ne-z-[999] ne-relative ;\n}\n\n.profileDetails {\n @apply ne-flex ne-flex-col;\n}\n\n.profileName {\n @apply ne-text-lg ne-font-bold;\n}\n\n.profileName a {\n @apply ne-no-underline ne-text-gray-900;\n}\n.profileName a:hover {\n @apply ne-text-gray-600;\n}\n\n.profilePkey {\n @apply ne-flex ne-flex-row ne-gap-1 ne-items-center;\n}\n\n.cardMeta {\n @apply ne-flex ne-flex-col ne-gap-1 md:ne-gap-2;\n}\n\nhr {\n @apply ne-w-full ne-opacity-30 ne-m-1;\n border-color: #ddd;\n}\n\n.cardInteractions {\n @apply ne-flex ne-flex-row ne-justify-between md:ne-justify-start md:ne-gap-10;\n}\n\n.interactionContainer {\n @apply ne-flex ne-flex-row ne-items-center ne-gap-2;\n}\n\n.replyIcon,\n.repostIcon,\n.heartIcon,\n.linkIcon,\n.copyIcon {\n @apply ne-text-gray-900 ne-block ne-w-5 ne-h-5;\n}\n\n.linkCopyBtn,\n.linkLink {\n @apply ne-text-gray-900 ne-no-underline ne-flex ne-flex-row ne-items-center ne-gap-2 ne-cursor-pointer ne-relative;\n border: 0;\n background-color: transparent;\n}\n\n.linkCopyBtn:hover,\n.linkLink:hover,\n.linkCopyBtn:hover .copyIcon {\n @apply ne-text-gray-600;\n}\n\n.linkCopyBtn.green,\n.linkCopyBtn.green .copyIcon {\n @apply ne-text-green-600;\n}\n\n.displayText {\n @apply ne-hidden md:ne-flex md:ne-visible md:ne-text-sm;\n}\n\n.copyText {\n @apply ne-hidden;\n}\n\n.nostrichLink {\n @apply ne-flex;\n flex-grow: 1;\n justify-content: flex-end;\n}\n\n.cardTitle {\n margin: 0;\n}\n\n.cardDescription {\n margin-top: 0;\n}\n\n.cardList {\n display: flex;\n flex-direction: column;\n gap: 20px;\n margin-top: 10px;\n}\n\n.profileWithoutImg {\n width: 50px;\n height: 50px;\n background-color: #e9e9e9;\n border-radius: 50%;\n}\n\n.diffProfiles {\n font-weight: bold;\n font-size: 1.2rem;\n}\n",null],sourceRoot:""}]);const s=a},645:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",r=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),r&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),r&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,r,o,i){"string"==typeof e&&(e=[[null,e,void 0]]);var a={};if(r)for(var s=0;s0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=i),n&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=n):u[2]=n),o&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=o):u[4]="".concat(o)),t.push(u))}},t}},537:e=>{"use strict";e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if("function"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),o="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),i="/*# ".concat(o," */");return[t].concat([i]).join("\n")}return[t].join("\n")}},632:(e,t,n)=>{const{bech32:r,hex:o,utf8:i}=n(187),a={bech32:"bc",pubKeyHash:0,scriptHash:5,validWitnessVersions:[0]},s={bech32:"tb",pubKeyHash:111,scriptHash:196,validWitnessVersions:[0]},c={bech32:"bcrt",pubKeyHash:111,scriptHash:196,validWitnessVersions:[0]},l={bech32:"sb",pubKeyHash:63,scriptHash:123,validWitnessVersions:[0]},u=["option_data_loss_protect","initial_routing_sync","option_upfront_shutdown_script","gossip_queries","var_onion_optin","gossip_queries_ex","option_static_remotekey","payment_secret","basic_mpp","option_support_large_channel"],f={m:BigInt(1e3),u:BigInt(1e6),n:BigInt(1e9),p:BigInt(1e12)},d=BigInt("2100000000000000000"),p=BigInt(1e11),A={payment_hash:1,payment_secret:16,description:13,payee:19,description_hash:23,expiry:6,min_final_cltv_expiry:24,fallback_address:9,route_hint:3,feature_bits:5,metadata:27},h={};for(let e=0,t=Object.keys(A);eo.encode(r.fromWordsUnsafe(e)),16:e=>o.encode(r.fromWordsUnsafe(e)),13:e=>i.encode(r.fromWordsUnsafe(e)),19:e=>o.encode(r.fromWordsUnsafe(e)),23:e=>o.encode(r.fromWordsUnsafe(e)),27:e=>o.encode(r.fromWordsUnsafe(e)),6:g,24:g,3:function(e){const t=[];let n,i,a,s,c,l=r.fromWordsUnsafe(e);for(;l.length>0;)n=o.encode(l.slice(0,33)),i=o.encode(l.slice(33,41)),a=parseInt(o.encode(l.slice(41,45)),16),s=parseInt(o.encode(l.slice(45,49)),16),c=parseInt(o.encode(l.slice(49,51)),16),l=l.slice(51),t.push({pubkey:n,short_channel_id:i,fee_base_msat:a,fee_proportional_millionths:s,cltv_expiry_delta:c});return t},5:function(e){const t=e.slice().reverse().map((e=>[!!(1&e),!!(2&e),!!(4&e),!!(8&e),!!(16&e)])).reduce(((e,t)=>e.concat(t)),[]);for(;t.length<2*u.length;)t.push(!1);const n={};u.forEach(((e,r)=>{let o;o=t[2*r]?"required":t[2*r+1]?"supported":"unsupported",n[e]=o}));const r=t.slice(2*u.length);return n.extra_bits={start_bit:2*u.length,bits:r,has_required:r.reduce(((e,t,n)=>n%2!=0?e||!1:e||t),!1)},n}};function m(e){return t=>({tagCode:parseInt(e),words:r.encode("unknown",t,Number.MAX_SAFE_INTEGER)})}function g(e){return e.reverse().reduce(((e,t,n)=>e+t*Math.pow(32,n)),0)}function v(e,t){let n,r;if(e.slice(-1).match(/^[munp]$/))n=e.slice(-1),r=e.slice(0,-1);else{if(e.slice(-1).match(/^[^munp0-9]$/))throw new Error("Not a valid multiplier for the amount");r=e}if(!r.match(/^\d+$/))throw new Error("Not a valid human readable amount");const o=BigInt(r),i=n?o*p/f[n]:o*p;if("p"===n&&o%BigInt(10)!==BigInt(0)||i>d)throw new Error("Amount is outside of valid range");return t?i.toString():i}e.exports={decode:function(e,t){if("string"!=typeof e)throw new Error("Lightning Payment Request must be string");if("ln"!==e.slice(0,2).toLowerCase())throw new Error("Not a proper lightning payment request");const n=[],i=r.decode(e,Number.MAX_SAFE_INTEGER);e=e.toLowerCase();const u=i.prefix;let f=i.words,d=e.slice(u.length+1),p=f.slice(-104);f=f.slice(0,-104);let w=u.match(/^ln(\S+?)(\d*)([a-zA-Z]?)$/);if(w&&!w[2]&&(w=u.match(/^ln(\S+)$/)),!w)throw new Error("Not a proper lightning payment request");n.push({name:"lightning_network",letters:"ln"});const _=w[1];let b;if(t){if(void 0===t.bech32||void 0===t.pubKeyHash||void 0===t.scriptHash||!Array.isArray(t.validWitnessVersions))throw new Error("Invalid network");b=t}else switch(_){case a.bech32:b=a;break;case s.bech32:b=s;break;case c.bech32:b=c;break;case l.bech32:b=l}if(!b||b.bech32!==_)throw new Error("Unknown coin bech32 prefix");n.push({name:"coin_network",letters:_,value:b});const C=w[2];let k;if(C){k=v(C+w[3],!0),n.push({name:"amount",letters:w[2]+w[3],value:k})}else k=null;n.push({name:"separator",letters:"1"});const x=g(f.slice(0,7));let B,E,S,I;for(f=f.slice(7),n.push({name:"timestamp",letters:d.slice(0,7),value:x}),d=d.slice(7);f.length>0;){const e=f[0].toString();B=h[e]||"unknown_tag",E=y[e]||m(e),f=f.slice(1),S=g(f.slice(0,2)),f=f.slice(2),I=f.slice(0,S),f=f.slice(S),n.push({name:B,tag:d[0],letters:d.slice(0,3+S),value:E(I)}),d=d.slice(3+S)}n.push({name:"signature",letters:d.slice(0,104),value:o.encode(r.fromWordsUnsafe(p))}),d=d.slice(104),n.push({name:"checksum",letters:d});let N={paymentRequest:e,sections:n,get expiry(){let e=n.find((e=>"expiry"===e.name));if(e)return P("timestamp")+e.value},get route_hints(){return n.filter((e=>"route_hint"===e.name)).map((e=>e.value))}};for(let e in A)"route_hint"!==e&&Object.defineProperty(N,e,{get:()=>P(e)});return N;function P(e){let t=n.find((t=>t.name===e));return t?t.value:void 0}},hrpToMillisat:v}},379:e=>{"use strict";var t=[];function n(e){for(var n=-1,r=0;r{"use strict";var t={};e.exports=function(e,n){var r=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(n)}},216:e=>{"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},565:(e,t,n)=>{"use strict";e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},795:e=>{"use strict";e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var r="";n.supports&&(r+="@supports (".concat(n.supports,") {")),n.media&&(r+="@media ".concat(n.media," {"));var o=void 0!==n.layer;o&&(r+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),r+=n.css,o&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}");var i=n.sourceMap;i&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),t.styleTagTransform(r,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},589:e=>{"use strict";e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},856:()=>{}},r={};function o(e){var t=r[e];if(void 0!==t)return t.exports;var i=r[e]={id:e,exports:{}};return n[e](i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,o.t=function(n,r){if(1&r&&(n=this(n)),8&r)return n;if("object"==typeof n&&n){if(4&r&&n.__esModule)return n;if(16&r&&"function"==typeof n.then)return n}var i=Object.create(null);o.r(i);var a={};e=e||[null,t({}),t([]),t(t)];for(var s=2&r&&n;"object"==typeof s&&!~e.indexOf(s);s=t(s))Object.getOwnPropertyNames(s).forEach((e=>a[e]=()=>n[e]));return a.default=()=>n,o.d(i,a),i},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.nc=void 0;var i={};return(()=>{"use strict";o.r(i),o.d(i,{init:()=>Nn});var e,t,n,r,a,s,c,l={},u=[],f=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,d=Array.isArray;function p(e,t){for(var n in t)e[n]=t[n];return e}function A(e){var t=e.parentNode;t&&t.removeChild(e)}function h(t,n,r){var o,i,a,s={};for(a in n)"key"==a?o=n[a]:"ref"==a?i=n[a]:s[a]=n[a];if(arguments.length>2&&(s.children=arguments.length>3?e.call(arguments,2):r),"function"==typeof t&&null!=t.defaultProps)for(a in t.defaultProps)void 0===s[a]&&(s[a]=t.defaultProps[a]);return y(t,s,o,i,null)}function y(e,r,o,i,a){var s={type:e,props:r,key:o,ref:i,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==a?++n:a};return null==a&&null!=t.vnode&&t.vnode(s),s}function m(e){return e.children}function g(e,t){this.props=e,this.context=t}function v(e,t){if(null==t)return e.__?v(e.__,e.__.__k.indexOf(e)+1):null;for(var n;tt&&r.sort(c));b.__r=0}function C(e,t,n,r,o,i,a,s,c,f,p){var A,h,g,v,w,_,b,C,E,S,I=0,N=r&&r.__k||u,T=N.length,j=T,O=t.length;for(n.__k=[],A=0;A0?y(v.type,v.props,v.key,v.ref?v.ref:null,v.__v):v)&&(v.__=n,v.__b=n.__b+1,-1===(C=B(v,N,b=A+I,j))?g=l:(g=N[C]||l,N[C]=void 0,j--),P(e,v,g,o,i,a,s,c,f,p),w=v.__e,(h=v.ref)&&g.ref!=h&&(g.ref&&U(g.ref,null,v),p.push(h,v.__c||w,v)),null!=w&&(null==_&&(_=w),S=!(E=g===l||null===g.__v)&&C===b,E?-1==C&&I--:C!==b&&(C===b+1?(I++,S=!0):C>b?j>O-b?(I+=C-b,S=!0):I--:I=C(null!=c?1:0))for(;a>=0||s=0){if((c=t[a])&&o==c.key&&i===c.type)return a;a--}if(s(e+t/z)/t,V={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar(e){const{n:t}=F,n=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-R*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),o=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=n,a=BigInt("0x100000000000000000000000000000000"),s=q(i*e,t),c=q(-r*e,t);let l=_e(e-s*n-c*o,t),u=_e(-s*r-c*i,t);const f=l>a,d=u>a;if(f&&(l=t-l),d&&(u=t-u),l>a||u>a)throw new Error("splitScalarEndo: Endomorphism failed, k="+e);return{k1neg:f,k1:l,k2neg:d,k2:u}}},Y=32,Z=32,K=Y+1,J=2*Y+1;function Q(e){const{a:t,b:n}=F,r=_e(e*e),o=_e(r*e);return _e(o+t*e+n)}const X=F.a===W;class ee extends Error{constructor(e){super(e)}}function te(e){if(!(e instanceof ne))throw new TypeError("JacobianPoint expected")}class ne{constructor(e,t,n){this.x=e,this.y=t,this.z=n}static fromAffine(e){if(!(e instanceof ie))throw new TypeError("JacobianPoint#fromAffine: expected Point");return e.equals(ie.ZERO)?ne.ZERO:new ne(e.x,e.y,R)}static toAffineBatch(e){const t=function(e,t=F.P){const n=new Array(e.length),r=e.reduce(((e,r,o)=>r===W?e:(n[o]=e,_e(e*r,t))),R),o=Ce(r,t);return e.reduceRight(((e,r,o)=>r===W?e:(n[o]=_e(e*n[o],t),_e(e*r,t))),o),n}(e.map((e=>e.z)));return e.map(((e,n)=>e.toAffine(t[n])))}static normalizeZ(e){return ne.toAffineBatch(e).map(ne.fromAffine)}equals(e){te(e);const{x:t,y:n,z:r}=this,{x:o,y:i,z:a}=e,s=_e(r*r),c=_e(a*a),l=_e(t*c),u=_e(o*s),f=_e(_e(n*a)*c),d=_e(_e(i*r)*s);return l===u&&f===d}negate(){return new ne(this.x,_e(-this.y),this.z)}double(){const{x:e,y:t,z:n}=this,r=_e(e*e),o=_e(t*t),i=_e(o*o),a=e+o,s=_e(z*(_e(a*a)-r-i)),c=_e($*r),l=_e(c*c),u=_e(l-z*s),f=_e(c*(s-u)-G*i),d=_e(z*t*n);return new ne(u,f,d)}add(e){te(e);const{x:t,y:n,z:r}=this,{x:o,y:i,z:a}=e;if(o===W||i===W)return this;if(t===W||n===W)return e;const s=_e(r*r),c=_e(a*a),l=_e(t*c),u=_e(o*s),f=_e(_e(n*a)*c),d=_e(_e(i*r)*s),p=_e(u-l),A=_e(d-f);if(p===W)return A===W?this.double():ne.ZERO;const h=_e(p*p),y=_e(p*h),m=_e(l*h),g=_e(A*A-y-z*m),v=_e(A*(m-g)-f*y),w=_e(r*a*p);return new ne(g,v,w)}subtract(e){return this.add(e.negate())}multiplyUnsafe(e){const t=ne.ZERO;if("bigint"==typeof e&&e===W)return t;let n=we(e);if(n===R)return this;if(!X){let e=t,r=this;for(;n>W;)n&R&&(e=e.add(r)),r=r.double(),n>>=R;return e}let{k1neg:r,k1:o,k2neg:i,k2:a}=V.splitScalar(n),s=t,c=t,l=this;for(;o>W||a>W;)o&R&&(s=s.add(l)),a&R&&(c=c.add(l)),l=l.double(),o>>=R,a>>=R;return r&&(s=s.negate()),i&&(c=c.negate()),c=new ne(_e(c.x*V.beta),c.y,c.z),s.add(c)}precomputeWindow(e){const t=X?128/e+1:256/e+1,n=[];let r=this,o=r;for(let i=0;i>=u,a>s&&(a-=l,e+=R);const f=n,d=n+Math.abs(a)-1,p=t%2!=0,A=a<0;0===a?i=i.add(re(p,r[f])):o=o.add(re(A,r[d]))}return{p:o,f:i}}multiply(e,t){let n,r,o=we(e);if(X){const{k1neg:e,k1:i,k2neg:a,k2:s}=V.splitScalar(o);let{p:c,f:l}=this.wNAF(i,t),{p:u,f}=this.wNAF(s,t);c=re(e,c),u=re(a,u),u=new ne(_e(u.x*V.beta),u.y,u.z),n=c.add(u),r=l.add(f)}else{const{p:e,f:i}=this.wNAF(o,t);n=e,r=i}return ne.normalizeZ([n,r])[0]}toAffine(e){const{x:t,y:n,z:r}=this,o=this.equals(ne.ZERO);null==e&&(e=o?G:Ce(r));const i=e,a=_e(i*i),s=_e(a*i),c=_e(t*a),l=_e(n*s),u=_e(r*i);if(o)return ie.ZERO;if(u!==R)throw new Error("invZ was invalid");return new ie(c,l)}}function re(e,t){const n=t.negate();return e?n:t}ne.BASE=new ne(F.Gx,F.Gy,R),ne.ZERO=new ne(W,R,W);const oe=new WeakMap;class ie{constructor(e,t){this.x=e,this.y=t}_setWindowSize(e){this._WINDOW_SIZE=e,oe.delete(this)}hasEvenY(){return this.y%z===W}static fromCompressedHex(e){const t=32===e.length,n=ge(t?e:e.subarray(1));if(!Se(n))throw new Error("Point is not on curve");let r=function(e){const{P:t}=F,n=BigInt(6),r=BigInt(11),o=BigInt(22),i=BigInt(23),a=BigInt(44),s=BigInt(88),c=e*e*e%t,l=c*c*e%t,u=be(l,$)*l%t,f=be(u,$)*l%t,d=be(f,z)*c%t,p=be(d,r)*d%t,A=be(p,o)*p%t,h=be(A,a)*A%t,y=be(h,s)*h%t,m=be(y,a)*A%t,g=be(m,$)*l%t,v=be(g,i)*p%t,w=be(v,n)*c%t,_=be(w,z),b=_*_%t;if(b!==e)throw new Error("Cannot find square root");return _}(Q(n));const o=(r&R)===R;if(t)o&&(r=_e(-r));else{1==(1&e[0])!==o&&(r=_e(-r))}const i=new ie(n,r);return i.assertValidity(),i}static fromUncompressedHex(e){const t=ge(e.subarray(1,Y+1)),n=ge(e.subarray(Y+1,2*Y+1)),r=new ie(t,n);return r.assertValidity(),r}static fromHex(e){const t=ve(e),n=t.length,r=t[0];if(n===Y)return this.fromCompressedHex(t);if(n===K&&(2===r||3===r))return this.fromCompressedHex(t);if(n===J&&4===r)return this.fromUncompressedHex(t);throw new Error(`Point.fromHex: received invalid point. Expected 32-${K} compressed bytes or ${J} uncompressed bytes, not ${n}`)}static fromPrivateKey(e){return ie.BASE.multiply(Ie(e))}static fromSignature(e,t,n){const{r,s:o}=Pe(t);if(![0,1,2,3].includes(n))throw new Error("Cannot recover: invalid recovery bit");const i=ke(ve(e)),{n:a}=F,s=2===n||3===n?r+a:r,c=Ce(s,a),l=_e(-i*c,a),u=_e(o*c,a),f=1&n?"03":"02",d=ie.fromHex(f+pe(s)),p=ie.BASE.multiplyAndAddUnsafe(d,l,u);if(!p)throw new Error("Cannot recover signature: point at infinify");return p.assertValidity(),p}toRawBytes(e=!1){return me(this.toHex(e))}toHex(e=!1){const t=pe(this.x);if(e){return`${this.hasEvenY()?"02":"03"}${t}`}return`04${t}${pe(this.y)}`}toHexX(){return this.toHex(!0).slice(2)}toRawX(){return this.toRawBytes(!0).slice(1)}assertValidity(){const e="Point is not on elliptic curve",{x:t,y:n}=this;if(!Se(t)||!Se(n))throw new Error(e);const r=_e(n*n);if(_e(r-Q(t))!==W)throw new Error(e)}equals(e){return this.x===e.x&&this.y===e.y}negate(){return new ie(this.x,_e(-this.y))}double(){return ne.fromAffine(this).double().toAffine()}add(e){return ne.fromAffine(this).add(ne.fromAffine(e)).toAffine()}subtract(e){return this.add(e.negate())}multiply(e){return ne.fromAffine(this).multiply(e,this).toAffine()}multiplyAndAddUnsafe(e,t,n){const r=ne.fromAffine(this),o=t===W||t===R||this!==ie.BASE?r.multiplyUnsafe(t):r.multiply(t),i=ne.fromAffine(e).multiplyUnsafe(n),a=o.add(i);return a.equals(ne.ZERO)?void 0:a.toAffine()}}function ae(e){return Number.parseInt(e[0],16)>=8?"00"+e:e}function se(e){if(e.length<2||2!==e[0])throw new Error(`Invalid signature integer tag: ${fe(e)}`);const t=e[1],n=e.subarray(2,t+2);if(!t||n.length!==t)throw new Error("Invalid signature integer: wrong length");if(0===n[0]&&n[1]<=127)throw new Error("Invalid signature integer: trailing length");return{data:ge(n),left:e.subarray(t+2)}}ie.BASE=new ie(F.Gx,F.Gy),ie.ZERO=new ie(W,W);class ce{constructor(e,t){this.r=e,this.s=t,this.assertValidity()}static fromCompact(e){const t=e instanceof Uint8Array,n="Signature.fromCompact";if("string"!=typeof e&&!t)throw new TypeError(`${n}: Expected string or Uint8Array`);const r=t?fe(e):e;if(128!==r.length)throw new Error(`${n}: Expected 64-byte hex`);return new ce(ye(r.slice(0,64)),ye(r.slice(64,128)))}static fromDER(e){const t=e instanceof Uint8Array;if("string"!=typeof e&&!t)throw new TypeError("Signature.fromDER: Expected string or Uint8Array");const{r:n,s:r}=function(e){if(e.length<2||48!=e[0])throw new Error(`Invalid signature tag: ${fe(e)}`);if(e[1]!==e.length-2)throw new Error("Invalid signature: incorrect length");const{data:t,left:n}=se(e.subarray(2)),{data:r,left:o}=se(n);if(o.length)throw new Error(`Invalid signature: left bytes after parsing: ${fe(o)}`);return{r:t,s:r}}(t?e:me(e));return new ce(n,r)}static fromHex(e){return this.fromDER(e)}assertValidity(){const{r:e,s:t}=this;if(!Ee(e))throw new Error("Invalid Signature: r must be 0 < r < n");if(!Ee(t))throw new Error("Invalid Signature: s must be 0 < s < n")}hasHighS(){const e=F.n>>R;return this.s>e}normalizeS(){return this.hasHighS()?new ce(this.r,_e(-this.s,F.n)):this}toDERRawBytes(){return me(this.toDERHex())}toDERHex(){const e=ae(he(this.s)),t=ae(he(this.r)),n=e.length/2,r=t.length/2,o=he(n),i=he(r);return`30${he(r+n+4)}02${i}${t}02${o}${e}`}toRawBytes(){return this.toDERRawBytes()}toHex(){return this.toDERHex()}toCompactRawBytes(){return me(this.toCompactHex())}toCompactHex(){return pe(this.r)+pe(this.s)}}function le(...e){if(!e.every((e=>e instanceof Uint8Array)))throw new Error("Uint8Array list expected");if(1===e.length)return e[0];const t=e.reduce(((e,t)=>e+t.length),0),n=new Uint8Array(t);for(let t=0,r=0;tt.toString(16).padStart(2,"0")));function fe(e){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");let t="";for(let n=0;n0)return BigInt(e);if("bigint"==typeof e&&Ee(e))return e;throw new TypeError("Expected valid private scalar: 0 < scalar < curve.n")}function _e(e,t=F.P){const n=e%t;return n>=W?n:t+n}function be(e,t){const{P:n}=F;let r=e;for(;t-- >W;)r*=r,r%=n;return r}function Ce(e,t=F.P){if(e===W||t<=W)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let n=_e(e,t),r=t,o=W,i=R,a=R,s=W;for(;n!==W;){const e=r/n,t=r%n,c=o-a*e,l=i-s*e;r=n,n=t,o=a,i=s,a=c,s=l}if(r!==R)throw new Error("invert: does not exist");return _e(o,t)}function ke(e,t=!1){const n=function(e){const t=8*e.length-8*Z,n=ge(e);return t>0?n>>BigInt(t):n}(e);if(t)return n;const{n:r}=F;return n>=r?n-r:n}let xe,Be;function Ee(e){return W0)t=BigInt(e);else if("string"==typeof e){if(e.length!==2*Z)throw new Error("Expected 32 bytes of private key");t=ye(e)}else{if(!(e instanceof Uint8Array))throw new TypeError("Expected valid private key");if(e.length!==Z)throw new Error("Expected 32 bytes of private key");t=ge(e)}if(!Ee(t))throw new Error("Expected private key: 0 < key < n");return t}function Ne(e){return e instanceof ie?(e.assertValidity(),e):ie.fromHex(e)}function Pe(e){if(e instanceof ce)return e.assertValidity(),e;try{return ce.fromDER(e)}catch(t){return ce.fromCompact(e)}}function Te(e){return _e(ge(e),F.n)}class je{constructor(e,t){this.r=e,this.s=t,this.assertValidity()}static fromHex(e){const t=ve(e);if(64!==t.length)throw new TypeError(`SchnorrSignature.fromHex: expected 64 bytes, not ${t.length}`);const n=ge(t.subarray(0,32)),r=ge(t.subarray(32,64));return new je(n,r)}assertValidity(){const{r:e,s:t}=this;if(!Se(e)||!Ee(t))throw new Error("Invalid signature")}toHex(){return pe(this.r)+pe(this.s)}toRawBytes(){return me(this.toHex())}}class Ue{constructor(e,t,n=$e.randomBytes()){if(null==e)throw new TypeError(`sign: Expected valid message, not "${e}"`);this.m=ve(e);const{x:r,scalar:o}=this.getScalar(Ie(t));if(this.px=r,this.d=o,this.rand=ve(n),32!==this.rand.length)throw new TypeError("sign: Expected 32 bytes of aux randomness")}getScalar(e){const t=ie.fromPrivateKey(e),n=t.hasEvenY()?e:F.n-e;return{point:t,scalar:n,x:t.toRawX()}}initNonce(e,t){return Ae(e^ge(t))}finalizeNonce(e){const t=_e(ge(e),F.n);if(t===W)throw new Error("sign: Creation of signature failed. k is zero");const{point:n,x:r,scalar:o}=this.getScalar(t);return{R:n,rx:r,k:o}}finalizeSig(e,t,n,r){return new je(e.x,_e(t+n*r,F.n)).toRawBytes()}error(){throw new Error("sign: Invalid signature produced")}async calc(){const{m:e,d:t,px:n,rand:r}=this,o=$e.taggedHash,i=this.initNonce(t,await o(Re.aux,r)),{R:a,rx:s,k:c}=this.finalizeNonce(await o(Re.nonce,i,n,e)),l=Te(await o(Re.challenge,s,n,e)),u=this.finalizeSig(a,c,l,t);return await De(u,e,n)||this.error(),u}calcSync(){const{m:e,d:t,px:n,rand:r}=this,o=$e.taggedHashSync,i=this.initNonce(t,o(Re.aux,r)),{R:a,rx:s,k:c}=this.finalizeNonce(o(Re.nonce,i,n,e)),l=Te(o(Re.challenge,s,n,e)),u=this.finalizeSig(a,c,l,t);return He(u,e,n)||this.error(),u}}function Le(e,t,n){const r=e instanceof je,o=r?e:je.fromHex(e);return r&&o.assertValidity(),{...o,m:ve(t),P:Ne(n)}}function Oe(e,t,n,r){const o=ie.BASE.multiplyAndAddUnsafe(t,Ie(n),_e(-r,F.n));return!(!o||!o.hasEvenY()||o.x!==e)}async function De(e,t,n){try{const{r,s:o,m:i,P:a}=Le(e,t,n),s=Te(await $e.taggedHash(Re.challenge,Ae(r),a.toRawX(),i));return Oe(r,a,o,s)}catch(e){return!1}}function He(e,t,n){try{const{r,s:o,m:i,P:a}=Le(e,t,n),s=Te($e.taggedHashSync(Re.challenge,Ae(r),a.toRawX(),i));return Oe(r,a,o,s)}catch(e){if(e instanceof ee)throw e;return!1}}const Me={Signature:je,getPublicKey:function(e){return ie.fromPrivateKey(e).toRawX()},sign:async function(e,t,n){return new Ue(e,t,n).calc()},verify:De,signSync:function(e,t,n){return new Ue(e,t,n).calcSync()},verifySync:He};ie.BASE._setWindowSize(8);const We={node:M,web:"object"==typeof self&&"crypto"in self?self.crypto:void 0},Re={challenge:"BIP0340/challenge",aux:"BIP0340/aux",nonce:"BIP0340/nonce"},ze={},$e={bytesToHex:fe,hexToBytes:me,concatBytes:le,mod:_e,invert:Ce,isValidPrivateKey(e){try{return Ie(e),!0}catch(e){return!1}},_bigintTo32Bytes:Ae,_normalizePrivateKey:Ie,hashToPrivateKey:e=>{e=ve(e);const t=Z+8;if(e.length1024)throw new Error("Expected valid bytes of private key as per FIPS 186");return Ae(_e(ge(e),F.n-R)+R)},randomBytes:(e=32)=>{if(We.web)return We.web.getRandomValues(new Uint8Array(e));if(We.node){const{randomBytes:t}=We.node;return Uint8Array.from(t(e))}throw new Error("The environment doesn't have randomBytes function")},randomPrivateKey:()=>$e.hashToPrivateKey($e.randomBytes(Z+8)),precompute(e=8,t=ie.BASE){const n=t===ie.BASE?t:new ie(t.x,t.y);return n._setWindowSize(e),n.multiply($),n},sha256:async(...e)=>{if(We.web){const t=await We.web.subtle.digest("SHA-256",le(...e));return new Uint8Array(t)}if(We.node){const{createHash:t}=We.node,n=t("sha256");return e.forEach((e=>n.update(e))),Uint8Array.from(n.digest())}throw new Error("The environment doesn't have sha256 function")},hmacSha256:async(e,...t)=>{if(We.web){const n=await We.web.subtle.importKey("raw",e,{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]),r=le(...t),o=await We.web.subtle.sign("HMAC",n,r);return new Uint8Array(o)}if(We.node){const{createHmac:n}=We.node,r=n("sha256",e);return t.forEach((e=>r.update(e))),Uint8Array.from(r.digest())}throw new Error("The environment doesn't have hmac-sha256 function")},sha256Sync:void 0,hmacSha256Sync:void 0,taggedHash:async(e,...t)=>{let n=ze[e];if(void 0===n){const t=await $e.sha256(Uint8Array.from(e,(e=>e.charCodeAt(0))));n=le(t,t),ze[e]=n}return $e.sha256(n,...t)},taggedHashSync:(e,...t)=>{if("function"!=typeof xe)throw new ee("sha256Sync is undefined, you need to set it");let n=ze[e];if(void 0===n){const t=xe(Uint8Array.from(e,(e=>e.charCodeAt(0))));n=le(t,t),ze[e]=n}return xe(n,...t)},_JacobianPoint:ne};Object.defineProperties($e,{sha256Sync:{configurable:!1,get:()=>xe,set(e){xe||(xe=e)}},hmacSha256Sync:{configurable:!1,get:()=>Be,set(e){Be||(Be=e)}}});var Ge=o(632),Fe=o(715),qe=new TextDecoder("utf-8"),Ve=Array.from({length:256},(function(e,t){return t.toString(16).padStart(2,"0")}));function Ye(e){for(var t=[],n=0;n=1e6?Math.round(e/1e5)/10+"M":e>=1e3?Math.round(e/100)/10+"K":e}function tt(e){for(var t={},n=e;n.length>0;){var r=n[0],o=n[1],i=n.slice(2,2+o);n=n.slice(2+o),i.length=r.__.length&&r.__.push({__V:lt}),r.__[e]}function yt(e){return st=1,function(e,t,n){var r=ht(rt++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):bt(void 0,t),function(e){var t=r.__N?r.__N[0]:r.__[0],n=r.t(t,e);t!==n&&(r.__N=[n,r.__[1]],r.__c.setState({}))}],r.__c=ot,!ot.u)){var o=function(e,t,n){if(!r.__c.__H)return!0;var o=r.__c.__H.__.filter((function(e){return e.__c}));if(o.every((function(e){return!e.__N})))return!i||i.call(this,e,t,n);var a=!1;return o.forEach((function(e){if(e.__N){var t=e.__[0];e.__=e.__N,e.__N=void 0,t!==e.__[0]&&(a=!0)}})),!(!a&&r.__c.props===e)&&(!i||i.call(this,e,t,n))};ot.u=!0;var i=ot.shouldComponentUpdate,a=ot.componentWillUpdate;ot.componentWillUpdate=function(e,t,n){if(this.__e){var r=i;i=void 0,o(e,t,n),i=r}a&&a.call(this,e,t,n)},ot.shouldComponentUpdate=o}return r.__N||r.__}(bt,e)}function mt(){for(var e;e=ct.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(wt),e.__H.__h.forEach(_t),e.__H.__h=[]}catch(n){e.__H.__h=[],t.__e(n,e.__v)}}t.__b=function(e){ot=null,ut&&ut(e)},t.__r=function(e){ft&&ft(e),rt=0;var t=(ot=e.__c).__H;t&&(it===ot?(t.__h=[],ot.__h=[],t.__.forEach((function(e){e.__N&&(e.__=e.__N),e.__V=lt,e.__N=e.i=void 0}))):(t.__h.forEach(wt),t.__h.forEach(_t),t.__h=[],rt=0)),it=ot},t.diffed=function(e){dt&&dt(e);var n=e.__c;n&&n.__H&&(n.__H.__h.length&&(1!==ct.push(n)&&at===t.requestAnimationFrame||((at=t.requestAnimationFrame)||vt)(mt)),n.__H.__.forEach((function(e){e.i&&(e.__H=e.i),e.__V!==lt&&(e.__=e.__V),e.i=void 0,e.__V=lt}))),it=ot=null},t.__c=function(e,n){n.some((function(e){try{e.__h.forEach(wt),e.__h=e.__h.filter((function(e){return!e.__||_t(e)}))}catch(r){n.some((function(e){e.__h&&(e.__h=[])})),n=[],t.__e(r,e.__v)}})),pt&&pt(e,n)},t.unmount=function(e){At&&At(e);var n,r=e.__c;r&&r.__H&&(r.__H.__.forEach((function(e){try{wt(e)}catch(e){n=e}})),r.__H=void 0,n&&t.__e(n,r.__v))};var gt="function"==typeof requestAnimationFrame;function vt(e){var t,n=function(){clearTimeout(r),gt&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,100);gt&&(t=requestAnimationFrame(n))}function wt(e){var t=ot,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),ot=t}function _t(e){var t=ot;e.__c=e.__(),ot=t}function bt(e,t){return"function"==typeof t?t(e):t}var Ct=0;function kt(e,n,r,o,i,a){var s,c,l={};for(c in n)"ref"==c?s=n[c]:l[c]=n[c];var u={type:e,props:l,key:r,ref:s,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:--Ct,__source:i,__self:a};if("function"==typeof e&&(s=e.defaultProps))for(c in s)void 0===l[c]&&(l[c]=s[c]);return t.vnode&&t.vnode(u),u}const xt=function(e){var t=e.additionalClasses,n="copyIcon";if(t){var r=t.split(" ");r.push(n),n=r.join(" ")}return kt("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor",width:"1.25rem",height:"1.25rem",class:n,children:kt("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M8.25 7.5V6.108c0-1.135.845-2.098 1.976-2.192.373-.03.748-.057 1.123-.08M15.75 18H18a2.25 2.25 0 002.25-2.25V6.108c0-1.135-.845-2.098-1.976-2.192a48.424 48.424 0 00-1.123-.08M15.75 18.75v-1.875a3.375 3.375 0 00-3.375-3.375h-1.5a1.125 1.125 0 01-1.125-1.125v-1.5A3.375 3.375 0 006.375 7.5H5.25m11.9-3.664A2.251 2.251 0 0015 2.25h-1.5a2.251 2.251 0 00-2.15 1.586m5.8 0c.065.21.1.433.1.664v.75h-6V4.5c0-.231.035-.454.1-.664M6.75 7.5H4.875c-.621 0-1.125.504-1.125 1.125v12c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V16.5a9 9 0 00-9-9z"})})};var Bt=o(379),Et=o.n(Bt),St=o(795),It=o.n(St),Nt=o(569),Pt=o.n(Nt),Tt=o(565),jt=o.n(Tt),Ut=o(216),Lt=o.n(Ut),Ot=o(589),Dt=o.n(Ot),Ht=o(218),Mt={};Mt.styleTagTransform=Dt(),Mt.setAttributes=jt(),Mt.insert=Pt().bind(null,"head"),Mt.domAPI=It(),Mt.insertStyleElement=Lt();Et()(Ht.Z,Mt);Ht.Z&&Ht.Z.locals&&Ht.Z.locals;function Wt(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,a,s=[],c=!0,l=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,o=e}finally{try{if(!c&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Rt(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Rt(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Rt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&(null==t?void 0:t.countTaggedProfiles)>Object.keys(null==t?void 0:t.taggedProfiles).length?kt("div",{className:"diffProfiles",children:["And ",sn(t)," more profiles."]}):null]}),(null==t?void 0:t.profilesList.error)&&kt("div",{className:"cardContent ne-text-red-800",children:null==t?void 0:t.profilesList.content})]}),kt(en,{profilesList:null==t?void 0:t.profilesList,likesCount:null==t?void 0:t.likesCount,repliesCount:null==t?void 0:t.repliesCount,repostsCount:null==t?void 0:t.repostsCount,zapAmount:null==t?void 0:t.zapAmount,options:null==n?void 0:n.options})]})}function sn(e){var t;return Object.keys(null==e?void 0:e.taggedProfiles).length>0&&null!=e&&e.countTaggedProfiles&&(t=(null==e?void 0:e.countTaggedProfiles)-Object.keys(null==e?void 0:e.taggedProfiles).length),t}const cn=function(e){var t=e.additionalClasses,n="followersIcon";if(t){var r=t.split(" ");r.push(n),n=r.join(" ")}return kt("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor",width:"1.25rem",height:"1.25rem",class:n,children:kt("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15 19.128a9.38 9.38 0 002.625.372 9.337 9.337 0 004.121-.952 4.125 4.125 0 00-7.533-2.493M15 19.128v-.003c0-1.113-.285-2.16-.786-3.07M15 19.128v.106A12.318 12.318 0 018.624 21c-2.331 0-4.512-.645-6.374-1.766l-.001-.109a6.375 6.375 0 0111.964-3.07M12 6.375a3.375 3.375 0 11-6.75 0 3.375 3.375 0 016.75 0zm8.25 2.25a2.625 2.625 0 11-5.25 0 2.625 2.625 0 015.25 0z"})})};const ln=function(e){var t,n,r=e.profile,o=e.followersCount,i=e.zapAmount,a=e.options;return r&&r.pubkey&&(t=Ke(r.pubkey),n=et(i)),kt("div",{className:"cardMeta",children:[kt("hr",{}),kt("div",{className:"cardInteractions",children:[null!=a&&a.hideCounters?null:kt(m,{children:[a&&a.showZaps?kt("div",{className:"interactionContainer",title:"Total sats zapped",children:[kt(Zt,{additionalClasses:"w-5 h-5"}),kt("span",{className:"zapAmount",children:n})]}):null,kt("div",{className:"interactionContainer",title:"Number of followers",children:[kt(cn,{additionalClasses:"w-5 h-5"}),kt("span",{className:"followersCount",children:o})]})]}),kt("div",{className:"interactionContainer",children:kt("a",{target:"_blank",rel:"noopener noreferrer nofollow",href:"https://nostr.band/".concat(t),className:"linkLink",children:[kt(Jt,{additionalClasses:"w-5 h-5 hover:text-gray-600"}),kt("span",{className:"displayText",children:"Open"})]})}),a&&a.showCopyAddr?kt("div",{className:"interactionContainer",children:kt(zt,{iconClasses:"w-5 h-5",displayText:"Copy Npub",copyText:t})}):null]})]})};const un=function(e){var t,n,r,o,i,a,s=e.follows,c=void 0===s?[]:s,l=e.options;if(null==l||!l.showFollowing)return kt(m,{});var u=c.slice(0,10).map((function(e){var t,n=JSON.parse(e.content);return{id:null==e?void 0:e.id,npubLink:"https://nostr.band/".concat(Ke(null==e?void 0:e.pubkey)),display_name:null==n?void 0:n.display_name,picture:null==n?void 0:n.picture,cachedImage:(t=null==e?void 0:e.pubkey,"https://media.nostr.band/thumbs/".concat(t.slice(-4),"/").concat(t,"-picture-64")),name:null==n?void 0:n.name}})),f=u.filter((function(e){return e.name&&e.display_name}));return kt("div",{children:[kt("hr",{}),kt("div",{className:"ne-flex ne-gap-6 ne-flex-wrap ne-items-center ne-mt-8",children:[kt("ul",{className:"ne-list-none ne-p-0 ne-flex ne-ms-[25px] ne-m-0 ne-items-center",children:u.map((function(e){return kt("li",{children:kt("a",{className:"ne-inline-block",rel:"noopener noreferrer nofollow",target:"_blank",href:e.npubLink,children:kt(Vt,{fullImage:null==e?void 0:e.picture,thumbnail:null==e?void 0:e.cachedImage,isProfileImage:!1})})},null==e?void 0:e.id)}))}),kt("div",{children:[kt("h2",{className:"ne-m-0 ne-font-bold ne-text-lg",children:["Follows ",c.length," profiles"]}),kt("div",{className:"ne-m-0 ne-text-sm",children:["Including "," ",kt("a",{rel:"noopener noreferrer nofollow",target:"_blank",className:"ne-text-black",href:null===(t=f[0])||void 0===t?void 0:t.npubLink,children:null===(n=f[0])||void 0===n?void 0:n.display_name}),f[1]?", ":"",kt("a",{rel:"noopener noreferrer nofollow",target:"_blank",className:"ne-text-black",href:null===(r=f[1])||void 0===r?void 0:r.npubLink,children:null===(o=f[1])||void 0===o?void 0:o.display_name}),f[2]?" and ":"",kt("a",{rel:"noopener noreferrer nofollow",target:"_blank",className:"ne-text-black",href:null===(i=f[2])||void 0===i?void 0:i.npubLink,children:null===(a=f[2])||void 0===a?void 0:a.display_name})]})]})]})]})};function fn(e){var t,n,r,o,i=e.state,a=e.props;return kt("div",{className:"nostrEmbedCard",children:[kt(Yt,{profilePkey:null==i?void 0:i.id,profile:null==i?void 0:i.profile,options:null==a?void 0:a.options}),kt("div",{className:null!=i&&i.profile.error?"cardContent ne-text-red-800":"cardContent",children:[null!=i&&null!==(t=i.profile)&&void 0!==t&&t.website?kt("p",{children:["Website:"," ",kt("a",{href:null==i||null===(n=i.profile)||void 0===n?void 0:n.website,target:"_blank",rel:"noopener noreferrer nofollow",children:null==i||null===(r=i.profile)||void 0===r?void 0:r.website})]}):"",(null==i||null===(o=i.profile)||void 0===o?void 0:o.about)||"Loading..."]}),Boolean(null==i?void 0:i.follows.length)&&kt(un,{follows:null==i?void 0:i.follows,options:null==a?void 0:a.options}),kt(ln,{profile:null==i?void 0:i.profile,followersCount:null==i?void 0:i.followersCount,zapAmount:null==i?void 0:i.zapAmount,options:null==a?void 0:a.options})]})}function dn(e){var t=e.state;return kt("div",{className:"nostrEmbedCard",children:["Zap content: ",JSON.stringify(null==t?void 0:t.event)]})}function pn(e){if(null==e||!e.event.content)return"";var t=function(e){var t,n="".concat((t=e).slice(0,10),"...").concat(t.slice(-4));return kt("a",{target:"_blank",rel:"noopener noreferrer nofollow",href:"https://nostr.band/".concat(e),children:n})},n=function(t,n){var r=Xe(t);if(n in(null==e?void 0:e.taggedProfiles)){var o=null==e?void 0:e.taggedProfiles[n];r=(null==o?void 0:o.name)||(null==o?void 0:o.display_name)||r}return kt("a",{target:"_blank",rel:"noopener noreferrer nofollow",href:"https://nostr.band/".concat(t),children:["@",r]})},r=null==e?void 0:e.event,o=r.content.split(/(#\[\d+\])/gi).map((function(e){var o=e.match(/#\[(\d+)\]/);if(o&&2===o.length){var i=parseInt(o[1]);if(i=2){var a=r.tags[i];switch(a[0]){case"p":return n(Ke(a[1]),a[1]);case"e":return t(Ze(a[1]));case"t":return kt("a",{target:"_blank",rel:"noopener noreferrer nofollow",href:"https://nostr.band/?q=%23".concat(a[1]),children:["#",a[1]]})}}return e}return e.split(/(nostr:[a-z0-9]+)/gi).map((function(e){var r=e.match(/nostr:([a-z0-9]+)/);if(r&&2===r.length){if(r[1].startsWith("note1")||r[1].startsWith("nevent1")||r[1].startsWith("naddr1"))return t(r[1]);if(r[1].startsWith("npub1")){var o=r[1],i=Qe(r[1]);if(i)return n(o,i)}else if(r[1].startsWith("nprofile1")){var a=function(e){var t,n=Fe.gW.decode(e,300);if("nprofile"!=n.prefix)return null;var r=tt(new Uint8Array(Fe.gW.fromWords(n.words)));if(null===(t=r[0])||void 0===t||!t[0])throw new Error("missing TLV 0 for nprofile");if(32!==r[0][0].length)throw new Error("TLV 0 should be 32 bytes");return{type:"nprofile",data:{pubkey:nt(r[0][0]),relays:r[1]?r[1].map((function(e){return qe.decode(e)})):[]}}}(r[1]),s=(a.type,a.data);if(s){var c=Ke(s.pubkey);return n(c,s.pubkey)}}return e}return e.split(/((?:http|ftp|https):\/\/(?:[\w+?.\w+])+(?:[a-zA-Z0-9~!@#$%^&*()_\-=+\\/?.:;',]*)?(?:[-A-Za-z0-9+&@#/%=~_|]))/i).map((function(e){return e.match(/^https?:\/\//)?function(e){return function(e){var t=yn(hn(e),0);return An(t,nn)}(e)?kt("div",{className:"cardContentMedia",children:kt("video",{src:e,controls:!0})}):function(e){var t=yn(hn(e),0);return An(t,tn)}(e)?kt("div",{className:"cardContentMedia",children:kt("img",{className:"cardContentImage",src:e,alt:""})}):function(e){var t=yn(hn(e),0);return function(e,t){return t.some((function(t){return e.includes(t)}))}(t,rn)}(e)?(e.includes("/watch")&&(e=(e=e.replace("/watch","/embed")).replace("?v=","/")),kt("div",{className:"cardContentMedia",children:kt("iframe",{src:e})})):kt("a",{target:"_blank",rel:"noopener noreferrer nofollow",href:e,children:e})}(e):e}))}))}));return o}function An(e,t){return t.some((function(t){return e.endsWith(t)}))}function hn(e){return e.toLowerCase()}function yn(e,t){var n=e.split("?");return n.length>t?n[t]:e}function mn(e){var t=e.state,n=e.props;return kt("div",{className:"nostrEmbedCard",children:[kt(Yt,{profilePkey:null==t?void 0:t.profilePkey,profile:null==t?void 0:t.profile,options:null==n?void 0:n.options}),kt("div",{className:null!=t&&t.event.error?"cardContent ne-text-red-800":"cardContent",children:pn(t)}),kt(en,{note:null==t?void 0:t.event,likesCount:null==t?void 0:t.likesCount,repliesCount:null==t?void 0:t.repliesCount,repostsCount:null==t?void 0:t.repostsCount,zapAmount:null==t?void 0:t.zapAmount,options:null==n?void 0:n.options})]})}function gn(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return vn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return vn(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}function vn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var s=n.call(i,"catchLoc"),c=n.call(i,"finallyLoc");if(s&&c){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;k(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:B(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},e}function bn(e,t,n,r,o,i,a){try{var s=e[i](a),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,o)}function Cn(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){bn(i,r,o,a,s,"next",e)}function s(e){bn(i,r,o,a,s,"throw",e)}a(void 0)}))}}function kn(e,t){for(var n=0;n1)return void(t[1]in r&&r[t[1]].on_event(null));if("COUNT"==t[0]&&3==t.length)return void(t[1]in r&&r[t[1]].on_count(t[2]));if("EVENT"!=t[0]||t.length<3)throw"Unknown reply from relay";t[1]in r&&r[t[1]].on_event(t[2])}catch(t){console.log("relay",n.url,"bad message",e,"error",t),err(t)}},n.subscribe=function(t){var o=t.type,i=t.sub,a=t.ok,s=t.err,c="embed-"+Math.random(),l=[o,c,i];n.send(JSON.stringify(l));var u=function(){var e=c;c=null,n.send(JSON.stringify(["CLOSE",e])),delete r[e]},f=[],d=[],p=function(){c&&(clearTimeout(A),u(),a(f))},A=setTimeout((function(){u(),f.length||d.length?h(null):s("timeout on relay",n.url)}),i.limit&&1==i.limit?2e3:6e3),h=function(){var t=Cn(_n().mark((function t(n){return _n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(d.push(n),!(d.length>1)){t.next=3;break}return t.abrupt("return");case 3:if(!d.length){t.next=19;break}if(n=d[0],t.t0=n,!t.t0){t.next=10;break}return t.next=9,e.isValidEvent(n);case 9:t.t0=t.sent;case 10:if(!t.t0){t.next=12;break}f.push(n);case 12:if(d.shift(),n&&(!i.limit||i.limit!=f.length)){t.next=17;break}return d.splice(0,d.length),p(),t.abrupt("break",19);case 17:t.next=3;break;case 19:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),y=function(){var e=Cn(_n().mark((function e(t){return _n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("COUNT"==o){e.next=2;break}return e.abrupt("return");case 2:f.push(t),p();case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();r[c]={ok:a,err:s,on_event:h,on_count:y}},n.listEvents=function(e){var t=e.sub,r=e.ok,o=e.err;n.subscribe({type:"REQ",sub:t,ok:r,err:o})},n.countEvents=function(e){var t=e.sub,r=e.ok,o=e.err;n.subscribe({type:"COUNT",sub:t,ok:function(e){r(e.length?e[0]:null)},err:o})}}}},{key:"getEvent",value:function(e){var t=e.socket,n=e.sub;return e.ok,e.err,new Promise((function(e,r){n.limit=1,t.listEvents({sub:n,ok:function(t){e(t?t[0]:null)},err:r})}))}},{key:"listEvents",value:function(e){var t=e.socket,n=e.sub;return new Promise((function(e,r){t.listEvents({sub:n,ok:e,err:r})}))}},{key:"countEvents",value:function(e){var t=e.socket,n=e.sub;return new Promise((function(e,r){t.countEvents({sub:n,ok:e,err:r})}))}},{key:"fetchEvent",value:function(e){var t=this,n=e.socket,r=e.noteId,o={ids:[r]};this.getEvent({socket:n,sub:o}).then((function(e){if(!e)throw console.log("Error: We can't find that note on this relay"),"Event not found";t.setState({event:e,kind:e.kind,profilePkey:e.pubkey}),t.fetchProfile({socket:n,profilePkey:e.pubkey}),1==e.kind?(t.fetchMeta({socket:n,noteId:r}),t.fetchTags({socket:n,tags:e.tags})):e.kind})).catch((function(e){console.log("Error fetching note: ".concat(e)),t.setState({event:{id:r,error:!0,content:"Sorry, we weren't able to find and parse this note on the specified relay."}})}))}},{key:"fetchProfile",value:function(e){var t=this,n=e.socket,r=e.profilePkey,o={kinds:[0],authors:[r]};this.getEvent({socket:n,sub:o}).then((function(e){if(!e)throw"Event not found";var o,i=JSON.parse(e.content);i.pubkey=r,t.setState({profilePkey:r,profile:i}),0==t.state.kind&&(t.fetchProfileMeta({socket:n,pubkey:r}),null!==(o=t.props.options)&&void 0!==o&&o.showFollowing&&t.fetchFollows({socket:n,pubkey:r}))})).catch((function(e){console.log("Error fetching profile: ".concat(e)),t.setState({profile:{pubkey:r,error:!0,about:"Sorry, we weren't able to find this profile on the specified relay."}})}))}},{key:"fetchFollows",value:function(e){var t=this,n=e.socket,r={kinds:[3],authors:[e.pubkey]},o=[];this.getEvent({socket:n,sub:r}).then((function(e){if(!e)throw"Event not found";null==e||e.tags.forEach((function(e){"p"===e[0]&&o.push(e[1])})),t.fetchFollowProfiles({socket:n,pubkeys:o})})).catch((function(e){console.error("Error fetching follows: ".concat(e))}))}},{key:"fetchFollowProfiles",value:function(e){var t=this,n=e.socket,r={kinds:[0],authors:e.pubkeys};this.listEvents({socket:n,sub:r}).then((function(e){e&&t.setState({follows:e})})).catch((function(e){console.error("Error fetching follow profiles: ".concat(e))}))}},{key:"fetchNaddr",value:function(e){var t=this,n=e.socket,r=e.data,o={kinds:[r.kind],"#d":[r.identifier],authors:[r.pubkey]};this.getEvent({socket:n,sub:o}).then((function(e){if(!e)throw"Event not found";if(t.setState({event:e,kind:e.kind}),t.fetchProfile({socket:n,profilePkey:e.pubkey}),3==e.kind||3e4==e.kind){var o=t.getProfilesListObj(e.tags);o.created_at=e.created_at,o.id="".concat(r.kind,":").concat(r.pubkey,":").concat(r.identifier),o.naddr=t.props.id,t.setState({profilesList:o}),t.fetchTags({socket:n,tags:e.tags}),t.fetchMeta({socket:n,data:r})}})).catch((function(e){console.log("Error fetching event by naddr: ".concat(e)),t.setState({profilesList:{error:!0,content:"Sorry, we weren't able to find this event on the specified relay."}})}))}},{key:"fetchTags",value:function(e){var t,n=this,r=e.socket,o=e.tags,i={kinds:[0],authors:[]},a=0,s=gn(o);try{for(s.s();!(t=s.n()).done;){var c=t.value;i.authors.length<100&&c.length>=2&&"p"==c[0]&&i.authors.push(c[1]),c.length>=2&&"p"==c[0]&&a++}}catch(e){s.e(e)}finally{s.f()}this.setState((function(e){return{countTaggedProfiles:e.countTaggedProfiles+a}})),i.authors.length&&this.listEvents({socket:r,sub:i}).then((function(e){var t,r={},o=gn(e);try{for(o.s();!(t=o.n()).done;){var i=t.value;try{var a=JSON.parse(i.content);r[i.pubkey]=a}catch(e){console.log("Error bad event content",e,i.content)}}}catch(e){o.e(e)}finally{o.f()}n.setState({taggedProfiles:r})})).catch((function(e){console.log("Error fetching tagged profiles: ".concat(e))}))}},{key:"getProfilesListObj",value:function(e){var t={};return e.forEach((function(e){e&&e[0]&&("name"===e[0]&&(t.name=e[1]),"d"===e[0]&&(t.d=e[1]),"description"===e[0]&&(t.description=e[1]))})),t}},{key:"getZapAmount",value:function(e){try{var t,n=gn(e.tags);try{for(n.s();!(t=n.n()).done;){var r=t.value;if(r.length>=2&&"bolt11"==r[0]){var o,i=gn((0,Ge.decode)(r[1]).sections);try{for(i.s();!(o=i.n()).done;){var a=o.value;if("amount"==a.name)return parseInt(a.value)}}catch(e){i.e(e)}finally{i.f()}break}}}catch(e){n.e(e)}finally{n.f()}}catch(t){console.log("Error bad zap",t,e)}return 0}},{key:"onListMetaEvents",value:function(e){var t,n=this,r=gn(e);try{var o=function(){var e=t.value;switch(e.kind){case KIND_REPOST:n.setState((function(e){return{repostsCount:e.repostsCount+1}}));break;case KIND_REACTION:n.setState((function(e){return{likesCount:e.likesCount+1}}));break;case 1:n.setState((function(e){return{repliesCount:e.repliesCount+1}}));break;case on:n.setState((function(t){return{zapAmount:t.zapAmount+n.getZapAmount(e)}}));break;default:console.log("Unknown note kind")}};for(r.s();!(t=r.n()).done;)o()}catch(e){r.e(e)}finally{r.f()}}},{key:"fetchMeta",value:function(e){var t,n=e.socket,r=e.noteId,o=e.data;if(null===(t=this.props.options)||void 0===t||!t.hideCounters)return n.url.includes("wss://relay.nostr.band")?this.fetchMetaCount({socket:n,noteId:r,data:o}):this.fetchMetaList({socket:n,noteId:r,data:o})}},{key:"fetchMetaCount",value:function(e){var t=this,n=e.socket,r=e.noteId,o=e.data,i=function(e){return r?{kinds:[e],"#e":[r]}:o?{kinds:[e],"#a":["".concat(o.kind,":").concat(o.pubkey,":").concat(o.identifier)]}:void 0};this.countEvents({socket:n,sub:i(1)}).then((function(e){t.setState((function(t){return{repliesCount:e?e.count:0}}))})),this.countEvents({socket:n,sub:i(KIND_REPOST)}).then((function(e){t.setState((function(t){return{repostsCount:e?e.count:0}}))})),this.countEvents({socket:n,sub:i(KIND_REACTION)}).then((function(e){t.setState((function(t){return{likesCount:e?e.count:0}}))})),this.listEvents({socket:n,sub:i(on)}).then((function(e){t.onListMetaEvents(e)}))}},{key:"fetchMetaList",value:function(e){var t=this,n=e.socket,r=e.noteId,o=e.data,i=this.getSubOnFetchMetaList({noteId:r,data:o});this.listEvents({socket:n,sub:i}).then((function(e){t.onListMetaEvents(e)}))}},{key:"getSubOnFetchMetaList",value:function(e){var t=e.noteId,n=e.data;return t?{kinds:[1,KIND_REPOST,KIND_REACTION,on],"#e":[t]}:n?{kinds:[1,KIND_REPOST,KIND_REACTION,on],"#a":["".concat(n.kind,":").concat(n.pubkey,":").concat(n.identifier)]}:void 0}},{key:"onListProfileMetaEvents",value:function(e){var t,n=this,r=gn(e);try{var o=function(){var e=t.value;switch(e.kind){case 3:n.setState((function(e){return{followersCount:e.followersCount+1}}));break;case on:n.setState((function(t){return{zapAmount:t.zapAmount+n.getZapAmount(e)}}));break;default:console.log("Unknown event kind")}};for(r.s();!(t=r.n()).done;)o()}catch(e){r.e(e)}finally{r.f()}}},{key:"fetchProfileMetaCount",value:function(e){var t=this,n=e.socket,r=e.pubkey,o=function(e){return{kinds:[e],"#p":[r]}};this.countEvents({socket:n,sub:o(3)}).then((function(e){t.setState((function(t){return{followersCount:e?e.count:0}}))})),this.listEvents({socket:n,sub:o(on)}).then((function(e){t.onListProfileMetaEvents(e)}))}},{key:"fetchProfileMetaList",value:function(e){var t=this,n=e.socket,r=e.pubkey,o={kinds:[3,on],"#p":[r]};this.listEvents({socket:n,sub:o}).then((function(e){t.onListProfileMetaEvents(e)}))}},{key:"fetchProfileMeta",value:function(e){var t,n,r=e.socket,o=e.pubkey;if(console.log(null===(t=this.props.options)||void 0===t?void 0:t.hideCounters),null===(n=this.props.options)||void 0===n||!n.hideCounters)return r.url.includes("wss://relay.nostr.band")?this.fetchProfileMetaCount({socket:r,pubkey:o}):this.fetchProfileMetaList({socket:r,pubkey:o})}},{key:"render",value:function(){switch(this.state.kind){case 0:return kt(fn,{props:this.props,state:this.state});case 3:case 3e4:return kt(an,{props:this.props,state:this.state});case on:return kt(dn,{state:this.state});default:return kt(mn,{props:this.props,state:this.state})}}}],n&&kn(t.prototype,n),r&&kn(t,r),Object.defineProperty(t,"prototype",{writable:!1}),c}(g);const In=Sn;function Nn(e,t,n,r){n||(n="wss://relay.nostr.band/");var o=document.querySelector(t)?document.querySelector(t):document.querySelector("body");D(h(In,{id:e,relay:n,options:r}),o)}})(),i})())); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RWhDLElBNW5CRjRvQixHQUFBN0IsR0FBQTRCLEVBQUF2c0IsVUFBQXdzQixHQUFBQyxHQUFBOUIsR0FBQTRCLEVBQUFFLEdBQUF2L0IsT0FBQUMsZUFBQW8vQixFQUFBLGFBQUFySCxVQUFBLElBNG5CR2dILENBQUEsQ0FubkJhLENBQVMySixHQXNuQnpCLFlDN25CTyxTQUFTQyxHQUFLL2hDLEVBQUlnaUMsRUFBU3pJLEVBQU9qeUIsR0FFbENpeUIsSUFDSEEsRUFBUSwyQkFFVixJQUFNMEksRUFBZ0I5NEIsU0FBU0MsY0FBYzQ0QixHQUN6Qzc0QixTQUFTQyxjQUFjNDRCLEdBQ3ZCNzRCLFNBQVNDLGNBQWMsUUFFM0JzRyxFQUFPbkQsRUFBRTRyQixHQUFZLENBQUVuNEIsR0FBQUEsRUFBSXU1QixNQUFBQSxFQUFPanlCLFFBQUFBLElBQVkyNkIsRUFDaEQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9ub3N0ckVtYmVkL3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkL3dlYnBhY2svcnVudGltZS9jcmVhdGUgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0Iiwid2VicGFjazovL25vc3RyRW1iZWQvLi9ub2RlX21vZHVsZXMvQHNjdXJlL2Jhc2UvbGliL2luZGV4LmpzIiwid2VicGFjazovL25vc3RyRW1iZWQvLi9ub2RlX21vZHVsZXMvYmVjaDMyL2Rpc3QvaW5kZXguanMiLCJ3ZWJwYWNrOi8vbm9zdHJFbWJlZC8uL3NyYy9jb21wb25lbnRzL3N0eWxlLmNzcyIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkLy4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qcyIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkLy4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanMiLCJ3ZWJwYWNrOi8vbm9zdHJFbWJlZC8uL25vZGVfbW9kdWxlcy9saWdodC1ib2x0MTEtZGVjb2Rlci9ib2x0MTEuanMiLCJ3ZWJwYWNrOi8vbm9zdHJFbWJlZC8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qcyIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkLy4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qcyIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkLy4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzIiwid2VicGFjazovL25vc3RyRW1iZWQvLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanMiLCJ3ZWJwYWNrOi8vbm9zdHJFbWJlZC8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzIiwid2VicGFjazovL25vc3RyRW1iZWQvLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qcyIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL25vc3RyRW1iZWQvd2VicGFjay9ydW50aW1lL2NvbXBhdCBnZXQgZGVmYXVsdCBleHBvcnQiLCJ3ZWJwYWNrOi8vbm9zdHJFbWJlZC93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vbm9zdHJFbWJlZC93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL25vc3RyRW1iZWQvd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkL3dlYnBhY2svcnVudGltZS9ub25jZSIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkLy4vbm9kZV9tb2R1bGVzL3ByZWFjdC9kaXN0L3ByZWFjdC5tb2R1bGUuanMiLCJ3ZWJwYWNrOi8vbm9zdHJFbWJlZC8uL25vZGVfbW9kdWxlcy9Abm9ibGUvc2VjcDI1NmsxL2xpYi9lc20vaW5kZXguanMiLCJ3ZWJwYWNrOi8vbm9zdHJFbWJlZC8uL3NyYy91dGlscy9jb21tb24uanMiLCJ3ZWJwYWNrOi8vbm9zdHJFbWJlZC8uL25vZGVfbW9kdWxlcy9wcmVhY3QvaG9va3MvZGlzdC9ob29rcy5tb2R1bGUuanMiLCJ3ZWJwYWNrOi8vbm9zdHJFbWJlZC8uL25vZGVfbW9kdWxlcy9wcmVhY3QvanN4LXJ1bnRpbWUvZGlzdC9qc3hSdW50aW1lLm1vZHVsZS5qcyIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkLy4vc3JjL2NvbXBvbmVudHMvaWNvbnMvY29weUljb24uanN4Iiwid2VicGFjazovL25vc3RyRW1iZWQvLi9zcmMvY29tcG9uZW50cy9zdHlsZS5jc3M/ZmM3YyIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkLy4vc3JjL2NvbXBvbmVudHMvY29weVRleHQuanN4Iiwid2VicGFjazovL25vc3RyRW1iZWQvLi9zcmMvY29tcG9uZW50cy9pY29ucy9rZXlJY29uLmpzeCIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkLy4vc3JjL2NvbXBvbmVudHMvaWNvbnMvbm9zdHJpY2hJY29uLmpzeCIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkLy4vc3JjL2NvbXBvbmVudHMvcHJvZmlsZUltYWdlLmpzeCIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkLy4vc3JjL2NvbXBvbmVudHMvcHJvZmlsZS5qc3giLCJ3ZWJwYWNrOi8vbm9zdHJFbWJlZC8uL3NyYy9jb21wb25lbnRzL2ljb25zL2JvbHRJY29uLmpzeCIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkLy4vc3JjL2NvbXBvbmVudHMvaWNvbnMvaGVhcnRJY29uLmpzeCIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkLy4vc3JjL2NvbXBvbmVudHMvaWNvbnMvbGlua0ljb24uanN4Iiwid2VicGFjazovL25vc3RyRW1iZWQvLi9zcmMvY29tcG9uZW50cy9pY29ucy9yZXBseUljb24uanN4Iiwid2VicGFjazovL25vc3RyRW1iZWQvLi9zcmMvY29tcG9uZW50cy9pY29ucy9yZXBvc3RJY29uLmpzeCIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkLy4vc3JjL2NvbXBvbmVudHMvbWV0YS5qc3giLCJ3ZWJwYWNrOi8vbm9zdHJFbWJlZC8uL3NyYy9jb25maWcvY29uZmlnLmpzIiwid2VicGFjazovL25vc3RyRW1iZWQvLi9zcmMvbWFpbi9jb21wb25lbnRzL1Byb2ZpbGVzTGlzdC5qc3giLCJ3ZWJwYWNrOi8vbm9zdHJFbWJlZC8uL3NyYy9jb21wb25lbnRzL2ljb25zL2ZvbGxvd2Vyc0ljb24uanN4Iiwid2VicGFjazovL25vc3RyRW1iZWQvLi9zcmMvY29tcG9uZW50cy9wcm9maWxlTWV0YS5qc3giLCJ3ZWJwYWNrOi8vbm9zdHJFbWJlZC8uL3NyYy9jb21wb25lbnRzL3Byb2ZpbGVGb2xsb3dzLmpzeCIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkLy4vc3JjL21haW4vY29tcG9uZW50cy9Qcm9maWxlLmpzeCIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkLy4vc3JjL21haW4vY29tcG9uZW50cy9aYXAuanN4Iiwid2VicGFjazovL25vc3RyRW1iZWQvLi9zcmMvdXRpbHMvZm9ybWF0Q29udGVudC5qcyIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkLy4vc3JjL21haW4vY29tcG9uZW50cy9Ob3RlLmpzeCIsIndlYnBhY2s6Ly9ub3N0ckVtYmVkLy4vc3JjL21haW4vTm9zdHJFbWJlZC5qc3giLCJ3ZWJwYWNrOi8vbm9zdHJFbWJlZC8uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShbXSwgZmFjdG9yeSk7XG5cdGVsc2UgaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKVxuXHRcdGV4cG9ydHNbXCJub3N0ckVtYmVkXCJdID0gZmFjdG9yeSgpO1xuXHRlbHNlXG5cdFx0cm9vdFtcIm5vc3RyRW1iZWRcIl0gPSBmYWN0b3J5KCk7XG59KSh0aGlzLCAoKSA9PiB7XG5yZXR1cm4gIiwidmFyIGdldFByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mID8gKG9iaikgPT4gKE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmopKSA6IChvYmopID0+IChvYmouX19wcm90b19fKTtcbnZhciBsZWFmUHJvdG90eXBlcztcbi8vIGNyZWF0ZSBhIGZha2UgbmFtZXNwYWNlIG9iamVjdFxuLy8gbW9kZSAmIDE6IHZhbHVlIGlzIGEgbW9kdWxlIGlkLCByZXF1aXJlIGl0XG4vLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0aGUgbnNcbi8vIG1vZGUgJiA0OiByZXR1cm4gdmFsdWUgd2hlbiBhbHJlYWR5IG5zIG9iamVjdFxuLy8gbW9kZSAmIDE2OiByZXR1cm4gdmFsdWUgd2hlbiBpdCdzIFByb21pc2UtbGlrZVxuLy8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZVxuX193ZWJwYWNrX3JlcXVpcmVfXy50ID0gZnVuY3Rpb24odmFsdWUsIG1vZGUpIHtcblx0aWYobW9kZSAmIDEpIHZhbHVlID0gdGhpcyh2YWx1ZSk7XG5cdGlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7XG5cdGlmKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUpIHtcblx0XHRpZigobW9kZSAmIDQpICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcblx0XHRpZigobW9kZSAmIDE2KSAmJiB0eXBlb2YgdmFsdWUudGhlbiA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHZhbHVlO1xuXHR9XG5cdHZhciBucyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cdF9fd2VicGFja19yZXF1aXJlX18ucihucyk7XG5cdHZhciBkZWYgPSB7fTtcblx0bGVhZlByb3RvdHlwZXMgPSBsZWFmUHJvdG90eXBlcyB8fCBbbnVsbCwgZ2V0UHJvdG8oe30pLCBnZXRQcm90byhbXSksIGdldFByb3RvKGdldFByb3RvKV07XG5cdGZvcih2YXIgY3VycmVudCA9IG1vZGUgJiAyICYmIHZhbHVlOyB0eXBlb2YgY3VycmVudCA9PSAnb2JqZWN0JyAmJiAhfmxlYWZQcm90b3R5cGVzLmluZGV4T2YoY3VycmVudCk7IGN1cnJlbnQgPSBnZXRQcm90byhjdXJyZW50KSkge1xuXHRcdE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGN1cnJlbnQpLmZvckVhY2goKGtleSkgPT4gKGRlZltrZXldID0gKCkgPT4gKHZhbHVlW2tleV0pKSk7XG5cdH1cblx0ZGVmWydkZWZhdWx0J10gPSAoKSA9PiAodmFsdWUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGRlZik7XG5cdHJldHVybiBucztcbn07IiwiXCJ1c2Ugc3RyaWN0XCI7XG4vKiEgc2N1cmUtYmFzZSAtIE1JVCBMaWNlbnNlIChjKSAyMDIyIFBhdWwgTWlsbGVyIChwYXVsbWlsbHIuY29tKSAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5ieXRlcyA9IGV4cG9ydHMuc3RyaW5nVG9CeXRlcyA9IGV4cG9ydHMuc3RyID0gZXhwb3J0cy5ieXRlc1RvU3RyaW5nID0gZXhwb3J0cy5oZXggPSBleHBvcnRzLnV0ZjggPSBleHBvcnRzLmJlY2gzMm0gPSBleHBvcnRzLmJlY2gzMiA9IGV4cG9ydHMuYmFzZTU4Y2hlY2sgPSBleHBvcnRzLmJhc2U1OHhtciA9IGV4cG9ydHMuYmFzZTU4eHJwID0gZXhwb3J0cy5iYXNlNThmbGlja3IgPSBleHBvcnRzLmJhc2U1OCA9IGV4cG9ydHMuYmFzZTY0dXJsID0gZXhwb3J0cy5iYXNlNjQgPSBleHBvcnRzLmJhc2UzMmNyb2NrZm9yZCA9IGV4cG9ydHMuYmFzZTMyaGV4ID0gZXhwb3J0cy5iYXNlMzIgPSBleHBvcnRzLmJhc2UxNiA9IGV4cG9ydHMudXRpbHMgPSBleHBvcnRzLmFzc2VydE51bWJlciA9IHZvaWQgMDtcbmZ1bmN0aW9uIGFzc2VydE51bWJlcihuKSB7XG4gICAgaWYgKCFOdW1iZXIuaXNTYWZlSW50ZWdlcihuKSlcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBXcm9uZyBpbnRlZ2VyOiAke259YCk7XG59XG5leHBvcnRzLmFzc2VydE51bWJlciA9IGFzc2VydE51bWJlcjtcbmZ1bmN0aW9uIGNoYWluKC4uLmFyZ3MpIHtcbiAgICBjb25zdCB3cmFwID0gKGEsIGIpID0+IChjKSA9PiBhKGIoYykpO1xuICAgIGNvbnN0IGVuY29kZSA9IEFycmF5LmZyb20oYXJncylcbiAgICAgICAgLnJldmVyc2UoKVxuICAgICAgICAucmVkdWNlKChhY2MsIGkpID0+IChhY2MgPyB3cmFwKGFjYywgaS5lbmNvZGUpIDogaS5lbmNvZGUpLCB1bmRlZmluZWQpO1xuICAgIGNvbnN0IGRlY29kZSA9IGFyZ3MucmVkdWNlKChhY2MsIGkpID0+IChhY2MgPyB3cmFwKGFjYywgaS5kZWNvZGUpIDogaS5kZWNvZGUpLCB1bmRlZmluZWQpO1xuICAgIHJldHVybiB7IGVuY29kZSwgZGVjb2RlIH07XG59XG5mdW5jdGlvbiBhbHBoYWJldChhbHBoYWJldCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIGVuY29kZTogKGRpZ2l0cykgPT4ge1xuICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGRpZ2l0cykgfHwgKGRpZ2l0cy5sZW5ndGggJiYgdHlwZW9mIGRpZ2l0c1swXSAhPT0gJ251bWJlcicpKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignYWxwaGFiZXQuZW5jb2RlIGlucHV0IHNob3VsZCBiZSBhbiBhcnJheSBvZiBudW1iZXJzJyk7XG4gICAgICAgICAgICByZXR1cm4gZGlnaXRzLm1hcCgoaSkgPT4ge1xuICAgICAgICAgICAgICAgIGFzc2VydE51bWJlcihpKTtcbiAgICAgICAgICAgICAgICBpZiAoaSA8IDAgfHwgaSA+PSBhbHBoYWJldC5sZW5ndGgpXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRGlnaXQgaW5kZXggb3V0c2lkZSBhbHBoYWJldDogJHtpfSAoYWxwaGFiZXQ6ICR7YWxwaGFiZXQubGVuZ3RofSlgKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWxwaGFiZXRbaV07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgZGVjb2RlOiAoaW5wdXQpID0+IHtcbiAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShpbnB1dCkgfHwgKGlucHV0Lmxlbmd0aCAmJiB0eXBlb2YgaW5wdXRbMF0gIT09ICdzdHJpbmcnKSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2FscGhhYmV0LmRlY29kZSBpbnB1dCBzaG91bGQgYmUgYXJyYXkgb2Ygc3RyaW5ncycpO1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0Lm1hcCgobGV0dGVyKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBsZXR0ZXIgIT09ICdzdHJpbmcnKVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGFscGhhYmV0LmRlY29kZTogbm90IHN0cmluZyBlbGVtZW50PSR7bGV0dGVyfWApO1xuICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gYWxwaGFiZXQuaW5kZXhPZihsZXR0ZXIpO1xuICAgICAgICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBsZXR0ZXI6IFwiJHtsZXR0ZXJ9XCIuIEFsbG93ZWQ6ICR7YWxwaGFiZXR9YCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGpvaW4oc2VwYXJhdG9yID0gJycpIHtcbiAgICBpZiAodHlwZW9mIHNlcGFyYXRvciAhPT0gJ3N0cmluZycpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignam9pbiBzZXBhcmF0b3Igc2hvdWxkIGJlIHN0cmluZycpO1xuICAgIHJldHVybiB7XG4gICAgICAgIGVuY29kZTogKGZyb20pID0+IHtcbiAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShmcm9tKSB8fCAoZnJvbS5sZW5ndGggJiYgdHlwZW9mIGZyb21bMF0gIT09ICdzdHJpbmcnKSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2pvaW4uZW5jb2RlIGlucHV0IHNob3VsZCBiZSBhcnJheSBvZiBzdHJpbmdzJyk7XG4gICAgICAgICAgICBmb3IgKGxldCBpIG9mIGZyb20pXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBpICE9PSAnc3RyaW5nJylcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBqb2luLmVuY29kZTogbm9uLXN0cmluZyBpbnB1dD0ke2l9YCk7XG4gICAgICAgICAgICByZXR1cm4gZnJvbS5qb2luKHNlcGFyYXRvcik7XG4gICAgICAgIH0sXG4gICAgICAgIGRlY29kZTogKHRvKSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHRvICE9PSAnc3RyaW5nJylcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2pvaW4uZGVjb2RlIGlucHV0IHNob3VsZCBiZSBzdHJpbmcnKTtcbiAgICAgICAgICAgIHJldHVybiB0by5zcGxpdChzZXBhcmF0b3IpO1xuICAgICAgICB9LFxuICAgIH07XG59XG5mdW5jdGlvbiBwYWRkaW5nKGJpdHMsIGNociA9ICc9Jykge1xuICAgIGFzc2VydE51bWJlcihiaXRzKTtcbiAgICBpZiAodHlwZW9mIGNociAhPT0gJ3N0cmluZycpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcigncGFkZGluZyBjaHIgc2hvdWxkIGJlIHN0cmluZycpO1xuICAgIHJldHVybiB7XG4gICAgICAgIGVuY29kZShkYXRhKSB7XG4gICAgICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoZGF0YSkgfHwgKGRhdGEubGVuZ3RoICYmIHR5cGVvZiBkYXRhWzBdICE9PSAnc3RyaW5nJykpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdwYWRkaW5nLmVuY29kZSBpbnB1dCBzaG91bGQgYmUgYXJyYXkgb2Ygc3RyaW5ncycpO1xuICAgICAgICAgICAgZm9yIChsZXQgaSBvZiBkYXRhKVxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgaSAhPT0gJ3N0cmluZycpXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgcGFkZGluZy5lbmNvZGU6IG5vbi1zdHJpbmcgaW5wdXQ9JHtpfWApO1xuICAgICAgICAgICAgd2hpbGUgKChkYXRhLmxlbmd0aCAqIGJpdHMpICUgOClcbiAgICAgICAgICAgICAgICBkYXRhLnB1c2goY2hyKTtcbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9LFxuICAgICAgICBkZWNvZGUoaW5wdXQpIHtcbiAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShpbnB1dCkgfHwgKGlucHV0Lmxlbmd0aCAmJiB0eXBlb2YgaW5wdXRbMF0gIT09ICdzdHJpbmcnKSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3BhZGRpbmcuZW5jb2RlIGlucHV0IHNob3VsZCBiZSBhcnJheSBvZiBzdHJpbmdzJyk7XG4gICAgICAgICAgICBmb3IgKGxldCBpIG9mIGlucHV0KVxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgaSAhPT0gJ3N0cmluZycpXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgcGFkZGluZy5kZWNvZGU6IG5vbi1zdHJpbmcgaW5wdXQ9JHtpfWApO1xuICAgICAgICAgICAgbGV0IGVuZCA9IGlucHV0Lmxlbmd0aDtcbiAgICAgICAgICAgIGlmICgoZW5kICogYml0cykgJSA4KVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBwYWRkaW5nOiBzdHJpbmcgc2hvdWxkIGhhdmUgd2hvbGUgbnVtYmVyIG9mIGJ5dGVzJyk7XG4gICAgICAgICAgICBmb3IgKDsgZW5kID4gMCAmJiBpbnB1dFtlbmQgLSAxXSA9PT0gY2hyOyBlbmQtLSkge1xuICAgICAgICAgICAgICAgIGlmICghKCgoZW5kIC0gMSkgKiBiaXRzKSAlIDgpKVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgcGFkZGluZzogc3RyaW5nIGhhcyB0b28gbXVjaCBwYWRkaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gaW5wdXQuc2xpY2UoMCwgZW5kKTtcbiAgICAgICAgfSxcbiAgICB9O1xufVxuZnVuY3Rpb24gbm9ybWFsaXplKGZuKSB7XG4gICAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJylcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdub3JtYWxpemUgZm4gc2hvdWxkIGJlIGZ1bmN0aW9uJyk7XG4gICAgcmV0dXJuIHsgZW5jb2RlOiAoZnJvbSkgPT4gZnJvbSwgZGVjb2RlOiAodG8pID0+IGZuKHRvKSB9O1xufVxuZnVuY3Rpb24gY29udmVydFJhZGl4KGRhdGEsIGZyb20sIHRvKSB7XG4gICAgaWYgKGZyb20gPCAyKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGNvbnZlcnRSYWRpeDogd3JvbmcgZnJvbT0ke2Zyb219LCBiYXNlIGNhbm5vdCBiZSBsZXNzIHRoYW4gMmApO1xuICAgIGlmICh0byA8IDIpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgY29udmVydFJhZGl4OiB3cm9uZyB0bz0ke3RvfSwgYmFzZSBjYW5ub3QgYmUgbGVzcyB0aGFuIDJgKTtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZGF0YSkpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignY29udmVydFJhZGl4OiBkYXRhIHNob3VsZCBiZSBhcnJheScpO1xuICAgIGlmICghZGF0YS5sZW5ndGgpXG4gICAgICAgIHJldHVybiBbXTtcbiAgICBsZXQgcG9zID0gMDtcbiAgICBjb25zdCByZXMgPSBbXTtcbiAgICBjb25zdCBkaWdpdHMgPSBBcnJheS5mcm9tKGRhdGEpO1xuICAgIGRpZ2l0cy5mb3JFYWNoKChkKSA9PiB7XG4gICAgICAgIGFzc2VydE51bWJlcihkKTtcbiAgICAgICAgaWYgKGQgPCAwIHx8IGQgPj0gZnJvbSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgV3JvbmcgaW50ZWdlcjogJHtkfWApO1xuICAgIH0pO1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgIGxldCBjYXJyeSA9IDA7XG4gICAgICAgIGxldCBkb25lID0gdHJ1ZTtcbiAgICAgICAgZm9yIChsZXQgaSA9IHBvczsgaSA8IGRpZ2l0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgZGlnaXQgPSBkaWdpdHNbaV07XG4gICAgICAgICAgICBjb25zdCBkaWdpdEJhc2UgPSBmcm9tICogY2FycnkgKyBkaWdpdDtcbiAgICAgICAgICAgIGlmICghTnVtYmVyLmlzU2FmZUludGVnZXIoZGlnaXRCYXNlKSB8fFxuICAgICAgICAgICAgICAgIChmcm9tICogY2FycnkpIC8gZnJvbSAhPT0gY2FycnkgfHxcbiAgICAgICAgICAgICAgICBkaWdpdEJhc2UgLSBkaWdpdCAhPT0gZnJvbSAqIGNhcnJ5KSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdjb252ZXJ0UmFkaXg6IGNhcnJ5IG92ZXJmbG93Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXJyeSA9IGRpZ2l0QmFzZSAlIHRvO1xuICAgICAgICAgICAgZGlnaXRzW2ldID0gTWF0aC5mbG9vcihkaWdpdEJhc2UgLyB0byk7XG4gICAgICAgICAgICBpZiAoIU51bWJlci5pc1NhZmVJbnRlZ2VyKGRpZ2l0c1tpXSkgfHwgZGlnaXRzW2ldICogdG8gKyBjYXJyeSAhPT0gZGlnaXRCYXNlKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignY29udmVydFJhZGl4OiBjYXJyeSBvdmVyZmxvdycpO1xuICAgICAgICAgICAgaWYgKCFkb25lKVxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgZWxzZSBpZiAoIWRpZ2l0c1tpXSlcbiAgICAgICAgICAgICAgICBwb3MgPSBpO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIGRvbmUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXMucHVzaChjYXJyeSk7XG4gICAgICAgIGlmIChkb25lKVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGggLSAxICYmIGRhdGFbaV0gPT09IDA7IGkrKylcbiAgICAgICAgcmVzLnB1c2goMCk7XG4gICAgcmV0dXJuIHJlcy5yZXZlcnNlKCk7XG59XG5jb25zdCBnY2QgPSAoYSwgYikgPT4gKCFiID8gYSA6IGdjZChiLCBhICUgYikpO1xuY29uc3QgcmFkaXgyY2FycnkgPSAoZnJvbSwgdG8pID0+IGZyb20gKyAodG8gLSBnY2QoZnJvbSwgdG8pKTtcbmZ1bmN0aW9uIGNvbnZlcnRSYWRpeDIoZGF0YSwgZnJvbSwgdG8sIHBhZGRpbmcpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZGF0YSkpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignY29udmVydFJhZGl4MjogZGF0YSBzaG91bGQgYmUgYXJyYXknKTtcbiAgICBpZiAoZnJvbSA8PSAwIHx8IGZyb20gPiAzMilcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBjb252ZXJ0UmFkaXgyOiB3cm9uZyBmcm9tPSR7ZnJvbX1gKTtcbiAgICBpZiAodG8gPD0gMCB8fCB0byA+IDMyKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGNvbnZlcnRSYWRpeDI6IHdyb25nIHRvPSR7dG99YCk7XG4gICAgaWYgKHJhZGl4MmNhcnJ5KGZyb20sIHRvKSA+IDMyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgY29udmVydFJhZGl4MjogY2Fycnkgb3ZlcmZsb3cgZnJvbT0ke2Zyb219IHRvPSR7dG99IGNhcnJ5Qml0cz0ke3JhZGl4MmNhcnJ5KGZyb20sIHRvKX1gKTtcbiAgICB9XG4gICAgbGV0IGNhcnJ5ID0gMDtcbiAgICBsZXQgcG9zID0gMDtcbiAgICBjb25zdCBtYXNrID0gMiAqKiB0byAtIDE7XG4gICAgY29uc3QgcmVzID0gW107XG4gICAgZm9yIChjb25zdCBuIG9mIGRhdGEpIHtcbiAgICAgICAgYXNzZXJ0TnVtYmVyKG4pO1xuICAgICAgICBpZiAobiA+PSAyICoqIGZyb20pXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGNvbnZlcnRSYWRpeDI6IGludmFsaWQgZGF0YSB3b3JkPSR7bn0gZnJvbT0ke2Zyb219YCk7XG4gICAgICAgIGNhcnJ5ID0gKGNhcnJ5IDw8IGZyb20pIHwgbjtcbiAgICAgICAgaWYgKHBvcyArIGZyb20gPiAzMilcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgY29udmVydFJhZGl4MjogY2Fycnkgb3ZlcmZsb3cgcG9zPSR7cG9zfSBmcm9tPSR7ZnJvbX1gKTtcbiAgICAgICAgcG9zICs9IGZyb207XG4gICAgICAgIGZvciAoOyBwb3MgPj0gdG87IHBvcyAtPSB0bylcbiAgICAgICAgICAgIHJlcy5wdXNoKCgoY2FycnkgPj4gKHBvcyAtIHRvKSkgJiBtYXNrKSA+Pj4gMCk7XG4gICAgICAgIGNhcnJ5ICY9IDIgKiogcG9zIC0gMTtcbiAgICB9XG4gICAgY2FycnkgPSAoY2FycnkgPDwgKHRvIC0gcG9zKSkgJiBtYXNrO1xuICAgIGlmICghcGFkZGluZyAmJiBwb3MgPj0gZnJvbSlcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeGNlc3MgcGFkZGluZycpO1xuICAgIGlmICghcGFkZGluZyAmJiBjYXJyeSlcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBOb24temVybyBwYWRkaW5nOiAke2NhcnJ5fWApO1xuICAgIGlmIChwYWRkaW5nICYmIHBvcyA+IDApXG4gICAgICAgIHJlcy5wdXNoKGNhcnJ5ID4+PiAwKTtcbiAgICByZXR1cm4gcmVzO1xufVxuZnVuY3Rpb24gcmFkaXgobnVtKSB7XG4gICAgYXNzZXJ0TnVtYmVyKG51bSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgZW5jb2RlOiAoYnl0ZXMpID0+IHtcbiAgICAgICAgICAgIGlmICghKGJ5dGVzIGluc3RhbmNlb2YgVWludDhBcnJheSkpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdyYWRpeC5lbmNvZGUgaW5wdXQgc2hvdWxkIGJlIFVpbnQ4QXJyYXknKTtcbiAgICAgICAgICAgIHJldHVybiBjb252ZXJ0UmFkaXgoQXJyYXkuZnJvbShieXRlcyksIDIgKiogOCwgbnVtKTtcbiAgICAgICAgfSxcbiAgICAgICAgZGVjb2RlOiAoZGlnaXRzKSA9PiB7XG4gICAgICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoZGlnaXRzKSB8fCAoZGlnaXRzLmxlbmd0aCAmJiB0eXBlb2YgZGlnaXRzWzBdICE9PSAnbnVtYmVyJykpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdyYWRpeC5kZWNvZGUgaW5wdXQgc2hvdWxkIGJlIGFycmF5IG9mIHN0cmluZ3MnKTtcbiAgICAgICAgICAgIHJldHVybiBVaW50OEFycmF5LmZyb20oY29udmVydFJhZGl4KGRpZ2l0cywgbnVtLCAyICoqIDgpKTtcbiAgICAgICAgfSxcbiAgICB9O1xufVxuZnVuY3Rpb24gcmFkaXgyKGJpdHMsIHJldlBhZGRpbmcgPSBmYWxzZSkge1xuICAgIGFzc2VydE51bWJlcihiaXRzKTtcbiAgICBpZiAoYml0cyA8PSAwIHx8IGJpdHMgPiAzMilcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdyYWRpeDI6IGJpdHMgc2hvdWxkIGJlIGluICgwLi4zMl0nKTtcbiAgICBpZiAocmFkaXgyY2FycnkoOCwgYml0cykgPiAzMiB8fCByYWRpeDJjYXJyeShiaXRzLCA4KSA+IDMyKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3JhZGl4MjogY2Fycnkgb3ZlcmZsb3cnKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBlbmNvZGU6IChieXRlcykgPT4ge1xuICAgICAgICAgICAgaWYgKCEoYnl0ZXMgaW5zdGFuY2VvZiBVaW50OEFycmF5KSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3JhZGl4Mi5lbmNvZGUgaW5wdXQgc2hvdWxkIGJlIFVpbnQ4QXJyYXknKTtcbiAgICAgICAgICAgIHJldHVybiBjb252ZXJ0UmFkaXgyKEFycmF5LmZyb20oYnl0ZXMpLCA4LCBiaXRzLCAhcmV2UGFkZGluZyk7XG4gICAgICAgIH0sXG4gICAgICAgIGRlY29kZTogKGRpZ2l0cykgPT4ge1xuICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGRpZ2l0cykgfHwgKGRpZ2l0cy5sZW5ndGggJiYgdHlwZW9mIGRpZ2l0c1swXSAhPT0gJ251bWJlcicpKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigncmFkaXgyLmRlY29kZSBpbnB1dCBzaG91bGQgYmUgYXJyYXkgb2Ygc3RyaW5ncycpO1xuICAgICAgICAgICAgcmV0dXJuIFVpbnQ4QXJyYXkuZnJvbShjb252ZXJ0UmFkaXgyKGRpZ2l0cywgYml0cywgOCwgcmV2UGFkZGluZykpO1xuICAgICAgICB9LFxuICAgIH07XG59XG5mdW5jdGlvbiB1bnNhZmVXcmFwcGVyKGZuKSB7XG4gICAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJylcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd1bnNhZmVXcmFwcGVyIGZuIHNob3VsZCBiZSBmdW5jdGlvbicpO1xuICAgIHJldHVybiBmdW5jdGlvbiAoLi4uYXJncykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIGZuLmFwcGx5KG51bGwsIGFyZ3MpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7IH1cbiAgICB9O1xufVxuZnVuY3Rpb24gY2hlY2tzdW0obGVuLCBmbikge1xuICAgIGFzc2VydE51bWJlcihsZW4pO1xuICAgIGlmICh0eXBlb2YgZm4gIT09ICdmdW5jdGlvbicpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignY2hlY2tzdW0gZm4gc2hvdWxkIGJlIGZ1bmN0aW9uJyk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgZW5jb2RlKGRhdGEpIHtcbiAgICAgICAgICAgIGlmICghKGRhdGEgaW5zdGFuY2VvZiBVaW50OEFycmF5KSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NoZWNrc3VtLmVuY29kZTogaW5wdXQgc2hvdWxkIGJlIFVpbnQ4QXJyYXknKTtcbiAgICAgICAgICAgIGNvbnN0IGNoZWNrc3VtID0gZm4oZGF0YSkuc2xpY2UoMCwgbGVuKTtcbiAgICAgICAgICAgIGNvbnN0IHJlcyA9IG5ldyBVaW50OEFycmF5KGRhdGEubGVuZ3RoICsgbGVuKTtcbiAgICAgICAgICAgIHJlcy5zZXQoZGF0YSk7XG4gICAgICAgICAgICByZXMuc2V0KGNoZWNrc3VtLCBkYXRhLmxlbmd0aCk7XG4gICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICB9LFxuICAgICAgICBkZWNvZGUoZGF0YSkge1xuICAgICAgICAgICAgaWYgKCEoZGF0YSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignY2hlY2tzdW0uZGVjb2RlOiBpbnB1dCBzaG91bGQgYmUgVWludDhBcnJheScpO1xuICAgICAgICAgICAgY29uc3QgcGF5bG9hZCA9IGRhdGEuc2xpY2UoMCwgLWxlbik7XG4gICAgICAgICAgICBjb25zdCBuZXdDaGVja3N1bSA9IGZuKHBheWxvYWQpLnNsaWNlKDAsIGxlbik7XG4gICAgICAgICAgICBjb25zdCBvbGRDaGVja3N1bSA9IGRhdGEuc2xpY2UoLWxlbik7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKVxuICAgICAgICAgICAgICAgIGlmIChuZXdDaGVja3N1bVtpXSAhPT0gb2xkQ2hlY2tzdW1baV0pXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjaGVja3N1bScpO1xuICAgICAgICAgICAgcmV0dXJuIHBheWxvYWQ7XG4gICAgICAgIH0sXG4gICAgfTtcbn1cbmV4cG9ydHMudXRpbHMgPSB7IGFscGhhYmV0LCBjaGFpbiwgY2hlY2tzdW0sIHJhZGl4LCByYWRpeDIsIGpvaW4sIHBhZGRpbmcgfTtcbmV4cG9ydHMuYmFzZTE2ID0gY2hhaW4ocmFkaXgyKDQpLCBhbHBoYWJldCgnMDEyMzQ1Njc4OUFCQ0RFRicpLCBqb2luKCcnKSk7XG5leHBvcnRzLmJhc2UzMiA9IGNoYWluKHJhZGl4Mig1KSwgYWxwaGFiZXQoJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMjM0NTY3JyksIHBhZGRpbmcoNSksIGpvaW4oJycpKTtcbmV4cG9ydHMuYmFzZTMyaGV4ID0gY2hhaW4ocmFkaXgyKDUpLCBhbHBoYWJldCgnMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVYnKSwgcGFkZGluZyg1KSwgam9pbignJykpO1xuZXhwb3J0cy5iYXNlMzJjcm9ja2ZvcmQgPSBjaGFpbihyYWRpeDIoNSksIGFscGhhYmV0KCcwMTIzNDU2Nzg5QUJDREVGR0hKS01OUFFSU1RWV1hZWicpLCBqb2luKCcnKSwgbm9ybWFsaXplKChzKSA9PiBzLnRvVXBwZXJDYXNlKCkucmVwbGFjZSgvTy9nLCAnMCcpLnJlcGxhY2UoL1tJTF0vZywgJzEnKSkpO1xuZXhwb3J0cy5iYXNlNjQgPSBjaGFpbihyYWRpeDIoNiksIGFscGhhYmV0KCdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvJyksIHBhZGRpbmcoNiksIGpvaW4oJycpKTtcbmV4cG9ydHMuYmFzZTY0dXJsID0gY2hhaW4ocmFkaXgyKDYpLCBhbHBoYWJldCgnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODktXycpLCBwYWRkaW5nKDYpLCBqb2luKCcnKSk7XG5jb25zdCBnZW5CYXNlNTggPSAoYWJjKSA9PiBjaGFpbihyYWRpeCg1OCksIGFscGhhYmV0KGFiYyksIGpvaW4oJycpKTtcbmV4cG9ydHMuYmFzZTU4ID0gZ2VuQmFzZTU4KCcxMjM0NTY3ODlBQkNERUZHSEpLTE1OUFFSU1RVVldYWVphYmNkZWZnaGlqa21ub3BxcnN0dXZ3eHl6Jyk7XG5leHBvcnRzLmJhc2U1OGZsaWNrciA9IGdlbkJhc2U1OCgnMTIzNDU2Nzg5YWJjZGVmZ2hpamttbm9wcXJzdHV2d3h5ekFCQ0RFRkdISktMTU5QUVJTVFVWV1hZWicpO1xuZXhwb3J0cy5iYXNlNTh4cnAgPSBnZW5CYXNlNTgoJ3Jwc2huYWYzOXdCVURORUdISktMTTRQUVJTVDdWV1hZWjJiY2RlQ2c2NWprbThvRnFpMXR1dkF4eXonKTtcbmNvbnN0IFhNUl9CTE9DS19MRU4gPSBbMCwgMiwgMywgNSwgNiwgNywgOSwgMTAsIDExXTtcbmV4cG9ydHMuYmFzZTU4eG1yID0ge1xuICAgIGVuY29kZShkYXRhKSB7XG4gICAgICAgIGxldCByZXMgPSAnJztcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSArPSA4KSB7XG4gICAgICAgICAgICBjb25zdCBibG9jayA9IGRhdGEuc3ViYXJyYXkoaSwgaSArIDgpO1xuICAgICAgICAgICAgcmVzICs9IGV4cG9ydHMuYmFzZTU4LmVuY29kZShibG9jaykucGFkU3RhcnQoWE1SX0JMT0NLX0xFTltibG9jay5sZW5ndGhdLCAnMScpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfSxcbiAgICBkZWNvZGUoc3RyKSB7XG4gICAgICAgIGxldCByZXMgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpICs9IDExKSB7XG4gICAgICAgICAgICBjb25zdCBzbGljZSA9IHN0ci5zbGljZShpLCBpICsgMTEpO1xuICAgICAgICAgICAgY29uc3QgYmxvY2tMZW4gPSBYTVJfQkxPQ0tfTEVOLmluZGV4T2Yoc2xpY2UubGVuZ3RoKTtcbiAgICAgICAgICAgIGNvbnN0IGJsb2NrID0gZXhwb3J0cy5iYXNlNTguZGVjb2RlKHNsaWNlKTtcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgYmxvY2subGVuZ3RoIC0gYmxvY2tMZW47IGorKykge1xuICAgICAgICAgICAgICAgIGlmIChibG9ja1tqXSAhPT0gMClcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYXNlNTh4bXI6IHdyb25nIHBhZGRpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlcyA9IHJlcy5jb25jYXQoQXJyYXkuZnJvbShibG9jay5zbGljZShibG9jay5sZW5ndGggLSBibG9ja0xlbikpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gVWludDhBcnJheS5mcm9tKHJlcyk7XG4gICAgfSxcbn07XG5jb25zdCBiYXNlNThjaGVjayA9IChzaGEyNTYpID0+IGNoYWluKGNoZWNrc3VtKDQsIChkYXRhKSA9PiBzaGEyNTYoc2hhMjU2KGRhdGEpKSksIGV4cG9ydHMuYmFzZTU4KTtcbmV4cG9ydHMuYmFzZTU4Y2hlY2sgPSBiYXNlNThjaGVjaztcbmNvbnN0IEJFQ0hfQUxQSEFCRVQgPSBjaGFpbihhbHBoYWJldCgncXB6cnk5eDhnZjJ0dmR3MHMzam41NGtoY2U2bXVhN2wnKSwgam9pbignJykpO1xuY29uc3QgUE9MWU1PRF9HRU5FUkFUT1JTID0gWzB4M2I2YTU3YjIsIDB4MjY1MDhlNmQsIDB4MWVhMTE5ZmEsIDB4M2Q0MjMzZGQsIDB4MmExNDYyYjNdO1xuZnVuY3Rpb24gYmVjaDMyUG9seW1vZChwcmUpIHtcbiAgICBjb25zdCBiID0gcHJlID4+IDI1O1xuICAgIGxldCBjaGsgPSAocHJlICYgMHgxZmZmZmZmKSA8PCA1O1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgUE9MWU1PRF9HRU5FUkFUT1JTLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmICgoKGIgPj4gaSkgJiAxKSA9PT0gMSlcbiAgICAgICAgICAgIGNoayBePSBQT0xZTU9EX0dFTkVSQVRPUlNbaV07XG4gICAgfVxuICAgIHJldHVybiBjaGs7XG59XG5mdW5jdGlvbiBiZWNoQ2hlY2tzdW0ocHJlZml4LCB3b3JkcywgZW5jb2RpbmdDb25zdCA9IDEpIHtcbiAgICBjb25zdCBsZW4gPSBwcmVmaXgubGVuZ3RoO1xuICAgIGxldCBjaGsgPSAxO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgY29uc3QgYyA9IHByZWZpeC5jaGFyQ29kZUF0KGkpO1xuICAgICAgICBpZiAoYyA8IDMzIHx8IGMgPiAxMjYpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcHJlZml4ICgke3ByZWZpeH0pYCk7XG4gICAgICAgIGNoayA9IGJlY2gzMlBvbHltb2QoY2hrKSBeIChjID4+IDUpO1xuICAgIH1cbiAgICBjaGsgPSBiZWNoMzJQb2x5bW9kKGNoayk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKylcbiAgICAgICAgY2hrID0gYmVjaDMyUG9seW1vZChjaGspIF4gKHByZWZpeC5jaGFyQ29kZUF0KGkpICYgMHgxZik7XG4gICAgZm9yIChsZXQgdiBvZiB3b3JkcylcbiAgICAgICAgY2hrID0gYmVjaDMyUG9seW1vZChjaGspIF4gdjtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDY7IGkrKylcbiAgICAgICAgY2hrID0gYmVjaDMyUG9seW1vZChjaGspO1xuICAgIGNoayBePSBlbmNvZGluZ0NvbnN0O1xuICAgIHJldHVybiBCRUNIX0FMUEhBQkVULmVuY29kZShjb252ZXJ0UmFkaXgyKFtjaGsgJSAyICoqIDMwXSwgMzAsIDUsIGZhbHNlKSk7XG59XG5mdW5jdGlvbiBnZW5CZWNoMzIoZW5jb2RpbmcpIHtcbiAgICBjb25zdCBFTkNPRElOR19DT05TVCA9IGVuY29kaW5nID09PSAnYmVjaDMyJyA/IDEgOiAweDJiYzgzMGEzO1xuICAgIGNvbnN0IF93b3JkcyA9IHJhZGl4Mig1KTtcbiAgICBjb25zdCBmcm9tV29yZHMgPSBfd29yZHMuZGVjb2RlO1xuICAgIGNvbnN0IHRvV29yZHMgPSBfd29yZHMuZW5jb2RlO1xuICAgIGNvbnN0IGZyb21Xb3Jkc1Vuc2FmZSA9IHVuc2FmZVdyYXBwZXIoZnJvbVdvcmRzKTtcbiAgICBmdW5jdGlvbiBlbmNvZGUocHJlZml4LCB3b3JkcywgbGltaXQgPSA5MCkge1xuICAgICAgICBpZiAodHlwZW9mIHByZWZpeCAhPT0gJ3N0cmluZycpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGJlY2gzMi5lbmNvZGUgcHJlZml4IHNob3VsZCBiZSBzdHJpbmcsIG5vdCAke3R5cGVvZiBwcmVmaXh9YCk7XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheSh3b3JkcykgfHwgKHdvcmRzLmxlbmd0aCAmJiB0eXBlb2Ygd29yZHNbMF0gIT09ICdudW1iZXInKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgYmVjaDMyLmVuY29kZSB3b3JkcyBzaG91bGQgYmUgYXJyYXkgb2YgbnVtYmVycywgbm90ICR7dHlwZW9mIHdvcmRzfWApO1xuICAgICAgICBjb25zdCBhY3R1YWxMZW5ndGggPSBwcmVmaXgubGVuZ3RoICsgNyArIHdvcmRzLmxlbmd0aDtcbiAgICAgICAgaWYgKGxpbWl0ICE9PSBmYWxzZSAmJiBhY3R1YWxMZW5ndGggPiBsaW1pdClcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYExlbmd0aCAke2FjdHVhbExlbmd0aH0gZXhjZWVkcyBsaW1pdCAke2xpbWl0fWApO1xuICAgICAgICBwcmVmaXggPSBwcmVmaXgudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgcmV0dXJuIGAke3ByZWZpeH0xJHtCRUNIX0FMUEhBQkVULmVuY29kZSh3b3Jkcyl9JHtiZWNoQ2hlY2tzdW0ocHJlZml4LCB3b3JkcywgRU5DT0RJTkdfQ09OU1QpfWA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRlY29kZShzdHIsIGxpbWl0ID0gOTApIHtcbiAgICAgICAgaWYgKHR5cGVvZiBzdHIgIT09ICdzdHJpbmcnKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBiZWNoMzIuZGVjb2RlIGlucHV0IHNob3VsZCBiZSBzdHJpbmcsIG5vdCAke3R5cGVvZiBzdHJ9YCk7XG4gICAgICAgIGlmIChzdHIubGVuZ3RoIDwgOCB8fCAobGltaXQgIT09IGZhbHNlICYmIHN0ci5sZW5ndGggPiBsaW1pdCkpXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBXcm9uZyBzdHJpbmcgbGVuZ3RoOiAke3N0ci5sZW5ndGh9ICgke3N0cn0pLiBFeHBlY3RlZCAoOC4uJHtsaW1pdH0pYCk7XG4gICAgICAgIGNvbnN0IGxvd2VyZWQgPSBzdHIudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKHN0ciAhPT0gbG93ZXJlZCAmJiBzdHIgIT09IHN0ci50b1VwcGVyQ2FzZSgpKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBTdHJpbmcgbXVzdCBiZSBsb3dlcmNhc2Ugb3IgdXBwZXJjYXNlYCk7XG4gICAgICAgIHN0ciA9IGxvd2VyZWQ7XG4gICAgICAgIGNvbnN0IHNlcEluZGV4ID0gc3RyLmxhc3RJbmRleE9mKCcxJyk7XG4gICAgICAgIGlmIChzZXBJbmRleCA9PT0gMCB8fCBzZXBJbmRleCA9PT0gLTEpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYExldHRlciBcIjFcIiBtdXN0IGJlIHByZXNlbnQgYmV0d2VlbiBwcmVmaXggYW5kIGRhdGEgb25seWApO1xuICAgICAgICBjb25zdCBwcmVmaXggPSBzdHIuc2xpY2UoMCwgc2VwSW5kZXgpO1xuICAgICAgICBjb25zdCBfd29yZHMgPSBzdHIuc2xpY2Uoc2VwSW5kZXggKyAxKTtcbiAgICAgICAgaWYgKF93b3Jkcy5sZW5ndGggPCA2KVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhIG11c3QgYmUgYXQgbGVhc3QgNiBjaGFyYWN0ZXJzIGxvbmcnKTtcbiAgICAgICAgY29uc3Qgd29yZHMgPSBCRUNIX0FMUEhBQkVULmRlY29kZShfd29yZHMpLnNsaWNlKDAsIC02KTtcbiAgICAgICAgY29uc3Qgc3VtID0gYmVjaENoZWNrc3VtKHByZWZpeCwgd29yZHMsIEVOQ09ESU5HX0NPTlNUKTtcbiAgICAgICAgaWYgKCFfd29yZHMuZW5kc1dpdGgoc3VtKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjaGVja3N1bSBpbiAke3N0cn06IGV4cGVjdGVkIFwiJHtzdW19XCJgKTtcbiAgICAgICAgcmV0dXJuIHsgcHJlZml4LCB3b3JkcyB9O1xuICAgIH1cbiAgICBjb25zdCBkZWNvZGVVbnNhZmUgPSB1bnNhZmVXcmFwcGVyKGRlY29kZSk7XG4gICAgZnVuY3Rpb24gZGVjb2RlVG9CeXRlcyhzdHIpIHtcbiAgICAgICAgY29uc3QgeyBwcmVmaXgsIHdvcmRzIH0gPSBkZWNvZGUoc3RyLCBmYWxzZSk7XG4gICAgICAgIHJldHVybiB7IHByZWZpeCwgd29yZHMsIGJ5dGVzOiBmcm9tV29yZHMod29yZHMpIH07XG4gICAgfVxuICAgIHJldHVybiB7IGVuY29kZSwgZGVjb2RlLCBkZWNvZGVUb0J5dGVzLCBkZWNvZGVVbnNhZmUsIGZyb21Xb3JkcywgZnJvbVdvcmRzVW5zYWZlLCB0b1dvcmRzIH07XG59XG5leHBvcnRzLmJlY2gzMiA9IGdlbkJlY2gzMignYmVjaDMyJyk7XG5leHBvcnRzLmJlY2gzMm0gPSBnZW5CZWNoMzIoJ2JlY2gzMm0nKTtcbmV4cG9ydHMudXRmOCA9IHtcbiAgICBlbmNvZGU6IChkYXRhKSA9PiBuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUoZGF0YSksXG4gICAgZGVjb2RlOiAoc3RyKSA9PiBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoc3RyKSxcbn07XG5leHBvcnRzLmhleCA9IGNoYWluKHJhZGl4Mig0KSwgYWxwaGFiZXQoJzAxMjM0NTY3ODlhYmNkZWYnKSwgam9pbignJyksIG5vcm1hbGl6ZSgocykgPT4ge1xuICAgIGlmICh0eXBlb2YgcyAhPT0gJ3N0cmluZycgfHwgcy5sZW5ndGggJSAyKVxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBoZXguZGVjb2RlOiBleHBlY3RlZCBzdHJpbmcsIGdvdCAke3R5cGVvZiBzfSB3aXRoIGxlbmd0aCAke3MubGVuZ3RofWApO1xuICAgIHJldHVybiBzLnRvTG93ZXJDYXNlKCk7XG59KSk7XG5jb25zdCBDT0RFUlMgPSB7XG4gICAgdXRmODogZXhwb3J0cy51dGY4LCBoZXg6IGV4cG9ydHMuaGV4LCBiYXNlMTY6IGV4cG9ydHMuYmFzZTE2LCBiYXNlMzI6IGV4cG9ydHMuYmFzZTMyLCBiYXNlNjQ6IGV4cG9ydHMuYmFzZTY0LCBiYXNlNjR1cmw6IGV4cG9ydHMuYmFzZTY0dXJsLCBiYXNlNTg6IGV4cG9ydHMuYmFzZTU4LCBiYXNlNTh4bXI6IGV4cG9ydHMuYmFzZTU4eG1yXG59O1xuY29uc3QgY29kZXJUeXBlRXJyb3IgPSBgSW52YWxpZCBlbmNvZGluZyB0eXBlLiBBdmFpbGFibGUgdHlwZXM6ICR7T2JqZWN0LmtleXMoQ09ERVJTKS5qb2luKCcsICcpfWA7XG5jb25zdCBieXRlc1RvU3RyaW5nID0gKHR5cGUsIGJ5dGVzKSA9PiB7XG4gICAgaWYgKHR5cGVvZiB0eXBlICE9PSAnc3RyaW5nJyB8fCAhQ09ERVJTLmhhc093blByb3BlcnR5KHR5cGUpKVxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGNvZGVyVHlwZUVycm9yKTtcbiAgICBpZiAoIShieXRlcyBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpKVxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdieXRlc1RvU3RyaW5nKCkgZXhwZWN0cyBVaW50OEFycmF5Jyk7XG4gICAgcmV0dXJuIENPREVSU1t0eXBlXS5lbmNvZGUoYnl0ZXMpO1xufTtcbmV4cG9ydHMuYnl0ZXNUb1N0cmluZyA9IGJ5dGVzVG9TdHJpbmc7XG5leHBvcnRzLnN0ciA9IGV4cG9ydHMuYnl0ZXNUb1N0cmluZztcbmNvbnN0IHN0cmluZ1RvQnl0ZXMgPSAodHlwZSwgc3RyKSA9PiB7XG4gICAgaWYgKCFDT0RFUlMuaGFzT3duUHJvcGVydHkodHlwZSkpXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoY29kZXJUeXBlRXJyb3IpO1xuICAgIGlmICh0eXBlb2Ygc3RyICE9PSAnc3RyaW5nJylcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignc3RyaW5nVG9CeXRlcygpIGV4cGVjdHMgc3RyaW5nJyk7XG4gICAgcmV0dXJuIENPREVSU1t0eXBlXS5kZWNvZGUoc3RyKTtcbn07XG5leHBvcnRzLnN0cmluZ1RvQnl0ZXMgPSBzdHJpbmdUb0J5dGVzO1xuZXhwb3J0cy5ieXRlcyA9IGV4cG9ydHMuc3RyaW5nVG9CeXRlcztcbiIsIid1c2Ugc3RyaWN0Jztcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuYmVjaDMybSA9IGV4cG9ydHMuYmVjaDMyID0gdm9pZCAwO1xuY29uc3QgQUxQSEFCRVQgPSAncXB6cnk5eDhnZjJ0dmR3MHMzam41NGtoY2U2bXVhN2wnO1xuY29uc3QgQUxQSEFCRVRfTUFQID0ge307XG5mb3IgKGxldCB6ID0gMDsgeiA8IEFMUEhBQkVULmxlbmd0aDsgeisrKSB7XG4gICAgY29uc3QgeCA9IEFMUEhBQkVULmNoYXJBdCh6KTtcbiAgICBBTFBIQUJFVF9NQVBbeF0gPSB6O1xufVxuZnVuY3Rpb24gcG9seW1vZFN0ZXAocHJlKSB7XG4gICAgY29uc3QgYiA9IHByZSA+PiAyNTtcbiAgICByZXR1cm4gKCgocHJlICYgMHgxZmZmZmZmKSA8PCA1KSBeXG4gICAgICAgICgtKChiID4+IDApICYgMSkgJiAweDNiNmE1N2IyKSBeXG4gICAgICAgICgtKChiID4+IDEpICYgMSkgJiAweDI2NTA4ZTZkKSBeXG4gICAgICAgICgtKChiID4+IDIpICYgMSkgJiAweDFlYTExOWZhKSBeXG4gICAgICAgICgtKChiID4+IDMpICYgMSkgJiAweDNkNDIzM2RkKSBeXG4gICAgICAgICgtKChiID4+IDQpICYgMSkgJiAweDJhMTQ2MmIzKSk7XG59XG5mdW5jdGlvbiBwcmVmaXhDaGsocHJlZml4KSB7XG4gICAgbGV0IGNoayA9IDE7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcmVmaXgubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgY29uc3QgYyA9IHByZWZpeC5jaGFyQ29kZUF0KGkpO1xuICAgICAgICBpZiAoYyA8IDMzIHx8IGMgPiAxMjYpXG4gICAgICAgICAgICByZXR1cm4gJ0ludmFsaWQgcHJlZml4ICgnICsgcHJlZml4ICsgJyknO1xuICAgICAgICBjaGsgPSBwb2x5bW9kU3RlcChjaGspIF4gKGMgPj4gNSk7XG4gICAgfVxuICAgIGNoayA9IHBvbHltb2RTdGVwKGNoayk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcmVmaXgubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgY29uc3QgdiA9IHByZWZpeC5jaGFyQ29kZUF0KGkpO1xuICAgICAgICBjaGsgPSBwb2x5bW9kU3RlcChjaGspIF4gKHYgJiAweDFmKTtcbiAgICB9XG4gICAgcmV0dXJuIGNoaztcbn1cbmZ1bmN0aW9uIGNvbnZlcnQoZGF0YSwgaW5CaXRzLCBvdXRCaXRzLCBwYWQpIHtcbiAgICBsZXQgdmFsdWUgPSAwO1xuICAgIGxldCBiaXRzID0gMDtcbiAgICBjb25zdCBtYXhWID0gKDEgPDwgb3V0Qml0cykgLSAxO1xuICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7ICsraSkge1xuICAgICAgICB2YWx1ZSA9ICh2YWx1ZSA8PCBpbkJpdHMpIHwgZGF0YVtpXTtcbiAgICAgICAgYml0cyArPSBpbkJpdHM7XG4gICAgICAgIHdoaWxlIChiaXRzID49IG91dEJpdHMpIHtcbiAgICAgICAgICAgIGJpdHMgLT0gb3V0Qml0cztcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKCh2YWx1ZSA+PiBiaXRzKSAmIG1heFYpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChwYWQpIHtcbiAgICAgICAgaWYgKGJpdHMgPiAwKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaCgodmFsdWUgPDwgKG91dEJpdHMgLSBiaXRzKSkgJiBtYXhWKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgaWYgKGJpdHMgPj0gaW5CaXRzKVxuICAgICAgICAgICAgcmV0dXJuICdFeGNlc3MgcGFkZGluZyc7XG4gICAgICAgIGlmICgodmFsdWUgPDwgKG91dEJpdHMgLSBiaXRzKSkgJiBtYXhWKVxuICAgICAgICAgICAgcmV0dXJuICdOb24temVybyBwYWRkaW5nJztcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbmZ1bmN0aW9uIHRvV29yZHMoYnl0ZXMpIHtcbiAgICByZXR1cm4gY29udmVydChieXRlcywgOCwgNSwgdHJ1ZSk7XG59XG5mdW5jdGlvbiBmcm9tV29yZHNVbnNhZmUod29yZHMpIHtcbiAgICBjb25zdCByZXMgPSBjb252ZXJ0KHdvcmRzLCA1LCA4LCBmYWxzZSk7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkocmVzKSlcbiAgICAgICAgcmV0dXJuIHJlcztcbn1cbmZ1bmN0aW9uIGZyb21Xb3Jkcyh3b3Jkcykge1xuICAgIGNvbnN0IHJlcyA9IGNvbnZlcnQod29yZHMsIDUsIDgsIGZhbHNlKTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShyZXMpKVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIHRocm93IG5ldyBFcnJvcihyZXMpO1xufVxuZnVuY3Rpb24gZ2V0TGlicmFyeUZyb21FbmNvZGluZyhlbmNvZGluZykge1xuICAgIGxldCBFTkNPRElOR19DT05TVDtcbiAgICBpZiAoZW5jb2RpbmcgPT09ICdiZWNoMzInKSB7XG4gICAgICAgIEVOQ09ESU5HX0NPTlNUID0gMTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIEVOQ09ESU5HX0NPTlNUID0gMHgyYmM4MzBhMztcbiAgICB9XG4gICAgZnVuY3Rpb24gZW5jb2RlKHByZWZpeCwgd29yZHMsIExJTUlUKSB7XG4gICAgICAgIExJTUlUID0gTElNSVQgfHwgOTA7XG4gICAgICAgIGlmIChwcmVmaXgubGVuZ3RoICsgNyArIHdvcmRzLmxlbmd0aCA+IExJTUlUKVxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignRXhjZWVkcyBsZW5ndGggbGltaXQnKTtcbiAgICAgICAgcHJlZml4ID0gcHJlZml4LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIC8vIGRldGVybWluZSBjaGsgbW9kXG4gICAgICAgIGxldCBjaGsgPSBwcmVmaXhDaGsocHJlZml4KTtcbiAgICAgICAgaWYgKHR5cGVvZiBjaGsgPT09ICdzdHJpbmcnKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGNoayk7XG4gICAgICAgIGxldCByZXN1bHQgPSBwcmVmaXggKyAnMSc7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgd29yZHMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgIGNvbnN0IHggPSB3b3Jkc1tpXTtcbiAgICAgICAgICAgIGlmICh4ID4+IDUgIT09IDApXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb24gNS1iaXQgd29yZCcpO1xuICAgICAgICAgICAgY2hrID0gcG9seW1vZFN0ZXAoY2hrKSBeIHg7XG4gICAgICAgICAgICByZXN1bHQgKz0gQUxQSEFCRVQuY2hhckF0KHgpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNjsgKytpKSB7XG4gICAgICAgICAgICBjaGsgPSBwb2x5bW9kU3RlcChjaGspO1xuICAgICAgICB9XG4gICAgICAgIGNoayBePSBFTkNPRElOR19DT05TVDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA2OyArK2kpIHtcbiAgICAgICAgICAgIGNvbnN0IHYgPSAoY2hrID4+ICgoNSAtIGkpICogNSkpICYgMHgxZjtcbiAgICAgICAgICAgIHJlc3VsdCArPSBBTFBIQUJFVC5jaGFyQXQodik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgZnVuY3Rpb24gX19kZWNvZGUoc3RyLCBMSU1JVCkge1xuICAgICAgICBMSU1JVCA9IExJTUlUIHx8IDkwO1xuICAgICAgICBpZiAoc3RyLmxlbmd0aCA8IDgpXG4gICAgICAgICAgICByZXR1cm4gc3RyICsgJyB0b28gc2hvcnQnO1xuICAgICAgICBpZiAoc3RyLmxlbmd0aCA+IExJTUlUKVxuICAgICAgICAgICAgcmV0dXJuICdFeGNlZWRzIGxlbmd0aCBsaW1pdCc7XG4gICAgICAgIC8vIGRvbid0IGFsbG93IG1peGVkIGNhc2VcbiAgICAgICAgY29uc3QgbG93ZXJlZCA9IHN0ci50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCB1cHBlcmVkID0gc3RyLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgIGlmIChzdHIgIT09IGxvd2VyZWQgJiYgc3RyICE9PSB1cHBlcmVkKVxuICAgICAgICAgICAgcmV0dXJuICdNaXhlZC1jYXNlIHN0cmluZyAnICsgc3RyO1xuICAgICAgICBzdHIgPSBsb3dlcmVkO1xuICAgICAgICBjb25zdCBzcGxpdCA9IHN0ci5sYXN0SW5kZXhPZignMScpO1xuICAgICAgICBpZiAoc3BsaXQgPT09IC0xKVxuICAgICAgICAgICAgcmV0dXJuICdObyBzZXBhcmF0b3IgY2hhcmFjdGVyIGZvciAnICsgc3RyO1xuICAgICAgICBpZiAoc3BsaXQgPT09IDApXG4gICAgICAgICAgICByZXR1cm4gJ01pc3NpbmcgcHJlZml4IGZvciAnICsgc3RyO1xuICAgICAgICBjb25zdCBwcmVmaXggPSBzdHIuc2xpY2UoMCwgc3BsaXQpO1xuICAgICAgICBjb25zdCB3b3JkQ2hhcnMgPSBzdHIuc2xpY2Uoc3BsaXQgKyAxKTtcbiAgICAgICAgaWYgKHdvcmRDaGFycy5sZW5ndGggPCA2KVxuICAgICAgICAgICAgcmV0dXJuICdEYXRhIHRvbyBzaG9ydCc7XG4gICAgICAgIGxldCBjaGsgPSBwcmVmaXhDaGsocHJlZml4KTtcbiAgICAgICAgaWYgKHR5cGVvZiBjaGsgPT09ICdzdHJpbmcnKVxuICAgICAgICAgICAgcmV0dXJuIGNoaztcbiAgICAgICAgY29uc3Qgd29yZHMgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB3b3JkQ2hhcnMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgIGNvbnN0IGMgPSB3b3JkQ2hhcnMuY2hhckF0KGkpO1xuICAgICAgICAgICAgY29uc3QgdiA9IEFMUEhBQkVUX01BUFtjXTtcbiAgICAgICAgICAgIGlmICh2ID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgcmV0dXJuICdVbmtub3duIGNoYXJhY3RlciAnICsgYztcbiAgICAgICAgICAgIGNoayA9IHBvbHltb2RTdGVwKGNoaykgXiB2O1xuICAgICAgICAgICAgLy8gbm90IGluIHRoZSBjaGVja3N1bT9cbiAgICAgICAgICAgIGlmIChpICsgNiA+PSB3b3JkQ2hhcnMubGVuZ3RoKVxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgd29yZHMucHVzaCh2KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hrICE9PSBFTkNPRElOR19DT05TVClcbiAgICAgICAgICAgIHJldHVybiAnSW52YWxpZCBjaGVja3N1bSBmb3IgJyArIHN0cjtcbiAgICAgICAgcmV0dXJuIHsgcHJlZml4LCB3b3JkcyB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZWNvZGVVbnNhZmUoc3RyLCBMSU1JVCkge1xuICAgICAgICBjb25zdCByZXMgPSBfX2RlY29kZShzdHIsIExJTUlUKTtcbiAgICAgICAgaWYgKHR5cGVvZiByZXMgPT09ICdvYmplY3QnKVxuICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gICAgZnVuY3Rpb24gZGVjb2RlKHN0ciwgTElNSVQpIHtcbiAgICAgICAgY29uc3QgcmVzID0gX19kZWNvZGUoc3RyLCBMSU1JVCk7XG4gICAgICAgIGlmICh0eXBlb2YgcmVzID09PSAnb2JqZWN0JylcbiAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihyZXMpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBkZWNvZGVVbnNhZmUsXG4gICAgICAgIGRlY29kZSxcbiAgICAgICAgZW5jb2RlLFxuICAgICAgICB0b1dvcmRzLFxuICAgICAgICBmcm9tV29yZHNVbnNhZmUsXG4gICAgICAgIGZyb21Xb3JkcyxcbiAgICB9O1xufVxuZXhwb3J0cy5iZWNoMzIgPSBnZXRMaWJyYXJ5RnJvbUVuY29kaW5nKCdiZWNoMzInKTtcbmV4cG9ydHMuYmVjaDMybSA9IGdldExpYnJhcnlGcm9tRW5jb2RpbmcoJ2JlY2gzMm0nKTtcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIGAqLDphZnRlciw6YmVmb3Jley0tdHctYm9yZGVyLXNwYWNpbmcteDowOy0tdHctYm9yZGVyLXNwYWNpbmcteTowOy0tdHctdHJhbnNsYXRlLXg6MDstLXR3LXRyYW5zbGF0ZS15OjA7LS10dy1yb3RhdGU6MDstLXR3LXNrZXcteDowOy0tdHctc2tldy15OjA7LS10dy1zY2FsZS14OjE7LS10dy1zY2FsZS15OjE7LS10dy1wYW4teDogOy0tdHctcGFuLXk6IDstLXR3LXBpbmNoLXpvb206IDstLXR3LXNjcm9sbC1zbmFwLXN0cmljdG5lc3M6cHJveGltaXR5Oy0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbjogOy0tdHctZ3JhZGllbnQtdmlhLXBvc2l0aW9uOiA7LS10dy1ncmFkaWVudC10by1wb3NpdGlvbjogOy0tdHctb3JkaW5hbDogOy0tdHctc2xhc2hlZC16ZXJvOiA7LS10dy1udW1lcmljLWZpZ3VyZTogOy0tdHctbnVtZXJpYy1zcGFjaW5nOiA7LS10dy1udW1lcmljLWZyYWN0aW9uOiA7LS10dy1yaW5nLWluc2V0OiA7LS10dy1yaW5nLW9mZnNldC13aWR0aDowcHg7LS10dy1yaW5nLW9mZnNldC1jb2xvcjojZmZmOy0tdHctcmluZy1jb2xvcjpyZ2JhKDU5LDEzMCwyNDYsLjUpOy0tdHctcmluZy1vZmZzZXQtc2hhZG93OjAgMCB0cmFuc3BhcmVudDstLXR3LXJpbmctc2hhZG93OjAgMCB0cmFuc3BhcmVudDstLXR3LXNoYWRvdzowIDAgdHJhbnNwYXJlbnQ7LS10dy1zaGFkb3ctY29sb3JlZDowIDAgdHJhbnNwYXJlbnQ7LS10dy1ibHVyOiA7LS10dy1icmlnaHRuZXNzOiA7LS10dy1jb250cmFzdDogOy0tdHctZ3JheXNjYWxlOiA7LS10dy1odWUtcm90YXRlOiA7LS10dy1pbnZlcnQ6IDstLXR3LXNhdHVyYXRlOiA7LS10dy1zZXBpYTogOy0tdHctZHJvcC1zaGFkb3c6IDstLXR3LWJhY2tkcm9wLWJsdXI6IDstLXR3LWJhY2tkcm9wLWJyaWdodG5lc3M6IDstLXR3LWJhY2tkcm9wLWNvbnRyYXN0OiA7LS10dy1iYWNrZHJvcC1ncmF5c2NhbGU6IDstLXR3LWJhY2tkcm9wLWh1ZS1yb3RhdGU6IDstLXR3LWJhY2tkcm9wLWludmVydDogOy0tdHctYmFja2Ryb3Atb3BhY2l0eTogOy0tdHctYmFja2Ryb3Atc2F0dXJhdGU6IDstLXR3LWJhY2tkcm9wLXNlcGlhOiB9OjpiYWNrZHJvcHstLXR3LWJvcmRlci1zcGFjaW5nLXg6MDstLXR3LWJvcmRlci1zcGFjaW5nLXk6MDstLXR3LXRyYW5zbGF0ZS14OjA7LS10dy10cmFuc2xhdGUteTowOy0tdHctcm90YXRlOjA7LS10dy1za2V3LXg6MDstLXR3LXNrZXcteTowOy0tdHctc2NhbGUteDoxOy0tdHctc2NhbGUteToxOy0tdHctcGFuLXg6IDstLXR3LXBhbi15OiA7LS10dy1waW5jaC16b29tOiA7LS10dy1zY3JvbGwtc25hcC1zdHJpY3RuZXNzOnByb3hpbWl0eTstLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb246IDstLXR3LWdyYWRpZW50LXZpYS1wb3NpdGlvbjogOy0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb246IDstLXR3LW9yZGluYWw6IDstLXR3LXNsYXNoZWQtemVybzogOy0tdHctbnVtZXJpYy1maWd1cmU6IDstLXR3LW51bWVyaWMtc3BhY2luZzogOy0tdHctbnVtZXJpYy1mcmFjdGlvbjogOy0tdHctcmluZy1pbnNldDogOy0tdHctcmluZy1vZmZzZXQtd2lkdGg6MHB4Oy0tdHctcmluZy1vZmZzZXQtY29sb3I6I2ZmZjstLXR3LXJpbmctY29sb3I6cmdiYSg1OSwxMzAsMjQ2LC41KTstLXR3LXJpbmctb2Zmc2V0LXNoYWRvdzowIDAgdHJhbnNwYXJlbnQ7LS10dy1yaW5nLXNoYWRvdzowIDAgdHJhbnNwYXJlbnQ7LS10dy1zaGFkb3c6MCAwIHRyYW5zcGFyZW50Oy0tdHctc2hhZG93LWNvbG9yZWQ6MCAwIHRyYW5zcGFyZW50Oy0tdHctYmx1cjogOy0tdHctYnJpZ2h0bmVzczogOy0tdHctY29udHJhc3Q6IDstLXR3LWdyYXlzY2FsZTogOy0tdHctaHVlLXJvdGF0ZTogOy0tdHctaW52ZXJ0OiA7LS10dy1zYXR1cmF0ZTogOy0tdHctc2VwaWE6IDstLXR3LWRyb3Atc2hhZG93OiA7LS10dy1iYWNrZHJvcC1ibHVyOiA7LS10dy1iYWNrZHJvcC1icmlnaHRuZXNzOiA7LS10dy1iYWNrZHJvcC1jb250cmFzdDogOy0tdHctYmFja2Ryb3AtZ3JheXNjYWxlOiA7LS10dy1iYWNrZHJvcC1odWUtcm90YXRlOiA7LS10dy1iYWNrZHJvcC1pbnZlcnQ6IDstLXR3LWJhY2tkcm9wLW9wYWNpdHk6IDstLXR3LWJhY2tkcm9wLXNhdHVyYXRlOiA7LS10dy1iYWNrZHJvcC1zZXBpYTogfS5uZS1yZWxhdGl2ZXtwb3NpdGlvbjpyZWxhdGl2ZX0ubmUtbS0we21hcmdpbjowfS5uZS1tcy1cXFxcWy0yNXB4XFxcXF17bWFyZ2luLWxlZnQ6LTI1cHh9Lm5lLW1zLVxcXFxbMjVweFxcXFxde21hcmdpbi1sZWZ0OjI1cHh9Lm5lLW10LTh7bWFyZ2luLXRvcDoycmVtfS5uZS1ibG9ja3tkaXNwbGF5OmJsb2NrfS5uZS1pbmxpbmUtYmxvY2t7ZGlzcGxheTppbmxpbmUtYmxvY2t9Lm5lLWZsZXh7ZGlzcGxheTpmbGV4fS5uZS1oaWRkZW57ZGlzcGxheTpub25lfS5uZS1oLTEye2hlaWdodDozcmVtfS5uZS1oLVxcXFxbNDBweFxcXFxde2hlaWdodDo0MHB4fS5uZS13LTEye3dpZHRoOjNyZW19Lm5lLXctNXt3aWR0aDoxLjI1cmVtfS5uZS13LVxcXFxbNDBweFxcXFxde3dpZHRoOjQwcHh9Lm5lLXctZnVsbHt3aWR0aDoxMDAlfS5uZS1jdXJzb3ItcG9pbnRlcntjdXJzb3I6cG9pbnRlcn0ubmUtbGlzdC1ub25le2xpc3Qtc3R5bGUtdHlwZTpub25lfS5uZS1mbGV4LXJvd3tmbGV4LWRpcmVjdGlvbjpyb3d9Lm5lLWZsZXgtY29se2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0ubmUtZmxleC13cmFwe2ZsZXgtd3JhcDp3cmFwfS5uZS1pdGVtcy1jZW50ZXJ7YWxpZ24taXRlbXM6Y2VudGVyfS5uZS1qdXN0aWZ5LWJldHdlZW57anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59Lm5lLWdhcC0xe2dhcDouMjVyZW19Lm5lLWdhcC0ye2dhcDouNXJlbX0ubmUtZ2FwLTR7Z2FwOjFyZW19Lm5lLWdhcC02e2dhcDoxLjVyZW19Lm5lLWJyZWFrLXdvcmRze3dvcmQtd3JhcDpicmVhay13b3JkfS5uZS1yb3VuZGVkLWZ1bGx7Ym9yZGVyLXJhZGl1czo5OTk5cHh9Lm5lLXJvdW5kZWQtbGd7Ym9yZGVyLXJhZGl1czouNXJlbX0ubmUtYmctXFxcXFtcXFxcI2ZjZmNmY1xcXFxdey0tdHctYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6I2ZjZmNmYztiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjUyLDI1MiwyNTIsdmFyKC0tdHctYmctb3BhY2l0eSkpfS5uZS1vYmplY3QtY292ZXJ7LW8tb2JqZWN0LWZpdDpjb3ZlcjtvYmplY3QtZml0OmNvdmVyfS5uZS1wLTB7cGFkZGluZzowfS5uZS1weC00e3BhZGRpbmctbGVmdDoxcmVtO3BhZGRpbmctcmlnaHQ6MXJlbX0ubmUtcHktNXtwYWRkaW5nLWJvdHRvbToxLjI1cmVtO3BhZGRpbmctdG9wOjEuMjVyZW19Lm5lLXBiLTN7cGFkZGluZy1ib3R0b206Ljc1cmVtfS5uZS1mb250LXNhbnN7Zm9udC1mYW1pbHk6dWktc2Fucy1zZXJpZixzeXN0ZW0tdWksLWFwcGxlLXN5c3RlbSxTZWdvZSBVSSxSb2JvdG8sVWJ1bnR1LENhbnRhcmVsbCxOb3RvIFNhbnMsc2Fucy1zZXJpZixCbGlua01hY1N5c3RlbUZvbnQsSGVsdmV0aWNhIE5ldWUsQXJpYWwsQXBwbGUgQ29sb3IgRW1vamksU2Vnb2UgVUkgRW1vamksU2Vnb2UgVUkgU3ltYm9sLE5vdG8gQ29sb3IgRW1vaml9Lm5lLXRleHQtbGd7Zm9udC1zaXplOjEuMTI1cmVtO2xpbmUtaGVpZ2h0OjEuNzVyZW19Lm5lLXRleHQtc217Zm9udC1zaXplOi44NzVyZW07bGluZS1oZWlnaHQ6MS4yNXJlbX0ubmUtZm9udC1ib2xke2ZvbnQtd2VpZ2h0OjcwMH0ubmUtdGV4dC1ibGFja3stLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOiMwMDA7Y29sb3I6cmdiYSgwLDAsMCx2YXIoLS10dy10ZXh0LW9wYWNpdHkpKX0ubmUtdGV4dC1ncmF5LTkwMHstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOiMxMTE4Mjc7Y29sb3I6cmdiYSgxNywyNCwzOSx2YXIoLS10dy10ZXh0LW9wYWNpdHkpKX0ubmUtdGV4dC1yZWQtODAwey0tdHctdGV4dC1vcGFjaXR5OjE7Y29sb3I6Izk5MWIxYjtjb2xvcjpyZ2JhKDE1MywyNywyNyx2YXIoLS10dy10ZXh0LW9wYWNpdHkpKX0ubmUtbm8tdW5kZXJsaW5le3RleHQtZGVjb3JhdGlvbi1saW5lOm5vbmV9Lm5lLW9wYWNpdHktMzB7b3BhY2l0eTouM30ubm9zdHJFbWJlZENhcmR7LS10dy1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjojZmNmY2ZjO2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTIsMjUyLDI1Mix2YXIoLS10dy1iZy1vcGFjaXR5KSk7Ym9yZGVyLXJhZGl1czouNXJlbTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoycmVtO3BhZGRpbmc6MS4yNXJlbSAxcmVtIC43NXJlbX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7Lm5vc3RyRW1iZWRDYXJke21heC13aWR0aDo2MDBweH19Lm5vc3RyRW1iZWRDYXJke2JvcmRlcjoxcHggc29saWQgI2RkZDtmb250LWZhbWlseTp1aS1zYW5zLXNlcmlmLHN5c3RlbS11aSwtYXBwbGUtc3lzdGVtLFNlZ29lIFVJLFJvYm90byxVYnVudHUsQ2FudGFyZWxsLE5vdG8gU2FucyxzYW5zLXNlcmlmLEJsaW5rTWFjU3lzdGVtRm9udCxIZWx2ZXRpY2EgTmV1ZSxBcmlhbCxBcHBsZSBDb2xvciBFbW9qaSxTZWdvZSBVSSBFbW9qaSxTZWdvZSBVSSBTeW1ib2wsTm90byBDb2xvciBFbW9qaTt0ZXh0LWFsaWduOmxlZnR9LmNhcmRDb250ZW50e3dvcmQtd3JhcDpicmVhay13b3JkO2ZvbnQtc2l6ZToxLjEyNXJlbTtsaW5lLWhlaWdodDoxLjc1cmVtO3doaXRlLXNwYWNlOnByZS1saW5lfS5jYXJkQ29udGVudE1lZGlhe3RleHQtYWxpZ246Y2VudGVyfS5jYXJkQ29udGVudE1lZGlhPmlmcmFtZSwuY2FyZENvbnRlbnRNZWRpYT5pbWcsLmNhcmRDb250ZW50TWVkaWE+dmlkZW97Ym9yZGVyLXJhZGl1czoxNXB4O3dpZHRoOjUwJX0uY2FyZFByb2ZpbGV7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7Z2FwOjFyZW19LnByb2ZpbGVJbWd7Ym9yZGVyLXJhZGl1czo5OTk5cHg7aGVpZ2h0OjNyZW07d2lkdGg6M3JlbX0uZm9sbG93ZWRQcm9kaWxlSW1ne2JvcmRlci1yYWRpdXM6OTk5OXB4O2hlaWdodDo0MHB4O21hcmdpbi1sZWZ0Oi0yNXB4Oy1vLW9iamVjdC1maXQ6Y292ZXI7b2JqZWN0LWZpdDpjb3Zlcjtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDo0MHB4fS5mb2xsb3dlZFByb2RpbGVJbWc6aG92ZXJ7ei1pbmRleDo5OTl9LnByb2ZpbGVEZXRhaWxze2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LnByb2ZpbGVOYW1le2ZvbnQtc2l6ZToxLjEyNXJlbTtmb250LXdlaWdodDo3MDA7bGluZS1oZWlnaHQ6MS43NXJlbX0ucHJvZmlsZU5hbWUgYXstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOiMxMTE4Mjc7Y29sb3I6cmdiYSgxNywyNCwzOSx2YXIoLS10dy10ZXh0LW9wYWNpdHkpKTt0ZXh0LWRlY29yYXRpb24tbGluZTpub25lfS5wcm9maWxlTmFtZSBhOmhvdmVyey0tdHctdGV4dC1vcGFjaXR5OjE7Y29sb3I6IzRiNTU2Mztjb2xvcjpyZ2JhKDc1LDg1LDk5LHZhcigtLXR3LXRleHQtb3BhY2l0eSkpfS5wcm9maWxlUGtleXthbGlnbi1pdGVtczpjZW50ZXI7ZmxleC1kaXJlY3Rpb246cm93fS5jYXJkTWV0YSwucHJvZmlsZVBrZXl7ZGlzcGxheTpmbGV4O2dhcDouMjVyZW19LmNhcmRNZXRhe2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmNhcmRNZXRhe2dhcDouNXJlbX19aHJ7Ym9yZGVyLWNvbG9yOiNkZGQ7bWFyZ2luOi4yNXJlbTtvcGFjaXR5Oi4zO3dpZHRoOjEwMCV9LmNhcmRJbnRlcmFjdGlvbnN7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmNhcmRJbnRlcmFjdGlvbnN7Z2FwOjIuNXJlbTtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH19LmludGVyYWN0aW9uQ29udGFpbmVye2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2dhcDouNXJlbX0uY29weUljb24sLmhlYXJ0SWNvbiwubGlua0ljb24sLnJlcGx5SWNvbiwucmVwb3N0SWNvbntkaXNwbGF5OmJsb2NrO2hlaWdodDoxLjI1cmVtO3dpZHRoOjEuMjVyZW19LmNvcHlJY29uLC5oZWFydEljb24sLmxpbmtDb3B5QnRuLC5saW5rSWNvbiwubGlua0xpbmssLnJlcGx5SWNvbiwucmVwb3N0SWNvbnstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOiMxMTE4Mjc7Y29sb3I6cmdiYSgxNywyNCwzOSx2YXIoLS10dy10ZXh0LW9wYWNpdHkpKX0ubGlua0NvcHlCdG4sLmxpbmtMaW5re2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjowO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7Z2FwOi41cmVtO3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtZGVjb3JhdGlvbi1saW5lOm5vbmV9LmxpbmtDb3B5QnRuOmhvdmVyLC5saW5rQ29weUJ0bjpob3ZlciAuY29weUljb24sLmxpbmtMaW5rOmhvdmVyey0tdHctdGV4dC1vcGFjaXR5OjE7Y29sb3I6IzRiNTU2Mztjb2xvcjpyZ2JhKDc1LDg1LDk5LHZhcigtLXR3LXRleHQtb3BhY2l0eSkpfS5saW5rQ29weUJ0bi5ncmVlbiwubGlua0NvcHlCdG4uZ3JlZW4gLmNvcHlJY29uey0tdHctdGV4dC1vcGFjaXR5OjE7Y29sb3I6IzE2YTM0YTtjb2xvcjpyZ2JhKDIyLDE2Myw3NCx2YXIoLS10dy10ZXh0LW9wYWNpdHkpKX0uZGlzcGxheVRleHR7ZGlzcGxheTpub25lfUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsuZGlzcGxheVRleHR7ZGlzcGxheTpmbGV4O2ZvbnQtc2l6ZTouODc1cmVtO2xpbmUtaGVpZ2h0OjEuMjVyZW07dmlzaWJpbGl0eTp2aXNpYmxlfX0uY29weVRleHR7ZGlzcGxheTpub25lfS5ub3N0cmljaExpbmt7ZGlzcGxheTpmbGV4O2ZsZXgtZ3JvdzoxO2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uY2FyZFRpdGxle21hcmdpbjowfS5jYXJkRGVzY3JpcHRpb257bWFyZ2luLXRvcDowfS5jYXJkTGlzdHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoyMHB4O21hcmdpbi10b3A6MTBweH0ucHJvZmlsZVdpdGhvdXRJbWd7YmFja2dyb3VuZC1jb2xvcjojZTllOWU5O2JvcmRlci1yYWRpdXM6NTAlO2hlaWdodDo1MHB4O3dpZHRoOjUwcHh9LmRpZmZQcm9maWxlc3tmb250LXNpemU6MS4ycmVtO2ZvbnQtd2VpZ2h0OjcwMH0uaG92ZXJcXFxcOm5lLXotXFxcXFs5OTlcXFxcXTpob3Zlcnt6LWluZGV4Ojk5OX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7Lm1kXFxcXDpuZS12aXNpYmxle3Zpc2liaWxpdHk6dmlzaWJsZX0ubWRcXFxcOm5lLWZsZXh7ZGlzcGxheTpmbGV4fS5tZFxcXFw6bmUtbWF4LXctXFxcXFs2MDBweFxcXFxde21heC13aWR0aDo2MDBweH0ubWRcXFxcOm5lLWp1c3RpZnktc3RhcnR7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9fWAsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vc3JjL2NvbXBvbmVudHMvc3R5bGUuY3NzXCIsXCI8bm8gc291cmNlPlwiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQSxpQkFBQSx1QkFBYyxDQUFkLHVCQUFjLENBQWQsa0JBQWMsQ0FBZCxrQkFBYyxDQUFkLGFBQWMsQ0FBZCxhQUFjLENBQWQsYUFBYyxDQUFkLGNBQWMsQ0FBZCxjQUFjLENBQWQsWUFBYyxDQUFkLFlBQWMsQ0FBZCxpQkFBYyxDQUFkLHFDQUFjLENBQWQsNkJBQWMsQ0FBZCw0QkFBYyxDQUFkLDJCQUFjLENBQWQsY0FBYyxDQUFkLG1CQUFjLENBQWQscUJBQWMsQ0FBZCxzQkFBYyxDQUFkLHVCQUFjLENBQWQsaUJBQWMsQ0FBZCwwQkFBYyxDQUFkLDJCQUFjLENBQWQsbUNBQWMsQ0FBZCx1Q0FBYyxDQUFkLGdDQUFjLENBQWQsMkJBQWMsQ0FBZCxtQ0FBYyxDQUFkLFdBQWMsQ0FBZCxpQkFBYyxDQUFkLGVBQWMsQ0FBZCxnQkFBYyxDQUFkLGlCQUFjLENBQWQsYUFBYyxDQUFkLGVBQWMsQ0FBZCxZQUFjLENBQWQsa0JBQWMsQ0FBZCxvQkFBYyxDQUFkLDBCQUFjLENBQWQsd0JBQWMsQ0FBZCx5QkFBYyxDQUFkLDBCQUFjLENBQWQsc0JBQWMsQ0FBZCx1QkFBYyxDQUFkLHdCQUFjLENBQWQscUJBQWMsQ0FBZCxXQUFBLHVCQUFjLENBQWQsdUJBQWMsQ0FBZCxrQkFBYyxDQUFkLGtCQUFjLENBQWQsYUFBYyxDQUFkLGFBQWMsQ0FBZCxhQUFjLENBQWQsY0FBYyxDQUFkLGNBQWMsQ0FBZCxZQUFjLENBQWQsWUFBYyxDQUFkLGlCQUFjLENBQWQscUNBQWMsQ0FBZCw2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LENBQ1osd0JBRmMsQ0FLaEIsV0FDRSxRQUNGLENBRUEsaUJBQ0UsWUFDRixDQUVBLFVBQ0UsWUFBYSxDQUNiLHFCQUFzQixDQUN0QixRQUFTLENBQ1QsZUFDRixDQUVBLG1CQUdFLHdCQUF5QixDQUN6QixpQkFBa0IsQ0FGbEIsV0FBWSxDQURaLFVBSUYsQ0FFQSxjQUVFLGdCQUFpQixDQURqQixlQUVGLENBMUlBLDJCQUFBLFlDQUEsQURBQSx5QkFBQSxnQkFBQSxtQkNBQSxBREFBLGFBQUEsYUNBQSxBREFBLHdCQUFBLGdCQ0FBLEFEQUEsc0JBQUEsMkJDQUEsQ0FBQVwiLFwic291cmNlc0NvbnRlbnRcIjpbXCJAdGFpbHdpbmQgYmFzZTtcXG5AdGFpbHdpbmQgY29tcG9uZW50cztcXG5AdGFpbHdpbmQgdXRpbGl0aWVzO1xcblxcbi5ub3N0ckVtYmVkQ2FyZCB7XFxuICBAYXBwbHkgbmUtcHgtNCBuZS1weS01IG5lLXBiLTMgbmUtYmctWyNmY2ZjZmNdIG5lLXJvdW5kZWQtbGcgbWQ6bmUtbWF4LXctWzYwMHB4XSBuZS1mbGV4IG5lLWZsZXgtY29sIG5lLWdhcC04O1xcbiAgQGFwcGx5IG5lLWZvbnQtc2FucyBuZS10ZXh0LWxlZnQ7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xcbn1cXG5cXG4uY2FyZENvbnRlbnQge1xcbiAgQGFwcGx5IG5lLXRleHQtbGcgbmUtYnJlYWstd29yZHMgbmUtd2hpdGVzcGFjZS1wcmUtbGluZTtcXG59XFxuXFxuLmNhcmRDb250ZW50TWVkaWEge1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbn1cXG5cXG4uY2FyZENvbnRlbnRNZWRpYSA+IHZpZGVvLFxcbi5jYXJkQ29udGVudE1lZGlhID4gaW1nLFxcbi5jYXJkQ29udGVudE1lZGlhID4gaWZyYW1lIHtcXG4gIGJvcmRlci1yYWRpdXM6IDE1cHg7XFxuICB3aWR0aDogNTAlO1xcbn1cXG5cXG4uY2FyZFByb2ZpbGUge1xcbiAgQGFwcGx5IG5lLWZsZXggbmUtZmxleC1yb3cgbmUtZ2FwLTQgbmUtaXRlbXMtY2VudGVyO1xcbn1cXG5cXG4ucHJvZmlsZUltZyB7XFxuICBAYXBwbHkgbmUtdy0xMiBuZS1oLTEyIG5lLXJvdW5kZWQtZnVsbDtcXG59XFxuXFxuLmZvbGxvd2VkUHJvZGlsZUltZyB7XFxuICBAYXBwbHkgbmUtdy1bNDBweF0gbmUtaC1bNDBweF0gbmUtcm91bmRlZC1mdWxsIG5lLW1zLVstMjVweF0gbmUtb2JqZWN0LWNvdmVyIGhvdmVyOm5lLXotWzk5OV0gbmUtcmVsYXRpdmUgO1xcbn1cXG5cXG4ucHJvZmlsZURldGFpbHMge1xcbiAgQGFwcGx5IG5lLWZsZXggbmUtZmxleC1jb2w7XFxufVxcblxcbi5wcm9maWxlTmFtZSB7XFxuICBAYXBwbHkgbmUtdGV4dC1sZyBuZS1mb250LWJvbGQ7XFxufVxcblxcbi5wcm9maWxlTmFtZSBhIHtcXG4gIEBhcHBseSBuZS1uby11bmRlcmxpbmUgbmUtdGV4dC1ncmF5LTkwMDtcXG59XFxuLnByb2ZpbGVOYW1lIGE6aG92ZXIge1xcbiAgQGFwcGx5IG5lLXRleHQtZ3JheS02MDA7XFxufVxcblxcbi5wcm9maWxlUGtleSB7XFxuICBAYXBwbHkgbmUtZmxleCBuZS1mbGV4LXJvdyBuZS1nYXAtMSBuZS1pdGVtcy1jZW50ZXI7XFxufVxcblxcbi5jYXJkTWV0YSB7XFxuICBAYXBwbHkgbmUtZmxleCBuZS1mbGV4LWNvbCBuZS1nYXAtMSBtZDpuZS1nYXAtMjtcXG59XFxuXFxuaHIge1xcbiAgQGFwcGx5IG5lLXctZnVsbCBuZS1vcGFjaXR5LTMwIG5lLW0tMTtcXG4gIGJvcmRlci1jb2xvcjogI2RkZDtcXG59XFxuXFxuLmNhcmRJbnRlcmFjdGlvbnMge1xcbiAgQGFwcGx5IG5lLWZsZXggbmUtZmxleC1yb3cgbmUtanVzdGlmeS1iZXR3ZWVuIG1kOm5lLWp1c3RpZnktc3RhcnQgbWQ6bmUtZ2FwLTEwO1xcbn1cXG5cXG4uaW50ZXJhY3Rpb25Db250YWluZXIge1xcbiAgQGFwcGx5IG5lLWZsZXggbmUtZmxleC1yb3cgbmUtaXRlbXMtY2VudGVyIG5lLWdhcC0yO1xcbn1cXG5cXG4ucmVwbHlJY29uLFxcbi5yZXBvc3RJY29uLFxcbi5oZWFydEljb24sXFxuLmxpbmtJY29uLFxcbi5jb3B5SWNvbiB7XFxuICBAYXBwbHkgbmUtdGV4dC1ncmF5LTkwMCBuZS1ibG9jayBuZS13LTUgbmUtaC01O1xcbn1cXG5cXG4ubGlua0NvcHlCdG4sXFxuLmxpbmtMaW5rIHtcXG4gIEBhcHBseSBuZS10ZXh0LWdyYXktOTAwIG5lLW5vLXVuZGVybGluZSBuZS1mbGV4IG5lLWZsZXgtcm93IG5lLWl0ZW1zLWNlbnRlciBuZS1nYXAtMiBuZS1jdXJzb3ItcG9pbnRlciBuZS1yZWxhdGl2ZTtcXG4gIGJvcmRlcjogMDtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG5cXG4ubGlua0NvcHlCdG46aG92ZXIsXFxuLmxpbmtMaW5rOmhvdmVyLFxcbi5saW5rQ29weUJ0bjpob3ZlciAuY29weUljb24ge1xcbiAgQGFwcGx5IG5lLXRleHQtZ3JheS02MDA7XFxufVxcblxcbi5saW5rQ29weUJ0bi5ncmVlbixcXG4ubGlua0NvcHlCdG4uZ3JlZW4gLmNvcHlJY29uIHtcXG4gIEBhcHBseSBuZS10ZXh0LWdyZWVuLTYwMDtcXG59XFxuXFxuLmRpc3BsYXlUZXh0IHtcXG4gIEBhcHBseSBuZS1oaWRkZW4gbWQ6bmUtZmxleCBtZDpuZS12aXNpYmxlIG1kOm5lLXRleHQtc207XFxufVxcblxcbi5jb3B5VGV4dCB7XFxuICBAYXBwbHkgbmUtaGlkZGVuO1xcbn1cXG5cXG4ubm9zdHJpY2hMaW5rIHtcXG4gIEBhcHBseSBuZS1mbGV4O1xcbiAgZmxleC1ncm93OiAxO1xcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcXG59XFxuXFxuLmNhcmRUaXRsZSB7XFxuICBtYXJnaW46IDA7XFxufVxcblxcbi5jYXJkRGVzY3JpcHRpb24ge1xcbiAgbWFyZ2luLXRvcDogMDtcXG59XFxuXFxuLmNhcmRMaXN0IHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgZ2FwOiAyMHB4O1xcbiAgbWFyZ2luLXRvcDogMTBweDtcXG59XFxuXFxuLnByb2ZpbGVXaXRob3V0SW1nIHtcXG4gIHdpZHRoOiA1MHB4O1xcbiAgaGVpZ2h0OiA1MHB4O1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U5ZTllOTtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG59XFxuXFxuLmRpZmZQcm9maWxlcyB7XFxuICBmb250LXdlaWdodDogYm9sZDtcXG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xcbn1cXG5cIixudWxsXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCJcInVzZSBzdHJpY3RcIjtcblxuLypcbiAgTUlUIExpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcbiAgQXV0aG9yIFRvYmlhcyBLb3BwZXJzIEBzb2tyYVxuKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcpIHtcbiAgdmFyIGxpc3QgPSBbXTtcblxuICAvLyByZXR1cm4gdGhlIGxpc3Qgb2YgbW9kdWxlcyBhcyBjc3Mgc3RyaW5nXG4gIGxpc3QudG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHZhciBjb250ZW50ID0gXCJcIjtcbiAgICAgIHZhciBuZWVkTGF5ZXIgPSB0eXBlb2YgaXRlbVs1XSAhPT0gXCJ1bmRlZmluZWRcIjtcbiAgICAgIGlmIChpdGVtWzRdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChpdGVtWzRdLCBcIikge1wiKTtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVtWzJdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAbWVkaWEgXCIuY29uY2F0KGl0ZW1bMl0sIFwiIHtcIik7XG4gICAgICB9XG4gICAgICBpZiAobmVlZExheWVyKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAbGF5ZXJcIi5jb25jYXQoaXRlbVs1XS5sZW5ndGggPiAwID8gXCIgXCIuY29uY2F0KGl0ZW1bNV0pIDogXCJcIiwgXCIge1wiKTtcbiAgICAgIH1cbiAgICAgIGNvbnRlbnQgKz0gY3NzV2l0aE1hcHBpbmdUb1N0cmluZyhpdGVtKTtcbiAgICAgIGlmIChuZWVkTGF5ZXIpIHtcbiAgICAgICAgY29udGVudCArPSBcIn1cIjtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVtWzJdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJ9XCI7XG4gICAgICB9XG4gICAgICBpZiAoaXRlbVs0XSkge1xuICAgICAgICBjb250ZW50ICs9IFwifVwiO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgfSkuam9pbihcIlwiKTtcbiAgfTtcblxuICAvLyBpbXBvcnQgYSBsaXN0IG9mIG1vZHVsZXMgaW50byB0aGUgbGlzdFxuICBsaXN0LmkgPSBmdW5jdGlvbiBpKG1vZHVsZXMsIG1lZGlhLCBkZWR1cGUsIHN1cHBvcnRzLCBsYXllcikge1xuICAgIGlmICh0eXBlb2YgbW9kdWxlcyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgbW9kdWxlcyA9IFtbbnVsbCwgbW9kdWxlcywgdW5kZWZpbmVkXV07XG4gICAgfVxuICAgIHZhciBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzID0ge307XG4gICAgaWYgKGRlZHVwZSkge1xuICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCB0aGlzLmxlbmd0aDsgaysrKSB7XG4gICAgICAgIHZhciBpZCA9IHRoaXNba11bMF07XG4gICAgICAgIGlmIChpZCAhPSBudWxsKSB7XG4gICAgICAgICAgYWxyZWFkeUltcG9ydGVkTW9kdWxlc1tpZF0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAodmFyIF9rID0gMDsgX2sgPCBtb2R1bGVzLmxlbmd0aDsgX2srKykge1xuICAgICAgdmFyIGl0ZW0gPSBbXS5jb25jYXQobW9kdWxlc1tfa10pO1xuICAgICAgaWYgKGRlZHVwZSAmJiBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzW2l0ZW1bMF1dKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBsYXllciAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICBpZiAodHlwZW9mIGl0ZW1bNV0gPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICBpdGVtWzVdID0gbGF5ZXI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQGxheWVyXCIuY29uY2F0KGl0ZW1bNV0ubGVuZ3RoID4gMCA/IFwiIFwiLmNvbmNhdChpdGVtWzVdKSA6IFwiXCIsIFwiIHtcIikuY29uY2F0KGl0ZW1bMV0sIFwifVwiKTtcbiAgICAgICAgICBpdGVtWzVdID0gbGF5ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChtZWRpYSkge1xuICAgICAgICBpZiAoIWl0ZW1bMl0pIHtcbiAgICAgICAgICBpdGVtWzJdID0gbWVkaWE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQG1lZGlhIFwiLmNvbmNhdChpdGVtWzJdLCBcIiB7XCIpLmNvbmNhdChpdGVtWzFdLCBcIn1cIik7XG4gICAgICAgICAgaXRlbVsyXSA9IG1lZGlhO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc3VwcG9ydHMpIHtcbiAgICAgICAgaWYgKCFpdGVtWzRdKSB7XG4gICAgICAgICAgaXRlbVs0XSA9IFwiXCIuY29uY2F0KHN1cHBvcnRzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpdGVtWzFdID0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChpdGVtWzRdLCBcIikge1wiKS5jb25jYXQoaXRlbVsxXSwgXCJ9XCIpO1xuICAgICAgICAgIGl0ZW1bNF0gPSBzdXBwb3J0cztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGlzdC5wdXNoKGl0ZW0pO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIGxpc3Q7XG59OyIsIlwidXNlIHN0cmljdFwiO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdGVtKSB7XG4gIHZhciBjb250ZW50ID0gaXRlbVsxXTtcbiAgdmFyIGNzc01hcHBpbmcgPSBpdGVtWzNdO1xuICBpZiAoIWNzc01hcHBpbmcpIHtcbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuICBpZiAodHlwZW9mIGJ0b2EgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIHZhciBiYXNlNjQgPSBidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShjc3NNYXBwaW5nKSkpKTtcbiAgICB2YXIgZGF0YSA9IFwic291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsXCIuY29uY2F0KGJhc2U2NCk7XG4gICAgdmFyIHNvdXJjZU1hcHBpbmcgPSBcIi8qIyBcIi5jb25jYXQoZGF0YSwgXCIgKi9cIik7XG4gICAgcmV0dXJuIFtjb250ZW50XS5jb25jYXQoW3NvdXJjZU1hcHBpbmddKS5qb2luKFwiXFxuXCIpO1xuICB9XG4gIHJldHVybiBbY29udGVudF0uam9pbihcIlxcblwiKTtcbn07IiwiY29uc3Qge2JlY2gzMiwgaGV4LCB1dGY4fSA9IHJlcXVpcmUoJ0BzY3VyZS9iYXNlJylcblxuLy8gZGVmYXVsdHMgZm9yIGVuY29kZTsgZGVmYXVsdCB0aW1lc3RhbXAgaXMgY3VycmVudCB0aW1lIGF0IGNhbGxcbmNvbnN0IERFRkFVTFRORVRXT1JLID0ge1xuICAvLyBkZWZhdWx0IG5ldHdvcmsgaXMgYml0Y29pblxuICBiZWNoMzI6ICdiYycsXG4gIHB1YktleUhhc2g6IDB4MDAsXG4gIHNjcmlwdEhhc2g6IDB4MDUsXG4gIHZhbGlkV2l0bmVzc1ZlcnNpb25zOiBbMF1cbn1cbmNvbnN0IFRFU1RORVRXT1JLID0ge1xuICBiZWNoMzI6ICd0YicsXG4gIHB1YktleUhhc2g6IDB4NmYsXG4gIHNjcmlwdEhhc2g6IDB4YzQsXG4gIHZhbGlkV2l0bmVzc1ZlcnNpb25zOiBbMF1cbn1cbmNvbnN0IFJFR1RFU1RORVRXT1JLID0ge1xuICBiZWNoMzI6ICdiY3J0JyxcbiAgcHViS2V5SGFzaDogMHg2ZixcbiAgc2NyaXB0SGFzaDogMHhjNCxcbiAgdmFsaWRXaXRuZXNzVmVyc2lvbnM6IFswXVxufVxuY29uc3QgU0lNTkVUV09SSyA9IHtcbiAgYmVjaDMyOiAnc2InLFxuICBwdWJLZXlIYXNoOiAweDNmLFxuICBzY3JpcHRIYXNoOiAweDdiLFxuICB2YWxpZFdpdG5lc3NWZXJzaW9uczogWzBdXG59XG5cbmNvbnN0IEZFQVRVUkVCSVRfT1JERVIgPSBbXG4gICdvcHRpb25fZGF0YV9sb3NzX3Byb3RlY3QnLFxuICAnaW5pdGlhbF9yb3V0aW5nX3N5bmMnLFxuICAnb3B0aW9uX3VwZnJvbnRfc2h1dGRvd25fc2NyaXB0JyxcbiAgJ2dvc3NpcF9xdWVyaWVzJyxcbiAgJ3Zhcl9vbmlvbl9vcHRpbicsXG4gICdnb3NzaXBfcXVlcmllc19leCcsXG4gICdvcHRpb25fc3RhdGljX3JlbW90ZWtleScsXG4gICdwYXltZW50X3NlY3JldCcsXG4gICdiYXNpY19tcHAnLFxuICAnb3B0aW9uX3N1cHBvcnRfbGFyZ2VfY2hhbm5lbCdcbl1cblxuY29uc3QgRElWSVNPUlMgPSB7XG4gIG06IEJpZ0ludCgxZTMpLFxuICB1OiBCaWdJbnQoMWU2KSxcbiAgbjogQmlnSW50KDFlOSksXG4gIHA6IEJpZ0ludCgxZTEyKVxufVxuXG5jb25zdCBNQVhfTUlMTElTQVRTID0gQmlnSW50KCcyMTAwMDAwMDAwMDAwMDAwMDAwJylcblxuY29uc3QgTUlMTElTQVRTX1BFUl9CVEMgPSBCaWdJbnQoMWUxMSlcblxuY29uc3QgVEFHQ09ERVMgPSB7XG4gIHBheW1lbnRfaGFzaDogMSxcbiAgcGF5bWVudF9zZWNyZXQ6IDE2LFxuICBkZXNjcmlwdGlvbjogMTMsXG4gIHBheWVlOiAxOSxcbiAgZGVzY3JpcHRpb25faGFzaDogMjMsIC8vIGNvbW1pdCB0byBsb25nZXIgZGVzY3JpcHRpb25zICh1c2VkIGJ5IGxudXJsLXBheSlcbiAgZXhwaXJ5OiA2LCAvLyBkZWZhdWx0OiAzNjAwICgxIGhvdXIpXG4gIG1pbl9maW5hbF9jbHR2X2V4cGlyeTogMjQsIC8vIGRlZmF1bHQ6IDlcbiAgZmFsbGJhY2tfYWRkcmVzczogOSxcbiAgcm91dGVfaGludDogMywgLy8gZm9yIGV4dHJhIHJvdXRpbmcgaW5mbyAocHJpdmF0ZSBldGMuKVxuICBmZWF0dXJlX2JpdHM6IDUsXG4gIG1ldGFkYXRhOiAyN1xufVxuXG4vLyByZXZlcnNlIHRoZSBrZXlzIGFuZCB2YWx1ZXMgb2YgVEFHQ09ERVMgYW5kIGluc2VydCBpbnRvIFRBR05BTUVTXG5jb25zdCBUQUdOQU1FUyA9IHt9XG5mb3IgKGxldCBpID0gMCwga2V5cyA9IE9iamVjdC5rZXlzKFRBR0NPREVTKTsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgY29uc3QgY3VycmVudE5hbWUgPSBrZXlzW2ldXG4gIGNvbnN0IGN1cnJlbnRDb2RlID0gVEFHQ09ERVNba2V5c1tpXV0udG9TdHJpbmcoKVxuICBUQUdOQU1FU1tjdXJyZW50Q29kZV0gPSBjdXJyZW50TmFtZVxufVxuXG5jb25zdCBUQUdQQVJTRVJTID0ge1xuICAxOiB3b3JkcyA9PiBoZXguZW5jb2RlKGJlY2gzMi5mcm9tV29yZHNVbnNhZmUod29yZHMpKSwgLy8gMjU2IGJpdHNcbiAgMTY6IHdvcmRzID0+IGhleC5lbmNvZGUoYmVjaDMyLmZyb21Xb3Jkc1Vuc2FmZSh3b3JkcykpLCAvLyAyNTYgYml0c1xuICAxMzogd29yZHMgPT4gdXRmOC5lbmNvZGUoYmVjaDMyLmZyb21Xb3Jkc1Vuc2FmZSh3b3JkcykpLCAvLyBzdHJpbmcgdmFyaWFibGUgbGVuZ3RoXG4gIDE5OiB3b3JkcyA9PiBoZXguZW5jb2RlKGJlY2gzMi5mcm9tV29yZHNVbnNhZmUod29yZHMpKSwgLy8gMjY0IGJpdHNcbiAgMjM6IHdvcmRzID0+IGhleC5lbmNvZGUoYmVjaDMyLmZyb21Xb3Jkc1Vuc2FmZSh3b3JkcykpLCAvLyAyNTYgYml0c1xuICAyNzogd29yZHMgPT4gaGV4LmVuY29kZShiZWNoMzIuZnJvbVdvcmRzVW5zYWZlKHdvcmRzKSksIC8vIHZhcmlhYmxlXG4gIDY6IHdvcmRzVG9JbnRCRSwgLy8gZGVmYXVsdDogMzYwMCAoMSBob3VyKVxuICAyNDogd29yZHNUb0ludEJFLCAvLyBkZWZhdWx0OiA5XG4gIDM6IHJvdXRpbmdJbmZvUGFyc2VyLCAvLyBmb3IgZXh0cmEgcm91dGluZyBpbmZvIChwcml2YXRlIGV0Yy4pXG4gIDU6IGZlYXR1cmVCaXRzUGFyc2VyIC8vIGtlZXAgZmVhdHVyZSBiaXRzIGFzIGFycmF5IG9mIDUgYml0IHdvcmRzXG59XG5cbmZ1bmN0aW9uIGdldFVua25vd25QYXJzZXIodGFnQ29kZSkge1xuICByZXR1cm4gd29yZHMgPT4gKHtcbiAgICB0YWdDb2RlOiBwYXJzZUludCh0YWdDb2RlKSxcbiAgICB3b3JkczogYmVjaDMyLmVuY29kZSgndW5rbm93bicsIHdvcmRzLCBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUilcbiAgfSlcbn1cblxuZnVuY3Rpb24gd29yZHNUb0ludEJFKHdvcmRzKSB7XG4gIHJldHVybiB3b3Jkcy5yZXZlcnNlKCkucmVkdWNlKCh0b3RhbCwgaXRlbSwgaW5kZXgpID0+IHtcbiAgICByZXR1cm4gdG90YWwgKyBpdGVtICogTWF0aC5wb3coMzIsIGluZGV4KVxuICB9LCAwKVxufVxuXG4vLyBmaXJzdCBjb252ZXJ0IGZyb20gd29yZHMgdG8gYnVmZmVyLCB0cmltbWluZyBwYWRkaW5nIHdoZXJlIG5lY2Vzc2FyeVxuLy8gcGFyc2UgaW4gNTEgYnl0ZSBjaHVua3MuIFNlZSBlbmNvZGVyIGZvciBkZXRhaWxzLlxuZnVuY3Rpb24gcm91dGluZ0luZm9QYXJzZXIod29yZHMpIHtcbiAgY29uc3Qgcm91dGVzID0gW11cbiAgbGV0IHB1YmtleSxcbiAgICBzaG9ydENoYW5uZWxJZCxcbiAgICBmZWVCYXNlTVNhdHMsXG4gICAgZmVlUHJvcG9ydGlvbmFsTWlsbGlvbnRocyxcbiAgICBjbHR2RXhwaXJ5RGVsdGFcbiAgbGV0IHJvdXRlc0J1ZmZlciA9IGJlY2gzMi5mcm9tV29yZHNVbnNhZmUod29yZHMpXG4gIHdoaWxlIChyb3V0ZXNCdWZmZXIubGVuZ3RoID4gMCkge1xuICAgIHB1YmtleSA9IGhleC5lbmNvZGUocm91dGVzQnVmZmVyLnNsaWNlKDAsIDMzKSkgLy8gMzMgYnl0ZXNcbiAgICBzaG9ydENoYW5uZWxJZCA9IGhleC5lbmNvZGUocm91dGVzQnVmZmVyLnNsaWNlKDMzLCA0MSkpIC8vIDggYnl0ZXNcbiAgICBmZWVCYXNlTVNhdHMgPSBwYXJzZUludChoZXguZW5jb2RlKHJvdXRlc0J1ZmZlci5zbGljZSg0MSwgNDUpKSwgMTYpIC8vIDQgYnl0ZXNcbiAgICBmZWVQcm9wb3J0aW9uYWxNaWxsaW9udGhzID0gcGFyc2VJbnQoXG4gICAgICBoZXguZW5jb2RlKHJvdXRlc0J1ZmZlci5zbGljZSg0NSwgNDkpKSxcbiAgICAgIDE2XG4gICAgKSAvLyA0IGJ5dGVzXG4gICAgY2x0dkV4cGlyeURlbHRhID0gcGFyc2VJbnQoaGV4LmVuY29kZShyb3V0ZXNCdWZmZXIuc2xpY2UoNDksIDUxKSksIDE2KSAvLyAyIGJ5dGVzXG5cbiAgICByb3V0ZXNCdWZmZXIgPSByb3V0ZXNCdWZmZXIuc2xpY2UoNTEpXG5cbiAgICByb3V0ZXMucHVzaCh7XG4gICAgICBwdWJrZXksXG4gICAgICBzaG9ydF9jaGFubmVsX2lkOiBzaG9ydENoYW5uZWxJZCxcbiAgICAgIGZlZV9iYXNlX21zYXQ6IGZlZUJhc2VNU2F0cyxcbiAgICAgIGZlZV9wcm9wb3J0aW9uYWxfbWlsbGlvbnRoczogZmVlUHJvcG9ydGlvbmFsTWlsbGlvbnRocyxcbiAgICAgIGNsdHZfZXhwaXJ5X2RlbHRhOiBjbHR2RXhwaXJ5RGVsdGFcbiAgICB9KVxuICB9XG4gIHJldHVybiByb3V0ZXNcbn1cblxuZnVuY3Rpb24gZmVhdHVyZUJpdHNQYXJzZXIod29yZHMpIHtcbiAgY29uc3QgYm9vbHMgPSB3b3Jkc1xuICAgIC5zbGljZSgpXG4gICAgLnJldmVyc2UoKVxuICAgIC5tYXAod29yZCA9PiBbXG4gICAgICAhISh3b3JkICYgMGIxKSxcbiAgICAgICEhKHdvcmQgJiAwYjEwKSxcbiAgICAgICEhKHdvcmQgJiAwYjEwMCksXG4gICAgICAhISh3b3JkICYgMGIxMDAwKSxcbiAgICAgICEhKHdvcmQgJiAwYjEwMDAwKVxuICAgIF0pXG4gICAgLnJlZHVjZSgoZmluYWxBcnIsIGl0ZW1BcnIpID0+IGZpbmFsQXJyLmNvbmNhdChpdGVtQXJyKSwgW10pXG4gIHdoaWxlIChib29scy5sZW5ndGggPCBGRUFUVVJFQklUX09SREVSLmxlbmd0aCAqIDIpIHtcbiAgICBib29scy5wdXNoKGZhbHNlKVxuICB9XG5cbiAgY29uc3QgZmVhdHVyZUJpdHMgPSB7fVxuXG4gIEZFQVRVUkVCSVRfT1JERVIuZm9yRWFjaCgoZmVhdHVyZU5hbWUsIGluZGV4KSA9PiB7XG4gICAgbGV0IHN0YXR1c1xuICAgIGlmIChib29sc1tpbmRleCAqIDJdKSB7XG4gICAgICBzdGF0dXMgPSAncmVxdWlyZWQnXG4gICAgfSBlbHNlIGlmIChib29sc1tpbmRleCAqIDIgKyAxXSkge1xuICAgICAgc3RhdHVzID0gJ3N1cHBvcnRlZCdcbiAgICB9IGVsc2Uge1xuICAgICAgc3RhdHVzID0gJ3Vuc3VwcG9ydGVkJ1xuICAgIH1cbiAgICBmZWF0dXJlQml0c1tmZWF0dXJlTmFtZV0gPSBzdGF0dXNcbiAgfSlcblxuICBjb25zdCBleHRyYUJpdHMgPSBib29scy5zbGljZShGRUFUVVJFQklUX09SREVSLmxlbmd0aCAqIDIpXG4gIGZlYXR1cmVCaXRzLmV4dHJhX2JpdHMgPSB7XG4gICAgc3RhcnRfYml0OiBGRUFUVVJFQklUX09SREVSLmxlbmd0aCAqIDIsXG4gICAgYml0czogZXh0cmFCaXRzLFxuICAgIGhhc19yZXF1aXJlZDogZXh0cmFCaXRzLnJlZHVjZShcbiAgICAgIChyZXN1bHQsIGJpdCwgaW5kZXgpID0+XG4gICAgICAgIGluZGV4ICUgMiAhPT0gMCA/IHJlc3VsdCB8fCBmYWxzZSA6IHJlc3VsdCB8fCBiaXQsXG4gICAgICBmYWxzZVxuICAgIClcbiAgfVxuXG4gIHJldHVybiBmZWF0dXJlQml0c1xufVxuXG5mdW5jdGlvbiBocnBUb01pbGxpc2F0KGhycFN0cmluZywgb3V0cHV0U3RyaW5nKSB7XG4gIGxldCBkaXZpc29yLCB2YWx1ZVxuICBpZiAoaHJwU3RyaW5nLnNsaWNlKC0xKS5tYXRjaCgvXlttdW5wXSQvKSkge1xuICAgIGRpdmlzb3IgPSBocnBTdHJpbmcuc2xpY2UoLTEpXG4gICAgdmFsdWUgPSBocnBTdHJpbmcuc2xpY2UoMCwgLTEpXG4gIH0gZWxzZSBpZiAoaHJwU3RyaW5nLnNsaWNlKC0xKS5tYXRjaCgvXltebXVucDAtOV0kLykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBhIHZhbGlkIG11bHRpcGxpZXIgZm9yIHRoZSBhbW91bnQnKVxuICB9IGVsc2Uge1xuICAgIHZhbHVlID0gaHJwU3RyaW5nXG4gIH1cblxuICBpZiAoIXZhbHVlLm1hdGNoKC9eXFxkKyQvKSlcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBhIHZhbGlkIGh1bWFuIHJlYWRhYmxlIGFtb3VudCcpXG5cbiAgY29uc3QgdmFsdWVCTiA9IEJpZ0ludCh2YWx1ZSlcblxuICBjb25zdCBtaWxsaXNhdG9zaGlzQk4gPSBkaXZpc29yXG4gICAgPyAodmFsdWVCTiAqIE1JTExJU0FUU19QRVJfQlRDKSAvIERJVklTT1JTW2Rpdmlzb3JdXG4gICAgOiB2YWx1ZUJOICogTUlMTElTQVRTX1BFUl9CVENcblxuICBpZiAoXG4gICAgKGRpdmlzb3IgPT09ICdwJyAmJiAhKHZhbHVlQk4gJSBCaWdJbnQoMTApID09PSBCaWdJbnQoMCkpKSB8fFxuICAgIG1pbGxpc2F0b3NoaXNCTiA+IE1BWF9NSUxMSVNBVFNcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdBbW91bnQgaXMgb3V0c2lkZSBvZiB2YWxpZCByYW5nZScpXG4gIH1cblxuICByZXR1cm4gb3V0cHV0U3RyaW5nID8gbWlsbGlzYXRvc2hpc0JOLnRvU3RyaW5nKCkgOiBtaWxsaXNhdG9zaGlzQk5cbn1cblxuLy8gZGVjb2RlIHdpbGwgb25seSBoYXZlIGV4dHJhIGNvbW1lbnRzIHRoYXQgYXJlbid0IGNvdmVyZWQgaW4gZW5jb2RlIGNvbW1lbnRzLlxuLy8gYWxzbyBpZiBhbnl0aGluZyBpcyBoYXJkIHRvIHJlYWQgSSdsbCBjb21tZW50LlxuZnVuY3Rpb24gZGVjb2RlKHBheW1lbnRSZXF1ZXN0LCBuZXR3b3JrKSB7XG4gIGlmICh0eXBlb2YgcGF5bWVudFJlcXVlc3QgIT09ICdzdHJpbmcnKVxuICAgIHRocm93IG5ldyBFcnJvcignTGlnaHRuaW5nIFBheW1lbnQgUmVxdWVzdCBtdXN0IGJlIHN0cmluZycpXG4gIGlmIChwYXltZW50UmVxdWVzdC5zbGljZSgwLCAyKS50b0xvd2VyQ2FzZSgpICE9PSAnbG4nKVxuICAgIHRocm93IG5ldyBFcnJvcignTm90IGEgcHJvcGVyIGxpZ2h0bmluZyBwYXltZW50IHJlcXVlc3QnKVxuXG4gIGNvbnN0IHNlY3Rpb25zID0gW11cbiAgY29uc3QgZGVjb2RlZCA9IGJlY2gzMi5kZWNvZGUocGF5bWVudFJlcXVlc3QsIE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKVxuICBwYXltZW50UmVxdWVzdCA9IHBheW1lbnRSZXF1ZXN0LnRvTG93ZXJDYXNlKClcbiAgY29uc3QgcHJlZml4ID0gZGVjb2RlZC5wcmVmaXhcbiAgbGV0IHdvcmRzID0gZGVjb2RlZC53b3Jkc1xuICBsZXQgbGV0dGVycyA9IHBheW1lbnRSZXF1ZXN0LnNsaWNlKHByZWZpeC5sZW5ndGggKyAxKVxuICBsZXQgc2lnV29yZHMgPSB3b3Jkcy5zbGljZSgtMTA0KVxuICB3b3JkcyA9IHdvcmRzLnNsaWNlKDAsIC0xMDQpXG5cbiAgLy8gV2l0aG91dCByZXZlcnNlIGxvb2t1cHMsIGNhbid0IHNheSB0aGF0IHRoZSBtdWx0aXBpZXIgYXQgdGhlIGVuZCBtdXN0XG4gIC8vIGhhdmUgYSBudW1iZXIgYmVmb3JlIGl0LCBzbyBpbnN0ZWFkIHdlIHBhcnNlLCBhbmQgaWYgdGhlIHNlY29uZCBncm91cFxuICAvLyBkb2Vzbid0IGhhdmUgYW55dGhpbmcsIHRoZXJlJ3MgYSBnb29kIGNoYW5jZSB0aGUgbGFzdCBsZXR0ZXIgb2YgdGhlXG4gIC8vIGNvaW4gdHlwZSBnb3QgY2FwdHVyZWQgYnkgdGhlIHRoaXJkIGdyb3VwLCBzbyBqdXN0IHJlLXJlZ2V4IHdpdGhvdXRcbiAgLy8gdGhlIG51bWJlci5cbiAgbGV0IHByZWZpeE1hdGNoZXMgPSBwcmVmaXgubWF0Y2goL15sbihcXFMrPykoXFxkKikoW2EtekEtWl0/KSQvKVxuICBpZiAocHJlZml4TWF0Y2hlcyAmJiAhcHJlZml4TWF0Y2hlc1syXSlcbiAgICBwcmVmaXhNYXRjaGVzID0gcHJlZml4Lm1hdGNoKC9ebG4oXFxTKykkLylcbiAgaWYgKCFwcmVmaXhNYXRjaGVzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgYSBwcm9wZXIgbGlnaHRuaW5nIHBheW1lbnQgcmVxdWVzdCcpXG4gIH1cblxuICAvLyBcImxuXCIgc2VjdGlvblxuICBzZWN0aW9ucy5wdXNoKHtcbiAgICBuYW1lOiAnbGlnaHRuaW5nX25ldHdvcmsnLFxuICAgIGxldHRlcnM6ICdsbidcbiAgfSlcblxuICAvLyBcImJjXCIgc2VjdGlvblxuICBjb25zdCBiZWNoMzJQcmVmaXggPSBwcmVmaXhNYXRjaGVzWzFdXG4gIGxldCBjb2luTmV0d29ya1xuICBpZiAoIW5ldHdvcmspIHtcbiAgICBzd2l0Y2ggKGJlY2gzMlByZWZpeCkge1xuICAgICAgY2FzZSBERUZBVUxUTkVUV09SSy5iZWNoMzI6XG4gICAgICAgIGNvaW5OZXR3b3JrID0gREVGQVVMVE5FVFdPUktcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgVEVTVE5FVFdPUksuYmVjaDMyOlxuICAgICAgICBjb2luTmV0d29yayA9IFRFU1RORVRXT1JLXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIFJFR1RFU1RORVRXT1JLLmJlY2gzMjpcbiAgICAgICAgY29pbk5ldHdvcmsgPSBSRUdURVNUTkVUV09SS1xuICAgICAgICBicmVha1xuICAgICAgY2FzZSBTSU1ORVRXT1JLLmJlY2gzMjpcbiAgICAgICAgY29pbk5ldHdvcmsgPSBTSU1ORVRXT1JLXG4gICAgICAgIGJyZWFrXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChcbiAgICAgIG5ldHdvcmsuYmVjaDMyID09PSB1bmRlZmluZWQgfHxcbiAgICAgIG5ldHdvcmsucHViS2V5SGFzaCA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICBuZXR3b3JrLnNjcmlwdEhhc2ggPT09IHVuZGVmaW5lZCB8fFxuICAgICAgIUFycmF5LmlzQXJyYXkobmV0d29yay52YWxpZFdpdG5lc3NWZXJzaW9ucylcbiAgICApXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgbmV0d29yaycpXG4gICAgY29pbk5ldHdvcmsgPSBuZXR3b3JrXG4gIH1cbiAgaWYgKCFjb2luTmV0d29yayB8fCBjb2luTmV0d29yay5iZWNoMzIgIT09IGJlY2gzMlByZWZpeCkge1xuICAgIHRocm93IG5ldyBFcnJvcignVW5rbm93biBjb2luIGJlY2gzMiBwcmVmaXgnKVxuICB9XG4gIHNlY3Rpb25zLnB1c2goe1xuICAgIG5hbWU6ICdjb2luX25ldHdvcmsnLFxuICAgIGxldHRlcnM6IGJlY2gzMlByZWZpeCxcbiAgICB2YWx1ZTogY29pbk5ldHdvcmtcbiAgfSlcblxuICAvLyBhbW91bnQgc2VjdGlvblxuICBjb25zdCB2YWx1ZSA9IHByZWZpeE1hdGNoZXNbMl1cbiAgbGV0IG1pbGxpc2F0b3NoaXNcbiAgaWYgKHZhbHVlKSB7XG4gICAgY29uc3QgZGl2aXNvciA9IHByZWZpeE1hdGNoZXNbM11cbiAgICBtaWxsaXNhdG9zaGlzID0gaHJwVG9NaWxsaXNhdCh2YWx1ZSArIGRpdmlzb3IsIHRydWUpXG4gICAgc2VjdGlvbnMucHVzaCh7XG4gICAgICBuYW1lOiAnYW1vdW50JyxcbiAgICAgIGxldHRlcnM6IHByZWZpeE1hdGNoZXNbMl0gKyBwcmVmaXhNYXRjaGVzWzNdLFxuICAgICAgdmFsdWU6IG1pbGxpc2F0b3NoaXNcbiAgICB9KVxuICB9IGVsc2Uge1xuICAgIG1pbGxpc2F0b3NoaXMgPSBudWxsXG4gIH1cblxuICAvLyBcIjFcIiBzZXBhcmF0b3JcbiAgc2VjdGlvbnMucHVzaCh7XG4gICAgbmFtZTogJ3NlcGFyYXRvcicsXG4gICAgbGV0dGVyczogJzEnXG4gIH0pXG5cbiAgLy8gdGltZXN0YW1wXG4gIGNvbnN0IHRpbWVzdGFtcCA9IHdvcmRzVG9JbnRCRSh3b3Jkcy5zbGljZSgwLCA3KSlcbiAgd29yZHMgPSB3b3Jkcy5zbGljZSg3KSAvLyB0cmltIG9mZiB0aGUgbGVmdCA3IHdvcmRzXG4gIHNlY3Rpb25zLnB1c2goe1xuICAgIG5hbWU6ICd0aW1lc3RhbXAnLFxuICAgIGxldHRlcnM6IGxldHRlcnMuc2xpY2UoMCwgNyksXG4gICAgdmFsdWU6IHRpbWVzdGFtcFxuICB9KVxuICBsZXR0ZXJzID0gbGV0dGVycy5zbGljZSg3KVxuXG4gIGxldCB0YWdOYW1lLCBwYXJzZXIsIHRhZ0xlbmd0aCwgdGFnV29yZHNcbiAgLy8gd2UgaGF2ZSBubyB0YWcgY291bnQgdG8gZ28gb24sIHNvIGp1c3Qga2VlcCBoYWNraW5nIG9mZiB3b3Jkc1xuICAvLyB1bnRpbCB3ZSBoYXZlIG5vbmUuXG4gIHdoaWxlICh3b3Jkcy5sZW5ndGggPiAwKSB7XG4gICAgY29uc3QgdGFnQ29kZSA9IHdvcmRzWzBdLnRvU3RyaW5nKClcbiAgICB0YWdOYW1lID0gVEFHTkFNRVNbdGFnQ29kZV0gfHwgJ3Vua25vd25fdGFnJ1xuICAgIHBhcnNlciA9IFRBR1BBUlNFUlNbdGFnQ29kZV0gfHwgZ2V0VW5rbm93blBhcnNlcih0YWdDb2RlKVxuICAgIHdvcmRzID0gd29yZHMuc2xpY2UoMSlcblxuICAgIHRhZ0xlbmd0aCA9IHdvcmRzVG9JbnRCRSh3b3Jkcy5zbGljZSgwLCAyKSlcbiAgICB3b3JkcyA9IHdvcmRzLnNsaWNlKDIpXG5cbiAgICB0YWdXb3JkcyA9IHdvcmRzLnNsaWNlKDAsIHRhZ0xlbmd0aClcbiAgICB3b3JkcyA9IHdvcmRzLnNsaWNlKHRhZ0xlbmd0aClcblxuICAgIHNlY3Rpb25zLnB1c2goe1xuICAgICAgbmFtZTogdGFnTmFtZSxcbiAgICAgIHRhZzogbGV0dGVyc1swXSxcbiAgICAgIGxldHRlcnM6IGxldHRlcnMuc2xpY2UoMCwgMSArIDIgKyB0YWdMZW5ndGgpLFxuICAgICAgdmFsdWU6IHBhcnNlcih0YWdXb3JkcykgLy8gc2VlOiBwYXJzZXJzIGZvciBtb3JlIGNvbW1lbnRzXG4gICAgfSlcbiAgICBsZXR0ZXJzID0gbGV0dGVycy5zbGljZSgxICsgMiArIHRhZ0xlbmd0aClcbiAgfVxuXG4gIC8vIHNpZ25hdHVyZVxuICBzZWN0aW9ucy5wdXNoKHtcbiAgICBuYW1lOiAnc2lnbmF0dXJlJyxcbiAgICBsZXR0ZXJzOiBsZXR0ZXJzLnNsaWNlKDAsIDEwNCksXG4gICAgdmFsdWU6IGhleC5lbmNvZGUoYmVjaDMyLmZyb21Xb3Jkc1Vuc2FmZShzaWdXb3JkcykpXG4gIH0pXG4gIGxldHRlcnMgPSBsZXR0ZXJzLnNsaWNlKDEwNClcblxuICAvLyBjaGVja3N1bVxuICBzZWN0aW9ucy5wdXNoKHtcbiAgICBuYW1lOiAnY2hlY2tzdW0nLFxuICAgIGxldHRlcnM6IGxldHRlcnNcbiAgfSlcblxuICBsZXQgcmVzdWx0ID0ge1xuICAgIHBheW1lbnRSZXF1ZXN0LFxuICAgIHNlY3Rpb25zLFxuXG4gICAgZ2V0IGV4cGlyeSgpIHtcbiAgICAgIGxldCBleHAgPSBzZWN0aW9ucy5maW5kKHMgPT4gcy5uYW1lID09PSAnZXhwaXJ5JylcbiAgICAgIGlmIChleHApIHJldHVybiBnZXRWYWx1ZSgndGltZXN0YW1wJykgKyBleHAudmFsdWVcbiAgICB9LFxuXG4gICAgZ2V0IHJvdXRlX2hpbnRzKCkge1xuICAgICAgcmV0dXJuIHNlY3Rpb25zLmZpbHRlcihzID0+IHMubmFtZSA9PT0gJ3JvdXRlX2hpbnQnKS5tYXAocyA9PiBzLnZhbHVlKVxuICAgIH1cbiAgfVxuXG4gIGZvciAobGV0IG5hbWUgaW4gVEFHQ09ERVMpIHtcbiAgICBpZiAobmFtZSA9PT0gJ3JvdXRlX2hpbnQnKSB7XG4gICAgICAvLyByb3V0ZSBoaW50cyBjYW4gYmUgbXVsdGlwbGUsIHNvIHRoaXMgd29uJ3Qgd29yayBmb3IgdGhlbVxuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVzdWx0LCBuYW1lLCB7XG4gICAgICBnZXQoKSB7XG4gICAgICAgIHJldHVybiBnZXRWYWx1ZShuYW1lKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICByZXR1cm4gcmVzdWx0XG5cbiAgZnVuY3Rpb24gZ2V0VmFsdWUobmFtZSkge1xuICAgIGxldCBzZWN0aW9uID0gc2VjdGlvbnMuZmluZChzID0+IHMubmFtZSA9PT0gbmFtZSlcbiAgICByZXR1cm4gc2VjdGlvbiA/IHNlY3Rpb24udmFsdWUgOiB1bmRlZmluZWRcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgZGVjb2RlLFxuICBocnBUb01pbGxpc2F0XG59XG4iLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIHN0eWxlc0luRE9NID0gW107XG5mdW5jdGlvbiBnZXRJbmRleEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKSB7XG4gIHZhciByZXN1bHQgPSAtMTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHlsZXNJbkRPTS5sZW5ndGg7IGkrKykge1xuICAgIGlmIChzdHlsZXNJbkRPTVtpXS5pZGVudGlmaWVyID09PSBpZGVudGlmaWVyKSB7XG4gICAgICByZXN1bHQgPSBpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5mdW5jdGlvbiBtb2R1bGVzVG9Eb20obGlzdCwgb3B0aW9ucykge1xuICB2YXIgaWRDb3VudE1hcCA9IHt9O1xuICB2YXIgaWRlbnRpZmllcnMgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGl0ZW0gPSBsaXN0W2ldO1xuICAgIHZhciBpZCA9IG9wdGlvbnMuYmFzZSA/IGl0ZW1bMF0gKyBvcHRpb25zLmJhc2UgOiBpdGVtWzBdO1xuICAgIHZhciBjb3VudCA9IGlkQ291bnRNYXBbaWRdIHx8IDA7XG4gICAgdmFyIGlkZW50aWZpZXIgPSBcIlwiLmNvbmNhdChpZCwgXCIgXCIpLmNvbmNhdChjb3VudCk7XG4gICAgaWRDb3VudE1hcFtpZF0gPSBjb3VudCArIDE7XG4gICAgdmFyIGluZGV4QnlJZGVudGlmaWVyID0gZ2V0SW5kZXhCeUlkZW50aWZpZXIoaWRlbnRpZmllcik7XG4gICAgdmFyIG9iaiA9IHtcbiAgICAgIGNzczogaXRlbVsxXSxcbiAgICAgIG1lZGlhOiBpdGVtWzJdLFxuICAgICAgc291cmNlTWFwOiBpdGVtWzNdLFxuICAgICAgc3VwcG9ydHM6IGl0ZW1bNF0sXG4gICAgICBsYXllcjogaXRlbVs1XVxuICAgIH07XG4gICAgaWYgKGluZGV4QnlJZGVudGlmaWVyICE9PSAtMSkge1xuICAgICAgc3R5bGVzSW5ET01baW5kZXhCeUlkZW50aWZpZXJdLnJlZmVyZW5jZXMrKztcbiAgICAgIHN0eWxlc0luRE9NW2luZGV4QnlJZGVudGlmaWVyXS51cGRhdGVyKG9iaik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciB1cGRhdGVyID0gYWRkRWxlbWVudFN0eWxlKG9iaiwgb3B0aW9ucyk7XG4gICAgICBvcHRpb25zLmJ5SW5kZXggPSBpO1xuICAgICAgc3R5bGVzSW5ET00uc3BsaWNlKGksIDAsIHtcbiAgICAgICAgaWRlbnRpZmllcjogaWRlbnRpZmllcixcbiAgICAgICAgdXBkYXRlcjogdXBkYXRlcixcbiAgICAgICAgcmVmZXJlbmNlczogMVxuICAgICAgfSk7XG4gICAgfVxuICAgIGlkZW50aWZpZXJzLnB1c2goaWRlbnRpZmllcik7XG4gIH1cbiAgcmV0dXJuIGlkZW50aWZpZXJzO1xufVxuZnVuY3Rpb24gYWRkRWxlbWVudFN0eWxlKG9iaiwgb3B0aW9ucykge1xuICB2YXIgYXBpID0gb3B0aW9ucy5kb21BUEkob3B0aW9ucyk7XG4gIGFwaS51cGRhdGUob2JqKTtcbiAgdmFyIHVwZGF0ZXIgPSBmdW5jdGlvbiB1cGRhdGVyKG5ld09iaikge1xuICAgIGlmIChuZXdPYmopIHtcbiAgICAgIGlmIChuZXdPYmouY3NzID09PSBvYmouY3NzICYmIG5ld09iai5tZWRpYSA9PT0gb2JqLm1lZGlhICYmIG5ld09iai5zb3VyY2VNYXAgPT09IG9iai5zb3VyY2VNYXAgJiYgbmV3T2JqLnN1cHBvcnRzID09PSBvYmouc3VwcG9ydHMgJiYgbmV3T2JqLmxheWVyID09PSBvYmoubGF5ZXIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgYXBpLnVwZGF0ZShvYmogPSBuZXdPYmopO1xuICAgIH0gZWxzZSB7XG4gICAgICBhcGkucmVtb3ZlKCk7XG4gICAgfVxuICB9O1xuICByZXR1cm4gdXBkYXRlcjtcbn1cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGxpc3QsIG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIGxpc3QgPSBsaXN0IHx8IFtdO1xuICB2YXIgbGFzdElkZW50aWZpZXJzID0gbW9kdWxlc1RvRG9tKGxpc3QsIG9wdGlvbnMpO1xuICByZXR1cm4gZnVuY3Rpb24gdXBkYXRlKG5ld0xpc3QpIHtcbiAgICBuZXdMaXN0ID0gbmV3TGlzdCB8fCBbXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxhc3RJZGVudGlmaWVycy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGlkZW50aWZpZXIgPSBsYXN0SWRlbnRpZmllcnNbaV07XG4gICAgICB2YXIgaW5kZXggPSBnZXRJbmRleEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKTtcbiAgICAgIHN0eWxlc0luRE9NW2luZGV4XS5yZWZlcmVuY2VzLS07XG4gICAgfVxuICAgIHZhciBuZXdMYXN0SWRlbnRpZmllcnMgPSBtb2R1bGVzVG9Eb20obmV3TGlzdCwgb3B0aW9ucyk7XG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGxhc3RJZGVudGlmaWVycy5sZW5ndGg7IF9pKyspIHtcbiAgICAgIHZhciBfaWRlbnRpZmllciA9IGxhc3RJZGVudGlmaWVyc1tfaV07XG4gICAgICB2YXIgX2luZGV4ID0gZ2V0SW5kZXhCeUlkZW50aWZpZXIoX2lkZW50aWZpZXIpO1xuICAgICAgaWYgKHN0eWxlc0luRE9NW19pbmRleF0ucmVmZXJlbmNlcyA9PT0gMCkge1xuICAgICAgICBzdHlsZXNJbkRPTVtfaW5kZXhdLnVwZGF0ZXIoKTtcbiAgICAgICAgc3R5bGVzSW5ET00uc3BsaWNlKF9pbmRleCwgMSk7XG4gICAgICB9XG4gICAgfVxuICAgIGxhc3RJZGVudGlmaWVycyA9IG5ld0xhc3RJZGVudGlmaWVycztcbiAgfTtcbn07IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBtZW1vID0ge307XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gZ2V0VGFyZ2V0KHRhcmdldCkge1xuICBpZiAodHlwZW9mIG1lbW9bdGFyZ2V0XSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgIHZhciBzdHlsZVRhcmdldCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGFyZ2V0KTtcblxuICAgIC8vIFNwZWNpYWwgY2FzZSB0byByZXR1cm4gaGVhZCBvZiBpZnJhbWUgaW5zdGVhZCBvZiBpZnJhbWUgaXRzZWxmXG4gICAgaWYgKHdpbmRvdy5IVE1MSUZyYW1lRWxlbWVudCAmJiBzdHlsZVRhcmdldCBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MSUZyYW1lRWxlbWVudCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gVGhpcyB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbiBpZiBhY2Nlc3MgdG8gaWZyYW1lIGlzIGJsb2NrZWRcbiAgICAgICAgLy8gZHVlIHRvIGNyb3NzLW9yaWdpbiByZXN0cmljdGlvbnNcbiAgICAgICAgc3R5bGVUYXJnZXQgPSBzdHlsZVRhcmdldC5jb250ZW50RG9jdW1lbnQuaGVhZDtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgICAgICAgc3R5bGVUYXJnZXQgPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgICBtZW1vW3RhcmdldF0gPSBzdHlsZVRhcmdldDtcbiAgfVxuICByZXR1cm4gbWVtb1t0YXJnZXRdO1xufVxuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIGluc2VydEJ5U2VsZWN0b3IoaW5zZXJ0LCBzdHlsZSkge1xuICB2YXIgdGFyZ2V0ID0gZ2V0VGFyZ2V0KGluc2VydCk7XG4gIGlmICghdGFyZ2V0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiQ291bGRuJ3QgZmluZCBhIHN0eWxlIHRhcmdldC4gVGhpcyBwcm9iYWJseSBtZWFucyB0aGF0IHRoZSB2YWx1ZSBmb3IgdGhlICdpbnNlcnQnIHBhcmFtZXRlciBpcyBpbnZhbGlkLlwiKTtcbiAgfVxuICB0YXJnZXQuYXBwZW5kQ2hpbGQoc3R5bGUpO1xufVxubW9kdWxlLmV4cG9ydHMgPSBpbnNlcnRCeVNlbGVjdG9yOyIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIGluc2VydFN0eWxlRWxlbWVudChvcHRpb25zKSB7XG4gIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO1xuICBvcHRpb25zLnNldEF0dHJpYnV0ZXMoZWxlbWVudCwgb3B0aW9ucy5hdHRyaWJ1dGVzKTtcbiAgb3B0aW9ucy5pbnNlcnQoZWxlbWVudCwgb3B0aW9ucy5vcHRpb25zKTtcbiAgcmV0dXJuIGVsZW1lbnQ7XG59XG5tb2R1bGUuZXhwb3J0cyA9IGluc2VydFN0eWxlRWxlbWVudDsiLCJcInVzZSBzdHJpY3RcIjtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBzZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMoc3R5bGVFbGVtZW50KSB7XG4gIHZhciBub25jZSA9IHR5cGVvZiBfX3dlYnBhY2tfbm9uY2VfXyAhPT0gXCJ1bmRlZmluZWRcIiA/IF9fd2VicGFja19ub25jZV9fIDogbnVsbDtcbiAgaWYgKG5vbmNlKSB7XG4gICAgc3R5bGVFbGVtZW50LnNldEF0dHJpYnV0ZShcIm5vbmNlXCIsIG5vbmNlKTtcbiAgfVxufVxubW9kdWxlLmV4cG9ydHMgPSBzZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXM7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gYXBwbHkoc3R5bGVFbGVtZW50LCBvcHRpb25zLCBvYmopIHtcbiAgdmFyIGNzcyA9IFwiXCI7XG4gIGlmIChvYmouc3VwcG9ydHMpIHtcbiAgICBjc3MgKz0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChvYmouc3VwcG9ydHMsIFwiKSB7XCIpO1xuICB9XG4gIGlmIChvYmoubWVkaWEpIHtcbiAgICBjc3MgKz0gXCJAbWVkaWEgXCIuY29uY2F0KG9iai5tZWRpYSwgXCIge1wiKTtcbiAgfVxuICB2YXIgbmVlZExheWVyID0gdHlwZW9mIG9iai5sYXllciAhPT0gXCJ1bmRlZmluZWRcIjtcbiAgaWYgKG5lZWRMYXllcikge1xuICAgIGNzcyArPSBcIkBsYXllclwiLmNvbmNhdChvYmoubGF5ZXIubGVuZ3RoID4gMCA/IFwiIFwiLmNvbmNhdChvYmoubGF5ZXIpIDogXCJcIiwgXCIge1wiKTtcbiAgfVxuICBjc3MgKz0gb2JqLmNzcztcbiAgaWYgKG5lZWRMYXllcikge1xuICAgIGNzcyArPSBcIn1cIjtcbiAgfVxuICBpZiAob2JqLm1lZGlhKSB7XG4gICAgY3NzICs9IFwifVwiO1xuICB9XG4gIGlmIChvYmouc3VwcG9ydHMpIHtcbiAgICBjc3MgKz0gXCJ9XCI7XG4gIH1cbiAgdmFyIHNvdXJjZU1hcCA9IG9iai5zb3VyY2VNYXA7XG4gIGlmIChzb3VyY2VNYXAgJiYgdHlwZW9mIGJ0b2EgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICBjc3MgKz0gXCJcXG4vKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LFwiLmNvbmNhdChidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShzb3VyY2VNYXApKSkpLCBcIiAqL1wiKTtcbiAgfVxuXG4gIC8vIEZvciBvbGQgSUVcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICAqL1xuICBvcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtKGNzcywgc3R5bGVFbGVtZW50LCBvcHRpb25zLm9wdGlvbnMpO1xufVxuZnVuY3Rpb24gcmVtb3ZlU3R5bGVFbGVtZW50KHN0eWxlRWxlbWVudCkge1xuICAvLyBpc3RhbmJ1bCBpZ25vcmUgaWZcbiAgaWYgKHN0eWxlRWxlbWVudC5wYXJlbnROb2RlID09PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHN0eWxlRWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHN0eWxlRWxlbWVudCk7XG59XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gZG9tQVBJKG9wdGlvbnMpIHtcbiAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgIHJldHVybiB7XG4gICAgICB1cGRhdGU6IGZ1bmN0aW9uIHVwZGF0ZSgpIHt9LFxuICAgICAgcmVtb3ZlOiBmdW5jdGlvbiByZW1vdmUoKSB7fVxuICAgIH07XG4gIH1cbiAgdmFyIHN0eWxlRWxlbWVudCA9IG9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50KG9wdGlvbnMpO1xuICByZXR1cm4ge1xuICAgIHVwZGF0ZTogZnVuY3Rpb24gdXBkYXRlKG9iaikge1xuICAgICAgYXBwbHkoc3R5bGVFbGVtZW50LCBvcHRpb25zLCBvYmopO1xuICAgIH0sXG4gICAgcmVtb3ZlOiBmdW5jdGlvbiByZW1vdmUoKSB7XG4gICAgICByZW1vdmVTdHlsZUVsZW1lbnQoc3R5bGVFbGVtZW50KTtcbiAgICB9XG4gIH07XG59XG5tb2R1bGUuZXhwb3J0cyA9IGRvbUFQSTsiLCJcInVzZSBzdHJpY3RcIjtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBzdHlsZVRhZ1RyYW5zZm9ybShjc3MsIHN0eWxlRWxlbWVudCkge1xuICBpZiAoc3R5bGVFbGVtZW50LnN0eWxlU2hlZXQpIHtcbiAgICBzdHlsZUVsZW1lbnQuc3R5bGVTaGVldC5jc3NUZXh0ID0gY3NzO1xuICB9IGVsc2Uge1xuICAgIHdoaWxlIChzdHlsZUVsZW1lbnQuZmlyc3RDaGlsZCkge1xuICAgICAgc3R5bGVFbGVtZW50LnJlbW92ZUNoaWxkKHN0eWxlRWxlbWVudC5maXJzdENoaWxkKTtcbiAgICB9XG4gICAgc3R5bGVFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNzcykpO1xuICB9XG59XG5tb2R1bGUuZXhwb3J0cyA9IHN0eWxlVGFnVHJhbnNmb3JtOyIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0aWQ6IG1vZHVsZUlkLFxuXHRcdC8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4iLCIvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5uID0gKG1vZHVsZSkgPT4ge1xuXHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cblx0XHQoKSA9PiAobW9kdWxlWydkZWZhdWx0J10pIDpcblx0XHQoKSA9PiAobW9kdWxlKTtcblx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgeyBhOiBnZXR0ZXIgfSk7XG5cdHJldHVybiBnZXR0ZXI7XG59OyIsIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IChleHBvcnRzLCBkZWZpbml0aW9uKSA9PiB7XG5cdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG5cdFx0fVxuXHR9XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCIvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4ge1xuXHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcblx0fVxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm5jID0gdW5kZWZpbmVkOyIsInZhciBuLGwsdSx0LGksbyxyLGYsZSxjPXt9LHM9W10sYT0vYWNpdHxleCg/OnN8Z3xufHB8JCl8cnBofGdyaWR8b3dzfG1uY3xudHd8aW5lW2NoXXx6b298Xm9yZHxpdGVyYS9pLGg9QXJyYXkuaXNBcnJheTtmdW5jdGlvbiB2KG4sbCl7Zm9yKHZhciB1IGluIGwpblt1XT1sW3VdO3JldHVybiBufWZ1bmN0aW9uIHAobil7dmFyIGw9bi5wYXJlbnROb2RlO2wmJmwucmVtb3ZlQ2hpbGQobil9ZnVuY3Rpb24geShsLHUsdCl7dmFyIGksbyxyLGY9e307Zm9yKHIgaW4gdSlcImtleVwiPT1yP2k9dVtyXTpcInJlZlwiPT1yP289dVtyXTpmW3JdPXVbcl07aWYoYXJndW1lbnRzLmxlbmd0aD4yJiYoZi5jaGlsZHJlbj1hcmd1bWVudHMubGVuZ3RoPjM/bi5jYWxsKGFyZ3VtZW50cywyKTp0KSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBsJiZudWxsIT1sLmRlZmF1bHRQcm9wcylmb3IociBpbiBsLmRlZmF1bHRQcm9wcyl2b2lkIDA9PT1mW3JdJiYoZltyXT1sLmRlZmF1bHRQcm9wc1tyXSk7cmV0dXJuIGQobCxmLGksbyxudWxsKX1mdW5jdGlvbiBkKG4sdCxpLG8scil7dmFyIGY9e3R5cGU6bixwcm9wczp0LGtleTppLHJlZjpvLF9fazpudWxsLF9fOm51bGwsX19iOjAsX19lOm51bGwsX19kOnZvaWQgMCxfX2M6bnVsbCxfX2g6bnVsbCxjb25zdHJ1Y3Rvcjp2b2lkIDAsX192Om51bGw9PXI/Kyt1OnJ9O3JldHVybiBudWxsPT1yJiZudWxsIT1sLnZub2RlJiZsLnZub2RlKGYpLGZ9ZnVuY3Rpb24gXygpe3JldHVybntjdXJyZW50Om51bGx9fWZ1bmN0aW9uIGsobil7cmV0dXJuIG4uY2hpbGRyZW59ZnVuY3Rpb24gYihuLGwpe3RoaXMucHJvcHM9bix0aGlzLmNvbnRleHQ9bH1mdW5jdGlvbiBnKG4sbCl7aWYobnVsbD09bClyZXR1cm4gbi5fXz9nKG4uX18sbi5fXy5fX2suaW5kZXhPZihuKSsxKTpudWxsO2Zvcih2YXIgdTtsPG4uX19rLmxlbmd0aDtsKyspaWYobnVsbCE9KHU9bi5fX2tbbF0pJiZudWxsIT11Ll9fZSlyZXR1cm4gdS5fX2U7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2Ygbi50eXBlP2cobik6bnVsbH1mdW5jdGlvbiBtKG4pe3ZhciBsLHU7aWYobnVsbCE9KG49bi5fXykmJm51bGwhPW4uX19jKXtmb3Iobi5fX2U9bi5fX2MuYmFzZT1udWxsLGw9MDtsPG4uX19rLmxlbmd0aDtsKyspaWYobnVsbCE9KHU9bi5fX2tbbF0pJiZudWxsIT11Ll9fZSl7bi5fX2U9bi5fX2MuYmFzZT11Ll9fZTticmVha31yZXR1cm4gbShuKX19ZnVuY3Rpb24gdyhuKXsoIW4uX19kJiYobi5fX2Q9ITApJiZpLnB1c2gobikmJiF4Ll9fcisrfHxvIT09bC5kZWJvdW5jZVJlbmRlcmluZykmJigobz1sLmRlYm91bmNlUmVuZGVyaW5nKXx8cikoeCl9ZnVuY3Rpb24geCgpe3ZhciBuLGwsdSx0LG8scixlLGMscztmb3IoaS5zb3J0KGYpO249aS5zaGlmdCgpOyluLl9fZCYmKGw9aS5sZW5ndGgsdD12b2lkIDAsbz12b2lkIDAscj12b2lkIDAsYz0oZT0odT1uKS5fX3YpLl9fZSwocz11Ll9fUCkmJih0PVtdLG89W10sKHI9dih7fSxlKSkuX192PWUuX192KzEsTChzLGUscix1Ll9fbix2b2lkIDAhPT1zLm93bmVyU1ZHRWxlbWVudCxudWxsIT1lLl9faD9bY106bnVsbCx0LG51bGw9PWM/ZyhlKTpjLGUuX19oLG8pLE0odCxlLG8pLGUuX19lIT1jJiZtKGUpKSxpLmxlbmd0aD5sJiZpLnNvcnQoZikpO3guX19yPTB9ZnVuY3Rpb24gUChuLGwsdSx0LGksbyxyLGYsZSxhLHYpe3ZhciBwLHksXyxiLGcsbSx3LHgsUCxTLEg9MCxJPXQmJnQuX19rfHxzLFQ9SS5sZW5ndGgsaj1ULHo9bC5sZW5ndGg7Zm9yKHUuX19rPVtdLHA9MDtwPHo7cCsrKW51bGwhPShiPXUuX19rW3BdPW51bGw9PShiPWxbcF0pfHxcImJvb2xlYW5cIj09dHlwZW9mIGJ8fFwiZnVuY3Rpb25cIj09dHlwZW9mIGI/bnVsbDpcInN0cmluZ1wiPT10eXBlb2YgYnx8XCJudW1iZXJcIj09dHlwZW9mIGJ8fFwiYmlnaW50XCI9PXR5cGVvZiBiP2QobnVsbCxiLG51bGwsbnVsbCxiKTpoKGIpP2Qoayx7Y2hpbGRyZW46Yn0sbnVsbCxudWxsLG51bGwpOmIuX19iPjA/ZChiLnR5cGUsYi5wcm9wcyxiLmtleSxiLnJlZj9iLnJlZjpudWxsLGIuX192KTpiKSYmKGIuX189dSxiLl9fYj11Ll9fYisxLC0xPT09KHg9QShiLEksdz1wK0gsaikpP189YzooXz1JW3hdfHxjLElbeF09dm9pZCAwLGotLSksTChuLGIsXyxpLG8scixmLGUsYSx2KSxnPWIuX19lLCh5PWIucmVmKSYmXy5yZWYhPXkmJihfLnJlZiYmTyhfLnJlZixudWxsLGIpLHYucHVzaCh5LGIuX19jfHxnLGIpKSxudWxsIT1nJiYobnVsbD09bSYmKG09ZyksUz0hKFA9Xz09PWN8fG51bGw9PT1fLl9fdikmJng9PT13LFA/LTE9PXgmJkgtLTp4IT09dyYmKHg9PT13KzE/KEgrKyxTPSEwKTp4Pnc/aj56LXc/KEgrPXgtdyxTPSEwKTpILS06SD14PHcmJng9PXctMT94LXc6MCksdz1wK0gsUz1TfHx4PT1wJiYhUCxcImZ1bmN0aW9uXCIhPXR5cGVvZiBiLnR5cGV8fHg9PT13JiZfLl9fayE9PWIuX19rP1wiZnVuY3Rpb25cIj09dHlwZW9mIGIudHlwZXx8Uz92b2lkIDAhPT1iLl9fZD8oZT1iLl9fZCxiLl9fZD12b2lkIDApOmU9Zy5uZXh0U2libGluZzplPSQobixnLGUpOmU9QyhiLGUsbiksXCJmdW5jdGlvblwiPT10eXBlb2YgdS50eXBlJiYodS5fX2Q9ZSkpKTtmb3IodS5fX2U9bSxwPVQ7cC0tOyludWxsIT1JW3BdJiYoXCJmdW5jdGlvblwiPT10eXBlb2YgdS50eXBlJiZudWxsIT1JW3BdLl9fZSYmSVtwXS5fX2U9PXUuX19kJiYodS5fX2Q9SVtwXS5fX2UubmV4dFNpYmxpbmcpLHEoSVtwXSxJW3BdKSl9ZnVuY3Rpb24gQyhuLGwsdSl7Zm9yKHZhciB0LGk9bi5fX2ssbz0wO2kmJm88aS5sZW5ndGg7bysrKSh0PWlbb10pJiYodC5fXz1uLGw9XCJmdW5jdGlvblwiPT10eXBlb2YgdC50eXBlP0ModCxsLHUpOiQodSx0Ll9fZSxsKSk7cmV0dXJuIGx9ZnVuY3Rpb24gUyhuLGwpe3JldHVybiBsPWx8fFtdLG51bGw9PW58fFwiYm9vbGVhblwiPT10eXBlb2Ygbnx8KGgobik/bi5zb21lKGZ1bmN0aW9uKG4pe1MobixsKX0pOmwucHVzaChuKSksbH1mdW5jdGlvbiAkKG4sbCx1KXtyZXR1cm4gbnVsbD09dXx8dS5wYXJlbnROb2RlIT09bj9uLmluc2VydEJlZm9yZShsLG51bGwpOmw9PXUmJm51bGwhPWwucGFyZW50Tm9kZXx8bi5pbnNlcnRCZWZvcmUobCx1KSxsLm5leHRTaWJsaW5nfWZ1bmN0aW9uIEEobixsLHUsdCl7dmFyIGk9bi5rZXksbz1uLnR5cGUscj11LTEsZj11KzEsZT1sW3VdO2lmKG51bGw9PT1lfHxlJiZpPT1lLmtleSYmbz09PWUudHlwZSlyZXR1cm4gdTtpZih0PihudWxsIT1lPzE6MCkpZm9yKDtyPj0wfHxmPGwubGVuZ3RoOyl7aWYocj49MCl7aWYoKGU9bFtyXSkmJmk9PWUua2V5JiZvPT09ZS50eXBlKXJldHVybiByO3ItLX1pZihmPGwubGVuZ3RoKXtpZigoZT1sW2ZdKSYmaT09ZS5rZXkmJm89PT1lLnR5cGUpcmV0dXJuIGY7ZisrfX1yZXR1cm4tMX1mdW5jdGlvbiBIKG4sbCx1LHQsaSl7dmFyIG87Zm9yKG8gaW4gdSlcImNoaWxkcmVuXCI9PT1vfHxcImtleVwiPT09b3x8byBpbiBsfHxUKG4sbyxudWxsLHVbb10sdCk7Zm9yKG8gaW4gbClpJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBsW29dfHxcImNoaWxkcmVuXCI9PT1vfHxcImtleVwiPT09b3x8XCJ2YWx1ZVwiPT09b3x8XCJjaGVja2VkXCI9PT1vfHx1W29dPT09bFtvXXx8VChuLG8sbFtvXSx1W29dLHQpfWZ1bmN0aW9uIEkobixsLHUpe1wiLVwiPT09bFswXT9uLnNldFByb3BlcnR5KGwsbnVsbD09dT9cIlwiOnUpOm5bbF09bnVsbD09dT9cIlwiOlwibnVtYmVyXCIhPXR5cGVvZiB1fHxhLnRlc3QobCk/dTp1K1wicHhcIn1mdW5jdGlvbiBUKG4sbCx1LHQsaSl7dmFyIG87bjppZihcInN0eWxlXCI9PT1sKWlmKFwic3RyaW5nXCI9PXR5cGVvZiB1KW4uc3R5bGUuY3NzVGV4dD11O2Vsc2V7aWYoXCJzdHJpbmdcIj09dHlwZW9mIHQmJihuLnN0eWxlLmNzc1RleHQ9dD1cIlwiKSx0KWZvcihsIGluIHQpdSYmbCBpbiB1fHxJKG4uc3R5bGUsbCxcIlwiKTtpZih1KWZvcihsIGluIHUpdCYmdVtsXT09PXRbbF18fEkobi5zdHlsZSxsLHVbbF0pfWVsc2UgaWYoXCJvXCI9PT1sWzBdJiZcIm5cIj09PWxbMV0pbz1sIT09KGw9bC5yZXBsYWNlKC9DYXB0dXJlJC8sXCJcIikpLGw9bC50b0xvd2VyQ2FzZSgpaW4gbj9sLnRvTG93ZXJDYXNlKCkuc2xpY2UoMik6bC5zbGljZSgyKSxuLmx8fChuLmw9e30pLG4ubFtsK29dPXUsdT90fHxuLmFkZEV2ZW50TGlzdGVuZXIobCxvP3o6aixvKTpuLnJlbW92ZUV2ZW50TGlzdGVuZXIobCxvP3o6aixvKTtlbHNlIGlmKFwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIiE9PWwpe2lmKGkpbD1sLnJlcGxhY2UoL3hsaW5rKEh8OmgpLyxcImhcIikucmVwbGFjZSgvc05hbWUkLyxcInNcIik7ZWxzZSBpZihcIndpZHRoXCIhPT1sJiZcImhlaWdodFwiIT09bCYmXCJocmVmXCIhPT1sJiZcImxpc3RcIiE9PWwmJlwiZm9ybVwiIT09bCYmXCJ0YWJJbmRleFwiIT09bCYmXCJkb3dubG9hZFwiIT09bCYmXCJyb3dTcGFuXCIhPT1sJiZcImNvbFNwYW5cIiE9PWwmJmwgaW4gbil0cnl7bltsXT1udWxsPT11P1wiXCI6dTticmVhayBufWNhdGNoKG4pe31cImZ1bmN0aW9uXCI9PXR5cGVvZiB1fHwobnVsbD09dXx8ITE9PT11JiZcIi1cIiE9PWxbNF0/bi5yZW1vdmVBdHRyaWJ1dGUobCk6bi5zZXRBdHRyaWJ1dGUobCx1KSl9fWZ1bmN0aW9uIGoobil7cmV0dXJuIHRoaXMubFtuLnR5cGUrITFdKGwuZXZlbnQ/bC5ldmVudChuKTpuKX1mdW5jdGlvbiB6KG4pe3JldHVybiB0aGlzLmxbbi50eXBlKyEwXShsLmV2ZW50P2wuZXZlbnQobik6bil9ZnVuY3Rpb24gTChuLHUsdCxpLG8scixmLGUsYyxzKXt2YXIgYSxwLHksZCxfLGcsbSx3LHgsQyxTLCQsQSxILEksVD11LnR5cGU7aWYodm9pZCAwIT09dS5jb25zdHJ1Y3RvcilyZXR1cm4gbnVsbDtudWxsIT10Ll9faCYmKGM9dC5fX2gsZT11Ll9fZT10Ll9fZSx1Ll9faD1udWxsLHI9W2VdKSwoYT1sLl9fYikmJmEodSk7dHJ5e246aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgVCl7aWYodz11LnByb3BzLHg9KGE9VC5jb250ZXh0VHlwZSkmJmlbYS5fX2NdLEM9YT94P3gucHJvcHMudmFsdWU6YS5fXzppLHQuX19jP209KHA9dS5fX2M9dC5fX2MpLl9fPXAuX19FOihcInByb3RvdHlwZVwiaW4gVCYmVC5wcm90b3R5cGUucmVuZGVyP3UuX19jPXA9bmV3IFQodyxDKToodS5fX2M9cD1uZXcgYih3LEMpLHAuY29uc3RydWN0b3I9VCxwLnJlbmRlcj1CKSx4JiZ4LnN1YihwKSxwLnByb3BzPXcscC5zdGF0ZXx8KHAuc3RhdGU9e30pLHAuY29udGV4dD1DLHAuX19uPWkseT1wLl9fZD0hMCxwLl9faD1bXSxwLl9zYj1bXSksbnVsbD09cC5fX3MmJihwLl9fcz1wLnN0YXRlKSxudWxsIT1ULmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyYmKHAuX19zPT1wLnN0YXRlJiYocC5fX3M9dih7fSxwLl9fcykpLHYocC5fX3MsVC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHModyxwLl9fcykpKSxkPXAucHJvcHMsXz1wLnN0YXRlLHAuX192PXUseSludWxsPT1ULmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyYmbnVsbCE9cC5jb21wb25lbnRXaWxsTW91bnQmJnAuY29tcG9uZW50V2lsbE1vdW50KCksbnVsbCE9cC5jb21wb25lbnREaWRNb3VudCYmcC5fX2gucHVzaChwLmNvbXBvbmVudERpZE1vdW50KTtlbHNle2lmKG51bGw9PVQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzJiZ3IT09ZCYmbnVsbCE9cC5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZwLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHModyxDKSwhcC5fX2UmJihudWxsIT1wLnNob3VsZENvbXBvbmVudFVwZGF0ZSYmITE9PT1wLnNob3VsZENvbXBvbmVudFVwZGF0ZSh3LHAuX19zLEMpfHx1Ll9fdj09PXQuX192KSl7Zm9yKHUuX192IT09dC5fX3YmJihwLnByb3BzPXcscC5zdGF0ZT1wLl9fcyxwLl9fZD0hMSksdS5fX2U9dC5fX2UsdS5fX2s9dC5fX2ssdS5fX2suZm9yRWFjaChmdW5jdGlvbihuKXtuJiYobi5fXz11KX0pLFM9MDtTPHAuX3NiLmxlbmd0aDtTKyspcC5fX2gucHVzaChwLl9zYltTXSk7cC5fc2I9W10scC5fX2gubGVuZ3RoJiZmLnB1c2gocCk7YnJlYWsgbn1udWxsIT1wLmNvbXBvbmVudFdpbGxVcGRhdGUmJnAuY29tcG9uZW50V2lsbFVwZGF0ZSh3LHAuX19zLEMpLG51bGwhPXAuY29tcG9uZW50RGlkVXBkYXRlJiZwLl9faC5wdXNoKGZ1bmN0aW9uKCl7cC5jb21wb25lbnREaWRVcGRhdGUoZCxfLGcpfSl9aWYocC5jb250ZXh0PUMscC5wcm9wcz13LHAuX19QPW4scC5fX2U9ITEsJD1sLl9fcixBPTAsXCJwcm90b3R5cGVcImluIFQmJlQucHJvdG90eXBlLnJlbmRlcil7Zm9yKHAuc3RhdGU9cC5fX3MscC5fX2Q9ITEsJCYmJCh1KSxhPXAucmVuZGVyKHAucHJvcHMscC5zdGF0ZSxwLmNvbnRleHQpLEg9MDtIPHAuX3NiLmxlbmd0aDtIKyspcC5fX2gucHVzaChwLl9zYltIXSk7cC5fc2I9W119ZWxzZSBkb3twLl9fZD0hMSwkJiYkKHUpLGE9cC5yZW5kZXIocC5wcm9wcyxwLnN0YXRlLHAuY29udGV4dCkscC5zdGF0ZT1wLl9fc313aGlsZShwLl9fZCYmKytBPDI1KTtwLnN0YXRlPXAuX19zLG51bGwhPXAuZ2V0Q2hpbGRDb250ZXh0JiYoaT12KHYoe30saSkscC5nZXRDaGlsZENvbnRleHQoKSkpLHl8fG51bGw9PXAuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGV8fChnPXAuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUoZCxfKSksUChuLGgoST1udWxsIT1hJiZhLnR5cGU9PT1rJiZudWxsPT1hLmtleT9hLnByb3BzLmNoaWxkcmVuOmEpP0k6W0ldLHUsdCxpLG8scixmLGUsYyxzKSxwLmJhc2U9dS5fX2UsdS5fX2g9bnVsbCxwLl9faC5sZW5ndGgmJmYucHVzaChwKSxtJiYocC5fX0U9cC5fXz1udWxsKX1lbHNlIG51bGw9PXImJnUuX192PT09dC5fX3Y/KHUuX19rPXQuX19rLHUuX19lPXQuX19lKTp1Ll9fZT1OKHQuX19lLHUsdCxpLG8scixmLGMscyk7KGE9bC5kaWZmZWQpJiZhKHUpfWNhdGNoKG4pe3UuX192PW51bGwsKGN8fG51bGwhPXIpJiYodS5fX2U9ZSx1Ll9faD0hIWMscltyLmluZGV4T2YoZSldPW51bGwpLGwuX19lKG4sdSx0KX19ZnVuY3Rpb24gTShuLHUsdCl7Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKyspTyh0W2ldLHRbKytpXSx0WysraV0pO2wuX19jJiZsLl9fYyh1LG4pLG4uc29tZShmdW5jdGlvbih1KXt0cnl7bj11Ll9faCx1Ll9faD1bXSxuLnNvbWUoZnVuY3Rpb24obil7bi5jYWxsKHUpfSl9Y2F0Y2gobil7bC5fX2Uobix1Ll9fdil9fSl9ZnVuY3Rpb24gTihsLHUsdCxpLG8scixmLGUscyl7dmFyIGEsdix5LGQ9dC5wcm9wcyxfPXUucHJvcHMsaz11LnR5cGUsYj0wO2lmKFwic3ZnXCI9PT1rJiYobz0hMCksbnVsbCE9cilmb3IoO2I8ci5sZW5ndGg7YisrKWlmKChhPXJbYl0pJiZcInNldEF0dHJpYnV0ZVwiaW4gYT09ISFrJiYoaz9hLmxvY2FsTmFtZT09PWs6Mz09PWEubm9kZVR5cGUpKXtsPWEscltiXT1udWxsO2JyZWFrfWlmKG51bGw9PWwpe2lmKG51bGw9PT1rKXJldHVybiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShfKTtsPW8/ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixrKTpkb2N1bWVudC5jcmVhdGVFbGVtZW50KGssXy5pcyYmXykscj1udWxsLGU9ITF9aWYobnVsbD09PWspZD09PV98fGUmJmwuZGF0YT09PV98fChsLmRhdGE9Xyk7ZWxzZXtpZihyPXImJm4uY2FsbChsLmNoaWxkTm9kZXMpLHY9KGQ9dC5wcm9wc3x8YykuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwseT1fLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLCFlKXtpZihudWxsIT1yKWZvcihkPXt9LGI9MDtiPGwuYXR0cmlidXRlcy5sZW5ndGg7YisrKWRbbC5hdHRyaWJ1dGVzW2JdLm5hbWVdPWwuYXR0cmlidXRlc1tiXS52YWx1ZTsoeXx8dikmJih5JiYodiYmeS5fX2h0bWw9PXYuX19odG1sfHx5Ll9faHRtbD09PWwuaW5uZXJIVE1MKXx8KGwuaW5uZXJIVE1MPXkmJnkuX19odG1sfHxcIlwiKSl9aWYoSChsLF8sZCxvLGUpLHkpdS5fX2s9W107ZWxzZSBpZihQKGwsaChiPXUucHJvcHMuY2hpbGRyZW4pP2I6W2JdLHUsdCxpLG8mJlwiZm9yZWlnbk9iamVjdFwiIT09ayxyLGYscj9yWzBdOnQuX19rJiZnKHQsMCksZSxzKSxudWxsIT1yKWZvcihiPXIubGVuZ3RoO2ItLTspbnVsbCE9cltiXSYmcChyW2JdKTtlfHwoXCJ2YWx1ZVwiaW4gXyYmdm9pZCAwIT09KGI9Xy52YWx1ZSkmJihiIT09bC52YWx1ZXx8XCJwcm9ncmVzc1wiPT09ayYmIWJ8fFwib3B0aW9uXCI9PT1rJiZiIT09ZC52YWx1ZSkmJlQobCxcInZhbHVlXCIsYixkLnZhbHVlLCExKSxcImNoZWNrZWRcImluIF8mJnZvaWQgMCE9PShiPV8uY2hlY2tlZCkmJmIhPT1sLmNoZWNrZWQmJlQobCxcImNoZWNrZWRcIixiLGQuY2hlY2tlZCwhMSkpfXJldHVybiBsfWZ1bmN0aW9uIE8obix1LHQpe3RyeXtcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP24odSk6bi5jdXJyZW50PXV9Y2F0Y2gobil7bC5fX2Uobix0KX19ZnVuY3Rpb24gcShuLHUsdCl7dmFyIGksbztpZihsLnVubW91bnQmJmwudW5tb3VudChuKSwoaT1uLnJlZikmJihpLmN1cnJlbnQmJmkuY3VycmVudCE9PW4uX19lfHxPKGksbnVsbCx1KSksbnVsbCE9KGk9bi5fX2MpKXtpZihpLmNvbXBvbmVudFdpbGxVbm1vdW50KXRyeXtpLmNvbXBvbmVudFdpbGxVbm1vdW50KCl9Y2F0Y2gobil7bC5fX2Uobix1KX1pLmJhc2U9aS5fX1A9bnVsbCxuLl9fYz12b2lkIDB9aWYoaT1uLl9faylmb3Iobz0wO288aS5sZW5ndGg7bysrKWlbb10mJnEoaVtvXSx1LHR8fFwiZnVuY3Rpb25cIiE9dHlwZW9mIG4udHlwZSk7dHx8bnVsbD09bi5fX2V8fHAobi5fX2UpLG4uX189bi5fX2U9bi5fX2Q9dm9pZCAwfWZ1bmN0aW9uIEIobixsLHUpe3JldHVybiB0aGlzLmNvbnN0cnVjdG9yKG4sdSl9ZnVuY3Rpb24gRCh1LHQsaSl7dmFyIG8scixmLGU7bC5fXyYmbC5fXyh1LHQpLHI9KG89XCJmdW5jdGlvblwiPT10eXBlb2YgaSk/bnVsbDppJiZpLl9fa3x8dC5fX2ssZj1bXSxlPVtdLEwodCx1PSghbyYmaXx8dCkuX19rPXkoayxudWxsLFt1XSkscnx8YyxjLHZvaWQgMCE9PXQub3duZXJTVkdFbGVtZW50LCFvJiZpP1tpXTpyP251bGw6dC5maXJzdENoaWxkP24uY2FsbCh0LmNoaWxkTm9kZXMpOm51bGwsZiwhbyYmaT9pOnI/ci5fX2U6dC5maXJzdENoaWxkLG8sZSksTShmLHUsZSl9ZnVuY3Rpb24gRShuLGwpe0QobixsLEUpfWZ1bmN0aW9uIEYobCx1LHQpe3ZhciBpLG8scixmLGU9dih7fSxsLnByb3BzKTtmb3IociBpbiBsLnR5cGUmJmwudHlwZS5kZWZhdWx0UHJvcHMmJihmPWwudHlwZS5kZWZhdWx0UHJvcHMpLHUpXCJrZXlcIj09cj9pPXVbcl06XCJyZWZcIj09cj9vPXVbcl06ZVtyXT12b2lkIDA9PT11W3JdJiZ2b2lkIDAhPT1mP2Zbcl06dVtyXTtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4yJiYoZS5jaGlsZHJlbj1hcmd1bWVudHMubGVuZ3RoPjM/bi5jYWxsKGFyZ3VtZW50cywyKTp0KSxkKGwudHlwZSxlLGl8fGwua2V5LG98fGwucmVmLG51bGwpfWZ1bmN0aW9uIEcobixsKXt2YXIgdT17X19jOmw9XCJfX2NDXCIrZSsrLF9fOm4sQ29uc3VtZXI6ZnVuY3Rpb24obixsKXtyZXR1cm4gbi5jaGlsZHJlbihsKX0sUHJvdmlkZXI6ZnVuY3Rpb24obil7dmFyIHUsdDtyZXR1cm4gdGhpcy5nZXRDaGlsZENvbnRleHR8fCh1PVtdLCh0PXt9KVtsXT10aGlzLHRoaXMuZ2V0Q2hpbGRDb250ZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIHR9LHRoaXMuc2hvdWxkQ29tcG9uZW50VXBkYXRlPWZ1bmN0aW9uKG4pe3RoaXMucHJvcHMudmFsdWUhPT1uLnZhbHVlJiZ1LnNvbWUoZnVuY3Rpb24obil7bi5fX2U9ITAsdyhuKX0pfSx0aGlzLnN1Yj1mdW5jdGlvbihuKXt1LnB1c2gobik7dmFyIGw9bi5jb21wb25lbnRXaWxsVW5tb3VudDtuLmNvbXBvbmVudFdpbGxVbm1vdW50PWZ1bmN0aW9uKCl7dS5zcGxpY2UodS5pbmRleE9mKG4pLDEpLGwmJmwuY2FsbChuKX19KSxuLmNoaWxkcmVufX07cmV0dXJuIHUuUHJvdmlkZXIuX189dS5Db25zdW1lci5jb250ZXh0VHlwZT11fW49cy5zbGljZSxsPXtfX2U6ZnVuY3Rpb24obixsLHUsdCl7Zm9yKHZhciBpLG8scjtsPWwuX187KWlmKChpPWwuX19jKSYmIWkuX18pdHJ5e2lmKChvPWkuY29uc3RydWN0b3IpJiZudWxsIT1vLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvciYmKGkuc2V0U3RhdGUoby5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IobikpLHI9aS5fX2QpLG51bGwhPWkuY29tcG9uZW50RGlkQ2F0Y2gmJihpLmNvbXBvbmVudERpZENhdGNoKG4sdHx8e30pLHI9aS5fX2QpLHIpcmV0dXJuIGkuX19FPWl9Y2F0Y2gobCl7bj1sfXRocm93IG59fSx1PTAsdD1mdW5jdGlvbihuKXtyZXR1cm4gbnVsbCE9biYmdm9pZCAwPT09bi5jb25zdHJ1Y3Rvcn0sYi5wcm90b3R5cGUuc2V0U3RhdGU9ZnVuY3Rpb24obixsKXt2YXIgdTt1PW51bGwhPXRoaXMuX19zJiZ0aGlzLl9fcyE9PXRoaXMuc3RhdGU/dGhpcy5fX3M6dGhpcy5fX3M9dih7fSx0aGlzLnN0YXRlKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBuJiYobj1uKHYoe30sdSksdGhpcy5wcm9wcykpLG4mJnYodSxuKSxudWxsIT1uJiZ0aGlzLl9fdiYmKGwmJnRoaXMuX3NiLnB1c2gobCksdyh0aGlzKSl9LGIucHJvdG90eXBlLmZvcmNlVXBkYXRlPWZ1bmN0aW9uKG4pe3RoaXMuX192JiYodGhpcy5fX2U9ITAsbiYmdGhpcy5fX2gucHVzaChuKSx3KHRoaXMpKX0sYi5wcm90b3R5cGUucmVuZGVyPWssaT1bXSxyPVwiZnVuY3Rpb25cIj09dHlwZW9mIFByb21pc2U/UHJvbWlzZS5wcm90b3R5cGUudGhlbi5iaW5kKFByb21pc2UucmVzb2x2ZSgpKTpzZXRUaW1lb3V0LGY9ZnVuY3Rpb24obixsKXtyZXR1cm4gbi5fX3YuX19iLWwuX192Ll9fYn0seC5fX3I9MCxlPTA7ZXhwb3J0e2IgYXMgQ29tcG9uZW50LGsgYXMgRnJhZ21lbnQsRiBhcyBjbG9uZUVsZW1lbnQsRyBhcyBjcmVhdGVDb250ZXh0LHkgYXMgY3JlYXRlRWxlbWVudCxfIGFzIGNyZWF0ZVJlZix5IGFzIGgsRSBhcyBoeWRyYXRlLHQgYXMgaXNWYWxpZEVsZW1lbnQsbCBhcyBvcHRpb25zLEQgYXMgcmVuZGVyLFMgYXMgdG9DaGlsZEFycmF5fTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXByZWFjdC5tb2R1bGUuanMubWFwXG4iLCIvKiEgbm9ibGUtc2VjcDI1NmsxIC0gTUlUIExpY2Vuc2UgKGMpIDIwMTkgUGF1bCBNaWxsZXIgKHBhdWxtaWxsci5jb20pICovXG5pbXBvcnQgKiBhcyBub2RlQ3J5cHRvIGZyb20gJ2NyeXB0byc7XG5jb25zdCBfMG4gPSBCaWdJbnQoMCk7XG5jb25zdCBfMW4gPSBCaWdJbnQoMSk7XG5jb25zdCBfMm4gPSBCaWdJbnQoMik7XG5jb25zdCBfM24gPSBCaWdJbnQoMyk7XG5jb25zdCBfOG4gPSBCaWdJbnQoOCk7XG5jb25zdCBDVVJWRSA9IE9iamVjdC5mcmVlemUoe1xuICAgIGE6IF8wbixcbiAgICBiOiBCaWdJbnQoNyksXG4gICAgUDogQmlnSW50KCcweGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZlZmZmZmZjMmYnKSxcbiAgICBuOiBCaWdJbnQoJzB4ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmViYWFlZGNlNmFmNDhhMDNiYmZkMjVlOGNkMDM2NDE0MScpLFxuICAgIGg6IF8xbixcbiAgICBHeDogQmlnSW50KCc1NTA2NjI2MzAyMjI3NzM0MzY2OTU3ODcxODg5NTE2ODUzNDMyNjI1MDYwMzQ1Mzc3NzU5NDE3NTUwMDE4NzM2MDM4OTExNjcyOTI0MCcpLFxuICAgIEd5OiBCaWdJbnQoJzMyNjcwNTEwMDIwNzU4ODE2OTc4MDgzMDg1MTMwNTA3MDQzMTg0NDcxMjczMzgwNjU5MjQzMjc1OTM4OTA0MzM1NzU3MzM3NDgyNDI0JyksXG4gICAgYmV0YTogQmlnSW50KCcweDdhZTk2YTJiNjU3YzA3MTA2ZTY0NDc5ZWFjMzQzNGU5OWNmMDQ5NzUxMmY1ODk5NWMxMzk2YzI4NzE5NTAxZWUnKSxcbn0pO1xuY29uc3QgZGl2TmVhcmVzdCA9IChhLCBiKSA9PiAoYSArIGIgLyBfMm4pIC8gYjtcbmNvbnN0IGVuZG8gPSB7XG4gICAgYmV0YTogQmlnSW50KCcweDdhZTk2YTJiNjU3YzA3MTA2ZTY0NDc5ZWFjMzQzNGU5OWNmMDQ5NzUxMmY1ODk5NWMxMzk2YzI4NzE5NTAxZWUnKSxcbiAgICBzcGxpdFNjYWxhcihrKSB7XG4gICAgICAgIGNvbnN0IHsgbiB9ID0gQ1VSVkU7XG4gICAgICAgIGNvbnN0IGExID0gQmlnSW50KCcweDMwODZkMjIxYTdkNDZiY2RlODZjOTBlNDkyODRlYjE1Jyk7XG4gICAgICAgIGNvbnN0IGIxID0gLV8xbiAqIEJpZ0ludCgnMHhlNDQzN2VkNjAxMGU4ODI4NmY1NDdmYTkwYWJmZTRjMycpO1xuICAgICAgICBjb25zdCBhMiA9IEJpZ0ludCgnMHgxMTRjYTUwZjdhOGUyZjNmNjU3YzExMDhkOWQ0NGNmZDgnKTtcbiAgICAgICAgY29uc3QgYjIgPSBhMTtcbiAgICAgICAgY29uc3QgUE9XXzJfMTI4ID0gQmlnSW50KCcweDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcpO1xuICAgICAgICBjb25zdCBjMSA9IGRpdk5lYXJlc3QoYjIgKiBrLCBuKTtcbiAgICAgICAgY29uc3QgYzIgPSBkaXZOZWFyZXN0KC1iMSAqIGssIG4pO1xuICAgICAgICBsZXQgazEgPSBtb2QoayAtIGMxICogYTEgLSBjMiAqIGEyLCBuKTtcbiAgICAgICAgbGV0IGsyID0gbW9kKC1jMSAqIGIxIC0gYzIgKiBiMiwgbik7XG4gICAgICAgIGNvbnN0IGsxbmVnID0gazEgPiBQT1dfMl8xMjg7XG4gICAgICAgIGNvbnN0IGsybmVnID0gazIgPiBQT1dfMl8xMjg7XG4gICAgICAgIGlmIChrMW5lZylcbiAgICAgICAgICAgIGsxID0gbiAtIGsxO1xuICAgICAgICBpZiAoazJuZWcpXG4gICAgICAgICAgICBrMiA9IG4gLSBrMjtcbiAgICAgICAgaWYgKGsxID4gUE9XXzJfMTI4IHx8IGsyID4gUE9XXzJfMTI4KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3NwbGl0U2NhbGFyRW5kbzogRW5kb21vcnBoaXNtIGZhaWxlZCwgaz0nICsgayk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgazFuZWcsIGsxLCBrMm5lZywgazIgfTtcbiAgICB9LFxufTtcbmNvbnN0IGZpZWxkTGVuID0gMzI7XG5jb25zdCBncm91cExlbiA9IDMyO1xuY29uc3QgaGFzaExlbiA9IDMyO1xuY29uc3QgY29tcHJlc3NlZExlbiA9IGZpZWxkTGVuICsgMTtcbmNvbnN0IHVuY29tcHJlc3NlZExlbiA9IDIgKiBmaWVsZExlbiArIDE7XG5leHBvcnQgeyBDVVJWRSB9O1xuZnVuY3Rpb24gd2VpZXJzdHJhc3MoeCkge1xuICAgIGNvbnN0IHsgYSwgYiB9ID0gQ1VSVkU7XG4gICAgY29uc3QgeDIgPSBtb2QoeCAqIHgpO1xuICAgIGNvbnN0IHgzID0gbW9kKHgyICogeCk7XG4gICAgcmV0dXJuIG1vZCh4MyArIGEgKiB4ICsgYik7XG59XG5jb25zdCBVU0VfRU5ET01PUlBISVNNID0gQ1VSVkUuYSA9PT0gXzBuO1xuY2xhc3MgU2hhRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IobWVzc2FnZSkge1xuICAgICAgICBzdXBlcihtZXNzYWdlKTtcbiAgICB9XG59XG5mdW5jdGlvbiBhc3NlcnRKYWNQb2ludChvdGhlcikge1xuICAgIGlmICghKG90aGVyIGluc3RhbmNlb2YgSmFjb2JpYW5Qb2ludCkpXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0phY29iaWFuUG9pbnQgZXhwZWN0ZWQnKTtcbn1cbmNsYXNzIEphY29iaWFuUG9pbnQge1xuICAgIGNvbnN0cnVjdG9yKHgsIHksIHopIHtcbiAgICAgICAgdGhpcy54ID0geDtcbiAgICAgICAgdGhpcy55ID0geTtcbiAgICAgICAgdGhpcy56ID0gejtcbiAgICB9XG4gICAgc3RhdGljIGZyb21BZmZpbmUocCkge1xuICAgICAgICBpZiAoIShwIGluc3RhbmNlb2YgUG9pbnQpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdKYWNvYmlhblBvaW50I2Zyb21BZmZpbmU6IGV4cGVjdGVkIFBvaW50Jyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHAuZXF1YWxzKFBvaW50LlpFUk8pKVxuICAgICAgICAgICAgcmV0dXJuIEphY29iaWFuUG9pbnQuWkVSTztcbiAgICAgICAgcmV0dXJuIG5ldyBKYWNvYmlhblBvaW50KHAueCwgcC55LCBfMW4pO1xuICAgIH1cbiAgICBzdGF0aWMgdG9BZmZpbmVCYXRjaChwb2ludHMpIHtcbiAgICAgICAgY29uc3QgdG9JbnYgPSBpbnZlcnRCYXRjaChwb2ludHMubWFwKChwKSA9PiBwLnopKTtcbiAgICAgICAgcmV0dXJuIHBvaW50cy5tYXAoKHAsIGkpID0+IHAudG9BZmZpbmUodG9JbnZbaV0pKTtcbiAgICB9XG4gICAgc3RhdGljIG5vcm1hbGl6ZVoocG9pbnRzKSB7XG4gICAgICAgIHJldHVybiBKYWNvYmlhblBvaW50LnRvQWZmaW5lQmF0Y2gocG9pbnRzKS5tYXAoSmFjb2JpYW5Qb2ludC5mcm9tQWZmaW5lKTtcbiAgICB9XG4gICAgZXF1YWxzKG90aGVyKSB7XG4gICAgICAgIGFzc2VydEphY1BvaW50KG90aGVyKTtcbiAgICAgICAgY29uc3QgeyB4OiBYMSwgeTogWTEsIHo6IFoxIH0gPSB0aGlzO1xuICAgICAgICBjb25zdCB7IHg6IFgyLCB5OiBZMiwgejogWjIgfSA9IG90aGVyO1xuICAgICAgICBjb25zdCBaMVoxID0gbW9kKFoxICogWjEpO1xuICAgICAgICBjb25zdCBaMloyID0gbW9kKFoyICogWjIpO1xuICAgICAgICBjb25zdCBVMSA9IG1vZChYMSAqIFoyWjIpO1xuICAgICAgICBjb25zdCBVMiA9IG1vZChYMiAqIFoxWjEpO1xuICAgICAgICBjb25zdCBTMSA9IG1vZChtb2QoWTEgKiBaMikgKiBaMloyKTtcbiAgICAgICAgY29uc3QgUzIgPSBtb2QobW9kKFkyICogWjEpICogWjFaMSk7XG4gICAgICAgIHJldHVybiBVMSA9PT0gVTIgJiYgUzEgPT09IFMyO1xuICAgIH1cbiAgICBuZWdhdGUoKSB7XG4gICAgICAgIHJldHVybiBuZXcgSmFjb2JpYW5Qb2ludCh0aGlzLngsIG1vZCgtdGhpcy55KSwgdGhpcy56KTtcbiAgICB9XG4gICAgZG91YmxlKCkge1xuICAgICAgICBjb25zdCB7IHg6IFgxLCB5OiBZMSwgejogWjEgfSA9IHRoaXM7XG4gICAgICAgIGNvbnN0IEEgPSBtb2QoWDEgKiBYMSk7XG4gICAgICAgIGNvbnN0IEIgPSBtb2QoWTEgKiBZMSk7XG4gICAgICAgIGNvbnN0IEMgPSBtb2QoQiAqIEIpO1xuICAgICAgICBjb25zdCB4MWIgPSBYMSArIEI7XG4gICAgICAgIGNvbnN0IEQgPSBtb2QoXzJuICogKG1vZCh4MWIgKiB4MWIpIC0gQSAtIEMpKTtcbiAgICAgICAgY29uc3QgRSA9IG1vZChfM24gKiBBKTtcbiAgICAgICAgY29uc3QgRiA9IG1vZChFICogRSk7XG4gICAgICAgIGNvbnN0IFgzID0gbW9kKEYgLSBfMm4gKiBEKTtcbiAgICAgICAgY29uc3QgWTMgPSBtb2QoRSAqIChEIC0gWDMpIC0gXzhuICogQyk7XG4gICAgICAgIGNvbnN0IFozID0gbW9kKF8ybiAqIFkxICogWjEpO1xuICAgICAgICByZXR1cm4gbmV3IEphY29iaWFuUG9pbnQoWDMsIFkzLCBaMyk7XG4gICAgfVxuICAgIGFkZChvdGhlcikge1xuICAgICAgICBhc3NlcnRKYWNQb2ludChvdGhlcik7XG4gICAgICAgIGNvbnN0IHsgeDogWDEsIHk6IFkxLCB6OiBaMSB9ID0gdGhpcztcbiAgICAgICAgY29uc3QgeyB4OiBYMiwgeTogWTIsIHo6IFoyIH0gPSBvdGhlcjtcbiAgICAgICAgaWYgKFgyID09PSBfMG4gfHwgWTIgPT09IF8wbilcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICBpZiAoWDEgPT09IF8wbiB8fCBZMSA9PT0gXzBuKVxuICAgICAgICAgICAgcmV0dXJuIG90aGVyO1xuICAgICAgICBjb25zdCBaMVoxID0gbW9kKFoxICogWjEpO1xuICAgICAgICBjb25zdCBaMloyID0gbW9kKFoyICogWjIpO1xuICAgICAgICBjb25zdCBVMSA9IG1vZChYMSAqIFoyWjIpO1xuICAgICAgICBjb25zdCBVMiA9IG1vZChYMiAqIFoxWjEpO1xuICAgICAgICBjb25zdCBTMSA9IG1vZChtb2QoWTEgKiBaMikgKiBaMloyKTtcbiAgICAgICAgY29uc3QgUzIgPSBtb2QobW9kKFkyICogWjEpICogWjFaMSk7XG4gICAgICAgIGNvbnN0IEggPSBtb2QoVTIgLSBVMSk7XG4gICAgICAgIGNvbnN0IHIgPSBtb2QoUzIgLSBTMSk7XG4gICAgICAgIGlmIChIID09PSBfMG4pIHtcbiAgICAgICAgICAgIGlmIChyID09PSBfMG4pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kb3VibGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBKYWNvYmlhblBvaW50LlpFUk87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgSEggPSBtb2QoSCAqIEgpO1xuICAgICAgICBjb25zdCBISEggPSBtb2QoSCAqIEhIKTtcbiAgICAgICAgY29uc3QgViA9IG1vZChVMSAqIEhIKTtcbiAgICAgICAgY29uc3QgWDMgPSBtb2QociAqIHIgLSBISEggLSBfMm4gKiBWKTtcbiAgICAgICAgY29uc3QgWTMgPSBtb2QociAqIChWIC0gWDMpIC0gUzEgKiBISEgpO1xuICAgICAgICBjb25zdCBaMyA9IG1vZChaMSAqIFoyICogSCk7XG4gICAgICAgIHJldHVybiBuZXcgSmFjb2JpYW5Qb2ludChYMywgWTMsIFozKTtcbiAgICB9XG4gICAgc3VidHJhY3Qob3RoZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkKG90aGVyLm5lZ2F0ZSgpKTtcbiAgICB9XG4gICAgbXVsdGlwbHlVbnNhZmUoc2NhbGFyKSB7XG4gICAgICAgIGNvbnN0IFAwID0gSmFjb2JpYW5Qb2ludC5aRVJPO1xuICAgICAgICBpZiAodHlwZW9mIHNjYWxhciA9PT0gJ2JpZ2ludCcgJiYgc2NhbGFyID09PSBfMG4pXG4gICAgICAgICAgICByZXR1cm4gUDA7XG4gICAgICAgIGxldCBuID0gbm9ybWFsaXplU2NhbGFyKHNjYWxhcik7XG4gICAgICAgIGlmIChuID09PSBfMW4pXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgaWYgKCFVU0VfRU5ET01PUlBISVNNKSB7XG4gICAgICAgICAgICBsZXQgcCA9IFAwO1xuICAgICAgICAgICAgbGV0IGQgPSB0aGlzO1xuICAgICAgICAgICAgd2hpbGUgKG4gPiBfMG4pIHtcbiAgICAgICAgICAgICAgICBpZiAobiAmIF8xbilcbiAgICAgICAgICAgICAgICAgICAgcCA9IHAuYWRkKGQpO1xuICAgICAgICAgICAgICAgIGQgPSBkLmRvdWJsZSgpO1xuICAgICAgICAgICAgICAgIG4gPj49IF8xbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwO1xuICAgICAgICB9XG4gICAgICAgIGxldCB7IGsxbmVnLCBrMSwgazJuZWcsIGsyIH0gPSBlbmRvLnNwbGl0U2NhbGFyKG4pO1xuICAgICAgICBsZXQgazFwID0gUDA7XG4gICAgICAgIGxldCBrMnAgPSBQMDtcbiAgICAgICAgbGV0IGQgPSB0aGlzO1xuICAgICAgICB3aGlsZSAoazEgPiBfMG4gfHwgazIgPiBfMG4pIHtcbiAgICAgICAgICAgIGlmIChrMSAmIF8xbilcbiAgICAgICAgICAgICAgICBrMXAgPSBrMXAuYWRkKGQpO1xuICAgICAgICAgICAgaWYgKGsyICYgXzFuKVxuICAgICAgICAgICAgICAgIGsycCA9IGsycC5hZGQoZCk7XG4gICAgICAgICAgICBkID0gZC5kb3VibGUoKTtcbiAgICAgICAgICAgIGsxID4+PSBfMW47XG4gICAgICAgICAgICBrMiA+Pj0gXzFuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChrMW5lZylcbiAgICAgICAgICAgIGsxcCA9IGsxcC5uZWdhdGUoKTtcbiAgICAgICAgaWYgKGsybmVnKVxuICAgICAgICAgICAgazJwID0gazJwLm5lZ2F0ZSgpO1xuICAgICAgICBrMnAgPSBuZXcgSmFjb2JpYW5Qb2ludChtb2QoazJwLnggKiBlbmRvLmJldGEpLCBrMnAueSwgazJwLnopO1xuICAgICAgICByZXR1cm4gazFwLmFkZChrMnApO1xuICAgIH1cbiAgICBwcmVjb21wdXRlV2luZG93KFcpIHtcbiAgICAgICAgY29uc3Qgd2luZG93cyA9IFVTRV9FTkRPTU9SUEhJU00gPyAxMjggLyBXICsgMSA6IDI1NiAvIFcgKyAxO1xuICAgICAgICBjb25zdCBwb2ludHMgPSBbXTtcbiAgICAgICAgbGV0IHAgPSB0aGlzO1xuICAgICAgICBsZXQgYmFzZSA9IHA7XG4gICAgICAgIGZvciAobGV0IHdpbmRvdyA9IDA7IHdpbmRvdyA8IHdpbmRvd3M7IHdpbmRvdysrKSB7XG4gICAgICAgICAgICBiYXNlID0gcDtcbiAgICAgICAgICAgIHBvaW50cy5wdXNoKGJhc2UpO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCAyICoqIChXIC0gMSk7IGkrKykge1xuICAgICAgICAgICAgICAgIGJhc2UgPSBiYXNlLmFkZChwKTtcbiAgICAgICAgICAgICAgICBwb2ludHMucHVzaChiYXNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHAgPSBiYXNlLmRvdWJsZSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwb2ludHM7XG4gICAgfVxuICAgIHdOQUYobiwgYWZmaW5lUG9pbnQpIHtcbiAgICAgICAgaWYgKCFhZmZpbmVQb2ludCAmJiB0aGlzLmVxdWFscyhKYWNvYmlhblBvaW50LkJBU0UpKVxuICAgICAgICAgICAgYWZmaW5lUG9pbnQgPSBQb2ludC5CQVNFO1xuICAgICAgICBjb25zdCBXID0gKGFmZmluZVBvaW50ICYmIGFmZmluZVBvaW50Ll9XSU5ET1dfU0laRSkgfHwgMTtcbiAgICAgICAgaWYgKDI1NiAlIFcpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUG9pbnQjd05BRjogSW52YWxpZCBwcmVjb21wdXRhdGlvbiB3aW5kb3csIG11c3QgYmUgcG93ZXIgb2YgMicpO1xuICAgICAgICB9XG4gICAgICAgIGxldCBwcmVjb21wdXRlcyA9IGFmZmluZVBvaW50ICYmIHBvaW50UHJlY29tcHV0ZXMuZ2V0KGFmZmluZVBvaW50KTtcbiAgICAgICAgaWYgKCFwcmVjb21wdXRlcykge1xuICAgICAgICAgICAgcHJlY29tcHV0ZXMgPSB0aGlzLnByZWNvbXB1dGVXaW5kb3coVyk7XG4gICAgICAgICAgICBpZiAoYWZmaW5lUG9pbnQgJiYgVyAhPT0gMSkge1xuICAgICAgICAgICAgICAgIHByZWNvbXB1dGVzID0gSmFjb2JpYW5Qb2ludC5ub3JtYWxpemVaKHByZWNvbXB1dGVzKTtcbiAgICAgICAgICAgICAgICBwb2ludFByZWNvbXB1dGVzLnNldChhZmZpbmVQb2ludCwgcHJlY29tcHV0ZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGxldCBwID0gSmFjb2JpYW5Qb2ludC5aRVJPO1xuICAgICAgICBsZXQgZiA9IEphY29iaWFuUG9pbnQuQkFTRTtcbiAgICAgICAgY29uc3Qgd2luZG93cyA9IDEgKyAoVVNFX0VORE9NT1JQSElTTSA/IDEyOCAvIFcgOiAyNTYgLyBXKTtcbiAgICAgICAgY29uc3Qgd2luZG93U2l6ZSA9IDIgKiogKFcgLSAxKTtcbiAgICAgICAgY29uc3QgbWFzayA9IEJpZ0ludCgyICoqIFcgLSAxKTtcbiAgICAgICAgY29uc3QgbWF4TnVtYmVyID0gMiAqKiBXO1xuICAgICAgICBjb25zdCBzaGlmdEJ5ID0gQmlnSW50KFcpO1xuICAgICAgICBmb3IgKGxldCB3aW5kb3cgPSAwOyB3aW5kb3cgPCB3aW5kb3dzOyB3aW5kb3crKykge1xuICAgICAgICAgICAgY29uc3Qgb2Zmc2V0ID0gd2luZG93ICogd2luZG93U2l6ZTtcbiAgICAgICAgICAgIGxldCB3Yml0cyA9IE51bWJlcihuICYgbWFzayk7XG4gICAgICAgICAgICBuID4+PSBzaGlmdEJ5O1xuICAgICAgICAgICAgaWYgKHdiaXRzID4gd2luZG93U2l6ZSkge1xuICAgICAgICAgICAgICAgIHdiaXRzIC09IG1heE51bWJlcjtcbiAgICAgICAgICAgICAgICBuICs9IF8xbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG9mZnNldDEgPSBvZmZzZXQ7XG4gICAgICAgICAgICBjb25zdCBvZmZzZXQyID0gb2Zmc2V0ICsgTWF0aC5hYnMod2JpdHMpIC0gMTtcbiAgICAgICAgICAgIGNvbnN0IGNvbmQxID0gd2luZG93ICUgMiAhPT0gMDtcbiAgICAgICAgICAgIGNvbnN0IGNvbmQyID0gd2JpdHMgPCAwO1xuICAgICAgICAgICAgaWYgKHdiaXRzID09PSAwKSB7XG4gICAgICAgICAgICAgICAgZiA9IGYuYWRkKGNvbnN0VGltZU5lZ2F0ZShjb25kMSwgcHJlY29tcHV0ZXNbb2Zmc2V0MV0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHAgPSBwLmFkZChjb25zdFRpbWVOZWdhdGUoY29uZDIsIHByZWNvbXB1dGVzW29mZnNldDJdKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgcCwgZiB9O1xuICAgIH1cbiAgICBtdWx0aXBseShzY2FsYXIsIGFmZmluZVBvaW50KSB7XG4gICAgICAgIGxldCBuID0gbm9ybWFsaXplU2NhbGFyKHNjYWxhcik7XG4gICAgICAgIGxldCBwb2ludDtcbiAgICAgICAgbGV0IGZha2U7XG4gICAgICAgIGlmIChVU0VfRU5ET01PUlBISVNNKSB7XG4gICAgICAgICAgICBjb25zdCB7IGsxbmVnLCBrMSwgazJuZWcsIGsyIH0gPSBlbmRvLnNwbGl0U2NhbGFyKG4pO1xuICAgICAgICAgICAgbGV0IHsgcDogazFwLCBmOiBmMXAgfSA9IHRoaXMud05BRihrMSwgYWZmaW5lUG9pbnQpO1xuICAgICAgICAgICAgbGV0IHsgcDogazJwLCBmOiBmMnAgfSA9IHRoaXMud05BRihrMiwgYWZmaW5lUG9pbnQpO1xuICAgICAgICAgICAgazFwID0gY29uc3RUaW1lTmVnYXRlKGsxbmVnLCBrMXApO1xuICAgICAgICAgICAgazJwID0gY29uc3RUaW1lTmVnYXRlKGsybmVnLCBrMnApO1xuICAgICAgICAgICAgazJwID0gbmV3IEphY29iaWFuUG9pbnQobW9kKGsycC54ICogZW5kby5iZXRhKSwgazJwLnksIGsycC56KTtcbiAgICAgICAgICAgIHBvaW50ID0gazFwLmFkZChrMnApO1xuICAgICAgICAgICAgZmFrZSA9IGYxcC5hZGQoZjJwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHsgcCwgZiB9ID0gdGhpcy53TkFGKG4sIGFmZmluZVBvaW50KTtcbiAgICAgICAgICAgIHBvaW50ID0gcDtcbiAgICAgICAgICAgIGZha2UgPSBmO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBKYWNvYmlhblBvaW50Lm5vcm1hbGl6ZVooW3BvaW50LCBmYWtlXSlbMF07XG4gICAgfVxuICAgIHRvQWZmaW5lKGludlopIHtcbiAgICAgICAgY29uc3QgeyB4LCB5LCB6IH0gPSB0aGlzO1xuICAgICAgICBjb25zdCBpczAgPSB0aGlzLmVxdWFscyhKYWNvYmlhblBvaW50LlpFUk8pO1xuICAgICAgICBpZiAoaW52WiA9PSBudWxsKVxuICAgICAgICAgICAgaW52WiA9IGlzMCA/IF84biA6IGludmVydCh6KTtcbiAgICAgICAgY29uc3QgaXoxID0gaW52WjtcbiAgICAgICAgY29uc3QgaXoyID0gbW9kKGl6MSAqIGl6MSk7XG4gICAgICAgIGNvbnN0IGl6MyA9IG1vZChpejIgKiBpejEpO1xuICAgICAgICBjb25zdCBheCA9IG1vZCh4ICogaXoyKTtcbiAgICAgICAgY29uc3QgYXkgPSBtb2QoeSAqIGl6Myk7XG4gICAgICAgIGNvbnN0IHp6ID0gbW9kKHogKiBpejEpO1xuICAgICAgICBpZiAoaXMwKVxuICAgICAgICAgICAgcmV0dXJuIFBvaW50LlpFUk87XG4gICAgICAgIGlmICh6eiAhPT0gXzFuKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZaIHdhcyBpbnZhbGlkJyk7XG4gICAgICAgIHJldHVybiBuZXcgUG9pbnQoYXgsIGF5KTtcbiAgICB9XG59XG5KYWNvYmlhblBvaW50LkJBU0UgPSBuZXcgSmFjb2JpYW5Qb2ludChDVVJWRS5HeCwgQ1VSVkUuR3ksIF8xbik7XG5KYWNvYmlhblBvaW50LlpFUk8gPSBuZXcgSmFjb2JpYW5Qb2ludChfMG4sIF8xbiwgXzBuKTtcbmZ1bmN0aW9uIGNvbnN0VGltZU5lZ2F0ZShjb25kaXRpb24sIGl0ZW0pIHtcbiAgICBjb25zdCBuZWcgPSBpdGVtLm5lZ2F0ZSgpO1xuICAgIHJldHVybiBjb25kaXRpb24gPyBuZWcgOiBpdGVtO1xufVxuY29uc3QgcG9pbnRQcmVjb21wdXRlcyA9IG5ldyBXZWFrTWFwKCk7XG5leHBvcnQgY2xhc3MgUG9pbnQge1xuICAgIGNvbnN0cnVjdG9yKHgsIHkpIHtcbiAgICAgICAgdGhpcy54ID0geDtcbiAgICAgICAgdGhpcy55ID0geTtcbiAgICB9XG4gICAgX3NldFdpbmRvd1NpemUod2luZG93U2l6ZSkge1xuICAgICAgICB0aGlzLl9XSU5ET1dfU0laRSA9IHdpbmRvd1NpemU7XG4gICAgICAgIHBvaW50UHJlY29tcHV0ZXMuZGVsZXRlKHRoaXMpO1xuICAgIH1cbiAgICBoYXNFdmVuWSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMueSAlIF8ybiA9PT0gXzBuO1xuICAgIH1cbiAgICBzdGF0aWMgZnJvbUNvbXByZXNzZWRIZXgoYnl0ZXMpIHtcbiAgICAgICAgY29uc3QgaXNTaG9ydCA9IGJ5dGVzLmxlbmd0aCA9PT0gMzI7XG4gICAgICAgIGNvbnN0IHggPSBieXRlc1RvTnVtYmVyKGlzU2hvcnQgPyBieXRlcyA6IGJ5dGVzLnN1YmFycmF5KDEpKTtcbiAgICAgICAgaWYgKCFpc1ZhbGlkRmllbGRFbGVtZW50KHgpKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdQb2ludCBpcyBub3Qgb24gY3VydmUnKTtcbiAgICAgICAgY29uc3QgeTIgPSB3ZWllcnN0cmFzcyh4KTtcbiAgICAgICAgbGV0IHkgPSBzcXJ0TW9kKHkyKTtcbiAgICAgICAgY29uc3QgaXNZT2RkID0gKHkgJiBfMW4pID09PSBfMW47XG4gICAgICAgIGlmIChpc1Nob3J0KSB7XG4gICAgICAgICAgICBpZiAoaXNZT2RkKVxuICAgICAgICAgICAgICAgIHkgPSBtb2QoLXkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgaXNGaXJzdEJ5dGVPZGQgPSAoYnl0ZXNbMF0gJiAxKSA9PT0gMTtcbiAgICAgICAgICAgIGlmIChpc0ZpcnN0Qnl0ZU9kZCAhPT0gaXNZT2RkKVxuICAgICAgICAgICAgICAgIHkgPSBtb2QoLXkpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBvaW50ID0gbmV3IFBvaW50KHgsIHkpO1xuICAgICAgICBwb2ludC5hc3NlcnRWYWxpZGl0eSgpO1xuICAgICAgICByZXR1cm4gcG9pbnQ7XG4gICAgfVxuICAgIHN0YXRpYyBmcm9tVW5jb21wcmVzc2VkSGV4KGJ5dGVzKSB7XG4gICAgICAgIGNvbnN0IHggPSBieXRlc1RvTnVtYmVyKGJ5dGVzLnN1YmFycmF5KDEsIGZpZWxkTGVuICsgMSkpO1xuICAgICAgICBjb25zdCB5ID0gYnl0ZXNUb051bWJlcihieXRlcy5zdWJhcnJheShmaWVsZExlbiArIDEsIGZpZWxkTGVuICogMiArIDEpKTtcbiAgICAgICAgY29uc3QgcG9pbnQgPSBuZXcgUG9pbnQoeCwgeSk7XG4gICAgICAgIHBvaW50LmFzc2VydFZhbGlkaXR5KCk7XG4gICAgICAgIHJldHVybiBwb2ludDtcbiAgICB9XG4gICAgc3RhdGljIGZyb21IZXgoaGV4KSB7XG4gICAgICAgIGNvbnN0IGJ5dGVzID0gZW5zdXJlQnl0ZXMoaGV4KTtcbiAgICAgICAgY29uc3QgbGVuID0gYnl0ZXMubGVuZ3RoO1xuICAgICAgICBjb25zdCBoZWFkZXIgPSBieXRlc1swXTtcbiAgICAgICAgaWYgKGxlbiA9PT0gZmllbGRMZW4pXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mcm9tQ29tcHJlc3NlZEhleChieXRlcyk7XG4gICAgICAgIGlmIChsZW4gPT09IGNvbXByZXNzZWRMZW4gJiYgKGhlYWRlciA9PT0gMHgwMiB8fCBoZWFkZXIgPT09IDB4MDMpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mcm9tQ29tcHJlc3NlZEhleChieXRlcyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxlbiA9PT0gdW5jb21wcmVzc2VkTGVuICYmIGhlYWRlciA9PT0gMHgwNClcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZyb21VbmNvbXByZXNzZWRIZXgoYnl0ZXMpO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBvaW50LmZyb21IZXg6IHJlY2VpdmVkIGludmFsaWQgcG9pbnQuIEV4cGVjdGVkIDMyLSR7Y29tcHJlc3NlZExlbn0gY29tcHJlc3NlZCBieXRlcyBvciAke3VuY29tcHJlc3NlZExlbn0gdW5jb21wcmVzc2VkIGJ5dGVzLCBub3QgJHtsZW59YCk7XG4gICAgfVxuICAgIHN0YXRpYyBmcm9tUHJpdmF0ZUtleShwcml2YXRlS2V5KSB7XG4gICAgICAgIHJldHVybiBQb2ludC5CQVNFLm11bHRpcGx5KG5vcm1hbGl6ZVByaXZhdGVLZXkocHJpdmF0ZUtleSkpO1xuICAgIH1cbiAgICBzdGF0aWMgZnJvbVNpZ25hdHVyZShtc2dIYXNoLCBzaWduYXR1cmUsIHJlY292ZXJ5KSB7XG4gICAgICAgIGNvbnN0IHsgciwgcyB9ID0gbm9ybWFsaXplU2lnbmF0dXJlKHNpZ25hdHVyZSk7XG4gICAgICAgIGlmICghWzAsIDEsIDIsIDNdLmluY2x1ZGVzKHJlY292ZXJ5KSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHJlY292ZXI6IGludmFsaWQgcmVjb3ZlcnkgYml0Jyk7XG4gICAgICAgIGNvbnN0IGggPSB0cnVuY2F0ZUhhc2goZW5zdXJlQnl0ZXMobXNnSGFzaCkpO1xuICAgICAgICBjb25zdCB7IG4gfSA9IENVUlZFO1xuICAgICAgICBjb25zdCByYWRqID0gcmVjb3ZlcnkgPT09IDIgfHwgcmVjb3ZlcnkgPT09IDMgPyByICsgbiA6IHI7XG4gICAgICAgIGNvbnN0IHJpbnYgPSBpbnZlcnQocmFkaiwgbik7XG4gICAgICAgIGNvbnN0IHUxID0gbW9kKC1oICogcmludiwgbik7XG4gICAgICAgIGNvbnN0IHUyID0gbW9kKHMgKiByaW52LCBuKTtcbiAgICAgICAgY29uc3QgcHJlZml4ID0gcmVjb3ZlcnkgJiAxID8gJzAzJyA6ICcwMic7XG4gICAgICAgIGNvbnN0IFIgPSBQb2ludC5mcm9tSGV4KHByZWZpeCArIG51bVRvMzJiU3RyKHJhZGopKTtcbiAgICAgICAgY29uc3QgUSA9IFBvaW50LkJBU0UubXVsdGlwbHlBbmRBZGRVbnNhZmUoUiwgdTEsIHUyKTtcbiAgICAgICAgaWYgKCFRKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgcmVjb3ZlciBzaWduYXR1cmU6IHBvaW50IGF0IGluZmluaWZ5Jyk7XG4gICAgICAgIFEuYXNzZXJ0VmFsaWRpdHkoKTtcbiAgICAgICAgcmV0dXJuIFE7XG4gICAgfVxuICAgIHRvUmF3Qnl0ZXMoaXNDb21wcmVzc2VkID0gZmFsc2UpIHtcbiAgICAgICAgcmV0dXJuIGhleFRvQnl0ZXModGhpcy50b0hleChpc0NvbXByZXNzZWQpKTtcbiAgICB9XG4gICAgdG9IZXgoaXNDb21wcmVzc2VkID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgeCA9IG51bVRvMzJiU3RyKHRoaXMueCk7XG4gICAgICAgIGlmIChpc0NvbXByZXNzZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHByZWZpeCA9IHRoaXMuaGFzRXZlblkoKSA/ICcwMicgOiAnMDMnO1xuICAgICAgICAgICAgcmV0dXJuIGAke3ByZWZpeH0ke3h9YDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBgMDQke3h9JHtudW1UbzMyYlN0cih0aGlzLnkpfWA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdG9IZXhYKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50b0hleCh0cnVlKS5zbGljZSgyKTtcbiAgICB9XG4gICAgdG9SYXdYKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50b1Jhd0J5dGVzKHRydWUpLnNsaWNlKDEpO1xuICAgIH1cbiAgICBhc3NlcnRWYWxpZGl0eSgpIHtcbiAgICAgICAgY29uc3QgbXNnID0gJ1BvaW50IGlzIG5vdCBvbiBlbGxpcHRpYyBjdXJ2ZSc7XG4gICAgICAgIGNvbnN0IHsgeCwgeSB9ID0gdGhpcztcbiAgICAgICAgaWYgKCFpc1ZhbGlkRmllbGRFbGVtZW50KHgpIHx8ICFpc1ZhbGlkRmllbGRFbGVtZW50KHkpKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1zZyk7XG4gICAgICAgIGNvbnN0IGxlZnQgPSBtb2QoeSAqIHkpO1xuICAgICAgICBjb25zdCByaWdodCA9IHdlaWVyc3RyYXNzKHgpO1xuICAgICAgICBpZiAobW9kKGxlZnQgLSByaWdodCkgIT09IF8wbilcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihtc2cpO1xuICAgIH1cbiAgICBlcXVhbHMob3RoZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMueCA9PT0gb3RoZXIueCAmJiB0aGlzLnkgPT09IG90aGVyLnk7XG4gICAgfVxuICAgIG5lZ2F0ZSgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQb2ludCh0aGlzLngsIG1vZCgtdGhpcy55KSk7XG4gICAgfVxuICAgIGRvdWJsZSgpIHtcbiAgICAgICAgcmV0dXJuIEphY29iaWFuUG9pbnQuZnJvbUFmZmluZSh0aGlzKS5kb3VibGUoKS50b0FmZmluZSgpO1xuICAgIH1cbiAgICBhZGQob3RoZXIpIHtcbiAgICAgICAgcmV0dXJuIEphY29iaWFuUG9pbnQuZnJvbUFmZmluZSh0aGlzKS5hZGQoSmFjb2JpYW5Qb2ludC5mcm9tQWZmaW5lKG90aGVyKSkudG9BZmZpbmUoKTtcbiAgICB9XG4gICAgc3VidHJhY3Qob3RoZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkKG90aGVyLm5lZ2F0ZSgpKTtcbiAgICB9XG4gICAgbXVsdGlwbHkoc2NhbGFyKSB7XG4gICAgICAgIHJldHVybiBKYWNvYmlhblBvaW50LmZyb21BZmZpbmUodGhpcykubXVsdGlwbHkoc2NhbGFyLCB0aGlzKS50b0FmZmluZSgpO1xuICAgIH1cbiAgICBtdWx0aXBseUFuZEFkZFVuc2FmZShRLCBhLCBiKSB7XG4gICAgICAgIGNvbnN0IFAgPSBKYWNvYmlhblBvaW50LmZyb21BZmZpbmUodGhpcyk7XG4gICAgICAgIGNvbnN0IGFQID0gYSA9PT0gXzBuIHx8IGEgPT09IF8xbiB8fCB0aGlzICE9PSBQb2ludC5CQVNFID8gUC5tdWx0aXBseVVuc2FmZShhKSA6IFAubXVsdGlwbHkoYSk7XG4gICAgICAgIGNvbnN0IGJRID0gSmFjb2JpYW5Qb2ludC5mcm9tQWZmaW5lKFEpLm11bHRpcGx5VW5zYWZlKGIpO1xuICAgICAgICBjb25zdCBzdW0gPSBhUC5hZGQoYlEpO1xuICAgICAgICByZXR1cm4gc3VtLmVxdWFscyhKYWNvYmlhblBvaW50LlpFUk8pID8gdW5kZWZpbmVkIDogc3VtLnRvQWZmaW5lKCk7XG4gICAgfVxufVxuUG9pbnQuQkFTRSA9IG5ldyBQb2ludChDVVJWRS5HeCwgQ1VSVkUuR3kpO1xuUG9pbnQuWkVSTyA9IG5ldyBQb2ludChfMG4sIF8wbik7XG5mdW5jdGlvbiBzbGljZURFUihzKSB7XG4gICAgcmV0dXJuIE51bWJlci5wYXJzZUludChzWzBdLCAxNikgPj0gOCA/ICcwMCcgKyBzIDogcztcbn1cbmZ1bmN0aW9uIHBhcnNlREVSSW50KGRhdGEpIHtcbiAgICBpZiAoZGF0YS5sZW5ndGggPCAyIHx8IGRhdGFbMF0gIT09IDB4MDIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHNpZ25hdHVyZSBpbnRlZ2VyIHRhZzogJHtieXRlc1RvSGV4KGRhdGEpfWApO1xuICAgIH1cbiAgICBjb25zdCBsZW4gPSBkYXRhWzFdO1xuICAgIGNvbnN0IHJlcyA9IGRhdGEuc3ViYXJyYXkoMiwgbGVuICsgMik7XG4gICAgaWYgKCFsZW4gfHwgcmVzLmxlbmd0aCAhPT0gbGVuKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzaWduYXR1cmUgaW50ZWdlcjogd3JvbmcgbGVuZ3RoYCk7XG4gICAgfVxuICAgIGlmIChyZXNbMF0gPT09IDB4MDAgJiYgcmVzWzFdIDw9IDB4N2YpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHNpZ25hdHVyZSBpbnRlZ2VyOiB0cmFpbGluZyBsZW5ndGgnKTtcbiAgICB9XG4gICAgcmV0dXJuIHsgZGF0YTogYnl0ZXNUb051bWJlcihyZXMpLCBsZWZ0OiBkYXRhLnN1YmFycmF5KGxlbiArIDIpIH07XG59XG5mdW5jdGlvbiBwYXJzZURFUlNpZ25hdHVyZShkYXRhKSB7XG4gICAgaWYgKGRhdGEubGVuZ3RoIDwgMiB8fCBkYXRhWzBdICE9IDB4MzApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHNpZ25hdHVyZSB0YWc6ICR7Ynl0ZXNUb0hleChkYXRhKX1gKTtcbiAgICB9XG4gICAgaWYgKGRhdGFbMV0gIT09IGRhdGEubGVuZ3RoIC0gMikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgc2lnbmF0dXJlOiBpbmNvcnJlY3QgbGVuZ3RoJyk7XG4gICAgfVxuICAgIGNvbnN0IHsgZGF0YTogciwgbGVmdDogc0J5dGVzIH0gPSBwYXJzZURFUkludChkYXRhLnN1YmFycmF5KDIpKTtcbiAgICBjb25zdCB7IGRhdGE6IHMsIGxlZnQ6IHJCeXRlc0xlZnQgfSA9IHBhcnNlREVSSW50KHNCeXRlcyk7XG4gICAgaWYgKHJCeXRlc0xlZnQubGVuZ3RoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzaWduYXR1cmU6IGxlZnQgYnl0ZXMgYWZ0ZXIgcGFyc2luZzogJHtieXRlc1RvSGV4KHJCeXRlc0xlZnQpfWApO1xuICAgIH1cbiAgICByZXR1cm4geyByLCBzIH07XG59XG5leHBvcnQgY2xhc3MgU2lnbmF0dXJlIHtcbiAgICBjb25zdHJ1Y3RvcihyLCBzKSB7XG4gICAgICAgIHRoaXMuciA9IHI7XG4gICAgICAgIHRoaXMucyA9IHM7XG4gICAgICAgIHRoaXMuYXNzZXJ0VmFsaWRpdHkoKTtcbiAgICB9XG4gICAgc3RhdGljIGZyb21Db21wYWN0KGhleCkge1xuICAgICAgICBjb25zdCBhcnIgPSBoZXggaW5zdGFuY2VvZiBVaW50OEFycmF5O1xuICAgICAgICBjb25zdCBuYW1lID0gJ1NpZ25hdHVyZS5mcm9tQ29tcGFjdCc7XG4gICAgICAgIGlmICh0eXBlb2YgaGV4ICE9PSAnc3RyaW5nJyAmJiAhYXJyKVxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgJHtuYW1lfTogRXhwZWN0ZWQgc3RyaW5nIG9yIFVpbnQ4QXJyYXlgKTtcbiAgICAgICAgY29uc3Qgc3RyID0gYXJyID8gYnl0ZXNUb0hleChoZXgpIDogaGV4O1xuICAgICAgICBpZiAoc3RyLmxlbmd0aCAhPT0gMTI4KVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke25hbWV9OiBFeHBlY3RlZCA2NC1ieXRlIGhleGApO1xuICAgICAgICByZXR1cm4gbmV3IFNpZ25hdHVyZShoZXhUb051bWJlcihzdHIuc2xpY2UoMCwgNjQpKSwgaGV4VG9OdW1iZXIoc3RyLnNsaWNlKDY0LCAxMjgpKSk7XG4gICAgfVxuICAgIHN0YXRpYyBmcm9tREVSKGhleCkge1xuICAgICAgICBjb25zdCBhcnIgPSBoZXggaW5zdGFuY2VvZiBVaW50OEFycmF5O1xuICAgICAgICBpZiAodHlwZW9mIGhleCAhPT0gJ3N0cmluZycgJiYgIWFycilcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYFNpZ25hdHVyZS5mcm9tREVSOiBFeHBlY3RlZCBzdHJpbmcgb3IgVWludDhBcnJheWApO1xuICAgICAgICBjb25zdCB7IHIsIHMgfSA9IHBhcnNlREVSU2lnbmF0dXJlKGFyciA/IGhleCA6IGhleFRvQnl0ZXMoaGV4KSk7XG4gICAgICAgIHJldHVybiBuZXcgU2lnbmF0dXJlKHIsIHMpO1xuICAgIH1cbiAgICBzdGF0aWMgZnJvbUhleChoZXgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZnJvbURFUihoZXgpO1xuICAgIH1cbiAgICBhc3NlcnRWYWxpZGl0eSgpIHtcbiAgICAgICAgY29uc3QgeyByLCBzIH0gPSB0aGlzO1xuICAgICAgICBpZiAoIWlzV2l0aGluQ3VydmVPcmRlcihyKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBTaWduYXR1cmU6IHIgbXVzdCBiZSAwIDwgciA8IG4nKTtcbiAgICAgICAgaWYgKCFpc1dpdGhpbkN1cnZlT3JkZXIocykpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgU2lnbmF0dXJlOiBzIG11c3QgYmUgMCA8IHMgPCBuJyk7XG4gICAgfVxuICAgIGhhc0hpZ2hTKCkge1xuICAgICAgICBjb25zdCBIQUxGID0gQ1VSVkUubiA+PiBfMW47XG4gICAgICAgIHJldHVybiB0aGlzLnMgPiBIQUxGO1xuICAgIH1cbiAgICBub3JtYWxpemVTKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNIaWdoUygpID8gbmV3IFNpZ25hdHVyZSh0aGlzLnIsIG1vZCgtdGhpcy5zLCBDVVJWRS5uKSkgOiB0aGlzO1xuICAgIH1cbiAgICB0b0RFUlJhd0J5dGVzKCkge1xuICAgICAgICByZXR1cm4gaGV4VG9CeXRlcyh0aGlzLnRvREVSSGV4KCkpO1xuICAgIH1cbiAgICB0b0RFUkhleCgpIHtcbiAgICAgICAgY29uc3Qgc0hleCA9IHNsaWNlREVSKG51bWJlclRvSGV4VW5wYWRkZWQodGhpcy5zKSk7XG4gICAgICAgIGNvbnN0IHJIZXggPSBzbGljZURFUihudW1iZXJUb0hleFVucGFkZGVkKHRoaXMucikpO1xuICAgICAgICBjb25zdCBzSGV4TCA9IHNIZXgubGVuZ3RoIC8gMjtcbiAgICAgICAgY29uc3QgckhleEwgPSBySGV4Lmxlbmd0aCAvIDI7XG4gICAgICAgIGNvbnN0IHNMZW4gPSBudW1iZXJUb0hleFVucGFkZGVkKHNIZXhMKTtcbiAgICAgICAgY29uc3QgckxlbiA9IG51bWJlclRvSGV4VW5wYWRkZWQockhleEwpO1xuICAgICAgICBjb25zdCBsZW5ndGggPSBudW1iZXJUb0hleFVucGFkZGVkKHJIZXhMICsgc0hleEwgKyA0KTtcbiAgICAgICAgcmV0dXJuIGAzMCR7bGVuZ3RofTAyJHtyTGVufSR7ckhleH0wMiR7c0xlbn0ke3NIZXh9YDtcbiAgICB9XG4gICAgdG9SYXdCeXRlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9ERVJSYXdCeXRlcygpO1xuICAgIH1cbiAgICB0b0hleCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9ERVJIZXgoKTtcbiAgICB9XG4gICAgdG9Db21wYWN0UmF3Qnl0ZXMoKSB7XG4gICAgICAgIHJldHVybiBoZXhUb0J5dGVzKHRoaXMudG9Db21wYWN0SGV4KCkpO1xuICAgIH1cbiAgICB0b0NvbXBhY3RIZXgoKSB7XG4gICAgICAgIHJldHVybiBudW1UbzMyYlN0cih0aGlzLnIpICsgbnVtVG8zMmJTdHIodGhpcy5zKTtcbiAgICB9XG59XG5mdW5jdGlvbiBjb25jYXRCeXRlcyguLi5hcnJheXMpIHtcbiAgICBpZiAoIWFycmF5cy5ldmVyeSgoYikgPT4gYiBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VpbnQ4QXJyYXkgbGlzdCBleHBlY3RlZCcpO1xuICAgIGlmIChhcnJheXMubGVuZ3RoID09PSAxKVxuICAgICAgICByZXR1cm4gYXJyYXlzWzBdO1xuICAgIGNvbnN0IGxlbmd0aCA9IGFycmF5cy5yZWR1Y2UoKGEsIGFycikgPT4gYSArIGFyci5sZW5ndGgsIDApO1xuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBVaW50OEFycmF5KGxlbmd0aCk7XG4gICAgZm9yIChsZXQgaSA9IDAsIHBhZCA9IDA7IGkgPCBhcnJheXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgYXJyID0gYXJyYXlzW2ldO1xuICAgICAgICByZXN1bHQuc2V0KGFyciwgcGFkKTtcbiAgICAgICAgcGFkICs9IGFyci5sZW5ndGg7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5jb25zdCBoZXhlcyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDI1NiB9LCAodiwgaSkgPT4gaS50b1N0cmluZygxNikucGFkU3RhcnQoMiwgJzAnKSk7XG5mdW5jdGlvbiBieXRlc1RvSGV4KHVpbnQ4YSkge1xuICAgIGlmICghKHVpbnQ4YSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIFVpbnQ4QXJyYXknKTtcbiAgICBsZXQgaGV4ID0gJyc7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB1aW50OGEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaGV4ICs9IGhleGVzW3VpbnQ4YVtpXV07XG4gICAgfVxuICAgIHJldHVybiBoZXg7XG59XG5jb25zdCBQT1dfMl8yNTYgPSBCaWdJbnQoJzB4MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnKTtcbmZ1bmN0aW9uIG51bVRvMzJiU3RyKG51bSkge1xuICAgIGlmICh0eXBlb2YgbnVtICE9PSAnYmlnaW50JylcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBiaWdpbnQnKTtcbiAgICBpZiAoIShfMG4gPD0gbnVtICYmIG51bSA8IFBPV18yXzI1NikpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgbnVtYmVyIDAgPD0gbiA8IDJeMjU2Jyk7XG4gICAgcmV0dXJuIG51bS50b1N0cmluZygxNikucGFkU3RhcnQoNjQsICcwJyk7XG59XG5mdW5jdGlvbiBudW1UbzMyYihudW0pIHtcbiAgICBjb25zdCBiID0gaGV4VG9CeXRlcyhudW1UbzMyYlN0cihudW0pKTtcbiAgICBpZiAoYi5sZW5ndGggIT09IDMyKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Vycm9yOiBleHBlY3RlZCAzMiBieXRlcycpO1xuICAgIHJldHVybiBiO1xufVxuZnVuY3Rpb24gbnVtYmVyVG9IZXhVbnBhZGRlZChudW0pIHtcbiAgICBjb25zdCBoZXggPSBudW0udG9TdHJpbmcoMTYpO1xuICAgIHJldHVybiBoZXgubGVuZ3RoICYgMSA/IGAwJHtoZXh9YCA6IGhleDtcbn1cbmZ1bmN0aW9uIGhleFRvTnVtYmVyKGhleCkge1xuICAgIGlmICh0eXBlb2YgaGV4ICE9PSAnc3RyaW5nJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdoZXhUb051bWJlcjogZXhwZWN0ZWQgc3RyaW5nLCBnb3QgJyArIHR5cGVvZiBoZXgpO1xuICAgIH1cbiAgICByZXR1cm4gQmlnSW50KGAweCR7aGV4fWApO1xufVxuZnVuY3Rpb24gaGV4VG9CeXRlcyhoZXgpIHtcbiAgICBpZiAodHlwZW9mIGhleCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignaGV4VG9CeXRlczogZXhwZWN0ZWQgc3RyaW5nLCBnb3QgJyArIHR5cGVvZiBoZXgpO1xuICAgIH1cbiAgICBpZiAoaGV4Lmxlbmd0aCAlIDIpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignaGV4VG9CeXRlczogcmVjZWl2ZWQgaW52YWxpZCB1bnBhZGRlZCBoZXgnICsgaGV4Lmxlbmd0aCk7XG4gICAgY29uc3QgYXJyYXkgPSBuZXcgVWludDhBcnJheShoZXgubGVuZ3RoIC8gMik7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBqID0gaSAqIDI7XG4gICAgICAgIGNvbnN0IGhleEJ5dGUgPSBoZXguc2xpY2UoaiwgaiArIDIpO1xuICAgICAgICBjb25zdCBieXRlID0gTnVtYmVyLnBhcnNlSW50KGhleEJ5dGUsIDE2KTtcbiAgICAgICAgaWYgKE51bWJlci5pc05hTihieXRlKSB8fCBieXRlIDwgMClcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBieXRlIHNlcXVlbmNlJyk7XG4gICAgICAgIGFycmF5W2ldID0gYnl0ZTtcbiAgICB9XG4gICAgcmV0dXJuIGFycmF5O1xufVxuZnVuY3Rpb24gYnl0ZXNUb051bWJlcihieXRlcykge1xuICAgIHJldHVybiBoZXhUb051bWJlcihieXRlc1RvSGV4KGJ5dGVzKSk7XG59XG5mdW5jdGlvbiBlbnN1cmVCeXRlcyhoZXgpIHtcbiAgICByZXR1cm4gaGV4IGluc3RhbmNlb2YgVWludDhBcnJheSA/IFVpbnQ4QXJyYXkuZnJvbShoZXgpIDogaGV4VG9CeXRlcyhoZXgpO1xufVxuZnVuY3Rpb24gbm9ybWFsaXplU2NhbGFyKG51bSkge1xuICAgIGlmICh0eXBlb2YgbnVtID09PSAnbnVtYmVyJyAmJiBOdW1iZXIuaXNTYWZlSW50ZWdlcihudW0pICYmIG51bSA+IDApXG4gICAgICAgIHJldHVybiBCaWdJbnQobnVtKTtcbiAgICBpZiAodHlwZW9mIG51bSA9PT0gJ2JpZ2ludCcgJiYgaXNXaXRoaW5DdXJ2ZU9yZGVyKG51bSkpXG4gICAgICAgIHJldHVybiBudW07XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgdmFsaWQgcHJpdmF0ZSBzY2FsYXI6IDAgPCBzY2FsYXIgPCBjdXJ2ZS5uJyk7XG59XG5mdW5jdGlvbiBtb2QoYSwgYiA9IENVUlZFLlApIHtcbiAgICBjb25zdCByZXN1bHQgPSBhICUgYjtcbiAgICByZXR1cm4gcmVzdWx0ID49IF8wbiA/IHJlc3VsdCA6IGIgKyByZXN1bHQ7XG59XG5mdW5jdGlvbiBwb3cyKHgsIHBvd2VyKSB7XG4gICAgY29uc3QgeyBQIH0gPSBDVVJWRTtcbiAgICBsZXQgcmVzID0geDtcbiAgICB3aGlsZSAocG93ZXItLSA+IF8wbikge1xuICAgICAgICByZXMgKj0gcmVzO1xuICAgICAgICByZXMgJT0gUDtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbn1cbmZ1bmN0aW9uIHNxcnRNb2QoeCkge1xuICAgIGNvbnN0IHsgUCB9ID0gQ1VSVkU7XG4gICAgY29uc3QgXzZuID0gQmlnSW50KDYpO1xuICAgIGNvbnN0IF8xMW4gPSBCaWdJbnQoMTEpO1xuICAgIGNvbnN0IF8yMm4gPSBCaWdJbnQoMjIpO1xuICAgIGNvbnN0IF8yM24gPSBCaWdJbnQoMjMpO1xuICAgIGNvbnN0IF80NG4gPSBCaWdJbnQoNDQpO1xuICAgIGNvbnN0IF84OG4gPSBCaWdJbnQoODgpO1xuICAgIGNvbnN0IGIyID0gKHggKiB4ICogeCkgJSBQO1xuICAgIGNvbnN0IGIzID0gKGIyICogYjIgKiB4KSAlIFA7XG4gICAgY29uc3QgYjYgPSAocG93MihiMywgXzNuKSAqIGIzKSAlIFA7XG4gICAgY29uc3QgYjkgPSAocG93MihiNiwgXzNuKSAqIGIzKSAlIFA7XG4gICAgY29uc3QgYjExID0gKHBvdzIoYjksIF8ybikgKiBiMikgJSBQO1xuICAgIGNvbnN0IGIyMiA9IChwb3cyKGIxMSwgXzExbikgKiBiMTEpICUgUDtcbiAgICBjb25zdCBiNDQgPSAocG93MihiMjIsIF8yMm4pICogYjIyKSAlIFA7XG4gICAgY29uc3QgYjg4ID0gKHBvdzIoYjQ0LCBfNDRuKSAqIGI0NCkgJSBQO1xuICAgIGNvbnN0IGIxNzYgPSAocG93MihiODgsIF84OG4pICogYjg4KSAlIFA7XG4gICAgY29uc3QgYjIyMCA9IChwb3cyKGIxNzYsIF80NG4pICogYjQ0KSAlIFA7XG4gICAgY29uc3QgYjIyMyA9IChwb3cyKGIyMjAsIF8zbikgKiBiMykgJSBQO1xuICAgIGNvbnN0IHQxID0gKHBvdzIoYjIyMywgXzIzbikgKiBiMjIpICUgUDtcbiAgICBjb25zdCB0MiA9IChwb3cyKHQxLCBfNm4pICogYjIpICUgUDtcbiAgICBjb25zdCBydCA9IHBvdzIodDIsIF8ybik7XG4gICAgY29uc3QgeGMgPSAocnQgKiBydCkgJSBQO1xuICAgIGlmICh4YyAhPT0geClcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZmluZCBzcXVhcmUgcm9vdCcpO1xuICAgIHJldHVybiBydDtcbn1cbmZ1bmN0aW9uIGludmVydChudW1iZXIsIG1vZHVsbyA9IENVUlZFLlApIHtcbiAgICBpZiAobnVtYmVyID09PSBfMG4gfHwgbW9kdWxvIDw9IF8wbikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmVydDogZXhwZWN0ZWQgcG9zaXRpdmUgaW50ZWdlcnMsIGdvdCBuPSR7bnVtYmVyfSBtb2Q9JHttb2R1bG99YCk7XG4gICAgfVxuICAgIGxldCBhID0gbW9kKG51bWJlciwgbW9kdWxvKTtcbiAgICBsZXQgYiA9IG1vZHVsbztcbiAgICBsZXQgeCA9IF8wbiwgeSA9IF8xbiwgdSA9IF8xbiwgdiA9IF8wbjtcbiAgICB3aGlsZSAoYSAhPT0gXzBuKSB7XG4gICAgICAgIGNvbnN0IHEgPSBiIC8gYTtcbiAgICAgICAgY29uc3QgciA9IGIgJSBhO1xuICAgICAgICBjb25zdCBtID0geCAtIHUgKiBxO1xuICAgICAgICBjb25zdCBuID0geSAtIHYgKiBxO1xuICAgICAgICBiID0gYSwgYSA9IHIsIHggPSB1LCB5ID0gdiwgdSA9IG0sIHYgPSBuO1xuICAgIH1cbiAgICBjb25zdCBnY2QgPSBiO1xuICAgIGlmIChnY2QgIT09IF8xbilcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZlcnQ6IGRvZXMgbm90IGV4aXN0Jyk7XG4gICAgcmV0dXJuIG1vZCh4LCBtb2R1bG8pO1xufVxuZnVuY3Rpb24gaW52ZXJ0QmF0Y2gobnVtcywgcCA9IENVUlZFLlApIHtcbiAgICBjb25zdCBzY3JhdGNoID0gbmV3IEFycmF5KG51bXMubGVuZ3RoKTtcbiAgICBjb25zdCBsYXN0TXVsdGlwbGllZCA9IG51bXMucmVkdWNlKChhY2MsIG51bSwgaSkgPT4ge1xuICAgICAgICBpZiAobnVtID09PSBfMG4pXG4gICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICBzY3JhdGNoW2ldID0gYWNjO1xuICAgICAgICByZXR1cm4gbW9kKGFjYyAqIG51bSwgcCk7XG4gICAgfSwgXzFuKTtcbiAgICBjb25zdCBpbnZlcnRlZCA9IGludmVydChsYXN0TXVsdGlwbGllZCwgcCk7XG4gICAgbnVtcy5yZWR1Y2VSaWdodCgoYWNjLCBudW0sIGkpID0+IHtcbiAgICAgICAgaWYgKG51bSA9PT0gXzBuKVxuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgc2NyYXRjaFtpXSA9IG1vZChhY2MgKiBzY3JhdGNoW2ldLCBwKTtcbiAgICAgICAgcmV0dXJuIG1vZChhY2MgKiBudW0sIHApO1xuICAgIH0sIGludmVydGVkKTtcbiAgICByZXR1cm4gc2NyYXRjaDtcbn1cbmZ1bmN0aW9uIGJpdHMyaW50XzIoYnl0ZXMpIHtcbiAgICBjb25zdCBkZWx0YSA9IGJ5dGVzLmxlbmd0aCAqIDggLSBncm91cExlbiAqIDg7XG4gICAgY29uc3QgbnVtID0gYnl0ZXNUb051bWJlcihieXRlcyk7XG4gICAgcmV0dXJuIGRlbHRhID4gMCA/IG51bSA+PiBCaWdJbnQoZGVsdGEpIDogbnVtO1xufVxuZnVuY3Rpb24gdHJ1bmNhdGVIYXNoKGhhc2gsIHRydW5jYXRlT25seSA9IGZhbHNlKSB7XG4gICAgY29uc3QgaCA9IGJpdHMyaW50XzIoaGFzaCk7XG4gICAgaWYgKHRydW5jYXRlT25seSlcbiAgICAgICAgcmV0dXJuIGg7XG4gICAgY29uc3QgeyBuIH0gPSBDVVJWRTtcbiAgICByZXR1cm4gaCA+PSBuID8gaCAtIG4gOiBoO1xufVxubGV0IF9zaGEyNTZTeW5jO1xubGV0IF9obWFjU2hhMjU2U3luYztcbmNsYXNzIEhtYWNEcmJnIHtcbiAgICBjb25zdHJ1Y3RvcihoYXNoTGVuLCBxQnl0ZUxlbikge1xuICAgICAgICB0aGlzLmhhc2hMZW4gPSBoYXNoTGVuO1xuICAgICAgICB0aGlzLnFCeXRlTGVuID0gcUJ5dGVMZW47XG4gICAgICAgIGlmICh0eXBlb2YgaGFzaExlbiAhPT0gJ251bWJlcicgfHwgaGFzaExlbiA8IDIpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2hhc2hMZW4gbXVzdCBiZSBhIG51bWJlcicpO1xuICAgICAgICBpZiAodHlwZW9mIHFCeXRlTGVuICE9PSAnbnVtYmVyJyB8fCBxQnl0ZUxlbiA8IDIpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3FCeXRlTGVuIG11c3QgYmUgYSBudW1iZXInKTtcbiAgICAgICAgdGhpcy52ID0gbmV3IFVpbnQ4QXJyYXkoaGFzaExlbikuZmlsbCgxKTtcbiAgICAgICAgdGhpcy5rID0gbmV3IFVpbnQ4QXJyYXkoaGFzaExlbikuZmlsbCgwKTtcbiAgICAgICAgdGhpcy5jb3VudGVyID0gMDtcbiAgICB9XG4gICAgaG1hYyguLi52YWx1ZXMpIHtcbiAgICAgICAgcmV0dXJuIHV0aWxzLmhtYWNTaGEyNTYodGhpcy5rLCAuLi52YWx1ZXMpO1xuICAgIH1cbiAgICBobWFjU3luYyguLi52YWx1ZXMpIHtcbiAgICAgICAgcmV0dXJuIF9obWFjU2hhMjU2U3luYyh0aGlzLmssIC4uLnZhbHVlcyk7XG4gICAgfVxuICAgIGNoZWNrU3luYygpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBfaG1hY1NoYTI1NlN5bmMgIT09ICdmdW5jdGlvbicpXG4gICAgICAgICAgICB0aHJvdyBuZXcgU2hhRXJyb3IoJ2htYWNTaGEyNTZTeW5jIG5lZWRzIHRvIGJlIHNldCcpO1xuICAgIH1cbiAgICBpbmNyKCkge1xuICAgICAgICBpZiAodGhpcy5jb3VudGVyID49IDEwMDApXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RyaWVkIDEsMDAwIGsgdmFsdWVzIGZvciBzaWduKCksIGFsbCB3ZXJlIGludmFsaWQnKTtcbiAgICAgICAgdGhpcy5jb3VudGVyICs9IDE7XG4gICAgfVxuICAgIGFzeW5jIHJlc2VlZChzZWVkID0gbmV3IFVpbnQ4QXJyYXkoKSkge1xuICAgICAgICB0aGlzLmsgPSBhd2FpdCB0aGlzLmhtYWModGhpcy52LCBVaW50OEFycmF5LmZyb20oWzB4MDBdKSwgc2VlZCk7XG4gICAgICAgIHRoaXMudiA9IGF3YWl0IHRoaXMuaG1hYyh0aGlzLnYpO1xuICAgICAgICBpZiAoc2VlZC5sZW5ndGggPT09IDApXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHRoaXMuayA9IGF3YWl0IHRoaXMuaG1hYyh0aGlzLnYsIFVpbnQ4QXJyYXkuZnJvbShbMHgwMV0pLCBzZWVkKTtcbiAgICAgICAgdGhpcy52ID0gYXdhaXQgdGhpcy5obWFjKHRoaXMudik7XG4gICAgfVxuICAgIHJlc2VlZFN5bmMoc2VlZCA9IG5ldyBVaW50OEFycmF5KCkpIHtcbiAgICAgICAgdGhpcy5jaGVja1N5bmMoKTtcbiAgICAgICAgdGhpcy5rID0gdGhpcy5obWFjU3luYyh0aGlzLnYsIFVpbnQ4QXJyYXkuZnJvbShbMHgwMF0pLCBzZWVkKTtcbiAgICAgICAgdGhpcy52ID0gdGhpcy5obWFjU3luYyh0aGlzLnYpO1xuICAgICAgICBpZiAoc2VlZC5sZW5ndGggPT09IDApXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHRoaXMuayA9IHRoaXMuaG1hY1N5bmModGhpcy52LCBVaW50OEFycmF5LmZyb20oWzB4MDFdKSwgc2VlZCk7XG4gICAgICAgIHRoaXMudiA9IHRoaXMuaG1hY1N5bmModGhpcy52KTtcbiAgICB9XG4gICAgYXN5bmMgZ2VuZXJhdGUoKSB7XG4gICAgICAgIHRoaXMuaW5jcigpO1xuICAgICAgICBsZXQgbGVuID0gMDtcbiAgICAgICAgY29uc3Qgb3V0ID0gW107XG4gICAgICAgIHdoaWxlIChsZW4gPCB0aGlzLnFCeXRlTGVuKSB7XG4gICAgICAgICAgICB0aGlzLnYgPSBhd2FpdCB0aGlzLmhtYWModGhpcy52KTtcbiAgICAgICAgICAgIGNvbnN0IHNsID0gdGhpcy52LnNsaWNlKCk7XG4gICAgICAgICAgICBvdXQucHVzaChzbCk7XG4gICAgICAgICAgICBsZW4gKz0gdGhpcy52Lmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29uY2F0Qnl0ZXMoLi4ub3V0KTtcbiAgICB9XG4gICAgZ2VuZXJhdGVTeW5jKCkge1xuICAgICAgICB0aGlzLmNoZWNrU3luYygpO1xuICAgICAgICB0aGlzLmluY3IoKTtcbiAgICAgICAgbGV0IGxlbiA9IDA7XG4gICAgICAgIGNvbnN0IG91dCA9IFtdO1xuICAgICAgICB3aGlsZSAobGVuIDwgdGhpcy5xQnl0ZUxlbikge1xuICAgICAgICAgICAgdGhpcy52ID0gdGhpcy5obWFjU3luYyh0aGlzLnYpO1xuICAgICAgICAgICAgY29uc3Qgc2wgPSB0aGlzLnYuc2xpY2UoKTtcbiAgICAgICAgICAgIG91dC5wdXNoKHNsKTtcbiAgICAgICAgICAgIGxlbiArPSB0aGlzLnYubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb25jYXRCeXRlcyguLi5vdXQpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGlzV2l0aGluQ3VydmVPcmRlcihudW0pIHtcbiAgICByZXR1cm4gXzBuIDwgbnVtICYmIG51bSA8IENVUlZFLm47XG59XG5mdW5jdGlvbiBpc1ZhbGlkRmllbGRFbGVtZW50KG51bSkge1xuICAgIHJldHVybiBfMG4gPCBudW0gJiYgbnVtIDwgQ1VSVkUuUDtcbn1cbmZ1bmN0aW9uIGttZFRvU2lnKGtCeXRlcywgbSwgZCwgbG93UyA9IHRydWUpIHtcbiAgICBjb25zdCB7IG4gfSA9IENVUlZFO1xuICAgIGNvbnN0IGsgPSB0cnVuY2F0ZUhhc2goa0J5dGVzLCB0cnVlKTtcbiAgICBpZiAoIWlzV2l0aGluQ3VydmVPcmRlcihrKSlcbiAgICAgICAgcmV0dXJuO1xuICAgIGNvbnN0IGtpbnYgPSBpbnZlcnQoaywgbik7XG4gICAgY29uc3QgcSA9IFBvaW50LkJBU0UubXVsdGlwbHkoayk7XG4gICAgY29uc3QgciA9IG1vZChxLngsIG4pO1xuICAgIGlmIChyID09PSBfMG4pXG4gICAgICAgIHJldHVybjtcbiAgICBjb25zdCBzID0gbW9kKGtpbnYgKiBtb2QobSArIGQgKiByLCBuKSwgbik7XG4gICAgaWYgKHMgPT09IF8wbilcbiAgICAgICAgcmV0dXJuO1xuICAgIGxldCBzaWcgPSBuZXcgU2lnbmF0dXJlKHIsIHMpO1xuICAgIGxldCByZWNvdmVyeSA9IChxLnggPT09IHNpZy5yID8gMCA6IDIpIHwgTnVtYmVyKHEueSAmIF8xbik7XG4gICAgaWYgKGxvd1MgJiYgc2lnLmhhc0hpZ2hTKCkpIHtcbiAgICAgICAgc2lnID0gc2lnLm5vcm1hbGl6ZVMoKTtcbiAgICAgICAgcmVjb3ZlcnkgXj0gMTtcbiAgICB9XG4gICAgcmV0dXJuIHsgc2lnLCByZWNvdmVyeSB9O1xufVxuZnVuY3Rpb24gbm9ybWFsaXplUHJpdmF0ZUtleShrZXkpIHtcbiAgICBsZXQgbnVtO1xuICAgIGlmICh0eXBlb2Yga2V5ID09PSAnYmlnaW50Jykge1xuICAgICAgICBudW0gPSBrZXk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHR5cGVvZiBrZXkgPT09ICdudW1iZXInICYmIE51bWJlci5pc1NhZmVJbnRlZ2VyKGtleSkgJiYga2V5ID4gMCkge1xuICAgICAgICBudW0gPSBCaWdJbnQoa2V5KTtcbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZW9mIGtleSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgaWYgKGtleS5sZW5ndGggIT09IDIgKiBncm91cExlbilcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgMzIgYnl0ZXMgb2YgcHJpdmF0ZSBrZXknKTtcbiAgICAgICAgbnVtID0gaGV4VG9OdW1iZXIoa2V5KTtcbiAgICB9XG4gICAgZWxzZSBpZiAoa2V5IGluc3RhbmNlb2YgVWludDhBcnJheSkge1xuICAgICAgICBpZiAoa2V5Lmxlbmd0aCAhPT0gZ3JvdXBMZW4pXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIDMyIGJ5dGVzIG9mIHByaXZhdGUga2V5Jyk7XG4gICAgICAgIG51bSA9IGJ5dGVzVG9OdW1iZXIoa2V5KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIHZhbGlkIHByaXZhdGUga2V5Jyk7XG4gICAgfVxuICAgIGlmICghaXNXaXRoaW5DdXJ2ZU9yZGVyKG51bSkpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgcHJpdmF0ZSBrZXk6IDAgPCBrZXkgPCBuJyk7XG4gICAgcmV0dXJuIG51bTtcbn1cbmZ1bmN0aW9uIG5vcm1hbGl6ZVB1YmxpY0tleShwdWJsaWNLZXkpIHtcbiAgICBpZiAocHVibGljS2V5IGluc3RhbmNlb2YgUG9pbnQpIHtcbiAgICAgICAgcHVibGljS2V5LmFzc2VydFZhbGlkaXR5KCk7XG4gICAgICAgIHJldHVybiBwdWJsaWNLZXk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gUG9pbnQuZnJvbUhleChwdWJsaWNLZXkpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIG5vcm1hbGl6ZVNpZ25hdHVyZShzaWduYXR1cmUpIHtcbiAgICBpZiAoc2lnbmF0dXJlIGluc3RhbmNlb2YgU2lnbmF0dXJlKSB7XG4gICAgICAgIHNpZ25hdHVyZS5hc3NlcnRWYWxpZGl0eSgpO1xuICAgICAgICByZXR1cm4gc2lnbmF0dXJlO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICByZXR1cm4gU2lnbmF0dXJlLmZyb21ERVIoc2lnbmF0dXJlKTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHJldHVybiBTaWduYXR1cmUuZnJvbUNvbXBhY3Qoc2lnbmF0dXJlKTtcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0UHVibGljS2V5KHByaXZhdGVLZXksIGlzQ29tcHJlc3NlZCA9IGZhbHNlKSB7XG4gICAgcmV0dXJuIFBvaW50LmZyb21Qcml2YXRlS2V5KHByaXZhdGVLZXkpLnRvUmF3Qnl0ZXMoaXNDb21wcmVzc2VkKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiByZWNvdmVyUHVibGljS2V5KG1zZ0hhc2gsIHNpZ25hdHVyZSwgcmVjb3ZlcnksIGlzQ29tcHJlc3NlZCA9IGZhbHNlKSB7XG4gICAgcmV0dXJuIFBvaW50LmZyb21TaWduYXR1cmUobXNnSGFzaCwgc2lnbmF0dXJlLCByZWNvdmVyeSkudG9SYXdCeXRlcyhpc0NvbXByZXNzZWQpO1xufVxuZnVuY3Rpb24gaXNQcm9iUHViKGl0ZW0pIHtcbiAgICBjb25zdCBhcnIgPSBpdGVtIGluc3RhbmNlb2YgVWludDhBcnJheTtcbiAgICBjb25zdCBzdHIgPSB0eXBlb2YgaXRlbSA9PT0gJ3N0cmluZyc7XG4gICAgY29uc3QgbGVuID0gKGFyciB8fCBzdHIpICYmIGl0ZW0ubGVuZ3RoO1xuICAgIGlmIChhcnIpXG4gICAgICAgIHJldHVybiBsZW4gPT09IGNvbXByZXNzZWRMZW4gfHwgbGVuID09PSB1bmNvbXByZXNzZWRMZW47XG4gICAgaWYgKHN0cilcbiAgICAgICAgcmV0dXJuIGxlbiA9PT0gY29tcHJlc3NlZExlbiAqIDIgfHwgbGVuID09PSB1bmNvbXByZXNzZWRMZW4gKiAyO1xuICAgIGlmIChpdGVtIGluc3RhbmNlb2YgUG9pbnQpXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIHJldHVybiBmYWxzZTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRTaGFyZWRTZWNyZXQocHJpdmF0ZUEsIHB1YmxpY0IsIGlzQ29tcHJlc3NlZCA9IGZhbHNlKSB7XG4gICAgaWYgKGlzUHJvYlB1Yihwcml2YXRlQSkpXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2dldFNoYXJlZFNlY3JldDogZmlyc3QgYXJnIG11c3QgYmUgcHJpdmF0ZSBrZXknKTtcbiAgICBpZiAoIWlzUHJvYlB1YihwdWJsaWNCKSlcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignZ2V0U2hhcmVkU2VjcmV0OiBzZWNvbmQgYXJnIG11c3QgYmUgcHVibGljIGtleScpO1xuICAgIGNvbnN0IGIgPSBub3JtYWxpemVQdWJsaWNLZXkocHVibGljQik7XG4gICAgYi5hc3NlcnRWYWxpZGl0eSgpO1xuICAgIHJldHVybiBiLm11bHRpcGx5KG5vcm1hbGl6ZVByaXZhdGVLZXkocHJpdmF0ZUEpKS50b1Jhd0J5dGVzKGlzQ29tcHJlc3NlZCk7XG59XG5mdW5jdGlvbiBiaXRzMmludChieXRlcykge1xuICAgIGNvbnN0IHNsaWNlID0gYnl0ZXMubGVuZ3RoID4gZmllbGRMZW4gPyBieXRlcy5zbGljZSgwLCBmaWVsZExlbikgOiBieXRlcztcbiAgICByZXR1cm4gYnl0ZXNUb051bWJlcihzbGljZSk7XG59XG5mdW5jdGlvbiBiaXRzMm9jdGV0cyhieXRlcykge1xuICAgIGNvbnN0IHoxID0gYml0czJpbnQoYnl0ZXMpO1xuICAgIGNvbnN0IHoyID0gbW9kKHoxLCBDVVJWRS5uKTtcbiAgICByZXR1cm4gaW50Mm9jdGV0cyh6MiA8IF8wbiA/IHoxIDogejIpO1xufVxuZnVuY3Rpb24gaW50Mm9jdGV0cyhudW0pIHtcbiAgICByZXR1cm4gbnVtVG8zMmIobnVtKTtcbn1cbmZ1bmN0aW9uIGluaXRTaWdBcmdzKG1zZ0hhc2gsIHByaXZhdGVLZXksIGV4dHJhRW50cm9weSkge1xuICAgIGlmIChtc2dIYXNoID09IG51bGwpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgc2lnbjogZXhwZWN0ZWQgdmFsaWQgbWVzc2FnZSBoYXNoLCBub3QgXCIke21zZ0hhc2h9XCJgKTtcbiAgICBjb25zdCBoMSA9IGVuc3VyZUJ5dGVzKG1zZ0hhc2gpO1xuICAgIGNvbnN0IGQgPSBub3JtYWxpemVQcml2YXRlS2V5KHByaXZhdGVLZXkpO1xuICAgIGNvbnN0IHNlZWRBcmdzID0gW2ludDJvY3RldHMoZCksIGJpdHMyb2N0ZXRzKGgxKV07XG4gICAgaWYgKGV4dHJhRW50cm9weSAhPSBudWxsKSB7XG4gICAgICAgIGlmIChleHRyYUVudHJvcHkgPT09IHRydWUpXG4gICAgICAgICAgICBleHRyYUVudHJvcHkgPSB1dGlscy5yYW5kb21CeXRlcyhmaWVsZExlbik7XG4gICAgICAgIGNvbnN0IGUgPSBlbnN1cmVCeXRlcyhleHRyYUVudHJvcHkpO1xuICAgICAgICBpZiAoZS5sZW5ndGggIT09IGZpZWxkTGVuKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBzaWduOiBFeHBlY3RlZCAke2ZpZWxkTGVufSBieXRlcyBvZiBleHRyYSBkYXRhYCk7XG4gICAgICAgIHNlZWRBcmdzLnB1c2goZSk7XG4gICAgfVxuICAgIGNvbnN0IHNlZWQgPSBjb25jYXRCeXRlcyguLi5zZWVkQXJncyk7XG4gICAgY29uc3QgbSA9IGJpdHMyaW50KGgxKTtcbiAgICByZXR1cm4geyBzZWVkLCBtLCBkIH07XG59XG5mdW5jdGlvbiBmaW5hbGl6ZVNpZyhyZWNTaWcsIG9wdHMpIHtcbiAgICBjb25zdCB7IHNpZywgcmVjb3ZlcnkgfSA9IHJlY1NpZztcbiAgICBjb25zdCB7IGRlciwgcmVjb3ZlcmVkIH0gPSBPYmplY3QuYXNzaWduKHsgY2Fub25pY2FsOiB0cnVlLCBkZXI6IHRydWUgfSwgb3B0cyk7XG4gICAgY29uc3QgaGFzaGVkID0gZGVyID8gc2lnLnRvREVSUmF3Qnl0ZXMoKSA6IHNpZy50b0NvbXBhY3RSYXdCeXRlcygpO1xuICAgIHJldHVybiByZWNvdmVyZWQgPyBbaGFzaGVkLCByZWNvdmVyeV0gOiBoYXNoZWQ7XG59XG5hc3luYyBmdW5jdGlvbiBzaWduKG1zZ0hhc2gsIHByaXZLZXksIG9wdHMgPSB7fSkge1xuICAgIGNvbnN0IHsgc2VlZCwgbSwgZCB9ID0gaW5pdFNpZ0FyZ3MobXNnSGFzaCwgcHJpdktleSwgb3B0cy5leHRyYUVudHJvcHkpO1xuICAgIGNvbnN0IGRyYmcgPSBuZXcgSG1hY0RyYmcoaGFzaExlbiwgZ3JvdXBMZW4pO1xuICAgIGF3YWl0IGRyYmcucmVzZWVkKHNlZWQpO1xuICAgIGxldCBzaWc7XG4gICAgd2hpbGUgKCEoc2lnID0ga21kVG9TaWcoYXdhaXQgZHJiZy5nZW5lcmF0ZSgpLCBtLCBkLCBvcHRzLmNhbm9uaWNhbCkpKVxuICAgICAgICBhd2FpdCBkcmJnLnJlc2VlZCgpO1xuICAgIHJldHVybiBmaW5hbGl6ZVNpZyhzaWcsIG9wdHMpO1xufVxuZnVuY3Rpb24gc2lnblN5bmMobXNnSGFzaCwgcHJpdktleSwgb3B0cyA9IHt9KSB7XG4gICAgY29uc3QgeyBzZWVkLCBtLCBkIH0gPSBpbml0U2lnQXJncyhtc2dIYXNoLCBwcml2S2V5LCBvcHRzLmV4dHJhRW50cm9weSk7XG4gICAgY29uc3QgZHJiZyA9IG5ldyBIbWFjRHJiZyhoYXNoTGVuLCBncm91cExlbik7XG4gICAgZHJiZy5yZXNlZWRTeW5jKHNlZWQpO1xuICAgIGxldCBzaWc7XG4gICAgd2hpbGUgKCEoc2lnID0ga21kVG9TaWcoZHJiZy5nZW5lcmF0ZVN5bmMoKSwgbSwgZCwgb3B0cy5jYW5vbmljYWwpKSlcbiAgICAgICAgZHJiZy5yZXNlZWRTeW5jKCk7XG4gICAgcmV0dXJuIGZpbmFsaXplU2lnKHNpZywgb3B0cyk7XG59XG5leHBvcnQgeyBzaWduLCBzaWduU3luYyB9O1xuY29uc3Qgdm9wdHMgPSB7IHN0cmljdDogdHJ1ZSB9O1xuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeShzaWduYXR1cmUsIG1zZ0hhc2gsIHB1YmxpY0tleSwgb3B0cyA9IHZvcHRzKSB7XG4gICAgbGV0IHNpZztcbiAgICB0cnkge1xuICAgICAgICBzaWcgPSBub3JtYWxpemVTaWduYXR1cmUoc2lnbmF0dXJlKTtcbiAgICAgICAgbXNnSGFzaCA9IGVuc3VyZUJ5dGVzKG1zZ0hhc2gpO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCB7IHIsIHMgfSA9IHNpZztcbiAgICBpZiAob3B0cy5zdHJpY3QgJiYgc2lnLmhhc0hpZ2hTKCkpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCBoID0gdHJ1bmNhdGVIYXNoKG1zZ0hhc2gpO1xuICAgIGxldCBQO1xuICAgIHRyeSB7XG4gICAgICAgIFAgPSBub3JtYWxpemVQdWJsaWNLZXkocHVibGljS2V5KTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgeyBuIH0gPSBDVVJWRTtcbiAgICBjb25zdCBzaW52ID0gaW52ZXJ0KHMsIG4pO1xuICAgIGNvbnN0IHUxID0gbW9kKGggKiBzaW52LCBuKTtcbiAgICBjb25zdCB1MiA9IG1vZChyICogc2ludiwgbik7XG4gICAgY29uc3QgUiA9IFBvaW50LkJBU0UubXVsdGlwbHlBbmRBZGRVbnNhZmUoUCwgdTEsIHUyKTtcbiAgICBpZiAoIVIpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCB2ID0gbW9kKFIueCwgbik7XG4gICAgcmV0dXJuIHYgPT09IHI7XG59XG5mdW5jdGlvbiBzY2hub3JyQ2hhbGxlbmdlRmluYWxpemUoY2gpIHtcbiAgICByZXR1cm4gbW9kKGJ5dGVzVG9OdW1iZXIoY2gpLCBDVVJWRS5uKTtcbn1cbmNsYXNzIFNjaG5vcnJTaWduYXR1cmUge1xuICAgIGNvbnN0cnVjdG9yKHIsIHMpIHtcbiAgICAgICAgdGhpcy5yID0gcjtcbiAgICAgICAgdGhpcy5zID0gcztcbiAgICAgICAgdGhpcy5hc3NlcnRWYWxpZGl0eSgpO1xuICAgIH1cbiAgICBzdGF0aWMgZnJvbUhleChoZXgpIHtcbiAgICAgICAgY29uc3QgYnl0ZXMgPSBlbnN1cmVCeXRlcyhoZXgpO1xuICAgICAgICBpZiAoYnl0ZXMubGVuZ3RoICE9PSA2NClcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYFNjaG5vcnJTaWduYXR1cmUuZnJvbUhleDogZXhwZWN0ZWQgNjQgYnl0ZXMsIG5vdCAke2J5dGVzLmxlbmd0aH1gKTtcbiAgICAgICAgY29uc3QgciA9IGJ5dGVzVG9OdW1iZXIoYnl0ZXMuc3ViYXJyYXkoMCwgMzIpKTtcbiAgICAgICAgY29uc3QgcyA9IGJ5dGVzVG9OdW1iZXIoYnl0ZXMuc3ViYXJyYXkoMzIsIDY0KSk7XG4gICAgICAgIHJldHVybiBuZXcgU2Nobm9yclNpZ25hdHVyZShyLCBzKTtcbiAgICB9XG4gICAgYXNzZXJ0VmFsaWRpdHkoKSB7XG4gICAgICAgIGNvbnN0IHsgciwgcyB9ID0gdGhpcztcbiAgICAgICAgaWYgKCFpc1ZhbGlkRmllbGRFbGVtZW50KHIpIHx8ICFpc1dpdGhpbkN1cnZlT3JkZXIocykpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgc2lnbmF0dXJlJyk7XG4gICAgfVxuICAgIHRvSGV4KCkge1xuICAgICAgICByZXR1cm4gbnVtVG8zMmJTdHIodGhpcy5yKSArIG51bVRvMzJiU3RyKHRoaXMucyk7XG4gICAgfVxuICAgIHRvUmF3Qnl0ZXMoKSB7XG4gICAgICAgIHJldHVybiBoZXhUb0J5dGVzKHRoaXMudG9IZXgoKSk7XG4gICAgfVxufVxuZnVuY3Rpb24gc2Nobm9yckdldFB1YmxpY0tleShwcml2YXRlS2V5KSB7XG4gICAgcmV0dXJuIFBvaW50LmZyb21Qcml2YXRlS2V5KHByaXZhdGVLZXkpLnRvUmF3WCgpO1xufVxuY2xhc3MgSW50ZXJuYWxTY2hub3JyU2lnbmF0dXJlIHtcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlLCBwcml2YXRlS2V5LCBhdXhSYW5kID0gdXRpbHMucmFuZG9tQnl0ZXMoKSkge1xuICAgICAgICBpZiAobWVzc2FnZSA9PSBudWxsKVxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgc2lnbjogRXhwZWN0ZWQgdmFsaWQgbWVzc2FnZSwgbm90IFwiJHttZXNzYWdlfVwiYCk7XG4gICAgICAgIHRoaXMubSA9IGVuc3VyZUJ5dGVzKG1lc3NhZ2UpO1xuICAgICAgICBjb25zdCB7IHgsIHNjYWxhciB9ID0gdGhpcy5nZXRTY2FsYXIobm9ybWFsaXplUHJpdmF0ZUtleShwcml2YXRlS2V5KSk7XG4gICAgICAgIHRoaXMucHggPSB4O1xuICAgICAgICB0aGlzLmQgPSBzY2FsYXI7XG4gICAgICAgIHRoaXMucmFuZCA9IGVuc3VyZUJ5dGVzKGF1eFJhbmQpO1xuICAgICAgICBpZiAodGhpcy5yYW5kLmxlbmd0aCAhPT0gMzIpXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdzaWduOiBFeHBlY3RlZCAzMiBieXRlcyBvZiBhdXggcmFuZG9tbmVzcycpO1xuICAgIH1cbiAgICBnZXRTY2FsYXIocHJpdikge1xuICAgICAgICBjb25zdCBwb2ludCA9IFBvaW50LmZyb21Qcml2YXRlS2V5KHByaXYpO1xuICAgICAgICBjb25zdCBzY2FsYXIgPSBwb2ludC5oYXNFdmVuWSgpID8gcHJpdiA6IENVUlZFLm4gLSBwcml2O1xuICAgICAgICByZXR1cm4geyBwb2ludCwgc2NhbGFyLCB4OiBwb2ludC50b1Jhd1goKSB9O1xuICAgIH1cbiAgICBpbml0Tm9uY2UoZCwgdDBoKSB7XG4gICAgICAgIHJldHVybiBudW1UbzMyYihkIF4gYnl0ZXNUb051bWJlcih0MGgpKTtcbiAgICB9XG4gICAgZmluYWxpemVOb25jZShrMGgpIHtcbiAgICAgICAgY29uc3QgazAgPSBtb2QoYnl0ZXNUb051bWJlcihrMGgpLCBDVVJWRS5uKTtcbiAgICAgICAgaWYgKGswID09PSBfMG4pXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3NpZ246IENyZWF0aW9uIG9mIHNpZ25hdHVyZSBmYWlsZWQuIGsgaXMgemVybycpO1xuICAgICAgICBjb25zdCB7IHBvaW50OiBSLCB4OiByeCwgc2NhbGFyOiBrIH0gPSB0aGlzLmdldFNjYWxhcihrMCk7XG4gICAgICAgIHJldHVybiB7IFIsIHJ4LCBrIH07XG4gICAgfVxuICAgIGZpbmFsaXplU2lnKFIsIGssIGUsIGQpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBTY2hub3JyU2lnbmF0dXJlKFIueCwgbW9kKGsgKyBlICogZCwgQ1VSVkUubikpLnRvUmF3Qnl0ZXMoKTtcbiAgICB9XG4gICAgZXJyb3IoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignc2lnbjogSW52YWxpZCBzaWduYXR1cmUgcHJvZHVjZWQnKTtcbiAgICB9XG4gICAgYXN5bmMgY2FsYygpIHtcbiAgICAgICAgY29uc3QgeyBtLCBkLCBweCwgcmFuZCB9ID0gdGhpcztcbiAgICAgICAgY29uc3QgdGFnID0gdXRpbHMudGFnZ2VkSGFzaDtcbiAgICAgICAgY29uc3QgdCA9IHRoaXMuaW5pdE5vbmNlKGQsIGF3YWl0IHRhZyhUQUdTLmF1eCwgcmFuZCkpO1xuICAgICAgICBjb25zdCB7IFIsIHJ4LCBrIH0gPSB0aGlzLmZpbmFsaXplTm9uY2UoYXdhaXQgdGFnKFRBR1Mubm9uY2UsIHQsIHB4LCBtKSk7XG4gICAgICAgIGNvbnN0IGUgPSBzY2hub3JyQ2hhbGxlbmdlRmluYWxpemUoYXdhaXQgdGFnKFRBR1MuY2hhbGxlbmdlLCByeCwgcHgsIG0pKTtcbiAgICAgICAgY29uc3Qgc2lnID0gdGhpcy5maW5hbGl6ZVNpZyhSLCBrLCBlLCBkKTtcbiAgICAgICAgaWYgKCEoYXdhaXQgc2Nobm9yclZlcmlmeShzaWcsIG0sIHB4KSkpXG4gICAgICAgICAgICB0aGlzLmVycm9yKCk7XG4gICAgICAgIHJldHVybiBzaWc7XG4gICAgfVxuICAgIGNhbGNTeW5jKCkge1xuICAgICAgICBjb25zdCB7IG0sIGQsIHB4LCByYW5kIH0gPSB0aGlzO1xuICAgICAgICBjb25zdCB0YWcgPSB1dGlscy50YWdnZWRIYXNoU3luYztcbiAgICAgICAgY29uc3QgdCA9IHRoaXMuaW5pdE5vbmNlKGQsIHRhZyhUQUdTLmF1eCwgcmFuZCkpO1xuICAgICAgICBjb25zdCB7IFIsIHJ4LCBrIH0gPSB0aGlzLmZpbmFsaXplTm9uY2UodGFnKFRBR1Mubm9uY2UsIHQsIHB4LCBtKSk7XG4gICAgICAgIGNvbnN0IGUgPSBzY2hub3JyQ2hhbGxlbmdlRmluYWxpemUodGFnKFRBR1MuY2hhbGxlbmdlLCByeCwgcHgsIG0pKTtcbiAgICAgICAgY29uc3Qgc2lnID0gdGhpcy5maW5hbGl6ZVNpZyhSLCBrLCBlLCBkKTtcbiAgICAgICAgaWYgKCFzY2hub3JyVmVyaWZ5U3luYyhzaWcsIG0sIHB4KSlcbiAgICAgICAgICAgIHRoaXMuZXJyb3IoKTtcbiAgICAgICAgcmV0dXJuIHNpZztcbiAgICB9XG59XG5hc3luYyBmdW5jdGlvbiBzY2hub3JyU2lnbihtc2csIHByaXZLZXksIGF1eFJhbmQpIHtcbiAgICByZXR1cm4gbmV3IEludGVybmFsU2Nobm9yclNpZ25hdHVyZShtc2csIHByaXZLZXksIGF1eFJhbmQpLmNhbGMoKTtcbn1cbmZ1bmN0aW9uIHNjaG5vcnJTaWduU3luYyhtc2csIHByaXZLZXksIGF1eFJhbmQpIHtcbiAgICByZXR1cm4gbmV3IEludGVybmFsU2Nobm9yclNpZ25hdHVyZShtc2csIHByaXZLZXksIGF1eFJhbmQpLmNhbGNTeW5jKCk7XG59XG5mdW5jdGlvbiBpbml0U2Nobm9yclZlcmlmeShzaWduYXR1cmUsIG1lc3NhZ2UsIHB1YmxpY0tleSkge1xuICAgIGNvbnN0IHJhdyA9IHNpZ25hdHVyZSBpbnN0YW5jZW9mIFNjaG5vcnJTaWduYXR1cmU7XG4gICAgY29uc3Qgc2lnID0gcmF3ID8gc2lnbmF0dXJlIDogU2Nobm9yclNpZ25hdHVyZS5mcm9tSGV4KHNpZ25hdHVyZSk7XG4gICAgaWYgKHJhdylcbiAgICAgICAgc2lnLmFzc2VydFZhbGlkaXR5KCk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc2lnLFxuICAgICAgICBtOiBlbnN1cmVCeXRlcyhtZXNzYWdlKSxcbiAgICAgICAgUDogbm9ybWFsaXplUHVibGljS2V5KHB1YmxpY0tleSksXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGZpbmFsaXplU2Nobm9yclZlcmlmeShyLCBQLCBzLCBlKSB7XG4gICAgY29uc3QgUiA9IFBvaW50LkJBU0UubXVsdGlwbHlBbmRBZGRVbnNhZmUoUCwgbm9ybWFsaXplUHJpdmF0ZUtleShzKSwgbW9kKC1lLCBDVVJWRS5uKSk7XG4gICAgaWYgKCFSIHx8ICFSLmhhc0V2ZW5ZKCkgfHwgUi54ICE9PSByKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRydWU7XG59XG5hc3luYyBmdW5jdGlvbiBzY2hub3JyVmVyaWZ5KHNpZ25hdHVyZSwgbWVzc2FnZSwgcHVibGljS2V5KSB7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgeyByLCBzLCBtLCBQIH0gPSBpbml0U2Nobm9yclZlcmlmeShzaWduYXR1cmUsIG1lc3NhZ2UsIHB1YmxpY0tleSk7XG4gICAgICAgIGNvbnN0IGUgPSBzY2hub3JyQ2hhbGxlbmdlRmluYWxpemUoYXdhaXQgdXRpbHMudGFnZ2VkSGFzaChUQUdTLmNoYWxsZW5nZSwgbnVtVG8zMmIociksIFAudG9SYXdYKCksIG0pKTtcbiAgICAgICAgcmV0dXJuIGZpbmFsaXplU2Nobm9yclZlcmlmeShyLCBQLCBzLCBlKTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG5mdW5jdGlvbiBzY2hub3JyVmVyaWZ5U3luYyhzaWduYXR1cmUsIG1lc3NhZ2UsIHB1YmxpY0tleSkge1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHsgciwgcywgbSwgUCB9ID0gaW5pdFNjaG5vcnJWZXJpZnkoc2lnbmF0dXJlLCBtZXNzYWdlLCBwdWJsaWNLZXkpO1xuICAgICAgICBjb25zdCBlID0gc2Nobm9yckNoYWxsZW5nZUZpbmFsaXplKHV0aWxzLnRhZ2dlZEhhc2hTeW5jKFRBR1MuY2hhbGxlbmdlLCBudW1UbzMyYihyKSwgUC50b1Jhd1goKSwgbSkpO1xuICAgICAgICByZXR1cm4gZmluYWxpemVTY2hub3JyVmVyaWZ5KHIsIFAsIHMsIGUpO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgU2hhRXJyb3IpXG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbmV4cG9ydCBjb25zdCBzY2hub3JyID0ge1xuICAgIFNpZ25hdHVyZTogU2Nobm9yclNpZ25hdHVyZSxcbiAgICBnZXRQdWJsaWNLZXk6IHNjaG5vcnJHZXRQdWJsaWNLZXksXG4gICAgc2lnbjogc2Nobm9yclNpZ24sXG4gICAgdmVyaWZ5OiBzY2hub3JyVmVyaWZ5LFxuICAgIHNpZ25TeW5jOiBzY2hub3JyU2lnblN5bmMsXG4gICAgdmVyaWZ5U3luYzogc2Nobm9yclZlcmlmeVN5bmMsXG59O1xuUG9pbnQuQkFTRS5fc2V0V2luZG93U2l6ZSg4KTtcbmNvbnN0IGNyeXB0byA9IHtcbiAgICBub2RlOiBub2RlQ3J5cHRvLFxuICAgIHdlYjogdHlwZW9mIHNlbGYgPT09ICdvYmplY3QnICYmICdjcnlwdG8nIGluIHNlbGYgPyBzZWxmLmNyeXB0byA6IHVuZGVmaW5lZCxcbn07XG5jb25zdCBUQUdTID0ge1xuICAgIGNoYWxsZW5nZTogJ0JJUDAzNDAvY2hhbGxlbmdlJyxcbiAgICBhdXg6ICdCSVAwMzQwL2F1eCcsXG4gICAgbm9uY2U6ICdCSVAwMzQwL25vbmNlJyxcbn07XG5jb25zdCBUQUdHRURfSEFTSF9QUkVGSVhFUyA9IHt9O1xuZXhwb3J0IGNvbnN0IHV0aWxzID0ge1xuICAgIGJ5dGVzVG9IZXgsXG4gICAgaGV4VG9CeXRlcyxcbiAgICBjb25jYXRCeXRlcyxcbiAgICBtb2QsXG4gICAgaW52ZXJ0LFxuICAgIGlzVmFsaWRQcml2YXRlS2V5KHByaXZhdGVLZXkpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIG5vcm1hbGl6ZVByaXZhdGVLZXkocHJpdmF0ZUtleSk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgX2JpZ2ludFRvMzJCeXRlczogbnVtVG8zMmIsXG4gICAgX25vcm1hbGl6ZVByaXZhdGVLZXk6IG5vcm1hbGl6ZVByaXZhdGVLZXksXG4gICAgaGFzaFRvUHJpdmF0ZUtleTogKGhhc2gpID0+IHtcbiAgICAgICAgaGFzaCA9IGVuc3VyZUJ5dGVzKGhhc2gpO1xuICAgICAgICBjb25zdCBtaW5MZW4gPSBncm91cExlbiArIDg7XG4gICAgICAgIGlmIChoYXNoLmxlbmd0aCA8IG1pbkxlbiB8fCBoYXNoLmxlbmd0aCA+IDEwMjQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgdmFsaWQgYnl0ZXMgb2YgcHJpdmF0ZSBrZXkgYXMgcGVyIEZJUFMgMTg2YCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbnVtID0gbW9kKGJ5dGVzVG9OdW1iZXIoaGFzaCksIENVUlZFLm4gLSBfMW4pICsgXzFuO1xuICAgICAgICByZXR1cm4gbnVtVG8zMmIobnVtKTtcbiAgICB9LFxuICAgIHJhbmRvbUJ5dGVzOiAoYnl0ZXNMZW5ndGggPSAzMikgPT4ge1xuICAgICAgICBpZiAoY3J5cHRvLndlYikge1xuICAgICAgICAgICAgcmV0dXJuIGNyeXB0by53ZWIuZ2V0UmFuZG9tVmFsdWVzKG5ldyBVaW50OEFycmF5KGJ5dGVzTGVuZ3RoKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoY3J5cHRvLm5vZGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgcmFuZG9tQnl0ZXMgfSA9IGNyeXB0by5ub2RlO1xuICAgICAgICAgICAgcmV0dXJuIFVpbnQ4QXJyYXkuZnJvbShyYW5kb21CeXRlcyhieXRlc0xlbmd0aCkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlIGVudmlyb25tZW50IGRvZXNuJ3QgaGF2ZSByYW5kb21CeXRlcyBmdW5jdGlvblwiKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgcmFuZG9tUHJpdmF0ZUtleTogKCkgPT4gdXRpbHMuaGFzaFRvUHJpdmF0ZUtleSh1dGlscy5yYW5kb21CeXRlcyhncm91cExlbiArIDgpKSxcbiAgICBwcmVjb21wdXRlKHdpbmRvd1NpemUgPSA4LCBwb2ludCA9IFBvaW50LkJBU0UpIHtcbiAgICAgICAgY29uc3QgY2FjaGVkID0gcG9pbnQgPT09IFBvaW50LkJBU0UgPyBwb2ludCA6IG5ldyBQb2ludChwb2ludC54LCBwb2ludC55KTtcbiAgICAgICAgY2FjaGVkLl9zZXRXaW5kb3dTaXplKHdpbmRvd1NpemUpO1xuICAgICAgICBjYWNoZWQubXVsdGlwbHkoXzNuKTtcbiAgICAgICAgcmV0dXJuIGNhY2hlZDtcbiAgICB9LFxuICAgIHNoYTI1NjogYXN5bmMgKC4uLm1lc3NhZ2VzKSA9PiB7XG4gICAgICAgIGlmIChjcnlwdG8ud2ViKSB7XG4gICAgICAgICAgICBjb25zdCBidWZmZXIgPSBhd2FpdCBjcnlwdG8ud2ViLnN1YnRsZS5kaWdlc3QoJ1NIQS0yNTYnLCBjb25jYXRCeXRlcyguLi5tZXNzYWdlcykpO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KGJ1ZmZlcik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoY3J5cHRvLm5vZGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgY3JlYXRlSGFzaCB9ID0gY3J5cHRvLm5vZGU7XG4gICAgICAgICAgICBjb25zdCBoYXNoID0gY3JlYXRlSGFzaCgnc2hhMjU2Jyk7XG4gICAgICAgICAgICBtZXNzYWdlcy5mb3JFYWNoKChtKSA9PiBoYXNoLnVwZGF0ZShtKSk7XG4gICAgICAgICAgICByZXR1cm4gVWludDhBcnJheS5mcm9tKGhhc2guZGlnZXN0KCkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlIGVudmlyb25tZW50IGRvZXNuJ3QgaGF2ZSBzaGEyNTYgZnVuY3Rpb25cIik7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGhtYWNTaGEyNTY6IGFzeW5jIChrZXksIC4uLm1lc3NhZ2VzKSA9PiB7XG4gICAgICAgIGlmIChjcnlwdG8ud2ViKSB7XG4gICAgICAgICAgICBjb25zdCBja2V5ID0gYXdhaXQgY3J5cHRvLndlYi5zdWJ0bGUuaW1wb3J0S2V5KCdyYXcnLCBrZXksIHsgbmFtZTogJ0hNQUMnLCBoYXNoOiB7IG5hbWU6ICdTSEEtMjU2JyB9IH0sIGZhbHNlLCBbJ3NpZ24nXSk7XG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gY29uY2F0Qnl0ZXMoLi4ubWVzc2FnZXMpO1xuICAgICAgICAgICAgY29uc3QgYnVmZmVyID0gYXdhaXQgY3J5cHRvLndlYi5zdWJ0bGUuc2lnbignSE1BQycsIGNrZXksIG1lc3NhZ2UpO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KGJ1ZmZlcik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoY3J5cHRvLm5vZGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgY3JlYXRlSG1hYyB9ID0gY3J5cHRvLm5vZGU7XG4gICAgICAgICAgICBjb25zdCBoYXNoID0gY3JlYXRlSG1hYygnc2hhMjU2Jywga2V5KTtcbiAgICAgICAgICAgIG1lc3NhZ2VzLmZvckVhY2goKG0pID0+IGhhc2gudXBkYXRlKG0pKTtcbiAgICAgICAgICAgIHJldHVybiBVaW50OEFycmF5LmZyb20oaGFzaC5kaWdlc3QoKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgZW52aXJvbm1lbnQgZG9lc24ndCBoYXZlIGhtYWMtc2hhMjU2IGZ1bmN0aW9uXCIpO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBzaGEyNTZTeW5jOiB1bmRlZmluZWQsXG4gICAgaG1hY1NoYTI1NlN5bmM6IHVuZGVmaW5lZCxcbiAgICB0YWdnZWRIYXNoOiBhc3luYyAodGFnLCAuLi5tZXNzYWdlcykgPT4ge1xuICAgICAgICBsZXQgdGFnUCA9IFRBR0dFRF9IQVNIX1BSRUZJWEVTW3RhZ107XG4gICAgICAgIGlmICh0YWdQID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhZ0ggPSBhd2FpdCB1dGlscy5zaGEyNTYoVWludDhBcnJheS5mcm9tKHRhZywgKGMpID0+IGMuY2hhckNvZGVBdCgwKSkpO1xuICAgICAgICAgICAgdGFnUCA9IGNvbmNhdEJ5dGVzKHRhZ0gsIHRhZ0gpO1xuICAgICAgICAgICAgVEFHR0VEX0hBU0hfUFJFRklYRVNbdGFnXSA9IHRhZ1A7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHV0aWxzLnNoYTI1Nih0YWdQLCAuLi5tZXNzYWdlcyk7XG4gICAgfSxcbiAgICB0YWdnZWRIYXNoU3luYzogKHRhZywgLi4ubWVzc2FnZXMpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBfc2hhMjU2U3luYyAhPT0gJ2Z1bmN0aW9uJylcbiAgICAgICAgICAgIHRocm93IG5ldyBTaGFFcnJvcignc2hhMjU2U3luYyBpcyB1bmRlZmluZWQsIHlvdSBuZWVkIHRvIHNldCBpdCcpO1xuICAgICAgICBsZXQgdGFnUCA9IFRBR0dFRF9IQVNIX1BSRUZJWEVTW3RhZ107XG4gICAgICAgIGlmICh0YWdQID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhZ0ggPSBfc2hhMjU2U3luYyhVaW50OEFycmF5LmZyb20odGFnLCAoYykgPT4gYy5jaGFyQ29kZUF0KDApKSk7XG4gICAgICAgICAgICB0YWdQID0gY29uY2F0Qnl0ZXModGFnSCwgdGFnSCk7XG4gICAgICAgICAgICBUQUdHRURfSEFTSF9QUkVGSVhFU1t0YWddID0gdGFnUDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gX3NoYTI1NlN5bmModGFnUCwgLi4ubWVzc2FnZXMpO1xuICAgIH0sXG4gICAgX0phY29iaWFuUG9pbnQ6IEphY29iaWFuUG9pbnQsXG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnRpZXModXRpbHMsIHtcbiAgICBzaGEyNTZTeW5jOiB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICAgIGdldCgpIHtcbiAgICAgICAgICAgIHJldHVybiBfc2hhMjU2U3luYztcbiAgICAgICAgfSxcbiAgICAgICAgc2V0KHZhbCkge1xuICAgICAgICAgICAgaWYgKCFfc2hhMjU2U3luYylcbiAgICAgICAgICAgICAgICBfc2hhMjU2U3luYyA9IHZhbDtcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIGhtYWNTaGEyNTZTeW5jOiB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICAgIGdldCgpIHtcbiAgICAgICAgICAgIHJldHVybiBfaG1hY1NoYTI1NlN5bmM7XG4gICAgICAgIH0sXG4gICAgICAgIHNldCh2YWwpIHtcbiAgICAgICAgICAgIGlmICghX2htYWNTaGEyNTZTeW5jKVxuICAgICAgICAgICAgICAgIF9obWFjU2hhMjU2U3luYyA9IHZhbDtcbiAgICAgICAgfSxcbiAgICB9LFxufSk7XG4iLCJpbXBvcnQgeyBiZWNoMzIgfSBmcm9tICdiZWNoMzInO1xuXG5jb25zdCB1dGY4RGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcigndXRmLTgnKVxuY29uc3QgaGV4ZXMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiAyNTYgfSwgKHYsIGkpID0+IGkudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsICcwJykpO1xuXG5mdW5jdGlvbiBoZXhUb0J5dGVzKGhleCkge1xuICBsZXQgYnl0ZXMgPSBbXTtcbiAgZm9yIChsZXQgYyA9IDA7IGMgPCBoZXgubGVuZ3RoOyBjICs9IDIpXG4gICAgYnl0ZXMucHVzaChwYXJzZUludChoZXguc3Vic3RyKGMsIDIpLCAxNikpO1xuICByZXR1cm4gYnl0ZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXROb3RlSWQoaGV4SWQpIHtcbiAgY29uc3QgYmIgPSBoZXhUb0J5dGVzKGhleElkKTtcbiAgY29uc3Qgd29yZHMgPSBiZWNoMzIudG9Xb3JkcyhiYik7XG4gIHJldHVybiBiZWNoMzIuZW5jb2RlKCdub3RlJywgd29yZHMsIDEyMCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXROcHViKGhleFB1YmtleSkge1xuICBjb25zdCBiYiA9IGhleFRvQnl0ZXMoaGV4UHVia2V5KTtcbiAgY29uc3Qgd29yZHMgPSBiZWNoMzIudG9Xb3JkcyhiYik7XG4gIHJldHVybiBiZWNoMzIuZW5jb2RlKCducHViJywgd29yZHMsIDEyMCk7XG59XG5cbmZ1bmN0aW9uIGZyb21Xb3Jkcyh3b3Jkcykge1xuICByZXR1cm4gYmVjaDMyLmZyb21Xb3Jkcyh3b3JkcylcbiAgICAubWFwKChieXRlcykgPT4gYnl0ZXMudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsICcwJykpXG4gICAgLmpvaW4oJycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VOb3RlSWQobm90ZUlkKSB7XG4gIGNvbnN0IHIgPSBiZWNoMzIuZGVjb2RlKG5vdGVJZCwgMTIwKTtcbiAgaWYgKHIucHJlZml4ICE9IFwibm90ZVwiKSByZXR1cm4gXCJcIjtcbiAgcmV0dXJuIGZyb21Xb3JkcyhyLndvcmRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlTnB1YihucHViKSB7XG4gIGNvbnN0IHIgPSBiZWNoMzIuZGVjb2RlKG5wdWIsIDEyMCk7XG4gIGlmIChyLnByZWZpeCAhPSBcIm5wdWJcIikgcmV0dXJuIFwiXCI7XG4gIHJldHVybiBmcm9tV29yZHMoci53b3Jkcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZU5wcm9maWxlKG5wcm9maWxlKSB7XG4gIGNvbnN0IHIgPSBiZWNoMzIuZGVjb2RlKG5wcm9maWxlLCAzMDApO1xuICBpZiAoci5wcmVmaXggIT0gXCJucHJvZmlsZVwiKSByZXR1cm4gbnVsbDtcblxuICBjb25zdCBkYXRhID0gbmV3IFVpbnQ4QXJyYXkoYmVjaDMyLmZyb21Xb3JkcyhyLndvcmRzKSlcbiAgY29uc3QgdGx2ID0gcGFyc2VUTFYoZGF0YSk7XG4gIGlmICghdGx2WzBdPy5bMF0pIHRocm93IG5ldyBFcnJvcignbWlzc2luZyBUTFYgMCBmb3IgbnByb2ZpbGUnKVxuICBpZiAodGx2WzBdWzBdLmxlbmd0aCAhPT0gMzIpIHRocm93IG5ldyBFcnJvcignVExWIDAgc2hvdWxkIGJlIDMyIGJ5dGVzJylcblxuICByZXR1cm4ge1xuICAgIHR5cGU6ICducHJvZmlsZScsXG4gICAgZGF0YToge1xuICAgICAgcHVia2V5OiBieXRlc1RvSGV4KHRsdlswXVswXSksXG4gICAgICByZWxheXM6IHRsdlsxXSA/IHRsdlsxXS5tYXAoZCA9PiB1dGY4RGVjb2Rlci5kZWNvZGUoZCkpIDogW11cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlTmFkZHIobmFkZHIpIHtcblxuICBpZiAoIW5hZGRyKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgciA9IGJlY2gzMi5kZWNvZGUobmFkZHIsIDMwMClcbiAgY29uc3QgZGF0YSA9IG5ldyBVaW50OEFycmF5KGJlY2gzMi5mcm9tV29yZHMoci53b3JkcykpXG4gIGNvbnN0IHRsdiA9IHBhcnNlVExWKGRhdGEpO1xuXG4gIGlmICghdGx2WzBdPy5bMF0pIHRocm93IG5ldyBFcnJvcignbWlzc2luZyBUTFYgMCBmb3IgbmFkZHInKVxuICBpZiAoIXRsdlsyXT8uWzBdKSB0aHJvdyBuZXcgRXJyb3IoJ21pc3NpbmcgVExWIDIgZm9yIG5hZGRyJylcbiAgaWYgKHRsdlsyXVswXS5sZW5ndGggIT09IDMyKSB0aHJvdyBuZXcgRXJyb3IoJ1RMViAyIHNob3VsZCBiZSAzMiBieXRlcycpXG4gIGlmICghdGx2WzNdPy5bMF0pIHRocm93IG5ldyBFcnJvcignbWlzc2luZyBUTFYgMyBmb3IgbmFkZHInKVxuICBpZiAodGx2WzNdWzBdLmxlbmd0aCAhPT0gNCkgdGhyb3cgbmV3IEVycm9yKCdUTFYgMyBzaG91bGQgYmUgNCBieXRlcycpXG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnbmFkZHInLFxuICAgIGRhdGE6IHtcbiAgICAgIGlkZW50aWZpZXI6IHV0ZjhEZWNvZGVyLmRlY29kZSh0bHZbMF1bMF0pLFxuICAgICAgcHVia2V5OiBieXRlc1RvSGV4KHRsdlsyXVswXSksXG4gICAgICBraW5kOiBwYXJzZUludChieXRlc1RvSGV4KHRsdlszXVswXSksIDE2KSxcbiAgICAgIHJlbGF5czogdGx2WzFdID8gdGx2WzFdLm1hcChkID0+IHV0ZjhEZWNvZGVyLmRlY29kZShkKSkgOiBbXVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0TnB1YihucHViKSB7XG4gIHJldHVybiBgJHtucHViLnNsaWNlKFxuICAgIDAsXG4gICAgMTJcbiAgKX0uLi4ke25wdWIuc2xpY2UoLTQpfWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXROb3RlSWQobm90ZUlkKSB7XG4gIHJldHVybiBgJHtub3RlSWQuc2xpY2UoXG4gICAgMCxcbiAgICAxMCxcbiAgKX0uLi4ke25vdGVJZC5zbGljZSgtNCl9YDtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0WmFwQW1vdW50KGEpIHtcbiAgYSAvPSAxMDAwO1xuICBpZiAoYSA+PSAxMDAwMDAwKSByZXR1cm4gKE1hdGgucm91bmQoYSAvIDEwMDAwMCkgLyAxMCkgKyBcIk1cIjtcbiAgaWYgKGEgPj0gMTAwMCkgcmV0dXJuIChNYXRoLnJvdW5kKGEgLyAxMDApIC8gMTApICsgXCJLXCI7XG4gIHJldHVybiBhO1xufVxuXG5mdW5jdGlvbiBwYXJzZVRMVihkYXRhKSB7XG4gIGxldCByZXN1bHQgPSB7fVxuICBsZXQgcmVzdCA9IGRhdGFcbiAgd2hpbGUgKHJlc3QubGVuZ3RoID4gMCkge1xuICAgIGxldCB0ID0gcmVzdFswXVxuICAgIGxldCBsID0gcmVzdFsxXVxuICAgIGxldCB2ID0gcmVzdC5zbGljZSgyLCAyICsgbClcbiAgICByZXN0ID0gcmVzdC5zbGljZSgyICsgbClcbiAgICBpZiAodi5sZW5ndGggPCBsKSBjb250aW51ZVxuICAgIHJlc3VsdFt0XSA9IHJlc3VsdFt0XSB8fCBbXVxuICAgIHJlc3VsdFt0XS5wdXNoKHYpXG4gIH1cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG5mdW5jdGlvbiBieXRlc1RvSGV4KHVpbnQ4YSkge1xuICAvLyBwcmUtY2FjaGluZyBpbXByb3ZlcyB0aGUgc3BlZWQgNnhcbiAgaWYgKCEodWludDhhIGluc3RhbmNlb2YgVWludDhBcnJheSkpIHRocm93IG5ldyBFcnJvcignVWludDhBcnJheSBleHBlY3RlZCcpO1xuICBsZXQgaGV4ID0gJyc7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdWludDhhLmxlbmd0aDsgaSsrKSB7XG4gICAgaGV4ICs9IGhleGVzW3VpbnQ4YVtpXV07XG4gIH1cbiAgcmV0dXJuIGhleDtcbn1cbiIsImltcG9ydHtvcHRpb25zIGFzIG59ZnJvbVwicHJlYWN0XCI7dmFyIHQscix1LGksbz0wLGY9W10sYz1bXSxlPW4uX19iLGE9bi5fX3Isdj1uLmRpZmZlZCxsPW4uX19jLG09bi51bm1vdW50O2Z1bmN0aW9uIGQodCx1KXtuLl9faCYmbi5fX2gocix0LG98fHUpLG89MDt2YXIgaT1yLl9fSHx8KHIuX19IPXtfXzpbXSxfX2g6W119KTtyZXR1cm4gdD49aS5fXy5sZW5ndGgmJmkuX18ucHVzaCh7X19WOmN9KSxpLl9fW3RdfWZ1bmN0aW9uIGgobil7cmV0dXJuIG89MSxzKEIsbil9ZnVuY3Rpb24gcyhuLHUsaSl7dmFyIG89ZCh0KyssMik7aWYoby50PW4sIW8uX19jJiYoby5fXz1baT9pKHUpOkIodm9pZCAwLHUpLGZ1bmN0aW9uKG4pe3ZhciB0PW8uX19OP28uX19OWzBdOm8uX19bMF0scj1vLnQodCxuKTt0IT09ciYmKG8uX19OPVtyLG8uX19bMV1dLG8uX19jLnNldFN0YXRlKHt9KSl9XSxvLl9fYz1yLCFyLnUpKXt2YXIgZj1mdW5jdGlvbihuLHQscil7aWYoIW8uX19jLl9fSClyZXR1cm4hMDt2YXIgdT1vLl9fYy5fX0guX18uZmlsdGVyKGZ1bmN0aW9uKG4pe3JldHVybiBuLl9fY30pO2lmKHUuZXZlcnkoZnVuY3Rpb24obil7cmV0dXJuIW4uX19OfSkpcmV0dXJuIWN8fGMuY2FsbCh0aGlzLG4sdCxyKTt2YXIgaT0hMTtyZXR1cm4gdS5mb3JFYWNoKGZ1bmN0aW9uKG4pe2lmKG4uX19OKXt2YXIgdD1uLl9fWzBdO24uX189bi5fX04sbi5fX049dm9pZCAwLHQhPT1uLl9fWzBdJiYoaT0hMCl9fSksISghaSYmby5fX2MucHJvcHM9PT1uKSYmKCFjfHxjLmNhbGwodGhpcyxuLHQscikpfTtyLnU9ITA7dmFyIGM9ci5zaG91bGRDb21wb25lbnRVcGRhdGUsZT1yLmNvbXBvbmVudFdpbGxVcGRhdGU7ci5jb21wb25lbnRXaWxsVXBkYXRlPWZ1bmN0aW9uKG4sdCxyKXtpZih0aGlzLl9fZSl7dmFyIHU9YztjPXZvaWQgMCxmKG4sdCxyKSxjPXV9ZSYmZS5jYWxsKHRoaXMsbix0LHIpfSxyLnNob3VsZENvbXBvbmVudFVwZGF0ZT1mfXJldHVybiBvLl9fTnx8by5fX31mdW5jdGlvbiBwKHUsaSl7dmFyIG89ZCh0KyssMyk7IW4uX19zJiZ6KG8uX19ILGkpJiYoby5fXz11LG8uaT1pLHIuX19ILl9faC5wdXNoKG8pKX1mdW5jdGlvbiB5KHUsaSl7dmFyIG89ZCh0KyssNCk7IW4uX19zJiZ6KG8uX19ILGkpJiYoby5fXz11LG8uaT1pLHIuX19oLnB1c2gobykpfWZ1bmN0aW9uIF8obil7cmV0dXJuIG89NSxGKGZ1bmN0aW9uKCl7cmV0dXJue2N1cnJlbnQ6bn19LFtdKX1mdW5jdGlvbiBBKG4sdCxyKXtvPTYseShmdW5jdGlvbigpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIG4/KG4odCgpKSxmdW5jdGlvbigpe3JldHVybiBuKG51bGwpfSk6bj8obi5jdXJyZW50PXQoKSxmdW5jdGlvbigpe3JldHVybiBuLmN1cnJlbnQ9bnVsbH0pOnZvaWQgMH0sbnVsbD09cj9yOnIuY29uY2F0KG4pKX1mdW5jdGlvbiBGKG4scil7dmFyIHU9ZCh0KyssNyk7cmV0dXJuIHoodS5fX0gscik/KHUuX19WPW4oKSx1Lmk9cix1Ll9faD1uLHUuX19WKTp1Ll9ffWZ1bmN0aW9uIFQobix0KXtyZXR1cm4gbz04LEYoZnVuY3Rpb24oKXtyZXR1cm4gbn0sdCl9ZnVuY3Rpb24gcShuKXt2YXIgdT1yLmNvbnRleHRbbi5fX2NdLGk9ZCh0KyssOSk7cmV0dXJuIGkuYz1uLHU/KG51bGw9PWkuX18mJihpLl9fPSEwLHUuc3ViKHIpKSx1LnByb3BzLnZhbHVlKTpuLl9ffWZ1bmN0aW9uIHgodCxyKXtuLnVzZURlYnVnVmFsdWUmJm4udXNlRGVidWdWYWx1ZShyP3IodCk6dCl9ZnVuY3Rpb24gUChuKXt2YXIgdT1kKHQrKywxMCksaT1oKCk7cmV0dXJuIHUuX189bixyLmNvbXBvbmVudERpZENhdGNofHwoci5jb21wb25lbnREaWRDYXRjaD1mdW5jdGlvbihuLHQpe3UuX18mJnUuX18obix0KSxpWzFdKG4pfSksW2lbMF0sZnVuY3Rpb24oKXtpWzFdKHZvaWQgMCl9XX1mdW5jdGlvbiBWKCl7dmFyIG49ZCh0KyssMTEpO2lmKCFuLl9fKXtmb3IodmFyIHU9ci5fX3Y7bnVsbCE9PXUmJiF1Ll9fbSYmbnVsbCE9PXUuX187KXU9dS5fXzt2YXIgaT11Ll9fbXx8KHUuX19tPVswLDBdKTtuLl9fPVwiUFwiK2lbMF0rXCItXCIraVsxXSsrfXJldHVybiBuLl9ffWZ1bmN0aW9uIGIoKXtmb3IodmFyIHQ7dD1mLnNoaWZ0KCk7KWlmKHQuX19QJiZ0Ll9fSCl0cnl7dC5fX0guX19oLmZvckVhY2goayksdC5fX0guX19oLmZvckVhY2godyksdC5fX0guX19oPVtdfWNhdGNoKHIpe3QuX19ILl9faD1bXSxuLl9fZShyLHQuX192KX19bi5fX2I9ZnVuY3Rpb24obil7cj1udWxsLGUmJmUobil9LG4uX19yPWZ1bmN0aW9uKG4pe2EmJmEobiksdD0wO3ZhciBpPShyPW4uX19jKS5fX0g7aSYmKHU9PT1yPyhpLl9faD1bXSxyLl9faD1bXSxpLl9fLmZvckVhY2goZnVuY3Rpb24obil7bi5fX04mJihuLl9fPW4uX19OKSxuLl9fVj1jLG4uX19OPW4uaT12b2lkIDB9KSk6KGkuX19oLmZvckVhY2goayksaS5fX2guZm9yRWFjaCh3KSxpLl9faD1bXSx0PTApKSx1PXJ9LG4uZGlmZmVkPWZ1bmN0aW9uKHQpe3YmJnYodCk7dmFyIG89dC5fX2M7byYmby5fX0gmJihvLl9fSC5fX2gubGVuZ3RoJiYoMSE9PWYucHVzaChvKSYmaT09PW4ucmVxdWVzdEFuaW1hdGlvbkZyYW1lfHwoKGk9bi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUpfHxqKShiKSksby5fX0guX18uZm9yRWFjaChmdW5jdGlvbihuKXtuLmkmJihuLl9fSD1uLmkpLG4uX19WIT09YyYmKG4uX189bi5fX1YpLG4uaT12b2lkIDAsbi5fX1Y9Y30pKSx1PXI9bnVsbH0sbi5fX2M9ZnVuY3Rpb24odCxyKXtyLnNvbWUoZnVuY3Rpb24odCl7dHJ5e3QuX19oLmZvckVhY2goayksdC5fX2g9dC5fX2guZmlsdGVyKGZ1bmN0aW9uKG4pe3JldHVybiFuLl9ffHx3KG4pfSl9Y2F0Y2godSl7ci5zb21lKGZ1bmN0aW9uKG4pe24uX19oJiYobi5fX2g9W10pfSkscj1bXSxuLl9fZSh1LHQuX192KX19KSxsJiZsKHQscil9LG4udW5tb3VudD1mdW5jdGlvbih0KXttJiZtKHQpO3ZhciByLHU9dC5fX2M7dSYmdS5fX0gmJih1Ll9fSC5fXy5mb3JFYWNoKGZ1bmN0aW9uKG4pe3RyeXtrKG4pfWNhdGNoKG4pe3I9bn19KSx1Ll9fSD12b2lkIDAsciYmbi5fX2Uocix1Ll9fdikpfTt2YXIgZz1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWU7ZnVuY3Rpb24gaihuKXt2YXIgdCxyPWZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHUpLGcmJmNhbmNlbEFuaW1hdGlvbkZyYW1lKHQpLHNldFRpbWVvdXQobil9LHU9c2V0VGltZW91dChyLDEwMCk7ZyYmKHQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHIpKX1mdW5jdGlvbiBrKG4pe3ZhciB0PXIsdT1uLl9fYztcImZ1bmN0aW9uXCI9PXR5cGVvZiB1JiYobi5fX2M9dm9pZCAwLHUoKSkscj10fWZ1bmN0aW9uIHcobil7dmFyIHQ9cjtuLl9fYz1uLl9fKCkscj10fWZ1bmN0aW9uIHoobix0KXtyZXR1cm4hbnx8bi5sZW5ndGghPT10Lmxlbmd0aHx8dC5zb21lKGZ1bmN0aW9uKHQscil7cmV0dXJuIHQhPT1uW3JdfSl9ZnVuY3Rpb24gQihuLHQpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dChuKTp0fWV4cG9ydHtUIGFzIHVzZUNhbGxiYWNrLHEgYXMgdXNlQ29udGV4dCx4IGFzIHVzZURlYnVnVmFsdWUscCBhcyB1c2VFZmZlY3QsUCBhcyB1c2VFcnJvckJvdW5kYXJ5LFYgYXMgdXNlSWQsQSBhcyB1c2VJbXBlcmF0aXZlSGFuZGxlLHkgYXMgdXNlTGF5b3V0RWZmZWN0LEYgYXMgdXNlTWVtbyxzIGFzIHVzZVJlZHVjZXIsXyBhcyB1c2VSZWYsaCBhcyB1c2VTdGF0ZX07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1ob29rcy5tb2R1bGUuanMubWFwXG4iLCJpbXBvcnR7b3B0aW9ucyBhcyByfWZyb21cInByZWFjdFwiO2V4cG9ydHtGcmFnbWVudH1mcm9tXCJwcmVhY3RcIjt2YXIgXz0wO2Z1bmN0aW9uIG8obyxlLG4sdCxmLGwpe3ZhciBzLHUsYT17fTtmb3IodSBpbiBlKVwicmVmXCI9PXU/cz1lW3VdOmFbdV09ZVt1XTt2YXIgaT17dHlwZTpvLHByb3BzOmEsa2V5Om4scmVmOnMsX19rOm51bGwsX186bnVsbCxfX2I6MCxfX2U6bnVsbCxfX2Q6dm9pZCAwLF9fYzpudWxsLF9faDpudWxsLGNvbnN0cnVjdG9yOnZvaWQgMCxfX3Y6LS1fLF9fc291cmNlOmYsX19zZWxmOmx9O2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIG8mJihzPW8uZGVmYXVsdFByb3BzKSlmb3IodSBpbiBzKXZvaWQgMD09PWFbdV0mJihhW3VdPXNbdV0pO3JldHVybiByLnZub2RlJiZyLnZub2RlKGkpLGl9ZXhwb3J0e28gYXMganN4LG8gYXMganN4REVWLG8gYXMganN4c307XG4vLyMgc291cmNlTWFwcGluZ1VSTD1qc3hSdW50aW1lLm1vZHVsZS5qcy5tYXBcbiIsImZ1bmN0aW9uIENvcHlJY29uKHsgYWRkaXRpb25hbENsYXNzZXMgfSkge1xuICBsZXQgY2xhc3NlcyA9ICdjb3B5SWNvbic7XG4gIGlmIChhZGRpdGlvbmFsQ2xhc3Nlcykge1xuICAgIGxldCBhcnIgPSBhZGRpdGlvbmFsQ2xhc3Nlcy5zcGxpdCgnICcpO1xuICAgIGFyci5wdXNoKGNsYXNzZXMpO1xuICAgIGNsYXNzZXMgPSBhcnIuam9pbignICcpO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8c3ZnXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICB3aWR0aD1cIjEuMjVyZW1cIlxuICAgICAgaGVpZ2h0PVwiMS4yNXJlbVwiXG4gICAgICBjbGFzcz17Y2xhc3Nlc31cbiAgICA+XG4gICAgICA8cGF0aFxuICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICBkPVwiTTguMjUgNy41VjYuMTA4YzAtMS4xMzUuODQ1LTIuMDk4IDEuOTc2LTIuMTkyLjM3My0uMDMuNzQ4LS4wNTcgMS4xMjMtLjA4TTE1Ljc1IDE4SDE4YTIuMjUgMi4yNSAwIDAwMi4yNS0yLjI1VjYuMTA4YzAtMS4xMzUtLjg0NS0yLjA5OC0xLjk3Ni0yLjE5MmE0OC40MjQgNDguNDI0IDAgMDAtMS4xMjMtLjA4TTE1Ljc1IDE4Ljc1di0xLjg3NWEzLjM3NSAzLjM3NSAwIDAwLTMuMzc1LTMuMzc1aC0xLjVhMS4xMjUgMS4xMjUgMCAwMS0xLjEyNS0xLjEyNXYtMS41QTMuMzc1IDMuMzc1IDAgMDA2LjM3NSA3LjVINS4yNW0xMS45LTMuNjY0QTIuMjUxIDIuMjUxIDAgMDAxNSAyLjI1aC0xLjVhMi4yNTEgMi4yNTEgMCAwMC0yLjE1IDEuNTg2bTUuOCAwYy4wNjUuMjEuMS40MzMuMS42NjR2Ljc1aC02VjQuNWMwLS4yMzEuMDM1LS40NTQuMS0uNjY0TTYuNzUgNy41SDQuODc1Yy0uNjIxIDAtMS4xMjUuNTA0LTEuMTI1IDEuMTI1djEyYzAgLjYyMS41MDQgMS4xMjUgMS4xMjUgMS4xMjVoOS43NWMuNjIxIDAgMS4xMjUtLjUwNCAxLjEyNS0xLjEyNVYxNi41YTkgOSAwIDAwLTktOXpcIlxuICAgICAgLz5cbiAgICA8L3N2Zz5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29weUljb247XG4iLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3N0eWxlLmNzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xuXG4gICAgICBvcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xuICAgIFxub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3N0eWxlLmNzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsImltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSAncHJlYWN0L2hvb2tzJztcbmltcG9ydCBDb3B5SWNvbiBmcm9tICcuL2ljb25zL2NvcHlJY29uLmpzeCc7XG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9zdHlsZS5jc3MnO1xuXG5mdW5jdGlvbiBDb3B5VGV4dCh7IGljb25DbGFzc2VzLCBkaXNwbGF5VGV4dCwgY29weVRleHQgfSkge1xuICBjb25zdCBbYnRuQ2xhc3Nlcywgc2V0QnRuQ2xhc3Nlc10gPSB1c2VTdGF0ZSgnbGlua0NvcHlCdG4nKTtcblxuICBmdW5jdGlvbiBjb3B5VG9DbGlwYm9hcmQoKSB7XG4gICAgdHJ5IHtcbiAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGNvcHlUZXh0KTtcbiAgICAgIHNldEJ0bkNsYXNzZXMoYCR7YnRuQ2xhc3Nlc30gZ3JlZW5gKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBzZXRCdG5DbGFzc2VzKGJ0bkNsYXNzZXMucmVwbGFjZSgnZ3JlZW4nLCAnJykudHJpbSgpKTtcbiAgICAgIH0sIDUwMCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gY29weTogJywgZXJyKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxidXR0b24gY2xhc3M9e2J0bkNsYXNzZXN9IG9uQ2xpY2s9eygpID0+IGNvcHlUb0NsaXBib2FyZCgpfT5cbiAgICAgIDxDb3B5SWNvbiBhZGRpdGlvbmFsQ2xhc3Nlcz17aWNvbkNsYXNzZXN9IC8+XG5cbiAgICAgIHtkaXNwbGF5VGV4dCAmJiA8c3BhbiBjbGFzcz1cImRpc3BsYXlUZXh0XCI+e2Rpc3BsYXlUZXh0fTwvc3Bhbj59XG4gICAgICA8c3BhbiBjbGFzcz1cImNvcHlUZXh0XCI+e2NvcHlUZXh0fTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29weVRleHQ7XG4iLCJmdW5jdGlvbiBLZXlJY29uKHsgYWRkaXRpb25hbENsYXNzZXMgfSkge1xuICBsZXQgY2xhc3NlcyA9ICdrZXlJY29uJztcbiAgaWYgKGFkZGl0aW9uYWxDbGFzc2VzKSB7XG4gICAgbGV0IGFyciA9IGFkZGl0aW9uYWxDbGFzc2VzLnNwbGl0KCcgJyk7XG4gICAgYXJyLnB1c2goY2xhc3Nlcyk7XG4gICAgY2xhc3NlcyA9IGFyci5qb2luKCcgJyk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxzdmdcbiAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgd2lkdGg9XCIxcmVtXCJcbiAgICAgIGhlaWdodD1cIjFyZW1cIlxuICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGNsYXNzPXtjbGFzc2VzfVxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgIGQ9XCJNMTUuNzUgNS4yNWEzIDMgMCAwMTMgM20zIDBhNiA2IDAgMDEtNy4wMjkgNS45MTJjLS41NjMtLjA5Ny0xLjE1OS4wMjYtMS41NjMuNDNMMTAuNSAxNy4yNUg4LjI1djIuMjVINnYyLjI1SDIuMjV2LTIuODE4YzAtLjU5Ny4yMzctMS4xNy42NTktMS41OTFsNi40OTktNi40OTljLjQwNC0uNDA0LjUyNy0xIC40My0xLjU2M0E2IDYgMCAxMTIxLjc1IDguMjV6XCJcbiAgICAgIC8+XG4gICAgPC9zdmc+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEtleUljb247XG4iLCJmdW5jdGlvbiBOb3N0cmljaEljb24oeyBhZGRpdGlvbmFsQ2xhc3NlcyB9KSB7XG4gIGxldCBjbGFzc2VzID0gJ25vc3RyaWNoSWNvbic7XG4gIGlmIChhZGRpdGlvbmFsQ2xhc3Nlcykge1xuICAgIGxldCBhcnIgPSBhZGRpdGlvbmFsQ2xhc3Nlcy5zcGxpdCgnICcpO1xuICAgIGFyci5wdXNoKGNsYXNzZXMpO1xuICAgIGNsYXNzZXMgPSBhcnIuam9pbignICcpO1xuICB9XG5cbiAgcmV0dXJuIChcblxuICAgIDxzdmdcbiAgICAgIHdpZHRoPVwiM3JlbVwiXG4gICAgICBoZWlnaHQ9XCIzcmVtXCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgNjc0IDc2OVwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgIGNsYXNzPXtjbGFzc2VzfVxuICAgID5cbiAgICAgIDxwYXRoIGQ9XCJNNTY3LjcyOSAzMjQuOTY3QzU4Mi45NDYgNDI4LjA4NCA0NzUuNzk1IDQ0OS40NjUgNDE1LjAyNyA0NDcuMzE4QzQxMS43MDUgNDQ3LjIgNDA4LjU3IDQ0OC44MTkgNDA2LjYzMSA0NTEuNTE5QzQwMC4zODcgNDYwLjIxNCAzODkuOTU2IDQ3Mi4wMTcgMzgxLjk1OCA0NzIuMDE3QzM3My4xMjcgNDcyLjAxNyAzNjUuMTkxIDQ4OS4yMTcgMzYxLjY3NSA0OTkuNjIxQzM2MS4zNiA1MDAuNTU1IDM2Mi4yNzkgNTAxLjQxNCAzNjMuMjE2IDUwMS4xMUM0NTkuODUyIDQ2OS43MTkgNDk3LjczNyA0NTguOTU0IDUxNC4wNDYgNDYxLjk3NEM1MjcuMTk0IDQ2NC40MDkgNTUxLjc4NSA1MDguNDM4IDU2Mi40MzcgNTMwLjE0OEM1MzUuOTU5IDUzMS42NyA1MjcuMTMzIDUwNy45MzEgNTIxLjA0NiA1MDMuNjdDNTE2LjE3NiA1MDAuMjYxIDUxNC4zNSA1MTUuODQ0IDUxNC4wNDYgNTI0LjA2MUM1MDguMjYzIDUyMS4wMTggNTAwLjk1OSA1MTYuNzU3IDUwMC4zNSA1MDMuNjdDNDk5Ljc0MSA0OTAuNTgzIDQ5My4wNDYgNDkzLjkzMSA0ODcuODcyIDQ5NC41MzlDNDgyLjY5OCA0OTUuMTQ4IDQwMy4yNjMgNTIwLjcxMyAzOTEuMzkzIDUyNC4wNjFDMzc5LjUyMyA1MjcuNDA5IDM2NS44MjggNTMxLjk3NCAzNTQuNTY3IDUzOS44ODdDMzM1LjY5NyA1NDkuMDE4IDMyMy41MjMgNTQyLjYyNiAzMjAuMTc1IDUyNy4xMDVDMzE3LjQ5NyA1MTQuNjg3IDMzNC44ODYgNDc2LjQ4MSAzNDMuOTE1IDQ1OC45M0MzMzIuNzU1IDQ2My4wOSAzMDkuNTg0IDQ3MS41MyAzMDYuMTc1IDQ3Mi4wMTdDMzAyLjg1NCA0NzIuNDkyIDI2MC41NDcgNTA1LjE3MiAyMzguMjAzIDUyMi43MDdDMjM3LjA5MSA1MjMuNTggMjM2LjM4IDUyNC44NDkgMjM2LjEzNCA1MjYuMjQxQzIzMi42MjcgNTQ2LjA1NCAyMjEuMTU3IDU1MS41MTYgMjAxLjE3NSA1NjEuOEMxODUuMTE3IDU3MC4wNjYgMTI4LjgyMiA2NTYuNjg0IDEwMC4yNzIgNzAyLjgwM0M5OC41ODU4IDcwNS41MjYgOTYuMTEyNiA3MDcuNjI5IDkzLjQyMDIgNzA5LjM2M0M3NC45Njg2IDcyMS4yNDkgNTYuMDE3OSA3NTMuMDEzIDQ4LjM5MTUgNzY4LjQ1M0MzNy42Nzg0IDczNy41MzIgNTEuNjM3OSA3MTAuOTMxIDU5Ljk1NjggNzAxLjQ5N0M1Ni4zMDQ2IDY5OC4zMzEgNDcuODg0MyA3MDAuMTc4IDQ0LjEzMDYgNzAxLjQ5N0M1NC40Nzg1IDY2NS44ODggOTAuNjk2MSA2NjUuODg4IDg5LjQ3ODcgNjY1Ljg4OEM5Ni4xNzQ0IDY2MC4xMDUgMTc0LjY5NiA1NDcuOCAxNzYuNTIzIDU0Mi42MjZDMTc4LjMzNiA1MzcuNDg4IDE3NS4zNDYgNTEzLjQzNiAyMTQuOTYyIDUwMC4yODdDMjE1LjQ5NSA1MDAuMTEgMjE2LjAyNCA0OTkuODY2IDIxNi40OTcgNDk5LjU2M0MyNDcuMzA2IDQ3OS44MDIgMjcwLjQyMyA0NDcuODY5IDI3OC4xNzUgNDM0LjI3OEMyMzYuNDYyIDQzMS40MDkgMTg4LjU5NiA0MDcuODE2IDE2NC4zNjYgMzkzLjE1MkMxNTkuODczIDM5MC40MzIgMTU1LjA3NyAzODguMTA1IDE0OS44NzEgMzg3LjQwN0MxMTUuNzY0IDM4Mi44MzUgODEuMzI4NSA0MDQuNzkxIDY3LjU2NTUgNDE3LjIzNUM2MS45NjU1IDQwOS40NDMgNjguMjc1NyAzODYuOCA3Mi4xMzA4IDM3Ni40NTJDNTguNDk1OSAzNzQuNTA0IDM4LjQ0OTUgMzk0LjMwNyAzMC4xMzA2IDQwNC40NTJDMjEuMTIxOCAzOTAuMzMgMjkuMDE0NiAzNjUuMDg5IDM0LjA4NzEgMzU0LjIzNEMxNi4wNjk2IDM1NC43MjEgMy44NTUwOSAzNjIuOTU5IDAgMzY3LjAxN0MxNC45MTMxIDI1NS45MyAxMjguOTg0IDI4OC4yMzcgMTMwLjI2MSAyODkuNzEyQzEyNC4xNzQgMjgzLjM4MiAxMjQuNjgyIDI3NS4xMDQgMTI1LjY5NiAyNzEuNzU2QzE5NC43ODMgMjczLjU4MiAyMjcuMDQ1IDI2Mi4wMTcgMjQ3LjQzNiAyNTAuMTQ3QzQwOC4xMzIgMTYwLjM2NCA0NzcuMzcyIDIxNS40NTEgNTAyLjkzNyAyMjkuMjk5QzUyOC41MDIgMjQzLjE0NyA1NzQuOTE2IDI0OC43NzcgNjA3LjAyNSAyMzUuOTk1QzY0NS4zNzMgMjE4LjY0NyA2MzkuNTk5IDE3My45MyA2MzEuODI5IDE1Ni44NjRDNjIzLjMwNyAxMzguMTQ2IDU3NS4yMiAxMTIuMjc2IDU1OC4xNzYgNzkuNTU5MUM1NDEuMTMzIDQ2Ljg0MjIgNTU1LjgyNSA1LjkzNzg5IDU3NS43MjggMS41MTA2MUM1OTQuODAyIC0yLjczMjEzIDYwNy45NzUgMi4zNzM4MyA2MTguMjg1IDExLjY4OTFDNjI1LjE1OSAxNy44OTk0IDY0NC40NiAyMi4zNDEzIDY1Mi41MjUgMjUuMjMyNkM2NjAuNTkgMjguMTIzOSA2NzMuOTgxIDMxLjkyODMgNjczLjIyMSAzNC4yMTA5QzY3Mi40NiAzNi40OTM1IDY1OS41NDggMzYuMTg4OSA2NTcuNTQ3IDM2LjE4ODlDNjUzLjQzOCAzNi4xODg5IDY0OC41NjggMzYuNzk3NiA2NTMuNDM4IDM5LjA4MDJDNjU5LjI0MyA0MS40MzQ4IDY2OC4wNTMgNDQuODc0NSA2NzIuMDk1IDQ3LjA4OEM2NzIuNTQ5IDQ3LjMzNjYgNjcyLjQ1NCA0Ny45NzkxIDY3MS45NTUgNDguMTE1NkM2NDMuODU4IDU1Ljc5OCA2MTguNzY4IDQwLjExMDggNjAwLjE3NyA1OC4xMDJDNTgxLjMwNyA3Ni4zNjMgNjIxLjQ4MSA5MC4zNjMgNjQyLjE3NyAxMTIuMjc2QzY2Mi44NzMgMTM0LjE4OSA2ODQuMTc3IDE2MC4zNjMgNjY3LjEzNCAyMjAuMDE2QzY1My44NzQgMjY2LjQyNCA1OTguMDkzIDMwNS44NDggNTY5LjY1NCAzMjEuMDQ1QzU2OC4yNTUgMzIxLjc5MyA1NjcuNDk3IDMyMy4zOTggNTY3LjcyOSAzMjQuOTY3WlwiIGZpbGw9XCIjN0EzQkZGXCIvPlxuICAgIDwvc3ZnPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBOb3N0cmljaEljb247XG4iLCJpbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gXCJwcmVhY3QvaG9va3NcIjtcbmltcG9ydCBcIi4vc3R5bGUuY3NzXCI7XG5cbmZ1bmN0aW9uIFByb2ZpbGVJbWFnZSh7IHRodW1ibmFpbCwgZnVsbEltYWdlLCBpc1Byb2ZpbGVJbWFnZSA9IHRydWUgfSkge1xuICBjb25zdCBbaXNGdWxsSW1hZ2VMb2FkZWQsIHNldElzRnVsbEltYWdlTG9hZGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2ltYWdlU3JjLCBzZXRJbWFnZVNyY10gPSB1c2VTdGF0ZSh0aHVtYm5haWwpO1xuXG4gIGNvbnN0IG9uRXJyb3IgPSAoKSA9PiB7XG4gICAgaWYgKCFpc0Z1bGxJbWFnZUxvYWRlZCkge1xuICAgICAgc2V0SW1hZ2VTcmMoZnVsbEltYWdlKTtcbiAgICAgIHNldElzRnVsbEltYWdlTG9hZGVkKHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRJbWFnZVNyYyhudWxsKTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIGltYWdlU3JjID8gKFxuICAgIDxpbWcgY2xhc3NOYW1lPXtpc1Byb2ZpbGVJbWFnZSA/IFwicHJvZmlsZUltZyBcIiA6IFwiZm9sbG93ZWRQcm9kaWxlSW1nXCJcbiAgICB9IHNyYz17aW1hZ2VTcmN9IG9uRXJyb3I9e29uRXJyb3J9IC8+XG4gICkgOiAoXG4gICAgPGRpdiBjbGFzcz1cInByb2ZpbGVXaXRob3V0SW1nXCIgLz5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgUHJvZmlsZUltYWdlO1xuIiwiaW1wb3J0IHsgZm9ybWF0TnB1YiwgZ2V0TnB1YiB9IGZyb20gXCIuLi91dGlscy9jb21tb25cIjtcbmltcG9ydCBDb3B5VGV4dCBmcm9tIFwiLi9jb3B5VGV4dC5qc3hcIjtcbmltcG9ydCBLZXlJY29uIGZyb20gXCIuL2ljb25zL2tleUljb24uanN4XCI7XG5pbXBvcnQgTm9zdHJpY2hJY29uIGZyb20gXCIuL2ljb25zL25vc3RyaWNoSWNvbi5qc3hcIjtcbmltcG9ydCBQcm9maWxlSW1hZ2UgZnJvbSBcIi4vcHJvZmlsZUltYWdlLmpzeFwiO1xuXG5mdW5jdGlvbiBQcm9maWxlKHsgcHJvZmlsZVBrZXksIHByb2ZpbGUsIG9wdGlvbnMgfSkge1xuICBsZXQgY2FjaGVkUHJvZmlsZVBpY3R1cmUsIGVuY29kZWRQcm9maWxlUGtleSwgdHJ1bmNhdGVkUHJvZmlsZVBrZXk7XG4gIGlmIChwcm9maWxlUGtleSkge1xuICAgIGVuY29kZWRQcm9maWxlUGtleSA9IGdldE5wdWIocHJvZmlsZVBrZXkpO1xuICAgIHRydW5jYXRlZFByb2ZpbGVQa2V5ID0gYCR7Zm9ybWF0TnB1YihlbmNvZGVkUHJvZmlsZVBrZXkpfWA7XG4gICAgY2FjaGVkUHJvZmlsZVBpY3R1cmUgPSBgaHR0cHM6Ly9tZWRpYS5ub3N0ci5iYW5kL3RodW1icy8ke3Byb2ZpbGVQa2V5LnNsaWNlKFxuICAgICAgLTRcbiAgICApfS8ke3Byb2ZpbGVQa2V5fS1waWN0dXJlLTY0YDtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJjYXJkUHJvZmlsZVwiPlxuICAgICAge2NhY2hlZFByb2ZpbGVQaWN0dXJlICYmIHByb2ZpbGUucGljdHVyZSA/IChcbiAgICAgICAgPFByb2ZpbGVJbWFnZVxuICAgICAgICAgIHRodW1ibmFpbD17Y2FjaGVkUHJvZmlsZVBpY3R1cmV9XG4gICAgICAgICAgZnVsbEltYWdlPXtwcm9maWxlLnBpY3R1cmV9XG4gICAgICAgIC8+XG4gICAgICApIDogKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInByb2ZpbGVXaXRob3V0SW1nXCIgLz5cbiAgICAgICl9XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInByb2ZpbGVEZXRhaWxzXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicHJvZmlsZU5hbWVcIj5cbiAgICAgICAgICA8YVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXIgbm9mb2xsb3dcIlxuICAgICAgICAgICAgaHJlZj17YGh0dHBzOi8vbm9zdHIuYmFuZC8ke2VuY29kZWRQcm9maWxlUGtleX1gfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtwcm9maWxlPy5kaXNwbGF5X25hbWUgfHwgcHJvZmlsZT8ubmFtZSB8fCBcIkxvYWRpbmcuLi5cIn1cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInByb2ZpbGVQa2V5XCI+XG4gICAgICAgICAgPEtleUljb24gYWRkaXRpb25hbENsYXNzZXM9XCJ3LTQgaC00XCIgLz5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJwa2V5XCI+e3RydW5jYXRlZFByb2ZpbGVQa2V5IHx8IFwibnB1Yi4uLlwifTwvc3Bhbj5cbiAgICAgICAgICA8Q29weVRleHQgaWNvbkNsYXNzZXM9XCJ3LTQgaC00XCIgY29weVRleHQ9e2VuY29kZWRQcm9maWxlUGtleX0gLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAge29wdGlvbnMgJiYgIW9wdGlvbnMuaGlkZU5vc3RyaWNoID8gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5vc3RyaWNoTGlua1wiPlxuICAgICAgICAgIDxhXG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlciBub2ZvbGxvd1wiXG4gICAgICAgICAgICBocmVmPXtgaHR0cHM6Ly9uanVtcC5tZWB9XG4gICAgICAgICAgICBjbGFzc05hbWU9XCJsaW5rTGlua1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPE5vc3RyaWNoSWNvbiBhZGRpdGlvbmFsQ2xhc3Nlcz1cInctNCBoLTRcIiAvPlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kaXY+XG4gICAgICApIDogbnVsbH1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgUHJvZmlsZTtcbiIsImZ1bmN0aW9uIEJvbHRJY29uKHsgYWRkaXRpb25hbENsYXNzZXMgfSkge1xuICBsZXQgY2xhc3NlcyA9ICdib2x0SWNvbic7XG4gIGlmIChhZGRpdGlvbmFsQ2xhc3Nlcykge1xuICAgIGxldCBhcnIgPSBhZGRpdGlvbmFsQ2xhc3Nlcy5zcGxpdCgnICcpO1xuICAgIGFyci5wdXNoKGNsYXNzZXMpO1xuICAgIGNsYXNzZXMgPSBhcnIuam9pbignICcpO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8c3ZnXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICB3aWR0aD1cIjEuMjVyZW1cIlxuICAgICAgaGVpZ2h0PVwiMS4yNXJlbVwiXG4gICAgICBjbGFzcz17Y2xhc3Nlc31cbiAgICA+XG4gICAgICA8cGF0aFxuICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICBkPVwiTTMuNzUgMTMuNWwxMC41LTExLjI1TDEyIDEwLjVoOC4yNUw5Ljc1IDIxLjc1IDEyIDEzLjVIMy43NXpcIlxuICAgICAgLz5cbiAgICA8L3N2Zz5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQm9sdEljb247XG4iLCJmdW5jdGlvbiBIZWFydEljb24oeyBhZGRpdGlvbmFsQ2xhc3NlcyB9KSB7XG4gIGxldCBjbGFzc2VzID0gJ2hlYXJ0SWNvbic7XG4gIGlmIChhZGRpdGlvbmFsQ2xhc3Nlcykge1xuICAgIGxldCBhcnIgPSBhZGRpdGlvbmFsQ2xhc3Nlcy5zcGxpdCgnICcpO1xuICAgIGFyci5wdXNoKGNsYXNzZXMpO1xuICAgIGNsYXNzZXMgPSBhcnIuam9pbignICcpO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8c3ZnXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgIHdpZHRoPVwiMS4yNXJlbVwiXG4gICAgICBoZWlnaHQ9XCIxLjI1cmVtXCJcbiAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICBjbGFzcz17Y2xhc3Nlc31cbiAgICA+XG4gICAgICA8cGF0aFxuICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICBkPVwiTTIxIDguMjVjMC0yLjQ4NS0yLjA5OS00LjUtNC42ODgtNC41LTEuOTM1IDAtMy41OTcgMS4xMjYtNC4zMTIgMi43MzMtLjcxNS0xLjYwNy0yLjM3Ny0yLjczMy00LjMxMy0yLjczM0M1LjEgMy43NSAzIDUuNzY1IDMgOC4yNWMwIDcuMjIgOSAxMiA5IDEyczktNC43OCA5LTEyelwiXG4gICAgICAvPlxuICAgIDwvc3ZnPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBIZWFydEljb247XG4iLCJmdW5jdGlvbiBMaW5rSWNvbih7IGFkZGl0aW9uYWxDbGFzc2VzIH0pIHtcbiAgbGV0IGNsYXNzZXMgPSAnbGlua0ljb24nO1xuICBpZiAoYWRkaXRpb25hbENsYXNzZXMpIHtcbiAgICBsZXQgYXJyID0gYWRkaXRpb25hbENsYXNzZXMuc3BsaXQoJyAnKTtcbiAgICBhcnIucHVzaChjbGFzc2VzKTtcbiAgICBjbGFzc2VzID0gYXJyLmpvaW4oJyAnKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPHN2Z1xuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICBmaWxsPVwibm9uZVwiXG4gICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgd2lkdGg9XCIxLjI1cmVtXCJcbiAgICAgIGhlaWdodD1cIjEuMjVyZW1cIlxuICAgICAgY2xhc3M9e2NsYXNzZXN9XG4gICAgPlxuICAgICAgPHBhdGhcbiAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgZD1cIk0xMy4xOSA4LjY4OGE0LjUgNC41IDAgMDExLjI0MiA3LjI0NGwtNC41IDQuNWE0LjUgNC41IDAgMDEtNi4zNjQtNi4zNjRsMS43NTctMS43NTdtMTMuMzUtLjYyMmwxLjc1Ny0xLjc1N2E0LjUgNC41IDAgMDAtNi4zNjQtNi4zNjRsLTQuNSA0LjVhNC41IDQuNSAwIDAwMS4yNDIgNy4yNDRcIlxuICAgICAgLz5cbiAgICA8L3N2Zz5cbiAgKTtcbn1cbmV4cG9ydCBkZWZhdWx0IExpbmtJY29uO1xuIiwiZnVuY3Rpb24gUmVwbHlJY29uKHsgYWRkaXRpb25hbENsYXNzZXMgfSkge1xuICBsZXQgY2xhc3NlcyA9ICdyZXBseUljb24nO1xuICBpZiAoYWRkaXRpb25hbENsYXNzZXMpIHtcbiAgICBsZXQgYXJyID0gYWRkaXRpb25hbENsYXNzZXMuc3BsaXQoJyAnKTtcbiAgICBhcnIucHVzaChjbGFzc2VzKTtcbiAgICBjbGFzc2VzID0gYXJyLmpvaW4oJyAnKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPHN2Z1xuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICBmaWxsPVwibm9uZVwiXG4gICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICB3aWR0aD1cIjEuMjVyZW1cIlxuICAgICAgaGVpZ2h0PVwiMS4yNXJlbVwiXG4gICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgY2xhc3M9e2NsYXNzZXN9XG4gICAgPlxuICAgICAgPHBhdGhcbiAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgZD1cIk0yMC4yNSA4LjUxMWMuODg0LjI4NCAxLjUgMS4xMjggMS41IDIuMDk3djQuMjg2YzAgMS4xMzYtLjg0NyAyLjEtMS45OCAyLjE5My0uMzQuMDI3LS42OC4wNTItMS4wMi4wNzJ2My4wOTFsLTMtM2MtMS4zNTQgMC0yLjY5NC0uMDU1LTQuMDItLjE2M2EyLjExNSAyLjExNSAwIDAxLS44MjUtLjI0Mm05LjM0NS04LjMzNGEyLjEyNiAyLjEyNiAwIDAwLS40NzYtLjA5NSA0OC42NCA0OC42NCAwIDAwLTguMDQ4IDBjLTEuMTMxLjA5NC0xLjk3NiAxLjA1Ny0xLjk3NiAyLjE5MnY0LjI4NmMwIC44MzcuNDYgMS41OCAxLjE1NSAxLjk1MW05LjM0NS04LjMzNFY2LjYzN2MwLTEuNjIxLTEuMTUyLTMuMDI2LTIuNzYtMy4yMzVBNDguNDU1IDQ4LjQ1NSAwIDAwMTEuMjUgM2MtMi4xMTUgMC00LjE5OC4xMzctNi4yNC40MDItMS42MDguMjA5LTIuNzYgMS42MTQtMi43NiAzLjIzNXY2LjIyNmMwIDEuNjIxIDEuMTUyIDMuMDI2IDIuNzYgMy4yMzUuNTc3LjA3NSAxLjE1Ny4xNCAxLjc0LjE5NFYyMWw0LjE1NS00LjE1NVwiXG4gICAgICAvPlxuICAgIDwvc3ZnPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBSZXBseUljb247XG4iLCJmdW5jdGlvbiBSZXBvc3RJY29uKHsgYWRkaXRpb25hbENsYXNzZXMgfSkge1xuICBsZXQgY2xhc3NlcyA9ICdyZXBvc3RJY29uJztcbiAgaWYgKGFkZGl0aW9uYWxDbGFzc2VzKSB7XG4gICAgbGV0IGFyciA9IGFkZGl0aW9uYWxDbGFzc2VzLnNwbGl0KCcgJyk7XG4gICAgYXJyLnB1c2goY2xhc3Nlcyk7XG4gICAgY2xhc3NlcyA9IGFyci5qb2luKCcgJyk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxzdmdcbiAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgd2lkdGg9XCIxLjI1cmVtXCJcbiAgICAgIGhlaWdodD1cIjEuMjVyZW1cIlxuICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGNsYXNzPXtjbGFzc2VzfVxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgIGQ9XCJNMTYuMDIzIDkuMzQ4aDQuOTkydi0uMDAxTTIuOTg1IDE5LjY0NHYtNC45OTJtMCAwaDQuOTkybS00Ljk5MyAwbDMuMTgxIDMuMTgzYTguMjUgOC4yNSAwIDAwMTMuODAzLTMuN000LjAzMSA5Ljg2NWE4LjI1IDguMjUgMCAwMTEzLjgwMy0zLjdsMy4xODEgMy4xODJtMC00Ljk5MXY0Ljk5XCJcbiAgICAgIC8+XG4gICAgPC9zdmc+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFJlcG9zdEljb247XG4iLCJpbXBvcnQgeyBmb3JtYXRaYXBBbW91bnQsIGdldE5vdGVJZCB9IGZyb20gXCIuLi91dGlscy9jb21tb25cIjtcbmltcG9ydCBDb3B5VGV4dCBmcm9tIFwiLi9jb3B5VGV4dC5qc3hcIjtcbmltcG9ydCBCb2x0SWNvbiBmcm9tIFwiLi9pY29ucy9ib2x0SWNvbi5qc3hcIjtcbmltcG9ydCBIZWFydEljb24gZnJvbSBcIi4vaWNvbnMvaGVhcnRJY29uLmpzeFwiO1xuaW1wb3J0IExpbmtJY29uIGZyb20gXCIuL2ljb25zL2xpbmtJY29uLmpzeFwiO1xuaW1wb3J0IFJlcGx5SWNvbiBmcm9tIFwiLi9pY29ucy9yZXBseUljb24uanN4XCI7XG5pbXBvcnQgUmVwb3N0SWNvbiBmcm9tIFwiLi9pY29ucy9yZXBvc3RJY29uLmpzeFwiO1xuXG5mdW5jdGlvbiBNZXRhKHtcbiAgbm90ZSxcbiAgcHJvZmlsZXNMaXN0LFxuICByZXBsaWVzQ291bnQsXG4gIHJlcG9zdHNDb3VudCxcbiAgbGlrZXNDb3VudCxcbiAgemFwQW1vdW50LFxuICBvcHRpb25zLFxufSkge1xuICBsZXQgZGF0ZSwgZW5jb2RlZElkLCBmb3JtYXR0ZWREYXRlLCBmb3JtYXR0ZWRaYXBBbW91bnQ7XG5cbiAgbGV0IGNyZWF0ZWRBdCA9IG5vdGVcbiAgICA/IG5vdGUuY3JlYXRlZF9hdFxuICAgIDogcHJvZmlsZXNMaXN0XG4gICAgICA/IHByb2ZpbGVzTGlzdC5jcmVhdGVkX2F0XG4gICAgICA6IG51bGw7XG4gIGlmIChjcmVhdGVkQXQpIHtcbiAgICBkYXRlID0gbmV3IERhdGUoY3JlYXRlZEF0ICogMTAwMCk7XG4gICAgZm9ybWF0dGVkRGF0ZSA9IGRhdGUudG9Mb2NhbGVUaW1lU3RyaW5nKFwiZW4tVVNcIiwge1xuICAgICAgaG91cjEyOiB0cnVlLFxuICAgICAgaG91cjogJzItZGlnaXQnLFxuICAgICAgbWludXRlOiAnMi1kaWdpdCcsXG4gICAgICB5ZWFyOiAnbnVtZXJpYycsXG4gICAgICBtb250aDogJ3Nob3J0JyxcbiAgICAgIGRheTogJ251bWVyaWMnLFxuICAgIH0pO1xuICB9XG5cbiAgaWYgKG5vdGUgJiYgbm90ZS5pZCkge1xuICAgIGVuY29kZWRJZCA9IGdldE5vdGVJZChub3RlLmlkKTtcbiAgfVxuICBpZiAocHJvZmlsZXNMaXN0KSB7XG4gICAgZW5jb2RlZElkID0gcHJvZmlsZXNMaXN0LmlkO1xuICB9XG5cbiAgZm9ybWF0dGVkWmFwQW1vdW50ID0gZm9ybWF0WmFwQW1vdW50KHphcEFtb3VudCk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImNhcmRNZXRhXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhcmREYXRlXCI+e2Zvcm1hdHRlZERhdGV9PC9kaXY+XG4gICAgICA8aHIgLz5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZEludGVyYWN0aW9uc1wiPlxuICAgICAgICB7b3B0aW9ucz8uaGlkZUNvdW50ZXJzID8gbnVsbCA6IDw+XG4gICAgICAgIHtvcHRpb25zICYmIG9wdGlvbnMuc2hvd1phcHMgPyAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbnRlcmFjdGlvbkNvbnRhaW5lclwiIHRpdGxlPVwiVG90YWwgc2F0cyB6YXBwZWRcIj5cbiAgICAgICAgICAgIDxCb2x0SWNvbiBhZGRpdGlvbmFsQ2xhc3Nlcz1cInctNSBoLTVcIiAvPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiemFwQW1vdW50XCI+e2Zvcm1hdHRlZFphcEFtb3VudH08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImludGVyYWN0aW9uQ29udGFpbmVyXCIgdGl0bGU9XCJOdW1iZXIgb2YgcmVwbGllc1wiPlxuICAgICAgICAgIDxSZXBseUljb24gYWRkaXRpb25hbENsYXNzZXM9XCJ3LTUgaC01XCIgLz5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJyZXBsaWVzQ291bnRcIj57cmVwbGllc0NvdW50fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW50ZXJhY3Rpb25Db250YWluZXJcIiB0aXRsZT1cIk51bWJlciBvZiByZXBvc3RzXCI+XG4gICAgICAgICAgPFJlcG9zdEljb24gYWRkaXRpb25hbENsYXNzZXM9XCJ3LTUgaC01XCIgLz5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJyZXBvc3RzQ291bnRcIj57cmVwb3N0c0NvdW50fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW50ZXJhY3Rpb25Db250YWluZXJcIiB0aXRsZT1cIk51bWJlciBvZiBsaWtlc1wiPlxuICAgICAgICAgIDxIZWFydEljb24gYWRkaXRpb25hbENsYXNzZXM9XCJ3LTUgaC01XCIgLz5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJsaWtlc0NvdW50XCI+e2xpa2VzQ291bnR9PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC8+fVxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImludGVyYWN0aW9uQ29udGFpbmVyXCI+XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyIG5vZm9sbG93XCJcbiAgICAgICAgICAgIGhyZWY9e1xuICAgICAgICAgICAgICBub3RlXG4gICAgICAgICAgICAgICAgPyBgaHR0cHM6Ly9ub3N0ci5iYW5kLyR7ZW5jb2RlZElkfWBcbiAgICAgICAgICAgICAgICA6IGBodHRwczovL2xpc3RyLmxvbC9hLyR7cHJvZmlsZXNMaXN0Lm5hZGRyfWBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImxpbmtMaW5rXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8TGlua0ljb24gYWRkaXRpb25hbENsYXNzZXM9XCJ3LTUgaC01IGhvdmVyOnRleHQtZ3JheS02MDBcIiAvPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZGlzcGxheVRleHRcIj5PcGVuPC9zcGFuPlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHtvcHRpb25zICYmIG9wdGlvbnMuc2hvd0NvcHlBZGRyID8gKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW50ZXJhY3Rpb25Db250YWluZXJcIj5cbiAgICAgICAgICAgIDxDb3B5VGV4dFxuICAgICAgICAgICAgICBpY29uQ2xhc3Nlcz1cInctNSBoLTVcIlxuICAgICAgICAgICAgICBkaXNwbGF5VGV4dD17bm90ZSA/IFwiQ29weSBOb3RlIElEXCIgOiBcIkNvcHkgSURcIn1cbiAgICAgICAgICAgICAgY29weVRleHQ9e25vdGUgPyBub3RlIDogcHJvZmlsZXNMaXN0Lm5hZGRyfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTWV0YTtcbiIsImV4cG9ydCBjb25zdCBJTUFHRV9GSUxFX0VYVEVOU0lPTlMgPSBbXCIuanBnXCIsIFwiLmpwZWdcIiwgXCIucG5nXCIsIFwiLndlYnBcIiwgXCIuZ2lmXCJdO1xuZXhwb3J0IGNvbnN0IFZJREVPX0ZJTEVfRVhURU5TSU9OUyA9IFtcIi5tb3ZcIiwgXCIubXA0XCJdO1xuZXhwb3J0IGNvbnN0IFlPVVRVQkVfS0VZX1dPUkRTID0gW1wieW91dHViZVwiXTtcblxuZXhwb3J0IGNvbnN0IEtJTkRfTUVUQSA9IDA7XG5leHBvcnQgY29uc3QgS0lORF9OT1RFID0gMTtcbmV4cG9ydCBjb25zdCBLSU5EX0NPTlRBQ1RfTElTVCA9IDM7XG5leHBvcnQgY29uc3QgS0lORF9SRVBPU1QgPSA2O1xuZXhwb3J0IGNvbnN0IEtJTkRfUkVBQ1RJT04gPSA3O1xuZXhwb3J0IGNvbnN0IEtJTkRfWkFQID0gOTczNTtcbmV4cG9ydCBjb25zdCBLSU5EX1BST0ZJTEVfTElTVCA9IDMwMDAwOyIsImltcG9ydCBQcm9maWxlIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL3Byb2ZpbGUuanN4XCI7XG5pbXBvcnQgTWV0YSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9tZXRhLmpzeFwiO1xuaW1wb3J0IHtLSU5EX0NPTlRBQ1RfTElTVH0gZnJvbSBcIi4uLy4uL2NvbmZpZy9jb25maWdcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUHJvZmlsZXNMaXN0KHtzdGF0ZSwgcHJvcHN9KSB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJub3N0ckVtYmVkQ2FyZFwiPlxuICAgICAgPFByb2ZpbGVcbiAgICAgICAgcHJvZmlsZVBrZXk9eyBzdGF0ZT8uaWQuZGF0YS5wdWJrZXkgfVxuICAgICAgICBwcm9maWxlPXsgc3RhdGU/LnByb2ZpbGUgfVxuICAgICAgICBvcHRpb25zPXsgcHJvcHM/Lm9wdGlvbnMgfVxuICAgICAgLz5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxoMyBjbGFzc05hbWU9XCJjYXJkVGl0bGVcIj5cbiAgICAgICAgICB7IHN0YXRlPy5raW5kICE9PSBLSU5EX0NPTlRBQ1RfTElTVCAmJiBzdGF0ZT8ucHJvZmlsZXNMaXN0Lm5hbWVcbiAgICAgICAgICAgID8gc3RhdGU/LnByb2ZpbGVzTGlzdC5uYW1lXG4gICAgICAgICAgICA6IHN0YXRlPy5wcm9maWxlc0xpc3QuZCB9XG4gICAgICAgICAgeyBzdGF0ZT8ua2luZCA9PT0gS0lORF9DT05UQUNUX0xJU1QgJiYgXCJGb2xsb3dpbmcgXCIgfShcbiAgICAgICAgICB7IHN0YXRlPy50YWdnZWRQcm9maWxlcyA/IHN0YXRlPy5jb3VudFRhZ2dlZFByb2ZpbGVzIDogMCB9KVxuICAgICAgICA8L2gzPlxuICAgICAgICB7IHN0YXRlPy5raW5kICE9PSBLSU5EX0NPTlRBQ1RfTElTVCAmJiAoXG4gICAgICAgICAgPHAgY2xhc3NOYW1lPVwiY2FyZERlc2NyaXB0aW9uXCI+eyBzdGF0ZT8ucHJvZmlsZXNMaXN0LmRlc2NyaXB0aW9uIH08L3A+XG4gICAgICAgICkgfVxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhcmRMaXN0XCI+XG4gICAgICAgICAgeyBPYmplY3Qua2V5cyhzdGF0ZT8udGFnZ2VkUHJvZmlsZXMpLm1hcCgocHJvZmlsZVBrZXkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxkaXYga2V5PXsgcHJvZmlsZVBrZXkgKyBcInRhZ2dlZFByb2ZpbGVcIiB9PlxuICAgICAgICAgICAgICAgIDxQcm9maWxlXG4gICAgICAgICAgICAgICAgICBwcm9maWxlUGtleT17IHByb2ZpbGVQa2V5IH1cbiAgICAgICAgICAgICAgICAgIHByb2ZpbGU9eyBzdGF0ZT8udGFnZ2VkUHJvZmlsZXNbcHJvZmlsZVBrZXldIH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSkgfVxuICAgICAgICAgIHsgc3RhdGU/LmNvdW50VGFnZ2VkUHJvZmlsZXMgPiAwICYmXG4gICAgICAgICAgc3RhdGU/LmNvdW50VGFnZ2VkUHJvZmlsZXMgPlxuICAgICAgICAgIE9iamVjdC5rZXlzKHN0YXRlPy50YWdnZWRQcm9maWxlcykubGVuZ3RoID8gKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkaWZmUHJvZmlsZXNcIj5cbiAgICAgICAgICAgICAgQW5kIHsgZ2V0RGlmZihzdGF0ZSkgfSBtb3JlIHByb2ZpbGVzLlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKSA6IG51bGwgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgeyBzdGF0ZT8ucHJvZmlsZXNMaXN0LmVycm9yICYmIChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhcmRDb250ZW50IG5lLXRleHQtcmVkLTgwMFwiPlxuICAgICAgICAgICAgeyBzdGF0ZT8ucHJvZmlsZXNMaXN0LmNvbnRlbnQgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApIH1cbiAgICAgIDwvZGl2PlxuICAgICAgPE1ldGFcbiAgICAgICAgcHJvZmlsZXNMaXN0PXsgc3RhdGU/LnByb2ZpbGVzTGlzdCB9XG4gICAgICAgIGxpa2VzQ291bnQ9eyBzdGF0ZT8ubGlrZXNDb3VudCB9XG4gICAgICAgIHJlcGxpZXNDb3VudD17IHN0YXRlPy5yZXBsaWVzQ291bnQgfVxuICAgICAgICByZXBvc3RzQ291bnQ9eyBzdGF0ZT8ucmVwb3N0c0NvdW50IH1cbiAgICAgICAgemFwQW1vdW50PXsgc3RhdGU/LnphcEFtb3VudCB9XG4gICAgICAgIG9wdGlvbnM9eyBwcm9wcz8ub3B0aW9ucyB9XG4gICAgICAvPlxuICAgIDwvZGl2PlxuICApXG59XG5cbmZ1bmN0aW9uIGdldERpZmYoc3RhdGUpIHtcbiAgbGV0IGRpZmY7XG4gIGlmIChPYmplY3Qua2V5cyhzdGF0ZT8udGFnZ2VkUHJvZmlsZXMpLmxlbmd0aCA+IDAgJiYgc3RhdGU/LmNvdW50VGFnZ2VkUHJvZmlsZXMpIHtcbiAgICBkaWZmID0gc3RhdGU/LmNvdW50VGFnZ2VkUHJvZmlsZXMgLSBPYmplY3Qua2V5cyhzdGF0ZT8udGFnZ2VkUHJvZmlsZXMpLmxlbmd0aDtcbiAgfVxuICByZXR1cm4gZGlmZjtcbn1cbiIsImZ1bmN0aW9uIEZvbGxvd2Vyc0ljb24oeyBhZGRpdGlvbmFsQ2xhc3NlcyB9KSB7XG4gIGxldCBjbGFzc2VzID0gJ2ZvbGxvd2Vyc0ljb24nO1xuICBpZiAoYWRkaXRpb25hbENsYXNzZXMpIHtcbiAgICBsZXQgYXJyID0gYWRkaXRpb25hbENsYXNzZXMuc3BsaXQoJyAnKTtcbiAgICBhcnIucHVzaChjbGFzc2VzKTtcbiAgICBjbGFzc2VzID0gYXJyLmpvaW4oJyAnKTtcbiAgfVxuXG4gIHJldHVybiAoXG5cbiAgICAgIDxzdmdcbiAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgIHdpZHRoPVwiMS4yNXJlbVwiXG4gICAgICAgaGVpZ2h0PVwiMS4yNXJlbVwiXG4gICAgICAgY2xhc3M9e2NsYXNzZXN9XG4gICAgICA+XG4gICAgICAgPHBhdGhcbiAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgZD1cIk0xNSAxOS4xMjhhOS4zOCA5LjM4IDAgMDAyLjYyNS4zNzIgOS4zMzcgOS4zMzcgMCAwMDQuMTIxLS45NTIgNC4xMjUgNC4xMjUgMCAwMC03LjUzMy0yLjQ5M00xNSAxOS4xMjh2LS4wMDNjMC0xLjExMy0uMjg1LTIuMTYtLjc4Ni0zLjA3TTE1IDE5LjEyOHYuMTA2QTEyLjMxOCAxMi4zMTggMCAwMTguNjI0IDIxYy0yLjMzMSAwLTQuNTEyLS42NDUtNi4zNzQtMS43NjZsLS4wMDEtLjEwOWE2LjM3NSA2LjM3NSAwIDAxMTEuOTY0LTMuMDdNMTIgNi4zNzVhMy4zNzUgMy4zNzUgMCAxMS02Ljc1IDAgMy4zNzUgMy4zNzUgMCAwMTYuNzUgMHptOC4yNSAyLjI1YTIuNjI1IDIuNjI1IDAgMTEtNS4yNSAwIDIuNjI1IDIuNjI1IDAgMDE1LjI1IDB6XCJcbiAgICAgICAvPlxuICAgICAgPC9zdmc+XG5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgRm9sbG93ZXJzSWNvbjtcbiIsImltcG9ydCB7IGZvcm1hdFphcEFtb3VudCwgZ2V0TnB1YiB9IGZyb20gXCIuLi91dGlscy9jb21tb25cIjtcbmltcG9ydCBDb3B5VGV4dCBmcm9tIFwiLi9jb3B5VGV4dC5qc3hcIjtcbmltcG9ydCBCb2x0SWNvbiBmcm9tIFwiLi9pY29ucy9ib2x0SWNvbi5qc3hcIjtcbmltcG9ydCBGb2xsb3dlcnNJY29uIGZyb20gXCIuL2ljb25zL2ZvbGxvd2Vyc0ljb24uanN4XCI7XG5pbXBvcnQgTGlua0ljb24gZnJvbSBcIi4vaWNvbnMvbGlua0ljb24uanN4XCI7XG5cbmZ1bmN0aW9uIFByb2ZpbGVNZXRhKHsgcHJvZmlsZSwgZm9sbG93ZXJzQ291bnQsIHphcEFtb3VudCwgb3B0aW9ucyB9KSB7XG4gIGxldCBucHViLCBmb3JtYXR0ZWRaYXBBbW91bnQ7XG5cbiAgaWYgKHByb2ZpbGUgJiYgcHJvZmlsZS5wdWJrZXkpIHtcbiAgICBucHViID0gZ2V0TnB1Yihwcm9maWxlLnB1YmtleSk7XG4gICAgZm9ybWF0dGVkWmFwQW1vdW50ID0gZm9ybWF0WmFwQW1vdW50KHphcEFtb3VudCk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZE1ldGFcIj5cbiAgICAgIDxociAvPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjYXJkSW50ZXJhY3Rpb25zXCI+XG4gICAgICAgIHtvcHRpb25zPy5oaWRlQ291bnRlcnMgPyBudWxsIDogPD5cbiAgICAgICAge29wdGlvbnMgJiYgb3B0aW9ucy5zaG93WmFwcyA/IChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImludGVyYWN0aW9uQ29udGFpbmVyXCIgdGl0bGU9XCJUb3RhbCBzYXRzIHphcHBlZFwiPlxuICAgICAgICAgICAgPEJvbHRJY29uIGFkZGl0aW9uYWxDbGFzc2VzPVwidy01IGgtNVwiIC8+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ6YXBBbW91bnRcIj57Zm9ybWF0dGVkWmFwQW1vdW50fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW50ZXJhY3Rpb25Db250YWluZXJcIiB0aXRsZT1cIk51bWJlciBvZiBmb2xsb3dlcnNcIj5cbiAgICAgICAgICA8Rm9sbG93ZXJzSWNvbiBhZGRpdGlvbmFsQ2xhc3Nlcz1cInctNSBoLTVcIiAvPlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZvbGxvd2Vyc0NvdW50XCI+e2ZvbGxvd2Vyc0NvdW50fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvPn1cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbnRlcmFjdGlvbkNvbnRhaW5lclwiPlxuICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXIgbm9mb2xsb3dcIiBocmVmPXtgaHR0cHM6Ly9ub3N0ci5iYW5kLyR7bnB1Yn1gfVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwibGlua0xpbmtcIj5cbiAgICAgICAgICAgIDxMaW5rSWNvbiBhZGRpdGlvbmFsQ2xhc3Nlcz1cInctNSBoLTUgaG92ZXI6dGV4dC1ncmF5LTYwMFwiIC8+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkaXNwbGF5VGV4dFwiPk9wZW48L3NwYW4+XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAge29wdGlvbnMgJiYgb3B0aW9ucy5zaG93Q29weUFkZHIgPyAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbnRlcmFjdGlvbkNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPENvcHlUZXh0XG4gICAgICAgICAgICAgIGljb25DbGFzc2VzPVwidy01IGgtNVwiXG4gICAgICAgICAgICAgIGRpc3BsYXlUZXh0PVwiQ29weSBOcHViXCJcbiAgICAgICAgICAgICAgY29weVRleHQ9e25wdWJ9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBQcm9maWxlTWV0YTtcbiIsImltcG9ydCB7IGdldE5wdWIgfSBmcm9tIFwiLi4vdXRpbHMvY29tbW9uXCI7XG5pbXBvcnQgUHJvZmlsZUltYWdlIGZyb20gXCIuL3Byb2ZpbGVJbWFnZS5qc3hcIjtcblxuY29uc3QgUHJvZmlsZUZvbGxvd3MgPSAoeyBmb2xsb3dzID0gW10sIG9wdGlvbnMgfSkgPT4ge1xuICAgIGlmICghb3B0aW9ucz8uc2hvd0ZvbGxvd2luZykgcmV0dXJuIDw+PC8+XG5cbiAgICBjb25zdCBnZXRDYWNoZWRJbWFnZSA9IChwdWJrZXkpID0+IHtcbiAgICAgICAgcmV0dXJuIGBodHRwczovL21lZGlhLm5vc3RyLmJhbmQvdGh1bWJzLyR7cHVia2V5LnNsaWNlKC00KX0vJHtwdWJrZXl9LXBpY3R1cmUtNjRgXG4gICAgfVxuXG4gICAgY29uc3QgcGFyc2VkRm9sbG93cyA9IGZvbGxvd3Muc2xpY2UoMCwgMTApLm1hcChmb2xsb3cgPT4ge1xuICAgICAgICBjb25zdCBjb250ZW50ID0gSlNPTi5wYXJzZShmb2xsb3cuY29udGVudClcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlkOiBmb2xsb3c/LmlkLFxuICAgICAgICAgICAgbnB1Ykxpbms6IGBodHRwczovL25vc3RyLmJhbmQvJHtnZXROcHViKGZvbGxvdz8ucHVia2V5KX1gLFxuICAgICAgICAgICAgZGlzcGxheV9uYW1lOiBjb250ZW50Py5kaXNwbGF5X25hbWUsXG4gICAgICAgICAgICBwaWN0dXJlOiBjb250ZW50Py5waWN0dXJlLFxuICAgICAgICAgICAgY2FjaGVkSW1hZ2U6IGdldENhY2hlZEltYWdlKGZvbGxvdz8ucHVia2V5KSxcbiAgICAgICAgICAgIG5hbWU6IGNvbnRlbnQ/Lm5hbWVcbiAgICAgICAgfVxuICAgIH0pXG5cbiAgICBjb25zdCBmaWx0ZXJQcm9maWxlcyA9IHBhcnNlZEZvbGxvd3MuZmlsdGVyKHByb2ZpbGUgPT4gcHJvZmlsZS5uYW1lICYmIHByb2ZpbGUuZGlzcGxheV9uYW1lKVxuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxociAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuZS1mbGV4IG5lLWdhcC02IG5lLWZsZXgtd3JhcCBuZS1pdGVtcy1jZW50ZXIgbmUtbXQtOFwiPlxuICAgICAgICAgICAgICAgIDx1bCBjbGFzc05hbWU9XCJuZS1saXN0LW5vbmUgbmUtcC0wIG5lLWZsZXggbmUtbXMtWzI1cHhdIG5lLW0tMCBuZS1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VkRm9sbG93cy5tYXAoZm9sbG93ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkga2V5PXtmb2xsb3c/LmlkfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT0nbmUtaW5saW5lLWJsb2NrJyByZWw9XCJub29wZW5lciBub3JlZmVycmVyIG5vZm9sbG93XCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj17Zm9sbG93Lm5wdWJMaW5rfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UHJvZmlsZUltYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxJbWFnZT17Zm9sbG93Py5waWN0dXJlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHVtYm5haWw9e2ZvbGxvdz8uY2FjaGVkSW1hZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUHJvZmlsZUltYWdlPXtmYWxzZX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwibmUtbS0wIG5lLWZvbnQtYm9sZCBuZS10ZXh0LWxnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBGb2xsb3dzIHtmb2xsb3dzLmxlbmd0aH0gcHJvZmlsZXNcbiAgICAgICAgICAgICAgICAgICAgPC9oMj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuZS1tLTAgbmUtdGV4dC1zbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgSW5jbHVkaW5nIHtcIiBcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXIgbm9mb2xsb3dcIiB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzc05hbWU9J25lLXRleHQtYmxhY2snIGhyZWY9e2ZpbHRlclByb2ZpbGVzWzBdPy5ucHViTGlua30+e2ZpbHRlclByb2ZpbGVzWzBdPy5kaXNwbGF5X25hbWV9PC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAge2ZpbHRlclByb2ZpbGVzWzFdID8gJywgJyA6ICcnfVxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlciBub2ZvbGxvd1wiIHRhcmdldD1cIl9ibGFua1wiIGNsYXNzTmFtZT0nbmUtdGV4dC1ibGFjaycgaHJlZj17ZmlsdGVyUHJvZmlsZXNbMV0/Lm5wdWJMaW5rfT57ZmlsdGVyUHJvZmlsZXNbMV0/LmRpc3BsYXlfbmFtZX08L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICB7ZmlsdGVyUHJvZmlsZXNbMl0gPyAnIGFuZCAnIDogJyd9XG4gICAgICAgICAgICAgICAgICAgICAgICA8YSByZWw9XCJub29wZW5lciBub3JlZmVycmVyIG5vZm9sbG93XCIgdGFyZ2V0PVwiX2JsYW5rXCIgY2xhc3NOYW1lPSduZS10ZXh0LWJsYWNrJyBocmVmPXtmaWx0ZXJQcm9maWxlc1syXT8ubnB1Ykxpbmt9PntmaWx0ZXJQcm9maWxlc1syXT8uZGlzcGxheV9uYW1lfTwvYT5cblxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IFByb2ZpbGVGb2xsb3dzIiwiaW1wb3J0IFByb2ZpbGVNZXRhIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL3Byb2ZpbGVNZXRhLmpzeFwiO1xuaW1wb3J0IFByb2ZpbGVGb2xsb3dzIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL3Byb2ZpbGVGb2xsb3dzLmpzeFwiO1xuaW1wb3J0IFByb2ZpbGVDb21wb25lbnQgZnJvbSAnLi4vLi4vY29tcG9uZW50cy9wcm9maWxlLmpzeCdcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUHJvZmlsZSh7c3RhdGUsIHByb3BzfSkge1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwibm9zdHJFbWJlZENhcmRcIj5cbiAgICAgICAgPFByb2ZpbGVDb21wb25lbnRcbiAgICAgICAgICBwcm9maWxlUGtleT17c3RhdGU/LmlkfVxuICAgICAgICAgIHByb2ZpbGU9e3N0YXRlPy5wcm9maWxlfVxuICAgICAgICAgIG9wdGlvbnM9e3Byb3BzPy5vcHRpb25zfVxuICAgICAgICAvPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3NOYW1lPXtcbiAgICAgICAgICAgIHN0YXRlPy5wcm9maWxlLmVycm9yXG4gICAgICAgICAgICAgID8gXCJjYXJkQ29udGVudCBuZS10ZXh0LXJlZC04MDBcIlxuICAgICAgICAgICAgICA6IFwiY2FyZENvbnRlbnRcIlxuICAgICAgICAgIH1cbiAgICAgICAgPlxuICAgICAgICAgIHtzdGF0ZT8ucHJvZmlsZT8ud2Vic2l0ZSA/IChcbiAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICBXZWJzaXRlOntcIiBcIn1cbiAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBocmVmPXtzdGF0ZT8ucHJvZmlsZT8ud2Vic2l0ZX1cbiAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXIgbm9mb2xsb3dcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3N0YXRlPy5wcm9maWxlPy53ZWJzaXRlfVxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIFwiXCJcbiAgICAgICAgICApfVxuICAgICAgICAgIHtzdGF0ZT8ucHJvZmlsZT8uYWJvdXQgfHwgXCJMb2FkaW5nLi4uXCJ9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7XG4gICAgICAgICAgQm9vbGVhbihzdGF0ZT8uZm9sbG93cy5sZW5ndGgpICYmIDxQcm9maWxlRm9sbG93cyBmb2xsb3dzPXtzdGF0ZT8uZm9sbG93c30gb3B0aW9ucz17cHJvcHM/Lm9wdGlvbnN9IC8+XG4gICAgICAgIH1cbiAgICAgICAgPFByb2ZpbGVNZXRhXG4gICAgICAgICAgcHJvZmlsZT17c3RhdGU/LnByb2ZpbGV9XG4gICAgICAgICAgZm9sbG93ZXJzQ291bnQ9e3N0YXRlPy5mb2xsb3dlcnNDb3VudH1cbiAgICAgICAgICB6YXBBbW91bnQ9e3N0YXRlPy56YXBBbW91bnR9XG4gICAgICAgICAgb3B0aW9ucz17cHJvcHM/Lm9wdGlvbnN9XG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgKVxufVxuIiwiXG5cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gWmFwKHtzdGF0ZX0pIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIm5vc3RyRW1iZWRDYXJkXCI+XG4gICAgICBaYXAgY29udGVudDoge0pTT04uc3RyaW5naWZ5KHN0YXRlPy5ldmVudCl9XG4gICAgPC9kaXY+XG4gIClcbn0iLCJpbXBvcnQge2Zvcm1hdE5vdGVJZCwgZm9ybWF0TnB1YiwgZ2V0Tm90ZUlkLCBnZXROcHViLCBwYXJzZU5wcm9maWxlLCBwYXJzZU5wdWJ9IGZyb20gXCIuL2NvbW1vblwiO1xuaW1wb3J0IHtJTUFHRV9GSUxFX0VYVEVOU0lPTlMsIFZJREVPX0ZJTEVfRVhURU5TSU9OUywgWU9VVFVCRV9LRVlfV09SRFN9IGZyb20gXCIuLi9jb25maWcvY29uZmlnXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRDb250ZW50KHN0YXRlKSB7XG4gIGlmICghc3RhdGU/LmV2ZW50LmNvbnRlbnQpIHJldHVybiBcIlwiO1xuXG4gIGNvbnN0IGZvcm1hdEV2ZW50TGluayA9IChub3RlT3JOYWRkcikgPT4ge1xuICAgIGNvbnN0IGxhYmVsID0gZm9ybWF0Tm90ZUlkKG5vdGVPck5hZGRyKTtcbiAgICByZXR1cm4gKFxuICAgICAgPGFcbiAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlciBub2ZvbGxvd1wiXG4gICAgICAgIGhyZWY9eyBgaHR0cHM6Ly9ub3N0ci5iYW5kLyR7IG5vdGVPck5hZGRyIH1gIH1cbiAgICAgID5cbiAgICAgICAgeyBsYWJlbCB9XG4gICAgICA8L2E+XG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBmb3JtYXRQcm9maWxlTGluayA9IChucHViLCBwdWJrZXkpID0+IHtcbiAgICBsZXQgbGFiZWwgPSBmb3JtYXROcHViKG5wdWIpO1xuICAgIGlmIChwdWJrZXkgaW4gc3RhdGU/LnRhZ2dlZFByb2ZpbGVzKSB7XG4gICAgICBjb25zdCB0cCA9IHN0YXRlPy50YWdnZWRQcm9maWxlc1twdWJrZXldO1xuICAgICAgbGFiZWwgPSB0cD8ubmFtZSB8fCB0cD8uZGlzcGxheV9uYW1lIHx8IGxhYmVsO1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgPGFcbiAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlciBub2ZvbGxvd1wiXG4gICAgICAgIGhyZWY9eyBgaHR0cHM6Ly9ub3N0ci5iYW5kLyR7IG5wdWIgfWAgfVxuICAgICAgPlxuICAgICAgICBAeyBsYWJlbCB9XG4gICAgICA8L2E+XG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBub3RlID0gc3RhdGU/LmV2ZW50O1xuXG4gIGNvbnN0IE1lbnRpb25SZWdleCA9IC8oI1xcW1xcZCtcXF0pL2dpO1xuXG4gIC8vIGZpcnN0IC0gc3BsaXQgYnkgI1tkXSBtZW50aW9uc1xuICBjb25zdCBmcmFnbWVudHMgPSBub3RlLmNvbnRlbnQuc3BsaXQoTWVudGlvblJlZ2V4KS5tYXAoKG1hdGNoKSA9PiB7XG4gICAgY29uc3QgbWF0Y2hUYWcgPSBtYXRjaC5tYXRjaCgvI1xcWyhcXGQrKVxcXS8pO1xuICAgIGlmIChtYXRjaFRhZyAmJiBtYXRjaFRhZy5sZW5ndGggPT09IDIpIHtcbiAgICAgIGNvbnN0IGlkeCA9IHBhcnNlSW50KG1hdGNoVGFnWzFdKTtcbiAgICAgIGlmIChpZHggPCBub3RlLnRhZ3MubGVuZ3RoICYmIG5vdGUudGFnc1tpZHhdLmxlbmd0aCA+PSAyKSB7XG4gICAgICAgIGNvbnN0IHJlZiA9IG5vdGUudGFnc1tpZHhdO1xuICAgICAgICBzd2l0Y2ggKHJlZlswXSkge1xuICAgICAgICAgIGNhc2UgXCJwXCI6IHtcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXRQcm9maWxlTGluayhnZXROcHViKHJlZlsxXSksIHJlZlsxXSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgXCJlXCI6IHtcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXRFdmVudExpbmsoZ2V0Tm90ZUlkKHJlZlsxXSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBub3QgYWRkaW5nIHN1cHBvcnQgZm9yICdhJyAtIHRvbyBtdWNoIGNvZGUgdG8gZm9ybWF0IHRoZSBuYWRkcixcbiAgICAgICAgICAvLyBhbmQgdGhpcyBtZXRob2QgaXMgZGVwcmVjYXRlZCwgc28gbGV0J3MgaG9wZSB3ZSB3b24ndCBuZWVkIHRoaXNcbiAgICAgICAgICBjYXNlIFwidFwiOiB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlciBub2ZvbGxvd1wiXG4gICAgICAgICAgICAgICAgaHJlZj17IGBodHRwczovL25vc3RyLmJhbmQvP3E9JTIzJHsgcmVmWzFdIH1gIH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICN7IHJlZlsxXSB9XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIHVuc3VwcG9ydGVkICNbZF0gcmVmXG4gICAgICByZXR1cm4gbWF0Y2g7XG4gICAgfVxuXG4gICAgLy8gbm93IHRyeSBzcGxpdHRpbmcgYnkgbm9zdHI6IGxpbmtzXG4gICAgcmV0dXJuIG1hdGNoLnNwbGl0KC8obm9zdHI6W2EtejAtOV0rKS9naSkubWFwKChuKSA9PiB7XG4gICAgICBjb25zdCBtYXRjaE5vc3RyID0gbi5tYXRjaCgvbm9zdHI6KFthLXowLTldKykvKTtcbiAgICAgIGlmIChtYXRjaE5vc3RyICYmIG1hdGNoTm9zdHIubGVuZ3RoID09PSAyKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBtYXRjaE5vc3RyWzFdLnN0YXJ0c1dpdGgoXCJub3RlMVwiKSB8fFxuICAgICAgICAgIG1hdGNoTm9zdHJbMV0uc3RhcnRzV2l0aChcIm5ldmVudDFcIikgfHxcbiAgICAgICAgICBtYXRjaE5vc3RyWzFdLnN0YXJ0c1dpdGgoXCJuYWRkcjFcIilcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIGZvcm1hdEV2ZW50TGluayhtYXRjaE5vc3RyWzFdKTtcbiAgICAgICAgfSBlbHNlIGlmIChtYXRjaE5vc3RyWzFdLnN0YXJ0c1dpdGgoXCJucHViMVwiKSkge1xuICAgICAgICAgIGNvbnN0IG5wdWIgPSBtYXRjaE5vc3RyWzFdO1xuICAgICAgICAgIGNvbnN0IHB1YmtleSA9IHBhcnNlTnB1YihtYXRjaE5vc3RyWzFdKTtcbiAgICAgICAgICBpZiAocHVia2V5KVxuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdFByb2ZpbGVMaW5rKG5wdWIsIHB1YmtleSk7XG4gICAgICAgIH0gZWxzZSBpZiAobWF0Y2hOb3N0clsxXS5zdGFydHNXaXRoKFwibnByb2ZpbGUxXCIpKSB7XG4gICAgICAgICAgY29uc3Qge3R5cGUsIGRhdGF9ID0gcGFyc2VOcHJvZmlsZShtYXRjaE5vc3RyWzFdKTtcbiAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgY29uc3QgbnB1YiA9IGdldE5wdWIoZGF0YS5wdWJrZXkpO1xuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdFByb2ZpbGVMaW5rKG5wdWIsIGRhdGEucHVia2V5KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyB1bnN1cHBvcnRlZCBvciBiYWQgbm9zdHI6IGxpbmtcbiAgICAgICAgcmV0dXJuIG47XG4gICAgICB9XG5cbiAgICAgIC8vIGZpbmFsbHksIHNwbGl0IGJ5IHVybHNcbiAgICAgIGNvbnN0IHVybFJlZ2V4ID1cbiAgICAgICAgLygoPzpodHRwfGZ0cHxodHRwcyk6XFwvXFwvKD86W1xcdys/LlxcdytdKSsoPzpbYS16QS1aMC05fiFAIyQlXiYqKClfXFwtPStcXFxcLz8uOjsnLF0qKT8oPzpbLUEtWmEtejAtOSsmQCMvJT1+X3xdKSkvaTtcbiAgICAgIHJldHVybiBuLnNwbGl0KHVybFJlZ2V4KS5tYXAoKGEpID0+IHtcbiAgICAgICAgaWYgKGEubWF0Y2goL15odHRwcz86XFwvXFwvLykpIHtcbiAgICAgICAgICByZXR1cm4gZm9ybWF0TGluayhhKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICByZXR1cm4gZnJhZ21lbnRzO1xufVxuXG5mdW5jdGlvbiBmb3JtYXRMaW5rKGEpIHtcbiAgaWYgKGlzVmlkZW8oYSkpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjYXJkQ29udGVudE1lZGlhXCI+XG4gICAgICAgIDx2aWRlbyBzcmM9eyBhIH1cbiAgICAgICAgICAgICAgIGNvbnRyb2xzPjwvdmlkZW8+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9IGVsc2UgaWYgKGlzSW1hZ2UoYSkpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjYXJkQ29udGVudE1lZGlhXCI+XG4gICAgICAgIDxpbWcgY2xhc3NOYW1lPVwiY2FyZENvbnRlbnRJbWFnZVwiXG4gICAgICAgICAgICAgc3JjPXsgYSB9XG4gICAgICAgICAgICAgYWx0PVwiXCI+PC9pbWc+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9IGVsc2UgaWYgKGlzWW91dHViZShhKSkge1xuICAgIGlmIChhLmluY2x1ZGVzKFwiL3dhdGNoXCIpKSB7XG4gICAgICBhID0gYS5yZXBsYWNlKFwiL3dhdGNoXCIsIFwiL2VtYmVkXCIpO1xuICAgICAgYSA9IGEucmVwbGFjZShcIj92PVwiLCBcIi9cIik7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhcmRDb250ZW50TWVkaWFcIj5cbiAgICAgICAgPGlmcmFtZSBzcmM9eyBhIH0+PC9pZnJhbWU+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiAoXG4gICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlciBub2ZvbGxvd1wiXG4gICAgICAgICBocmVmPXsgYSB9PlxuICAgICAgICB7IGEgfVxuICAgICAgPC9hPlxuICAgICk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNJbWFnZShhKSB7XG4gIGNvbnN0IGxpbmsgPSBzcGxpdExpbmsoY2hhbmdlTGlua1JlZ2lzdGVyKGEpLCAwKTtcbiAgcmV0dXJuIGlzQW55RW5kV2l0aChsaW5rLCBJTUFHRV9GSUxFX0VYVEVOU0lPTlMpO1xufVxuXG5mdW5jdGlvbiBpc1ZpZGVvKGEpIHtcbiAgY29uc3QgbGluayA9IHNwbGl0TGluayhjaGFuZ2VMaW5rUmVnaXN0ZXIoYSksIDApO1xuICByZXR1cm4gaXNBbnlFbmRXaXRoKGxpbmssIFZJREVPX0ZJTEVfRVhURU5TSU9OUyk7XG59XG5cbmZ1bmN0aW9uIGlzWW91dHViZShhKSB7XG4gIGNvbnN0IGxpbmsgPSBzcGxpdExpbmsoY2hhbmdlTGlua1JlZ2lzdGVyKGEpLCAwKTtcbiAgcmV0dXJuIGlzQW55Q29udGFpbnMobGluaywgWU9VVFVCRV9LRVlfV09SRFMpO1xufVxuXG5mdW5jdGlvbiBpc0FueUVuZFdpdGgobGluaywgZXh0ZW5zaW9ucykge1xuICByZXR1cm4gZXh0ZW5zaW9ucy5zb21lKGZ1bmN0aW9uIChleHRlbnNpb24pIHtcbiAgICByZXR1cm4gbGluay5lbmRzV2l0aChleHRlbnNpb24pO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gaXNBbnlDb250YWlucyhsaW5rLCBrZXlXb3Jkcykge1xuICByZXR1cm4ga2V5V29yZHMuc29tZShmdW5jdGlvbiAoa2V5V29yZCkge1xuICAgIHJldHVybiBsaW5rLmluY2x1ZGVzKGtleVdvcmQpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gY2hhbmdlTGlua1JlZ2lzdGVyKGEpIHtcbiAgcmV0dXJuIGEudG9Mb3dlckNhc2UoKTtcbn1cblxuZnVuY3Rpb24gc3BsaXRMaW5rKGxpbmssIGVsZW1lbnROdW1iZXIpIHtcbiAgY29uc3QgbGlua0FycmF5ID0gbGluay5zcGxpdChcIj9cIik7XG4gIGlmIChsaW5rQXJyYXkubGVuZ3RoID4gZWxlbWVudE51bWJlcikge1xuICAgIHJldHVybiBsaW5rQXJyYXlbZWxlbWVudE51bWJlcl07XG4gIH1cbiAgcmV0dXJuIGxpbms7XG59IiwiaW1wb3J0IFByb2ZpbGVDb21wb25lbnQgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvcHJvZmlsZS5qc3hcIjtcbmltcG9ydCBNZXRhIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL21ldGEuanN4XCI7XG5pbXBvcnQge2Zvcm1hdENvbnRlbnR9IGZyb20gXCIuLi8uLi91dGlscy9mb3JtYXRDb250ZW50XCI7XG5cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTm90ZSh7c3RhdGUsIHByb3BzfSkge1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwibm9zdHJFbWJlZENhcmRcIj5cbiAgICAgIDxQcm9maWxlQ29tcG9uZW50XG4gICAgICAgIHByb2ZpbGVQa2V5PXsgc3RhdGU/LnByb2ZpbGVQa2V5IH1cbiAgICAgICAgcHJvZmlsZT17IHN0YXRlPy5wcm9maWxlIH1cbiAgICAgICAgb3B0aW9ucz17IHByb3BzPy5vcHRpb25zIH1cbiAgICAgIC8+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17XG4gICAgICAgICAgc3RhdGU/LmV2ZW50LmVycm9yXG4gICAgICAgICAgICA/IFwiY2FyZENvbnRlbnQgbmUtdGV4dC1yZWQtODAwXCJcbiAgICAgICAgICAgIDogXCJjYXJkQ29udGVudFwiXG4gICAgICAgIH1cbiAgICAgID5cbiAgICAgICAgeyBmb3JtYXRDb250ZW50KHN0YXRlKSB9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxNZXRhXG4gICAgICAgIG5vdGU9eyBzdGF0ZT8uZXZlbnQgfVxuICAgICAgICBsaWtlc0NvdW50PXsgc3RhdGU/Lmxpa2VzQ291bnQgfVxuICAgICAgICByZXBsaWVzQ291bnQ9eyBzdGF0ZT8ucmVwbGllc0NvdW50IH1cbiAgICAgICAgcmVwb3N0c0NvdW50PXsgc3RhdGU/LnJlcG9zdHNDb3VudCB9XG4gICAgICAgIHphcEFtb3VudD17IHN0YXRlPy56YXBBbW91bnQgfVxuICAgICAgICBvcHRpb25zPXsgcHJvcHM/Lm9wdGlvbnMgfVxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuIiwiaW1wb3J0ICogYXMgc2VjcCBmcm9tIFwiQG5vYmxlL3NlY3AyNTZrMVwiO1xuaW1wb3J0IHtkZWNvZGV9IGZyb20gXCJsaWdodC1ib2x0MTEtZGVjb2RlclwiO1xuaW1wb3J0IHtDb21wb25lbnR9IGZyb20gXCJwcmVhY3RcIjtcbmltcG9ydCB7cGFyc2VOYWRkciwgcGFyc2VOb3RlSWQsIHBhcnNlTnB1Yix9IGZyb20gXCIuLi91dGlscy9jb21tb25cIjtcbmltcG9ydCBQcm9maWxlc0xpc3QgZnJvbSBcIi4vY29tcG9uZW50cy9Qcm9maWxlc0xpc3QuanN4XCI7XG5pbXBvcnQgUHJvZmlsZSBmcm9tIFwiLi9jb21wb25lbnRzL1Byb2ZpbGUuanN4XCI7XG5pbXBvcnQge0tJTkRfQ09OVEFDVF9MSVNULCBLSU5EX01FVEEsIEtJTkRfTk9URSwgS0lORF9QUk9GSUxFX0xJU1QsIEtJTkRfWkFQfSBmcm9tIFwiLi4vY29uZmlnL2NvbmZpZ1wiO1xuaW1wb3J0IFphcCBmcm9tIFwiLi9jb21wb25lbnRzL1phcC5qc3hcIjtcbmltcG9ydCBOb3RlIGZyb20gXCIuL2NvbXBvbmVudHMvTm90ZS5qc3hcIjtcblxuY2xhc3MgTm9zdHJFbWJlZCBleHRlbmRzIENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuXG4gICAgbGV0IGlkID0gcHJvcHMuaWQ7IC8vIGhleCBldmVudCBpZCBieSBkZWZhdWx0XG4gICAgbGV0IGtpbmQgPSBLSU5EX05PVEU7IC8vIGRlZmF1bHQgZm9yIGZldGNoRXZlbnRcbiAgICBpZiAocHJvcHMuaWQuc3RhcnRzV2l0aChcIm5wdWIxXCIpKSB7XG4gICAgICBpZCA9IHBhcnNlTnB1Yihwcm9wcy5pZCk7XG4gICAgICBraW5kID0gS0lORF9NRVRBOyAvLyBmZXRjaFByb2ZpbGVcbiAgICB9IGVsc2UgaWYgKHByb3BzLmlkLnN0YXJ0c1dpdGgoXCJub3RlMVwiKSkge1xuICAgICAgaWQgPSBwYXJzZU5vdGVJZChwcm9wcy5pZCk7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5pZC5zdGFydHNXaXRoKFwibmFkZHJcIikpIHtcbiAgICAgIGlkID0gcGFyc2VOYWRkcihwcm9wcy5pZCk7XG4gICAgICBraW5kID0gS0lORF9DT05UQUNUX0xJU1Q7IC8vIGRlZmF1bHQgZm9yIGZldGNoTmFkZHJcbiAgICB9XG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgaWQsXG4gICAgICBraW5kLFxuICAgICAgcmVsYXk6IHByb3BzLnJlbGF5LFxuICAgICAgZXZlbnQ6IHt9LCAvLyByYXcgc291cmNlIGV2ZW50XG4gICAgICBwcm9maWxlOiB7fSwgLy8gYXV0aG9yIG9mIHRoZSBjdXJyZW50IGV2ZW50XG4gICAgICBwcm9maWxlc0xpc3Q6IHt9LCAvLyAzLCAzMDAwMCBldGNcbiAgICAgIHRhZ2dlZFByb2ZpbGVzOiB7fSxcbiAgICAgIGZvbGxvd3M6IFtdLFxuICAgICAgcHJvZmlsZVBrZXk6IFwiXCIsXG4gICAgICBsaWtlc0NvdW50OiAwLFxuICAgICAgcmVwb3N0c0NvdW50OiAwLFxuICAgICAgcmVwbGllc0NvdW50OiAwLFxuICAgICAgemFwQW1vdW50OiAwLFxuICAgICAgZm9sbG93ZXJzQ291bnQ6IDAsXG4gICAgICBjb3VudFRhZ2dlZFByb2ZpbGVzOiAwLFxuICAgIH07XG4gIH1cblxuICBzaGEyNTYoc3RyaW5nKSB7XG4gICAgY29uc3QgdXRmOCA9IG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShzdHJpbmcpO1xuICAgIHJldHVybiBzZWNwLnV0aWxzLnNoYTI1Nih1dGY4KS50aGVuKChoYXNoQnVmZmVyKSA9PiB7XG4gICAgICBjb25zdCBoYXNoQXJyYXkgPSBBcnJheS5mcm9tKG5ldyBVaW50OEFycmF5KGhhc2hCdWZmZXIpKTtcbiAgICAgIHJldHVybiBoYXNoQXJyYXlcbiAgICAgICAgLm1hcCgoYnl0ZXMpID0+IGJ5dGVzLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCBcIjBcIikpXG4gICAgICAgIC5qb2luKFwiXCIpO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgZ2V0Tm9zdHJFdmVudElEKG0pIHtcbiAgICBjb25zdCBhID0gWzAsIG0ucHVia2V5LCBtLmNyZWF0ZWRfYXQsIG0ua2luZCwgbS50YWdzLCBtLmNvbnRlbnRdO1xuICAgIGNvbnN0IHMgPSBKU09OLnN0cmluZ2lmeShhKTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5zaGEyNTYocyk7XG4gIH1cblxuICB2ZXJpZnlOb3N0clNpZ25hdHVyZShldmVudCkge1xuICAgIHJldHVybiBzZWNwLnNjaG5vcnIudmVyaWZ5KGV2ZW50LnNpZywgZXZlbnQuaWQsIGV2ZW50LnB1YmtleSk7XG4gIH1cblxuICBhc3luYyB2YWxpZGF0ZU5vc3RyRXZlbnQoZXZlbnQpIHtcbiAgICBpZiAoZXZlbnQuaWQgIT09IChhd2FpdCB0aGlzLmdldE5vc3RyRXZlbnRJRChldmVudCkpKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHR5cGVvZiBldmVudC5jb250ZW50ICE9PSBcInN0cmluZ1wiKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHR5cGVvZiBldmVudC5jcmVhdGVkX2F0ICE9PSBcIm51bWJlclwiKSByZXR1cm4gZmFsc2U7XG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZXZlbnQudGFncykpIHJldHVybiBmYWxzZTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGV2ZW50LnRhZ3MubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxldCB0YWcgPSBldmVudC50YWdzW2ldO1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHRhZykpIHJldHVybiBmYWxzZTtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGFnLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdGFnW2pdID09PSBcIm9iamVjdFwiKSByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBhc3luYyBpc1ZhbGlkRXZlbnQoZXYpIHtcbiAgICByZXR1cm4gKFxuICAgICAgZXYuaWQgJiZcbiAgICAgIGV2LnB1YmtleSAmJlxuICAgICAgZXYuc2lnICYmXG4gICAgICAoYXdhaXQgdGhpcy52YWxpZGF0ZU5vc3RyRXZlbnQoZXYpKSAmJlxuICAgICAgdGhpcy52ZXJpZnlOb3N0clNpZ25hdHVyZShldilcbiAgICApO1xuICB9XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgY29uc3Qgc3RhcnQgPSAoc29ja2V0KSA9PiB7XG4gICAgICBzd2l0Y2ggKHRoaXMuc3RhdGUua2luZCkge1xuICAgICAgICBjYXNlIEtJTkRfTUVUQTpcbiAgICAgICAgICByZXR1cm4gdGhpcy5mZXRjaFByb2ZpbGUoe3NvY2tldCwgcHJvZmlsZVBrZXk6IHRoaXMuc3RhdGUuaWR9KTtcbiAgICAgICAgY2FzZSBLSU5EX05PVEU6XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hFdmVudCh7c29ja2V0LCBub3RlSWQ6IHRoaXMuc3RhdGUuaWR9KTtcbiAgICAgICAgY2FzZSBLSU5EX0NPTlRBQ1RfTElTVDpcbiAgICAgICAgICByZXR1cm4gdGhpcy5mZXRjaE5hZGRyKHtzb2NrZXQsIGRhdGE6IHRoaXMuc3RhdGUuaWQuZGF0YX0pO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBpZiAoIXdpbmRvdy5fX25vc3RyRW1iZWQpIHdpbmRvdy5fX25vc3RyRW1iZWQgPSB7c29ja2V0czoge319O1xuXG4gICAgbGV0IHNvY2tldCA9IG51bGw7XG4gICAgaWYgKHRoaXMuc3RhdGUucmVsYXkgaW4gd2luZG93Ll9fbm9zdHJFbWJlZC5zb2NrZXRzKSB7XG4gICAgICBzb2NrZXQgPSB3aW5kb3cuX19ub3N0ckVtYmVkLnNvY2tldHNbdGhpcy5zdGF0ZS5yZWxheV07XG4gICAgICBpZiAoc29ja2V0LnJlYWR5U3RhdGUgPT0gMSlcbiAgICAgICAgLy8gb3BlblxuICAgICAgICBzdGFydChzb2NrZXQpO1xuICAgICAgZWxzZSBpZiAoc29ja2V0LnJlYWR5U3RhdGUgPT0gMClcbiAgICAgICAgLy8gY29ubmVjdGluZ1xuICAgICAgICBzb2NrZXQuc3RhcnRzLnB1c2goc3RhcnQpO1xuICAgICAgZWxzZSBzb2NrZXQgPSBudWxsO1xuICAgIH1cblxuICAgIGlmIChzb2NrZXQpIHJldHVybjtcblxuICAgIHNvY2tldCA9IG5ldyBXZWJTb2NrZXQodGhpcy5zdGF0ZS5yZWxheSk7XG4gICAgd2luZG93Ll9fbm9zdHJFbWJlZC5zb2NrZXRzW3RoaXMuc3RhdGUucmVsYXldID0gc29ja2V0O1xuXG4gICAgc29ja2V0LnN0YXJ0cyA9IFtzdGFydF07XG5cbiAgICBzb2NrZXQub25vcGVuID0gKCkgPT4ge1xuICAgICAgY29uc29sZS5sb2coYENvbm5lY3RlZCB0byBOb3N0ciByZWxheTogJHsgc29ja2V0LnVybCB9YCk7XG4gICAgICBmb3IgKGNvbnN0IHMgb2Ygc29ja2V0LnN0YXJ0cykgcyhzb2NrZXQpO1xuICAgICAgc29ja2V0LnN0YXJ0cyA9IG51bGw7XG4gICAgfTtcblxuICAgIHNvY2tldC5vbmVycm9yID0gKGV2KSA9PiB7XG4gICAgICBjb25zb2xlLmxvZyhgRmFpbGVkIHRvIGNvbm5lY3QgdG8gTm9zdHIgcmVsYXk6ICR7IHNvY2tldC51cmwgfX1gKTtcbiAgICB9O1xuXG4gICAgY29uc3Qgc3VicyA9IHt9O1xuICAgIHNvY2tldC5vbm1lc3NhZ2UgPSAoZSkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZCA9IEpTT04ucGFyc2UoZS5kYXRhKTtcbiAgICAgICAgaWYgKCFkIHx8ICFkLmxlbmd0aCkgdGhyb3cgXCJCYWQgcmVwbHkgZnJvbSByZWxheVwiO1xuXG4gICAgICAgIGlmIChkWzBdID09IFwiTk9USUNFXCIgJiYgZC5sZW5ndGggPT0gMikge1xuICAgICAgICAgIGNvbnNvbGUubG9nKFwibm90aWNlIGZyb21cIiwgc29ja2V0LnVybCwgZFsxXSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGRbMF0gPT0gXCJFT1NFXCIgJiYgZC5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgaWYgKGRbMV0gaW4gc3Vicykgc3Vic1tkWzFdXS5vbl9ldmVudChudWxsKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZFswXSA9PSBcIkNPVU5UXCIgJiYgZC5sZW5ndGggPT0gMykge1xuICAgICAgICAgIGlmIChkWzFdIGluIHN1YnMpIHN1YnNbZFsxXV0ub25fY291bnQoZFsyXSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGRbMF0gIT0gXCJFVkVOVFwiIHx8IGQubGVuZ3RoIDwgMykgdGhyb3cgXCJVbmtub3duIHJlcGx5IGZyb20gcmVsYXlcIjtcblxuICAgICAgICBpZiAoZFsxXSBpbiBzdWJzKSBzdWJzW2RbMV1dLm9uX2V2ZW50KGRbMl0pO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5sb2coXCJyZWxheVwiLCBzb2NrZXQudXJsLCBcImJhZCBtZXNzYWdlXCIsIGUsIFwiZXJyb3JcIiwgZXJyb3IpO1xuICAgICAgICBlcnIoZXJyb3IpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBzb2NrZXQuc3Vic2NyaWJlID0gKHt0eXBlLCBzdWIsIG9rLCBlcnJ9KSA9PiB7XG4gICAgICBsZXQgaWQgPSBcImVtYmVkLVwiICsgTWF0aC5yYW5kb20oKTtcbiAgICAgIGNvbnN0IHJlcSA9IFt0eXBlLCBpZCwgc3ViXTtcbiAgICAgIHNvY2tldC5zZW5kKEpTT04uc3RyaW5naWZ5KHJlcSkpO1xuXG4gICAgICBjb25zdCBjbG9zZSA9ICgpID0+IHtcbiAgICAgICAgY29uc3Qgc3ViX2lkID0gaWQ7XG4gICAgICAgIGlkID0gbnVsbDtcbiAgICAgICAgc29ja2V0LnNlbmQoSlNPTi5zdHJpbmdpZnkoW1wiQ0xPU0VcIiwgc3ViX2lkXSkpO1xuICAgICAgICBkZWxldGUgc3Vic1tzdWJfaWRdO1xuICAgICAgfTtcblxuICAgICAgY29uc3QgZXZlbnRzID0gW107XG4gICAgICBjb25zdCBxdWV1ZSA9IFtdO1xuXG4gICAgICBjb25zdCBkb25lID0gKCkgPT4ge1xuICAgICAgICBpZiAoIWlkKSByZXR1cm47XG4gICAgICAgIGNsZWFyVGltZW91dCh0byk7XG4gICAgICAgIGNsb3NlKCk7XG4gICAgICAgIG9rKGV2ZW50cyk7XG4gICAgICB9O1xuXG4gICAgICBjb25zdCB0byA9IHNldFRpbWVvdXQoXG4gICAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAvLyB0ZWxsIHJlbGF5IHdlJ3JlIG5vIGxvbmdlciBpbnRlcmVzdGVkXG4gICAgICAgICAgY2xvc2UoKTtcblxuICAgICAgICAgIC8vIG1heWJlIHJlbGF5IHcvbyBFT1NFIHN1cHBvcnQ/XG4gICAgICAgICAgaWYgKGV2ZW50cy5sZW5ndGggfHwgcXVldWUubGVuZ3RoKSB7XG4gICAgICAgICAgICBvbl9ldmVudChudWxsKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXJyKFwidGltZW91dCBvbiByZWxheVwiLCBzb2NrZXQudXJsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHN1Yi5saW1pdCAmJiBzdWIubGltaXQgPT0gMSA/IDIwMDAgOiA2MDAwXG4gICAgICApO1xuXG4gICAgICBjb25zdCBvbl9ldmVudCA9IGFzeW5jIChlKSA9PiB7XG4gICAgICAgIHF1ZXVlLnB1c2goZSk7XG4gICAgICAgIGlmIChxdWV1ZS5sZW5ndGggPiAxKSByZXR1cm47XG4gICAgICAgIHdoaWxlIChxdWV1ZS5sZW5ndGgpIHtcbiAgICAgICAgICBlID0gcXVldWVbMF07XG4gICAgICAgICAgaWYgKGUgJiYgKGF3YWl0IHRoaXMuaXNWYWxpZEV2ZW50KGUpKSkgZXZlbnRzLnB1c2goZSk7XG4gICAgICAgICAgcXVldWUuc2hpZnQoKTsgLy8gZGVxdWV1ZSBhZnRlciB3ZSd2ZSBhd2FpdGVkXG4gICAgICAgICAgaWYgKCFlIHx8IChzdWIubGltaXQgJiYgc3ViLmxpbWl0ID09IGV2ZW50cy5sZW5ndGgpKSB7XG4gICAgICAgICAgICBxdWV1ZS5zcGxpY2UoMCwgcXVldWUubGVuZ3RoKTtcbiAgICAgICAgICAgIGRvbmUoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgY29uc3Qgb25fY291bnQgPSBhc3luYyAoZSkgPT4ge1xuICAgICAgICBpZiAodHlwZSAhPSBcIkNPVU5UXCIpIHJldHVybjsgLy8gbWlzYmVoYXZpbmcgcmVsYXlcbiAgICAgICAgZXZlbnRzLnB1c2goZSk7XG4gICAgICAgIGRvbmUoKTtcbiAgICAgIH07XG5cbiAgICAgIHN1YnNbaWRdID0ge29rLCBlcnIsIG9uX2V2ZW50LCBvbl9jb3VudH07XG4gICAgfTtcblxuICAgIHNvY2tldC5saXN0RXZlbnRzID0gKHtzdWIsIG9rLCBlcnJ9KSA9PiB7XG4gICAgICBzb2NrZXQuc3Vic2NyaWJlKHt0eXBlOiBcIlJFUVwiLCBzdWIsIG9rLCBlcnJ9KTtcbiAgICB9O1xuXG4gICAgc29ja2V0LmNvdW50RXZlbnRzID0gKHtzdWIsIG9rLCBlcnJ9KSA9PiB7XG4gICAgICBzb2NrZXQuc3Vic2NyaWJlKHtcbiAgICAgICAgdHlwZTogXCJDT1VOVFwiLFxuICAgICAgICBzdWIsXG4gICAgICAgIG9rOiAoZXZlbnRzKSA9PiB7XG4gICAgICAgICAgb2soZXZlbnRzLmxlbmd0aCA/IGV2ZW50c1swXSA6IG51bGwpO1xuICAgICAgICB9LFxuICAgICAgICBlcnIsXG4gICAgICB9KTtcbiAgICB9O1xuICB9XG5cbiAgZ2V0RXZlbnQoe3NvY2tldCwgc3ViLCBvaywgZXJyfSkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgob2ssIGVycikgPT4ge1xuICAgICAgc3ViLmxpbWl0ID0gMTtcbiAgICAgIHNvY2tldC5saXN0RXZlbnRzKHtcbiAgICAgICAgc3ViLFxuICAgICAgICBvazogKGV2ZW50cykgPT4ge1xuICAgICAgICAgIG9rKGV2ZW50cyA/IGV2ZW50c1swXSA6IG51bGwpO1xuICAgICAgICB9LFxuICAgICAgICBlcnIsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGxpc3RFdmVudHMoe3NvY2tldCwgc3VifSkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgob2ssIGVycikgPT4ge1xuICAgICAgc29ja2V0Lmxpc3RFdmVudHMoe3N1Yiwgb2ssIGVycn0pO1xuICAgIH0pO1xuICB9XG5cbiAgY291bnRFdmVudHMoe3NvY2tldCwgc3VifSkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgob2ssIGVycikgPT4ge1xuICAgICAgc29ja2V0LmNvdW50RXZlbnRzKHtzdWIsIG9rLCBlcnJ9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGZldGNoRXZlbnQoe3NvY2tldCwgbm90ZUlkfSkge1xuICAgIGNvbnN0IHN1YiA9IHtpZHM6IFtub3RlSWRdfTtcbiAgICB0aGlzLmdldEV2ZW50KHtzb2NrZXQsIHN1Yn0pXG4gICAgICAudGhlbigoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50KSB7XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBldmVudCxcbiAgICAgICAgICAgIGtpbmQ6IGV2ZW50LmtpbmQsXG4gICAgICAgICAgICBwcm9maWxlUGtleTogZXZlbnQucHVia2V5LFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMuZmV0Y2hQcm9maWxlKHtzb2NrZXQsIHByb2ZpbGVQa2V5OiBldmVudC5wdWJrZXl9KTtcbiAgICAgICAgICBpZiAoZXZlbnQua2luZCA9PSBLSU5EX05PVEUpIHtcbiAgICAgICAgICAgIHRoaXMuZmV0Y2hNZXRhKHtzb2NrZXQsIG5vdGVJZH0pO1xuICAgICAgICAgICAgdGhpcy5mZXRjaFRhZ3Moe3NvY2tldCwgdGFnczogZXZlbnQudGFnc30pO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2luZCA9PSBLSU5EX1pBUCkge1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIkVycm9yOiBXZSBjYW4ndCBmaW5kIHRoYXQgbm90ZSBvbiB0aGlzIHJlbGF5XCIpO1xuICAgICAgICAgIHRocm93IFwiRXZlbnQgbm90IGZvdW5kXCI7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBFcnJvciBmZXRjaGluZyBub3RlOiAkeyBlcnJvciB9YCk7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgIGV2ZW50OiB7XG4gICAgICAgICAgICBpZDogbm90ZUlkLFxuICAgICAgICAgICAgZXJyb3I6IHRydWUsXG4gICAgICAgICAgICBjb250ZW50OlxuICAgICAgICAgICAgICBcIlNvcnJ5LCB3ZSB3ZXJlbid0IGFibGUgdG8gZmluZCBhbmQgcGFyc2UgdGhpcyBub3RlIG9uIHRoZSBzcGVjaWZpZWQgcmVsYXkuXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIGZldGNoUHJvZmlsZSh7c29ja2V0LCBwcm9maWxlUGtleX0pIHtcbiAgICBjb25zdCBzdWIgPSB7a2luZHM6IFtLSU5EX01FVEFdLCBhdXRob3JzOiBbcHJvZmlsZVBrZXldfTtcbiAgICB0aGlzLmdldEV2ZW50KHtzb2NrZXQsIHN1Yn0pXG4gICAgICAudGhlbigoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50KSB7XG4gICAgICAgICAgbGV0IHBhcnNlZFByb2ZpbGUgPSBKU09OLnBhcnNlKGV2ZW50LmNvbnRlbnQpO1xuICAgICAgICAgIHBhcnNlZFByb2ZpbGUucHVia2V5ID0gcHJvZmlsZVBrZXk7XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7cHJvZmlsZVBrZXksIHByb2ZpbGU6IHBhcnNlZFByb2ZpbGV9KTtcbiAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5raW5kID09IEtJTkRfTUVUQSkge1xuICAgICAgICAgICAgdGhpcy5mZXRjaFByb2ZpbGVNZXRhKHtzb2NrZXQsIHB1YmtleTogcHJvZmlsZVBrZXl9KTtcbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9wdGlvbnM/LnNob3dGb2xsb3dpbmcpIHRoaXMuZmV0Y2hGb2xsb3dzKHtzb2NrZXQsIHB1YmtleTogcHJvZmlsZVBrZXl9KVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBcIkV2ZW50IG5vdCBmb3VuZFwiO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhgRXJyb3IgZmV0Y2hpbmcgcHJvZmlsZTogJHsgZXJyb3IgfWApO1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICBwcm9maWxlOiB7XG4gICAgICAgICAgICBwdWJrZXk6IHByb2ZpbGVQa2V5LFxuICAgICAgICAgICAgZXJyb3I6IHRydWUsXG4gICAgICAgICAgICBhYm91dDpcbiAgICAgICAgICAgICAgXCJTb3JyeSwgd2Ugd2VyZW4ndCBhYmxlIHRvIGZpbmQgdGhpcyBwcm9maWxlIG9uIHRoZSBzcGVjaWZpZWQgcmVsYXkuXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIGZldGNoRm9sbG93cyh7c29ja2V0LCBwdWJrZXl9KSB7XG4gICAgY29uc3Qgc3ViID0ge1xuICAgICAga2luZHM6IFtLSU5EX0NPTlRBQ1RfTElTVF0sXG4gICAgICBhdXRob3JzOiBbcHVia2V5XVxuICAgIH1cbiAgICBsZXQgZm9sbG93ZWRQdWJrZXlzID0gW11cbiAgICB0aGlzLmdldEV2ZW50KHtzb2NrZXQsIHN1Yn0pXG4gICAgICAudGhlbihldmVudCA9PiB7XG4gICAgICAgIGlmIChldmVudCkge1xuICAgICAgICAgIGV2ZW50Py50YWdzLmZvckVhY2godGFnID0+IHtcbiAgICAgICAgICAgIGlmICh0YWdbMF0gPT09IFwicFwiKSB7XG4gICAgICAgICAgICAgIGZvbGxvd2VkUHVia2V5cy5wdXNoKHRhZ1sxXSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICAgIHRoaXMuZmV0Y2hGb2xsb3dQcm9maWxlcyh7c29ja2V0LCBwdWJrZXlzOiBmb2xsb3dlZFB1YmtleXN9KVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IFwiRXZlbnQgbm90IGZvdW5kXCI7XG4gICAgICAgIH1cbiAgICAgIH0pLmNhdGNoKGVycm9yID0+IHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yIGZldGNoaW5nIGZvbGxvd3M6ICR7IGVycm9yIH1gKTtcbiAgICB9KVxuICB9XG5cbiAgZmV0Y2hGb2xsb3dQcm9maWxlcyh7c29ja2V0LCBwdWJrZXlzfSkge1xuICAgIGNvbnN0IHN1YiA9IHtcbiAgICAgIGtpbmRzOiBbS0lORF9NRVRBXSxcbiAgICAgIGF1dGhvcnM6IHB1YmtleXNcbiAgICB9XG4gICAgdGhpcy5saXN0RXZlbnRzKHtzb2NrZXQsIHN1Yn0pLnRoZW4oZXZlbnRzID0+IHtcbiAgICAgIGlmIChldmVudHMpIHRoaXMuc2V0U3RhdGUoe2ZvbGxvd3M6IGV2ZW50c30pXG4gICAgfSkuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgY29uc29sZS5lcnJvcihgRXJyb3IgZmV0Y2hpbmcgZm9sbG93IHByb2ZpbGVzOiAkeyBlcnJvciB9YCk7XG4gICAgfSlcbiAgfVxuXG4gIGZldGNoTmFkZHIoe3NvY2tldCwgZGF0YX0pIHtcbiAgICBjb25zdCBzdWIgPSB7XG4gICAgICBraW5kczogW2RhdGEua2luZF0sXG4gICAgICBcIiNkXCI6IFtkYXRhLmlkZW50aWZpZXJdLFxuICAgICAgYXV0aG9yczogW2RhdGEucHVia2V5XSxcbiAgICB9O1xuICAgIHRoaXMuZ2V0RXZlbnQoe3NvY2tldCwgc3VifSlcbiAgICAgIC50aGVuKChldmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQpIHtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtldmVudCwga2luZDogZXZlbnQua2luZH0pO1xuICAgICAgICAgIHRoaXMuZmV0Y2hQcm9maWxlKHtzb2NrZXQsIHByb2ZpbGVQa2V5OiBldmVudC5wdWJrZXl9KTtcbiAgICAgICAgICBpZiAoZXZlbnQua2luZCA9PSBLSU5EX0NPTlRBQ1RfTElTVCB8fCBldmVudC5raW5kID09IEtJTkRfUFJPRklMRV9MSVNUKSB7XG4gICAgICAgICAgICBjb25zdCBwcm9maWxlc0xpc3RPYmogPSB0aGlzLmdldFByb2ZpbGVzTGlzdE9iaihldmVudC50YWdzKTtcbiAgICAgICAgICAgIHByb2ZpbGVzTGlzdE9iai5jcmVhdGVkX2F0ID0gZXZlbnQuY3JlYXRlZF9hdDtcbiAgICAgICAgICAgIHByb2ZpbGVzTGlzdE9iai5pZCA9IGAkeyBkYXRhLmtpbmQgfTokeyBkYXRhLnB1YmtleSB9OiR7IGRhdGEuaWRlbnRpZmllciB9YDtcbiAgICAgICAgICAgIHByb2ZpbGVzTGlzdE9iai5uYWRkciA9IHRoaXMucHJvcHMuaWQ7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtwcm9maWxlc0xpc3Q6IHByb2ZpbGVzTGlzdE9ian0pO1xuICAgICAgICAgICAgdGhpcy5mZXRjaFRhZ3Moe3NvY2tldCwgdGFnczogZXZlbnQudGFnc30pO1xuICAgICAgICAgICAgdGhpcy5mZXRjaE1ldGEoe3NvY2tldCwgZGF0YX0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBcIkV2ZW50IG5vdCBmb3VuZFwiO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhgRXJyb3IgZmV0Y2hpbmcgZXZlbnQgYnkgbmFkZHI6ICR7IGVycm9yIH1gKTtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgcHJvZmlsZXNMaXN0OiB7XG4gICAgICAgICAgICBlcnJvcjogdHJ1ZSxcbiAgICAgICAgICAgIGNvbnRlbnQ6XG4gICAgICAgICAgICAgIFwiU29ycnksIHdlIHdlcmVuJ3QgYWJsZSB0byBmaW5kIHRoaXMgZXZlbnQgb24gdGhlIHNwZWNpZmllZCByZWxheS5cIixcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgZmV0Y2hUYWdzKHtzb2NrZXQsIHRhZ3N9KSB7XG4gICAgY29uc3Qgc3ViID0ge2tpbmRzOiBbS0lORF9NRVRBXSwgYXV0aG9yczogW119O1xuICAgIGxldCBjb3VudCA9IDA7XG5cbiAgICBmb3IgKGNvbnN0IHQgb2YgdGFncykge1xuICAgICAgaWYgKHN1Yi5hdXRob3JzLmxlbmd0aCA8IDEwMCkge1xuICAgICAgICBpZiAodC5sZW5ndGggPj0gMiAmJiB0WzBdID09IFwicFwiKSB7XG4gICAgICAgICAgc3ViLmF1dGhvcnMucHVzaCh0WzFdKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAodC5sZW5ndGggPj0gMiAmJiB0WzBdID09IFwicFwiKSB7XG4gICAgICAgIGNvdW50Kys7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5zZXRTdGF0ZSgoc3RhdGUpID0+ICh7XG4gICAgICBjb3VudFRhZ2dlZFByb2ZpbGVzOiBzdGF0ZS5jb3VudFRhZ2dlZFByb2ZpbGVzICsgY291bnQsXG4gICAgfSkpO1xuXG4gICAgaWYgKCFzdWIuYXV0aG9ycy5sZW5ndGgpIHJldHVybjtcblxuICAgIHRoaXMubGlzdEV2ZW50cyh7c29ja2V0LCBzdWJ9KVxuICAgICAgLnRoZW4oKGV2ZW50cykgPT4ge1xuICAgICAgICBjb25zdCB0YWdnZWRQcm9maWxlcyA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IGV2ZW50IG9mIGV2ZW50cykge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgcCA9IEpTT04ucGFyc2UoZXZlbnQuY29udGVudCk7XG4gICAgICAgICAgICB0YWdnZWRQcm9maWxlc1tldmVudC5wdWJrZXldID0gcDtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkVycm9yIGJhZCBldmVudCBjb250ZW50XCIsIGUsIGV2ZW50LmNvbnRlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldFN0YXRlKHt0YWdnZWRQcm9maWxlc30pO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coYEVycm9yIGZldGNoaW5nIHRhZ2dlZCBwcm9maWxlczogJHsgZXJyb3IgfWApO1xuICAgICAgfSk7XG4gIH1cblxuICBnZXRQcm9maWxlc0xpc3RPYmoodGFncykge1xuICAgIGxldCBwcm9maWxlc0xpc3QgPSB7fTtcblxuICAgIHRhZ3MuZm9yRWFjaCgodGFnKSA9PiB7XG4gICAgICBpZiAodGFnICYmIHRhZ1swXSkge1xuICAgICAgICBpZiAodGFnWzBdID09PSBcIm5hbWVcIikge1xuICAgICAgICAgIHByb2ZpbGVzTGlzdC5uYW1lID0gdGFnWzFdO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0YWdbMF0gPT09IFwiZFwiKSB7XG4gICAgICAgICAgcHJvZmlsZXNMaXN0LmQgPSB0YWdbMV07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRhZ1swXSA9PT0gXCJkZXNjcmlwdGlvblwiKSB7XG4gICAgICAgICAgcHJvZmlsZXNMaXN0LmRlc2NyaXB0aW9uID0gdGFnWzFdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHByb2ZpbGVzTGlzdDtcbiAgfVxuXG4gIGdldFphcEFtb3VudChlKSB7XG4gICAgdHJ5IHtcbiAgICAgIGZvciAoY29uc3QgdCBvZiBlLnRhZ3MpIHtcbiAgICAgICAgaWYgKHQubGVuZ3RoID49IDIgJiYgdFswXSA9PSBcImJvbHQxMVwiKSB7XG4gICAgICAgICAgY29uc3QgYiA9IGRlY29kZSh0WzFdKTtcbiAgICAgICAgICBmb3IgKGNvbnN0IHMgb2YgYi5zZWN0aW9ucykge1xuICAgICAgICAgICAgaWYgKHMubmFtZSA9PSBcImFtb3VudFwiKSByZXR1cm4gcGFyc2VJbnQocy52YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXIpIHtcbiAgICAgIGNvbnNvbGUubG9nKFwiRXJyb3IgYmFkIHphcFwiLCBlciwgZSk7XG4gICAgfVxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgb25MaXN0TWV0YUV2ZW50cyhldmVudHMpIHtcbiAgICBmb3IgKGxldCBub3RlRXZlbnQgb2YgZXZlbnRzKSB7XG4gICAgICBzd2l0Y2ggKG5vdGVFdmVudFtcImtpbmRcIl0pIHtcbiAgICAgICAgY2FzZSBLSU5EX1JFUE9TVDpcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKChzdGF0ZSkgPT4gKHtcbiAgICAgICAgICAgIHJlcG9zdHNDb3VudDogc3RhdGUucmVwb3N0c0NvdW50ICsgMSxcbiAgICAgICAgICB9KSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgS0lORF9SRUFDVElPTjpcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKChzdGF0ZSkgPT4gKHtcbiAgICAgICAgICAgIGxpa2VzQ291bnQ6IHN0YXRlLmxpa2VzQ291bnQgKyAxLFxuICAgICAgICAgIH0pKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBLSU5EX05PVEU6XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSgoc3RhdGUpID0+ICh7XG4gICAgICAgICAgICByZXBsaWVzQ291bnQ6IHN0YXRlLnJlcGxpZXNDb3VudCArIDEsXG4gICAgICAgICAgfSkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEtJTkRfWkFQOlxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoKHN0YXRlKSA9PiAoe1xuICAgICAgICAgICAgemFwQW1vdW50OiBzdGF0ZS56YXBBbW91bnQgKyB0aGlzLmdldFphcEFtb3VudChub3RlRXZlbnQpLFxuICAgICAgICAgIH0pKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIlVua25vd24gbm90ZSBraW5kXCIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZldGNoTWV0YSh7c29ja2V0LCBub3RlSWQsIGRhdGF9KSB7XG4gICAgaWYodGhpcy5wcm9wcy5vcHRpb25zPy5oaWRlQ291bnRlcnMpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChzb2NrZXQudXJsLmluY2x1ZGVzKFwid3NzOi8vcmVsYXkubm9zdHIuYmFuZFwiKSlcbiAgICAgIHJldHVybiB0aGlzLmZldGNoTWV0YUNvdW50KHtzb2NrZXQsIG5vdGVJZCwgZGF0YX0pO1xuICAgIGVsc2UgcmV0dXJuIHRoaXMuZmV0Y2hNZXRhTGlzdCh7c29ja2V0LCBub3RlSWQsIGRhdGF9KTtcbiAgfVxuXG4gIGZldGNoTWV0YUNvdW50KHtzb2NrZXQsIG5vdGVJZCwgZGF0YX0pIHtcbiAgICBjb25zdCBnZXRTdWIgPSAoa2luZCkgPT4ge1xuICAgICAgaWYgKG5vdGVJZCkge1xuICAgICAgICByZXR1cm4ge2tpbmRzOiBba2luZF0sIFwiI2VcIjogW25vdGVJZF19O1xuICAgICAgfVxuXG4gICAgICBpZiAoZGF0YSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGtpbmRzOiBba2luZF0sXG4gICAgICAgICAgXCIjYVwiOiBbYCR7IGRhdGEua2luZCB9OiR7IGRhdGEucHVia2V5IH06JHsgZGF0YS5pZGVudGlmaWVyIH1gXSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdGhpcy5jb3VudEV2ZW50cyh7c29ja2V0LCBzdWI6IGdldFN1YihLSU5EX05PVEUpfSkudGhlbigoYykgPT4ge1xuICAgICAgdGhpcy5zZXRTdGF0ZSgoc3RhdGUpID0+ICh7XG4gICAgICAgIHJlcGxpZXNDb3VudDogYyA/IGMuY291bnQgOiAwLFxuICAgICAgfSkpO1xuICAgIH0pO1xuICAgIHRoaXMuY291bnRFdmVudHMoe3NvY2tldCwgc3ViOiBnZXRTdWIoS0lORF9SRVBPU1QpfSkudGhlbigoYykgPT4ge1xuICAgICAgdGhpcy5zZXRTdGF0ZSgoc3RhdGUpID0+ICh7XG4gICAgICAgIHJlcG9zdHNDb3VudDogYyA/IGMuY291bnQgOiAwLFxuICAgICAgfSkpO1xuICAgIH0pO1xuICAgIHRoaXMuY291bnRFdmVudHMoe3NvY2tldCwgc3ViOiBnZXRTdWIoS0lORF9SRUFDVElPTil9KS50aGVuKChjKSA9PiB7XG4gICAgICB0aGlzLnNldFN0YXRlKChzdGF0ZSkgPT4gKHtcbiAgICAgICAgbGlrZXNDb3VudDogYyA/IGMuY291bnQgOiAwLFxuICAgICAgfSkpO1xuICAgIH0pO1xuICAgIHRoaXMubGlzdEV2ZW50cyh7c29ja2V0LCBzdWI6IGdldFN1YihLSU5EX1pBUCl9KS50aGVuKChldmVudHMpID0+IHtcbiAgICAgIHRoaXMub25MaXN0TWV0YUV2ZW50cyhldmVudHMpO1xuICAgIH0pO1xuICB9XG5cbiAgZmV0Y2hNZXRhTGlzdCh7c29ja2V0LCBub3RlSWQsIGRhdGF9KSB7XG4gICAgY29uc3Qgc3ViID0gdGhpcy5nZXRTdWJPbkZldGNoTWV0YUxpc3Qoe25vdGVJZCwgZGF0YX0pO1xuXG4gICAgdGhpcy5saXN0RXZlbnRzKHtzb2NrZXQsIHN1Yn0pLnRoZW4oKGV2ZW50cykgPT4ge1xuICAgICAgdGhpcy5vbkxpc3RNZXRhRXZlbnRzKGV2ZW50cyk7XG4gICAgfSk7XG4gIH1cblxuICBnZXRTdWJPbkZldGNoTWV0YUxpc3Qoe25vdGVJZCwgZGF0YX0pIHtcbiAgICBpZiAobm90ZUlkKSB7XG4gICAgICByZXR1cm4ge2tpbmRzOiBbS0lORF9OT1RFLCBLSU5EX1JFUE9TVCwgS0lORF9SRUFDVElPTiwgS0lORF9aQVBdLCBcIiNlXCI6IFtub3RlSWRdfTtcbiAgICB9XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGtpbmRzOiBbS0lORF9OT1RFLCBLSU5EX1JFUE9TVCwgS0lORF9SRUFDVElPTiwgS0lORF9aQVBdLFxuICAgICAgICBcIiNhXCI6IFtgJHsgZGF0YS5raW5kIH06JHsgZGF0YS5wdWJrZXkgfTokeyBkYXRhLmlkZW50aWZpZXIgfWBdLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBvbkxpc3RQcm9maWxlTWV0YUV2ZW50cyhldmVudHMpIHtcbiAgICBmb3IgKGxldCBlIG9mIGV2ZW50cykge1xuICAgICAgc3dpdGNoIChlW1wia2luZFwiXSkge1xuICAgICAgICBjYXNlIEtJTkRfQ09OVEFDVF9MSVNUOlxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoKHN0YXRlKSA9PiAoe1xuICAgICAgICAgICAgZm9sbG93ZXJzQ291bnQ6IHN0YXRlLmZvbGxvd2Vyc0NvdW50ICsgMSxcbiAgICAgICAgICB9KSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgS0lORF9aQVA6XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSgoc3RhdGUpID0+ICh7XG4gICAgICAgICAgICB6YXBBbW91bnQ6IHN0YXRlLnphcEFtb3VudCArIHRoaXMuZ2V0WmFwQW1vdW50KGUpLFxuICAgICAgICAgIH0pKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIlVua25vd24gZXZlbnQga2luZFwiKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmZXRjaFByb2ZpbGVNZXRhQ291bnQoe3NvY2tldCwgcHVia2V5fSkge1xuICAgIGNvbnN0IGdldFN1YiA9IChraW5kKSA9PiB7XG4gICAgICByZXR1cm4ge2tpbmRzOiBba2luZF0sIFwiI3BcIjogW3B1YmtleV19O1xuICAgIH07XG4gICAgdGhpcy5jb3VudEV2ZW50cyh7c29ja2V0LCBzdWI6IGdldFN1YihLSU5EX0NPTlRBQ1RfTElTVCl9KS50aGVuKChjKSA9PiB7XG4gICAgICB0aGlzLnNldFN0YXRlKChzdGF0ZSkgPT4gKHtcbiAgICAgICAgZm9sbG93ZXJzQ291bnQ6IGMgPyBjLmNvdW50IDogMCxcbiAgICAgIH0pKTtcbiAgICB9KTtcbiAgICB0aGlzLmxpc3RFdmVudHMoe3NvY2tldCwgc3ViOiBnZXRTdWIoS0lORF9aQVApfSkudGhlbigoZXZlbnRzKSA9PiB7XG4gICAgICB0aGlzLm9uTGlzdFByb2ZpbGVNZXRhRXZlbnRzKGV2ZW50cyk7XG4gICAgfSk7XG4gIH1cblxuICBmZXRjaFByb2ZpbGVNZXRhTGlzdCh7c29ja2V0LCBwdWJrZXl9KSB7XG4gICAgY29uc3Qgc3ViID0ge2tpbmRzOiBbS0lORF9DT05UQUNUX0xJU1QsIEtJTkRfWkFQXSwgXCIjcFwiOiBbcHVia2V5XX07XG4gICAgdGhpcy5saXN0RXZlbnRzKHtzb2NrZXQsIHN1Yn0pLnRoZW4oKGV2ZW50cykgPT4ge1xuICAgICAgdGhpcy5vbkxpc3RQcm9maWxlTWV0YUV2ZW50cyhldmVudHMpO1xuICAgIH0pO1xuICB9XG5cbiAgZmV0Y2hQcm9maWxlTWV0YSh7c29ja2V0LCBwdWJrZXl9KSB7XG4gICAgY29uc29sZS5sb2codGhpcy5wcm9wcy5vcHRpb25zPy5oaWRlQ291bnRlcnMpXG4gICAgaWYodGhpcy5wcm9wcy5vcHRpb25zPy5oaWRlQ291bnRlcnMpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChzb2NrZXQudXJsLmluY2x1ZGVzKFwid3NzOi8vcmVsYXkubm9zdHIuYmFuZFwiKSlcbiAgICAgIHJldHVybiB0aGlzLmZldGNoUHJvZmlsZU1ldGFDb3VudCh7c29ja2V0LCBwdWJrZXl9KTtcbiAgICBlbHNlIHJldHVybiB0aGlzLmZldGNoUHJvZmlsZU1ldGFMaXN0KHtzb2NrZXQsIHB1YmtleX0pO1xuICB9XG5cblxuICByZW5kZXIoKSB7XG4gICAgc3dpdGNoICh0aGlzLnN0YXRlLmtpbmQpIHtcbiAgICAgIGNhc2UgS0lORF9NRVRBOlxuICAgICAgICByZXR1cm4gPFByb2ZpbGUgcHJvcHM9eyB0aGlzLnByb3BzIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlPXsgdGhpcy5zdGF0ZSB9Lz5cbiAgICAgIGNhc2UgS0lORF9DT05UQUNUX0xJU1Q6XG4gICAgICBjYXNlIEtJTkRfUFJPRklMRV9MSVNUOlxuICAgICAgICByZXR1cm4gPFByb2ZpbGVzTGlzdCBwcm9wcz17IHRoaXMucHJvcHMgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZT17IHRoaXMuc3RhdGUgfS8+XG4gICAgICBjYXNlIEtJTkRfWkFQOlxuICAgICAgICByZXR1cm4gPFphcCBzdGF0ZT17IHRoaXMuc3RhdGUgfS8+XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gPE5vdGUgcHJvcHM9eyB0aGlzLnByb3BzIH1cbiAgICAgICAgICAgICAgICAgICAgIHN0YXRlPXsgdGhpcy5zdGF0ZSB9Lz5cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTm9zdHJFbWJlZDtcbiIsImltcG9ydCB7IGgsIHJlbmRlciB9IGZyb20gJ3ByZWFjdCc7XG5pbXBvcnQgTm9zdHJFbWJlZCBmcm9tICcuL21haW4vTm9zdHJFbWJlZC5qc3gnO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5pdChpZCwgd3JhcHBlciwgcmVsYXksIG9wdGlvbnMpIHtcblxuICBpZiAoIXJlbGF5KVxuICAgIHJlbGF5ID0gJ3dzczovL3JlbGF5Lm5vc3RyLmJhbmQvJztcblxuICBjb25zdCByZW5kZXJFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih3cmFwcGVyKVxuICAgID8gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih3cmFwcGVyKVxuICAgIDogZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYm9keScpO1xuXG4gIHJlbmRlcihoKE5vc3RyRW1iZWQsIHsgaWQsIHJlbGF5LCBvcHRpb25zIH0pLCByZW5kZXJFbGVtZW50KTtcbn1cbiJdLCJuYW1lcyI6WyJyb290IiwiZmFjdG9yeSIsImV4cG9ydHMiLCJtb2R1bGUiLCJkZWZpbmUiLCJhbWQiLCJ0aGlzIiwibGVhZlByb3RvdHlwZXMiLCJnZXRQcm90byIsImFzc2VydE51bWJlciIsIm4iLCJOdW1iZXIiLCJpc1NhZmVJbnRlZ2VyIiwiRXJyb3IiLCJjaGFpbiIsImFyZ3MiLCJ3cmFwIiwiYSIsImIiLCJjIiwiZW5jb2RlIiwiQXJyYXkiLCJmcm9tIiwicmV2ZXJzZSIsInJlZHVjZSIsImFjYyIsImkiLCJ1bmRlZmluZWQiLCJkZWNvZGUiLCJhbHBoYWJldCIsImRpZ2l0cyIsImlzQXJyYXkiLCJsZW5ndGgiLCJtYXAiLCJpbnB1dCIsImxldHRlciIsImluZGV4IiwiaW5kZXhPZiIsImpvaW4iLCJzZXBhcmF0b3IiLCJ0byIsInNwbGl0IiwicGFkZGluZyIsImJpdHMiLCJjaHIiLCJkYXRhIiwicHVzaCIsImVuZCIsInNsaWNlIiwibm9ybWFsaXplIiwiZm4iLCJjb252ZXJ0UmFkaXgiLCJwb3MiLCJyZXMiLCJmb3JFYWNoIiwiZCIsImNhcnJ5IiwiZG9uZSIsImRpZ2l0IiwiZGlnaXRCYXNlIiwiTWF0aCIsImZsb29yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsImJ5dGVzIiwic3RyaW5nVG9CeXRlcyIsInN0ciIsImJ5dGVzVG9TdHJpbmciLCJoZXgiLCJ1dGY4IiwiYmVjaDMybSIsImJlY2gzMiIsImJhc2U1OGNoZWNrIiwiYmFzZTU4eG1yIiwiYmFzZTU4eHJwIiwiYmFzZTU4ZmxpY2tyIiwiYmFzZTU4IiwiYmFzZTY0dXJsIiwiYmFzZTY0IiwiYmFzZTMyY3JvY2tmb3JkIiwiYmFzZTMyaGV4IiwiYmFzZTMyIiwiYmFzZTE2IiwidXRpbHMiLCJnY2QiLCJyYWRpeDJjYXJyeSIsImNvbnZlcnRSYWRpeDIiLCJtYXNrIiwicmFkaXgiLCJudW0iLCJVaW50OEFycmF5IiwicmFkaXgyIiwicmV2UGFkZGluZyIsInVuc2FmZVdyYXBwZXIiLCJhcHBseSIsImUiLCJjaGVja3N1bSIsImxlbiIsInNldCIsInBheWxvYWQiLCJuZXdDaGVja3N1bSIsIm9sZENoZWNrc3VtIiwicyIsInRvVXBwZXJDYXNlIiwicmVwbGFjZSIsImdlbkJhc2U1OCIsImFiYyIsIlhNUl9CTE9DS19MRU4iLCJibG9jayIsInN1YmFycmF5IiwicGFkU3RhcnQiLCJibG9ja0xlbiIsImoiLCJjb25jYXQiLCJzaGEyNTYiLCJCRUNIX0FMUEhBQkVUIiwiUE9MWU1PRF9HRU5FUkFUT1JTIiwiYmVjaDMyUG9seW1vZCIsInByZSIsImNoayIsImJlY2hDaGVja3N1bSIsInByZWZpeCIsIndvcmRzIiwiZW5jb2RpbmdDb25zdCIsImNoYXJDb2RlQXQiLCJ2IiwiZ2VuQmVjaDMyIiwiZW5jb2RpbmciLCJFTkNPRElOR19DT05TVCIsIl93b3JkcyIsImZyb21Xb3JkcyIsInRvV29yZHMiLCJmcm9tV29yZHNVbnNhZmUiLCJsaW1pdCIsIlR5cGVFcnJvciIsImxvd2VyZWQiLCJ0b0xvd2VyQ2FzZSIsInNlcEluZGV4IiwibGFzdEluZGV4T2YiLCJzdW0iLCJlbmRzV2l0aCIsImFjdHVhbExlbmd0aCIsImRlY29kZVRvQnl0ZXMiLCJkZWNvZGVVbnNhZmUiLCJUZXh0RGVjb2RlciIsIlRleHRFbmNvZGVyIiwiQ09ERVJTIiwiY29kZXJUeXBlRXJyb3IiLCJrZXlzIiwidHlwZSIsImhhc093blByb3BlcnR5IiwiQUxQSEFCRVQiLCJBTFBIQUJFVF9NQVAiLCJ6IiwieCIsImNoYXJBdCIsInBvbHltb2RTdGVwIiwicHJlZml4Q2hrIiwiY29udmVydCIsImluQml0cyIsIm91dEJpdHMiLCJwYWQiLCJtYXhWIiwicmVzdWx0IiwiZ2V0TGlicmFyeUZyb21FbmNvZGluZyIsIl9fZGVjb2RlIiwiTElNSVQiLCJ1cHBlcmVkIiwid29yZENoYXJzIiwiX19fQ1NTX0xPQURFUl9FWFBPUlRfX18iLCJpZCIsImNzc1dpdGhNYXBwaW5nVG9TdHJpbmciLCJsaXN0IiwidG9TdHJpbmciLCJpdGVtIiwiY29udGVudCIsIm5lZWRMYXllciIsIm1vZHVsZXMiLCJtZWRpYSIsImRlZHVwZSIsInN1cHBvcnRzIiwibGF5ZXIiLCJhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzIiwiayIsIl9rIiwiY3NzTWFwcGluZyIsImJ0b2EiLCJ1bmVzY2FwZSIsImVuY29kZVVSSUNvbXBvbmVudCIsIkpTT04iLCJzdHJpbmdpZnkiLCJzb3VyY2VNYXBwaW5nIiwiREVGQVVMVE5FVFdPUksiLCJwdWJLZXlIYXNoIiwic2NyaXB0SGFzaCIsInZhbGlkV2l0bmVzc1ZlcnNpb25zIiwiVEVTVE5FVFdPUksiLCJSRUdURVNUTkVUV09SSyIsIlNJTU5FVFdPUksiLCJGRUFUVVJFQklUX09SREVSIiwiRElWSVNPUlMiLCJtIiwiQmlnSW50IiwidSIsInAiLCJNQVhfTUlMTElTQVRTIiwiTUlMTElTQVRTX1BFUl9CVEMiLCJUQUdDT0RFUyIsInBheW1lbnRfaGFzaCIsInBheW1lbnRfc2VjcmV0IiwiZGVzY3JpcHRpb24iLCJwYXllZSIsImRlc2NyaXB0aW9uX2hhc2giLCJleHBpcnkiLCJtaW5fZmluYWxfY2x0dl9leHBpcnkiLCJmYWxsYmFja19hZGRyZXNzIiwicm91dGVfaGludCIsImZlYXR1cmVfYml0cyIsIm1ldGFkYXRhIiwiVEFHTkFNRVMiLCJjdXJyZW50TmFtZSIsImN1cnJlbnRDb2RlIiwiVEFHUEFSU0VSUyIsIndvcmRzVG9JbnRCRSIsInJvdXRlcyIsInB1YmtleSIsInNob3J0Q2hhbm5lbElkIiwiZmVlQmFzZU1TYXRzIiwiZmVlUHJvcG9ydGlvbmFsTWlsbGlvbnRocyIsImNsdHZFeHBpcnlEZWx0YSIsInJvdXRlc0J1ZmZlciIsInBhcnNlSW50Iiwic2hvcnRfY2hhbm5lbF9pZCIsImZlZV9iYXNlX21zYXQiLCJmZWVfcHJvcG9ydGlvbmFsX21pbGxpb250aHMiLCJjbHR2X2V4cGlyeV9kZWx0YSIsImJvb2xzIiwid29yZCIsImZpbmFsQXJyIiwiaXRlbUFyciIsImZlYXR1cmVCaXRzIiwiZmVhdHVyZU5hbWUiLCJzdGF0dXMiLCJleHRyYUJpdHMiLCJleHRyYV9iaXRzIiwic3RhcnRfYml0IiwiaGFzX3JlcXVpcmVkIiwiYml0IiwiZ2V0VW5rbm93blBhcnNlciIsInRhZ0NvZGUiLCJNQVhfU0FGRV9JTlRFR0VSIiwidG90YWwiLCJwb3ciLCJocnBUb01pbGxpc2F0IiwiaHJwU3RyaW5nIiwib3V0cHV0U3RyaW5nIiwiZGl2aXNvciIsIm1hdGNoIiwidmFsdWVCTiIsIm1pbGxpc2F0b3NoaXNCTiIsInBheW1lbnRSZXF1ZXN0IiwibmV0d29yayIsInNlY3Rpb25zIiwiZGVjb2RlZCIsImxldHRlcnMiLCJzaWdXb3JkcyIsInByZWZpeE1hdGNoZXMiLCJuYW1lIiwiYmVjaDMyUHJlZml4IiwiY29pbk5ldHdvcmsiLCJtaWxsaXNhdG9zaGlzIiwidGltZXN0YW1wIiwidGFnTmFtZSIsInBhcnNlciIsInRhZ0xlbmd0aCIsInRhZ1dvcmRzIiwidGFnIiwiZXhwIiwiZmluZCIsImdldFZhbHVlIiwicm91dGVfaGludHMiLCJmaWx0ZXIiLCJnZXQiLCJzZWN0aW9uIiwic3R5bGVzSW5ET00iLCJnZXRJbmRleEJ5SWRlbnRpZmllciIsImlkZW50aWZpZXIiLCJtb2R1bGVzVG9Eb20iLCJvcHRpb25zIiwiaWRDb3VudE1hcCIsImlkZW50aWZpZXJzIiwiYmFzZSIsImNvdW50IiwiaW5kZXhCeUlkZW50aWZpZXIiLCJvYmoiLCJjc3MiLCJzb3VyY2VNYXAiLCJyZWZlcmVuY2VzIiwidXBkYXRlciIsImFkZEVsZW1lbnRTdHlsZSIsImJ5SW5kZXgiLCJzcGxpY2UiLCJhcGkiLCJkb21BUEkiLCJ1cGRhdGUiLCJuZXdPYmoiLCJyZW1vdmUiLCJsYXN0SWRlbnRpZmllcnMiLCJuZXdMaXN0IiwibmV3TGFzdElkZW50aWZpZXJzIiwiX2kiLCJfaW5kZXgiLCJtZW1vIiwiaW5zZXJ0Iiwic3R5bGUiLCJ0YXJnZXQiLCJzdHlsZVRhcmdldCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsIndpbmRvdyIsIkhUTUxJRnJhbWVFbGVtZW50IiwiY29udGVudERvY3VtZW50IiwiaGVhZCIsImdldFRhcmdldCIsImFwcGVuZENoaWxkIiwiZWxlbWVudCIsImNyZWF0ZUVsZW1lbnQiLCJzZXRBdHRyaWJ1dGVzIiwiYXR0cmlidXRlcyIsInN0eWxlRWxlbWVudCIsIm5vbmNlIiwic2V0QXR0cmlidXRlIiwiaW5zZXJ0U3R5bGVFbGVtZW50Iiwic3R5bGVUYWdUcmFuc2Zvcm0iLCJwYXJlbnROb2RlIiwicmVtb3ZlQ2hpbGQiLCJyZW1vdmVTdHlsZUVsZW1lbnQiLCJzdHlsZVNoZWV0IiwiY3NzVGV4dCIsImZpcnN0Q2hpbGQiLCJjcmVhdGVUZXh0Tm9kZSIsIl9fd2VicGFja19tb2R1bGVfY2FjaGVfXyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJtb2R1bGVJZCIsImNhY2hlZE1vZHVsZSIsIl9fd2VicGFja19tb2R1bGVzX18iLCJnZXR0ZXIiLCJfX2VzTW9kdWxlIiwiZ2V0UHJvdG90eXBlT2YiLCJ0IiwibW9kZSIsInRoZW4iLCJucyIsImNyZWF0ZSIsInIiLCJkZWYiLCJjdXJyZW50IiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsImtleSIsImRlZmluaXRpb24iLCJvIiwiZW51bWVyYWJsZSIsInByb3AiLCJwcm90b3R5cGUiLCJjYWxsIiwiU3ltYm9sIiwidG9TdHJpbmdUYWciLCJuYyIsImYiLCJoIiwibCIsInkiLCJhcmd1bWVudHMiLCJjaGlsZHJlbiIsImRlZmF1bHRQcm9wcyIsInByb3BzIiwicmVmIiwiX19rIiwiX18iLCJfX2IiLCJfX2UiLCJfX2QiLCJfX2MiLCJfX2giLCJjb25zdHJ1Y3RvciIsIl9fdiIsInZub2RlIiwiY29udGV4dCIsImciLCJ3IiwiX19yIiwiZGVib3VuY2VSZW5kZXJpbmciLCJzb3J0Iiwic2hpZnQiLCJfX1AiLCJMIiwiX19uIiwib3duZXJTVkdFbGVtZW50IiwiTSIsIlAiLCJfIiwiUyIsIkgiLCJJIiwiVCIsIkEiLCJPIiwibmV4dFNpYmxpbmciLCIkIiwiQyIsInEiLCJpbnNlcnRCZWZvcmUiLCJzZXRQcm9wZXJ0eSIsInRlc3QiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInJlbW92ZUF0dHJpYnV0ZSIsImV2ZW50IiwiY29udGV4dFR5cGUiLCJfX0UiLCJyZW5kZXIiLCJCIiwic3ViIiwic3RhdGUiLCJfc2IiLCJfX3MiLCJnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMiLCJjb21wb25lbnRXaWxsTW91bnQiLCJjb21wb25lbnREaWRNb3VudCIsImNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMiLCJzaG91bGRDb21wb25lbnRVcGRhdGUiLCJjb21wb25lbnRXaWxsVXBkYXRlIiwiY29tcG9uZW50RGlkVXBkYXRlIiwiZ2V0Q2hpbGRDb250ZXh0IiwiZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUiLCJOIiwiZGlmZmVkIiwic29tZSIsImxvY2FsTmFtZSIsIm5vZGVUeXBlIiwiY3JlYXRlRWxlbWVudE5TIiwiaXMiLCJjaGlsZE5vZGVzIiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJfX2h0bWwiLCJpbm5lckhUTUwiLCJjaGVja2VkIiwidW5tb3VudCIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwiRCIsImdldERlcml2ZWRTdGF0ZUZyb21FcnJvciIsInNldFN0YXRlIiwiY29tcG9uZW50RGlkQ2F0Y2giLCJmb3JjZVVwZGF0ZSIsIlByb21pc2UiLCJiaW5kIiwicmVzb2x2ZSIsInNldFRpbWVvdXQiLCJfMG4iLCJfMW4iLCJfMm4iLCJfM24iLCJfOG4iLCJDVVJWRSIsImZyZWV6ZSIsIkd4IiwiR3kiLCJiZXRhIiwiZGl2TmVhcmVzdCIsImVuZG8iLCJzcGxpdFNjYWxhciIsImExIiwiYjEiLCJhMiIsImIyIiwiUE9XXzJfMTI4IiwiYzEiLCJjMiIsImsxIiwibW9kIiwiazIiLCJrMW5lZyIsImsybmVnIiwiZmllbGRMZW4iLCJncm91cExlbiIsImNvbXByZXNzZWRMZW4iLCJ1bmNvbXByZXNzZWRMZW4iLCJ3ZWllcnN0cmFzcyIsIngyIiwieDMiLCJVU0VfRU5ET01PUlBISVNNIiwiU2hhRXJyb3IiLCJtZXNzYWdlIiwic3VwZXIiLCJhc3NlcnRKYWNQb2ludCIsIm90aGVyIiwiSmFjb2JpYW5Qb2ludCIsInN0YXRpYyIsIlBvaW50IiwiZXF1YWxzIiwiWkVSTyIsInBvaW50cyIsInRvSW52IiwibnVtcyIsInNjcmF0Y2giLCJsYXN0TXVsdGlwbGllZCIsImludmVydGVkIiwiaW52ZXJ0IiwicmVkdWNlUmlnaHQiLCJpbnZlcnRCYXRjaCIsInRvQWZmaW5lIiwidG9BZmZpbmVCYXRjaCIsImZyb21BZmZpbmUiLCJYMSIsIlkxIiwiWjEiLCJYMiIsIlkyIiwiWjIiLCJaMVoxIiwiWjJaMiIsIlUxIiwiVTIiLCJTMSIsIlMyIiwibmVnYXRlIiwiZG91YmxlIiwieDFiIiwiRSIsIkYiLCJYMyIsIlkzIiwiWjMiLCJhZGQiLCJISCIsIkhISCIsIlYiLCJzdWJ0cmFjdCIsIm11bHRpcGx5VW5zYWZlIiwic2NhbGFyIiwiUDAiLCJub3JtYWxpemVTY2FsYXIiLCJrMXAiLCJrMnAiLCJwcmVjb21wdXRlV2luZG93IiwiVyIsIndpbmRvd3MiLCJ3TkFGIiwiYWZmaW5lUG9pbnQiLCJCQVNFIiwiX1dJTkRPV19TSVpFIiwicHJlY29tcHV0ZXMiLCJwb2ludFByZWNvbXB1dGVzIiwibm9ybWFsaXplWiIsIndpbmRvd1NpemUiLCJtYXhOdW1iZXIiLCJzaGlmdEJ5Iiwib2Zmc2V0Iiwid2JpdHMiLCJvZmZzZXQxIiwib2Zmc2V0MiIsImFicyIsImNvbmQxIiwiY29uZDIiLCJjb25zdFRpbWVOZWdhdGUiLCJtdWx0aXBseSIsInBvaW50IiwiZmFrZSIsImYxcCIsImYycCIsImludloiLCJpczAiLCJpejEiLCJpejIiLCJpejMiLCJheCIsImF5IiwienoiLCJjb25kaXRpb24iLCJuZWciLCJXZWFrTWFwIiwiX3NldFdpbmRvd1NpemUiLCJkZWxldGUiLCJoYXNFdmVuWSIsImlzU2hvcnQiLCJieXRlc1RvTnVtYmVyIiwiaXNWYWxpZEZpZWxkRWxlbWVudCIsIl82biIsIl8xMW4iLCJfMjJuIiwiXzIzbiIsIl80NG4iLCJfODhuIiwiYjMiLCJiNiIsInBvdzIiLCJiOSIsImIxMSIsImIyMiIsImI0NCIsImI4OCIsImIxNzYiLCJiMjIwIiwiYjIyMyIsInQxIiwidDIiLCJydCIsInhjIiwic3FydE1vZCIsImlzWU9kZCIsImFzc2VydFZhbGlkaXR5IiwiZW5zdXJlQnl0ZXMiLCJoZWFkZXIiLCJmcm9tQ29tcHJlc3NlZEhleCIsImZyb21VbmNvbXByZXNzZWRIZXgiLCJwcml2YXRlS2V5Iiwibm9ybWFsaXplUHJpdmF0ZUtleSIsIm1zZ0hhc2giLCJzaWduYXR1cmUiLCJyZWNvdmVyeSIsIm5vcm1hbGl6ZVNpZ25hdHVyZSIsImluY2x1ZGVzIiwidHJ1bmNhdGVIYXNoIiwicmFkaiIsInJpbnYiLCJ1MSIsInUyIiwiUiIsImZyb21IZXgiLCJudW1UbzMyYlN0ciIsIlEiLCJtdWx0aXBseUFuZEFkZFVuc2FmZSIsInRvUmF3Qnl0ZXMiLCJpc0NvbXByZXNzZWQiLCJoZXhUb0J5dGVzIiwidG9IZXgiLCJ0b0hleFgiLCJ0b1Jhd1giLCJtc2ciLCJsZWZ0IiwiYVAiLCJiUSIsInNsaWNlREVSIiwicGFyc2VERVJJbnQiLCJieXRlc1RvSGV4IiwiU2lnbmF0dXJlIiwiYXJyIiwiaGV4VG9OdW1iZXIiLCJzQnl0ZXMiLCJyQnl0ZXNMZWZ0IiwicGFyc2VERVJTaWduYXR1cmUiLCJmcm9tREVSIiwiaXNXaXRoaW5DdXJ2ZU9yZGVyIiwiaGFzSGlnaFMiLCJIQUxGIiwibm9ybWFsaXplUyIsInRvREVSUmF3Qnl0ZXMiLCJ0b0RFUkhleCIsInNIZXgiLCJudW1iZXJUb0hleFVucGFkZGVkIiwickhleCIsInNIZXhMIiwickhleEwiLCJzTGVuIiwickxlbiIsInRvQ29tcGFjdFJhd0J5dGVzIiwidG9Db21wYWN0SGV4IiwiY29uY2F0Qnl0ZXMiLCJhcnJheXMiLCJldmVyeSIsImhleGVzIiwidWludDhhIiwiUE9XXzJfMjU2IiwibnVtVG8zMmIiLCJhcnJheSIsImhleEJ5dGUiLCJieXRlIiwiaXNOYU4iLCJwb3dlciIsIm51bWJlciIsIm1vZHVsbyIsImhhc2giLCJ0cnVuY2F0ZU9ubHkiLCJkZWx0YSIsImJpdHMyaW50XzIiLCJfc2hhMjU2U3luYyIsIl9obWFjU2hhMjU2U3luYyIsIm5vcm1hbGl6ZVB1YmxpY0tleSIsInB1YmxpY0tleSIsImVycm9yIiwiZnJvbUNvbXBhY3QiLCJzY2hub3JyQ2hhbGxlbmdlRmluYWxpemUiLCJjaCIsIlNjaG5vcnJTaWduYXR1cmUiLCJJbnRlcm5hbFNjaG5vcnJTaWduYXR1cmUiLCJhdXhSYW5kIiwicmFuZG9tQnl0ZXMiLCJnZXRTY2FsYXIiLCJweCIsInJhbmQiLCJwcml2IiwiZnJvbVByaXZhdGVLZXkiLCJpbml0Tm9uY2UiLCJ0MGgiLCJmaW5hbGl6ZU5vbmNlIiwiazBoIiwiazAiLCJyeCIsImZpbmFsaXplU2lnIiwiYXN5bmMiLCJ0YWdnZWRIYXNoIiwiVEFHUyIsImF1eCIsImNoYWxsZW5nZSIsInNpZyIsInNjaG5vcnJWZXJpZnkiLCJjYWxjU3luYyIsInRhZ2dlZEhhc2hTeW5jIiwic2Nobm9yclZlcmlmeVN5bmMiLCJpbml0U2Nobm9yclZlcmlmeSIsInJhdyIsImZpbmFsaXplU2Nobm9yclZlcmlmeSIsInNjaG5vcnIiLCJnZXRQdWJsaWNLZXkiLCJzaWduIiwicHJpdktleSIsImNhbGMiLCJ2ZXJpZnkiLCJzaWduU3luYyIsInZlcmlmeVN5bmMiLCJub2RlIiwid2ViIiwic2VsZiIsImNyeXB0byIsIlRBR0dFRF9IQVNIX1BSRUZJWEVTIiwiaXNWYWxpZFByaXZhdGVLZXkiLCJfYmlnaW50VG8zMkJ5dGVzIiwiX25vcm1hbGl6ZVByaXZhdGVLZXkiLCJoYXNoVG9Qcml2YXRlS2V5IiwibWluTGVuIiwiYnl0ZXNMZW5ndGgiLCJnZXRSYW5kb21WYWx1ZXMiLCJyYW5kb21Qcml2YXRlS2V5IiwicHJlY29tcHV0ZSIsImNhY2hlZCIsIm1lc3NhZ2VzIiwiYnVmZmVyIiwic3VidGxlIiwiZGlnZXN0IiwiY3JlYXRlSGFzaCIsImhtYWNTaGEyNTYiLCJja2V5IiwiaW1wb3J0S2V5IiwiY3JlYXRlSG1hYyIsInNoYTI1NlN5bmMiLCJobWFjU2hhMjU2U3luYyIsInRhZ1AiLCJ0YWdIIiwiX0phY29iaWFuUG9pbnQiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiY29uZmlndXJhYmxlIiwidmFsIiwidXRmOERlY29kZXIiLCJzdWJzdHIiLCJnZXROb3RlSWQiLCJoZXhJZCIsImJiIiwiZ2V0TnB1YiIsImhleFB1YmtleSIsInBhcnNlTnB1YiIsIm5wdWIiLCJmb3JtYXROcHViIiwiZm9ybWF0WmFwQW1vdW50Iiwicm91bmQiLCJwYXJzZVRMViIsInJlc3QiLCJfX0giLCJfX1YiLCJfX04iLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJjbGVhclRpbWVvdXQiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsIl9fc291cmNlIiwiX19zZWxmIiwiX3JlZiIsImFkZGl0aW9uYWxDbGFzc2VzIiwiY2xhc3NlcyIsIl9qc3giLCJ4bWxucyIsImZpbGwiLCJ2aWV3Qm94Iiwic3Ryb2tlIiwid2lkdGgiLCJoZWlnaHQiLCJjbGFzcyIsImxvY2FscyIsImljb25DbGFzc2VzIiwiZGlzcGxheVRleHQiLCJjb3B5VGV4dCIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInVzZVN0YXRlIiwiYnRuQ2xhc3NlcyIsInNldEJ0bkNsYXNzZXMiLCJfanN4cyIsIm9uQ2xpY2siLCJuYXZpZ2F0b3IiLCJjbGlwYm9hcmQiLCJ3cml0ZVRleHQiLCJ0cmltIiwiZXJyIiwiY29uc29sZSIsImNvcHlUb0NsaXBib2FyZCIsIkNvcHlJY29uIiwidGh1bWJuYWlsIiwiZnVsbEltYWdlIiwiX3JlZiRpc1Byb2ZpbGVJbWFnZSIsImlzUHJvZmlsZUltYWdlIiwiaXNGdWxsSW1hZ2VMb2FkZWQiLCJzZXRJc0Z1bGxJbWFnZUxvYWRlZCIsIl91c2VTdGF0ZTQiLCJpbWFnZVNyYyIsInNldEltYWdlU3JjIiwiY2xhc3NOYW1lIiwic3JjIiwib25FcnJvciIsImNhY2hlZFByb2ZpbGVQaWN0dXJlIiwiZW5jb2RlZFByb2ZpbGVQa2V5IiwidHJ1bmNhdGVkUHJvZmlsZVBrZXkiLCJwcm9maWxlUGtleSIsInByb2ZpbGUiLCJwaWN0dXJlIiwiUHJvZmlsZUltYWdlIiwicmVsIiwiaHJlZiIsImRpc3BsYXlfbmFtZSIsIktleUljb24iLCJDb3B5VGV4dCIsImhpZGVOb3N0cmljaCIsIk5vc3RyaWNoSWNvbiIsImVuY29kZWRJZCIsImZvcm1hdHRlZERhdGUiLCJmb3JtYXR0ZWRaYXBBbW91bnQiLCJub3RlIiwicHJvZmlsZXNMaXN0IiwicmVwbGllc0NvdW50IiwicmVwb3N0c0NvdW50IiwibGlrZXNDb3VudCIsInphcEFtb3VudCIsImNyZWF0ZWRBdCIsImNyZWF0ZWRfYXQiLCJEYXRlIiwidG9Mb2NhbGVUaW1lU3RyaW5nIiwiaG91cjEyIiwiaG91ciIsIm1pbnV0ZSIsInllYXIiLCJtb250aCIsImRheSIsImhpZGVDb3VudGVycyIsIl9GcmFnbWVudCIsInNob3daYXBzIiwidGl0bGUiLCJCb2x0SWNvbiIsIlJlcGx5SWNvbiIsIlJlcG9zdEljb24iLCJIZWFydEljb24iLCJuYWRkciIsIkxpbmtJY29uIiwic2hvd0NvcHlBZGRyIiwiSU1BR0VfRklMRV9FWFRFTlNJT05TIiwiVklERU9fRklMRV9FWFRFTlNJT05TIiwiWU9VVFVCRV9LRVlfV09SRFMiLCJLSU5EX1pBUCIsIlByb2ZpbGVzTGlzdCIsIlByb2ZpbGUiLCJraW5kIiwidGFnZ2VkUHJvZmlsZXMiLCJjb3VudFRhZ2dlZFByb2ZpbGVzIiwiZ2V0RGlmZiIsIk1ldGEiLCJkaWZmIiwiZm9sbG93ZXJzQ291bnQiLCJGb2xsb3dlcnNJY29uIiwiX2ZpbHRlclByb2ZpbGVzJCIsIl9maWx0ZXJQcm9maWxlcyQyIiwiX2ZpbHRlclByb2ZpbGVzJDMiLCJfZmlsdGVyUHJvZmlsZXMkNCIsIl9maWx0ZXJQcm9maWxlcyQ1IiwiX2ZpbHRlclByb2ZpbGVzJDYiLCJfcmVmJGZvbGxvd3MiLCJmb2xsb3dzIiwic2hvd0ZvbGxvd2luZyIsInBhcnNlZEZvbGxvd3MiLCJmb2xsb3ciLCJwYXJzZSIsIm5wdWJMaW5rIiwiY2FjaGVkSW1hZ2UiLCJmaWx0ZXJQcm9maWxlcyIsIl9zdGF0ZSRwcm9maWxlIiwiX3N0YXRlJHByb2ZpbGUyIiwiX3N0YXRlJHByb2ZpbGUzIiwiX3N0YXRlJHByb2ZpbGU0IiwiUHJvZmlsZUNvbXBvbmVudCIsIndlYnNpdGUiLCJhYm91dCIsIkJvb2xlYW4iLCJQcm9maWxlRm9sbG93cyIsIlByb2ZpbGVNZXRhIiwiWmFwIiwiZm9ybWF0Q29udGVudCIsImZvcm1hdEV2ZW50TGluayIsIm5vdGVPck5hZGRyIiwibm90ZUlkIiwibGFiZWwiLCJmb3JtYXRQcm9maWxlTGluayIsInRwIiwiZnJhZ21lbnRzIiwibWF0Y2hUYWciLCJpZHgiLCJ0YWdzIiwibWF0Y2hOb3N0ciIsInN0YXJ0c1dpdGgiLCJfcGFyc2VOcHJvZmlsZSIsIm5wcm9maWxlIiwiX3RsdiQiLCJ0bHYiLCJyZWxheXMiLCJwYXJzZU5wcm9maWxlIiwibGluayIsInNwbGl0TGluayIsImNoYW5nZUxpbmtSZWdpc3RlciIsImlzQW55RW5kV2l0aCIsImlzVmlkZW8iLCJjb250cm9scyIsImlzSW1hZ2UiLCJhbHQiLCJrZXlXb3JkcyIsImtleVdvcmQiLCJpc0FueUNvbnRhaW5zIiwiaXNZb3V0dWJlIiwiZm9ybWF0TGluayIsImV4dGVuc2lvbnMiLCJleHRlbnNpb24iLCJlbGVtZW50TnVtYmVyIiwibGlua0FycmF5IiwiTm90ZSIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJPcCIsImhhc093biIsImRlc2MiLCIkU3ltYm9sIiwiaXRlcmF0b3JTeW1ib2wiLCJpdGVyYXRvciIsImFzeW5jSXRlcmF0b3JTeW1ib2wiLCJhc3luY0l0ZXJhdG9yIiwidG9TdHJpbmdUYWdTeW1ib2wiLCJ3cml0YWJsZSIsImlubmVyRm4iLCJvdXRlckZuIiwidHJ5TG9jc0xpc3QiLCJwcm90b0dlbmVyYXRvciIsIkdlbmVyYXRvciIsImdlbmVyYXRvciIsIkNvbnRleHQiLCJtYWtlSW52b2tlTWV0aG9kIiwidHJ5Q2F0Y2giLCJhcmciLCJDb250aW51ZVNlbnRpbmVsIiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSIsIkl0ZXJhdG9yUHJvdG90eXBlIiwiTmF0aXZlSXRlcmF0b3JQcm90b3R5cGUiLCJ2YWx1ZXMiLCJHcCIsImRlZmluZUl0ZXJhdG9yTWV0aG9kcyIsIm1ldGhvZCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiUHJvbWlzZUltcGwiLCJpbnZva2UiLCJyZWplY3QiLCJyZWNvcmQiLCJfdHlwZW9mIiwiX19hd2FpdCIsInVud3JhcHBlZCIsInByZXZpb3VzUHJvbWlzZSIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiZG9uZVJlc3VsdCIsImRlbGVnYXRlIiwiZGVsZWdhdGVSZXN1bHQiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJtZXRob2ROYW1lIiwiaW5mbyIsInJlc3VsdE5hbWUiLCJuZXh0IiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsImxvY3MiLCJlbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInJlc2V0VHJ5RW50cnkiLCJjb21wbGV0aW9uIiwicmVzZXQiLCJpdGVyYWJsZSIsIml0ZXJhdG9yTWV0aG9kIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiZ2VuRnVuIiwiY3RvciIsIm1hcmsiLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsImF3cmFwIiwiaXRlciIsIm9iamVjdCIsInBvcCIsInNraXBUZW1wUmVzZXQiLCJwcmV2Iiwic3RvcCIsInJvb3RSZWNvcmQiLCJydmFsIiwiZXhjZXB0aW9uIiwiaGFuZGxlIiwibG9jIiwiY2F1Z2h0IiwiaGFzQ2F0Y2giLCJoYXNGaW5hbGx5IiwiZmluYWxseUVudHJ5IiwiY29tcGxldGUiLCJmaW5pc2giLCJ0aHJvd24iLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwiX25leHQiLCJfdGhyb3ciLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9kZWZpbmVQcm9wZXJ0aWVzIiwiZGVzY3JpcHRvciIsImhpbnQiLCJwcmltIiwidG9QcmltaXRpdmUiLCJTdHJpbmciLCJfdG9QcmltaXRpdmUiLCJfc2V0UHJvdG90eXBlT2YiLCJfY3JlYXRlU3VwZXIiLCJEZXJpdmVkIiwiaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJzaGFtIiwiUHJveHkiLCJ2YWx1ZU9mIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlN1cGVyIiwiX2dldFByb3RvdHlwZU9mIiwiTmV3VGFyZ2V0IiwiUmVmZXJlbmNlRXJyb3IiLCJfYXNzZXJ0VGhpc0luaXRpYWxpemVkIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4iLCJOb3N0ckVtYmVkIiwiX0NvbXBvbmVudCIsInN1YkNsYXNzIiwic3VwZXJDbGFzcyIsIl9pbmhlcml0cyIsIkNvbnN0cnVjdG9yIiwicHJvdG9Qcm9wcyIsInN0YXRpY1Byb3BzIiwiX2lzVmFsaWRFdmVudCIsIl92YWxpZGF0ZU5vc3RyRXZlbnQiLCJfZ2V0Tm9zdHJFdmVudElEIiwiX3N1cGVyIiwiX3RoaXMiLCJpbnN0YW5jZSIsIl9jbGFzc0NhbGxDaGVjayIsInBhcnNlTm90ZUlkIiwiX3RsdiQyIiwiX3RsdiQzIiwiX3RsdiQ0IiwicGFyc2VOYWRkciIsInJlbGF5Iiwic3RyaW5nIiwic2VjcCIsImhhc2hCdWZmZXIiLCJfY2FsbGVlIiwiX2NvbnRleHQiLCJfeCIsIl9jYWxsZWUyIiwiX2NvbnRleHQyIiwidDAiLCJnZXROb3N0ckV2ZW50SUQiLCJfeDIiLCJfY2FsbGVlMyIsImV2IiwiX2NvbnRleHQzIiwidmFsaWRhdGVOb3N0ckV2ZW50IiwidmVyaWZ5Tm9zdHJTaWduYXR1cmUiLCJfeDMiLCJfdGhpczIiLCJzdGFydCIsInNvY2tldCIsImZldGNoUHJvZmlsZSIsImZldGNoRXZlbnQiLCJmZXRjaE5hZGRyIiwiX19ub3N0ckVtYmVkIiwic29ja2V0cyIsInJlYWR5U3RhdGUiLCJzdGFydHMiLCJXZWJTb2NrZXQiLCJvbm9wZW4iLCJsb2ciLCJ1cmwiLCJfc3RlcCIsIl9pdGVyYXRvciIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwib25lcnJvciIsInN1YnMiLCJvbm1lc3NhZ2UiLCJvbl9ldmVudCIsIm9uX2NvdW50Iiwic3Vic2NyaWJlIiwib2siLCJyYW5kb20iLCJyZXEiLCJzZW5kIiwiY2xvc2UiLCJzdWJfaWQiLCJldmVudHMiLCJxdWV1ZSIsIl9yZWYyIiwiX2NhbGxlZTQiLCJfY29udGV4dDQiLCJpc1ZhbGlkRXZlbnQiLCJfeDQiLCJfcmVmMyIsIl9jYWxsZWU1IiwiX2NvbnRleHQ1IiwiX3g1IiwibGlzdEV2ZW50cyIsIl9yZWY0IiwiY291bnRFdmVudHMiLCJfcmVmNSIsIl9yZWY2IiwiX3JlZjciLCJfcmVmOCIsIl9yZWY5IiwiX3RoaXMzIiwiaWRzIiwiZ2V0RXZlbnQiLCJmZXRjaE1ldGEiLCJmZXRjaFRhZ3MiLCJfcmVmMTAiLCJfdGhpczQiLCJraW5kcyIsImF1dGhvcnMiLCJfdGhpczQkcHJvcHMkb3B0aW9ucyIsInBhcnNlZFByb2ZpbGUiLCJmZXRjaFByb2ZpbGVNZXRhIiwiZmV0Y2hGb2xsb3dzIiwiX3JlZjExIiwiX3RoaXM1IiwiZm9sbG93ZWRQdWJrZXlzIiwiZmV0Y2hGb2xsb3dQcm9maWxlcyIsInB1YmtleXMiLCJfcmVmMTIiLCJfdGhpczYiLCJfcmVmMTMiLCJfdGhpczciLCJwcm9maWxlc0xpc3RPYmoiLCJnZXRQcm9maWxlc0xpc3RPYmoiLCJfcmVmMTQiLCJfc3RlcDIiLCJfdGhpczgiLCJfaXRlcmF0b3IyIiwiX3N0ZXAzIiwiX2l0ZXJhdG9yMyIsIl9zdGVwNCIsIl9pdGVyYXRvcjQiLCJfc3RlcDUiLCJfaXRlcmF0b3I1IiwiZXIiLCJfc3RlcDYiLCJfdGhpczkiLCJfaXRlcmF0b3I2IiwiX2xvb3AiLCJub3RlRXZlbnQiLCJLSU5EX1JFUE9TVCIsIktJTkRfUkVBQ1RJT04iLCJnZXRaYXBBbW91bnQiLCJfcmVmMTUiLCJfdGhpcyRwcm9wcyRvcHRpb25zIiwiZmV0Y2hNZXRhQ291bnQiLCJmZXRjaE1ldGFMaXN0IiwiX3JlZjE2IiwiX3RoaXMxMCIsImdldFN1YiIsIm9uTGlzdE1ldGFFdmVudHMiLCJfcmVmMTciLCJfdGhpczExIiwiZ2V0U3ViT25GZXRjaE1ldGFMaXN0IiwiX3JlZjE4IiwiX3N0ZXA3IiwiX3RoaXMxMiIsIl9pdGVyYXRvcjciLCJfbG9vcDIiLCJfcmVmMTkiLCJfdGhpczEzIiwib25MaXN0UHJvZmlsZU1ldGFFdmVudHMiLCJfcmVmMjAiLCJfdGhpczE0IiwiX3JlZjIxIiwiX3RoaXMkcHJvcHMkb3B0aW9uczIiLCJfdGhpcyRwcm9wcyRvcHRpb25zMyIsImZldGNoUHJvZmlsZU1ldGFDb3VudCIsImZldGNoUHJvZmlsZU1ldGFMaXN0IiwiQ29tcG9uZW50IiwiaW5pdCIsIndyYXBwZXIiLCJyZW5kZXJFbGVtZW50Il0sInNvdXJjZVJvb3QiOiIifQ== \ No newline at end of file diff --git a/dist/nostr-embed.js.gz b/dist/nostr-embed.js.gz index 8896366637d3da3dfdac5183e580850803e3cbe3..1c4c7b8a919fd057bf2a160ab2b6e44d67a264f3 100644 GIT binary patch delta 118050 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�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 delta 118051 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