ctt-puro 0.46.26 → 0.46.28

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.
@@ -36,7 +36,7 @@ export class PuroHeaderComponent {
36
36
  }
37
37
  }
38
38
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
39
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroHeaderComponent, isStandalone: true, selector: "lib-puro-header", inputs: { titleMenu: "titleMenu", titleLang: "titleLang", navLinks: "navLinks", bottomLinks: "bottomLinks", siteId: "siteId", isHotelsPage: "isHotelsPage", btnBook: "btnBook", btnCheckinOnline: "btnCheckinOnline", btnCheckin: "btnCheckin", isDynamic: "isDynamic", logoHotel: "logoHotel", linkHotel: "linkHotel", hotelBrand: "hotelBrand" }, outputs: { btnClick: "btnClick", btnClickCheckin: "btnClickCheckin", btnClickCheckinOnline: "btnClickCheckinOnline" }, providers: [PuroActiveModalDirective], ngImport: i0, template: "<header class=\"header\" navSticky [isDynamic]=\"isDynamic\">\n <div class=\"header__logo\">\n @if (logoHotel) {\n <a [href]=\"linkHotel\" linkType=\"internal\">\n <img\n [ngSrc]=\"logoHotel\"\n alt=\"Logo\"\n width=\"301\"\n height=\"32\"\n class=\"header__logo--img\"\n priority\n />\n </a>\n } @else {\n <a [href]=\"navLinks?.[0]?.url\" [linkType]=\"navLinks?.[0]?.linkType\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"301\"\n height=\"32\"\n class=\"header__logo--img\"\n >\n @if (siteId === SITE_HOTELS) {\n <use href=\"#puro-logo\"></use>\n }\n @if (siteId === SITE_BEACH) {\n <use href=\"#purobeach-logo\"></use>\n }\n @if (siteId === SITE_GROUP) {\n <use href=\"#purogroup-logo\"></use>\n }\n </svg>\n </a>\n }\n </div>\n <div class=\"header__leftNav\">\n <div\n class=\"header__menu js-active-modal\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n [attr.aria-label]=\"titleMenu ?? 'Menu'\"\n >\n <i class=\"icon-83\"></i>\n @if (titleMenu) {\n <span>{{ titleMenu }}</span>\n }\n </div>\n <div\n class=\"header__language js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"titleLang ?? 'Language Menu'\"\n >\n @if (titleLang) {\n {{ titleLang }}\n }\n </div>\n </div>\n @if (isHotelsPage) {\n <div class=\"header__reserver\">\n @if (btnCheckinOnline) {\n <a\n (click)=\"btnClickCheckinOnline.emit()\"\n class=\"btn btn__primary btn--lg checkIn\"\n role=\"button\"\n [attr.aria-label]=\"btnCheckinOnline\"\n >\n <span>{{ btnCheckinOnline }}</span>\n </a>\n }\n\n @if (btnCheckin) {\n <a\n (click)=\"btnClickCheckin.emit()\"\n class=\"header__checkIn\"\n role=\"button\"\n [attr.aria-label]=\"btnCheckin\"\n >\n {{ btnCheckin }}\n </a>\n }\n\n @if (btnBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"btn btn__primary btn--lg reservar\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <span>{{ btnBook }}</span>\n </a>\n }\n </div>\n } @else {\n @if (btnBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"header__reserver\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <div class=\"btn btn__primary btn--lg\">\n <span>{{ btnBook }}</span>\n </div>\n </a>\n }\n }\n</header>\n\n<div class=\"modal modal--solidCream modal--navigation\">\n <div class=\"modal__inner\">\n <div class=\"modal__body\" [style.--bg-url]=\"cssBgUrl\">\n <div\n class=\"modal__close js-close\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n aria-label=\"Close Button\"\n >\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n class=\"modal__close--icon\"\n >\n <use href=\"#modal-close\"></use>\n </svg>\n </div>\n <div class=\"modal__nav\">\n <ul class=\"modal__nav--items\">\n @if (navLinks) {\n @for (link of navLinks; track $index) {\n <li class=\"modal__nav--link\">\n <a\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >{{ link.label }}</a\n >\n </li>\n }\n }\n </ul>\n <ul class=\"modal__nav--itemsSmall\">\n @if (bottomLinks) {\n @for (link of bottomLinks; track $index) {\n @if(link.url === \"lang\"){\n <li \n class=\"modal__nav--link js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"link.label ?? 'Language Menu'\"\n >\n <a>\n {{link.label}}\n </a>\n </li>\n }\n @else {\n <li class=\"modal__nav--link\">\n <a\n [linkType]=\"link.linkType\"\n [href]=\"link.url\"\n [attr.aria-label]=\"link.label\"\n >{{ link.label }}</a\n >\n </li>\n }\n }\n }\n </ul>\n </div>\n </div>\n </div>\n</div>\n", styles: [".modal.modal--navigation .modal__body:after{background-image:var(--bg-url)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: PuroLinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href", "modalClick"], outputs: ["bookClick", "anchorClicked"] }, { kind: "directive", type: PuroActiveModalDirective, selector: "[activeModal]" }, { kind: "directive", type: PuroNavStickyDirective, selector: "[navSticky]", inputs: ["isDynamic"] }, { kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
39
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroHeaderComponent, isStandalone: true, selector: "lib-puro-header", inputs: { titleMenu: "titleMenu", titleLang: "titleLang", navLinks: "navLinks", bottomLinks: "bottomLinks", siteId: "siteId", isHotelsPage: "isHotelsPage", btnBook: "btnBook", btnCheckinOnline: "btnCheckinOnline", btnCheckin: "btnCheckin", isDynamic: "isDynamic", logoHotel: "logoHotel", linkHotel: "linkHotel", hotelBrand: "hotelBrand" }, outputs: { btnClick: "btnClick", btnClickCheckin: "btnClickCheckin", btnClickCheckinOnline: "btnClickCheckinOnline" }, providers: [PuroActiveModalDirective], ngImport: i0, template: "<header class=\"header\" navSticky [isDynamic]=\"isDynamic\">\n <div class=\"header__logo\">\n @if (logoHotel) {\n <a [href]=\"linkHotel\" linkType=\"internal\">\n <img\n [ngSrc]=\"logoHotel\"\n alt=\"Logo\"\n width=\"301\"\n height=\"32\"\n class=\"header__logo--img\"\n priority\n />\n </a>\n } @else {\n <a [href]=\"navLinks?.[0]?.url\" [linkType]=\"navLinks?.[0]?.linkType\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"301\"\n height=\"32\"\n class=\"header__logo--img\"\n >\n @if (siteId === SITE_HOTELS) {\n <use href=\"#puro-logo\"></use>\n }\n @if (siteId === SITE_BEACH) {\n <use href=\"#purobeach-logo\"></use>\n }\n @if (siteId === SITE_GROUP) {\n <use href=\"#purogroup-logo\"></use>\n }\n </svg>\n </a>\n }\n </div>\n <div class=\"header__leftNav\">\n <div\n class=\"header__menu js-active-modal\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n [attr.aria-label]=\"titleMenu ?? 'Menu'\"\n >\n <i class=\"icon-83\"></i>\n @if (titleMenu) {\n <span>{{ titleMenu }}</span>\n }\n </div>\n <div\n class=\"header__language js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"titleLang ?? 'Language Menu'\"\n >\n @if (titleLang) {\n {{ titleLang }}\n }\n </div>\n </div>\n @if (isHotelsPage) {\n <div class=\"header__reserver\">\n @if (btnCheckinOnline) {\n <a\n (click)=\"btnClickCheckinOnline.emit()\"\n class=\"btn btn__primary btn--lg checkIn\"\n role=\"button\"\n [attr.aria-label]=\"btnCheckinOnline\"\n >\n <span>{{ btnCheckinOnline }}</span>\n </a>\n }\n\n @if (btnCheckin) {\n <a\n (click)=\"btnClickCheckin.emit()\"\n class=\"header__checkIn\"\n role=\"button\"\n [attr.aria-label]=\"btnCheckin\"\n >\n {{ btnCheckin }}\n </a>\n }\n\n @if (btnBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"btn btn__primary btn--lg reservar\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <span>{{ btnBook }}</span>\n </a>\n }\n </div>\n } @else {\n @if (btnBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"header__reserver\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <div class=\"btn btn__primary btn--lg\">\n <span>{{ btnBook }}</span>\n </div>\n </a>\n }\n }\n</header>\n\n<div class=\"modal modal--solidCream modal--navigation\">\n <div class=\"modal__inner\">\n <div class=\"modal__body\" [style.--bg-url]=\"cssBgUrl\">\n <div\n class=\"modal__close js-close\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n aria-label=\"Close Button\"\n >\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n class=\"modal__close--icon\"\n >\n <use href=\"#modal-close\"></use>\n </svg>\n </div>\n <div class=\"modal__nav\">\n <ul class=\"modal__nav--items\">\n @if (navLinks) {\n @for (link of navLinks; track $index) {\n <li class=\"modal__nav--link\">\n <a\n class=\"js-close\"\n activeModal\n data-modal_name=\"navigation\"\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >\n {{ link.label }}\n </a>\n </li>\n }\n }\n </ul>\n <ul class=\"modal__nav--itemsSmall\">\n @if (bottomLinks) {\n @for (link of bottomLinks; track $index) {\n @if (link.url === 'lang') {\n <li\n class=\"modal__nav--link js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"\n link.label ?? 'Language Menu'\n \"\n >\n <a>\n {{ link.label }}\n </a>\n </li>\n } @else {\n <li class=\"modal__nav--link\">\n <a\n class=\"js-close\"\n activeModal\n data-modal_name=\"navigation\"\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >\n {{ link.label }}\n </a>\n </li>\n }\n }\n }\n </ul>\n </div>\n </div>\n </div>\n</div>\n", styles: [".modal.modal--navigation .modal__body:after{background-image:var(--bg-url)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: PuroLinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href", "modalClick"], outputs: ["bookClick", "anchorClicked"] }, { kind: "directive", type: PuroActiveModalDirective, selector: "[activeModal]" }, { kind: "directive", type: PuroNavStickyDirective, selector: "[navSticky]", inputs: ["isDynamic"] }, { kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
40
40
  }
41
41
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroHeaderComponent, decorators: [{
42
42
  type: Component,
@@ -46,7 +46,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
46
46
  PuroActiveModalDirective,
47
47
  PuroNavStickyDirective,
48
48
  NgOptimizedImage
49
- ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [PuroActiveModalDirective], template: "<header class=\"header\" navSticky [isDynamic]=\"isDynamic\">\n <div class=\"header__logo\">\n @if (logoHotel) {\n <a [href]=\"linkHotel\" linkType=\"internal\">\n <img\n [ngSrc]=\"logoHotel\"\n alt=\"Logo\"\n width=\"301\"\n height=\"32\"\n class=\"header__logo--img\"\n priority\n />\n </a>\n } @else {\n <a [href]=\"navLinks?.[0]?.url\" [linkType]=\"navLinks?.[0]?.linkType\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"301\"\n height=\"32\"\n class=\"header__logo--img\"\n >\n @if (siteId === SITE_HOTELS) {\n <use href=\"#puro-logo\"></use>\n }\n @if (siteId === SITE_BEACH) {\n <use href=\"#purobeach-logo\"></use>\n }\n @if (siteId === SITE_GROUP) {\n <use href=\"#purogroup-logo\"></use>\n }\n </svg>\n </a>\n }\n </div>\n <div class=\"header__leftNav\">\n <div\n class=\"header__menu js-active-modal\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n [attr.aria-label]=\"titleMenu ?? 'Menu'\"\n >\n <i class=\"icon-83\"></i>\n @if (titleMenu) {\n <span>{{ titleMenu }}</span>\n }\n </div>\n <div\n class=\"header__language js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"titleLang ?? 'Language Menu'\"\n >\n @if (titleLang) {\n {{ titleLang }}\n }\n </div>\n </div>\n @if (isHotelsPage) {\n <div class=\"header__reserver\">\n @if (btnCheckinOnline) {\n <a\n (click)=\"btnClickCheckinOnline.emit()\"\n class=\"btn btn__primary btn--lg checkIn\"\n role=\"button\"\n [attr.aria-label]=\"btnCheckinOnline\"\n >\n <span>{{ btnCheckinOnline }}</span>\n </a>\n }\n\n @if (btnCheckin) {\n <a\n (click)=\"btnClickCheckin.emit()\"\n class=\"header__checkIn\"\n role=\"button\"\n [attr.aria-label]=\"btnCheckin\"\n >\n {{ btnCheckin }}\n </a>\n }\n\n @if (btnBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"btn btn__primary btn--lg reservar\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <span>{{ btnBook }}</span>\n </a>\n }\n </div>\n } @else {\n @if (btnBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"header__reserver\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <div class=\"btn btn__primary btn--lg\">\n <span>{{ btnBook }}</span>\n </div>\n </a>\n }\n }\n</header>\n\n<div class=\"modal modal--solidCream modal--navigation\">\n <div class=\"modal__inner\">\n <div class=\"modal__body\" [style.--bg-url]=\"cssBgUrl\">\n <div\n class=\"modal__close js-close\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n aria-label=\"Close Button\"\n >\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n class=\"modal__close--icon\"\n >\n <use href=\"#modal-close\"></use>\n </svg>\n </div>\n <div class=\"modal__nav\">\n <ul class=\"modal__nav--items\">\n @if (navLinks) {\n @for (link of navLinks; track $index) {\n <li class=\"modal__nav--link\">\n <a\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >{{ link.label }}</a\n >\n </li>\n }\n }\n </ul>\n <ul class=\"modal__nav--itemsSmall\">\n @if (bottomLinks) {\n @for (link of bottomLinks; track $index) {\n @if(link.url === \"lang\"){\n <li \n class=\"modal__nav--link js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"link.label ?? 'Language Menu'\"\n >\n <a>\n {{link.label}}\n </a>\n </li>\n }\n @else {\n <li class=\"modal__nav--link\">\n <a\n [linkType]=\"link.linkType\"\n [href]=\"link.url\"\n [attr.aria-label]=\"link.label\"\n >{{ link.label }}</a\n >\n </li>\n }\n }\n }\n </ul>\n </div>\n </div>\n </div>\n</div>\n", styles: [".modal.modal--navigation .modal__body:after{background-image:var(--bg-url)}\n"] }]
49
+ ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [PuroActiveModalDirective], template: "<header class=\"header\" navSticky [isDynamic]=\"isDynamic\">\n <div class=\"header__logo\">\n @if (logoHotel) {\n <a [href]=\"linkHotel\" linkType=\"internal\">\n <img\n [ngSrc]=\"logoHotel\"\n alt=\"Logo\"\n width=\"301\"\n height=\"32\"\n class=\"header__logo--img\"\n priority\n />\n </a>\n } @else {\n <a [href]=\"navLinks?.[0]?.url\" [linkType]=\"navLinks?.[0]?.linkType\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"301\"\n height=\"32\"\n class=\"header__logo--img\"\n >\n @if (siteId === SITE_HOTELS) {\n <use href=\"#puro-logo\"></use>\n }\n @if (siteId === SITE_BEACH) {\n <use href=\"#purobeach-logo\"></use>\n }\n @if (siteId === SITE_GROUP) {\n <use href=\"#purogroup-logo\"></use>\n }\n </svg>\n </a>\n }\n </div>\n <div class=\"header__leftNav\">\n <div\n class=\"header__menu js-active-modal\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n [attr.aria-label]=\"titleMenu ?? 'Menu'\"\n >\n <i class=\"icon-83\"></i>\n @if (titleMenu) {\n <span>{{ titleMenu }}</span>\n }\n </div>\n <div\n class=\"header__language js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"titleLang ?? 'Language Menu'\"\n >\n @if (titleLang) {\n {{ titleLang }}\n }\n </div>\n </div>\n @if (isHotelsPage) {\n <div class=\"header__reserver\">\n @if (btnCheckinOnline) {\n <a\n (click)=\"btnClickCheckinOnline.emit()\"\n class=\"btn btn__primary btn--lg checkIn\"\n role=\"button\"\n [attr.aria-label]=\"btnCheckinOnline\"\n >\n <span>{{ btnCheckinOnline }}</span>\n </a>\n }\n\n @if (btnCheckin) {\n <a\n (click)=\"btnClickCheckin.emit()\"\n class=\"header__checkIn\"\n role=\"button\"\n [attr.aria-label]=\"btnCheckin\"\n >\n {{ btnCheckin }}\n </a>\n }\n\n @if (btnBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"btn btn__primary btn--lg reservar\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <span>{{ btnBook }}</span>\n </a>\n }\n </div>\n } @else {\n @if (btnBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"header__reserver\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <div class=\"btn btn__primary btn--lg\">\n <span>{{ btnBook }}</span>\n </div>\n </a>\n }\n }\n</header>\n\n<div class=\"modal modal--solidCream modal--navigation\">\n <div class=\"modal__inner\">\n <div class=\"modal__body\" [style.--bg-url]=\"cssBgUrl\">\n <div\n class=\"modal__close js-close\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n aria-label=\"Close Button\"\n >\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n class=\"modal__close--icon\"\n >\n <use href=\"#modal-close\"></use>\n </svg>\n </div>\n <div class=\"modal__nav\">\n <ul class=\"modal__nav--items\">\n @if (navLinks) {\n @for (link of navLinks; track $index) {\n <li class=\"modal__nav--link\">\n <a\n class=\"js-close\"\n activeModal\n data-modal_name=\"navigation\"\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >\n {{ link.label }}\n </a>\n </li>\n }\n }\n </ul>\n <ul class=\"modal__nav--itemsSmall\">\n @if (bottomLinks) {\n @for (link of bottomLinks; track $index) {\n @if (link.url === 'lang') {\n <li\n class=\"modal__nav--link js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"\n link.label ?? 'Language Menu'\n \"\n >\n <a>\n {{ link.label }}\n </a>\n </li>\n } @else {\n <li class=\"modal__nav--link\">\n <a\n class=\"js-close\"\n activeModal\n data-modal_name=\"navigation\"\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >\n {{ link.label }}\n </a>\n </li>\n }\n }\n }\n </ul>\n </div>\n </div>\n </div>\n</div>\n", styles: [".modal.modal--navigation .modal__body:after{background-image:var(--bg-url)}\n"] }]
50
50
  }], propDecorators: { titleMenu: [{
51
51
  type: Input
52
52
  }], titleLang: [{
@@ -80,4 +80,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
80
80
  }], btnClickCheckinOnline: [{
81
81
  type: Output
82
82
  }] } });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby1oZWFkZXIvcHVyby1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby1oZWFkZXIvcHVyby1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pFLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsd0JBQXdCLEVBQ3hCLHFCQUFxQixHQUN4QixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDOztBQWtCcEcsTUFBTSxPQUFPLG1CQUFtQjtJQWZoQztRQWdCWSxtQkFBYyxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBU2pELGlCQUFZLEdBQWEsS0FBSyxDQUFDO1FBSS9CLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFLakIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDOUIsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3JDLDBCQUFxQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFNUMsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNmLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFFeEIsYUFBUSxHQUFHLEVBQUUsQ0FBQztLQXVCakI7SUFyQkcsWUFBWTtRQUNSLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsUUFBUSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2pCLEtBQUssSUFBSSxDQUFDLFVBQVU7Z0JBQ2hCLE1BQU07WUFDVixLQUFLLElBQUksQ0FBQyxXQUFXO2dCQUNqQixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNsQyxNQUFNO1lBQ1YsS0FBSyxJQUFJLENBQUMsVUFBVTtnQkFDaEIsTUFBTTtZQUVWO2dCQUNJLE1BQU07U0FDYjtJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRTtZQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQztTQUNuRDtJQUNMLENBQUM7K0dBakRRLG1CQUFtQjttR0FBbkIsbUJBQW1CLHlnQkFGakIsQ0FBQyx3QkFBd0IsQ0FBQywwQkM5QnpDLHcxTUFpTEEsc0lENUpJLFlBQVksK0JBQ1oscUJBQXFCLDRJQUNyQix3QkFBd0IsMERBQ3hCLHNCQUFzQiwrRUFDdEIsZ0JBQWdCOzs0RkFPUCxtQkFBbUI7a0JBZi9CLFNBQVM7K0JBQ0ksaUJBQWlCLGNBQ2YsSUFBSSxXQUNQO3dCQUNULFlBQVk7d0JBQ1oscUJBQXFCO3dCQUNyQix3QkFBd0I7d0JBQ3hCLHNCQUFzQjt3QkFDdEIsZ0JBQWdCO3FCQUNuQixtQkFHb0IsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLHdCQUF3QixDQUFDOzhCQUk1QixTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFJRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxxQkFBcUI7c0JBQTlCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUsIE5nT3B0aW1pemVkSW1hZ2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgUHVyb0FjdGl2ZU1vZGFsRGlyZWN0aXZlLFxuICAgIFB1cm9MaW5rVHlwZURpcmVjdGl2ZSxcbn0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBQdXJvTmF2U3RpY2t5RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9wdXJvLW5hdi1zdGlja3kvcHVyby1uYXYtc3RpY2t5LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBQdXJvQnV0dG9uSSwgUHVyb0ltYWdlSSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xpYi1wdXJvLWhlYWRlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFB1cm9MaW5rVHlwZURpcmVjdGl2ZSxcbiAgICBQdXJvQWN0aXZlTW9kYWxEaXJlY3RpdmUsXG4gICAgUHVyb05hdlN0aWNreURpcmVjdGl2ZSxcbiAgICBOZ09wdGltaXplZEltYWdlXG5dLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wdXJvLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL3B1cm8taGVhZGVyLmNvbXBvbmVudC5zY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtQdXJvQWN0aXZlTW9kYWxEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBQdXJvSGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0e1xuICAgIHByaXZhdGUgYWN0aXZlTW9kYWxEdHYgPSBpbmplY3QoUHVyb0FjdGl2ZU1vZGFsRGlyZWN0aXZlKTtcbiAgICBASW5wdXQoKSB0aXRsZU1lbnU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgdGl0bGVMYW5nPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIG5hdkxpbmtzPzogUHVyb0J1dHRvbklbXTtcbiAgICBASW5wdXQoKSBib3R0b21MaW5rcz86IFB1cm9CdXR0b25JW107XG4gICAgQElucHV0KCkgc2l0ZUlkPzpcbiAgICB8IHR5cGVvZiB0aGlzLlNJVEVfR1JPVVBcbiAgICB8IHR5cGVvZiB0aGlzLlNJVEVfQkVBQ0hcbiAgICB8IHR5cGVvZiB0aGlzLlNJVEVfSE9URUxTO1xuICAgIEBJbnB1dCgpIGlzSG90ZWxzUGFnZT86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBidG5Cb29rPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGJ0bkNoZWNraW5PbmxpbmU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgYnRuQ2hlY2tpbj86IHN0cmluZztcbiAgICBASW5wdXQoKSBpc0R5bmFtaWMgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBsb2dvSG90ZWw/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgbGlua0hvdGVsPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGhvdGVsQnJhbmQ/OiBQdXJvSW1hZ2VJO1xuXG4gICAgQE91dHB1dCgpIGJ0bkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBidG5DbGlja0NoZWNraW4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGJ0bkNsaWNrQ2hlY2tpbk9ubGluZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHJlYWRvbmx5IFNJVEVfR1JPVVAgPSAxO1xuICAgIHJlYWRvbmx5IFNJVEVfSE9URUxTID0gMjtcbiAgICByZWFkb25seSBTSVRFX0JFQUNIID0gMztcblxuICAgIGNzc0JnVXJsID0gJyc7XG5cbiAgICBjbGlja0J0bkJvb2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYnRuQ2xpY2suZW1pdCgpO1xuICAgICAgICBzd2l0Y2ggKHRoaXMuc2l0ZUlkKSB7XG4gICAgICAgICAgICBjYXNlIHRoaXMuU0lURV9HUk9VUDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgdGhpcy5TSVRFX0hPVEVMUzpcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZU1vZGFsRHR2LmhhbmRsZUNsaWNrKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIHRoaXMuU0lURV9CRUFDSDpcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5ob3RlbEJyYW5kPy5zcmMpIHtcbiAgICAgICAgICAgIHRoaXMuY3NzQmdVcmwgPSBgdXJsKFwiJHt0aGlzLmhvdGVsQnJhbmQuc3JjfVwiKWA7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8aGVhZGVyIGNsYXNzPVwiaGVhZGVyXCIgbmF2U3RpY2t5IFtpc0R5bmFtaWNdPVwiaXNEeW5hbWljXCI+XG4gICAgPGRpdiBjbGFzcz1cImhlYWRlcl9fbG9nb1wiPlxuICAgICAgICBAaWYgKGxvZ29Ib3RlbCkge1xuICAgICAgICAgICAgPGEgW2hyZWZdPVwibGlua0hvdGVsXCIgbGlua1R5cGU9XCJpbnRlcm5hbFwiPlxuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgW25nU3JjXT1cImxvZ29Ib3RlbFwiXG4gICAgICAgICAgICAgICAgICAgIGFsdD1cIkxvZ29cIlxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMVwiXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMyXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoZWFkZXJfX2xvZ28tLWltZ1wiXG4gICAgICAgICAgICAgICAgICAgIHByaW9yaXR5XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8YSBbaHJlZl09XCJuYXZMaW5rcz8uWzBdPy51cmxcIiBbbGlua1R5cGVdPVwibmF2TGlua3M/LlswXT8ubGlua1R5cGVcIj5cbiAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDFcIlxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMlwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGVhZGVyX19sb2dvLS1pbWdcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChzaXRlSWQgPT09IFNJVEVfSE9URUxTKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8dXNlIGhyZWY9XCIjcHVyby1sb2dvXCI+PC91c2U+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGlmIChzaXRlSWQgPT09IFNJVEVfQkVBQ0gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgaHJlZj1cIiNwdXJvYmVhY2gtbG9nb1wiPjwvdXNlPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoc2l0ZUlkID09PSBTSVRFX0dST1VQKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8dXNlIGhyZWY9XCIjcHVyb2dyb3VwLWxvZ29cIj48L3VzZT5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImhlYWRlcl9fbGVmdE5hdlwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImhlYWRlcl9fbWVudSBqcy1hY3RpdmUtbW9kYWxcIlxuICAgICAgICAgICAgYWN0aXZlTW9kYWxcbiAgICAgICAgICAgIGRhdGEtbW9kYWxfbmFtZT1cIm5hdmlnYXRpb25cIlxuICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRpdGxlTWVudSA/PyAnTWVudSdcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb24tODNcIj48L2k+XG4gICAgICAgICAgICBAaWYgKHRpdGxlTWVudSkge1xuICAgICAgICAgICAgICAgIDxzcGFuPnt7IHRpdGxlTWVudSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiaGVhZGVyX19sYW5ndWFnZSBqcy1hY3RpdmUtbW9kYWxcIlxuICAgICAgICAgICAgYWN0aXZlTW9kYWxcbiAgICAgICAgICAgIGRhdGEtbW9kYWxfbmFtZT1cImxhbmd1YWdlXCJcbiAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0aXRsZUxhbmcgPz8gJ0xhbmd1YWdlIE1lbnUnXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgQGlmICh0aXRsZUxhbmcpIHtcbiAgICAgICAgICAgICAgICB7eyB0aXRsZUxhbmcgfX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgQGlmIChpc0hvdGVsc1BhZ2UpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlcl9fcmVzZXJ2ZXJcIj5cbiAgICAgICAgICAgIEBpZiAoYnRuQ2hlY2tpbk9ubGluZSkge1xuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJidG5DbGlja0NoZWNraW5PbmxpbmUuZW1pdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuX19wcmltYXJ5IGJ0bi0tbGcgY2hlY2tJblwiXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJ0bkNoZWNraW5PbmxpbmVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgYnRuQ2hlY2tpbk9ubGluZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoYnRuQ2hlY2tpbikge1xuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJidG5DbGlja0NoZWNraW4uZW1pdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoZWFkZXJfX2NoZWNrSW5cIlxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJidG5DaGVja2luXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGJ0bkNoZWNraW4gfX1cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoYnRuQm9vaykge1xuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJidG5DbGljay5lbWl0KClcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG5fX3ByaW1hcnkgYnRuLS1sZyByZXNlcnZhclwiXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJ0bkJvb2tcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgYnRuQm9vayB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIH0gQGVsc2Uge1xuICAgICAgICBAaWYgKGJ0bkJvb2spIHtcbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImJ0bkNsaWNrLmVtaXQoKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJoZWFkZXJfX3Jlc2VydmVyXCJcbiAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJ0bkJvb2tcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4gYnRuX19wcmltYXJ5IGJ0bi0tbGdcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgYnRuQm9vayB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgfVxuICAgIH1cbjwvaGVhZGVyPlxuXG48ZGl2IGNsYXNzPVwibW9kYWwgbW9kYWwtLXNvbGlkQ3JlYW0gbW9kYWwtLW5hdmlnYXRpb25cIj5cbiAgICA8ZGl2IGNsYXNzPVwibW9kYWxfX2lubmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbF9fYm9keVwiIFtzdHlsZS4tLWJnLXVybF09XCJjc3NCZ1VybFwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibW9kYWxfX2Nsb3NlIGpzLWNsb3NlXCJcbiAgICAgICAgICAgICAgICBhY3RpdmVNb2RhbFxuICAgICAgICAgICAgICAgIGRhdGEtbW9kYWxfbmFtZT1cIm5hdmlnYXRpb25cIlxuICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbG9zZSBCdXR0b25cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1vZGFsX19jbG9zZS0taWNvblwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8dXNlIGhyZWY9XCIjbW9kYWwtY2xvc2VcIj48L3VzZT5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsX19uYXZcIj5cbiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJtb2RhbF9fbmF2LS1pdGVtc1wiPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKG5hdkxpbmtzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChsaW5rIG9mIG5hdkxpbmtzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJtb2RhbF9fbmF2LS1saW5rXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJsaW5rLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwibGluay5saW5rVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxpbmsubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7IGxpbmsubGFiZWwgfX08L2FcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cIm1vZGFsX19uYXYtLWl0ZW1zU21hbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChib3R0b21MaW5rcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAobGluayBvZiBib3R0b21MaW5rczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGxpbmsudXJsID09PSBcImxhbmdcIil7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibW9kYWxfX25hdi0tbGluayBqcy1hY3RpdmUtbW9kYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlTW9kYWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtbW9kYWxfbmFtZT1cImxhbmd1YWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsaW5rLmxhYmVsID8/ICdMYW5ndWFnZSBNZW51J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7bGluay5sYWJlbH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibW9kYWxfX25hdi0tbGlua1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwibGluay5saW5rVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwibGluay51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGluay5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7IGxpbmsubGFiZWwgfX08L2FcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby1oZWFkZXIvcHVyby1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby1oZWFkZXIvcHVyby1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pFLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsd0JBQXdCLEVBQ3hCLHFCQUFxQixHQUN4QixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDOztBQWtCcEcsTUFBTSxPQUFPLG1CQUFtQjtJQWZoQztRQWdCWSxtQkFBYyxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBU2pELGlCQUFZLEdBQWEsS0FBSyxDQUFDO1FBSS9CLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFLakIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDOUIsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3JDLDBCQUFxQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFNUMsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNmLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFFeEIsYUFBUSxHQUFHLEVBQUUsQ0FBQztLQXVCakI7SUFyQkcsWUFBWTtRQUNSLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsUUFBUSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2pCLEtBQUssSUFBSSxDQUFDLFVBQVU7Z0JBQ2hCLE1BQU07WUFDVixLQUFLLElBQUksQ0FBQyxXQUFXO2dCQUNqQixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNsQyxNQUFNO1lBQ1YsS0FBSyxJQUFJLENBQUMsVUFBVTtnQkFDaEIsTUFBTTtZQUVWO2dCQUNJLE1BQU07U0FDYjtJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRTtZQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQztTQUNuRDtJQUNMLENBQUM7K0dBakRRLG1CQUFtQjttR0FBbkIsbUJBQW1CLHlnQkFGakIsQ0FBQyx3QkFBd0IsQ0FBQywwQkM5QnpDLDB6TkEwTEEsc0lEcktJLFlBQVksK0JBQ1oscUJBQXFCLDRJQUNyQix3QkFBd0IsMERBQ3hCLHNCQUFzQiwrRUFDdEIsZ0JBQWdCOzs0RkFPUCxtQkFBbUI7a0JBZi9CLFNBQVM7K0JBQ0ksaUJBQWlCLGNBQ2YsSUFBSSxXQUNQO3dCQUNULFlBQVk7d0JBQ1oscUJBQXFCO3dCQUNyQix3QkFBd0I7d0JBQ3hCLHNCQUFzQjt3QkFDdEIsZ0JBQWdCO3FCQUNuQixtQkFHb0IsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLHdCQUF3QixDQUFDOzhCQUk1QixTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFJRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxxQkFBcUI7c0JBQTlCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUsIE5nT3B0aW1pemVkSW1hZ2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgUHVyb0FjdGl2ZU1vZGFsRGlyZWN0aXZlLFxuICAgIFB1cm9MaW5rVHlwZURpcmVjdGl2ZSxcbn0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBQdXJvTmF2U3RpY2t5RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9wdXJvLW5hdi1zdGlja3kvcHVyby1uYXYtc3RpY2t5LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBQdXJvQnV0dG9uSSwgUHVyb0ltYWdlSSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xpYi1wdXJvLWhlYWRlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFB1cm9MaW5rVHlwZURpcmVjdGl2ZSxcbiAgICBQdXJvQWN0aXZlTW9kYWxEaXJlY3RpdmUsXG4gICAgUHVyb05hdlN0aWNreURpcmVjdGl2ZSxcbiAgICBOZ09wdGltaXplZEltYWdlXG5dLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wdXJvLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL3B1cm8taGVhZGVyLmNvbXBvbmVudC5zY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtQdXJvQWN0aXZlTW9kYWxEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBQdXJvSGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0e1xuICAgIHByaXZhdGUgYWN0aXZlTW9kYWxEdHYgPSBpbmplY3QoUHVyb0FjdGl2ZU1vZGFsRGlyZWN0aXZlKTtcbiAgICBASW5wdXQoKSB0aXRsZU1lbnU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgdGl0bGVMYW5nPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIG5hdkxpbmtzPzogUHVyb0J1dHRvbklbXTtcbiAgICBASW5wdXQoKSBib3R0b21MaW5rcz86IFB1cm9CdXR0b25JW107XG4gICAgQElucHV0KCkgc2l0ZUlkPzpcbiAgICB8IHR5cGVvZiB0aGlzLlNJVEVfR1JPVVBcbiAgICB8IHR5cGVvZiB0aGlzLlNJVEVfQkVBQ0hcbiAgICB8IHR5cGVvZiB0aGlzLlNJVEVfSE9URUxTO1xuICAgIEBJbnB1dCgpIGlzSG90ZWxzUGFnZT86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBidG5Cb29rPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGJ0bkNoZWNraW5PbmxpbmU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgYnRuQ2hlY2tpbj86IHN0cmluZztcbiAgICBASW5wdXQoKSBpc0R5bmFtaWMgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBsb2dvSG90ZWw/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgbGlua0hvdGVsPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGhvdGVsQnJhbmQ/OiBQdXJvSW1hZ2VJO1xuXG4gICAgQE91dHB1dCgpIGJ0bkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBidG5DbGlja0NoZWNraW4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGJ0bkNsaWNrQ2hlY2tpbk9ubGluZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHJlYWRvbmx5IFNJVEVfR1JPVVAgPSAxO1xuICAgIHJlYWRvbmx5IFNJVEVfSE9URUxTID0gMjtcbiAgICByZWFkb25seSBTSVRFX0JFQUNIID0gMztcblxuICAgIGNzc0JnVXJsID0gJyc7XG5cbiAgICBjbGlja0J0bkJvb2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYnRuQ2xpY2suZW1pdCgpO1xuICAgICAgICBzd2l0Y2ggKHRoaXMuc2l0ZUlkKSB7XG4gICAgICAgICAgICBjYXNlIHRoaXMuU0lURV9HUk9VUDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgdGhpcy5TSVRFX0hPVEVMUzpcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZU1vZGFsRHR2LmhhbmRsZUNsaWNrKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIHRoaXMuU0lURV9CRUFDSDpcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5ob3RlbEJyYW5kPy5zcmMpIHtcbiAgICAgICAgICAgIHRoaXMuY3NzQmdVcmwgPSBgdXJsKFwiJHt0aGlzLmhvdGVsQnJhbmQuc3JjfVwiKWA7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8aGVhZGVyIGNsYXNzPVwiaGVhZGVyXCIgbmF2U3RpY2t5IFtpc0R5bmFtaWNdPVwiaXNEeW5hbWljXCI+XG4gICAgPGRpdiBjbGFzcz1cImhlYWRlcl9fbG9nb1wiPlxuICAgICAgICBAaWYgKGxvZ29Ib3RlbCkge1xuICAgICAgICAgICAgPGEgW2hyZWZdPVwibGlua0hvdGVsXCIgbGlua1R5cGU9XCJpbnRlcm5hbFwiPlxuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgW25nU3JjXT1cImxvZ29Ib3RlbFwiXG4gICAgICAgICAgICAgICAgICAgIGFsdD1cIkxvZ29cIlxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjMwMVwiXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjMyXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoZWFkZXJfX2xvZ28tLWltZ1wiXG4gICAgICAgICAgICAgICAgICAgIHByaW9yaXR5XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8YSBbaHJlZl09XCJuYXZMaW5rcz8uWzBdPy51cmxcIiBbbGlua1R5cGVdPVwibmF2TGlua3M/LlswXT8ubGlua1R5cGVcIj5cbiAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzMDFcIlxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMlwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGVhZGVyX19sb2dvLS1pbWdcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChzaXRlSWQgPT09IFNJVEVfSE9URUxTKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8dXNlIGhyZWY9XCIjcHVyby1sb2dvXCI+PC91c2U+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGlmIChzaXRlSWQgPT09IFNJVEVfQkVBQ0gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgaHJlZj1cIiNwdXJvYmVhY2gtbG9nb1wiPjwvdXNlPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoc2l0ZUlkID09PSBTSVRFX0dST1VQKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8dXNlIGhyZWY9XCIjcHVyb2dyb3VwLWxvZ29cIj48L3VzZT5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImhlYWRlcl9fbGVmdE5hdlwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImhlYWRlcl9fbWVudSBqcy1hY3RpdmUtbW9kYWxcIlxuICAgICAgICAgICAgYWN0aXZlTW9kYWxcbiAgICAgICAgICAgIGRhdGEtbW9kYWxfbmFtZT1cIm5hdmlnYXRpb25cIlxuICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRpdGxlTWVudSA/PyAnTWVudSdcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb24tODNcIj48L2k+XG4gICAgICAgICAgICBAaWYgKHRpdGxlTWVudSkge1xuICAgICAgICAgICAgICAgIDxzcGFuPnt7IHRpdGxlTWVudSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiaGVhZGVyX19sYW5ndWFnZSBqcy1hY3RpdmUtbW9kYWxcIlxuICAgICAgICAgICAgYWN0aXZlTW9kYWxcbiAgICAgICAgICAgIGRhdGEtbW9kYWxfbmFtZT1cImxhbmd1YWdlXCJcbiAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0aXRsZUxhbmcgPz8gJ0xhbmd1YWdlIE1lbnUnXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgQGlmICh0aXRsZUxhbmcpIHtcbiAgICAgICAgICAgICAgICB7eyB0aXRsZUxhbmcgfX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgQGlmIChpc0hvdGVsc1BhZ2UpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlcl9fcmVzZXJ2ZXJcIj5cbiAgICAgICAgICAgIEBpZiAoYnRuQ2hlY2tpbk9ubGluZSkge1xuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJidG5DbGlja0NoZWNraW5PbmxpbmUuZW1pdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuX19wcmltYXJ5IGJ0bi0tbGcgY2hlY2tJblwiXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJ0bkNoZWNraW5PbmxpbmVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgYnRuQ2hlY2tpbk9ubGluZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoYnRuQ2hlY2tpbikge1xuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJidG5DbGlja0NoZWNraW4uZW1pdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoZWFkZXJfX2NoZWNrSW5cIlxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJidG5DaGVja2luXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGJ0bkNoZWNraW4gfX1cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoYnRuQm9vaykge1xuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJidG5DbGljay5lbWl0KClcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG5fX3ByaW1hcnkgYnRuLS1sZyByZXNlcnZhclwiXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJ0bkJvb2tcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgYnRuQm9vayB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIH0gQGVsc2Uge1xuICAgICAgICBAaWYgKGJ0bkJvb2spIHtcbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImJ0bkNsaWNrLmVtaXQoKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJoZWFkZXJfX3Jlc2VydmVyXCJcbiAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJ0bkJvb2tcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4gYnRuX19wcmltYXJ5IGJ0bi0tbGdcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgYnRuQm9vayB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgfVxuICAgIH1cbjwvaGVhZGVyPlxuXG48ZGl2IGNsYXNzPVwibW9kYWwgbW9kYWwtLXNvbGlkQ3JlYW0gbW9kYWwtLW5hdmlnYXRpb25cIj5cbiAgICA8ZGl2IGNsYXNzPVwibW9kYWxfX2lubmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbF9fYm9keVwiIFtzdHlsZS4tLWJnLXVybF09XCJjc3NCZ1VybFwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibW9kYWxfX2Nsb3NlIGpzLWNsb3NlXCJcbiAgICAgICAgICAgICAgICBhY3RpdmVNb2RhbFxuICAgICAgICAgICAgICAgIGRhdGEtbW9kYWxfbmFtZT1cIm5hdmlnYXRpb25cIlxuICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbG9zZSBCdXR0b25cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1vZGFsX19jbG9zZS0taWNvblwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8dXNlIGhyZWY9XCIjbW9kYWwtY2xvc2VcIj48L3VzZT5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsX19uYXZcIj5cbiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJtb2RhbF9fbmF2LS1pdGVtc1wiPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKG5hdkxpbmtzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChsaW5rIG9mIG5hdkxpbmtzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJtb2RhbF9fbmF2LS1saW5rXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImpzLWNsb3NlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZU1vZGFsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLW1vZGFsX25hbWU9XCJuYXZpZ2F0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cImxpbmsudXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJsaW5rLmxpbmtUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGluay5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxpbmsubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cIm1vZGFsX19uYXYtLWl0ZW1zU21hbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChib3R0b21MaW5rcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAobGluayBvZiBib3R0b21MaW5rczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChsaW5rLnVybCA9PT0gJ2xhbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtb2RhbF9fbmF2LS1saW5rIGpzLWFjdGl2ZS1tb2RhbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVNb2RhbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1tb2RhbF9uYW1lPVwibGFuZ3VhZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmsubGFiZWwgPz8gJ0xhbmd1YWdlIE1lbnUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBsaW5rLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm1vZGFsX19uYXYtLWxpbmtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJqcy1jbG9zZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlTW9kYWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLW1vZGFsX25hbWU9XCJuYXZpZ2F0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJsaW5rLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtUeXBlXT1cImxpbmsubGlua1R5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGluay5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgbGluay5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -76,7 +76,7 @@ export class PuroHeaderMobileComponent {
76
76
  }
77
77
  }
78
78
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroHeaderMobileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
79
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroHeaderMobileComponent, isStandalone: true, selector: "lib-puro-header-mobile", inputs: { titleMenu: "titleMenu", titleLang: "titleLang", btnBook: "btnBook", navLinks: "navLinks", bottomLinks: "bottomLinks", isDynamic: "isDynamic", hotelBrand: "hotelBrand", logoHotel: "logoHotel", logoHotelWhite: "logoHotelWhite", siteId: "siteId" }, outputs: { btnClick: "btnClick" }, providers: [PuroActiveModalDirective], ngImport: i0, template: "<header class=\"header\" navSticky [isDynamic]=\"isDynamic\">\n <div class=\"banner__logo\">\n <a\n [href]=\"navLinks?.[0]?.url\"\n [linkType]=\"navLinks?.[0]?.linkType\"\n aria-label=\"Saulo logo\"\n >\n @if (logoHotel && logoHotelWhite) {\n <img\n [ngSrc]=\"hasStickyClasses() ? logoHotel : logoHotelWhite\"\n alt=\"Logo\"\n width=\"177\"\n height=\"68\"\n class=\"banner__logo--img restaurant\"\n priority\n />\n } @else {\n <svg\n aria-hidden=\"true\"\n width=\"177\"\n height=\"68\"\n focusable=\"false\"\n class=\"banner__logo--img\"\n >\n @if (siteId === SITE_HOTELS) {\n <use href=\"#puro-logo\" class=\"purohotels\"></use>\n }\n @if (siteId === SITE_BEACH) {\n <use href=\"#purobeach-logo\" class=\"purobeach\"></use>\n }\n @if (siteId === SITE_GROUP) {\n <use href=\"#purogroup-logo\" class=\"purogroup\"></use>\n }\n </svg>\n }\n </a>\n </div>\n <div class=\"header__leftNav\">\n <div\n class=\"header__menu js-active-modal\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n [attr.aria-label]=\"titleMenu ?? 'Menu'\"\n >\n <i class=\"icon-83\"></i>\n @if (titleMenu) {\n <span>{{ titleMenu }}</span>\n }\n </div>\n <div\n class=\"header__language js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"titleLang ?? 'Language Menu'\"\n >\n @if (titleLang) {\n {{ titleLang }}\n }\n </div>\n </div>\n @if (btnBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"header__reserver\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <div class=\"btn btn__primary btn--lg\">\n <span>{{ btnBook }}</span>\n </div>\n </a>\n }\n</header>\n\n<div class=\"modal modal--solidCream modal--navigation\">\n <div class=\"modal__inner\">\n <div class=\"modal__body\" [style.--bg-url]=\"cssBgUrl\">\n <div\n class=\"modal__close js-close\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n aria-label=\"Close Button\"\n >\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n class=\"modal__close--icon\"\n >\n <use href=\"#modal-close\"></use>\n </svg>\n </div>\n <div class=\"modal__nav\">\n <ul class=\"modal__nav--items\">\n @if (navLinks) {\n @for (link of navLinks; track $index) {\n <li class=\"modal__nav--link\">\n <a\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >{{ link.label }}</a\n >\n </li>\n }\n }\n </ul>\n <ul class=\"modal__nav--itemsSmall\">\n @if (bottomLinks) {\n @for (link of bottomLinks; track $index) {\n @if(link.url === \"lang\"){\n <li \n class=\"modal__nav--link js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"link.label ?? 'Language Menu'\"\n >\n <a>\n {{link.label}}\n </a>\n </li>\n }\n @else {\n <li class=\"modal__nav--link\">\n <a\n [linkType]=\"link.linkType\"\n [href]=\"link.url\"\n [attr.aria-label]=\"link.label\"\n >{{ link.label }}</a\n >\n </li>\n }\n }\n }\n </ul>\n </div>\n </div>\n </div>\n</div>\n", styles: [".modal.modal--navigation .modal__body:after{background-image:var(--bg-url)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: PuroLinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href", "modalClick"], outputs: ["bookClick", "anchorClicked"] }, { kind: "directive", type: PuroActiveModalDirective, selector: "[activeModal]" }, { kind: "directive", type: PuroNavStickyDirective, selector: "[navSticky]", inputs: ["isDynamic"] }, { kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
79
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroHeaderMobileComponent, isStandalone: true, selector: "lib-puro-header-mobile", inputs: { titleMenu: "titleMenu", titleLang: "titleLang", btnBook: "btnBook", navLinks: "navLinks", bottomLinks: "bottomLinks", isDynamic: "isDynamic", hotelBrand: "hotelBrand", logoHotel: "logoHotel", logoHotelWhite: "logoHotelWhite", siteId: "siteId" }, outputs: { btnClick: "btnClick" }, providers: [PuroActiveModalDirective], ngImport: i0, template: "<header class=\"header\" navSticky [isDynamic]=\"isDynamic\">\n <div class=\"banner__logo\">\n <a\n [href]=\"navLinks?.[0]?.url\"\n [linkType]=\"navLinks?.[0]?.linkType\"\n aria-label=\"Saulo logo\"\n >\n @if (logoHotel && logoHotelWhite) {\n <img\n [ngSrc]=\"hasStickyClasses() ? logoHotel : logoHotelWhite\"\n alt=\"Logo\"\n width=\"177\"\n height=\"68\"\n class=\"banner__logo--img restaurant\"\n priority\n />\n } @else {\n <svg\n aria-hidden=\"true\"\n width=\"177\"\n height=\"68\"\n focusable=\"false\"\n class=\"banner__logo--img\"\n >\n @if (siteId === SITE_HOTELS) {\n <use href=\"#puro-logo\" class=\"purohotels\"></use>\n }\n @if (siteId === SITE_BEACH) {\n <use href=\"#purobeach-logo\" class=\"purobeach\"></use>\n }\n @if (siteId === SITE_GROUP) {\n <use href=\"#purogroup-logo\" class=\"purogroup\"></use>\n }\n </svg>\n }\n </a>\n </div>\n <div class=\"header__leftNav\">\n <div\n class=\"header__menu js-active-modal\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n [attr.aria-label]=\"titleMenu ?? 'Menu'\"\n >\n <i class=\"icon-83\"></i>\n @if (titleMenu) {\n <span>{{ titleMenu }}</span>\n }\n </div>\n <div\n class=\"header__language js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"titleLang ?? 'Language Menu'\"\n >\n @if (titleLang) {\n {{ titleLang }}\n }\n </div>\n </div>\n @if (btnBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"header__reserver\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <div class=\"btn btn__primary btn--lg\">\n <span>{{ btnBook }}</span>\n </div>\n </a>\n }\n</header>\n\n<div class=\"modal modal--solidCream modal--navigation\">\n <div class=\"modal__inner\">\n <div class=\"modal__body\" [style.--bg-url]=\"cssBgUrl\">\n <div\n class=\"modal__close js-close\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n aria-label=\"Close Button\"\n >\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n class=\"modal__close--icon\"\n >\n <use href=\"#modal-close\"></use>\n </svg>\n </div>\n <div class=\"modal__nav\">\n <ul class=\"modal__nav--items\">\n @if (navLinks) {\n @for (link of navLinks; track $index) {\n <li class=\"modal__nav--link\">\n <a\n class=\"js-close\"\n activeModal\n data-modal_name=\"navigation\"\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >\n {{ link.label }}\n </a>\n </li>\n }\n }\n </ul>\n <ul class=\"modal__nav--itemsSmall\">\n @if (bottomLinks) {\n @for (link of bottomLinks; track $index) {\n @if (link.url === 'lang') {\n <li\n class=\"modal__nav--link js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"\n link.label ?? 'Language Menu'\n \"\n >\n <a>\n {{ link.label }}\n </a>\n </li>\n } @else {\n <li class=\"modal__nav--link\">\n <a\n class=\"js-close\"\n activeModal\n data-modal_name=\"navigation\"\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >\n {{ link.label }}\n </a>\n </li>\n }\n }\n }\n </ul>\n </div>\n </div>\n </div>\n</div>\n", styles: [".modal.modal--navigation .modal__body:after{background-image:var(--bg-url)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: PuroLinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href", "modalClick"], outputs: ["bookClick", "anchorClicked"] }, { kind: "directive", type: PuroActiveModalDirective, selector: "[activeModal]" }, { kind: "directive", type: PuroNavStickyDirective, selector: "[navSticky]", inputs: ["isDynamic"] }, { kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
80
80
  }
81
81
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroHeaderMobileComponent, decorators: [{
82
82
  type: Component,
@@ -86,7 +86,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
86
86
  PuroActiveModalDirective,
87
87
  PuroNavStickyDirective,
88
88
  NgOptimizedImage,
89
- ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [PuroActiveModalDirective], template: "<header class=\"header\" navSticky [isDynamic]=\"isDynamic\">\n <div class=\"banner__logo\">\n <a\n [href]=\"navLinks?.[0]?.url\"\n [linkType]=\"navLinks?.[0]?.linkType\"\n aria-label=\"Saulo logo\"\n >\n @if (logoHotel && logoHotelWhite) {\n <img\n [ngSrc]=\"hasStickyClasses() ? logoHotel : logoHotelWhite\"\n alt=\"Logo\"\n width=\"177\"\n height=\"68\"\n class=\"banner__logo--img restaurant\"\n priority\n />\n } @else {\n <svg\n aria-hidden=\"true\"\n width=\"177\"\n height=\"68\"\n focusable=\"false\"\n class=\"banner__logo--img\"\n >\n @if (siteId === SITE_HOTELS) {\n <use href=\"#puro-logo\" class=\"purohotels\"></use>\n }\n @if (siteId === SITE_BEACH) {\n <use href=\"#purobeach-logo\" class=\"purobeach\"></use>\n }\n @if (siteId === SITE_GROUP) {\n <use href=\"#purogroup-logo\" class=\"purogroup\"></use>\n }\n </svg>\n }\n </a>\n </div>\n <div class=\"header__leftNav\">\n <div\n class=\"header__menu js-active-modal\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n [attr.aria-label]=\"titleMenu ?? 'Menu'\"\n >\n <i class=\"icon-83\"></i>\n @if (titleMenu) {\n <span>{{ titleMenu }}</span>\n }\n </div>\n <div\n class=\"header__language js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"titleLang ?? 'Language Menu'\"\n >\n @if (titleLang) {\n {{ titleLang }}\n }\n </div>\n </div>\n @if (btnBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"header__reserver\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <div class=\"btn btn__primary btn--lg\">\n <span>{{ btnBook }}</span>\n </div>\n </a>\n }\n</header>\n\n<div class=\"modal modal--solidCream modal--navigation\">\n <div class=\"modal__inner\">\n <div class=\"modal__body\" [style.--bg-url]=\"cssBgUrl\">\n <div\n class=\"modal__close js-close\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n aria-label=\"Close Button\"\n >\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n class=\"modal__close--icon\"\n >\n <use href=\"#modal-close\"></use>\n </svg>\n </div>\n <div class=\"modal__nav\">\n <ul class=\"modal__nav--items\">\n @if (navLinks) {\n @for (link of navLinks; track $index) {\n <li class=\"modal__nav--link\">\n <a\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >{{ link.label }}</a\n >\n </li>\n }\n }\n </ul>\n <ul class=\"modal__nav--itemsSmall\">\n @if (bottomLinks) {\n @for (link of bottomLinks; track $index) {\n @if(link.url === \"lang\"){\n <li \n class=\"modal__nav--link js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"link.label ?? 'Language Menu'\"\n >\n <a>\n {{link.label}}\n </a>\n </li>\n }\n @else {\n <li class=\"modal__nav--link\">\n <a\n [linkType]=\"link.linkType\"\n [href]=\"link.url\"\n [attr.aria-label]=\"link.label\"\n >{{ link.label }}</a\n >\n </li>\n }\n }\n }\n </ul>\n </div>\n </div>\n </div>\n</div>\n", styles: [".modal.modal--navigation .modal__body:after{background-image:var(--bg-url)}\n"] }]
89
+ ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [PuroActiveModalDirective], template: "<header class=\"header\" navSticky [isDynamic]=\"isDynamic\">\n <div class=\"banner__logo\">\n <a\n [href]=\"navLinks?.[0]?.url\"\n [linkType]=\"navLinks?.[0]?.linkType\"\n aria-label=\"Saulo logo\"\n >\n @if (logoHotel && logoHotelWhite) {\n <img\n [ngSrc]=\"hasStickyClasses() ? logoHotel : logoHotelWhite\"\n alt=\"Logo\"\n width=\"177\"\n height=\"68\"\n class=\"banner__logo--img restaurant\"\n priority\n />\n } @else {\n <svg\n aria-hidden=\"true\"\n width=\"177\"\n height=\"68\"\n focusable=\"false\"\n class=\"banner__logo--img\"\n >\n @if (siteId === SITE_HOTELS) {\n <use href=\"#puro-logo\" class=\"purohotels\"></use>\n }\n @if (siteId === SITE_BEACH) {\n <use href=\"#purobeach-logo\" class=\"purobeach\"></use>\n }\n @if (siteId === SITE_GROUP) {\n <use href=\"#purogroup-logo\" class=\"purogroup\"></use>\n }\n </svg>\n }\n </a>\n </div>\n <div class=\"header__leftNav\">\n <div\n class=\"header__menu js-active-modal\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n [attr.aria-label]=\"titleMenu ?? 'Menu'\"\n >\n <i class=\"icon-83\"></i>\n @if (titleMenu) {\n <span>{{ titleMenu }}</span>\n }\n </div>\n <div\n class=\"header__language js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"titleLang ?? 'Language Menu'\"\n >\n @if (titleLang) {\n {{ titleLang }}\n }\n </div>\n </div>\n @if (btnBook) {\n <a\n (click)=\"btnClick.emit()\"\n class=\"header__reserver\"\n role=\"button\"\n [attr.aria-label]=\"btnBook\"\n >\n <div class=\"btn btn__primary btn--lg\">\n <span>{{ btnBook }}</span>\n </div>\n </a>\n }\n</header>\n\n<div class=\"modal modal--solidCream modal--navigation\">\n <div class=\"modal__inner\">\n <div class=\"modal__body\" [style.--bg-url]=\"cssBgUrl\">\n <div\n class=\"modal__close js-close\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n aria-label=\"Close Button\"\n >\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n class=\"modal__close--icon\"\n >\n <use href=\"#modal-close\"></use>\n </svg>\n </div>\n <div class=\"modal__nav\">\n <ul class=\"modal__nav--items\">\n @if (navLinks) {\n @for (link of navLinks; track $index) {\n <li class=\"modal__nav--link\">\n <a\n class=\"js-close\"\n activeModal\n data-modal_name=\"navigation\"\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >\n {{ link.label }}\n </a>\n </li>\n }\n }\n </ul>\n <ul class=\"modal__nav--itemsSmall\">\n @if (bottomLinks) {\n @for (link of bottomLinks; track $index) {\n @if (link.url === 'lang') {\n <li\n class=\"modal__nav--link js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"\n link.label ?? 'Language Menu'\n \"\n >\n <a>\n {{ link.label }}\n </a>\n </li>\n } @else {\n <li class=\"modal__nav--link\">\n <a\n class=\"js-close\"\n activeModal\n data-modal_name=\"navigation\"\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >\n {{ link.label }}\n </a>\n </li>\n }\n }\n }\n </ul>\n </div>\n </div>\n </div>\n</div>\n", styles: [".modal.modal--navigation .modal__body:after{background-image:var(--bg-url)}\n"] }]
90
90
  }], propDecorators: { titleMenu: [{
91
91
  type: Input
92
92
  }], titleLang: [{
@@ -110,4 +110,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
110
110
  }], btnClick: [{
111
111
  type: Output
112
112
  }] } });
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1oZWFkZXItbW9iaWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3B1cm8vc3JjL2xpYi9jb21wb25lbnRzL3B1cm8taGVhZGVyLW1vYmlsZS9wdXJvLWhlYWRlci1tb2JpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby1oZWFkZXItbW9iaWxlL3B1cm8taGVhZGVyLW1vYmlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEYsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLE1BQU0sRUFHTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFpQixNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV4RCxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLHFCQUFxQixHQUN0QixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDOztBQWtCcEcsTUFBTSxPQUFPLHlCQUF5QjtJQWZ0QztRQWdCVSxtQkFBYyxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ2xELGVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQU92QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBU2pCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRS9CLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFDZixnQkFBVyxH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TTtZQUNSO2dCQUNFLE1BQU07U0FDVDtJQUNILENBQUM7K0dBbkdVLHlCQUF5QjttR0FBekIseUJBQXlCLHdXQUZ6QixDQUFDLHdCQUF3QixDQUFDLDBCQ25DdkMsc3FLQThJQSxzSURwSEksWUFBWSwrQkFDWixxQkFBcUIsNElBQ3JCLHdCQUF3QiwwREFDeEIsc0JBQXNCLCtFQUN0QixnQkFBZ0I7OzRGQU9QLHlCQUF5QjtrQkFmckMsU0FBUzsrQkFDRSx3QkFBd0IsY0FDdEIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1oscUJBQXFCO3dCQUNyQix3QkFBd0I7d0JBQ3hCLHNCQUFzQjt3QkFDdEIsZ0JBQWdCO3FCQUNqQixtQkFHZ0IsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLHdCQUF3QixDQUFDOzhCQU81QixTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFLSSxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBpc1BsYXRmb3JtQnJvd3NlciwgTmdPcHRpbWl6ZWRJbWFnZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFBMQVRGT1JNX0lELFxuICBpbmplY3QsXG4gIE9uSW5pdCxcbiAgT25EZXN0cm95LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgUHVyb0FjdGl2ZU1vZGFsRGlyZWN0aXZlLFxuICBQdXJvTGlua1R5cGVEaXJlY3RpdmUsXG59IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgUHVyb05hdlN0aWNreURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvcHVyby1uYXYtc3RpY2t5L3B1cm8tbmF2LXN0aWNreS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUHVyb0J1dHRvbkksIFB1cm9JbWFnZUkgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXB1cm8taGVhZGVyLW1vYmlsZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUHVyb0xpbmtUeXBlRGlyZWN0aXZlLFxuICAgIFB1cm9BY3RpdmVNb2RhbERpcmVjdGl2ZSxcbiAgICBQdXJvTmF2U3RpY2t5RGlyZWN0aXZlLFxuICAgIE5nT3B0aW1pemVkSW1hZ2UsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wdXJvLWhlYWRlci1tb2JpbGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHVyby1oZWFkZXItbW9iaWxlLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1B1cm9BY3RpdmVNb2RhbERpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIFB1cm9IZWFkZXJNb2JpbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgYWN0aXZlTW9kYWxEdHYgPSBpbmplY3QoUHVyb0FjdGl2ZU1vZGFsRGlyZWN0aXZlKTtcbiAgcHJpdmF0ZSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgcHJpdmF0ZSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcblxuICBASW5wdXQoKSB0aXRsZU1lbnU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRpdGxlTGFuZz86IHN0cmluZztcbiAgQElucHV0KCkgYnRuQm9vaz86IHN0cmluZztcbiAgQElucHV0KCkgbmF2TGlua3M/OiBQdXJvQnV0dG9uSVtdO1xuICBASW5wdXQoKSBib3R0b21MaW5rcz86IFB1cm9CdXR0b25JW107XG4gIEBJbnB1dCgpIGlzRHluYW1pYyA9IGZhbHNlO1xuICBASW5wdXQoKSBob3RlbEJyYW5kPzogUHVyb0ltYWdlSTtcbiAgQElucHV0KCkgbG9nb0hvdGVsPzogc3RyaW5nO1xuICBASW5wdXQoKSBsb2dvSG90ZWxXaGl0ZT86IHN0cmluZztcbiAgQElucHV0KCkgc2l0ZUlkPzpcbiAgICB8IHR5cGVvZiB0aGlzLlNJVEVfR1JPVVBcbiAgICB8IHR5cGVvZiB0aGlzLlNJVEVfQkVBQ0hcbiAgICB8IHR5cGVvZiB0aGlzLlNJVEVfSE9URUxTO1xuXG4gIEBPdXRwdXQoKSBidG5DbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICByZWFkb25seSBTSVRFX0dST1VQID0gMTtcbiAgcmVhZG9ubHkgU0lURV9IT1RFTFMgPSAyO1xuICByZWFkb25seSBTSVRFX0JFQUNIID0gMztcblxuICBjc3NCZ1VybCA9ICcnO1xuXG4gIC8vIPCfkYHvuI8gU2lnbmFsIHJlYWN0aXZvIHF1ZSBpbmRpY2Egc2kgZWwgYm9keSB0aWVuZSBsYXMgY2xhc2VzIHN0aWNreVxuICBoYXNTdGlja3lDbGFzc2VzID0gc2lnbmFsKGZhbHNlKTtcblxuICBwcml2YXRlIG9ic2VydmVyPzogTXV0YXRpb25PYnNlcnZlcjtcbiAgcHJpdmF0ZSBzY3JvbGxMaXN0ZW5lcj86ICgpID0+IHZvaWQ7XG4gIHByaXZhdGUgcmFmSWQ/OiBudW1iZXI7XG4gIHByaXZhdGUgcm91dGVyU3ViPzogYW55O1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhvdGVsQnJhbmQ/LnNyYykge1xuICAgICAgdGhpcy5jc3NCZ1VybCA9IGB1cmwoXCIke3RoaXMuaG90ZWxCcmFuZC5zcmN9XCIpYDtcbiAgICB9XG5cbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuXG4gICAgICAvLyBJbmljaWFsaXphciBlc3RhZG8gc3RpY2t5XG4gICAgICB0aGlzLnVwZGF0ZVN0aWNreVN0YXRlKCk7XG5cbiAgICAgIC8vIPCfkYHvuI8gT2JzZXJ2ZXIgcGFyYSBjYW1iaW9zIGRlIGNsYXNlIGVuIGVsIGJvZHlcbiAgICAgIHRoaXMub2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiB0aGlzLnVwZGF0ZVN0aWNreVN0YXRlKCkpO1xuICAgICAgdGhpcy5vYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHtcbiAgICAgICAgYXR0cmlidXRlczogdHJ1ZSxcbiAgICAgICAgYXR0cmlidXRlRmlsdGVyOiBbJ2NsYXNzJ10sXG4gICAgICB9KTtcblxuICAgICAgLy8g8J+OryBMaXN0ZW5lciBkZSBzY3JvbGxcbiAgICAgIHRoaXMuc2Nyb2xsTGlzdGVuZXIgPSAoKSA9PiB7XG4gICAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMucmFmSWQhKTtcbiAgICAgICAgdGhpcy5yYWZJZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgY3VycmVudCA9IHRoaXMuY2hlY2tTdGlja3lDbGFzc2VzKCk7XG4gICAgICAgICAgaWYgKHRoaXMuaGFzU3RpY2t5Q2xhc3NlcygpICE9PSBjdXJyZW50KSB7XG4gICAgICAgICAgICB0aGlzLmhhc1N0aWNreUNsYXNzZXMuc2V0KGN1cnJlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuc2Nyb2xsTGlzdGVuZXIsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgaWYgKHRoaXMuc2Nyb2xsTGlzdGVuZXIpXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5zY3JvbGxMaXN0ZW5lcik7XG4gICAgaWYgKHRoaXMucmFmSWQpIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMucmFmSWQpO1xuXG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVN0aWNreVN0YXRlKCk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmNoZWNrU3RpY2t5Q2xhc3NlcygpO1xuICAgIGlmICh0aGlzLmhhc1N0aWNreUNsYXNzZXMoKSAhPT0gY3VycmVudCkge1xuICAgICAgdGhpcy5oYXNTdGlja3lDbGFzc2VzLnNldChjdXJyZW50KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoZWNrU3RpY2t5Q2xhc3NlcygpOiBib29sZWFuIHtcbiAgICBjb25zdCBib2R5ID0gZG9jdW1lbnQuYm9keS5jbGFzc0xpc3Q7XG4gICAgcmV0dXJuIGJvZHkuY29udGFpbnMoJ25hdi1zdGlja3knKSAmJiBib2R5LmNvbnRhaW5zKCdtb2JpbGUtc3RpY2t5Jyk7XG4gIH1cblxuICBjbGlja0J0bkJvb2soKTogdm9pZCB7XG4gICAgdGhpcy5idG5DbGljay5lbWl0KCk7XG4gICAgc3dpdGNoICh0aGlzLnNpdGVJZCkge1xuICAgICAgY2FzZSB0aGlzLlNJVEVfR1JPVVA6XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSB0aGlzLlNJVEVfSE9URUxTOlxuICAgICAgICB0aGlzLmFjdGl2ZU1vZGFsRHR2LmhhbmRsZUNsaWNrKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSB0aGlzLlNJVEVfQkVBQ0g6XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG4iLCI8aGVhZGVyIGNsYXNzPVwiaGVhZGVyXCIgbmF2U3RpY2t5IFtpc0R5bmFtaWNdPVwiaXNEeW5hbWljXCI+XG4gICAgPGRpdiBjbGFzcz1cImJhbm5lcl9fbG9nb1wiPlxuICAgICAgICA8YVxuICAgICAgICAgICAgW2hyZWZdPVwibmF2TGlua3M/LlswXT8udXJsXCJcbiAgICAgICAgICAgIFtsaW5rVHlwZV09XCJuYXZMaW5rcz8uWzBdPy5saW5rVHlwZVwiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2F1bG8gbG9nb1wiXG4gICAgICAgID5cbiAgICAgICAgQGlmIChsb2dvSG90ZWwgJiYgbG9nb0hvdGVsV2hpdGUpIHtcbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgW25nU3JjXT1cImhhc1N0aWNreUNsYXNzZXMoKSA/IGxvZ29Ib3RlbCA6IGxvZ29Ib3RlbFdoaXRlXCJcbiAgICAgICAgICAgICAgICAgICAgYWx0PVwiTG9nb1wiXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTc3XCJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiNjhcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJhbm5lcl9fbG9nby0taW1nIHJlc3RhdXJhbnRcIlxuICAgICAgICAgICAgICAgICAgICBwcmlvcml0eVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIxNzdcIlxuICAgICAgICAgICAgICAgIGhlaWdodD1cIjY4XCJcbiAgICAgICAgICAgICAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJiYW5uZXJfX2xvZ28tLWltZ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQGlmIChzaXRlSWQgPT09IFNJVEVfSE9URUxTKSB7XG4gICAgICAgICAgICAgICAgICAgIDx1c2UgaHJlZj1cIiNwdXJvLWxvZ29cIiBjbGFzcz1cInB1cm9ob3RlbHNcIj48L3VzZT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChzaXRlSWQgPT09IFNJVEVfQkVBQ0gpIHtcbiAgICAgICAgICAgICAgICAgICAgPHVzZSBocmVmPVwiI3B1cm9iZWFjaC1sb2dvXCIgY2xhc3M9XCJwdXJvYmVhY2hcIj48L3VzZT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChzaXRlSWQgPT09IFNJVEVfR1JPVVApIHtcbiAgICAgICAgICAgICAgICAgICAgPHVzZSBocmVmPVwiI3B1cm9ncm91cC1sb2dvXCIgY2xhc3M9XCJwdXJvZ3JvdXBcIj48L3VzZT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgfVxuICAgICAgICA8L2E+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImhlYWRlcl9fbGVmdE5hdlwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImhlYWRlcl9fbWVudSBqcy1hY3RpdmUtbW9kYWxcIlxuICAgICAgICAgICAgYWN0aXZlTW9kYWxcbiAgICAgICAgICAgIGRhdGEtbW9kYWxfbmFtZT1cIm5hdmlnYXRpb25cIlxuICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRpdGxlTWVudSA/PyAnTWVudSdcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb24tODNcIj48L2k+XG4gICAgICAgICAgICBAaWYgKHRpdGxlTWVudSkge1xuICAgICAgICAgICAgICAgIDxzcGFuPnt7IHRpdGxlTWVudSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiaGVhZGVyX19sYW5ndWFnZSBqcy1hY3RpdmUtbW9kYWxcIlxuICAgICAgICAgICAgYWN0aXZlTW9kYWxcbiAgICAgICAgICAgIGRhdGEtbW9kYWxfbmFtZT1cImxhbmd1YWdlXCJcbiAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0aXRsZUxhbmcgPz8gJ0xhbmd1YWdlIE1lbnUnXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgQGlmICh0aXRsZUxhbmcpIHtcbiAgICAgICAgICAgICAgICB7eyB0aXRsZUxhbmcgfX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgQGlmIChidG5Cb29rKSB7XG4gICAgICAgIDxhXG4gICAgICAgICAgICAoY2xpY2spPVwiYnRuQ2xpY2suZW1pdCgpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiaGVhZGVyX19yZXNlcnZlclwiXG4gICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYnRuQm9va1wiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4gYnRuX19wcmltYXJ5IGJ0bi0tbGdcIj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyBidG5Cb29rIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYT5cbiAgICB9XG48L2hlYWRlcj5cblxuPGRpdiBjbGFzcz1cIm1vZGFsIG1vZGFsLS1zb2xpZENyZWFtIG1vZGFsLS1uYXZpZ2F0aW9uXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsX19pbm5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWxfX2JvZHlcIiBbc3R5bGUuLS1iZy11cmxdPVwiY3NzQmdVcmxcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1vZGFsX19jbG9zZSBqcy1jbG9zZVwiXG4gICAgICAgICAgICAgICAgYWN0aXZlTW9kYWxcbiAgICAgICAgICAgICAgICBkYXRhLW1vZGFsX25hbWU9XCJuYXZpZ2F0aW9uXCJcbiAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xvc2UgQnV0dG9uXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtb2RhbF9fY2xvc2UtLWljb25cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHVzZSBocmVmPVwiI21vZGFsLWNsb3NlXCI+PC91c2U+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbF9fbmF2XCI+XG4gICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibW9kYWxfX25hdi0taXRlbXNcIj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChuYXZMaW5rcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAobGluayBvZiBuYXZMaW5rczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibW9kYWxfX25hdi0tbGlua1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwibGluay51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtUeXBlXT1cImxpbmsubGlua1R5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsaW5rLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyBsaW5rLmxhYmVsIH19PC9hXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJtb2RhbF9fbmF2LS1pdGVtc1NtYWxsXCI+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoYm90dG9tTGlua3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGxpbmsgb2YgYm90dG9tTGlua3M7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihsaW5rLnVybCA9PT0gXCJsYW5nXCIpe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1vZGFsX19uYXYtLWxpbmsganMtYWN0aXZlLW1vZGFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZU1vZGFsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLW1vZGFsX25hbWU9XCJsYW5ndWFnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGluay5sYWJlbCA/PyAnTGFuZ3VhZ2UgTWVudSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2xpbmsubGFiZWx9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm1vZGFsX19uYXYtLWxpbmtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtUeXBlXT1cImxpbmsubGlua1R5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cImxpbmsudXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxpbmsubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyBsaW5rLmxhYmVsIH19PC9hXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1oZWFkZXItbW9iaWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3B1cm8vc3JjL2xpYi9jb21wb25lbnRzL3B1cm8taGVhZGVyLW1vYmlsZS9wdXJvLWhlYWRlci1tb2JpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby1oZWFkZXItbW9iaWxlL3B1cm8taGVhZGVyLW1vYmlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEYsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLE1BQU0sRUFHTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFpQixNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV4RCxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLHFCQUFxQixHQUN0QixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDOztBQWtCcEcsTUFBTSxPQUFPLHlCQUF5QjtJQWZ0QztRQWdCVSxtQkFBYyxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ2xELGVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQU92QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBU2pCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRS9CLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFDZixnQkFBVyxH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TTtZQUNSO2dCQUNFLE1BQU07U0FDVDtJQUNILENBQUM7K0dBbkdVLHlCQUF5QjttR0FBekIseUJBQXlCLHdXQUZ6QixDQUFDLHdCQUF3QixDQUFDLDBCQ25DdkMsd29MQXVKQSxzSUQ3SEksWUFBWSwrQkFDWixxQkFBcUIsNElBQ3JCLHdCQUF3QiwwREFDeEIsc0JBQXNCLCtFQUN0QixnQkFBZ0I7OzRGQU9QLHlCQUF5QjtrQkFmckMsU0FBUzsrQkFDRSx3QkFBd0IsY0FDdEIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1oscUJBQXFCO3dCQUNyQix3QkFBd0I7d0JBQ3hCLHNCQUFzQjt3QkFDdEIsZ0JBQWdCO3FCQUNqQixtQkFHZ0IsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLHdCQUF3QixDQUFDOzhCQU81QixTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFLSSxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBpc1BsYXRmb3JtQnJvd3NlciwgTmdPcHRpbWl6ZWRJbWFnZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFBMQVRGT1JNX0lELFxuICBpbmplY3QsXG4gIE9uSW5pdCxcbiAgT25EZXN0cm95LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgUHVyb0FjdGl2ZU1vZGFsRGlyZWN0aXZlLFxuICBQdXJvTGlua1R5cGVEaXJlY3RpdmUsXG59IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgUHVyb05hdlN0aWNreURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvcHVyby1uYXYtc3RpY2t5L3B1cm8tbmF2LXN0aWNreS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUHVyb0J1dHRvbkksIFB1cm9JbWFnZUkgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXB1cm8taGVhZGVyLW1vYmlsZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUHVyb0xpbmtUeXBlRGlyZWN0aXZlLFxuICAgIFB1cm9BY3RpdmVNb2RhbERpcmVjdGl2ZSxcbiAgICBQdXJvTmF2U3RpY2t5RGlyZWN0aXZlLFxuICAgIE5nT3B0aW1pemVkSW1hZ2UsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wdXJvLWhlYWRlci1tb2JpbGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHVyby1oZWFkZXItbW9iaWxlLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1B1cm9BY3RpdmVNb2RhbERpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIFB1cm9IZWFkZXJNb2JpbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgYWN0aXZlTW9kYWxEdHYgPSBpbmplY3QoUHVyb0FjdGl2ZU1vZGFsRGlyZWN0aXZlKTtcbiAgcHJpdmF0ZSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgcHJpdmF0ZSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcblxuICBASW5wdXQoKSB0aXRsZU1lbnU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRpdGxlTGFuZz86IHN0cmluZztcbiAgQElucHV0KCkgYnRuQm9vaz86IHN0cmluZztcbiAgQElucHV0KCkgbmF2TGlua3M/OiBQdXJvQnV0dG9uSVtdO1xuICBASW5wdXQoKSBib3R0b21MaW5rcz86IFB1cm9CdXR0b25JW107XG4gIEBJbnB1dCgpIGlzRHluYW1pYyA9IGZhbHNlO1xuICBASW5wdXQoKSBob3RlbEJyYW5kPzogUHVyb0ltYWdlSTtcbiAgQElucHV0KCkgbG9nb0hvdGVsPzogc3RyaW5nO1xuICBASW5wdXQoKSBsb2dvSG90ZWxXaGl0ZT86IHN0cmluZztcbiAgQElucHV0KCkgc2l0ZUlkPzpcbiAgICB8IHR5cGVvZiB0aGlzLlNJVEVfR1JPVVBcbiAgICB8IHR5cGVvZiB0aGlzLlNJVEVfQkVBQ0hcbiAgICB8IHR5cGVvZiB0aGlzLlNJVEVfSE9URUxTO1xuXG4gIEBPdXRwdXQoKSBidG5DbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICByZWFkb25seSBTSVRFX0dST1VQID0gMTtcbiAgcmVhZG9ubHkgU0lURV9IT1RFTFMgPSAyO1xuICByZWFkb25seSBTSVRFX0JFQUNIID0gMztcblxuICBjc3NCZ1VybCA9ICcnO1xuXG4gIC8vIPCfkYHvuI8gU2lnbmFsIHJlYWN0aXZvIHF1ZSBpbmRpY2Egc2kgZWwgYm9keSB0aWVuZSBsYXMgY2xhc2VzIHN0aWNreVxuICBoYXNTdGlja3lDbGFzc2VzID0gc2lnbmFsKGZhbHNlKTtcblxuICBwcml2YXRlIG9ic2VydmVyPzogTXV0YXRpb25PYnNlcnZlcjtcbiAgcHJpdmF0ZSBzY3JvbGxMaXN0ZW5lcj86ICgpID0+IHZvaWQ7XG4gIHByaXZhdGUgcmFmSWQ/OiBudW1iZXI7XG4gIHByaXZhdGUgcm91dGVyU3ViPzogYW55O1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhvdGVsQnJhbmQ/LnNyYykge1xuICAgICAgdGhpcy5jc3NCZ1VybCA9IGB1cmwoXCIke3RoaXMuaG90ZWxCcmFuZC5zcmN9XCIpYDtcbiAgICB9XG5cbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuXG4gICAgICAvLyBJbmljaWFsaXphciBlc3RhZG8gc3RpY2t5XG4gICAgICB0aGlzLnVwZGF0ZVN0aWNreVN0YXRlKCk7XG5cbiAgICAgIC8vIPCfkYHvuI8gT2JzZXJ2ZXIgcGFyYSBjYW1iaW9zIGRlIGNsYXNlIGVuIGVsIGJvZHlcbiAgICAgIHRoaXMub2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiB0aGlzLnVwZGF0ZVN0aWNreVN0YXRlKCkpO1xuICAgICAgdGhpcy5vYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHtcbiAgICAgICAgYXR0cmlidXRlczogdHJ1ZSxcbiAgICAgICAgYXR0cmlidXRlRmlsdGVyOiBbJ2NsYXNzJ10sXG4gICAgICB9KTtcblxuICAgICAgLy8g8J+OryBMaXN0ZW5lciBkZSBzY3JvbGxcbiAgICAgIHRoaXMuc2Nyb2xsTGlzdGVuZXIgPSAoKSA9PiB7XG4gICAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMucmFmSWQhKTtcbiAgICAgICAgdGhpcy5yYWZJZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgY3VycmVudCA9IHRoaXMuY2hlY2tTdGlja3lDbGFzc2VzKCk7XG4gICAgICAgICAgaWYgKHRoaXMuaGFzU3RpY2t5Q2xhc3NlcygpICE9PSBjdXJyZW50KSB7XG4gICAgICAgICAgICB0aGlzLmhhc1N0aWNreUNsYXNzZXMuc2V0KGN1cnJlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuc2Nyb2xsTGlzdGVuZXIsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgaWYgKHRoaXMuc2Nyb2xsTGlzdGVuZXIpXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5zY3JvbGxMaXN0ZW5lcik7XG4gICAgaWYgKHRoaXMucmFmSWQpIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMucmFmSWQpO1xuXG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVN0aWNreVN0YXRlKCk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmNoZWNrU3RpY2t5Q2xhc3NlcygpO1xuICAgIGlmICh0aGlzLmhhc1N0aWNreUNsYXNzZXMoKSAhPT0gY3VycmVudCkge1xuICAgICAgdGhpcy5oYXNTdGlja3lDbGFzc2VzLnNldChjdXJyZW50KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoZWNrU3RpY2t5Q2xhc3NlcygpOiBib29sZWFuIHtcbiAgICBjb25zdCBib2R5ID0gZG9jdW1lbnQuYm9keS5jbGFzc0xpc3Q7XG4gICAgcmV0dXJuIGJvZHkuY29udGFpbnMoJ25hdi1zdGlja3knKSAmJiBib2R5LmNvbnRhaW5zKCdtb2JpbGUtc3RpY2t5Jyk7XG4gIH1cblxuICBjbGlja0J0bkJvb2soKTogdm9pZCB7XG4gICAgdGhpcy5idG5DbGljay5lbWl0KCk7XG4gICAgc3dpdGNoICh0aGlzLnNpdGVJZCkge1xuICAgICAgY2FzZSB0aGlzLlNJVEVfR1JPVVA6XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSB0aGlzLlNJVEVfSE9URUxTOlxuICAgICAgICB0aGlzLmFjdGl2ZU1vZGFsRHR2LmhhbmRsZUNsaWNrKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSB0aGlzLlNJVEVfQkVBQ0g6XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG4iLCI8aGVhZGVyIGNsYXNzPVwiaGVhZGVyXCIgbmF2U3RpY2t5IFtpc0R5bmFtaWNdPVwiaXNEeW5hbWljXCI+XG4gICAgPGRpdiBjbGFzcz1cImJhbm5lcl9fbG9nb1wiPlxuICAgICAgICA8YVxuICAgICAgICAgICAgW2hyZWZdPVwibmF2TGlua3M/LlswXT8udXJsXCJcbiAgICAgICAgICAgIFtsaW5rVHlwZV09XCJuYXZMaW5rcz8uWzBdPy5saW5rVHlwZVwiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2F1bG8gbG9nb1wiXG4gICAgICAgID5cbiAgICAgICAgQGlmIChsb2dvSG90ZWwgJiYgbG9nb0hvdGVsV2hpdGUpIHtcbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgW25nU3JjXT1cImhhc1N0aWNreUNsYXNzZXMoKSA/IGxvZ29Ib3RlbCA6IGxvZ29Ib3RlbFdoaXRlXCJcbiAgICAgICAgICAgICAgICAgICAgYWx0PVwiTG9nb1wiXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTc3XCJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiNjhcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJhbm5lcl9fbG9nby0taW1nIHJlc3RhdXJhbnRcIlxuICAgICAgICAgICAgICAgICAgICBwcmlvcml0eVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIxNzdcIlxuICAgICAgICAgICAgICAgIGhlaWdodD1cIjY4XCJcbiAgICAgICAgICAgICAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJiYW5uZXJfX2xvZ28tLWltZ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQGlmIChzaXRlSWQgPT09IFNJVEVfSE9URUxTKSB7XG4gICAgICAgICAgICAgICAgICAgIDx1c2UgaHJlZj1cIiNwdXJvLWxvZ29cIiBjbGFzcz1cInB1cm9ob3RlbHNcIj48L3VzZT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChzaXRlSWQgPT09IFNJVEVfQkVBQ0gpIHtcbiAgICAgICAgICAgICAgICAgICAgPHVzZSBocmVmPVwiI3B1cm9iZWFjaC1sb2dvXCIgY2xhc3M9XCJwdXJvYmVhY2hcIj48L3VzZT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChzaXRlSWQgPT09IFNJVEVfR1JPVVApIHtcbiAgICAgICAgICAgICAgICAgICAgPHVzZSBocmVmPVwiI3B1cm9ncm91cC1sb2dvXCIgY2xhc3M9XCJwdXJvZ3JvdXBcIj48L3VzZT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgfVxuICAgICAgICA8L2E+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImhlYWRlcl9fbGVmdE5hdlwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImhlYWRlcl9fbWVudSBqcy1hY3RpdmUtbW9kYWxcIlxuICAgICAgICAgICAgYWN0aXZlTW9kYWxcbiAgICAgICAgICAgIGRhdGEtbW9kYWxfbmFtZT1cIm5hdmlnYXRpb25cIlxuICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRpdGxlTWVudSA/PyAnTWVudSdcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb24tODNcIj48L2k+XG4gICAgICAgICAgICBAaWYgKHRpdGxlTWVudSkge1xuICAgICAgICAgICAgICAgIDxzcGFuPnt7IHRpdGxlTWVudSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiaGVhZGVyX19sYW5ndWFnZSBqcy1hY3RpdmUtbW9kYWxcIlxuICAgICAgICAgICAgYWN0aXZlTW9kYWxcbiAgICAgICAgICAgIGRhdGEtbW9kYWxfbmFtZT1cImxhbmd1YWdlXCJcbiAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0aXRsZUxhbmcgPz8gJ0xhbmd1YWdlIE1lbnUnXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgQGlmICh0aXRsZUxhbmcpIHtcbiAgICAgICAgICAgICAgICB7eyB0aXRsZUxhbmcgfX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgQGlmIChidG5Cb29rKSB7XG4gICAgICAgIDxhXG4gICAgICAgICAgICAoY2xpY2spPVwiYnRuQ2xpY2suZW1pdCgpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiaGVhZGVyX19yZXNlcnZlclwiXG4gICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYnRuQm9va1wiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4gYnRuX19wcmltYXJ5IGJ0bi0tbGdcIj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyBidG5Cb29rIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYT5cbiAgICB9XG48L2hlYWRlcj5cblxuPGRpdiBjbGFzcz1cIm1vZGFsIG1vZGFsLS1zb2xpZENyZWFtIG1vZGFsLS1uYXZpZ2F0aW9uXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsX19pbm5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWxfX2JvZHlcIiBbc3R5bGUuLS1iZy11cmxdPVwiY3NzQmdVcmxcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1vZGFsX19jbG9zZSBqcy1jbG9zZVwiXG4gICAgICAgICAgICAgICAgYWN0aXZlTW9kYWxcbiAgICAgICAgICAgICAgICBkYXRhLW1vZGFsX25hbWU9XCJuYXZpZ2F0aW9uXCJcbiAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xvc2UgQnV0dG9uXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtb2RhbF9fY2xvc2UtLWljb25cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHVzZSBocmVmPVwiI21vZGFsLWNsb3NlXCI+PC91c2U+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbF9fbmF2XCI+XG4gICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibW9kYWxfX25hdi0taXRlbXNcIj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChuYXZMaW5rcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAobGluayBvZiBuYXZMaW5rczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibW9kYWxfX25hdi0tbGlua1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJqcy1jbG9zZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVNb2RhbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1tb2RhbF9uYW1lPVwibmF2aWdhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJsaW5rLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwibGluay5saW5rVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxpbmsubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBsaW5rLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJtb2RhbF9fbmF2LS1pdGVtc1NtYWxsXCI+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoYm90dG9tTGlua3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGxpbmsgb2YgYm90dG9tTGlua3M7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAobGluay51cmwgPT09ICdsYW5nJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibW9kYWxfX25hdi0tbGluayBqcy1hY3RpdmUtbW9kYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlTW9kYWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtbW9kYWxfbmFtZT1cImxhbmd1YWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rLmxhYmVsID8/ICdMYW5ndWFnZSBNZW51J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgbGluay5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJtb2RhbF9fbmF2LS1saW5rXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwianMtY2xvc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZU1vZGFsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1tb2RhbF9uYW1lPVwibmF2aWdhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwibGluay51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJsaW5rLmxpbmtUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxpbmsubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxpbmsubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=