ctt-babylon 0.13.45 → 0.13.46
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/core/babylon-fo-c3-txt-svg-cta/babylon-fo-c3-txt-svg-cta.component.mjs +13 -0
- package/esm2022/lib/components/core/babylon-fo-c3-txt-svg-cta/index.mjs +2 -0
- package/esm2022/lib/components/core/babylon-sli-c3-svg-vid-cta/babylon-sli-c3-svg-vid-cta.component.mjs +51 -30
- package/esm2022/lib/components/core/index.mjs +2 -1
- package/esm2022/lib/components/external/core/lis-c2-txt-img/lis-c2-txt-img.component.mjs +10 -3
- package/esm2022/lib/directives/sliders/swiper-init.directive.mjs +1 -13
- package/fesm2022/ctt-babylon.mjs +307 -282
- package/fesm2022/ctt-babylon.mjs.map +1 -1
- package/lib/components/core/babylon-fo-c3-txt-svg-cta/babylon-fo-c3-txt-svg-cta.component.d.ts +5 -0
- package/lib/components/core/babylon-fo-c3-txt-svg-cta/index.d.ts +1 -0
- package/lib/components/core/babylon-sli-c3-svg-vid-cta/babylon-sli-c3-svg-vid-cta.component.d.ts +2 -0
- package/lib/components/core/index.d.ts +1 -0
- package/lib/components/external/core/lis-c2-txt-img/lis-c2-txt-img.component.d.ts +2 -1
- package/package.json +1 -1
|
@@ -9,15 +9,10 @@ export class SwiperInitDirective {
|
|
|
9
9
|
}
|
|
10
10
|
async ngAfterViewInit() {
|
|
11
11
|
if (!isPlatformBrowser(this.platformId)) {
|
|
12
|
-
console.log('[SwiperInitDirective] No es browser, salgo');
|
|
13
12
|
return;
|
|
14
13
|
}
|
|
15
14
|
const parent = this.host.nativeElement;
|
|
16
15
|
const dataset = parent.dataset;
|
|
17
|
-
console.log('[SwiperInitDirective] ngAfterViewInit', {
|
|
18
|
-
parent,
|
|
19
|
-
dataset,
|
|
20
|
-
});
|
|
21
16
|
// Helpers para leer data-*
|
|
22
17
|
const get = (key) => dataset[key];
|
|
23
18
|
const getBool = (key) => get(key) === 'true';
|
|
@@ -37,7 +32,6 @@ export class SwiperInitDirective {
|
|
|
37
32
|
}
|
|
38
33
|
// Swiper ya inicializado → salir
|
|
39
34
|
if (sliderSelector.classList.contains('swiper-initialized')) {
|
|
40
|
-
console.log('[SwiperInitDirective] Swiper ya inicializado en este contenedor, salgo');
|
|
41
35
|
return;
|
|
42
36
|
}
|
|
43
37
|
// ====== LECTURA DE DATA-ATTRIBUTES ======
|
|
@@ -140,12 +134,6 @@ export class SwiperInitDirective {
|
|
|
140
134
|
console.error('[SwiperInitDirective] Swiper global no encontrado (window.Swiper es falsy)');
|
|
141
135
|
return;
|
|
142
136
|
}
|
|
143
|
-
console.log('[SwiperInitDirective] INIT SWIPER', {
|
|
144
|
-
sliderName,
|
|
145
|
-
sliderSelector,
|
|
146
|
-
options: swiperOptions,
|
|
147
|
-
swiperType: typeof Swiper,
|
|
148
|
-
});
|
|
149
137
|
this.swiperInstance = new Swiper(sliderSelector, swiperOptions);
|
|
150
138
|
// Posición flechas tipo --sliderNav__position
|
|
151
139
|
this.initArrowPositioning(parent);
|
|
@@ -215,4 +203,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
215
203
|
type: Inject,
|
|
216
204
|
args: [PLATFORM_ID]
|
|
217
205
|
}] }] });
|
|
218
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpcGVyLWluaXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFieWxvbi9zcmMvbGliL2RpcmVjdGl2ZXMvc2xpZGVycy9zd2lwZXItaW5pdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUVILFNBQVMsRUFFVCxNQUFNLEVBRU4sV0FBVyxHQUNkLE1BQU0sZUFBZSxDQUFDOztBQVN2QixNQUFNLE9BQU8sbUJBQW1CO0lBSTVCLFlBQ1ksSUFBNkIsRUFDUixVQUFrQjtRQUR2QyxTQUFJLEdBQUosSUFBSSxDQUF5QjtRQUNSLGVBQVUsR0FBVixVQUFVLENBQVE7UUFKM0Msb0JBQWUsR0FBc0IsRUFBRSxDQUFDO0lBSzdDLENBQUM7SUFFSixLQUFLLENBQUMsZUFBZTtRQUNqQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMsNENBQTRDLENBQUMsQ0FBQztZQUMxRCxPQUFPO1NBQ1Y7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUN2QyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBdUIsQ0FBQztRQUUvQyxPQUFPLENBQUMsR0FBRyxDQUFDLHVDQUF1QyxFQUFFO1lBQ2pELE1BQU07WUFDTixPQUFPO1NBQ1YsQ0FBQyxDQUFDO1FBRUgsMkJBQTJCO1FBQzNCLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBVyxFQUFzQixFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlELE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBVyxFQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssTUFBTSxDQUFDO1FB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Q0FDM0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FDakQsQ0FBQztZQUNGLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUMzQixNQUFNLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUNqRCxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQXRSUSxtQkFBbUIsNENBTWhCLFdBQVc7bUdBTmQsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUovQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxtQ0FBbUM7b0JBQzdDLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs7MEJBT1EsTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgUExBVEZPUk1fSUQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vLyBTd2lwZXIgZ2xvYmFsICh2aWVuZSBkZWwgYW5ndWxhci5qc29uIC0+IHNjcmlwdHMpXG5kZWNsYXJlIGNvbnN0IFN3aXBlcjogYW55O1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJy5qcy1hY3RpdmUtc2xpZGVyLFthcHBTd2lwZXJJbml0XScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgU3dpcGVySW5pdERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSBzd2lwZXJJbnN0YW5jZT86IGFueTtcbiAgICBwcml2YXRlIGFycm93Q2xlYW51cEZuczogQXJyYXk8KCkgPT4gdm9pZD4gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGhvc3Q6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IG9iamVjdFxuICAgICkge31cblxuICAgIGFzeW5jIG5nQWZ0ZXJWaWV3SW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnW1N3aXBlckluaXREaXJlY3RpdmVdIE5vIGVzIGJyb3dzZXIsIHNhbGdvJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmhvc3QubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgZGF0YXNldCA9IHBhcmVudC5kYXRhc2V0IGFzIERPTVN0cmluZ01hcDtcblxuICAgICAgICBjb25zb2xlLmxvZygnW1N3aXBlckluaXREaXJlY3RpdmVdIG5nQWZ0ZXJWaWV3SW5pdCcsIHtcbiAgICAgICAgICAgIHBhcmVudCxcbiAgICAgICAgICAgIGRhdGFzZXQsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEhlbHBlcnMgcGFyYSBsZWVyIGRhdGEtKlxuICAgICAgICBjb25zdCBnZXQgPSAoa2V5OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4gZGF0YXNldFtrZXldO1xuICAgICAgICBjb25zdCBnZXRCb29sID0gKGtleTogc3RyaW5nKTogYm9vbGVhbiA9PiBnZXQoa2V5KSA9PT0gJ3RydWUnO1xuICAgICAgICBjb25zdCBnZXROdW0gPSAoa2V5OiBzdHJpbmcsIGZhbGxiYWNrID0gMCk6IG51bWJlciA9PiB7XG4gICAgICAgICAgICBjb25zdCB2ID0gTnVtYmVyKGdldChrZXkpKTtcbiAgICAgICAgICAgIHJldHVybiBOdW1iZXIuaXNGaW5pdGUodikgPyB2IDogZmFsbGJhY2s7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3Qgc2xpZGVyTmFtZSA9IGdldCgnc2xpZGVyX25hbWUnKTtcbiAgICAgICAgaWYgKCFzbGlkZXJOYW1lKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgJ1tTd2lwZXJJbml0RGlyZWN0aXZlXSBTaW4gZGF0YS1zbGlkZXJfbmFtZSBlbiBlbCBwYXJlbnQnLFxuICAgICAgICAgICAgICAgIHBhcmVudFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNsaWRlclNlbGVjdG9yID0gcGFyZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KFxuICAgICAgICAgICAgJy4nICsgc2xpZGVyTmFtZVxuICAgICAgICApO1xuICAgICAgICBpZiAoIXNsaWRlclNlbGVjdG9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgJ1tTd2lwZXJJbml0RGlyZWN0aXZlXSBObyBlbmN1ZW50cm8gZWwgY29udGVuZWRvciAuJyxcbiAgICAgICAgICAgICAgICBzbGlkZXJOYW1lLFxuICAgICAgICAgICAgICAgICcgZGVudHJvIGRlICcsXG4gICAgICAgICAgICAgICAgcGFyZW50XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU3dpcGVyIHlhIGluaWNpYWxpemFkbyDihpIgc2FsaXJcbiAgICAgICAgaWYgKHNsaWRlclNlbGVjdG9yLmNsYXNzTGlzdC5jb250YWlucygnc3dpcGVyLWluaXRpYWxpemVkJykpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgICAgICdbU3dpcGVySW5pdERpcmVjdGl2ZV0gU3dpcGVyIHlhIGluaWNpYWxpemFkbyBlbiBlc3RlIGNvbnRlbmVkb3IsIHNhbGdvJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vID09PT09PSBMRUNUVVJBIERFIERBVEEtQVRUUklCVVRFUyA9PT09PT1cbiAgICAgICAgY29uc3Qgc2hvd0RvdHMgPSBnZXRCb29sKCdzbGlkZXJfc2hvd2RvdHMnKTtcbiAgICAgICAgY29uc3Qgc2hvd0J1dHRvbnMgPSBnZXRCb29sKCdzbGlkZXJfc2hvd2J0bnMnKTtcbiAgICAgICAgY29uc3QgZmFkZSA9IGdldEJvb2woJ3NsaWRlcl9mYWRlJyk7XG4gICAgICAgIGNvbnN0IGNlbnRlciA9IGdldEJvb2woJ3NsaWRlcl9jZW50ZXJtb2RlJyk7XG4gICAgICAgIGNvbnN0IGF1dG9wbGF5ID0gZ2V0Qm9vbCgnc2xpZGVyX2F1dG9wbGF5Jyk7XG4gICAgICAgIGNvbnN0IHZlcnRpY2FsID0gZ2V0Qm9vbCgnc2xpZGVyX3ZlcnRpY2FsJyk7XG4gICAgICAgIGNvbnN0IHJ0bCA9IGdldEJvb2woJ3NsaWRlcl9ydGwnKTtcbiAgICAgICAgY29uc3QgZHJhZ2dhYmxlID0gZ2V0KCdzbGlkZXJfZHJhZ2dhYmxlJykgIT09ICdmYWxzZSc7XG4gICAgICAgIGNvbnN0IGFkYXB0aXZlSGVpZ2h0ID0gZ2V0Qm9vbCgnc2xpZGVyX2FkYXB0aXZlX2hlaWdodCcpO1xuXG4gICAgICAgIGNvbnN0IHZhcmlhYmxlV2lkdGggPSBnZXRCb29sKCdzbGlkZXJfdmFyaWFibGVfd2lkdGgnKTtcbiAgICAgICAgY29uc3QgZnJlZU1vZGUgPSBnZXRCb29sKCdzbGlkZXJfZnJlZW1vZGUnKTtcblxuICAgICAgICBjb25zdCBzcGVlZCA9IGdldE51bSgnc2xpZGVyX3NwZWVkJywgNzUwKTtcbiAgICAgICAgY29uc3QgaW5maW5pdGUgPSBnZXRCb29sKCdzbGlkZXNfaW5maW5pdGUnKTtcblxuICAgICAgICAvLyBjb250ZW5lZG9yZXNcbiAgICAgICAgY29uc3QgbmF2Q29udGFpbmVyID1cbiAgICAgICAgICAgIHBhcmVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignLmpzLXNsaWRlci1hcnJvd3MnKTtcbiAgICAgICAgY29uc3QgZG90c0NvbnRhaW5lciA9XG4gICAgICAgICAgICBwYXJlbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJy5qcy1zbGlkZXItZG90cycpO1xuXG4gICAgICAgIC8vID09PT09PSBTVkcgRkxFQ0hBUyA9PT09PT1cbiAgICAgICAgY29uc3QgYXJyb3dTVkcgPSBgXG48c3ZnIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCI3MFwiIHZpZXdCb3g9XCIwIDAgMzUgNzBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbjxwYXRoIGQ9XCJNMzUgNzBDMzAuNDAzNyA3MCAyNS44NTI1IDY5LjA5NDcgMjEuNjA2MSA2Ny4zMzU4QzE3LjM1OTcgNjUuNTc2OSAxMy41MDEzIDYyLjk5ODggMTAuMjUxMyA1OS43NDg3QzcuMDAxMjEgNTYuNDk4NyA0LjQyMzEzIDUyLjY0MDMgMi42NjQyMSA0OC4zOTM5QzAuOTA1MyA0NC4xNDc1IC00LjAxODJlLTA3IDM5LjU5NjMgMCAzNUM0LjAxODJlLTA3IDMwLjQwMzcgMC45MDUzMDMgMjUuODUyNSAyLjY2NDIyIDIxLjYwNjFDNC40MjMxMyAxNy4zNTk3IDcuMDAxMjEgMTMuNTAxMyAxMC4yNTEzIDEwLjI1MTNDMTMuNTAxMyA3LjAwMTIxIDE3LjM1OTcgNC40MjMxMyAyMS42MDYxIDIuNjY0MjFDMjUuODUyNSAwLjkwNTMgMzAuNDAzNyAtNi4wMjczZS0wNyAzNSAwVjM1VjcwWlwiIGZpbGw9XCIjRDBBNjdCXCIvPlxuPHBhdGggZD1cIk0xNi43MzY4IDI4LjEyNkMxNi41NjgzIDI3Ljk1NzggMTYuMjk0OSAyNy45NTc3IDE2LjEyNjUgMjguMTI2QzE1Ljk1OCAyOC4yOTQ0IDE1Ljk1ODIgMjguNTY3OCAxNi4xMjY1IDI4LjczNjNMMjIuNjgyMSAzNS4yOTJMMTYuMTI2NSA0MS44NDc3QzE1Ljk1NzkgNDIuMDE2MiAxNS45NTc5IDQyLjI4OTUgMTYuMTI2NSA0Mi40NThDMTYuMjk1IDQyLjYyNjUgMTYuNTY4MyA0Mi42MjY1IDE2LjczNjggNDIuNDU4TDIzLjU5NzIgMzUuNTk3N0MyMy42ODE2IDM1LjUxMzMgMjMuNzI0MiAzNS40MDI2IDIzLjcyNDEgMzUuMjkyQzIzLjcyNDEgMzUuMTgxNiAyMy42ODE0IDM1LjA3MTUgMjMuNTk3MiAzNC45ODczTDE2LjczNjggMjguMTI2WlwiIGZpbGw9XCJ3aGl0ZVwiLz5cbjwvc3ZnPmAudHJpbSgpO1xuXG4gICAgICAgIGlmIChzaG93QnV0dG9ucyAmJiBuYXZDb250YWluZXIpIHtcbiAgICAgICAgICAgIGlmICghbmF2Q29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJy5zd2lwZXItYnV0dG9uLXByZXYnKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHByZXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgICAgICBwcmV2LmNsYXNzTmFtZSA9ICdzd2lwZXItYnV0dG9uLXByZXYnO1xuICAgICAgICAgICAgICAgIHByZXYuaW5uZXJIVE1MID0gYXJyb3dTVkc7XG4gICAgICAgICAgICAgICAgcHJldi5zdHlsZS50cmFuc2Zvcm0gPSAncm90YXRlKDE4MGRlZyknOyAvLyBQcmV2IGdpcmFkYVxuICAgICAgICAgICAgICAgIG5hdkNvbnRhaW5lci5hcHBlbmRDaGlsZChwcmV2KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFuYXZDb250YWluZXIucXVlcnlTZWxlY3RvcignLnN3aXBlci1idXR0b24tbmV4dCcpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICAgICAgICAgIG5leHQuY2xhc3NOYW1lID0gJ3N3aXBlci1idXR0b24tbmV4dCc7XG4gICAgICAgICAgICAgICAgbmV4dC5pbm5lckhUTUwgPSBhcnJvd1NWRztcbiAgICAgICAgICAgICAgICBuYXZDb250YWluZXIuYXBwZW5kQ2hpbGQobmV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyA9PT09PT0gQlJFQUtQT0lOVFMgPT09PT09XG4gICAgICAgIGNvbnN0IHNsaWRlc19wYyA9IGdldE51bSgnc2xpZGVzX3BjJywgMSk7XG4gICAgICAgIGNvbnN0IHNsaWRlc19sYXB0b3AgPSBnZXROdW0oJ3NsaWRlc19sYXB0b3AnLCBzbGlkZXNfcGMpO1xuICAgICAgICBjb25zdCBzbGlkZXNfdGFibGV0ID0gZ2V0TnVtKCdzbGlkZXNfdGFibGV0Jywgc2xpZGVzX2xhcHRvcCk7XG4gICAgICAgIGNvbnN0IHNsaWRlc19tb2JpbGUgPSBnZXROdW0oJ3NsaWRlc19tb2JpbGUnLCBzbGlkZXNfdGFibGV0KTtcbiAgICAgICAgY29uc3Qgc2xpZGVzX21vYmlsZV9zbWFsbCA9IGdldE51bShcbiAgICAgICAgICAgICdzbGlkZXNfbW9iaWxlX3NtYWxsJyxcbiAgICAgICAgICAgIHNsaWRlc19tb2JpbGVcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3Qgc2xpZGVzX21vYmlsZV94c21hbGwgPSBnZXROdW0oXG4gICAgICAgICAgICAnc2xpZGVzX21vYmlsZV94c21hbGwnLFxuICAgICAgICAgICAgc2xpZGVzX21vYmlsZV9zbWFsbFxuICAgICAgICApO1xuXG4gICAgICAgIC8vID09PT09PSBPUENJT05FUyBTV0lQRVIgPT09PT09XG4gICAgICAgIGNvbnN0IHN3aXBlck9wdGlvbnM6IGFueSA9IHtcbiAgICAgICAgICAgIGRpcmVjdGlvbjogdmVydGljYWwgPyAndmVydGljYWwnIDogJ2hvcml6b250YWwnLFxuICAgICAgICAgICAgc3BlZWQsXG4gICAgICAgICAgICBsb29wOiBpbmZpbml0ZSxcbiAgICAgICAgICAgIGNlbnRlcmVkU2xpZGVzOiBjZW50ZXIsXG4gICAgICAgICAgICBlZmZlY3Q6IGZhZGUgPyAnZmFkZScgOiAnc2xpZGUnLFxuICAgICAgICAgICAgYXV0b3BsYXk6IGF1dG9wbGF5ID8geyBkZWxheTogNTAwMCB9IDogZmFsc2UsXG4gICAgICAgICAgICBhbGxvd1RvdWNoTW92ZTogZHJhZ2dhYmxlLFxuICAgICAgICAgICAgYXV0b0hlaWdodDogYWRhcHRpdmVIZWlnaHQsXG5cbiAgICAgICAgICAgIGZyZWVNb2RlOiBmcmVlTW9kZSA/IHsgZW5hYmxlZDogdHJ1ZSwgbW9tZW50dW06IHRydWUgfSA6IGZhbHNlLFxuXG4gICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiB2YXJpYWJsZVdpZHRoID8gJ2F1dG8nIDogc2xpZGVzX21vYmlsZV94c21hbGwsXG4gICAgICAgICAgICBzcGFjZUJldHdlZW46IHZhcmlhYmxlV2lkdGggPyAxNiA6IDAsXG5cbiAgICAgICAgICAgIG9ic2VydmVyOiB0cnVlLFxuICAgICAgICAgICAgb2JzZXJ2ZVBhcmVudHM6IHRydWUsXG5cbiAgICAgICAgICAgIG5hdmlnYXRpb246XG4gICAgICAgICAgICAgICAgc2hvd0J1dHRvbnMgJiYgbmF2Q29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0RWw6ICcuc3dpcGVyLWJ1dHRvbi1uZXh0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldkVsOiAnLnN3aXBlci1idXR0b24tcHJldicsXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA6IGZhbHNlLFxuXG4gICAgICAgICAgICBwYWdpbmF0aW9uOlxuICAgICAgICAgICAgICAgIHNob3dEb3RzICYmIGRvdHNDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGVsOiAnLmpzLXNsaWRlci1kb3RzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2thYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgOiBmYWxzZSxcblxuICAgICAgICAgICAgYnJlYWtwb2ludHM6IHtcbiAgICAgICAgICAgICAgICA1NDA6IHtcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogdmFyaWFibGVXaWR0aCA/ICdhdXRvJyA6IHNsaWRlc19tb2JpbGVfc21hbGwsXG4gICAgICAgICAgICAgICAgICAgIGZyZWVNb2RlOiBmcmVlTW9kZSA/IHsgZW5hYmxlZDogdHJ1ZSB9IDogZmFsc2UsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICA3Njg6IHtcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogdmFyaWFibGVXaWR0aCA/ICdhdXRvJyA6IHNsaWRlc19tb2JpbGUsXG4gICAgICAgICAgICAgICAgICAgIGZyZWVNb2RlOiBmcmVlTW9kZSA/IHsgZW5hYmxlZDogdHJ1ZSB9IDogZmFsc2UsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAxMDI0OiB7XG4gICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IHZhcmlhYmxlV2lkdGggPyAnYXV0bycgOiBzbGlkZXNfdGFibGV0LFxuICAgICAgICAgICAgICAgICAgICBmcmVlTW9kZTogZnJlZU1vZGUgPyB7IGVuYWJsZWQ6IHRydWUgfSA6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgMTI4MDoge1xuICAgICAgICAgICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiB2YXJpYWJsZVdpZHRoID8gJ2F1dG8nIDogc2xpZGVzX2xhcHRvcCxcbiAgICAgICAgICAgICAgICAgICAgZnJlZU1vZGU6IGZyZWVNb2RlID8geyBlbmFibGVkOiB0cnVlIH0gOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIDEzNjY6IHtcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogdmFyaWFibGVXaWR0aCA/ICdhdXRvJyA6IHNsaWRlc19wYyxcbiAgICAgICAgICAgICAgICAgICAgZnJlZU1vZGU6IGZyZWVNb2RlID8geyBlbmFibGVkOiB0cnVlIH0gOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcblxuICAgICAgICAvLyA9PT09PT0gSU5JVCBTV0lQRVIgPT09PT09XG4gICAgICAgIGlmICghU3dpcGVyKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICdbU3dpcGVySW5pdERpcmVjdGl2ZV0gU3dpcGVyIGdsb2JhbCBubyBlbmNvbnRyYWRvICh3aW5kb3cuU3dpcGVyIGVzIGZhbHN5KSdcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zb2xlLmxvZygnW1N3aXBlckluaXREaXJlY3RpdmVdIElOSVQgU1dJUEVSJywge1xuICAgICAgICAgICAgc2xpZGVyTmFtZSxcbiAgICAgICAgICAgIHNsaWRlclNlbGVjdG9yLFxuICAgICAgICAgICAgb3B0aW9uczogc3dpcGVyT3B0aW9ucyxcbiAgICAgICAgICAgIHN3aXBlclR5cGU6IHR5cGVvZiBTd2lwZXIsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuc3dpcGVySW5zdGFuY2UgPSBuZXcgU3dpcGVyKHNsaWRlclNlbGVjdG9yLCBzd2lwZXJPcHRpb25zKTtcblxuICAgICAgICAvLyBQb3NpY2nDs24gZmxlY2hhcyB0aXBvIC0tc2xpZGVyTmF2X19wb3NpdGlvblxuICAgICAgICB0aGlzLmluaXRBcnJvd1Bvc2l0aW9uaW5nKHBhcmVudCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuXG4gICAgICAgIGlmICh0aGlzLnN3aXBlckluc3RhbmNlPy5kZXN0cm95KSB7XG4gICAgICAgICAgICB0aGlzLnN3aXBlckluc3RhbmNlLmRlc3Ryb3kodHJ1ZSwgdHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFycm93Q2xlYW51cEZucy5mb3JFYWNoKChmbikgPT4gZm4oKSk7XG4gICAgICAgIHRoaXMuYXJyb3dDbGVhbnVwRm5zID0gW107XG4gICAgfVxuXG4gICAgLy8gPT09PT09PT0gUE9TSUNJw5NOIERFIEZMRUNIQVMgKGVxdWl2YWxlbnRlIGpzLXNsaWRlcl9maXgtYXJyb3dzKSA9PT09PT09PVxuICAgIHByaXZhdGUgaW5pdEFycm93UG9zaXRpb25pbmcocGFyZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzbGlkZXJzID0gcGFyZW50LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEVsZW1lbnQ+KFxuICAgICAgICAgICAgJy5qcy1zbGlkZXJfZml4LWFycm93cydcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKCFzbGlkZXJzLmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgICAgIHNsaWRlcnMuZm9yRWFjaCgoc2xpZGVyKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZWN0aW9uID1cbiAgICAgICAgICAgICAgICBzbGlkZXIuY2xvc2VzdDxIVE1MRWxlbWVudD4oJy5qcy1hY3RpdmUtc2xpZGVyJykgfHwgcGFyZW50O1xuICAgICAgICAgICAgaWYgKCFzZWN0aW9uKSByZXR1cm47XG5cbiAgICAgICAgICAgIGNvbnN0IGNhbGNQb3NpdGlvbiA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgaGVpZ2h0U2VsZWN0b3I6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBtb2JpbGVTZWwgPSBzbGlkZXIucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oXG4gICAgICAgICAgICAgICAgICAgICcuanMtc2xpZGVyX2ZpeC1hcnJvd3Mtem9uZS5tb2JpbGUnXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBjb25zdCBkZXNrdG9wU2VsID0gc2xpZGVyLnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KFxuICAgICAgICAgICAgICAgICAgICAnLmpzLXNsaWRlcl9maXgtYXJyb3dzLXpvbmUuZGVza3RvcCdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGNvbnN0IGdlbmVyaWNTZWwgPSBzbGlkZXIucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oXG4gICAgICAgICAgICAgICAgICAgICcuanMtc2xpZGVyX2ZpeC1hcnJvd3Mtem9uZSdcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgaWYgKG1vYmlsZVNlbCAmJiB3aW5kb3cuaW5uZXJXaWR0aCA8PSAxMjc5KSB7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodFNlbGVjdG9yID0gbW9iaWxlU2VsO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZGVza3RvcFNlbCAmJiB3aW5kb3cuaW5uZXJXaWR0aCA+PSAxMjgwKSB7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodFNlbGVjdG9yID0gZGVza3RvcFNlbDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHRTZWxlY3RvciA9IGdlbmVyaWNTZWw7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKCFoZWlnaHRTZWxlY3RvcikgcmV0dXJuO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgcmVsYXRpdmUgPVxuICAgICAgICAgICAgICAgICAgICBoZWlnaHRTZWxlY3Rvci5jbG9zZXN0PEhUTUxFbGVtZW50PignLnJlbGF0aXZlJyk7XG4gICAgICAgICAgICAgICAgaWYgKCFyZWxhdGl2ZSkgcmV0dXJuO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgcmVjdCA9IGhlaWdodFNlbGVjdG9yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudFJlY3QgPSByZWxhdGl2ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBoZWlnaHQgPSByZWN0LnRvcCAtIHBhcmVudFJlY3QudG9wICsgcmVjdC5oZWlnaHQgLyAyO1xuXG4gICAgICAgICAgICAgICAgc2VjdGlvbi5zdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICAgICAgICAgICAgICAgJy0tc2xpZGVyTmF2X19wb3NpdGlvbicsXG4gICAgICAgICAgICAgICAgICAgIGAke2hlaWdodH1weGBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY2FsY1Bvc2l0aW9uKCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGNhbGNQb3NpdGlvbiwgNTAwKTtcblxuICAgICAgICAgICAgY29uc3Qgb25TY3JvbGwgPSAoKSA9PiBjYWxjUG9zaXRpb24oKTtcbiAgICAgICAgICAgIGNvbnN0IG9uUmVzaXplID0gKCkgPT4gY2FsY1Bvc2l0aW9uKCk7XG5cbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvblNjcm9sbCwgeyBwYXNzaXZlOiB0cnVlIH0pO1xuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG9uUmVzaXplLCB7IHBhc3NpdmU6IHRydWUgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuYXJyb3dDbGVhbnVwRm5zLnB1c2goKCkgPT5cbiAgICAgICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgb25TY3JvbGwpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5hcnJvd0NsZWFudXBGbnMucHVzaCgoKSA9PlxuICAgICAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBvblJlc2l6ZSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpcGVyLWluaXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFieWxvbi9zcmMvbGliL2RpcmVjdGl2ZXMvc2xpZGVycy9zd2lwZXItaW5pdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUVILFNBQVMsRUFFVCxNQUFNLEVBRU4sV0FBVyxHQUNkLE1BQU0sZUFBZSxDQUFDOztBQVN2QixNQUFNLE9BQU8sbUJBQW1CO0lBSTVCLFlBQ1ksSUFBNkIsRUFDUixVQUFrQjtRQUR2QyxTQUFJLEdBQUosSUFBSSxDQUF5QjtRQUNSLGVBQVUsR0FBVixVQUFVLENBQVE7UUFKM0Msb0JBQWUsR0FBc0IsRUFBRSxDQUFDO0lBSzdDLENBQUM7SUFFSixLQUFLLENBQUMsZUFBZTtRQUNqQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3JDLE9BQU87U0FDVjtRQUVELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ3ZDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUF1QixDQUFDO1FBRS9DLDJCQUEyQjtRQUMzQixNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQVcsRUFBc0IsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5RCxNQUFNLE9BQU8sR0FBRyxDQUFDLEdBQVcsRUFBVyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLE1BQU0sQ0FBQztRQUM5RCxNQUFNLE1BQU0sR0FBRyxDQUFDLEdBQVcsRUFBRSxRQUFRLEdBQUcsQ0FBQyxFQUFVLEVBQUU7WUFDakQsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxD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RSxtQ0FBbUM7b0JBQzdDLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs7MEJBT1EsTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgUExBVEZPUk1fSUQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vLyBTd2lwZXIgZ2xvYmFsICh2aWVuZSBkZWwgYW5ndWxhci5qc29uIC0+IHNjcmlwdHMpXG5kZWNsYXJlIGNvbnN0IFN3aXBlcjogYW55O1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJy5qcy1hY3RpdmUtc2xpZGVyLFthcHBTd2lwZXJJbml0XScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgU3dpcGVySW5pdERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSBzd2lwZXJJbnN0YW5jZT86IGFueTtcbiAgICBwcml2YXRlIGFycm93Q2xlYW51cEZuczogQXJyYXk8KCkgPT4gdm9pZD4gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGhvc3Q6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IG9iamVjdFxuICAgICkge31cblxuICAgIGFzeW5jIG5nQWZ0ZXJWaWV3SW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmhvc3QubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgZGF0YXNldCA9IHBhcmVudC5kYXRhc2V0IGFzIERPTVN0cmluZ01hcDtcblxuICAgICAgICAvLyBIZWxwZXJzIHBhcmEgbGVlciBkYXRhLSpcbiAgICAgICAgY29uc3QgZ2V0ID0gKGtleTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IGRhdGFzZXRba2V5XTtcbiAgICAgICAgY29uc3QgZ2V0Qm9vbCA9IChrZXk6IHN0cmluZyk6IGJvb2xlYW4gPT4gZ2V0KGtleSkgPT09ICd0cnVlJztcbiAgICAgICAgY29uc3QgZ2V0TnVtID0gKGtleTogc3RyaW5nLCBmYWxsYmFjayA9IDApOiBudW1iZXIgPT4ge1xuICAgICAgICAgICAgY29uc3QgdiA9IE51bWJlcihnZXQoa2V5KSk7XG4gICAgICAgICAgICByZXR1cm4gTnVtYmVyLmlzRmluaXRlKHYpID8gdiA6IGZhbGxiYWNrO1xuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHNsaWRlck5hbWUgPSBnZXQoJ3NsaWRlcl9uYW1lJyk7XG4gICAgICAgIGlmICghc2xpZGVyTmFtZSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgICdbU3dpcGVySW5pdERpcmVjdGl2ZV0gU2luIGRhdGEtc2xpZGVyX25hbWUgZW4gZWwgcGFyZW50JyxcbiAgICAgICAgICAgICAgICBwYXJlbnRcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzbGlkZXJTZWxlY3RvciA9IHBhcmVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PihcbiAgICAgICAgICAgICcuJyArIHNsaWRlck5hbWVcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKCFzbGlkZXJTZWxlY3Rvcikge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgICdbU3dpcGVySW5pdERpcmVjdGl2ZV0gTm8gZW5jdWVudHJvIGVsIGNvbnRlbmVkb3IgLicsXG4gICAgICAgICAgICAgICAgc2xpZGVyTmFtZSxcbiAgICAgICAgICAgICAgICAnIGRlbnRybyBkZSAnLFxuICAgICAgICAgICAgICAgIHBhcmVudFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFN3aXBlciB5YSBpbmljaWFsaXphZG8g4oaSIHNhbGlyXG4gICAgICAgIGlmIChzbGlkZXJTZWxlY3Rvci5jbGFzc0xpc3QuY29udGFpbnMoJ3N3aXBlci1pbml0aWFsaXplZCcpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyA9PT09PT0gTEVDVFVSQSBERSBEQVRBLUFUVFJJQlVURVMgPT09PT09XG4gICAgICAgIGNvbnN0IHNob3dEb3RzID0gZ2V0Qm9vbCgnc2xpZGVyX3Nob3dkb3RzJyk7XG4gICAgICAgIGNvbnN0IHNob3dCdXR0b25zID0gZ2V0Qm9vbCgnc2xpZGVyX3Nob3didG5zJyk7XG4gICAgICAgIGNvbnN0IGZhZGUgPSBnZXRCb29sKCdzbGlkZXJfZmFkZScpO1xuICAgICAgICBjb25zdCBjZW50ZXIgPSBnZXRCb29sKCdzbGlkZXJfY2VudGVybW9kZScpO1xuICAgICAgICBjb25zdCBhdXRvcGxheSA9IGdldEJvb2woJ3NsaWRlcl9hdXRvcGxheScpO1xuICAgICAgICBjb25zdCB2ZXJ0aWNhbCA9IGdldEJvb2woJ3NsaWRlcl92ZXJ0aWNhbCcpO1xuICAgICAgICBjb25zdCBydGwgPSBnZXRCb29sKCdzbGlkZXJfcnRsJyk7XG4gICAgICAgIGNvbnN0IGRyYWdnYWJsZSA9IGdldCgnc2xpZGVyX2RyYWdnYWJsZScpICE9PSAnZmFsc2UnO1xuICAgICAgICBjb25zdCBhZGFwdGl2ZUhlaWdodCA9IGdldEJvb2woJ3NsaWRlcl9hZGFwdGl2ZV9oZWlnaHQnKTtcblxuICAgICAgICBjb25zdCB2YXJpYWJsZVdpZHRoID0gZ2V0Qm9vbCgnc2xpZGVyX3ZhcmlhYmxlX3dpZHRoJyk7XG4gICAgICAgIGNvbnN0IGZyZWVNb2RlID0gZ2V0Qm9vbCgnc2xpZGVyX2ZyZWVtb2RlJyk7XG5cbiAgICAgICAgY29uc3Qgc3BlZWQgPSBnZXROdW0oJ3NsaWRlcl9zcGVlZCcsIDc1MCk7XG4gICAgICAgIGNvbnN0IGluZmluaXRlID0gZ2V0Qm9vbCgnc2xpZGVzX2luZmluaXRlJyk7XG5cbiAgICAgICAgLy8gY29udGVuZWRvcmVzXG4gICAgICAgIGNvbnN0IG5hdkNvbnRhaW5lciA9XG4gICAgICAgICAgICBwYXJlbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJy5qcy1zbGlkZXItYXJyb3dzJyk7XG4gICAgICAgIGNvbnN0IGRvdHNDb250YWluZXIgPVxuICAgICAgICAgICAgcGFyZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCcuanMtc2xpZGVyLWRvdHMnKTtcblxuICAgICAgICAvLyA9PT09PT0gU1ZHIEZMRUNIQVMgPT09PT09XG4gICAgICAgIGNvbnN0IGFycm93U1ZHID0gYFxuPHN2ZyB3aWR0aD1cIjM1XCIgaGVpZ2h0PVwiNzBcIiB2aWV3Qm94PVwiMCAwIDM1IDcwXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG48cGF0aCBkPVwiTTM1IDcwQzMwLjQwMzcgNzAgMjUuODUyNSA2OS4wOTQ3IDIxLjYwNjEgNjcuMzM1OEMxNy4zNTk3IDY1LjU3NjkgMTMuNTAxMyA2Mi45OTg4IDEwLjI1MTMgNTkuNzQ4N0M3LjAwMTIxIDU2LjQ5ODcgNC40MjMxMyA1Mi42NDAzIDIuNjY0MjEgNDguMzkzOUMwLjkwNTMgNDQuMTQ3NSAtNC4wMTgyZS0wNyAzOS41OTYzIDAgMzVDNC4wMTgyZS0wNyAzMC40MDM3IDAuOTA1MzAzIDI1Ljg1MjUgMi42NjQyMiAyMS42MDYxQzQuNDIzMTMgMTcuMzU5NyA3LjAwMTIxIDEzLjUwMTMgMTAuMjUxMyAxMC4yNTEzQzEzLjUwMTMgNy4wMDEyMSAxNy4zNTk3IDQuNDIzMTMgMjEuNjA2MSAyLjY2NDIxQzI1Ljg1MjUgMC45MDUzIDMwLjQwMzcgLTYuMDI3M2UtMDcgMzUgMFYzNVY3MFpcIiBmaWxsPVwiI0QwQTY3QlwiLz5cbjxwYXRoIGQ9XCJNMTYuNzM2OCAyOC4xMjZDMTYuNTY4MyAyNy45NTc4IDE2LjI5NDkgMjcuOTU3NyAxNi4xMjY1IDI4LjEyNkMxNS45NTggMjguMjk0NCAxNS45NTgyIDI4LjU2NzggMTYuMTI2NSAyOC43MzYzTDIyLjY4MjEgMzUuMjkyTDE2LjEyNjUgNDEuODQ3N0MxNS45NTc5IDQyLjAxNjIgMTUuOTU3OSA0Mi4yODk1IDE2LjEyNjUgNDIuNDU4QzE2LjI5NSA0Mi42MjY1IDE2LjU2ODMgNDIuNjI2NSAxNi43MzY4IDQyLjQ1OEwyMy41OTcyIDM1LjU5NzdDMjMuNjgxNiAzNS41MTMzIDIzLjcyNDIgMzUuNDAyNiAyMy43MjQxIDM1LjI5MkMyMy43MjQxIDM1LjE4MTYgMjMuNjgxNCAzNS4wNzE1IDIzLjU5NzIgMzQuOTg3M0wxNi43MzY4IDI4LjEyNlpcIiBmaWxsPVwid2hpdGVcIi8+XG48L3N2Zz5gLnRyaW0oKTtcblxuICAgICAgICBpZiAoc2hvd0J1dHRvbnMgJiYgbmF2Q29udGFpbmVyKSB7XG4gICAgICAgICAgICBpZiAoIW5hdkNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCcuc3dpcGVyLWJ1dHRvbi1wcmV2JykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwcmV2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgICAgICAgcHJldi5jbGFzc05hbWUgPSAnc3dpcGVyLWJ1dHRvbi1wcmV2JztcbiAgICAgICAgICAgICAgICBwcmV2LmlubmVySFRNTCA9IGFycm93U1ZHO1xuICAgICAgICAgICAgICAgIHByZXYuc3R5bGUudHJhbnNmb3JtID0gJ3JvdGF0ZSgxODBkZWcpJzsgLy8gUHJldiBnaXJhZGFcbiAgICAgICAgICAgICAgICBuYXZDb250YWluZXIuYXBwZW5kQ2hpbGQocHJldik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghbmF2Q29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJy5zd2lwZXItYnV0dG9uLW5leHQnKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5leHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgICAgICBuZXh0LmNsYXNzTmFtZSA9ICdzd2lwZXItYnV0dG9uLW5leHQnO1xuICAgICAgICAgICAgICAgIG5leHQuaW5uZXJIVE1MID0gYXJyb3dTVkc7XG4gICAgICAgICAgICAgICAgbmF2Q29udGFpbmVyLmFwcGVuZENoaWxkKG5leHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gPT09PT09IEJSRUFLUE9JTlRTID09PT09PVxuICAgICAgICBjb25zdCBzbGlkZXNfcGMgPSBnZXROdW0oJ3NsaWRlc19wYycsIDEpO1xuICAgICAgICBjb25zdCBzbGlkZXNfbGFwdG9wID0gZ2V0TnVtKCdzbGlkZXNfbGFwdG9wJywgc2xpZGVzX3BjKTtcbiAgICAgICAgY29uc3Qgc2xpZGVzX3RhYmxldCA9IGdldE51bSgnc2xpZGVzX3RhYmxldCcsIHNsaWRlc19sYXB0b3ApO1xuICAgICAgICBjb25zdCBzbGlkZXNfbW9iaWxlID0gZ2V0TnVtKCdzbGlkZXNfbW9iaWxlJywgc2xpZGVzX3RhYmxldCk7XG4gICAgICAgIGNvbnN0IHNsaWRlc19tb2JpbGVfc21hbGwgPSBnZXROdW0oXG4gICAgICAgICAgICAnc2xpZGVzX21vYmlsZV9zbWFsbCcsXG4gICAgICAgICAgICBzbGlkZXNfbW9iaWxlXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHNsaWRlc19tb2JpbGVfeHNtYWxsID0gZ2V0TnVtKFxuICAgICAgICAgICAgJ3NsaWRlc19tb2JpbGVfeHNtYWxsJyxcbiAgICAgICAgICAgIHNsaWRlc19tb2JpbGVfc21hbGxcbiAgICAgICAgKTtcblxuICAgICAgICAvLyA9PT09PT0gT1BDSU9ORVMgU1dJUEVSID09PT09PVxuICAgICAgICBjb25zdCBzd2lwZXJPcHRpb25zOiBhbnkgPSB7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHZlcnRpY2FsID8gJ3ZlcnRpY2FsJyA6ICdob3Jpem9udGFsJyxcbiAgICAgICAgICAgIHNwZWVkLFxuICAgICAgICAgICAgbG9vcDogaW5maW5pdGUsXG4gICAgICAgICAgICBjZW50ZXJlZFNsaWRlczogY2VudGVyLFxuICAgICAgICAgICAgZWZmZWN0OiBmYWRlID8gJ2ZhZGUnIDogJ3NsaWRlJyxcbiAgICAgICAgICAgIGF1dG9wbGF5OiBhdXRvcGxheSA/IHsgZGVsYXk6IDUwMDAgfSA6IGZhbHNlLFxuICAgICAgICAgICAgYWxsb3dUb3VjaE1vdmU6IGRyYWdnYWJsZSxcbiAgICAgICAgICAgIGF1dG9IZWlnaHQ6IGFkYXB0aXZlSGVpZ2h0LFxuXG4gICAgICAgICAgICBmcmVlTW9kZTogZnJlZU1vZGUgPyB7IGVuYWJsZWQ6IHRydWUsIG1vbWVudHVtOiB0cnVlIH0gOiBmYWxzZSxcblxuICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogdmFyaWFibGVXaWR0aCA/ICdhdXRvJyA6IHNsaWRlc19tb2JpbGVfeHNtYWxsLFxuICAgICAgICAgICAgc3BhY2VCZXR3ZWVuOiB2YXJpYWJsZVdpZHRoID8gMTYgOiAwLFxuXG4gICAgICAgICAgICBvYnNlcnZlcjogdHJ1ZSxcbiAgICAgICAgICAgIG9ic2VydmVQYXJlbnRzOiB0cnVlLFxuXG4gICAgICAgICAgICBuYXZpZ2F0aW9uOlxuICAgICAgICAgICAgICAgIHNob3dCdXR0b25zICYmIG5hdkNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dEVsOiAnLnN3aXBlci1idXR0b24tbmV4dCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZFbDogJy5zd2lwZXItYnV0dG9uLXByZXYnLFxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgOiBmYWxzZSxcblxuICAgICAgICAgICAgcGFnaW5hdGlvbjpcbiAgICAgICAgICAgICAgICBzaG93RG90cyAmJiBkb3RzQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBlbDogJy5qcy1zbGlkZXItZG90cycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWNrYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDogZmFsc2UsXG5cbiAgICAgICAgICAgIGJyZWFrcG9pbnRzOiB7XG4gICAgICAgICAgICAgICAgNTQwOiB7XG4gICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IHZhcmlhYmxlV2lkdGggPyAnYXV0bycgOiBzbGlkZXNfbW9iaWxlX3NtYWxsLFxuICAgICAgICAgICAgICAgICAgICBmcmVlTW9kZTogZnJlZU1vZGUgPyB7IGVuYWJsZWQ6IHRydWUgfSA6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgNzY4OiB7XG4gICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IHZhcmlhYmxlV2lkdGggPyAnYXV0bycgOiBzbGlkZXNfbW9iaWxlLFxuICAgICAgICAgICAgICAgICAgICBmcmVlTW9kZTogZnJlZU1vZGUgPyB7IGVuYWJsZWQ6IHRydWUgfSA6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgMTAyNDoge1xuICAgICAgICAgICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiB2YXJpYWJsZVdpZHRoID8gJ2F1dG8nIDogc2xpZGVzX3RhYmxldCxcbiAgICAgICAgICAgICAgICAgICAgZnJlZU1vZGU6IGZyZWVNb2RlID8geyBlbmFibGVkOiB0cnVlIH0gOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIDEyODA6IHtcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogdmFyaWFibGVXaWR0aCA/ICdhdXRvJyA6IHNsaWRlc19sYXB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGZyZWVNb2RlOiBmcmVlTW9kZSA/IHsgZW5hYmxlZDogdHJ1ZSB9IDogZmFsc2UsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAxMzY2OiB7XG4gICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IHZhcmlhYmxlV2lkdGggPyAnYXV0bycgOiBzbGlkZXNfcGMsXG4gICAgICAgICAgICAgICAgICAgIGZyZWVNb2RlOiBmcmVlTW9kZSA/IHsgZW5hYmxlZDogdHJ1ZSB9IDogZmFsc2UsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gPT09PT09IElOSVQgU1dJUEVSID09PT09PVxuICAgICAgICBpZiAoIVN3aXBlcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAnW1N3aXBlckluaXREaXJlY3RpdmVdIFN3aXBlciBnbG9iYWwgbm8gZW5jb250cmFkbyAod2luZG93LlN3aXBlciBlcyBmYWxzeSknXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zd2lwZXJJbnN0YW5jZSA9IG5ldyBTd2lwZXIoc2xpZGVyU2VsZWN0b3IsIHN3aXBlck9wdGlvbnMpO1xuXG4gICAgICAgIC8vIFBvc2ljacOzbiBmbGVjaGFzIHRpcG8gLS1zbGlkZXJOYXZfX3Bvc2l0aW9uXG4gICAgICAgIHRoaXMuaW5pdEFycm93UG9zaXRpb25pbmcocGFyZW50KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG5cbiAgICAgICAgaWYgKHRoaXMuc3dpcGVySW5zdGFuY2U/LmRlc3Ryb3kpIHtcbiAgICAgICAgICAgIHRoaXMuc3dpcGVySW5zdGFuY2UuZGVzdHJveSh0cnVlLCB0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYXJyb3dDbGVhbnVwRm5zLmZvckVhY2goKGZuKSA9PiBmbigpKTtcbiAgICAgICAgdGhpcy5hcnJvd0NsZWFudXBGbnMgPSBbXTtcbiAgICB9XG5cbiAgICAvLyA9PT09PT09PSBQT1NJQ0nDk04gREUgRkxFQ0hBUyAoZXF1aXZhbGVudGUganMtc2xpZGVyX2ZpeC1hcnJvd3MpID09PT09PT09XG4gICAgcHJpdmF0ZSBpbml0QXJyb3dQb3NpdGlvbmluZyhwYXJlbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNsaWRlcnMgPSBwYXJlbnQucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oXG4gICAgICAgICAgICAnLmpzLXNsaWRlcl9maXgtYXJyb3dzJ1xuICAgICAgICApO1xuICAgICAgICBpZiAoIXNsaWRlcnMubGVuZ3RoKSByZXR1cm47XG5cbiAgICAgICAgc2xpZGVycy5mb3JFYWNoKChzbGlkZXIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlY3Rpb24gPVxuICAgICAgICAgICAgICAgIHNsaWRlci5jbG9zZXN0PEhUTUxFbGVtZW50PignLmpzLWFjdGl2ZS1zbGlkZXInKSB8fCBwYXJlbnQ7XG4gICAgICAgICAgICBpZiAoIXNlY3Rpb24pIHJldHVybjtcblxuICAgICAgICAgICAgY29uc3QgY2FsY1Bvc2l0aW9uID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBoZWlnaHRTZWxlY3RvcjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAgICAgICAgICAgICAgIGNvbnN0IG1vYmlsZVNlbCA9IHNsaWRlci5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PihcbiAgICAgICAgICAgICAgICAgICAgJy5qcy1zbGlkZXJfZml4LWFycm93cy16b25lLm1vYmlsZSdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlc2t0b3BTZWwgPSBzbGlkZXIucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oXG4gICAgICAgICAgICAgICAgICAgICcuanMtc2xpZGVyX2ZpeC1hcnJvd3Mtem9uZS5kZXNrdG9wJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgY29uc3QgZ2VuZXJpY1NlbCA9IHNsaWRlci5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PihcbiAgICAgICAgICAgICAgICAgICAgJy5qcy1zbGlkZXJfZml4LWFycm93cy16b25lJ1xuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICBpZiAobW9iaWxlU2VsICYmIHdpbmRvdy5pbm5lcldpZHRoIDw9IDEyNzkpIHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0U2VsZWN0b3IgPSBtb2JpbGVTZWw7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChkZXNrdG9wU2VsICYmIHdpbmRvdy5pbm5lcldpZHRoID49IDEyODApIHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0U2VsZWN0b3IgPSBkZXNrdG9wU2VsO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodFNlbGVjdG9yID0gZ2VuZXJpY1NlbDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIWhlaWdodFNlbGVjdG9yKSByZXR1cm47XG5cbiAgICAgICAgICAgICAgICBjb25zdCByZWxhdGl2ZSA9XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodFNlbGVjdG9yLmNsb3Nlc3Q8SFRNTEVsZW1lbnQ+KCcucmVsYXRpdmUnKTtcbiAgICAgICAgICAgICAgICBpZiAoIXJlbGF0aXZlKSByZXR1cm47XG5cbiAgICAgICAgICAgICAgICBjb25zdCByZWN0ID0gaGVpZ2h0U2VsZWN0b3IuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50UmVjdCA9IHJlbGF0aXZlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IHJlY3QudG9wIC0gcGFyZW50UmVjdC50b3AgKyByZWN0LmhlaWdodCAvIDI7XG5cbiAgICAgICAgICAgICAgICBzZWN0aW9uLnN0eWxlLnNldFByb3BlcnR5KFxuICAgICAgICAgICAgICAgICAgICAnLS1zbGlkZXJOYXZfX3Bvc2l0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgYCR7aGVpZ2h0fXB4YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjYWxjUG9zaXRpb24oKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoY2FsY1Bvc2l0aW9uLCA1MDApO1xuXG4gICAgICAgICAgICBjb25zdCBvblNjcm9sbCA9ICgpID0+IGNhbGNQb3NpdGlvbigpO1xuICAgICAgICAgICAgY29uc3Qgb25SZXNpemUgPSAoKSA9PiBjYWxjUG9zaXRpb24oKTtcblxuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uU2Nyb2xsLCB7IHBhc3NpdmU6IHRydWUgfSk7XG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgb25SZXNpemUsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcblxuICAgICAgICAgICAgdGhpcy5hcnJvd0NsZWFudXBGbnMucHVzaCgoKSA9PlxuICAgICAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvblNjcm9sbClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLmFycm93Q2xlYW51cEZucy5wdXNoKCgpID0+XG4gICAgICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG9uUmVzaXplKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|