diff --git a/dist/index.mjs b/dist/index.mjs index 51c7582..abda7b2 100644 --- a/dist/index.mjs +++ b/dist/index.mjs @@ -42,4 +42,4 @@ ${s} `}if(o){let h=i-r[0].value,a=As(h,i);e+=`| (other) | ${Rs(a,h)} | `}}return e+=` `,e}function Rs(n,t){return`\${{\\color{Goldenrod}{ ${Cn(n/100)} }}}$ ${n.toFixed(1)}%, ${Te(t)}`}var Fs=["","\u258F","\u258E","\u258D","\u258C","\u258B","\u258A","\u2589","\u2588"],ve=1/(Fs.length-1);function Cn(n,t=25,e=0,s=1){let i=n*t,r=Math.floor(i),o=i-r,h=Math.round(ve*Math.floor(o/ve)/ve);return"\u2588".repeat(r)+Fs[h]}function Ds(n){return Te(n.bytes)}function An(n,t){if(n.remark==="deleted")return"\u{1F5D1}\uFE0F Deleted";if(n.remark==="added")return"\u{1F195} Added";let e=n.bytes-n.baseBytes;if(e!==0){let s=e/n.baseBytes*100;return`${Rn(s,t)}${Te(e)} (${Ns(s)}${s.toFixed(1)}%)`}return"\u2705 No change"}function Ns(n){return n<0?"":"+"}function Rn(n,t){let e;return n>0&&n=t?e="\u203C\uFE0F":e="\u2705 ",`${e} ${Ns(n)}`}function Mn(){let n=K("metafiles");if(!n)throw new Error("metafiles is not specified");let t=K("name");if(!t)throw new Error("name is not specified");return{percentExtraAttention:Number.parseInt(K("percent_extra_attention")||"20",10),showDetails:["true","True","TRUE"].includes(K("show_details")||"true"),showNoChange:["true","True","TRUE"].includes(K("show_no_change")||"true"),topNLargestPaths:Number.parseInt(K("top_n_largest_paths")||"20",10),includeExtensions:(K("include_extensions")||".js,.mjs,.cjs").split(","),name:t,analyzerDirectory:K("analyze_directory")||".analyzer",metafiles:n.split(",")}}function On(n=Mn()){Cs(n),ks(n)}import.meta.url===kn(process.argv[1]).href&&On();export{On as run}; -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2luZGV4LnRzIiwgIi4uL3NyYy9jb21wYXJlLnRzIiwgIi4uL3NyYy9yZXBvcnQudHMiLCAiLi4vc3JjL3V0aWxzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBwYXRoVG9GaWxlVVJMIH0gZnJvbSBcIm5vZGU6dXJsXCI7XG5pbXBvcnQgeyBjb21wYXJlIH0gZnJvbSBcIi4vY29tcGFyZVwiO1xuaW1wb3J0IHsgcmVwb3J0IH0gZnJvbSBcIi4vcmVwb3J0XCI7XG5pbXBvcnQgdHlwZSB7IElucHV0IH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IGdldFNpbmdsZUlucHV0IH0gZnJvbSBcIi4vdXRpbHNcIjtcblxuZnVuY3Rpb24gZ2V0SW5wdXQoKTogSW5wdXQge1xuXHRjb25zdCByYXdNZXRhZmlsZXMgPSBnZXRTaW5nbGVJbnB1dChcIm1ldGFmaWxlc1wiKTtcblx0aWYgKCFyYXdNZXRhZmlsZXMpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJtZXRhZmlsZXMgaXMgbm90IHNwZWNpZmllZFwiKTtcblx0fVxuXHRjb25zdCBuYW1lID0gZ2V0U2luZ2xlSW5wdXQoXCJuYW1lXCIpO1xuXHRpZiAoIW5hbWUpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJuYW1lIGlzIG5vdCBzcGVjaWZpZWRcIik7XG5cdH1cblx0cmV0dXJuIHtcblx0XHRwZXJjZW50RXh0cmFBdHRlbnRpb246IE51bWJlci5wYXJzZUludChcblx0XHRcdGdldFNpbmdsZUlucHV0KFwicGVyY2VudF9leHRyYV9hdHRlbnRpb25cIikgfHwgXCIyMFwiLFxuXHRcdFx0MTAsXG5cdFx0KSxcblx0XHRzaG93RGV0YWlsczogW1widHJ1ZVwiLCBcIlRydWVcIiwgXCJUUlVFXCJdLmluY2x1ZGVzKFxuXHRcdFx0Z2V0U2luZ2xlSW5wdXQoXCJzaG93X2RldGFpbHNcIikgfHwgXCJ0cnVlXCIsXG5cdFx0KSxcblx0XHRzaG93Tm9DaGFuZ2U6IFtcInRydWVcIiwgXCJUcnVlXCIsIFwiVFJVRVwiXS5pbmNsdWRlcyhcblx0XHRcdGdldFNpbmdsZUlucHV0KFwic2hvd19ub19jaGFuZ2VcIikgfHwgXCJ0cnVlXCIsXG5cdFx0KSxcblx0XHR0b3BOTGFyZ2VzdFBhdGhzOiBOdW1iZXIucGFyc2VJbnQoXG5cdFx0XHRnZXRTaW5nbGVJbnB1dChcInRvcF9uX2xhcmdlc3RfcGF0aHNcIikgfHwgXCIyMFwiLFxuXHRcdFx0MTAsXG5cdFx0KSxcblx0XHRpbmNsdWRlRXh0ZW5zaW9uczogKFxuXHRcdFx0Z2V0U2luZ2xlSW5wdXQoXCJpbmNsdWRlX2V4dGVuc2lvbnNcIikgfHwgXCIuanMsLm1qcywuY2pzXCJcblx0XHQpLnNwbGl0KFwiLFwiKSxcblx0XHRuYW1lLFxuXHRcdGFuYWx5emVyRGlyZWN0b3J5OiBnZXRTaW5nbGVJbnB1dChcImFuYWx5emVfZGlyZWN0b3J5XCIpIHx8IFwiLmFuYWx5emVyXCIsXG5cdFx0bWV0YWZpbGVzOiByYXdNZXRhZmlsZXMuc3BsaXQoXCIsXCIpLFxuXHR9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcnVuKGlucHV0OiBJbnB1dCA9IGdldElucHV0KCkpOiB2b2lkIHtcblx0cmVwb3J0KGlucHV0KTtcblx0Y29tcGFyZShpbnB1dCk7XG59XG5cbmlmIChpbXBvcnQubWV0YS51cmwgPT09IHBhdGhUb0ZpbGVVUkwocHJvY2Vzcy5hcmd2WzFdKS5ocmVmKSB7XG5cdHJ1bigpO1xufVxuIiwgImltcG9ydCAqIGFzIGNvbnNvbGUgZnJvbSBcIm5vZGU6Y29uc29sZVwiO1xuaW1wb3J0IGZzIGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBmaW5kTWV0YWZpbGVzIH0gZnJvbSBcIi4vcmVwb3J0XCI7XG5pbXBvcnQgdHlwZSB7IENvbXBhcmVSZXN1bHQsIElucHV0LCBSZXBvcnQsIFRyZWVNYXBOb2RlIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IGxvYWRBbmFseXNpc0pzb24sIGxvYWRNZXRhRmlsZSB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wYXJlKGlucHV0OiBJbnB1dCk6IHZvaWQge1xuXHRsZXQgaGFzQW55Q2hhbmdlID0gZmFsc2U7XG5cdGxldCBvdXRwdXQgPSBgIyMgXHVEODNEXHVEQ0U2IGVzYnVpbGQgQnVuZGxlIEFuYWx5c2lzIGZvciAke2lucHV0Lm5hbWV9XG5cblRoaXMgYW5hbHlzaXMgd2FzIGdlbmVyYXRlZCBieSBbZXNidWlsZC1idW5kbGUtYW5hbHl6ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9leG9lZ28vZXNidWlsZC1idW5kbGUtYW5hbHl6ZXIpLiBcdUQ4M0VcdUREMTZcbmA7XG5cblx0Y29uc3QgY3VycmVudEFuYWx5c2lzUGF0aCA9IHBhdGguam9pbihcblx0XHRwcm9jZXNzLmN3ZCgpLFxuXHRcdGlucHV0LmFuYWx5emVyRGlyZWN0b3J5LFxuXHRcdFwiYnVuZGxlX2FuYWx5c2lzLmpzb25cIixcblx0KTtcblx0Y29uc3QgY3VycmVudCA9IGxvYWRBbmFseXNpc0pzb24oY3VycmVudEFuYWx5c2lzUGF0aCk7XG5cdGNvbnNvbGUubG9nKGBDdXJyZW50IGFuYWx5c2lzIGZvdW5kIGluICR7Y3VycmVudEFuYWx5c2lzUGF0aH1gLCBjdXJyZW50KTtcblx0Y29uc3QgYmFzZSA9IGxvYWRCYXNlQW5hbHlzaXNKc29uKGlucHV0KTtcblxuXHRjb25zdCBmaWxlVHJlZSA9IGJ1aWxkRmlsZVRyZWUoaW5wdXQpO1xuXG5cdGNvbnN0IGFsbE91dEZpbGVzOiBzdHJpbmdbXSA9IFtcblx0XHQuLi5uZXcgU2V0KFsuLi5PYmplY3Qua2V5cyhjdXJyZW50KSwgLi4uT2JqZWN0LmtleXMoYmFzZSldKSxcblx0XS5zb3J0KCk7XG5cblx0Y29uc3QgY29tcGFyaXNvbjogQXJyYXk8Q29tcGFyZVJlc3VsdD4gPSBhbGxPdXRGaWxlcy5tYXAoKG91dGZpbGUpID0+IHtcblx0XHRjb25zdCBjdXJyZW50U3RhdHMgPSBjdXJyZW50W291dGZpbGVdO1xuXHRcdGNvbnN0IGJhc2VTdGF0cyA9IGJhc2Vbb3V0ZmlsZV07XG5cdFx0Y29uc29sZS5sb2coXCJDb21wYXJpbmdcIiwgb3V0ZmlsZSwgY3VycmVudFN0YXRzLCBiYXNlU3RhdHMpO1xuXG5cdFx0aWYgKCFjdXJyZW50U3RhdHMpIHtcblx0XHRcdGNvbnNvbGUubG9nKFwiRGVsZXRlZCBmaWxlXCIsIG91dGZpbGUpO1xuXHRcdFx0aGFzQW55Q2hhbmdlID0gdHJ1ZTtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdC4uLmJhc2VTdGF0cyxcblx0XHRcdFx0YmFzZUJ5dGVzOiAtMSxcblx0XHRcdFx0cmVtYXJrOiBcImRlbGV0ZWRcIixcblx0XHRcdFx0dHJlZTogdW5kZWZpbmVkLFxuXHRcdFx0fTtcblx0XHR9XG5cblx0XHRjb25zdCB0cmVlID0gZmlsZVRyZWUuZ2V0KFxuXHRcdFx0dHJlZUtleShjdXJyZW50U3RhdHMubWV0YWZpbGUsIGN1cnJlbnRTdGF0cy5vdXRmaWxlKSxcblx0XHQpO1xuXHRcdGlmICghYmFzZVN0YXRzKSB7XG5cdFx0XHRjb25zb2xlLmxvZyhcIk5ldyBmaWxlXCIsIG91dGZpbGUpO1xuXHRcdFx0aGFzQW55Q2hhbmdlID0gdHJ1ZTtcblx0XHRcdHJldHVybiB7IC4uLmN1cnJlbnRTdGF0cywgYmFzZUJ5dGVzOiAtMSwgcmVtYXJrOiBcImFkZGVkXCIsIHRyZWUgfTtcblx0XHR9XG5cblx0XHRjb25zdCBkaWZmID0gY3VycmVudFN0YXRzLmJ5dGVzIC0gYmFzZVN0YXRzLmJ5dGVzO1xuXHRcdGlmIChkaWZmICE9PSAwKSB7XG5cdFx0XHRjb25zb2xlLmxvZyhcIkNoYW5nZWQgZmlsZVwiLCBvdXRmaWxlLCBkaWZmKTtcblx0XHRcdGhhc0FueUNoYW5nZSA9IHRydWU7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnNvbGUubG9nKFwiTm8gY2hhbmdlXCIsIG91dGZpbGUpO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0Li4uY3VycmVudFN0YXRzLFxuXHRcdFx0YmFzZUJ5dGVzOiBiYXNlU3RhdHMuYnl0ZXMsXG5cdFx0XHR0cmVlLFxuXHRcdFx0cmVtYXJrOiBNYXRoLnNpZ24oZGlmZikgPyBcImluY3JlYXNlZFwiIDogXCJkZWNyZWFzZWRcIixcblx0XHR9O1xuXHR9KTtcblx0Y29uc29sZS5sb2coXCJDb21wYXJpc29uIGRvbmUuXCIsIGNvbXBhcmlzb24pO1xuXG5cdGlmIChoYXNBbnlDaGFuZ2UpIHtcblx0XHRvdXRwdXQgKz0gbWFya2Rvd25UYWJsZShcblx0XHRcdGNvbXBhcmlzb24sXG5cdFx0XHRpbnB1dC5wZXJjZW50RXh0cmFBdHRlbnRpb24sXG5cdFx0XHRpbnB1dC5zaG93Tm9DaGFuZ2UsXG5cdFx0KTtcblx0XHRvdXRwdXQgKz0gbm9DaGFuZ2VzVGFibGUoY29tcGFyaXNvbiwgaW5wdXQuc2hvd05vQ2hhbmdlKTtcblx0XHRvdXRwdXQgKz0gZmlsZVNpemVUYWJsZShjb21wYXJpc29uLCBpbnB1dC50b3BOTGFyZ2VzdFBhdGhzKTtcblx0XHRvdXRwdXQgKz0gZGV0YWlsKGlucHV0KTtcblx0fSBlbHNlIHtcblx0XHRvdXRwdXQgKz0gXCJUaGlzIFBSIGludHJvZHVjZWQgbm8gY2hhbmdlcyB0byB0aGUgZXNidWlsZCBidW5kbGUhIFx1RDgzRFx1REU0Q1wiO1xuXHR9XG5cblx0Ly8gd2UgYWRkIHRoaXMgdGFnIHNvIHRoYXQgb3VyIGFjdGlvbiBjYW4gYmUgYWJsZSB0byBlYXNpbHkgYW5kXG5cdC8vIGNvbnNpc3RlbnRseSBmaW5kIHRoZSByaWdodCBjb21tZW50IHRvIGVkaXQgYXMgbW9yZSBjb21taXRzIGFyZSBwdXNoZWQuXG5cdG91dHB1dCA9IGA8IS0tIF9fRVNCVUlMRF9CVU5ETEVfJHtpbnB1dC5uYW1lfSAtLT5cbiR7b3V0cHV0fWA7XG5cblx0d3JpdGVDb21tZW50KGlucHV0LCBvdXRwdXQpO1xufVxuXG5mdW5jdGlvbiB0cmVlS2V5KG1ldGFmaWxlOiBzdHJpbmcsIG91dGZpbGU6IHN0cmluZyk6IHN0cmluZyB7XG5cdHJldHVybiBgJHttZXRhZmlsZX0gLT4gJHtvdXRmaWxlfWA7XG59XG5cbi8vIFdyaXRlIHRoZSBvdXRwdXQgdG8gYSBmaWxlIHdoaWNoIGlzIGxhdGVyIHJlYWQgaW5cbi8vIGFzIGNvbW1lbnQgY29udGVudHMgYnkgdGhlIGFjdGlvbnMgd29ya2Zsb3cuXG5mdW5jdGlvbiB3cml0ZUNvbW1lbnQoaW5wdXQ6IElucHV0LCBvdXRwdXQ6IHN0cmluZyk6IHZvaWQge1xuXHRjb25zb2xlLmxvZyhcIldyaXRpbmcgY29tbWVudCB0byBmaWxlLlwiLCBvdXRwdXQpO1xuXHRmcy5ta2RpclN5bmMocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIGlucHV0LmFuYWx5emVyRGlyZWN0b3J5KSwge1xuXHRcdHJlY3Vyc2l2ZTogdHJ1ZSxcblx0fSk7XG5cdGZzLndyaXRlRmlsZVN5bmMoXG5cdFx0cGF0aC5qb2luKFxuXHRcdFx0cHJvY2Vzcy5jd2QoKSxcblx0XHRcdGlucHV0LmFuYWx5emVyRGlyZWN0b3J5LFxuXHRcdFx0XCJidW5kbGVfYW5hbHlzaXNfY29tbWVudC50eHRcIixcblx0XHQpLFxuXHRcdG91dHB1dC50cmltKCksXG5cdCk7XG59XG5cbmZ1bmN0aW9uIGRldGFpbChpbnB1dDogSW5wdXQpOiBzdHJpbmcge1xuXHRpZiAoIWlucHV0LnNob3dEZXRhaWxzKSB7XG5cdFx0cmV0dXJuIFwiXCI7XG5cdH1cblx0cmV0dXJuIGBcXG48ZGV0YWlscz5cbjxzdW1tYXJ5PkRldGFpbHM8L3N1bW1hcnk+XG48cD5OZXh0IHRvIHRoZSBzaXplIGlzIGhvdyBtdWNoIHRoZSBzaXplIGhhcyBpbmNyZWFzZWQgb3IgZGVjcmVhc2VkIGNvbXBhcmVkIHdpdGggdGhlIGJhc2UgYnJhbmNoIG9mIHRoaXMgUFIuPC9wPlxuPHVsPlxuPGxpPlx1MjAzQ1x1RkUwRjogU2l6ZSBpbmNyZWFzZWQgYnkgJHtpbnB1dC5wZXJjZW50RXh0cmFBdHRlbnRpb259JSBvciBtb3JlLiBTcGVjaWFsIGF0dGVudGlvbiBzaG91bGQgYmUgZ2l2ZW4gdG8gdGhpcy48L2xpPlxuPGxpPlx1MjZBMFx1RkUwRjogU2l6ZSBpbmNyZWFzZWQgaW4gYWNjZXB0YWJsZSByYW5nZSAobG93ZXIgdGhhbiAke2lucHV0LnBlcmNlbnRFeHRyYUF0dGVudGlvbn0lKS48L2xpPlxuPGxpPlx1MjcwNTogTm8gY2hhbmdlIG9yIGV2ZW4gZG93bnNpemVkLjwvbGk+XG48bGk+XHVEODNEXHVEREQxXHVGRTBGOiBUaGUgb3V0IGZpbGUgaXMgZGVsZXRlZDogbm90IGZvdW5kIGluIGJhc2UgYnJhbmNoLjwvbGk+XG48bGk+XHVEODNDXHVERDk1OiBUaGUgb3V0IGZpbGUgaXMgbmV3bHkgZm91bmQ6IHdpbGwgYmUgYWRkZWQgdG8gYmFzZSBicmFuY2guPC9saT5cbjwvdWw+XG48L2RldGFpbHM+XFxuYDtcbn1cblxuZnVuY3Rpb24gbG9hZEJhc2VBbmFseXNpc0pzb24oaW5wdXQ6IElucHV0KTogUmVwb3J0IHtcblx0dHJ5IHtcblx0XHRjb25zdCBiYXNlQW5hbHlzaXNQYXRoID0gcGF0aC5qb2luKFxuXHRcdFx0cHJvY2Vzcy5jd2QoKSxcblx0XHRcdGlucHV0LmFuYWx5emVyRGlyZWN0b3J5LFxuXHRcdFx0XCJiYXNlL2J1bmRsZS9idW5kbGVfYW5hbHlzaXMuanNvblwiLFxuXHRcdCk7XG5cdFx0Y29uc3QgcmVwb3J0ID0gbG9hZEFuYWx5c2lzSnNvbihiYXNlQW5hbHlzaXNQYXRoKTtcblx0XHRjb25zb2xlLmluZm8oYEJhc2UgYW5hbHlzaXMgZm91bmQgaW4gJHtiYXNlQW5hbHlzaXNQYXRofWAsIHJlcG9ydCk7XG5cdFx0cmV0dXJuIHJlcG9ydDtcblx0fSBjYXRjaCAoZSkge1xuXHRcdGNvbnNvbGUud2Fybihcblx0XHRcdFwiTm8gYmFzZSBhbmFseXNpcyBmb3VuZC4gRmlyc3Qgc2V0dXAgb3IgYWxsIGFydGlmYWN0cyBhcmUgZXhwaXJlZC5cIixcblx0XHQpO1xuXHRcdHJldHVybiB7fTtcblx0fVxufVxuXG5mdW5jdGlvbiBidWlsZEZpbGVUcmVlKGlucHV0OiBJbnB1dCkge1xuXHRmdW5jdGlvbiBidWlsZFJvb3QoXG5cdFx0aW5wdXQ6IFJlY29yZDxzdHJpbmcsIHsgYnl0ZXNJbk91dHB1dDogbnVtYmVyIH0+LFxuXHQpOiBUcmVlTWFwTm9kZSB7XG5cdFx0Y29uc3Qgcm9vdDogVHJlZU1hcE5vZGUgPSB7IG5hbWU6IFwiXCIsIHBhdGg6IFwiXCIsIHZhbHVlOiAwLCBjaGlsZHJlbjogW10gfTtcblx0XHRmb3IgKGNvbnN0IFtmaWxlUGF0aCwgeyBieXRlc0luT3V0cHV0IH1dIG9mIE9iamVjdC5lbnRyaWVzKGlucHV0KSkge1xuXHRcdFx0Y29uc3QgZGlyZWN0b3JpZXMgPSBmaWxlUGF0aC5zcGxpdChcIi9cIik7XG5cdFx0XHRidWlsZE5vZGUocm9vdCwgZGlyZWN0b3JpZXMsIGJ5dGVzSW5PdXRwdXQpO1xuXHRcdH1cblx0XHRyZXR1cm4gcm9vdDtcblx0fVxuXG5cdGZ1bmN0aW9uIGJ1aWxkTm9kZShcblx0XHRub2RlOiBUcmVlTWFwTm9kZSxcblx0XHRwYXRoczogQXJyYXk8c3RyaW5nPixcblx0XHR2YWx1ZTogbnVtYmVyLFxuXHQpOiB2b2lkIHtcblx0XHRjb25zdCBmaXJzdCA9IHBhdGhzLnNoaWZ0KCk7XG5cdFx0aWYgKGZpcnN0ID09PSB1bmRlZmluZWQpIHtcblx0XHRcdC8vIGxlYWYgbm9kZSAoZmlsZSlcblx0XHRcdG5vZGUudmFsdWUgKz0gdmFsdWU7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGxldCBjaGlsZCA9IG5vZGUuY2hpbGRyZW4uZmluZCgoY2hpbGQpID0+IGNoaWxkLm5hbWUgPT09IGZpcnN0KTtcblx0XHRpZiAoIWNoaWxkKSB7XG5cdFx0XHRjaGlsZCA9IHtcblx0XHRcdFx0bmFtZTogZmlyc3QsXG5cdFx0XHRcdHBhdGg6IGAke25vZGUucGF0aH0vJHtmaXJzdH1gLnJlcGxhY2UoL15cXC8vLCBcIlwiKSxcblx0XHRcdFx0dmFsdWU6IDAsXG5cdFx0XHRcdGNoaWxkcmVuOiBbXSxcblx0XHRcdH07XG5cdFx0XHRub2RlLmNoaWxkcmVuLnB1c2goY2hpbGQpO1xuXHRcdH1cblx0XHRub2RlLnZhbHVlICs9IHZhbHVlO1xuXHRcdGJ1aWxkTm9kZShjaGlsZCwgcGF0aHMsIHZhbHVlKTtcblx0fVxuXG5cdGNvbnN0IHRyZWVzID0gbmV3IE1hcDxzdHJpbmcsIFRyZWVNYXBOb2RlPigpO1xuXHRpZiAoaW5wdXQudG9wTkxhcmdlc3RQYXRocyA8PSAwKSB7XG5cdFx0Ly8gU2tpcCBidWlsZGluZyB0cmVlIGlmIHdlIGRvbid0IG5lZWQgaXQuXG5cdFx0cmV0dXJuIHRyZWVzO1xuXHR9XG5cdGZvciAoY29uc3QgeyByZWxhdGl2ZVBhdGgsIGFic29sdXRlUGF0aCB9IG9mIGZpbmRNZXRhZmlsZXMoaW5wdXQpKSB7XG5cdFx0Y29uc3QgbWV0YWZpbGVKc29uID0gbG9hZE1ldGFGaWxlKGFic29sdXRlUGF0aCk7XG5cdFx0Zm9yIChjb25zdCBbb3V0ZmlsZSwgYnVpbGRNZXRhXSBvZiBPYmplY3QuZW50cmllcyhtZXRhZmlsZUpzb24ub3V0cHV0cykpIHtcblx0XHRcdGNvbnN0IHRyZWUgPSBidWlsZFJvb3QoYnVpbGRNZXRhLmlucHV0cyk7XG5cdFx0XHR0cmVlcy5zZXQodHJlZUtleShyZWxhdGl2ZVBhdGgsIG91dGZpbGUpLCB0cmVlKTtcblxuXHRcdFx0ZnMud3JpdGVGaWxlU3luYyhcblx0XHRcdFx0cGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIGlucHV0LmFuYWx5emVyRGlyZWN0b3J5LCBcInRyZWUuanNvblwiKSxcblx0XHRcdFx0SlNPTi5zdHJpbmdpZnkodHJlZSwgbnVsbCwgMiksXG5cdFx0XHQpO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gdHJlZXM7XG59XG5cbmNvbnN0IHNwYWNlciA9IFwiXHUwMEEwXCI7XG5mdW5jdGlvbiBmaWxlc2l6ZShieXRlczogbnVtYmVyKTogc3RyaW5nIHtcblx0Y29uc3Qgc2lnbiA9IGJ5dGVzIDwgMCA/IFwiLVwiIDogXCJcIjtcblx0Y29uc3QgbiA9IE1hdGguYWJzKGJ5dGVzKTtcblx0aWYgKG4gPCAxMDAwKSB7XG5cdFx0cmV0dXJuIGAke3NpZ259JHtufSR7c3BhY2VyfUJgO1xuXHR9XG5cdGlmIChuIDwgMTAwMCAqIDEwMDApIHtcblx0XHRyZXR1cm4gYCR7c2lnbn0keyhuIC8gMTAwMCkudG9GaXhlZCgyKX0ke3NwYWNlcn1LQmA7XG5cdH1cblx0aWYgKG4gPCAxMDAwICogMTAwMCAqIDEwMDApIHtcblx0XHRyZXR1cm4gYCR7c2lnbn0keyhuIC8gMTAwMCAvIDEwMDApLnRvRml4ZWQoMil9JHtzcGFjZXJ9TUJgO1xuXHR9XG5cdGlmIChuIDwgMTAwMCAqIDEwMDAgKiAxMDAwICogMTAwMCkge1xuXHRcdHJldHVybiBgJHtzaWdufSR7KG4gLyAxMDAwIC8gMTAwMCAvIDEwMDApLnRvRml4ZWQoMil9JHtzcGFjZXJ9R0JgO1xuXHR9XG5cdHRocm93IG5ldyBFcnJvcihcIlRvbyBsYXJnZSBmaWxlIHNpemUhISBBcmUgeW91IHN1cmU/XCIpO1xufVxuXG5jb25zdCBzaG91bGRTaG93QnVuZGxlID0gKGQ6IENvbXBhcmVSZXN1bHQsIHNob3dOb0NoYW5nZTogYm9vbGVhbikgPT5cblx0c2hvd05vQ2hhbmdlIHx8IGQuYnl0ZXMgLSBkLmJhc2VCeXRlcyAhPT0gMDtcblxuZnVuY3Rpb24gbWFya2Rvd25UYWJsZShcblx0ZGF0YTogQXJyYXk8Q29tcGFyZVJlc3VsdD4sXG5cdHJlZFRocmVzaG9sZDogbnVtYmVyLFxuXHRzaG93Tm9DaGFuZ2U6IGJvb2xlYW4sXG4pOiBzdHJpbmcge1xuXHRjb25zdCByb3dzID0gZGF0YVxuXHRcdC5maWx0ZXIoKGQpID0+IHNob3VsZFNob3dCdW5kbGUoZCwgc2hvd05vQ2hhbmdlKSlcblx0XHQubWFwKChkKSA9PiB7XG5cdFx0XHRyZXR1cm4gYCR7ZC5tZXRhZmlsZX0gfCAke2Qub3V0ZmlsZX0gfCAke3JlbmRlclNpemUoZCl9IHwgJHtyZW5kZXJOb3RlKFxuXHRcdFx0XHRkLFxuXHRcdFx0XHRyZWRUaHJlc2hvbGQsXG5cdFx0XHQpfVxcbmA7XG5cdFx0fSlcblx0XHQuam9pbihcIlwiKTtcblxuXHRyZXR1cm4gYFxuTWV0YSBGaWxlIHwgT3V0IEZpbGUgIHwgU2l6ZSAocmF3KSB8IE5vdGVcbi0tLS0tLS0tLS18LS0tLS0tLS0tLXwtLS0tLS0tLS0tLTp8LS0tLS0tXG4ke3Jvd3N9YDtcbn1cblxuZnVuY3Rpb24gbm9DaGFuZ2VzVGFibGUoXG5cdGRhdGE6IEFycmF5PENvbXBhcmVSZXN1bHQ+LFxuXHRzaG93Tm9DaGFuZ2U6IGJvb2xlYW4sXG4pOiBzdHJpbmcge1xuXHRjb25zdCBub0NoYW5nZUJ1bmRsZXMgPSBkYXRhLmZpbHRlcihcblx0XHQoZCkgPT4gIXNob3VsZFNob3dCdW5kbGUoZCwgc2hvd05vQ2hhbmdlKSxcblx0KTtcblx0Y29uc3Qgcm93cyA9IG5vQ2hhbmdlQnVuZGxlc1xuXHRcdC5tYXAoKGQpID0+IHtcblx0XHRcdHJldHVybiBgJHtkLm1ldGFmaWxlfSB8ICR7ZC5vdXRmaWxlfSB8ICR7cmVuZGVyU2l6ZShkKX0gfCBcdTI3MDUgIE5vIGNoYW5nZVxcbmA7XG5cdFx0fSlcblx0XHQuam9pbihcIlwiKTtcblx0aWYgKG5vQ2hhbmdlQnVuZGxlcy5sZW5ndGggPT09IDApIHtcblx0XHRyZXR1cm4gXCJcIjtcblx0fVxuXHRyZXR1cm4gYFxuPGRldGFpbHM+XG48c3VtbWFyeT4ke25vQ2hhbmdlQnVuZGxlcy5sZW5ndGh9IGJ1bmRsZXMgd2l0aCBubyBjaGFuZ2UgYXJlIGhpZGRlbi48L3N1bW1hcnk+ICAgIFxuXG5NZXRhIEZpbGUgfCBPdXQgRmlsZSAgfCBTaXplIChyYXcpIHwgTm90ZSBcbi0tLS0tLS0tLS18LS0tLS0tLS0tLXwtLS0tLS0tLS0tLTp8LS0tLS0tXG4ke3Jvd3N9XG5cbjwvZGV0YWlscz5cbmA7XG59XG5cbi8qKlxuICogRmluZCB0aGUgdG9wIE4gbGFyZ2VzdCBub2RlcyBpbiByb290IHRyZWUuXG4gKiBEaWcgbm9kZXMgdW50aWwgdGhlIGRlcHRoIG9mIDMuXG4gKi9cbmZ1bmN0aW9uIGZpbmRMYXJnZURpcmVjdG9yaWVzKHJvb3Q6IFRyZWVNYXBOb2RlLCBOOiBudW1iZXIpIHtcblx0Y29uc3Qgbm9kZXM6IFRyZWVNYXBOb2RlW10gPSBbXTtcblx0Y29uc3QgcXVldWU6IEFycmF5PHsgbm9kZTogVHJlZU1hcE5vZGU7IGRlcHRoOiBudW1iZXIgfT4gPSBbXG5cdFx0eyBub2RlOiByb290LCBkZXB0aDogMCB9LFxuXHRdO1xuXHR3aGlsZSAocXVldWUubGVuZ3RoID4gMCkge1xuXHRcdGNvbnN0IHNoaWZ0ID0gcXVldWUuc2hpZnQoKTtcblx0XHRpZiAoIXNoaWZ0KSB7XG5cdFx0XHRicmVhaztcblx0XHR9XG5cdFx0Y29uc3QgeyBub2RlLCBkZXB0aCB9ID0gc2hpZnQ7XG5cdFx0aWYgKGRlcHRoID09PSAzKSB7XG5cdFx0XHRub2Rlcy5wdXNoKG5vZGUpO1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXHRcdGlmIChub2RlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0bm9kZXMucHVzaChub2RlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Zm9yIChjb25zdCBpdGVtIG9mIG5vZGUuY2hpbGRyZW4pIHtcblx0XHRcdFx0cXVldWUucHVzaCh7IG5vZGU6IGl0ZW0sIGRlcHRoOiBkZXB0aCArIDEgfSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdGNvbnN0IGxhcmdlTm9kZXMgPSBub2Rlcy5zb3J0KChhLCBiKSA9PiBiLnZhbHVlIC0gYS52YWx1ZSkuc2xpY2UoMCwgTik7XG5cdHJldHVybiB7XG5cdFx0bGFyZ2VOb2Rlcyxcblx0XHRoYXNPdGhlcjogbm9kZXMubGVuZ3RoID4gTixcblx0fTtcbn1cblxuZnVuY3Rpb24gZml4ZWRQZXJjZW50KG46IG51bWJlciwgZDogbnVtYmVyKTogbnVtYmVyIHtcblx0cmV0dXJuIE51bWJlci5wYXJzZUZsb2F0KCgobiAvIGQpICogMTAwKS50b0ZpeGVkKDEpKTtcbn1cblxuZnVuY3Rpb24gZmlsZVNpemVUYWJsZShcblx0ZGF0YTogQXJyYXk8Q29tcGFyZVJlc3VsdD4sXG5cdHRvcE5MYXJnZXN0UGF0aHM6IG51bWJlcixcbik6IHN0cmluZyB7XG5cdGlmIChkYXRhLmxlbmd0aCA9PT0gMCB8fCB0b3BOTGFyZ2VzdFBhdGhzIDw9IDApIHtcblx0XHRyZXR1cm4gXCJcIjtcblx0fVxuXHRsZXQgb3V0cHV0ID0gXCJcIjtcblx0b3V0cHV0ICs9IFwiPGRldGFpbHM+XFxuXCI7XG5cdG91dHB1dCArPSBcIjxzdW1tYXJ5Pkxhcmdlc3QgcGF0aHM8L3N1bW1hcnk+XFxuXCI7XG5cdG91dHB1dCArPSBgVGhlc2UgdmlzdWFsaXphdGlvbiBzaG93cyB0b3AgJHt0b3BOTGFyZ2VzdFBhdGhzfSBsYXJnZXN0IHBhdGhzIGluIHRoZSBidW5kbGUuXFxuYDtcblx0Zm9yIChjb25zdCBkIG9mIGRhdGEpIHtcblx0XHRvdXRwdXQgKz0gXCJcXG5cIjtcblx0XHRvdXRwdXQgKz0gYCMjIE1ldGEgZmlsZTogJHtkLm1ldGFmaWxlfSwgT3V0IGZpbGU6ICR7ZC5vdXRmaWxlfVxcbmA7XG5cdFx0aWYgKCFkLnRyZWUpIHtcblx0XHRcdG91dHB1dCArPSBcIlx1RkUwRlx1RkUwRlx1RDgzRFx1REREMVx1RkUwRkRlbGV0ZWRcXG5cIjtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblx0XHRvdXRwdXQgKz0gXCJ8IFBhdGggfCBTaXplIHxcXG5cIjtcblx0XHRvdXRwdXQgKz0gXCJ8LS0tLS0tfC0tLS0tLS18XFxuXCI7XG5cdFx0Y29uc3QgdG90YWxTaXplID0gZC50cmVlLnZhbHVlO1xuXHRcdGNvbnN0IHsgbGFyZ2VOb2RlcywgaGFzT3RoZXIgfSA9IGZpbmRMYXJnZURpcmVjdG9yaWVzKFxuXHRcdFx0ZC50cmVlLFxuXHRcdFx0dG9wTkxhcmdlc3RQYXRocyxcblx0XHQpO1xuXHRcdGZvciAoY29uc3QgeyBwYXRoLCB2YWx1ZSB9IG9mIGxhcmdlTm9kZXMpIHtcblx0XHRcdGNvbnN0IHBlcmNlbnQgPSBmaXhlZFBlcmNlbnQodmFsdWUsIHRvdGFsU2l6ZSk7XG5cdFx0XHRvdXRwdXQgKz0gYHwgJHtwYXRofSB8ICR7cmVuZGVyQmFyKHBlcmNlbnQsIHZhbHVlKX0gfFxcbmA7XG5cdFx0fVxuXHRcdGlmIChoYXNPdGhlcikge1xuXHRcdFx0Y29uc3Qgb3RoZXJTaXplID0gdG90YWxTaXplIC0gbGFyZ2VOb2Rlc1swXS52YWx1ZTtcblx0XHRcdGNvbnN0IG90aGVyUGVyY2VudCA9IGZpeGVkUGVyY2VudChvdGhlclNpemUsIHRvdGFsU2l6ZSk7XG5cdFx0XHRvdXRwdXQgKz0gYHwgKG90aGVyKSB8ICR7cmVuZGVyQmFyKG90aGVyUGVyY2VudCwgb3RoZXJTaXplKX0gfFxcbmA7XG5cdFx0fVxuXHR9XG5cdG91dHB1dCArPSBcIjwvZGV0YWlscz5cXG5cIjtcblx0cmV0dXJuIG91dHB1dDtcbn1cblxuZnVuY3Rpb24gcmVuZGVyQmFyKHBlcmNlbnQ6IG51bWJlciwgYnl0ZXM6IG51bWJlcik6IHN0cmluZyB7XG5cdGNvbnN0IGJhciA9IHByb2dyZXNzKHBlcmNlbnQgLyAxMDApO1xuXHRyZXR1cm4gYFxcJHt7XFxcXGNvbG9ye0dvbGRlbnJvZH17ICR7YmFyfSB9fX1cXCQgJHtwZXJjZW50LnRvRml4ZWQoXG5cdFx0MSxcblx0KX0lLCAke2ZpbGVzaXplKGJ5dGVzKX1gO1xufVxuXG4vLyBCbG9jayBwcm9ncmVzc2lvbiBpcyAxLzggPSAwLjEyNVxuY29uc3QgYmxvY2tzID0gW1wiXCIsIFwiXHUyNThGXCIsIFwiXHUyNThFXCIsIFwiXHUyNThEXCIsIFwiXHUyNThDXCIsIFwiXHUyNThCXCIsIFwiXHUyNThBXCIsIFwiXHUyNTg5XCIsIFwiXHUyNTg4XCJdO1xuY29uc3QgcHJvZ3Jlc3Npb24gPSAxIC8gKGJsb2Nrcy5sZW5ndGggLSAxKTtcbmZ1bmN0aW9uIHByb2dyZXNzKHZhbHVlOiBudW1iZXIsIGxlbmd0aCA9IDI1LCB2bWluID0gMC4wLCB2bWF4ID0gMS4wKSB7XG5cdGNvbnN0IHYgPSB2YWx1ZSAqIGxlbmd0aDtcblx0Y29uc3QgaW50ZWdlclBhcnQgPSBNYXRoLmZsb29yKHYpO1xuXHRjb25zdCBmcmFjdGlvbmFsUGFydCA9IHYgLSBpbnRlZ2VyUGFydDtcblx0Y29uc3QgaSA9IE1hdGgucm91bmQoXG5cdFx0KHByb2dyZXNzaW9uICogTWF0aC5mbG9vcihmcmFjdGlvbmFsUGFydCAvIHByb2dyZXNzaW9uKSkgLyBwcm9ncmVzc2lvbixcblx0KTtcblx0cmV0dXJuIFwiXHUyNTg4XCIucmVwZWF0KGludGVnZXJQYXJ0KSArIGJsb2Nrc1tpXTtcbn1cblxuZnVuY3Rpb24gcmVuZGVyU2l6ZShkOiBDb21wYXJlUmVzdWx0KTogc3RyaW5nIHtcblx0cmV0dXJuIGZpbGVzaXplKGQuYnl0ZXMpO1xufVxuXG5mdW5jdGlvbiByZW5kZXJOb3RlKGQ6IENvbXBhcmVSZXN1bHQsIHJlZFRocmVzaG9sZDogbnVtYmVyKTogc3RyaW5nIHtcblx0aWYgKGQucmVtYXJrID09PSBcImRlbGV0ZWRcIikge1xuXHRcdHJldHVybiBcIlx1RDgzRFx1REREMVx1RkUwRiBEZWxldGVkXCI7XG5cdH1cblx0aWYgKGQucmVtYXJrID09PSBcImFkZGVkXCIpIHtcblx0XHRyZXR1cm4gXCJcdUQ4M0NcdUREOTUgQWRkZWRcIjtcblx0fVxuXHRjb25zdCBkaWZmID0gZC5ieXRlcyAtIGQuYmFzZUJ5dGVzO1xuXHRpZiAoZGlmZiAhPT0gMCkge1xuXHRcdGNvbnN0IHBlcmNlbnRDaGFuZ2UgPSAoZGlmZiAvIGQuYmFzZUJ5dGVzKSAqIDEwMDtcblx0XHRyZXR1cm4gYCR7cmVuZGVyU3RhdHVzSW5kaWNhdG9yKHBlcmNlbnRDaGFuZ2UsIHJlZFRocmVzaG9sZCl9JHtmaWxlc2l6ZShcblx0XHRcdGRpZmYsXG5cdFx0KX0gKCR7c2lnbihwZXJjZW50Q2hhbmdlKX0ke3BlcmNlbnRDaGFuZ2UudG9GaXhlZCgxKX0lKWA7XG5cdH1cblx0cmV0dXJuIFwiXHUyNzA1ICBObyBjaGFuZ2VcIjtcbn1cblxuZnVuY3Rpb24gc2lnbihudW06IG51bWJlcik6IHN0cmluZyB7XG5cdHJldHVybiBudW0gPCAwID8gXCJcIiA6IFwiK1wiO1xufVxuXG5mdW5jdGlvbiByZW5kZXJTdGF0dXNJbmRpY2F0b3IoXG5cdHBlcmNlbnRDaGFuZ2U6IG51bWJlcixcblx0cmVkVGhyZXNob2xkOiBudW1iZXIsXG4pOiBzdHJpbmcge1xuXHRsZXQgcmVzOiBzdHJpbmc7XG5cdGlmIChwZXJjZW50Q2hhbmdlID4gMCAmJiBwZXJjZW50Q2hhbmdlIDwgcmVkVGhyZXNob2xkKSB7XG5cdFx0cmVzID0gXCJcdTI2QTBcdUZFMEZcIjtcblx0fSBlbHNlIGlmIChwZXJjZW50Q2hhbmdlID49IHJlZFRocmVzaG9sZCkge1xuXHRcdHJlcyA9IFwiXHUyMDNDXHVGRTBGXCI7XG5cdH0gZWxzZSB7XG5cdFx0cmVzID0gXCJcdTI3MDUgXCI7XG5cdH1cblx0cmV0dXJuIGAke3Jlc30gJHtzaWduKHBlcmNlbnRDaGFuZ2UpfWA7XG59XG4iLCAiaW1wb3J0IGZzIGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgcHJvY2VzcyBmcm9tIFwibm9kZTpwcm9jZXNzXCI7XG5cbmltcG9ydCAqIGFzIGNvbnNvbGUgZnJvbSBcIm5vZGU6Y29uc29sZVwiO1xuaW1wb3J0IHsgZ2xvYlN5bmMgfSBmcm9tIFwiZ2xvYlwiO1xuaW1wb3J0IHR5cGUgeyBJbnB1dCwgUmVwb3J0IH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IGxvYWRNZXRhRmlsZSB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiByZXBvcnQoaW5wdXQ6IElucHV0KTogdm9pZCB7XG5cdGNvbnN0IGFsbFBhZ2VTaXplcyA9IGdldEFsbFBhZ2VTaXplcyhpbnB1dCk7XG5cdGZzLm1rZGlyU3luYyhwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgaW5wdXQuYW5hbHl6ZXJEaXJlY3RvcnkpLCB7XG5cdFx0cmVjdXJzaXZlOiB0cnVlLFxuXHR9KTtcblx0Y29uc3QgcmVzdWx0SnNvblBhdGggPSBwYXRoLmpvaW4oXG5cdFx0cHJvY2Vzcy5jd2QoKSxcblx0XHRpbnB1dC5hbmFseXplckRpcmVjdG9yeSxcblx0XHRcImJ1bmRsZV9hbmFseXNpcy5qc29uXCIsXG5cdCk7XG5cdGZzLndyaXRlRmlsZVN5bmMocmVzdWx0SnNvblBhdGgsIEpTT04uc3RyaW5naWZ5KGFsbFBhZ2VTaXplcywgbnVsbCwgMikpO1xuXHRjb25zb2xlLmxvZyhgV3JvdGUgJHtyZXN1bHRKc29uUGF0aH1gLCBhbGxQYWdlU2l6ZXMpO1xufVxuXG5pbnRlcmZhY2UgTWV0YWZpbGVQYXRoIHtcblx0cmVhZG9ubHkgcmVsYXRpdmVQYXRoOiBzdHJpbmc7XG5cdHJlYWRvbmx5IGFic29sdXRlUGF0aDogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZE1ldGFmaWxlcyhpbnB1dDogSW5wdXQpOiBNZXRhZmlsZVBhdGhbXSB7XG5cdHJldHVybiBpbnB1dC5tZXRhZmlsZXMuZmxhdE1hcCgobWV0YWZpbGUpID0+IHtcblx0XHRyZXR1cm4gZ2xvYlN5bmMocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIG1ldGFmaWxlKSwge1xuXHRcdFx0bm9kaXI6IHRydWUsXG5cdFx0fSkubWFwKChtZXRhRmlsZVBhdGgpID0+IHtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdHJlbGF0aXZlUGF0aDogcGF0aC5yZWxhdGl2ZShwcm9jZXNzLmN3ZCgpLCBtZXRhRmlsZVBhdGgpLFxuXHRcdFx0XHRhYnNvbHV0ZVBhdGg6IG1ldGFGaWxlUGF0aCxcblx0XHRcdH07XG5cdFx0fSk7XG5cdH0pO1xufVxuXG5mdW5jdGlvbiBnZXRBbGxQYWdlU2l6ZXMoaW5wdXQ6IElucHV0KTogUmVwb3J0IHtcblx0Y29uc3QgYWNjOiBSZXBvcnQgPSB7fTtcblxuXHRjb25zdCBtZXRhZmlsZXMgPSBmaW5kTWV0YWZpbGVzKGlucHV0KTtcblx0Y29uc3QgcmVzdWx0ID0gbWV0YWZpbGVzLnJlZHVjZSgoYWNjLCB7IHJlbGF0aXZlUGF0aCwgYWJzb2x1dGVQYXRoIH0pID0+IHtcblx0XHR0cnkge1xuXHRcdFx0ZnMuYWNjZXNzU3luYyhhYnNvbHV0ZVBhdGgsIGZzLmNvbnN0YW50cy5SX09LKTtcblx0XHR9IGNhdGNoIChlcnIpIHtcblx0XHRcdGNvbnNvbGUuZXJyb3IoXG5cdFx0XHRcdGBObyBtZXRhIGZpbGUgZm91bmQgYXQgXCIke2Fic29sdXRlUGF0aH1cIiAtIGEgcGF0aCB0byBtZXRhIGZpbGUgbWF5IGJlIHdyb25nLCBvciBlc2J1aWxkIGlzIG5vdCBleGVjdXRlZC5gLFxuXHRcdFx0KTtcblx0XHRcdHByb2Nlc3MuZXhpdCgxKTtcblx0XHR9XG5cblx0XHRjb25zdCBtZXRhRmlsZUpzb24gPSBsb2FkTWV0YUZpbGUoYWJzb2x1dGVQYXRoKTtcblx0XHRPYmplY3QuZW50cmllcyhtZXRhRmlsZUpzb24ub3V0cHV0cykucmVkdWNlKChhY2MsIG91dHB1dCkgPT4ge1xuXHRcdFx0Y29uc3QgW291dGZpbGUsIGJ1aWxkTWV0YV0gPSBvdXRwdXQ7XG5cdFx0XHRpZiAoXG5cdFx0XHRcdCFpbnB1dC5pbmNsdWRlRXh0ZW5zaW9ucy5zb21lKChleHQpID0+XG5cdFx0XHRcdFx0b3V0ZmlsZS50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKGV4dCksXG5cdFx0XHRcdClcblx0XHRcdCkge1xuXHRcdFx0XHRyZXR1cm4gYWNjO1xuXHRcdFx0fVxuXHRcdFx0YWNjW2Ake3JlbGF0aXZlUGF0aH0gLT4gJHtvdXRmaWxlfWBdID0ge1xuXHRcdFx0XHRieXRlczogYnVpbGRNZXRhLmJ5dGVzLFxuXHRcdFx0XHRtZXRhZmlsZTogcmVsYXRpdmVQYXRoLFxuXHRcdFx0XHRvdXRmaWxlLFxuXHRcdFx0fTtcblx0XHRcdHJldHVybiBhY2M7XG5cdFx0fSwgYWNjKTtcblx0XHRyZXR1cm4gYWNjO1xuXHR9LCBhY2MpO1xuXHRjb25zb2xlLmxvZyhcIkZvdW5kIG1ldGFmaWxlc1wiLCBtZXRhZmlsZXMpO1xuXHRjb25zb2xlLmxvZyhcIkZvdW5kIHJlc3VsdFwiLCByZXN1bHQpO1xuXHRyZXR1cm4gcmVzdWx0O1xufVxuIiwgImltcG9ydCBmcyBmcm9tIFwibm9kZTpmc1wiO1xuXG5pbXBvcnQgdHlwZSB7IE1ldGFmaWxlIH0gZnJvbSBcImVzYnVpbGRcIjtcbmltcG9ydCB0eXBlIHsgUmVwb3J0IH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuZnVuY3Rpb24gbG9hZEpzb25GaWxlKHBhdGg6IHN0cmluZykge1xuXHRyZXR1cm4gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMocGF0aCkudG9TdHJpbmcoXCJ1dGYtOFwiKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkTWV0YUZpbGUocGF0aDogc3RyaW5nKTogTWV0YWZpbGUge1xuXHRyZXR1cm4gbG9hZEpzb25GaWxlKHBhdGgpIGFzIE1ldGFmaWxlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZEFuYWx5c2lzSnNvbihwYXRoOiBzdHJpbmcpOiBSZXBvcnQge1xuXHRyZXR1cm4gbG9hZEpzb25GaWxlKHBhdGgpIGFzIFJlcG9ydDtcbn1cblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2FjdGlvbnMvdG9vbGtpdC9ibG9iLzgxYTczYWJhOGJlZGQ1MzJmNmVkZGNjNDFlZDNhMGZhZDhiMWNmZWIvcGFja2FnZXMvY29yZS9zcmMvY29yZS50cyNMMTI2XG5leHBvcnQgZnVuY3Rpb24gZ2V0U2luZ2xlSW5wdXQobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcblx0Y29uc3QgdmFsID0gcHJvY2Vzcy5lbnZbYElOUFVUXyR7bmFtZS50b1VwcGVyQ2FzZSgpfWBdIHx8IFwiXCI7XG5cdHJldHVybiB2YWwudHJpbSgpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIm1zR0FBQSxPQUFTLGlCQUFBQSxPQUFxQixXQ0E5QixVQUFZQyxNQUFhLGVBQ3pCLE9BQU9DLE9BQVEsVUFDZixPQUFPQyxPQUFVLFlDRmpCLE9BQU9DLE9BQVEsVUFDZixPQUFPQyxPQUFVLFlBQ2pCLE9BQU9DLE9BQWEsZUFFcEIsVUFBWUMsT0FBYTs7NHM1RENK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LENBQUNDLEVBQ0osTUFBTSxJQUFJLE1BQU0sdUJBQXVCLEVBRXhDLE1BQU8sQ0FDTixzQkFBdUIsT0FBTyxTQUM3QkQsRUFBZSx5QkFBeUIsR0FBSyxLQUM3QyxFQUNELEVBQ0EsWUFBYSxDQUFDLE9BQVEsT0FBUSxNQUFNLEVBQUUsU0FDckNBLEVBQWUsY0FBYyxHQUFLLE1BQ25DLEVBQ0EsYUFBYyxDQUFDLE9BQVEsT0FBUSxNQUFNLEVBQUUsU0FDdENBLEVBQWUsZ0JBQWdCLEdBQUssTUFDckMsRUFDQSxpQkFBa0IsT0FBTyxTQUN4QkEsRUFBZSxxQkFBcUIsR0FBSyxLQUN6QyxFQUNELEVBQ0EsbUJBQ0NBLEVBQWUsb0JBQW9CLEdBQUssaUJBQ3ZDLE1BQU0sR0FBRyxFQUNYLEtBQUFDLEVBQ0Esa0JBQW1CRCxFQUFlLG1CQUFtQixHQUFLLFlBQzFELFVBQVdELEVBQWEsTUFBTSxHQUFHLENBQ2xDLENBQ0QsQ0FFTyxTQUFTRyxHQUFJQyxFQUFlTCxHQUFTLEVBQVMsQ0FDcERNLEdBQU9ELENBQUssRUFDWkUsR0FBUUYsQ0FBSyxDQUNkLENBRUksWUFBWSxNQUFRRyxHQUFjLFFBQVEsS0FBSyxDQUFDLENBQUMsRUFBRSxNQUN0REosR0FBSSIsCiAgIm5hbWVzIjogWyJwYXRoVG9GaWxlVVJMIiwgImNvbnNvbGUiLCAiZnMiLCAicGF0aCIsICJmcyIsICJwYXRoIiwgInByb2Nlc3MiLCAiY29uc29sZSIsICJmcyIsICJsb2FkSnNvbkZpbGUiLCAicGF0aCIsICJsb2FkTWV0YUZpbGUiLCAibG9hZEFuYWx5c2lzSnNvbiIsICJnZXRTaW5nbGVJbnB1dCIsICJuYW1lIiwgInJlcG9ydCIsICJpbnB1dCIsICJhbGxQYWdlU2l6ZXMiLCAiZ2V0QWxsUGFnZVNpemVzIiwgImZzIiwgInBhdGgiLCAicHJvY2VzcyIsICJyZXN1bHRKc29uUGF0aCIsICJmaW5kTWV0YWZpbGVzIiwgIm1ldGFmaWxlIiwgImdsb2JTeW5jIiwgIm1ldGFGaWxlUGF0aCIsICJhY2MiLCAibWV0YWZpbGVzIiwgInJlc3VsdCIsICJyZWxhdGl2ZVBhdGgiLCAiYWJzb2x1dGVQYXRoIiwgIm1ldGFGaWxlSnNvbiIsICJsb2FkTWV0YUZpbGUiLCAib3V0cHV0IiwgIm91dGZpbGUiLCAiYnVpbGRNZXRhIiwgImV4dCIsICJjb21wYXJlIiwgImlucHV0IiwgImhhc0FueUNoYW5nZSIsICJvdXRwdXQiLCAiY3VycmVudEFuYWx5c2lzUGF0aCIsICJwYXRoIiwgImN1cnJlbnQiLCAibG9hZEFuYWx5c2lzSnNvbiIsICJiYXNlIiwgImxvYWRCYXNlQW5hbHlzaXNKc29uIiwgImZpbGVUcmVlIiwgImJ1aWxkRmlsZVRyZWUiLCAiY29tcGFyaXNvbiIsICJvdXRmaWxlIiwgImN1cnJlbnRTdGF0cyIsICJiYXNlU3RhdHMiLCAidHJlZSIsICJ0cmVlS2V5IiwgImRpZmYiLCAibWFya2Rvd25UYWJsZSIsICJub0NoYW5nZXNUYWJsZSIsICJmaWxlU2l6ZVRhYmxlIiwgImRldGFpbCIsICJ3cml0ZUNvbW1lbnQiLCAibWV0YWZpbGUiLCAiZnMiLCAiYmFzZUFuYWx5c2lzUGF0aCIsICJyZXBvcnQiLCAiYnVpbGRSb290IiwgInJvb3QiLCAiZmlsZVBhdGgiLCAiYnl0ZXNJbk91dHB1dCIsICJkaXJlY3RvcmllcyIsICJidWlsZE5vZGUiLCAibm9kZSIsICJwYXRocyIsICJ2YWx1ZSIsICJmaXJzdCIsICJjaGlsZCIsICJ0cmVlcyIsICJyZWxhdGl2ZVBhdGgiLCAiYWJzb2x1dGVQYXRoIiwgImZpbmRNZXRhZmlsZXMiLCAibWV0YWZpbGVKc29uIiwgImxvYWRNZXRhRmlsZSIsICJidWlsZE1ldGEiLCAic3BhY2VyIiwgImZpbGVzaXplIiwgImJ5dGVzIiwgInNpZ24iLCAibiIsICJzaG91bGRTaG93QnVuZGxlIiwgImQiLCAic2hvd05vQ2hhbmdlIiwgImRhdGEiLCAicmVkVGhyZXNob2xkIiwgInJlbmRlclNpemUiLCAicmVuZGVyTm90ZSIsICJub0NoYW5nZUJ1bmRsZXMiLCAicm93cyIsICJmaW5kTGFyZ2VEaXJlY3RvcmllcyIsICJOIiwgIm5vZGVzIiwgInF1ZXVlIiwgInNoaWZ0IiwgImRlcHRoIiwgIml0ZW0iLCAiYSIsICJiIiwgImZpeGVkUGVyY2VudCIsICJ0b3BOTGFyZ2VzdFBhdGhzIiwgInRvdGFsU2l6ZSIsICJsYXJnZU5vZGVzIiwgImhhc090aGVyIiwgInBlcmNlbnQiLCAicmVuZGVyQmFyIiwgIm90aGVyU2l6ZSIsICJvdGhlclBlcmNlbnQiLCAicHJvZ3Jlc3MiLCAiYmxvY2tzIiwgInByb2dyZXNzaW9uIiwgImxlbmd0aCIsICJ2bWluIiwgInZtYXgiLCAidiIsICJpbnRlZ2VyUGFydCIsICJmcmFjdGlvbmFsUGFydCIsICJpIiwgInBlcmNlbnRDaGFuZ2UiLCAicmVuZGVyU3RhdHVzSW5kaWNhdG9yIiwgIm51bSIsICJyZXMiLCAiZ2V0SW5wdXQiLCAicmF3TWV0YWZpbGVzIiwgImdldFNpbmdsZUlucHV0IiwgIm5hbWUiLCAicnVuIiwgImlucHV0IiwgInJlcG9ydCIsICJjb21wYXJlIiwgInBhdGhUb0ZpbGVVUkwiXQp9Cg== +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2luZGV4LnRzIiwgIi4uL3NyYy9jb21wYXJlLnRzIiwgIi4uL3NyYy9yZXBvcnQudHMiLCAiLi4vc3JjL3V0aWxzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBwYXRoVG9GaWxlVVJMIH0gZnJvbSBcIm5vZGU6dXJsXCI7XG5pbXBvcnQgeyBjb21wYXJlIH0gZnJvbSBcIi4vY29tcGFyZVwiO1xuaW1wb3J0IHsgcmVwb3J0IH0gZnJvbSBcIi4vcmVwb3J0XCI7XG5pbXBvcnQgdHlwZSB7IElucHV0IH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IGdldFNpbmdsZUlucHV0IH0gZnJvbSBcIi4vdXRpbHNcIjtcblxuZnVuY3Rpb24gZ2V0SW5wdXQoKTogSW5wdXQge1xuXHRjb25zdCByYXdNZXRhZmlsZXMgPSBnZXRTaW5nbGVJbnB1dChcIm1ldGFmaWxlc1wiKTtcblx0aWYgKCFyYXdNZXRhZmlsZXMpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJtZXRhZmlsZXMgaXMgbm90IHNwZWNpZmllZFwiKTtcblx0fVxuXHRjb25zdCBuYW1lID0gZ2V0U2luZ2xlSW5wdXQoXCJuYW1lXCIpO1xuXHRpZiAoIW5hbWUpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJuYW1lIGlzIG5vdCBzcGVjaWZpZWRcIik7XG5cdH1cblx0cmV0dXJuIHtcblx0XHRwZXJjZW50RXh0cmFBdHRlbnRpb246IE51bWJlci5wYXJzZUludChcblx0XHRcdGdldFNpbmdsZUlucHV0KFwicGVyY2VudF9leHRyYV9hdHRlbnRpb25cIikgfHwgXCIyMFwiLFxuXHRcdFx0MTAsXG5cdFx0KSxcblx0XHRzaG93RGV0YWlsczogW1widHJ1ZVwiLCBcIlRydWVcIiwgXCJUUlVFXCJdLmluY2x1ZGVzKFxuXHRcdFx0Z2V0U2luZ2xlSW5wdXQoXCJzaG93X2RldGFpbHNcIikgfHwgXCJ0cnVlXCIsXG5cdFx0KSxcblx0XHRzaG93Tm9DaGFuZ2U6IFtcInRydWVcIiwgXCJUcnVlXCIsIFwiVFJVRVwiXS5pbmNsdWRlcyhcblx0XHRcdGdldFNpbmdsZUlucHV0KFwic2hvd19ub19jaGFuZ2VcIikgfHwgXCJ0cnVlXCIsXG5cdFx0KSxcblx0XHR0b3BOTGFyZ2VzdFBhdGhzOiBOdW1iZXIucGFyc2VJbnQoXG5cdFx0XHRnZXRTaW5nbGVJbnB1dChcInRvcF9uX2xhcmdlc3RfcGF0aHNcIikgfHwgXCIyMFwiLFxuXHRcdFx0MTAsXG5cdFx0KSxcblx0XHRpbmNsdWRlRXh0ZW5zaW9uczogKFxuXHRcdFx0Z2V0U2luZ2xlSW5wdXQoXCJpbmNsdWRlX2V4dGVuc2lvbnNcIikgfHwgXCIuanMsLm1qcywuY2pzXCJcblx0XHQpLnNwbGl0KFwiLFwiKSxcblx0XHRuYW1lLFxuXHRcdGFuYWx5emVyRGlyZWN0b3J5OiBnZXRTaW5nbGVJbnB1dChcImFuYWx5emVfZGlyZWN0b3J5XCIpIHx8IFwiLmFuYWx5emVyXCIsXG5cdFx0bWV0YWZpbGVzOiByYXdNZXRhZmlsZXMuc3BsaXQoXCIsXCIpLFxuXHR9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcnVuKGlucHV0OiBJbnB1dCA9IGdldElucHV0KCkpOiB2b2lkIHtcblx0cmVwb3J0KGlucHV0KTtcblx0Y29tcGFyZShpbnB1dCk7XG59XG5cbmlmIChpbXBvcnQubWV0YS51cmwgPT09IHBhdGhUb0ZpbGVVUkwocHJvY2Vzcy5hcmd2WzFdKS5ocmVmKSB7XG5cdHJ1bigpO1xufVxuIiwgImltcG9ydCAqIGFzIGNvbnNvbGUgZnJvbSBcIm5vZGU6Y29uc29sZVwiO1xuaW1wb3J0IGZzIGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBmaW5kTWV0YWZpbGVzIH0gZnJvbSBcIi4vcmVwb3J0XCI7XG5pbXBvcnQgdHlwZSB7IENvbXBhcmVSZXN1bHQsIElucHV0LCBSZXBvcnQsIFRyZWVNYXBOb2RlIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IGxvYWRBbmFseXNpc0pzb24sIGxvYWRNZXRhRmlsZSB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wYXJlKGlucHV0OiBJbnB1dCk6IHZvaWQge1xuXHRsZXQgaGFzQW55Q2hhbmdlID0gZmFsc2U7XG5cdGxldCBvdXRwdXQgPSBgIyMgXHVEODNEXHVEQ0U2IGVzYnVpbGQgQnVuZGxlIEFuYWx5c2lzIGZvciAke2lucHV0Lm5hbWV9XG5cblRoaXMgYW5hbHlzaXMgd2FzIGdlbmVyYXRlZCBieSBbZXNidWlsZC1idW5kbGUtYW5hbHl6ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9leG9lZ28vZXNidWlsZC1idW5kbGUtYW5hbHl6ZXIpLiBcdUQ4M0VcdUREMTZcbmA7XG5cblx0Y29uc3QgY3VycmVudEFuYWx5c2lzUGF0aCA9IHBhdGguam9pbihcblx0XHRwcm9jZXNzLmN3ZCgpLFxuXHRcdGlucHV0LmFuYWx5emVyRGlyZWN0b3J5LFxuXHRcdFwiYnVuZGxlX2FuYWx5c2lzLmpzb25cIixcblx0KTtcblx0Y29uc3QgY3VycmVudCA9IGxvYWRBbmFseXNpc0pzb24oY3VycmVudEFuYWx5c2lzUGF0aCk7XG5cdGNvbnNvbGUubG9nKGBDdXJyZW50IGFuYWx5c2lzIGZvdW5kIGluICR7Y3VycmVudEFuYWx5c2lzUGF0aH1gLCBjdXJyZW50KTtcblx0Y29uc3QgYmFzZSA9IGxvYWRCYXNlQW5hbHlzaXNKc29uKGlucHV0KTtcblxuXHRjb25zdCBmaWxlVHJlZSA9IGJ1aWxkRmlsZVRyZWUoaW5wdXQpO1xuXG5cdGNvbnN0IGFsbE91dEZpbGVzOiBzdHJpbmdbXSA9IFtcblx0XHQuLi5uZXcgU2V0KFsuLi5PYmplY3Qua2V5cyhjdXJyZW50KSwgLi4uT2JqZWN0LmtleXMoYmFzZSldKSxcblx0XS5zb3J0KCk7XG5cblx0Y29uc3QgY29tcGFyaXNvbjogQXJyYXk8Q29tcGFyZVJlc3VsdD4gPSBhbGxPdXRGaWxlcy5tYXAoKG91dGZpbGUpID0+IHtcblx0XHRjb25zdCBjdXJyZW50U3RhdHMgPSBjdXJyZW50W291dGZpbGVdO1xuXHRcdGNvbnN0IGJhc2VTdGF0cyA9IGJhc2Vbb3V0ZmlsZV07XG5cdFx0Y29uc29sZS5sb2coXCJDb21wYXJpbmdcIiwgb3V0ZmlsZSwgY3VycmVudFN0YXRzLCBiYXNlU3RhdHMpO1xuXG5cdFx0aWYgKCFjdXJyZW50U3RhdHMpIHtcblx0XHRcdGNvbnNvbGUubG9nKFwiRGVsZXRlZCBmaWxlXCIsIG91dGZpbGUpO1xuXHRcdFx0aGFzQW55Q2hhbmdlID0gdHJ1ZTtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdC4uLmJhc2VTdGF0cyxcblx0XHRcdFx0YmFzZUJ5dGVzOiAtMSxcblx0XHRcdFx0cmVtYXJrOiBcImRlbGV0ZWRcIixcblx0XHRcdFx0dHJlZTogdW5kZWZpbmVkLFxuXHRcdFx0fTtcblx0XHR9XG5cblx0XHRjb25zdCB0cmVlID0gZmlsZVRyZWUuZ2V0KFxuXHRcdFx0dHJlZUtleShjdXJyZW50U3RhdHMubWV0YWZpbGUsIGN1cnJlbnRTdGF0cy5vdXRmaWxlKSxcblx0XHQpO1xuXHRcdGlmICghYmFzZVN0YXRzKSB7XG5cdFx0XHRjb25zb2xlLmxvZyhcIk5ldyBmaWxlXCIsIG91dGZpbGUpO1xuXHRcdFx0aGFzQW55Q2hhbmdlID0gdHJ1ZTtcblx0XHRcdHJldHVybiB7IC4uLmN1cnJlbnRTdGF0cywgYmFzZUJ5dGVzOiAtMSwgcmVtYXJrOiBcImFkZGVkXCIsIHRyZWUgfTtcblx0XHR9XG5cblx0XHRjb25zdCBkaWZmID0gY3VycmVudFN0YXRzLmJ5dGVzIC0gYmFzZVN0YXRzLmJ5dGVzO1xuXHRcdGlmIChkaWZmICE9PSAwKSB7XG5cdFx0XHRjb25zb2xlLmxvZyhcIkNoYW5nZWQgZmlsZVwiLCBvdXRmaWxlLCBkaWZmKTtcblx0XHRcdGhhc0FueUNoYW5nZSA9IHRydWU7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnNvbGUubG9nKFwiTm8gY2hhbmdlXCIsIG91dGZpbGUpO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0Li4uY3VycmVudFN0YXRzLFxuXHRcdFx0YmFzZUJ5dGVzOiBiYXNlU3RhdHMuYnl0ZXMsXG5cdFx0XHR0cmVlLFxuXHRcdFx0cmVtYXJrOiBNYXRoLnNpZ24oZGlmZikgPyBcImluY3JlYXNlZFwiIDogXCJkZWNyZWFzZWRcIixcblx0XHR9O1xuXHR9KTtcblx0Y29uc29sZS5sb2coXCJDb21wYXJpc29uIGRvbmUuXCIsIGNvbXBhcmlzb24pO1xuXG5cdGlmIChoYXNBbnlDaGFuZ2UpIHtcblx0XHRvdXRwdXQgKz0gbWFya2Rvd25UYWJsZShcblx0XHRcdGNvbXBhcmlzb24sXG5cdFx0XHRpbnB1dC5wZXJjZW50RXh0cmFBdHRlbnRpb24sXG5cdFx0XHRpbnB1dC5zaG93Tm9DaGFuZ2UsXG5cdFx0KTtcblx0XHRvdXRwdXQgKz0gbm9DaGFuZ2VzVGFibGUoY29tcGFyaXNvbiwgaW5wdXQuc2hvd05vQ2hhbmdlKTtcblx0XHRvdXRwdXQgKz0gZmlsZVNpemVUYWJsZShjb21wYXJpc29uLCBpbnB1dC50b3BOTGFyZ2VzdFBhdGhzKTtcblx0XHRvdXRwdXQgKz0gZGV0YWlsKGlucHV0KTtcblx0fSBlbHNlIHtcblx0XHRvdXRwdXQgKz0gXCJUaGlzIFBSIGludHJvZHVjZWQgbm8gY2hhbmdlcyB0byB0aGUgZXNidWlsZCBidW5kbGUhIFx1RDgzRFx1REU0Q1wiO1xuXHR9XG5cblx0Ly8gd2UgYWRkIHRoaXMgdGFnIHNvIHRoYXQgb3VyIGFjdGlvbiBjYW4gYmUgYWJsZSB0byBlYXNpbHkgYW5kXG5cdC8vIGNvbnNpc3RlbnRseSBmaW5kIHRoZSByaWdodCBjb21tZW50IHRvIGVkaXQgYXMgbW9yZSBjb21taXRzIGFyZSBwdXNoZWQuXG5cdC8vIFRhZyBpcyBhZGRlZCB0byB0aGUgdG9wIG9mIHRoZSBjb21tZW50IHRvIGF2b2lkIHRoZSB0cnVuY2F0aW9uLlxuXHRvdXRwdXQgPSBgPCEtLSBfX0VTQlVJTERfQlVORExFXyR7aW5wdXQubmFtZX0gLS0+XG4ke291dHB1dH1gO1xuXG5cdHdyaXRlQ29tbWVudChpbnB1dCwgb3V0cHV0KTtcbn1cblxuZnVuY3Rpb24gdHJlZUtleShtZXRhZmlsZTogc3RyaW5nLCBvdXRmaWxlOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRyZXR1cm4gYCR7bWV0YWZpbGV9IC0+ICR7b3V0ZmlsZX1gO1xufVxuXG4vLyBXcml0ZSB0aGUgb3V0cHV0IHRvIGEgZmlsZSB3aGljaCBpcyBsYXRlciByZWFkIGluXG4vLyBhcyBjb21tZW50IGNvbnRlbnRzIGJ5IHRoZSBhY3Rpb25zIHdvcmtmbG93LlxuZnVuY3Rpb24gd3JpdGVDb21tZW50KGlucHV0OiBJbnB1dCwgb3V0cHV0OiBzdHJpbmcpOiB2b2lkIHtcblx0Y29uc29sZS5sb2coXCJXcml0aW5nIGNvbW1lbnQgdG8gZmlsZS5cIiwgb3V0cHV0KTtcblx0ZnMubWtkaXJTeW5jKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBpbnB1dC5hbmFseXplckRpcmVjdG9yeSksIHtcblx0XHRyZWN1cnNpdmU6IHRydWUsXG5cdH0pO1xuXHRmcy53cml0ZUZpbGVTeW5jKFxuXHRcdHBhdGguam9pbihcblx0XHRcdHByb2Nlc3MuY3dkKCksXG5cdFx0XHRpbnB1dC5hbmFseXplckRpcmVjdG9yeSxcblx0XHRcdFwiYnVuZGxlX2FuYWx5c2lzX2NvbW1lbnQudHh0XCIsXG5cdFx0KSxcblx0XHRvdXRwdXQudHJpbSgpLFxuXHQpO1xufVxuXG5mdW5jdGlvbiBkZXRhaWwoaW5wdXQ6IElucHV0KTogc3RyaW5nIHtcblx0aWYgKCFpbnB1dC5zaG93RGV0YWlscykge1xuXHRcdHJldHVybiBcIlwiO1xuXHR9XG5cdHJldHVybiBgXFxuPGRldGFpbHM+XG48c3VtbWFyeT5EZXRhaWxzPC9zdW1tYXJ5PlxuPHA+TmV4dCB0byB0aGUgc2l6ZSBpcyBob3cgbXVjaCB0aGUgc2l6ZSBoYXMgaW5jcmVhc2VkIG9yIGRlY3JlYXNlZCBjb21wYXJlZCB3aXRoIHRoZSBiYXNlIGJyYW5jaCBvZiB0aGlzIFBSLjwvcD5cbjx1bD5cbjxsaT5cdTIwM0NcdUZFMEY6IFNpemUgaW5jcmVhc2VkIGJ5ICR7aW5wdXQucGVyY2VudEV4dHJhQXR0ZW50aW9ufSUgb3IgbW9yZS4gU3BlY2lhbCBhdHRlbnRpb24gc2hvdWxkIGJlIGdpdmVuIHRvIHRoaXMuPC9saT5cbjxsaT5cdTI2QTBcdUZFMEY6IFNpemUgaW5jcmVhc2VkIGluIGFjY2VwdGFibGUgcmFuZ2UgKGxvd2VyIHRoYW4gJHtpbnB1dC5wZXJjZW50RXh0cmFBdHRlbnRpb259JSkuPC9saT5cbjxsaT5cdTI3MDU6IE5vIGNoYW5nZSBvciBldmVuIGRvd25zaXplZC48L2xpPlxuPGxpPlx1RDgzRFx1REREMVx1RkUwRjogVGhlIG91dCBmaWxlIGlzIGRlbGV0ZWQ6IG5vdCBmb3VuZCBpbiBiYXNlIGJyYW5jaC48L2xpPlxuPGxpPlx1RDgzQ1x1REQ5NTogVGhlIG91dCBmaWxlIGlzIG5ld2x5IGZvdW5kOiB3aWxsIGJlIGFkZGVkIHRvIGJhc2UgYnJhbmNoLjwvbGk+XG48L3VsPlxuPC9kZXRhaWxzPlxcbmA7XG59XG5cbmZ1bmN0aW9uIGxvYWRCYXNlQW5hbHlzaXNKc29uKGlucHV0OiBJbnB1dCk6IFJlcG9ydCB7XG5cdHRyeSB7XG5cdFx0Y29uc3QgYmFzZUFuYWx5c2lzUGF0aCA9IHBhdGguam9pbihcblx0XHRcdHByb2Nlc3MuY3dkKCksXG5cdFx0XHRpbnB1dC5hbmFseXplckRpcmVjdG9yeSxcblx0XHRcdFwiYmFzZS9idW5kbGUvYnVuZGxlX2FuYWx5c2lzLmpzb25cIixcblx0XHQpO1xuXHRcdGNvbnN0IHJlcG9ydCA9IGxvYWRBbmFseXNpc0pzb24oYmFzZUFuYWx5c2lzUGF0aCk7XG5cdFx0Y29uc29sZS5pbmZvKGBCYXNlIGFuYWx5c2lzIGZvdW5kIGluICR7YmFzZUFuYWx5c2lzUGF0aH1gLCByZXBvcnQpO1xuXHRcdHJldHVybiByZXBvcnQ7XG5cdH0gY2F0Y2ggKGUpIHtcblx0XHRjb25zb2xlLndhcm4oXG5cdFx0XHRcIk5vIGJhc2UgYW5hbHlzaXMgZm91bmQuIEZpcnN0IHNldHVwIG9yIGFsbCBhcnRpZmFjdHMgYXJlIGV4cGlyZWQuXCIsXG5cdFx0KTtcblx0XHRyZXR1cm4ge307XG5cdH1cbn1cblxuZnVuY3Rpb24gYnVpbGRGaWxlVHJlZShpbnB1dDogSW5wdXQpIHtcblx0ZnVuY3Rpb24gYnVpbGRSb290KFxuXHRcdGlucHV0OiBSZWNvcmQ8c3RyaW5nLCB7IGJ5dGVzSW5PdXRwdXQ6IG51bWJlciB9Pixcblx0KTogVHJlZU1hcE5vZGUge1xuXHRcdGNvbnN0IHJvb3Q6IFRyZWVNYXBOb2RlID0geyBuYW1lOiBcIlwiLCBwYXRoOiBcIlwiLCB2YWx1ZTogMCwgY2hpbGRyZW46IFtdIH07XG5cdFx0Zm9yIChjb25zdCBbZmlsZVBhdGgsIHsgYnl0ZXNJbk91dHB1dCB9XSBvZiBPYmplY3QuZW50cmllcyhpbnB1dCkpIHtcblx0XHRcdGNvbnN0IGRpcmVjdG9yaWVzID0gZmlsZVBhdGguc3BsaXQoXCIvXCIpO1xuXHRcdFx0YnVpbGROb2RlKHJvb3QsIGRpcmVjdG9yaWVzLCBieXRlc0luT3V0cHV0KTtcblx0XHR9XG5cdFx0cmV0dXJuIHJvb3Q7XG5cdH1cblxuXHRmdW5jdGlvbiBidWlsZE5vZGUoXG5cdFx0bm9kZTogVHJlZU1hcE5vZGUsXG5cdFx0cGF0aHM6IEFycmF5PHN0cmluZz4sXG5cdFx0dmFsdWU6IG51bWJlcixcblx0KTogdm9pZCB7XG5cdFx0Y29uc3QgZmlyc3QgPSBwYXRocy5zaGlmdCgpO1xuXHRcdGlmIChmaXJzdCA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHQvLyBsZWFmIG5vZGUgKGZpbGUpXG5cdFx0XHRub2RlLnZhbHVlICs9IHZhbHVlO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRsZXQgY2hpbGQgPSBub2RlLmNoaWxkcmVuLmZpbmQoKGNoaWxkKSA9PiBjaGlsZC5uYW1lID09PSBmaXJzdCk7XG5cdFx0aWYgKCFjaGlsZCkge1xuXHRcdFx0Y2hpbGQgPSB7XG5cdFx0XHRcdG5hbWU6IGZpcnN0LFxuXHRcdFx0XHRwYXRoOiBgJHtub2RlLnBhdGh9LyR7Zmlyc3R9YC5yZXBsYWNlKC9eXFwvLywgXCJcIiksXG5cdFx0XHRcdHZhbHVlOiAwLFxuXHRcdFx0XHRjaGlsZHJlbjogW10sXG5cdFx0XHR9O1xuXHRcdFx0bm9kZS5jaGlsZHJlbi5wdXNoKGNoaWxkKTtcblx0XHR9XG5cdFx0bm9kZS52YWx1ZSArPSB2YWx1ZTtcblx0XHRidWlsZE5vZGUoY2hpbGQsIHBhdGhzLCB2YWx1ZSk7XG5cdH1cblxuXHRjb25zdCB0cmVlcyA9IG5ldyBNYXA8c3RyaW5nLCBUcmVlTWFwTm9kZT4oKTtcblx0aWYgKGlucHV0LnRvcE5MYXJnZXN0UGF0aHMgPD0gMCkge1xuXHRcdC8vIFNraXAgYnVpbGRpbmcgdHJlZSBpZiB3ZSBkb24ndCBuZWVkIGl0LlxuXHRcdHJldHVybiB0cmVlcztcblx0fVxuXHRmb3IgKGNvbnN0IHsgcmVsYXRpdmVQYXRoLCBhYnNvbHV0ZVBhdGggfSBvZiBmaW5kTWV0YWZpbGVzKGlucHV0KSkge1xuXHRcdGNvbnN0IG1ldGFmaWxlSnNvbiA9IGxvYWRNZXRhRmlsZShhYnNvbHV0ZVBhdGgpO1xuXHRcdGZvciAoY29uc3QgW291dGZpbGUsIGJ1aWxkTWV0YV0gb2YgT2JqZWN0LmVudHJpZXMobWV0YWZpbGVKc29uLm91dHB1dHMpKSB7XG5cdFx0XHRjb25zdCB0cmVlID0gYnVpbGRSb290KGJ1aWxkTWV0YS5pbnB1dHMpO1xuXHRcdFx0dHJlZXMuc2V0KHRyZWVLZXkocmVsYXRpdmVQYXRoLCBvdXRmaWxlKSwgdHJlZSk7XG5cblx0XHRcdGZzLndyaXRlRmlsZVN5bmMoXG5cdFx0XHRcdHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBpbnB1dC5hbmFseXplckRpcmVjdG9yeSwgXCJ0cmVlLmpzb25cIiksXG5cdFx0XHRcdEpTT04uc3RyaW5naWZ5KHRyZWUsIG51bGwsIDIpLFxuXHRcdFx0KTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHRyZWVzO1xufVxuXG5jb25zdCBzcGFjZXIgPSBcIlx1MDBBMFwiO1xuZnVuY3Rpb24gZmlsZXNpemUoYnl0ZXM6IG51bWJlcik6IHN0cmluZyB7XG5cdGNvbnN0IHNpZ24gPSBieXRlcyA8IDAgPyBcIi1cIiA6IFwiXCI7XG5cdGNvbnN0IG4gPSBNYXRoLmFicyhieXRlcyk7XG5cdGlmIChuIDwgMTAwMCkge1xuXHRcdHJldHVybiBgJHtzaWdufSR7bn0ke3NwYWNlcn1CYDtcblx0fVxuXHRpZiAobiA8IDEwMDAgKiAxMDAwKSB7XG5cdFx0cmV0dXJuIGAke3NpZ259JHsobiAvIDEwMDApLnRvRml4ZWQoMil9JHtzcGFjZXJ9S0JgO1xuXHR9XG5cdGlmIChuIDwgMTAwMCAqIDEwMDAgKiAxMDAwKSB7XG5cdFx0cmV0dXJuIGAke3NpZ259JHsobiAvIDEwMDAgLyAxMDAwKS50b0ZpeGVkKDIpfSR7c3BhY2VyfU1CYDtcblx0fVxuXHRpZiAobiA8IDEwMDAgKiAxMDAwICogMTAwMCAqIDEwMDApIHtcblx0XHRyZXR1cm4gYCR7c2lnbn0keyhuIC8gMTAwMCAvIDEwMDAgLyAxMDAwKS50b0ZpeGVkKDIpfSR7c3BhY2VyfUdCYDtcblx0fVxuXHR0aHJvdyBuZXcgRXJyb3IoXCJUb28gbGFyZ2UgZmlsZSBzaXplISEgQXJlIHlvdSBzdXJlP1wiKTtcbn1cblxuY29uc3Qgc2hvdWxkU2hvd0J1bmRsZSA9IChkOiBDb21wYXJlUmVzdWx0LCBzaG93Tm9DaGFuZ2U6IGJvb2xlYW4pID0+XG5cdHNob3dOb0NoYW5nZSB8fCBkLmJ5dGVzIC0gZC5iYXNlQnl0ZXMgIT09IDA7XG5cbmZ1bmN0aW9uIG1hcmtkb3duVGFibGUoXG5cdGRhdGE6IEFycmF5PENvbXBhcmVSZXN1bHQ+LFxuXHRyZWRUaHJlc2hvbGQ6IG51bWJlcixcblx0c2hvd05vQ2hhbmdlOiBib29sZWFuLFxuKTogc3RyaW5nIHtcblx0Y29uc3Qgcm93cyA9IGRhdGFcblx0XHQuZmlsdGVyKChkKSA9PiBzaG91bGRTaG93QnVuZGxlKGQsIHNob3dOb0NoYW5nZSkpXG5cdFx0Lm1hcCgoZCkgPT4ge1xuXHRcdFx0cmV0dXJuIGAke2QubWV0YWZpbGV9IHwgJHtkLm91dGZpbGV9IHwgJHtyZW5kZXJTaXplKGQpfSB8ICR7cmVuZGVyTm90ZShcblx0XHRcdFx0ZCxcblx0XHRcdFx0cmVkVGhyZXNob2xkLFxuXHRcdFx0KX1cXG5gO1xuXHRcdH0pXG5cdFx0LmpvaW4oXCJcIik7XG5cblx0cmV0dXJuIGBcbk1ldGEgRmlsZSB8IE91dCBGaWxlICB8IFNpemUgKHJhdykgfCBOb3RlXG4tLS0tLS0tLS0tfC0tLS0tLS0tLS18LS0tLS0tLS0tLS06fC0tLS0tLVxuJHtyb3dzfWA7XG59XG5cbmZ1bmN0aW9uIG5vQ2hhbmdlc1RhYmxlKFxuXHRkYXRhOiBBcnJheTxDb21wYXJlUmVzdWx0Pixcblx0c2hvd05vQ2hhbmdlOiBib29sZWFuLFxuKTogc3RyaW5nIHtcblx0Y29uc3Qgbm9DaGFuZ2VCdW5kbGVzID0gZGF0YS5maWx0ZXIoXG5cdFx0KGQpID0+ICFzaG91bGRTaG93QnVuZGxlKGQsIHNob3dOb0NoYW5nZSksXG5cdCk7XG5cdGNvbnN0IHJvd3MgPSBub0NoYW5nZUJ1bmRsZXNcblx0XHQubWFwKChkKSA9PiB7XG5cdFx0XHRyZXR1cm4gYCR7ZC5tZXRhZmlsZX0gfCAke2Qub3V0ZmlsZX0gfCAke3JlbmRlclNpemUoZCl9IHwgXHUyNzA1ICBObyBjaGFuZ2VcXG5gO1xuXHRcdH0pXG5cdFx0LmpvaW4oXCJcIik7XG5cdGlmIChub0NoYW5nZUJ1bmRsZXMubGVuZ3RoID09PSAwKSB7XG5cdFx0cmV0dXJuIFwiXCI7XG5cdH1cblx0cmV0dXJuIGBcbjxkZXRhaWxzPlxuPHN1bW1hcnk+JHtub0NoYW5nZUJ1bmRsZXMubGVuZ3RofSBidW5kbGVzIHdpdGggbm8gY2hhbmdlIGFyZSBoaWRkZW4uPC9zdW1tYXJ5PiAgICBcblxuTWV0YSBGaWxlIHwgT3V0IEZpbGUgIHwgU2l6ZSAocmF3KSB8IE5vdGUgXG4tLS0tLS0tLS0tfC0tLS0tLS0tLS18LS0tLS0tLS0tLS06fC0tLS0tLVxuJHtyb3dzfVxuXG48L2RldGFpbHM+XG5gO1xufVxuXG4vKipcbiAqIEZpbmQgdGhlIHRvcCBOIGxhcmdlc3Qgbm9kZXMgaW4gcm9vdCB0cmVlLlxuICogRGlnIG5vZGVzIHVudGlsIHRoZSBkZXB0aCBvZiAzLlxuICovXG5mdW5jdGlvbiBmaW5kTGFyZ2VEaXJlY3Rvcmllcyhyb290OiBUcmVlTWFwTm9kZSwgTjogbnVtYmVyKSB7XG5cdGNvbnN0IG5vZGVzOiBUcmVlTWFwTm9kZVtdID0gW107XG5cdGNvbnN0IHF1ZXVlOiBBcnJheTx7IG5vZGU6IFRyZWVNYXBOb2RlOyBkZXB0aDogbnVtYmVyIH0+ID0gW1xuXHRcdHsgbm9kZTogcm9vdCwgZGVwdGg6IDAgfSxcblx0XTtcblx0d2hpbGUgKHF1ZXVlLmxlbmd0aCA+IDApIHtcblx0XHRjb25zdCBzaGlmdCA9IHF1ZXVlLnNoaWZ0KCk7XG5cdFx0aWYgKCFzaGlmdCkge1xuXHRcdFx0YnJlYWs7XG5cdFx0fVxuXHRcdGNvbnN0IHsgbm9kZSwgZGVwdGggfSA9IHNoaWZ0O1xuXHRcdGlmIChkZXB0aCA9PT0gMykge1xuXHRcdFx0bm9kZXMucHVzaChub2RlKTtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblx0XHRpZiAobm9kZS5jaGlsZHJlbi5sZW5ndGggPT09IDApIHtcblx0XHRcdG5vZGVzLnB1c2gobm9kZSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGZvciAoY29uc3QgaXRlbSBvZiBub2RlLmNoaWxkcmVuKSB7XG5cdFx0XHRcdHF1ZXVlLnB1c2goeyBub2RlOiBpdGVtLCBkZXB0aDogZGVwdGggKyAxIH0pO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRjb25zdCBsYXJnZU5vZGVzID0gbm9kZXMuc29ydCgoYSwgYikgPT4gYi52YWx1ZSAtIGEudmFsdWUpLnNsaWNlKDAsIE4pO1xuXHRyZXR1cm4ge1xuXHRcdGxhcmdlTm9kZXMsXG5cdFx0aGFzT3RoZXI6IG5vZGVzLmxlbmd0aCA+IE4sXG5cdH07XG59XG5cbmZ1bmN0aW9uIGZpeGVkUGVyY2VudChuOiBudW1iZXIsIGQ6IG51bWJlcik6IG51bWJlciB7XG5cdHJldHVybiBOdW1iZXIucGFyc2VGbG9hdCgoKG4gLyBkKSAqIDEwMCkudG9GaXhlZCgxKSk7XG59XG5cbmZ1bmN0aW9uIGZpbGVTaXplVGFibGUoXG5cdGRhdGE6IEFycmF5PENvbXBhcmVSZXN1bHQ+LFxuXHR0b3BOTGFyZ2VzdFBhdGhzOiBudW1iZXIsXG4pOiBzdHJpbmcge1xuXHRpZiAoZGF0YS5sZW5ndGggPT09IDAgfHwgdG9wTkxhcmdlc3RQYXRocyA8PSAwKSB7XG5cdFx0cmV0dXJuIFwiXCI7XG5cdH1cblx0bGV0IG91dHB1dCA9IFwiXCI7XG5cdG91dHB1dCArPSBcIjxkZXRhaWxzPlxcblwiO1xuXHRvdXRwdXQgKz0gXCI8c3VtbWFyeT5MYXJnZXN0IHBhdGhzPC9zdW1tYXJ5PlxcblwiO1xuXHRvdXRwdXQgKz0gYFRoZXNlIHZpc3VhbGl6YXRpb24gc2hvd3MgdG9wICR7dG9wTkxhcmdlc3RQYXRoc30gbGFyZ2VzdCBwYXRocyBpbiB0aGUgYnVuZGxlLlxcbmA7XG5cdGZvciAoY29uc3QgZCBvZiBkYXRhKSB7XG5cdFx0b3V0cHV0ICs9IFwiXFxuXCI7XG5cdFx0b3V0cHV0ICs9IGAjIyBNZXRhIGZpbGU6ICR7ZC5tZXRhZmlsZX0sIE91dCBmaWxlOiAke2Qub3V0ZmlsZX1cXG5gO1xuXHRcdGlmICghZC50cmVlKSB7XG5cdFx0XHRvdXRwdXQgKz0gXCJcdUZFMEZcdUZFMEZcdUQ4M0RcdURERDFcdUZFMEZEZWxldGVkXFxuXCI7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cdFx0b3V0cHV0ICs9IFwifCBQYXRoIHwgU2l6ZSB8XFxuXCI7XG5cdFx0b3V0cHV0ICs9IFwifC0tLS0tLXwtLS0tLS0tfFxcblwiO1xuXHRcdGNvbnN0IHRvdGFsU2l6ZSA9IGQudHJlZS52YWx1ZTtcblx0XHRjb25zdCB7IGxhcmdlTm9kZXMsIGhhc090aGVyIH0gPSBmaW5kTGFyZ2VEaXJlY3Rvcmllcyhcblx0XHRcdGQudHJlZSxcblx0XHRcdHRvcE5MYXJnZXN0UGF0aHMsXG5cdFx0KTtcblx0XHRmb3IgKGNvbnN0IHsgcGF0aCwgdmFsdWUgfSBvZiBsYXJnZU5vZGVzKSB7XG5cdFx0XHRjb25zdCBwZXJjZW50ID0gZml4ZWRQZXJjZW50KHZhbHVlLCB0b3RhbFNpemUpO1xuXHRcdFx0b3V0cHV0ICs9IGB8ICR7cGF0aH0gfCAke3JlbmRlckJhcihwZXJjZW50LCB2YWx1ZSl9IHxcXG5gO1xuXHRcdH1cblx0XHRpZiAoaGFzT3RoZXIpIHtcblx0XHRcdGNvbnN0IG90aGVyU2l6ZSA9IHRvdGFsU2l6ZSAtIGxhcmdlTm9kZXNbMF0udmFsdWU7XG5cdFx0XHRjb25zdCBvdGhlclBlcmNlbnQgPSBmaXhlZFBlcmNlbnQob3RoZXJTaXplLCB0b3RhbFNpemUpO1xuXHRcdFx0b3V0cHV0ICs9IGB8IChvdGhlcikgfCAke3JlbmRlckJhcihvdGhlclBlcmNlbnQsIG90aGVyU2l6ZSl9IHxcXG5gO1xuXHRcdH1cblx0fVxuXHRvdXRwdXQgKz0gXCI8L2RldGFpbHM+XFxuXCI7XG5cdHJldHVybiBvdXRwdXQ7XG59XG5cbmZ1bmN0aW9uIHJlbmRlckJhcihwZXJjZW50OiBudW1iZXIsIGJ5dGVzOiBudW1iZXIpOiBzdHJpbmcge1xuXHRjb25zdCBiYXIgPSBwcm9ncmVzcyhwZXJjZW50IC8gMTAwKTtcblx0cmV0dXJuIGBcXCR7e1xcXFxjb2xvcntHb2xkZW5yb2R9eyAke2Jhcn0gfX19XFwkICR7cGVyY2VudC50b0ZpeGVkKFxuXHRcdDEsXG5cdCl9JSwgJHtmaWxlc2l6ZShieXRlcyl9YDtcbn1cblxuLy8gQmxvY2sgcHJvZ3Jlc3Npb24gaXMgMS84ID0gMC4xMjVcbmNvbnN0IGJsb2NrcyA9IFtcIlwiLCBcIlx1MjU4RlwiLCBcIlx1MjU4RVwiLCBcIlx1MjU4RFwiLCBcIlx1MjU4Q1wiLCBcIlx1MjU4QlwiLCBcIlx1MjU4QVwiLCBcIlx1MjU4OVwiLCBcIlx1MjU4OFwiXTtcbmNvbnN0IHByb2dyZXNzaW9uID0gMSAvIChibG9ja3MubGVuZ3RoIC0gMSk7XG5mdW5jdGlvbiBwcm9ncmVzcyh2YWx1ZTogbnVtYmVyLCBsZW5ndGggPSAyNSwgdm1pbiA9IDAuMCwgdm1heCA9IDEuMCkge1xuXHRjb25zdCB2ID0gdmFsdWUgKiBsZW5ndGg7XG5cdGNvbnN0IGludGVnZXJQYXJ0ID0gTWF0aC5mbG9vcih2KTtcblx0Y29uc3QgZnJhY3Rpb25hbFBhcnQgPSB2IC0gaW50ZWdlclBhcnQ7XG5cdGNvbnN0IGkgPSBNYXRoLnJvdW5kKFxuXHRcdChwcm9ncmVzc2lvbiAqIE1hdGguZmxvb3IoZnJhY3Rpb25hbFBhcnQgLyBwcm9ncmVzc2lvbikpIC8gcHJvZ3Jlc3Npb24sXG5cdCk7XG5cdHJldHVybiBcIlx1MjU4OFwiLnJlcGVhdChpbnRlZ2VyUGFydCkgKyBibG9ja3NbaV07XG59XG5cbmZ1bmN0aW9uIHJlbmRlclNpemUoZDogQ29tcGFyZVJlc3VsdCk6IHN0cmluZyB7XG5cdHJldHVybiBmaWxlc2l6ZShkLmJ5dGVzKTtcbn1cblxuZnVuY3Rpb24gcmVuZGVyTm90ZShkOiBDb21wYXJlUmVzdWx0LCByZWRUaHJlc2hvbGQ6IG51bWJlcik6IHN0cmluZyB7XG5cdGlmIChkLnJlbWFyayA9PT0gXCJkZWxldGVkXCIpIHtcblx0XHRyZXR1cm4gXCJcdUQ4M0RcdURERDFcdUZFMEYgRGVsZXRlZFwiO1xuXHR9XG5cdGlmIChkLnJlbWFyayA9PT0gXCJhZGRlZFwiKSB7XG5cdFx0cmV0dXJuIFwiXHVEODNDXHVERDk1IEFkZGVkXCI7XG5cdH1cblx0Y29uc3QgZGlmZiA9IGQuYnl0ZXMgLSBkLmJhc2VCeXRlcztcblx0aWYgKGRpZmYgIT09IDApIHtcblx0XHRjb25zdCBwZXJjZW50Q2hhbmdlID0gKGRpZmYgLyBkLmJhc2VCeXRlcykgKiAxMDA7XG5cdFx0cmV0dXJuIGAke3JlbmRlclN0YXR1c0luZGljYXRvcihwZXJjZW50Q2hhbmdlLCByZWRUaHJlc2hvbGQpfSR7ZmlsZXNpemUoXG5cdFx0XHRkaWZmLFxuXHRcdCl9ICgke3NpZ24ocGVyY2VudENoYW5nZSl9JHtwZXJjZW50Q2hhbmdlLnRvRml4ZWQoMSl9JSlgO1xuXHR9XG5cdHJldHVybiBcIlx1MjcwNSAgTm8gY2hhbmdlXCI7XG59XG5cbmZ1bmN0aW9uIHNpZ24obnVtOiBudW1iZXIpOiBzdHJpbmcge1xuXHRyZXR1cm4gbnVtIDwgMCA/IFwiXCIgOiBcIitcIjtcbn1cblxuZnVuY3Rpb24gcmVuZGVyU3RhdHVzSW5kaWNhdG9yKFxuXHRwZXJjZW50Q2hhbmdlOiBudW1iZXIsXG5cdHJlZFRocmVzaG9sZDogbnVtYmVyLFxuKTogc3RyaW5nIHtcblx0bGV0IHJlczogc3RyaW5nO1xuXHRpZiAocGVyY2VudENoYW5nZSA+IDAgJiYgcGVyY2VudENoYW5nZSA8IHJlZFRocmVzaG9sZCkge1xuXHRcdHJlcyA9IFwiXHUyNkEwXHVGRTBGXCI7XG5cdH0gZWxzZSBpZiAocGVyY2VudENoYW5nZSA+PSByZWRUaHJlc2hvbGQpIHtcblx0XHRyZXMgPSBcIlx1MjAzQ1x1RkUwRlwiO1xuXHR9IGVsc2Uge1xuXHRcdHJlcyA9IFwiXHUyNzA1IFwiO1xuXHR9XG5cdHJldHVybiBgJHtyZXN9ICR7c2lnbihwZXJjZW50Q2hhbmdlKX1gO1xufVxuIiwgImltcG9ydCBmcyBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHByb2Nlc3MgZnJvbSBcIm5vZGU6cHJvY2Vzc1wiO1xuXG5pbXBvcnQgKiBhcyBjb25zb2xlIGZyb20gXCJub2RlOmNvbnNvbGVcIjtcbmltcG9ydCB7IGdsb2JTeW5jIH0gZnJvbSBcImdsb2JcIjtcbmltcG9ydCB0eXBlIHsgSW5wdXQsIFJlcG9ydCB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBsb2FkTWV0YUZpbGUgfSBmcm9tIFwiLi91dGlsc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVwb3J0KGlucHV0OiBJbnB1dCk6IHZvaWQge1xuXHRjb25zdCBhbGxQYWdlU2l6ZXMgPSBnZXRBbGxQYWdlU2l6ZXMoaW5wdXQpO1xuXHRmcy5ta2RpclN5bmMocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIGlucHV0LmFuYWx5emVyRGlyZWN0b3J5KSwge1xuXHRcdHJlY3Vyc2l2ZTogdHJ1ZSxcblx0fSk7XG5cdGNvbnN0IHJlc3VsdEpzb25QYXRoID0gcGF0aC5qb2luKFxuXHRcdHByb2Nlc3MuY3dkKCksXG5cdFx0aW5wdXQuYW5hbHl6ZXJEaXJlY3RvcnksXG5cdFx0XCJidW5kbGVfYW5hbHlzaXMuanNvblwiLFxuXHQpO1xuXHRmcy53cml0ZUZpbGVTeW5jKHJlc3VsdEpzb25QYXRoLCBKU09OLnN0cmluZ2lmeShhbGxQYWdlU2l6ZXMsIG51bGwsIDIpKTtcblx0Y29uc29sZS5sb2coYFdyb3RlICR7cmVzdWx0SnNvblBhdGh9YCwgYWxsUGFnZVNpemVzKTtcbn1cblxuaW50ZXJmYWNlIE1ldGFmaWxlUGF0aCB7XG5cdHJlYWRvbmx5IHJlbGF0aXZlUGF0aDogc3RyaW5nO1xuXHRyZWFkb25seSBhYnNvbHV0ZVBhdGg6IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRNZXRhZmlsZXMoaW5wdXQ6IElucHV0KTogTWV0YWZpbGVQYXRoW10ge1xuXHRyZXR1cm4gaW5wdXQubWV0YWZpbGVzLmZsYXRNYXAoKG1ldGFmaWxlKSA9PiB7XG5cdFx0cmV0dXJuIGdsb2JTeW5jKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBtZXRhZmlsZSksIHtcblx0XHRcdG5vZGlyOiB0cnVlLFxuXHRcdH0pLm1hcCgobWV0YUZpbGVQYXRoKSA9PiB7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRyZWxhdGl2ZVBhdGg6IHBhdGgucmVsYXRpdmUocHJvY2Vzcy5jd2QoKSwgbWV0YUZpbGVQYXRoKSxcblx0XHRcdFx0YWJzb2x1dGVQYXRoOiBtZXRhRmlsZVBhdGgsXG5cdFx0XHR9O1xuXHRcdH0pO1xuXHR9KTtcbn1cblxuZnVuY3Rpb24gZ2V0QWxsUGFnZVNpemVzKGlucHV0OiBJbnB1dCk6IFJlcG9ydCB7XG5cdGNvbnN0IGFjYzogUmVwb3J0ID0ge307XG5cblx0Y29uc3QgbWV0YWZpbGVzID0gZmluZE1ldGFmaWxlcyhpbnB1dCk7XG5cdGNvbnN0IHJlc3VsdCA9IG1ldGFmaWxlcy5yZWR1Y2UoKGFjYywgeyByZWxhdGl2ZVBhdGgsIGFic29sdXRlUGF0aCB9KSA9PiB7XG5cdFx0dHJ5IHtcblx0XHRcdGZzLmFjY2Vzc1N5bmMoYWJzb2x1dGVQYXRoLCBmcy5jb25zdGFudHMuUl9PSyk7XG5cdFx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0XHRjb25zb2xlLmVycm9yKFxuXHRcdFx0XHRgTm8gbWV0YSBmaWxlIGZvdW5kIGF0IFwiJHthYnNvbHV0ZVBhdGh9XCIgLSBhIHBhdGggdG8gbWV0YSBmaWxlIG1heSBiZSB3cm9uZywgb3IgZXNidWlsZCBpcyBub3QgZXhlY3V0ZWQuYCxcblx0XHRcdCk7XG5cdFx0XHRwcm9jZXNzLmV4aXQoMSk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgbWV0YUZpbGVKc29uID0gbG9hZE1ldGFGaWxlKGFic29sdXRlUGF0aCk7XG5cdFx0T2JqZWN0LmVudHJpZXMobWV0YUZpbGVKc29uLm91dHB1dHMpLnJlZHVjZSgoYWNjLCBvdXRwdXQpID0+IHtcblx0XHRcdGNvbnN0IFtvdXRmaWxlLCBidWlsZE1ldGFdID0gb3V0cHV0O1xuXHRcdFx0aWYgKFxuXHRcdFx0XHQhaW5wdXQuaW5jbHVkZUV4dGVuc2lvbnMuc29tZSgoZXh0KSA9PlxuXHRcdFx0XHRcdG91dGZpbGUudG9Mb3dlckNhc2UoKS5lbmRzV2l0aChleHQpLFxuXHRcdFx0XHQpXG5cdFx0XHQpIHtcblx0XHRcdFx0cmV0dXJuIGFjYztcblx0XHRcdH1cblx0XHRcdGFjY1tgJHtyZWxhdGl2ZVBhdGh9IC0+ICR7b3V0ZmlsZX1gXSA9IHtcblx0XHRcdFx0Ynl0ZXM6IGJ1aWxkTWV0YS5ieXRlcyxcblx0XHRcdFx0bWV0YWZpbGU6IHJlbGF0aXZlUGF0aCxcblx0XHRcdFx0b3V0ZmlsZSxcblx0XHRcdH07XG5cdFx0XHRyZXR1cm4gYWNjO1xuXHRcdH0sIGFjYyk7XG5cdFx0cmV0dXJuIGFjYztcblx0fSwgYWNjKTtcblx0Y29uc29sZS5sb2coXCJGb3VuZCBtZXRhZmlsZXNcIiwgbWV0YWZpbGVzKTtcblx0Y29uc29sZS5sb2coXCJGb3VuZCByZXN1bHRcIiwgcmVzdWx0KTtcblx0cmV0dXJuIHJlc3VsdDtcbn1cbiIsICJpbXBvcnQgZnMgZnJvbSBcIm5vZGU6ZnNcIjtcblxuaW1wb3J0IHR5cGUgeyBNZXRhZmlsZSB9IGZyb20gXCJlc2J1aWxkXCI7XG5pbXBvcnQgdHlwZSB7IFJlcG9ydCB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbmZ1bmN0aW9uIGxvYWRKc29uRmlsZShwYXRoOiBzdHJpbmcpIHtcblx0cmV0dXJuIEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKHBhdGgpLnRvU3RyaW5nKFwidXRmLThcIikpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZE1ldGFGaWxlKHBhdGg6IHN0cmluZyk6IE1ldGFmaWxlIHtcblx0cmV0dXJuIGxvYWRKc29uRmlsZShwYXRoKSBhcyBNZXRhZmlsZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRBbmFseXNpc0pzb24ocGF0aDogc3RyaW5nKTogUmVwb3J0IHtcblx0cmV0dXJuIGxvYWRKc29uRmlsZShwYXRoKSBhcyBSZXBvcnQ7XG59XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hY3Rpb25zL3Rvb2xraXQvYmxvYi84MWE3M2FiYThiZWRkNTMyZjZlZGRjYzQxZWQzYTBmYWQ4YjFjZmViL3BhY2thZ2VzL2NvcmUvc3JjL2NvcmUudHMjTDEyNlxuZXhwb3J0IGZ1bmN0aW9uIGdldFNpbmdsZUlucHV0KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG5cdGNvbnN0IHZhbCA9IHByb2Nlc3MuZW52W2BJTlBVVF8ke25hbWUudG9VcHBlckNhc2UoKX1gXSB8fCBcIlwiO1xuXHRyZXR1cm4gdmFsLnRyaW0oKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICJtc0dBQUEsT0FBUyxpQkFBQUEsT0FBcUIsV0NBOUIsVUFBWUMsTUFBYSxlQUN6QixPQUFPQyxPQUFRLFVBQ2YsT0FBT0MsT0FBVSxZQ0Zq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QUFDRCxFQUNKLE1BQU0sSUFBSSxNQUFNLDRCQUE0QixFQUU3QyxJQUFNRSxFQUFPRCxFQUFlLE1BQU0sRUFDbEMsR0FBSSxDQUFDQyxFQUNKLE1BQU0sSUFBSSxNQUFNLHVCQUF1QixFQUV4QyxNQUFPLENBQ04sc0JBQXVCLE9BQU8sU0FDN0JELEVBQWUseUJBQXlCLEdBQUssS0FDN0MsRUFDRCxFQUNBLFlBQWEsQ0FBQyxPQUFRLE9BQVEsTUFBTSxFQUFFLFNBQ3JDQSxFQUFlLGNBQWMsR0FBSyxNQUNuQyxFQUNBLGFBQWMsQ0FBQyxPQUFRLE9BQVEsTUFBTSxFQUFFLFNBQ3RDQSxFQUFlLGdCQUFnQixHQUFLLE1BQ3JDLEVBQ0EsaUJBQWtCLE9BQU8sU0FDeEJBLEVBQWUscUJBQXFCLEdBQUssS0FDekMsRUFDRCxFQUNBLG1CQUNDQSxFQUFlLG9CQUFvQixHQUFLLGlCQUN2QyxNQUFNLEdBQUcsRUFDWCxLQUFBQyxFQUNBLGtCQUFtQkQsRUFBZSxtQkFBbUIsR0FBSyxZQUMxRCxVQUFXRCxFQUFhLE1BQU0sR0FBRyxDQUNsQyxDQUNELENBRU8sU0FBU0csR0FBSUMsRUFBZUwsR0FBUyxFQUFTLENBQ3BETSxHQUFPRCxDQUFLLEVBQ1pFLEdBQVFGLENBQUssQ0FDZCxDQUVJLFlBQVksTUFBUUcsR0FBYyxRQUFRLEtBQUssQ0FBQyxDQUFDLEVBQUUsTUFDdERKLEdBQUkiLAogICJuYW1lcyI6IFsicGF0aFRvRmlsZVVSTCIsICJjb25zb2xlIiwgImZzIiwgInBhdGgiLCAiZnMiLCAicGF0aCIsICJwcm9jZXNzIiwgImNvbnNvbGUiLCAiZnMiLCAibG9hZEpzb25GaWxlIiwgInBhdGgiLCAibG9hZE1ldGFGaWxlIiwgImxvYWRBbmFseXNpc0pzb24iLCAiZ2V0U2luZ2xlSW5wdXQiLCAibmFtZSIsICJyZXBvcnQiLCAiaW5wdXQiLCAiYWxsUGFnZVNpemVzIiwgImdldEFsbFBhZ2VTaXplcyIsICJmcyIsICJwYXRoIiwgInByb2Nlc3MiLCAicmVzdWx0SnNvblBhdGgiLCAiZmluZE1ldGFmaWxlcyIsICJtZXRhZmlsZSIsICJnbG9iU3luYyIsICJtZXRhRmlsZVBhdGgiLCAiYWNjIiwgIm1ldGFmaWxlcyIsICJyZXN1bHQiLCAicmVsYXRpdmVQYXRoIiwgImFic29sdXRlUGF0aCIsICJtZXRhRmlsZUpzb24iLCAibG9hZE1ldGFGaWxlIiwgIm91dHB1dCIsICJvdXRmaWxlIiwgImJ1aWxkTWV0YSIsICJleHQiLCAiY29tcGFyZSIsICJpbnB1dCIsICJoYXNBbnlDaGFuZ2UiLCAib3V0cHV0IiwgImN1cnJlbnRBbmFseXNpc1BhdGgiLCAicGF0aCIsICJjdXJyZW50IiwgImxvYWRBbmFseXNpc0pzb24iLCAiYmFzZSIsICJsb2FkQmFzZUFuYWx5c2lzSnNvbiIsICJmaWxlVHJlZSIsICJidWlsZEZpbGVUcmVlIiwgImNvbXBhcmlzb24iLCAib3V0ZmlsZSIsICJjdXJyZW50U3RhdHMiLCAiYmFzZVN0YXRzIiwgInRyZWUiLCAidHJlZUtleSIsICJkaWZmIiwgIm1hcmtkb3duVGFibGUiLCAibm9DaGFuZ2VzVGFibGUiLCAiZmlsZVNpemVUYWJsZSIsICJkZXRhaWwiLCAid3JpdGVDb21tZW50IiwgIm1ldGFmaWxlIiwgImZzIiwgImJhc2VBbmFseXNpc1BhdGgiLCAicmVwb3J0IiwgImJ1aWxkUm9vdCIsICJyb290IiwgImZpbGVQYXRoIiwgImJ5dGVzSW5PdXRwdXQiLCAiZGlyZWN0b3JpZXMiLCAiYnVpbGROb2RlIiwgIm5vZGUiLCAicGF0aHMiLCAidmFsdWUiLCAiZmlyc3QiLCAiY2hpbGQiLCAidHJlZXMiLCAicmVsYXRpdmVQYXRoIiwgImFic29sdXRlUGF0aCIsICJmaW5kTWV0YWZpbGVzIiwgIm1ldGFmaWxlSnNvbiIsICJsb2FkTWV0YUZpbGUiLCAiYnVpbGRNZXRhIiwgInNwYWNlciIsICJmaWxlc2l6ZSIsICJieXRlcyIsICJzaWduIiwgIm4iLCAic2hvdWxkU2hvd0J1bmRsZSIsICJkIiwgInNob3dOb0NoYW5nZSIsICJkYXRhIiwgInJlZFRocmVzaG9sZCIsICJyZW5kZXJTaXplIiwgInJlbmRlck5vdGUiLCAibm9DaGFuZ2VCdW5kbGVzIiwgInJvd3MiLCAiZmluZExhcmdlRGlyZWN0b3JpZXMiLCAiTiIsICJub2RlcyIsICJxdWV1ZSIsICJzaGlmdCIsICJkZXB0aCIsICJpdGVtIiwgImEiLCAiYiIsICJmaXhlZFBlcmNlbnQiLCAidG9wTkxhcmdlc3RQYXRocyIsICJ0b3RhbFNpemUiLCAibGFyZ2VOb2RlcyIsICJoYXNPdGhlciIsICJwZXJjZW50IiwgInJlbmRlckJhciIsICJvdGhlclNpemUiLCAib3RoZXJQZXJjZW50IiwgInByb2dyZXNzIiwgImJsb2NrcyIsICJwcm9ncmVzc2lvbiIsICJsZW5ndGgiLCAidm1pbiIsICJ2bWF4IiwgInYiLCAiaW50ZWdlclBhcnQiLCAiZnJhY3Rpb25hbFBhcnQiLCAiaSIsICJwZXJjZW50Q2hhbmdlIiwgInJlbmRlclN0YXR1c0luZGljYXRvciIsICJudW0iLCAicmVzIiwgImdldElucHV0IiwgInJhd01ldGFmaWxlcyIsICJnZXRTaW5nbGVJbnB1dCIsICJuYW1lIiwgInJ1biIsICJpbnB1dCIsICJyZXBvcnQiLCAiY29tcGFyZSIsICJwYXRoVG9GaWxlVVJMIl0KfQo= diff --git a/src/compare.ts b/src/compare.ts index 2eb52a5..92bd654 100644 --- a/src/compare.ts +++ b/src/compare.ts @@ -83,6 +83,7 @@ This analysis was generated by [esbuild-bundle-analyzer](https://github.com/exoe // we add this tag so that our action can be able to easily and // consistently find the right comment to edit as more commits are pushed. + // Tag is added to the top of the comment to avoid the truncation. output = ` ${output}`;