ctt-puro 0.70.43 → 0.70.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/puro-gallery/puro-gallery.component.mjs +3 -3
- package/esm2022/lib/components/puro-vertical-info/puro-vertical-info.component.mjs +3 -3
- package/esm2022/lib/services/mapper/mapper.service.mjs +4 -2
- package/fesm2022/ctt-puro.mjs +7 -5
- package/fesm2022/ctt-puro.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -50,7 +50,7 @@ export class PuroGalleryComponent {
|
|
|
50
50
|
});
|
|
51
51
|
}
|
|
52
52
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroGalleryComponent, deps: [{ token: i1.ModalStateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
53
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroGalleryComponent, isStandalone: true, selector: "lib-puro-gallery", inputs: { pretitle: "pretitle", title: "title", roomTitle: "roomTitle", filters: "filters", items: "items", button: "button", tags: "tags", textColors: "textColors" }, ngImport: i0, template: "<section class=\"gallery gallery--withTabs generalMargin\">\n @if (pretitle) {\n <lib-puro-dynamic-heading\n [tag]=\"tags?.pretitle || 'span'\"\n cssClass=\"gallery__title\"\n [color]=\"textColors?.pretitle\"\n [content]=\"pretitle\"\n ></lib-puro-dynamic-heading>\n }\n @if (title) {\n <lib-puro-dynamic-heading\n [tag]=\"tags?.title || 'h2'\"\n cssClass=\"gallery__heading\"\n [color]=\"textColors?.title\"\n [content]=\"title\"\n ></lib-puro-dynamic-heading>\n }\n\n @if (categoriesFilters()) {\n <ul class=\"gallery__tabs\">\n @for (option of categoriesFilters(); track $index) {\n <!-- Filtros normales -->\n @if (!option.rooms) {\n <li\n role=\"button\"\n class=\"js-filter-gallery\"\n [filterGallery]=\"option\"\n (filterSelect)=\"filterItems($event)\"\n [class.active]=\"\n !filterSelected()?.room &&\n (option.all\n ? !!filterSelected()?.all\n : filterSelected()?.id === option.id)\n \"\n [attr.aria-selected]=\"\n !filterSelected()?.room &&\n (option.all\n ? !!filterSelected()?.all\n : filterSelected()?.id === option.id)\n \"\n [attr.data-filter_category]=\"option.id\"\n [attr.aria-label]=\"option.text\"\n >\n {{ option.text }}\n </li>\n }\n\n <!-- Rooms: MISMO patr\u00F3n que languages -->\n @if (option.rooms) {\n <li\n class=\"js-active-modal\"\n activeModal\n data-modal_name=\"filter\"\n role=\"button\"\n (click)=\"prepareRoomsModal()\"\n [attr.aria-label]=\"option.text || 'Rooms'\"\n >\n {{ option.text }}\n </li>\n }\n }\n </ul>\n <!-- Categor\u00EDas (sin rooms ni room:true) -->\n <div class=\"form__group withIcon\">\n <select\n class=\"form__control\"\n [filterGallery]=\"categoriesFilters()\"\n (filterSelect)=\"filterItems($event)\"\n >\n <option value=\"\" selected disabled>Categor\u00EDas</option>\n @for (option of categoriesFilters(); track $index) {\n @if (!option.rooms && !option.room) {\n <option [value]=\"option.id\">{{ option.text }}</option>\n }\n }\n </select>\n <span class=\"icon-right\">\n <svg aria-hidden=\"true\" focusable=\"false\" width=\"15\" height=\"8\">\n <use href=\"#select-arrow\"></use>\n </svg>\n </span>\n </div>\n\n <!-- Habitaciones (room:true) -->\n <div class=\"form__group withIcon\">\n <select\n class=\"form__control\"\n [filterGallery]=\"roomsFilters()\"\n (filterSelect)=\"filterItems($event)\"\n >\n <option value=\"\" selected disabled>Habitaciones</option>\n @for (option of roomsFilters(); track $index) {\n <option [value]=\"option.id\">{{ option.text }}</option>\n }\n </select>\n <span class=\"icon-right\">\n <svg aria-hidden=\"true\" focusable=\"false\" width=\"15\" height=\"8\">\n <use href=\"#select-arrow\"></use>\n </svg>\n </span>\n </div>\n }\n\n <div class=\"gallery__list galleryGrid__for-7\">\n @if (itemsDisplayed()) {\n @for (item of itemsDisplayed(); track $index) {\n <div\n class=\"gallery__item show\"\n [attr.data-category]=\"item.filter\"\n [attr.data-title]=\"item.title\"\n >\n <div\n role=\"button\"\n class=\"gallery__box js-active-modal\"\n activeModal\n data-modal_name=\"gallery\"\n [attr.aria-label]=\"item.title ?? 'Gallery Item'\"\n [attr.data-img]=\"item.img?.src\"\n [attr.data-title]=\"item.title\"\n >\n <div class=\"gallery__graphic\">\n @if (item.img) {\n <img\n [src]=\"item.img.src\"\n width=\"789\"\n height=\"747\"\n class=\"gallery__graphic--img\"\n [alt]=\"item.title\"
|
|
53
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroGalleryComponent, isStandalone: true, selector: "lib-puro-gallery", inputs: { pretitle: "pretitle", title: "title", roomTitle: "roomTitle", filters: "filters", items: "items", button: "button", tags: "tags", textColors: "textColors" }, ngImport: i0, template: "<section class=\"gallery gallery--withTabs generalMargin\">\n @if (pretitle) {\n <lib-puro-dynamic-heading\n [tag]=\"tags?.pretitle || 'span'\"\n cssClass=\"gallery__title\"\n [color]=\"textColors?.pretitle\"\n [content]=\"pretitle\"\n ></lib-puro-dynamic-heading>\n }\n @if (title) {\n <lib-puro-dynamic-heading\n [tag]=\"tags?.title || 'h2'\"\n cssClass=\"gallery__heading\"\n [color]=\"textColors?.title\"\n [content]=\"title\"\n ></lib-puro-dynamic-heading>\n }\n\n @if (categoriesFilters()) {\n <ul class=\"gallery__tabs\">\n @for (option of categoriesFilters(); track $index) {\n <!-- Filtros normales -->\n @if (!option.rooms) {\n <li\n role=\"button\"\n class=\"js-filter-gallery\"\n [filterGallery]=\"option\"\n (filterSelect)=\"filterItems($event)\"\n [class.active]=\"\n !filterSelected()?.room &&\n (option.all\n ? !!filterSelected()?.all\n : filterSelected()?.id === option.id)\n \"\n [attr.aria-selected]=\"\n !filterSelected()?.room &&\n (option.all\n ? !!filterSelected()?.all\n : filterSelected()?.id === option.id)\n \"\n [attr.data-filter_category]=\"option.id\"\n [attr.aria-label]=\"option.text\"\n >\n {{ option.text }}\n </li>\n }\n\n <!-- Rooms: MISMO patr\u00F3n que languages -->\n @if (option.rooms) {\n <li\n class=\"js-active-modal\"\n activeModal\n data-modal_name=\"filter\"\n role=\"button\"\n (click)=\"prepareRoomsModal()\"\n [attr.aria-label]=\"option.text || 'Rooms'\"\n >\n {{ option.text }}\n </li>\n }\n }\n </ul>\n <!-- Categor\u00EDas (sin rooms ni room:true) -->\n <div class=\"form__group withIcon\">\n <select\n class=\"form__control\"\n [filterGallery]=\"categoriesFilters()\"\n (filterSelect)=\"filterItems($event)\"\n >\n <option value=\"\" selected disabled>Categor\u00EDas</option>\n @for (option of categoriesFilters(); track $index) {\n @if (!option.rooms && !option.room) {\n <option [value]=\"option.id\">{{ option.text }}</option>\n }\n }\n </select>\n <span class=\"icon-right\">\n <svg aria-hidden=\"true\" focusable=\"false\" width=\"15\" height=\"8\">\n <use href=\"#select-arrow\"></use>\n </svg>\n </span>\n </div>\n\n <!-- Habitaciones (room:true) -->\n <div class=\"form__group withIcon\">\n <select\n class=\"form__control\"\n [filterGallery]=\"roomsFilters()\"\n (filterSelect)=\"filterItems($event)\"\n >\n <option value=\"\" selected disabled>Habitaciones</option>\n @for (option of roomsFilters(); track $index) {\n <option [value]=\"option.id\">{{ option.text }}</option>\n }\n </select>\n <span class=\"icon-right\">\n <svg aria-hidden=\"true\" focusable=\"false\" width=\"15\" height=\"8\">\n <use href=\"#select-arrow\"></use>\n </svg>\n </span>\n </div>\n }\n\n <div class=\"gallery__list galleryGrid__for-7\">\n @if (itemsDisplayed()) {\n @for (item of itemsDisplayed(); track $index) {\n <div\n class=\"gallery__item show\"\n [attr.data-category]=\"item.filter\"\n [attr.data-title]=\"item.title\"\n >\n <div\n role=\"button\"\n class=\"gallery__box js-active-modal\"\n activeModal\n data-modal_name=\"gallery\"\n [attr.aria-label]=\"item.title ?? 'Gallery Item'\"\n [attr.data-img]=\"\n item.img?.src ||\n 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7'\n \"\n [attr.data-title]=\"item.title\"\n >\n <div class=\"gallery__graphic\">\n @if (item.img) {\n <img\n [src]=\"item.img.src\"\n width=\"789\"\n height=\"747\"\n class=\"gallery__graphic--img\"\n [alt]=\"item.title\"\n loading=\"lazy\"\n />\n <div class=\"gallery__zoom\">\n <span>{{ item.title }}</span>\n <i class=\"icon-84\"></i>\n </div>\n }\n </div>\n </div>\n </div>\n }\n }\n </div>\n\n @if (button) {\n <div class=\"btn__group\">\n <a\n [href]=\"button.url\"\n class=\"btn btn__primary--outline\"\n puroLinkType\n [linkType]=\"button.linkType\"\n [attr.aria-label]=\"button.label\"\n >\n <span>{{ button.label }}</span>\n </a>\n </div>\n }\n</section>\n\n<lib-filter-modal></lib-filter-modal>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: PuroDynamicHeadingComponent, selector: "lib-puro-dynamic-heading", inputs: ["tag", "wrapper", "cssClass", "content", "color"] }, { kind: "directive", type: PuroLinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href", "modalClick"], outputs: ["bookClick", "anchorClicked"] }, { kind: "directive", type: PuroActiveModalDirective, selector: "[activeModal]" }, { kind: "directive", type: PuroFilterGalleryDirective, selector: "[filterGallery]", inputs: ["filterGallery"], outputs: ["filterSelect"] }, { kind: "directive", type: AutoImageZoomWrapperDirective, selector: "img[src]" }, { kind: "component", type: PuroFilterModalComponent, selector: "lib-filter-modal" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
54
54
|
}
|
|
55
55
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroGalleryComponent, decorators: [{
|
|
56
56
|
type: Component,
|
|
@@ -62,7 +62,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
62
62
|
PuroFilterGalleryDirective,
|
|
63
63
|
AutoImageZoomWrapperDirective,
|
|
64
64
|
PuroFilterModalComponent
|
|
65
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<section class=\"gallery gallery--withTabs generalMargin\">\n @if (pretitle) {\n <lib-puro-dynamic-heading\n [tag]=\"tags?.pretitle || 'span'\"\n cssClass=\"gallery__title\"\n [color]=\"textColors?.pretitle\"\n [content]=\"pretitle\"\n ></lib-puro-dynamic-heading>\n }\n @if (title) {\n <lib-puro-dynamic-heading\n [tag]=\"tags?.title || 'h2'\"\n cssClass=\"gallery__heading\"\n [color]=\"textColors?.title\"\n [content]=\"title\"\n ></lib-puro-dynamic-heading>\n }\n\n @if (categoriesFilters()) {\n <ul class=\"gallery__tabs\">\n @for (option of categoriesFilters(); track $index) {\n <!-- Filtros normales -->\n @if (!option.rooms) {\n <li\n role=\"button\"\n class=\"js-filter-gallery\"\n [filterGallery]=\"option\"\n (filterSelect)=\"filterItems($event)\"\n [class.active]=\"\n !filterSelected()?.room &&\n (option.all\n ? !!filterSelected()?.all\n : filterSelected()?.id === option.id)\n \"\n [attr.aria-selected]=\"\n !filterSelected()?.room &&\n (option.all\n ? !!filterSelected()?.all\n : filterSelected()?.id === option.id)\n \"\n [attr.data-filter_category]=\"option.id\"\n [attr.aria-label]=\"option.text\"\n >\n {{ option.text }}\n </li>\n }\n\n <!-- Rooms: MISMO patr\u00F3n que languages -->\n @if (option.rooms) {\n <li\n class=\"js-active-modal\"\n activeModal\n data-modal_name=\"filter\"\n role=\"button\"\n (click)=\"prepareRoomsModal()\"\n [attr.aria-label]=\"option.text || 'Rooms'\"\n >\n {{ option.text }}\n </li>\n }\n }\n </ul>\n <!-- Categor\u00EDas (sin rooms ni room:true) -->\n <div class=\"form__group withIcon\">\n <select\n class=\"form__control\"\n [filterGallery]=\"categoriesFilters()\"\n (filterSelect)=\"filterItems($event)\"\n >\n <option value=\"\" selected disabled>Categor\u00EDas</option>\n @for (option of categoriesFilters(); track $index) {\n @if (!option.rooms && !option.room) {\n <option [value]=\"option.id\">{{ option.text }}</option>\n }\n }\n </select>\n <span class=\"icon-right\">\n <svg aria-hidden=\"true\" focusable=\"false\" width=\"15\" height=\"8\">\n <use href=\"#select-arrow\"></use>\n </svg>\n </span>\n </div>\n\n <!-- Habitaciones (room:true) -->\n <div class=\"form__group withIcon\">\n <select\n class=\"form__control\"\n [filterGallery]=\"roomsFilters()\"\n (filterSelect)=\"filterItems($event)\"\n >\n <option value=\"\" selected disabled>Habitaciones</option>\n @for (option of roomsFilters(); track $index) {\n <option [value]=\"option.id\">{{ option.text }}</option>\n }\n </select>\n <span class=\"icon-right\">\n <svg aria-hidden=\"true\" focusable=\"false\" width=\"15\" height=\"8\">\n <use href=\"#select-arrow\"></use>\n </svg>\n </span>\n </div>\n }\n\n <div class=\"gallery__list galleryGrid__for-7\">\n @if (itemsDisplayed()) {\n @for (item of itemsDisplayed(); track $index) {\n <div\n class=\"gallery__item show\"\n [attr.data-category]=\"item.filter\"\n [attr.data-title]=\"item.title\"\n >\n <div\n role=\"button\"\n class=\"gallery__box js-active-modal\"\n activeModal\n data-modal_name=\"gallery\"\n [attr.aria-label]=\"item.title ?? 'Gallery Item'\"\n [attr.data-img]=\"item.img?.src\"\n [attr.data-title]=\"item.title\"\n >\n <div class=\"gallery__graphic\">\n @if (item.img) {\n <img\n [src]=\"item.img.src\"\n width=\"789\"\n height=\"747\"\n class=\"gallery__graphic--img\"\n [alt]=\"item.title\"
|
|
65
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<section class=\"gallery gallery--withTabs generalMargin\">\n @if (pretitle) {\n <lib-puro-dynamic-heading\n [tag]=\"tags?.pretitle || 'span'\"\n cssClass=\"gallery__title\"\n [color]=\"textColors?.pretitle\"\n [content]=\"pretitle\"\n ></lib-puro-dynamic-heading>\n }\n @if (title) {\n <lib-puro-dynamic-heading\n [tag]=\"tags?.title || 'h2'\"\n cssClass=\"gallery__heading\"\n [color]=\"textColors?.title\"\n [content]=\"title\"\n ></lib-puro-dynamic-heading>\n }\n\n @if (categoriesFilters()) {\n <ul class=\"gallery__tabs\">\n @for (option of categoriesFilters(); track $index) {\n <!-- Filtros normales -->\n @if (!option.rooms) {\n <li\n role=\"button\"\n class=\"js-filter-gallery\"\n [filterGallery]=\"option\"\n (filterSelect)=\"filterItems($event)\"\n [class.active]=\"\n !filterSelected()?.room &&\n (option.all\n ? !!filterSelected()?.all\n : filterSelected()?.id === option.id)\n \"\n [attr.aria-selected]=\"\n !filterSelected()?.room &&\n (option.all\n ? !!filterSelected()?.all\n : filterSelected()?.id === option.id)\n \"\n [attr.data-filter_category]=\"option.id\"\n [attr.aria-label]=\"option.text\"\n >\n {{ option.text }}\n </li>\n }\n\n <!-- Rooms: MISMO patr\u00F3n que languages -->\n @if (option.rooms) {\n <li\n class=\"js-active-modal\"\n activeModal\n data-modal_name=\"filter\"\n role=\"button\"\n (click)=\"prepareRoomsModal()\"\n [attr.aria-label]=\"option.text || 'Rooms'\"\n >\n {{ option.text }}\n </li>\n }\n }\n </ul>\n <!-- Categor\u00EDas (sin rooms ni room:true) -->\n <div class=\"form__group withIcon\">\n <select\n class=\"form__control\"\n [filterGallery]=\"categoriesFilters()\"\n (filterSelect)=\"filterItems($event)\"\n >\n <option value=\"\" selected disabled>Categor\u00EDas</option>\n @for (option of categoriesFilters(); track $index) {\n @if (!option.rooms && !option.room) {\n <option [value]=\"option.id\">{{ option.text }}</option>\n }\n }\n </select>\n <span class=\"icon-right\">\n <svg aria-hidden=\"true\" focusable=\"false\" width=\"15\" height=\"8\">\n <use href=\"#select-arrow\"></use>\n </svg>\n </span>\n </div>\n\n <!-- Habitaciones (room:true) -->\n <div class=\"form__group withIcon\">\n <select\n class=\"form__control\"\n [filterGallery]=\"roomsFilters()\"\n (filterSelect)=\"filterItems($event)\"\n >\n <option value=\"\" selected disabled>Habitaciones</option>\n @for (option of roomsFilters(); track $index) {\n <option [value]=\"option.id\">{{ option.text }}</option>\n }\n </select>\n <span class=\"icon-right\">\n <svg aria-hidden=\"true\" focusable=\"false\" width=\"15\" height=\"8\">\n <use href=\"#select-arrow\"></use>\n </svg>\n </span>\n </div>\n }\n\n <div class=\"gallery__list galleryGrid__for-7\">\n @if (itemsDisplayed()) {\n @for (item of itemsDisplayed(); track $index) {\n <div\n class=\"gallery__item show\"\n [attr.data-category]=\"item.filter\"\n [attr.data-title]=\"item.title\"\n >\n <div\n role=\"button\"\n class=\"gallery__box js-active-modal\"\n activeModal\n data-modal_name=\"gallery\"\n [attr.aria-label]=\"item.title ?? 'Gallery Item'\"\n [attr.data-img]=\"\n item.img?.src ||\n 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7'\n \"\n [attr.data-title]=\"item.title\"\n >\n <div class=\"gallery__graphic\">\n @if (item.img) {\n <img\n [src]=\"item.img.src\"\n width=\"789\"\n height=\"747\"\n class=\"gallery__graphic--img\"\n [alt]=\"item.title\"\n loading=\"lazy\"\n />\n <div class=\"gallery__zoom\">\n <span>{{ item.title }}</span>\n <i class=\"icon-84\"></i>\n </div>\n }\n </div>\n </div>\n </div>\n }\n }\n </div>\n\n @if (button) {\n <div class=\"btn__group\">\n <a\n [href]=\"button.url\"\n class=\"btn btn__primary--outline\"\n puroLinkType\n [linkType]=\"button.linkType\"\n [attr.aria-label]=\"button.label\"\n >\n <span>{{ button.label }}</span>\n </a>\n </div>\n }\n</section>\n\n<lib-filter-modal></lib-filter-modal>\n" }]
|
|
66
66
|
}], ctorParameters: () => [{ type: i1.ModalStateService }], propDecorators: { pretitle: [{
|
|
67
67
|
type: Input
|
|
68
68
|
}], title: [{
|
|
@@ -80,4 +80,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
80
80
|
}], textColors: [{
|
|
81
81
|
type: Input
|
|
82
82
|
}] } });
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1nYWxsZXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3B1cm8vc3JjL2xpYi9jb21wb25lbnRzL3B1cm8tZ2FsbGVyeS9wdXJvLWdhbGxlcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby1nYWxsZXJ5L3B1cm8tZ2FsbGVyeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILDZCQUE2QixFQUM3Qix3QkFBd0IsRUFDeEIsMEJBQTBCLEVBQzFCLHFCQUFxQixHQUN4QixNQUFNLGtCQUFrQixDQUFDO0FBUTFCLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFrQmhFLE1BQU0sT0FBTyxvQkFBb0I7SUEwQjdCLFlBQTZCLFVBQTZCO1FBQTdCLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBaEIxRCxtQkFBYyxHQUFHLE1BQU0sQ0FBZ0MsU0FBUyxDQUFDLENBQUM7UUFFbEUsd0JBQXdCO1FBQ3hCLHNCQUFpQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDOUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQzlDLENBQUM7UUFDRixpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUUxRSxtQkFBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDM0IsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDcEQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ3RCLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQ3JCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxFQUFFLENBQ2hELENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztJQUUwRCxDQUFDO0lBRTlELFFBQVE7UUFDSixpQ0FBaUM7UUFDakMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVuRCxJQUFJLFNBQVMsRUFBRTtZQUNYLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3RDO2FBQU07WUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM5QztJQUNMLENBQUM7SUFFRCw4QkFBOEI7SUFDOUIsV0FBVyxDQUFDLE1BQTBCO1FBQ2xDLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTztRQUVwQixpQ0FBaUM7UUFDakMsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDekIsT0FBTztTQUNWO1FBRUQseUNBQXlDO1FBQ3pDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxvREFBb0Q7SUFDcEQsaUJBQWlCO1FBQ2IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7WUFDdEIsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3JCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDOUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0E3RFEsb0JBQW9CO21HQUFwQixvQkFBb0Isb1BDeENqQyxvbU1BMkpxQyx5REQvSDdCLFlBQVksK0JBQ1osMkJBQTJCLGlJQUMzQixxQkFBcUIsNElBQ3JCLHdCQUF3QiwwREFDeEIsMEJBQTBCLGtIQUMxQiw2QkFBNkIscURBQzdCLHdCQUF3Qjs7NEZBTW5CLG9CQUFvQjtrQkFoQmhDLFNBQVM7K0JBQ0ksa0JBQWtCLGNBQ2hCLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLDJCQUEyQjt3QkFDM0IscUJBQXFCO3dCQUNyQix3QkFBd0I7d0JBQ3hCLDBCQUEwQjt3QkFDMUIsNkJBQTZCO3dCQUM3Qix3QkFBd0I7cUJBQzNCLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNO3NGQUd0QyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0LFxuICAgIGNvbXB1dGVkLFxuICAgIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEF1dG9JbWFnZVpvb21XcmFwcGVyRGlyZWN0aXZlLFxuICAgIFB1cm9BY3RpdmVNb2RhbERpcmVjdGl2ZSxcbiAgICBQdXJvRmlsdGVyR2FsbGVyeURpcmVjdGl2ZSxcbiAgICBQdXJvTGlua1R5cGVEaXJlY3RpdmUsXG59IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHtcbiAgICBQdXJvQnV0dG9uSSxcbiAgICBQdXJvSW1hZ2VJLFxuICAgIFB1cm9UYWdzSSxcbiAgICBQdXJvVGV4dHNDb2xvcnNJLFxufSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE1vZGFsU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgUHVyb0R5bmFtaWNIZWFkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vc2hhcmVkL3B1cm8tZHluYW1pYy1oZWFkaW5nJztcbmltcG9ydCB7IFB1cm9GaWx0ZXJNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL3B1cm8tZmlsdGVyLW1vZGFsJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsaWItcHVyby1nYWxsZXJ5JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBQdXJvRHluYW1pY0hlYWRpbmdDb21wb25lbnQsXG4gICAgICAgIFB1cm9MaW5rVHlwZURpcmVjdGl2ZSxcbiAgICAgICAgUHVyb0FjdGl2ZU1vZGFsRGlyZWN0aXZlLFxuICAgICAgICBQdXJvRmlsdGVyR2FsbGVyeURpcmVjdGl2ZSxcbiAgICAgICAgQXV0b0ltYWdlWm9vbVdyYXBwZXJEaXJlY3RpdmUsXG4gICAgICAgIFB1cm9GaWx0ZXJNb2RhbENvbXBvbmVudFxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3B1cm8tZ2FsbGVyeS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL3B1cm8tZ2FsbGVyeS5jb21wb25lbnQuc2NzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFB1cm9HYWxsZXJ5Q29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBwcmV0aXRsZT86IHN0cmluZztcbiAgICBASW5wdXQoKSB0aXRsZT86IHN0cmluZztcbiAgICBASW5wdXQoKSByb29tVGl0bGU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgZmlsdGVycz86IFB1cm9HYWxsZXJ5RmlsdGVyW107XG4gICAgQElucHV0KCkgaXRlbXM/OiBQdXJvR2FsbGVyeUl0ZW1bXTtcbiAgICBASW5wdXQoKSBidXR0b24/OiBQdXJvQnV0dG9uSTtcbiAgICBASW5wdXQoKSB0YWdzPzogUHVyb1RhZ3NJO1xuICAgIEBJbnB1dCgpIHRleHRDb2xvcnM/OiBQdXJvVGV4dHNDb2xvcnNJO1xuXG4gICAgZmlsdGVyU2VsZWN0ZWQgPSBzaWduYWw8UHVyb0dhbGxlcnlGaWx0ZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgICAvLyBMaXN0YXMgZmlsdHJvcyBtb2JpbGVcbiAgICBjYXRlZ29yaWVzRmlsdGVycyA9IGNvbXB1dGVkKCgpID0+XG4gICAgICAgICh0aGlzLmZpbHRlcnMgPz8gW10pLmZpbHRlcigoZikgPT4gIWYucm9vbSlcbiAgICApO1xuICAgIHJvb21zRmlsdGVycyA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLmZpbHRlcnMgPz8gW10pLmZpbHRlcigoZikgPT4gZi5yb29tKSk7XG5cbiAgICBpdGVtc0Rpc3BsYXllZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZmlsdGVyU2VsZWN0ZWQoKT8uYWxsIHx8ICF0aGlzLmZpbHRlclNlbGVjdGVkKCkpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pdGVtcztcbiAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXM/LmZpbHRlcihcbiAgICAgICAgICAgIChpKSA9PiBpLmZpbHRlciA9PT0gdGhpcy5maWx0ZXJTZWxlY3RlZCgpPy5pZFxuICAgICAgICApO1xuICAgIH0pO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBtb2RhbFN0YXRlOiBNb2RhbFN0YXRlU2VydmljZSkge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBTaSBleGlzdGUsIHNlbGVjY2lvbmFyIFwiVG9kb3NcIlxuICAgICAgICBjb25zdCBhbGxGaWx0ZXIgPSB0aGlzLmZpbHRlcnM/LmZpbmQoKGYpID0+IGYuYWxsKTtcblxuICAgICAgICBpZiAoYWxsRmlsdGVyKSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlclNlbGVjdGVkLnNldChhbGxGaWx0ZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJTZWxlY3RlZC5zZXQodGhpcy5maWx0ZXJzPy5bMF0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gZmlsdHJvcyBub3JtYWxlcyAobm8gcm9vbXMpXG4gICAgZmlsdGVySXRlbXMoZmlsdGVyPzogUHVyb0dhbGxlcnlGaWx0ZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFmaWx0ZXIpIHJldHVybjtcblxuICAgICAgICAvLyBBZ3JlZ2Fkb3IgXCJSb29tc1wiOiBhYnJpciBtb2RhbFxuICAgICAgICBpZiAoZmlsdGVyLnJvb21zKSB7XG4gICAgICAgICAgICB0aGlzLnByZXBhcmVSb29tc01vZGFsKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDYXRlZ29yw61hIG5vcm1hbCBvIGhhYml0YWNpw7NuIGNvbmNyZXRhXG4gICAgICAgIHRoaXMuZmlsdGVyU2VsZWN0ZWQuc2V0KGZpbHRlcik7XG4gICAgfVxuXG4gICAgLy8gcHJlcGFyYXIgZGF0b3MgcGFyYSBlbCBtb2RhbCBhbnRlcy9qdXN0byBhbCBjbGlja1xuICAgIHByZXBhcmVSb29tc01vZGFsKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBsaXN0ID0gdGhpcy5maWx0ZXJzPy5maWx0ZXIoKGYpID0+IGYucm9vbSkgPz8gW107XG4gICAgICAgIHRoaXMubW9kYWxTdGF0ZS5vcGVuUm9vbXMoe1xuICAgICAgICAgICAgdGl0bGU6IHRoaXMucm9vbVRpdGxlLFxuICAgICAgICAgICAgZmlsdGVyczogbGlzdCxcbiAgICAgICAgICAgIG9uU2VsZWN0OiAoZikgPT4gdGhpcy5maWx0ZXJTZWxlY3RlZC5zZXQoZiksXG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdXJvR2FsbGVyeUl0ZW0ge1xuICAgIGltZz86IFB1cm9JbWFnZUk7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgZmlsdGVyPzogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBQdXJvR2FsbGVyeUZpbHRlciB7XG4gICAgaWQ6IG51bWJlcjtcbiAgICB0ZXh0Pzogc3RyaW5nO1xuICAgIHJvb21zPzogYm9vbGVhbjsgLy8g4oCcUm9vbXPigJ0gdGFiXG4gICAgcm9vbT86IGJvb2xlYW47IC8vIGNhZGEgaGFiaXRhY2nDs24gZGVudHJvIGRlbCBtb2RhbFxuICAgIGFsbD86IGJvb2xlYW47XG59XG4iLCI8c2VjdGlvbiBjbGFzcz1cImdhbGxlcnkgZ2FsbGVyeS0td2l0aFRhYnMgZ2VuZXJhbE1hcmdpblwiPlxuICAgIEBpZiAocHJldGl0bGUpIHtcbiAgICAgICAgPGxpYi1wdXJvLWR5bmFtaWMtaGVhZGluZ1xuICAgICAgICAgICAgW3RhZ109XCJ0YWdzPy5wcmV0aXRsZSB8fCAnc3BhbidcIlxuICAgICAgICAgICAgY3NzQ2xhc3M9XCJnYWxsZXJ5X190aXRsZVwiXG4gICAgICAgICAgICBbY29sb3JdPVwidGV4dENvbG9ycz8ucHJldGl0bGVcIlxuICAgICAgICAgICAgW2NvbnRlbnRdPVwicHJldGl0bGVcIlxuICAgICAgICA+PC9saWItcHVyby1keW5hbWljLWhlYWRpbmc+XG4gICAgfVxuICAgIEBpZiAodGl0bGUpIHtcbiAgICAgICAgPGxpYi1wdXJvLWR5bmFtaWMtaGVhZGluZ1xuICAgICAgICAgICAgW3RhZ109XCJ0YWdzPy50aXRsZSB8fCAnaDInXCJcbiAgICAgICAgICAgIGNzc0NsYXNzPVwiZ2FsbGVyeV9faGVhZGluZ1wiXG4gICAgICAgICAgICBbY29sb3JdPVwidGV4dENvbG9ycz8udGl0bGVcIlxuICAgICAgICAgICAgW2NvbnRlbnRdPVwidGl0bGVcIlxuICAgICAgICA+PC9saWItcHVyby1keW5hbWljLWhlYWRpbmc+XG4gICAgfVxuXG4gICAgQGlmIChjYXRlZ29yaWVzRmlsdGVycygpKSB7XG4gICAgICAgIDx1bCBjbGFzcz1cImdhbGxlcnlfX3RhYnNcIj5cbiAgICAgICAgICAgIEBmb3IgKG9wdGlvbiBvZiBjYXRlZ29yaWVzRmlsdGVycygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICA8IS0tIEZpbHRyb3Mgbm9ybWFsZXMgLS0+XG4gICAgICAgICAgICAgICAgQGlmICghb3B0aW9uLnJvb21zKSB7XG4gICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImpzLWZpbHRlci1nYWxsZXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJHYWxsZXJ5XT1cIm9wdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoZmlsdGVyU2VsZWN0KT1cImZpbHRlckl0ZW1zKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAhZmlsdGVyU2VsZWN0ZWQoKT8ucm9vbSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvcHRpb24uYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gISFmaWx0ZXJTZWxlY3RlZCgpPy5hbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBmaWx0ZXJTZWxlY3RlZCgpPy5pZCA9PT0gb3B0aW9uLmlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIWZpbHRlclNlbGVjdGVkKCk/LnJvb20gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3B0aW9uLmFsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICEhZmlsdGVyU2VsZWN0ZWQoKT8uYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZmlsdGVyU2VsZWN0ZWQoKT8uaWQgPT09IG9wdGlvbi5pZClcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWZpbHRlcl9jYXRlZ29yeV09XCJvcHRpb24uaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJvcHRpb24udGV4dFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IG9wdGlvbi50ZXh0IH19XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPCEtLSBSb29tczogTUlTTU8gcGF0csOzbiBxdWUgbGFuZ3VhZ2VzIC0tPlxuICAgICAgICAgICAgICAgIEBpZiAob3B0aW9uLnJvb21zKSB7XG4gICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJqcy1hY3RpdmUtbW9kYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlTW9kYWxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtbW9kYWxfbmFtZT1cImZpbHRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJwcmVwYXJlUm9vbXNNb2RhbCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwib3B0aW9uLnRleHQgfHwgJ1Jvb21zJ1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IG9wdGlvbi50ZXh0IH19XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICA8L3VsPlxuICAgICAgICA8IS0tIENhdGVnb3LDrWFzIChzaW4gcm9vbXMgbmkgcm9vbTp0cnVlKSAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm1fX2dyb3VwIHdpdGhJY29uXCI+XG4gICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtX19jb250cm9sXCJcbiAgICAgICAgICAgICAgICBbZmlsdGVyR2FsbGVyeV09XCJjYXRlZ29yaWVzRmlsdGVycygpXCJcbiAgICAgICAgICAgICAgICAoZmlsdGVyU2VsZWN0KT1cImZpbHRlckl0ZW1zKCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJcIiBzZWxlY3RlZCBkaXNhYmxlZD5DYXRlZ29yw61hczwvb3B0aW9uPlxuICAgICAgICAgICAgICAgIEBmb3IgKG9wdGlvbiBvZiBjYXRlZ29yaWVzRmlsdGVycygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICghb3B0aW9uLnJvb21zICYmICFvcHRpb24ucm9vbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwib3B0aW9uLmlkXCI+e3sgb3B0aW9uLnRleHQgfX08L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uLXJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgPHN2ZyBhcmlhLWhpZGRlbj1cInRydWVcIiBmb2N1c2FibGU9XCJmYWxzZVwiIHdpZHRoPVwiMTVcIiBoZWlnaHQ9XCI4XCI+XG4gICAgICAgICAgICAgICAgICAgIDx1c2UgaHJlZj1cIiNzZWxlY3QtYXJyb3dcIj48L3VzZT5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBIYWJpdGFjaW9uZXMgKHJvb206dHJ1ZSkgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtX19ncm91cCB3aXRoSWNvblwiPlxuICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybV9fY29udHJvbFwiXG4gICAgICAgICAgICAgICAgW2ZpbHRlckdhbGxlcnldPVwicm9vbXNGaWx0ZXJzKClcIlxuICAgICAgICAgICAgICAgIChmaWx0ZXJTZWxlY3QpPVwiZmlsdGVySXRlbXMoJGV2ZW50KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiIHNlbGVjdGVkIGRpc2FibGVkPkhhYml0YWNpb25lczwvb3B0aW9uPlxuICAgICAgICAgICAgICAgIEBmb3IgKG9wdGlvbiBvZiByb29tc0ZpbHRlcnMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIm9wdGlvbi5pZFwiPnt7IG9wdGlvbi50ZXh0IH19PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb24tcmlnaHRcIj5cbiAgICAgICAgICAgICAgICA8c3ZnIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGZvY3VzYWJsZT1cImZhbHNlXCIgd2lkdGg9XCIxNVwiIGhlaWdodD1cIjhcIj5cbiAgICAgICAgICAgICAgICAgICAgPHVzZSBocmVmPVwiI3NlbGVjdC1hcnJvd1wiPjwvdXNlPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG5cbiAgICA8ZGl2IGNsYXNzPVwiZ2FsbGVyeV9fbGlzdCBnYWxsZXJ5R3JpZF9fZm9yLTdcIj5cbiAgICAgICAgQGlmIChpdGVtc0Rpc3BsYXllZCgpKSB7XG4gICAgICAgICAgICBAZm9yIChpdGVtIG9mIGl0ZW1zRGlzcGxheWVkKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJnYWxsZXJ5X19pdGVtIHNob3dcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWNhdGVnb3J5XT1cIml0ZW0uZmlsdGVyXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS10aXRsZV09XCJpdGVtLnRpdGxlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJnYWxsZXJ5X19ib3gganMtYWN0aXZlLW1vZGFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZU1vZGFsXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLW1vZGFsX25hbWU9XCJnYWxsZXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaXRlbS50aXRsZSA/PyAnR2FsbGVyeSBJdGVtJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWltZ109XCJpdGVtLmltZz8uc3JjXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtdGl0bGVdPVwiaXRlbS50aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnYWxsZXJ5X19ncmFwaGljXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpdGVtLmltZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIml0ZW0uaW1nLnNyY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjc4OVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCI3NDdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJnYWxsZXJ5X19ncmFwaGljLS1pbWdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FsdF09XCJpdGVtLnRpdGxlXCIgbG9hZGluZz1cImxhenlcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ2FsbGVyeV9fem9vbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgaXRlbS50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbi04NFwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgPC9kaXY+XG5cbiAgICBAaWYgKGJ1dHRvbikge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuX19ncm91cFwiPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBbaHJlZl09XCJidXR0b24udXJsXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG5fX3ByaW1hcnktLW91dGxpbmVcIlxuICAgICAgICAgICAgICAgIHB1cm9MaW5rVHlwZVxuICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJidXR0b24ubGlua1R5cGVcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYnV0dG9uLmxhYmVsXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyBidXR0b24ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbjwvc2VjdGlvbj5cblxuPGxpYi1maWx0ZXItbW9kYWw+PC9saWItZmlsdGVyLW1vZGFsPiJdfQ==
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1nYWxsZXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3B1cm8vc3JjL2xpYi9jb21wb25lbnRzL3B1cm8tZ2FsbGVyeS9wdXJvLWdhbGxlcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby1nYWxsZXJ5L3B1cm8tZ2FsbGVyeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILDZCQUE2QixFQUM3Qix3QkFBd0IsRUFDeEIsMEJBQTBCLEVBQzFCLHFCQUFxQixHQUN4QixNQUFNLGtCQUFrQixDQUFDO0FBUTFCLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFrQmhFLE1BQU0sT0FBTyxvQkFBb0I7SUEwQjdCLFlBQTZCLFVBQTZCO1FBQTdCLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBaEIxRCxtQkFBYyxHQUFHLE1BQU0sQ0FBZ0MsU0FBUyxDQUFDLENBQUM7UUFFbEUsd0JBQXdCO1FBQ3hCLHNCQUFpQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDOUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQzlDLENBQUM7UUFDRixpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUUxRSxtQkFBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDM0IsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDcEQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ3RCLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQ3JCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxFQUFFLENBQ2hELENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztJQUUwRCxDQUFDO0lBRTlELFFBQVE7UUFDSixpQ0FBaUM7UUFDakMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVuRCxJQUFJLFNBQVMsRUFBRTtZQUNYLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3RDO2FBQU07WUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM5QztJQUNMLENBQUM7SUFFRCw4QkFBOEI7SUFDOUIsV0FBVyxDQUFDLE1BQTBCO1FBQ2xDLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTztRQUVwQixpQ0FBaUM7UUFDakMsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDekIsT0FBTztTQUNWO1FBRUQseUNBQXlDO1FBQ3pDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxvREFBb0Q7SUFDcEQsaUJBQWlCO1FBQ2IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7WUFDdEIsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3JCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDOUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0E3RFEsb0JBQW9CO21HQUFwQixvQkFBb0Isb1BDeENqQyxxMU1BaUtBLHlERHJJUSxZQUFZLCtCQUNaLDJCQUEyQixpSUFDM0IscUJBQXFCLDRJQUNyQix3QkFBd0IsMERBQ3hCLDBCQUEwQixrSEFDMUIsNkJBQTZCLHFEQUM3Qix3QkFBd0I7OzRGQU1uQixvQkFBb0I7a0JBaEJoQyxTQUFTOytCQUNJLGtCQUFrQixjQUNoQixJQUFJLFdBQ1A7d0JBQ0wsWUFBWTt3QkFDWiwyQkFBMkI7d0JBQzNCLHFCQUFxQjt3QkFDckIsd0JBQXdCO3dCQUN4QiwwQkFBMEI7d0JBQzFCLDZCQUE2Qjt3QkFDN0Isd0JBQXdCO3FCQUMzQixtQkFHZ0IsdUJBQXVCLENBQUMsTUFBTTtzRkFHdEMsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBJbnB1dCxcbiAgICBjb21wdXRlZCxcbiAgICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBdXRvSW1hZ2Vab29tV3JhcHBlckRpcmVjdGl2ZSxcbiAgICBQdXJvQWN0aXZlTW9kYWxEaXJlY3RpdmUsXG4gICAgUHVyb0ZpbHRlckdhbGxlcnlEaXJlY3RpdmUsXG4gICAgUHVyb0xpbmtUeXBlRGlyZWN0aXZlLFxufSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7XG4gICAgUHVyb0J1dHRvbkksXG4gICAgUHVyb0ltYWdlSSxcbiAgICBQdXJvVGFnc0ksXG4gICAgUHVyb1RleHRzQ29sb3JzSSxcbn0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBNb2RhbFN0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IFB1cm9EeW5hbWljSGVhZGluZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL3NoYXJlZC9wdXJvLWR5bmFtaWMtaGVhZGluZyc7XG5pbXBvcnQgeyBQdXJvRmlsdGVyTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9wdXJvLWZpbHRlci1tb2RhbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLXB1cm8tZ2FsbGVyeScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgUHVyb0R5bmFtaWNIZWFkaW5nQ29tcG9uZW50LFxuICAgICAgICBQdXJvTGlua1R5cGVEaXJlY3RpdmUsXG4gICAgICAgIFB1cm9BY3RpdmVNb2RhbERpcmVjdGl2ZSxcbiAgICAgICAgUHVyb0ZpbHRlckdhbGxlcnlEaXJlY3RpdmUsXG4gICAgICAgIEF1dG9JbWFnZVpvb21XcmFwcGVyRGlyZWN0aXZlLFxuICAgICAgICBQdXJvRmlsdGVyTW9kYWxDb21wb25lbnRcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wdXJvLWdhbGxlcnkuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9wdXJvLWdhbGxlcnkuY29tcG9uZW50LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQdXJvR2FsbGVyeUNvbXBvbmVudCB7XG4gICAgQElucHV0KCkgcHJldGl0bGU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgdGl0bGU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgcm9vbVRpdGxlPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGZpbHRlcnM/OiBQdXJvR2FsbGVyeUZpbHRlcltdO1xuICAgIEBJbnB1dCgpIGl0ZW1zPzogUHVyb0dhbGxlcnlJdGVtW107XG4gICAgQElucHV0KCkgYnV0dG9uPzogUHVyb0J1dHRvbkk7XG4gICAgQElucHV0KCkgdGFncz86IFB1cm9UYWdzSTtcbiAgICBASW5wdXQoKSB0ZXh0Q29sb3JzPzogUHVyb1RleHRzQ29sb3JzSTtcblxuICAgIGZpbHRlclNlbGVjdGVkID0gc2lnbmFsPFB1cm9HYWxsZXJ5RmlsdGVyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gICAgLy8gTGlzdGFzIGZpbHRyb3MgbW9iaWxlXG4gICAgY2F0ZWdvcmllc0ZpbHRlcnMgPSBjb21wdXRlZCgoKSA9PlxuICAgICAgICAodGhpcy5maWx0ZXJzID8/IFtdKS5maWx0ZXIoKGYpID0+ICFmLnJvb20pXG4gICAgKTtcbiAgICByb29tc0ZpbHRlcnMgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5maWx0ZXJzID8/IFtdKS5maWx0ZXIoKGYpID0+IGYucm9vbSkpO1xuXG4gICAgaXRlbXNEaXNwbGF5ZWQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmZpbHRlclNlbGVjdGVkKCk/LmFsbCB8fCAhdGhpcy5maWx0ZXJTZWxlY3RlZCgpKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXM7XG4gICAgICAgIHJldHVybiB0aGlzLml0ZW1zPy5maWx0ZXIoXG4gICAgICAgICAgICAoaSkgPT4gaS5maWx0ZXIgPT09IHRoaXMuZmlsdGVyU2VsZWN0ZWQoKT8uaWRcbiAgICAgICAgKTtcbiAgICB9KTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbW9kYWxTdGF0ZTogTW9kYWxTdGF0ZVNlcnZpY2UpIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gU2kgZXhpc3RlLCBzZWxlY2Npb25hciBcIlRvZG9zXCJcbiAgICAgICAgY29uc3QgYWxsRmlsdGVyID0gdGhpcy5maWx0ZXJzPy5maW5kKChmKSA9PiBmLmFsbCk7XG5cbiAgICAgICAgaWYgKGFsbEZpbHRlcikge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJTZWxlY3RlZC5zZXQoYWxsRmlsdGVyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyU2VsZWN0ZWQuc2V0KHRoaXMuZmlsdGVycz8uWzBdKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGZpbHRyb3Mgbm9ybWFsZXMgKG5vIHJvb21zKVxuICAgIGZpbHRlckl0ZW1zKGZpbHRlcj86IFB1cm9HYWxsZXJ5RmlsdGVyKTogdm9pZCB7XG4gICAgICAgIGlmICghZmlsdGVyKSByZXR1cm47XG5cbiAgICAgICAgLy8gQWdyZWdhZG9yIFwiUm9vbXNcIjogYWJyaXIgbW9kYWxcbiAgICAgICAgaWYgKGZpbHRlci5yb29tcykge1xuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUm9vbXNNb2RhbCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2F0ZWdvcsOtYSBub3JtYWwgbyBoYWJpdGFjacOzbiBjb25jcmV0YVxuICAgICAgICB0aGlzLmZpbHRlclNlbGVjdGVkLnNldChmaWx0ZXIpO1xuICAgIH1cblxuICAgIC8vIHByZXBhcmFyIGRhdG9zIHBhcmEgZWwgbW9kYWwgYW50ZXMvanVzdG8gYWwgY2xpY2tcbiAgICBwcmVwYXJlUm9vbXNNb2RhbCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbGlzdCA9IHRoaXMuZmlsdGVycz8uZmlsdGVyKChmKSA9PiBmLnJvb20pID8/IFtdO1xuICAgICAgICB0aGlzLm1vZGFsU3RhdGUub3BlblJvb21zKHtcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLnJvb21UaXRsZSxcbiAgICAgICAgICAgIGZpbHRlcnM6IGxpc3QsXG4gICAgICAgICAgICBvblNlbGVjdDogKGYpID0+IHRoaXMuZmlsdGVyU2VsZWN0ZWQuc2V0KGYpLFxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVyb0dhbGxlcnlJdGVtIHtcbiAgICBpbWc/OiBQdXJvSW1hZ2VJO1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIGZpbHRlcj86IG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHVyb0dhbGxlcnlGaWx0ZXIge1xuICAgIGlkOiBudW1iZXI7XG4gICAgdGV4dD86IHN0cmluZztcbiAgICByb29tcz86IGJvb2xlYW47IC8vIOKAnFJvb21z4oCdIHRhYlxuICAgIHJvb20/OiBib29sZWFuOyAvLyBjYWRhIGhhYml0YWNpw7NuIGRlbnRybyBkZWwgbW9kYWxcbiAgICBhbGw/OiBib29sZWFuO1xufVxuIiwiPHNlY3Rpb24gY2xhc3M9XCJnYWxsZXJ5IGdhbGxlcnktLXdpdGhUYWJzIGdlbmVyYWxNYXJnaW5cIj5cbiAgICBAaWYgKHByZXRpdGxlKSB7XG4gICAgICAgIDxsaWItcHVyby1keW5hbWljLWhlYWRpbmdcbiAgICAgICAgICAgIFt0YWddPVwidGFncz8ucHJldGl0bGUgfHwgJ3NwYW4nXCJcbiAgICAgICAgICAgIGNzc0NsYXNzPVwiZ2FsbGVyeV9fdGl0bGVcIlxuICAgICAgICAgICAgW2NvbG9yXT1cInRleHRDb2xvcnM/LnByZXRpdGxlXCJcbiAgICAgICAgICAgIFtjb250ZW50XT1cInByZXRpdGxlXCJcbiAgICAgICAgPjwvbGliLXB1cm8tZHluYW1pYy1oZWFkaW5nPlxuICAgIH1cbiAgICBAaWYgKHRpdGxlKSB7XG4gICAgICAgIDxsaWItcHVyby1keW5hbWljLWhlYWRpbmdcbiAgICAgICAgICAgIFt0YWddPVwidGFncz8udGl0bGUgfHwgJ2gyJ1wiXG4gICAgICAgICAgICBjc3NDbGFzcz1cImdhbGxlcnlfX2hlYWRpbmdcIlxuICAgICAgICAgICAgW2NvbG9yXT1cInRleHRDb2xvcnM/LnRpdGxlXCJcbiAgICAgICAgICAgIFtjb250ZW50XT1cInRpdGxlXCJcbiAgICAgICAgPjwvbGliLXB1cm8tZHluYW1pYy1oZWFkaW5nPlxuICAgIH1cblxuICAgIEBpZiAoY2F0ZWdvcmllc0ZpbHRlcnMoKSkge1xuICAgICAgICA8dWwgY2xhc3M9XCJnYWxsZXJ5X190YWJzXCI+XG4gICAgICAgICAgICBAZm9yIChvcHRpb24gb2YgY2F0ZWdvcmllc0ZpbHRlcnMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgPCEtLSBGaWx0cm9zIG5vcm1hbGVzIC0tPlxuICAgICAgICAgICAgICAgIEBpZiAoIW9wdGlvbi5yb29tcykge1xuICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJqcy1maWx0ZXItZ2FsbGVyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyR2FsbGVyeV09XCJvcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGZpbHRlclNlbGVjdCk9XCJmaWx0ZXJJdGVtcygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIWZpbHRlclNlbGVjdGVkKCk/LnJvb20gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3B0aW9uLmFsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICEhZmlsdGVyU2VsZWN0ZWQoKT8uYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZmlsdGVyU2VsZWN0ZWQoKT8uaWQgPT09IG9wdGlvbi5pZClcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICFmaWx0ZXJTZWxlY3RlZCgpPy5yb29tICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9wdGlvbi5hbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAhIWZpbHRlclNlbGVjdGVkKCk/LmFsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGZpbHRlclNlbGVjdGVkKCk/LmlkID09PSBvcHRpb24uaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1maWx0ZXJfY2F0ZWdvcnldPVwib3B0aW9uLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwib3B0aW9uLnRleHRcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBvcHRpb24udGV4dCB9fVxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIDwhLS0gUm9vbXM6IE1JU01PIHBhdHLDs24gcXVlIGxhbmd1YWdlcyAtLT5cbiAgICAgICAgICAgICAgICBAaWYgKG9wdGlvbi5yb29tcykge1xuICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwianMtYWN0aXZlLW1vZGFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZU1vZGFsXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLW1vZGFsX25hbWU9XCJmaWx0ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicHJlcGFyZVJvb21zTW9kYWwoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm9wdGlvbi50ZXh0IHx8ICdSb29tcydcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBvcHRpb24udGV4dCB9fVxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC91bD5cbiAgICAgICAgPCEtLSBDYXRlZ29yw61hcyAoc2luIHJvb21zIG5pIHJvb206dHJ1ZSkgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtX19ncm91cCB3aXRoSWNvblwiPlxuICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybV9fY29udHJvbFwiXG4gICAgICAgICAgICAgICAgW2ZpbHRlckdhbGxlcnldPVwiY2F0ZWdvcmllc0ZpbHRlcnMoKVwiXG4gICAgICAgICAgICAgICAgKGZpbHRlclNlbGVjdCk9XCJmaWx0ZXJJdGVtcygkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCIgc2VsZWN0ZWQgZGlzYWJsZWQ+Q2F0ZWdvcsOtYXM8L29wdGlvbj5cbiAgICAgICAgICAgICAgICBAZm9yIChvcHRpb24gb2YgY2F0ZWdvcmllc0ZpbHRlcnMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoIW9wdGlvbi5yb29tcyAmJiAhb3B0aW9uLnJvb20pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIm9wdGlvbi5pZFwiPnt7IG9wdGlvbi50ZXh0IH19PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbi1yaWdodFwiPlxuICAgICAgICAgICAgICAgIDxzdmcgYXJpYS1oaWRkZW49XCJ0cnVlXCIgZm9jdXNhYmxlPVwiZmFsc2VcIiB3aWR0aD1cIjE1XCIgaGVpZ2h0PVwiOFwiPlxuICAgICAgICAgICAgICAgICAgICA8dXNlIGhyZWY9XCIjc2VsZWN0LWFycm93XCI+PC91c2U+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gSGFiaXRhY2lvbmVzIChyb29tOnRydWUpIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybV9fZ3JvdXAgd2l0aEljb25cIj5cbiAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm1fX2NvbnRyb2xcIlxuICAgICAgICAgICAgICAgIFtmaWx0ZXJHYWxsZXJ5XT1cInJvb21zRmlsdGVycygpXCJcbiAgICAgICAgICAgICAgICAoZmlsdGVyU2VsZWN0KT1cImZpbHRlckl0ZW1zKCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJcIiBzZWxlY3RlZCBkaXNhYmxlZD5IYWJpdGFjaW9uZXM8L29wdGlvbj5cbiAgICAgICAgICAgICAgICBAZm9yIChvcHRpb24gb2Ygcm9vbXNGaWx0ZXJzKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCJvcHRpb24uaWRcIj57eyBvcHRpb24udGV4dCB9fTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uLXJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgPHN2ZyBhcmlhLWhpZGRlbj1cInRydWVcIiBmb2N1c2FibGU9XCJmYWxzZVwiIHdpZHRoPVwiMTVcIiBoZWlnaHQ9XCI4XCI+XG4gICAgICAgICAgICAgICAgICAgIDx1c2UgaHJlZj1cIiNzZWxlY3QtYXJyb3dcIj48L3VzZT5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgPGRpdiBjbGFzcz1cImdhbGxlcnlfX2xpc3QgZ2FsbGVyeUdyaWRfX2Zvci03XCI+XG4gICAgICAgIEBpZiAoaXRlbXNEaXNwbGF5ZWQoKSkge1xuICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBpdGVtc0Rpc3BsYXllZCgpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZ2FsbGVyeV9faXRlbSBzaG93XCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1jYXRlZ29yeV09XCJpdGVtLmZpbHRlclwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtdGl0bGVdPVwiaXRlbS50aXRsZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZ2FsbGVyeV9fYm94IGpzLWFjdGl2ZS1tb2RhbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVNb2RhbFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1tb2RhbF9uYW1lPVwiZ2FsbGVyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIml0ZW0udGl0bGUgPz8gJ0dhbGxlcnkgSXRlbSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1pbWddPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5pbWc/LnNyYyB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUlBQUFBQUFBUC8vL3lINUJBRUFBQUFBTEFBQUFBQUJBQUVBQUFJQlJBQTcnXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS10aXRsZV09XCJpdGVtLnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdhbGxlcnlfX2dyYXBoaWNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uaW1nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiaXRlbS5pbWcuc3JjXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiNzg5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjc0N1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImdhbGxlcnlfX2dyYXBoaWMtLWltZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWx0XT1cIml0ZW0udGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz1cImxhenlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ2FsbGVyeV9fem9vbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgaXRlbS50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbi04NFwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgPC9kaXY+XG5cbiAgICBAaWYgKGJ1dHRvbikge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuX19ncm91cFwiPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBbaHJlZl09XCJidXR0b24udXJsXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG5fX3ByaW1hcnktLW91dGxpbmVcIlxuICAgICAgICAgICAgICAgIHB1cm9MaW5rVHlwZVxuICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJidXR0b24ubGlua1R5cGVcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYnV0dG9uLmxhYmVsXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyBidXR0b24ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbjwvc2VjdGlvbj5cblxuPGxpYi1maWx0ZXItbW9kYWw+PC9saWItZmlsdGVyLW1vZGFsPlxuIl19
|
|
@@ -16,7 +16,7 @@ export class PuroVerticalInfoComponent {
|
|
|
16
16
|
return window.location.href;
|
|
17
17
|
}
|
|
18
18
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroVerticalInfoComponent, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
19
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroVerticalInfoComponent, isStandalone: true, selector: "lib-puro-vertical-info", inputs: { pretitle: "pretitle", tag: "tag", title: "title", subtitle: "subtitle", price: "price", from: "from", to: "to", discount: "discount", currency: "currency", img: "img", socialTitle: "socialTitle", contactTitle: "contactTitle", extraTitle: "extraTitle", extraDescription: "extraDescription", fileTitle: "fileTitle", location: "location", intro: "intro", infoList: "infoList", imgList: "imgList", ndInfoList: "ndInfoList", infoButton: "infoButton", contactLinks: "contactLinks", buttonBook: "buttonBook", buttonGuests: "buttonGuests", pdfLink: "pdfLink", buttonSubscribe: "buttonSubscribe", buttonBack: "buttonBack", socialMedia: "socialMedia", hotelName: "hotelName" }, outputs: { btnBookClick: "btnBookClick" }, ngImport: i0, template: "<section class=\"vertical-info generalMargin\">\n <div class=\"vertical-info__left\">\n <div class=\"vertical-info__content\">\n <div class=\"vertical-info__main\">\n @if (pretitle) {\n <p class=\"vertical-info__pretitle\">{{ pretitle }}</p>\n }\n @if (buttonBack) {\n <a\n [href]=\"buttonBack.url\"\n class=\"btn btn__primary--outline vertical-info__btn-back\"\n [attr.aria-label]=\"buttonBack.label\"\n >{{ buttonBack.label }}</a\n >\n }\n <div>\n @if (tag) {\n <span class=\"vertical-info__tag\">{{ tag }}</span>\n }\n @if (title) {\n <h2 class=\"vertical-info__title\">{{ title }}</h2>\n }\n @if (subtitle) {\n <div\n class=\"vertical-info__subtitle\"\n [innerHTML]=\"subtitle\"\n ></div>\n }\n </div>\n <!-- TODO: add discount -->\n <div class=\"vertical-info__boxes\">\n <div class=\"vertical-info__box\">\n @if (from) {\n <p class=\"vertical-info__from\">\n {{ from }}\n </p>\n }\n @if (price) {\n <div class=\"vertical-info__price-row\">\n <p class=\"vertical-info__price\">\n {{ price.value }}{{ currency || '\u20AC' }}\n </p>\n <p class=\"vertical-info__pp\">\n {{ price.label }}\n </p>\n </div>\n } @else {\n @if (discount) {\n <p class=\"vertical-info__price\">\n {{ discount }}%\n </p>\n }\n }\n </div>\n @if (buttonSubscribe) {\n <a\n [href]=\"buttonSubscribe.url\"\n class=\"vertical-info__btn btn btn__primary--outline\"\n [attr.aria-label]=\"buttonSubscribe.label\"\n >\n {{ buttonSubscribe.label }}\n </a>\n }\n </div>\n @if (intro) {\n <div class=\"vertical-info__data\">\n @for (item of intro; track $index) {\n <div>\n @if (item.title) {\n <p class=\"vertical-info__small-title\">\n {{ item.title }}\n </p>\n }\n @if (item.description) {\n <div\n class=\"vertical-info__description\"\n [innerHTML]=\"item.description\"\n ></div>\n }\n </div>\n }\n </div>\n }\n @if (contactTitle && contactLinks) {\n <div\n class=\"vertical-info__additional vertical-info__additional--contact\"\n >\n <p class=\"vertical-info__small-title\">\n {{ contactTitle }}\n </p>\n\n <div class=\"vertical-info__links\">\n @for (link of contactLinks; track $index) {\n <a\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >{{ link.label }}</a\n >\n }\n </div>\n </div>\n }\n @if (socialMedia && socialMedia.length > 0) {\n <div class=\"vertical-info__social\">\n @if(socialTitle){\n <p class=\"vertical-info__small-title\">\n {{ socialTitle }}\n </p>\n }\n <div class=\"vertical-info__media\">\n @for (social of socialMedia; track $index) {\n <a\n [href]=\"social.url\"\n linkType=\"external\"\n [attr.aria-label]=\"social.name\"\n >\n <img\n [src]=\"social.icon\"\n [alt]=\"social.name\"\n data-no-zoom\n />\n </a>\n }\n </div>\n </div>\n }\n @if (pdfLink && pdfLink.url) {\n <div\n class=\"vertical-info__additional vertical-info__additional--location\"\n >\n @if (fileTitle) {\n <p class=\"vertical-info__small-title\">\n {{ fileTitle }}\n </p>\n }\n </div>\n\n <a\n [href]=\"pdfLink.url\"\n linkType=\"external\"\n class=\"btn__link\"\n [attr.aria-label]=\"pdfLink.label\"\n >{{ pdfLink.label }}</a\n >\n }\n @if (buttonGuests) {\n <a\n [href]=\"buttonGuests.url\"\n class=\"btn btn__primary--outline vertical-info__btn-full\"\n [attr.aria-label]=\"buttonGuests.label\"\n >{{ buttonGuests.label }}</a\n >\n }\n @if (buttonBook) {\n @if (buttonBook.linkType == 'component_link') {\n <a\n (click)=\"btnBookClick.emit(hotelName)\"\n class=\"btn btn__primary vertical-info__btn-full\"\n [attr.aria-label]=\"buttonBook.label\"\n >{{ buttonBook.label }}</a\n >\n }\n @if (buttonBook.linkType != 'component_link') {\n <a\n [href]=\"buttonBook.url\"\n class=\"btn btn__primary vertical-info__btn-full\"\n [attr.aria-label]=\"buttonBook.label\"\n >{{ buttonBook.label }}</a\n >\n }\n }\n </div>\n\n @if (img) {\n <img\n class=\"vertical-info__image\"\n [src]=\"img.src\"\n [alt]=\"img.alt\"\n width=\"431\"\n height=\"531\"\n loading=\"lazy\"\n />\n }\n </div>\n\n <div class=\"vertical-info__right\">\n @if (infoList) {\n <div class=\"vertical-info__info-description\">\n <p class=\"vertical-info__title\">{{ infoList.title }}</p>\n <div\n class=\"vertical-info__description\"\n [innerHTML]=\"infoList.description\"\n ></div>\n <ul class=\"vertical-info__list\">\n @for (item of infoList.items; track $index) {\n <li>{{ item }}</li>\n }\n </ul>\n </div>\n }\n @if (imgList && imgList.items && imgList.items.length > 0) {\n <div class=\"vertical-info__schedule\">\n <p class=\"vertical-info__title\">{{ imgList.title }}</p>\n <ul class=\"vertical-info__img-list\">\n @for (item of imgList.items; track $index) {\n <li>\n @if (item.image) {\n <img\n class=\"vertical-info__performance-img\"\n [src]=\"item.image.src\"\n [alt]=\"item.image.alt\"\n width=\"77\"\n height=\"77\"\n loading=\"lazy\"\n />\n }\n <div>\n <p class=\"vertical-info__small-title\">\n {{ item.title }}\n </p>\n <div\n class=\"vertical-info__description\"\n [innerHTML]=\"item.description\"\n ></div>\n </div>\n </li>\n }\n </ul>\n </div>\n }\n @if (ndInfoList) {\n <div class=\"vertical-info__info-description\">\n <p class=\"vertical-info__title\">{{ ndInfoList.title }}</p>\n <div\n class=\"vertical-info__description\"\n [innerHTML]=\"ndInfoList.description\"\n ></div>\n <ul class=\"vertical-info__list\">\n @for (item of ndInfoList.items; track $index) {\n <li>\n {{ item.title || item.name }}\n <span class=\"vertical-info__price\"\n >{{ item.price\n }}{{ item.currency || '\u20AC' }}</span\n >\n </li>\n }\n </ul>\n </div>\n }\n @if (infoButton) {\n <div class=\"vertical-info__book\">\n @if (infoButton.title) {\n <p class=\"vertical-info__title\">\n {{ infoButton.title }}\n </p>\n }\n @if (infoButton.description) {\n <div\n class=\"vertical-info__description\"\n [innerHTML]=\"infoButton.description\"\n ></div>\n }\n @if (infoButton.button) {\n <button\n class=\"btn btn__primary--outline\"\n [attr.aria-label]=\"infoButton.button.label\"\n >\n {{ infoButton.button.label }}\n </button>\n }\n </div>\n }\n <div class=\"vertical-info__separator\"></div>\n @if (extraTitle && extraDescription) {\n <div class=\"vertical-info__additional\">\n <p class=\"vertical-info__small-title\">{{ extraTitle }}</p>\n\n <div>\n <div\n class=\"vertical-info__description\"\n [innerHTML]=\"extraDescription\"\n ></div>\n </div>\n </div>\n }\n <!-- @if (location) {\n <div\n class=\"vertical-info__additional vertical-info__additional--location\"\n >\n <p class=\"vertical-info__small-title\">\n {{ location.title }}\n </p>\n <div\n class=\"vertical-info__description\"\n [innerHTML]=\"location.description\"\n ></div>\n </div>\n\n @if (location.button) {\n <a\n [href]=\"location.button.url\"\n [linkType]=\"location.button.linkType\"\n class=\"btn btn__primary--outline vertical-info__btn-map\"\n [attr.aria-label]=\"location.button.label\"\n >{{ location.button.label }}</a\n >\n }\n } -->\n </div>\n </div>\n</section>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: AutoImageZoomWrapperDirective, selector: "img[src]" }, { kind: "directive", type: PuroLinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href", "modalClick"], outputs: ["bookClick", "anchorClicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
19
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroVerticalInfoComponent, isStandalone: true, selector: "lib-puro-vertical-info", inputs: { pretitle: "pretitle", tag: "tag", title: "title", subtitle: "subtitle", price: "price", from: "from", to: "to", discount: "discount", currency: "currency", img: "img", socialTitle: "socialTitle", contactTitle: "contactTitle", extraTitle: "extraTitle", extraDescription: "extraDescription", fileTitle: "fileTitle", location: "location", intro: "intro", infoList: "infoList", imgList: "imgList", ndInfoList: "ndInfoList", infoButton: "infoButton", contactLinks: "contactLinks", buttonBook: "buttonBook", buttonGuests: "buttonGuests", pdfLink: "pdfLink", buttonSubscribe: "buttonSubscribe", buttonBack: "buttonBack", socialMedia: "socialMedia", hotelName: "hotelName" }, outputs: { btnBookClick: "btnBookClick" }, ngImport: i0, template: "<section class=\"vertical-info generalMargin\">\n <div class=\"vertical-info__left\">\n <div class=\"vertical-info__content\">\n <div class=\"vertical-info__main\">\n @if (pretitle) {\n <p class=\"vertical-info__pretitle\">{{ pretitle }}</p>\n }\n @if (buttonBack) {\n <a\n [href]=\"buttonBack.url\"\n class=\"btn btn__primary--outline vertical-info__btn-back\"\n [attr.aria-label]=\"buttonBack.label\"\n >{{ buttonBack.label }}</a\n >\n }\n <div>\n @if (tag) {\n <span class=\"vertical-info__tag\">{{ tag }}</span>\n }\n @if (title) {\n <h2 class=\"vertical-info__title\">{{ title }}</h2>\n }\n @if (subtitle) {\n <div\n class=\"vertical-info__subtitle\"\n [innerHTML]=\"subtitle\"\n ></div>\n }\n </div>\n <!-- TODO: add discount -->\n <div class=\"vertical-info__boxes\">\n @if ((price && price.value) || discount) {\n <div class=\"vertical-info__box\">\n @if (from) {\n <p class=\"vertical-info__from\">\n {{ from }}\n </p>\n }\n @if (price && price.value) {\n <div class=\"vertical-info__price-row\">\n <p class=\"vertical-info__price\">\n {{ price.value }}{{ currency || '\u20AC' }}\n </p>\n <p class=\"vertical-info__pp\">\n {{ price.label }}\n </p>\n </div>\n } @else {\n @if (discount) {\n <p class=\"vertical-info__price\">\n {{ discount }}%\n </p>\n }\n }\n </div>\n }\n @if (buttonSubscribe) {\n <a\n [href]=\"buttonSubscribe.url\"\n class=\"vertical-info__btn btn btn__primary--outline\"\n [attr.aria-label]=\"buttonSubscribe.label\"\n >\n {{ buttonSubscribe.label }}\n </a>\n }\n </div>\n @if (intro) {\n <div class=\"vertical-info__data\">\n @for (item of intro; track $index) {\n <div>\n @if (item.title) {\n <p class=\"vertical-info__small-title\">\n {{ item.title }}\n </p>\n }\n @if (item.description) {\n <div\n class=\"vertical-info__description\"\n [innerHTML]=\"item.description\"\n ></div>\n }\n </div>\n }\n </div>\n }\n @if (contactTitle && contactLinks) {\n <div\n class=\"vertical-info__additional vertical-info__additional--contact\"\n >\n <p class=\"vertical-info__small-title\">\n {{ contactTitle }}\n </p>\n\n <div class=\"vertical-info__links\">\n @for (link of contactLinks; track $index) {\n <a\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >{{ link.label }}</a\n >\n }\n </div>\n </div>\n }\n @if (socialMedia && socialMedia.length > 0) {\n <div class=\"vertical-info__social\">\n @if (socialTitle) {\n <p class=\"vertical-info__small-title\">\n {{ socialTitle }}\n </p>\n }\n <div class=\"vertical-info__media\">\n @for (social of socialMedia; track $index) {\n <a\n [href]=\"social.url\"\n linkType=\"external\"\n [attr.aria-label]=\"social.name\"\n >\n <img\n [src]=\"social.icon\"\n [alt]=\"social.name\"\n data-no-zoom\n />\n </a>\n }\n </div>\n </div>\n }\n @if (pdfLink && pdfLink.url) {\n <div\n class=\"vertical-info__additional vertical-info__additional--location\"\n >\n @if (fileTitle) {\n <p class=\"vertical-info__small-title\">\n {{ fileTitle }}\n </p>\n }\n </div>\n\n <a\n [href]=\"pdfLink.url\"\n linkType=\"external\"\n class=\"btn__link\"\n [attr.aria-label]=\"pdfLink.label\"\n >{{ pdfLink.label }}</a\n >\n }\n @if (buttonGuests) {\n <a\n [href]=\"buttonGuests.url\"\n class=\"btn btn__primary--outline vertical-info__btn-full\"\n [attr.aria-label]=\"buttonGuests.label\"\n >{{ buttonGuests.label }}</a\n >\n }\n @if (buttonBook) {\n @if (buttonBook.linkType == 'component_link') {\n <a\n (click)=\"btnBookClick.emit(hotelName)\"\n class=\"btn btn__primary vertical-info__btn-full\"\n [attr.aria-label]=\"buttonBook.label\"\n >{{ buttonBook.label }}</a\n >\n }\n @if (buttonBook.linkType != 'component_link') {\n <a\n [href]=\"buttonBook.url\"\n class=\"btn btn__primary vertical-info__btn-full\"\n [attr.aria-label]=\"buttonBook.label\"\n >{{ buttonBook.label }}</a\n >\n }\n }\n </div>\n\n @if (img) {\n <img\n class=\"vertical-info__image\"\n [src]=\"img.src\"\n [alt]=\"img.alt\"\n width=\"431\"\n height=\"531\"\n loading=\"lazy\"\n />\n }\n </div>\n\n <div class=\"vertical-info__right\">\n @if (infoList) {\n <div class=\"vertical-info__info-description\">\n <p class=\"vertical-info__title\">{{ infoList.title }}</p>\n <div\n class=\"vertical-info__description\"\n [innerHTML]=\"infoList.description\"\n ></div>\n <ul class=\"vertical-info__list\">\n @for (item of infoList.items; track $index) {\n <li>{{ item }}</li>\n }\n </ul>\n </div>\n }\n @if (imgList && imgList.items && imgList.items.length > 0) {\n <div class=\"vertical-info__schedule\">\n <p class=\"vertical-info__title\">{{ imgList.title }}</p>\n <ul class=\"vertical-info__img-list\">\n @for (item of imgList.items; track $index) {\n <li>\n @if (item.image) {\n <img\n class=\"vertical-info__performance-img\"\n [src]=\"item.image.src\"\n [alt]=\"item.image.alt\"\n width=\"77\"\n height=\"77\"\n loading=\"lazy\"\n />\n }\n <div>\n <p class=\"vertical-info__small-title\">\n {{ item.title }}\n </p>\n <div\n class=\"vertical-info__description\"\n [innerHTML]=\"item.description\"\n ></div>\n </div>\n </li>\n }\n </ul>\n </div>\n }\n @if (ndInfoList) {\n <div class=\"vertical-info__info-description\">\n <p class=\"vertical-info__title\">{{ ndInfoList.title }}</p>\n <div\n class=\"vertical-info__description\"\n [innerHTML]=\"ndInfoList.description\"\n ></div>\n <ul class=\"vertical-info__list\">\n @for (item of ndInfoList.items; track $index) {\n <li>\n {{ item.title || item.name }}\n <span class=\"vertical-info__price\"\n >{{ item.price\n }}{{ item.currency || '\u20AC' }}</span\n >\n </li>\n }\n </ul>\n </div>\n }\n @if (infoButton) {\n <div class=\"vertical-info__book\">\n @if (infoButton.title) {\n <p class=\"vertical-info__title\">\n {{ infoButton.title }}\n </p>\n }\n @if (infoButton.description) {\n <div\n class=\"vertical-info__description\"\n [innerHTML]=\"infoButton.description\"\n ></div>\n }\n @if (infoButton.button) {\n <button\n class=\"btn btn__primary--outline\"\n [attr.aria-label]=\"infoButton.button.label\"\n >\n {{ infoButton.button.label }}\n </button>\n }\n </div>\n }\n <div class=\"vertical-info__separator\"></div>\n @if (extraTitle && extraDescription) {\n <div class=\"vertical-info__additional\">\n <p class=\"vertical-info__small-title\">{{ extraTitle }}</p>\n\n <div>\n <div\n class=\"vertical-info__description\"\n [innerHTML]=\"extraDescription\"\n ></div>\n </div>\n </div>\n }\n <!-- @if (location) {\n <div\n class=\"vertical-info__additional vertical-info__additional--location\"\n >\n <p class=\"vertical-info__small-title\">\n {{ location.title }}\n </p>\n <div\n class=\"vertical-info__description\"\n [innerHTML]=\"location.description\"\n ></div>\n </div>\n\n @if (location.button) {\n <a\n [href]=\"location.button.url\"\n [linkType]=\"location.button.linkType\"\n class=\"btn btn__primary--outline vertical-info__btn-map\"\n [attr.aria-label]=\"location.button.label\"\n >{{ location.button.label }}</a\n >\n }\n } -->\n </div>\n </div>\n</section>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: AutoImageZoomWrapperDirective, selector: "img[src]" }, { kind: "directive", type: PuroLinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href", "modalClick"], outputs: ["bookClick", "anchorClicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
20
20
|
}
|
|
21
21
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroVerticalInfoComponent, decorators: [{
|
|
22
22
|
type: Component,
|
|
@@ -24,7 +24,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
24
24
|
CommonModule,
|
|
25
25
|
AutoImageZoomWrapperDirective,
|
|
26
26
|
PuroLinkTypeDirective,
|
|
27
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<section class=\"vertical-info generalMargin\">\n <div class=\"vertical-info__left\">\n <div class=\"vertical-info__content\">\n <div class=\"vertical-info__main\">\n @if (pretitle) {\n <p class=\"vertical-info__pretitle\">{{ pretitle }}</p>\n }\n @if (buttonBack) {\n <a\n [href]=\"buttonBack.url\"\n class=\"btn btn__primary--outline vertical-info__btn-back\"\n [attr.aria-label]=\"buttonBack.label\"\n >{{ buttonBack.label }}</a\n >\n }\n <div>\n @if (tag) {\n <span class=\"vertical-info__tag\">{{ tag }}</span>\n }\n @if (title) {\n <h2 class=\"vertical-info__title\">{{ title }}</h2>\n }\n @if (subtitle) {\n <div\n class=\"vertical-info__subtitle\"\n [innerHTML]=\"subtitle\"\n ></div>\n }\n </div>\n <!-- TODO: add discount -->\n <div class=\"vertical-info__boxes\">\n <div class=\"vertical-info__box\">\n @if (from) {\n <p class=\"vertical-info__from\">\n {{ from }}\n </p>\n }\n @if (price) {\n <div class=\"vertical-info__price-row\">\n <p class=\"vertical-info__price\">\n {{ price.value }}{{ currency || '\u20AC' }}\n </p>\n <p class=\"vertical-info__pp\">\n {{ price.label }}\n </p>\n </div>\n } @else {\n @if (discount) {\n <p class=\"vertical-info__price\">\n {{ discount }}%\n </p>\n }\n }\n </div>\n @if (buttonSubscribe) {\n <a\n [href]=\"buttonSubscribe.url\"\n class=\"vertical-info__btn btn btn__primary--outline\"\n [attr.aria-label]=\"buttonSubscribe.label\"\n >\n {{ buttonSubscribe.label }}\n </a>\n }\n </div>\n @if (intro) {\n <div class=\"vertical-info__data\">\n @for (item of intro; track $index) {\n <div>\n @if (item.title) {\n <p class=\"vertical-info__small-title\">\n {{ item.title }}\n </p>\n }\n @if (item.description) {\n <div\n class=\"vertical-info__description\"\n [innerHTML]=\"item.description\"\n ></div>\n }\n </div>\n }\n </div>\n }\n @if (contactTitle && contactLinks) {\n <div\n class=\"vertical-info__additional vertical-info__additional--contact\"\n >\n <p class=\"vertical-info__small-title\">\n {{ contactTitle }}\n </p>\n\n <div class=\"vertical-info__links\">\n @for (link of contactLinks; track $index) {\n <a\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >{{ link.label }}</a\n >\n }\n </div>\n </div>\n }\n @if (socialMedia && socialMedia.length > 0) {\n <div class=\"vertical-info__social\">\n @if(socialTitle){\n <p class=\"vertical-info__small-title\">\n {{ socialTitle }}\n </p>\n }\n <div class=\"vertical-info__media\">\n @for (social of socialMedia; track $index) {\n <a\n [href]=\"social.url\"\n linkType=\"external\"\n [attr.aria-label]=\"social.name\"\n >\n <img\n [src]=\"social.icon\"\n [alt]=\"social.name\"\n data-no-zoom\n />\n </a>\n }\n </div>\n </div>\n }\n @if (pdfLink && pdfLink.url) {\n <div\n class=\"vertical-info__additional vertical-info__additional--location\"\n >\n @if (fileTitle) {\n <p class=\"vertical-info__small-title\">\n {{ fileTitle }}\n </p>\n }\n </div>\n\n <a\n [href]=\"pdfLink.url\"\n linkType=\"external\"\n class=\"btn__link\"\n [attr.aria-label]=\"pdfLink.label\"\n >{{ pdfLink.label }}</a\n >\n }\n @if (buttonGuests) {\n <a\n [href]=\"buttonGuests.url\"\n class=\"btn btn__primary--outline vertical-info__btn-full\"\n [attr.aria-label]=\"buttonGuests.label\"\n >{{ buttonGuests.label }}</a\n >\n }\n @if (buttonBook) {\n @if (buttonBook.linkType == 'component_link') {\n <a\n (click)=\"btnBookClick.emit(hotelName)\"\n class=\"btn btn__primary vertical-info__btn-full\"\n [attr.aria-label]=\"buttonBook.label\"\n >{{ buttonBook.label }}</a\n >\n }\n @if (buttonBook.linkType != 'component_link') {\n <a\n [href]=\"buttonBook.url\"\n class=\"btn btn__primary vertical-info__btn-full\"\n [attr.aria-label]=\"buttonBook.label\"\n >{{ buttonBook.label }}</a\n >\n }\n }\n </div>\n\n @if (img) {\n <img\n class=\"vertical-info__image\"\n [src]=\"img.src\"\n [alt]=\"img.alt\"\n width=\"431\"\n height=\"531\"\n loading=\"lazy\"\n />\n }\n </div>\n\n <div class=\"vertical-info__right\">\n @if (infoList) {\n <div class=\"vertical-info__info-description\">\n <p class=\"vertical-info__title\">{{ infoList.title }}</p>\n <div\n class=\"vertical-info__description\"\n [innerHTML]=\"infoList.description\"\n ></div>\n <ul class=\"vertical-info__list\">\n @for (item of infoList.items; track $index) {\n <li>{{ item }}</li>\n }\n </ul>\n </div>\n }\n @if (imgList && imgList.items && imgList.items.length > 0) {\n <div class=\"vertical-info__schedule\">\n <p class=\"vertical-info__title\">{{ imgList.title }}</p>\n <ul class=\"vertical-info__img-list\">\n @for (item of imgList.items; track $index) {\n <li>\n @if (item.image) {\n <img\n class=\"vertical-info__performance-img\"\n [src]=\"item.image.src\"\n [alt]=\"item.image.alt\"\n width=\"77\"\n height=\"77\"\n loading=\"lazy\"\n />\n }\n <div>\n <p class=\"vertical-info__small-title\">\n {{ item.title }}\n </p>\n <div\n class=\"vertical-info__description\"\n [innerHTML]=\"item.description\"\n ></div>\n </div>\n </li>\n }\n </ul>\n </div>\n }\n @if (ndInfoList) {\n <div class=\"vertical-info__info-description\">\n <p class=\"vertical-info__title\">{{ ndInfoList.title }}</p>\n <div\n class=\"vertical-info__description\"\n [innerHTML]=\"ndInfoList.description\"\n ></div>\n <ul class=\"vertical-info__list\">\n @for (item of ndInfoList.items; track $index) {\n <li>\n {{ item.title || item.name }}\n <span class=\"vertical-info__price\"\n >{{ item.price\n }}{{ item.currency || '\u20AC' }}</span\n >\n </li>\n }\n </ul>\n </div>\n }\n @if (infoButton) {\n <div class=\"vertical-info__book\">\n @if (infoButton.title) {\n <p class=\"vertical-info__title\">\n {{ infoButton.title }}\n </p>\n }\n @if (infoButton.description) {\n <div\n class=\"vertical-info__description\"\n [innerHTML]=\"infoButton.description\"\n ></div>\n }\n @if (infoButton.button) {\n <button\n class=\"btn btn__primary--outline\"\n [attr.aria-label]=\"infoButton.button.label\"\n >\n {{ infoButton.button.label }}\n </button>\n }\n </div>\n }\n <div class=\"vertical-info__separator\"></div>\n @if (extraTitle && extraDescription) {\n <div class=\"vertical-info__additional\">\n <p class=\"vertical-info__small-title\">{{ extraTitle }}</p>\n\n <div>\n <div\n class=\"vertical-info__description\"\n [innerHTML]=\"extraDescription\"\n ></div>\n </div>\n </div>\n }\n <!-- @if (location) {\n <div\n class=\"vertical-info__additional vertical-info__additional--location\"\n >\n <p class=\"vertical-info__small-title\">\n {{ location.title }}\n </p>\n <div\n class=\"vertical-info__description\"\n [innerHTML]=\"location.description\"\n ></div>\n </div>\n\n @if (location.button) {\n <a\n [href]=\"location.button.url\"\n [linkType]=\"location.button.linkType\"\n class=\"btn btn__primary--outline vertical-info__btn-map\"\n [attr.aria-label]=\"location.button.label\"\n >{{ location.button.label }}</a\n >\n }\n } -->\n </div>\n </div>\n</section>\n" }]
|
|
27
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<section class=\"vertical-info generalMargin\">\n <div class=\"vertical-info__left\">\n <div class=\"vertical-info__content\">\n <div class=\"vertical-info__main\">\n @if (pretitle) {\n <p class=\"vertical-info__pretitle\">{{ pretitle }}</p>\n }\n @if (buttonBack) {\n <a\n [href]=\"buttonBack.url\"\n class=\"btn btn__primary--outline vertical-info__btn-back\"\n [attr.aria-label]=\"buttonBack.label\"\n >{{ buttonBack.label }}</a\n >\n }\n <div>\n @if (tag) {\n <span class=\"vertical-info__tag\">{{ tag }}</span>\n }\n @if (title) {\n <h2 class=\"vertical-info__title\">{{ title }}</h2>\n }\n @if (subtitle) {\n <div\n class=\"vertical-info__subtitle\"\n [innerHTML]=\"subtitle\"\n ></div>\n }\n </div>\n <!-- TODO: add discount -->\n <div class=\"vertical-info__boxes\">\n @if ((price && price.value) || discount) {\n <div class=\"vertical-info__box\">\n @if (from) {\n <p class=\"vertical-info__from\">\n {{ from }}\n </p>\n }\n @if (price && price.value) {\n <div class=\"vertical-info__price-row\">\n <p class=\"vertical-info__price\">\n {{ price.value }}{{ currency || '\u20AC' }}\n </p>\n <p class=\"vertical-info__pp\">\n {{ price.label }}\n </p>\n </div>\n } @else {\n @if (discount) {\n <p class=\"vertical-info__price\">\n {{ discount }}%\n </p>\n }\n }\n </div>\n }\n @if (buttonSubscribe) {\n <a\n [href]=\"buttonSubscribe.url\"\n class=\"vertical-info__btn btn btn__primary--outline\"\n [attr.aria-label]=\"buttonSubscribe.label\"\n >\n {{ buttonSubscribe.label }}\n </a>\n }\n </div>\n @if (intro) {\n <div class=\"vertical-info__data\">\n @for (item of intro; track $index) {\n <div>\n @if (item.title) {\n <p class=\"vertical-info__small-title\">\n {{ item.title }}\n </p>\n }\n @if (item.description) {\n <div\n class=\"vertical-info__description\"\n [innerHTML]=\"item.description\"\n ></div>\n }\n </div>\n }\n </div>\n }\n @if (contactTitle && contactLinks) {\n <div\n class=\"vertical-info__additional vertical-info__additional--contact\"\n >\n <p class=\"vertical-info__small-title\">\n {{ contactTitle }}\n </p>\n\n <div class=\"vertical-info__links\">\n @for (link of contactLinks; track $index) {\n <a\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >{{ link.label }}</a\n >\n }\n </div>\n </div>\n }\n @if (socialMedia && socialMedia.length > 0) {\n <div class=\"vertical-info__social\">\n @if (socialTitle) {\n <p class=\"vertical-info__small-title\">\n {{ socialTitle }}\n </p>\n }\n <div class=\"vertical-info__media\">\n @for (social of socialMedia; track $index) {\n <a\n [href]=\"social.url\"\n linkType=\"external\"\n [attr.aria-label]=\"social.name\"\n >\n <img\n [src]=\"social.icon\"\n [alt]=\"social.name\"\n data-no-zoom\n />\n </a>\n }\n </div>\n </div>\n }\n @if (pdfLink && pdfLink.url) {\n <div\n class=\"vertical-info__additional vertical-info__additional--location\"\n >\n @if (fileTitle) {\n <p class=\"vertical-info__small-title\">\n {{ fileTitle }}\n </p>\n }\n </div>\n\n <a\n [href]=\"pdfLink.url\"\n linkType=\"external\"\n class=\"btn__link\"\n [attr.aria-label]=\"pdfLink.label\"\n >{{ pdfLink.label }}</a\n >\n }\n @if (buttonGuests) {\n <a\n [href]=\"buttonGuests.url\"\n class=\"btn btn__primary--outline vertical-info__btn-full\"\n [attr.aria-label]=\"buttonGuests.label\"\n >{{ buttonGuests.label }}</a\n >\n }\n @if (buttonBook) {\n @if (buttonBook.linkType == 'component_link') {\n <a\n (click)=\"btnBookClick.emit(hotelName)\"\n class=\"btn btn__primary vertical-info__btn-full\"\n [attr.aria-label]=\"buttonBook.label\"\n >{{ buttonBook.label }}</a\n >\n }\n @if (buttonBook.linkType != 'component_link') {\n <a\n [href]=\"buttonBook.url\"\n class=\"btn btn__primary vertical-info__btn-full\"\n [attr.aria-label]=\"buttonBook.label\"\n >{{ buttonBook.label }}</a\n >\n }\n }\n </div>\n\n @if (img) {\n <img\n class=\"vertical-info__image\"\n [src]=\"img.src\"\n [alt]=\"img.alt\"\n width=\"431\"\n height=\"531\"\n loading=\"lazy\"\n />\n }\n </div>\n\n <div class=\"vertical-info__right\">\n @if (infoList) {\n <div class=\"vertical-info__info-description\">\n <p class=\"vertical-info__title\">{{ infoList.title }}</p>\n <div\n class=\"vertical-info__description\"\n [innerHTML]=\"infoList.description\"\n ></div>\n <ul class=\"vertical-info__list\">\n @for (item of infoList.items; track $index) {\n <li>{{ item }}</li>\n }\n </ul>\n </div>\n }\n @if (imgList && imgList.items && imgList.items.length > 0) {\n <div class=\"vertical-info__schedule\">\n <p class=\"vertical-info__title\">{{ imgList.title }}</p>\n <ul class=\"vertical-info__img-list\">\n @for (item of imgList.items; track $index) {\n <li>\n @if (item.image) {\n <img\n class=\"vertical-info__performance-img\"\n [src]=\"item.image.src\"\n [alt]=\"item.image.alt\"\n width=\"77\"\n height=\"77\"\n loading=\"lazy\"\n />\n }\n <div>\n <p class=\"vertical-info__small-title\">\n {{ item.title }}\n </p>\n <div\n class=\"vertical-info__description\"\n [innerHTML]=\"item.description\"\n ></div>\n </div>\n </li>\n }\n </ul>\n </div>\n }\n @if (ndInfoList) {\n <div class=\"vertical-info__info-description\">\n <p class=\"vertical-info__title\">{{ ndInfoList.title }}</p>\n <div\n class=\"vertical-info__description\"\n [innerHTML]=\"ndInfoList.description\"\n ></div>\n <ul class=\"vertical-info__list\">\n @for (item of ndInfoList.items; track $index) {\n <li>\n {{ item.title || item.name }}\n <span class=\"vertical-info__price\"\n >{{ item.price\n }}{{ item.currency || '\u20AC' }}</span\n >\n </li>\n }\n </ul>\n </div>\n }\n @if (infoButton) {\n <div class=\"vertical-info__book\">\n @if (infoButton.title) {\n <p class=\"vertical-info__title\">\n {{ infoButton.title }}\n </p>\n }\n @if (infoButton.description) {\n <div\n class=\"vertical-info__description\"\n [innerHTML]=\"infoButton.description\"\n ></div>\n }\n @if (infoButton.button) {\n <button\n class=\"btn btn__primary--outline\"\n [attr.aria-label]=\"infoButton.button.label\"\n >\n {{ infoButton.button.label }}\n </button>\n }\n </div>\n }\n <div class=\"vertical-info__separator\"></div>\n @if (extraTitle && extraDescription) {\n <div class=\"vertical-info__additional\">\n <p class=\"vertical-info__small-title\">{{ extraTitle }}</p>\n\n <div>\n <div\n class=\"vertical-info__description\"\n [innerHTML]=\"extraDescription\"\n ></div>\n </div>\n </div>\n }\n <!-- @if (location) {\n <div\n class=\"vertical-info__additional vertical-info__additional--location\"\n >\n <p class=\"vertical-info__small-title\">\n {{ location.title }}\n </p>\n <div\n class=\"vertical-info__description\"\n [innerHTML]=\"location.description\"\n ></div>\n </div>\n\n @if (location.button) {\n <a\n [href]=\"location.button.url\"\n [linkType]=\"location.button.linkType\"\n class=\"btn btn__primary--outline vertical-info__btn-map\"\n [attr.aria-label]=\"location.button.label\"\n >{{ location.button.label }}</a\n >\n }\n } -->\n </div>\n </div>\n</section>\n" }]
|
|
28
28
|
}], ctorParameters: () => [{ type: Object, decorators: [{
|
|
29
29
|
type: Inject,
|
|
30
30
|
args: [PLATFORM_ID]
|
|
@@ -89,4 +89,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
89
89
|
}], btnBookClick: [{
|
|
90
90
|
type: Output
|
|
91
91
|
}] } });
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby12ZXJ0aWNhbC1pbmZvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3B1cm8vc3JjL2xpYi9jb21wb25lbnRzL3B1cm8tdmVydGljYWwtaW5mby9wdXJvLXZlcnRpY2FsLWluZm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby12ZXJ0aWNhbC1pbmZvL3B1cm8tdmVydGljYWwtaW5mby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFdBQVcsR0FDZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsNkJBQTZCLEVBQzdCLHFCQUFxQixHQUN4QixNQUFNLGtCQUFrQixDQUFDOztBQWUxQixNQUFNLE9BQU8seUJBQXlCO0lBaUNsQyxZQUF5QyxVQUFrQjtRQUFsQixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBRmpELGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUVrQixDQUFDO0lBRS9ELElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksVUFBVTtRQUNWLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDbkQsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztJQUNoQyxDQUFDOytHQTFDUSx5QkFBeUIsa0JBaUNkLFdBQVc7bUdBakN0Qix5QkFBeUIsbXlCQzVCdEMsdWliQXlUQSx5RERyU1EsWUFBWSwrQkFDWiw2QkFBNkIscURBQzdCLHFCQUFxQjs7NEZBTWhCLHlCQUF5QjtrQkFackMsU0FBUzsrQkFDSSx3QkFBd0IsY0FDdEIsSUFBSSxXQUNQO3dCQUNMLFlBQVk7d0JBQ1osNkJBQTZCO3dCQUM3QixxQkFBcUI7cUJBQ3hCLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNOzswQkFtQ2xDLE1BQU07MkJBQUMsV0FBVzt5Q0FoQ3RCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVJLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFBMQVRGT1JNX0lELFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQXV0b0ltYWdlWm9vbVdyYXBwZXJEaXJlY3RpdmUsXG4gICAgUHVyb0xpbmtUeXBlRGlyZWN0aXZlLFxufSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IFB1cm9CdXR0b25JLCBQdXJvSW1hZ2VJIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLXB1cm8tdmVydGljYWwtaW5mbycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgQXV0b0ltYWdlWm9vbVdyYXBwZXJEaXJlY3RpdmUsXG4gICAgICAgIFB1cm9MaW5rVHlwZURpcmVjdGl2ZSxcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wdXJvLXZlcnRpY2FsLWluZm8uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9wdXJvLXZlcnRpY2FsLWluZm8uY29tcG9uZW50LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQdXJvVmVydGljYWxJbmZvQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBwcmV0aXRsZT86IHN0cmluZztcbiAgICBASW5wdXQoKSB0YWc/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgdGl0bGU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgc3VidGl0bGU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHJpY2U/OiBQdXJvUHJpY2VJdGVtSTtcbiAgICBASW5wdXQoKSBmcm9tPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHRvPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGRpc2NvdW50PzogbnVtYmVyO1xuICAgIEBJbnB1dCgpIGN1cnJlbmN5Pzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGltZz86IFB1cm9JbWFnZUk7XG4gICAgQElucHV0KCkgc29jaWFsVGl0bGU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgY29udGFjdFRpdGxlPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGV4dHJhVGl0bGU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgZXh0cmFEZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBASW5wdXQoKSBmaWxlVGl0bGU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgbG9jYXRpb24/OiBQdXJvVmVydGljYWxJbmZvTG9jYXRpb247XG4gICAgQElucHV0KCkgaW50cm8/OiBQdXJvVmVydGljYWxJbmZvSW50cm9bXTtcbiAgICBASW5wdXQoKSBpbmZvTGlzdD86IFB1cm9WZXJ0aWNhbEluZm9MaXN0O1xuICAgIEBJbnB1dCgpIGltZ0xpc3Q/OiBQdXJvVmVydGljYWxJbmZvSW1hZ2VMaXN0O1xuICAgIEBJbnB1dCgpIG5kSW5mb0xpc3Q/OiBQdXJvVmVydGljYWxJbmZvTmRMaXN0O1xuICAgIEBJbnB1dCgpIGluZm9CdXR0b24/OiBQdXJvVmVydGljYWxJbmZvV2l0aEJ1dHRvbjtcbiAgICBASW5wdXQoKSBjb250YWN0TGlua3M/OiBQdXJvQnV0dG9uSVtdO1xuICAgIEBJbnB1dCgpIGJ1dHRvbkJvb2s/OiBQdXJvQnV0dG9uSTtcbiAgICBASW5wdXQoKSBidXR0b25HdWVzdHM/OiBQdXJvQnV0dG9uSTtcbiAgICBASW5wdXQoKSBwZGZMaW5rPzogUHVyb0J1dHRvbkk7XG4gICAgQElucHV0KCkgYnV0dG9uU3Vic2NyaWJlPzogUHVyb0J1dHRvbkk7XG4gICAgQElucHV0KCkgYnV0dG9uQmFjaz86IFB1cm9CdXR0b25JO1xuICAgIEBJbnB1dCgpIHNvY2lhbE1lZGlhPzogUHVyb1ZlcnRpY2FsSW5mb1NvY2lhbE1lZGlhSXRlbVtdO1xuICAgIEBJbnB1dCgpIGhvdGVsTmFtZT86IHN0cmluZztcblxuICAgIEBPdXRwdXQoKSBidG5Cb29rQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IE9iamVjdCkge31cblxuICAgIGdldCBzaGFyZVRleHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGl0bGUgPz8gJyc7XG4gICAgfVxuXG4gICAgZ2V0IGN1cnJlbnRVcmwoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm4gJyc7XG4gICAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24uaHJlZjtcbiAgICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVyb1ZlcnRpY2FsSW5mb0xvY2F0aW9uIHtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBidXR0b24/OiBQdXJvQnV0dG9uSTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHVyb1ZlcnRpY2FsSW5mb0ludHJvIHtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHVyb1ZlcnRpY2FsSW5mb0xpc3Qge1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIGl0ZW1zPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVyb1ZlcnRpY2FsSW5mb0ltYWdlTGlzdCB7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgaXRlbXM/OiBQdXJvVmVydGljYWxJbmZvSW1hZ2VbXTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHVyb1ZlcnRpY2FsSW5mb0ltYWdlIHtcbiAgICBpbWFnZT86IFB1cm9JbWFnZUk7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVyb1ZlcnRpY2FsSW5mb05kTGlzdCB7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgaXRlbXM/OiBQdXJvVmVydGljYWxJbmZvTmRbXTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHVyb1ZlcnRpY2FsSW5mb05kIHtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIHByaWNlPzogbnVtYmVyO1xuICAgIGN1cnJlbmN5Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFB1cm9WZXJ0aWNhbEluZm9XaXRoQnV0dG9uIHtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBidXR0b24/OiBQdXJvQnV0dG9uSTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdXJvVmVydGljYWxJbmZvU29jaWFsTWVkaWFJdGVtIHtcbiAgICBpY29uPzogc3RyaW5nO1xuICAgIHVybD86IHN0cmluZztcbiAgICBuYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFB1cm9QcmljZUl0ZW1Je1xuICAgIHZhbHVlPzogbnVtYmVyO1xuICAgIGxhYmVsPzogc3RyaW5nO1xufSIsIjxzZWN0aW9uIGNsYXNzPVwidmVydGljYWwtaW5mbyBnZW5lcmFsTWFyZ2luXCI+XG4gICAgPGRpdiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2xlZnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2NvbnRlbnRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19tYWluXCI+XG4gICAgICAgICAgICAgICAgQGlmIChwcmV0aXRsZSkge1xuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3ByZXRpdGxlXCI+e3sgcHJldGl0bGUgfX08L3A+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoYnV0dG9uQmFjaykge1xuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiYnV0dG9uQmFjay51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuX19wcmltYXJ5LS1vdXRsaW5lIHZlcnRpY2FsLWluZm9fX2J0bi1iYWNrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYnV0dG9uQmFjay5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+e3sgYnV0dG9uQmFjay5sYWJlbCB9fTwvYVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAodGFnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3RhZ1wiPnt7IHRhZyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKHRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX190aXRsZVwiPnt7IHRpdGxlIH19PC9oMj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKHN1YnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19zdWJ0aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJzdWJ0aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8IS0tIFRPRE86IGFkZCBkaXNjb3VudCAtLT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmVydGljYWwtaW5mb19fYm94ZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2JveFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChmcm9tKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19mcm9tXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGZyb20gfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHByaWNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3ByaWNlLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3ByaWNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBwcmljZS52YWx1ZSB9fXt7IGN1cnJlbmN5IHx8ICfigqwnIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19wcFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgcHJpY2UubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChkaXNjb3VudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3ByaWNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBkaXNjb3VudCB9fSVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoYnV0dG9uU3Vic2NyaWJlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cImJ1dHRvblN1YnNjcmliZS51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmVydGljYWwtaW5mb19fYnRuIGJ0biBidG5fX3ByaW1hcnktLW91dGxpbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYnV0dG9uU3Vic2NyaWJlLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBidXR0b25TdWJzY3JpYmUubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIEBpZiAoaW50cm8pIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2RhdGFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgaW50cm87IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS50aXRsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19zbWFsbC10aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2Rlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIml0ZW0uZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKGNvbnRhY3RUaXRsZSAmJiBjb250YWN0TGlua3MpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19hZGRpdGlvbmFsIHZlcnRpY2FsLWluZm9fX2FkZGl0aW9uYWwtLWNvbnRhY3RcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3NtYWxsLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgY29udGFjdFRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19saW5rc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGxpbmsgb2YgY29udGFjdExpbmtzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cImxpbmsudXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJsaW5rLmxpbmtUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGluay5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgbGluay5sYWJlbCB9fTwvYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKHNvY2lhbE1lZGlhICYmIHNvY2lhbE1lZGlhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3NvY2lhbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmKHNvY2lhbFRpdGxlKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3NtYWxsLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHNvY2lhbFRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX21lZGlhXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoc29jaWFsIG9mIHNvY2lhbE1lZGlhOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cInNvY2lhbC51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlua1R5cGU9XCJleHRlcm5hbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInNvY2lhbC5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwic29jaWFsLmljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbHRdPVwic29jaWFsLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtbm8tem9vbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChwZGZMaW5rICYmIHBkZkxpbmsudXJsKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmVydGljYWwtaW5mb19fYWRkaXRpb25hbCB2ZXJ0aWNhbC1pbmZvX19hZGRpdGlvbmFsLS1sb2NhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZmlsZVRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19zbWFsbC10aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBmaWxlVGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJwZGZMaW5rLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rVHlwZT1cImV4dGVybmFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuX19saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicGRmTGluay5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+e3sgcGRmTGluay5sYWJlbCB9fTwvYVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoYnV0dG9uR3Vlc3RzKSB7XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJidXR0b25HdWVzdHMudXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bl9fcHJpbWFyeS0tb3V0bGluZSB2ZXJ0aWNhbC1pbmZvX19idG4tZnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJ1dHRvbkd1ZXN0cy5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+e3sgYnV0dG9uR3Vlc3RzLmxhYmVsIH19PC9hXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChidXR0b25Cb29rKSB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoYnV0dG9uQm9vay5saW5rVHlwZSA9PSAnY29tcG9uZW50X2xpbmsnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJidG5Cb29rQ2xpY2suZW1pdChob3RlbE5hbWUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG5fX3ByaW1hcnkgdmVydGljYWwtaW5mb19fYnRuLWZ1bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYnV0dG9uQm9vay5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7IGJ1dHRvbkJvb2subGFiZWwgfX08L2FcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKGJ1dHRvbkJvb2subGlua1R5cGUgIT0gJ2NvbXBvbmVudF9saW5rJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJidXR0b25Cb29rLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuX19wcmltYXJ5IHZlcnRpY2FsLWluZm9fX2J0bi1mdWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJ1dHRvbkJvb2subGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyBidXR0b25Cb29rLmxhYmVsIH19PC9hXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgQGlmIChpbWcpIHtcbiAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmVydGljYWwtaW5mb19faW1hZ2VcIlxuICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImltZy5zcmNcIlxuICAgICAgICAgICAgICAgICAgICBbYWx0XT1cImltZy5hbHRcIlxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjQzMVwiXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjUzMVwiXG4gICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9XCJsYXp5XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwidmVydGljYWwtaW5mb19fcmlnaHRcIj5cbiAgICAgICAgICAgIEBpZiAoaW5mb0xpc3QpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmVydGljYWwtaW5mb19faW5mby1kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3RpdGxlXCI+e3sgaW5mb0xpc3QudGl0bGUgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmVydGljYWwtaW5mb19fZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJpbmZvTGlzdC5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwidmVydGljYWwtaW5mb19fbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBpbmZvTGlzdC5pdGVtczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPnt7IGl0ZW0gfX08L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChpbWdMaXN0ICYmIGltZ0xpc3QuaXRlbXMgJiYgaW1nTGlzdC5pdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3NjaGVkdWxlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidmVydGljYWwtaW5mb19fdGl0bGVcIj57eyBpbWdMaXN0LnRpdGxlIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19pbWctbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBpbWdMaXN0Lml0ZW1zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5pbWFnZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmVydGljYWwtaW5mb19fcGVyZm9ybWFuY2UtaW1nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIml0ZW0uaW1hZ2Uuc3JjXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWx0XT1cIml0ZW0uaW1hZ2UuYWx0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjc3XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCI3N1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz1cImxhenlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19zbWFsbC10aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2Rlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIml0ZW0uZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChuZEluZm9MaXN0KSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2luZm8tZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX190aXRsZVwiPnt7IG5kSW5mb0xpc3QudGl0bGUgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmVydGljYWwtaW5mb19fZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJuZEluZm9MaXN0LmRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIG5kSW5mb0xpc3QuaXRlbXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS50aXRsZSB8fCBpdGVtLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19wcmljZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgaXRlbS5wcmljZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX17eyBpdGVtLmN1cnJlbmN5IHx8ICfigqwnIH19PC9zcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChpbmZvQnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2Jvb2tcIj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChpbmZvQnV0dG9uLnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3RpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaW5mb0J1dHRvbi50aXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoaW5mb0J1dHRvbi5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmVydGljYWwtaW5mb19fZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiaW5mb0J1dHRvbi5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGlmIChpbmZvQnV0dG9uLmJ1dHRvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bl9fcHJpbWFyeS0tb3V0bGluZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpbmZvQnV0dG9uLmJ1dHRvbi5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaW5mb0J1dHRvbi5idXR0b24ubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmVydGljYWwtaW5mb19fc2VwYXJhdG9yXCI+PC9kaXY+XG4gICAgICAgICAgICBAaWYgKGV4dHJhVGl0bGUgJiYgZXh0cmFEZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19hZGRpdGlvbmFsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidmVydGljYWwtaW5mb19fc21hbGwtdGl0bGVcIj57eyBleHRyYVRpdGxlIH19PC9wPlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJleHRyYURlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8IS0tIEBpZiAobG9jYXRpb24pIHtcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmVydGljYWwtaW5mb19fYWRkaXRpb25hbCB2ZXJ0aWNhbC1pbmZvX19hZGRpdGlvbmFsLS1sb2NhdGlvblwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3NtYWxsLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBsb2NhdGlvbi50aXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmVydGljYWwtaW5mb19fZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJsb2NhdGlvbi5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIEBpZiAobG9jYXRpb24uYnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJsb2NhdGlvbi5idXR0b24udXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJsb2NhdGlvbi5idXR0b24ubGlua1R5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuX19wcmltYXJ5LS1vdXRsaW5lIHZlcnRpY2FsLWluZm9fX2J0bi1tYXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsb2NhdGlvbi5idXR0b24ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPnt7IGxvY2F0aW9uLmJ1dHRvbi5sYWJlbCB9fTwvYVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSAtLT5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L3NlY3Rpb24+XG4iXX0=
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby12ZXJ0aWNhbC1pbmZvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3B1cm8vc3JjL2xpYi9jb21wb25lbnRzL3B1cm8tdmVydGljYWwtaW5mby9wdXJvLXZlcnRpY2FsLWluZm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby12ZXJ0aWNhbC1pbmZvL3B1cm8tdmVydGljYWwtaW5mby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFdBQVcsR0FDZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsNkJBQTZCLEVBQzdCLHFCQUFxQixHQUN4QixNQUFNLGtCQUFrQixDQUFDOztBQWUxQixNQUFNLE9BQU8seUJBQXlCO0lBaUNsQyxZQUF5QyxVQUFrQjtRQUFsQixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBRmpELGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUVrQixDQUFDO0lBRS9ELElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksVUFBVTtRQUNWLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDbkQsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztJQUNoQyxDQUFDOytHQTFDUSx5QkFBeUIsa0JBaUNkLFdBQVc7bUdBakN0Qix5QkFBeUIsbXlCQzVCdEMsMnViQTJUQSx5RER2U1EsWUFBWSwrQkFDWiw2QkFBNkIscURBQzdCLHFCQUFxQjs7NEZBTWhCLHlCQUF5QjtrQkFackMsU0FBUzsrQkFDSSx3QkFBd0IsY0FDdEIsSUFBSSxXQUNQO3dCQUNMLFlBQVk7d0JBQ1osNkJBQTZCO3dCQUM3QixxQkFBcUI7cUJBQ3hCLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNOzswQkFtQ2xDLE1BQU07MkJBQUMsV0FBVzt5Q0FoQ3RCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVJLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFBMQVRGT1JNX0lELFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQXV0b0ltYWdlWm9vbVdyYXBwZXJEaXJlY3RpdmUsXG4gICAgUHVyb0xpbmtUeXBlRGlyZWN0aXZlLFxufSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IFB1cm9CdXR0b25JLCBQdXJvSW1hZ2VJIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLXB1cm8tdmVydGljYWwtaW5mbycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgQXV0b0ltYWdlWm9vbVdyYXBwZXJEaXJlY3RpdmUsXG4gICAgICAgIFB1cm9MaW5rVHlwZURpcmVjdGl2ZSxcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wdXJvLXZlcnRpY2FsLWluZm8uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9wdXJvLXZlcnRpY2FsLWluZm8uY29tcG9uZW50LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQdXJvVmVydGljYWxJbmZvQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBwcmV0aXRsZT86IHN0cmluZztcbiAgICBASW5wdXQoKSB0YWc/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgdGl0bGU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgc3VidGl0bGU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHJpY2U/OiBQdXJvUHJpY2VJdGVtSTtcbiAgICBASW5wdXQoKSBmcm9tPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHRvPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGRpc2NvdW50PzogbnVtYmVyO1xuICAgIEBJbnB1dCgpIGN1cnJlbmN5Pzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGltZz86IFB1cm9JbWFnZUk7XG4gICAgQElucHV0KCkgc29jaWFsVGl0bGU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgY29udGFjdFRpdGxlPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGV4dHJhVGl0bGU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgZXh0cmFEZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBASW5wdXQoKSBmaWxlVGl0bGU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgbG9jYXRpb24/OiBQdXJvVmVydGljYWxJbmZvTG9jYXRpb247XG4gICAgQElucHV0KCkgaW50cm8/OiBQdXJvVmVydGljYWxJbmZvSW50cm9bXTtcbiAgICBASW5wdXQoKSBpbmZvTGlzdD86IFB1cm9WZXJ0aWNhbEluZm9MaXN0O1xuICAgIEBJbnB1dCgpIGltZ0xpc3Q/OiBQdXJvVmVydGljYWxJbmZvSW1hZ2VMaXN0O1xuICAgIEBJbnB1dCgpIG5kSW5mb0xpc3Q/OiBQdXJvVmVydGljYWxJbmZvTmRMaXN0O1xuICAgIEBJbnB1dCgpIGluZm9CdXR0b24/OiBQdXJvVmVydGljYWxJbmZvV2l0aEJ1dHRvbjtcbiAgICBASW5wdXQoKSBjb250YWN0TGlua3M/OiBQdXJvQnV0dG9uSVtdO1xuICAgIEBJbnB1dCgpIGJ1dHRvbkJvb2s/OiBQdXJvQnV0dG9uSTtcbiAgICBASW5wdXQoKSBidXR0b25HdWVzdHM/OiBQdXJvQnV0dG9uSTtcbiAgICBASW5wdXQoKSBwZGZMaW5rPzogUHVyb0J1dHRvbkk7XG4gICAgQElucHV0KCkgYnV0dG9uU3Vic2NyaWJlPzogUHVyb0J1dHRvbkk7XG4gICAgQElucHV0KCkgYnV0dG9uQmFjaz86IFB1cm9CdXR0b25JO1xuICAgIEBJbnB1dCgpIHNvY2lhbE1lZGlhPzogUHVyb1ZlcnRpY2FsSW5mb1NvY2lhbE1lZGlhSXRlbVtdO1xuICAgIEBJbnB1dCgpIGhvdGVsTmFtZT86IHN0cmluZztcblxuICAgIEBPdXRwdXQoKSBidG5Cb29rQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IE9iamVjdCkge31cblxuICAgIGdldCBzaGFyZVRleHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGl0bGUgPz8gJyc7XG4gICAgfVxuXG4gICAgZ2V0IGN1cnJlbnRVcmwoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm4gJyc7XG4gICAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24uaHJlZjtcbiAgICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVyb1ZlcnRpY2FsSW5mb0xvY2F0aW9uIHtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBidXR0b24/OiBQdXJvQnV0dG9uSTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHVyb1ZlcnRpY2FsSW5mb0ludHJvIHtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHVyb1ZlcnRpY2FsSW5mb0xpc3Qge1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIGl0ZW1zPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVyb1ZlcnRpY2FsSW5mb0ltYWdlTGlzdCB7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgaXRlbXM/OiBQdXJvVmVydGljYWxJbmZvSW1hZ2VbXTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHVyb1ZlcnRpY2FsSW5mb0ltYWdlIHtcbiAgICBpbWFnZT86IFB1cm9JbWFnZUk7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVyb1ZlcnRpY2FsSW5mb05kTGlzdCB7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgaXRlbXM/OiBQdXJvVmVydGljYWxJbmZvTmRbXTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHVyb1ZlcnRpY2FsSW5mb05kIHtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIHByaWNlPzogbnVtYmVyO1xuICAgIGN1cnJlbmN5Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFB1cm9WZXJ0aWNhbEluZm9XaXRoQnV0dG9uIHtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBidXR0b24/OiBQdXJvQnV0dG9uSTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdXJvVmVydGljYWxJbmZvU29jaWFsTWVkaWFJdGVtIHtcbiAgICBpY29uPzogc3RyaW5nO1xuICAgIHVybD86IHN0cmluZztcbiAgICBuYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFB1cm9QcmljZUl0ZW1Je1xuICAgIHZhbHVlPzogbnVtYmVyO1xuICAgIGxhYmVsPzogc3RyaW5nO1xufSIsIjxzZWN0aW9uIGNsYXNzPVwidmVydGljYWwtaW5mbyBnZW5lcmFsTWFyZ2luXCI+XG4gICAgPGRpdiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2xlZnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2NvbnRlbnRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19tYWluXCI+XG4gICAgICAgICAgICAgICAgQGlmIChwcmV0aXRsZSkge1xuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3ByZXRpdGxlXCI+e3sgcHJldGl0bGUgfX08L3A+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoYnV0dG9uQmFjaykge1xuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiYnV0dG9uQmFjay51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuX19wcmltYXJ5LS1vdXRsaW5lIHZlcnRpY2FsLWluZm9fX2J0bi1iYWNrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYnV0dG9uQmFjay5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+e3sgYnV0dG9uQmFjay5sYWJlbCB9fTwvYVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAodGFnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3RhZ1wiPnt7IHRhZyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKHRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX190aXRsZVwiPnt7IHRpdGxlIH19PC9oMj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKHN1YnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19zdWJ0aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJzdWJ0aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8IS0tIFRPRE86IGFkZCBkaXNjb3VudCAtLT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmVydGljYWwtaW5mb19fYm94ZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgQGlmICgocHJpY2UgJiYgcHJpY2UudmFsdWUpIHx8IGRpc2NvdW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmVydGljYWwtaW5mb19fYm94XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChmcm9tKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidmVydGljYWwtaW5mb19fZnJvbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZnJvbSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAocHJpY2UgJiYgcHJpY2UudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3ByaWNlLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19wcmljZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHByaWNlLnZhbHVlIH19e3sgY3VycmVuY3kgfHwgJ+KCrCcgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidmVydGljYWwtaW5mb19fcHBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBwcmljZS5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChkaXNjb3VudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19wcmljZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRpc2NvdW50IH19JVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGlmIChidXR0b25TdWJzY3JpYmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiYnV0dG9uU3Vic2NyaWJlLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19idG4gYnRuIGJ0bl9fcHJpbWFyeS0tb3V0bGluZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJidXR0b25TdWJzY3JpYmUubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGJ1dHRvblN1YnNjcmliZS5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgQGlmIChpbnRybykge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmVydGljYWwtaW5mb19fZGF0YVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBpbnRybzsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpdGVtLnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3NtYWxsLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS50aXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmVydGljYWwtaW5mb19fZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiaXRlbS5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoY29udGFjdFRpdGxlICYmIGNvbnRhY3RMaW5rcykge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2FkZGl0aW9uYWwgdmVydGljYWwtaW5mb19fYWRkaXRpb25hbC0tY29udGFjdFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidmVydGljYWwtaW5mb19fc21hbGwtdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBjb250YWN0VGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2xpbmtzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAobGluayBvZiBjb250YWN0TGlua3M7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwibGluay51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtUeXBlXT1cImxpbmsubGlua1R5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsaW5rLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyBsaW5rLmxhYmVsIH19PC9hXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoc29jaWFsTWVkaWEgJiYgc29jaWFsTWVkaWEubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmVydGljYWwtaW5mb19fc29jaWFsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHNvY2lhbFRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19zbWFsbC10aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBzb2NpYWxUaXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19tZWRpYVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKHNvY2lhbCBvZiBzb2NpYWxNZWRpYTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJzb2NpYWwudXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtUeXBlPVwiZXh0ZXJuYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJzb2NpYWwubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cInNvY2lhbC5pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWx0XT1cInNvY2lhbC5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLW5vLXpvb21cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAocGRmTGluayAmJiBwZGZMaW5rLnVybCkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2FkZGl0aW9uYWwgdmVydGljYWwtaW5mb19fYWRkaXRpb25hbC0tbG9jYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGZpbGVUaXRsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidmVydGljYWwtaW5mb19fc21hbGwtdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZmlsZVRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwicGRmTGluay51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbGlua1R5cGU9XCJleHRlcm5hbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bl9fbGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInBkZkxpbmsubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPnt7IHBkZkxpbmsubGFiZWwgfX08L2FcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKGJ1dHRvbkd1ZXN0cykge1xuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiYnV0dG9uR3Vlc3RzLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG5fX3ByaW1hcnktLW91dGxpbmUgdmVydGljYWwtaW5mb19fYnRuLWZ1bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJidXR0b25HdWVzdHMubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPnt7IGJ1dHRvbkd1ZXN0cy5sYWJlbCB9fTwvYVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoYnV0dG9uQm9vaykge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKGJ1dHRvbkJvb2subGlua1R5cGUgPT0gJ2NvbXBvbmVudF9saW5rJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYnRuQm9va0NsaWNrLmVtaXQoaG90ZWxOYW1lKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuX19wcmltYXJ5IHZlcnRpY2FsLWluZm9fX2J0bi1mdWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJ1dHRvbkJvb2subGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyBidXR0b25Cb29rLmxhYmVsIH19PC9hXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGlmIChidXR0b25Cb29rLmxpbmtUeXBlICE9ICdjb21wb25lbnRfbGluaycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiYnV0dG9uQm9vay51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bl9fcHJpbWFyeSB2ZXJ0aWNhbC1pbmZvX19idG4tZnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJidXR0b25Cb29rLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgYnV0dG9uQm9vay5sYWJlbCB9fTwvYVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIEBpZiAoaW1nKSB7XG4gICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2ltYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgW3NyY109XCJpbWcuc3JjXCJcbiAgICAgICAgICAgICAgICAgICAgW2FsdF09XCJpbWcuYWx0XCJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCI0MzFcIlxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCI1MzFcIlxuICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPVwibGF6eVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3JpZ2h0XCI+XG4gICAgICAgICAgICBAaWYgKGluZm9MaXN0KSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2luZm8tZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX190aXRsZVwiPnt7IGluZm9MaXN0LnRpdGxlIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2Rlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiaW5mb0xpc3QuZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2xpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgaW5mb0xpc3QuaXRlbXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT57eyBpdGVtIH19PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoaW1nTGlzdCAmJiBpbWdMaXN0Lml0ZW1zICYmIGltZ0xpc3QuaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19zY2hlZHVsZVwiPlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3RpdGxlXCI+e3sgaW1nTGlzdC50aXRsZSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwidmVydGljYWwtaW5mb19faW1nLWxpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgaW1nTGlzdC5pdGVtczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uaW1hZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3BlcmZvcm1hbmNlLWltZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJpdGVtLmltYWdlLnNyY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FsdF09XCJpdGVtLmltYWdlLmFsdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCI3N1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiNzdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9XCJsYXp5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidmVydGljYWwtaW5mb19fc21hbGwtdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJpdGVtLmRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAobmRJbmZvTGlzdCkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19pbmZvLWRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidmVydGljYWwtaW5mb19fdGl0bGVcIj57eyBuZEluZm9MaXN0LnRpdGxlIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2Rlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwibmRJbmZvTGlzdC5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwidmVydGljYWwtaW5mb19fbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBuZEluZm9MaXN0Lml0ZW1zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udGl0bGUgfHwgaXRlbS5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmVydGljYWwtaW5mb19fcHJpY2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7IGl0ZW0ucHJpY2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19e3sgaXRlbS5jdXJyZW5jeSB8fCAn4oKsJyB9fTwvc3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoaW5mb0J1dHRvbikge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19ib29rXCI+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoaW5mb0J1dHRvbi50aXRsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX190aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGluZm9CdXR0b24udGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKGluZm9CdXR0b24uZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2Rlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImluZm9CdXR0b24uZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoaW5mb0J1dHRvbi5idXR0b24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG5fX3ByaW1hcnktLW91dGxpbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaW5mb0J1dHRvbi5idXR0b24ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGluZm9CdXR0b24uYnV0dG9uLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3NlcGFyYXRvclwiPjwvZGl2PlxuICAgICAgICAgICAgQGlmIChleHRyYVRpdGxlICYmIGV4dHJhRGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmVydGljYWwtaW5mb19fYWRkaXRpb25hbFwiPlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3NtYWxsLXRpdGxlXCI+e3sgZXh0cmFUaXRsZSB9fTwvcD5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmVydGljYWwtaW5mb19fZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiZXh0cmFEZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPCEtLSBAaWYgKGxvY2F0aW9uKSB7XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2FkZGl0aW9uYWwgdmVydGljYWwtaW5mb19fYWRkaXRpb25hbC0tbG9jYXRpb25cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19zbWFsbC10aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbG9jYXRpb24udGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2Rlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwibG9jYXRpb24uZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICBAaWYgKGxvY2F0aW9uLmJ1dHRvbikge1xuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwibG9jYXRpb24uYnV0dG9uLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwibG9jYXRpb24uYnV0dG9uLmxpbmtUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bl9fcHJpbWFyeS0tb3V0bGluZSB2ZXJ0aWNhbC1pbmZvX19idG4tbWFwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibG9jYXRpb24uYnV0dG9uLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID57eyBsb2NhdGlvbi5idXR0b24ubGFiZWwgfX08L2FcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gLS0+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9zZWN0aW9uPlxuIl19
|