ctt-babylon 0.24.12 → 0.24.13

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.
@@ -77,11 +77,12 @@ export class LisC3ImgTxtCtaComponent {
77
77
  return item?.multimedia?.imagenes?.[0]?.buttons?.[index]?.label;
78
78
  }
79
79
  getButtonUrl(item, index) {
80
- return (this.buildMenuUrl(item?.multimedia?.imagenes?.[0]?.buttons?.[index]) || this.buildMenuUrl(item?.buttons?.[index]));
80
+ return (this.buildMenuUrl(item?.buttons?.[index]) ||
81
+ this.buildMenuUrl(item?.multimedia?.imagenes?.[0]?.buttons?.[index]));
81
82
  }
82
83
  getButtonLinkType(item, index) {
83
- return (item?.multimedia?.imagenes?.[0]?.buttons?.[index]?.linkType ||
84
- item?.buttons?.[index]?.linkType);
84
+ return (item?.buttons?.[index]?.linkType ??
85
+ item?.multimedia?.imagenes?.[0]?.buttons?.[index]?.linkType);
85
86
  }
86
87
  buildMenuUrl(item) {
87
88
  if (!item?.url)
@@ -241,4 +242,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
241
242
  }], showFilters: [{
242
243
  type: Input
243
244
  }] } });
244
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzLWMzLWltZy10eHQtY3RhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhYnlsb24vc3JjL2xpYi9jb21wb25lbnRzL2V4dGVybmFsL2NvcmUvbGlzLWMzLWltZy10eHQtY3RhL2xpcy1jMy1pbWctdHh0LWN0YS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9leHRlcm5hbC9jb3JlL2xpcy1jMy1pbWctdHh0LWN0YS9saXMtYzMtaW1nLXR4dC1jdGEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFNaEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUNILGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsWUFBWSxHQUNmLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFeEYsT0FBTyxFQUNILGlCQUFpQixHQUtwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHakQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pG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LElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsWUFBWTtRQUNSLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWE7UUFDckIsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUNELFdBQVcsQ0FBQyxLQUFhO1FBQ3JCLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxVQUFVLENBQUMsS0FBYTtRQUNwQixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOytHQXhSUSx1QkFBdUI7bUdBQXZCLHVCQUF1QiwrUUM1Q3BDLDh3YkF5UEEsayt0MkJEdE5RLFlBQVksbUlBQ1osd0JBQXdCLDhKQUN4QixtQkFBbUIsc0RBQ25CLFdBQVc7OzRGQU1OLHVCQUF1QjtrQkFibkMsU0FBUzsrQkFDSSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQO3dCQUNMLFlBQVk7d0JBQ1osd0JBQXdCO3dCQUN4QixtQkFBbUI7d0JBQ25CLFdBQVc7cUJBQ2QsaUJBR2MsaUJBQWlCLENBQUMsUUFBUTs4QkFHaEMsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmFieWxvbkxpbmtUeXBlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGlyZWN0aXZlcy9saW5rLXR5cGUvbGluay10eXBlLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1xuICAgIEJhYnlsb25CdXR0b25JLFxuICAgIEJhYnlsb25JbWFnZUksXG4gICAgQmFieWxvblRleHRJbmZvSSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBCYWJ5bG9uQ3VycmVuY3lQaXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vcGlwZXMvYmFieWxvbi1jdXJyZW5jeS5waXBlJztcbmltcG9ydCB7XG4gICAgYnVpbGRGaWx0ZXJPcHRpb25zLFxuICAgIGZpbHRlcmVkSXRlbXMsXG4gICAgZ2V0SXRlbUJyYW5kLFxufSBmcm9tICcuLi8uLi8uLi8uLi91dGlscy9maWx0ZXIudXRpbHMnO1xuaW1wb3J0IHsgZ2V0Rmlyc3RJbWFnZUJ5VGFnRnJvbU11bHRpbWVkaWFSYXcgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscy9tdXRpbWVkaWEudXRpbHMnO1xuXG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCYWJ5bG9uR2xvYmFsSXRlbSB9IGZyb20gJy4uLy4uLy4uLy4uL2ludGVyZmFjZXMvYmFieWxvbi1nbG9iYWwtaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscyc7XG5pbXBvcnQgeyBnZXRGaXJzdEltYWdlQnlUYWdGcm9tSW1hZ2VzIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMvbXV0aW1lZGlhLnV0aWxzJztcbmltcG9ydCB7IG5vcm1hbGl6ZUdsb2JhbEl0ZW1zIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMvbm9ybWFsaXplLWl0ZW1zLnV0aWxzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsaXMtYzMtaW1nLXR4dC1jdGEnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEJhYnlsb25MaW5rVHlwZURpcmVjdGl2ZSxcbiAgICAgICAgQmFieWxvbkN1cnJlbmN5UGlwZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGlzLWMzLWltZy10eHQtY3RhLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vbGlzLWMzLWltZy10eHQtY3RhLmNvbXBvbmVudC5zY3NzJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZCxcbn0pXG5leHBvcnQgY2xhc3MgTGlzQzNJbWdUeHRDdGFDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSB0ZXh0cz86IEJhYnlsb25UZXh0SW5mb0k7XG4gICAgQElucHV0KCkgaXRlbXM/OiBCYWJ5bG9uR2xvYmFsSXRlbVtdO1xuICAgIEBJbnB1dCgpIGxpbmtzPzogQmFieWxvbkJ1dHRvbklbXTtcbiAgICBASW5wdXQoKSBhZGRpdGlvbmFsMUxpa2VNYXJjYT86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBzaG93Q2xlYW5GaWx0ZXJzOiBib29sZWFuID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBzaG93RmlsdGVyczogYm9vbGVhbiA9IHRydWU7XG5cbiAgICB0YWdOYW1lOiBzdHJpbmcgPSAnTGlzQzNJbWdUeHRDdGEnO1xuXG4gICAgc2VsZWN0ZWRIb3RlbFR5cGU6IHN0cmluZyA9ICcnO1xuICAgIHNlbGVjdGVkRGVzdGluYXRpb246IHN0cmluZyA9ICcnO1xuICAgIHNlbGVjdGVkQnJhbmQ6IHN0cmluZyA9ICcnO1xuXG4gICAgaG90ZWxUeXBlT3B0aW9uczogc3RyaW5nW10gPSBbXTtcbiAgICBkZXN0aW5hdGlvbk9wdGlvbnM6IHN0cmluZ1tdID0gW107XG4gICAgYnJhbmRPcHRpb25zOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgZmlsdGVyTGFiZWxUb1NsdWcgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICAgIGRlc3RpbmF0aW9uTGFiZWxUb1NsdWcgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICAgIGJyYW5kTGFiZWxUb1NsdWcgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuXG4gICAgcHJpdmF0ZSByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG4gICAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIHByaXZhdGUgcXBTdWI/OiBTdWJzY3JpcHRpb247XG4gICAgcHJpdmF0ZSBwZW5kaW5nRGVzdGluYXRpb24/OiBzdHJpbmc7XG5cbiAgICAvLyBJdGVtcyBmaWx0cmFkb3Mgc2luIG5vcm1hbGl6YXIgKHVzYWRvcyBwYXJhIGzDs2dpY2EpXG4gICAgcHJpdmF0ZSBfZmlsdGVyZWRJdGVtc1JhdzogQmFieWxvbkdsb2JhbEl0ZW1bXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogRGV2dWVsdmUgbGFzIGltw6FnZW5lcyBzaW5jcm9uaXphZGFzIGNvbiBmaWx0ZXJlZEl0ZW1zLCBldml0YW5kbyBpbmNvbmdydWVuY2lhcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGltYWdlc1RvU2hvdygpOiBhbnlbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlcmVkSXRlbXMubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEZyb21NdWx0aW1lZGlhID0gdGhpcy5nZXRGaXJzdEltYWdlQnlUYWcoXG4gICAgICAgICAgICAgICAgdGhpcy50YWdOYW1lLFxuICAgICAgICAgICAgICAgIGl0ZW0/Lm11bHRpbWVkaWE/LmltYWdlbmVzID8/IFtdXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRGcm9tSW1hZ2VzID0gdGhpcy5nZXRGaXJzdEltYWdlQnlUYWcoXG4gICAgICAgICAgICAgICAgdGhpcy50YWdOYW1lLFxuICAgICAgICAgICAgICAgIGl0ZW0/LmltYWdlcyA/PyBbXVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPVxuICAgICAgICAgICAgICAgIHNlbGVjdGVkRnJvbU11bHRpbWVkaWEgPz9cbiAgICAgICAgICAgICAgICBzZWxlY3RlZEZyb21JbWFnZXMgPz9cbiAgICAgICAgICAgICAgICBnZXRGaXJzdEltYWdlQnlUYWdGcm9tTXVsdGltZWRpYVJhdyhcbiAgICAgICAgICAgICAgICAgICAgaXRlbT8ubXVsdGltZWRpYSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWdOYW1lXG4gICAgICAgICAgICAgICAgKSA/P1xuICAgICAgICAgICAgICAgIGl0ZW0/Lm11bHRpbWVkaWE/LmltYWdlbmVzPy5bMF0gPz9cbiAgICAgICAgICAgICAgICBpdGVtPy5pbWFnZXM/LlswXSA/P1xuICAgICAgICAgICAgICAgIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaW5kQW5kU2VsZWN0RGVzdGluYXRpb24oZGVzdGluYXRpb25OYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZE5hbWUgPSBkZXN0aW5hdGlvbk5hbWUudG9Mb3dlckNhc2UoKT8udHJpbSgpO1xuXG4gICAgICAgIC8vIFByaW1lcm8gYnVzY2FyIGVuIGVsIGFycmF5IGRlIHN0cmluZ3MgZGUgZGVzdGlub3NcbiAgICAgICAgbGV0IGZvdW5kID0gdGhpcy5kZXN0aW5hdGlvbk9wdGlvbnM/LmZpbmQoXG4gICAgICAgICAgICAoZGVzdGluYXRpb24pID0+XG4gICAgICAgICAgICAgICAgZGVzdGluYXRpb24udG9Mb3dlckNhc2UoKT8udHJpbSgpID09PSBub3JtYWxpemVkTmFtZVxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChmb3VuZCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERlc3RpbmF0aW9uID0gZm91bmQ7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUZpbHRlcmVkSXRlbXMoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNpIG5vIGVuY3VlbnRyYSBlbiBkZXN0aW5hdGlvbk9wdGlvbnMsIGJ1c2NhciBlbiBsb3MgaXRlbXMgcG9yIGNvdW50cnlcbiAgICAgICAgY29uc3QgaXRlbVdpdGhDb3VudHJ5ID0gdGhpcy5pdGVtcz8uZmluZChcbiAgICAgICAgICAgIChpdGVtKSA9PiBpdGVtLmNvdW50cnk/LnRvTG93ZXJDYXNlKCk/LnRyaW0oKSA9PT0gbm9ybWFsaXplZE5hbWVcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoaXRlbVdpdGhDb3VudHJ5ICYmIGl0ZW1XaXRoQ291bnRyeS5jb3VudHJ5KSB7XG4gICAgICAgICAgICAvLyBGaWx0cmFyIGRpcmVjdGFtZW50ZSBwb3IgY291bnRyeSBhdW5xdWUgbm8gZXhpc3RhIGVuIGRlc3RpbmF0aW9uT3B0aW9uc1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERlc3RpbmF0aW9uID0gaXRlbVdpdGhDb3VudHJ5LmNvdW50cnk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUZpbHRlcmVkSXRlbXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERldnVlbHZlIGVsIGxhYmVsIGRlbCBib3TDs24gZW4gbGEgcG9zaWNpw7NuIGluZGV4LCBidXNjYW5kbyBlbiBpdGVtLmJ1dHRvbnNbaW5kZXhdLmxhYmVsXG4gICAgICogeSBzaSBubyBleGlzdGUsIGVuIGl0ZW0ubXVsdGltZWRpYS5pbWFnZW5lc1swXS5idXR0b25zW2luZGV4XS5sYWJlbFxuICAgICAqL1xuICAgIGdldEJ1dHRvbkxhYmVsKGl0ZW06IEJhYnlsb25HbG9iYWxJdGVtLCBpbmRleDogbnVtYmVyKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKGl0ZW0/LmJ1dHRvbnM/LltpbmRleF0/LmxhYmVsKSB7XG4gICAgICAgICAgICByZXR1cm4gaXRlbS5idXR0b25zW2luZGV4XS5sYWJlbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXRlbT8ubXVsdGltZWRpYT8uaW1hZ2VuZXM/LlswXT8uYnV0dG9ucz8uW2luZGV4XT8ubGFiZWw7XG4gICAgfVxuXG4gICAgZ2V0QnV0dG9uVXJsKGl0ZW06IEJhYnlsb25HbG9iYWxJdGVtLCBpbmRleDogbnVtYmVyKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuYnVpbGRNZW51VXJsKFxuICAgICAgICAgICAgICAgIGl0ZW0/Lm11bHRpbWVkaWE/LmltYWdlbmVzPy5bMF0/LmJ1dHRvbnM/LltpbmRleF1cbiAgICAgICAgICAgICkgfHwgdGhpcy5idWlsZE1lbnVVcmwoaXRlbT8uYnV0dG9ucz8uW2luZGV4XSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRCdXR0b25MaW5rVHlwZShpdGVtOiBCYWJ5bG9uR2xvYmFsSXRlbSwgaW5kZXg6IG51bWJlcik6IGFueSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBpdGVtPy5tdWx0aW1lZGlhPy5pbWFnZW5lcz8uWzBdPy5idXR0b25zPy5baW5kZXhdPy5saW5rVHlwZSB8fFxuICAgICAgICAgICAgaXRlbT8uYnV0dG9ucz8uW2luZGV4XT8ubGlua1R5cGVcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBidWlsZE1lbnVVcmwoaXRlbTogQmFieWxvbkJ1dHRvbkkgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIWl0ZW0/LnVybCkgcmV0dXJuICcnO1xuXG4gICAgICAgIGNvbnN0IGJhc2VVcmwgPSBpdGVtLnVybC5yZXBsYWNlKC9cXC8rJC8sICcnKTtcbiAgICAgICAgY29uc3QgZGVzdGluYXRpb24gPSAoaXRlbS52YXJzID8/ICcnKS50b1N0cmluZygpPy50cmltKCk7XG5cbiAgICAgICAgaWYgKCFkZXN0aW5hdGlvbikgcmV0dXJuIGJhc2VVcmw7XG5cbiAgICAgICAgY29uc3Qgc2x1ZyA9IFV0aWxzLnRvU2x1ZyhkZXN0aW5hdGlvbik7XG4gICAgICAgIGlmICghc2x1ZykgcmV0dXJuIGJhc2VVcmw7XG5cbiAgICAgICAgcmV0dXJuIGAke2Jhc2VVcmx9P2Rlc3RpbmF0aW9ucz0ke2Rlc3RpbmF0aW9ufWA7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlc1snaXRlbXMnXSkge1xuICAgICAgICAgICAgY29uc3Qgb3B0cyA9IGJ1aWxkRmlsdGVyT3B0aW9ucyhcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zID8/IFtdLFxuICAgICAgICAgICAgICAgIHRoaXMuYWRkaXRpb25hbDFMaWtlTWFyY2EgPz8gZmFsc2VcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLmhvdGVsVHlwZU9wdGlvbnMgPSBvcHRzLmhvdGVsVHlwZU9wdGlvbnM7XG4gICAgICAgICAgICB0aGlzLmRlc3RpbmF0aW9uT3B0aW9ucyA9IG9wdHMuZGVzdGluYXRpb25PcHRpb25zO1xuXG4gICAgICAgICAgICAvLyBSZWxsZW5hciBicmFuZE9wdGlvbnMgdXNhbmRvIGdldEl0ZW1CcmFuZCBwYXJhIGNvaGVyZW5jaWFcbiAgICAgICAgICAgIGNvbnN0IGJyYW5kcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgICAgICAgICAgKHRoaXMuaXRlbXMgPz8gW10pLmZvckVhY2goKGl0KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYnJhbmQgPSBnZXRJdGVtQnJhbmQoXG4gICAgICAgICAgICAgICAgICAgIGl0LFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZGl0aW9uYWwxTGlrZU1hcmNhID8/IGZhbHNlXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAoYnJhbmQpIGJyYW5kcy5hZGQoYnJhbmQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmJyYW5kT3B0aW9ucyA9IEFycmF5LmZyb20oYnJhbmRzKTtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyTGFiZWxUb1NsdWcgPSBvcHRzLmZpbHRlckxhYmVsVG9TbHVnO1xuICAgICAgICAgICAgdGhpcy5kZXN0aW5hdGlvbkxhYmVsVG9TbHVnID0gb3B0cy5kZXN0aW5hdGlvbkxhYmVsVG9TbHVnO1xuICAgICAgICAgICAgdGhpcy5icmFuZExhYmVsVG9TbHVnID0gb3B0cy5icmFuZExhYmVsVG9TbHVnO1xuXG4gICAgICAgICAgICAvLyBTb2xvIHJlc2V0ZWFyIHNpIG5vIGhheSB1biBkZXN0aW5vIHBlbmRpZW50ZSBkZSBsYSBVUkxcbiAgICAgICAgICAgIGlmICghdGhpcy5wZW5kaW5nRGVzdGluYXRpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSG90ZWxUeXBlID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERlc3RpbmF0aW9uID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEJyYW5kID0gJyc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIFNpIGhheSB1biBkZXN0aW5vIHBlbmRpZW50ZSBkZSBsYSBVUkwsIGludGVudGEgc2VsZWNjaW9uYXJsbyBhaG9yYVxuICAgICAgICAgICAgICAgIHRoaXMuZmluZEFuZFNlbGVjdERlc3RpbmF0aW9uKHRoaXMucGVuZGluZ0Rlc3RpbmF0aW9uKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gQWN0dWFsaXphciBpdGVtcyBmaWx0cmFkb3NcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRmlsdGVyZWRJdGVtcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIFN1c2NyaWJpcnNlIGEgbG9zIGNhbWJpb3MgZGUgcXVlcnkgcGFyYW1zXG4gICAgICAgIHRoaXMucXBTdWIgPSB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1NYXAuc3Vic2NyaWJlKChwYXJhbXMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRlc3RpbmF0aW9uc1BhcmFtID0gcGFyYW1zLmdldCgnZGVzdGluYXRpb25zJyk7XG5cbiAgICAgICAgICAgIGlmIChkZXN0aW5hdGlvbnNQYXJhbSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlY29kZWREZXN0aW5hdGlvbiA9XG4gICAgICAgICAgICAgICAgICAgIGRlY29kZVVSSUNvbXBvbmVudChkZXN0aW5hdGlvbnNQYXJhbSk7XG4gICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nRGVzdGluYXRpb24gPSBkZWNvZGVkRGVzdGluYXRpb247XG5cbiAgICAgICAgICAgICAgICAvLyBTaSB5YSB0ZW5lbW9zIGRlc3RpbmF0aW9uT3B0aW9ucywgYnVzY2FyIHkgc2VsZWNjaW9uYXJcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVzdGluYXRpb25PcHRpb25zICYmXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVzdGluYXRpb25PcHRpb25zLmxlbmd0aCA+IDBcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maW5kQW5kU2VsZWN0RGVzdGluYXRpb24oZGVjb2RlZERlc3RpbmF0aW9uKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5xcFN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXZ1ZWx2ZSB1biBhcnJheSBub3JtYWxpemFkbyBkZSBCYWJ5bG9uR2xvYmFsSXRlbVxuICAgICAqL1xuICAgIGdldCBub3JtYWxpemVkSXRlbXMoKTogQmFieWxvbkdsb2JhbEl0ZW1bXSB7XG4gICAgICAgIHJldHVybiBub3JtYWxpemVHbG9iYWxJdGVtcyh0aGlzLml0ZW1zKTtcbiAgICB9XG5cbiAgICBnZXRGaXJzdEltYWdlQnlUYWcodGFnTmFtZTogc3RyaW5nLCBpbWFnZW5lczogQmFieWxvbkltYWdlSVtdKSB7XG4gICAgICAgIHJldHVybiBnZXRGaXJzdEltYWdlQnlUYWdGcm9tSW1hZ2VzKGltYWdlbmVzLCB0YWdOYW1lKTtcbiAgICB9XG5cbiAgICBnZXQgZmlsdGVyZWRJdGVtcygpIHtcbiAgICAgICAgLy8gRGV2b2x2ZXIgbG9zIGl0ZW1zIGZpbHRyYWRvcyBub3JtYWxpemFkb3NcbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZUdsb2JhbEl0ZW1zKHRoaXMuX2ZpbHRlcmVkSXRlbXNSYXcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlRmlsdGVyZWRJdGVtcygpOiB2b2lkIHtcbiAgICAgICAgbGV0IGl0ZW1zID0gZmlsdGVyZWRJdGVtcyh7XG4gICAgICAgICAgICBpdGVtczogdGhpcy5pdGVtcyA/PyBbXSxcbiAgICAgICAgICAgIHNlbGVjdGVkSG90ZWxUeXBlOiB0aGlzLnNlbGVjdGVkSG90ZWxUeXBlLFxuICAgICAgICAgICAgc2VsZWN0ZWREZXN0aW5hdGlvbjogdGhpcy5zZWxlY3RlZERlc3RpbmF0aW9uLFxuICAgICAgICAgICAgc2VsZWN0ZWRCcmFuZDogdGhpcy5zZWxlY3RlZEJyYW5kLFxuICAgICAgICAgICAgYWRkaXRpb25hbDFMaWtlTWFyY2E6IHRoaXMuYWRkaXRpb25hbDFMaWtlTWFyY2EgPz8gZmFsc2UsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFNpIGhheSBkZXN0aW5hdGlvblNlbGVjdGVkIHkgbm8gdGllbmUgcmVzdWx0YWRvcywgaW50ZW50YXIgZmlsdHJhciBwb3IgY291bnRyeVxuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZERlc3RpbmF0aW9uICYmIGl0ZW1zLmxlbmd0aCA9PT0gMCAmJiB0aGlzLml0ZW1zKSB7XG4gICAgICAgICAgICBpdGVtcyA9IHRoaXMuaXRlbXMuZmlsdGVyKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaG90ZWxUeXBlT2sgPVxuICAgICAgICAgICAgICAgICAgICAhdGhpcy5zZWxlY3RlZEhvdGVsVHlwZSB8fFxuICAgICAgICAgICAgICAgICAgICAoaXRlbSBhcyBhbnkpPy5ob3RlbHR5cGUgPT09IHRoaXMuc2VsZWN0ZWRIb3RlbFR5cGU7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBkZXN0aW5hdGlvbk9rID1cbiAgICAgICAgICAgICAgICAgICAgIXRoaXMuc2VsZWN0ZWREZXN0aW5hdGlvbiB8fFxuICAgICAgICAgICAgICAgICAgICBpdGVtLmNvdW50cnk/LnRvTG93ZXJDYXNlKCk/LnRyaW0oKSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREZXN0aW5hdGlvbi50b0xvd2VyQ2FzZSgpPy50cmltKCk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBicmFuZE9rID1cbiAgICAgICAgICAgICAgICAgICAgIXRoaXMuc2VsZWN0ZWRCcmFuZCB8fFxuICAgICAgICAgICAgICAgICAgICBVdGlscy50b1NsdWcoXG4gICAgICAgICAgICAgICAgICAgICAgICBnZXRJdGVtQnJhbmQoaXRlbSwgdGhpcy5hZGRpdGlvbmFsMUxpa2VNYXJjYSA/PyBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgKSA9PT0gVXRpbHMudG9TbHVnKHRoaXMuc2VsZWN0ZWRCcmFuZCk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gaG90ZWxUeXBlT2sgJiYgZGVzdGluYXRpb25PayAmJiBicmFuZE9rO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9maWx0ZXJlZEl0ZW1zUmF3ID0gaXRlbXM7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIGdldCBoYXNBY3RpdmVGaWx0ZXJzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEhvdGVsVHlwZSxcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREZXN0aW5hdGlvbixcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRCcmFuZCxcbiAgICAgICAgXS5zb21lKCh2KSA9PiB2ICYmIHYgIT09ICcnKTtcbiAgICB9XG5cbiAgICBvbkhvdGVsVHlwZUNoYW5nZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRIb3RlbFR5cGUgPSB2YWx1ZSA/PyAnJztcbiAgICAgICAgdGhpcy51cGRhdGVGaWx0ZXJlZEl0ZW1zKCk7XG4gICAgfVxuXG4gICAgb25EZXN0aW5hdGlvbkNoYW5nZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREZXN0aW5hdGlvbiA9IHZhbHVlID8/ICcnO1xuICAgICAgICB0aGlzLnVwZGF0ZUZpbHRlcmVkSXRlbXMoKTtcbiAgICB9XG5cbiAgICBvbkJyYW5kQ2hhbmdlKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEJyYW5kID0gdmFsdWUgPz8gJyc7XG4gICAgICAgIHRoaXMudXBkYXRlRmlsdGVyZWRJdGVtcygpO1xuICAgIH1cblxuICAgIGNsZWFyRmlsdGVycygpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEhvdGVsVHlwZSA9ICcnO1xuICAgICAgICB0aGlzLnNlbGVjdGVkRGVzdGluYXRpb24gPSAnJztcbiAgICAgICAgdGhpcy5zZWxlY3RlZEJyYW5kID0gJyc7XG4gICAgICAgIHRoaXMudXBkYXRlRmlsdGVyZWRJdGVtcygpO1xuICAgIH1cblxuICAgIHRyYWNrRmlsdGVyKGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgfVxuICAgIHRyYWNrT3B0aW9uKGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgfVxuICAgIHRyYWNrT2ZmZXIoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicGFnZS1jb250YWluZXIgZmlyc3QtbW9kdWxlIG9mZmVycy1wYWdlXCI+XG4gICAgPGRpdiBjbGFzcz1cImJpZy13cmFwcGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwLXBhZ2UtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8aGVhZGVyIGNsYXNzPVwiZ2xvYmFsLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwLWdsb2JhbC1oZWFkZXIgdmlzaWJsZVwiPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKHRleHRzPy50aXRsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGgxIGNsYXNzPVwiZ2xvYmFsLWhlYWRlci10aXRsZVwiPnt7IHRleHRzPy50aXRsZSB9fTwvaDE+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGlmICh0ZXh0cz8uc3VidGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJnbG9iYWwtaGVhZGVyLXN1YnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cInRleHRzPy5zdWJ0aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9wPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvZmZlcnMtaW5wdXRzXCIgKm5nSWY9XCJzaG93RmlsdGVyc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdsb2JhbC1oZWFkZXItZm9ybVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS1maWx0ZXJzLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBCcmFuZCBmaWx0ZXIgLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1mb3JtLWVsZW1lbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWVsZW1lbnQgc2VsZWN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcC1pbnB1dC1lbGVtZW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICh0ZXh0cz8ubWFyY2EpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbnB1dC1lbGVtZW50LXRleHRcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dHM/Lm1hcmNhID8/ICdtYXJjYSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1lbGVtZW50LWZpZWxkIGpzLWZpbHRlci1vZmZlcnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkQnJhbmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQnJhbmRDaGFuZ2UoJGV2ZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdGV4dHM/Lm1hcmNhID8/ICdtYXJjYScgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0IG9mIGJyYW5kT3B0aW9ucztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrICRpbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIm9wdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IG9wdCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIHNlcnZpY2VzLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1mb3JtLWVsZW1lbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWVsZW1lbnQgc2VsZWN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcC1pbnB1dC1lbGVtZW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICh0ZXh0cz8uZGVzdGluYXRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5wdXQtZWxlbWVudC10ZXh0XCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRzPy5kZXN0aW5hdGlvbnMgPz9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVzdGlub3MnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZWxlbWVudC1maWVsZCBqcy1maWx0ZXItb2ZmZXJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZERlc3RpbmF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkRlc3RpbmF0aW9uQ2hhbmdlKCRldmVudClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dHM/LmRlc3RpbmF0aW9ucyA/P1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVzdGlub3MnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHQgb2YgZGVzdGluYXRpb25PcHRpb25zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2sgJGluZGV4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwib3B0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgb3B0IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS1lbmQgZmlsdGVycy0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9oZWFkZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG48c2VjdGlvbiBjbGFzcz1cInByb21vLW1vZHVsZSBvZmZlcnMtcGFnZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJiaWctd3JhcHBlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcC1wcm9tby1tb2R1bGUgbW9kdWxlLXNwYWNlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb21vLW1vZHVsZS1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgQGlmIChmaWx0ZXJlZEl0ZW1zPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBmaWx0ZXJlZEl0ZW1zOyB0cmFjayB0cmFja09mZmVyKCRpbmRleCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9tby1tb2R1bGUtZWxlbWVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwLXByb21vLWVsZW1lbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cImdldEJ1dHRvblVybChpdGVtLCAxKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwiZ2V0QnV0dG9uTGlua1R5cGUoaXRlbSwgMSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9tby1lbGVtZW50LW1lZGlhIGpzLXNlY3Rpb24tYXJyb3dzLXpvbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaW1hZ2VzVG9TaG93WyRpbmRleF0/LmltZz8uc3JjKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWd1cmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvbW8tZWxlbWVudC1tZWRpYV9pbWcgcmVzcG9uc2l2ZS1yZXNpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImltZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlc1RvU2hvd1skaW5kZXhdPy5pbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPy5hbHQgPz8gJ2l0ZW1JbWFnZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWZpbGVuYW1lXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlc1RvU2hvd1skaW5kZXhdPy5pbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPy5hbHQgPz8gJ2l0ZW1GaWxlTmFtZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1pbWFnZV09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndXJsKCcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlc1RvU2hvd1skaW5kZXhdPy5pbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPy5zcmMgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcpJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZmlndXJlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb21vLWVsZW1lbnQtaW5mb1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbT8udGV4dHM/LmFkZGl0aW9uYWwzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb21vLWVsZW1lbnQtaW5mb190YWdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbT8udGV4dHM/LmFkZGl0aW9uYWwzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0/LnRleHRzPy50aXRsZSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtPy50ZXh0cz8ubmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9tby1lbGVtZW50LWluZm9fdGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtPy50ZXh0cz8udGl0bGUgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtPy50ZXh0cz8ubmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpdGVtPy50ZXh0cz8uYWRkaXRpb25hbDIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvbW8tZWxlbWVudC1pbmZvX3N1YnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbT8udGV4dHM/LmFkZGl0aW9uYWwyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9tby1lbGVtZW50LWZvb3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9tby1lbGVtZW50LXByaWNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGl0ZW0/LnByaWNlIHx8IGl0ZW0/LmRpc2NvdW50KSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtPy50ZXh0cz8uYWRkaXRpb25hbDFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvbW8tZWxlbWVudC1wcmljZV9zaW5jZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtPy50ZXh0cz8uYWRkaXRpb25hbDFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpdGVtPy5wcmljZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9tby1lbGVtZW50LXByaWNlX251bVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0/LnByaWNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTxzbWFsbD57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0/LmN1cnJlbmN5IHx8ICdFVVInXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgY3VycmVuY3lTeW1ib2xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zbWFsbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uZGlzY291bnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvbW8tZWxlbWVudC1wcmljZV9udW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtPy5kaXNjb3VudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08c21hbGw+ICU8L3NtYWxsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvbW8tZWxlbWVudC1idG5zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChnZXRCdXR0b25MYWJlbChpdGVtLCAwKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWNvcnBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldEJ1dHRvblVybChpdGVtLCAwKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtUeXBlXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRCdXR0b25MaW5rVHlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWNvcnAtdGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0QnV0dG9uTGFiZWwoaXRlbSwgMClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChnZXRCdXR0b25MYWJlbChpdGVtLCAxKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiZ2V0QnV0dG9uVXJsKGl0ZW0sIDEpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRCdXR0b25MaW5rVHlwZShpdGVtLCAxKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWxpbmtlciB0b3JpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1saW5rZXItdGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0QnV0dG9uTGFiZWwoaXRlbSwgMSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib2ZmZXJzLW1lc3NhZ2VcIiBbY2xhc3Muc2hvd109XCJmaWx0ZXJlZEl0ZW1zPy5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcC1tZXNzYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAodGV4dHM/Lm5vdEZvdW5kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWVzc2FnZS10ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cInRleHRzPy5ub3RGb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9wPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZW1wLXRyYXNoXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9zZWN0aW9uPlxuIl19
245
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzLWMzLWltZy10eHQtY3RhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhYnlsb24vc3JjL2xpYi9jb21wb25lbnRzL2V4dGVybmFsL2NvcmUvbGlzLWMzLWltZy10eHQtY3RhL2xpcy1jMy1pbWctdHh0LWN0YS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9leHRlcm5hbC9jb3JlL2xpcy1jMy1pbWctdHh0LWN0YS9saXMtYzMtaW1nLXR4dC1jdGEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFNaEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUNILGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsWUFBWSxHQUNmLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFeEYsT0FBTyxFQUNILGlCQUFpQixHQUtwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHakQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pG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LElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsWUFBWTtRQUNSLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWE7UUFDckIsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUNELFdBQVcsQ0FBQyxLQUFhO1FBQ3JCLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxVQUFVLENBQUMsS0FBYTtRQUNwQixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOytHQXZSUSx1QkFBdUI7bUdBQXZCLHVCQUF1QiwrUUM1Q3BDLDh3YkF5UEEsayt0MkJEdE5RLFlBQVksbUlBQ1osd0JBQXdCLDhKQUN4QixtQkFBbUIsc0RBQ25CLFdBQVc7OzRGQU1OLHVCQUF1QjtrQkFibkMsU0FBUzsrQkFDSSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQO3dCQUNMLFlBQVk7d0JBQ1osd0JBQXdCO3dCQUN4QixtQkFBbUI7d0JBQ25CLFdBQVc7cUJBQ2QsaUJBR2MsaUJBQWlCLENBQUMsUUFBUTs4QkFHaEMsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmFieWxvbkxpbmtUeXBlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGlyZWN0aXZlcy9saW5rLXR5cGUvbGluay10eXBlLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1xuICAgIEJhYnlsb25CdXR0b25JLFxuICAgIEJhYnlsb25JbWFnZUksXG4gICAgQmFieWxvblRleHRJbmZvSSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBCYWJ5bG9uQ3VycmVuY3lQaXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vcGlwZXMvYmFieWxvbi1jdXJyZW5jeS5waXBlJztcbmltcG9ydCB7XG4gICAgYnVpbGRGaWx0ZXJPcHRpb25zLFxuICAgIGZpbHRlcmVkSXRlbXMsXG4gICAgZ2V0SXRlbUJyYW5kLFxufSBmcm9tICcuLi8uLi8uLi8uLi91dGlscy9maWx0ZXIudXRpbHMnO1xuaW1wb3J0IHsgZ2V0Rmlyc3RJbWFnZUJ5VGFnRnJvbU11bHRpbWVkaWFSYXcgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscy9tdXRpbWVkaWEudXRpbHMnO1xuXG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCYWJ5bG9uR2xvYmFsSXRlbSB9IGZyb20gJy4uLy4uLy4uLy4uL2ludGVyZmFjZXMvYmFieWxvbi1nbG9iYWwtaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscyc7XG5pbXBvcnQgeyBnZXRGaXJzdEltYWdlQnlUYWdGcm9tSW1hZ2VzIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMvbXV0aW1lZGlhLnV0aWxzJztcbmltcG9ydCB7IG5vcm1hbGl6ZUdsb2JhbEl0ZW1zIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMvbm9ybWFsaXplLWl0ZW1zLnV0aWxzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsaXMtYzMtaW1nLXR4dC1jdGEnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEJhYnlsb25MaW5rVHlwZURpcmVjdGl2ZSxcbiAgICAgICAgQmFieWxvbkN1cnJlbmN5UGlwZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGlzLWMzLWltZy10eHQtY3RhLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vbGlzLWMzLWltZy10eHQtY3RhLmNvbXBvbmVudC5zY3NzJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZCxcbn0pXG5leHBvcnQgY2xhc3MgTGlzQzNJbWdUeHRDdGFDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSB0ZXh0cz86IEJhYnlsb25UZXh0SW5mb0k7XG4gICAgQElucHV0KCkgaXRlbXM/OiBCYWJ5bG9uR2xvYmFsSXRlbVtdO1xuICAgIEBJbnB1dCgpIGxpbmtzPzogQmFieWxvbkJ1dHRvbklbXTtcbiAgICBASW5wdXQoKSBhZGRpdGlvbmFsMUxpa2VNYXJjYT86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBzaG93Q2xlYW5GaWx0ZXJzOiBib29sZWFuID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBzaG93RmlsdGVyczogYm9vbGVhbiA9IHRydWU7XG5cbiAgICB0YWdOYW1lOiBzdHJpbmcgPSAnTGlzQzNJbWdUeHRDdGEnO1xuXG4gICAgc2VsZWN0ZWRIb3RlbFR5cGU6IHN0cmluZyA9ICcnO1xuICAgIHNlbGVjdGVkRGVzdGluYXRpb246IHN0cmluZyA9ICcnO1xuICAgIHNlbGVjdGVkQnJhbmQ6IHN0cmluZyA9ICcnO1xuXG4gICAgaG90ZWxUeXBlT3B0aW9uczogc3RyaW5nW10gPSBbXTtcbiAgICBkZXN0aW5hdGlvbk9wdGlvbnM6IHN0cmluZ1tdID0gW107XG4gICAgYnJhbmRPcHRpb25zOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgZmlsdGVyTGFiZWxUb1NsdWcgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICAgIGRlc3RpbmF0aW9uTGFiZWxUb1NsdWcgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICAgIGJyYW5kTGFiZWxUb1NsdWcgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuXG4gICAgcHJpdmF0ZSByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG4gICAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIHByaXZhdGUgcXBTdWI/OiBTdWJzY3JpcHRpb247XG4gICAgcHJpdmF0ZSBwZW5kaW5nRGVzdGluYXRpb24/OiBzdHJpbmc7XG5cbiAgICAvLyBJdGVtcyBmaWx0cmFkb3Mgc2luIG5vcm1hbGl6YXIgKHVzYWRvcyBwYXJhIGzDs2dpY2EpXG4gICAgcHJpdmF0ZSBfZmlsdGVyZWRJdGVtc1JhdzogQmFieWxvbkdsb2JhbEl0ZW1bXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogRGV2dWVsdmUgbGFzIGltw6FnZW5lcyBzaW5jcm9uaXphZGFzIGNvbiBmaWx0ZXJlZEl0ZW1zLCBldml0YW5kbyBpbmNvbmdydWVuY2lhcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGltYWdlc1RvU2hvdygpOiBhbnlbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlcmVkSXRlbXMubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEZyb21NdWx0aW1lZGlhID0gdGhpcy5nZXRGaXJzdEltYWdlQnlUYWcoXG4gICAgICAgICAgICAgICAgdGhpcy50YWdOYW1lLFxuICAgICAgICAgICAgICAgIGl0ZW0/Lm11bHRpbWVkaWE/LmltYWdlbmVzID8/IFtdXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRGcm9tSW1hZ2VzID0gdGhpcy5nZXRGaXJzdEltYWdlQnlUYWcoXG4gICAgICAgICAgICAgICAgdGhpcy50YWdOYW1lLFxuICAgICAgICAgICAgICAgIGl0ZW0/LmltYWdlcyA/PyBbXVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPVxuICAgICAgICAgICAgICAgIHNlbGVjdGVkRnJvbU11bHRpbWVkaWEgPz9cbiAgICAgICAgICAgICAgICBzZWxlY3RlZEZyb21JbWFnZXMgPz9cbiAgICAgICAgICAgICAgICBnZXRGaXJzdEltYWdlQnlUYWdGcm9tTXVsdGltZWRpYVJhdyhcbiAgICAgICAgICAgICAgICAgICAgaXRlbT8ubXVsdGltZWRpYSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWdOYW1lXG4gICAgICAgICAgICAgICAgKSA/P1xuICAgICAgICAgICAgICAgIGl0ZW0/Lm11bHRpbWVkaWE/LmltYWdlbmVzPy5bMF0gPz9cbiAgICAgICAgICAgICAgICBpdGVtPy5pbWFnZXM/LlswXSA/P1xuICAgICAgICAgICAgICAgIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaW5kQW5kU2VsZWN0RGVzdGluYXRpb24oZGVzdGluYXRpb25OYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZE5hbWUgPSBkZXN0aW5hdGlvbk5hbWUudG9Mb3dlckNhc2UoKT8udHJpbSgpO1xuXG4gICAgICAgIC8vIFByaW1lcm8gYnVzY2FyIGVuIGVsIGFycmF5IGRlIHN0cmluZ3MgZGUgZGVzdGlub3NcbiAgICAgICAgbGV0IGZvdW5kID0gdGhpcy5kZXN0aW5hdGlvbk9wdGlvbnM/LmZpbmQoXG4gICAgICAgICAgICAoZGVzdGluYXRpb24pID0+XG4gICAgICAgICAgICAgICAgZGVzdGluYXRpb24udG9Mb3dlckNhc2UoKT8udHJpbSgpID09PSBub3JtYWxpemVkTmFtZVxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChmb3VuZCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERlc3RpbmF0aW9uID0gZm91bmQ7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUZpbHRlcmVkSXRlbXMoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNpIG5vIGVuY3VlbnRyYSBlbiBkZXN0aW5hdGlvbk9wdGlvbnMsIGJ1c2NhciBlbiBsb3MgaXRlbXMgcG9yIGNvdW50cnlcbiAgICAgICAgY29uc3QgaXRlbVdpdGhDb3VudHJ5ID0gdGhpcy5pdGVtcz8uZmluZChcbiAgICAgICAgICAgIChpdGVtKSA9PiBpdGVtLmNvdW50cnk/LnRvTG93ZXJDYXNlKCk/LnRyaW0oKSA9PT0gbm9ybWFsaXplZE5hbWVcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoaXRlbVdpdGhDb3VudHJ5ICYmIGl0ZW1XaXRoQ291bnRyeS5jb3VudHJ5KSB7XG4gICAgICAgICAgICAvLyBGaWx0cmFyIGRpcmVjdGFtZW50ZSBwb3IgY291bnRyeSBhdW5xdWUgbm8gZXhpc3RhIGVuIGRlc3RpbmF0aW9uT3B0aW9uc1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERlc3RpbmF0aW9uID0gaXRlbVdpdGhDb3VudHJ5LmNvdW50cnk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUZpbHRlcmVkSXRlbXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERldnVlbHZlIGVsIGxhYmVsIGRlbCBib3TDs24gZW4gbGEgcG9zaWNpw7NuIGluZGV4LCBidXNjYW5kbyBlbiBpdGVtLmJ1dHRvbnNbaW5kZXhdLmxhYmVsXG4gICAgICogeSBzaSBubyBleGlzdGUsIGVuIGl0ZW0ubXVsdGltZWRpYS5pbWFnZW5lc1swXS5idXR0b25zW2luZGV4XS5sYWJlbFxuICAgICAqL1xuICAgIGdldEJ1dHRvbkxhYmVsKGl0ZW06IEJhYnlsb25HbG9iYWxJdGVtLCBpbmRleDogbnVtYmVyKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKGl0ZW0/LmJ1dHRvbnM/LltpbmRleF0/LmxhYmVsKSB7XG4gICAgICAgICAgICByZXR1cm4gaXRlbS5idXR0b25zW2luZGV4XS5sYWJlbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXRlbT8ubXVsdGltZWRpYT8uaW1hZ2VuZXM/LlswXT8uYnV0dG9ucz8uW2luZGV4XT8ubGFiZWw7XG4gICAgfVxuXG4gICAgZ2V0QnV0dG9uVXJsKGl0ZW06IEJhYnlsb25HbG9iYWxJdGVtLCBpbmRleDogbnVtYmVyKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuYnVpbGRNZW51VXJsKGl0ZW0/LmJ1dHRvbnM/LltpbmRleF0pIHx8XG4gICAgICAgICAgICB0aGlzLmJ1aWxkTWVudVVybChpdGVtPy5tdWx0aW1lZGlhPy5pbWFnZW5lcz8uWzBdPy5idXR0b25zPy5baW5kZXhdKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldEJ1dHRvbkxpbmtUeXBlKGl0ZW06IEJhYnlsb25HbG9iYWxJdGVtLCBpbmRleDogbnVtYmVyKTogYW55IHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGl0ZW0/LmJ1dHRvbnM/LltpbmRleF0/LmxpbmtUeXBlID8/XG4gICAgICAgICAgICBpdGVtPy5tdWx0aW1lZGlhPy5pbWFnZW5lcz8uWzBdPy5idXR0b25zPy5baW5kZXhdPy5saW5rVHlwZVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGJ1aWxkTWVudVVybChpdGVtOiBCYWJ5bG9uQnV0dG9uSSB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gICAgICAgIGlmICghaXRlbT8udXJsKSByZXR1cm4gJyc7XG5cbiAgICAgICAgY29uc3QgYmFzZVVybCA9IGl0ZW0udXJsLnJlcGxhY2UoL1xcLyskLywgJycpO1xuICAgICAgICBjb25zdCBkZXN0aW5hdGlvbiA9IChpdGVtLnZhcnMgPz8gJycpLnRvU3RyaW5nKCk/LnRyaW0oKTtcblxuICAgICAgICBpZiAoIWRlc3RpbmF0aW9uKSByZXR1cm4gYmFzZVVybDtcblxuICAgICAgICBjb25zdCBzbHVnID0gVXRpbHMudG9TbHVnKGRlc3RpbmF0aW9uKTtcbiAgICAgICAgaWYgKCFzbHVnKSByZXR1cm4gYmFzZVVybDtcblxuICAgICAgICByZXR1cm4gYCR7YmFzZVVybH0/ZGVzdGluYXRpb25zPSR7ZGVzdGluYXRpb259YDtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzWydpdGVtcyddKSB7XG4gICAgICAgICAgICBjb25zdCBvcHRzID0gYnVpbGRGaWx0ZXJPcHRpb25zKFxuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMgPz8gW10sXG4gICAgICAgICAgICAgICAgdGhpcy5hZGRpdGlvbmFsMUxpa2VNYXJjYSA/PyBmYWxzZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuaG90ZWxUeXBlT3B0aW9ucyA9IG9wdHMuaG90ZWxUeXBlT3B0aW9ucztcbiAgICAgICAgICAgIHRoaXMuZGVzdGluYXRpb25PcHRpb25zID0gb3B0cy5kZXN0aW5hdGlvbk9wdGlvbnM7XG5cbiAgICAgICAgICAgIC8vIFJlbGxlbmFyIGJyYW5kT3B0aW9ucyB1c2FuZG8gZ2V0SXRlbUJyYW5kIHBhcmEgY29oZXJlbmNpYVxuICAgICAgICAgICAgY29uc3QgYnJhbmRzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgICAgICAgICAodGhpcy5pdGVtcyA/PyBbXSkuZm9yRWFjaCgoaXQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBicmFuZCA9IGdldEl0ZW1CcmFuZChcbiAgICAgICAgICAgICAgICAgICAgaXQsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkaXRpb25hbDFMaWtlTWFyY2EgPz8gZmFsc2VcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGlmIChicmFuZCkgYnJhbmRzLmFkZChicmFuZCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuYnJhbmRPcHRpb25zID0gQXJyYXkuZnJvbShicmFuZHMpO1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJMYWJlbFRvU2x1ZyA9IG9wdHMuZmlsdGVyTGFiZWxUb1NsdWc7XG4gICAgICAgICAgICB0aGlzLmRlc3RpbmF0aW9uTGFiZWxUb1NsdWcgPSBvcHRzLmRlc3RpbmF0aW9uTGFiZWxUb1NsdWc7XG4gICAgICAgICAgICB0aGlzLmJyYW5kTGFiZWxUb1NsdWcgPSBvcHRzLmJyYW5kTGFiZWxUb1NsdWc7XG5cbiAgICAgICAgICAgIC8vIFNvbG8gcmVzZXRlYXIgc2kgbm8gaGF5IHVuIGRlc3Rpbm8gcGVuZGllbnRlIGRlIGxhIFVSTFxuICAgICAgICAgICAgaWYgKCF0aGlzLnBlbmRpbmdEZXN0aW5hdGlvbikge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRIb3RlbFR5cGUgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGVzdGluYXRpb24gPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkQnJhbmQgPSAnJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gU2kgaGF5IHVuIGRlc3Rpbm8gcGVuZGllbnRlIGRlIGxhIFVSTCwgaW50ZW50YSBzZWxlY2Npb25hcmxvIGFob3JhXG4gICAgICAgICAgICAgICAgdGhpcy5maW5kQW5kU2VsZWN0RGVzdGluYXRpb24odGhpcy5wZW5kaW5nRGVzdGluYXRpb24pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBBY3R1YWxpemFyIGl0ZW1zIGZpbHRyYWRvc1xuICAgICAgICAgICAgdGhpcy51cGRhdGVGaWx0ZXJlZEl0ZW1zKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gU3VzY3JpYmlyc2UgYSBsb3MgY2FtYmlvcyBkZSBxdWVyeSBwYXJhbXNcbiAgICAgICAgdGhpcy5xcFN1YiA9IHRoaXMucm91dGUucXVlcnlQYXJhbU1hcC5zdWJzY3JpYmUoKHBhcmFtcykgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGVzdGluYXRpb25zUGFyYW0gPSBwYXJhbXMuZ2V0KCdkZXN0aW5hdGlvbnMnKTtcblxuICAgICAgICAgICAgaWYgKGRlc3RpbmF0aW9uc1BhcmFtKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVjb2RlZERlc3RpbmF0aW9uID1cbiAgICAgICAgICAgICAgICAgICAgZGVjb2RlVVJJQ29tcG9uZW50KGRlc3RpbmF0aW9uc1BhcmFtKTtcbiAgICAgICAgICAgICAgICB0aGlzLnBlbmRpbmdEZXN0aW5hdGlvbiA9IGRlY29kZWREZXN0aW5hdGlvbjtcblxuICAgICAgICAgICAgICAgIC8vIFNpIHlhIHRlbmVtb3MgZGVzdGluYXRpb25PcHRpb25zLCBidXNjYXIgeSBzZWxlY2Npb25hclxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXN0aW5hdGlvbk9wdGlvbnMgJiZcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXN0aW5hdGlvbk9wdGlvbnMubGVuZ3RoID4gMFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbmRBbmRTZWxlY3REZXN0aW5hdGlvbihkZWNvZGVkRGVzdGluYXRpb24pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnFwU3ViPy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERldnVlbHZlIHVuIGFycmF5IG5vcm1hbGl6YWRvIGRlIEJhYnlsb25HbG9iYWxJdGVtXG4gICAgICovXG4gICAgZ2V0IG5vcm1hbGl6ZWRJdGVtcygpOiBCYWJ5bG9uR2xvYmFsSXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZUdsb2JhbEl0ZW1zKHRoaXMuaXRlbXMpO1xuICAgIH1cblxuICAgIGdldEZpcnN0SW1hZ2VCeVRhZyh0YWdOYW1lOiBzdHJpbmcsIGltYWdlbmVzOiBCYWJ5bG9uSW1hZ2VJW10pIHtcbiAgICAgICAgcmV0dXJuIGdldEZpcnN0SW1hZ2VCeVRhZ0Zyb21JbWFnZXMoaW1hZ2VuZXMsIHRhZ05hbWUpO1xuICAgIH1cblxuICAgIGdldCBmaWx0ZXJlZEl0ZW1zKCkge1xuICAgICAgICAvLyBEZXZvbHZlciBsb3MgaXRlbXMgZmlsdHJhZG9zIG5vcm1hbGl6YWRvc1xuICAgICAgICByZXR1cm4gbm9ybWFsaXplR2xvYmFsSXRlbXModGhpcy5fZmlsdGVyZWRJdGVtc1Jhdyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVGaWx0ZXJlZEl0ZW1zKCk6IHZvaWQge1xuICAgICAgICBsZXQgaXRlbXMgPSBmaWx0ZXJlZEl0ZW1zKHtcbiAgICAgICAgICAgIGl0ZW1zOiB0aGlzLml0ZW1zID8/IFtdLFxuICAgICAgICAgICAgc2VsZWN0ZWRIb3RlbFR5cGU6IHRoaXMuc2VsZWN0ZWRIb3RlbFR5cGUsXG4gICAgICAgICAgICBzZWxlY3RlZERlc3RpbmF0aW9uOiB0aGlzLnNlbGVjdGVkRGVzdGluYXRpb24sXG4gICAgICAgICAgICBzZWxlY3RlZEJyYW5kOiB0aGlzLnNlbGVjdGVkQnJhbmQsXG4gICAgICAgICAgICBhZGRpdGlvbmFsMUxpa2VNYXJjYTogdGhpcy5hZGRpdGlvbmFsMUxpa2VNYXJjYSA/PyBmYWxzZSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gU2kgaGF5IGRlc3RpbmF0aW9uU2VsZWN0ZWQgeSBubyB0aWVuZSByZXN1bHRhZG9zLCBpbnRlbnRhciBmaWx0cmFyIHBvciBjb3VudHJ5XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkRGVzdGluYXRpb24gJiYgaXRlbXMubGVuZ3RoID09PSAwICYmIHRoaXMuaXRlbXMpIHtcbiAgICAgICAgICAgIGl0ZW1zID0gdGhpcy5pdGVtcy5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBob3RlbFR5cGVPayA9XG4gICAgICAgICAgICAgICAgICAgICF0aGlzLnNlbGVjdGVkSG90ZWxUeXBlIHx8XG4gICAgICAgICAgICAgICAgICAgIChpdGVtIGFzIGFueSk/LmhvdGVsdHlwZSA9PT0gdGhpcy5zZWxlY3RlZEhvdGVsVHlwZTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGRlc3RpbmF0aW9uT2sgPVxuICAgICAgICAgICAgICAgICAgICAhdGhpcy5zZWxlY3RlZERlc3RpbmF0aW9uIHx8XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uY291bnRyeT8udG9Mb3dlckNhc2UoKT8udHJpbSgpID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERlc3RpbmF0aW9uLnRvTG93ZXJDYXNlKCk/LnRyaW0oKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGJyYW5kT2sgPVxuICAgICAgICAgICAgICAgICAgICAhdGhpcy5zZWxlY3RlZEJyYW5kIHx8XG4gICAgICAgICAgICAgICAgICAgIFV0aWxzLnRvU2x1ZyhcbiAgICAgICAgICAgICAgICAgICAgICAgIGdldEl0ZW1CcmFuZChpdGVtLCB0aGlzLmFkZGl0aW9uYWwxTGlrZU1hcmNhID8/IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICApID09PSBVdGlscy50b1NsdWcodGhpcy5zZWxlY3RlZEJyYW5kKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBob3RlbFR5cGVPayAmJiBkZXN0aW5hdGlvbk9rICYmIGJyYW5kT2s7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2ZpbHRlcmVkSXRlbXNSYXcgPSBpdGVtcztcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0FjdGl2ZUZpbHRlcnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSG90ZWxUeXBlLFxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERlc3RpbmF0aW9uLFxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEJyYW5kLFxuICAgICAgICBdLnNvbWUoKHYpID0+IHYgJiYgdiAhPT0gJycpO1xuICAgIH1cblxuICAgIG9uSG90ZWxUeXBlQ2hhbmdlKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEhvdGVsVHlwZSA9IHZhbHVlID8/ICcnO1xuICAgICAgICB0aGlzLnVwZGF0ZUZpbHRlcmVkSXRlbXMoKTtcbiAgICB9XG5cbiAgICBvbkRlc3RpbmF0aW9uQ2hhbmdlKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZERlc3RpbmF0aW9uID0gdmFsdWUgPz8gJyc7XG4gICAgICAgIHRoaXMudXBkYXRlRmlsdGVyZWRJdGVtcygpO1xuICAgIH1cblxuICAgIG9uQnJhbmRDaGFuZ2UodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkQnJhbmQgPSB2YWx1ZSA/PyAnJztcbiAgICAgICAgdGhpcy51cGRhdGVGaWx0ZXJlZEl0ZW1zKCk7XG4gICAgfVxuXG4gICAgY2xlYXJGaWx0ZXJzKCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSG90ZWxUeXBlID0gJyc7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREZXN0aW5hdGlvbiA9ICcnO1xuICAgICAgICB0aGlzLnNlbGVjdGVkQnJhbmQgPSAnJztcbiAgICAgICAgdGhpcy51cGRhdGVGaWx0ZXJlZEl0ZW1zKCk7XG4gICAgfVxuXG4gICAgdHJhY2tGaWx0ZXIoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG4gICAgdHJhY2tPcHRpb24oaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG4gICAgdHJhY2tPZmZlcihpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwYWdlLWNvbnRhaW5lciBmaXJzdC1tb2R1bGUgb2ZmZXJzLXBhZ2VcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYmlnLXdyYXBwZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIndyYXAtcGFnZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxoZWFkZXIgY2xhc3M9XCJnbG9iYWwtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXAtZ2xvYmFsLWhlYWRlciB2aXNpYmxlXCI+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAodGV4dHM/LnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDEgY2xhc3M9XCJnbG9iYWwtaGVhZGVyLXRpdGxlXCI+e3sgdGV4dHM/LnRpdGxlIH19PC9oMT5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKHRleHRzPy5zdWJ0aXRsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImdsb2JhbC1oZWFkZXItc3VidGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwidGV4dHM/LnN1YnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3A+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9mZmVycy1pbnB1dHNcIiAqbmdJZj1cInNob3dGaWx0ZXJzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ2xvYmFsLWhlYWRlci1mb3JtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLWZpbHRlcnMtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIEJyYW5kIGZpbHRlciAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWZvcm0tZWxlbWVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZWxlbWVudCBzZWxlY3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwLWlucHV0LWVsZW1lbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHRleHRzPy5tYXJjYSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImlucHV0LWVsZW1lbnQtdGV4dFwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0cz8ubWFyY2EgPz8gJ21hcmNhJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImlucHV0LWVsZW1lbnQtZmllbGQganMtZmlsdGVyLW9mZmVyc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRCcmFuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25CcmFuZENoYW5nZSgkZXZlbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB0ZXh0cz8ubWFyY2EgPz8gJ21hcmNhJyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHQgb2YgYnJhbmRPcHRpb25zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2sgJGluZGV4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwib3B0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgb3B0IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gc2VydmljZXMtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWZvcm0tZWxlbWVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZWxlbWVudCBzZWxlY3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwLWlucHV0LWVsZW1lbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHRleHRzPy5kZXN0aW5hdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbnB1dC1lbGVtZW50LXRleHRcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dHM/LmRlc3RpbmF0aW9ucyA/P1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXN0aW5vcydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1lbGVtZW50LWZpZWxkIGpzLWZpbHRlci1vZmZlcnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRGVzdGluYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRGVzdGluYXRpb25DaGFuZ2UoJGV2ZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0cz8uZGVzdGluYXRpb25zID8/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXN0aW5vcydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdCBvZiBkZXN0aW5hdGlvbk9wdGlvbnM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjayAkaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCJvcHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBvcHQgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLWVuZCBmaWx0ZXJzLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2hlYWRlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxzZWN0aW9uIGNsYXNzPVwicHJvbW8tbW9kdWxlIG9mZmVycy1wYWdlXCI+XG4gICAgPGRpdiBjbGFzcz1cImJpZy13cmFwcGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwLXByb21vLW1vZHVsZSBtb2R1bGUtc3BhY2VyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvbW8tbW9kdWxlLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICBAaWYgKGZpbHRlcmVkSXRlbXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGZpbHRlcmVkSXRlbXM7IHRyYWNrIHRyYWNrT2ZmZXIoJGluZGV4KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb21vLW1vZHVsZS1lbGVtZW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXAtcHJvbW8tZWxlbWVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiZ2V0QnV0dG9uVXJsKGl0ZW0sIDEpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJnZXRCdXR0b25MaW5rVHlwZShpdGVtLCAxKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb21vLWVsZW1lbnQtbWVkaWEganMtc2VjdGlvbi1hcnJvd3Mtem9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpbWFnZXNUb1Nob3dbJGluZGV4XT8uaW1nPy5zcmMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpZ3VyZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9tby1lbGVtZW50LW1lZGlhX2ltZyByZXNwb25zaXZlLXJlc2l6ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiaW1nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VzVG9TaG93WyRpbmRleF0/LmltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/LmFsdCA/PyAnaXRlbUltYWdlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtZmlsZW5hbWVdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VzVG9TaG93WyRpbmRleF0/LmltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/LmFsdCA/PyAnaXRlbUZpbGVOYW1lJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWltYWdlXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1cmwoJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VzVG9TaG93WyRpbmRleF0/LmltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/LnNyYyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyknXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9maWd1cmU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvbW8tZWxlbWVudC1pbmZvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpdGVtPy50ZXh0cz8uYWRkaXRpb25hbDMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvbW8tZWxlbWVudC1pbmZvX3RhZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtPy50ZXh0cz8uYWRkaXRpb25hbDNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbT8udGV4dHM/LnRpdGxlIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0/LnRleHRzPy5uYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb21vLWVsZW1lbnQtaW5mb190aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0/LnRleHRzPy50aXRsZSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0/LnRleHRzPy5uYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0/LnRleHRzPy5hZGRpdGlvbmFsMikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9tby1lbGVtZW50LWluZm9fc3VidGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtPy50ZXh0cz8uYWRkaXRpb25hbDJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb21vLWVsZW1lbnQtZm9vdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb21vLWVsZW1lbnQtcHJpY2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaXRlbT8ucHJpY2UgfHwgaXRlbT8uZGlzY291bnQpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0/LnRleHRzPy5hZGRpdGlvbmFsMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9tby1lbGVtZW50LXByaWNlX3NpbmNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0/LnRleHRzPy5hZGRpdGlvbmFsMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0/LnByaWNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb21vLWVsZW1lbnQtcHJpY2VfbnVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbT8ucHJpY2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PHNtYWxsPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbT8uY3VycmVuY3kgfHwgJ0VVUidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBjdXJyZW5jeVN5bWJvbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NtYWxsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5kaXNjb3VudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9tby1lbGVtZW50LXByaWNlX251bVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0/LmRpc2NvdW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTxzbWFsbD4gJTwvc21hbGw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9tby1lbGVtZW50LWJ0bnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGdldEJ1dHRvbkxhYmVsKGl0ZW0sIDApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4tY29ycFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0QnV0dG9uVXJsKGl0ZW0sIDApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldEJ1dHRvbkxpbmtUeXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4tY29ycC10ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRCdXR0b25MYWJlbChpdGVtLCAwKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGdldEJ1dHRvbkxhYmVsKGl0ZW0sIDEpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJnZXRCdXR0b25VcmwoaXRlbSwgMSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtUeXBlXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldEJ1dHRvbkxpbmtUeXBlKGl0ZW0sIDEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4tbGlua2VyIHRvcmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWxpbmtlci10ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRCdXR0b25MYWJlbChpdGVtLCAxKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvZmZlcnMtbWVzc2FnZVwiIFtjbGFzcy5zaG93XT1cImZpbHRlcmVkSXRlbXM/Lmxlbmd0aFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwLW1lc3NhZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAgQGlmICh0ZXh0cz8ubm90Rm91bmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtZXNzYWdlLXRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwidGV4dHM/Lm5vdEZvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3A+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRlbXAtdHJhc2hcIj48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L3NlY3Rpb24+XG4iXX0=
@@ -35192,11 +35192,12 @@ class LisC3ImgTxtCtaComponent {
35192
35192
  return item?.multimedia?.imagenes?.[0]?.buttons?.[index]?.label;
35193
35193
  }
35194
35194
  getButtonUrl(item, index) {
35195
- return (this.buildMenuUrl(item?.multimedia?.imagenes?.[0]?.buttons?.[index]) || this.buildMenuUrl(item?.buttons?.[index]));
35195
+ return (this.buildMenuUrl(item?.buttons?.[index]) ||
35196
+ this.buildMenuUrl(item?.multimedia?.imagenes?.[0]?.buttons?.[index]));
35196
35197
  }
35197
35198
  getButtonLinkType(item, index) {
35198
- return (item?.multimedia?.imagenes?.[0]?.buttons?.[index]?.linkType ||
35199
- item?.buttons?.[index]?.linkType);
35199
+ return (item?.buttons?.[index]?.linkType ??
35200
+ item?.multimedia?.imagenes?.[0]?.buttons?.[index]?.linkType);
35200
35201
  }
35201
35202
  buildMenuUrl(item) {
35202
35203
  if (!item?.url)