@cichol/logger 6.0.1 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dists/index.d.ts +1 -1
- package/dists/index.js +4 -6
- package/package.json +2 -2
package/dists/index.d.ts
CHANGED
|
@@ -123,7 +123,7 @@ declare class Logger {
|
|
|
123
123
|
* @param message
|
|
124
124
|
* @param args Additional metadata.
|
|
125
125
|
*/
|
|
126
|
-
log(level: LoggingLevelName, message: string, ...args:
|
|
126
|
+
log(level: LoggingLevelName, message: string, ...args: unknown[]): void;
|
|
127
127
|
/**
|
|
128
128
|
* Logging HTTP I/O.
|
|
129
129
|
*
|
package/dists/index.js
CHANGED
|
@@ -439,7 +439,9 @@ function formatForMorgan(tokens, request, response) {
|
|
|
439
439
|
const $version = rgb24(httpVersion, 0x62B1FF);
|
|
440
440
|
const $statusCode = decorateStatusCode(statusCode);
|
|
441
441
|
const $contentLength = contentLength >= 0 ? format$1(contentLength) : '? B';
|
|
442
|
-
const $responseTime = responseTime >= 0 ? format$2(responseTime
|
|
442
|
+
const $responseTime = responseTime >= 0 ? format$2(responseTime, {
|
|
443
|
+
ignoreZero: true
|
|
444
|
+
}) : '';
|
|
443
445
|
|
|
444
446
|
// Additional information.
|
|
445
447
|
const metadata = `(${$contentLength}, ${$responseTime})`;
|
|
@@ -518,16 +520,12 @@ class Logger {
|
|
|
518
520
|
case args.length >= 1 && args[0] instanceof Error:
|
|
519
521
|
{
|
|
520
522
|
const [error, ...data] = args;
|
|
521
|
-
|
|
522
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
523
523
|
logger.log('error', error.message, error, ...data);
|
|
524
524
|
return undefined;
|
|
525
525
|
}
|
|
526
526
|
default:
|
|
527
527
|
{
|
|
528
528
|
const [level, message, ...data] = args;
|
|
529
|
-
|
|
530
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
531
529
|
logger.log(level, message, ...data);
|
|
532
530
|
return undefined;
|
|
533
531
|
}
|
|
@@ -537,4 +535,4 @@ class Logger {
|
|
|
537
535
|
var logger = _Reflect$construct(Logger, [], Logger);
|
|
538
536
|
|
|
539
537
|
export { logger as default };
|
|
540
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZXMvaGVscGVycy9sb2dnaW5nLWxldmVsLnRzIiwiLi4vc291cmNlcy9oZWxwZXJzL2NvbG9yLXNjaGVtZS50cyIsIi4uL3NvdXJjZXMvaGVscGVycy9sYWJlbC1kZWNvcmF0b3IudHMiLCIuLi9zb3VyY2VzL2hhbmRsZXJzL2Vycm9yLnRzIiwiLi4vc291cmNlcy9oYW5kbGVycy9mYXRhbC50cyIsIi4uL3NvdXJjZXMvaGFuZGxlcnMvd2FybmluZy50cyIsIi4uL3NvdXJjZXMvaGFuZGxlcnMvbm90aWNlLnRzIiwiLi4vc291cmNlcy9oYW5kbGVycy9pbmZvLnRzIiwiLi4vc291cmNlcy9oYW5kbGVycy9odHRwLnRzIiwiLi4vc291cmNlcy9oYW5kbGVycy9xdWVyeS50cyIsIi4uL3NvdXJjZXMvaGFuZGxlcnMvdmVyYm9zZS50cyIsIi4uL3NvdXJjZXMvaGFuZGxlcnMvZGVidWcudHMiLCIuLi9zb3VyY2VzL2hhbmRsZXJzL2luZGV4LnRzIiwiLi4vc291cmNlcy9mb3JtYXR0ZXJzL2NvbW1hbmQtbGluZS50cyIsIi4uL3NvdXJjZXMvaGVscGVycy9jb25zdGFudHMudHMiLCIuLi9zb3VyY2VzL2Zvcm1hdHRlcnMvbW9yZ2FuLnRzIiwiLi4vc291cmNlcy9jbGFzc2VzL2xvZ2dlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBMb2dnaW5nTGV2ZWwgPSB7XG5cdC8vIENyaXRpY2FsIGxldmVscy4gKEl0IHdpbGwgY3Jhc2ggdGhlIHByb2Nlc3MpXG5cdEZhdGFsOiAwLFxuXHRFcnJvcjogMSxcblxuXHQvLyBXYXJuaW5nIGxldmVscy4gKEl0IGp1c3QgcmVwb3J0IHdhcm5pbmcgaW5mb3JtYXRpb24sIG5vdCBjcmFzaCB0aGUgcHJvY2Vzcylcblx0V2FybmluZzogMixcblxuXHQvLyBSZWd1bGFyIGxldmVsIGFuZCBhbGlhc2VzLlxuXHROb3RpY2U6IDMsXG5cdEluZm86IDMsXG5cblx0Ly8gTWF5YmUgc2Vuc2l0aXZlIGxldmVscy4gKEluIGdlbmVyYWwsIGRvZXMgbm90IHVzZWZ1bClcblx0SHR0cDogNCxcblx0UXVlcnk6IDQsXG5cblx0Ly8gTG91ZCBsZXZlbHMuXG5cdFZlcmJvc2U6IDUsXG5cdERlYnVnOiA1LFxufSBhcyBjb25zdFxuXG50eXBlIExvZ2dpbmdMZXZlbCA9IHR5cGVvZiBMb2dnaW5nTGV2ZWxba2V5b2YgdHlwZW9mIExvZ2dpbmdMZXZlbF1cblxuZXhwb3J0IGRlZmF1bHQgTG9nZ2luZ0xldmVsXG4iLCIvLyBUaGlyZC1wYXJ0eSBtb2R1bGVzLlxuaW1wb3J0IHsgYmdSZ2IyNCwgcmdiMjQgfSBmcm9tICdAc3RkL2ZtdC9jb2xvcnMnXG5cbi8vIFR5cGUgZGVmaW5pdGlvbnMuXG50eXBlIENvbG9yaXplciA9IChzdHJpbmc6IHN0cmluZykgPT4gc3RyaW5nXG5cbi8vIENvbnN0YW50cy5cbmNvbnN0IGNvbG9yaXplck1hcCA9IG5ldyBNYXA8bnVtYmVyLCBDb2xvcml6ZXI+KClcblxuLy8gSGVscGVycy5cbmZ1bmN0aW9uIGNyZWF0ZVNjaGVtZShvcHRpb25zOiB7IGJhY2tncm91bmQ6IENvbG9yVmFsdWUsIGZvcmVncm91bmQ6IENvbG9yVmFsdWUgfSk6IG51bWJlciB7XG5cdGNvbnN0IG5leHRJbmRleCA9IGNvbG9yaXplck1hcC5zaXplXG5cdGNvbnN0IGNvbG9yaXplciA9IChzdHJpbmc6IHN0cmluZykgPT4gYmdSZ2IyNChyZ2IyNChzdHJpbmcsIG9wdGlvbnMuZm9yZWdyb3VuZCksIG9wdGlvbnMuYmFja2dyb3VuZClcblxuXHRjb2xvcml6ZXJNYXAuc2V0KG5leHRJbmRleCwgY29sb3JpemVyKVxuXG5cdHJldHVybiBuZXh0SW5kZXhcbn1cblxuLy8gQ29sb3IgZGVmaW5pdGlvbnMuXG5jb25zdCBDb2xvclZhbHVlID0ge1xuXHQvLyBCYXNpYyBjb2xvcnMuXG5cdFdoaXRlOiAweEZGRkZGRixcblx0R3JheTogMHg4MDgwODAsXG5cdEJsYWNrOiAweDAwMDAwMCxcblxuXHQvLyBTcGVjaWFsaXplZCBjb2xvcnMuXG5cdENyaXRpY2FsOiAweEQ2MzAzMSxcblx0V2FybmluZzogMHhGRENCNkUsXG5cdFJlZ3VsYXI6IDB4MDk4NEUzLFxuXHRIdHRwOiAweDZBQjA0Qyxcblx0UXVlcnk6IDB4Mzk5QUYzLFxufSBhcyBjb25zdFxuXG50eXBlIENvbG9yVmFsdWUgPSB0eXBlb2YgQ29sb3JWYWx1ZVtrZXlvZiB0eXBlb2YgQ29sb3JWYWx1ZV1cblxuY29uc3QgQ29sb3JTY2hlbWUgPSB7XG5cdENyaXRpY2FsOiBjcmVhdGVTY2hlbWUoe1xuXHRcdGJhY2tncm91bmQ6IENvbG9yVmFsdWUuQ3JpdGljYWwsXG5cdFx0Zm9yZWdyb3VuZDogQ29sb3JWYWx1ZS5CbGFjayxcblx0fSksXG5cblx0V2FybmluZzogY3JlYXRlU2NoZW1lKHtcblx0XHRiYWNrZ3JvdW5kOiBDb2xvclZhbHVlLldhcm5pbmcsXG5cdFx0Zm9yZWdyb3VuZDogQ29sb3JWYWx1ZS5CbGFjayxcblx0fSksXG5cblx0UmVndWxhcjogY3JlYXRlU2NoZW1lKHtcblx0XHRiYWNrZ3JvdW5kOiBDb2xvclZhbHVlLlJlZ3VsYXIsXG5cdFx0Zm9yZWdyb3VuZDogQ29sb3JWYWx1ZS5XaGl0ZSxcblx0fSksXG5cblx0SHR0cDogY3JlYXRlU2NoZW1lKHtcblx0XHRiYWNrZ3JvdW5kOiBDb2xvclZhbHVlLkh0dHAsXG5cdFx0Zm9yZWdyb3VuZDogQ29sb3JWYWx1ZS5CbGFjayxcblx0fSksXG5cblx0UXVlcnk6IGNyZWF0ZVNjaGVtZSh7XG5cdFx0YmFja2dyb3VuZDogQ29sb3JWYWx1ZS5RdWVyeSxcblx0XHRmb3JlZ3JvdW5kOiBDb2xvclZhbHVlLkJsYWNrLFxuXHR9KSxcblxuXHRMb3VkOiBjcmVhdGVTY2hlbWUoe1xuXHRcdGJhY2tncm91bmQ6IENvbG9yVmFsdWUuQmxhY2ssXG5cdFx0Zm9yZWdyb3VuZDogQ29sb3JWYWx1ZS5HcmF5LFxuXHR9KSxcbn0gYXMgY29uc3RcblxudHlwZSBDb2xvclNjaGVtZSA9IHR5cGVvZiBDb2xvclNjaGVtZVtrZXlvZiB0eXBlb2YgQ29sb3JTY2hlbWVdXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDaGFsa09mKGNvbG9yU2V0OiBDb2xvclNjaGVtZSk6IENvbG9yaXplciB7XG5cdHJldHVybiBjb2xvcml6ZXJNYXAuZ2V0KGNvbG9yU2V0KSA/PyAoKHN0cmluZzogc3RyaW5nKSA9PiBzdHJpbmcpXG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbG9yU2NoZW1lXG4iLCIvLyBOb2RlLmpzIGJ1aWx0LWluIEFQSXMuXG5pbXBvcnQgcHJvY2VzcyBmcm9tICdwcm9jZXNzJ1xuXG4vLyBUaGlyZC1wYXJ0eSBtb2R1bGVzLlxuaW1wb3J0IHsgYm9sZCB9IGZyb20gJ0BzdGQvZm10L2NvbG9ycydcblxuLy8gTG9jYWwgaGVscGVycy5cbmltcG9ydCBDb2xvclNjaGVtZSwgeyBnZXRDaGFsa09mIH0gZnJvbSAnI2hlbHBlcnMvY29sb3Itc2NoZW1lJ1xuXG4vLyBDb25zdGFudHMuXG5jb25zdCB7IGlzVFRZIH0gPSBwcm9jZXNzLnN0ZG91dFxuY29uc3QgaXNOb3RPbkNMSSA9ICFpc1RUWVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBkZWNvcmF0ZUxhYmVsPFQgZXh0ZW5kcyBzdHJpbmc+KGxhYmVsOiBULCBzY2hlbWU6IENvbG9yU2NoZW1lKTogVCB7XG5cdGlmIChpc05vdE9uQ0xJKSByZXR1cm4gbGFiZWxcblxuXHRjb25zdCBjb2xvcml6ZSA9IGdldENoYWxrT2Yoc2NoZW1lKVxuXHRjb25zdCBkZWNvcmF0ZWRMYWJlbCA9IGJvbGQoY29sb3JpemUoYCAke2xhYmVsfSBgKSlcblxuXHRyZXR1cm4gZGVjb3JhdGVkTGFiZWwgYXMgVFxufVxuIiwiLy8gTm9kZS5qcyBidWlsdC1pbiBBUElzLlxuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCBwcm9jZXNzLCB7IHZlcnNpb24gfSBmcm9tICdwcm9jZXNzJ1xuXG4vLyBUaGlyZC1wYXJ0eSBtb2R1bGVzLlxuaW1wb3J0IHsgYmx1ZSwgZ3JheSwgYm9sZCwgdW5kZXJsaW5lIH0gZnJvbSAnQHN0ZC9mbXQvY29sb3JzJ1xuXG4vLyBMb2NhbCBoZWxwZXJzLlxuaW1wb3J0IExvZ2dpbmdMZXZlbCBmcm9tICcjaGVscGVycy9sb2dnaW5nLWxldmVsJ1xuaW1wb3J0IENvbG9yU2NoZW1lIGZyb20gJyNoZWxwZXJzL2NvbG9yLXNjaGVtZSdcbmltcG9ydCBkZWNvcmF0ZUxhYmVsIGZyb20gJyNoZWxwZXJzL2xhYmVsLWRlY29yYXRvcidcblxuLy8gVHlwZSBkZWZpbml0aW9ucy5cbnR5cGUgTG9nZ2luZ0RhdGEgPSB7IGxldmVsOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZyB9ICYgUmVjb3JkPFByb3BlcnR5S2V5LCBhbnk+XG50eXBlIEhhbmRsZWREYXRhID0geyBsYWJlbDogc3RyaW5nLCBwYXlsb2FkOiBzdHJpbmcgfVxuXG4vLyBDb25zdGFudHMuXG5jb25zdCByb290UGF0aCA9IHByb2Nlc3MuY3dkKClcbmNvbnN0IGNvbmp1bmN0aW9uID0gYCAke2JsdWUoJ+KUgOKUgCcpfSBgXG5jb25zdCBzcGxhdDogdW5pcXVlIHN5bWJvbCA9IFN5bWJvbC5mb3IoJ3NwbGF0JylcblxuLy8gSGFuZGxlciBtZXRhZGF0YS5cbmV4cG9ydCBjb25zdCBuYW1lID0gJ2Vycm9yJ1xuZXhwb3J0IGNvbnN0IGxldmVsID0gTG9nZ2luZ0xldmVsLkVycm9yXG5leHBvcnQgY29uc3QgbGFiZWwgPSBkZWNvcmF0ZUxhYmVsKCdFUlJPUicsIENvbG9yU2NoZW1lLkNyaXRpY2FsKVxuXG5mdW5jdGlvbiBzaW1wbGlmeURhdGFVUkkoZGF0YVVSSTogc3RyaW5nKTogc3RyaW5nIHtcblx0Y29uc3QgWyAsIGFjdHVhbENvbnRlbnQgXSA9IGRhdGFVUkkuc3BsaXQoJzonKVxuXHRjb25zdCBwaXZvdCA9IGFjdHVhbENvbnRlbnQuaW5kZXhPZignLCcpICsgMVxuXHRjb25zdCBtaW1lSW5kaWNhdG9yID0gYWN0dWFsQ29udGVudC5zbGljZSgwLCBwaXZvdClcblx0Y29uc3QgY29udGVudFByZWZpeCA9IGFjdHVhbENvbnRlbnQuc2xpY2UocGl2b3QsIHBpdm90ICsgNClcblx0Y29uc3QgY29udGVudFN1ZmZpeCA9IGFjdHVhbENvbnRlbnQuc2xpY2UoLTQpXG5cblx0cmV0dXJuIGBkYXRhOiR7bWltZUluZGljYXRvciArIGNvbnRlbnRQcmVmaXh9Li4uJHtjb250ZW50U3VmZml4fWBcbn1cblxuZnVuY3Rpb24gaXNEYXRhVVJJKGZpbGVuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcblx0cmV0dXJuIGZpbGVuYW1lLnN0YXJ0c1dpdGgoJ2RhdGE6Jylcbn1cblxuZnVuY3Rpb24gaXNBYnNvbHV0ZU9yRGF0YVVSSShmaWxlbmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG5cdHJldHVybiBwYXRoLmlzQWJzb2x1dGUoZmlsZW5hbWUpIHx8IGlzRGF0YVVSSShmaWxlbmFtZSlcbn1cblxuZnVuY3Rpb24gbWFwTG9jYXRpb25PZkVycm9yVGhyb3duKGZpbGVuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRsZXQgdGFyZ2V0ID0gcGF0aC5yZWxhdGl2ZShyb290UGF0aCwgZmlsZW5hbWUpXG5cblx0aWYgKGlzRGF0YVVSSShmaWxlbmFtZSkpIHtcblx0XHR0YXJnZXQgPSBncmF5KHNpbXBsaWZ5RGF0YVVSSShmaWxlbmFtZSkpXG5cdH0gZWxzZSBpZiAodGFyZ2V0LmluY2x1ZGVzKCdub2RlX21vZHVsZXMnKSkge1xuXHRcdHRhcmdldCA9IGdyYXkoXG5cdFx0XHR0YXJnZXQuc2xpY2UodGFyZ2V0Lmxhc3RJbmRleE9mKCdub2RlX21vZHVsZXMnKSksXG5cdFx0KS5yZXBsYWNlKFxuXHRcdFx0L25vZGVfbW9kdWxlc1tcXFxcL10oKD86QFteXFxcXC9dK1tcXFxcL10pP1teXFxcXC9dKykoLiopLyxcblx0XHRcdChfLCBtb2R1bGVOYW1lOiBzdHJpbmcsIHRyYWlsaW5nOiBzdHJpbmcpID0+IChcblx0XHRcdFx0YG5vZGVfbW9kdWxlcyR7cGF0aC5zZXB9JHtib2xkKHVuZGVybGluZShtb2R1bGVOYW1lKSl9JHtncmF5KHRyYWlsaW5nKX1gXG5cdFx0XHQpLFxuXHRcdClcblx0fSBlbHNlIHtcblx0XHR0YXJnZXQgPSBgJHtncmF5KHBhdGguZGlybmFtZSh0YXJnZXQpICsgcGF0aC5zZXApfSR7Ym9sZCh1bmRlcmxpbmUocGF0aC5iYXNlbmFtZSh0YXJnZXQpKSl9YFxuXHR9XG5cblx0cmV0dXJuIHRhcmdldFxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBoYW5kbGUoZGF0YTogTG9nZ2luZ0RhdGEpOiBIYW5kbGVkRGF0YSB8IHVuZGVmaW5lZCB7XG5cdGNvbnN0IHsgW3NwbGF0XTogWyBlcnJvciBdID0gW10gfSA9IGRhdGEgYXMgYW55XG5cblx0aWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikpIHtcblx0XHRyZXR1cm4gdW5kZWZpbmVkXG5cdH1cblxuXHRjb25zdCB7IG5hbWU6IGVycm9yTmFtZSwgbWVzc2FnZSwgc3RhY2s6IHJhd1N0YWNrID0gJycgfSA9IGVycm9yXG5cblx0Y29uc3Qgc3RhY2sgPSByYXdTdGFja1xuXHRcdC5zbGljZShlcnJvck5hbWUubGVuZ3RoICsgbWVzc2FnZS5sZW5ndGggKyAzKVxuXHRcdC5zcGxpdCgnXFxuJylcblx0XHQubWFwKGxpbmUgPT4gbGluZS5yZXBsYWNlKC9eXFxzK2F0IC9nLCAnJykpXG5cdFx0Lm1hcChsaW5lID0+IChpc0Fic29sdXRlT3JEYXRhVVJJKGxpbmUpID8gYDxhbm9ueW1vdXM+JHtjb25qdW5jdGlvbn0ke21hcExvY2F0aW9uT2ZFcnJvclRocm93bihsaW5lKX1gIDogbGluZSkpXG5cdFx0Lm1hcChsaW5lID0+IGxpbmUucmVwbGFjZSgvXiguKykgXFwoKC4rKVxcKSQvLCAoXywgY29udGV4dE5hbWU6IHN0cmluZywgcmF3TG9jYXRpb246IHN0cmluZykgPT4ge1xuXHRcdFx0bGV0IGxvY2F0aW9uID0gJydcblxuXHRcdFx0c3dpdGNoICh0cnVlKSB7XG5cdFx0XHRjYXNlIChyYXdMb2NhdGlvbiA9PT0gJzxhbm9ueW1vdXM+Jyk6IHtcblx0XHRcdFx0bG9jYXRpb24gPSBncmF5KHJhd0xvY2F0aW9uKVxuXG5cdFx0XHRcdGJyZWFrXG5cdFx0XHR9XG5cblx0XHRcdGNhc2UgKGlzRGF0YVVSSShyYXdMb2NhdGlvbikpOiB7XG5cdFx0XHRcdGxvY2F0aW9uID0gZ3JheShzaW1wbGlmeURhdGFVUkkocmF3TG9jYXRpb24pKVxuXG5cdFx0XHRcdGJyZWFrXG5cdFx0XHR9XG5cblx0XHRcdGNhc2UgKHJhd0xvY2F0aW9uLnN0YXJ0c1dpdGgoJ25vZGU6JykpOiB7XG5cdFx0XHRcdGNvbnN0IFsgZmlsZW5hbWUsIG9jY3VycmVkTGluZSBdID0gcmF3TG9jYXRpb24uc2xpY2UoNSkuc3BsaXQoJzonKVxuXG5cdFx0XHRcdGxvY2F0aW9uID0gZ3JheShgaHR0cHM6Ly9naXRodWIuY29tLyR7Ym9sZCh1bmRlcmxpbmUoJ25vZGVqcycpKX0vbm9kZS9ibG9iLyR7dmVyc2lvbn0vbGliLyR7ZmlsZW5hbWV9LmpzI0wke29jY3VycmVkTGluZX1gKVxuXG5cdFx0XHRcdGJyZWFrXG5cdFx0XHR9XG5cblx0XHRcdGRlZmF1bHQ6IHtcblx0XHRcdFx0Y29uc3QgWyBmaWxlbmFtZSwgb2NjdXJyZWRMaW5lLCBvY2N1cnJlZENvbHVtbiBdID0gcmF3TG9jYXRpb24uc3BsaXQoJzonKVxuXG5cdFx0XHRcdGlmICghcGF0aC5pc0Fic29sdXRlKGZpbGVuYW1lKSkgYnJlYWtcblxuXHRcdFx0XHRjb25zdCB0YXJnZXQgPSBtYXBMb2NhdGlvbk9mRXJyb3JUaHJvd24ocGF0aC5yZWxhdGl2ZShyb290UGF0aCwgZmlsZW5hbWUpKVxuXHRcdFx0XHRjb25zdCB0cmFpbGluZyA9IGdyYXkoYDoke29jY3VycmVkTGluZX06JHtvY2N1cnJlZENvbHVtbn1gKVxuXG5cdFx0XHRcdGxvY2F0aW9uID0gdGFyZ2V0ICsgdHJhaWxpbmdcblx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGAke2NvbnRleHROYW1lfSR7Y29uanVuY3Rpb259JHtsb2NhdGlvbn1gXG5cdFx0fSkpXG5cdFx0LmpvaW4oJ1xcbicpXG5cblx0Y29uc3QgZGVjb3JhdGVkTGFiZWwgPSBkZWNvcmF0ZUxhYmVsKGVycm9yTmFtZSwgQ29sb3JTY2hlbWUuQ3JpdGljYWwpXG5cdGNvbnN0IHBheWxvYWQgPSBgJHttZXNzYWdlfVxcblxcbiR7c3RhY2t9XFxuYFxuXG5cdHJldHVybiB7IGxhYmVsOiBkZWNvcmF0ZWRMYWJlbCwgcGF5bG9hZCB9XG59XG4iLCIvLyBMb2NhbCBoZWxwZXJzLlxuaW1wb3J0IExvZ2dpbmdMZXZlbCBmcm9tICcjaGVscGVycy9sb2dnaW5nLWxldmVsJ1xuaW1wb3J0IENvbG9yU2NoZW1lIGZyb20gJyNoZWxwZXJzL2NvbG9yLXNjaGVtZSdcbmltcG9ydCBkZWNvcmF0ZUxhYmVsIGZyb20gJyNoZWxwZXJzL2xhYmVsLWRlY29yYXRvcidcblxuLy8gSGFuZGxlciBtZXRhZGF0YS5cbmV4cG9ydCBjb25zdCBuYW1lID0gJ2ZhdGFsJ1xuZXhwb3J0IGNvbnN0IGxldmVsID0gTG9nZ2luZ0xldmVsLkZhdGFsXG5leHBvcnQgY29uc3QgbGFiZWwgPSBkZWNvcmF0ZUxhYmVsKCdGQVRBTCcsIENvbG9yU2NoZW1lLkNyaXRpY2FsKVxuXG5leHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAnI2hhbmRsZXJzL2Vycm9yJyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXJlc3RyaWN0ZWQtZXhwb3J0c1xuIiwiLy8gTG9jYWwgaGVscGVycy5cbmltcG9ydCBMb2dnaW5nTGV2ZWwgZnJvbSAnI2hlbHBlcnMvbG9nZ2luZy1sZXZlbCdcbmltcG9ydCBDb2xvclNjaGVtZSBmcm9tICcjaGVscGVycy9jb2xvci1zY2hlbWUnXG5pbXBvcnQgZGVjb3JhdGVMYWJlbCBmcm9tICcjaGVscGVycy9sYWJlbC1kZWNvcmF0b3InXG5cbi8vIEhhbmRsZXIgbWV0YWRhdGEuXG5leHBvcnQgY29uc3QgbmFtZSA9ICd3YXJuaW5nJ1xuZXhwb3J0IGNvbnN0IGxldmVsID0gTG9nZ2luZ0xldmVsLldhcm5pbmdcbmV4cG9ydCBjb25zdCBsYWJlbCA9IGRlY29yYXRlTGFiZWwoJ1dBUk5JTkcnLCBDb2xvclNjaGVtZS5XYXJuaW5nKVxuXG5leHBvcnQgZGVmYXVsdCBudWxsXG4iLCIvLyBMb2NhbCBoZWxwZXJzLlxuaW1wb3J0IExvZ2dpbmdMZXZlbCBmcm9tICcjaGVscGVycy9sb2dnaW5nLWxldmVsJ1xuaW1wb3J0IENvbG9yU2NoZW1lIGZyb20gJyNoZWxwZXJzL2NvbG9yLXNjaGVtZSdcbmltcG9ydCBkZWNvcmF0ZUxhYmVsIGZyb20gJyNoZWxwZXJzL2xhYmVsLWRlY29yYXRvcidcblxuLy8gSGFuZGxlciBtZXRhZGF0YS5cbmV4cG9ydCBjb25zdCBuYW1lID0gJ25vdGljZSdcbmV4cG9ydCBjb25zdCBsZXZlbCA9IExvZ2dpbmdMZXZlbC5Ob3RpY2VcbmV4cG9ydCBjb25zdCBsYWJlbCA9IGRlY29yYXRlTGFiZWwoJ05PVElDRScsIENvbG9yU2NoZW1lLlJlZ3VsYXIpXG5cbmV4cG9ydCBkZWZhdWx0IG51bGxcbiIsIi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgTG9nZ2luZ0xldmVsIGZyb20gJyNoZWxwZXJzL2xvZ2dpbmctbGV2ZWwnXG5pbXBvcnQgQ29sb3JTY2hlbWUgZnJvbSAnI2hlbHBlcnMvY29sb3Itc2NoZW1lJ1xuaW1wb3J0IGRlY29yYXRlTGFiZWwgZnJvbSAnI2hlbHBlcnMvbGFiZWwtZGVjb3JhdG9yJ1xuXG4vLyBIYW5kbGVyIG1ldGFkYXRhLlxuZXhwb3J0IGNvbnN0IG5hbWUgPSAnaW5mbydcbmV4cG9ydCBjb25zdCBsZXZlbCA9IExvZ2dpbmdMZXZlbC5JbmZvXG5leHBvcnQgY29uc3QgbGFiZWwgPSBkZWNvcmF0ZUxhYmVsKCdJTkZPJywgQ29sb3JTY2hlbWUuUmVndWxhcilcblxuZXhwb3J0IGRlZmF1bHQgbnVsbFxuIiwiLy8gTG9jYWwgaGVscGVycy5cbmltcG9ydCBMb2dnaW5nTGV2ZWwgZnJvbSAnI2hlbHBlcnMvbG9nZ2luZy1sZXZlbCdcbmltcG9ydCBDb2xvclNjaGVtZSBmcm9tICcjaGVscGVycy9jb2xvci1zY2hlbWUnXG5pbXBvcnQgZGVjb3JhdGVMYWJlbCBmcm9tICcjaGVscGVycy9sYWJlbC1kZWNvcmF0b3InXG5cbi8vIEhhbmRsZXIgbWV0YWRhdGEuXG5leHBvcnQgY29uc3QgbmFtZSA9ICdodHRwJ1xuZXhwb3J0IGNvbnN0IGxldmVsID0gTG9nZ2luZ0xldmVsLkh0dHBcbmV4cG9ydCBjb25zdCBsYWJlbCA9IGRlY29yYXRlTGFiZWwoJ0hUVFAnLCBDb2xvclNjaGVtZS5IdHRwKVxuXG5leHBvcnQgZGVmYXVsdCBudWxsXG4iLCIvLyBIaWdobGlnaHQuanNcbmltcG9ydCB7IGhpZ2hsaWdodCB9IGZyb20gJ2NsaS1oaWdobGlnaHQnXG5cbi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgTG9nZ2luZ0xldmVsIGZyb20gJyNoZWxwZXJzL2xvZ2dpbmctbGV2ZWwnXG5pbXBvcnQgQ29sb3JTY2hlbWUgZnJvbSAnI2hlbHBlcnMvY29sb3Itc2NoZW1lJ1xuaW1wb3J0IGRlY29yYXRlTGFiZWwgZnJvbSAnI2hlbHBlcnMvbGFiZWwtZGVjb3JhdG9yJ1xuXG4vLyBUeXBlIGRlZmluaXRpb25zLlxudHlwZSBMb2dnaW5nRGF0YSA9IHsgbGV2ZWw6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nIH0gJiBSZWNvcmQ8UHJvcGVydHlLZXksIGFueT5cbnR5cGUgSGFuZGxlZERhdGEgPSB7IGxhYmVsOiBzdHJpbmcsIHBheWxvYWQ6IHN0cmluZyB9XG5cbi8vIEhhbmRsZXIgbWV0YWRhdGEuXG5leHBvcnQgY29uc3QgbmFtZSA9ICdxdWVyeSdcbmV4cG9ydCBjb25zdCBsZXZlbCA9IExvZ2dpbmdMZXZlbC5RdWVyeVxuZXhwb3J0IGNvbnN0IGxhYmVsID0gZGVjb3JhdGVMYWJlbCgnUVVFUlknLCBDb2xvclNjaGVtZS5RdWVyeSlcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaGFuZGxlKGRhdGE6IExvZ2dpbmdEYXRhKTogSGFuZGxlZERhdGEgfCB1bmRlZmluZWQge1xuXHRjb25zdCBwYXlsb2FkID0gaGlnaGxpZ2h0KGRhdGEubWVzc2FnZSwgeyBsYW5ndWFnZTogJ3NxbCcgfSlcblxuXHRyZXR1cm4geyBsYWJlbCwgcGF5bG9hZCB9XG59XG4iLCIvLyBMb2NhbCBoZWxwZXJzLlxuaW1wb3J0IExvZ2dpbmdMZXZlbCBmcm9tICcjaGVscGVycy9sb2dnaW5nLWxldmVsJ1xuaW1wb3J0IENvbG9yU2NoZW1lIGZyb20gJyNoZWxwZXJzL2NvbG9yLXNjaGVtZSdcbmltcG9ydCBkZWNvcmF0ZUxhYmVsIGZyb20gJyNoZWxwZXJzL2xhYmVsLWRlY29yYXRvcidcblxuLy8gSGFuZGxlciBtZXRhZGF0YS5cbmV4cG9ydCBjb25zdCBuYW1lID0gJ3ZlcmJvc2UnXG5leHBvcnQgY29uc3QgbGV2ZWwgPSBMb2dnaW5nTGV2ZWwuVmVyYm9zZVxuZXhwb3J0IGNvbnN0IGxhYmVsID0gZGVjb3JhdGVMYWJlbCgnVkVSQk9TRScsIENvbG9yU2NoZW1lLkxvdWQpXG5cbmV4cG9ydCBkZWZhdWx0IG51bGxcbiIsIi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgTG9nZ2luZ0xldmVsIGZyb20gJyNoZWxwZXJzL2xvZ2dpbmctbGV2ZWwnXG5pbXBvcnQgQ29sb3JTY2hlbWUgZnJvbSAnI2hlbHBlcnMvY29sb3Itc2NoZW1lJ1xuaW1wb3J0IGRlY29yYXRlTGFiZWwgZnJvbSAnI2hlbHBlcnMvbGFiZWwtZGVjb3JhdG9yJ1xuXG4vLyBIYW5kbGVyIG1ldGFkYXRhLlxuZXhwb3J0IGNvbnN0IG5hbWUgPSAnZGVidWcnXG5leHBvcnQgY29uc3QgbGV2ZWwgPSBMb2dnaW5nTGV2ZWwuRGVidWdcbmV4cG9ydCBjb25zdCBsYWJlbCA9IGRlY29yYXRlTGFiZWwoJ0RFQlVHJywgQ29sb3JTY2hlbWUuTG91ZClcblxuZXhwb3J0IGRlZmF1bHQgbnVsbFxuIiwiLy8gSGFuZGxlciBpbXBsZW1lbnRhdGlvbnMuXG5pbXBvcnQgKiBhcyBGYXRhbEhhbmRsZXIgZnJvbSAnI2hhbmRsZXJzL2ZhdGFsJ1xuaW1wb3J0ICogYXMgRXJyb3JIYW5kbGVyIGZyb20gJyNoYW5kbGVycy9lcnJvcidcbmltcG9ydCAqIGFzIFdhcm5pbmdIYW5kbGVyIGZyb20gJyNoYW5kbGVycy93YXJuaW5nJ1xuaW1wb3J0ICogYXMgTm90aWNlSGFuZGxlciBmcm9tICcjaGFuZGxlcnMvbm90aWNlJ1xuaW1wb3J0ICogYXMgSW5mb0hhbmRsZXIgZnJvbSAnI2hhbmRsZXJzL2luZm8nXG5pbXBvcnQgKiBhcyBIdHRwSGFuZGxlciBmcm9tICcjaGFuZGxlcnMvaHR0cCdcbmltcG9ydCAqIGFzIFF1ZXJ5SGFuZGxlciBmcm9tICcjaGFuZGxlcnMvcXVlcnknXG5pbXBvcnQgKiBhcyBWZXJib3NlSGFuZGxlciBmcm9tICcjaGFuZGxlcnMvdmVyYm9zZSdcbmltcG9ydCAqIGFzIERlYnVnSGFuZGxlciBmcm9tICcjaGFuZGxlcnMvZGVidWcnXG5cbmNvbnN0IGhhbmRsZXJzID0gW1xuXHRGYXRhbEhhbmRsZXIsXG5cdEVycm9ySGFuZGxlcixcblx0V2FybmluZ0hhbmRsZXIsXG5cdE5vdGljZUhhbmRsZXIsXG5cdEluZm9IYW5kbGVyLFxuXHRIdHRwSGFuZGxlcixcblx0UXVlcnlIYW5kbGVyLFxuXHRWZXJib3NlSGFuZGxlcixcblx0RGVidWdIYW5kbGVyLFxuXVxuXG5leHBvcnQgdHlwZSBMb2dnaW5nTGV2ZWxOYW1lID0gKHR5cGVvZiBoYW5kbGVycyBleHRlbmRzIChpbmZlciBUKVtdID8gVCA6IG5ldmVyKVsnbmFtZSddXG5leHBvcnQgZGVmYXVsdCBoYW5kbGVyc1xuIiwiLy8gVGhpcmQtcGFydHkgbW9kdWxlcy5cbmltcG9ydCB7IGdyYXkgfSBmcm9tICdAc3RkL2ZtdC9jb2xvcnMnXG5pbXBvcnQgclRyYWNlciBmcm9tICdjbHMtcnRyYWNlcidcbmltcG9ydCB7IERhdGVUaW1lIH0gZnJvbSAnbHV4b24nXG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tICd3aW5zdG9uJ1xuXG4vLyBMb2NhbCBoZWxwZXJzLlxuaW1wb3J0IExvZ2dpbmdMZXZlbCBmcm9tICcjaGVscGVycy9sb2dnaW5nLWxldmVsJ1xuXG4vLyBIYW5kbGVyIGltcGxlbWVudGF0aW9ucy5cbmltcG9ydCBoYW5kbGVycyBmcm9tICcjaGFuZGxlcnMvaW5kZXgnXG5cbmV4cG9ydCBkZWZhdWx0IGZvcm1hdC5wcmludGYoZGF0YSA9PiB7XG5cdGNvbnN0IHRpbWVzdGFtcCA9IGdyYXkoRGF0ZVRpbWUubm93KCkudG9JU08oeyBpbmNsdWRlT2Zmc2V0OiB0cnVlIH0pKVxuXHRjb25zdCBoYW5kbGVyID0gaGFuZGxlcnMuZmluZCgoeyBuYW1lIH0pID0+IG5hbWUgPT09IGRhdGEubGV2ZWwpXG5cdGNvbnN0IGZhbGxiYWNrID0geyBsYWJlbDogaGFuZGxlcj8ubGFiZWwsIHBheWxvYWQ6IGRhdGEubWVzc2FnZSB9XG5cdGNvbnN0IHBlcmZvcm1IYW5kbGUgPSBoYW5kbGVyPy5kZWZhdWx0ID8/ICgoKTogdHlwZW9mIGZhbGxiYWNrID0+IGZhbGxiYWNrKVxuXG5cdC8vIEV4ZWN1dGUgaGFuZGxlciBhbmQgdGhlbiwgZ2V0IGRlY29yYXRlZCBwYXlsb2FkLlxuXHRjb25zdCB7IGxhYmVsLCBwYXlsb2FkIH0gPSBSZWZsZWN0LmFwcGx5KHBlcmZvcm1IYW5kbGUsIHVuZGVmaW5lZCwgWyBkYXRhIF0pID8/IGZhbGxiYWNrXG5cblx0bGV0IGV4dHJhRmluZ2VycHJpbnQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuXG5cdGlmIChoYW5kbGVyPy5sZXZlbCA9PT0gTG9nZ2luZ0xldmVsLkh0dHApIHtcblx0XHRleHRyYUZpbmdlcnByaW50ID0gZGF0YS50cmFuc2FjdGlvbklkXG5cdFx0XHQ/IGAoVHJhbnNhY3Rpb24tSUQgPSAke2RhdGEudHJhbnNhY3Rpb25JZCBhcyBzdHJpbmd9KWBcblx0XHRcdDogYChSZXF1ZXN0LUlEID0gJHtyVHJhY2VyLmlkKCkgYXMgc3RyaW5nfSlgXG5cdH1cblxuXHRyZXR1cm4gYCR7bGFiZWwgYXMgc3RyaW5nfSAke3RpbWVzdGFtcH0ke2V4dHJhRmluZ2VycHJpbnQgPyBgICR7ZXh0cmFGaW5nZXJwcmludH1gIDogJyd9XFxuJHtwYXlsb2FkIGFzIHN0cmluZ31gXG59KVxuIiwiLy8gTm9kZS5qcyBidWlsdC1pbiBBUElzLlxuaW1wb3J0IGNsdXN0ZXIgZnJvbSAnY2x1c3RlcidcbmltcG9ydCB7IGVudiBhcyBlbnZpcm9ubWVudHMgfSBmcm9tICdwcm9jZXNzJ1xuaW1wb3J0IHsgaXNNYWluVGhyZWFkIH0gZnJvbSAnd29ya2VyX3RocmVhZHMnXG5cbi8vIFR5cGUgZGVmaW5pdGlvbnMuXG5leHBvcnQgY29uc3QgRXhlY3V0aW9uTW9kZSA9IHtcblx0RGV2ZWxvcG1lbnRNb2RlOiAnZGV2ZWxvcG1lbnQnLFxuXHRQcm9kdWN0aW9uTW9kZTogJ3Byb2R1Y3Rpb24nLFxufSBhcyBjb25zdFxuXG5leHBvcnQgY29uc3QgQ2x1c3RlcmluZ01vZGUgPSB7XG5cdE1hc3RlclByb2Nlc3M6IDAsXG5cdFdvcmtlclByb2Nlc3M6IDEsXG59IGFzIGNvbnN0XG5cbmV4cG9ydCBjb25zdCBUaHJlYWRpbmdNb2RlID0ge1xuXHRNYWluVGhyZWFkOiAwLFxuXHRXb3JrZXJUaHJlYWQ6IDEsXG59IGFzIGNvbnN0XG5cbmV4cG9ydCB0eXBlIEV4ZWN1dGlvbk1vZGUgPSB0eXBlb2YgRXhlY3V0aW9uTW9kZVtrZXlvZiB0eXBlb2YgRXhlY3V0aW9uTW9kZV1cbmV4cG9ydCB0eXBlIENsdXN0ZXJpbmdNb2RlID0gdHlwZW9mIENsdXN0ZXJpbmdNb2RlW2tleW9mIHR5cGVvZiBDbHVzdGVyaW5nTW9kZV1cbmV4cG9ydCB0eXBlIFRocmVhZGluZ01vZGUgPSB0eXBlb2YgVGhyZWFkaW5nTW9kZVtrZXlvZiB0eXBlb2YgVGhyZWFkaW5nTW9kZV1cblxuLy8gRXhwb3J0aW5ncy5cbmV4cG9ydCBjb25zdCBleGVjdXRpb25Nb2RlID0gZW52aXJvbm1lbnRzLk5PREVfRU5WIGFzIEV4ZWN1dGlvbk1vZGUgPz8gRXhlY3V0aW9uTW9kZS5EZXZlbG9wbWVudE1vZGVcblxuZXhwb3J0IGNvbnN0IGNsdXN0ZXJpbmdNb2RlOiBDbHVzdGVyaW5nTW9kZSA9IGNsdXN0ZXIuaXNQcmltYXJ5ID8/IGNsdXN0ZXIuaXNNYXN0ZXJcblx0PyBDbHVzdGVyaW5nTW9kZS5NYXN0ZXJQcm9jZXNzXG5cdDogQ2x1c3RlcmluZ01vZGUuV29ya2VyUHJvY2Vzc1xuXG5leHBvcnQgY29uc3QgdGhyZWFkaW5nTW9kZTogVGhyZWFkaW5nTW9kZSA9IGlzTWFpblRocmVhZFxuXHQ/IFRocmVhZGluZ01vZGUuTWFpblRocmVhZFxuXHQ6IFRocmVhZGluZ01vZGUuV29ya2VyVGhyZWFkXG4iLCIvLyBOb2RlLmpzIGJ1aWx0LWluIEFQSXMuXG5pbXBvcnQge1xuXHRTVEFUVVNfQ09ERVMsXG5cdEluY29taW5nTWVzc2FnZSBhcyBIdHRwUmVxdWVzdCxcblx0U2VydmVyUmVzcG9uc2UgYXMgSHR0cFJlc3BvbnNlLFxufSBmcm9tICdodHRwJ1xuXG4vLyBUaGlyZC1wYXJ0eSBtb2R1bGVzLlxuaW1wb3J0IG1vcmdhbiBmcm9tICdtb3JnYW4nXG5pbXBvcnQgeyBncmVlbiwgbWFnZW50YSwgcmVkLCBncmF5LCBib2xkLCByZ2IyNCB9IGZyb20gJ0BzdGQvZm10L2NvbG9ycydcbmltcG9ydCB7IGZvcm1hdCBhcyBwcmV0dHlCeXRlcyB9IGZyb20gJ0BzdGQvZm10L2J5dGVzJ1xuaW1wb3J0IHsgZm9ybWF0IGFzIHByZXR0eU1zIH0gZnJvbSAnQHN0ZC9mbXQvZHVyYXRpb24nXG5cbi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgeyBFeGVjdXRpb25Nb2RlLCBleGVjdXRpb25Nb2RlIH0gZnJvbSAnI2hlbHBlcnMvY29uc3RhbnRzJ1xuXG4vLyBUeXBlIGRlZmluaXRpb25zLlxuZGVjbGFyZSBtb2R1bGUgJ21vcmdhbicge1xuXHRjb25zdCBjb21iaW5lZDogbW9yZ2FuLkZvcm1hdEZuXG59XG5cbmludGVyZmFjZSBUb2tlbkluZGV4ZXIge1xuXHRbdG9rZW5OYW1lOiBzdHJpbmddOiAoXG5cdFx0cmVxdWVzdDogSHR0cFJlcXVlc3QsXG5cdFx0cmVzcG9uc2U6IEh0dHBSZXNwb25zZSxcblx0XHQuLi5hcmdzOiBhbnlbXVxuXHQpID0+IHN0cmluZyB8IHVuZGVmaW5lZFxufVxuXG4vLyBIZWxwZXJzLlxuZnVuY3Rpb24gZGVjb3JhdGVTdGF0dXNDb2RlKHN0YXR1c0NvZGU6IGtleW9mIHR5cGVvZiBTVEFUVVNfQ09ERVMpOiBzdHJpbmcge1xuXHRjb25zdCBncm91cE9mQ29kZSA9IE1hdGguZmxvb3IoTnVtYmVyKHN0YXR1c0NvZGUpIC8gMTAwKSAqIDEwMFxuXHRjb25zdCBiYXNlTWVzc2FnZSA9IGAke3N0YXR1c0NvZGV9ICR7U1RBVFVTX0NPREVTW3N0YXR1c0NvZGVdIGFzIHN0cmluZ31gXG5cblx0c3dpdGNoIChncm91cE9mQ29kZSkge1xuXHRjYXNlIDIwMDoge1xuXHRcdHJldHVybiBncmVlbihiYXNlTWVzc2FnZSlcblx0fVxuXG5cdGNhc2UgMzAwOiB7XG5cdFx0cmV0dXJuIG1hZ2VudGEoYmFzZU1lc3NhZ2UpXG5cdH1cblx0Y2FzZSA0MDA6XG5cdGNhc2UgNTAwOiB7XG5cdFx0cmV0dXJuIHJlZChiYXNlTWVzc2FnZSlcblx0fVxuXG5cdGRlZmF1bHQ6IHtcblx0XHRyZXR1cm4gZ3JheShiYXNlTWVzc2FnZSlcblx0fVxuXHR9XG59XG5cbmZ1bmN0aW9uIGZvcm1hdEZvck1vcmdhbih0b2tlbnM6IGFueSwgcmVxdWVzdDogSHR0cFJlcXVlc3QsIHJlc3BvbnNlOiBIdHRwUmVzcG9uc2UpOiBzdHJpbmcge1xuXHRmdW5jdGlvbiBfKHRva2VuOiBzdHJpbmcsIC4uLnN1YkFyZ3M6IGFueVtdKTogc3RyaW5nIHwgdm9pZCB7XG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXJndW1lbnRcblx0XHRyZXR1cm4gKHRva2VucyBhcyBUb2tlbkluZGV4ZXIpW3Rva2VuXShyZXF1ZXN0LCByZXNwb25zZSwgLi4uc3ViQXJncylcblx0fVxuXG5cdC8vIFJhdyB2YWx1ZXMuXG5cdGNvbnN0IG1ldGhvZCA9IF8oJ21ldGhvZCcpXG5cdGNvbnN0IFVSTCA9IF8oJ3VybCcpXG5cdGNvbnN0IGh0dHBWZXJzaW9uID0gYEhUVFAvJHtfKCdodHRwLXZlcnNpb24nKSBhcyBzdHJpbmd9YFxuXHRjb25zdCBzdGF0dXNDb2RlID0gTnVtYmVyKF8oJ3N0YXR1cycpKVxuXHRjb25zdCBjb250ZW50TGVuZ3RoID0gTnVtYmVyKF8oJ3JlcycsICdjb250ZW50LWxlbmd0aCcpID8/IC0xKVxuXHRjb25zdCByZXNwb25zZVRpbWUgPSBOdW1iZXIoXygncmVzcG9uc2UtdGltZScpID8/IC0xKVxuXG5cdC8vIERlY29yYXRlZCB2YWx1ZXMuXG5cdGNvbnN0ICRtZXRob2QgPSBib2xkKG1ldGhvZCA/PyAnJylcblx0Y29uc3QgJHZlcnNpb24gPSByZ2IyNChodHRwVmVyc2lvbiwgMHg2MkIxRkYpXG5cdGNvbnN0ICRzdGF0dXNDb2RlID0gZGVjb3JhdGVTdGF0dXNDb2RlKHN0YXR1c0NvZGUpXG5cdGNvbnN0ICRjb250ZW50TGVuZ3RoID0gY29udGVudExlbmd0aCA+PSAwID8gcHJldHR5Qnl0ZXMoY29udGVudExlbmd0aCkgOiAnPyBCJ1xuXHRjb25zdCAkcmVzcG9uc2VUaW1lID0gcmVzcG9uc2VUaW1lID49IDAgPyBwcmV0dHlNcyhyZXNwb25zZVRpbWUpIDogJydcblxuXHQvLyBBZGRpdGlvbmFsIGluZm9ybWF0aW9uLlxuXHRjb25zdCBtZXRhZGF0YSA9IGAoJHskY29udGVudExlbmd0aH0sICR7JHJlc3BvbnNlVGltZX0pYFxuXG5cdHJldHVybiBbXG5cdFx0YOKGkiAkeyRtZXRob2R9ICR7VVJMIGFzIHN0cmluZ30gJHskdmVyc2lvbn1gLFxuXHRcdGDihpAgJHskdmVyc2lvbn0gJHskc3RhdHVzQ29kZX0gJHttZXRhZGF0YX1gLFxuXHRdLmpvaW4oJ1xcbicpXG59XG5cbmV4cG9ydCBkZWZhdWx0IGV4ZWN1dGlvbk1vZGUgPT09IEV4ZWN1dGlvbk1vZGUuRGV2ZWxvcG1lbnRNb2RlID8gZm9ybWF0Rm9yTW9yZ2FuIDogbW9yZ2FuLmNvbWJpbmVkXG4iLCIvLyBOb2RlLmpzIGJ1aWx0LWluIEFQSXMuXG5pbXBvcnQgeyBJbmNvbWluZ01lc3NhZ2UgYXMgSHR0cFJlcXVlc3QsIFNlcnZlclJlc3BvbnNlIGFzIEh0dHBSZXNwb25zZSB9IGZyb20gJ2h0dHAnXG5pbXBvcnQgeyBQYXNzVGhyb3VnaCB9IGZyb20gJ3N0cmVhbSdcbmltcG9ydCB7IHByb21pc2lmeSB9IGZyb20gJ3V0aWwnXG5cbi8vIFRoaXJkLXBhcnR5IG1vZHVsZXMuXG5pbXBvcnQgbW9yZ2FuIGZyb20gJ21vcmdhbidcbmltcG9ydCAqIGFzIHdpbnN0b24gZnJvbSAnd2luc3RvbidcbmltcG9ydCB0eXBlIHsgbGV2ZWwgYXMgTG9nZ2luZ0xldmVsLCBMb2dnZXIgYXMgQmFzZUxvZ2dlciB9IGZyb20gJ3dpbnN0b24nXG5cbi8vIEZvcm1hdHRlcnMuXG5pbXBvcnQgZm9ybWF0Rm9yQ0xJIGZyb20gJyNmb3JtYXR0ZXJzL2NvbW1hbmQtbGluZSdcbmltcG9ydCBmb3JtYXRGb3JNb3JnYW4gZnJvbSAnI2Zvcm1hdHRlcnMvbW9yZ2FuJ1xuXG4vLyBMb2NhbCBoZWxwZXJzLlxuaW1wb3J0IHsgRXhlY3V0aW9uTW9kZSwgZXhlY3V0aW9uTW9kZSB9IGZyb20gJyNoZWxwZXJzL2NvbnN0YW50cydcblxuLy8gSGFuZGxlciBpbXBsZW1lbnRhdGlvbnMuXG5pbXBvcnQgdHlwZSB7IExvZ2dpbmdMZXZlbE5hbWUgfSBmcm9tICcjaGFuZGxlcnMvaW5kZXgnXG5pbXBvcnQgaGFuZGxlcnMgZnJvbSAnI2hhbmRsZXJzL2luZGV4J1xuXG4vLyBUeXBlIGRlZmluaXRpb25zLlxudHlwZSBNb3JnYW4gPSAocmVxOiBIdHRwUmVxdWVzdCwgcmVzOiBIdHRwUmVzcG9uc2UsIG5leHQ6IChlcnJvcj86IEVycm9yKSA9PiB2b2lkKSA9PiB2b2lkXG5cbi8vIFRyYW5zcG9ydHMuXG5jb25zdCB7IENvbnNvbGU6IENvbnNvbGVUcmFuc3BvcnQgfSA9IHdpbnN0b24udHJhbnNwb3J0c1xuXG5jbGFzcyBMb2dnZXIge1xuXHRzdGF0aWMgI2luc3RhbmNlPzogTG9nZ2VyXG5cblx0I2xvZ2dlcjogQmFzZUxvZ2dlciA9IHdpbnN0b24uY3JlYXRlTG9nZ2VyKHtcblx0XHRsZXZlbHM6IE9iamVjdC5mcm9tRW50cmllcyhcblx0XHRcdGhhbmRsZXJzXG5cdFx0XHRcdC5tYXAoKHsgbmFtZSwgbGV2ZWwgfSkgPT4gWyBuYW1lLCBsZXZlbCBdIGFzIGNvbnN0KVxuXHRcdFx0XHQuZmlsdGVyKChbICwgbGV2ZWwgXSkgPT4gdHlwZW9mIGxldmVsID09PSAnbnVtYmVyJyksXG5cdFx0KSxcblxuXHRcdGxldmVsOiAoZXhlY3V0aW9uTW9kZSA9PT0gRXhlY3V0aW9uTW9kZS5Qcm9kdWN0aW9uTW9kZSA/ICdodHRwJyA6ICd2ZXJib3NlJykgYXMgdHlwZW9mIExvZ2dpbmdMZXZlbCxcblxuXHRcdHRyYW5zcG9ydHM6IFtcblx0XHRcdG5ldyBDb25zb2xlVHJhbnNwb3J0KHsgZm9ybWF0OiBmb3JtYXRGb3JDTEkgfSksXG5cdFx0XSxcblxuXHRcdGV4aXRPbkVycm9yOiBmYWxzZSxcblx0fSlcblxuXHQjbW9yZ2FuOiBNb3JnYW4gPSBtb3JnYW4oZm9ybWF0Rm9yTW9yZ2FuLCB7XG5cdFx0c3RyZWFtOiBuZXcgUGFzc1Rocm91Z2goeyBvYmplY3RNb2RlOiB0cnVlIH0pLm9uKCdkYXRhJywgKGRhdGE6IHN0cmluZykgPT4ge1xuXHRcdFx0dGhpcy5sb2coJ2h0dHAnLCBkYXRhLnRyaW0oKSlcblx0XHR9KSxcblx0fSkgYXMgTW9yZ2FuXG5cblx0cHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcblx0XHRpZiAobmV3LnRhcmdldCAhPT0gTG9nZ2VyKSB7XG5cdFx0XHR0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoJ0xvZ2dlciBjbGFzcyBpcyBub3QgaW5oZXJpdGFibGUnKVxuXHRcdH1cblxuXHRcdGlmIChMb2dnZXIuI2luc3RhbmNlKSB7XG5cdFx0XHR0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoJ0xvZ2dlciBjbGFzcyBjYW5ub3QgYmUgY29uc3RydWN0ZWQgaW4gZGlyZWN0bHknKVxuXHRcdH1cblxuXHRcdExvZ2dlci4jaW5zdGFuY2UgPSB0aGlzXG5cdH1cblxuXHQvKipcblx0ICogTG9nZ2luZyBtZXNzYWdlIHdpdGggc3BlY2lmaWMgbGV2ZWwuXG5cdCAqXG5cdCAqIEBwYXJhbSBsZXZlbFxuXHQgKiBAcGFyYW0gbWVzc2FnZVxuXHQgKiBAcGFyYW0gYXJncyBBZGRpdGlvbmFsIG1ldGFkYXRhLlxuXHQgKi9cblx0cHVibGljIGxvZyhsZXZlbDogTG9nZ2luZ0xldmVsTmFtZSwgbWVzc2FnZTogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IHZvaWRcblxuXHQvKipcblx0ICogTG9nZ2luZyBIVFRQIEkvTy5cblx0ICpcblx0ICogQHBhcmFtIHJlcXVlc3QgTm9kZS5qcyBidWlsdC1pbiBgSW5jb21pbmdNZXNzYWdlYCBpbnN0YW5jZSBmcm9tIGBodHRwYCBtb2R1bGUuXG5cdCAqIEBwYXJhbSByZXNwb25zZSBOb2RlLmpzIGJ1aWx0LWluIGBTZXJ2ZXJSZXNwb25zZWAgaW5zdGFuY2UgZnJvbSBgaHR0cGAgbW9kdWxlLlxuXHQgKi9cblx0cHVibGljIGxvZyhyZXF1ZXN0OiBIdHRwUmVxdWVzdCwgcmVzcG9uc2U6IEh0dHBSZXNwb25zZSk6IFByb21pc2U8dm9pZD5cblxuXHQvKipcblx0ICogTG9nZ2luZyBlcnJvcnMgaW4gZGV0YWlsLlxuXHQgKlxuXHQgKiBAcGFyYW0gZXJyb3Jcblx0ICovXG5cdHB1YmxpYyBsb2coZXJyb3I6IEVycm9yKTogdm9pZFxuXG5cdHB1YmxpYyBsb2coLi4uYXJnczogYW55W10pOiB2b2lkIHwgUHJvbWlzZTx2b2lkPiB7XG5cdFx0Y29uc3QgbG9nZ2VyID0gdGhpcy4jbG9nZ2VyXG5cdFx0Y29uc3QgZm9ybWF0ID0gdGhpcy4jbW9yZ2FuXG5cblx0XHRzd2l0Y2ggKHRydWUpIHtcblx0XHRjYXNlIChhcmdzLmxlbmd0aCA+PSAyICYmIGFyZ3NbMF0gaW5zdGFuY2VvZiBIdHRwUmVxdWVzdCAmJiBhcmdzWzFdIGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKToge1xuXHRcdFx0Y29uc3QgWyByZXF1ZXN0LCByZXNwb25zZSBdID0gYXJncyBhcyBbIEh0dHBSZXF1ZXN0LCBIdHRwUmVzcG9uc2UgXVxuXG5cdFx0XHRyZXR1cm4gcHJvbWlzaWZ5KGZvcm1hdCkocmVxdWVzdCwgcmVzcG9uc2UpXG5cdFx0fVxuXG5cdFx0Y2FzZSAoYXJncy5sZW5ndGggPj0gMSAmJiBhcmdzWzBdIGluc3RhbmNlb2YgRXJyb3IpOiB7XG5cdFx0XHRjb25zdCBbIGVycm9yLCAuLi5kYXRhIF0gPSBhcmdzIGFzIFsgRXJyb3IsIC4uLmFueVtdIF1cblxuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXJndW1lbnRcblx0XHRcdGxvZ2dlci5sb2coJ2Vycm9yJywgZXJyb3IubWVzc2FnZSwgZXJyb3IsIC4uLmRhdGEpXG5cblx0XHRcdHJldHVybiB1bmRlZmluZWRcblx0XHR9XG5cblx0XHRkZWZhdWx0OiB7XG5cdFx0XHRjb25zdCBbIGxldmVsLCBtZXNzYWdlLCAuLi5kYXRhIF0gPSBhcmdzIGFzIFsgdHlwZW9mIExvZ2dpbmdMZXZlbCwgc3RyaW5nLCAuLi5hbnlbXSBdXG5cblx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFyZ3VtZW50XG5cdFx0XHRsb2dnZXIubG9nKGxldmVsLCBtZXNzYWdlLCAuLi5kYXRhKVxuXG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkXG5cdFx0fVxuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBSZWZsZWN0LmNvbnN0cnVjdChMb2dnZXIsIFtdLCBMb2dnZXIpIGFzIExvZ2dlclxuIl0sIm5hbWVzIjpbIkxvZ2dpbmdMZXZlbCIsIkZhdGFsIiwiRXJyb3IiLCJXYXJuaW5nIiwiTm90aWNlIiwiSW5mbyIsIkh0dHAiLCJRdWVyeSIsIlZlcmJvc2UiLCJEZWJ1ZyIsImNvbG9yaXplck1hcCIsIl9NYXAiLCJjcmVhdGVTY2hlbWUiLCJvcHRpb25zIiwibmV4dEluZGV4Iiwic2l6ZSIsImNvbG9yaXplciIsInN0cmluZyIsImJnUmdiMjQiLCJyZ2IyNCIsImZvcmVncm91bmQiLCJiYWNrZ3JvdW5kIiwic2V0IiwiQ29sb3JWYWx1ZSIsIldoaXRlIiwiR3JheSIsIkJsYWNrIiwiQ3JpdGljYWwiLCJSZWd1bGFyIiwiQ29sb3JTY2hlbWUiLCJMb3VkIiwiZ2V0Q2hhbGtPZiIsImNvbG9yU2V0IiwiZ2V0IiwiaXNUVFkiLCJwcm9jZXNzIiwic3Rkb3V0IiwiaXNOb3RPbkNMSSIsImRlY29yYXRlTGFiZWwiLCJsYWJlbCIsInNjaGVtZSIsImNvbG9yaXplIiwiZGVjb3JhdGVkTGFiZWwiLCJib2xkIiwicm9vdFBhdGgiLCJjd2QiLCJjb25qdW5jdGlvbiIsImJsdWUiLCJzcGxhdCIsIl9TeW1ib2wkZm9yIiwibmFtZSIsImxldmVsIiwic2ltcGxpZnlEYXRhVVJJIiwiZGF0YVVSSSIsImFjdHVhbENvbnRlbnQiLCJzcGxpdCIsInBpdm90IiwiX2luZGV4T2ZJbnN0YW5jZVByb3BlcnR5IiwiY2FsbCIsIm1pbWVJbmRpY2F0b3IiLCJfc2xpY2VJbnN0YW5jZVByb3BlcnR5IiwiY29udGVudFByZWZpeCIsImNvbnRlbnRTdWZmaXgiLCJpc0RhdGFVUkkiLCJmaWxlbmFtZSIsIl9zdGFydHNXaXRoSW5zdGFuY2VQcm9wZXJ0eSIsImlzQWJzb2x1dGVPckRhdGFVUkkiLCJwYXRoIiwiaXNBYnNvbHV0ZSIsIm1hcExvY2F0aW9uT2ZFcnJvclRocm93biIsInRhcmdldCIsInJlbGF0aXZlIiwiZ3JheSIsIl9pbmNsdWRlc0luc3RhbmNlUHJvcGVydHkiLCJfbGFzdEluZGV4T2ZJbnN0YW5jZVByb3BlcnR5IiwicmVwbGFjZSIsIl8iLCJtb2R1bGVOYW1lIiwidHJhaWxpbmciLCJzZXAiLCJ1bmRlcmxpbmUiLCJkaXJuYW1lIiwiYmFzZW5hbWUiLCJoYW5kbGUiLCJkYXRhIiwiX2NvbnRleHQiLCJfY29udGV4dDIiLCJfY29udGV4dDMiLCJlcnJvciIsInVuZGVmaW5lZCIsImVycm9yTmFtZSIsIm1lc3NhZ2UiLCJzdGFjayIsInJhd1N0YWNrIiwiX21hcEluc3RhbmNlUHJvcGVydHkiLCJsZW5ndGgiLCJsaW5lIiwiY29udGV4dE5hbWUiLCJyYXdMb2NhdGlvbiIsImxvY2F0aW9uIiwib2NjdXJyZWRMaW5lIiwidmVyc2lvbiIsIm9jY3VycmVkQ29sdW1uIiwiam9pbiIsInBheWxvYWQiLCJoaWdobGlnaHQiLCJsYW5ndWFnZSIsImhhbmRsZXJzIiwiRmF0YWxIYW5kbGVyIiwiRXJyb3JIYW5kbGVyIiwiV2FybmluZ0hhbmRsZXIiLCJOb3RpY2VIYW5kbGVyIiwiSW5mb0hhbmRsZXIiLCJIdHRwSGFuZGxlciIsIlF1ZXJ5SGFuZGxlciIsIlZlcmJvc2VIYW5kbGVyIiwiRGVidWdIYW5kbGVyIiwiZm9ybWF0IiwicHJpbnRmIiwidGltZXN0YW1wIiwiRGF0ZVRpbWUiLCJub3ciLCJ0b0lTTyIsImluY2x1ZGVPZmZzZXQiLCJoYW5kbGVyIiwiX2ZpbmRJbnN0YW5jZVByb3BlcnR5IiwiZmFsbGJhY2siLCJwZXJmb3JtSGFuZGxlIiwiZGVmYXVsdCIsIl9SZWZsZWN0JGFwcGx5IiwiZXh0cmFGaW5nZXJwcmludCIsInRyYW5zYWN0aW9uSWQiLCJyVHJhY2VyIiwiaWQiLCJFeGVjdXRpb25Nb2RlIiwiRGV2ZWxvcG1lbnRNb2RlIiwiUHJvZHVjdGlvbk1vZGUiLCJDbHVzdGVyaW5nTW9kZSIsIk1hc3RlclByb2Nlc3MiLCJXb3JrZXJQcm9jZXNzIiwiZXhlY3V0aW9uTW9kZSIsImVudmlyb25tZW50cyIsIk5PREVfRU5WIiwiY2x1c3RlciIsImlzUHJpbWFyeSIsImlzTWFzdGVyIiwiZGVjb3JhdGVTdGF0dXNDb2RlIiwic3RhdHVzQ29kZSIsImdyb3VwT2ZDb2RlIiwiTWF0aCIsImZsb29yIiwiTnVtYmVyIiwiYmFzZU1lc3NhZ2UiLCJTVEFUVVNfQ09ERVMiLCJncmVlbiIsIm1hZ2VudGEiLCJyZWQiLCJmb3JtYXRGb3JNb3JnYW4iLCJ0b2tlbnMiLCJyZXF1ZXN0IiwicmVzcG9uc2UiLCJ0b2tlbiIsInN1YkFyZ3MiLCJtZXRob2QiLCJVUkwiLCJodHRwVmVyc2lvbiIsImNvbnRlbnRMZW5ndGgiLCJyZXNwb25zZVRpbWUiLCIkbWV0aG9kIiwiJHZlcnNpb24iLCIkc3RhdHVzQ29kZSIsIiRjb250ZW50TGVuZ3RoIiwicHJldHR5Qnl0ZXMiLCIkcmVzcG9uc2VUaW1lIiwicHJldHR5TXMiLCJtZXRhZGF0YSIsIm1vcmdhbiIsImNvbWJpbmVkIiwiQ29uc29sZSIsIkNvbnNvbGVUcmFuc3BvcnQiLCJ3aW5zdG9uIiwidHJhbnNwb3J0cyIsIkxvZ2dlciIsImNyZWF0ZUxvZ2dlciIsImxldmVscyIsIl9PYmplY3QkZnJvbUVudHJpZXMiLCJfZmlsdGVySW5zdGFuY2VQcm9wZXJ0eSIsImZvcm1hdEZvckNMSSIsImV4aXRPbkVycm9yIiwic3RyZWFtIiwiUGFzc1Rocm91Z2giLCJvYmplY3RNb2RlIiwib24iLCJsb2ciLCJfdHJpbUluc3RhbmNlUHJvcGVydHkiLCJjb25zdHJ1Y3RvciIsIm5ldyIsIlJlZmVyZW5jZUVycm9yIiwiYXJncyIsImxvZ2dlciIsIkh0dHBSZXF1ZXN0IiwiSHR0cFJlc3BvbnNlIiwicHJvbWlzaWZ5IiwiX1JlZmxlY3QkY29uc3RydWN0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsTUFBTUEsWUFBWSxHQUFHO0FBQ3BCO0FBQ0FDLEVBQUFBLEtBQUssRUFBRSxDQUFDO0FBQ1JDLEVBQUFBLEtBQUssRUFBRSxDQUFDO0FBRVI7QUFDQUMsRUFBQUEsT0FBTyxFQUFFLENBQUM7QUFFVjtBQUNBQyxFQUFBQSxNQUFNLEVBQUUsQ0FBQztBQUNUQyxFQUFBQSxJQUFJLEVBQUUsQ0FB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
|
|
538
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZXMvaGVscGVycy9sb2dnaW5nLWxldmVsLnRzIiwiLi4vc291cmNlcy9oZWxwZXJzL2NvbG9yLXNjaGVtZS50cyIsIi4uL3NvdXJjZXMvaGVscGVycy9sYWJlbC1kZWNvcmF0b3IudHMiLCIuLi9zb3VyY2VzL2hhbmRsZXJzL2Vycm9yLnRzIiwiLi4vc291cmNlcy9oYW5kbGVycy9mYXRhbC50cyIsIi4uL3NvdXJjZXMvaGFuZGxlcnMvd2FybmluZy50cyIsIi4uL3NvdXJjZXMvaGFuZGxlcnMvbm90aWNlLnRzIiwiLi4vc291cmNlcy9oYW5kbGVycy9pbmZvLnRzIiwiLi4vc291cmNlcy9oYW5kbGVycy9odHRwLnRzIiwiLi4vc291cmNlcy9oYW5kbGVycy9xdWVyeS50cyIsIi4uL3NvdXJjZXMvaGFuZGxlcnMvdmVyYm9zZS50cyIsIi4uL3NvdXJjZXMvaGFuZGxlcnMvZGVidWcudHMiLCIuLi9zb3VyY2VzL2hhbmRsZXJzL2luZGV4LnRzIiwiLi4vc291cmNlcy9mb3JtYXR0ZXJzL2NvbW1hbmQtbGluZS50cyIsIi4uL3NvdXJjZXMvaGVscGVycy9jb25zdGFudHMudHMiLCIuLi9zb3VyY2VzL2Zvcm1hdHRlcnMvbW9yZ2FuLnRzIiwiLi4vc291cmNlcy9jbGFzc2VzL2xvZ2dlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBMb2dnaW5nTGV2ZWwgPSB7XG5cdC8vIENyaXRpY2FsIGxldmVscy4gKEl0IHdpbGwgY3Jhc2ggdGhlIHByb2Nlc3MpXG5cdEZhdGFsOiAwLFxuXHRFcnJvcjogMSxcblxuXHQvLyBXYXJuaW5nIGxldmVscy4gKEl0IGp1c3QgcmVwb3J0IHdhcm5pbmcgaW5mb3JtYXRpb24sIG5vdCBjcmFzaCB0aGUgcHJvY2Vzcylcblx0V2FybmluZzogMixcblxuXHQvLyBSZWd1bGFyIGxldmVsIGFuZCBhbGlhc2VzLlxuXHROb3RpY2U6IDMsXG5cdEluZm86IDMsXG5cblx0Ly8gTWF5YmUgc2Vuc2l0aXZlIGxldmVscy4gKEluIGdlbmVyYWwsIGRvZXMgbm90IHVzZWZ1bClcblx0SHR0cDogNCxcblx0UXVlcnk6IDQsXG5cblx0Ly8gTG91ZCBsZXZlbHMuXG5cdFZlcmJvc2U6IDUsXG5cdERlYnVnOiA1LFxufSBhcyBjb25zdFxuXG50eXBlIExvZ2dpbmdMZXZlbCA9IHR5cGVvZiBMb2dnaW5nTGV2ZWxba2V5b2YgdHlwZW9mIExvZ2dpbmdMZXZlbF1cblxuZXhwb3J0IGRlZmF1bHQgTG9nZ2luZ0xldmVsXG4iLCIvLyBUaGlyZC1wYXJ0eSBtb2R1bGVzLlxuaW1wb3J0IHsgYmdSZ2IyNCwgcmdiMjQgfSBmcm9tICdAc3RkL2ZtdC9jb2xvcnMnXG5cbi8vIFR5cGUgZGVmaW5pdGlvbnMuXG50eXBlIENvbG9yaXplciA9IChzdHJpbmc6IHN0cmluZykgPT4gc3RyaW5nXG5cbi8vIENvbnN0YW50cy5cbmNvbnN0IGNvbG9yaXplck1hcCA9IG5ldyBNYXA8bnVtYmVyLCBDb2xvcml6ZXI+KClcblxuLy8gSGVscGVycy5cbmZ1bmN0aW9uIGNyZWF0ZVNjaGVtZShvcHRpb25zOiB7IGJhY2tncm91bmQ6IENvbG9yVmFsdWUsIGZvcmVncm91bmQ6IENvbG9yVmFsdWUgfSk6IG51bWJlciB7XG5cdGNvbnN0IG5leHRJbmRleCA9IGNvbG9yaXplck1hcC5zaXplXG5cdGNvbnN0IGNvbG9yaXplciA9IChzdHJpbmc6IHN0cmluZykgPT4gYmdSZ2IyNChyZ2IyNChzdHJpbmcsIG9wdGlvbnMuZm9yZWdyb3VuZCksIG9wdGlvbnMuYmFja2dyb3VuZClcblxuXHRjb2xvcml6ZXJNYXAuc2V0KG5leHRJbmRleCwgY29sb3JpemVyKVxuXG5cdHJldHVybiBuZXh0SW5kZXhcbn1cblxuLy8gQ29sb3IgZGVmaW5pdGlvbnMuXG5jb25zdCBDb2xvclZhbHVlID0ge1xuXHQvLyBCYXNpYyBjb2xvcnMuXG5cdFdoaXRlOiAweEZGRkZGRixcblx0R3JheTogMHg4MDgwODAsXG5cdEJsYWNrOiAweDAwMDAwMCxcblxuXHQvLyBTcGVjaWFsaXplZCBjb2xvcnMuXG5cdENyaXRpY2FsOiAweEQ2MzAzMSxcblx0V2FybmluZzogMHhGRENCNkUsXG5cdFJlZ3VsYXI6IDB4MDk4NEUzLFxuXHRIdHRwOiAweDZBQjA0Qyxcblx0UXVlcnk6IDB4Mzk5QUYzLFxufSBhcyBjb25zdFxuXG50eXBlIENvbG9yVmFsdWUgPSB0eXBlb2YgQ29sb3JWYWx1ZVtrZXlvZiB0eXBlb2YgQ29sb3JWYWx1ZV1cblxuY29uc3QgQ29sb3JTY2hlbWUgPSB7XG5cdENyaXRpY2FsOiBjcmVhdGVTY2hlbWUoe1xuXHRcdGJhY2tncm91bmQ6IENvbG9yVmFsdWUuQ3JpdGljYWwsXG5cdFx0Zm9yZWdyb3VuZDogQ29sb3JWYWx1ZS5CbGFjayxcblx0fSksXG5cblx0V2FybmluZzogY3JlYXRlU2NoZW1lKHtcblx0XHRiYWNrZ3JvdW5kOiBDb2xvclZhbHVlLldhcm5pbmcsXG5cdFx0Zm9yZWdyb3VuZDogQ29sb3JWYWx1ZS5CbGFjayxcblx0fSksXG5cblx0UmVndWxhcjogY3JlYXRlU2NoZW1lKHtcblx0XHRiYWNrZ3JvdW5kOiBDb2xvclZhbHVlLlJlZ3VsYXIsXG5cdFx0Zm9yZWdyb3VuZDogQ29sb3JWYWx1ZS5XaGl0ZSxcblx0fSksXG5cblx0SHR0cDogY3JlYXRlU2NoZW1lKHtcblx0XHRiYWNrZ3JvdW5kOiBDb2xvclZhbHVlLkh0dHAsXG5cdFx0Zm9yZWdyb3VuZDogQ29sb3JWYWx1ZS5CbGFjayxcblx0fSksXG5cblx0UXVlcnk6IGNyZWF0ZVNjaGVtZSh7XG5cdFx0YmFja2dyb3VuZDogQ29sb3JWYWx1ZS5RdWVyeSxcblx0XHRmb3JlZ3JvdW5kOiBDb2xvclZhbHVlLkJsYWNrLFxuXHR9KSxcblxuXHRMb3VkOiBjcmVhdGVTY2hlbWUoe1xuXHRcdGJhY2tncm91bmQ6IENvbG9yVmFsdWUuQmxhY2ssXG5cdFx0Zm9yZWdyb3VuZDogQ29sb3JWYWx1ZS5HcmF5LFxuXHR9KSxcbn0gYXMgY29uc3RcblxudHlwZSBDb2xvclNjaGVtZSA9IHR5cGVvZiBDb2xvclNjaGVtZVtrZXlvZiB0eXBlb2YgQ29sb3JTY2hlbWVdXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDaGFsa09mKGNvbG9yU2V0OiBDb2xvclNjaGVtZSk6IENvbG9yaXplciB7XG5cdHJldHVybiBjb2xvcml6ZXJNYXAuZ2V0KGNvbG9yU2V0KSA/PyAoKHN0cmluZzogc3RyaW5nKSA9PiBzdHJpbmcpXG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbG9yU2NoZW1lXG4iLCIvLyBOb2RlLmpzIGJ1aWx0LWluIEFQSXMuXG5pbXBvcnQgcHJvY2VzcyBmcm9tICdwcm9jZXNzJ1xuXG4vLyBUaGlyZC1wYXJ0eSBtb2R1bGVzLlxuaW1wb3J0IHsgYm9sZCB9IGZyb20gJ0BzdGQvZm10L2NvbG9ycydcblxuLy8gTG9jYWwgaGVscGVycy5cbmltcG9ydCBDb2xvclNjaGVtZSwgeyBnZXRDaGFsa09mIH0gZnJvbSAnI2hlbHBlcnMvY29sb3Itc2NoZW1lJ1xuXG4vLyBDb25zdGFudHMuXG5jb25zdCB7IGlzVFRZIH0gPSBwcm9jZXNzLnN0ZG91dFxuY29uc3QgaXNOb3RPbkNMSSA9ICFpc1RUWVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBkZWNvcmF0ZUxhYmVsPFQgZXh0ZW5kcyBzdHJpbmc+KGxhYmVsOiBULCBzY2hlbWU6IENvbG9yU2NoZW1lKTogVCB7XG5cdGlmIChpc05vdE9uQ0xJKSByZXR1cm4gbGFiZWxcblxuXHRjb25zdCBjb2xvcml6ZSA9IGdldENoYWxrT2Yoc2NoZW1lKVxuXHRjb25zdCBkZWNvcmF0ZWRMYWJlbCA9IGJvbGQoY29sb3JpemUoYCAke2xhYmVsfSBgKSlcblxuXHRyZXR1cm4gZGVjb3JhdGVkTGFiZWwgYXMgVFxufVxuIiwiLy8gTm9kZS5qcyBidWlsdC1pbiBBUElzLlxuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCBwcm9jZXNzLCB7IHZlcnNpb24gfSBmcm9tICdwcm9jZXNzJ1xuXG4vLyBUaGlyZC1wYXJ0eSBtb2R1bGVzLlxuaW1wb3J0IHsgYmx1ZSwgZ3JheSwgYm9sZCwgdW5kZXJsaW5lIH0gZnJvbSAnQHN0ZC9mbXQvY29sb3JzJ1xuXG4vLyBMb2NhbCBoZWxwZXJzLlxuaW1wb3J0IExvZ2dpbmdMZXZlbCBmcm9tICcjaGVscGVycy9sb2dnaW5nLWxldmVsJ1xuaW1wb3J0IENvbG9yU2NoZW1lIGZyb20gJyNoZWxwZXJzL2NvbG9yLXNjaGVtZSdcbmltcG9ydCBkZWNvcmF0ZUxhYmVsIGZyb20gJyNoZWxwZXJzL2xhYmVsLWRlY29yYXRvcidcblxuLy8gVHlwZSBkZWZpbml0aW9ucy5cbnR5cGUgTG9nZ2luZ0RhdGEgPSB7IGxldmVsOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZyB9ICYgUmVjb3JkPFByb3BlcnR5S2V5LCBhbnk+XG50eXBlIEhhbmRsZWREYXRhID0geyBsYWJlbDogc3RyaW5nLCBwYXlsb2FkOiBzdHJpbmcgfVxuXG4vLyBDb25zdGFudHMuXG5jb25zdCByb290UGF0aCA9IHByb2Nlc3MuY3dkKClcbmNvbnN0IGNvbmp1bmN0aW9uID0gYCAke2JsdWUoJ+KUgOKUgCcpfSBgXG5jb25zdCBzcGxhdDogdW5pcXVlIHN5bWJvbCA9IFN5bWJvbC5mb3IoJ3NwbGF0JylcblxuLy8gSGFuZGxlciBtZXRhZGF0YS5cbmV4cG9ydCBjb25zdCBuYW1lID0gJ2Vycm9yJ1xuZXhwb3J0IGNvbnN0IGxldmVsID0gTG9nZ2luZ0xldmVsLkVycm9yXG5leHBvcnQgY29uc3QgbGFiZWwgPSBkZWNvcmF0ZUxhYmVsKCdFUlJPUicsIENvbG9yU2NoZW1lLkNyaXRpY2FsKVxuXG5mdW5jdGlvbiBzaW1wbGlmeURhdGFVUkkoZGF0YVVSSTogc3RyaW5nKTogc3RyaW5nIHtcblx0Y29uc3QgWyAsIGFjdHVhbENvbnRlbnQgXSA9IGRhdGFVUkkuc3BsaXQoJzonKVxuXHRjb25zdCBwaXZvdCA9IGFjdHVhbENvbnRlbnQuaW5kZXhPZignLCcpICsgMVxuXHRjb25zdCBtaW1lSW5kaWNhdG9yID0gYWN0dWFsQ29udGVudC5zbGljZSgwLCBwaXZvdClcblx0Y29uc3QgY29udGVudFByZWZpeCA9IGFjdHVhbENvbnRlbnQuc2xpY2UocGl2b3QsIHBpdm90ICsgNClcblx0Y29uc3QgY29udGVudFN1ZmZpeCA9IGFjdHVhbENvbnRlbnQuc2xpY2UoLTQpXG5cblx0cmV0dXJuIGBkYXRhOiR7bWltZUluZGljYXRvciArIGNvbnRlbnRQcmVmaXh9Li4uJHtjb250ZW50U3VmZml4fWBcbn1cblxuZnVuY3Rpb24gaXNEYXRhVVJJKGZpbGVuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcblx0cmV0dXJuIGZpbGVuYW1lLnN0YXJ0c1dpdGgoJ2RhdGE6Jylcbn1cblxuZnVuY3Rpb24gaXNBYnNvbHV0ZU9yRGF0YVVSSShmaWxlbmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG5cdHJldHVybiBwYXRoLmlzQWJzb2x1dGUoZmlsZW5hbWUpIHx8IGlzRGF0YVVSSShmaWxlbmFtZSlcbn1cblxuZnVuY3Rpb24gbWFwTG9jYXRpb25PZkVycm9yVGhyb3duKGZpbGVuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRsZXQgdGFyZ2V0ID0gcGF0aC5yZWxhdGl2ZShyb290UGF0aCwgZmlsZW5hbWUpXG5cblx0aWYgKGlzRGF0YVVSSShmaWxlbmFtZSkpIHtcblx0XHR0YXJnZXQgPSBncmF5KHNpbXBsaWZ5RGF0YVVSSShmaWxlbmFtZSkpXG5cdH0gZWxzZSBpZiAodGFyZ2V0LmluY2x1ZGVzKCdub2RlX21vZHVsZXMnKSkge1xuXHRcdHRhcmdldCA9IGdyYXkoXG5cdFx0XHR0YXJnZXQuc2xpY2UodGFyZ2V0Lmxhc3RJbmRleE9mKCdub2RlX21vZHVsZXMnKSksXG5cdFx0KS5yZXBsYWNlKFxuXHRcdFx0L25vZGVfbW9kdWxlc1tcXFxcL10oKD86QFteXFxcXC9dK1tcXFxcL10pP1teXFxcXC9dKykoLiopLyxcblx0XHRcdChfLCBtb2R1bGVOYW1lOiBzdHJpbmcsIHRyYWlsaW5nOiBzdHJpbmcpID0+IChcblx0XHRcdFx0YG5vZGVfbW9kdWxlcyR7cGF0aC5zZXB9JHtib2xkKHVuZGVybGluZShtb2R1bGVOYW1lKSl9JHtncmF5KHRyYWlsaW5nKX1gXG5cdFx0XHQpLFxuXHRcdClcblx0fSBlbHNlIHtcblx0XHR0YXJnZXQgPSBgJHtncmF5KHBhdGguZGlybmFtZSh0YXJnZXQpICsgcGF0aC5zZXApfSR7Ym9sZCh1bmRlcmxpbmUocGF0aC5iYXNlbmFtZSh0YXJnZXQpKSl9YFxuXHR9XG5cblx0cmV0dXJuIHRhcmdldFxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBoYW5kbGUoZGF0YTogTG9nZ2luZ0RhdGEpOiBIYW5kbGVkRGF0YSB8IHVuZGVmaW5lZCB7XG5cdGNvbnN0IHsgW3NwbGF0XTogWyBlcnJvciBdID0gW10gfSA9IGRhdGEgYXMgYW55XG5cblx0aWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikpIHtcblx0XHRyZXR1cm4gdW5kZWZpbmVkXG5cdH1cblxuXHRjb25zdCB7IG5hbWU6IGVycm9yTmFtZSwgbWVzc2FnZSwgc3RhY2s6IHJhd1N0YWNrID0gJycgfSA9IGVycm9yXG5cblx0Y29uc3Qgc3RhY2sgPSByYXdTdGFja1xuXHRcdC5zbGljZShlcnJvck5hbWUubGVuZ3RoICsgbWVzc2FnZS5sZW5ndGggKyAzKVxuXHRcdC5zcGxpdCgnXFxuJylcblx0XHQubWFwKGxpbmUgPT4gbGluZS5yZXBsYWNlKC9eXFxzK2F0IC9nLCAnJykpXG5cdFx0Lm1hcChsaW5lID0+IChpc0Fic29sdXRlT3JEYXRhVVJJKGxpbmUpID8gYDxhbm9ueW1vdXM+JHtjb25qdW5jdGlvbn0ke21hcExvY2F0aW9uT2ZFcnJvclRocm93bihsaW5lKX1gIDogbGluZSkpXG5cdFx0Lm1hcChsaW5lID0+IGxpbmUucmVwbGFjZSgvXiguKykgXFwoKC4rKVxcKSQvLCAoXywgY29udGV4dE5hbWU6IHN0cmluZywgcmF3TG9jYXRpb246IHN0cmluZykgPT4ge1xuXHRcdFx0bGV0IGxvY2F0aW9uID0gJydcblxuXHRcdFx0c3dpdGNoICh0cnVlKSB7XG5cdFx0XHRjYXNlIChyYXdMb2NhdGlvbiA9PT0gJzxhbm9ueW1vdXM+Jyk6IHtcblx0XHRcdFx0bG9jYXRpb24gPSBncmF5KHJhd0xvY2F0aW9uKVxuXG5cdFx0XHRcdGJyZWFrXG5cdFx0XHR9XG5cblx0XHRcdGNhc2UgKGlzRGF0YVVSSShyYXdMb2NhdGlvbikpOiB7XG5cdFx0XHRcdGxvY2F0aW9uID0gZ3JheShzaW1wbGlmeURhdGFVUkkocmF3TG9jYXRpb24pKVxuXG5cdFx0XHRcdGJyZWFrXG5cdFx0XHR9XG5cblx0XHRcdGNhc2UgKHJhd0xvY2F0aW9uLnN0YXJ0c1dpdGgoJ25vZGU6JykpOiB7XG5cdFx0XHRcdGNvbnN0IFsgZmlsZW5hbWUsIG9jY3VycmVkTGluZSBdID0gcmF3TG9jYXRpb24uc2xpY2UoNSkuc3BsaXQoJzonKVxuXG5cdFx0XHRcdGxvY2F0aW9uID0gZ3JheShgaHR0cHM6Ly9naXRodWIuY29tLyR7Ym9sZCh1bmRlcmxpbmUoJ25vZGVqcycpKX0vbm9kZS9ibG9iLyR7dmVyc2lvbn0vbGliLyR7ZmlsZW5hbWV9LmpzI0wke29jY3VycmVkTGluZX1gKVxuXG5cdFx0XHRcdGJyZWFrXG5cdFx0XHR9XG5cblx0XHRcdGRlZmF1bHQ6IHtcblx0XHRcdFx0Y29uc3QgWyBmaWxlbmFtZSwgb2NjdXJyZWRMaW5lLCBvY2N1cnJlZENvbHVtbiBdID0gcmF3TG9jYXRpb24uc3BsaXQoJzonKVxuXG5cdFx0XHRcdGlmICghcGF0aC5pc0Fic29sdXRlKGZpbGVuYW1lKSkgYnJlYWtcblxuXHRcdFx0XHRjb25zdCB0YXJnZXQgPSBtYXBMb2NhdGlvbk9mRXJyb3JUaHJvd24ocGF0aC5yZWxhdGl2ZShyb290UGF0aCwgZmlsZW5hbWUpKVxuXHRcdFx0XHRjb25zdCB0cmFpbGluZyA9IGdyYXkoYDoke29jY3VycmVkTGluZX06JHtvY2N1cnJlZENvbHVtbn1gKVxuXG5cdFx0XHRcdGxvY2F0aW9uID0gdGFyZ2V0ICsgdHJhaWxpbmdcblx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGAke2NvbnRleHROYW1lfSR7Y29uanVuY3Rpb259JHtsb2NhdGlvbn1gXG5cdFx0fSkpXG5cdFx0LmpvaW4oJ1xcbicpXG5cblx0Y29uc3QgZGVjb3JhdGVkTGFiZWwgPSBkZWNvcmF0ZUxhYmVsKGVycm9yTmFtZSwgQ29sb3JTY2hlbWUuQ3JpdGljYWwpXG5cdGNvbnN0IHBheWxvYWQgPSBgJHttZXNzYWdlfVxcblxcbiR7c3RhY2t9XFxuYFxuXG5cdHJldHVybiB7IGxhYmVsOiBkZWNvcmF0ZWRMYWJlbCwgcGF5bG9hZCB9XG59XG4iLCIvLyBMb2NhbCBoZWxwZXJzLlxuaW1wb3J0IExvZ2dpbmdMZXZlbCBmcm9tICcjaGVscGVycy9sb2dnaW5nLWxldmVsJ1xuaW1wb3J0IENvbG9yU2NoZW1lIGZyb20gJyNoZWxwZXJzL2NvbG9yLXNjaGVtZSdcbmltcG9ydCBkZWNvcmF0ZUxhYmVsIGZyb20gJyNoZWxwZXJzL2xhYmVsLWRlY29yYXRvcidcblxuLy8gSGFuZGxlciBtZXRhZGF0YS5cbmV4cG9ydCBjb25zdCBuYW1lID0gJ2ZhdGFsJ1xuZXhwb3J0IGNvbnN0IGxldmVsID0gTG9nZ2luZ0xldmVsLkZhdGFsXG5leHBvcnQgY29uc3QgbGFiZWwgPSBkZWNvcmF0ZUxhYmVsKCdGQVRBTCcsIENvbG9yU2NoZW1lLkNyaXRpY2FsKVxuXG5leHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAnI2hhbmRsZXJzL2Vycm9yJyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXJlc3RyaWN0ZWQtZXhwb3J0c1xuIiwiLy8gTG9jYWwgaGVscGVycy5cbmltcG9ydCBMb2dnaW5nTGV2ZWwgZnJvbSAnI2hlbHBlcnMvbG9nZ2luZy1sZXZlbCdcbmltcG9ydCBDb2xvclNjaGVtZSBmcm9tICcjaGVscGVycy9jb2xvci1zY2hlbWUnXG5pbXBvcnQgZGVjb3JhdGVMYWJlbCBmcm9tICcjaGVscGVycy9sYWJlbC1kZWNvcmF0b3InXG5cbi8vIEhhbmRsZXIgbWV0YWRhdGEuXG5leHBvcnQgY29uc3QgbmFtZSA9ICd3YXJuaW5nJ1xuZXhwb3J0IGNvbnN0IGxldmVsID0gTG9nZ2luZ0xldmVsLldhcm5pbmdcbmV4cG9ydCBjb25zdCBsYWJlbCA9IGRlY29yYXRlTGFiZWwoJ1dBUk5JTkcnLCBDb2xvclNjaGVtZS5XYXJuaW5nKVxuXG5leHBvcnQgZGVmYXVsdCBudWxsXG4iLCIvLyBMb2NhbCBoZWxwZXJzLlxuaW1wb3J0IExvZ2dpbmdMZXZlbCBmcm9tICcjaGVscGVycy9sb2dnaW5nLWxldmVsJ1xuaW1wb3J0IENvbG9yU2NoZW1lIGZyb20gJyNoZWxwZXJzL2NvbG9yLXNjaGVtZSdcbmltcG9ydCBkZWNvcmF0ZUxhYmVsIGZyb20gJyNoZWxwZXJzL2xhYmVsLWRlY29yYXRvcidcblxuLy8gSGFuZGxlciBtZXRhZGF0YS5cbmV4cG9ydCBjb25zdCBuYW1lID0gJ25vdGljZSdcbmV4cG9ydCBjb25zdCBsZXZlbCA9IExvZ2dpbmdMZXZlbC5Ob3RpY2VcbmV4cG9ydCBjb25zdCBsYWJlbCA9IGRlY29yYXRlTGFiZWwoJ05PVElDRScsIENvbG9yU2NoZW1lLlJlZ3VsYXIpXG5cbmV4cG9ydCBkZWZhdWx0IG51bGxcbiIsIi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgTG9nZ2luZ0xldmVsIGZyb20gJyNoZWxwZXJzL2xvZ2dpbmctbGV2ZWwnXG5pbXBvcnQgQ29sb3JTY2hlbWUgZnJvbSAnI2hlbHBlcnMvY29sb3Itc2NoZW1lJ1xuaW1wb3J0IGRlY29yYXRlTGFiZWwgZnJvbSAnI2hlbHBlcnMvbGFiZWwtZGVjb3JhdG9yJ1xuXG4vLyBIYW5kbGVyIG1ldGFkYXRhLlxuZXhwb3J0IGNvbnN0IG5hbWUgPSAnaW5mbydcbmV4cG9ydCBjb25zdCBsZXZlbCA9IExvZ2dpbmdMZXZlbC5JbmZvXG5leHBvcnQgY29uc3QgbGFiZWwgPSBkZWNvcmF0ZUxhYmVsKCdJTkZPJywgQ29sb3JTY2hlbWUuUmVndWxhcilcblxuZXhwb3J0IGRlZmF1bHQgbnVsbFxuIiwiLy8gTG9jYWwgaGVscGVycy5cbmltcG9ydCBMb2dnaW5nTGV2ZWwgZnJvbSAnI2hlbHBlcnMvbG9nZ2luZy1sZXZlbCdcbmltcG9ydCBDb2xvclNjaGVtZSBmcm9tICcjaGVscGVycy9jb2xvci1zY2hlbWUnXG5pbXBvcnQgZGVjb3JhdGVMYWJlbCBmcm9tICcjaGVscGVycy9sYWJlbC1kZWNvcmF0b3InXG5cbi8vIEhhbmRsZXIgbWV0YWRhdGEuXG5leHBvcnQgY29uc3QgbmFtZSA9ICdodHRwJ1xuZXhwb3J0IGNvbnN0IGxldmVsID0gTG9nZ2luZ0xldmVsLkh0dHBcbmV4cG9ydCBjb25zdCBsYWJlbCA9IGRlY29yYXRlTGFiZWwoJ0hUVFAnLCBDb2xvclNjaGVtZS5IdHRwKVxuXG5leHBvcnQgZGVmYXVsdCBudWxsXG4iLCIvLyBIaWdobGlnaHQuanNcbmltcG9ydCB7IGhpZ2hsaWdodCB9IGZyb20gJ2NsaS1oaWdobGlnaHQnXG5cbi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgTG9nZ2luZ0xldmVsIGZyb20gJyNoZWxwZXJzL2xvZ2dpbmctbGV2ZWwnXG5pbXBvcnQgQ29sb3JTY2hlbWUgZnJvbSAnI2hlbHBlcnMvY29sb3Itc2NoZW1lJ1xuaW1wb3J0IGRlY29yYXRlTGFiZWwgZnJvbSAnI2hlbHBlcnMvbGFiZWwtZGVjb3JhdG9yJ1xuXG4vLyBUeXBlIGRlZmluaXRpb25zLlxudHlwZSBMb2dnaW5nRGF0YSA9IHsgbGV2ZWw6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nIH0gJiBSZWNvcmQ8UHJvcGVydHlLZXksIGFueT5cbnR5cGUgSGFuZGxlZERhdGEgPSB7IGxhYmVsOiBzdHJpbmcsIHBheWxvYWQ6IHN0cmluZyB9XG5cbi8vIEhhbmRsZXIgbWV0YWRhdGEuXG5leHBvcnQgY29uc3QgbmFtZSA9ICdxdWVyeSdcbmV4cG9ydCBjb25zdCBsZXZlbCA9IExvZ2dpbmdMZXZlbC5RdWVyeVxuZXhwb3J0IGNvbnN0IGxhYmVsID0gZGVjb3JhdGVMYWJlbCgnUVVFUlknLCBDb2xvclNjaGVtZS5RdWVyeSlcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaGFuZGxlKGRhdGE6IExvZ2dpbmdEYXRhKTogSGFuZGxlZERhdGEgfCB1bmRlZmluZWQge1xuXHRjb25zdCBwYXlsb2FkID0gaGlnaGxpZ2h0KGRhdGEubWVzc2FnZSwgeyBsYW5ndWFnZTogJ3NxbCcgfSlcblxuXHRyZXR1cm4geyBsYWJlbCwgcGF5bG9hZCB9XG59XG4iLCIvLyBMb2NhbCBoZWxwZXJzLlxuaW1wb3J0IExvZ2dpbmdMZXZlbCBmcm9tICcjaGVscGVycy9sb2dnaW5nLWxldmVsJ1xuaW1wb3J0IENvbG9yU2NoZW1lIGZyb20gJyNoZWxwZXJzL2NvbG9yLXNjaGVtZSdcbmltcG9ydCBkZWNvcmF0ZUxhYmVsIGZyb20gJyNoZWxwZXJzL2xhYmVsLWRlY29yYXRvcidcblxuLy8gSGFuZGxlciBtZXRhZGF0YS5cbmV4cG9ydCBjb25zdCBuYW1lID0gJ3ZlcmJvc2UnXG5leHBvcnQgY29uc3QgbGV2ZWwgPSBMb2dnaW5nTGV2ZWwuVmVyYm9zZVxuZXhwb3J0IGNvbnN0IGxhYmVsID0gZGVjb3JhdGVMYWJlbCgnVkVSQk9TRScsIENvbG9yU2NoZW1lLkxvdWQpXG5cbmV4cG9ydCBkZWZhdWx0IG51bGxcbiIsIi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgTG9nZ2luZ0xldmVsIGZyb20gJyNoZWxwZXJzL2xvZ2dpbmctbGV2ZWwnXG5pbXBvcnQgQ29sb3JTY2hlbWUgZnJvbSAnI2hlbHBlcnMvY29sb3Itc2NoZW1lJ1xuaW1wb3J0IGRlY29yYXRlTGFiZWwgZnJvbSAnI2hlbHBlcnMvbGFiZWwtZGVjb3JhdG9yJ1xuXG4vLyBIYW5kbGVyIG1ldGFkYXRhLlxuZXhwb3J0IGNvbnN0IG5hbWUgPSAnZGVidWcnXG5leHBvcnQgY29uc3QgbGV2ZWwgPSBMb2dnaW5nTGV2ZWwuRGVidWdcbmV4cG9ydCBjb25zdCBsYWJlbCA9IGRlY29yYXRlTGFiZWwoJ0RFQlVHJywgQ29sb3JTY2hlbWUuTG91ZClcblxuZXhwb3J0IGRlZmF1bHQgbnVsbFxuIiwiLy8gSGFuZGxlciBpbXBsZW1lbnRhdGlvbnMuXG5pbXBvcnQgKiBhcyBGYXRhbEhhbmRsZXIgZnJvbSAnI2hhbmRsZXJzL2ZhdGFsJ1xuaW1wb3J0ICogYXMgRXJyb3JIYW5kbGVyIGZyb20gJyNoYW5kbGVycy9lcnJvcidcbmltcG9ydCAqIGFzIFdhcm5pbmdIYW5kbGVyIGZyb20gJyNoYW5kbGVycy93YXJuaW5nJ1xuaW1wb3J0ICogYXMgTm90aWNlSGFuZGxlciBmcm9tICcjaGFuZGxlcnMvbm90aWNlJ1xuaW1wb3J0ICogYXMgSW5mb0hhbmRsZXIgZnJvbSAnI2hhbmRsZXJzL2luZm8nXG5pbXBvcnQgKiBhcyBIdHRwSGFuZGxlciBmcm9tICcjaGFuZGxlcnMvaHR0cCdcbmltcG9ydCAqIGFzIFF1ZXJ5SGFuZGxlciBmcm9tICcjaGFuZGxlcnMvcXVlcnknXG5pbXBvcnQgKiBhcyBWZXJib3NlSGFuZGxlciBmcm9tICcjaGFuZGxlcnMvdmVyYm9zZSdcbmltcG9ydCAqIGFzIERlYnVnSGFuZGxlciBmcm9tICcjaGFuZGxlcnMvZGVidWcnXG5cbmNvbnN0IGhhbmRsZXJzID0gW1xuXHRGYXRhbEhhbmRsZXIsXG5cdEVycm9ySGFuZGxlcixcblx0V2FybmluZ0hhbmRsZXIsXG5cdE5vdGljZUhhbmRsZXIsXG5cdEluZm9IYW5kbGVyLFxuXHRIdHRwSGFuZGxlcixcblx0UXVlcnlIYW5kbGVyLFxuXHRWZXJib3NlSGFuZGxlcixcblx0RGVidWdIYW5kbGVyLFxuXVxuXG5leHBvcnQgdHlwZSBMb2dnaW5nTGV2ZWxOYW1lID0gKHR5cGVvZiBoYW5kbGVycyBleHRlbmRzIChpbmZlciBUKVtdID8gVCA6IG5ldmVyKVsnbmFtZSddXG5leHBvcnQgZGVmYXVsdCBoYW5kbGVyc1xuIiwiLy8gVGhpcmQtcGFydHkgbW9kdWxlcy5cbmltcG9ydCB7IGdyYXkgfSBmcm9tICdAc3RkL2ZtdC9jb2xvcnMnXG5pbXBvcnQgclRyYWNlciBmcm9tICdjbHMtcnRyYWNlcidcbmltcG9ydCB7IERhdGVUaW1lIH0gZnJvbSAnbHV4b24nXG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tICd3aW5zdG9uJ1xuXG4vLyBMb2NhbCBoZWxwZXJzLlxuaW1wb3J0IExvZ2dpbmdMZXZlbCBmcm9tICcjaGVscGVycy9sb2dnaW5nLWxldmVsJ1xuXG4vLyBIYW5kbGVyIGltcGxlbWVudGF0aW9ucy5cbmltcG9ydCBoYW5kbGVycyBmcm9tICcjaGFuZGxlcnMvaW5kZXgnXG5cbmV4cG9ydCBkZWZhdWx0IGZvcm1hdC5wcmludGYoZGF0YSA9PiB7XG5cdGNvbnN0IHRpbWVzdGFtcCA9IGdyYXkoRGF0ZVRpbWUubm93KCkudG9JU08oeyBpbmNsdWRlT2Zmc2V0OiB0cnVlIH0pKVxuXHRjb25zdCBoYW5kbGVyID0gaGFuZGxlcnMuZmluZCgoeyBuYW1lIH0pID0+IG5hbWUgPT09IGRhdGEubGV2ZWwpXG5cdGNvbnN0IGZhbGxiYWNrID0geyBsYWJlbDogaGFuZGxlcj8ubGFiZWwsIHBheWxvYWQ6IGRhdGEubWVzc2FnZSB9XG5cdGNvbnN0IHBlcmZvcm1IYW5kbGUgPSBoYW5kbGVyPy5kZWZhdWx0ID8/ICgoKTogdHlwZW9mIGZhbGxiYWNrID0+IGZhbGxiYWNrKVxuXG5cdC8vIEV4ZWN1dGUgaGFuZGxlciBhbmQgdGhlbiwgZ2V0IGRlY29yYXRlZCBwYXlsb2FkLlxuXHRjb25zdCB7IGxhYmVsLCBwYXlsb2FkIH0gPSBSZWZsZWN0LmFwcGx5KHBlcmZvcm1IYW5kbGUsIHVuZGVmaW5lZCwgWyBkYXRhIF0pID8/IGZhbGxiYWNrXG5cblx0bGV0IGV4dHJhRmluZ2VycHJpbnQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuXG5cdGlmIChoYW5kbGVyPy5sZXZlbCA9PT0gTG9nZ2luZ0xldmVsLkh0dHApIHtcblx0XHRleHRyYUZpbmdlcnByaW50ID0gZGF0YS50cmFuc2FjdGlvbklkXG5cdFx0XHQ/IGAoVHJhbnNhY3Rpb24tSUQgPSAke2RhdGEudHJhbnNhY3Rpb25JZCBhcyBzdHJpbmd9KWBcblx0XHRcdDogYChSZXF1ZXN0LUlEID0gJHtyVHJhY2VyLmlkKCkgYXMgc3RyaW5nfSlgXG5cdH1cblxuXHRyZXR1cm4gYCR7bGFiZWwgYXMgc3RyaW5nfSAke3RpbWVzdGFtcH0ke2V4dHJhRmluZ2VycHJpbnQgPyBgICR7ZXh0cmFGaW5nZXJwcmludH1gIDogJyd9XFxuJHtwYXlsb2FkIGFzIHN0cmluZ31gXG59KVxuIiwiLy8gTm9kZS5qcyBidWlsdC1pbiBBUElzLlxuaW1wb3J0IGNsdXN0ZXIgZnJvbSAnY2x1c3RlcidcbmltcG9ydCB7IGVudiBhcyBlbnZpcm9ubWVudHMgfSBmcm9tICdwcm9jZXNzJ1xuaW1wb3J0IHsgaXNNYWluVGhyZWFkIH0gZnJvbSAnd29ya2VyX3RocmVhZHMnXG5cbi8vIFR5cGUgZGVmaW5pdGlvbnMuXG5leHBvcnQgY29uc3QgRXhlY3V0aW9uTW9kZSA9IHtcblx0RGV2ZWxvcG1lbnRNb2RlOiAnZGV2ZWxvcG1lbnQnLFxuXHRQcm9kdWN0aW9uTW9kZTogJ3Byb2R1Y3Rpb24nLFxufSBhcyBjb25zdFxuXG5leHBvcnQgY29uc3QgQ2x1c3RlcmluZ01vZGUgPSB7XG5cdE1hc3RlclByb2Nlc3M6IDAsXG5cdFdvcmtlclByb2Nlc3M6IDEsXG59IGFzIGNvbnN0XG5cbmV4cG9ydCBjb25zdCBUaHJlYWRpbmdNb2RlID0ge1xuXHRNYWluVGhyZWFkOiAwLFxuXHRXb3JrZXJUaHJlYWQ6IDEsXG59IGFzIGNvbnN0XG5cbmV4cG9ydCB0eXBlIEV4ZWN1dGlvbk1vZGUgPSB0eXBlb2YgRXhlY3V0aW9uTW9kZVtrZXlvZiB0eXBlb2YgRXhlY3V0aW9uTW9kZV1cbmV4cG9ydCB0eXBlIENsdXN0ZXJpbmdNb2RlID0gdHlwZW9mIENsdXN0ZXJpbmdNb2RlW2tleW9mIHR5cGVvZiBDbHVzdGVyaW5nTW9kZV1cbmV4cG9ydCB0eXBlIFRocmVhZGluZ01vZGUgPSB0eXBlb2YgVGhyZWFkaW5nTW9kZVtrZXlvZiB0eXBlb2YgVGhyZWFkaW5nTW9kZV1cblxuLy8gRXhwb3J0aW5ncy5cbmV4cG9ydCBjb25zdCBleGVjdXRpb25Nb2RlID0gZW52aXJvbm1lbnRzLk5PREVfRU5WIGFzIEV4ZWN1dGlvbk1vZGUgPz8gRXhlY3V0aW9uTW9kZS5EZXZlbG9wbWVudE1vZGVcblxuZXhwb3J0IGNvbnN0IGNsdXN0ZXJpbmdNb2RlOiBDbHVzdGVyaW5nTW9kZSA9IGNsdXN0ZXIuaXNQcmltYXJ5ID8/IGNsdXN0ZXIuaXNNYXN0ZXJcblx0PyBDbHVzdGVyaW5nTW9kZS5NYXN0ZXJQcm9jZXNzXG5cdDogQ2x1c3RlcmluZ01vZGUuV29ya2VyUHJvY2Vzc1xuXG5leHBvcnQgY29uc3QgdGhyZWFkaW5nTW9kZTogVGhyZWFkaW5nTW9kZSA9IGlzTWFpblRocmVhZFxuXHQ/IFRocmVhZGluZ01vZGUuTWFpblRocmVhZFxuXHQ6IFRocmVhZGluZ01vZGUuV29ya2VyVGhyZWFkXG4iLCIvLyBOb2RlLmpzIGJ1aWx0LWluIEFQSXMuXG5pbXBvcnQge1xuXHRTVEFUVVNfQ09ERVMsXG5cdEluY29taW5nTWVzc2FnZSBhcyBIdHRwUmVxdWVzdCxcblx0U2VydmVyUmVzcG9uc2UgYXMgSHR0cFJlc3BvbnNlLFxufSBmcm9tICdodHRwJ1xuXG4vLyBUaGlyZC1wYXJ0eSBtb2R1bGVzLlxuaW1wb3J0IG1vcmdhbiBmcm9tICdtb3JnYW4nXG5pbXBvcnQgeyBncmVlbiwgbWFnZW50YSwgcmVkLCBncmF5LCBib2xkLCByZ2IyNCB9IGZyb20gJ0BzdGQvZm10L2NvbG9ycydcbmltcG9ydCB7IGZvcm1hdCBhcyBwcmV0dHlCeXRlcyB9IGZyb20gJ0BzdGQvZm10L2J5dGVzJ1xuaW1wb3J0IHsgZm9ybWF0IGFzIHByZXR0eU1zIH0gZnJvbSAnQHN0ZC9mbXQvZHVyYXRpb24nXG5cbi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgeyBFeGVjdXRpb25Nb2RlLCBleGVjdXRpb25Nb2RlIH0gZnJvbSAnI2hlbHBlcnMvY29uc3RhbnRzJ1xuXG4vLyBUeXBlIGRlZmluaXRpb25zLlxuZGVjbGFyZSBtb2R1bGUgJ21vcmdhbicge1xuXHRjb25zdCBjb21iaW5lZDogbW9yZ2FuLkZvcm1hdEZuXG59XG5cbmludGVyZmFjZSBUb2tlbkluZGV4ZXIge1xuXHRbdG9rZW5OYW1lOiBzdHJpbmddOiAoXG5cdFx0cmVxdWVzdDogSHR0cFJlcXVlc3QsXG5cdFx0cmVzcG9uc2U6IEh0dHBSZXNwb25zZSxcblx0XHQuLi5hcmdzOiBhbnlbXVxuXHQpID0+IHN0cmluZyB8IHVuZGVmaW5lZFxufVxuXG4vLyBIZWxwZXJzLlxuZnVuY3Rpb24gZGVjb3JhdGVTdGF0dXNDb2RlKHN0YXR1c0NvZGU6IGtleW9mIHR5cGVvZiBTVEFUVVNfQ09ERVMpOiBzdHJpbmcge1xuXHRjb25zdCBncm91cE9mQ29kZSA9IE1hdGguZmxvb3IoTnVtYmVyKHN0YXR1c0NvZGUpIC8gMTAwKSAqIDEwMFxuXHRjb25zdCBiYXNlTWVzc2FnZSA9IGAke3N0YXR1c0NvZGV9ICR7U1RBVFVTX0NPREVTW3N0YXR1c0NvZGVdIGFzIHN0cmluZ31gXG5cblx0c3dpdGNoIChncm91cE9mQ29kZSkge1xuXHRjYXNlIDIwMDoge1xuXHRcdHJldHVybiBncmVlbihiYXNlTWVzc2FnZSlcblx0fVxuXG5cdGNhc2UgMzAwOiB7XG5cdFx0cmV0dXJuIG1hZ2VudGEoYmFzZU1lc3NhZ2UpXG5cdH1cblx0Y2FzZSA0MDA6XG5cdGNhc2UgNTAwOiB7XG5cdFx0cmV0dXJuIHJlZChiYXNlTWVzc2FnZSlcblx0fVxuXG5cdGRlZmF1bHQ6IHtcblx0XHRyZXR1cm4gZ3JheShiYXNlTWVzc2FnZSlcblx0fVxuXHR9XG59XG5cbmZ1bmN0aW9uIGZvcm1hdEZvck1vcmdhbih0b2tlbnM6IGFueSwgcmVxdWVzdDogSHR0cFJlcXVlc3QsIHJlc3BvbnNlOiBIdHRwUmVzcG9uc2UpOiBzdHJpbmcge1xuXHRmdW5jdGlvbiBfKHRva2VuOiBzdHJpbmcsIC4uLnN1YkFyZ3M6IGFueVtdKTogc3RyaW5nIHwgdm9pZCB7XG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXJndW1lbnRcblx0XHRyZXR1cm4gKHRva2VucyBhcyBUb2tlbkluZGV4ZXIpW3Rva2VuXShyZXF1ZXN0LCByZXNwb25zZSwgLi4uc3ViQXJncylcblx0fVxuXG5cdC8vIFJhdyB2YWx1ZXMuXG5cdGNvbnN0IG1ldGhvZCA9IF8oJ21ldGhvZCcpXG5cdGNvbnN0IFVSTCA9IF8oJ3VybCcpXG5cdGNvbnN0IGh0dHBWZXJzaW9uID0gYEhUVFAvJHtfKCdodHRwLXZlcnNpb24nKSBhcyBzdHJpbmd9YFxuXHRjb25zdCBzdGF0dXNDb2RlID0gTnVtYmVyKF8oJ3N0YXR1cycpKVxuXHRjb25zdCBjb250ZW50TGVuZ3RoID0gTnVtYmVyKF8oJ3JlcycsICdjb250ZW50LWxlbmd0aCcpID8/IC0xKVxuXHRjb25zdCByZXNwb25zZVRpbWUgPSBOdW1iZXIoXygncmVzcG9uc2UtdGltZScpID8/IC0xKVxuXG5cdC8vIERlY29yYXRlZCB2YWx1ZXMuXG5cdGNvbnN0ICRtZXRob2QgPSBib2xkKG1ldGhvZCA/PyAnJylcblx0Y29uc3QgJHZlcnNpb24gPSByZ2IyNChodHRwVmVyc2lvbiwgMHg2MkIxRkYpXG5cdGNvbnN0ICRzdGF0dXNDb2RlID0gZGVjb3JhdGVTdGF0dXNDb2RlKHN0YXR1c0NvZGUpXG5cdGNvbnN0ICRjb250ZW50TGVuZ3RoID0gY29udGVudExlbmd0aCA+PSAwID8gcHJldHR5Qnl0ZXMoY29udGVudExlbmd0aCkgOiAnPyBCJ1xuXHRjb25zdCAkcmVzcG9uc2VUaW1lID0gcmVzcG9uc2VUaW1lID49IDAgPyBwcmV0dHlNcyhyZXNwb25zZVRpbWUsIHsgaWdub3JlWmVybzogdHJ1ZSB9KSA6ICcnXG5cblx0Ly8gQWRkaXRpb25hbCBpbmZvcm1hdGlvbi5cblx0Y29uc3QgbWV0YWRhdGEgPSBgKCR7JGNvbnRlbnRMZW5ndGh9LCAkeyRyZXNwb25zZVRpbWV9KWBcblxuXHRyZXR1cm4gW1xuXHRcdGDihpIgJHskbWV0aG9kfSAke1VSTCBhcyBzdHJpbmd9ICR7JHZlcnNpb259YCxcblx0XHRg4oaQICR7JHZlcnNpb259ICR7JHN0YXR1c0NvZGV9ICR7bWV0YWRhdGF9YCxcblx0XS5qb2luKCdcXG4nKVxufVxuXG5leHBvcnQgZGVmYXVsdCBleGVjdXRpb25Nb2RlID09PSBFeGVjdXRpb25Nb2RlLkRldmVsb3BtZW50TW9kZSA/IGZvcm1hdEZvck1vcmdhbiA6IG1vcmdhbi5jb21iaW5lZFxuIiwiLy8gTm9kZS5qcyBidWlsdC1pbiBBUElzLlxuaW1wb3J0IHsgSW5jb21pbmdNZXNzYWdlIGFzIEh0dHBSZXF1ZXN0LCBTZXJ2ZXJSZXNwb25zZSBhcyBIdHRwUmVzcG9uc2UgfSBmcm9tICdodHRwJ1xuaW1wb3J0IHsgUGFzc1Rocm91Z2ggfSBmcm9tICdzdHJlYW0nXG5pbXBvcnQgeyBwcm9taXNpZnkgfSBmcm9tICd1dGlsJ1xuXG4vLyBUaGlyZC1wYXJ0eSBtb2R1bGVzLlxuaW1wb3J0IG1vcmdhbiBmcm9tICdtb3JnYW4nXG5pbXBvcnQgKiBhcyB3aW5zdG9uIGZyb20gJ3dpbnN0b24nXG5pbXBvcnQgdHlwZSB7IGxldmVsIGFzIExvZ2dpbmdMZXZlbCwgTG9nZ2VyIGFzIEJhc2VMb2dnZXIgfSBmcm9tICd3aW5zdG9uJ1xuXG4vLyBGb3JtYXR0ZXJzLlxuaW1wb3J0IGZvcm1hdEZvckNMSSBmcm9tICcjZm9ybWF0dGVycy9jb21tYW5kLWxpbmUnXG5pbXBvcnQgZm9ybWF0Rm9yTW9yZ2FuIGZyb20gJyNmb3JtYXR0ZXJzL21vcmdhbidcblxuLy8gTG9jYWwgaGVscGVycy5cbmltcG9ydCB7IEV4ZWN1dGlvbk1vZGUsIGV4ZWN1dGlvbk1vZGUgfSBmcm9tICcjaGVscGVycy9jb25zdGFudHMnXG5cbi8vIEhhbmRsZXIgaW1wbGVtZW50YXRpb25zLlxuaW1wb3J0IHR5cGUgeyBMb2dnaW5nTGV2ZWxOYW1lIH0gZnJvbSAnI2hhbmRsZXJzL2luZGV4J1xuaW1wb3J0IGhhbmRsZXJzIGZyb20gJyNoYW5kbGVycy9pbmRleCdcblxuLy8gVHlwZSBkZWZpbml0aW9ucy5cbnR5cGUgTW9yZ2FuID0gKHJlcTogSHR0cFJlcXVlc3QsIHJlczogSHR0cFJlc3BvbnNlLCBuZXh0OiAoZXJyb3I/OiBFcnJvcikgPT4gdm9pZCkgPT4gdm9pZFxuXG4vLyBUcmFuc3BvcnRzLlxuY29uc3QgeyBDb25zb2xlOiBDb25zb2xlVHJhbnNwb3J0IH0gPSB3aW5zdG9uLnRyYW5zcG9ydHNcblxuY2xhc3MgTG9nZ2VyIHtcblx0c3RhdGljICNpbnN0YW5jZT86IExvZ2dlclxuXG5cdCNsb2dnZXI6IEJhc2VMb2dnZXIgPSB3aW5zdG9uLmNyZWF0ZUxvZ2dlcih7XG5cdFx0bGV2ZWxzOiBPYmplY3QuZnJvbUVudHJpZXMoXG5cdFx0XHRoYW5kbGVyc1xuXHRcdFx0XHQubWFwKCh7IG5hbWUsIGxldmVsIH0pID0+IFsgbmFtZSwgbGV2ZWwgXSBhcyBjb25zdClcblx0XHRcdFx0LmZpbHRlcigoWyAsIGxldmVsIF0pID0+IHR5cGVvZiBsZXZlbCA9PT0gJ251bWJlcicpLFxuXHRcdCksXG5cblx0XHRsZXZlbDogKGV4ZWN1dGlvbk1vZGUgPT09IEV4ZWN1dGlvbk1vZGUuUHJvZHVjdGlvbk1vZGUgPyAnaHR0cCcgOiAndmVyYm9zZScpLFxuXG5cdFx0dHJhbnNwb3J0czogW1xuXHRcdFx0bmV3IENvbnNvbGVUcmFuc3BvcnQoeyBmb3JtYXQ6IGZvcm1hdEZvckNMSSB9KSxcblx0XHRdLFxuXG5cdFx0ZXhpdE9uRXJyb3I6IGZhbHNlLFxuXHR9KVxuXG5cdCNtb3JnYW46IE1vcmdhbiA9IG1vcmdhbihmb3JtYXRGb3JNb3JnYW4sIHtcblx0XHRzdHJlYW06IG5ldyBQYXNzVGhyb3VnaCh7IG9iamVjdE1vZGU6IHRydWUgfSkub24oJ2RhdGEnLCAoZGF0YTogc3RyaW5nKSA9PiB7XG5cdFx0XHR0aGlzLmxvZygnaHR0cCcsIGRhdGEudHJpbSgpKVxuXHRcdH0pLFxuXHR9KVxuXG5cdHByaXZhdGUgY29uc3RydWN0b3IoKSB7XG5cdFx0aWYgKG5ldy50YXJnZXQgIT09IExvZ2dlcikge1xuXHRcdFx0dGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCdMb2dnZXIgY2xhc3MgaXMgbm90IGluaGVyaXRhYmxlJylcblx0XHR9XG5cblx0XHRpZiAoTG9nZ2VyLiNpbnN0YW5jZSkge1xuXHRcdFx0dGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCdMb2dnZXIgY2xhc3MgY2Fubm90IGJlIGNvbnN0cnVjdGVkIGluIGRpcmVjdGx5Jylcblx0XHR9XG5cblx0XHRMb2dnZXIuI2luc3RhbmNlID0gdGhpc1xuXHR9XG5cblx0LyoqXG5cdCAqIExvZ2dpbmcgbWVzc2FnZSB3aXRoIHNwZWNpZmljIGxldmVsLlxuXHQgKlxuXHQgKiBAcGFyYW0gbGV2ZWxcblx0ICogQHBhcmFtIG1lc3NhZ2Vcblx0ICogQHBhcmFtIGFyZ3MgQWRkaXRpb25hbCBtZXRhZGF0YS5cblx0ICovXG5cdHB1YmxpYyBsb2cobGV2ZWw6IExvZ2dpbmdMZXZlbE5hbWUsIG1lc3NhZ2U6IHN0cmluZywgLi4uYXJnczogdW5rbm93bltdKTogdm9pZFxuXG5cdC8qKlxuXHQgKiBMb2dnaW5nIEhUVFAgSS9PLlxuXHQgKlxuXHQgKiBAcGFyYW0gcmVxdWVzdCBOb2RlLmpzIGJ1aWx0LWluIGBJbmNvbWluZ01lc3NhZ2VgIGluc3RhbmNlIGZyb20gYGh0dHBgIG1vZHVsZS5cblx0ICogQHBhcmFtIHJlc3BvbnNlIE5vZGUuanMgYnVpbHQtaW4gYFNlcnZlclJlc3BvbnNlYCBpbnN0YW5jZSBmcm9tIGBodHRwYCBtb2R1bGUuXG5cdCAqL1xuXHRwdWJsaWMgbG9nKHJlcXVlc3Q6IEh0dHBSZXF1ZXN0LCByZXNwb25zZTogSHR0cFJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPlxuXG5cdC8qKlxuXHQgKiBMb2dnaW5nIGVycm9ycyBpbiBkZXRhaWwuXG5cdCAqXG5cdCAqIEBwYXJhbSBlcnJvclxuXHQgKi9cblx0cHVibGljIGxvZyhlcnJvcjogRXJyb3IpOiB2b2lkXG5cblx0cHVibGljIGxvZyguLi5hcmdzOiB1bmtub3duW10pOiB2b2lkIHwgUHJvbWlzZTx2b2lkPiB7XG5cdFx0Y29uc3QgbG9nZ2VyID0gdGhpcy4jbG9nZ2VyXG5cdFx0Y29uc3QgZm9ybWF0ID0gdGhpcy4jbW9yZ2FuXG5cblx0XHRzd2l0Y2ggKHRydWUpIHtcblx0XHRjYXNlIChhcmdzLmxlbmd0aCA+PSAyICYmIGFyZ3NbMF0gaW5zdGFuY2VvZiBIdHRwUmVxdWVzdCAmJiBhcmdzWzFdIGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKToge1xuXHRcdFx0Y29uc3QgWyByZXF1ZXN0LCByZXNwb25zZSBdID0gYXJncyBhcyBbIEh0dHBSZXF1ZXN0LCBIdHRwUmVzcG9uc2UgXVxuXG5cdFx0XHRyZXR1cm4gcHJvbWlzaWZ5KGZvcm1hdCkocmVxdWVzdCwgcmVzcG9uc2UpXG5cdFx0fVxuXG5cdFx0Y2FzZSAoYXJncy5sZW5ndGggPj0gMSAmJiBhcmdzWzBdIGluc3RhbmNlb2YgRXJyb3IpOiB7XG5cdFx0XHRjb25zdCBbIGVycm9yLCAuLi5kYXRhIF0gPSBhcmdzIGFzIFsgRXJyb3IsIC4uLnVua25vd25bXSBdXG5cblx0XHRcdGxvZ2dlci5sb2coJ2Vycm9yJywgZXJyb3IubWVzc2FnZSwgZXJyb3IsIC4uLmRhdGEpXG5cblx0XHRcdHJldHVybiB1bmRlZmluZWRcblx0XHR9XG5cblx0XHRkZWZhdWx0OiB7XG5cdFx0XHRjb25zdCBbIGxldmVsLCBtZXNzYWdlLCAuLi5kYXRhIF0gPSBhcmdzIGFzIFsgdHlwZW9mIExvZ2dpbmdMZXZlbCwgc3RyaW5nLCAuLi51bmtub3duW10gXVxuXG5cdFx0XHRsb2dnZXIubG9nKGxldmVsLCBtZXNzYWdlLCAuLi5kYXRhKVxuXG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkXG5cdFx0fVxuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBSZWZsZWN0LmNvbnN0cnVjdChMb2dnZXIsIFtdLCBMb2dnZXIpIGFzIExvZ2dlclxuIl0sIm5hbWVzIjpbIkxvZ2dpbmdMZXZlbCIsIkZhdGFsIiwiRXJyb3IiLCJXYXJuaW5nIiwiTm90aWNlIiwiSW5mbyIsIkh0dHAiLCJRdWVyeSIsIlZlcmJvc2UiLCJEZWJ1ZyIsImNvbG9yaXplck1hcCIsIl9NYXAiLCJjcmVhdGVTY2hlbWUiLCJvcHRpb25zIiwibmV4dEluZGV4Iiwic2l6ZSIsImNvbG9yaXplciIsInN0cmluZyIsImJnUmdiMjQiLCJyZ2IyNCIsImZvcmVncm91bmQiLCJiYWNrZ3JvdW5kIiwic2V0IiwiQ29sb3JWYWx1ZSIsIldoaXRlIiwiR3JheSIsIkJsYWNrIiwiQ3JpdGljYWwiLCJSZWd1bGFyIiwiQ29sb3JTY2hlbWUiLCJMb3VkIiwiZ2V0Q2hhbGtPZiIsImNvbG9yU2V0IiwiZ2V0IiwiaXNUVFkiLCJwcm9jZXNzIiwic3Rkb3V0IiwiaXNOb3RPbkNMSSIsImRlY29yYXRlTGFiZWwiLCJsYWJlbCIsInNjaGVtZSIsImNvbG9yaXplIiwiZGVjb3JhdGVkTGFiZWwiLCJib2xkIiwicm9vdFBhdGgiLCJjd2QiLCJjb25qdW5jdGlvbiIsImJsdWUiLCJzcGxhdCIsIl9TeW1ib2wkZm9yIiwibmFtZSIsImxldmVsIiwic2ltcGxpZnlEYXRhVVJJIiwiZGF0YVVSSSIsImFjdHVhbENvbnRlbnQiLCJzcGxpdCIsInBpdm90IiwiX2luZGV4T2ZJbnN0YW5jZVByb3BlcnR5IiwiY2FsbCIsIm1pbWVJbmRpY2F0b3IiLCJfc2xpY2VJbnN0YW5jZVByb3BlcnR5IiwiY29udGVudFByZWZpeCIsImNvbnRlbnRTdWZmaXgiLCJpc0RhdGFVUkkiLCJmaWxlbmFtZSIsIl9zdGFydHNXaXRoSW5zdGFuY2VQcm9wZXJ0eSIsImlzQWJzb2x1dGVPckRhdGFVUkkiLCJwYXRoIiwiaXNBYnNvbHV0ZSIsIm1hcExvY2F0aW9uT2ZFcnJvclRocm93biIsInRhcmdldCIsInJlbGF0aXZlIiwiZ3JheSIsIl9pbmNsdWRlc0luc3RhbmNlUHJvcGVydHkiLCJfbGFzdEluZGV4T2ZJbnN0YW5jZVByb3BlcnR5IiwicmVwbGFjZSIsIl8iLCJtb2R1bGVOYW1lIiwidHJhaWxpbmciLCJzZXAiLCJ1bmRlcmxpbmUiLCJkaXJuYW1lIiwiYmFzZW5hbWUiLCJoYW5kbGUiLCJkYXRhIiwiX2NvbnRleHQiLCJfY29udGV4dDIiLCJfY29udGV4dDMiLCJlcnJvciIsInVuZGVmaW5lZCIsImVycm9yTmFtZSIsIm1lc3NhZ2UiLCJzdGFjayIsInJhd1N0YWNrIiwiX21hcEluc3RhbmNlUHJvcGVydHkiLCJsZW5ndGgiLCJsaW5lIiwiY29udGV4dE5hbWUiLCJyYXdMb2NhdGlvbiIsImxvY2F0aW9uIiwib2NjdXJyZWRMaW5lIiwidmVyc2lvbiIsIm9jY3VycmVkQ29sdW1uIiwiam9pbiIsInBheWxvYWQiLCJoaWdobGlnaHQiLCJsYW5ndWFnZSIsImhhbmRsZXJzIiwiRmF0YWxIYW5kbGVyIiwiRXJyb3JIYW5kbGVyIiwiV2FybmluZ0hhbmRsZXIiLCJOb3RpY2VIYW5kbGVyIiwiSW5mb0hhbmRsZXIiLCJIdHRwSGFuZGxlciIsIlF1ZXJ5SGFuZGxlciIsIlZlcmJvc2VIYW5kbGVyIiwiRGVidWdIYW5kbGVyIiwiZm9ybWF0IiwicHJpbnRmIiwidGltZXN0YW1wIiwiRGF0ZVRpbWUiLCJub3ciLCJ0b0lTTyIsImluY2x1ZGVPZmZzZXQiLCJoYW5kbGVyIiwiX2ZpbmRJbnN0YW5jZVByb3BlcnR5IiwiZmFsbGJhY2siLCJwZXJmb3JtSGFuZGxlIiwiZGVmYXVsdCIsIl9SZWZsZWN0JGFwcGx5IiwiZXh0cmFGaW5nZXJwcmludCIsInRyYW5zYWN0aW9uSWQiLCJyVHJhY2VyIiwiaWQiLCJFeGVjdXRpb25Nb2RlIiwiRGV2ZWxvcG1lbnRNb2RlIiwiUHJvZHVjdGlvbk1vZGUiLCJDbHVzdGVyaW5nTW9kZSIsIk1hc3RlclByb2Nlc3MiLCJXb3JrZXJQcm9jZXNzIiwiZXhlY3V0aW9uTW9kZSIsImVudmlyb25tZW50cyIsIk5PREVfRU5WIiwiY2x1c3RlciIsImlzUHJpbWFyeSIsImlzTWFzdGVyIiwiZGVjb3JhdGVTdGF0dXNDb2RlIiwic3RhdHVzQ29kZSIsImdyb3VwT2ZDb2RlIiwiTWF0aCIsImZsb29yIiwiTnVtYmVyIiwiYmFzZU1lc3NhZ2UiLCJTVEFUVVNfQ09ERVMiLCJncmVlbiIsIm1hZ2VudGEiLCJyZWQiLCJmb3JtYXRGb3JNb3JnYW4iLCJ0b2tlbnMiLCJyZXF1ZXN0IiwicmVzcG9uc2UiLCJ0b2tlbiIsInN1YkFyZ3MiLCJtZXRob2QiLCJVUkwiLCJodHRwVmVyc2lvbiIsImNvbnRlbnRMZW5ndGgiLCJyZXNwb25zZVRpbWUiLCIkbWV0aG9kIiwiJHZlcnNpb24iLCIkc3RhdHVzQ29kZSIsIiRjb250ZW50TGVuZ3RoIiwicHJldHR5Qnl0ZXMiLCIkcmVzcG9uc2VUaW1lIiwicHJldHR5TXMiLCJpZ25vcmVaZXJvIiwibWV0YWRhdGEiLCJtb3JnYW4iLCJjb21iaW5lZCIsIkNvbnNvbGUiLCJDb25zb2xlVHJhbnNwb3J0Iiwid2luc3RvbiIsInRyYW5zcG9ydHMiLCJMb2dnZXIiLCJjcmVhdGVMb2dnZXIiLCJsZXZlbHMiLCJfT2JqZWN0JGZyb21FbnRyaWVzIiwiX2ZpbHRlckluc3RhbmNlUHJvcGVydHkiLCJmb3JtYXRGb3JDTEkiLCJleGl0T25FcnJvciIsInN0cmVhbSIsIlBhc3NUaHJvdWdoIiwib2JqZWN0TW9kZSIsIm9uIiwibG9nIiwiX3RyaW1JbnN0YW5jZVByb3BlcnR5IiwiY29uc3RydWN0b3IiLCJuZXciLCJSZWZlcmVuY2VFcnJvciIsImFyZ3MiLCJsb2dnZXIiLCJIdHRwUmVxdWVzdCIsIkh0dHBSZXNwb25zZSIsInByb21pc2lmeSIsIl9SZWZsZWN0JGNvbnN0cnVjdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE1BQU1BLFlBQVksR0FBRztBQUNwQjtBQUNBQyxFQUFBQSxLQUFLLEVBQUUsQ0FBQztBQUNSQyxFQUFBQSxLQUFLLEVBQUUsQ0FBQztBQUVSO0FBQ0FDLEVBQUFBLE9BQU8sRUFBRSxDQUFDO0FBRVY7QUFDQUMsRUFBQUEsTUFBTSxFQUFFLENBQUM7QUFDVEMsRUFBQUEsSUFBSSxFQUFFLENBQUM7QUFFUDtBQUNBQyxFQUFBQSxJQUFJLEVBQUUsQ0FBQztBQUNQQyxFQUFBQSxLQUFLLEVBQUUsQ0FBQztBQUVSO0FBQ0FDLEVBQUFBLE9BQU8sRUFBRSxDQUFDO0FBQ1ZDLEVBQUFBLEtBQUssRUFBRTtBQUNSLENBQVU7O0FD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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cichol/logger",
|
|
3
|
-
"version": "6.0
|
|
3
|
+
"version": "6.1.0",
|
|
4
4
|
"description": "A logger based on `winston` for personal projects.",
|
|
5
5
|
"homepage": "https://github.com/morrighan/packages",
|
|
6
6
|
"bugs": {
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"@babel/runtime-corejs3": "^7.29.2",
|
|
33
|
-
"@std/fmt": "npm:@jsr/std__fmt@^1.0.
|
|
33
|
+
"@std/fmt": "npm:@jsr/std__fmt@^1.0.10",
|
|
34
34
|
"cli-highlight": "^2.1.11",
|
|
35
35
|
"cls-rtracer": "^2.6.3",
|
|
36
36
|
"core-js-pure": "^3.49.0",
|