ctt-puro 0.64.2 → 0.64.4
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-info-slider/puro-info-slider.component.mjs +3 -3
- package/esm2022/lib/components/puro-vertical-info/puro-vertical-info.component.mjs +14 -5
- package/esm2022/lib/components/puro-vertical-info/puro-vertical-info.interface.mjs +1 -1
- package/esm2022/lib/services/mapper/mapper.service.mjs +5 -5
- package/fesm2022/ctt-puro.mjs +18 -9
- package/fesm2022/ctt-puro.mjs.map +1 -1
- package/lib/components/puro-vertical-info/puro-vertical-info.component.d.ts +6 -2
- package/lib/components/puro-vertical-info/puro-vertical-info.interface.d.ts +3 -1
- package/lib/services/mapper/mapper.service.d.ts +2 -2
- package/package.json +1 -1
|
@@ -5,7 +5,7 @@ import * as i0 from "@angular/core";
|
|
|
5
5
|
import * as i1 from "@angular/common";
|
|
6
6
|
export class PuroInfoSliderComponent {
|
|
7
7
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroInfoSliderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroInfoSliderComponent, isStandalone: true, selector: "lib-puro-info-slider", inputs: { items: "items", reverse: "reverse" }, ngImport: i0, template: "<section\n class=\"textPhotoCarousel js-active-slider\"\n [puroSlider]=\"items\"\n [ngClass]=\"{\n 'textPhotoCarousel--right': !reverse,\n }\"\n data-slides_infinite=\"true\"\n data-slider_name=\"js-slider\"\n data-slider_showbtns=\"true\"\n data-slider_showdots=\"false\"\n data-slider_adaptiveheight=\"true\"\n data-slider_fade=\"true\"\n data-slider_autoplay=\"true\"\n data-slides_pc=\"1\"\n resizeZoom\n>\n <div class=\"relative\">\n <div class=\"js-slider js-slider_fix-arrows\">\n @for (item of items; track $index) {\n <div class=\"textPhotoCarousel__item\">\n <div class=\"textPhotoCarousel__image--outer\">\n <div\n class=\"textPhotoCarousel__image js-slider_fix-arrows-zone\"\n >\n @if (item.img) {\n <img\n [ngSrc]=\"item.img.src\"\n [alt]=\"item.img.alt\"\n
|
|
8
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroInfoSliderComponent, isStandalone: true, selector: "lib-puro-info-slider", inputs: { items: "items", reverse: "reverse" }, ngImport: i0, template: "<section\n class=\"textPhotoCarousel js-active-slider\"\n [puroSlider]=\"items\"\n [ngClass]=\"{\n 'textPhotoCarousel--right': !reverse,\n }\"\n data-slides_infinite=\"true\"\n data-slider_name=\"js-slider\"\n data-slider_showbtns=\"true\"\n data-slider_showdots=\"false\"\n data-slider_adaptiveheight=\"true\"\n data-slider_fade=\"true\"\n data-slider_autoplay=\"true\"\n data-slides_pc=\"1\"\n resizeZoom\n>\n <div class=\"relative\">\n <div class=\"js-slider js-slider_fix-arrows\">\n @for (item of items; track $index) {\n <div class=\"textPhotoCarousel__item\">\n <div class=\"textPhotoCarousel__image--outer\">\n <div\n class=\"textPhotoCarousel__image js-slider_fix-arrows-zone\"\n >\n @if (item.img) {\n <img\n [ngSrc]=\"item.img.src\"\n [alt]=\"item.img.alt\"\n width=\"960\"\n height=\"807\"\n class=\"textPhotoCarousel__img\"\n decoding=\"async\"\n />\n }\n </div>\n </div>\n <div\n class=\"textPhotoCarousel__content textPhotoCarousel__content--alignCenter\"\n >\n <div>\n @if (item.pretitle) {\n <span\n class=\"textPhotoCarousel__title\"\n [innerHTML]=\"item.pretitle\"\n ></span>\n }\n @if (item.title) {\n <h2\n class=\"textPhotoCarousel__heading\"\n [innerHTML]=\"item.title\"\n ></h2>\n }\n @if (item.subtitle) {\n <p\n class=\"textPhotoCarousel__subHeading\"\n [innerHTML]=\"item.subtitle\"\n ></p>\n }\n @if (item.description) {\n <div>\n <p\n class=\"textPhotoCarousel__paragraph\"\n [innerHTML]=\"item.description\"\n ></p>\n </div>\n }\n <div class=\"btn__group\">\n @if (item.buttons?.length) {\n @for (\n button of item.buttons;\n track $index\n ) {\n <a\n [href]=\"button.url\"\n [linkType]=\"button.linkType\"\n class=\"btn\"\n [ngClass]=\"{\n 'btn__primary--outline': $even,\n btn__primary: $odd,\n }\"\n [attr.aria-label]=\"button.label\"\n >\n <span>{{ button.label }}</span>\n </a>\n }\n }\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n <div class=\"js-slider-arrows\"></div>\n </div>\n</section>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: PuroLinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href", "modalClick"], outputs: ["bookClick", "anchorClicked"] }, { kind: "directive", type: PuroSliderDirective, selector: "[puroSlider]", inputs: ["puroSlider"] }, { kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }, { kind: "directive", type: AutoImageZoomWrapperDirective, selector: "img[ngSrc], img[src]" }, { kind: "directive", type: PuroResizeZoomDirective, selector: "[resizeZoom]" }] }); }
|
|
9
9
|
}
|
|
10
10
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroInfoSliderComponent, decorators: [{
|
|
11
11
|
type: Component,
|
|
@@ -17,10 +17,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
17
17
|
AutoImageZoomWrapperDirective,
|
|
18
18
|
PuroResizeZoomDirective,
|
|
19
19
|
PuroResizeZoomDirective,
|
|
20
|
-
], template: "<section\n class=\"textPhotoCarousel js-active-slider\"\n [puroSlider]=\"items\"\n [ngClass]=\"{\n 'textPhotoCarousel--right': !reverse,\n }\"\n data-slides_infinite=\"true\"\n data-slider_name=\"js-slider\"\n data-slider_showbtns=\"true\"\n data-slider_showdots=\"false\"\n data-slider_adaptiveheight=\"true\"\n data-slider_fade=\"true\"\n data-slider_autoplay=\"true\"\n data-slides_pc=\"1\"\n resizeZoom\n>\n <div class=\"relative\">\n <div class=\"js-slider js-slider_fix-arrows\">\n @for (item of items; track $index) {\n <div class=\"textPhotoCarousel__item\">\n <div class=\"textPhotoCarousel__image--outer\">\n <div\n class=\"textPhotoCarousel__image js-slider_fix-arrows-zone\"\n >\n @if (item.img) {\n <img\n [ngSrc]=\"item.img.src\"\n [alt]=\"item.img.alt\"\n
|
|
20
|
+
], template: "<section\n class=\"textPhotoCarousel js-active-slider\"\n [puroSlider]=\"items\"\n [ngClass]=\"{\n 'textPhotoCarousel--right': !reverse,\n }\"\n data-slides_infinite=\"true\"\n data-slider_name=\"js-slider\"\n data-slider_showbtns=\"true\"\n data-slider_showdots=\"false\"\n data-slider_adaptiveheight=\"true\"\n data-slider_fade=\"true\"\n data-slider_autoplay=\"true\"\n data-slides_pc=\"1\"\n resizeZoom\n>\n <div class=\"relative\">\n <div class=\"js-slider js-slider_fix-arrows\">\n @for (item of items; track $index) {\n <div class=\"textPhotoCarousel__item\">\n <div class=\"textPhotoCarousel__image--outer\">\n <div\n class=\"textPhotoCarousel__image js-slider_fix-arrows-zone\"\n >\n @if (item.img) {\n <img\n [ngSrc]=\"item.img.src\"\n [alt]=\"item.img.alt\"\n width=\"960\"\n height=\"807\"\n class=\"textPhotoCarousel__img\"\n decoding=\"async\"\n />\n }\n </div>\n </div>\n <div\n class=\"textPhotoCarousel__content textPhotoCarousel__content--alignCenter\"\n >\n <div>\n @if (item.pretitle) {\n <span\n class=\"textPhotoCarousel__title\"\n [innerHTML]=\"item.pretitle\"\n ></span>\n }\n @if (item.title) {\n <h2\n class=\"textPhotoCarousel__heading\"\n [innerHTML]=\"item.title\"\n ></h2>\n }\n @if (item.subtitle) {\n <p\n class=\"textPhotoCarousel__subHeading\"\n [innerHTML]=\"item.subtitle\"\n ></p>\n }\n @if (item.description) {\n <div>\n <p\n class=\"textPhotoCarousel__paragraph\"\n [innerHTML]=\"item.description\"\n ></p>\n </div>\n }\n <div class=\"btn__group\">\n @if (item.buttons?.length) {\n @for (\n button of item.buttons;\n track $index\n ) {\n <a\n [href]=\"button.url\"\n [linkType]=\"button.linkType\"\n class=\"btn\"\n [ngClass]=\"{\n 'btn__primary--outline': $even,\n btn__primary: $odd,\n }\"\n [attr.aria-label]=\"button.label\"\n >\n <span>{{ button.label }}</span>\n </a>\n }\n }\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n <div class=\"js-slider-arrows\"></div>\n </div>\n</section>\n" }]
|
|
21
21
|
}], propDecorators: { items: [{
|
|
22
22
|
type: Input
|
|
23
23
|
}], reverse: [{
|
|
24
24
|
type: Input
|
|
25
25
|
}] } });
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1pbmZvLXNsaWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wdXJvL3NyYy9saWIvY29tcG9uZW50cy9wdXJvLWluZm8tc2xpZGVyL3B1cm8taW5mby1zbGlkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby1pbmZvLXNsaWRlci9wdXJvLWluZm8tc2xpZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxZQUFZLEVBQ1osZ0JBQWdCLEdBQ25CLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUNILDZCQUE2QixFQUM3QixxQkFBcUIsRUFDckIsdUJBQXVCLEVBQ3ZCLG1CQUFtQixHQUN0QixNQUFNLGtCQUFrQixDQUFDOzs7QUFrQjFCLE1BQU0sT0FBTyx1QkFBdUI7K0dBQXZCLHVCQUF1QjttR0FBdkIsdUJBQXVCLGdJQzVCcEMsdXJJQStGQSx5REQ5RVEsWUFBWSw2SEFDWixxQkFBcUIsNElBQ3JCLG1CQUFtQixpRkFDbkIsZ0JBQWdCLGdQQUNoQiw2QkFBNkIsaUVBQzdCLHVCQUF1Qjs7NEZBTWxCLHVCQUF1QjtrQkFmbkMsU0FBUzsrQkFDSSxzQkFBc0IsY0FDcEIsSUFBSSxXQUNQO3dCQUNMLFlBQVk7d0JBQ1oscUJBQXFCO3dCQUNyQixtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsNkJBQTZCO3dCQUM3Qix1QkFBdUI7d0JBQ3ZCLHVCQUF1QjtxQkFDMUI7OEJBS1EsS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE5nT3B0aW1pemVkSW1hZ2UsXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEF1dG9JbWFnZVpvb21XcmFwcGVyRGlyZWN0aXZlLFxuICAgIFB1cm9MaW5rVHlwZURpcmVjdGl2ZSxcbiAgICBQdXJvUmVzaXplWm9vbURpcmVjdGl2ZSxcbiAgICBQdXJvU2xpZGVyRGlyZWN0aXZlLFxufSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IFB1cm9CdXR0b25JLCBQdXJvSW1hZ2VJIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLXB1cm8taW5mby1zbGlkZXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFB1cm9MaW5rVHlwZURpcmVjdGl2ZSxcbiAgICAgICAgUHVyb1NsaWRlckRpcmVjdGl2ZSxcbiAgICAgICAgTmdPcHRpbWl6ZWRJbWFnZSxcbiAgICAgICAgQXV0b0ltYWdlWm9vbVdyYXBwZXJEaXJlY3RpdmUsXG4gICAgICAgIFB1cm9SZXNpemVab29tRGlyZWN0aXZlLFxuICAgICAgICBQdXJvUmVzaXplWm9vbURpcmVjdGl2ZSxcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wdXJvLWluZm8tc2xpZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vcHVyby1pbmZvLXNsaWRlci5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFB1cm9JbmZvU2xpZGVyQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBpdGVtcz86IFB1cm9JbmZvU2xpZGVySXRlbVtdO1xuICAgIEBJbnB1dCgpIHJldmVyc2U/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFB1cm9JbmZvU2xpZGVySXRlbSB7XG4gICAgcHJldGl0bGU/OiBzdHJpbmc7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgc3VidGl0bGU/OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgaW1nPzogUHVyb0ltYWdlSTtcbiAgICBidXR0b25zPzogUHVyb0J1dHRvbklbXTtcbn1cbiIsIjxzZWN0aW9uXG4gICAgY2xhc3M9XCJ0ZXh0UGhvdG9DYXJvdXNlbCBqcy1hY3RpdmUtc2xpZGVyXCJcbiAgICBbcHVyb1NsaWRlcl09XCJpdGVtc1wiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAndGV4dFBob3RvQ2Fyb3VzZWwtLXJpZ2h0JzogIXJldmVyc2UsXG4gICAgfVwiXG4gICAgZGF0YS1zbGlkZXNfaW5maW5pdGU9XCJ0cnVlXCJcbiAgICBkYXRhLXNsaWRlcl9uYW1lPVwianMtc2xpZGVyXCJcbiAgICBkYXRhLXNsaWRlcl9zaG93YnRucz1cInRydWVcIlxuICAgIGRhdGEtc2xpZGVyX3Nob3dkb3RzPVwiZmFsc2VcIlxuICAgIGRhdGEtc2xpZGVyX2FkYXB0aXZlaGVpZ2h0PVwidHJ1ZVwiXG4gICAgZGF0YS1zbGlkZXJfZmFkZT1cInRydWVcIlxuICAgIGRhdGEtc2xpZGVyX2F1dG9wbGF5PVwidHJ1ZVwiXG4gICAgZGF0YS1zbGlkZXNfcGM9XCIxXCJcbiAgICByZXNpemVab29tXG4+XG4gICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJqcy1zbGlkZXIganMtc2xpZGVyX2ZpeC1hcnJvd3NcIj5cbiAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgaXRlbXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0UGhvdG9DYXJvdXNlbF9faXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dFBob3RvQ2Fyb3VzZWxfX2ltYWdlLS1vdXRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dFBob3RvQ2Fyb3VzZWxfX2ltYWdlIGpzLXNsaWRlcl9maXgtYXJyb3dzLXpvbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5pbWcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3JjXT1cIml0ZW0uaW1nLnNyY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWx0XT1cIml0ZW0uaW1nLmFsdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjk2MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCI4MDdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0UGhvdG9DYXJvdXNlbF9faW1nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY29kaW5nPVwiYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0UGhvdG9DYXJvdXNlbF9fY29udGVudCB0ZXh0UGhvdG9DYXJvdXNlbF9fY29udGVudC0tYWxpZ25DZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5wcmV0aXRsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0UGhvdG9DYXJvdXNlbF9fdGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJpdGVtLnByZXRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpdGVtLnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0UGhvdG9DYXJvdXNlbF9faGVhZGluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIml0ZW0udGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9oMj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpdGVtLnN1YnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHRQaG90b0Nhcm91c2VsX19zdWJIZWFkaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiaXRlbS5zdWJ0aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHRQaG90b0Nhcm91c2VsX19wYXJhZ3JhcGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiaXRlbS5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bl9fZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpdGVtLmJ1dHRvbnM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uIG9mIGl0ZW0uYnV0dG9ucztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjayAkaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cImJ1dHRvbi51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwiYnV0dG9uLmxpbmtUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYnRuX19wcmltYXJ5LS1vdXRsaW5lJzogJGV2ZW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidG5fX3ByaW1hcnk6ICRvZGQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJ1dHRvbi5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBidXR0b24ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwianMtc2xpZGVyLWFycm93c1wiPjwvZGl2PlxuICAgIDwvZGl2PlxuPC9zZWN0aW9uPlxuIl19
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { CommonModule, NgOptimizedImage, } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
3
3
|
import { AutoImageZoomWrapperDirective, PuroLinkTypeDirective } from '../../directives';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class PuroVerticalInfoComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.btnBookClick = new EventEmitter();
|
|
8
|
+
}
|
|
6
9
|
get shareText() {
|
|
7
10
|
return this.title ?? '';
|
|
8
11
|
}
|
|
@@ -25,11 +28,11 @@ export class PuroVerticalInfoComponent {
|
|
|
25
28
|
return `https://www.linkedin.com/sharing/share-offsite/?url=${url}`;
|
|
26
29
|
}
|
|
27
30
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroVerticalInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28
|
-
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", buttons: "buttons", pdfLink: "pdfLink", buttonSubscribe: "buttonSubscribe", buttonBack: "buttonBack", socialMedia: "socialMedia" }, ngImport: i0, template: "<section class=\"vertical-info generalMargin\">\n <div class=\"vertical-info__header\">\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 <div class=\"vertical-info__content\">\n <div class=\"vertical-info__left\">\n <div class=\"vertical-info__main\">\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 <p\n class=\"vertical-info__subtitle\"\n [innerHTML]=\"subtitle\"\n ></p>\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 <p class=\"vertical-info__price\">\n {{ price }}{{ currency || '\u20AC' }}\n </p>\n <p class=\"vertical-info__pp\">Por persona</p>\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 </div>\n\n @if (img) {\n <img\n class=\"vertical-info__image\"\n [ngSrc]=\"img.src\"\n [alt]=\"img.alt\"\n width=\"431\"\n height=\"531\"\n decoding=\"async\"\n />\n }\n </div>\n\n <div class=\"vertical-info__right\">\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 <p\n class=\"vertical-info__description\"\n [innerHTML]=\"item.description\"\n ></p>\n }\n </div>\n }\n </div>\n }\n\n @if (infoList) {\n <div class=\"vertical-info__separator\"></div>\n <div class=\"vertical-info__info-description\">\n <p class=\"vertical-info__title\">{{ infoList.title }}</p>\n <p\n class=\"vertical-info__description\"\n [innerHTML]=\"infoList.description\"\n ></p>\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) {\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 [ngSrc]=\"item.image.src\"\n [alt]=\"item.image.alt\"\n width=\"77\"\n height=\"77\"\n decoding=\"async\"\n />\n }\n <div>\n <p class=\"vertical-info__small-title\">\n {{ item.title }}\n </p>\n <p\n class=\"vertical-info__description\"\n [innerHTML]=\"item.description\"\n ></p>\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 <p\n class=\"vertical-info__description\"\n [innerHTML]=\"ndInfoList.description\"\n ></p>\n <ul class=\"vertical-info__list\">\n @for (item of ndInfoList.items; track $index) {\n <li>\n {{ item.title }}\n <span class=\"vertical-info__price\"\n >{{ item.price }}{{ 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 <p\n class=\"vertical-info__description\"\n [innerHTML]=\"infoButton.description\"\n ></p>\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 (socialTitle) {\n <div class=\"vertical-info__social\">\n <p class=\"vertical-info__small-title\">{{ socialTitle }}</p>\n <div class=\"vertical-info__media\">\n <a\n [href]=\"facebookShareUrl\"\n target=\"_blank\"\n rel=\"noopener\"\n aria-label=\"Compartir en Facebook\"\n class=\"share-facebook\"\n >\n <i class=\"icon-5\"></i>\n </a>\n <a\n [href]=\"twitterShareUrl\"\n target=\"_blank\"\n rel=\"noopener\"\n aria-label=\"Compartir en X\"\n class=\"share-twitter\"\n >\n <i class=\"icon-4\"></i>\n </a>\n <a\n [href]=\"linkedinShareUrl\"\n target=\"_blank\"\n rel=\"noopener\"\n aria-label=\"Compartir en LinkedIn\"\n class=\"share-linkedin\"\n >\n <i class=\"icon-2\"></i>\n </a>\n </div>\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\">{{ contactTitle }}</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 (extraTitle && extraDescription) {\n <div class=\"vertical-info__additional\">\n <p class=\"vertical-info__small-title\">{{ extraTitle }}</p>\n\n <div>\n <P\n class=\"vertical-info__description\"\n [innerHTML]=\"extraDescription\"\n >\n </P>\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 <p\n class=\"vertical-info__description\"\n [innerHTML]=\"location.description\"\n ></p>\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 @if (pdfLink) {\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 class=\"btn__link\"\n [attr.aria-label]=\"pdfLink.label\"\n >{{ pdfLink.label }}</a\n >\n }\n @if (buttons && buttons[0]) {\n <a\n [href]=\"buttons[0].url\"\n class=\"btn btn__primary--outline vertical-info__btn-full\"\n [attr.aria-label]=\"buttons[0].label\"\n >{{ buttons[0].label }}</a\n >\n }\n @if (buttons && buttons[1]) {\n <a\n [href]=\"buttons[1].url\"\n class=\"btn btn__primary vertical-info__btn-full\"\n [attr.aria-label]=\"buttons[1].label\"\n >{{ buttons[1].label }}</a\n >\n }\n </div>\n </div>\n</section>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }, { kind: "directive", type: AutoImageZoomWrapperDirective, selector: "img[ngSrc], img[src]" }, { kind: "directive", type: PuroLinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href", "modalClick"], outputs: ["bookClick", "anchorClicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
31
|
+
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__header\">\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 <div class=\"vertical-info__content\">\n <div class=\"vertical-info__left\">\n <div class=\"vertical-info__main\">\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 <p\n class=\"vertical-info__subtitle\"\n [innerHTML]=\"subtitle\"\n ></p>\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 <p class=\"vertical-info__price\">\n {{ price }}{{ currency || '\u20AC' }}\n </p>\n <p class=\"vertical-info__pp\">Por persona</p>\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 </div>\n\n @if (img) {\n <img\n class=\"vertical-info__image\"\n [ngSrc]=\"img.src\"\n [alt]=\"img.alt\"\n width=\"431\"\n height=\"531\"\n decoding=\"async\"\n />\n }\n </div>\n\n <div class=\"vertical-info__right\">\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 <p\n class=\"vertical-info__description\"\n [innerHTML]=\"item.description\"\n ></p>\n }\n </div>\n }\n </div>\n }\n\n @if (infoList) {\n <div class=\"vertical-info__separator\"></div>\n <div class=\"vertical-info__info-description\">\n <p class=\"vertical-info__title\">{{ infoList.title }}</p>\n <p\n class=\"vertical-info__description\"\n [innerHTML]=\"infoList.description\"\n ></p>\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) {\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 [ngSrc]=\"item.image.src\"\n [alt]=\"item.image.alt\"\n width=\"77\"\n height=\"77\"\n decoding=\"async\"\n />\n }\n <div>\n <p class=\"vertical-info__small-title\">\n {{ item.title }}\n </p>\n <p\n class=\"vertical-info__description\"\n [innerHTML]=\"item.description\"\n ></p>\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 <p\n class=\"vertical-info__description\"\n [innerHTML]=\"ndInfoList.description\"\n ></p>\n <ul class=\"vertical-info__list\">\n @for (item of ndInfoList.items; track $index) {\n <li>\n {{ item.title }}\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 <p\n class=\"vertical-info__description\"\n [innerHTML]=\"infoButton.description\"\n ></p>\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 (socialTitle) {\n <div class=\"vertical-info__social\">\n <p class=\"vertical-info__small-title\">{{ socialTitle }}</p>\n <div class=\"vertical-info__media\">\n <a\n [href]=\"facebookShareUrl\"\n target=\"_blank\"\n rel=\"noopener\"\n aria-label=\"Compartir en Facebook\"\n class=\"share-facebook\"\n >\n <i class=\"icon-5\"></i>\n </a>\n <a\n [href]=\"twitterShareUrl\"\n target=\"_blank\"\n rel=\"noopener\"\n aria-label=\"Compartir en X\"\n class=\"share-twitter\"\n >\n <i class=\"icon-4\"></i>\n </a>\n <a\n [href]=\"linkedinShareUrl\"\n target=\"_blank\"\n rel=\"noopener\"\n aria-label=\"Compartir en LinkedIn\"\n class=\"share-linkedin\"\n >\n <i class=\"icon-2\"></i>\n </a>\n </div>\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\">{{ contactTitle }}</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 (extraTitle && extraDescription) {\n <div class=\"vertical-info__additional\">\n <p class=\"vertical-info__small-title\">{{ extraTitle }}</p>\n\n <div>\n <P\n class=\"vertical-info__description\"\n [innerHTML]=\"extraDescription\"\n >\n </P>\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 <p\n class=\"vertical-info__description\"\n [innerHTML]=\"location.description\"\n ></p>\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 @if (pdfLink) {\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 </div>\n</section>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }, { kind: "directive", type: AutoImageZoomWrapperDirective, selector: "img[ngSrc], img[src]" }, { kind: "directive", type: PuroLinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href", "modalClick"], outputs: ["bookClick", "anchorClicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
29
32
|
}
|
|
30
33
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroVerticalInfoComponent, decorators: [{
|
|
31
34
|
type: Component,
|
|
32
|
-
args: [{ selector: 'lib-puro-vertical-info', standalone: true, imports: [CommonModule, NgOptimizedImage, AutoImageZoomWrapperDirective, PuroLinkTypeDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<section class=\"vertical-info generalMargin\">\n <div class=\"vertical-info__header\">\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 <div class=\"vertical-info__content\">\n <div class=\"vertical-info__left\">\n <div class=\"vertical-info__main\">\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 <p\n class=\"vertical-info__subtitle\"\n [innerHTML]=\"subtitle\"\n ></p>\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 <p class=\"vertical-info__price\">\n {{ price }}{{ currency || '\u20AC' }}\n </p>\n <p class=\"vertical-info__pp\">Por persona</p>\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 </div>\n\n @if (img) {\n <img\n class=\"vertical-info__image\"\n [ngSrc]=\"img.src\"\n [alt]=\"img.alt\"\n width=\"431\"\n height=\"531\"\n decoding=\"async\"\n />\n }\n </div>\n\n <div class=\"vertical-info__right\">\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 <p\n class=\"vertical-info__description\"\n [innerHTML]=\"item.description\"\n ></p>\n }\n </div>\n }\n </div>\n }\n\n @if (infoList) {\n <div class=\"vertical-info__separator\"></div>\n <div class=\"vertical-info__info-description\">\n <p class=\"vertical-info__title\">{{ infoList.title }}</p>\n <p\n class=\"vertical-info__description\"\n [innerHTML]=\"infoList.description\"\n ></p>\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) {\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 [ngSrc]=\"item.image.src\"\n [alt]=\"item.image.alt\"\n width=\"77\"\n height=\"77\"\n decoding=\"async\"\n />\n }\n <div>\n <p class=\"vertical-info__small-title\">\n {{ item.title }}\n </p>\n <p\n class=\"vertical-info__description\"\n [innerHTML]=\"item.description\"\n ></p>\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 <p\n class=\"vertical-info__description\"\n [innerHTML]=\"ndInfoList.description\"\n ></p>\n <ul class=\"vertical-info__list\">\n @for (item of ndInfoList.items; track $index) {\n <li>\n {{ item.title }}\n <span class=\"vertical-info__price\"\n >{{ item.price }}{{ 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 <p\n class=\"vertical-info__description\"\n [innerHTML]=\"infoButton.description\"\n ></p>\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 (socialTitle) {\n <div class=\"vertical-info__social\">\n <p class=\"vertical-info__small-title\">{{ socialTitle }}</p>\n <div class=\"vertical-info__media\">\n <a\n [href]=\"facebookShareUrl\"\n target=\"_blank\"\n rel=\"noopener\"\n aria-label=\"Compartir en Facebook\"\n class=\"share-facebook\"\n >\n <i class=\"icon-5\"></i>\n </a>\n <a\n [href]=\"twitterShareUrl\"\n target=\"_blank\"\n rel=\"noopener\"\n aria-label=\"Compartir en X\"\n class=\"share-twitter\"\n >\n <i class=\"icon-4\"></i>\n </a>\n <a\n [href]=\"linkedinShareUrl\"\n target=\"_blank\"\n rel=\"noopener\"\n aria-label=\"Compartir en LinkedIn\"\n class=\"share-linkedin\"\n >\n <i class=\"icon-2\"></i>\n </a>\n </div>\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\">{{ contactTitle }}</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 (extraTitle && extraDescription) {\n <div class=\"vertical-info__additional\">\n <p class=\"vertical-info__small-title\">{{ extraTitle }}</p>\n\n <div>\n <P\n class=\"vertical-info__description\"\n [innerHTML]=\"extraDescription\"\n >\n </P>\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 <p\n class=\"vertical-info__description\"\n [innerHTML]=\"location.description\"\n ></p>\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 @if (pdfLink) {\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 class=\"btn__link\"\n [attr.aria-label]=\"pdfLink.label\"\n >{{ pdfLink.label }}</a\n >\n }\n @if (buttons && buttons[0]) {\n <a\n [href]=\"buttons[0].url\"\n class=\"btn btn__primary--outline vertical-info__btn-full\"\n [attr.aria-label]=\"buttons[0].label\"\n >{{ buttons[0].label }}</a\n >\n }\n @if (buttons && buttons[1]) {\n <a\n [href]=\"buttons[1].url\"\n class=\"btn btn__primary vertical-info__btn-full\"\n [attr.aria-label]=\"buttons[1].label\"\n >{{ buttons[1].label }}</a\n >\n }\n </div>\n </div>\n</section>\n" }]
|
|
35
|
+
args: [{ selector: 'lib-puro-vertical-info', standalone: true, imports: [CommonModule, NgOptimizedImage, AutoImageZoomWrapperDirective, PuroLinkTypeDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<section class=\"vertical-info generalMargin\">\n <div class=\"vertical-info__header\">\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 <div class=\"vertical-info__content\">\n <div class=\"vertical-info__left\">\n <div class=\"vertical-info__main\">\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 <p\n class=\"vertical-info__subtitle\"\n [innerHTML]=\"subtitle\"\n ></p>\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 <p class=\"vertical-info__price\">\n {{ price }}{{ currency || '\u20AC' }}\n </p>\n <p class=\"vertical-info__pp\">Por persona</p>\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 </div>\n\n @if (img) {\n <img\n class=\"vertical-info__image\"\n [ngSrc]=\"img.src\"\n [alt]=\"img.alt\"\n width=\"431\"\n height=\"531\"\n decoding=\"async\"\n />\n }\n </div>\n\n <div class=\"vertical-info__right\">\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 <p\n class=\"vertical-info__description\"\n [innerHTML]=\"item.description\"\n ></p>\n }\n </div>\n }\n </div>\n }\n\n @if (infoList) {\n <div class=\"vertical-info__separator\"></div>\n <div class=\"vertical-info__info-description\">\n <p class=\"vertical-info__title\">{{ infoList.title }}</p>\n <p\n class=\"vertical-info__description\"\n [innerHTML]=\"infoList.description\"\n ></p>\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) {\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 [ngSrc]=\"item.image.src\"\n [alt]=\"item.image.alt\"\n width=\"77\"\n height=\"77\"\n decoding=\"async\"\n />\n }\n <div>\n <p class=\"vertical-info__small-title\">\n {{ item.title }}\n </p>\n <p\n class=\"vertical-info__description\"\n [innerHTML]=\"item.description\"\n ></p>\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 <p\n class=\"vertical-info__description\"\n [innerHTML]=\"ndInfoList.description\"\n ></p>\n <ul class=\"vertical-info__list\">\n @for (item of ndInfoList.items; track $index) {\n <li>\n {{ item.title }}\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 <p\n class=\"vertical-info__description\"\n [innerHTML]=\"infoButton.description\"\n ></p>\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 (socialTitle) {\n <div class=\"vertical-info__social\">\n <p class=\"vertical-info__small-title\">{{ socialTitle }}</p>\n <div class=\"vertical-info__media\">\n <a\n [href]=\"facebookShareUrl\"\n target=\"_blank\"\n rel=\"noopener\"\n aria-label=\"Compartir en Facebook\"\n class=\"share-facebook\"\n >\n <i class=\"icon-5\"></i>\n </a>\n <a\n [href]=\"twitterShareUrl\"\n target=\"_blank\"\n rel=\"noopener\"\n aria-label=\"Compartir en X\"\n class=\"share-twitter\"\n >\n <i class=\"icon-4\"></i>\n </a>\n <a\n [href]=\"linkedinShareUrl\"\n target=\"_blank\"\n rel=\"noopener\"\n aria-label=\"Compartir en LinkedIn\"\n class=\"share-linkedin\"\n >\n <i class=\"icon-2\"></i>\n </a>\n </div>\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\">{{ contactTitle }}</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 (extraTitle && extraDescription) {\n <div class=\"vertical-info__additional\">\n <p class=\"vertical-info__small-title\">{{ extraTitle }}</p>\n\n <div>\n <P\n class=\"vertical-info__description\"\n [innerHTML]=\"extraDescription\"\n >\n </P>\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 <p\n class=\"vertical-info__description\"\n [innerHTML]=\"location.description\"\n ></p>\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 @if (pdfLink) {\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 </div>\n</section>\n" }]
|
|
33
36
|
}], propDecorators: { pretitle: [{
|
|
34
37
|
type: Input
|
|
35
38
|
}], tag: [{
|
|
@@ -74,7 +77,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
74
77
|
type: Input
|
|
75
78
|
}], contactLinks: [{
|
|
76
79
|
type: Input
|
|
77
|
-
}],
|
|
80
|
+
}], buttonBook: [{
|
|
81
|
+
type: Input
|
|
82
|
+
}], buttonGuests: [{
|
|
78
83
|
type: Input
|
|
79
84
|
}], pdfLink: [{
|
|
80
85
|
type: Input
|
|
@@ -84,5 +89,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
84
89
|
type: Input
|
|
85
90
|
}], socialMedia: [{
|
|
86
91
|
type: Input
|
|
92
|
+
}], hotelName: [{
|
|
93
|
+
type: Input
|
|
94
|
+
}], btnBookClick: [{
|
|
95
|
+
type: Output
|
|
87
96
|
}] } });
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby12ZXJ0aWNhbC1pbmZvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3B1cm8vc3JjL2xpYi9jb21wb25lbnRzL3B1cm8tdmVydGljYWwtaW5mby9wdXJvLXZlcnRpY2FsLWluZm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby12ZXJ0aWNhbC1pbmZvL3B1cm8tdmVydGljYWwtaW5mby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsWUFBWSxFQUNaLGdCQUFnQixHQUNuQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQVV4RixNQUFNLE9BQU8seUJBQXlCO0lBNkJsQyxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDVixJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVc7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUM3QyxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNoQixNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sZ0RBQWdELEdBQUcsRUFBRSxDQUFDO0lBQ2pFLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDZixNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sSUFBSSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRCxPQUFPLHdDQUF3QyxHQUFHLFNBQVMsSUFBSSxFQUFFLENBQUM7SUFDdEUsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2hCLE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkMsT0FBTyx1REFBdUQsR0FBRyxFQUFFLENBQUM7SUFDeEUsQ0FBQzsrR0FwRFEseUJBQXlCO21HQUF6Qix5QkFBeUIsNHJCQ2hCdEMsd3VaQXNUQSx5REQzU2MsWUFBWSwrQkFBRSxnQkFBZ0IsZ1BBQUUsNkJBQTZCLGlFQUFFLHFCQUFxQjs7NEZBS3JGLHlCQUF5QjtrQkFSckMsU0FBUzsrQkFDSSx3QkFBd0IsY0FDdEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFFLDZCQUE2QixFQUFFLHFCQUFxQixDQUFDLG1CQUc5RSx1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBOZ09wdGltaXplZEltYWdlLFxufSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFB1cm9CdXR0b25JLCBQdXJvSW1hZ2VJIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBBdXRvSW1hZ2Vab29tV3JhcHBlckRpcmVjdGl2ZSwgUHVyb0xpbmtUeXBlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLXB1cm8tdmVydGljYWwtaW5mbycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBOZ09wdGltaXplZEltYWdlLCBBdXRvSW1hZ2Vab29tV3JhcHBlckRpcmVjdGl2ZSwgUHVyb0xpbmtUeXBlRGlyZWN0aXZlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHVyby12ZXJ0aWNhbC1pbmZvLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vcHVyby12ZXJ0aWNhbC1pbmZvLmNvbXBvbmVudC5zY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgUHVyb1ZlcnRpY2FsSW5mb0NvbXBvbmVudCB7XG4gICAgQElucHV0KCkgcHJldGl0bGU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgdGFnPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHRpdGxlPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHN1YnRpdGxlPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHByaWNlPzogbnVtYmVyO1xuICAgIEBJbnB1dCgpIGZyb20/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgdG8/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgZGlzY291bnQ/OiBudW1iZXI7XG4gICAgQElucHV0KCkgY3VycmVuY3k/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgaW1nPzogUHVyb0ltYWdlSTtcbiAgICBASW5wdXQoKSBzb2NpYWxUaXRsZT86IHN0cmluZztcbiAgICBASW5wdXQoKSBjb250YWN0VGl0bGU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgZXh0cmFUaXRsZT86IHN0cmluZztcbiAgICBASW5wdXQoKSBleHRyYURlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGZpbGVUaXRsZT86IHN0cmluZztcbiAgICBASW5wdXQoKSBsb2NhdGlvbj86IFB1cm9WZXJ0aWNhbEluZm9Mb2NhdGlvbjtcbiAgICBASW5wdXQoKSBpbnRybz86IFB1cm9WZXJ0aWNhbEluZm9JbnRyb1tdO1xuICAgIEBJbnB1dCgpIGluZm9MaXN0PzogUHVyb1ZlcnRpY2FsSW5mb0xpc3Q7XG4gICAgQElucHV0KCkgaW1nTGlzdD86IFB1cm9WZXJ0aWNhbEluZm9JbWFnZUxpc3Q7XG4gICAgQElucHV0KCkgbmRJbmZvTGlzdD86IFB1cm9WZXJ0aWNhbEluZm9OZExpc3Q7XG4gICAgQElucHV0KCkgaW5mb0J1dHRvbj86IFB1cm9WZXJ0aWNhbEluZm9XaXRoQnV0dG9uO1xuICAgIEBJbnB1dCgpIGNvbnRhY3RMaW5rcz86IFB1cm9CdXR0b25JW107XG4gICAgQElucHV0KCkgYnV0dG9ucz86IFB1cm9CdXR0b25JW107XG4gICAgQElucHV0KCkgcGRmTGluaz86IFB1cm9CdXR0b25JO1xuICAgIEBJbnB1dCgpIGJ1dHRvblN1YnNjcmliZT86IFB1cm9CdXR0b25JO1xuICAgIEBJbnB1dCgpIGJ1dHRvbkJhY2s/OiBQdXJvQnV0dG9uSTtcbiAgICBASW5wdXQoKSBzb2NpYWxNZWRpYT86IFB1cm9WZXJ0aWNhbEluZm9Tb2NpYWxNZWRpYUl0ZW1bXTtcblxuICAgIGdldCBzaGFyZVRleHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGl0bGUgPz8gJyc7XG4gICAgfVxuICAgIFxuICAgIGdldCBjdXJyZW50VXJsKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykgcmV0dXJuICcnO1xuICAgICAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLmhyZWY7XG4gICAgfVxuXG4gICAgZ2V0IGZhY2Vib29rU2hhcmVVcmwoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgdXJsID0gZW5jb2RlVVJJKHRoaXMuY3VycmVudFVybCk7XG4gICAgICAgIHJldHVybiBgaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3NoYXJlci9zaGFyZXIucGhwP3U9JHt1cmx9YDtcbiAgICB9XG5cbiAgICBnZXQgdHdpdHRlclNoYXJlVXJsKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHVybCA9IGVuY29kZVVSSSh0aGlzLmN1cnJlbnRVcmwpO1xuICAgICAgICBjb25zdCB0ZXh0ID0gZW5jb2RlVVJJQ29tcG9uZW50KHRoaXMuc2hhcmVUZXh0KTtcbiAgICAgICAgcmV0dXJuIGBodHRwczovL3R3aXR0ZXIuY29tL2ludGVudC90d2VldD91cmw9JHt1cmx9JnRleHQ9JHt0ZXh0fWA7XG4gICAgfVxuXG4gICAgZ2V0IGxpbmtlZGluU2hhcmVVcmwoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgdXJsID0gZW5jb2RlVVJJKHRoaXMuY3VycmVudFVybCk7XG4gICAgICAgIHJldHVybiBgaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL3NoYXJpbmcvc2hhcmUtb2Zmc2l0ZS8/dXJsPSR7dXJsfWA7XG4gICAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFB1cm9WZXJ0aWNhbEluZm9Mb2NhdGlvbiB7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgYnV0dG9uPzogUHVyb0J1dHRvbkk7XG59XG5leHBvcnQgaW50ZXJmYWNlIFB1cm9WZXJ0aWNhbEluZm9JbnRybyB7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIFB1cm9WZXJ0aWNhbEluZm9MaXN0IHtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBpdGVtcz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFB1cm9WZXJ0aWNhbEluZm9JbWFnZUxpc3Qge1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIGl0ZW1zPzogUHVyb1ZlcnRpY2FsSW5mb0ltYWdlW107XG59XG5leHBvcnQgaW50ZXJmYWNlIFB1cm9WZXJ0aWNhbEluZm9JbWFnZSB7XG4gICAgaW1hZ2U/OiBQdXJvSW1hZ2VJO1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFB1cm9WZXJ0aWNhbEluZm9OZExpc3Qge1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIGl0ZW1zPzogUHVyb1ZlcnRpY2FsSW5mb05kW107XG59XG5leHBvcnQgaW50ZXJmYWNlIFB1cm9WZXJ0aWNhbEluZm9OZCB7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgcHJpY2U/OiBudW1iZXI7XG4gICAgY3VycmVuY3k/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVyb1ZlcnRpY2FsSW5mb1dpdGhCdXR0b24ge1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIGJ1dHRvbj86IFB1cm9CdXR0b25JO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFB1cm9WZXJ0aWNhbEluZm9Tb2NpYWxNZWRpYUl0ZW0ge1xuICAgIGljb24/OiBzdHJpbmc7XG4gICAgdXJsPzogc3RyaW5nO1xufVxuIiwiPHNlY3Rpb24gY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvIGdlbmVyYWxNYXJnaW5cIj5cbiAgICA8ZGl2IGNsYXNzPVwidmVydGljYWwtaW5mb19faGVhZGVyXCI+XG4gICAgICAgIEBpZiAocHJldGl0bGUpIHtcbiAgICAgICAgICAgIDxwIGNsYXNzPVwidmVydGljYWwtaW5mb19fcHJldGl0bGVcIj57eyBwcmV0aXRsZSB9fTwvcD5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKGJ1dHRvbkJhY2spIHtcbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgW2hyZWZdPVwiYnV0dG9uQmFjay51cmxcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bl9fcHJpbWFyeS0tb3V0bGluZSB2ZXJ0aWNhbC1pbmZvX19idG4tYmFja1wiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJidXR0b25CYWNrLmxhYmVsXCJcbiAgICAgICAgICAgICAgICA+e3sgYnV0dG9uQmFjay5sYWJlbCB9fTwvYVxuICAgICAgICAgICAgPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2NvbnRlbnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2xlZnRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19tYWluXCI+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgQGlmICh0YWcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmVydGljYWwtaW5mb19fdGFnXCI+e3sgdGFnIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpZiAodGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3RpdGxlXCI+e3sgdGl0bGUgfX08L2gyPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoc3VidGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19zdWJ0aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJzdWJ0aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9wPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPCEtLSBUT0RPOiBhZGQgZGlzY291bnQgLS0+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2JveGVzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19ib3hcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZnJvbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidmVydGljYWwtaW5mb19fZnJvbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBmcm9tIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChwcmljZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidmVydGljYWwtaW5mb19fcHJpY2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgcHJpY2UgfX17eyBjdXJyZW5jeSB8fCAn4oKsJyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3BwXCI+UG9yIHBlcnNvbmE8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGRpc2NvdW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidmVydGljYWwtaW5mb19fcHJpY2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRpc2NvdW50IH19JVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChidXR0b25TdWJzY3JpYmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiYnV0dG9uU3Vic2NyaWJlLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19idG4gYnRuIGJ0bl9fcHJpbWFyeS0tb3V0bGluZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJidXR0b25TdWJzY3JpYmUubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGJ1dHRvblN1YnNjcmliZS5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgQGlmIChpbWcpIHtcbiAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmVydGljYWwtaW5mb19faW1hZ2VcIlxuICAgICAgICAgICAgICAgICAgICBbbmdTcmNdPVwiaW1nLnNyY1wiXG4gICAgICAgICAgICAgICAgICAgIFthbHRdPVwiaW1nLmFsdFwiXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiNDMxXCJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiNTMxXCJcbiAgICAgICAgICAgICAgICAgICAgZGVjb2Rpbmc9XCJhc3luY1wiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3JpZ2h0XCI+XG4gICAgICAgICAgICBAaWYgKGludHJvKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2RhdGFcIj5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBpbnRybzsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS50aXRsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3NtYWxsLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpdGVtLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2Rlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiaXRlbS5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmIChpbmZvTGlzdCkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19zZXBhcmF0b3JcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmVydGljYWwtaW5mb19faW5mby1kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3RpdGxlXCI+e3sgaW5mb0xpc3QudGl0bGUgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2Rlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiaW5mb0xpc3QuZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICA+PC9wPlxuICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGluZm9MaXN0Lml0ZW1zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+e3sgaXRlbSB9fTwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKGltZ0xpc3QpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmVydGljYWwtaW5mb19fc2NoZWR1bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX190aXRsZVwiPnt7IGltZ0xpc3QudGl0bGUgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2ltZy1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGltZ0xpc3QuaXRlbXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpdGVtLmltYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19wZXJmb3JtYW5jZS1pbWdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1NyY109XCJpdGVtLmltYWdlLnNyY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FsdF09XCJpdGVtLmltYWdlLmFsdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCI3N1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiNzdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY29kaW5nPVwiYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19zbWFsbC10aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJpdGVtLmRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKG5kSW5mb0xpc3QpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmVydGljYWwtaW5mb19faW5mby1kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3RpdGxlXCI+e3sgbmRJbmZvTGlzdC50aXRsZSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmVydGljYWwtaW5mb19fZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJuZEluZm9MaXN0LmRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvcD5cbiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwidmVydGljYWwtaW5mb19fbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBuZEluZm9MaXN0Lml0ZW1zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19wcmljZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgaXRlbS5wcmljZSB9fXt7IGl0ZW0uY3VycmVuY3kgfHwgJ+KCrCcgfX08L3NwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKGluZm9CdXR0b24pIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmVydGljYWwtaW5mb19fYm9va1wiPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGluZm9CdXR0b24udGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidmVydGljYWwtaW5mb19fdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpbmZvQnV0dG9uLnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGlmIChpbmZvQnV0dG9uLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmVydGljYWwtaW5mb19fZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiaW5mb0J1dHRvbi5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9wPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoaW5mb0J1dHRvbi5idXR0b24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG5fX3ByaW1hcnktLW91dGxpbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaW5mb0J1dHRvbi5idXR0b24ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGluZm9CdXR0b24uYnV0dG9uLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3NlcGFyYXRvclwiPjwvZGl2PlxuICAgICAgICAgICAgQGlmIChzb2NpYWxUaXRsZSkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19zb2NpYWxcIj5cbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19zbWFsbC10aXRsZVwiPnt7IHNvY2lhbFRpdGxlIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmVydGljYWwtaW5mb19fbWVkaWFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiZmFjZWJvb2tTaGFyZVVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNvbXBhcnRpciBlbiBGYWNlYm9va1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzaGFyZS1mYWNlYm9va1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uLTVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cInR3aXR0ZXJTaGFyZVVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNvbXBhcnRpciBlbiBYXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNoYXJlLXR3aXR0ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbi00XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJsaW5rZWRpblNoYXJlVXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ29tcGFydGlyIGVuIExpbmtlZEluXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNoYXJlLWxpbmtlZGluXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb24tMlwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKGNvbnRhY3RUaXRsZSAmJiBjb250YWN0TGlua3MpIHtcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmVydGljYWwtaW5mb19fYWRkaXRpb25hbCB2ZXJ0aWNhbC1pbmZvX19hZGRpdGlvbmFsLS1jb250YWN0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidmVydGljYWwtaW5mb19fc21hbGwtdGl0bGVcIj57eyBjb250YWN0VGl0bGUgfX08L3A+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2xpbmtzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChsaW5rIG9mIGNvbnRhY3RMaW5rczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwibGluay51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwibGluay5saW5rVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGluay5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyBsaW5rLmxhYmVsIH19PC9hXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoZXh0cmFUaXRsZSAmJiBleHRyYURlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2FkZGl0aW9uYWxcIj5cbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19zbWFsbC10aXRsZVwiPnt7IGV4dHJhVGl0bGUgfX08L3A+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJleHRyYURlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvUD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKGxvY2F0aW9uKSB7XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2FkZGl0aW9uYWwgdmVydGljYWwtaW5mb19fYWRkaXRpb25hbC0tbG9jYXRpb25cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19zbWFsbC10aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbG9jYXRpb24udGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICA8cFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImxvY2F0aW9uLmRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIEBpZiAobG9jYXRpb24uYnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJsb2NhdGlvbi5idXR0b24udXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJsb2NhdGlvbi5idXR0b24ubGlua1R5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuX19wcmltYXJ5LS1vdXRsaW5lIHZlcnRpY2FsLWluZm9fX2J0bi1tYXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsb2NhdGlvbi5idXR0b24ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPnt7IGxvY2F0aW9uLmJ1dHRvbi5sYWJlbCB9fTwvYVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChwZGZMaW5rKSB7XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2FkZGl0aW9uYWwgdmVydGljYWwtaW5mb19fYWRkaXRpb25hbC0tbG9jYXRpb25cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChmaWxlVGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidmVydGljYWwtaW5mb19fc21hbGwtdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBmaWxlVGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwicGRmTGluay51cmxcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bl9fbGlua1wiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicGRmTGluay5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgID57eyBwZGZMaW5rLmxhYmVsIH19PC9hXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChidXR0b25zICYmIGJ1dHRvbnNbMF0pIHtcbiAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJidXR0b25zWzBdLnVybFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bl9fcHJpbWFyeS0tb3V0bGluZSB2ZXJ0aWNhbC1pbmZvX19idG4tZnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYnV0dG9uc1swXS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgID57eyBidXR0b25zWzBdLmxhYmVsIH19PC9hXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChidXR0b25zICYmIGJ1dHRvbnNbMV0pIHtcbiAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJidXR0b25zWzFdLnVybFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bl9fcHJpbWFyeSB2ZXJ0aWNhbC1pbmZvX19idG4tZnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYnV0dG9uc1sxXS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgID57eyBidXR0b25zWzFdLmxhYmVsIH19PC9hXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvc2VjdGlvbj5cbiJdfQ==
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby12ZXJ0aWNhbC1pbmZvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3B1cm8vc3JjL2xpYi9jb21wb25lbnRzL3B1cm8tdmVydGljYWwtaW5mby9wdXJvLXZlcnRpY2FsLWluZm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby12ZXJ0aWNhbC1pbmZvL3B1cm8tdmVydGljYWwtaW5mby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsWUFBWSxFQUNaLGdCQUFnQixHQUNuQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBVXhGLE1BQU0sT0FBTyx5QkFBeUI7SUFSdEM7UUF1Q2MsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0tBMEIvQztJQXhCRyxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDVixJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVc7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUM3QyxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNoQixNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sZ0RBQWdELEdBQUcsRUFBRSxDQUFDO0lBQ2pFLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDZixNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sSUFBSSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRCxPQUFPLHdDQUF3QyxHQUFHLFNBQVMsSUFBSSxFQUFFLENBQUM7SUFDdEUsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2hCLE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkMsT0FBTyx1REFBdUQsR0FBRyxFQUFFLENBQUM7SUFDeEUsQ0FBQzsrR0F4RFEseUJBQXlCO21HQUF6Qix5QkFBeUIsbXlCQ2hCdEMsMnhhQWtVQSx5RER2VGMsWUFBWSwrQkFBRSxnQkFBZ0IsZ1BBQUUsNkJBQTZCLGlFQUFFLHFCQUFxQjs7NEZBS3JGLHlCQUF5QjtrQkFSckMsU0FBUzsrQkFDSSx3QkFBd0IsY0FDdEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFFLDZCQUE2QixFQUFFLHFCQUFxQixDQUFDLG1CQUc5RSx1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFSSxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTmdPcHRpbWl6ZWRJbWFnZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHVyb0J1dHRvbkksIFB1cm9JbWFnZUkgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEF1dG9JbWFnZVpvb21XcmFwcGVyRGlyZWN0aXZlLCBQdXJvTGlua1R5cGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsaWItcHVyby12ZXJ0aWNhbC1pbmZvJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE5nT3B0aW1pemVkSW1hZ2UsIEF1dG9JbWFnZVpvb21XcmFwcGVyRGlyZWN0aXZlLCBQdXJvTGlua1R5cGVEaXJlY3RpdmVdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wdXJvLXZlcnRpY2FsLWluZm8uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9wdXJvLXZlcnRpY2FsLWluZm8uY29tcG9uZW50LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQdXJvVmVydGljYWxJbmZvQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBwcmV0aXRsZT86IHN0cmluZztcbiAgICBASW5wdXQoKSB0YWc/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgdGl0bGU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgc3VidGl0bGU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHJpY2U/OiBudW1iZXI7XG4gICAgQElucHV0KCkgZnJvbT86IHN0cmluZztcbiAgICBASW5wdXQoKSB0bz86IHN0cmluZztcbiAgICBASW5wdXQoKSBkaXNjb3VudD86IG51bWJlcjtcbiAgICBASW5wdXQoKSBjdXJyZW5jeT86IHN0cmluZztcbiAgICBASW5wdXQoKSBpbWc/OiBQdXJvSW1hZ2VJO1xuICAgIEBJbnB1dCgpIHNvY2lhbFRpdGxlPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGNvbnRhY3RUaXRsZT86IHN0cmluZztcbiAgICBASW5wdXQoKSBleHRyYVRpdGxlPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGV4dHJhRGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgZmlsZVRpdGxlPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGxvY2F0aW9uPzogUHVyb1ZlcnRpY2FsSW5mb0xvY2F0aW9uO1xuICAgIEBJbnB1dCgpIGludHJvPzogUHVyb1ZlcnRpY2FsSW5mb0ludHJvW107XG4gICAgQElucHV0KCkgaW5mb0xpc3Q/OiBQdXJvVmVydGljYWxJbmZvTGlzdDtcbiAgICBASW5wdXQoKSBpbWdMaXN0PzogUHVyb1ZlcnRpY2FsSW5mb0ltYWdlTGlzdDtcbiAgICBASW5wdXQoKSBuZEluZm9MaXN0PzogUHVyb1ZlcnRpY2FsSW5mb05kTGlzdDtcbiAgICBASW5wdXQoKSBpbmZvQnV0dG9uPzogUHVyb1ZlcnRpY2FsSW5mb1dpdGhCdXR0b247XG4gICAgQElucHV0KCkgY29udGFjdExpbmtzPzogUHVyb0J1dHRvbklbXTtcbiAgICBASW5wdXQoKSBidXR0b25Cb29rPzogUHVyb0J1dHRvbkk7XG4gICAgQElucHV0KCkgYnV0dG9uR3Vlc3RzPzogUHVyb0J1dHRvbkk7XG4gICAgQElucHV0KCkgcGRmTGluaz86IFB1cm9CdXR0b25JO1xuICAgIEBJbnB1dCgpIGJ1dHRvblN1YnNjcmliZT86IFB1cm9CdXR0b25JO1xuICAgIEBJbnB1dCgpIGJ1dHRvbkJhY2s/OiBQdXJvQnV0dG9uSTtcbiAgICBASW5wdXQoKSBzb2NpYWxNZWRpYT86IFB1cm9WZXJ0aWNhbEluZm9Tb2NpYWxNZWRpYUl0ZW1bXTtcbiAgICBASW5wdXQoKSBob3RlbE5hbWU/OiBzdHJpbmc7XG5cbiAgICBAT3V0cHV0KCkgYnRuQm9va0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgZ2V0IHNoYXJlVGV4dCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50aXRsZSA/PyAnJztcbiAgICB9XG4gICAgXG4gICAgZ2V0IGN1cnJlbnRVcmwoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSByZXR1cm4gJyc7XG4gICAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24uaHJlZjtcbiAgICB9XG5cbiAgICBnZXQgZmFjZWJvb2tTaGFyZVVybCgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB1cmwgPSBlbmNvZGVVUkkodGhpcy5jdXJyZW50VXJsKTtcbiAgICAgICAgcmV0dXJuIGBodHRwczovL3d3dy5mYWNlYm9vay5jb20vc2hhcmVyL3NoYXJlci5waHA/dT0ke3VybH1gO1xuICAgIH1cblxuICAgIGdldCB0d2l0dGVyU2hhcmVVcmwoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgdXJsID0gZW5jb2RlVVJJKHRoaXMuY3VycmVudFVybCk7XG4gICAgICAgIGNvbnN0IHRleHQgPSBlbmNvZGVVUklDb21wb25lbnQodGhpcy5zaGFyZVRleHQpO1xuICAgICAgICByZXR1cm4gYGh0dHBzOi8vdHdpdHRlci5jb20vaW50ZW50L3R3ZWV0P3VybD0ke3VybH0mdGV4dD0ke3RleHR9YDtcbiAgICB9XG5cbiAgICBnZXQgbGlua2VkaW5TaGFyZVVybCgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB1cmwgPSBlbmNvZGVVUkkodGhpcy5jdXJyZW50VXJsKTtcbiAgICAgICAgcmV0dXJuIGBodHRwczovL3d3dy5saW5rZWRpbi5jb20vc2hhcmluZy9zaGFyZS1vZmZzaXRlLz91cmw9JHt1cmx9YDtcbiAgICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVyb1ZlcnRpY2FsSW5mb0xvY2F0aW9uIHtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBidXR0b24/OiBQdXJvQnV0dG9uSTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHVyb1ZlcnRpY2FsSW5mb0ludHJvIHtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHVyb1ZlcnRpY2FsSW5mb0xpc3Qge1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIGl0ZW1zPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVyb1ZlcnRpY2FsSW5mb0ltYWdlTGlzdCB7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgaXRlbXM/OiBQdXJvVmVydGljYWxJbmZvSW1hZ2VbXTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHVyb1ZlcnRpY2FsSW5mb0ltYWdlIHtcbiAgICBpbWFnZT86IFB1cm9JbWFnZUk7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVyb1ZlcnRpY2FsSW5mb05kTGlzdCB7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgaXRlbXM/OiBQdXJvVmVydGljYWxJbmZvTmRbXTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHVyb1ZlcnRpY2FsSW5mb05kIHtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBwcmljZT86IG51bWJlcjtcbiAgICBjdXJyZW5jeT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdXJvVmVydGljYWxJbmZvV2l0aEJ1dHRvbiB7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgYnV0dG9uPzogUHVyb0J1dHRvbkk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVyb1ZlcnRpY2FsSW5mb1NvY2lhbE1lZGlhSXRlbSB7XG4gICAgaWNvbj86IHN0cmluZztcbiAgICB1cmw/OiBzdHJpbmc7XG59XG4iLCI8c2VjdGlvbiBjbGFzcz1cInZlcnRpY2FsLWluZm8gZ2VuZXJhbE1hcmdpblwiPlxuICAgIDxkaXYgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19oZWFkZXJcIj5cbiAgICAgICAgQGlmIChwcmV0aXRsZSkge1xuICAgICAgICAgICAgPHAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19wcmV0aXRsZVwiPnt7IHByZXRpdGxlIH19PC9wPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoYnV0dG9uQmFjaykge1xuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBbaHJlZl09XCJidXR0b25CYWNrLnVybFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuX19wcmltYXJ5LS1vdXRsaW5lIHZlcnRpY2FsLWluZm9fX2J0bi1iYWNrXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJ1dHRvbkJhY2subGFiZWxcIlxuICAgICAgICAgICAgICAgID57eyBidXR0b25CYWNrLmxhYmVsIH19PC9hXG4gICAgICAgICAgICA+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwidmVydGljYWwtaW5mb19fY29udGVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidmVydGljYWwtaW5mb19fbGVmdFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX21haW5cIj5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICBAaWYgKHRhZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX190YWdcIj57eyB0YWcgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGlmICh0aXRsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwidmVydGljYWwtaW5mb19fdGl0bGVcIj57eyB0aXRsZSB9fTwvaDI+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGlmIChzdWJ0aXRsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3N1YnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cInN1YnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3A+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8IS0tIFRPRE86IGFkZCBkaXNjb3VudCAtLT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmVydGljYWwtaW5mb19fYm94ZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2JveFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChmcm9tKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19mcm9tXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGZyb20gfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHByaWNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19wcmljZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBwcmljZSB9fXt7IGN1cnJlbmN5IHx8ICfigqwnIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidmVydGljYWwtaW5mb19fcHBcIj5Qb3IgcGVyc29uYTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZGlzY291bnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19wcmljZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZGlzY291bnQgfX0lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGJ1dHRvblN1YnNjcmliZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJidXR0b25TdWJzY3JpYmUudXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2J0biBidG4gYnRuX19wcmltYXJ5LS1vdXRsaW5lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJ1dHRvblN1YnNjcmliZS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgYnV0dG9uU3Vic2NyaWJlLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICBAaWYgKGltZykge1xuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19pbWFnZVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1NyY109XCJpbWcuc3JjXCJcbiAgICAgICAgICAgICAgICAgICAgW2FsdF09XCJpbWcuYWx0XCJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCI0MzFcIlxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCI1MzFcIlxuICAgICAgICAgICAgICAgICAgICBkZWNvZGluZz1cImFzeW5jXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwidmVydGljYWwtaW5mb19fcmlnaHRcIj5cbiAgICAgICAgICAgIEBpZiAoaW50cm8pIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmVydGljYWwtaW5mb19fZGF0YVwiPlxuICAgICAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGludHJvOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpdGVtLnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidmVydGljYWwtaW5mb19fc21hbGwtdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmVydGljYWwtaW5mb19fZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJpdGVtLmRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKGluZm9MaXN0KSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3NlcGFyYXRvclwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19pbmZvLWRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidmVydGljYWwtaW5mb19fdGl0bGVcIj57eyBpbmZvTGlzdC50aXRsZSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmVydGljYWwtaW5mb19fZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJpbmZvTGlzdC5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgID48L3A+XG4gICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2xpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgaW5mb0xpc3QuaXRlbXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT57eyBpdGVtIH19PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoaW1nTGlzdCkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19zY2hlZHVsZVwiPlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3RpdGxlXCI+e3sgaW1nTGlzdC50aXRsZSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwidmVydGljYWwtaW5mb19faW1nLWxpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgaW1nTGlzdC5pdGVtczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uaW1hZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3BlcmZvcm1hbmNlLWltZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3JjXT1cIml0ZW0uaW1hZ2Uuc3JjXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWx0XT1cIml0ZW0uaW1hZ2UuYWx0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjc3XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCI3N1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjb2Rpbmc9XCJhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3NtYWxsLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS50aXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2Rlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIml0ZW0uZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAobmRJbmZvTGlzdCkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19pbmZvLWRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidmVydGljYWwtaW5mb19fdGl0bGVcIj57eyBuZEluZm9MaXN0LnRpdGxlIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICA8cFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIm5kSW5mb0xpc3QuZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICA+PC9wPlxuICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIG5kSW5mb0xpc3QuaXRlbXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS50aXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3ByaWNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyBpdGVtLnByaWNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fXt7IGl0ZW0uY3VycmVuY3kgfHwgJ+KCrCcgfX08L3NwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKGluZm9CdXR0b24pIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmVydGljYWwtaW5mb19fYm9va1wiPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGluZm9CdXR0b24udGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidmVydGljYWwtaW5mb19fdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpbmZvQnV0dG9uLnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGlmIChpbmZvQnV0dG9uLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmVydGljYWwtaW5mb19fZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiaW5mb0J1dHRvbi5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9wPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoaW5mb0J1dHRvbi5idXR0b24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG5fX3ByaW1hcnktLW91dGxpbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaW5mb0J1dHRvbi5idXR0b24ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGluZm9CdXR0b24uYnV0dG9uLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX3NlcGFyYXRvclwiPjwvZGl2PlxuICAgICAgICAgICAgQGlmIChzb2NpYWxUaXRsZSkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19zb2NpYWxcIj5cbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19zbWFsbC10aXRsZVwiPnt7IHNvY2lhbFRpdGxlIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmVydGljYWwtaW5mb19fbWVkaWFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiZmFjZWJvb2tTaGFyZVVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNvbXBhcnRpciBlbiBGYWNlYm9va1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzaGFyZS1mYWNlYm9va1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uLTVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cInR3aXR0ZXJTaGFyZVVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNvbXBhcnRpciBlbiBYXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNoYXJlLXR3aXR0ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbi00XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJsaW5rZWRpblNoYXJlVXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ29tcGFydGlyIGVuIExpbmtlZEluXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNoYXJlLWxpbmtlZGluXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb24tMlwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKGNvbnRhY3RUaXRsZSAmJiBjb250YWN0TGlua3MpIHtcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmVydGljYWwtaW5mb19fYWRkaXRpb25hbCB2ZXJ0aWNhbC1pbmZvX19hZGRpdGlvbmFsLS1jb250YWN0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidmVydGljYWwtaW5mb19fc21hbGwtdGl0bGVcIj57eyBjb250YWN0VGl0bGUgfX08L3A+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2xpbmtzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChsaW5rIG9mIGNvbnRhY3RMaW5rczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwibGluay51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwibGluay5saW5rVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGluay5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyBsaW5rLmxhYmVsIH19PC9hXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoZXh0cmFUaXRsZSAmJiBleHRyYURlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2FkZGl0aW9uYWxcIj5cbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19zbWFsbC10aXRsZVwiPnt7IGV4dHJhVGl0bGUgfX08L3A+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJleHRyYURlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvUD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKGxvY2F0aW9uKSB7XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2FkZGl0aW9uYWwgdmVydGljYWwtaW5mb19fYWRkaXRpb25hbC0tbG9jYXRpb25cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19zbWFsbC10aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbG9jYXRpb24udGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICA8cFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2ZXJ0aWNhbC1pbmZvX19kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImxvY2F0aW9uLmRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIEBpZiAobG9jYXRpb24uYnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJsb2NhdGlvbi5idXR0b24udXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJsb2NhdGlvbi5idXR0b24ubGlua1R5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuX19wcmltYXJ5LS1vdXRsaW5lIHZlcnRpY2FsLWluZm9fX2J0bi1tYXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsb2NhdGlvbi5idXR0b24ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPnt7IGxvY2F0aW9uLmJ1dHRvbi5sYWJlbCB9fTwvYVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChwZGZMaW5rKSB7XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZlcnRpY2FsLWluZm9fX2FkZGl0aW9uYWwgdmVydGljYWwtaW5mb19fYWRkaXRpb25hbC0tbG9jYXRpb25cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChmaWxlVGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidmVydGljYWwtaW5mb19fc21hbGwtdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBmaWxlVGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwicGRmTGluay51cmxcIlxuICAgICAgICAgICAgICAgICAgICBsaW5rVHlwZT1cImV4dGVybmFsXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG5fX2xpbmtcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInBkZkxpbmsubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICA+e3sgcGRmTGluay5sYWJlbCB9fTwvYVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoYnV0dG9uR3Vlc3RzKSB7XG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiYnV0dG9uR3Vlc3RzLnVybFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bl9fcHJpbWFyeS0tb3V0bGluZSB2ZXJ0aWNhbC1pbmZvX19idG4tZnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYnV0dG9uR3Vlc3RzLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgPnt7IGJ1dHRvbkd1ZXN0cy5sYWJlbCB9fTwvYVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoYnV0dG9uQm9vaykge1xuICAgICAgICAgICAgICAgIEBpZiAoYnV0dG9uQm9vay5saW5rVHlwZSA9PSAnY29tcG9uZW50X2xpbmsnKSB7XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYnRuQm9va0NsaWNrLmVtaXQoaG90ZWxOYW1lKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG5fX3ByaW1hcnkgdmVydGljYWwtaW5mb19fYnRuLWZ1bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJidXR0b25Cb29rLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID57eyBidXR0b25Cb29rLmxhYmVsIH19PC9hXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChidXR0b25Cb29rLmxpbmtUeXBlICE9ICdjb21wb25lbnRfbGluaycpIHtcbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cImJ1dHRvbkJvb2sudXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bl9fcHJpbWFyeSB2ZXJ0aWNhbC1pbmZvX19idG4tZnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJ1dHRvbkJvb2subGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPnt7IGJ1dHRvbkJvb2subGFiZWwgfX08L2FcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L3NlY3Rpb24+XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby12ZXJ0aWNhbC1pbmZvLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3B1cm8vc3JjL2xpYi9jb21wb25lbnRzL3B1cm8tdmVydGljYWwtaW5mby9wdXJvLXZlcnRpY2FsLWluZm8uaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQdXJvQnV0dG9uSSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtcbiAgICBQdXJvVmVydGljYWxJbmZvSW1hZ2VMaXN0LFxuICAgIFB1cm9WZXJ0aWNhbEluZm9JbnRybyxcbiAgICBQdXJvVmVydGljYWxJbmZvTGlzdCxcbiAgICBQdXJvVmVydGljYWxJbmZvTG9jYXRpb24sXG4gICAgUHVyb1ZlcnRpY2FsSW5mb05kTGlzdCxcbiAgICBQdXJvVmVydGljYWxJbmZvU29jaWFsTWVkaWFJdGVtLFxuICAgIFB1cm9WZXJ0aWNhbEluZm9XaXRoQnV0dG9uLFxufSBmcm9tICcuL3B1cm8tdmVydGljYWwtaW5mby5jb21wb25lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFB1cm9WZXJ0aWNhbEluZm9JIHtcbiAgICBwcmV0aXRsZT86IHN0cmluZztcbiAgICB0YWc/OiBzdHJpbmc7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgc3VidGl0bGU/OiBzdHJpbmc7XG4gICAgZnJvbT86IHN0cmluZztcbiAgICB0bz86IHN0cmluZztcbiAgICBwcmljZT86IG51bWJlcjtcbiAgICBkaXNjb3VudD86IG51bWJlcixcbiAgICBjdXJyZW5jeT86IHN0cmluZztcbiAgICBpbWc/OiBzdHJpbmc7XG4gICAgc29jaWFsVGl0bGU/OiBzdHJpbmc7XG4gICAgY29udGFjdFRpdGxlPzogc3RyaW5nO1xuICAgIGV4dHJhVGl0bGU/OiBzdHJpbmc7XG4gICAgZXh0cmFEZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBmaWxlVGl0bGU/OiBzdHJpbmc7XG4gICAgbG9jYXRpb24/OiBQdXJvVmVydGljYWxJbmZvTG9jYXRpb247XG4gICAgaW5mb0J1dHRvbj86IFB1cm9WZXJ0aWNhbEluZm9XaXRoQnV0dG9uO1xuICAgIGludHJvPzogUHVyb1ZlcnRpY2FsSW5mb0ludHJvW107XG4gICAgaW5mb0xpc3Q/OiBQdXJvVmVydGljYWxJbmZvTGlzdDtcbiAgICBzb2NpYWxNZWRpYT86IFB1cm9WZXJ0aWNhbEluZm9Tb2NpYWxNZWRpYUl0ZW1bXTtcbiAgICBpbWdMaXN0PzogUHVyb1ZlcnRpY2FsSW5mb0ltYWdlTGlzdDtcbiAgICBuZEluZm9MaXN0PzogUHVyb1ZlcnRpY2FsSW5mb05kTGlzdDtcbiAgICBjb250YWN0TGlua3M/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby12ZXJ0aWNhbC1pbmZvLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3B1cm8vc3JjL2xpYi9jb21wb25lbnRzL3B1cm8tdmVydGljYWwtaW5mby9wdXJvLXZlcnRpY2FsLWluZm8uaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQdXJvQnV0dG9uSSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtcbiAgICBQdXJvVmVydGljYWxJbmZvSW1hZ2VMaXN0LFxuICAgIFB1cm9WZXJ0aWNhbEluZm9JbnRybyxcbiAgICBQdXJvVmVydGljYWxJbmZvTGlzdCxcbiAgICBQdXJvVmVydGljYWxJbmZvTG9jYXRpb24sXG4gICAgUHVyb1ZlcnRpY2FsSW5mb05kTGlzdCxcbiAgICBQdXJvVmVydGljYWxJbmZvU29jaWFsTWVkaWFJdGVtLFxuICAgIFB1cm9WZXJ0aWNhbEluZm9XaXRoQnV0dG9uLFxufSBmcm9tICcuL3B1cm8tdmVydGljYWwtaW5mby5jb21wb25lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFB1cm9WZXJ0aWNhbEluZm9JIHtcbiAgICBwcmV0aXRsZT86IHN0cmluZztcbiAgICB0YWc/OiBzdHJpbmc7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgc3VidGl0bGU/OiBzdHJpbmc7XG4gICAgZnJvbT86IHN0cmluZztcbiAgICB0bz86IHN0cmluZztcbiAgICBwcmljZT86IG51bWJlcjtcbiAgICBkaXNjb3VudD86IG51bWJlcixcbiAgICBjdXJyZW5jeT86IHN0cmluZztcbiAgICBpbWc/OiBzdHJpbmc7XG4gICAgc29jaWFsVGl0bGU/OiBzdHJpbmc7XG4gICAgY29udGFjdFRpdGxlPzogc3RyaW5nO1xuICAgIGV4dHJhVGl0bGU/OiBzdHJpbmc7XG4gICAgZXh0cmFEZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBmaWxlVGl0bGU/OiBzdHJpbmc7XG4gICAgbG9jYXRpb24/OiBQdXJvVmVydGljYWxJbmZvTG9jYXRpb247XG4gICAgaW5mb0J1dHRvbj86IFB1cm9WZXJ0aWNhbEluZm9XaXRoQnV0dG9uO1xuICAgIGludHJvPzogUHVyb1ZlcnRpY2FsSW5mb0ludHJvW107XG4gICAgaW5mb0xpc3Q/OiBQdXJvVmVydGljYWxJbmZvTGlzdDtcbiAgICBzb2NpYWxNZWRpYT86IFB1cm9WZXJ0aWNhbEluZm9Tb2NpYWxNZWRpYUl0ZW1bXTtcbiAgICBpbWdMaXN0PzogUHVyb1ZlcnRpY2FsSW5mb0ltYWdlTGlzdDtcbiAgICBuZEluZm9MaXN0PzogUHVyb1ZlcnRpY2FsSW5mb05kTGlzdDtcbiAgICBjb250YWN0TGlua3M/OiBQdXJvQnV0dG9uSVtdO1xuICAgIGJ1dHRvbkJvb2s/OiBQdXJvQnV0dG9uSTtcbiAgICBidXR0b25HdWVzdHM/OiBQdXJvQnV0dG9uSTtcbiAgICBwZGZMaW5rPzogUHVyb0J1dHRvbkk7XG4gICAgYnV0dG9uU3Vic2NyaWJlPzogUHVyb0J1dHRvbkk7XG4gICAgYnV0dG9uQmFjaz86IFB1cm9CdXR0b25JO1xuICAgIGhvdGVsTmFtZT86IHN0cmluZztcbn1cbiJdfQ==
|