ctt-puro 0.12.0 → 0.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/puro-advantages/index.mjs +2 -1
- package/esm2022/lib/components/puro-advantages/puro-advantages.component.mjs +7 -5
- package/esm2022/lib/components/puro-advantages/puro-advantages.interface.mjs +2 -0
- package/esm2022/lib/components/puro-grid3col-slider/index.mjs +2 -1
- package/esm2022/lib/components/puro-grid3col-slider/puro-grid3col-slider.component.mjs +13 -5
- package/esm2022/lib/components/puro-grid3col-slider/puro-grid3col-slider.interface.mjs +2 -0
- package/esm2022/lib/components/puro-schedule/puro-schedule.component.mjs +3 -3
- package/esm2022/lib/directives/puro-script/puro-script.directive.mjs +3 -3
- package/fesm2022/ctt-puro.mjs +18 -10
- package/fesm2022/ctt-puro.mjs.map +1 -1
- package/lib/components/puro-advantages/index.d.ts +1 -0
- package/lib/components/puro-advantages/puro-advantages.component.d.ts +6 -1
- package/lib/components/puro-advantages/puro-advantages.interface.d.ts +4 -0
- package/lib/components/puro-grid3col-slider/index.d.ts +1 -0
- package/lib/components/puro-grid3col-slider/puro-grid3col-slider.component.d.ts +11 -1
- package/lib/components/puro-grid3col-slider/puro-grid3col-slider.interface.d.ts +7 -0
- package/lib/styles/styles-puro.scss +5 -0
- package/package.json +1 -1
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export * from './puro-advantages.component';
|
|
2
|
-
|
|
2
|
+
export * from './puro-advantages.interface';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wdXJvL3NyYy9saWIvY29tcG9uZW50cy9wdXJvLWFkdmFudGFnZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wdXJvLWFkdmFudGFnZXMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9wdXJvLWFkdmFudGFnZXMuaW50ZXJmYWNlJztcclxuIl19
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
3
3
|
import { PuroSliderDirective } from '../../directives';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class PuroAdvantagesComponent {
|
|
6
6
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroAdvantagesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
7
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroAdvantagesComponent, isStandalone: true, selector: "lib-puro-advantages", inputs: { items: "items" }, ngImport: i0, template: "<section\n class=\"features js-active-slider\"\n data-slides_infinite=\"true\"\n data-slider_name=\"js-features-slider\"\n data-slider_showbtns=\"true\"\n data-slider_showdots=\"false\"\n data-slider_fade=\"false\"\n data-slider_autoplay=\"false\"\n data-slides_pc=\"3\"\n data-slides_laptop=\"3\"\n data-slides_tablet=\"3\"\n data-slides_mobile=\"2\"\n data-slides_mobile_small=\"2\"\n data-slides_mobile_xsmall=\"1\"\n>\n <div class=\"features__inner relative\">\n <div class=\"features__container\">\n <div class=\"js-features-slider features__slider\">\n @for (item of items || []; track $index) {\n <div>\n <div class=\"features__item\">\n @if (item.icon) {\n <div class=\"features__icon\">\n <i class=\"{{ item.icon }}\"></i>\n </div>\n }\n @if (item.title) {\n <span class=\"features__text\">{{\n item.title\n }}</span>\n }\n </div>\n </div>\n }\n </div>\n <div class=\"js-slider-arrows\"></div>\n </div>\n </div>\n</section>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8
8
|
}
|
|
9
9
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroAdvantagesComponent, decorators: [{
|
|
10
10
|
type: Component,
|
|
11
|
-
args: [{ selector: 'lib-puro-advantages', standalone: true, imports: [CommonModule, PuroSliderDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "" }]
|
|
12
|
-
}]
|
|
13
|
-
|
|
11
|
+
args: [{ selector: 'lib-puro-advantages', standalone: true, imports: [CommonModule, PuroSliderDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<section\n class=\"features js-active-slider\"\n data-slides_infinite=\"true\"\n data-slider_name=\"js-features-slider\"\n data-slider_showbtns=\"true\"\n data-slider_showdots=\"false\"\n data-slider_fade=\"false\"\n data-slider_autoplay=\"false\"\n data-slides_pc=\"3\"\n data-slides_laptop=\"3\"\n data-slides_tablet=\"3\"\n data-slides_mobile=\"2\"\n data-slides_mobile_small=\"2\"\n data-slides_mobile_xsmall=\"1\"\n>\n <div class=\"features__inner relative\">\n <div class=\"features__container\">\n <div class=\"js-features-slider features__slider\">\n @for (item of items || []; track $index) {\n <div>\n <div class=\"features__item\">\n @if (item.icon) {\n <div class=\"features__icon\">\n <i class=\"{{ item.icon }}\"></i>\n </div>\n }\n @if (item.title) {\n <span class=\"features__text\">{{\n item.title\n }}</span>\n }\n </div>\n </div>\n }\n </div>\n <div class=\"js-slider-arrows\"></div>\n </div>\n </div>\n</section>\n" }]
|
|
12
|
+
}], propDecorators: { items: [{
|
|
13
|
+
type: Input
|
|
14
|
+
}] } });
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1hZHZhbnRhZ2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3B1cm8vc3JjL2xpYi9jb21wb25lbnRzL3B1cm8tYWR2YW50YWdlcy9wdXJvLWFkdmFudGFnZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby1hZHZhbnRhZ2VzL3B1cm8tYWR2YW50YWdlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBVXZELE1BQU0sT0FBTyx1QkFBdUI7K0dBQXZCLHVCQUF1QjttR0FBdkIsdUJBQXVCLDJHQ1pwQyxvNkNBdUNBLHlERGhDYyxZQUFZOzs0RkFLYix1QkFBdUI7a0JBUm5DLFNBQVM7K0JBQ0kscUJBQXFCLGNBQ25CLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsQ0FBQyxtQkFHM0IsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQdXJvU2xpZGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLXB1cm8tYWR2YW50YWdlcycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBQdXJvU2xpZGVyRGlyZWN0aXZlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHVyby1hZHZhbnRhZ2VzLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vcHVyby1hZHZhbnRhZ2VzLmNvbXBvbmVudC5zY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgUHVyb0FkdmFudGFnZXNDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIGl0ZW1zPzogUHVyb0FkdmFudGFnZXNJdGVtW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVyb0FkdmFudGFnZXNJdGVtIHtcbiAgICBpY29uPzogc3RyaW5nO1xuICAgIHRpdGxlPzogc3RyaW5nO1xufVxuIiwiPHNlY3Rpb25cbiAgICBjbGFzcz1cImZlYXR1cmVzIGpzLWFjdGl2ZS1zbGlkZXJcIlxuICAgIGRhdGEtc2xpZGVzX2luZmluaXRlPVwidHJ1ZVwiXG4gICAgZGF0YS1zbGlkZXJfbmFtZT1cImpzLWZlYXR1cmVzLXNsaWRlclwiXG4gICAgZGF0YS1zbGlkZXJfc2hvd2J0bnM9XCJ0cnVlXCJcbiAgICBkYXRhLXNsaWRlcl9zaG93ZG90cz1cImZhbHNlXCJcbiAgICBkYXRhLXNsaWRlcl9mYWRlPVwiZmFsc2VcIlxuICAgIGRhdGEtc2xpZGVyX2F1dG9wbGF5PVwiZmFsc2VcIlxuICAgIGRhdGEtc2xpZGVzX3BjPVwiM1wiXG4gICAgZGF0YS1zbGlkZXNfbGFwdG9wPVwiM1wiXG4gICAgZGF0YS1zbGlkZXNfdGFibGV0PVwiM1wiXG4gICAgZGF0YS1zbGlkZXNfbW9iaWxlPVwiMlwiXG4gICAgZGF0YS1zbGlkZXNfbW9iaWxlX3NtYWxsPVwiMlwiXG4gICAgZGF0YS1zbGlkZXNfbW9iaWxlX3hzbWFsbD1cIjFcIlxuPlxuICAgIDxkaXYgY2xhc3M9XCJmZWF0dXJlc19faW5uZXIgcmVsYXRpdmVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZlYXR1cmVzX19jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJqcy1mZWF0dXJlcy1zbGlkZXIgZmVhdHVyZXNfX3NsaWRlclwiPlxuICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgaXRlbXMgfHwgW107IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZlYXR1cmVzX19pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpdGVtLmljb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZlYXR1cmVzX19pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInt7IGl0ZW0uaWNvbiB9fVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS50aXRsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZlYXR1cmVzX190ZXh0XCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0udGl0bGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImpzLXNsaWRlci1hcnJvd3NcIj48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L3NlY3Rpb24+XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1hZHZhbnRhZ2VzLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3B1cm8vc3JjL2xpYi9jb21wb25lbnRzL3B1cm8tYWR2YW50YWdlcy9wdXJvLWFkdmFudGFnZXMuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQdXJvQWR2YW50YWdlc0l0ZW0gfSBmcm9tICcuL3B1cm8tYWR2YW50YWdlcy5jb21wb25lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFB1cm9BZHZhbnRhZ2VzSSB7XG4gICAgaXRlbXM/OiBQdXJvQWR2YW50YWdlc0l0ZW1bXTtcbn1cbiJdfQ==
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export * from './puro-grid3col-slider.component';
|
|
2
|
-
|
|
2
|
+
export * from './puro-grid3col-slider.interface';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wdXJvL3NyYy9saWIvY29tcG9uZW50cy9wdXJvLWdyaWQzY29sLXNsaWRlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsa0NBQWtDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3B1cm8tZ3JpZDNjb2wtc2xpZGVyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcHVyby1ncmlkM2NvbC1zbGlkZXIuaW50ZXJmYWNlJztcclxuIl19
|
|
@@ -1,11 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
3
|
+
import { PuroLinkTypeDirective, PuroSliderDirective } from '../../directives';
|
|
2
4
|
import * as i0 from "@angular/core";
|
|
3
5
|
export class PuroGrid3colSliderComponent {
|
|
4
6
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroGrid3colSliderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
7
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroGrid3colSliderComponent, isStandalone: true, selector: "lib-puro-grid3col-slider", inputs: { title: "title", button: "button", items: "items" }, ngImport: i0, template: "<section\n class=\"discover discover--noRadius js-active-slider\"\n [puroSlider]=\"items\"\n data-slides_infinite=\"true\"\n data-slider_name=\"js-discover-slider\"\n data-slider_showbtns=\"true\"\n data-slider_showdots=\"false\"\n data-slider_fade=\"false\"\n data-slider_autoplay=\"false\"\n data-slides_pc=\"3\"\n data-slides_laptop=\"2\"\n data-slides_tablet=\"2\"\n data-slides_mobile=\"1\"\n data-slides_mobile_small=\"1\"\n data-slides_mobile_xsmall=\"1\"\n>\n @if (title) {\n <span class=\"discover__title\">{{ title }}</span>\n }\n <div class=\"discover__inner relative\">\n <div class=\"discover__container\">\n <div\n class=\"js-discover-slider discover__slider js-slider_fix-arrows\"\n >\n @for (item of items || []; track $index) {\n @if (item) {\n <div>\n <a\n [href]=\"item.button?.url\"\n [linkType]=\"item.button?.linkType\"\n class=\"discover__box\"\n >\n <div\n class=\"discover__graphic js-slider_fix-arrows-zone\"\n >\n @if (item.img) {\n <img\n [src]=\"item.img.src\"\n width=\"391\"\n height=\"533\"\n class=\"discover__graphic--img\"\n [alt]=\"item.img.alt\"\n />\n }\n <div class=\"discover__content\">\n @if (item.pretitle) {\n <p class=\"discover__subHeading\">\n {{ item.pretitle }}\n </p>\n }\n @if (item.title) {\n <h3 class=\"discover__heading\">\n {{ item.title }}\n </h3>\n }\n </div>\n </div>\n @if (item.button) {\n <div class=\"btn__group\">\n <button\n class=\"btn btn__primary--outline\"\n >\n <span>{{ item.button.label }}</span>\n </button>\n </div>\n }\n </a>\n </div>\n }\n }\n </div>\n <div class=\"js-slider-arrows\"></div>\n @if (button) {\n <div class=\"btn__group\">\n <a\n [linkType]=\"button.linkType\"\n [href]=\"button.url\"\n class=\"btn btn__primary--outline\"\n ><span>{{ button.label }}</span></a\n >\n </div>\n }\n </div>\n </div>\n</section>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: PuroSliderDirective, selector: "[puroSlider]", inputs: ["puroSlider"] }, { kind: "directive", type: PuroLinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href"], outputs: ["bookClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6
8
|
}
|
|
7
9
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroGrid3colSliderComponent, decorators: [{
|
|
8
10
|
type: Component,
|
|
9
|
-
args: [{ selector: 'lib-puro-grid3col-slider', standalone: true, imports: [], template: "<
|
|
10
|
-
}]
|
|
11
|
-
|
|
11
|
+
args: [{ selector: 'lib-puro-grid3col-slider', standalone: true, imports: [CommonModule, PuroSliderDirective, PuroLinkTypeDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<section\n class=\"discover discover--noRadius js-active-slider\"\n [puroSlider]=\"items\"\n data-slides_infinite=\"true\"\n data-slider_name=\"js-discover-slider\"\n data-slider_showbtns=\"true\"\n data-slider_showdots=\"false\"\n data-slider_fade=\"false\"\n data-slider_autoplay=\"false\"\n data-slides_pc=\"3\"\n data-slides_laptop=\"2\"\n data-slides_tablet=\"2\"\n data-slides_mobile=\"1\"\n data-slides_mobile_small=\"1\"\n data-slides_mobile_xsmall=\"1\"\n>\n @if (title) {\n <span class=\"discover__title\">{{ title }}</span>\n }\n <div class=\"discover__inner relative\">\n <div class=\"discover__container\">\n <div\n class=\"js-discover-slider discover__slider js-slider_fix-arrows\"\n >\n @for (item of items || []; track $index) {\n @if (item) {\n <div>\n <a\n [href]=\"item.button?.url\"\n [linkType]=\"item.button?.linkType\"\n class=\"discover__box\"\n >\n <div\n class=\"discover__graphic js-slider_fix-arrows-zone\"\n >\n @if (item.img) {\n <img\n [src]=\"item.img.src\"\n width=\"391\"\n height=\"533\"\n class=\"discover__graphic--img\"\n [alt]=\"item.img.alt\"\n />\n }\n <div class=\"discover__content\">\n @if (item.pretitle) {\n <p class=\"discover__subHeading\">\n {{ item.pretitle }}\n </p>\n }\n @if (item.title) {\n <h3 class=\"discover__heading\">\n {{ item.title }}\n </h3>\n }\n </div>\n </div>\n @if (item.button) {\n <div class=\"btn__group\">\n <button\n class=\"btn btn__primary--outline\"\n >\n <span>{{ item.button.label }}</span>\n </button>\n </div>\n }\n </a>\n </div>\n }\n }\n </div>\n <div class=\"js-slider-arrows\"></div>\n @if (button) {\n <div class=\"btn__group\">\n <a\n [linkType]=\"button.linkType\"\n [href]=\"button.url\"\n class=\"btn btn__primary--outline\"\n ><span>{{ button.label }}</span></a\n >\n </div>\n }\n </div>\n </div>\n</section>\n" }]
|
|
12
|
+
}], propDecorators: { title: [{
|
|
13
|
+
type: Input
|
|
14
|
+
}], button: [{
|
|
15
|
+
type: Input
|
|
16
|
+
}], items: [{
|
|
17
|
+
type: Input
|
|
18
|
+
}] } });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1ncmlkM2NvbC1zbGlkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby1ncmlkM2NvbC1zbGlkZXIvcHVyby1ncmlkM2NvbC1zbGlkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby1ncmlkM2NvbC1zbGlkZXIvcHVyby1ncmlkM2NvbC1zbGlkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQVc5RSxNQUFNLE9BQU8sMkJBQTJCOytHQUEzQiwyQkFBMkI7bUdBQTNCLDJCQUEyQixrSkNieEMsNG9IQXFGQSx5REQ3RWMsWUFBWSwrQkFBRSxtQkFBbUIsaUZBQUUscUJBQXFCOzs0RkFLekQsMkJBQTJCO2tCQVJ2QyxTQUFTOytCQUNJLDBCQUEwQixjQUN4QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLENBQUMsbUJBR2xELHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQdXJvTGlua1R5cGVEaXJlY3RpdmUsIFB1cm9TbGlkZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IFB1cm9CdXR0b25JLCBQdXJvSW1hZ2VJIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLXB1cm8tZ3JpZDNjb2wtc2xpZGVyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFB1cm9TbGlkZXJEaXJlY3RpdmUsIFB1cm9MaW5rVHlwZURpcmVjdGl2ZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3B1cm8tZ3JpZDNjb2wtc2xpZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vcHVyby1ncmlkM2NvbC1zbGlkZXIuY29tcG9uZW50LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQdXJvR3JpZDNjb2xTbGlkZXJDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIHRpdGxlPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGJ1dHRvbj86IFB1cm9CdXR0b25JO1xuICAgIEBJbnB1dCgpIGl0ZW1zPzogUHVyb0dyaWQzY29sU2xpZGVySXRlbVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFB1cm9HcmlkM2NvbFNsaWRlckl0ZW0ge1xuICAgIGltZz86IFB1cm9JbWFnZUk7XG4gICAgcHJldGl0bGU/OiBzdHJpbmc7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgYnV0dG9uPzogUHVyb0J1dHRvbkk7XG59XG4iLCI8c2VjdGlvblxuICAgIGNsYXNzPVwiZGlzY292ZXIgZGlzY292ZXItLW5vUmFkaXVzIGpzLWFjdGl2ZS1zbGlkZXJcIlxuICAgIFtwdXJvU2xpZGVyXT1cIml0ZW1zXCJcbiAgICBkYXRhLXNsaWRlc19pbmZpbml0ZT1cInRydWVcIlxuICAgIGRhdGEtc2xpZGVyX25hbWU9XCJqcy1kaXNjb3Zlci1zbGlkZXJcIlxuICAgIGRhdGEtc2xpZGVyX3Nob3didG5zPVwidHJ1ZVwiXG4gICAgZGF0YS1zbGlkZXJfc2hvd2RvdHM9XCJmYWxzZVwiXG4gICAgZGF0YS1zbGlkZXJfZmFkZT1cImZhbHNlXCJcbiAgICBkYXRhLXNsaWRlcl9hdXRvcGxheT1cImZhbHNlXCJcbiAgICBkYXRhLXNsaWRlc19wYz1cIjNcIlxuICAgIGRhdGEtc2xpZGVzX2xhcHRvcD1cIjJcIlxuICAgIGRhdGEtc2xpZGVzX3RhYmxldD1cIjJcIlxuICAgIGRhdGEtc2xpZGVzX21vYmlsZT1cIjFcIlxuICAgIGRhdGEtc2xpZGVzX21vYmlsZV9zbWFsbD1cIjFcIlxuICAgIGRhdGEtc2xpZGVzX21vYmlsZV94c21hbGw9XCIxXCJcbj5cbiAgICBAaWYgKHRpdGxlKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZGlzY292ZXJfX3RpdGxlXCI+e3sgdGl0bGUgfX08L3NwYW4+XG4gICAgfVxuICAgIDxkaXYgY2xhc3M9XCJkaXNjb3Zlcl9faW5uZXIgcmVsYXRpdmVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRpc2NvdmVyX19jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImpzLWRpc2NvdmVyLXNsaWRlciBkaXNjb3Zlcl9fc2xpZGVyIGpzLXNsaWRlcl9maXgtYXJyb3dzXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGl0ZW1zIHx8IFtdOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmIChpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cIml0ZW0uYnV0dG9uPy51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwiaXRlbS5idXR0b24/LmxpbmtUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkaXNjb3Zlcl9fYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZGlzY292ZXJfX2dyYXBoaWMganMtc2xpZGVyX2ZpeC1hcnJvd3Mtem9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5pbWcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiaXRlbS5pbWcuc3JjXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzOTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCI1MzNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRpc2NvdmVyX19ncmFwaGljLS1pbWdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWx0XT1cIml0ZW0uaW1nLmFsdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkaXNjb3Zlcl9fY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5wcmV0aXRsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImRpc2NvdmVyX19zdWJIZWFkaW5nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnByZXRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpdGVtLnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImRpc2NvdmVyX19oZWFkaW5nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uYnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuX19ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuX19wcmltYXJ5LS1vdXRsaW5lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGl0ZW0uYnV0dG9uLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImpzLXNsaWRlci1hcnJvd3NcIj48L2Rpdj5cbiAgICAgICAgICAgIEBpZiAoYnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bl9fZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJidXR0b24ubGlua1R5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiYnV0dG9uLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG5fX3ByaW1hcnktLW91dGxpbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjxzcGFuPnt7IGJ1dHRvbi5sYWJlbCB9fTwvc3Bhbj48L2FcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvc2VjdGlvbj5cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1ncmlkM2NvbC1zbGlkZXIuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby1ncmlkM2NvbC1zbGlkZXIvcHVyby1ncmlkM2NvbC1zbGlkZXIuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQdXJvQnV0dG9uSSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgUHVyb0dyaWQzY29sU2xpZGVySXRlbSB9IGZyb20gJy4vcHVyby1ncmlkM2NvbC1zbGlkZXIuY29tcG9uZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBQdXJvR3JpZDNjb2xTbGlkZXJJIHtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBidXR0b24/OiBQdXJvQnV0dG9uSTtcbiAgICBpdGVtcz86IFB1cm9HcmlkM2NvbFNsaWRlckl0ZW1bXTtcbn1cbiJdfQ==
|
|
@@ -3,14 +3,14 @@ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class PuroScheduleComponent {
|
|
5
5
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroScheduleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroScheduleComponent, isStandalone: true, selector: "lib-puro-schedule", inputs: { items: "items", title: "title" }, ngImport: i0, template: "<section class=\"schedule\">\n @if (title) {\n <span class=\"schedule__title\">{{ title }}</span>\n }\n <div class=\"schedule__list\">\n @for (item of items || []; track $index) {\n <div class=\"schedule__box\">\n @if (item.title) {\n <p class=\"schedule__name\">{{ item.title }}</p>\n }\n @if (item.icon) {\n <span><i class=\"{{ item.icon }}\"></i></span>\n }\n @if (item.description) {\n <p class=\"schedule__time\">\n <span
|
|
6
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroScheduleComponent, isStandalone: true, selector: "lib-puro-schedule", inputs: { items: "items", title: "title" }, ngImport: i0, template: "<section class=\"schedule\">\n @if (title) {\n <span class=\"schedule__title\">{{ title }}</span>\n }\n <div class=\"schedule__list\">\n @for (item of items || []; track $index) {\n <div class=\"schedule__box\">\n @if (item.title) {\n <p class=\"schedule__name\">{{ item.title }}</p>\n }\n @if (item.icon) {\n <span><i class=\"{{ item.icon }}\"></i></span>\n }\n @if (item.description) {\n <p class=\"schedule__time\">\n <span [innerHTML]=\"item.description\"></span>\n </p>\n }\n </div>\n }\n </div>\n</section>\n", styles: ["i{width:36px;height:36px;background:#616160;-webkit-mask-size:36px;mask-size:36px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
7
7
|
}
|
|
8
8
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroScheduleComponent, decorators: [{
|
|
9
9
|
type: Component,
|
|
10
|
-
args: [{ selector: 'lib-puro-schedule', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<section class=\"schedule\">\n @if (title) {\n <span class=\"schedule__title\">{{ title }}</span>\n }\n <div class=\"schedule__list\">\n @for (item of items || []; track $index) {\n <div class=\"schedule__box\">\n @if (item.title) {\n <p class=\"schedule__name\">{{ item.title }}</p>\n }\n @if (item.icon) {\n <span><i class=\"{{ item.icon }}\"></i></span>\n }\n @if (item.description) {\n <p class=\"schedule__time\">\n <span
|
|
10
|
+
args: [{ selector: 'lib-puro-schedule', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<section class=\"schedule\">\n @if (title) {\n <span class=\"schedule__title\">{{ title }}</span>\n }\n <div class=\"schedule__list\">\n @for (item of items || []; track $index) {\n <div class=\"schedule__box\">\n @if (item.title) {\n <p class=\"schedule__name\">{{ item.title }}</p>\n }\n @if (item.icon) {\n <span><i class=\"{{ item.icon }}\"></i></span>\n }\n @if (item.description) {\n <p class=\"schedule__time\">\n <span [innerHTML]=\"item.description\"></span>\n </p>\n }\n </div>\n }\n </div>\n</section>\n", styles: ["i{width:36px;height:36px;background:#616160;-webkit-mask-size:36px;mask-size:36px}\n"] }]
|
|
11
11
|
}], propDecorators: { items: [{
|
|
12
12
|
type: Input
|
|
13
13
|
}], title: [{
|
|
14
14
|
type: Input
|
|
15
15
|
}] } });
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1zY2hlZHVsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wdXJvL3NyYy9saWIvY29tcG9uZW50cy9wdXJvLXNjaGVkdWxlL3B1cm8tc2NoZWR1bGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby1zY2hlZHVsZS9wdXJvLXNjaGVkdWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFVMUUsTUFBTSxPQUFPLHFCQUFxQjsrR0FBckIscUJBQXFCO21HQUFyQixxQkFBcUIseUhDWGxDLHd2QkFzQkEsNklEaEJjLFlBQVk7OzRGQUtiLHFCQUFxQjtrQkFSakMsU0FBUzsrQkFDSSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDLG1CQUdOLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsaWItcHVyby1zY2hlZHVsZScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHVyby1zY2hlZHVsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL3B1cm8tc2NoZWR1bGUuY29tcG9uZW50LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQdXJvU2NoZWR1bGVDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIGl0ZW1zPzogUHVyb1NjaGVkdWxlSXRlbVtdO1xuICAgIEBJbnB1dCgpIHRpdGxlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFB1cm9TY2hlZHVsZUl0ZW0ge1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIGljb24/OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG59XG4iLCI8c2VjdGlvbiBjbGFzcz1cInNjaGVkdWxlXCI+XG4gICAgQGlmICh0aXRsZSkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cInNjaGVkdWxlX190aXRsZVwiPnt7IHRpdGxlIH19PC9zcGFuPlxuICAgIH1cbiAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGVfX2xpc3RcIj5cbiAgICAgICAgQGZvciAoaXRlbSBvZiBpdGVtcyB8fCBbXTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGVfX2JveFwiPlxuICAgICAgICAgICAgICAgIEBpZiAoaXRlbS50aXRsZSkge1xuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInNjaGVkdWxlX19uYW1lXCI+e3sgaXRlbS50aXRsZSB9fTwvcD5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChpdGVtLmljb24pIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGkgY2xhc3M9XCJ7eyBpdGVtLmljb24gfX1cIj48L2k+PC9zcGFuPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJzY2hlZHVsZV9fdGltZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJpdGVtLmRlc2NyaXB0aW9uXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbjwvc2VjdGlvbj5cbiJdfQ==
|
|
@@ -90,10 +90,10 @@ export class PuroScriptDirective {
|
|
|
90
90
|
else {
|
|
91
91
|
height_selector = slider?.find('.js-slider_fix-arrows-zone');
|
|
92
92
|
}
|
|
93
|
-
var height = height_selector?.offset()
|
|
93
|
+
var height = height_selector?.offset()?.top -
|
|
94
94
|
height_selector
|
|
95
95
|
.parents('.relative')
|
|
96
|
-
.offset()
|
|
96
|
+
.offset()?.top +
|
|
97
97
|
height_selector.outerHeight() / 2;
|
|
98
98
|
arrows.css('top', height + 'px');
|
|
99
99
|
}
|
|
@@ -488,4 +488,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
488
488
|
standalone: true,
|
|
489
489
|
}]
|
|
490
490
|
}], ctorParameters: () => [] });
|
|
491
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1zY3JpcHQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2RpcmVjdGl2ZXMvcHVyby1zY3JpcHQvcHVyby1zY3JpcHQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFTekQsTUFBTSxPQUFPLG1CQUFtQjtJQUc1QjtRQUZBLGVBQVUsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFXLENBQUM7UUFHbkMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNSLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFO2dCQUNuQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDckI7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxzQkFBc0I7SUFDdEIsVUFBVTtRQUNOLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWix3QkFBd0I7WUFDeEIsU0FBUyxrQkFBa0IsQ0FBQyxFQUFlLEVBQUUsUUFBZ0I7Z0JBQ3pELElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxFQUNqQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRyxRQUFRLEVBQzdCLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUN4QixTQUFTLEdBQUcsT0FBTyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7Z0JBQzdDLE9BQU8sU0FBUyxDQUFDO1lBQ3JCLENBQUM7WUFFRCxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDO2dCQUNkLFNBQVMsVUFBVTtvQkFDZixJQUFJLFlBQVksR0FBRyxDQUFDLENBQUM7b0JBQ3JCLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDekIsSUFBSSxlQUFlLEdBQ2YsUUFB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eEM7d0JBQ0wsQ0FBQyxDQUFDLENBQUM7d0JBRVAsMEJBQTBCO3dCQUMxQixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7d0JBQ2IsZUFBZSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7cUJBQ3pDO3lCQUFNO3dCQUNILEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQzt3QkFDZCxlQUFlLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztxQkFDNUM7Z0JBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztRQUNYLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNaLENBQUM7K0dBL21CUSxtQkFBbUI7bUdBQW5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFKL0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGVmZmVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmRlY2xhcmUgdmFyICQ6IGFueTtcclxuZGVjbGFyZSB2YXIgalF1ZXJ5OiBhbnk7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW3NjcmlwdExvYWRlcl0nLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFB1cm9TY3JpcHREaXJlY3RpdmUge1xyXG4gICAgZGF0YUxvYWRlZCA9IGlucHV0LnJlcXVpcmVkPGJvb2xlYW4+KCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgZWZmZWN0KCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZGF0YUxvYWRlZCgpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRTY3JpcHQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGxvYWQgbW9kdWxlcyBzbGlkZXJcclxuICAgIGxvYWRTY3JpcHQoKSB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIGlmIGVsZW1lbnQgaXMgdmlzaWJsZVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBpc1Njcm9sbGVkSW50b1ZpZXcoZWw6IEhUTUxFbGVtZW50LCBkaXN0YW5jZTogbnVtYmVyKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgcmVjdCA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxyXG4gICAgICAgICAgICAgICAgICAgIGVsZW1Ub3AgPSByZWN0LnRvcCAtIGRpc3RhbmNlLFxyXG4gICAgICAgICAgICAgICAgICAgIGVsZW1Cb3R0b20gPSByZWN0LmJvdHRvbSxcclxuICAgICAgICAgICAgICAgICAgICBpc1Zpc2libGUgPSBlbGVtVG9wIDwgd2luZG93LmlubmVySGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzVmlzaWJsZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gbmF2X3N0aWNreSgpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgbW9iaWxlSGVhZGVyID0gMTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgc3BhY2UgPSAkKCcuYmFubmVyJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHdpbmRvd19wb3NpdGlvbiA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvd19wb3NpdGlvbiA+PSBzcGFjZT8ub3V0ZXJIZWlnaHQoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJ2JvZHknKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPy5jbGFzc0xpc3QuYWRkKCduYXYtc3RpY2t5Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5xdWVyeVNlbGVjdG9yKCdib2R5JylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8uY2xhc3NMaXN0LnJlbW92ZSgnbmF2LXN0aWNreScpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAod2luZG93X3Bvc2l0aW9uID49IG1vYmlsZUhlYWRlcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJ2JvZHknKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPy5jbGFzc0xpc3QuYWRkKCdtb2JpbGUtc3RpY2t5Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5xdWVyeVNlbGVjdG9yKCdib2R5JylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8uY2xhc3NMaXN0LnJlbW92ZSgnbW9iaWxlLXN0aWNreScpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAoZnVuY3Rpb24gKG8sIGE6IGFueSwgJCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChvICYmIGEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmF2X3N0aWNreSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2X3N0aWNreSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdib2R5JyksIGpRdWVyeSk7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gKGZ1bmN0aW9uIChhLCAkKSB7XHJcbiAgICAgICAgICAgICAgICAvLyAgICAgaWYgKGEubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgIGlmIChpc1Njcm9sbGVkSW50b1ZpZXcoYVswXSwgMzAwKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgbG9hZF9maWxlcygpO1xyXG4gICAgICAgICAgICAgICAgLy8gICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBpZiAoaXNTY3JvbGxlZEludG9WaWV3KGFbMF0sIDMwMCkpIHtcclxuICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICBsb2FkX2ZpbGVzKCk7XHJcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIH0pKFxyXG4gICAgICAgICAgICAgICAgLy8gICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5qcy1hY3RpdmUtc2xpZGVyJykgYXMgYW55LFxyXG4gICAgICAgICAgICAgICAgLy8gICAgIGpRdWVyeVxyXG4gICAgICAgICAgICAgICAgLy8gKTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBmdW5jdGlvbiBhcnJvd3Mgc2VjdGlvbiBwb3NpdGlvblxyXG4gICAgICAgICAgICAgICAgKGZ1bmN0aW9uIChhLCAkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGEubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICQoJy5qcy1zbGlkZXJfZml4LWFycm93cycpPy5lYWNoKGZ1bmN0aW9uIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXM6IEhUTUxFbGVtZW50XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNsaWRlciA9ICQodGhpcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgYXJyb3dzID0gc2xpZGVyLnNpYmxpbmdzKCcuanMtc2xpZGVyLWFycm93cycpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2FsY19wb3NpdGlvbigpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaGVpZ2h0X3NlbGVjdG9yO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/LmZpbmQoJy5qcy1zbGlkZXJfZml4LWFycm93cy16b25lJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8uaGFzQ2xhc3MoJ21vYmlsZScpICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5pbm5lcldpZHRoIDw9IDEyNzlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0X3NlbGVjdG9yID0gc2xpZGVyLmZpbmQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLmpzLXNsaWRlcl9maXgtYXJyb3dzLXpvbmUubW9iaWxlJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPy5maW5kKCcuanMtc2xpZGVyX2ZpeC1hcnJvd3Mtem9uZScpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/Lmhhc0NsYXNzKCdkZXNrdG9wJykgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmlubmVyV2lkdGggPj0gMTI4MFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHRfc2VsZWN0b3IgPSBzbGlkZXI/LmZpbmQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLmpzLXNsaWRlcl9maXgtYXJyb3dzLXpvbmUuZGVza3RvcCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHRfc2VsZWN0b3IgPSBzbGlkZXI/LmZpbmQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLmpzLXNsaWRlcl9maXgtYXJyb3dzLXpvbmUnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBoZWlnaHQgPVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHRfc2VsZWN0b3I/Lm9mZnNldCgpIS50b3AgLVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHRfc2VsZWN0b3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wYXJlbnRzKCcucmVsYXRpdmUnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm9mZnNldCgpIS50b3AgK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHRfc2VsZWN0b3Iub3V0ZXJIZWlnaHQoKSEgLyAyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycm93cy5jc3MoJ3RvcCcsIGhlaWdodCArICdweCcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsY19wb3NpdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsY19wb3NpdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgNTAwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQod2luZG93KS5zY3JvbGwoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGNfcG9zaXRpb24oKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuanMtc2xpZGVyX2ZpeC1hcnJvd3MnKSwgalF1ZXJ5KTtcclxuXHJcbiAgICAgICAgICAgICAgICAoZnVuY3Rpb24gKGEsICQpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy9vcGVuIHBvcHVwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICQoJy5qcy1hY3RpdmUtbW9kYWwnKT8uZWFjaChmdW5jdGlvbiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzOiBIVE1MRWxlbWVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwYXJlbnQgPSAkKHRoaXMpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGFsX25hbWUgPSBwYXJlbnQuZGF0YSgnbW9kYWxfbmFtZScpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50LmNsaWNrKGZ1bmN0aW9uICh0aGlzOiBIVE1MRWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtb2RhbF9uYW1lID09PSAnZ2FsbGVyeScpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdGVkID0gJCh0aGlzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGZpbHRlciA9IHNlbGVjdGVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucGFyZW50KClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hdHRyKCdkYXRhLWNhdGVnb3J5Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzbGlkZXIgPSAkKCcubW9kYWxfX3pvb20tLXNsaWRlcicpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbWFpbl9waG90byA9IHNlbGVjdGVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucGFyZW50KClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hdHRyKCdkYXRhLWltZycpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbWFpbl90aXRsZSA9IHNlbGVjdGVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucGFyZW50KClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hdHRyKCdkYXRhLXRpdGxlJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBtYWluX2lkID0gc2VsZWN0ZWQucGFyZW50KCkuYXR0cignaWQnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGltZyA9ICQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPGRpdj48c3BhbiBjbGFzcz1cIm1vZGFsX190aXRsZVwiPicgK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1haW5fdGl0bGUgK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8L3NwYW4+IDxpbWcgY2xhc3M9XCJtb2RhbF9fc2xpZGVyLS1pbWdcIiBzcmM9XCInICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWluX3Bob3RvICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXCIgLz48L2Rpdj4nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlci5hcHBlbmQoaW1nKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJy5qcy1maWx0ZXItZ2FsbGVyeS5hY3RpdmUnKT8uYXR0cihcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YS1maWx0ZXJfY2F0ZWdvcnknXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApID09PSAnYWxsJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgkKCcuZmlsdGVyLWl0ZW1zJykgYXMgYW55KT8uZWFjaChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZTogSFRNTEVsZW1lbnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdhbGxlcnlfaXRlbTogSFRNTEVsZW1lbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChnYWxsZXJ5X2l0ZW0pPy5pcyhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnOnZpc2libGUnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBob3RvID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGdhbGxlcnlfaXRlbSk/LmF0dHIoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhLWltZydcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRpdGxlID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGdhbGxlcnlfaXRlbSk/LmF0dHIoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhLXRpdGxlJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgYXBwZW5kX2lkID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGdhbGxlcnlfaXRlbSk/LmF0dHIoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpZCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGltZyA9ICQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxkaXY+PHNwYW4gY2xhc3M9XCJtb2RhbF9fdGl0bGVcIj4nICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGUgK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zcGFuPjxpbWcgY2xhc3M9XCJtb2RhbF9fc2xpZGVyLS1pbWdcIiBzcmM9XCInICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGhvdG8gK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXCIgLz48L2Rpdj4nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1haW5faWQgIT0gYXBwZW5kX2lkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVyLmFwcGVuZChpbWcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnW2RhdGEtY2F0ZWdvcnk9JyArIGZpbHRlciArICddJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgYXMgYW55XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApPy5lYWNoKGZ1bmN0aW9uIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGU6IEhUTUxFbGVtZW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdhbGxlcnlfaXRlbTogSFRNTEVsZW1lbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChnYWxsZXJ5X2l0ZW0pPy5pcygnOnZpc2libGUnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGhvdG8gPVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChnYWxsZXJ5X2l0ZW0pPy5hdHRyKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhLWltZydcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0aXRsZSA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGdhbGxlcnlfaXRlbSk/LmF0dHIoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEtdGl0bGUnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgYXBwZW5kX2lkID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZ2FsbGVyeV9pdGVtKT8uYXR0cignaWQnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGltZyA9ICQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPGRpdj48c3BhbiBjbGFzcz1cIm1vZGFsX190aXRsZVwiPicgK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zcGFuPjxpbWcgY2xhc3M9XCJtb2RhbF9fc2xpZGVyLS1pbWdcIiBzcmM9XCInICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG90byArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1wiIC8+PC9kaXY+J1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWFpbl9pZCAhPSBhcHBlbmRfaWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlci5hcHBlbmQoaW1nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvYWRfZmlsZXMoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc2xpZGVyX2Fycm93cyA9ICQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy5tb2RhbF9fem9vbS0tc2xpZGVyJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wYXJlbnQoKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKCcuanMtc2xpZGVyLWFycm93cycpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJy5tb2RhbF9fem9vbS0tc2xpZGVyJykgYXMgYW55XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApPy5zbGljayh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFkZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRBcnJvd3M6IHNsaWRlcl9hcnJvd3MsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldkFycm93OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjxkaXYgY2xhc3M9J3ByZXYgc2xpY2stYnRuIHNsaWNrLXByZXYgc2xpY2stYXJyb3cnIHJvbGU9J2J1dHRvbicgdGFiaW5kZXg9JzAnPjxpIGNsYXNzPSdpY29uLTYnPjwvaT48L2Rpdj5cIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0QXJyb3c6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiPGRpdiBjbGFzcz0nbmV4dCBzbGljay1idG4gc2xpY2stbmV4dCBzbGljay1hcnJvdycgcm9sZT0nYnV0dG9uJyB0YWJpbmRleD0nMCc+PGkgY2xhc3M9J2ljb24tNic+PC9pPjwvZGl2PlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIDEwMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobW9kYWxfbmFtZSA9PT0gJ3Qtb2ZmZXJzJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCdib2R5Jyk/LmFkZENsYXNzKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kYWxfbmFtZSArICcgdG9hc3RzLS1vcGVuJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJ2JvZHknKT8uYWRkQ2xhc3MoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RhbF9uYW1lICsgJyBtb2RhbC0tb3BlbidcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSkoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmpzLWFjdGl2ZS1tb2RhbCcpLCBqUXVlcnkpO1xyXG5cclxuICAgICAgICAgICAgICAgIChmdW5jdGlvbiAoYSwgJCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChhLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2Nsb3NlIHBvcHVwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICQoJy5qcy1jbG9zZScpPy5lYWNoKGZ1bmN0aW9uICh0aGlzOiBIVE1MRWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBhcmVudCA9ICQodGhpcyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kYWxfbmFtZSA9IHBhcmVudC5kYXRhKCdtb2RhbF9uYW1lJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQuY2xpY2soZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtb2RhbF9uYW1lID09PSAnZ2FsbGVyeScpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCQoJy5tb2RhbF9fem9vbS0tc2xpZGVyJykgYXMgYW55KT8uc2xpY2soXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndW5zbGljaydcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnLm1vZGFsX196b29tLS1zbGlkZXInKT8uZW1wdHkoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnYm9keScpPy5oYXNDbGFzcyhtb2RhbF9uYW1lKSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCdib2R5Jyk/Lmhhc0NsYXNzKCdtb2RhbC0tb3BlbicpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICQoJ2JvZHknKS5yZW1vdmVDbGFzcyhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGFsX25hbWUgKyAnIG1vZGFsLS1vcGVuJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICQoJ2JvZHknKS5hZGRDbGFzcygnJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtb2RhbF9uYW1lID09PSAndC1vZmZlcnMnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJ2JvZHknKS5yZW1vdmVDbGFzcyhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGFsX25hbWUgKyAnIHRvYXN0cy0tb3BlbidcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCdib2R5JykuaGFzQ2xhc3MobW9kYWxfbmFtZSkgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnYm9keScpLmhhc0NsYXNzKCdtb2RhbC0tb3BlbicpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICQoJ2JvZHknKS5yZW1vdmVDbGFzcyhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGFsX25hbWUgKyAnIG1vZGFsLS1vcGVuJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICQoJ2JvZHknKS5hZGRDbGFzcygnJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5qcy1jbG9zZScpLCBqUXVlcnkpO1xyXG5cclxuICAgICAgICAgICAgICAgIChmdW5jdGlvbiAoYSwgJCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChhLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkKCcuanMtZmlsdGVyLWdhbGxlcnknKT8uZWFjaChmdW5jdGlvbiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzOiBIVE1MRWxlbWVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBmaWx0ZXI6IGFueSwgYWN0aXZlX2ZpbHRlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlciA9ICQodGhpcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIuY2xpY2soZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJy5qcy1maWx0ZXItZ2FsbGVyeScpPy5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyLmFkZENsYXNzKCdhY3RpdmUnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVfZmlsdGVyID0gZmlsdGVyPy5hdHRyKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YS1maWx0ZXJfY2F0ZWdvcnknXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWN0aXZlX2ZpbHRlciA9PT0gJ2JlYWNoQ2x1YicpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcuZ2FsbGVyeV9fbGlzdCAuZ2FsbGVyeV9faXRlbSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKT8uYWRkQ2xhc3MoJ3Nob3cnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy5nYWxsZXJ5X19saXN0IC5nYWxsZXJ5X19pdGVtJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApPy5yZW1vdmVDbGFzcygnc2hvdycpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy5nYWxsZXJ5X19saXN0IC5nYWxsZXJ5X19pdGVtW2RhdGEtY2F0ZWdvcnk9XCInICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVfZmlsdGVyICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXCJdJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApPy5hZGRDbGFzcygnc2hvdycpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb3ZlU2hvd0l0ZW1zVG9Ub3AoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gbW92ZVNob3dJdGVtc1RvVG9wKCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyICRnYWxsZXJ5TGlzdCA9ICQoJy5nYWxsZXJ5X19saXN0Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgJHNob3dJdGVtcyA9ICRnYWxsZXJ5TGlzdD8uZmluZChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLmdhbGxlcnlfX2l0ZW0uc2hvdydcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRzaG93SXRlbXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNob3dJdGVtcy5kZXRhY2goKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2FsbGVyeUxpc3QucHJlcGVuZCgkc2hvd0l0ZW1zKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtb3ZlU2hvd0l0ZW1zVG9Ub3AoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuanMtZmlsdGVyLWdhbGxlcnknKSwgalF1ZXJ5KTtcclxuXHJcbiAgICAgICAgICAgICAgICAoZnVuY3Rpb24gKGEsICQpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJCgnLmpzLWFjY29yZGlvbicpPy5lYWNoKGZ1bmN0aW9uICh0aGlzOiBIVE1MRWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRhYiA9ICQodGhpcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWIuY2xpY2soZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYi5wYXJlbnRzKCcuZmFxX19pdGVtJykudG9nZ2xlQ2xhc3MoJ2FjdGl2ZScpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYi5uZXh0KCcuZmFxX19jb250ZW50Jykuc2xpZGVUb2dnbGUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuanMtYWNjb3JkaW9uJyksIGpRdWVyeSk7XHJcbiAgICAgICAgICAgICAgICAoZnVuY3Rpb24gKGEsICQpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJCgnLmJ0bl9fbW9yZUxlc3MnKT8ub24oXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2xpY2snLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKHRoaXM6IEhUTUxFbGVtZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYnV0dG9uID0gJCh0aGlzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8uY2xvc2VzdCgnc2VjdGlvbicpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8uZmluZCgnLm1vcmUtY29udGVudCcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlY3Rpb24gPSBidXR0b24/LmNsb3Nlc3QoJ3NlY3Rpb24nKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudC5zbGlkZVRvZ2dsZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzSGlkZGVuID0gY29udGVudC5pcygnOmhpZGRlbicpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWN0aW9uLnRvZ2dsZUNsYXNzKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21vcmVMZXNzLS1hY3RpdmUnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWlzSGlkZGVuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSkoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmJ0bl9fbW9yZUxlc3MnKSwgalF1ZXJ5KTtcclxuICAgICAgICAgICAgICAgIChmdW5jdGlvbiAoJCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vICQoXCIuanMtc2Nyb2xsdG9cIikuZWFjaChmdW5jdGlvbigpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgJCh0aGlzKS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgdmFyIHNjcm9sbFRvU2VsZWN0b3IgPSAkKHRoaXMpLmRhdGEoXCJzY3JvbGxfdG9cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICB2YXIgc3BhY2VyID0gcGFyc2VJbnQoJCh0aGlzKS5kYXRhKFwic2Nyb2xsX3NwYWNlclwiKSwgMTApIHx8IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICB2YXIgaXNBY3RpdmVTY3JvbGwgPSAkKHRoaXMpLnBhcmVudCgndWwnKS5kYXRhKCdzY3JvbGxfYWN0aXZlJyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgaWYgKCQod2luZG93KS53aWR0aCgpID49IDc2OCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgIHNwYWNlciArPSAyMDtcclxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgIH0gZWxzZSBpZiAoJCh3aW5kb3cpLndpZHRoKCkgPj0gNTQwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgc3BhY2VyICs9IDEwO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgIGlmIChzY3JvbGxUb1NlbGVjdG9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgJChcImh0bWwsIGJvZHlcIikuYW5pbWF0ZSh7IHNjcm9sbFRvcDogJChzY3JvbGxUb1NlbGVjdG9yKS5vZmZzZXQoKS50b3AgLSBzcGFjZXIgfSwgMTAwMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgaWYgKGlzQWN0aXZlU2Nyb2xsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygnYWN0aXZlJykuc2libGluZ3MoKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vICQod2luZG93KS5vbihcInNjcm9sbFwiLCBmdW5jdGlvbigpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgdmFyIHNjcm9sbFBvcyA9ICQod2luZG93KS5zY3JvbGxUb3AoKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgICQoXCIuanMtc2Nyb2xsdG9cIikuZWFjaChmdW5jdGlvbigpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgIHZhciBzcGFjZXIgPSBwYXJzZUludCgkKHRoaXMpLmRhdGEoXCJzY3JvbGxfc3BhY2VyXCIpLCAxMCkgfHwgMDtcclxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgIHZhciBzY3JvbGxUb1NlbGVjdG9yID0gJCh0aGlzKS5kYXRhKFwic2Nyb2xsX3RvXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgdmFyIGlzQWN0aXZlU2Nyb2xsID0gJCh0aGlzKS5wYXJlbnQoJ3VsJykuZGF0YSgnc2Nyb2xsX2FjdGl2ZScpO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgdmFyIG9mZnNldFRvcCA9ICQoc2Nyb2xsVG9TZWxlY3Rvcikub2Zmc2V0KCkudG9wO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgIGlmICgkKHdpbmRvdykud2lkdGgoKSA+PSA3NjgpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBzcGFjZXIgKz0gMzA7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICB9IGVsc2UgaWYgKCQod2luZG93KS53aWR0aCgpID49IDU0MCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgIHNwYWNlciArPSAyMDtcclxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgIGlmIChpc0FjdGl2ZVNjcm9sbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgIGlmICgkKHNjcm9sbFRvU2VsZWN0b3IpLmNzcygnZGlzcGxheScpICE9PSAnbm9uZScgJiYgc2Nyb2xsUG9zID49IG9mZnNldFRvcCAtIHNwYWNlciAmJiBzY3JvbGxQb3MgPCBvZmZzZXRUb3AgKyAkKHNjcm9sbFRvU2VsZWN0b3IpLm91dGVySGVpZ2h0KCkgLSBzcGFjZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygnYWN0aXZlJykuc2libGluZ3MoKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAvKiBoaWRlIG9mZmVycyB0b2FzdHMqL1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRiYW5uZXIgPSAkKCcuYmFubmVyJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2hlY2tCYW5uZXJWaXNpYmlsaXR5KCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBiYW5uZXJUb3AgPSAkYmFubmVyPy5vZmZzZXQoKT8udG9wID8/IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJhbm5lckJvdHRvbSA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYW5uZXJUb3AgPz9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAgKyAoJGJhbm5lciBhcyBhbnkpPy5vdXRlckhlaWdodCgpID8/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2aWV3cG9ydFRvcCA9ICQod2luZG93KS5zY3JvbGxUb3AoKSA/PyAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2aWV3cG9ydEJvdHRvbSA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3cG9ydFRvcCA/PyAwICsgKCQod2luZG93KS5oZWlnaHQoKSBhcyBhbnkpID8/IDA7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYW5uZXJCb3R0b20gPD0gdmlld3BvcnRUb3AgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhbm5lclRvcCA+PSB2aWV3cG9ydEJvdHRvbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJ2JvZHknKS5yZW1vdmVDbGFzcygndC1vZmZlcnMgdG9hc3RzLS1vcGVuJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICQod2luZG93KS5vbignc2Nyb2xsIHJlc2l6ZScsIGNoZWNrQmFubmVyVmlzaWJpbGl0eSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tCYW5uZXJWaXNpYmlsaXR5KCk7XHJcbiAgICAgICAgICAgICAgICB9KShqUXVlcnkpLFxyXG4gICAgICAgICAgICAgICAgICAgICQoJy5tYXBQb2ludHNfX2l0ZW0nKT8uZWFjaChmdW5jdGlvbiAodGhpczogSFRNTEVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSAkKHRoaXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZWxlbWVudEljb24gPSBlbGVtZW50LmZpbmQoJy5pY29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRJY29uLm9uKCdjbGljaycsIGZ1bmN0aW9uIChlOiBIVE1MRWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zaWJsaW5ncygpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudG9nZ2xlQ2xhc3MoJ2FjdGl2ZScpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICAkKCcuanMtcGVyc29uYXMtc3ViZmllbGRzJykuY2xpY2soZnVuY3Rpb24gKHRoaXM6IEhUTUxFbGVtZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5uZXh0KCcuanMtZmllbGRTdWInKS5zbGlkZVRvZ2dsZSgpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAkKCcuanMtYXBwbHktZ3Vlc3RzJykuY2xpY2soZnVuY3Rpb24gKHRoaXM6IEhUTUxFbGVtZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9ICQodGhpcykucGFyZW50cygnLmJhbm5lcl9fZmllbGRTdWInKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgciA9IHBhcnNlSW50KCQoJyNhZHVsdCcpLnZhbCgpKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gcGFyc2VJbnQoJCgnI2NoaWxkJykudmFsKCkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG4gPSByICsgYTtcclxuICAgICAgICAgICAgICAgICAgICBlLmhpZGUoKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG4gPD0gOSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnNpYmxpbmdzKCcuanMtcGVyc29uYXMtc3ViZmllbGRzJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKCcuYmFubmVyX19maWVsZENvbnRyb2wnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRleHQoJzAnICsgbik7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZS5zaWJsaW5ncygnLmpzLXBlcnNvbmFzLXN1YmZpZWxkcycpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmluZCgnLmJhbm5lcl9fZmllbGRDb250cm9sJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50ZXh0KG4pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgJCgnLmpzLWFwcGx5LWd1ZXN0czEnKS5jbGljayhmdW5jdGlvbiAodGhpczogSFRNTEVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gJCh0aGlzKS5wYXJlbnRzKCcuYm9va2luZ19fZmllbGRTdWInKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgciA9IHBhcnNlSW50KCQoJyNhZHVsdDEnKS52YWwoKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHBhcnNlSW50KCQoJyNjaGlsZDEnKS52YWwoKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbiA9IHIgKyBhO1xyXG4gICAgICAgICAgICAgICAgICAgIGUuaGlkZSgpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAobiA8PSA5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGUuc2libGluZ3MoJy5qcy1wZXJzb25hcy1zdWJmaWVsZHMnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbmQoJy5ib29raW5nX19maWVsZENvbnRyb2wnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRleHQoJzAnICsgbik7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZS5zaWJsaW5ncygnLmpzLXBlcnNvbmFzLXN1YmZpZWxkcycpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmluZCgnLmJvb2tpbmdfX2ZpZWxkQ29udHJvbCcpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGV4dChuKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICAkKCcuYm9va2luZ19fZmllbGRDb250cm9sW3R5cGU9XCJ0ZXh0XCJdJykuZWFjaChmdW5jdGlvbiAoXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpczogSFRNTEVsZW1lbnRcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBkZWZhdWx0dmFsdWU6IGFueTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGZpZWxkSW5uZXIgPSAkKHRoaXMpLnBhcmVudHMoJy5ib29raW5nX19maWVsZElubmVyJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFkZWZhdWx0dmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdHZhbHVlID0gJGZpZWxkSW5uZXIuYXR0cignc3R5bGUnKSB8fCAnJztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICQodGhpcykub24oJ2tleXVwJywgZnVuY3Rpb24gKHRoaXM6IEhUTUxFbGVtZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRleHRMZW5ndGggPSAkKHRoaXMpLnZhbCgpLmxlbmd0aCAqIDEuMztcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2codGV4dExlbmd0aCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXh0TGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmaWVsZElubmVyLmF0dHIoJ3N0eWxlJywgZGVmYXVsdHZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmaWVsZElubmVyLmNzcyhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLS1sYWJlbExlZnRQb3NpdGlvbicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dExlbmd0aCArICdyZW0nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAkKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgICQoJ1tkYXRhLXRvZ2dsZT1cImRhdGVwaWNrZXJcIl0nKS5lYWNoKGZ1bmN0aW9uIChcclxuICAgICAgICAgICAgICAgICAgICB0aGlzOiBIVE1MRWxlbWVudFxyXG4gICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5kYXRlcGlja2VyKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXV0b0hpZGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHpJbmRleDogOTk5OSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmVmb3JlU2hvdzogZnVuY3Rpb24gKGlucHV0OiBIVE1MRWxlbWVudCwgaW5zdDogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dE9mZnNldCA9ICQoaW5wdXQpLm9mZnNldCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0V2lkdGggPSAkKGlucHV0KS5vdXRlcldpZHRoKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXRIZWlnaHQgPSAkKGlucHV0KS5vdXRlckhlaWdodCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc3QuZHBEaXYuY3NzKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRPZmZzZXQudG9wIC1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc3QuZHBEaXYub3V0ZXJIZWlnaHQoKSAtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMCArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHgnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiBpbnB1dE9mZnNldC5sZWZ0ICsgJ3B4JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAkKCdbZGF0YS10b2dnbGU9XCJkYXRlcGlja2VyMVwiXScpLmVhY2goZnVuY3Rpb24gKFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXM6IEhUTUxFbGVtZW50XHJcbiAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmRhdGVwaWNrZXIoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhdXRvSGlkZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgekluZGV4OiA5OTk5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBiZWZvcmVTaG93OiBmdW5jdGlvbiAoaW5wdXQ6IEhUTUxFbGVtZW50LCBpbnN0OiBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0T2Zmc2V0ID0gJChpbnB1dCkub2Zmc2V0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXRXaWR0aCA9ICQoaW5wdXQpLm91dGVyV2lkdGgoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dEhlaWdodCA9ICQoaW5wdXQpLm91dGVySGVpZ2h0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zdC5kcERpdi5jc3Moe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dE9mZnNldC50b3AgK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRIZWlnaHQgK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAgK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3B4JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogaW5wdXRPZmZzZXQubGVmdCArICdweCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIC8vIGNvbnN0IHZpZGVvcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuZXZlbnRWaWRlbyB2aWRlb1wiKTtcclxuICAgICAgICAgICAgLy8gaWYgKHZpZGVvcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIC8vICAgICB2aWRlb3MuZm9yRWFjaCh2aWRlbyA9PiB7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgdmlkZW8uYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlZW50ZXJcIiwgKCkgPT4ge1xyXG4gICAgICAgICAgICAvLyAgICAgICAgICAgICB2aWRlby5wbGF5KCk7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgICAgIHZpZGVvLmNsYXNzTGlzdC5hZGQoXCJob3ZlclwiKTtcclxuICAgICAgICAgICAgLy8gICAgICAgICB9KTtcclxuICAgICAgICAgICAgLy8gICAgICAgICB2aWRlby5hZGRFdmVudExpc3RlbmVyKFwibW91c2VsZWF2ZVwiLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgICAgIHZpZGVvLnBhdXNlKCk7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgICAgIHZpZGVvLmNsYXNzTGlzdC5yZW1vdmUoXCJob3ZlclwiKTtcclxuICAgICAgICAgICAgLy8gICAgICAgICB9KTtcclxuICAgICAgICAgICAgLy8gICAgIH0pO1xyXG4gICAgICAgICAgICAvLyB9XHJcblxyXG4gICAgICAgICAgICBkb2N1bWVudFxyXG4gICAgICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoJy5zcG90aWZ5UGxheWVyX19hbGJ1bScpXHJcbiAgICAgICAgICAgICAgICAuZm9yRWFjaCgoY29udGFpbmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYXVkaW8gPSBjb250YWluZXIucXVlcnlTZWxlY3RvcihcclxuICAgICAgICAgICAgICAgICAgICAgICAgJy5zcG90aWZ5UGxheWVyX19tcDMnXHJcbiAgICAgICAgICAgICAgICAgICAgKSBhcyBhbnk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGxheVBhdXNlQnV0dG9uID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICcuc3BvdGlmeVBsYXllcl9fYWxidW1QbGF5UGF1c2UnXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcGxheVBhdXNlQnV0dG9uPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF1ZGlvPy5wYXVzZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBhdXNlIGFueSBvdGhlciBwbGF5aW5nIGF1ZGlvIGVsZW1lbnRzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5xdWVyeVNlbGVjdG9yQWxsKCcuc3BvdGlmeVBsYXllcl9fbXAzJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaCgob3RoZXJBdWRpbzogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvdGhlckF1ZGlvICE9PSBhdWRpbykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXJBdWRpby5wYXVzZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3RoZXJCdXR0b24gPSBvdGhlckF1ZGlvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNsb3Nlc3QoJy5zcG90aWZ5UGxheWVyX19hbGJ1bScpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcuc3BvdGlmeVBsYXllcl9fYWxidW1QbGF5UGF1c2UnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG90aGVyQnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoJ3BsYXknKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBsYXkgdGhlIHNlbGVjdGVkIGF1ZGlvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpby5wbGF5KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGF5UGF1c2VCdXR0b24uY2xhc3NMaXN0LmFkZCgncGxheScpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW8ucGF1c2UoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXlQYXVzZUJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCdwbGF5Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0sIDEwMCk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
491
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1zY3JpcHQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2RpcmVjdGl2ZXMvcHVyby1zY3JpcHQvcHVyby1zY3JpcHQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFTekQsTUFBTSxPQUFPLG1CQUFtQjtJQUc1QjtRQUZBLGVBQVUsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFXLENBQUM7UUFHbkMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNSLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFO2dCQUNuQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDckI7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxzQkFBc0I7SUFDdEIsVUFBVTtRQUNOLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWix3QkFBd0I7WUFDeEIsU0FBUyxrQkFBa0IsQ0FBQyxFQUFlLEVBQUUsUUFBZ0I7Z0JBQ3pELElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxFQUNqQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRyxRQUFRLEVBQzdCLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUN4QixTQUFTLEdBQUcsT0FBTyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7Z0JBQzdDLE9BQU8sU0FBUyxDQUFDO1lBQ3JCLENBQUM7WUFFRCxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDO2dCQUNkLFNBQVMsVUFBVTtvQkFDZixJQUFJLFlBQVksR0FBRyxDQUFDLENBQUM7b0JBQ3JCLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDekIsSUFBSSxlQUFlLEdBQ2YsUUFB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eEM7d0JBQ0wsQ0FBQyxDQUFDLENBQUM7d0JBRVAsMEJBQTBCO3dCQUMxQixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7d0JBQ2IsZUFBZSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7cUJBQ3pDO3lCQUFNO3dCQUNILEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQzt3QkFDZCxlQUFlLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztxQkFDNUM7Z0JBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztRQUNYLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNaLENBQUM7K0dBL21CUSxtQkFBbUI7bUdBQW5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFKL0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGVmZmVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmRlY2xhcmUgdmFyICQ6IGFueTtcclxuZGVjbGFyZSB2YXIgalF1ZXJ5OiBhbnk7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW3NjcmlwdExvYWRlcl0nLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFB1cm9TY3JpcHREaXJlY3RpdmUge1xyXG4gICAgZGF0YUxvYWRlZCA9IGlucHV0LnJlcXVpcmVkPGJvb2xlYW4+KCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgZWZmZWN0KCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZGF0YUxvYWRlZCgpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRTY3JpcHQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGxvYWQgbW9kdWxlcyBzbGlkZXJcclxuICAgIGxvYWRTY3JpcHQoKSB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIGlmIGVsZW1lbnQgaXMgdmlzaWJsZVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBpc1Njcm9sbGVkSW50b1ZpZXcoZWw6IEhUTUxFbGVtZW50LCBkaXN0YW5jZTogbnVtYmVyKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgcmVjdCA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxyXG4gICAgICAgICAgICAgICAgICAgIGVsZW1Ub3AgPSByZWN0LnRvcCAtIGRpc3RhbmNlLFxyXG4gICAgICAgICAgICAgICAgICAgIGVsZW1Cb3R0b20gPSByZWN0LmJvdHRvbSxcclxuICAgICAgICAgICAgICAgICAgICBpc1Zpc2libGUgPSBlbGVtVG9wIDwgd2luZG93LmlubmVySGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzVmlzaWJsZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gbmF2X3N0aWNreSgpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgbW9iaWxlSGVhZGVyID0gMTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgc3BhY2UgPSAkKCcuYmFubmVyJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHdpbmRvd19wb3NpdGlvbiA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvd19wb3NpdGlvbiA+PSBzcGFjZT8ub3V0ZXJIZWlnaHQoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJ2JvZHknKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPy5jbGFzc0xpc3QuYWRkKCduYXYtc3RpY2t5Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5xdWVyeVNlbGVjdG9yKCdib2R5JylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8uY2xhc3NMaXN0LnJlbW92ZSgnbmF2LXN0aWNreScpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAod2luZG93X3Bvc2l0aW9uID49IG1vYmlsZUhlYWRlcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJ2JvZHknKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPy5jbGFzc0xpc3QuYWRkKCdtb2JpbGUtc3RpY2t5Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5xdWVyeVNlbGVjdG9yKCdib2R5JylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8uY2xhc3NMaXN0LnJlbW92ZSgnbW9iaWxlLXN0aWNreScpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAoZnVuY3Rpb24gKG8sIGE6IGFueSwgJCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChvICYmIGEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmF2X3N0aWNreSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2X3N0aWNreSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdib2R5JyksIGpRdWVyeSk7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gKGZ1bmN0aW9uIChhLCAkKSB7XHJcbiAgICAgICAgICAgICAgICAvLyAgICAgaWYgKGEubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgIGlmIChpc1Njcm9sbGVkSW50b1ZpZXcoYVswXSwgMzAwKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgbG9hZF9maWxlcygpO1xyXG4gICAgICAgICAgICAgICAgLy8gICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBpZiAoaXNTY3JvbGxlZEludG9WaWV3KGFbMF0sIDMwMCkpIHtcclxuICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICBsb2FkX2ZpbGVzKCk7XHJcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIH0pKFxyXG4gICAgICAgICAgICAgICAgLy8gICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5qcy1hY3RpdmUtc2xpZGVyJykgYXMgYW55LFxyXG4gICAgICAgICAgICAgICAgLy8gICAgIGpRdWVyeVxyXG4gICAgICAgICAgICAgICAgLy8gKTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBmdW5jdGlvbiBhcnJvd3Mgc2VjdGlvbiBwb3NpdGlvblxyXG4gICAgICAgICAgICAgICAgKGZ1bmN0aW9uIChhLCAkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGEubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICQoJy5qcy1zbGlkZXJfZml4LWFycm93cycpPy5lYWNoKGZ1bmN0aW9uIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXM6IEhUTUxFbGVtZW50XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNsaWRlciA9ICQodGhpcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgYXJyb3dzID0gc2xpZGVyLnNpYmxpbmdzKCcuanMtc2xpZGVyLWFycm93cycpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2FsY19wb3NpdGlvbigpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaGVpZ2h0X3NlbGVjdG9yO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/LmZpbmQoJy5qcy1zbGlkZXJfZml4LWFycm93cy16b25lJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8uaGFzQ2xhc3MoJ21vYmlsZScpICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5pbm5lcldpZHRoIDw9IDEyNzlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0X3NlbGVjdG9yID0gc2xpZGVyLmZpbmQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLmpzLXNsaWRlcl9maXgtYXJyb3dzLXpvbmUubW9iaWxlJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPy5maW5kKCcuanMtc2xpZGVyX2ZpeC1hcnJvd3Mtem9uZScpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/Lmhhc0NsYXNzKCdkZXNrdG9wJykgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmlubmVyV2lkdGggPj0gMTI4MFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHRfc2VsZWN0b3IgPSBzbGlkZXI/LmZpbmQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLmpzLXNsaWRlcl9maXgtYXJyb3dzLXpvbmUuZGVza3RvcCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHRfc2VsZWN0b3IgPSBzbGlkZXI/LmZpbmQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLmpzLXNsaWRlcl9maXgtYXJyb3dzLXpvbmUnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBoZWlnaHQgPVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHRfc2VsZWN0b3I/Lm9mZnNldCgpPy50b3AgLVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHRfc2VsZWN0b3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wYXJlbnRzKCcucmVsYXRpdmUnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm9mZnNldCgpPy50b3AgK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHRfc2VsZWN0b3Iub3V0ZXJIZWlnaHQoKSAvIDI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyb3dzLmNzcygndG9wJywgaGVpZ2h0ICsgJ3B4Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxjX3Bvc2l0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxjX3Bvc2l0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh3aW5kb3cpLnNjcm9sbChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsY19wb3NpdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5qcy1zbGlkZXJfZml4LWFycm93cycpLCBqUXVlcnkpO1xyXG5cclxuICAgICAgICAgICAgICAgIChmdW5jdGlvbiAoYSwgJCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChhLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL29wZW4gcG9wdXBcclxuICAgICAgICAgICAgICAgICAgICAgICAgJCgnLmpzLWFjdGl2ZS1tb2RhbCcpPy5lYWNoKGZ1bmN0aW9uIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXM6IEhUTUxFbGVtZW50XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBhcmVudCA9ICQodGhpcyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kYWxfbmFtZSA9IHBhcmVudC5kYXRhKCdtb2RhbF9uYW1lJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQuY2xpY2soZnVuY3Rpb24gKHRoaXM6IEhUTUxFbGVtZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGFsX25hbWUgPT09ICdnYWxsZXJ5Jykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ZWQgPSAkKHRoaXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZmlsdGVyID0gc2VsZWN0ZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wYXJlbnQoKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmF0dHIoJ2RhdGEtY2F0ZWdvcnknKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNsaWRlciA9ICQoJy5tb2RhbF9fem9vbS0tc2xpZGVyJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBtYWluX3Bob3RvID0gc2VsZWN0ZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wYXJlbnQoKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmF0dHIoJ2RhdGEtaW1nJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBtYWluX3RpdGxlID0gc2VsZWN0ZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wYXJlbnQoKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmF0dHIoJ2RhdGEtdGl0bGUnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG1haW5faWQgPSBzZWxlY3RlZC5wYXJlbnQoKS5hdHRyKCdpZCcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaW1nID0gJChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8ZGl2PjxzcGFuIGNsYXNzPVwibW9kYWxfX3RpdGxlXCI+JyArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFpbl90aXRsZSArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvc3Bhbj4gPGltZyBjbGFzcz1cIm1vZGFsX19zbGlkZXItLWltZ1wiIHNyYz1cIicgK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1haW5fcGhvdG8gK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcIiAvPjwvZGl2PidcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVyLmFwcGVuZChpbWcpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnLmpzLWZpbHRlci1nYWxsZXJ5LmFjdGl2ZScpPy5hdHRyKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhLWZpbHRlcl9jYXRlZ29yeSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgPT09ICdhbGwnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCQoJy5maWx0ZXItaXRlbXMnKSBhcyBhbnkpPy5lYWNoKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlOiBIVE1MRWxlbWVudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2FsbGVyeV9pdGVtOiBIVE1MRWxlbWVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGdhbGxlcnlfaXRlbSk/LmlzKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc6dmlzaWJsZSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGhvdG8gPVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZ2FsbGVyeV9pdGVtKT8uYXR0cihcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEtaW1nJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGl0bGUgPVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZ2FsbGVyeV9pdGVtKT8uYXR0cihcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEtdGl0bGUnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhcHBlbmRfaWQgPVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZ2FsbGVyeV9pdGVtKT8uYXR0cihcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lkJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaW1nID0gJChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPGRpdj48c3BhbiBjbGFzcz1cIm1vZGFsX190aXRsZVwiPicgK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZSArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8L3NwYW4+PGltZyBjbGFzcz1cIm1vZGFsX19zbGlkZXItLWltZ1wiIHNyYz1cIicgK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG90byArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcIiAvPjwvZGl2PidcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWFpbl9pZCAhPSBhcHBlbmRfaWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXIuYXBwZW5kKGltZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbZGF0YS1jYXRlZ29yeT0nICsgZmlsdGVyICsgJ10nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSBhcyBhbnlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk/LmVhY2goZnVuY3Rpb24gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZTogSFRNTEVsZW1lbnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2FsbGVyeV9pdGVtOiBIVE1MRWxlbWVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGdhbGxlcnlfaXRlbSk/LmlzKCc6dmlzaWJsZScpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwaG90byA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGdhbGxlcnlfaXRlbSk/LmF0dHIoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEtaW1nJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRpdGxlID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZ2FsbGVyeV9pdGVtKT8uYXR0cihcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YS10aXRsZSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhcHBlbmRfaWQgPVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChnYWxsZXJ5X2l0ZW0pPy5hdHRyKCdpZCcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaW1nID0gJChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8ZGl2PjxzcGFuIGNsYXNzPVwibW9kYWxfX3RpdGxlXCI+JyArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGUgK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8L3NwYW4+PGltZyBjbGFzcz1cIm1vZGFsX19zbGlkZXItLWltZ1wiIHNyYz1cIicgK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBob3RvICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXCIgLz48L2Rpdj4nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtYWluX2lkICE9IGFwcGVuZF9pZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVyLmFwcGVuZChpbWcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbG9hZF9maWxlcygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzbGlkZXJfYXJyb3dzID0gJChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLm1vZGFsX196b29tLS1zbGlkZXInXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnBhcmVudCgpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbmQoJy5qcy1zbGlkZXItYXJyb3dzJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnLm1vZGFsX196b29tLS1zbGlkZXInKSBhcyBhbnlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk/LnNsaWNrKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWRlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZEFycm93czogc2xpZGVyX2Fycm93cyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2QXJyb3c6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiPGRpdiBjbGFzcz0ncHJldiBzbGljay1idG4gc2xpY2stcHJldiBzbGljay1hcnJvdycgcm9sZT0nYnV0dG9uJyB0YWJpbmRleD0nMCc+PGkgY2xhc3M9J2ljb24tNic+PC9pPjwvZGl2PlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRBcnJvdzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI8ZGl2IGNsYXNzPSduZXh0IHNsaWNrLWJ0biBzbGljay1uZXh0IHNsaWNrLWFycm93JyByb2xlPSdidXR0b24nIHRhYmluZGV4PScwJz48aSBjbGFzcz0naWNvbi02Jz48L2k+PC9kaXY+XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgMTAwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtb2RhbF9uYW1lID09PSAndC1vZmZlcnMnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJ2JvZHknKT8uYWRkQ2xhc3MoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RhbF9uYW1lICsgJyB0b2FzdHMtLW9wZW4nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnYm9keScpPy5hZGRDbGFzcyhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGFsX25hbWUgKyAnIG1vZGFsLS1vcGVuJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuanMtYWN0aXZlLW1vZGFsJyksIGpRdWVyeSk7XHJcblxyXG4gICAgICAgICAgICAgICAgKGZ1bmN0aW9uIChhLCAkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGEubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vY2xvc2UgcG9wdXBcclxuICAgICAgICAgICAgICAgICAgICAgICAgJCgnLmpzLWNsb3NlJyk/LmVhY2goZnVuY3Rpb24gKHRoaXM6IEhUTUxFbGVtZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGFyZW50ID0gJCh0aGlzKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RhbF9uYW1lID0gcGFyZW50LmRhdGEoJ21vZGFsX25hbWUnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudC5jbGljayhmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGFsX25hbWUgPT09ICdnYWxsZXJ5Jykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJCgnLm1vZGFsX196b29tLS1zbGlkZXInKSBhcyBhbnkpPy5zbGljayhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1bnNsaWNrJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcubW9kYWxfX3pvb20tLXNsaWRlcicpPy5lbXB0eSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCdib2R5Jyk/Lmhhc0NsYXNzKG1vZGFsX25hbWUpICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJ2JvZHknKT8uaGFzQ2xhc3MoJ21vZGFsLS1vcGVuJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJCgnYm9keScpLnJlbW92ZUNsYXNzKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kYWxfbmFtZSArICcgbW9kYWwtLW9wZW4nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJCgnYm9keScpLmFkZENsYXNzKCcnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1vZGFsX25hbWUgPT09ICd0LW9mZmVycycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnYm9keScpLnJlbW92ZUNsYXNzKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kYWxfbmFtZSArICcgdG9hc3RzLS1vcGVuJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJ2JvZHknKS5oYXNDbGFzcyhtb2RhbF9uYW1lKSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCdib2R5JykuaGFzQ2xhc3MoJ21vZGFsLS1vcGVuJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJCgnYm9keScpLnJlbW92ZUNsYXNzKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kYWxfbmFtZSArICcgbW9kYWwtLW9wZW4nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJCgnYm9keScpLmFkZENsYXNzKCcnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSkoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmpzLWNsb3NlJyksIGpRdWVyeSk7XHJcblxyXG4gICAgICAgICAgICAgICAgKGZ1bmN0aW9uIChhLCAkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGEubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICQoJy5qcy1maWx0ZXItZ2FsbGVyeScpPy5lYWNoKGZ1bmN0aW9uIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXM6IEhUTUxFbGVtZW50XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGZpbHRlcjogYW55LCBhY3RpdmVfZmlsdGVyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyID0gJCh0aGlzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlci5jbGljayhmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnLmpzLWZpbHRlci1nYWxsZXJ5Jyk/LnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIuYWRkQ2xhc3MoJ2FjdGl2ZScpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZV9maWx0ZXIgPSBmaWx0ZXI/LmF0dHIoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhLWZpbHRlcl9jYXRlZ29yeSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhY3RpdmVfZmlsdGVyID09PSAnYmVhY2hDbHViJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy5nYWxsZXJ5X19saXN0IC5nYWxsZXJ5X19pdGVtJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApPy5hZGRDbGFzcygnc2hvdycpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLmdhbGxlcnlfX2xpc3QgLmdhbGxlcnlfX2l0ZW0nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk/LnJlbW92ZUNsYXNzKCdzaG93Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLmdhbGxlcnlfX2xpc3QgLmdhbGxlcnlfX2l0ZW1bZGF0YS1jYXRlZ29yeT1cIicgK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZV9maWx0ZXIgK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcIl0nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk/LmFkZENsYXNzKCdzaG93Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vdmVTaG93SXRlbXNUb1RvcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBtb3ZlU2hvd0l0ZW1zVG9Ub3AoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgJGdhbGxlcnlMaXN0ID0gJCgnLmdhbGxlcnlfX2xpc3QnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciAkc2hvd0l0ZW1zID0gJGdhbGxlcnlMaXN0Py5maW5kKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcuZ2FsbGVyeV9faXRlbS5zaG93J1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHNob3dJdGVtcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2hvd0l0ZW1zLmRldGFjaCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnYWxsZXJ5TGlzdC5wcmVwZW5kKCRzaG93SXRlbXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vdmVTaG93SXRlbXNUb1RvcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5qcy1maWx0ZXItZ2FsbGVyeScpLCBqUXVlcnkpO1xyXG5cclxuICAgICAgICAgICAgICAgIChmdW5jdGlvbiAoYSwgJCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChhLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkKCcuanMtYWNjb3JkaW9uJyk/LmVhY2goZnVuY3Rpb24gKHRoaXM6IEhUTUxFbGVtZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGFiID0gJCh0aGlzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYi5jbGljayhmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiLnBhcmVudHMoJy5mYXFfX2l0ZW0nKS50b2dnbGVDbGFzcygnYWN0aXZlJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiLm5leHQoJy5mYXFfX2NvbnRlbnQnKS5zbGlkZVRvZ2dsZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5qcy1hY2NvcmRpb24nKSwgalF1ZXJ5KTtcclxuICAgICAgICAgICAgICAgIChmdW5jdGlvbiAoYSwgJCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChhLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkKCcuYnRuX19tb3JlTGVzcycpPy5vbihcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjbGljaycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAodGhpczogSFRNTEVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBidXR0b24gPSAkKHRoaXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPy5jbG9zZXN0KCdzZWN0aW9uJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPy5maW5kKCcubW9yZS1jb250ZW50Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VjdGlvbiA9IGJ1dHRvbj8uY2xvc2VzdCgnc2VjdGlvbicpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50LnNsaWRlVG9nZ2xlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNIaWRkZW4gPSBjb250ZW50LmlzKCc6aGlkZGVuJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY3Rpb24udG9nZ2xlQ2xhc3MoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbW9yZUxlc3MtLWFjdGl2ZScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhaXNIaWRkZW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuYnRuX19tb3JlTGVzcycpLCBqUXVlcnkpO1xyXG4gICAgICAgICAgICAgICAgKGZ1bmN0aW9uICgkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gJChcIi5qcy1zY3JvbGx0b1wiKS5lYWNoKGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICAkKHRoaXMpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICB2YXIgc2Nyb2xsVG9TZWxlY3RvciA9ICQodGhpcykuZGF0YShcInNjcm9sbF90b1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgIHZhciBzcGFjZXIgPSBwYXJzZUludCgkKHRoaXMpLmRhdGEoXCJzY3JvbGxfc3BhY2VyXCIpLCAxMCkgfHwgMDtcclxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgIHZhciBpc0FjdGl2ZVNjcm9sbCA9ICQodGhpcykucGFyZW50KCd1bCcpLmRhdGEoJ3Njcm9sbF9hY3RpdmUnKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICBpZiAoJCh3aW5kb3cpLndpZHRoKCkgPj0gNzY4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgc3BhY2VyICs9IDIwO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgfSBlbHNlIGlmICgkKHdpbmRvdykud2lkdGgoKSA+PSA1NDApIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBzcGFjZXIgKz0gMTA7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgaWYgKHNjcm9sbFRvU2VsZWN0b3IpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAkKFwiaHRtbCwgYm9keVwiKS5hbmltYXRlKHsgc2Nyb2xsVG9wOiAkKHNjcm9sbFRvU2VsZWN0b3IpLm9mZnNldCgpLnRvcCAtIHNwYWNlciB9LCAxMDAwKTtcclxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICBpZiAoaXNBY3RpdmVTY3JvbGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdhY3RpdmUnKS5zaWJsaW5ncygpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcclxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gJCh3aW5kb3cpLm9uKFwic2Nyb2xsXCIsIGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICB2YXIgc2Nyb2xsUG9zID0gJCh3aW5kb3cpLnNjcm9sbFRvcCgpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgJChcIi5qcy1zY3JvbGx0b1wiKS5lYWNoKGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgdmFyIHNwYWNlciA9IHBhcnNlSW50KCQodGhpcykuZGF0YShcInNjcm9sbF9zcGFjZXJcIiksIDEwKSB8fCAwO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgdmFyIHNjcm9sbFRvU2VsZWN0b3IgPSAkKHRoaXMpLmRhdGEoXCJzY3JvbGxfdG9cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICB2YXIgaXNBY3RpdmVTY3JvbGwgPSAkKHRoaXMpLnBhcmVudCgndWwnKS5kYXRhKCdzY3JvbGxfYWN0aXZlJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICB2YXIgb2Zmc2V0VG9wID0gJChzY3JvbGxUb1NlbGVjdG9yKS5vZmZzZXQoKS50b3A7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgaWYgKCQod2luZG93KS53aWR0aCgpID49IDc2OCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgIHNwYWNlciArPSAzMDtcclxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgIH0gZWxzZSBpZiAoJCh3aW5kb3cpLndpZHRoKCkgPj0gNTQwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgc3BhY2VyICs9IDIwO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgaWYgKGlzQWN0aXZlU2Nyb2xsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgaWYgKCQoc2Nyb2xsVG9TZWxlY3RvcikuY3NzKCdkaXNwbGF5JykgIT09ICdub25lJyAmJiBzY3JvbGxQb3MgPj0gb2Zmc2V0VG9wIC0gc3BhY2VyICYmIHNjcm9sbFBvcyA8IG9mZnNldFRvcCArICQoc2Nyb2xsVG9TZWxlY3Rvcikub3V0ZXJIZWlnaHQoKSAtIHNwYWNlcikge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdhY3RpdmUnKS5zaWJsaW5ncygpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8qIGhpZGUgb2ZmZXJzIHRvYXN0cyovXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGJhbm5lciA9ICQoJy5iYW5uZXInKTtcclxuICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBjaGVja0Jhbm5lclZpc2liaWxpdHkoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJhbm5lclRvcCA9ICRiYW5uZXI/Lm9mZnNldCgpPy50b3AgPz8gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYmFubmVyQm90dG9tID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhbm5lclRvcCA/P1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgMCArICgkYmFubmVyIGFzIGFueSk/Lm91dGVySGVpZ2h0KCkgPz9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZpZXdwb3J0VG9wID0gJCh3aW5kb3cpLnNjcm9sbFRvcCgpID8/IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZpZXdwb3J0Qm90dG9tID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdwb3J0VG9wID8/IDAgKyAoJCh3aW5kb3cpLmhlaWdodCgpIGFzIGFueSkgPz8gMDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhbm5lckJvdHRvbSA8PSB2aWV3cG9ydFRvcCB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFubmVyVG9wID49IHZpZXdwb3J0Qm90dG9tXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnYm9keScpLnJlbW92ZUNsYXNzKCd0LW9mZmVycyB0b2FzdHMtLW9wZW4nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgJCh3aW5kb3cpLm9uKCdzY3JvbGwgcmVzaXplJywgY2hlY2tCYW5uZXJWaXNpYmlsaXR5KTtcclxuICAgICAgICAgICAgICAgICAgICBjaGVja0Jhbm5lclZpc2liaWxpdHkoKTtcclxuICAgICAgICAgICAgICAgIH0pKGpRdWVyeSksXHJcbiAgICAgICAgICAgICAgICAgICAgJCgnLm1hcFBvaW50c19faXRlbScpPy5lYWNoKGZ1bmN0aW9uICh0aGlzOiBIVE1MRWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZWxlbWVudCA9ICQodGhpcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBlbGVtZW50SWNvbiA9IGVsZW1lbnQuZmluZCgnLmljb24nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudEljb24ub24oJ2NsaWNrJywgZnVuY3Rpb24gKGU6IEhUTUxFbGVtZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNpYmxpbmdzKCkucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50b2dnbGVDbGFzcygnYWN0aXZlJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgICQoJy5qcy1wZXJzb25hcy1zdWJmaWVsZHMnKS5jbGljayhmdW5jdGlvbiAodGhpczogSFRNTEVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLm5leHQoJy5qcy1maWVsZFN1YicpLnNsaWRlVG9nZ2xlKCk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICQoJy5qcy1hcHBseS1ndWVzdHMnKS5jbGljayhmdW5jdGlvbiAodGhpczogSFRNTEVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gJCh0aGlzKS5wYXJlbnRzKCcuYmFubmVyX19maWVsZFN1YicpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByID0gcGFyc2VJbnQoJCgnI2FkdWx0JykudmFsKCkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSBwYXJzZUludCgkKCcjY2hpbGQnKS52YWwoKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbiA9IHIgKyBhO1xyXG4gICAgICAgICAgICAgICAgICAgIGUuaGlkZSgpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAobiA8PSA5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGUuc2libGluZ3MoJy5qcy1wZXJzb25hcy1zdWJmaWVsZHMnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbmQoJy5iYW5uZXJfX2ZpZWxkQ29udHJvbCcpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGV4dCgnMCcgKyBuKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnNpYmxpbmdzKCcuanMtcGVyc29uYXMtc3ViZmllbGRzJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKCcuYmFubmVyX19maWVsZENvbnRyb2wnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRleHQobik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAkKCcuanMtYXBwbHktZ3Vlc3RzMScpLmNsaWNrKGZ1bmN0aW9uICh0aGlzOiBIVE1MRWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSAkKHRoaXMpLnBhcmVudHMoJy5ib29raW5nX19maWVsZFN1YicpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByID0gcGFyc2VJbnQoJCgnI2FkdWx0MScpLnZhbCgpKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gcGFyc2VJbnQoJCgnI2NoaWxkMScpLnZhbCgpKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBuID0gciArIGE7XHJcbiAgICAgICAgICAgICAgICAgICAgZS5oaWRlKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChuIDw9IDkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZS5zaWJsaW5ncygnLmpzLXBlcnNvbmFzLXN1YmZpZWxkcycpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmluZCgnLmJvb2tpbmdfX2ZpZWxkQ29udHJvbCcpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGV4dCgnMCcgKyBuKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnNpYmxpbmdzKCcuanMtcGVyc29uYXMtc3ViZmllbGRzJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKCcuYm9va2luZ19fZmllbGRDb250cm9sJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50ZXh0KG4pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgICQoJy5ib29raW5nX19maWVsZENvbnRyb2xbdHlwZT1cInRleHRcIl0nKS5lYWNoKGZ1bmN0aW9uIChcclxuICAgICAgICAgICAgICAgICAgICB0aGlzOiBIVE1MRWxlbWVudFxyXG4gICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGRlZmF1bHR2YWx1ZTogYW55O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZmllbGRJbm5lciA9ICQodGhpcykucGFyZW50cygnLmJvb2tpbmdfX2ZpZWxkSW5uZXInKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIWRlZmF1bHR2YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0dmFsdWUgPSAkZmllbGRJbm5lci5hdHRyKCdzdHlsZScpIHx8ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5vbigna2V5dXAnLCBmdW5jdGlvbiAodGhpczogSFRNTEVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGV4dExlbmd0aCA9ICQodGhpcykudmFsKCkubGVuZ3RoICogMS4zO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyh0ZXh0TGVuZ3RoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRleHRMZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZpZWxkSW5uZXIuYXR0cignc3R5bGUnLCBkZWZhdWx0dmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZpZWxkSW5uZXIuY3NzKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICctLWxhYmVsTGVmdFBvc2l0aW9uJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0TGVuZ3RoICsgJ3JlbSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICQoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgJCgnW2RhdGEtdG9nZ2xlPVwiZGF0ZXBpY2tlclwiXScpLmVhY2goZnVuY3Rpb24gKFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXM6IEhUTUxFbGVtZW50XHJcbiAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmRhdGVwaWNrZXIoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhdXRvSGlkZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgekluZGV4OiA5OTk5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBiZWZvcmVTaG93OiBmdW5jdGlvbiAoaW5wdXQ6IEhUTUxFbGVtZW50LCBpbnN0OiBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0T2Zmc2V0ID0gJChpbnB1dCkub2Zmc2V0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXRXaWR0aCA9ICQoaW5wdXQpLm91dGVyV2lkdGgoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dEhlaWdodCA9ICQoaW5wdXQpLm91dGVySGVpZ2h0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zdC5kcERpdi5jc3Moe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dE9mZnNldC50b3AgLVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zdC5kcERpdi5vdXRlckhlaWdodCgpIC1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdweCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IGlucHV0T2Zmc2V0LmxlZnQgKyAncHgnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICQoJ1tkYXRhLXRvZ2dsZT1cImRhdGVwaWNrZXIxXCJdJykuZWFjaChmdW5jdGlvbiAoXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpczogSFRNTEVsZW1lbnRcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICQodGhpcykuZGF0ZXBpY2tlcih7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9IaWRlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB6SW5kZXg6IDk5OTksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlZm9yZVNob3c6IGZ1bmN0aW9uIChpbnB1dDogSFRNTEVsZW1lbnQsIGluc3Q6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXRPZmZzZXQgPSAkKGlucHV0KS5vZmZzZXQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dFdpZHRoID0gJChpbnB1dCkub3V0ZXJXaWR0aCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0SGVpZ2h0ID0gJChpbnB1dCkub3V0ZXJIZWlnaHQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0LmRwRGl2LmNzcyh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0T2Zmc2V0LnRvcCArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dEhlaWdodCArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMCArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHgnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiBpbnB1dE9mZnNldC5sZWZ0ICsgJ3B4JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgLy8gY29uc3QgdmlkZW9zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5ldmVudFZpZGVvIHZpZGVvXCIpO1xyXG4gICAgICAgICAgICAvLyBpZiAodmlkZW9zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgLy8gICAgIHZpZGVvcy5mb3JFYWNoKHZpZGVvID0+IHtcclxuICAgICAgICAgICAgLy8gICAgICAgICB2aWRlby5hZGRFdmVudExpc3RlbmVyKFwibW91c2VlbnRlclwiLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgICAgIHZpZGVvLnBsYXkoKTtcclxuICAgICAgICAgICAgLy8gICAgICAgICAgICAgdmlkZW8uY2xhc3NMaXN0LmFkZChcImhvdmVyXCIpO1xyXG4gICAgICAgICAgICAvLyAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAvLyAgICAgICAgIHZpZGVvLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsICgpID0+IHtcclxuICAgICAgICAgICAgLy8gICAgICAgICAgICAgdmlkZW8ucGF1c2UoKTtcclxuICAgICAgICAgICAgLy8gICAgICAgICAgICAgdmlkZW8uY2xhc3NMaXN0LnJlbW92ZShcImhvdmVyXCIpO1xyXG4gICAgICAgICAgICAvLyAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAvLyAgICAgfSk7XHJcbiAgICAgICAgICAgIC8vIH1cclxuXHJcbiAgICAgICAgICAgIGRvY3VtZW50XHJcbiAgICAgICAgICAgICAgICAucXVlcnlTZWxlY3RvckFsbCgnLnNwb3RpZnlQbGF5ZXJfX2FsYnVtJylcclxuICAgICAgICAgICAgICAgIC5mb3JFYWNoKChjb250YWluZXIpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBhdWRpbyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnLnNwb3RpZnlQbGF5ZXJfX21wMydcclxuICAgICAgICAgICAgICAgICAgICApIGFzIGFueTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBwbGF5UGF1c2VCdXR0b24gPSBjb250YWluZXIucXVlcnlTZWxlY3RvcihcclxuICAgICAgICAgICAgICAgICAgICAgICAgJy5zcG90aWZ5UGxheWVyX19hbGJ1bVBsYXlQYXVzZSdcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBwbGF5UGF1c2VCdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXVkaW8/LnBhdXNlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUGF1c2UgYW55IG90aGVyIHBsYXlpbmcgYXVkaW8gZWxlbWVudHNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoJy5zcG90aWZ5UGxheWVyX19tcDMnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoKChvdGhlckF1ZGlvOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG90aGVyQXVkaW8gIT09IGF1ZGlvKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhlckF1ZGlvLnBhdXNlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvdGhlckJ1dHRvbiA9IG90aGVyQXVkaW9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2xvc2VzdCgnLnNwb3RpZnlQbGF5ZXJfX2FsYnVtJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucXVlcnlTZWxlY3RvcihcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy5zcG90aWZ5UGxheWVyX19hbGJ1bVBsYXlQYXVzZSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXJCdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgncGxheScpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUGxheSB0aGUgc2VsZWN0ZWQgYXVkaW9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvLnBsYXkoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXlQYXVzZUJ1dHRvbi5jbGFzc0xpc3QuYWRkKCdwbGF5Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpby5wYXVzZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxheVBhdXNlQnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoJ3BsYXknKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSwgMTAwKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|