ctt-babylon 0.19.43 → 0.19.44

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.
@@ -50,9 +50,7 @@ export class Utils {
50
50
  if (!button)
51
51
  return;
52
52
  if (Array.isArray(button)) {
53
- return Utils.sortButtonsByOrder(button?.map((btn) => btn.label?.length ||
54
- btn.linkValue?.length ||
55
- btn.link_value?.length
53
+ return Utils.sortButtonsByOrder(button?.map((btn) => btn && (btn.label?.length || btn.linkValue?.length || btn.link_value?.length)
56
54
  ? {
57
55
  type: buttonType ?? undefined,
58
56
  label: btn?.label ?? undefined,
@@ -85,9 +83,9 @@ export class Utils {
85
83
  }
86
84
  : undefined), { keepOriginal: true });
87
85
  }
88
- else {
89
- const mapped = button
90
- .map((btn) => {
86
+ if (typeof button === 'object' && typeof button[Symbol.iterator] === 'function') {
87
+ const arr = Array.from(button);
88
+ return Utils.sortButtonsByOrder(arr.map((btn) => {
91
89
  const label = btn?.label?.trim();
92
90
  const rawLink = btn?.linkValue ?? btn?.link_value;
93
91
  if (!label || !rawLink || typeof rawLink !== 'string') {
@@ -119,10 +117,14 @@ export class Utils {
119
117
  order: btn.order?.toString(),
120
118
  vars: btn.linkVars?.toString(),
121
119
  };
122
- })
123
- .filter((btn) => !!btn);
124
- return Utils.sortButtonsByOrder(mapped, { keepOriginal: true });
120
+ }).filter((btn) => !!btn), { keepOriginal: true });
125
121
  }
122
+ // Si es un objeto plano, devolver array vacío (no intentar map)
123
+ if (typeof button === 'object') {
124
+ return [];
125
+ }
126
+ // Si es cualquier otro tipo, devolver undefined
127
+ return undefined;
126
128
  }
127
129
  static processSingleButton(btn, buttonType) {
128
130
  const label = btn?.label?.trim();
@@ -287,4 +289,4 @@ export class Utils {
287
289
  return s;
288
290
  }
289
291
  }
290
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvdXRpbHMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdsQyxNQUFNLE9BQU8sS0FBSztJQUNkLDhEQUE4RDtJQUM5RCxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQWE7UUFDN0IsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELGdGQUFnRjtJQUNoRixNQUFNLENBQUMsNEJBQTRCLENBQUMsR0FBUTtRQUN4QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDcEIsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUNyRTthQUFNLElBQ0gsR0FBRztZQUNILE9BQU8sR0FBRyxLQUFLLFFBQVE7WUFDdkIsR0FBRyxDQUFDLFdBQVcsS0FBSyxNQUFNLEVBQzVCO1lBQ0UsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRTtnQkFDM0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDeEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDL0QsT0FBTyxNQUFNLENBQUM7WUFDbEIsQ0FBQyxFQUFF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Q0FBQztRQUNyQyxNQUFNLElBQUksR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2YsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxLQUFhO1FBQ3ZDLCtCQUErQjtRQUMvQixJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTVCLDREQUE0RDtRQUM1RCxnRUFBZ0U7UUFDaEUsSUFBSSxDQUFDLEtBQUssU0FBUztZQUFFLE9BQU8sT0FBTyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxLQUFLLGNBQWM7WUFBRSxPQUFPLGFBQWEsQ0FBQztRQUUvQyxzRUFBc0U7UUFDdEUsMkVBQTJFO1FBQzNFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7WUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV4QyxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJhYnlsb25CdXR0b25JLCBCb2R5Q29tcG9uZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBjbGFzcyBVdGlscyB7XG4gICAgLy8gRnVuY2nDs24gcGFyYSBjb252ZXJ0aXIgdW5hIGNhZGVuYSBkZSBzbmFrZV9jYXNlIGEgY2FtZWxDYXNlXG4gICAgc3RhdGljIHNuYWtlVG9DYW1lbChzbmFrZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHNuYWtlLnJlcGxhY2UoLyhfXFx3KS9nLCAobWF0Y2hlcykgPT4gbWF0Y2hlc1sxXS50b1VwcGVyQ2FzZSgpKTtcbiAgICB9XG5cbiAgICAvLyBGdW5jacOzbiBwYXJhIGNvbnZlcnRpciBsYXMgcHJvcGllZGFkZXMgZGUgdW4gb2JqZXRvIGRlIHNuYWtlX2Nhc2UgYSBjYW1lbENhc2VcbiAgICBzdGF0aWMgY29udmVydE9iamVjdEtleXNUb0NhbWVsQ2FzZShvYmo6IGFueSk6IGFueSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICAgICAgICAgIHJldHVybiBvYmoubWFwKChpdGVtKSA9PiB0aGlzLmNvbnZlcnRPYmplY3RLZXlzVG9DYW1lbENhc2UoaXRlbSkpO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgb2JqICYmXG4gICAgICAgICAgICB0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyAmJlxuICAgICAgICAgICAgb2JqLmNvbnN0cnVjdG9yID09PSBPYmplY3RcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqKS5yZWR1Y2UoKHJlc3VsdCwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2FtZWxLZXkgPSB0aGlzLnNuYWtlVG9DYW1lbChrZXkpO1xuICAgICAgICAgICAgICAgIHJlc3VsdFtjYW1lbEtleV0gPSB0aGlzLmNvbnZlcnRPYmplY3RLZXlzVG9DYW1lbENhc2Uob2JqW2tleV0pO1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9LCB7fSBhcyBhbnkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuXG4gICAgc3RhdGljIGZvcm1hdExpbmtUeXBlKGxpbmtUeXBlOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gbGlua1R5cGUgPT09ICdleHRlcm5hbF9saW5rJyB8fCBsaW5rVHlwZSA9PT0gJ2V4dGVybmFsJ1xuICAgICAgICAgICAgPyAnZXh0ZXJuYWwnXG4gICAgICAgICAgICA6IGxpbmtUeXBlID09PSAnaW50ZXJuYWxfbGluaycgfHwgbGlua1R5cGUgPT09ICdpbnRlcm5hbCdcbiAgICAgICAgICAgICAgPyAnaW50ZXJuYWwnXG4gICAgICAgICAgICAgIDogbGlua1R5cGU7XG4gICAgfVxuXG4gICAgc3RhdGljIGZpbmRDb21wb25lbnQ8VD4oXG4gICAgICAgIGJvZHk6IEJvZHlDb21wb25lbnQ8VD5bXSxcbiAgICAgICAgbmFtZTogc3RyaW5nXG4gICAgKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBib2R5LmZpbmQoKGNvbXBvbmVudCkgPT4gY29tcG9uZW50Py5uYW1lPy50b0xvd2VyQ2FzZSgpID09PSBuYW1lKVxuICAgICAgICAgICAgPy5wcm9wcztcbiAgICB9XG5cbiAgICBzdGF0aWMgY29udmVydFRvQmFzZTY0KGZpbGU6IEZpbGUpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgICAgICAgICByZWFkZXIub25sb2FkID0gKCkgPT4gcmVzb2x2ZShyZWFkZXIucmVzdWx0IGFzIHN0cmluZyk7XG4gICAgICAgICAgICByZWFkZXIub25lcnJvciA9IChlcnJvcikgPT4gcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc3RhdGljIG5vcm1hbGl6ZVRleHQodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRleHRcbiAgICAgICAgICAgID8ubm9ybWFsaXplKCdORkQnKSAvLyBEZXNjb21wb25lIGxvcyBjYXJhY3RlcmVzIGNvbiBhY2VudG9zXG4gICAgICAgICAgICA/LnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csICcnKSAvLyBFbGltaW5hIGxvcyBhY2VudG9zXG4gICAgICAgICAgICA/LnRvTG93ZXJDYXNlKCk7XG4gICAgfVxuXG4gICAgc3RhdGljIG1hcEJ1dHRvbnMoXG4gICAgICAgIGJ1dHRvbjogYW55IHwgYW55W10gfCB1bmRlZmluZWQgfCBudWxsLFxuICAgICAgICBidXR0b25UeXBlPzogc3RyaW5nXG4gICAgKTogQmFieWxvbkJ1dHRvbklbXSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIC8vVE9ETzogY2xlYW4gZnVuY3Rpb25cbiAgICAgICAgaWYgKCFidXR0b24pIHJldHVybjtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYnV0dG9uKSkge1xuICAgICAgICAgICAgcmV0dXJuIFV0aWxzLnNvcnRCdXR0b25zQnlPcmRlcihcbiAgICAgICAgICAgICAgICBidXR0b24/Lm1hcCgoYnRuKSA9PlxuICAgICAgICAgICAgICAgICAgICBidG4ubGFiZWw/Lmxlbmd0aCB8fFxuICAgICAgICAgICAgICAgICAgICBidG4ubGlua1ZhbHVlPy5sZW5ndGggfHxcbiAgICAgICAgICAgICAgICAgICAgYnRuLmxpbmtfdmFsdWU/Lmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgPyAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogYnV0dG9uVHlwZSA/PyB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogYnRuPy5sYWJlbCA/PyB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rVHlwZTogVXRpbHMuZm9ybWF0TGlua1R5cGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnRuPy5saW5rVHlwZSA/PyBidG4/LmxpbmtfdHlwZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByYXdMaW5rID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnRuLmxpbmtWYWx1ZSA/PyBidG4ubGlua192YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmF3TGluayAmJiB0eXBlb2YgcmF3TGluayA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdHJpbW1lZFZhbHVlID0gcmF3TGluaz8uZW5kc1dpdGgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyByYXdMaW5rLnNsaWNlKDAsIC0xKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiByYXdMaW5rO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgvXlxcKz9bMC05XSskLy50ZXN0KHRyaW1tZWRWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVzIHVuIHRlbMOpZm9ub1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRyaW1tZWRWYWx1ZS5zdGFydHNXaXRoKCd0ZWw6JylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRyaW1tZWRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogYHRlbDoke3RyaW1tZWRWYWx1ZX1gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgL15bXlxcc0BdK0BbXlxcc0BdK1xcLlteXFxzQF0rJC8udGVzdChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmltbWVkVmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBFcyB1biBjb3JyZW9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cmltbWVkVmFsdWUuc3RhcnRzV2l0aChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFpbHRvOidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRyaW1tZWRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogYG1haWx0bzoke3RyaW1tZWRWYWx1ZX1gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke3RyaW1tZWRWYWx1ZX1gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb246IGJ0bi5pY29uID8gYGljb24tYCArIGJ0bj8uaWNvbiA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyOiBidG4ub3JkZXI/LnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJzOiBidG4ubGlua1ZhcnM/LnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gYXMgQmFieWxvbkJ1dHRvbkkpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgeyBrZWVwT3JpZ2luYWw6IHRydWUgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG1hcHBlZCA9IGJ1dHRvblxuICAgICAgICAgICAgICAgIC5tYXAoKGJ0bjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gYnRuPy5sYWJlbD8udHJpbSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByYXdMaW5rID0gYnRuPy5saW5rVmFsdWUgPz8gYnRuPy5saW5rX3ZhbHVlO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICghbGFiZWwgfHwgIXJhd0xpbmsgfHwgdHlwZW9mIHJhd0xpbmsgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdHJpbW1lZFZhbHVlID0gcmF3TGluay5lbmRzV2l0aCgnLycpXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHJhd0xpbmsuc2xpY2UoMCwgLTEpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHJhd0xpbms7XG5cbiAgICAgICAgICAgICAgICAgICAgbGV0IHVybDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICgvXlxcKz9bMC05XSskLy50ZXN0KHRyaW1tZWRWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybCA9IHRyaW1tZWRWYWx1ZS5zdGFydHNXaXRoKCd0ZWw6JylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRyaW1tZWRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogYHRlbDoke3RyaW1tZWRWYWx1ZX1gO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgL15bXlxcc0BdK0BbXlxcc0BdK1xcLlteXFxzQF0rJC8udGVzdCh0cmltbWVkVmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gdHJpbW1lZFZhbHVlLnN0YXJ0c1dpdGgoJ21haWx0bzonKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdHJpbW1lZFZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBgbWFpbHRvOiR7dHJpbW1lZFZhbHVlfWA7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cmwgPSB0cmltbWVkVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogYnV0dG9uVHlwZSA/PyB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtUeXBlOiBVdGlscy5mb3JtYXRMaW5rVHlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBidG4/LmxpbmtUeXBlID8/IGJ0bj8ubGlua190eXBlXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogYnRuLmljb24gPyBgaWNvbi0ke2J0bi5pY29ufWAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmRlcjogYnRuLm9yZGVyPy50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyczogYnRuLmxpbmtWYXJzPy50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICB9IGFzIEJhYnlsb25CdXR0b25JO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoYnRuOiBhbnkpOiBidG4gaXMgQmFieWxvbkJ1dHRvbkkgPT4gISFidG4pO1xuXG4gICAgICAgICAgICByZXR1cm4gVXRpbHMuc29ydEJ1dHRvbnNCeU9yZGVyKG1hcHBlZCwgeyBrZWVwT3JpZ2luYWw6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJpdmF0ZSBzdGF0aWMgcHJvY2Vzc1NpbmdsZUJ1dHRvbihcbiAgICAgICAgYnRuOiBhbnksXG4gICAgICAgIGJ1dHRvblR5cGU/OiBzdHJpbmdcbiAgICApOiBCYWJ5bG9uQnV0dG9uSSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IGxhYmVsID0gYnRuPy5sYWJlbD8udHJpbSgpO1xuICAgICAgICBjb25zdCByYXdMaW5rID0gYnRuPy5saW5rVmFsdWUgPz8gYnRuPy5saW5rX3ZhbHVlO1xuXG4gICAgICAgIC8vIFZhbGlkYWNpw7NuIGLDoXNpY2E6IHNpIG5vIGhheSBsYWJlbCBvIGxpbmssIG5vIGVzIHVuIGJvdMOzbiB2w6FsaWRvXG4gICAgICAgIGlmICghbGFiZWwgfHwgIXJhd0xpbmsgfHwgdHlwZW9mIHJhd0xpbmsgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTGltcGllemEgZGUgVVJMXG4gICAgICAgIGNvbnN0IHRyaW1tZWRWYWx1ZSA9IHJhd0xpbmsuZW5kc1dpdGgoJy8nKVxuICAgICAgICAgICAgPyByYXdMaW5rLnNsaWNlKDAsIC0xKVxuICAgICAgICAgICAgOiByYXdMaW5rO1xuICAgICAgICBsZXQgdXJsOiBzdHJpbmcgPSB0cmltbWVkVmFsdWU7XG5cbiAgICAgICAgaWYgKC9eXFwrP1swLTldKyQvLnRlc3QodHJpbW1lZFZhbHVlKSkge1xuICAgICAgICAgICAgdXJsID0gdHJpbW1lZFZhbHVlLnN0YXJ0c1dpdGgoJ3RlbDonKVxuICAgICAgICAgICAgICAgID8gdHJpbW1lZFZhbHVlXG4gICAgICAgICAgICAgICAgOiBgdGVsOiR7dHJpbW1lZFZhbHVlfWA7XG4gICAgICAgIH0gZWxzZSBpZiAoL15bXlxcc0BdK0BbXlxcc0BdK1xcLlteXFxzQF0rJC8udGVzdCh0cmltbWVkVmFsdWUpKSB7XG4gICAgICAgICAgICB1cmwgPSB0cmltbWVkVmFsdWUuc3RhcnRzV2l0aCgnbWFpbHRvOicpXG4gICAgICAgICAgICAgICAgPyB0cmltbWVkVmFsdWVcbiAgICAgICAgICAgICAgICA6IGBtYWlsdG86JHt0cmltbWVkVmFsdWV9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiBidXR0b25UeXBlID8/IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgbGlua1R5cGU6IFV0aWxzLmZvcm1hdExpbmtUeXBlKGJ0bj8ubGlua1R5cGUgPz8gYnRuPy5saW5rX3R5cGUpLFxuICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgaWNvbjogYnRuLmljb24gPyBgaWNvbi0ke2J0bi5pY29ufWAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBvcmRlcjogYnRuLm9yZGVyPy50b1N0cmluZygpLFxuICAgICAgICAgICAgdmFyczogYnRuLmxpbmtWYXJzPy50b1N0cmluZygpLFxuICAgICAgICB9IGFzIEJhYnlsb25CdXR0b25JO1xuICAgIH1cblxuICAgIHN0YXRpYyBsb2FkU2NyaXB0JChzcmM6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8dm9pZD4oKG9ic2VydmVyKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBleGlzdGluZyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYHNjcmlwdFtzcmM9XCIke3NyY31cIl1gKTtcbiAgICAgICAgICAgIGlmIChleGlzdGluZykge1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoKTtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgICAgICAgICBzY3JpcHQuc3JjID0gc3JjO1xuICAgICAgICAgICAgc2NyaXB0LnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JztcbiAgICAgICAgICAgIHNjcmlwdC5kZWZlciA9IHRydWU7XG4gICAgICAgICAgICBzY3JpcHQuYXN5bmMgPSB0cnVlO1xuXG4gICAgICAgICAgICBzY3JpcHQub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoKTtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgc2NyaXB0Lm9uZXJyb3IgPSAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IobmV3IEVycm9yKGBFcnJvciBsb2FkaW5nIHNjcmlwdDogJHtzcmN9YCkpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzdGF0aWMgbG9hZFN0eWxlJChocmVmOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPGJvb2xlYW4+KChvYnNlcnZlcikgPT4ge1xuICAgICAgICAgICAgY29uc3QgZXhpc3RpbmcgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBsaW5rW2hyZWY9XCIke2hyZWZ9XCJdYCk7XG4gICAgICAgICAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KHRydWUpO1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpO1xuICAgICAgICAgICAgbGluay5yZWwgPSAncHJlbG9hZCc7XG4gICAgICAgICAgICBsaW5rLmhyZWYgPSBocmVmO1xuICAgICAgICAgICAgbGluay5hcyA9ICdzdHlsZSc7XG4gICAgICAgICAgICBsaW5rLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICBsaW5rLm9ubG9hZCA9IG51bGw7XG5cbiAgICAgICAgICAgICAgICBsaW5rLnJlbCA9ICdzdHlsZXNoZWV0JztcblxuICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBsaW5rLm9uZXJyb3IgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIG5ldyBFcnJvcihgTm8gc2UgcHVkbyBwcmVjYXJnYXIgZWwgZXN0aWxvOiAke2hyZWZ9YClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChsaW5rKTtcblxuICAgICAgICAgICAgLy8gb3BjaW9uYWw6IGZhbGxiYWNrIDxub3NjcmlwdD4gKG5vIGxvIG5lY2VzaXRhIEFuZ3VsYXIgcGVybyBsbyBwdWVkZXMgYWdyZWdhcilcbiAgICAgICAgICAgIGNvbnN0IG5vc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbm9zY3JpcHQnKTtcbiAgICAgICAgICAgIG5vc2NyaXB0LmlubmVySFRNTCA9IGA8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgaHJlZj1cIiR7aHJlZn1cIj5gO1xuICAgICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChub3NjcmlwdCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHN0YXRpYyBzYWZlT3BlbkV4dGVybmFsKHVybDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCAhdXJsKSByZXR1cm47XG5cbiAgICAgICAgY29uc3Qgd2luID0gd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJywgJ25vb3BlbmVyLG5vcmVmZXJyZXInKTtcbiAgICAgICAgaWYgKHdpbikgcmV0dXJuO1xuXG4gICAgICAgIC8vIEZhbGxiYWNrIHNpIGJsb3F1ZWFuIHBvcHVwc1xuICAgICAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICBhLmhyZWYgPSB1cmw7XG4gICAgICAgIGEudGFyZ2V0ID0gJ19ibGFuayc7XG4gICAgICAgIGEucmVsID0gJ25vb3BlbmVyIG5vcmVmZXJyZXInO1xuICAgICAgICBhLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7XG4gICAgICAgIGEuY2xpY2soKTtcbiAgICAgICAgYS5yZW1vdmUoKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZXh0cmFjdE51bWJlclJhbmdlKFxuICAgICAgICB2YWx1ZT86IHN0cmluZyB8IG51bGwsXG4gICAgICAgIGZhbGxiYWNrOiBudW1iZXJbXSA9IFtdXG4gICAgKTogbnVtYmVyW10ge1xuICAgICAgICBpZiAoIXZhbHVlKSByZXR1cm4gZmFsbGJhY2s7XG5cbiAgICAgICAgY29uc3QgbWF0Y2ggPSB2YWx1ZS5tYXRjaCgvXFxkKy8pO1xuICAgICAgICBpZiAoIW1hdGNoKSByZXR1cm4gZmFsbGJhY2s7XG5cbiAgICAgICAgY29uc3QgbiA9IE51bWJlcihtYXRjaFswXSk7XG4gICAgICAgIGlmIChOdW1iZXIuaXNOYU4obikgfHwgbiA8PSAwKSByZXR1cm4gZmFsbGJhY2s7XG5cbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IG4gfSwgKF8sIGkpID0+IGkgKyAxKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgc29ydEJ1dHRvbnNCeU9yZGVyPFQgZXh0ZW5kcyB7IG9yZGVyPzogYW55IH0+KFxuICAgICAgICBidXR0b25zPzogQXJyYXk8VCB8IHVuZGVmaW5lZCB8IG51bGw+IHwgbnVsbCxcbiAgICAgICAgb3B0cz86IHsga2VlcE9yaWdpbmFsPzogYm9vbGVhbiB9XG4gICAgKTogVFtdIHtcbiAgICAgICAgY29uc3QgYXJyID0gKGJ1dHRvbnMgPz8gW10pLmZpbHRlcigoYik6IGIgaXMgVCA9PiAhIWIpO1xuICAgICAgICBpZiAoIWFyci5sZW5ndGgpIHJldHVybiBbXTtcblxuICAgICAgICBjb25zdCBsaXN0ID0gb3B0cz8ua2VlcE9yaWdpbmFsID8gWy4uLmFycl0gOiBhcnI7XG5cbiAgICAgICAgY29uc3QgdG9OdW0gPSAodjogYW55KTogbnVtYmVyID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG4gPSBOdW1iZXIodik7XG4gICAgICAgICAgICByZXR1cm4gTnVtYmVyLmlzRmluaXRlKG4pID8gbiA6IE51bWJlci5QT1NJVElWRV9JTkZJTklUWTtcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gbGlzdC5zb3J0KChhLCBiKSA9PiB0b051bShhLm9yZGVyKSAtIHRvTnVtKGIub3JkZXIpKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgdG9TbHVnKGlucHV0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gKGlucHV0ID8/ICcnKVxuICAgICAgICAgICAgLnRvU3RyaW5nKClcbiAgICAgICAgICAgIC50cmltKClcbiAgICAgICAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAubm9ybWFsaXplKCdORkQnKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csICcnKSAvLyBxdWl0YSB0aWxkZXNcbiAgICAgICAgICAgIC5yZXBsYWNlKC8mL2csICdhbmQnKSAvLyBvcGNpb25hbFxuICAgICAgICAgICAgLnJlcGxhY2UoL1teYS16MC05XFxzLV0vZywgJycpIC8vIHF1aXRhIGNhcmFjdGVyZXMgcmFyb3NcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXHMrL2csICctJykgLy8gZXNwYWNpb3MgLT4gLVxuICAgICAgICAgICAgLnJlcGxhY2UoLy0rL2csICctJykgLy8gY29sYXBzYSAtLS1cbiAgICAgICAgICAgIC5yZXBsYWNlKC9eLXwtJC9nLCAnJyk7IC8vIHF1aXRhIC0gYWwgaW5pY2lvL2ZpblxuICAgIH1cblxuICAgIHN0YXRpYyB1bmlxdWVTbHVnKGxhYmVsOiBzdHJpbmcsIHVzZWQ6IFNldDxzdHJpbmc+KTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgYmFzZSA9IHRoaXMudG9TbHVnKGxhYmVsKSB8fCAnaXRlbSc7XG4gICAgICAgIGlmICghdXNlZC5oYXMoYmFzZSkpIHtcbiAgICAgICAgICAgIHVzZWQuYWRkKGJhc2UpO1xuICAgICAgICAgICAgcmV0dXJuIGJhc2U7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgaSA9IDI7XG4gICAgICAgIHdoaWxlICh1c2VkLmhhcyhgJHtiYXNlfS0ke2l9YCkpIGkrKztcbiAgICAgICAgY29uc3Qgc2x1ZyA9IGAke2Jhc2V9LSR7aX1gO1xuICAgICAgICB1c2VkLmFkZChzbHVnKTtcbiAgICAgICAgcmV0dXJuIHNsdWc7XG4gICAgfVxuXG4gICAgc3RhdGljIGNhbm9uaWNhbEhvdGVsVHlwZVNsdWcobGFiZWw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIC8vIHNsdWcgYmFzZSAoc2luIHRpbGRlcy9yYXJvcylcbiAgICAgICAgbGV0IHMgPSBVdGlscy50b1NsdWcobGFiZWwpO1xuXG4gICAgICAgIC8vIG5vcm1hbGl6YSBwbHVyYWxlcyBjb211bmVzIEVTIChob3RlbChlcyksIGFwYXJ0YW1lbnRvKHMpKVxuICAgICAgICAvLyBwdWVkZXMgYW1wbGlhciBhcXXDrSBzaSB0aWVuZXMgXCJhcGFydGFtZW50b3MgdHVyw61zdGljb3NcIiwgZXRjLlxuICAgICAgICBpZiAocyA9PT0gJ2hvdGVsZXMnKSByZXR1cm4gJ2hvdGVsJztcbiAgICAgICAgaWYgKHMgPT09ICdhcGFydGFtZW50b3MnKSByZXR1cm4gJ2FwYXJ0YW1lbnRvJztcblxuICAgICAgICAvLyByZWdsYSBnZW7DqXJpY2Egc3VhdmU6IHNpIHRlcm1pbmEgZW4gJ3MnIHkgbm8gZXMgJ2Rvcy90cmVzLy4uLicgZXRjLlxuICAgICAgICAvLyAoZXZpdGEgY2FyZ2FydGUgY29zYXMgY29tbyBcInBvb2xzXCIgc2kgZXhpc3RpZXJhbiwgcGVybyBhcXXDrSBhcGxpY2EgYmllbilcbiAgICAgICAgaWYgKHMuZW5kc1dpdGgoJ3MnKSkgcyA9IHMuc2xpY2UoMCwgLTEpO1xuXG4gICAgICAgIHJldHVybiBzO1xuICAgIH1cbn1cbiJdfQ==
292
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvdXRpbHMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdsQyxNQUFNLE9BQU8sS0FBSztJQUNkLDhEQUE4RDtJQUM5RCxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQWE7UUFDN0IsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELGdGQUFnRjtJQUNoRixNQUFNLENBQUMsNEJBQTRCLENBQUMsR0FBUTtRQUN4QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDcEIsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUNyRTthQUFNLElBQ0gsR0FBRztZQUNILE9BQU8sR0FBRyxLQUFLLFFBQVE7WUFDdkIsR0FBRyxDQUFDLFdBQVcsS0FBSyxNQUFNLEVBQzVCO1lBQ0UsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRTtnQkFDM0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDeEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDL0QsT0FBTyxNQUFNLENBQUM7WUFDbEIsQ0FBQyxFQUFF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TSxDQUFDO1FBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDZixPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQUUsQ0FBQyxFQUFFLENBQUM7UUFDckMsTUFBTSxJQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNmLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsc0JBQXNCLENBQUMsS0FBYTtRQUN2QywrQkFBK0I7UUFDL0IsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU1Qiw0REFBNEQ7UUFDNUQsZ0VBQWdFO1FBQ2hFLElBQUksQ0FBQyxLQUFLLFNBQVM7WUFBRSxPQUFPLE9BQU8sQ0FBQztRQUNwQyxJQUFJLENBQUMsS0FBSyxjQUFjO1lBQUUsT0FBTyxhQUFhLENBQUM7UUFFL0Msc0VBQXNFO1FBQ3RFLDJFQUEyRTtRQUMzRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1lBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFeEMsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCYWJ5bG9uQnV0dG9uSSwgQm9keUNvbXBvbmVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgY2xhc3MgVXRpbHMge1xuICAgIC8vIEZ1bmNpw7NuIHBhcmEgY29udmVydGlyIHVuYSBjYWRlbmEgZGUgc25ha2VfY2FzZSBhIGNhbWVsQ2FzZVxuICAgIHN0YXRpYyBzbmFrZVRvQ2FtZWwoc25ha2U6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBzbmFrZS5yZXBsYWNlKC8oX1xcdykvZywgKG1hdGNoZXMpID0+IG1hdGNoZXNbMV0udG9VcHBlckNhc2UoKSk7XG4gICAgfVxuXG4gICAgLy8gRnVuY2nDs24gcGFyYSBjb252ZXJ0aXIgbGFzIHByb3BpZWRhZGVzIGRlIHVuIG9iamV0byBkZSBzbmFrZV9jYXNlIGEgY2FtZWxDYXNlXG4gICAgc3RhdGljIGNvbnZlcnRPYmplY3RLZXlzVG9DYW1lbENhc2Uob2JqOiBhbnkpOiBhbnkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgICAgICAgICByZXR1cm4gb2JqLm1hcCgoaXRlbSkgPT4gdGhpcy5jb252ZXJ0T2JqZWN0S2V5c1RvQ2FtZWxDYXNlKGl0ZW0pKTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIG9iaiAmJlxuICAgICAgICAgICAgdHlwZW9mIG9iaiA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgICAgIG9iai5jb25zdHJ1Y3RvciA9PT0gT2JqZWN0XG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaikucmVkdWNlKChyZXN1bHQsIGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNhbWVsS2V5ID0gdGhpcy5zbmFrZVRvQ2FtZWwoa2V5KTtcbiAgICAgICAgICAgICAgICByZXN1bHRbY2FtZWxLZXldID0gdGhpcy5jb252ZXJ0T2JqZWN0S2V5c1RvQ2FtZWxDYXNlKG9ialtrZXldKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgfSwge30gYXMgYW55KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH1cblxuICAgIHN0YXRpYyBmb3JtYXRMaW5rVHlwZShsaW5rVHlwZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIGxpbmtUeXBlID09PSAnZXh0ZXJuYWxfbGluaycgfHwgbGlua1R5cGUgPT09ICdleHRlcm5hbCdcbiAgICAgICAgICAgID8gJ2V4dGVybmFsJ1xuICAgICAgICAgICAgOiBsaW5rVHlwZSA9PT0gJ2ludGVybmFsX2xpbmsnIHx8IGxpbmtUeXBlID09PSAnaW50ZXJuYWwnXG4gICAgICAgICAgICAgID8gJ2ludGVybmFsJ1xuICAgICAgICAgICAgICA6IGxpbmtUeXBlO1xuICAgIH1cblxuICAgIHN0YXRpYyBmaW5kQ29tcG9uZW50PFQ+KFxuICAgICAgICBib2R5OiBCb2R5Q29tcG9uZW50PFQ+W10sXG4gICAgICAgIG5hbWU6IHN0cmluZ1xuICAgICk6IFQgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gYm9keS5maW5kKChjb21wb25lbnQpID0+IGNvbXBvbmVudD8ubmFtZT8udG9Mb3dlckNhc2UoKSA9PT0gbmFtZSlcbiAgICAgICAgICAgID8ucHJvcHM7XG4gICAgfVxuXG4gICAgc3RhdGljIGNvbnZlcnRUb0Jhc2U2NChmaWxlOiBGaWxlKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHN0cmluZz4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHJlc29sdmUocmVhZGVyLnJlc3VsdCBhcyBzdHJpbmcpO1xuICAgICAgICAgICAgcmVhZGVyLm9uZXJyb3IgPSAoZXJyb3IpID0+IHJlamVjdChlcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHN0YXRpYyBub3JtYWxpemVUZXh0KHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0ZXh0XG4gICAgICAgICAgICA/Lm5vcm1hbGl6ZSgnTkZEJykgLy8gRGVzY29tcG9uZSBsb3MgY2FyYWN0ZXJlcyBjb24gYWNlbnRvc1xuICAgICAgICAgICAgPy5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCAnJykgLy8gRWxpbWluYSBsb3MgYWNlbnRvc1xuICAgICAgICAgICAgPy50b0xvd2VyQ2FzZSgpO1xuICAgIH1cblxuICAgIHN0YXRpYyBtYXBCdXR0b25zKFxuICAgICAgICBidXR0b246IGFueSB8IGFueVtdIHwgdW5kZWZpbmVkIHwgbnVsbCxcbiAgICAgICAgYnV0dG9uVHlwZT86IHN0cmluZ1xuICAgICk6IEJhYnlsb25CdXR0b25JW10gfCB1bmRlZmluZWQge1xuICAgICAgICAvL1RPRE86IGNsZWFuIGZ1bmN0aW9uXG4gICAgICAgIGlmICghYnV0dG9uKSByZXR1cm47XG5cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYnV0dG9uKSkge1xuICAgICAgICAgICAgcmV0dXJuIFV0aWxzLnNvcnRCdXR0b25zQnlPcmRlcihcbiAgICAgICAgICAgICAgICBidXR0b24/Lm1hcCgoYnRuKSA9PlxuICAgICAgICAgICAgICAgICAgICBidG4gJiYgKGJ0bi5sYWJlbD8ubGVuZ3RoIHx8IGJ0bi5saW5rVmFsdWU/Lmxlbmd0aCB8fCBidG4ubGlua192YWx1ZT8ubGVuZ3RoKVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogYnV0dG9uVHlwZSA/PyB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogYnRuPy5sYWJlbCA/PyB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rVHlwZTogVXRpbHMuZm9ybWF0TGlua1R5cGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnRuPy5saW5rVHlwZSA/PyBidG4/LmxpbmtfdHlwZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByYXdMaW5rID0gYnRuLmxpbmtWYWx1ZSA/PyBidG4ubGlua192YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmF3TGluayAmJiB0eXBlb2YgcmF3TGluayA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdHJpbW1lZFZhbHVlID0gcmF3TGluaz8uZW5kc1dpdGgoJy8nKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyByYXdMaW5rLnNsaWNlKDAsIC0xKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiByYXdMaW5rO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoL15cXCs/WzAtOV0rJC8udGVzdCh0cmltbWVkVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBFcyB1biB0ZWzDqWZvbm9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cmltbWVkVmFsdWUuc3RhcnRzV2l0aCgndGVsOicpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0cmltbWVkVmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGB0ZWw6JHt0cmltbWVkVmFsdWV9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvXlteXFxzQF0rQFteXFxzQF0rXFwuW15cXHNAXSskLy50ZXN0KHRyaW1tZWRWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVzIHVuIGNvcnJlb1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRyaW1tZWRWYWx1ZS5zdGFydHNXaXRoKCdtYWlsdG86JylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRyaW1tZWRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogYG1haWx0bzoke3RyaW1tZWRWYWx1ZX1gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHt0cmltbWVkVmFsdWV9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uOiBidG4uaWNvbiA/IGBpY29uLWAgKyBidG4/Lmljb24gOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmRlcjogYnRuLm9yZGVyPy50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyczogYnRuLmxpbmtWYXJzPy50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9IGFzIEJhYnlsb25CdXR0b25JKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIHsga2VlcE9yaWdpbmFsOiB0cnVlIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBidXR0b24gPT09ICdvYmplY3QnICYmIHR5cGVvZiAoYnV0dG9uIGFzIGFueSlbU3ltYm9sLml0ZXJhdG9yXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgY29uc3QgYXJyID0gQXJyYXkuZnJvbShidXR0b24gYXMgYW55KTtcbiAgICAgICAgICAgIHJldHVybiBVdGlscy5zb3J0QnV0dG9uc0J5T3JkZXIoXG4gICAgICAgICAgICAgICAgYXJyLm1hcCgoYnRuOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBidG4/LmxhYmVsPy50cmltKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJhd0xpbmsgPSBidG4/LmxpbmtWYWx1ZSA/PyBidG4/LmxpbmtfdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIGlmICghbGFiZWwgfHwgIXJhd0xpbmsgfHwgdHlwZW9mIHJhd0xpbmsgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRyaW1tZWRWYWx1ZSA9IHJhd0xpbmsuZW5kc1dpdGgoJy8nKVxuICAgICAgICAgICAgICAgICAgICAgICAgPyByYXdMaW5rLnNsaWNlKDAsIC0xKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiByYXdMaW5rO1xuICAgICAgICAgICAgICAgICAgICBsZXQgdXJsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIGlmICgvXlxcKz9bMC05XSskLy50ZXN0KHRyaW1tZWRWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybCA9IHRyaW1tZWRWYWx1ZS5zdGFydHNXaXRoKCd0ZWw6JylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRyaW1tZWRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogYHRlbDoke3RyaW1tZWRWYWx1ZX1gO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC9eW15cXHNAXStAW15cXHNAXStcXC5bXlxcc0BdKyQvLnRlc3QodHJpbW1lZFZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gdHJpbW1lZFZhbHVlLnN0YXJ0c1dpdGgoJ21haWx0bzonKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdHJpbW1lZFZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBgbWFpbHRvOiR7dHJpbW1lZFZhbHVlfWA7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cmwgPSB0cmltbWVkVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGJ1dHRvblR5cGUgPz8gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rVHlwZTogVXRpbHMuZm9ybWF0TGlua1R5cGUoYnRuPy5saW5rVHlwZSA/PyBidG4/LmxpbmtfdHlwZSksXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiBidG4uaWNvbiA/IGBpY29uLSR7YnRuLmljb259YCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyOiBidG4ub3JkZXI/LnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJzOiBidG4ubGlua1ZhcnM/LnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIH0gYXMgQmFieWxvbkJ1dHRvbkk7XG4gICAgICAgICAgICAgICAgfSkuZmlsdGVyKChidG46IGFueSk6IGJ0biBpcyBCYWJ5bG9uQnV0dG9uSSA9PiAhIWJ0biksXG4gICAgICAgICAgICAgICAgeyBrZWVwT3JpZ2luYWw6IHRydWUgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBTaSBlcyB1biBvYmpldG8gcGxhbm8sIGRldm9sdmVyIGFycmF5IHZhY8OtbyAobm8gaW50ZW50YXIgbWFwKVxuICAgICAgICBpZiAodHlwZW9mIGJ1dHRvbiA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgICAgICAvLyBTaSBlcyBjdWFscXVpZXIgb3RybyB0aXBvLCBkZXZvbHZlciB1bmRlZmluZWRcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBwcm9jZXNzU2luZ2xlQnV0dG9uKFxuICAgICAgICBidG46IGFueSxcbiAgICAgICAgYnV0dG9uVHlwZT86IHN0cmluZ1xuICAgICk6IEJhYnlsb25CdXR0b25JIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgbGFiZWwgPSBidG4/LmxhYmVsPy50cmltKCk7XG4gICAgICAgIGNvbnN0IHJhd0xpbmsgPSBidG4/LmxpbmtWYWx1ZSA/PyBidG4/LmxpbmtfdmFsdWU7XG5cbiAgICAgICAgLy8gVmFsaWRhY2nDs24gYsOhc2ljYTogc2kgbm8gaGF5IGxhYmVsIG8gbGluaywgbm8gZXMgdW4gYm90w7NuIHbDoWxpZG9cbiAgICAgICAgaWYgKCFsYWJlbCB8fCAhcmF3TGluayB8fCB0eXBlb2YgcmF3TGluayAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMaW1waWV6YSBkZSBVUkxcbiAgICAgICAgY29uc3QgdHJpbW1lZFZhbHVlID0gcmF3TGluay5lbmRzV2l0aCgnLycpXG4gICAgICAgICAgICA/IHJhd0xpbmsuc2xpY2UoMCwgLTEpXG4gICAgICAgICAgICA6IHJhd0xpbms7XG4gICAgICAgIGxldCB1cmw6IHN0cmluZyA9IHRyaW1tZWRWYWx1ZTtcblxuICAgICAgICBpZiAoL15cXCs/WzAtOV0rJC8udGVzdCh0cmltbWVkVmFsdWUpKSB7XG4gICAgICAgICAgICB1cmwgPSB0cmltbWVkVmFsdWUuc3RhcnRzV2l0aCgndGVsOicpXG4gICAgICAgICAgICAgICAgPyB0cmltbWVkVmFsdWVcbiAgICAgICAgICAgICAgICA6IGB0ZWw6JHt0cmltbWVkVmFsdWV9YDtcbiAgICAgICAgfSBlbHNlIGlmICgvXlteXFxzQF0rQFteXFxzQF0rXFwuW15cXHNAXSskLy50ZXN0KHRyaW1tZWRWYWx1ZSkpIHtcbiAgICAgICAgICAgIHVybCA9IHRyaW1tZWRWYWx1ZS5zdGFydHNXaXRoKCdtYWlsdG86JylcbiAgICAgICAgICAgICAgICA/IHRyaW1tZWRWYWx1ZVxuICAgICAgICAgICAgICAgIDogYG1haWx0bzoke3RyaW1tZWRWYWx1ZX1gO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6IGJ1dHRvblR5cGUgPz8gdW5kZWZpbmVkLFxuICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICBsaW5rVHlwZTogVXRpbHMuZm9ybWF0TGlua1R5cGUoYnRuPy5saW5rVHlwZSA/PyBidG4/LmxpbmtfdHlwZSksXG4gICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICBpY29uOiBidG4uaWNvbiA/IGBpY29uLSR7YnRuLmljb259YCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIG9yZGVyOiBidG4ub3JkZXI/LnRvU3RyaW5nKCksXG4gICAgICAgICAgICB2YXJzOiBidG4ubGlua1ZhcnM/LnRvU3RyaW5nKCksXG4gICAgICAgIH0gYXMgQmFieWxvbkJ1dHRvbkk7XG4gICAgfVxuXG4gICAgc3RhdGljIGxvYWRTY3JpcHQkKHNyYzogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTx2b2lkPigob2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcihgc2NyaXB0W3NyYz1cIiR7c3JjfVwiXWApO1xuICAgICAgICAgICAgaWYgKGV4aXN0aW5nKSB7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCgpO1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgICAgICAgIHNjcmlwdC5zcmMgPSBzcmM7XG4gICAgICAgICAgICBzY3JpcHQudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnO1xuICAgICAgICAgICAgc2NyaXB0LmRlZmVyID0gdHJ1ZTtcbiAgICAgICAgICAgIHNjcmlwdC5hc3luYyA9IHRydWU7XG5cbiAgICAgICAgICAgIHNjcmlwdC5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCgpO1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBzY3JpcHQub25lcnJvciA9IChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5lcnJvcihuZXcgRXJyb3IoYEVycm9yIGxvYWRpbmcgc2NyaXB0OiAke3NyY31gKSk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHN0YXRpYyBsb2FkU3R5bGUkKGhyZWY6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8Ym9vbGVhbj4oKG9ic2VydmVyKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBleGlzdGluZyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYGxpbmtbaHJlZj1cIiR7aHJlZn1cIl1gKTtcbiAgICAgICAgICAgIGlmIChleGlzdGluZykge1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgICAgICAgICBsaW5rLnJlbCA9ICdwcmVsb2FkJztcbiAgICAgICAgICAgIGxpbmsuaHJlZiA9IGhyZWY7XG4gICAgICAgICAgICBsaW5rLmFzID0gJ3N0eWxlJztcbiAgICAgICAgICAgIGxpbmsub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGxpbmsub25sb2FkID0gbnVsbDtcblxuICAgICAgICAgICAgICAgIGxpbmsucmVsID0gJ3N0eWxlc2hlZXQnO1xuXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCh0cnVlKTtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGxpbmsub25lcnJvciA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgbmV3IEVycm9yKGBObyBzZSBwdWRvIHByZWNhcmdhciBlbCBlc3RpbG86ICR7aHJlZn1gKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGxpbmspO1xuXG4gICAgICAgICAgICAvLyBvcGNpb25hbDogZmFsbGJhY2sgPG5vc2NyaXB0PiAobm8gbG8gbmVjZXNpdGEgQW5ndWxhciBwZXJvIGxvIHB1ZWRlcyBhZ3JlZ2FyKVxuICAgICAgICAgICAgY29uc3Qgbm9zY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdub3NjcmlwdCcpO1xuICAgICAgICAgICAgbm9zY3JpcHQuaW5uZXJIVE1MID0gYDxsaW5rIHJlbD1cInN0eWxlc2hlZXRcIiBocmVmPVwiJHtocmVmfVwiPmA7XG4gICAgICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKG5vc2NyaXB0KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc3RhdGljIHNhZmVPcGVuRXh0ZXJuYWwodXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8ICF1cmwpIHJldHVybjtcblxuICAgICAgICBjb25zdCB3aW4gPSB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnLCAnbm9vcGVuZXIsbm9yZWZlcnJlcicpO1xuICAgICAgICBpZiAod2luKSByZXR1cm47XG5cbiAgICAgICAgLy8gRmFsbGJhY2sgc2kgYmxvcXVlYW4gcG9wdXBzXG4gICAgICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgICAgIGEuaHJlZiA9IHVybDtcbiAgICAgICAgYS50YXJnZXQgPSAnX2JsYW5rJztcbiAgICAgICAgYS5yZWwgPSAnbm9vcGVuZXIgbm9yZWZlcnJlcic7XG4gICAgICAgIGEuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtcbiAgICAgICAgYS5jbGljaygpO1xuICAgICAgICBhLnJlbW92ZSgpO1xuICAgIH1cblxuICAgIHN0YXRpYyBleHRyYWN0TnVtYmVyUmFuZ2UoXG4gICAgICAgIHZhbHVlPzogc3RyaW5nIHwgbnVsbCxcbiAgICAgICAgZmFsbGJhY2s6IG51bWJlcltdID0gW11cbiAgICApOiBudW1iZXJbXSB7XG4gICAgICAgIGlmICghdmFsdWUpIHJldHVybiBmYWxsYmFjaztcblxuICAgICAgICBjb25zdCBtYXRjaCA9IHZhbHVlLm1hdGNoKC9cXGQrLyk7XG4gICAgICAgIGlmICghbWF0Y2gpIHJldHVybiBmYWxsYmFjaztcblxuICAgICAgICBjb25zdCBuID0gTnVtYmVyKG1hdGNoWzBdKTtcbiAgICAgICAgaWYgKE51bWJlci5pc05hTihuKSB8fCBuIDw9IDApIHJldHVybiBmYWxsYmFjaztcblxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogbiB9LCAoXywgaSkgPT4gaSArIDEpO1xuICAgIH1cblxuICAgIHN0YXRpYyBzb3J0QnV0dG9uc0J5T3JkZXI8VCBleHRlbmRzIHsgb3JkZXI/OiBhbnkgfT4oXG4gICAgICAgIGJ1dHRvbnM/OiBBcnJheTxUIHwgdW5kZWZpbmVkIHwgbnVsbD4gfCBudWxsLFxuICAgICAgICBvcHRzPzogeyBrZWVwT3JpZ2luYWw/OiBib29sZWFuIH1cbiAgICApOiBUW10ge1xuICAgICAgICBjb25zdCBhcnIgPSAoYnV0dG9ucyA/PyBbXSkuZmlsdGVyKChiKTogYiBpcyBUID0+ICEhYik7XG4gICAgICAgIGlmICghYXJyLmxlbmd0aCkgcmV0dXJuIFtdO1xuXG4gICAgICAgIGNvbnN0IGxpc3QgPSBvcHRzPy5rZWVwT3JpZ2luYWwgPyBbLi4uYXJyXSA6IGFycjtcblxuICAgICAgICBjb25zdCB0b051bSA9ICh2OiBhbnkpOiBudW1iZXIgPT4ge1xuICAgICAgICAgICAgY29uc3QgbiA9IE51bWJlcih2KTtcbiAgICAgICAgICAgIHJldHVybiBOdW1iZXIuaXNGaW5pdGUobikgPyBuIDogTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBsaXN0LnNvcnQoKGEsIGIpID0+IHRvTnVtKGEub3JkZXIpIC0gdG9OdW0oYi5vcmRlcikpO1xuICAgIH1cblxuICAgIHN0YXRpYyB0b1NsdWcoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAoaW5wdXQgPz8gJycpXG4gICAgICAgICAgICAudG9TdHJpbmcoKVxuICAgICAgICAgICAgLnRyaW0oKVxuICAgICAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgIC5ub3JtYWxpemUoJ05GRCcpXG4gICAgICAgICAgICAucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpIC8vIHF1aXRhIHRpbGRlc1xuICAgICAgICAgICAgLnJlcGxhY2UoLyYvZywgJ2FuZCcpIC8vIG9wY2lvbmFsXG4gICAgICAgICAgICAucmVwbGFjZSgvW15hLXowLTlcXHMtXS9nLCAnJykgLy8gcXVpdGEgY2FyYWN0ZXJlcyByYXJvc1xuICAgICAgICAgICAgLnJlcGxhY2UoL1xccysvZywgJy0nKSAvLyBlc3BhY2lvcyAtPiAtXG4gICAgICAgICAgICAucmVwbGFjZSgvLSsvZywgJy0nKSAvLyBjb2xhcHNhIC0tLVxuICAgICAgICAgICAgLnJlcGxhY2UoL14tfC0kL2csICcnKTsgLy8gcXVpdGEgLSBhbCBpbmljaW8vZmluXG4gICAgfVxuXG4gICAgc3RhdGljIHVuaXF1ZVNsdWcobGFiZWw6IHN0cmluZywgdXNlZDogU2V0PHN0cmluZz4pOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBiYXNlID0gdGhpcy50b1NsdWcobGFiZWwpIHx8ICdpdGVtJztcbiAgICAgICAgaWYgKCF1c2VkLmhhcyhiYXNlKSkge1xuICAgICAgICAgICAgdXNlZC5hZGQoYmFzZSk7XG4gICAgICAgICAgICByZXR1cm4gYmFzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBpID0gMjtcbiAgICAgICAgd2hpbGUgKHVzZWQuaGFzKGAke2Jhc2V9LSR7aX1gKSkgaSsrO1xuICAgICAgICBjb25zdCBzbHVnID0gYCR7YmFzZX0tJHtpfWA7XG4gICAgICAgIHVzZWQuYWRkKHNsdWcpO1xuICAgICAgICByZXR1cm4gc2x1ZztcbiAgICB9XG5cbiAgICBzdGF0aWMgY2Fub25pY2FsSG90ZWxUeXBlU2x1ZyhsYWJlbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgLy8gc2x1ZyBiYXNlIChzaW4gdGlsZGVzL3Jhcm9zKVxuICAgICAgICBsZXQgcyA9IFV0aWxzLnRvU2x1ZyhsYWJlbCk7XG5cbiAgICAgICAgLy8gbm9ybWFsaXphIHBsdXJhbGVzIGNvbXVuZXMgRVMgKGhvdGVsKGVzKSwgYXBhcnRhbWVudG8ocykpXG4gICAgICAgIC8vIHB1ZWRlcyBhbXBsaWFyIGFxdcOtIHNpIHRpZW5lcyBcImFwYXJ0YW1lbnRvcyB0dXLDrXN0aWNvc1wiLCBldGMuXG4gICAgICAgIGlmIChzID09PSAnaG90ZWxlcycpIHJldHVybiAnaG90ZWwnO1xuICAgICAgICBpZiAocyA9PT0gJ2FwYXJ0YW1lbnRvcycpIHJldHVybiAnYXBhcnRhbWVudG8nO1xuXG4gICAgICAgIC8vIHJlZ2xhIGdlbsOpcmljYSBzdWF2ZTogc2kgdGVybWluYSBlbiAncycgeSBubyBlcyAnZG9zL3RyZXMvLi4uJyBldGMuXG4gICAgICAgIC8vIChldml0YSBjYXJnYXJ0ZSBjb3NhcyBjb21vIFwicG9vbHNcIiBzaSBleGlzdGllcmFuLCBwZXJvIGFxdcOtIGFwbGljYSBiaWVuKVxuICAgICAgICBpZiAocy5lbmRzV2l0aCgncycpKSBzID0gcy5zbGljZSgwLCAtMSk7XG5cbiAgICAgICAgcmV0dXJuIHM7XG4gICAgfVxufVxuIl19
@@ -576,9 +576,7 @@ class Utils {
576
576
  if (!button)
577
577
  return;
578
578
  if (Array.isArray(button)) {
579
- return Utils.sortButtonsByOrder(button?.map((btn) => btn.label?.length ||
580
- btn.linkValue?.length ||
581
- btn.link_value?.length
579
+ return Utils.sortButtonsByOrder(button?.map((btn) => btn && (btn.label?.length || btn.linkValue?.length || btn.link_value?.length)
582
580
  ? {
583
581
  type: buttonType ?? undefined,
584
582
  label: btn?.label ?? undefined,
@@ -611,9 +609,9 @@ class Utils {
611
609
  }
612
610
  : undefined), { keepOriginal: true });
613
611
  }
614
- else {
615
- const mapped = button
616
- .map((btn) => {
612
+ if (typeof button === 'object' && typeof button[Symbol.iterator] === 'function') {
613
+ const arr = Array.from(button);
614
+ return Utils.sortButtonsByOrder(arr.map((btn) => {
617
615
  const label = btn?.label?.trim();
618
616
  const rawLink = btn?.linkValue ?? btn?.link_value;
619
617
  if (!label || !rawLink || typeof rawLink !== 'string') {
@@ -645,10 +643,14 @@ class Utils {
645
643
  order: btn.order?.toString(),
646
644
  vars: btn.linkVars?.toString(),
647
645
  };
648
- })
649
- .filter((btn) => !!btn);
650
- return Utils.sortButtonsByOrder(mapped, { keepOriginal: true });
646
+ }).filter((btn) => !!btn), { keepOriginal: true });
651
647
  }
648
+ // Si es un objeto plano, devolver array vacío (no intentar map)
649
+ if (typeof button === 'object') {
650
+ return [];
651
+ }
652
+ // Si es cualquier otro tipo, devolver undefined
653
+ return undefined;
652
654
  }
653
655
  static processSingleButton(btn, buttonType) {
654
656
  const label = btn?.label?.trim();