ctt-babylon 0.19.32 → 0.19.33
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/external/core/lis-c3-img-txt-cta/lis-c3-img-txt-cta.component.mjs +11 -7
- package/esm2022/lib/components/external/core/sli-c3-img-txt/sli-c3-img-txt.component.mjs +15 -2
- package/fesm2022/ctt-babylon.mjs +23 -7
- package/fesm2022/ctt-babylon.mjs.map +1 -1
- package/lib/components/external/core/sli-c3-img-txt/sli-c3-img-txt.component.d.ts +1 -0
- package/package.json +1 -1
package/esm2022/lib/components/external/core/lis-c3-img-txt-cta/lis-c3-img-txt-cta.component.mjs
CHANGED
|
@@ -17,7 +17,7 @@ export class LisC3ImgTxtCtaComponent {
|
|
|
17
17
|
constructor() {
|
|
18
18
|
this.additional1LikeMarca = false;
|
|
19
19
|
this.showCleanFilters = true;
|
|
20
|
-
this.showFilters = true;
|
|
20
|
+
this.showFilters = true;
|
|
21
21
|
this.tagName = 'LisC3ImgTxtCta';
|
|
22
22
|
this.selectedHotelType = '';
|
|
23
23
|
this.selectedDestination = '';
|
|
@@ -37,11 +37,15 @@ export class LisC3ImgTxtCtaComponent {
|
|
|
37
37
|
* Devuelve las imágenes sincronizadas con filteredItems, evitando incongruencias.
|
|
38
38
|
*/
|
|
39
39
|
get imagesToShow() {
|
|
40
|
-
return this.filteredItems.map(item => {
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
40
|
+
return this.filteredItems.map((item) => {
|
|
41
|
+
const selectedFromMultimedia = this.getFirstImageByTag(this.tagName, item?.multimedia?.imagenes ?? []);
|
|
42
|
+
const selectedFromImages = this.getFirstImageByTag(this.tagName, item?.images ?? []);
|
|
43
|
+
const selected = selectedFromMultimedia ?? selectedFromImages ??
|
|
44
|
+
getFirstImageByTagFromMultimediaRaw(item?.multimedia, this.tagName) ??
|
|
45
|
+
item?.multimedia?.imagenes?.[0] ??
|
|
46
|
+
item?.images?.[0] ??
|
|
47
|
+
undefined;
|
|
48
|
+
return selected;
|
|
45
49
|
});
|
|
46
50
|
}
|
|
47
51
|
findAndSelectDestination(destinationName) {
|
|
@@ -237,4 +241,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
237
241
|
}], showFilters: [{
|
|
238
242
|
type: Input
|
|
239
243
|
}] } });
|
|
240
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzLWMzLWltZy10eHQtY3RhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhYnlsb24vc3JjL2xpYi9jb21wb25lbnRzL2V4dGVybmFsL2NvcmUvbGlzLWMzLWltZy10eHQtY3RhL2xpcy1jMy1pbWctdHh0LWN0YS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9leHRlcm5hbC9jb3JlL2xpcy1jMy1pbWctdHh0LWN0YS9saXMtYzMtaW1nLXR4dC1jdGEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNoRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUV4RixPQUFPLEVBQStDLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9GLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdqRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMv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SSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFhO1FBQ3JCLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxXQUFXLENBQUMsS0FBYTtRQUNyQixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBQ0QsVUFBVSxDQUFDLEtBQWE7UUFDcEIsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQzsrR0FqUVEsdUJBQXVCO21HQUF2Qix1QkFBdUIsK1FDOUJwQyxpOU5Bb0pBLGsrdDJCRC9IUSxZQUFZLG1JQUNaLHdCQUF3Qiw4SkFDeEIsbUJBQW1CLHNEQUNuQixXQUFXOzs0RkFNTix1QkFBdUI7a0JBYm5DLFNBQVM7K0JBQ0ksb0JBQW9CLGNBQ2xCLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLHdCQUF3Qjt3QkFDeEIsbUJBQW1CO3dCQUNuQixXQUFXO3FCQUNkLGlCQUdjLGlCQUFpQixDQUFDLFFBQVE7OEJBR2hDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJhYnlsb25CdXR0b25JLCBCYWJ5bG9uSW1hZ2VJLCBCYWJ5bG9uVGV4dEluZm9JIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBidWlsZEZpbHRlck9wdGlvbnMsIGZpbHRlcmVkSXRlbXMsIGdldEl0ZW1CcmFuZCB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzL2ZpbHRlci51dGlscyc7XG5pbXBvcnQgeyBCYWJ5bG9uTGlua1R5cGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi8uLi9kaXJlY3RpdmVzL2xpbmstdHlwZS9saW5rLXR5cGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IEJhYnlsb25DdXJyZW5jeVBpcGUgfSBmcm9tICcuLi8uLi8uLi8uLi9waXBlcy9iYWJ5bG9uLWN1cnJlbmN5LnBpcGUnO1xuaW1wb3J0IHsgZ2V0Rmlyc3RJbWFnZUJ5VGFnRnJvbU11bHRpbWVkaWFSYXcgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscy9tdXRpbWVkaWEudXRpbHMnO1xuXG5pbXBvcnQgeyBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCYWJ5bG9uR2xvYmFsSXRlbSB9IGZyb20gJy4uLy4uLy4uLy4uL2ludGVyZmFjZXMvYmFieWxvbi1nbG9iYWwtaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgZ2V0Rmlyc3RJbWFnZUJ5VGFnRnJvbUltYWdlcyB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzL211dGltZWRpYS51dGlscyc7XG5pbXBvcnQgeyBub3JtYWxpemVHbG9iYWxJdGVtcyB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzL25vcm1hbGl6ZS1pdGVtcy51dGlscyc7XG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsaXMtYzMtaW1nLXR4dC1jdGEnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEJhYnlsb25MaW5rVHlwZURpcmVjdGl2ZSxcbiAgICAgICAgQmFieWxvbkN1cnJlbmN5UGlwZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGlzLWMzLWltZy10eHQtY3RhLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vbGlzLWMzLWltZy10eHQtY3RhLmNvbXBvbmVudC5zY3NzJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZCxcbn0pXG5leHBvcnQgY2xhc3MgTGlzQzNJbWdUeHRDdGFDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSB0ZXh0cz86IEJhYnlsb25UZXh0SW5mb0k7XG4gICAgQElucHV0KCkgaXRlbXM/OiBCYWJ5bG9uR2xvYmFsSXRlbVtdO1xuICAgIEBJbnB1dCgpIGxpbmtzPzogQmFieWxvbkJ1dHRvbklbXTtcbiAgICBASW5wdXQoKSBhZGRpdGlvbmFsMUxpa2VNYXJjYT86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBzaG93Q2xlYW5GaWx0ZXJzOiBib29sZWFuID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBzaG93RmlsdGVyczogYm9vbGVhbiA9IHRydWU7IC8vIHRvIHNob3cgb3IgaGlkZSBmaWx0ZXJzIHNlY3Rpb25cblxuICAgIHRhZ05hbWU6IHN0cmluZyA9ICdMaXNDM0ltZ1R4dEN0YSc7XG5cbiAgICBzZWxlY3RlZEhvdGVsVHlwZTogc3RyaW5nID0gJyc7XG4gICAgc2VsZWN0ZWREZXN0aW5hdGlvbjogc3RyaW5nID0gJyc7XG4gICAgc2VsZWN0ZWRCcmFuZDogc3RyaW5nID0gJyc7XG5cbiAgICBob3RlbFR5cGVPcHRpb25zOiBzdHJpbmdbXSA9IFtdO1xuICAgIGRlc3RpbmF0aW9uT3B0aW9uczogc3RyaW5nW10gPSBbXTtcbiAgICBicmFuZE9wdGlvbnM6IHN0cmluZ1tdID0gW107XG5cbiAgICBmaWx0ZXJMYWJlbFRvU2x1ZyA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG4gICAgZGVzdGluYXRpb25MYWJlbFRvU2x1ZyA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG4gICAgYnJhbmRMYWJlbFRvU2x1ZyA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG5cbiAgICBwcml2YXRlIHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgICBwcml2YXRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgcHJpdmF0ZSBxcFN1Yj86IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIHBlbmRpbmdEZXN0aW5hdGlvbj86IHN0cmluZztcblxuICAgIC8vIEl0ZW1zIGZpbHRyYWRvcyBzaW4gbm9ybWFsaXphciAodXNhZG9zIHBhcmEgbMOzZ2ljYSlcbiAgICBwcml2YXRlIF9maWx0ZXJlZEl0ZW1zUmF3OiBCYWJ5bG9uR2xvYmFsSXRlbVtdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBEZXZ1ZWx2ZSBsYXMgaW3DoWdlbmVzIHNpbmNyb25pemFkYXMgY29uIGZpbHRlcmVkSXRlbXMsIGV2aXRhbmRvIGluY29uZ3J1ZW5jaWFzLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaW1hZ2VzVG9TaG93KCk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRJdGVtcy5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpbWcgPSBnZXRGaXJzdEltYWdlQnlUYWdGcm9tTXVsdGltZWRpYVJhdyhpdGVtPy5tdWx0aW1lZGlhLCB0aGlzLnRhZ05hbWUpO1xuICAgICAgICAgICAgaWYgKGltZykgcmV0dXJuIGltZztcbiAgICAgICAgICAgIHJldHVybiBpdGVtPy5tdWx0aW1lZGlhPy5pbWFnZW5lcz8uWzBdID8/IGl0ZW0/LmltYWdlcz8uWzBdID8/IHVuZGVmaW5lZDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaW5kQW5kU2VsZWN0RGVzdGluYXRpb24oZGVzdGluYXRpb25OYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZE5hbWUgPSBkZXN0aW5hdGlvbk5hbWUudG9Mb3dlckNhc2UoKS50cmltKCk7XG5cbiAgICAgICAgLy8gUHJpbWVybyBidXNjYXIgZW4gZWwgYXJyYXkgZGUgc3RyaW5ncyBkZSBkZXN0aW5vc1xuICAgICAgICBsZXQgZm91bmQgPSB0aGlzLmRlc3RpbmF0aW9uT3B0aW9ucz8uZmluZChcbiAgICAgICAgICAgIChkZXN0aW5hdGlvbikgPT4gZGVzdGluYXRpb24udG9Mb3dlckNhc2UoKS50cmltKCkgPT09IG5vcm1hbGl6ZWROYW1lXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGVzdGluYXRpb24gPSBmb3VuZDtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRmlsdGVyZWRJdGVtcygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2kgbm8gZW5jdWVudHJhIGVuIGRlc3RpbmF0aW9uT3B0aW9ucywgYnVzY2FyIGVuIGxvcyBpdGVtcyBwb3IgY291bnRyeVxuICAgICAgICBjb25zdCBpdGVtV2l0aENvdW50cnkgPSB0aGlzLml0ZW1zPy5maW5kKFxuICAgICAgICAgICAgKGl0ZW0pID0+IGl0ZW0uY291bnRyeT8udG9Mb3dlckNhc2UoKS50cmltKCkgPT09IG5vcm1hbGl6ZWROYW1lXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKGl0ZW1XaXRoQ291bnRyeSAmJiBpdGVtV2l0aENvdW50cnkuY291bnRyeSkge1xuICAgICAgICAgICAgLy8gRmlsdHJhciBkaXJlY3RhbWVudGUgcG9yIGNvdW50cnkgYXVucXVlIG5vIGV4aXN0YSBlbiBkZXN0aW5hdGlvbk9wdGlvbnNcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREZXN0aW5hdGlvbiA9IGl0ZW1XaXRoQ291bnRyeS5jb3VudHJ5O1xuICAgICAgICAgICAgdGhpcy51cGRhdGVGaWx0ZXJlZEl0ZW1zKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXZ1ZWx2ZSBlbCBsYWJlbCBkZWwgYm90w7NuIGVuIGxhIHBvc2ljacOzbiBpbmRleCwgYnVzY2FuZG8gZW4gaXRlbS5idXR0b25zW2luZGV4XS5sYWJlbFxuICAgICAqIHkgc2kgbm8gZXhpc3RlLCBlbiBpdGVtLm11bHRpbWVkaWEuaW1hZ2VuZXNbMF0uYnV0dG9uc1tpbmRleF0ubGFiZWxcbiAgICAgKi9cbiAgICBnZXRCdXR0b25MYWJlbChpdGVtOiBCYWJ5bG9uR2xvYmFsSXRlbSwgaW5kZXg6IG51bWJlcik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChpdGVtPy5idXR0b25zPy5baW5kZXhdPy5sYWJlbCkge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW0uYnV0dG9uc1tpbmRleF0ubGFiZWw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGl0ZW0/Lm11bHRpbWVkaWE/LmltYWdlbmVzPy5bMF0/LmJ1dHRvbnM/LltpbmRleF0/LmxhYmVsO1xuICAgIH1cblxuICAgIGdldEJ1dHRvblVybChpdGVtOiBCYWJ5bG9uR2xvYmFsSXRlbSwgaW5kZXg6IG51bWJlcik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmJ1aWxkTWVudVVybChpdGVtPy5tdWx0aW1lZGlhPy5pbWFnZW5lcz8uWzBdPy5idXR0b25zPy5baW5kZXhdKSB8fFxuICAgICAgICAgICAgdGhpcy5idWlsZE1lbnVVcmwoaXRlbT8uYnV0dG9ucz8uW2luZGV4XSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRCdXR0b25MaW5rVHlwZShpdGVtOiBCYWJ5bG9uR2xvYmFsSXRlbSwgaW5kZXg6IG51bWJlcik6IGFueSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgaXRlbT8ubXVsdGltZWRpYT8uaW1hZ2VuZXM/LlswXT8uYnV0dG9ucz8uW2luZGV4XT8ubGlua1R5cGUgfHxcbiAgICAgICAgICAgIGl0ZW0/LmJ1dHRvbnM/LltpbmRleF0/LmxpbmtUeXBlXG5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBidWlsZE1lbnVVcmwoaXRlbTogQmFieWxvbkJ1dHRvbkkgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgICAgaWYgKCFpdGVtPy51cmwpIHJldHVybiAnJztcblxuICAgICAgY29uc3QgYmFzZVVybCA9IGl0ZW0udXJsLnJlcGxhY2UoL1xcLyskLywgJycpO1xuICAgICAgY29uc3QgZGVzdGluYXRpb24gPSAoaXRlbS52YXJzID8/ICcnKS50b1N0cmluZygpLnRyaW0oKTtcblxuICAgICAgaWYgKCFkZXN0aW5hdGlvbikgcmV0dXJuIGJhc2VVcmw7XG5cbiAgICAgIGNvbnN0IHNsdWcgPSBVdGlscy50b1NsdWcoZGVzdGluYXRpb24pO1xuICAgICAgaWYgKCFzbHVnKSByZXR1cm4gYmFzZVVybDtcblxuICAgICAgcmV0dXJuIGAke2Jhc2VVcmx9P2Rlc3RpbmF0aW9ucz0ke2Rlc3RpbmF0aW9ufWA7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlc1snaXRlbXMnXSkge1xuICAgICAgICAgICAgY29uc3Qgb3B0cyA9IGJ1aWxkRmlsdGVyT3B0aW9ucyhcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zID8/IFtdLFxuICAgICAgICAgICAgICAgIHRoaXMuYWRkaXRpb25hbDFMaWtlTWFyY2EgPz8gZmFsc2VcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLmhvdGVsVHlwZU9wdGlvbnMgPSBvcHRzLmhvdGVsVHlwZU9wdGlvbnM7XG4gICAgICAgICAgICB0aGlzLmRlc3RpbmF0aW9uT3B0aW9ucyA9IG9wdHMuZGVzdGluYXRpb25PcHRpb25zO1xuXG4gICAgICAgICAgICAvLyBSZWxsZW5hciBicmFuZE9wdGlvbnMgdXNhbmRvIGdldEl0ZW1CcmFuZCBwYXJhIGNvaGVyZW5jaWFcbiAgICAgICAgICAgIGNvbnN0IGJyYW5kcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgICAgICAgICAgKHRoaXMuaXRlbXMgPz8gW10pLmZvckVhY2goKGl0KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYnJhbmQgPSBnZXRJdGVtQnJhbmQoXG4gICAgICAgICAgICAgICAgICAgIGl0LFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZGl0aW9uYWwxTGlrZU1hcmNhID8/IGZhbHNlXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAoYnJhbmQpIGJyYW5kcy5hZGQoYnJhbmQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmJyYW5kT3B0aW9ucyA9IEFycmF5LmZyb20oYnJhbmRzKTtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyTGFiZWxUb1NsdWcgPSBvcHRzLmZpbHRlckxhYmVsVG9TbHVnO1xuICAgICAgICAgICAgdGhpcy5kZXN0aW5hdGlvbkxhYmVsVG9TbHVnID0gb3B0cy5kZXN0aW5hdGlvbkxhYmVsVG9TbHVnO1xuICAgICAgICAgICAgdGhpcy5icmFuZExhYmVsVG9TbHVnID0gb3B0cy5icmFuZExhYmVsVG9TbHVnO1xuXG4gICAgICAgICAgICAvLyBTb2xvIHJlc2V0ZWFyIHNpIG5vIGhheSB1biBkZXN0aW5vIHBlbmRpZW50ZSBkZSBsYSBVUkxcbiAgICAgICAgICAgIGlmICghdGhpcy5wZW5kaW5nRGVzdGluYXRpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSG90ZWxUeXBlID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERlc3RpbmF0aW9uID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEJyYW5kID0gJyc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIFNpIGhheSB1biBkZXN0aW5vIHBlbmRpZW50ZSBkZSBsYSBVUkwsIGludGVudGEgc2VsZWNjaW9uYXJsbyBhaG9yYVxuICAgICAgICAgICAgICAgIHRoaXMuZmluZEFuZFNlbGVjdERlc3RpbmF0aW9uKHRoaXMucGVuZGluZ0Rlc3RpbmF0aW9uKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gQWN0dWFsaXphciBpdGVtcyBmaWx0cmFkb3NcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRmlsdGVyZWRJdGVtcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIFN1c2NyaWJpcnNlIGEgbG9zIGNhbWJpb3MgZGUgcXVlcnkgcGFyYW1zXG4gICAgICAgIHRoaXMucXBTdWIgPSB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1NYXAuc3Vic2NyaWJlKChwYXJhbXMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRlc3RpbmF0aW9uc1BhcmFtID0gcGFyYW1zLmdldCgnZGVzdGluYXRpb25zJyk7XG5cbiAgICAgICAgICAgIGlmIChkZXN0aW5hdGlvbnNQYXJhbSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlY29kZWREZXN0aW5hdGlvbiA9IGRlY29kZVVSSUNvbXBvbmVudChkZXN0aW5hdGlvbnNQYXJhbSk7XG4gICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nRGVzdGluYXRpb24gPSBkZWNvZGVkRGVzdGluYXRpb247XG5cbiAgICAgICAgICAgICAgICAvLyBTaSB5YSB0ZW5lbW9zIGRlc3RpbmF0aW9uT3B0aW9ucywgYnVzY2FyIHkgc2VsZWNjaW9uYXJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kZXN0aW5hdGlvbk9wdGlvbnMgJiYgdGhpcy5kZXN0aW5hdGlvbk9wdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbmRBbmRTZWxlY3REZXN0aW5hdGlvbihkZWNvZGVkRGVzdGluYXRpb24pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnFwU3ViPy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERldnVlbHZlIHVuIGFycmF5IG5vcm1hbGl6YWRvIGRlIEJhYnlsb25HbG9iYWxJdGVtXG4gICAgICovXG4gICAgZ2V0IG5vcm1hbGl6ZWRJdGVtcygpOiBCYWJ5bG9uR2xvYmFsSXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZUdsb2JhbEl0ZW1zKHRoaXMuaXRlbXMpO1xuICAgIH1cblxuICAgIGdldEZpcnN0SW1hZ2VCeVRhZyh0YWdOYW1lOiBzdHJpbmcsIGltYWdlbmVzOiBCYWJ5bG9uSW1hZ2VJW10pIHtcbiAgICAgICAgcmV0dXJuIGdldEZpcnN0SW1hZ2VCeVRhZ0Zyb21JbWFnZXMoaW1hZ2VuZXMsIHRhZ05hbWUpO1xuICAgIH1cblxuICAgIGdldCBmaWx0ZXJlZEl0ZW1zKCkge1xuICAgICAgICAvLyBEZXZvbHZlciBsb3MgaXRlbXMgZmlsdHJhZG9zIG5vcm1hbGl6YWRvc1xuICAgICAgICByZXR1cm4gbm9ybWFsaXplR2xvYmFsSXRlbXModGhpcy5fZmlsdGVyZWRJdGVtc1Jhdyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVGaWx0ZXJlZEl0ZW1zKCk6IHZvaWQge1xuICAgICAgICBsZXQgaXRlbXMgPSBmaWx0ZXJlZEl0ZW1zKHtcbiAgICAgICAgICAgIGl0ZW1zOiB0aGlzLml0ZW1zID8/IFtdLFxuICAgICAgICAgICAgc2VsZWN0ZWRIb3RlbFR5cGU6IHRoaXMuc2VsZWN0ZWRIb3RlbFR5cGUsXG4gICAgICAgICAgICBzZWxlY3RlZERlc3RpbmF0aW9uOiB0aGlzLnNlbGVjdGVkRGVzdGluYXRpb24sXG4gICAgICAgICAgICBzZWxlY3RlZEJyYW5kOiB0aGlzLnNlbGVjdGVkQnJhbmQsXG4gICAgICAgICAgICBhZGRpdGlvbmFsMUxpa2VNYXJjYTogdGhpcy5hZGRpdGlvbmFsMUxpa2VNYXJjYSA/PyBmYWxzZSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gU2kgaGF5IGRlc3RpbmF0aW9uU2VsZWN0ZWQgeSBubyB0aWVuZSByZXN1bHRhZG9zLCBpbnRlbnRhciBmaWx0cmFyIHBvciBjb3VudHJ5XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkRGVzdGluYXRpb24gJiYgaXRlbXMubGVuZ3RoID09PSAwICYmIHRoaXMuaXRlbXMpIHtcbiAgICAgICAgICAgIGl0ZW1zID0gdGhpcy5pdGVtcy5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBob3RlbFR5cGVPayA9XG4gICAgICAgICAgICAgICAgICAgICF0aGlzLnNlbGVjdGVkSG90ZWxUeXBlIHx8XG4gICAgICAgICAgICAgICAgICAgIChpdGVtIGFzIGFueSk/LmhvdGVsdHlwZSA9PT0gdGhpcy5zZWxlY3RlZEhvdGVsVHlwZTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGRlc3RpbmF0aW9uT2sgPVxuICAgICAgICAgICAgICAgICAgICAhdGhpcy5zZWxlY3RlZERlc3RpbmF0aW9uIHx8XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uY291bnRyeT8udG9Mb3dlckNhc2UoKS50cmltKCkgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGVzdGluYXRpb24udG9Mb3dlckNhc2UoKS50cmltKCk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBicmFuZE9rID1cbiAgICAgICAgICAgICAgICAgICAgIXRoaXMuc2VsZWN0ZWRCcmFuZCB8fFxuICAgICAgICAgICAgICAgICAgICBVdGlscy50b1NsdWcoZ2V0SXRlbUJyYW5kKGl0ZW0sIHRoaXMuYWRkaXRpb25hbDFMaWtlTWFyY2EgPz8gZmFsc2UpKSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxzLnRvU2x1Zyh0aGlzLnNlbGVjdGVkQnJhbmQpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdGVsVHlwZU9rICYmIGRlc3RpbmF0aW9uT2sgJiYgYnJhbmRPaztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZmlsdGVyZWRJdGVtc1JhdyA9IGl0ZW1zO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBnZXQgaGFzQWN0aXZlRmlsdGVycygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRIb3RlbFR5cGUsXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGVzdGluYXRpb24sXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkQnJhbmQsXG4gICAgICAgIF0uc29tZSgodikgPT4gdiAmJiB2ICE9PSAnJyk7XG4gICAgfVxuXG4gICAgb25Ib3RlbFR5cGVDaGFuZ2UodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSG90ZWxUeXBlID0gdmFsdWUgPz8gJyc7XG4gICAgICAgIHRoaXMudXBkYXRlRmlsdGVyZWRJdGVtcygpO1xuICAgIH1cblxuICAgIG9uRGVzdGluYXRpb25DaGFuZ2UodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkRGVzdGluYXRpb24gPSB2YWx1ZSA/PyAnJztcbiAgICAgICAgdGhpcy51cGRhdGVGaWx0ZXJlZEl0ZW1zKCk7XG4gICAgfVxuXG4gICAgb25CcmFuZENoYW5nZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRCcmFuZCA9IHZhbHVlID8/ICcnO1xuICAgICAgICB0aGlzLnVwZGF0ZUZpbHRlcmVkSXRlbXMoKTtcbiAgICB9XG5cbiAgICBjbGVhckZpbHRlcnMoKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRIb3RlbFR5cGUgPSAnJztcbiAgICAgICAgdGhpcy5zZWxlY3RlZERlc3RpbmF0aW9uID0gJyc7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRCcmFuZCA9ICcnO1xuICAgICAgICB0aGlzLnVwZGF0ZUZpbHRlcmVkSXRlbXMoKTtcbiAgICB9XG5cbiAgICB0cmFja0ZpbHRlcihpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cbiAgICB0cmFja09wdGlvbihpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cbiAgICB0cmFja09mZmVyKGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgfVxufVxuIiwiICA8ZGl2IGNsYXNzPVwicGFnZS1jb250YWluZXIgZmlyc3QtbW9kdWxlIG9mZmVycy1wYWdlXCI+XG4gICAgPGRpdiBjbGFzcz1cImJpZy13cmFwcGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwid3JhcC1wYWdlLWNvbnRhaW5lclwiPlxuICAgICAgICA8aGVhZGVyIGNsYXNzPVwiZ2xvYmFsLWhlYWRlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwLWdsb2JhbC1oZWFkZXIgdmlzaWJsZVwiPlxuICAgICAgICAgICAgQGlmICh0ZXh0cz8udGl0bGUpIHtcbiAgICAgICAgICAgICAgPGgxIGNsYXNzPVwiZ2xvYmFsLWhlYWRlci10aXRsZVwiPnt7IHRleHRzPy50aXRsZSB9fTwvaDE+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAgQGlmICh0ZXh0cz8uc3VidGl0bGUpIHtcbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJnbG9iYWwtaGVhZGVyLXN1YnRpdGxlXCIgW2lubmVySFRNTF09XCJ0ZXh0cz8uc3VidGl0bGVcIj48L3A+XG4gICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9mZmVycy1pbnB1dHNcIiAqbmdJZj1cInNob3dGaWx0ZXJzXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnbG9iYWwtaGVhZGVyLWZvcm1cIj5cbiAgICAgICAgICAgICAgICA8IS0tZmlsdGVycy0tPlxuICAgICAgICAgICAgICAgIDwhLS0gQnJhbmQgZmlsdGVyIC0tPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1mb3JtLWVsZW1lbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWVsZW1lbnQgc2VsZWN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXAtaW5wdXQtZWxlbWVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICh0ZXh0cz8ubWFyY2EpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbnB1dC1lbGVtZW50LXRleHRcIj57eyB0ZXh0cz8ubWFyY2EgPz8gJ21hcmNhJyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZWxlbWVudC1maWVsZCBqcy1maWx0ZXItb2ZmZXJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkQnJhbmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQnJhbmRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+e3sgdGV4dHM/Lm1hcmNhID8/ICdtYXJjYScgfX08L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChvcHQgb2YgYnJhbmRPcHRpb25zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIm9wdFwiPnt7IG9wdCB9fTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8IS0tIHNlcnZpY2VzLS0+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItZm9ybS1lbGVtZW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWVsZW1lbnQgc2VsZWN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcC1pbnB1dC1lbGVtZW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAodGV4dHM/LmRlc3RpbmF0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5wdXQtZWxlbWVudC10ZXh0XCI+e3sgdGV4dHM/LmRlc3RpbmF0aW9ucyA/PyAnZGVzdGlub3MnIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImlucHV0LWVsZW1lbnQtZmllbGQganMtZmlsdGVyLW9mZmVyc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZERlc3RpbmF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkRlc3RpbmF0aW9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPnt7IHRleHRzPy5kZXN0aW5hdGlvbnMgPz8gJ2Rlc3Rpbm9zJyB9fTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKG9wdCBvZiBkZXN0aW5hdGlvbk9wdGlvbnM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwib3B0XCI+e3sgb3B0IH19PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPCEtLWVuZCBmaWx0ZXJzLS0+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvaGVhZGVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8c2VjdGlvbiBjbGFzcz1cInByb21vLW1vZHVsZSBvZmZlcnMtcGFnZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJiaWctd3JhcHBlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cIndyYXAtcHJvbW8tbW9kdWxlIG1vZHVsZS1zcGFjZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInByb21vLW1vZHVsZS1jb250ZW50XCI+XG4gICAgICAgICAgQGlmIChmaWx0ZXJlZEl0ZW1zPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgZmlsdGVyZWRJdGVtczsgdHJhY2sgdHJhY2tPZmZlcigkaW5kZXgpKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9tby1tb2R1bGUtZWxlbWVudFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwLXByb21vLWVsZW1lbnRcIj5cbiAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIFtocmVmXT1cImdldEJ1dHRvblVybChpdGVtLCAxKVwiXG4gICAgICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJnZXRCdXR0b25MaW5rVHlwZShpdGVtLCAxKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb21vLWVsZW1lbnQtbWVkaWEganMtc2VjdGlvbi1hcnJvd3Mtem9uZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaW1hZ2VzVG9TaG93WyRpbmRleF0/LmltZz8uc3JjKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmlndXJlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvbW8tZWxlbWVudC1tZWRpYV9pbWcgcmVzcG9uc2l2ZS1yZXNpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiaW1nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpbWFnZXNUb1Nob3dbJGluZGV4XT8uaW1nPy5hbHQgPz8gJ2l0ZW1JbWFnZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWZpbGVuYW1lXT1cImltYWdlc1RvU2hvd1skaW5kZXhdPy5pbWc/LmFsdCA/PyAnaXRlbUZpbGVOYW1lJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWltYWdlXT1cIid1cmwoJyArIGltYWdlc1RvU2hvd1skaW5kZXhdPy5pbWc/LnNyYyArICcpJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9maWd1cmU+XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb21vLWVsZW1lbnQtaW5mb1wiPlxuICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbT8udGV4dHM/LmFkZGl0aW9uYWwzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInByb21vLWVsZW1lbnQtaW5mb190YWdcIj57eyBpdGVtPy50ZXh0cz8uYWRkaXRpb25hbDMgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIGl0ZW0/LnRleHRzPy50aXRsZSB8fCBpdGVtPy50ZXh0cz8ubmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwcm9tby1lbGVtZW50LWluZm9fdGl0bGVcIiBbaW5uZXJIVE1MXT1cIml0ZW0/LnRleHRzPy50aXRsZSB8fCBpdGVtPy50ZXh0cz8ubmFtZVwiPjwvcD5cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgQGlmICggaXRlbT8udGV4dHM/LmFkZGl0aW9uYWwyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInByb21vLWVsZW1lbnQtaW5mb19zdWJ0aXRsZVwiIFtpbm5lckhUTUxdPVwiaXRlbT8udGV4dHM/LmFkZGl0aW9uYWwyXCI+PC9wPlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvbW8tZWxlbWVudC1mb290XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9tby1lbGVtZW50LXByaWNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgQGlmICgoaXRlbT8ucHJpY2UgfHwgaXRlbT8uZGlzY291bnQpICYmIGl0ZW0/LnRleHRzPy5hZGRpdGlvbmFsMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwcm9tby1lbGVtZW50LXByaWNlX3NpbmNlXCIgPnt7IGl0ZW0/LnRleHRzPy5hZGRpdGlvbmFsMSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgQGlmIChpdGVtPy5wcmljZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwcm9tby1lbGVtZW50LXByaWNlX251bVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtPy5wcmljZSB9fTxzbWFsbD57eyAoaXRlbT8uY3VycmVuY3kgfHwgJ0VVUicpIHwgY3VycmVuY3lTeW1ib2wgfX08L3NtYWxsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uZGlzY291bnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHJvbW8tZWxlbWVudC1wcmljZV9udW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbT8uZGlzY291bnQgfX08c21hbGw+ICU8L3NtYWxsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9tby1lbGVtZW50LWJ0bnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICBAaWYgKGdldEJ1dHRvbkxhYmVsKGl0ZW0sIDApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1jb3JwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJnZXRCdXR0b25VcmwoaXRlbSwgMClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwiZ2V0QnV0dG9uTGlua1R5cGUoaXRlbSwgMClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1jb3JwLXRleHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0QnV0dG9uTGFiZWwoaXRlbSwgMCkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKGdldEJ1dHRvbkxhYmVsKGl0ZW0sIDEpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwiZ2V0QnV0dG9uVXJsKGl0ZW0sIDEpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtUeXBlXT1cImdldEJ1dHRvbkxpbmtUeXBlKGl0ZW0sIDEpXCIgY2xhc3M9XCJidG4tbGlua2VyIHRvcmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiYnRuLWxpbmtlci10ZXh0XCIgW2lubmVySFRNTF09XCJnZXRCdXR0b25MYWJlbChpdGVtLCAxKVwiPjwvcD5cbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm9mZmVycy1tZXNzYWdlXCIgW2NsYXNzLnNob3ddPVwiZmlsdGVyZWRJdGVtcz8ubGVuZ3RoXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXAtbWVzc2FnZVwiPlxuICAgICAgICAgICAgQGlmICh0ZXh0cz8ubm90Rm91bmQpIHtcbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtZXNzYWdlLXRleHRcIiBbaW5uZXJIVE1MXT1cInRleHRzPy5ub3RGb3VuZFwiPjwvcD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZW1wLXRyYXNoXCI+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9zZWN0aW9uPlxuIl19
|
|
244
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzLWMzLWltZy10eHQtY3RhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhYnlsb24vc3JjL2xpYi9jb21wb25lbnRzL2V4dGVybmFsL2NvcmUvbGlzLWMzLWltZy10eHQtY3RhL2xpcy1jMy1pbWctdHh0LWN0YS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9leHRlcm5hbC9jb3JlL2xpcy1jMy1pbWctdHh0LWN0YS9saXMtYzMtaW1nLXR4dC1jdGEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNoRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUV4RixPQUFPLEVBQStDLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9GLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdqRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMv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Q0FBQyxhQUFhLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsWUFBWTtRQUNSLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWE7UUFDckIsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUNELFdBQVcsQ0FBQyxLQUFhO1FBQ3JCLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxVQUFVLENBQUMsS0FBYTtRQUNwQixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOytHQTdRUSx1QkFBdUI7bUdBQXZCLHVCQUF1QiwrUUM5QnBDLGk5TkFvSkEsayt0MkJEL0hRLFlBQVksbUlBQ1osd0JBQXdCLDhKQUN4QixtQkFBbUIsc0RBQ25CLFdBQVc7OzRGQU1OLHVCQUF1QjtrQkFibkMsU0FBUzsrQkFDSSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQO3dCQUNMLFlBQVk7d0JBQ1osd0JBQXdCO3dCQUN4QixtQkFBbUI7d0JBQ25CLFdBQVc7cUJBQ2QsaUJBR2MsaUJBQWlCLENBQUMsUUFBUTs4QkFHaEMsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmFieWxvbkJ1dHRvbkksIEJhYnlsb25JbWFnZUksIEJhYnlsb25UZXh0SW5mb0kgfSBmcm9tICcuLi8uLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGJ1aWxkRmlsdGVyT3B0aW9ucywgZmlsdGVyZWRJdGVtcywgZ2V0SXRlbUJyYW5kIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMvZmlsdGVyLnV0aWxzJztcbmltcG9ydCB7IEJhYnlsb25MaW5rVHlwZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RpcmVjdGl2ZXMvbGluay10eXBlL2xpbmstdHlwZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQmFieWxvbkN1cnJlbmN5UGlwZSB9IGZyb20gJy4uLy4uLy4uLy4uL3BpcGVzL2JhYnlsb24tY3VycmVuY3kucGlwZSc7XG5pbXBvcnQgeyBnZXRGaXJzdEltYWdlQnlUYWdGcm9tTXVsdGltZWRpYVJhdyB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzL211dGltZWRpYS51dGlscyc7XG5cbmltcG9ydCB7IE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgT25Jbml0LCBPbkRlc3Ryb3ksIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJhYnlsb25HbG9iYWxJdGVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcy9iYWJ5bG9uLWdsb2JhbC1pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBnZXRGaXJzdEltYWdlQnlUYWdGcm9tSW1hZ2VzIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMvbXV0aW1lZGlhLnV0aWxzJztcbmltcG9ydCB7IG5vcm1hbGl6ZUdsb2JhbEl0ZW1zIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMvbm9ybWFsaXplLWl0ZW1zLnV0aWxzJztcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xpcy1jMy1pbWctdHh0LWN0YScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgQmFieWxvbkxpbmtUeXBlRGlyZWN0aXZlLFxuICAgICAgICBCYWJ5bG9uQ3VycmVuY3lQaXBlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9saXMtYzMtaW1nLXR4dC1jdGEuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9saXMtYzMtaW1nLXR4dC1jdGEuY29tcG9uZW50LnNjc3MnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkLFxufSlcbmV4cG9ydCBjbGFzcyBMaXNDM0ltZ1R4dEN0YUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIHRleHRzPzogQmFieWxvblRleHRJbmZvSTtcbiAgICBASW5wdXQoKSBpdGVtcz86IEJhYnlsb25HbG9iYWxJdGVtW107XG4gICAgQElucHV0KCkgbGlua3M/OiBCYWJ5bG9uQnV0dG9uSVtdO1xuICAgIEBJbnB1dCgpIGFkZGl0aW9uYWwxTGlrZU1hcmNhPzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHNob3dDbGVhbkZpbHRlcnM6IGJvb2xlYW4gPSB0cnVlO1xuICAgIEBJbnB1dCgpIHNob3dGaWx0ZXJzOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIHRhZ05hbWU6IHN0cmluZyA9ICdMaXNDM0ltZ1R4dEN0YSc7XG5cbiAgICBzZWxlY3RlZEhvdGVsVHlwZTogc3RyaW5nID0gJyc7XG4gICAgc2VsZWN0ZWREZXN0aW5hdGlvbjogc3RyaW5nID0gJyc7XG4gICAgc2VsZWN0ZWRCcmFuZDogc3RyaW5nID0gJyc7XG5cbiAgICBob3RlbFR5cGVPcHRpb25zOiBzdHJpbmdbXSA9IFtdO1xuICAgIGRlc3RpbmF0aW9uT3B0aW9uczogc3RyaW5nW10gPSBbXTtcbiAgICBicmFuZE9wdGlvbnM6IHN0cmluZ1tdID0gW107XG5cbiAgICBmaWx0ZXJMYWJlbFRvU2x1ZyA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG4gICAgZGVzdGluYXRpb25MYWJlbFRvU2x1ZyA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG4gICAgYnJhbmRMYWJlbFRvU2x1ZyA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG5cbiAgICBwcml2YXRlIHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgICBwcml2YXRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgcHJpdmF0ZSBxcFN1Yj86IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIHBlbmRpbmdEZXN0aW5hdGlvbj86IHN0cmluZztcblxuICAgIC8vIEl0ZW1zIGZpbHRyYWRvcyBzaW4gbm9ybWFsaXphciAodXNhZG9zIHBhcmEgbMOzZ2ljYSlcbiAgICBwcml2YXRlIF9maWx0ZXJlZEl0ZW1zUmF3OiBCYWJ5bG9uR2xvYmFsSXRlbVtdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBEZXZ1ZWx2ZSBsYXMgaW3DoWdlbmVzIHNpbmNyb25pemFkYXMgY29uIGZpbHRlcmVkSXRlbXMsIGV2aXRhbmRvIGluY29uZ3J1ZW5jaWFzLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaW1hZ2VzVG9TaG93KCk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRJdGVtcy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRnJvbU11bHRpbWVkaWEgPSB0aGlzLmdldEZpcnN0SW1hZ2VCeVRhZyhcbiAgICAgICAgICAgICAgICB0aGlzLnRhZ05hbWUsXG4gICAgICAgICAgICAgICAgaXRlbT8ubXVsdGltZWRpYT8uaW1hZ2VuZXMgPz8gW11cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEZyb21JbWFnZXMgPSB0aGlzLmdldEZpcnN0SW1hZ2VCeVRhZyhcbiAgICAgICAgICAgICAgICB0aGlzLnRhZ05hbWUsXG4gICAgICAgICAgICAgICAgaXRlbT8uaW1hZ2VzID8/IFtdXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHNlbGVjdGVkRnJvbU11bHRpbWVkaWEgPz8gc2VsZWN0ZWRGcm9tSW1hZ2VzID8/XG4gICAgICAgICAgICAgICAgZ2V0Rmlyc3RJbWFnZUJ5VGFnRnJvbU11bHRpbWVkaWFSYXcoaXRlbT8ubXVsdGltZWRpYSwgdGhpcy50YWdOYW1lKSA/P1xuICAgICAgICAgICAgICAgIGl0ZW0/Lm11bHRpbWVkaWE/LmltYWdlbmVzPy5bMF0gPz9cbiAgICAgICAgICAgICAgICBpdGVtPy5pbWFnZXM/LlswXSA/P1xuICAgICAgICAgICAgICAgIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaW5kQW5kU2VsZWN0RGVzdGluYXRpb24oZGVzdGluYXRpb25OYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZE5hbWUgPSBkZXN0aW5hdGlvbk5hbWUudG9Mb3dlckNhc2UoKS50cmltKCk7XG5cbiAgICAgICAgLy8gUHJpbWVybyBidXNjYXIgZW4gZWwgYXJyYXkgZGUgc3RyaW5ncyBkZSBkZXN0aW5vc1xuICAgICAgICBsZXQgZm91bmQgPSB0aGlzLmRlc3RpbmF0aW9uT3B0aW9ucz8uZmluZChcbiAgICAgICAgICAgIChkZXN0aW5hdGlvbikgPT4gZGVzdGluYXRpb24udG9Mb3dlckNhc2UoKS50cmltKCkgPT09IG5vcm1hbGl6ZWROYW1lXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGVzdGluYXRpb24gPSBmb3VuZDtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRmlsdGVyZWRJdGVtcygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2kgbm8gZW5jdWVudHJhIGVuIGRlc3RpbmF0aW9uT3B0aW9ucywgYnVzY2FyIGVuIGxvcyBpdGVtcyBwb3IgY291bnRyeVxuICAgICAgICBjb25zdCBpdGVtV2l0aENvdW50cnkgPSB0aGlzLml0ZW1zPy5maW5kKFxuICAgICAgICAgICAgKGl0ZW0pID0+IGl0ZW0uY291bnRyeT8udG9Mb3dlckNhc2UoKS50cmltKCkgPT09IG5vcm1hbGl6ZWROYW1lXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKGl0ZW1XaXRoQ291bnRyeSAmJiBpdGVtV2l0aENvdW50cnkuY291bnRyeSkge1xuICAgICAgICAgICAgLy8gRmlsdHJhciBkaXJlY3RhbWVudGUgcG9yIGNvdW50cnkgYXVucXVlIG5vIGV4aXN0YSBlbiBkZXN0aW5hdGlvbk9wdGlvbnNcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREZXN0aW5hdGlvbiA9IGl0ZW1XaXRoQ291bnRyeS5jb3VudHJ5O1xuICAgICAgICAgICAgdGhpcy51cGRhdGVGaWx0ZXJlZEl0ZW1zKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXZ1ZWx2ZSBlbCBsYWJlbCBkZWwgYm90w7NuIGVuIGxhIHBvc2ljacOzbiBpbmRleCwgYnVzY2FuZG8gZW4gaXRlbS5idXR0b25zW2luZGV4XS5sYWJlbFxuICAgICAqIHkgc2kgbm8gZXhpc3RlLCBlbiBpdGVtLm11bHRpbWVkaWEuaW1hZ2VuZXNbMF0uYnV0dG9uc1tpbmRleF0ubGFiZWxcbiAgICAgKi9cbiAgICBnZXRCdXR0b25MYWJlbChpdGVtOiBCYWJ5bG9uR2xvYmFsSXRlbSwgaW5kZXg6IG51bWJlcik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChpdGVtPy5idXR0b25zPy5baW5kZXhdPy5sYWJlbCkge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW0uYnV0dG9uc1tpbmRleF0ubGFiZWw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGl0ZW0/Lm11bHRpbWVkaWE/LmltYWdlbmVzPy5bMF0/LmJ1dHRvbnM/LltpbmRleF0/LmxhYmVsO1xuICAgIH1cblxuICAgIGdldEJ1dHRvblVybChpdGVtOiBCYWJ5bG9uR2xvYmFsSXRlbSwgaW5kZXg6IG51bWJlcik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmJ1aWxkTWVudVVybChpdGVtPy5tdWx0aW1lZGlhPy5pbWFnZW5lcz8uWzBdPy5idXR0b25zPy5baW5kZXhdKSB8fFxuICAgICAgICAgICAgdGhpcy5idWlsZE1lbnVVcmwoaXRlbT8uYnV0dG9ucz8uW2luZGV4XSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRCdXR0b25MaW5rVHlwZShpdGVtOiBCYWJ5bG9uR2xvYmFsSXRlbSwgaW5kZXg6IG51bWJlcik6IGFueSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgaXRlbT8ubXVsdGltZWRpYT8uaW1hZ2VuZXM/LlswXT8uYnV0dG9ucz8uW2luZGV4XT8ubGlua1R5cGUgfHxcbiAgICAgICAgICAgIGl0ZW0/LmJ1dHRvbnM/LltpbmRleF0/LmxpbmtUeXBlXG5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBidWlsZE1lbnVVcmwoaXRlbTogQmFieWxvbkJ1dHRvbkkgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgICAgaWYgKCFpdGVtPy51cmwpIHJldHVybiAnJztcblxuICAgICAgY29uc3QgYmFzZVVybCA9IGl0ZW0udXJsLnJlcGxhY2UoL1xcLyskLywgJycpO1xuICAgICAgY29uc3QgZGVzdGluYXRpb24gPSAoaXRlbS52YXJzID8/ICcnKS50b1N0cmluZygpLnRyaW0oKTtcblxuICAgICAgaWYgKCFkZXN0aW5hdGlvbikgcmV0dXJuIGJhc2VVcmw7XG5cbiAgICAgIGNvbnN0IHNsdWcgPSBVdGlscy50b1NsdWcoZGVzdGluYXRpb24pO1xuICAgICAgaWYgKCFzbHVnKSByZXR1cm4gYmFzZVVybDtcblxuICAgICAgcmV0dXJuIGAke2Jhc2VVcmx9P2Rlc3RpbmF0aW9ucz0ke2Rlc3RpbmF0aW9ufWA7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlc1snaXRlbXMnXSkge1xuICAgICAgICAgICAgY29uc3Qgb3B0cyA9IGJ1aWxkRmlsdGVyT3B0aW9ucyhcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zID8/IFtdLFxuICAgICAgICAgICAgICAgIHRoaXMuYWRkaXRpb25hbDFMaWtlTWFyY2EgPz8gZmFsc2VcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLmhvdGVsVHlwZU9wdGlvbnMgPSBvcHRzLmhvdGVsVHlwZU9wdGlvbnM7XG4gICAgICAgICAgICB0aGlzLmRlc3RpbmF0aW9uT3B0aW9ucyA9IG9wdHMuZGVzdGluYXRpb25PcHRpb25zO1xuXG4gICAgICAgICAgICAvLyBSZWxsZW5hciBicmFuZE9wdGlvbnMgdXNhbmRvIGdldEl0ZW1CcmFuZCBwYXJhIGNvaGVyZW5jaWFcbiAgICAgICAgICAgIGNvbnN0IGJyYW5kcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgICAgICAgICAgKHRoaXMuaXRlbXMgPz8gW10pLmZvckVhY2goKGl0KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYnJhbmQgPSBnZXRJdGVtQnJhbmQoXG4gICAgICAgICAgICAgICAgICAgIGl0LFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZGl0aW9uYWwxTGlrZU1hcmNhID8/IGZhbHNlXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAoYnJhbmQpIGJyYW5kcy5hZGQoYnJhbmQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmJyYW5kT3B0aW9ucyA9IEFycmF5LmZyb20oYnJhbmRzKTtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyTGFiZWxUb1NsdWcgPSBvcHRzLmZpbHRlckxhYmVsVG9TbHVnO1xuICAgICAgICAgICAgdGhpcy5kZXN0aW5hdGlvbkxhYmVsVG9TbHVnID0gb3B0cy5kZXN0aW5hdGlvbkxhYmVsVG9TbHVnO1xuICAgICAgICAgICAgdGhpcy5icmFuZExhYmVsVG9TbHVnID0gb3B0cy5icmFuZExhYmVsVG9TbHVnO1xuXG4gICAgICAgICAgICAvLyBTb2xvIHJlc2V0ZWFyIHNpIG5vIGhheSB1biBkZXN0aW5vIHBlbmRpZW50ZSBkZSBsYSBVUkxcbiAgICAgICAgICAgIGlmICghdGhpcy5wZW5kaW5nRGVzdGluYXRpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSG90ZWxUeXBlID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERlc3RpbmF0aW9uID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEJyYW5kID0gJyc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIFNpIGhheSB1biBkZXN0aW5vIHBlbmRpZW50ZSBkZSBsYSBVUkwsIGludGVudGEgc2VsZWNjaW9uYXJsbyBhaG9yYVxuICAgICAgICAgICAgICAgIHRoaXMuZmluZEFuZFNlbGVjdERlc3RpbmF0aW9uKHRoaXMucGVuZGluZ0Rlc3RpbmF0aW9uKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gQWN0dWFsaXphciBpdGVtcyBmaWx0cmFkb3NcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRmlsdGVyZWRJdGVtcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIFN1c2NyaWJpcnNlIGEgbG9zIGNhbWJpb3MgZGUgcXVlcnkgcGFyYW1zXG4gICAgICAgIHRoaXMucXBTdWIgPSB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1NYXAuc3Vic2NyaWJlKChwYXJhbXMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRlc3RpbmF0aW9uc1BhcmFtID0gcGFyYW1zLmdldCgnZGVzdGluYXRpb25zJyk7XG5cbiAgICAgICAgICAgIGlmIChkZXN0aW5hdGlvbnNQYXJhbSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlY29kZWREZXN0aW5hdGlvbiA9IGRlY29kZVVSSUNvbXBvbmVudChkZXN0aW5hdGlvbnNQYXJhbSk7XG4gICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nRGVzdGluYXRpb24gPSBkZWNvZGVkRGVzdGluYXRpb247XG5cbiAgICAgICAgICAgICAgICAvLyBTaSB5YSB0ZW5lbW9zIGRlc3RpbmF0aW9uT3B0aW9ucywgYnVzY2FyIHkgc2VsZWNjaW9uYXJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kZXN0aW5hdGlvbk9wdGlvbnMgJiYgdGhpcy5kZXN0aW5hdGlvbk9wdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbmRBbmRTZWxlY3REZXN0aW5hdGlvbihkZWNvZGVkRGVzdGluYXRpb24pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnFwU3ViPy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERldnVlbHZlIHVuIGFycmF5IG5vcm1hbGl6YWRvIGRlIEJhYnlsb25HbG9iYWxJdGVtXG4gICAgICovXG4gICAgZ2V0IG5vcm1hbGl6ZWRJdGVtcygpOiBCYWJ5bG9uR2xvYmFsSXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZUdsb2JhbEl0ZW1zKHRoaXMuaXRlbXMpO1xuICAgIH1cblxuICAgIGdldEZpcnN0SW1hZ2VCeVRhZyh0YWdOYW1lOiBzdHJpbmcsIGltYWdlbmVzOiBCYWJ5bG9uSW1hZ2VJW10pIHtcbiAgICAgICAgcmV0dXJuIGdldEZpcnN0SW1hZ2VCeVRhZ0Zyb21JbWFnZXMoaW1hZ2VuZXMsIHRhZ05hbWUpO1xuICAgIH1cblxuICAgIGdldCBmaWx0ZXJlZEl0ZW1zKCkge1xuICAgICAgICAvLyBEZXZvbHZlciBsb3MgaXRlbXMgZmlsdHJhZG9zIG5vcm1hbGl6YWRvc1xuICAgICAgICByZXR1cm4gbm9ybWFsaXplR2xvYmFsSXRlbXModGhpcy5fZmlsdGVyZWRJdGVtc1Jhdyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVGaWx0ZXJlZEl0ZW1zKCk6IHZvaWQge1xuICAgICAgICBsZXQgaXRlbXMgPSBmaWx0ZXJlZEl0ZW1zKHtcbiAgICAgICAgICAgIGl0ZW1zOiB0aGlzLml0ZW1zID8/IFtdLFxuICAgICAgICAgICAgc2VsZWN0ZWRIb3RlbFR5cGU6IHRoaXMuc2VsZWN0ZWRIb3RlbFR5cGUsXG4gICAgICAgICAgICBzZWxlY3RlZERlc3RpbmF0aW9uOiB0aGlzLnNlbGVjdGVkRGVzdGluYXRpb24sXG4gICAgICAgICAgICBzZWxlY3RlZEJyYW5kOiB0aGlzLnNlbGVjdGVkQnJhbmQsXG4gICAgICAgICAgICBhZGRpdGlvbmFsMUxpa2VNYXJjYTogdGhpcy5hZGRpdGlvbmFsMUxpa2VNYXJjYSA/PyBmYWxzZSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gU2kgaGF5IGRlc3RpbmF0aW9uU2VsZWN0ZWQgeSBubyB0aWVuZSByZXN1bHRhZG9zLCBpbnRlbnRhciBmaWx0cmFyIHBvciBjb3VudHJ5XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkRGVzdGluYXRpb24gJiYgaXRlbXMubGVuZ3RoID09PSAwICYmIHRoaXMuaXRlbXMpIHtcbiAgICAgICAgICAgIGl0ZW1zID0gdGhpcy5pdGVtcy5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBob3RlbFR5cGVPayA9XG4gICAgICAgICAgICAgICAgICAgICF0aGlzLnNlbGVjdGVkSG90ZWxUeXBlIHx8XG4gICAgICAgICAgICAgICAgICAgIChpdGVtIGFzIGFueSk/LmhvdGVsdHlwZSA9PT0gdGhpcy5zZWxlY3RlZEhvdGVsVHlwZTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGRlc3RpbmF0aW9uT2sgPVxuICAgICAgICAgICAgICAgICAgICAhdGhpcy5zZWxlY3RlZERlc3RpbmF0aW9uIHx8XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uY291bnRyeT8udG9Mb3dlckNhc2UoKS50cmltKCkgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGVzdGluYXRpb24udG9Mb3dlckNhc2UoKS50cmltKCk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBicmFuZE9rID1cbiAgICAgICAgICAgICAgICAgICAgIXRoaXMuc2VsZWN0ZWRCcmFuZCB8fFxuICAgICAgICAgICAgICAgICAgICBVdGlscy50b1NsdWcoZ2V0SXRlbUJyYW5kKGl0ZW0sIHRoaXMuYWRkaXRpb25hbDFMaWtlTWFyY2EgPz8gZmFsc2UpKSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxzLnRvU2x1Zyh0aGlzLnNlbGVjdGVkQnJhbmQpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdGVsVHlwZU9rICYmIGRlc3RpbmF0aW9uT2sgJiYgYnJhbmRPaztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZmlsdGVyZWRJdGVtc1JhdyA9IGl0ZW1zO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBnZXQgaGFzQWN0aXZlRmlsdGVycygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRIb3RlbFR5cGUsXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGVzdGluYXRpb24sXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkQnJhbmQsXG4gICAgICAgIF0uc29tZSgodikgPT4gdiAmJiB2ICE9PSAnJyk7XG4gICAgfVxuXG4gICAgb25Ib3RlbFR5cGVDaGFuZ2UodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSG90ZWxUeXBlID0gdmFsdWUgPz8gJyc7XG4gICAgICAgIHRoaXMudXBkYXRlRmlsdGVyZWRJdGVtcygpO1xuICAgIH1cblxuICAgIG9uRGVzdGluYXRpb25DaGFuZ2UodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkRGVzdGluYXRpb24gPSB2YWx1ZSA/PyAnJztcbiAgICAgICAgdGhpcy51cGRhdGVGaWx0ZXJlZEl0ZW1zKCk7XG4gICAgfVxuXG4gICAgb25CcmFuZENoYW5nZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRCcmFuZCA9IHZhbHVlID8/ICcnO1xuICAgICAgICB0aGlzLnVwZGF0ZUZpbHRlcmVkSXRlbXMoKTtcbiAgICB9XG5cbiAgICBjbGVhckZpbHRlcnMoKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRIb3RlbFR5cGUgPSAnJztcbiAgICAgICAgdGhpcy5zZWxlY3RlZERlc3RpbmF0aW9uID0gJyc7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRCcmFuZCA9ICcnO1xuICAgICAgICB0aGlzLnVwZGF0ZUZpbHRlcmVkSXRlbXMoKTtcbiAgICB9XG5cbiAgICB0cmFja0ZpbHRlcihpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cbiAgICB0cmFja09wdGlvbihpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cbiAgICB0cmFja09mZmVyKGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgfVxufVxuIiwiICA8ZGl2IGNsYXNzPVwicGFnZS1jb250YWluZXIgZmlyc3QtbW9kdWxlIG9mZmVycy1wYWdlXCI+XG4gICAgPGRpdiBjbGFzcz1cImJpZy13cmFwcGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwid3JhcC1wYWdlLWNvbnRhaW5lclwiPlxuICAgICAgICA8aGVhZGVyIGNsYXNzPVwiZ2xvYmFsLWhlYWRlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwLWdsb2JhbC1oZWFkZXIgdmlzaWJsZVwiPlxuICAgICAgICAgICAgQGlmICh0ZXh0cz8udGl0bGUpIHtcbiAgICAgICAgICAgICAgPGgxIGNsYXNzPVwiZ2xvYmFsLWhlYWRlci10aXRsZVwiPnt7IHRleHRzPy50aXRsZSB9fTwvaDE+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAgQGlmICh0ZXh0cz8uc3VidGl0bGUpIHtcbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJnbG9iYWwtaGVhZGVyLXN1YnRpdGxlXCIgW2lubmVySFRNTF09XCJ0ZXh0cz8uc3VidGl0bGVcIj48L3A+XG4gICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9mZmVycy1pbnB1dHNcIiAqbmdJZj1cInNob3dGaWx0ZXJzXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnbG9iYWwtaGVhZGVyLWZvcm1cIj5cbiAgICAgICAgICAgICAgICA8IS0tZmlsdGVycy0tPlxuICAgICAgICAgICAgICAgIDwhLS0gQnJhbmQgZmlsdGVyIC0tPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1mb3JtLWVsZW1lbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWVsZW1lbnQgc2VsZWN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXAtaW5wdXQtZWxlbWVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICh0ZXh0cz8ubWFyY2EpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbnB1dC1lbGVtZW50LXRleHRcIj57eyB0ZXh0cz8ubWFyY2EgPz8gJ21hcmNhJyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZWxlbWVudC1maWVsZCBqcy1maWx0ZXItb2ZmZXJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkQnJhbmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQnJhbmRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+e3sgdGV4dHM/Lm1hcmNhID8/ICdtYXJjYScgfX08L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChvcHQgb2YgYnJhbmRPcHRpb25zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIm9wdFwiPnt7IG9wdCB9fTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8IS0tIHNlcnZpY2VzLS0+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItZm9ybS1lbGVtZW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWVsZW1lbnQgc2VsZWN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcC1pbnB1dC1lbGVtZW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAodGV4dHM/LmRlc3RpbmF0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5wdXQtZWxlbWVudC10ZXh0XCI+e3sgdGV4dHM/LmRlc3RpbmF0aW9ucyA/PyAnZGVzdGlub3MnIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImlucHV0LWVsZW1lbnQtZmllbGQganMtZmlsdGVyLW9mZmVyc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZERlc3RpbmF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkRlc3RpbmF0aW9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPnt7IHRleHRzPy5kZXN0aW5hdGlvbnMgPz8gJ2Rlc3Rpbm9zJyB9fTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKG9wdCBvZiBkZXN0aW5hdGlvbk9wdGlvbnM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwib3B0XCI+e3sgb3B0IH19PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPCEtLWVuZCBmaWx0ZXJzLS0+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvaGVhZGVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8c2VjdGlvbiBjbGFzcz1cInByb21vLW1vZHVsZSBvZmZlcnMtcGFnZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJiaWctd3JhcHBlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cIndyYXAtcHJvbW8tbW9kdWxlIG1vZHVsZS1zcGFjZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInByb21vLW1vZHVsZS1jb250ZW50XCI+XG4gICAgICAgICAgQGlmIChmaWx0ZXJlZEl0ZW1zPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgZmlsdGVyZWRJdGVtczsgdHJhY2sgdHJhY2tPZmZlcigkaW5kZXgpKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9tby1tb2R1bGUtZWxlbWVudFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwLXByb21vLWVsZW1lbnRcIj5cbiAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIFtocmVmXT1cImdldEJ1dHRvblVybChpdGVtLCAxKVwiXG4gICAgICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJnZXRCdXR0b25MaW5rVHlwZShpdGVtLCAxKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb21vLWVsZW1lbnQtbWVkaWEganMtc2VjdGlvbi1hcnJvd3Mtem9uZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaW1hZ2VzVG9TaG93WyRpbmRleF0/LmltZz8uc3JjKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmlndXJlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvbW8tZWxlbWVudC1tZWRpYV9pbWcgcmVzcG9uc2l2ZS1yZXNpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiaW1nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpbWFnZXNUb1Nob3dbJGluZGV4XT8uaW1nPy5hbHQgPz8gJ2l0ZW1JbWFnZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWZpbGVuYW1lXT1cImltYWdlc1RvU2hvd1skaW5kZXhdPy5pbWc/LmFsdCA/PyAnaXRlbUZpbGVOYW1lJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWltYWdlXT1cIid1cmwoJyArIGltYWdlc1RvU2hvd1skaW5kZXhdPy5pbWc/LnNyYyArICcpJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9maWd1cmU+XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb21vLWVsZW1lbnQtaW5mb1wiPlxuICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbT8udGV4dHM/LmFkZGl0aW9uYWwzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInByb21vLWVsZW1lbnQtaW5mb190YWdcIj57eyBpdGVtPy50ZXh0cz8uYWRkaXRpb25hbDMgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIGl0ZW0/LnRleHRzPy50aXRsZSB8fCBpdGVtPy50ZXh0cz8ubmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwcm9tby1lbGVtZW50LWluZm9fdGl0bGVcIiBbaW5uZXJIVE1MXT1cIml0ZW0/LnRleHRzPy50aXRsZSB8fCBpdGVtPy50ZXh0cz8ubmFtZVwiPjwvcD5cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgQGlmICggaXRlbT8udGV4dHM/LmFkZGl0aW9uYWwyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInByb21vLWVsZW1lbnQtaW5mb19zdWJ0aXRsZVwiIFtpbm5lckhUTUxdPVwiaXRlbT8udGV4dHM/LmFkZGl0aW9uYWwyXCI+PC9wPlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvbW8tZWxlbWVudC1mb290XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9tby1lbGVtZW50LXByaWNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgQGlmICgoaXRlbT8ucHJpY2UgfHwgaXRlbT8uZGlzY291bnQpICYmIGl0ZW0/LnRleHRzPy5hZGRpdGlvbmFsMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwcm9tby1lbGVtZW50LXByaWNlX3NpbmNlXCIgPnt7IGl0ZW0/LnRleHRzPy5hZGRpdGlvbmFsMSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgQGlmIChpdGVtPy5wcmljZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwcm9tby1lbGVtZW50LXByaWNlX251bVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtPy5wcmljZSB9fTxzbWFsbD57eyAoaXRlbT8uY3VycmVuY3kgfHwgJ0VVUicpIHwgY3VycmVuY3lTeW1ib2wgfX08L3NtYWxsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uZGlzY291bnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHJvbW8tZWxlbWVudC1wcmljZV9udW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbT8uZGlzY291bnQgfX08c21hbGw+ICU8L3NtYWxsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9tby1lbGVtZW50LWJ0bnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICBAaWYgKGdldEJ1dHRvbkxhYmVsKGl0ZW0sIDApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1jb3JwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJnZXRCdXR0b25VcmwoaXRlbSwgMClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwiZ2V0QnV0dG9uTGlua1R5cGUoaXRlbSwgMClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1jb3JwLXRleHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0QnV0dG9uTGFiZWwoaXRlbSwgMCkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKGdldEJ1dHRvbkxhYmVsKGl0ZW0sIDEpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwiZ2V0QnV0dG9uVXJsKGl0ZW0sIDEpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtUeXBlXT1cImdldEJ1dHRvbkxpbmtUeXBlKGl0ZW0sIDEpXCIgY2xhc3M9XCJidG4tbGlua2VyIHRvcmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiYnRuLWxpbmtlci10ZXh0XCIgW2lubmVySFRNTF09XCJnZXRCdXR0b25MYWJlbChpdGVtLCAxKVwiPjwvcD5cbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm9mZmVycy1tZXNzYWdlXCIgW2NsYXNzLnNob3ddPVwiZmlsdGVyZWRJdGVtcz8ubGVuZ3RoXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXAtbWVzc2FnZVwiPlxuICAgICAgICAgICAgQGlmICh0ZXh0cz8ubm90Rm91bmQpIHtcbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtZXNzYWdlLXRleHRcIiBbaW5uZXJIVE1MXT1cInRleHRzPy5ub3RGb3VuZFwiPjwvcD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZW1wLXRyYXNoXCI+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9zZWN0aW9uPlxuIl19
|
|
@@ -6,12 +6,14 @@ import { BabylonLinkTypeDirective } from '../../../../directives/link-type/link-
|
|
|
6
6
|
import { BabylonSwiperCssLoaderDirective } from '../../../../directives/babylon-sliders/babylon-swiper-css-loader.directive';
|
|
7
7
|
import { SITE_CONFIG_SERVICE_TOKEN } from '../../../../services/mapper/mapper.service.token';
|
|
8
8
|
import sliderSettings from './slider-settings.json';
|
|
9
|
+
import { getFirstImageByTagFromImages } from '../../../../utils/mutimedia.utils';
|
|
9
10
|
import * as i0 from "@angular/core";
|
|
10
11
|
export class SliC3ImgTxtComponent {
|
|
11
12
|
constructor(ngZone) {
|
|
12
13
|
this.ngZone = ngZone;
|
|
13
14
|
this.siteSvc = inject(SITE_CONFIG_SERVICE_TOKEN);
|
|
14
15
|
this.sliderInitialized = false;
|
|
16
|
+
this.tagName = 'SliC3ImgTxt';
|
|
15
17
|
this.sliderConfig = sliderSettings;
|
|
16
18
|
}
|
|
17
19
|
get normalizedItems() {
|
|
@@ -67,6 +69,15 @@ export class SliC3ImgTxtComponent {
|
|
|
67
69
|
return index;
|
|
68
70
|
}
|
|
69
71
|
resolveImage(item) {
|
|
72
|
+
const taggedMappedImage = getFirstImageByTagFromImages(item?.multimedia?.imagenes, this.tagName) ??
|
|
73
|
+
item?.multimedia?.imagenes?.[0];
|
|
74
|
+
const mappedTaggedSrc = taggedMappedImage?.img?.src;
|
|
75
|
+
if (mappedTaggedSrc) {
|
|
76
|
+
return {
|
|
77
|
+
src: this.normalizeImageUrl(mappedTaggedSrc),
|
|
78
|
+
alt: taggedMappedImage?.img?.alt ?? item?.texts?.title ?? item?.title ?? item?.label
|
|
79
|
+
};
|
|
80
|
+
}
|
|
70
81
|
const direct = item?.img?.src;
|
|
71
82
|
if (direct) {
|
|
72
83
|
return {
|
|
@@ -84,7 +95,9 @@ export class SliC3ImgTxtComponent {
|
|
|
84
95
|
item?.label
|
|
85
96
|
};
|
|
86
97
|
}
|
|
87
|
-
const
|
|
98
|
+
const rawImages = item?.multimedia;
|
|
99
|
+
const raw = getFirstImageByTagFromImages(rawImages, this.tagName) ??
|
|
100
|
+
rawImages?.[0];
|
|
88
101
|
const rawSrc = raw?.path?.webp ??
|
|
89
102
|
raw?.path?.original ??
|
|
90
103
|
raw?.thumbnails?.[1366]?.webp ??
|
|
@@ -204,4 +217,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
204
217
|
type: HostListener,
|
|
205
218
|
args: ['window:resize']
|
|
206
219
|
}] } });
|
|
207
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpLWMzLWltZy10eHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFieWxvbi9zcmMvbGliL2NvbXBvbmVudHMvZXh0ZXJuYWwvY29yZS9zbGktYzMtaW1nLXR4dC9zbGktYzMtaW1nLXR4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9leHRlcm5hbC9jb3JlL3NsaS1jMy1pbWctdHh0L3NsaS1jMy1pbWctdHh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUtMLFNBQVMsRUFDVCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzlDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDRFQUE0RSxDQUFDO0FBRzdILE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzdGLE9BQU8sY0FBYyxNQUFNLHdCQUF3QixDQUFDOztBQVdwRCxNQUFNLE9BQU8sb0JBQW9CO0lBZS9CLFlBQTZCLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBZDFCLFlBQU8sR0FBRyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUNyRCxzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFXekIsaUJBQVksR0FBRyxjQUFjLENBQUM7SUFFTyxDQUFD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QUksV0FDUCxDQUFDLFlBQVksRUFBRSwrQkFBK0IsRUFBRSx3QkFBd0IsQ0FBQyxpQkFHbkUsaUJBQWlCLENBQUMsUUFBUTsyRUFPaEMsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUV5QyxhQUFhO3NCQUEzRCxTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ0QsVUFBVTtzQkFBckQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNFLFVBQVU7c0JBQXJELFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkE4RDFDLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IFN3aXBlciBmcm9tICdzd2lwZXInO1xuaW1wb3J0IHsgQXV0b3BsYXksIE5hdmlnYXRpb24gfSBmcm9tICdzd2lwZXInO1xuaW1wb3J0IHsgQmFieWxvbkxpbmtUeXBlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGlyZWN0aXZlcy9saW5rLXR5cGUvbGluay10eXBlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCYWJ5bG9uU3dpcGVyQ3NzTG9hZGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGlyZWN0aXZlcy9iYWJ5bG9uLXNsaWRlcnMvYmFieWxvbi1zd2lwZXItY3NzLWxvYWRlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQmFieWxvbkl0ZW1JLCBCYWJ5bG9uVGV4dEluZm9JIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBCYWJ5bG9uR2xvYmFsRXhwZXJpZW5jZSB9IGZyb20gJy4uLy4uLy4uLy4uL2ludGVyZmFjZXMvYmFieWxvbi1nbG9iYWwtZXhwZXJpZW5jZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU0lURV9DT05GSUdfU0VSVklDRV9UT0tFTiB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL21hcHBlci9tYXBwZXIuc2VydmljZS50b2tlbic7XG5pbXBvcnQgc2xpZGVyU2V0dGluZ3MgZnJvbSAnLi9zbGlkZXItc2V0dGluZ3MuanNvbic7XG5pbXBvcnQgeyBTbGlDM0ltZ1R4dFNsaWRlSXRlbSB9IGZyb20gJy4vc2xpLWMzLWltZy10eHQuaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NsaS1jMy1pbWctdHh0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQmFieWxvblN3aXBlckNzc0xvYWRlckRpcmVjdGl2ZSwgQmFieWxvbkxpbmtUeXBlRGlyZWN0aXZlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3NsaS1jMy1pbWctdHh0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3NsaS1jMy1pbWctdHh0LmNvbXBvbmVudC5zY3NzJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWRcbn0pXG5leHBvcnQgY2xhc3MgU2xpQzNJbWdUeHRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2l0ZVN2YyA9IGluamVjdChTSVRFX0NPTkZJR19TRVJWSUNFX1RPS0VOKTtcbiAgcHJpdmF0ZSBzbGlkZXJJbml0aWFsaXplZCA9IGZhbHNlO1xuICBwcml2YXRlIHN3aXBlckluc3RhbmNlPzogU3dpcGVyO1xuXG4gIEBJbnB1dCgpIHRleHRzPzogQmFieWxvblRleHRJbmZvSTtcbiAgQElucHV0KCkgaXRlbXM/OiBCYWJ5bG9uSXRlbUlbXTtcbiAgQElucHV0KCkgZXhwZXJpZW5jZXM/OiBCYWJ5bG9uR2xvYmFsRXhwZXJpZW5jZVtdO1xuXG4gIEBWaWV3Q2hpbGQoJ3NlY3Rpb25TbGlkZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgc2VjdGlvblNsaWRlcj86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCdzbGlkZXJQcmV2JywgeyBzdGF0aWM6IGZhbHNlIH0pIHNsaWRlclByZXY/OiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnc2xpZGVyTmV4dCcsIHsgc3RhdGljOiBmYWxzZSB9KSBzbGlkZXJOZXh0PzogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG5cbiAgcmVhZG9ubHkgc2xpZGVyQ29uZmlnID0gc2xpZGVyU2V0dGluZ3M7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZSkge31cblxuICBnZXQgbm9ybWFsaXplZEl0ZW1zKCk6IFNsaUMzSW1nVHh0U2xpZGVJdGVtW10ge1xuICAgIGNvbnN0IHNvdXJjZSA9IHRoaXMuaXRlbXM/Lmxlbmd0aCA/IHRoaXMuaXRlbXMgOiAodGhpcy5leHBlcmllbmNlcyBhcyBCYWJ5bG9uSXRlbUlbXSB8IHVuZGVmaW5lZCk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgc291cmNlXG4gICAgICAgID8ubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgY29uc3QgaW1hZ2UgPSB0aGlzLnJlc29sdmVJbWFnZShpdGVtKTtcbiAgICAgICAgICBpZiAoIWltYWdlKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgICAgICAgY29uc3QgdGl0bGUgPVxuICAgICAgICAgICAgaXRlbT8udGV4dHM/LnRpdGxlID8/XG4gICAgICAgICAgICBpdGVtPy50ZXh0cz8ubmFtZSA/P1xuICAgICAgICAgICAgaXRlbT8udGl0bGUgPz9cbiAgICAgICAgICAgIGl0ZW0/LmxhYmVsID8/XG4gICAgICAgICAgICAoaXRlbSBhcyBhbnkpPy5uYW1lSWRlbnRpZmllciA/P1xuICAgICAgICAgICAgJyc7XG5cbiAgICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9XG4gICAgICAgICAgICBpdGVtPy50ZXh0cz8uZGVzY3JpcHRpb24gPz9cbiAgICAgICAgICAgIGl0ZW0/LmRlc2NyaXB0aW9uID8/XG4gICAgICAgICAgICBpdGVtPy50ZXh0ID8/XG4gICAgICAgICAgICAnJztcblxuICAgICAgICAgIGNvbnN0IHByaW1hcnlMaW5rID0gaXRlbT8uYnV0dG9ucz8uWzBdID8/IGl0ZW0/LmxpbmtzPy5bMF07XG4gICAgICAgICAgY29uc3QgaXRlbVVybCA9IChpdGVtIGFzIGFueSk/LnVybDtcblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogKGl0ZW0gYXMgYW55KT8uaWQsXG4gICAgICAgICAgICB0aXRsZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgaW1hZ2UsXG4gICAgICAgICAgICB1cmw6IHByaW1hcnlMaW5rPy51cmwgPz8gaXRlbVVybCA/PyAnIycsXG4gICAgICAgICAgICBsaW5rVHlwZTogcHJpbWFyeUxpbms/LmxpbmtUeXBlLFxuICAgICAgICAgICAgdGFyZ2V0OiBwcmltYXJ5TGluaz8udGFyZ2V0XG4gICAgICAgICAgfTtcbiAgICAgICAgfSlcbiAgICAgICAgPy5maWx0ZXIoQm9vbGVhbikgYXMgU2xpQzNJbWdUeHRTbGlkZUl0ZW1bXVxuICAgICkgPz8gW107XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0U2xpZGVyKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKChjaGFuZ2VzWydpdGVtcyddIHx8IGNoYW5nZXNbJ2V4cGVyaWVuY2VzJ10pICYmIHRoaXMuc2xpZGVySW5pdGlhbGl6ZWQpIHtcbiAgICAgIHRoaXMuZGVzdHJveVNsaWRlcigpO1xuICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4gdGhpcy5pbml0U2xpZGVyKCkpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveVNsaWRlcigpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXG4gIG9uV2luZG93UmVzaXplKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zbGlkZXJJbml0aWFsaXplZCkgcmV0dXJuO1xuXG4gICAgdGhpcy5kZXN0cm95U2xpZGVyKCk7XG4gICAgcXVldWVNaWNyb3Rhc2soKCkgPT4gdGhpcy5pbml0U2xpZGVyKCkpO1xuICB9XG5cbiAgdHJhY2tJdGVtKGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZUltYWdlKGl0ZW06IEJhYnlsb25JdGVtSSk6IHsgc3JjOiBzdHJpbmc7IGFsdD86IHN0cmluZyB9IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBkaXJlY3QgPSBpdGVtPy5pbWc/LnNyYztcbiAgICBpZiAoZGlyZWN0KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzcmM6IHRoaXMubm9ybWFsaXplSW1hZ2VVcmwoZGlyZWN0KSxcbiAgICAgICAgYWx0OiBpdGVtPy5pbWc/LmFsdCA/PyBpdGVtPy50ZXh0cz8udGl0bGUgPz8gaXRlbT8udGl0bGUgPz8gaXRlbT8ubGFiZWxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgZnJvbU1hcHBlZCA9IGl0ZW0/Lm11bHRpbWVkaWE/LmltYWdlbmVzPy5bMF0/LmltZz8uc3JjO1xuICAgIGlmIChmcm9tTWFwcGVkKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzcmM6IHRoaXMubm9ybWFsaXplSW1hZ2VVcmwoZnJvbU1hcHBlZCksXG4gICAgICAgIGFsdDpcbiAgICAgICAgICBpdGVtPy5tdWx0aW1lZGlhPy5pbWFnZW5lcz8uWzBdPy5pbWc/LmFsdCA/P1xuICAgICAgICAgIGl0ZW0/LnRleHRzPy50aXRsZSA/P1xuICAgICAgICAgIGl0ZW0/LnRpdGxlID8/XG4gICAgICAgICAgaXRlbT8ubGFiZWxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgcmF3ID0gKGl0ZW0gYXMgYW55KT8ubXVsdGltZWRpYT8uWzBdO1xuICAgIGNvbnN0IHJhd1NyYyA9XG4gICAgICByYXc/LnBhdGg/LndlYnAgPz9cbiAgICAgIHJhdz8ucGF0aD8ub3JpZ2luYWwgPz9cbiAgICAgIHJhdz8udGh1bWJuYWlscz8uWzEzNjZdPy53ZWJwID8/XG4gICAgICByYXc/LnRodW1ibmFpbHM/LlsxMjgwXT8ud2VicCA/P1xuICAgICAgcmF3Py50aHVtYm5haWxzPy5bMTAyNF0/LndlYnAgPz9cbiAgICAgIHJhdz8udGh1bWJuYWlscz8uWzc2OF0/LndlYnAgPz9cbiAgICAgIHJhdz8udGh1bWJuYWlscz8uWzU0MF0/LndlYnAgPz9cbiAgICAgIHJhdz8udGh1bWJuYWlscz8uWzM3NV0/LndlYnAgPz9cbiAgICAgIHJhdz8udGh1bWJuYWlscz8uWzEzNjZdPy5vcmlnaW5hbCA/P1xuICAgICAgcmF3Py50aHVtYm5haWxzPy5bMTI4MF0/Lm9yaWdpbmFsID8/XG4gICAgICByYXc/LnRodW1ibmFpbHM/LlsxMDI0XT8ub3JpZ2luYWwgPz9cbiAgICAgIHJhdz8udGh1bWJuYWlscz8uWzc2OF0/Lm9yaWdpbmFsID8/XG4gICAgICByYXc/LnRodW1ibmFpbHM/Lls1NDBdPy5vcmlnaW5hbCA/P1xuICAgICAgcmF3Py50aHVtYm5haWxzPy5bMzc1XT8ub3JpZ2luYWw7XG5cbiAgICBpZiAoIXJhd1NyYykgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIHJldHVybiB7XG4gICAgICBzcmM6IHRoaXMubm9ybWFsaXplSW1hZ2VVcmwocmF3U3JjKSxcbiAgICAgIGFsdDogcmF3Py5hbHQgPz8gaXRlbT8udGV4dHM/LnRpdGxlID8/IGl0ZW0/LnRpdGxlID8/IGl0ZW0/LmxhYmVsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgbm9ybWFsaXplSW1hZ2VVcmwoc3JjOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICgvXihodHRwcz86KT9cXC9cXC8vaS50ZXN0KHNyYykgfHwgL14oZGF0YXxibG9iKTovaS50ZXN0KHNyYykpIHtcbiAgICAgIHJldHVybiBzcmM7XG4gICAgfVxuXG4gICAgY29uc3QgY2RuQmFzZSA9ICh0aGlzLnNpdGVTdmM/LmNkbkltYWdlc0luc3RhbnQgPz8gJycpLnRvU3RyaW5nKCk7XG4gICAgaWYgKCFjZG5CYXNlKSByZXR1cm4gc3JjO1xuXG4gICAgY29uc3QgY2xlYW5CYXNlID0gY2RuQmFzZS5lbmRzV2l0aCgnLycpID8gY2RuQmFzZSA6IGAke2NkbkJhc2V9L2A7XG4gICAgY29uc3QgY2xlYW5TcmMgPSBzcmMucmVwbGFjZSgvXlxcLysvLCAnJyk7XG4gICAgcmV0dXJuIGAke2NsZWFuQmFzZX0ke2NsZWFuU3JjfWA7XG4gIH1cblxuICBwcml2YXRlIGluaXRTbGlkZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2xpZGVySW5pdGlhbGl6ZWQgfHwgdHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgIXRoaXMuc2VjdGlvblNsaWRlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5ub3JtYWxpemVkSXRlbXM7XG4gICAgY29uc3QgaGFzTXVsdGlwbGVTbGlkZXMgPSBpdGVtcy5sZW5ndGggPiAxO1xuICAgIGNvbnN0IHNsaWRlc1BlclZpZXdGb3JWaWV3cG9ydCA9IHRoaXMuZ2V0U2xpZGVzUGVyVmlld0ZvclZpZXdwb3J0KCk7XG4gICAgY29uc3QgaGFzSW5zdWZmaWNpZW50U2xpZGVzID0gaXRlbXMubGVuZ3RoIDw9IHNsaWRlc1BlclZpZXdGb3JWaWV3cG9ydDtcbiAgICBjb25zdCBzaG91bGRMb29wID0gaGFzTXVsdGlwbGVTbGlkZXMgJiYgIWhhc0luc3VmZmljaWVudFNsaWRlcztcblxuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMuc3dpcGVySW5zdGFuY2UgPSBuZXcgU3dpcGVyKHRoaXMuc2VjdGlvblNsaWRlciEubmF0aXZlRWxlbWVudCwge1xuICAgICAgICBtb2R1bGVzOiBbTmF2aWdhdGlvbiwgQXV0b3BsYXldLFxuICAgICAgICBzbGlkZXNQZXJWaWV3OiAxLFxuICAgICAgICBzbGlkZXNQZXJHcm91cDogMSxcbiAgICAgICAgc3BlZWQ6IDMwMCxcbiAgICAgICAgbG9vcDogc2hvdWxkTG9vcCxcbiAgICAgICAgd2F0Y2hPdmVyZmxvdzogdHJ1ZSxcbiAgICAgICAgY2VudGVySW5zdWZmaWNpZW50U2xpZGVzOiB0cnVlLFxuICAgICAgICBuYXZpZ2F0aW9uOlxuICAgICAgICAgIGhhc011bHRpcGxlU2xpZGVzICYmIHRoaXMuc2xpZGVyQ29uZmlnLnNob3dCdXR0b25zICYmIHRoaXMuc2xpZGVyUHJldiAmJiB0aGlzLnNsaWRlck5leHRcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgIG5leHRFbDogdGhpcy5zbGlkZXJOZXh0Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgcHJldkVsOiB0aGlzLnNsaWRlclByZXYubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IGZhbHNlLFxuICAgICAgICBhdXRvcGxheTogdGhpcy5zbGlkZXJDb25maWcuYXV0b3BsYXlcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgZGVsYXk6IDMwMDAsXG4gICAgICAgICAgICAgIGRpc2FibGVPbkludGVyYWN0aW9uOiBmYWxzZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDogZmFsc2UsXG4gICAgICAgIGJyZWFrcG9pbnRzOiB7XG4gICAgICAgICAgNzY4OiB7XG4gICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiAyLjIsXG4gICAgICAgICAgICBzbGlkZXNQZXJHcm91cDogMVxuICAgICAgICAgIH0sXG4gICAgICAgICAgMTEyNDoge1xuICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogMy4yLFxuICAgICAgICAgICAgc2xpZGVzUGVyR3JvdXA6IDFcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnNsaWRlckluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2xpZGVzUGVyVmlld0ZvclZpZXdwb3J0KCk6IG51bWJlciB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSByZXR1cm4gMTtcblxuICAgIGNvbnN0IHdpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgaWYgKHdpZHRoID49IDExMjQpIHJldHVybiAzLjI7XG4gICAgaWYgKHdpZHRoID49IDc2OCkgcmV0dXJuIDIuMjtcbiAgICByZXR1cm4gMTtcbiAgfVxuXG4gIHByaXZhdGUgZGVzdHJveVNsaWRlcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2xpZGVySW5pdGlhbGl6ZWQgfHwgIXRoaXMuc3dpcGVySW5zdGFuY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN3aXBlckluc3RhbmNlLmRlc3Ryb3kodHJ1ZSwgdHJ1ZSk7XG4gICAgdGhpcy5zd2lwZXJJbnN0YW5jZSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnNsaWRlckluaXRpYWxpemVkID0gZmFsc2U7XG4gIH1cbn1cbiIsIjxzZWN0aW9uIGNsYXNzPVwibWRsLXNsaWRlclwiIGJhYnlsb25Td2lwZXJDc3NMb2FkZXI+XG4gIDxkaXYgY2xhc3M9XCJtZGwtY29udGFpbmVyXCI+XG4gICAgQGlmICh0ZXh0cz8udGl0bGUpIHtcbiAgICAgIDxoMiBjbGFzcz1cIm1kbC10aXRsZVwiPnt7IHRleHRzPy50aXRsZSB9fTwvaDI+XG4gICAgfVxuXG4gICAgPGRpdiBjbGFzcz1cInN3aXBlclwiICNzZWN0aW9uU2xpZGVyPlxuICAgICAgPGRpdiBjbGFzcz1cInN3aXBlci13cmFwcGVyXCI+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2Ygbm9ybWFsaXplZEl0ZW1zOyB0cmFjayB0cmFja0l0ZW0oJGluZGV4KSkge1xuICAgICAgICAgIDxhXG4gICAgICAgICAgICBjbGFzcz1cInN3aXBlci1zbGlkZVwiXG4gICAgICAgICAgICBbaHJlZl09XCJpdGVtLnVybFwiXG4gICAgICAgICAgICBbYXR0ci50YXJnZXRdPVwiaXRlbS50YXJnZXQgfHwgbnVsbFwiXG4gICAgICAgICAgICBbbGlua1R5cGVdPVwiaXRlbS5saW5rVHlwZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGltZyBbc3JjXT1cIml0ZW0uaW1hZ2Uuc3JjXCIgW2FsdF09XCJpdGVtLmltYWdlLmFsdCB8fCBpdGVtLnRpdGxlIHx8ICdzbGlkZSBpbWFnZSdcIiAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tY29udGVudFwiPlxuICAgICAgICAgICAgICBAaWYgKGl0ZW0udGl0bGUpIHtcbiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJtLXRpdHVsb1wiPnt7IGl0ZW0udGl0bGUgfX08L2gzPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIEBpZiAoaXRlbS5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibS10ZXh0b1wiIFtpbm5lckhUTUxdPVwiaXRlbS5kZXNjcmlwdGlvblwiPjwvcD5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9hPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgQGlmIChub3JtYWxpemVkSXRlbXMubGVuZ3RoID4gMSAmJiBzbGlkZXJDb25maWcuc2hvd0J1dHRvbnMpIHtcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInN3aXBlci1idXR0b24tcHJldlwiIHR5cGU9XCJidXR0b25cIiBhcmlhLWxhYmVsPVwiQW50ZXJpb3JcIiAjc2xpZGVyUHJldj48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInN3aXBlci1idXR0b24tbmV4dFwiIHR5cGU9XCJidXR0b25cIiBhcmlhLWxhYmVsPVwiU2lndWllbnRlXCIgI3NsaWRlck5leHQ+PC9idXR0b24+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9zZWN0aW9uPlxuIl19
|
|
220
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpLWMzLWltZy10eHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFieWxvbi9zcmMvbGliL2NvbXBvbmVudHMvZXh0ZXJuYWwvY29yZS9zbGktYzMtaW1nLXR4dC9zbGktYzMtaW1nLXR4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9leHRlcm5hbC9jb3JlL3NsaS1jMy1pbWctdHh0L3NsaS1jMy1pbWctdHh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUtMLFNBQVMsRUFDVCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzlDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDRFQUE0RSxDQUFDO0FBRzdILE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzdGLE9BQU8sY0FBYyxNQUFNLHdCQUF3QixDQUFDO0FBRXBELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQVVqRixNQUFNLE9BQU8sb0JBQW9CO0lBZ0IvQixZQUE2QixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWYxQixZQUFPLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDckQsc0JBQWlCLEdBQUcs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YztzQkFEYixZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgU3dpcGVyIGZyb20gJ3N3aXBlcic7XG5pbXBvcnQgeyBBdXRvcGxheSwgTmF2aWdhdGlvbiB9IGZyb20gJ3N3aXBlcic7XG5pbXBvcnQgeyBCYWJ5bG9uTGlua1R5cGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi8uLi9kaXJlY3RpdmVzL2xpbmstdHlwZS9saW5rLXR5cGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IEJhYnlsb25Td2lwZXJDc3NMb2FkZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi8uLi9kaXJlY3RpdmVzL2JhYnlsb24tc2xpZGVycy9iYWJ5bG9uLXN3aXBlci1jc3MtbG9hZGVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCYWJ5bG9uSXRlbUksIEJhYnlsb25UZXh0SW5mb0kgfSBmcm9tICcuLi8uLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEJhYnlsb25HbG9iYWxFeHBlcmllbmNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcy9iYWJ5bG9uLWdsb2JhbC1leHBlcmllbmNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTSVRFX0NPTkZJR19TRVJWSUNFX1RPS0VOIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvbWFwcGVyL21hcHBlci5zZXJ2aWNlLnRva2VuJztcbmltcG9ydCBzbGlkZXJTZXR0aW5ncyBmcm9tICcuL3NsaWRlci1zZXR0aW5ncy5qc29uJztcbmltcG9ydCB7IFNsaUMzSW1nVHh0U2xpZGVJdGVtIH0gZnJvbSAnLi9zbGktYzMtaW1nLXR4dC5pbnRlcmZhY2VzJztcbmltcG9ydCB7IGdldEZpcnN0SW1hZ2VCeVRhZ0Zyb21JbWFnZXMgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscy9tdXRpbWVkaWEudXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzbGktYzMtaW1nLXR4dCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEJhYnlsb25Td2lwZXJDc3NMb2FkZXJEaXJlY3RpdmUsIEJhYnlsb25MaW5rVHlwZURpcmVjdGl2ZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9zbGktYzMtaW1nLXR4dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9zbGktYzMtaW1nLXR4dC5jb21wb25lbnQuc2NzcycsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkXG59KVxuZXhwb3J0IGNsYXNzIFNsaUMzSW1nVHh0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IHNpdGVTdmMgPSBpbmplY3QoU0lURV9DT05GSUdfU0VSVklDRV9UT0tFTik7XG4gIHByaXZhdGUgc2xpZGVySW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBzd2lwZXJJbnN0YW5jZT86IFN3aXBlcjtcbiAgcHJpdmF0ZSByZWFkb25seSB0YWdOYW1lID0gJ1NsaUMzSW1nVHh0JztcblxuICBASW5wdXQoKSB0ZXh0cz86IEJhYnlsb25UZXh0SW5mb0k7XG4gIEBJbnB1dCgpIGl0ZW1zPzogQmFieWxvbkl0ZW1JW107XG4gIEBJbnB1dCgpIGV4cGVyaWVuY2VzPzogQmFieWxvbkdsb2JhbEV4cGVyaWVuY2VbXTtcblxuICBAVmlld0NoaWxkKCdzZWN0aW9uU2xpZGVyJywgeyBzdGF0aWM6IGZhbHNlIH0pIHNlY3Rpb25TbGlkZXI/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnc2xpZGVyUHJldicsIHsgc3RhdGljOiBmYWxzZSB9KSBzbGlkZXJQcmV2PzogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ3NsaWRlck5leHQnLCB7IHN0YXRpYzogZmFsc2UgfSkgc2xpZGVyTmV4dD86IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuXG4gIHJlYWRvbmx5IHNsaWRlckNvbmZpZyA9IHNsaWRlclNldHRpbmdzO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUpIHt9XG5cbiAgZ2V0IG5vcm1hbGl6ZWRJdGVtcygpOiBTbGlDM0ltZ1R4dFNsaWRlSXRlbVtdIHtcbiAgICBjb25zdCBzb3VyY2UgPSB0aGlzLml0ZW1zPy5sZW5ndGggPyB0aGlzLml0ZW1zIDogKHRoaXMuZXhwZXJpZW5jZXMgYXMgQmFieWxvbkl0ZW1JW10gfCB1bmRlZmluZWQpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIHNvdXJjZVxuICAgICAgICA/Lm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGltYWdlID0gdGhpcy5yZXNvbHZlSW1hZ2UoaXRlbSk7XG4gICAgICAgICAgaWYgKCFpbWFnZSkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgICAgICAgIGNvbnN0IHRpdGxlID1cbiAgICAgICAgICAgIGl0ZW0/LnRleHRzPy50aXRsZSA/P1xuICAgICAgICAgICAgaXRlbT8udGV4dHM/Lm5hbWUgPz9cbiAgICAgICAgICAgIGl0ZW0/LnRpdGxlID8/XG4gICAgICAgICAgICBpdGVtPy5sYWJlbCA/P1xuICAgICAgICAgICAgKGl0ZW0gYXMgYW55KT8ubmFtZUlkZW50aWZpZXIgPz9cbiAgICAgICAgICAgICcnO1xuXG4gICAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPVxuICAgICAgICAgICAgaXRlbT8udGV4dHM/LmRlc2NyaXB0aW9uID8/XG4gICAgICAgICAgICBpdGVtPy5kZXNjcmlwdGlvbiA/P1xuICAgICAgICAgICAgaXRlbT8udGV4dCA/P1xuICAgICAgICAgICAgJyc7XG5cbiAgICAgICAgICBjb25zdCBwcmltYXJ5TGluayA9IGl0ZW0/LmJ1dHRvbnM/LlswXSA/PyBpdGVtPy5saW5rcz8uWzBdO1xuICAgICAgICAgIGNvbnN0IGl0ZW1VcmwgPSAoaXRlbSBhcyBhbnkpPy51cmw7XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IChpdGVtIGFzIGFueSk/LmlkLFxuICAgICAgICAgICAgdGl0bGUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbixcbiAgICAgICAgICAgIGltYWdlLFxuICAgICAgICAgICAgdXJsOiBwcmltYXJ5TGluaz8udXJsID8/IGl0ZW1VcmwgPz8gJyMnLFxuICAgICAgICAgICAgbGlua1R5cGU6IHByaW1hcnlMaW5rPy5saW5rVHlwZSxcbiAgICAgICAgICAgIHRhcmdldDogcHJpbWFyeUxpbms/LnRhcmdldFxuICAgICAgICAgIH07XG4gICAgICAgIH0pXG4gICAgICAgID8uZmlsdGVyKEJvb2xlYW4pIGFzIFNsaUMzSW1nVHh0U2xpZGVJdGVtW11cbiAgICApID8/IFtdO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdFNsaWRlcigpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICgoY2hhbmdlc1snaXRlbXMnXSB8fCBjaGFuZ2VzWydleHBlcmllbmNlcyddKSAmJiB0aGlzLnNsaWRlckluaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLmRlc3Ryb3lTbGlkZXIoKTtcbiAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMuaW5pdFNsaWRlcigpKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3lTbGlkZXIoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxuICBvbldpbmRvd1Jlc2l6ZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2xpZGVySW5pdGlhbGl6ZWQpIHJldHVybjtcblxuICAgIHRoaXMuZGVzdHJveVNsaWRlcigpO1xuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMuaW5pdFNsaWRlcigpKTtcbiAgfVxuXG4gIHRyYWNrSXRlbShpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVJbWFnZShpdGVtOiBCYWJ5bG9uSXRlbUkpOiB7IHNyYzogc3RyaW5nOyBhbHQ/OiBzdHJpbmcgfSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgdGFnZ2VkTWFwcGVkSW1hZ2UgPVxuICAgICAgZ2V0Rmlyc3RJbWFnZUJ5VGFnRnJvbUltYWdlcyhpdGVtPy5tdWx0aW1lZGlhPy5pbWFnZW5lcywgdGhpcy50YWdOYW1lKSA/P1xuICAgICAgaXRlbT8ubXVsdGltZWRpYT8uaW1hZ2VuZXM/LlswXTtcblxuICAgIGNvbnN0IG1hcHBlZFRhZ2dlZFNyYyA9IHRhZ2dlZE1hcHBlZEltYWdlPy5pbWc/LnNyYztcbiAgICBpZiAobWFwcGVkVGFnZ2VkU3JjKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzcmM6IHRoaXMubm9ybWFsaXplSW1hZ2VVcmwobWFwcGVkVGFnZ2VkU3JjKSxcbiAgICAgICAgYWx0OiB0YWdnZWRNYXBwZWRJbWFnZT8uaW1nPy5hbHQgPz8gaXRlbT8udGV4dHM/LnRpdGxlID8/IGl0ZW0/LnRpdGxlID8/IGl0ZW0/LmxhYmVsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IGRpcmVjdCA9IGl0ZW0/LmltZz8uc3JjO1xuICAgIGlmIChkaXJlY3QpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNyYzogdGhpcy5ub3JtYWxpemVJbWFnZVVybChkaXJlY3QpLFxuICAgICAgICBhbHQ6IGl0ZW0/LmltZz8uYWx0ID8/IGl0ZW0/LnRleHRzPy50aXRsZSA/PyBpdGVtPy50aXRsZSA/PyBpdGVtPy5sYWJlbFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBmcm9tTWFwcGVkID0gaXRlbT8ubXVsdGltZWRpYT8uaW1hZ2VuZXM/LlswXT8uaW1nPy5zcmM7XG4gICAgaWYgKGZyb21NYXBwZWQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNyYzogdGhpcy5ub3JtYWxpemVJbWFnZVVybChmcm9tTWFwcGVkKSxcbiAgICAgICAgYWx0OlxuICAgICAgICAgIGl0ZW0/Lm11bHRpbWVkaWE/LmltYWdlbmVzPy5bMF0/LmltZz8uYWx0ID8/XG4gICAgICAgICAgaXRlbT8udGV4dHM/LnRpdGxlID8/XG4gICAgICAgICAgaXRlbT8udGl0bGUgPz9cbiAgICAgICAgICBpdGVtPy5sYWJlbFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCByYXdJbWFnZXMgPSAoaXRlbSBhcyBhbnkpPy5tdWx0aW1lZGlhIGFzIGFueVtdIHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IHJhdyA9XG4gICAgICBnZXRGaXJzdEltYWdlQnlUYWdGcm9tSW1hZ2VzKHJhd0ltYWdlcyBhcyBhbnksIHRoaXMudGFnTmFtZSkgPz9cbiAgICAgIHJhd0ltYWdlcz8uWzBdO1xuICAgIGNvbnN0IHJhd1NyYyA9XG4gICAgICByYXc/LnBhdGg/LndlYnAgPz9cbiAgICAgIHJhdz8ucGF0aD8ub3JpZ2luYWwgPz9cbiAgICAgIHJhdz8udGh1bWJuYWlscz8uWzEzNjZdPy53ZWJwID8/XG4gICAgICByYXc/LnRodW1ibmFpbHM/LlsxMjgwXT8ud2VicCA/P1xuICAgICAgcmF3Py50aHVtYm5haWxzPy5bMTAyNF0/LndlYnAgPz9cbiAgICAgIHJhdz8udGh1bWJuYWlscz8uWzc2OF0/LndlYnAgPz9cbiAgICAgIHJhdz8udGh1bWJuYWlscz8uWzU0MF0/LndlYnAgPz9cbiAgICAgIHJhdz8udGh1bWJuYWlscz8uWzM3NV0/LndlYnAgPz9cbiAgICAgIHJhdz8udGh1bWJuYWlscz8uWzEzNjZdPy5vcmlnaW5hbCA/P1xuICAgICAgcmF3Py50aHVtYm5haWxzPy5bMTI4MF0/Lm9yaWdpbmFsID8/XG4gICAgICByYXc/LnRodW1ibmFpbHM/LlsxMDI0XT8ub3JpZ2luYWwgPz9cbiAgICAgIHJhdz8udGh1bWJuYWlscz8uWzc2OF0/Lm9yaWdpbmFsID8/XG4gICAgICByYXc/LnRodW1ibmFpbHM/Lls1NDBdPy5vcmlnaW5hbCA/P1xuICAgICAgcmF3Py50aHVtYm5haWxzPy5bMzc1XT8ub3JpZ2luYWw7XG5cbiAgICBpZiAoIXJhd1NyYykgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIHJldHVybiB7XG4gICAgICBzcmM6IHRoaXMubm9ybWFsaXplSW1hZ2VVcmwocmF3U3JjKSxcbiAgICAgIGFsdDogcmF3Py5hbHQgPz8gaXRlbT8udGV4dHM/LnRpdGxlID8/IGl0ZW0/LnRpdGxlID8/IGl0ZW0/LmxhYmVsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgbm9ybWFsaXplSW1hZ2VVcmwoc3JjOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICgvXihodHRwcz86KT9cXC9cXC8vaS50ZXN0KHNyYykgfHwgL14oZGF0YXxibG9iKTovaS50ZXN0KHNyYykpIHtcbiAgICAgIHJldHVybiBzcmM7XG4gICAgfVxuXG4gICAgY29uc3QgY2RuQmFzZSA9ICh0aGlzLnNpdGVTdmM/LmNkbkltYWdlc0luc3RhbnQgPz8gJycpLnRvU3RyaW5nKCk7XG4gICAgaWYgKCFjZG5CYXNlKSByZXR1cm4gc3JjO1xuXG4gICAgY29uc3QgY2xlYW5CYXNlID0gY2RuQmFzZS5lbmRzV2l0aCgnLycpID8gY2RuQmFzZSA6IGAke2NkbkJhc2V9L2A7XG4gICAgY29uc3QgY2xlYW5TcmMgPSBzcmMucmVwbGFjZSgvXlxcLysvLCAnJyk7XG4gICAgcmV0dXJuIGAke2NsZWFuQmFzZX0ke2NsZWFuU3JjfWA7XG4gIH1cblxuICBwcml2YXRlIGluaXRTbGlkZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2xpZGVySW5pdGlhbGl6ZWQgfHwgdHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgIXRoaXMuc2VjdGlvblNsaWRlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5ub3JtYWxpemVkSXRlbXM7XG4gICAgY29uc3QgaGFzTXVsdGlwbGVTbGlkZXMgPSBpdGVtcy5sZW5ndGggPiAxO1xuICAgIGNvbnN0IHNsaWRlc1BlclZpZXdGb3JWaWV3cG9ydCA9IHRoaXMuZ2V0U2xpZGVzUGVyVmlld0ZvclZpZXdwb3J0KCk7XG4gICAgY29uc3QgaGFzSW5zdWZmaWNpZW50U2xpZGVzID0gaXRlbXMubGVuZ3RoIDw9IHNsaWRlc1BlclZpZXdGb3JWaWV3cG9ydDtcbiAgICBjb25zdCBzaG91bGRMb29wID0gaGFzTXVsdGlwbGVTbGlkZXMgJiYgIWhhc0luc3VmZmljaWVudFNsaWRlcztcblxuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMuc3dpcGVySW5zdGFuY2UgPSBuZXcgU3dpcGVyKHRoaXMuc2VjdGlvblNsaWRlciEubmF0aXZlRWxlbWVudCwge1xuICAgICAgICBtb2R1bGVzOiBbTmF2aWdhdGlvbiwgQXV0b3BsYXldLFxuICAgICAgICBzbGlkZXNQZXJWaWV3OiAxLFxuICAgICAgICBzbGlkZXNQZXJHcm91cDogMSxcbiAgICAgICAgc3BlZWQ6IDMwMCxcbiAgICAgICAgbG9vcDogc2hvdWxkTG9vcCxcbiAgICAgICAgd2F0Y2hPdmVyZmxvdzogdHJ1ZSxcbiAgICAgICAgY2VudGVySW5zdWZmaWNpZW50U2xpZGVzOiB0cnVlLFxuICAgICAgICBuYXZpZ2F0aW9uOlxuICAgICAgICAgIGhhc011bHRpcGxlU2xpZGVzICYmIHRoaXMuc2xpZGVyQ29uZmlnLnNob3dCdXR0b25zICYmIHRoaXMuc2xpZGVyUHJldiAmJiB0aGlzLnNsaWRlck5leHRcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgIG5leHRFbDogdGhpcy5zbGlkZXJOZXh0Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgcHJldkVsOiB0aGlzLnNsaWRlclByZXYubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IGZhbHNlLFxuICAgICAgICBhdXRvcGxheTogdGhpcy5zbGlkZXJDb25maWcuYXV0b3BsYXlcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgZGVsYXk6IDMwMDAsXG4gICAgICAgICAgICAgIGRpc2FibGVPbkludGVyYWN0aW9uOiBmYWxzZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDogZmFsc2UsXG4gICAgICAgIGJyZWFrcG9pbnRzOiB7XG4gICAgICAgICAgNzY4OiB7XG4gICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiAyLjIsXG4gICAgICAgICAgICBzbGlkZXNQZXJHcm91cDogMVxuICAgICAgICAgIH0sXG4gICAgICAgICAgMTEyNDoge1xuICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogMy4yLFxuICAgICAgICAgICAgc2xpZGVzUGVyR3JvdXA6IDFcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnNsaWRlckluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2xpZGVzUGVyVmlld0ZvclZpZXdwb3J0KCk6IG51bWJlciB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSByZXR1cm4gMTtcblxuICAgIGNvbnN0IHdpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgaWYgKHdpZHRoID49IDExMjQpIHJldHVybiAzLjI7XG4gICAgaWYgKHdpZHRoID49IDc2OCkgcmV0dXJuIDIuMjtcbiAgICByZXR1cm4gMTtcbiAgfVxuXG4gIHByaXZhdGUgZGVzdHJveVNsaWRlcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2xpZGVySW5pdGlhbGl6ZWQgfHwgIXRoaXMuc3dpcGVySW5zdGFuY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN3aXBlckluc3RhbmNlLmRlc3Ryb3kodHJ1ZSwgdHJ1ZSk7XG4gICAgdGhpcy5zd2lwZXJJbnN0YW5jZSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnNsaWRlckluaXRpYWxpemVkID0gZmFsc2U7XG4gIH1cbn1cbiIsIjxzZWN0aW9uIGNsYXNzPVwibWRsLXNsaWRlclwiIGJhYnlsb25Td2lwZXJDc3NMb2FkZXI+XG4gIDxkaXYgY2xhc3M9XCJtZGwtY29udGFpbmVyXCI+XG4gICAgQGlmICh0ZXh0cz8udGl0bGUpIHtcbiAgICAgIDxoMiBjbGFzcz1cIm1kbC10aXRsZVwiPnt7IHRleHRzPy50aXRsZSB9fTwvaDI+XG4gICAgfVxuXG4gICAgPGRpdiBjbGFzcz1cInN3aXBlclwiICNzZWN0aW9uU2xpZGVyPlxuICAgICAgPGRpdiBjbGFzcz1cInN3aXBlci13cmFwcGVyXCI+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2Ygbm9ybWFsaXplZEl0ZW1zOyB0cmFjayB0cmFja0l0ZW0oJGluZGV4KSkge1xuICAgICAgICAgIDxhXG4gICAgICAgICAgICBjbGFzcz1cInN3aXBlci1zbGlkZVwiXG4gICAgICAgICAgICBbaHJlZl09XCJpdGVtLnVybFwiXG4gICAgICAgICAgICBbYXR0ci50YXJnZXRdPVwiaXRlbS50YXJnZXQgfHwgbnVsbFwiXG4gICAgICAgICAgICBbbGlua1R5cGVdPVwiaXRlbS5saW5rVHlwZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGltZyBbc3JjXT1cIml0ZW0uaW1hZ2Uuc3JjXCIgW2FsdF09XCJpdGVtLmltYWdlLmFsdCB8fCBpdGVtLnRpdGxlIHx8ICdzbGlkZSBpbWFnZSdcIiAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tY29udGVudFwiPlxuICAgICAgICAgICAgICBAaWYgKGl0ZW0udGl0bGUpIHtcbiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJtLXRpdHVsb1wiPnt7IGl0ZW0udGl0bGUgfX08L2gzPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIEBpZiAoaXRlbS5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibS10ZXh0b1wiIFtpbm5lckhUTUxdPVwiaXRlbS5kZXNjcmlwdGlvblwiPjwvcD5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9hPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgQGlmIChub3JtYWxpemVkSXRlbXMubGVuZ3RoID4gMSAmJiBzbGlkZXJDb25maWcuc2hvd0J1dHRvbnMpIHtcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInN3aXBlci1idXR0b24tcHJldlwiIHR5cGU9XCJidXR0b25cIiBhcmlhLWxhYmVsPVwiQW50ZXJpb3JcIiAjc2xpZGVyUHJldj48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInN3aXBlci1idXR0b24tbmV4dFwiIHR5cGU9XCJidXR0b25cIiBhcmlhLWxhYmVsPVwiU2lndWllbnRlXCIgI3NsaWRlck5leHQ+PC9idXR0b24+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9zZWN0aW9uPlxuIl19
|
package/fesm2022/ctt-babylon.mjs
CHANGED
|
@@ -29093,6 +29093,7 @@ class SliC3ImgTxtComponent {
|
|
|
29093
29093
|
this.ngZone = ngZone;
|
|
29094
29094
|
this.siteSvc = inject(SITE_CONFIG_SERVICE_TOKEN);
|
|
29095
29095
|
this.sliderInitialized = false;
|
|
29096
|
+
this.tagName = 'SliC3ImgTxt';
|
|
29096
29097
|
this.sliderConfig = sliderSettings;
|
|
29097
29098
|
}
|
|
29098
29099
|
get normalizedItems() {
|
|
@@ -29148,6 +29149,15 @@ class SliC3ImgTxtComponent {
|
|
|
29148
29149
|
return index;
|
|
29149
29150
|
}
|
|
29150
29151
|
resolveImage(item) {
|
|
29152
|
+
const taggedMappedImage = getFirstImageByTagFromImages(item?.multimedia?.imagenes, this.tagName) ??
|
|
29153
|
+
item?.multimedia?.imagenes?.[0];
|
|
29154
|
+
const mappedTaggedSrc = taggedMappedImage?.img?.src;
|
|
29155
|
+
if (mappedTaggedSrc) {
|
|
29156
|
+
return {
|
|
29157
|
+
src: this.normalizeImageUrl(mappedTaggedSrc),
|
|
29158
|
+
alt: taggedMappedImage?.img?.alt ?? item?.texts?.title ?? item?.title ?? item?.label
|
|
29159
|
+
};
|
|
29160
|
+
}
|
|
29151
29161
|
const direct = item?.img?.src;
|
|
29152
29162
|
if (direct) {
|
|
29153
29163
|
return {
|
|
@@ -29165,7 +29175,9 @@ class SliC3ImgTxtComponent {
|
|
|
29165
29175
|
item?.label
|
|
29166
29176
|
};
|
|
29167
29177
|
}
|
|
29168
|
-
const
|
|
29178
|
+
const rawImages = item?.multimedia;
|
|
29179
|
+
const raw = getFirstImageByTagFromImages(rawImages, this.tagName) ??
|
|
29180
|
+
rawImages?.[0];
|
|
29169
29181
|
const rawSrc = raw?.path?.webp ??
|
|
29170
29182
|
raw?.path?.original ??
|
|
29171
29183
|
raw?.thumbnails?.[1366]?.webp ??
|
|
@@ -29848,7 +29860,7 @@ class LisC3ImgTxtCtaComponent {
|
|
|
29848
29860
|
constructor() {
|
|
29849
29861
|
this.additional1LikeMarca = false;
|
|
29850
29862
|
this.showCleanFilters = true;
|
|
29851
|
-
this.showFilters = true;
|
|
29863
|
+
this.showFilters = true;
|
|
29852
29864
|
this.tagName = 'LisC3ImgTxtCta';
|
|
29853
29865
|
this.selectedHotelType = '';
|
|
29854
29866
|
this.selectedDestination = '';
|
|
@@ -29868,11 +29880,15 @@ class LisC3ImgTxtCtaComponent {
|
|
|
29868
29880
|
* Devuelve las imágenes sincronizadas con filteredItems, evitando incongruencias.
|
|
29869
29881
|
*/
|
|
29870
29882
|
get imagesToShow() {
|
|
29871
|
-
return this.filteredItems.map(item => {
|
|
29872
|
-
const
|
|
29873
|
-
|
|
29874
|
-
|
|
29875
|
-
|
|
29883
|
+
return this.filteredItems.map((item) => {
|
|
29884
|
+
const selectedFromMultimedia = this.getFirstImageByTag(this.tagName, item?.multimedia?.imagenes ?? []);
|
|
29885
|
+
const selectedFromImages = this.getFirstImageByTag(this.tagName, item?.images ?? []);
|
|
29886
|
+
const selected = selectedFromMultimedia ?? selectedFromImages ??
|
|
29887
|
+
getFirstImageByTagFromMultimediaRaw(item?.multimedia, this.tagName) ??
|
|
29888
|
+
item?.multimedia?.imagenes?.[0] ??
|
|
29889
|
+
item?.images?.[0] ??
|
|
29890
|
+
undefined;
|
|
29891
|
+
return selected;
|
|
29876
29892
|
});
|
|
29877
29893
|
}
|
|
29878
29894
|
findAndSelectDestination(destinationName) {
|