@huntsman-cancer-institute/reporting-framework 17.9.2 → 17.9.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/datepicker/report-datepicker.component.mjs +4 -4
- package/esm2022/format/format.component.mjs +4 -4
- package/esm2022/parameter/parameter.component.mjs +4 -4
- package/esm2022/report.module.mjs +5 -5
- package/esm2022/reporting-framework.component.mjs +5 -5
- package/esm2022/resizable-divider/resizable-section-divider.component.mjs +4 -4
- package/esm2022/spinner/dialogs.service.mjs +4 -4
- package/esm2022/spinner/spinner-dialog.component.mjs +4 -4
- package/fesm2022/huntsman-cancer-institute-reporting-framework.mjs +27 -27
- package/fesm2022/huntsman-cancer-institute-reporting-framework.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -35,8 +35,8 @@ export class ReportDatepickerComponent {
|
|
|
35
35
|
this.valueChange.emit();
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
39
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
38
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ReportDatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ReportDatepickerComponent, selector: "report-datepicker", inputs: { value: "value", placeholder: "placeholder", minDate: "minDate", maxDate: "maxDate", invalid: "invalid" }, outputs: { valueChange: "valueChange" }, providers: [
|
|
40
40
|
{ provide: MAT_DATE_LOCALE, useValue: "en-GB" }
|
|
41
41
|
], ngImport: i0, template: `
|
|
42
42
|
<div class="d-flex" style="width: 100%;">
|
|
@@ -49,7 +49,7 @@ export class ReportDatepickerComponent {
|
|
|
49
49
|
</div>
|
|
50
50
|
`, isInline: true, styles: ["#clearIcon{cursor:pointer}#clearIcon:Hover{background-color:#495057;color:#e9ecef}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i3.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }] }); }
|
|
51
51
|
}
|
|
52
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ReportDatepickerComponent, decorators: [{
|
|
53
53
|
type: Component,
|
|
54
54
|
args: [{ selector: "report-datepicker", template: `
|
|
55
55
|
<div class="d-flex" style="width: 100%;">
|
|
@@ -76,4 +76,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
76
76
|
}], valueChange: [{
|
|
77
77
|
type: Output
|
|
78
78
|
}] } });
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWRhdGVwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcmVwb3J0aW5nLWZyYW1ld29yay9zcmMvZGF0ZXBpY2tlci9yZXBvcnQtZGF0ZXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7Ozs7O0FBMkJ2RCxNQUFNLE9BQU8seUJBQXlCO0lBekJ0QztRQThCVyxZQUFPLEdBQVksS0FBSyxDQUFDO1FBRXhCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztLQStCNUM7SUE3QkMsUUFBUTtRQUNOLElBQUksS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdkIscURBQXFEO1FBQ3JELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN2RixDQUFDO1FBQ0QsZ0RBQWdEO1FBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN2RixDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxRQUFRO1FBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7UUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxtSEFBbUg7SUFDbkgsTUFBTTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7WUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQzsrR0FyQ1UseUJBQXlCO21HQUF6Qix5QkFBeUIseU1BSnpCO1lBQ1QsRUFBQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUM7U0FDOUMsMEJBckJTOzs7Ozs7Ozs7R0FTVDs7NEZBY1UseUJBQXlCO2tCQXpCckMsU0FBUzsrQkFDRSxtQkFBbUIsWUFDbkI7Ozs7Ozs7OztHQVNULGFBVVU7d0JBQ1QsRUFBQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUM7cUJBQzlDOzhCQUdRLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge01BVF9EQVRFX0xPQ0FMRX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NvcmVcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcInJlcG9ydC1kYXRlcGlja2VyXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiPlxyXG4gICAgICA8aW5wdXQgbWF0SW5wdXQgW21hdERhdGVwaWNrZXJdPVwicGlja2VyXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBzdHlsZT1cImN1cnNvcjogcG9pbnRlcjtcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBbbmdNb2RlbF09XCJ2YWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgKGNsaWNrKT1cInBpY2tlci5vcGVuKClcIiAoYmx1cik9XCJvbkJsdXIoKVwiIFttaW5dPVwibWluRGF0ZVwiIFttYXhdPVwibWF4RGF0ZVwiXHJcbiAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQtY29sb3InOmludmFsaWQgPyAncmVkJyA6ICcjZmZmJ31cIiBhdHRyLmFyaWEtbGFiZWw9XCJoY2ktbmctcmVwb3J0LWRhdGUtcGlja2VyLXt7cGxhY2Vob2xkZXJ9fVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImlucHV0LWdyb3VwLXRleHRcIiBpZD1cImNsZWFySWNvblwiIChjbGljayk9XCJjbGVhcigpXCI+PGkgY2xhc3M9XCJmYXMgZmEtdGltZXNcIj48L2k+PC9zcGFuPlxyXG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwicGlja2VyLm9wZW4oKVwiIHN0eWxlPVwiaGVpZ2h0OjMycHg7IHdpZHRoOjMycHg7XCI+PGkgY2xhc3M9XCJmYXMgZmEtY2FsZW5kYXItYWx0XCI+PC9pPjwvYnV0dG9uPlxyXG4gICAgICA8bWF0LWRhdGVwaWNrZXIgI3BpY2tlciA+PC9tYXQtZGF0ZXBpY2tlcj5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbYFxyXG4gICAgI2NsZWFySWNvbiB7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIH1cclxuICAgICNjbGVhckljb246SG92ZXIge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNzMsIDgwLCA4Nyk7XHJcbiAgICAgIGNvbG9yOiByZ2IoMjMzLCAyMzYsIDIzOSlcclxuICAgIH1cclxuICBgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtwcm92aWRlOiBNQVRfREFURV9MT0NBTEUsIHVzZVZhbHVlOiBcImVuLUdCXCJ9XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVwb3J0RGF0ZXBpY2tlckNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgdmFsdWU6IERhdGU7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICBASW5wdXQoKSBtaW5EYXRlOiBEYXRlO1xyXG4gIEBJbnB1dCgpIG1heERhdGU6IERhdGU7XHJcbiAgQElucHV0KCkgaW52YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgbGV0IHRvZGF5ID0gbmV3IERhdGUoKTtcclxuICAgIC8vIHNldCB0aGUgbWluRGF0ZSB0byAyMCB5ZWFycyBpbiB0aGUgcGFzdCBieSBkZWZhdWx0XHJcbiAgICBpZiAoIXRoaXMubWluRGF0ZSkge1xyXG4gICAgICB0aGlzLm1pbkRhdGUgPSBuZXcgRGF0ZSh0b2RheS5nZXRGdWxsWWVhcigpIC0gMjAsIHRvZGF5LmdldE1vbnRoKCksIHRvZGF5LmdldERhdGUoKSk7XHJcbiAgICB9XHJcbiAgICAvLyBzZXQgbWF4IGRhdGUgdG8gMjAgeWVhcnMgaW4gZnV0dXJlIGJ5IGRlZmF1bHRcclxuICAgIGlmICghdGhpcy5tYXhEYXRlKSB7XHJcbiAgICAgIHRoaXMubWF4RGF0ZSA9IG5ldyBEYXRlKHRvZGF5LmdldEZ1bGxZZWFyKCkgKyAyMCwgdG9kYXkuZ2V0TW9udGgoKSwgdG9kYXkuZ2V0RGF0ZSgpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlKG5ld1ZhbHVlKSB7XHJcbiAgICB0aGlzLnZhbHVlID0gbmV3VmFsdWU7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQobmV3VmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgY2xlYXIoKSB7XHJcbiAgICB0aGlzLnZhbHVlID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICAvLyBDbGVhciBpbnB1dCBmaWVsZCBpZiBlbnRlcmVkIGRhdGEgaXMgaW52YWxpZCAoTWF0IGxpYnJhcnkgc2V0cyB2YWx1ZSB0byBudWxsIGlmIGludmFsaWQgYnV0IGRvZXNuJ3QgY2xlYXIgaW5wdXQpXHJcbiAgb25CbHVyKCkge1xyXG4gICAgaWYgKCF0aGlzLnZhbHVlKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB1bmRlZmluZWQ7XHJcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -8,8 +8,8 @@ export class FormatComponent {
|
|
|
8
8
|
this.selectedValue = s;
|
|
9
9
|
this.selectedValueChange.emit(s);
|
|
10
10
|
}
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
12
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FormatComponent, selector: "hci-format", inputs: { selectedValue: "selectedValue" }, outputs: { selectedValueChange: "selectedValueChange" }, ngImport: i0, template: `
|
|
13
13
|
<div class="radio-pair">
|
|
14
14
|
<input type="radio" #radio
|
|
15
15
|
[value]="format.name"
|
|
@@ -21,7 +21,7 @@ export class FormatComponent {
|
|
|
21
21
|
</div>
|
|
22
22
|
`, isInline: true, styles: [".radio-pair{display:flex;align-items:center;padding-right:5px}\n"] }); }
|
|
23
23
|
}
|
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormatComponent, decorators: [{
|
|
25
25
|
type: Component,
|
|
26
26
|
args: [{ selector: "hci-format", template: `
|
|
27
27
|
<div class="radio-pair">
|
|
@@ -39,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
39
39
|
}], selectedValueChange: [{
|
|
40
40
|
type: Output
|
|
41
41
|
}] } });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3JlcG9ydGluZy1mcmFtZXdvcmsvc3JjL2Zvcm1hdC9mb3JtYXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBeUJyRSxNQUFNLE9BQU8sZUFBZTtJQXJCNUI7UUF3QmMsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztLQVM5RDtJQUxHLFlBQVksQ0FBQyxDQUFTO1FBQ2xCLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQzsrR0FWUSxlQUFlO21HQUFmLGVBQWUsdUpBbkJkOzs7Ozs7Ozs7O0tBVVQ7OzRGQVNRLGVBQWU7a0JBckIzQixTQUFTOytCQUNJLFlBQVksWUFDWjs7Ozs7Ozs7OztLQVVUOzhCQVdRLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0ksbUJBQW1CO3NCQUE1QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtGb3JtYXR9IGZyb20gXCIuLi9tb2RlbC9mb3JtYXQubW9kZWxcIjtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImhjaS1mb3JtYXRcIixcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJhZGlvLXBhaXJcIj5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiICNyYWRpb1xyXG4gICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImZvcm1hdC5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgIFtpZF09XCJmb3JtYXQubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3RlZFZhbHVlID09PSBmb3JtYXQubmFtZSA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0Rm9ybWF0KHJhZGlvLnZhbHVlKVwiXHJcbiAgICAgICAgICAgICAgICAgICBuYW1lPVwiZm9ybWF0XCIgYXR0ci5hcmlhLWxhYmVsPVwiaGNpLW5nLWZvcm1hdC17e3NlbGVjdGVkVmFsdWV9fVwiPlxyXG4gICAgICAgICAgICA8bGFiZWw+e3tmb3JtYXQuY2FwdGlvbn19PC9sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIGAsXHJcbiAgICBzdHlsZXM6IFtgXHJcbiAgICAgICAgLnJhZGlvLXBhaXJ7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcclxuICAgICAgICB9XHJcbiAgICBgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybWF0Q29tcG9uZW50IHtcclxuXHJcbiAgICBASW5wdXQoKSBzZWxlY3RlZFZhbHVlOiBzdHJpbmc7XHJcbiAgICBAT3V0cHV0KCkgc2VsZWN0ZWRWYWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICAgIGZvcm1hdDogRm9ybWF0O1xyXG5cclxuICAgIHNlbGVjdEZvcm1hdChzOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBzO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZUNoYW5nZS5lbWl0KHMpO1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=
|
|
@@ -12,8 +12,8 @@ export class ParameterComponent {
|
|
|
12
12
|
this.param.selectedValue = o.value;
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
16
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
15
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ParameterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
16
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ParameterComponent, selector: "hci-parameter", ngImport: i0, template: `
|
|
17
17
|
|
|
18
18
|
<!--Text Input-->
|
|
19
19
|
<ng-container *ngIf="param.type === 'input'">
|
|
@@ -138,7 +138,7 @@ export class ParameterComponent {
|
|
|
138
138
|
|
|
139
139
|
`, isInline: true, styles: [".data-label{width:270px;margin-right:30px;display:flex;align-items:center;justify-content:flex-end}.date-input{width:45%}.report-select,.multi-report-select{flex-grow:unset!important;width:45%}.radio-pair{display:flex;align-items:center;padding-right:5px;margin-right:15px}.input-field{width:45%}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.MdMultiSelectComponent, selector: "hci-md-multi-select", inputs: ["class", "name", "label", "url", "entries", "required", "idKey", "displayKey", "sortKey", "sortNumeric"] }, { kind: "component", type: i3.NativeSelectComponent, selector: "hci-native-select", inputs: ["class", "name", "label", "url", "entries", "required", "idKey", "displayKey", "disabled", "sortKey", "sortNumeric", "filterKey", "id", "filter"] }, { kind: "component", type: i4.ReportDatepickerComponent, selector: "report-datepicker", inputs: ["value", "placeholder", "minDate", "maxDate", "invalid"], outputs: ["valueChange"] }] }); }
|
|
140
140
|
}
|
|
141
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
141
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ParameterComponent, decorators: [{
|
|
142
142
|
type: Component,
|
|
143
143
|
args: [{ selector: "hci-parameter", template: `
|
|
144
144
|
|
|
@@ -265,4 +265,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
265
265
|
|
|
266
266
|
`, styles: [".data-label{width:270px;margin-right:30px;display:flex;align-items:center;justify-content:flex-end}.date-input{width:45%}.report-select,.multi-report-select{flex-grow:unset!important;width:45%}.radio-pair{display:flex;align-items:center;padding-right:5px;margin-right:15px}.input-field{width:45%}\n"] }]
|
|
267
267
|
}] });
|
|
268
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
268
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3JlcG9ydGluZy1mcmFtZXdvcmsvc3JjL3BhcmFtZXRlci9wYXJhbWV0ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7OztBQXNLeEMsTUFBTSxPQUFPLGtCQUFrQjtJQUszQixRQUFRLENBQUMsQ0FBUTtRQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBRWYsSUFBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQyxDQUFDLG9DQUFvQztZQUNwRSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3JDLENBQUM7SUFDSCxDQUFDOytHQVpRLGtCQUFrQjttR0FBbEIsa0JBQWtCLHFEQWhLakI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQTJIVDs7NEZBcUNRLGtCQUFrQjtrQkFsSzlCLFNBQVM7K0JBQ0ksZUFBZSxZQUNmOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0EySFQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtQYXJhbX0gZnJvbSBcIi4uL21vZGVsL3BhcmFtLm1vZGVsXCI7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJoY2ktcGFyYW1ldGVyXCIsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG5cclxuICAgICAgPCEtLVRleHQgSW5wdXQtLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhcmFtLnR5cGUgPT09ICdpbnB1dCdcIj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogYmxvY2s7XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImRhdGEtbGFiZWxcIj57e3BhcmFtLmNhcHRpb259fTo8L2xhYmVsPlxyXG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC1maWVsZFwiXHJcbiAgICAgICAgICAgICAgICAgICBbaWRdPVwicGFyYW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJwYXJhbS5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicGFyYW0uc2VsZWN0ZWRWYWx1ZVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDwhLS1EYXRlLS0+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYXJhbS50eXBlID09PSAnZGF0ZSdcIj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogYmxvY2s7XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImRhdGEtbGFiZWxcIj57e3BhcmFtLmNhcHRpb259fTo8L2xhYmVsPlxyXG4gICAgICAgICAgICA8cmVwb3J0LWRhdGVwaWNrZXIgY2xhc3M9XCJkYXRlLWlucHV0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwie3twYXJhbS5uYW1lfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwicGFyYW0uc2VsZWN0ZWRWYWx1ZVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPC9yZXBvcnQtZGF0ZXBpY2tlcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDwhLS1TZWxlY3Qgd2l0aCBkaWN0aW9uYXJ5LS0+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYXJhbS50eXBlID09PSAnc2VsZWN0JyAmJiBwYXJhbS5jbGFzc05hbWUgJiYgcGFyYW0uY2xhc3NOYW1lICE9ICcnXCI+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrO1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJkYXRhLWxhYmVsXCI+e3twYXJhbS5jYXB0aW9ufX06PC9sYWJlbD5cclxuICAgICAgICAgICAgPGhjaS1uYXRpdmUtc2VsZWN0IGNsYXNzPVwicmVwb3J0LXNlbGVjdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwicGFyYW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJwYXJhbS5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZEtleV09XCJwYXJhbS52YWx1ZVhQYXRoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNwbGF5S2V5XT1cInBhcmFtLmRpc3BsYXlYUGF0aFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc29ydEtleV09XCJwYXJhbS5zb3J0RmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NvcnROdW1lcmljXT1cInBhcmFtLnNvcnROdW1lcmljXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicGFyYW0uc2VsZWN0ZWRWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdXJsXT1cInBhcmFtLmNhbGN1bGF0ZURpY3Rpb25hcnlVUkwoKVwiXHJcbiAgICAgICAgICAgID48L2hjaS1uYXRpdmUtc2VsZWN0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPCEtLVNlbGVjdCB3aXRoIG1hbnVhbCBvcHRpb25zLS0+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYXJhbS50eXBlID09PSAnc2VsZWN0JyAmJiAoIXBhcmFtLmNsYXNzTmFtZSB8fCBwYXJhbS5jbGFzc05hbWUgPT09ICcnKVwiPlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBibG9jaztcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZGF0YS1sYWJlbFwiPnt7cGFyYW0uY2FwdGlvbn19OjwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxoY2ktbmF0aXZlLXNlbGVjdCBjbGFzcz1cInJlcG9ydC1zZWxlY3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cInBhcmFtLm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwicGFyYW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInBhcmFtLnNlbGVjdGVkVmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NvcnRLZXldPVwicGFyYW0uc29ydEZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzb3J0TnVtZXJpY109XCJwYXJhbS5zb3J0TnVtZXJpY1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZW50cmllc10gPSBcImVudHJpZXNcIlxyXG4gICAgICAgICAgICA+PC9oY2ktbmF0aXZlLXNlbGVjdD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDwhLS1NdWx0aS1zZWxlY3Qgd2l0aCBkaWN0aW9uYXJ5LS0+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYXJhbS50eXBlID09PSAnbXVsdGlzZWxlY3QnICYmIHBhcmFtLmNsYXNzTmFtZSAmJiBwYXJhbS5jbGFzc05hbWUgIT0gJydcIj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogYmxvY2s7XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImRhdGEtbGFiZWxcIj57e3BhcmFtLmNhcHRpb259fTo8L2xhYmVsPlxyXG4gICAgICAgICAgICA8aGNpLW1kLW11bHRpLXNlbGVjdCBjbGFzcz1cIm11bHRpLXJlcG9ydC1zZWxlY3RcIlxyXG4gICAgICAgICAgICAgIFtpZF09XCJwYXJhbS5uYW1lXCJcclxuICAgICAgICAgICAgICBbbmFtZV09XCJwYXJhbS5uYW1lXCJcclxuICAgICAgICAgICAgICBbaWRLZXldPVwicGFyYW0udmFsdWVYUGF0aFwiXHJcbiAgICAgICAgICAgICAgW2Rpc3BsYXlLZXldPVwicGFyYW0uZGlzcGxheVhQYXRoXCJcclxuICAgICAgICAgICAgICBbc29ydEtleV09XCJwYXJhbS5zb3J0RmllbGRcIlxyXG4gICAgICAgICAgICAgIFtzb3J0TnVtZXJpY109XCJwYXJhbS5zb3J0TnVtZXJpY1wiXHJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJwYXJhbS5zZWxlY3RlZFZhbHVlTGlzdFwiXHJcbiAgICAgICAgICAgICAgW3VybF09XCJwYXJhbS5jYWxjdWxhdGVEaWN0aW9uYXJ5VVJMKClcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDwvaGNpLW1kLW11bHRpLXNlbGVjdD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDwhLS1NdWx0aS1zZWxlY3Qgd2l0aCBtYW51YWwgb3B0aW9ucy0tPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicGFyYW0udHlwZSA9PT0gJ211bHRpc2VsZWN0JyAmJiAoIXBhcmFtLmNsYXNzTmFtZSB8fCBwYXJhbS5jbGFzc05hbWUgPT09ICcnKVwiPlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBibG9jaztcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZGF0YS1sYWJlbFwiPnt7cGFyYW0uY2FwdGlvbn19OjwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxoY2ktbWQtbXVsdGktc2VsZWN0IGNsYXNzPVwibXVsdGktcmVwb3J0LXNlbGVjdFwiXHJcbiAgICAgICAgICAgICAgW2lkXT1cInBhcmFtLm5hbWVcIlxyXG4gICAgICAgICAgICAgIFtuYW1lXT1cInBhcmFtLm5hbWVcIlxyXG4gICAgICAgICAgICAgIFtlbnRyaWVzXSA9IFwiZW50cmllc1wiXHJcbiAgICAgICAgICAgICAgW3NvcnRLZXldPVwicGFyYW0uc29ydEZpZWxkXCJcclxuICAgICAgICAgICAgICBbc29ydE51bWVyaWNdPVwicGFyYW0uc29ydE51bWVyaWNcIlxyXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicGFyYW0uc2VsZWN0ZWRWYWx1ZUxpc3RcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDwvaGNpLW1kLW11bHRpLXNlbGVjdD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDwhLS1SYWRpbyBidXR0b25zLS0+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYXJhbS50eXBlID09PSAncmFkaW8nXCI+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrO1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJkYXRhLWxhYmVsXCI+e3twYXJhbS5jYXB0aW9ufX06PC9sYWJlbD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJhZGlvLXBhaXJcIiAqbmdGb3I9XCJsZXQgbyBvZiBwYXJhbS5vcHRpb25zXCI+XHJcbiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAzcHg7XCJcclxuICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIm8udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbaWRdPVwicGFyYW0ubmFtZSArICctJyArIG8udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInBhcmFtLnNlbGVjdGVkVmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJwYXJhbS5uYW1lXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInt7cGFyYW0ubmFtZSArICctJyArIG8udmFsdWV9fVwiPnt7by5kaXNwbGF5fX08L2xhYmVsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICBgLFxyXG4gICAgc3R5bGVzOiBbYFxyXG5cclxuICAgICAgLmRhdGEtbGFiZWx7XHJcbiAgICAgICAgd2lkdGg6IDI3MHB4O1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMzBweDtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmRhdGUtaW5wdXR7XHJcbiAgICAgICAgd2lkdGg6IDQ1JTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnJlcG9ydC1zZWxlY3R7XHJcbiAgICAgICAgZmxleC1ncm93OiB1bnNldCAhaW1wb3J0YW50O1xyXG4gICAgICAgIHdpZHRoOiA0NSU7XHJcbiAgICB9XHJcblxyXG4gICAgLm11bHRpLXJlcG9ydC1zZWxlY3R7XHJcbiAgICAgICAgZmxleC1ncm93OiB1bnNldCAhaW1wb3J0YW50O1xyXG4gICAgICAgIHdpZHRoOiA0NSU7XHJcbiAgICB9XHJcblxyXG4gICAgLnJhZGlvLXBhaXJ7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmlucHV0LWZpZWxke1xyXG4gICAgICAgIHdpZHRoOiA0NSVcclxuICAgIH1cclxuICAgIGBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYXJhbWV0ZXJDb21wb25lbnQge1xyXG5cclxuICAgIHBhcmFtOiBQYXJhbTtcclxuICAgIGVudHJpZXM6IGFueVtdO1xyXG5cclxuICAgIHNldFBhcmFtKHA6IFBhcmFtKSB7XHJcbiAgICAgIHRoaXMucGFyYW0gPSBwO1xyXG5cclxuICAgICAgaWYodGhpcy5wYXJhbS50eXBlID09PSBcInJhZGlvXCIpIHsgLy9pZiByYWRpbywgYXV0byBzZWxlY3QgZmlyc3Qgb3B0aW9uXHJcbiAgICAgICAgbGV0IG8gPSB0aGlzLnBhcmFtLm9wdGlvbnNbMF07XHJcbiAgICAgICAgdGhpcy5wYXJhbS5zZWxlY3RlZFZhbHVlID0gby52YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=
|
|
@@ -17,8 +17,8 @@ import { ResizableSectionDividerComponent } from "./resizable-divider/resizable-
|
|
|
17
17
|
import { MatLegacyTabsModule as MatTabsModule } from "@angular/material/legacy-tabs";
|
|
18
18
|
import * as i0 from "@angular/core";
|
|
19
19
|
export class ReportModule {
|
|
20
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
21
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ReportModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
21
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: ReportModule, declarations: [ReportingFrameworkComponent,
|
|
22
22
|
ReportDatepickerComponent,
|
|
23
23
|
ParameterComponent,
|
|
24
24
|
FormatComponent,
|
|
@@ -32,7 +32,7 @@ export class ReportModule {
|
|
|
32
32
|
MatTabsModule,
|
|
33
33
|
SelectModule,
|
|
34
34
|
AgGridModule], exports: [ReportingFrameworkComponent] }); }
|
|
35
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.
|
|
35
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ReportModule, providers: [
|
|
36
36
|
DatePipe,
|
|
37
37
|
DialogsService
|
|
38
38
|
], imports: [CommonModule,
|
|
@@ -45,7 +45,7 @@ export class ReportModule {
|
|
|
45
45
|
SelectModule,
|
|
46
46
|
AgGridModule] }); }
|
|
47
47
|
}
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ReportModule, decorators: [{
|
|
49
49
|
type: NgModule,
|
|
50
50
|
args: [{
|
|
51
51
|
imports: [
|
|
@@ -76,4 +76,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
76
76
|
]
|
|
77
77
|
}]
|
|
78
78
|
}] });
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3JlcG9ydGluZy1mcmFtZXdvcmsvc3JjL3JlcG9ydC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFFLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRXZELE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRCxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUNuRixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUM5RCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUMxRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLDhCQUE4QixJQUFJLHdCQUF3QixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDckgsT0FBTyxFQUFFLHFCQUFxQixJQUFJLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNGLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsZ0NBQWdDLEVBQUMsTUFBTSx5REFBeUQsQ0FBQztBQUN6RyxPQUFPLEVBQUMsbUJBQW1CLElBQUksYUFBYSxFQUFDLE1BQU0sK0JBQStCLENBQUM7O0FBOEJuRixNQUFNLE9BQU8sWUFBWTsrR0FBWixZQUFZO2dIQUFaLFlBQVksaUJBWGpCLDJCQUEyQjtZQUMzQix5QkFBeUI7WUFDekIsa0JBQWtCO1lBQ2xCLGVBQWU7WUFDZixzQkFBc0I7WUFDdEIsZ0NBQWdDLGFBcEJoQyxZQUFZO1lBQ1osV0FBVztZQUNYLFNBQVM7WUFDVCxtQkFBbUI7WUFDbkIsZUFBZTtZQUNmLHdCQUF3QjtZQUN4QixhQUFhO1lBQ2IsWUFBWTtZQUNaLFlBQVksYUFlWiwyQkFBMkI7Z0hBR3RCLFlBQVksYUFoQlY7WUFDUCxRQUFRO1lBQ1IsY0FBYztTQUNqQixZQWJHLFlBQVk7WUFDWixXQUFXO1lBQ1gsU0FBUztZQUNULG1CQUFtQjtZQUNuQixlQUFlO1lBQ2Ysd0JBQXdCO1lBQ3hCLGFBQWE7WUFDYixZQUFZO1lBQ1osWUFBWTs7NEZBa0JQLFlBQVk7a0JBNUJ4QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsU0FBUzt3QkFDVCxtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2Ysd0JBQXdCO3dCQUN4QixhQUFhO3dCQUNiLFlBQVk7d0JBQ1osWUFBWTtxQkFDZjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1AsUUFBUTt3QkFDUixjQUFjO3FCQUNqQjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1YsMkJBQTJCO3dCQUMzQix5QkFBeUI7d0JBQ3pCLGtCQUFrQjt3QkFDbEIsZUFBZTt3QkFDZixzQkFBc0I7d0JBQ3RCLGdDQUFnQztxQkFDbkM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLDJCQUEyQjtxQkFDOUI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZSwgRGF0ZVBpcGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuXHJcbmltcG9ydCB7UmVwb3J0aW5nRnJhbWV3b3JrQ29tcG9uZW50fSBmcm9tIFwiLi9yZXBvcnRpbmctZnJhbWV3b3JrLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge01hdERhdGVwaWNrZXJNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyXCI7XHJcbmltcG9ydCB7TmdiTW9kdWxlfSBmcm9tIFwiQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXBcIjtcclxuaW1wb3J0IHtSZXBvcnREYXRlcGlja2VyQ29tcG9uZW50fSBmcm9tIFwiLi9kYXRlcGlja2VyL3JlcG9ydC1kYXRlcGlja2VyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0Zvcm1hdENvbXBvbmVudH0gZnJvbSBcIi4vZm9ybWF0L2Zvcm1hdC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtQYXJhbWV0ZXJDb21wb25lbnR9IGZyb20gXCIuL3BhcmFtZXRlci9wYXJhbWV0ZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge1NlbGVjdE1vZHVsZX0gZnJvbSBcIkBodW50c21hbi1jYW5jZXItaW5zdGl0dXRlL2lucHV0XCI7XHJcbmltcG9ydCB7U3Bpbm5lckRpYWxvZ0NvbXBvbmVudH0gZnJvbSBcIi4vc3Bpbm5lci9zcGlubmVyLWRpYWxvZy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtBZ0dyaWRNb2R1bGV9IGZyb20gXCJhZy1ncmlkLWFuZ3VsYXJcIjtcclxuaW1wb3J0IHtNYXRMZWdhY3lQcm9ncmVzc1NwaW5uZXJNb2R1bGUgYXMgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LXByb2dyZXNzLXNwaW5uZXJcIjtcclxuaW1wb3J0IHsgTWF0TGVnYWN5RGlhbG9nTW9kdWxlIGFzIE1hdERpYWxvZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktZGlhbG9nXCI7XHJcbmltcG9ydCB7RGlhbG9nc1NlcnZpY2V9IGZyb20gXCIuL3NwaW5uZXIvZGlhbG9ncy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7UmVzaXphYmxlU2VjdGlvbkRpdmlkZXJDb21wb25lbnR9IGZyb20gXCIuL3Jlc2l6YWJsZS1kaXZpZGVyL3Jlc2l6YWJsZS1zZWN0aW9uLWRpdmlkZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7TWF0TGVnYWN5VGFic01vZHVsZSBhcyBNYXRUYWJzTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LXRhYnNcIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgICAgIE5nYk1vZHVsZSxcclxuICAgICAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxyXG4gICAgICAgIE1hdERpYWxvZ01vZHVsZSxcclxuICAgICAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXHJcbiAgICAgICAgTWF0VGFic01vZHVsZSxcclxuICAgICAgICBTZWxlY3RNb2R1bGUsXHJcbiAgICAgICAgQWdHcmlkTW9kdWxlLFxyXG4gICAgXSxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIERhdGVQaXBlLFxyXG4gICAgICAgIERpYWxvZ3NTZXJ2aWNlXHJcbiAgICBdLFxyXG4gICAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICAgICAgUmVwb3J0aW5nRnJhbWV3b3JrQ29tcG9uZW50LFxyXG4gICAgICAgIFJlcG9ydERhdGVwaWNrZXJDb21wb25lbnQsXHJcbiAgICAgICAgUGFyYW1ldGVyQ29tcG9uZW50LFxyXG4gICAgICAgIEZvcm1hdENvbXBvbmVudCxcclxuICAgICAgICBTcGlubmVyRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgICAgIFJlc2l6YWJsZVNlY3Rpb25EaXZpZGVyQ29tcG9uZW50XHJcbiAgICBdLFxyXG4gICAgZXhwb3J0czogW1xyXG4gICAgICAgIFJlcG9ydGluZ0ZyYW1ld29ya0NvbXBvbmVudFxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVwb3J0TW9kdWxlIHt9XHJcbiJdfQ==
|
|
@@ -7,7 +7,7 @@ import { Option } from "./model/option.model";
|
|
|
7
7
|
import { ReportTab } from "./model/report-tab.model";
|
|
8
8
|
import { Format } from "./model/format.model";
|
|
9
9
|
import { FormatComponent } from "./format/format.component";
|
|
10
|
-
import
|
|
10
|
+
import moment from "moment";
|
|
11
11
|
import { DatePipe } from "@angular/common";
|
|
12
12
|
import { ModalDismissReasons, NgbModal } from "@ng-bootstrap/ng-bootstrap";
|
|
13
13
|
import { DialogsService } from "./spinner/dialogs.service";
|
|
@@ -405,8 +405,8 @@ export class ReportingFrameworkComponent {
|
|
|
405
405
|
ngOnDestroy() {
|
|
406
406
|
this.destroyComponentRefs();
|
|
407
407
|
}
|
|
408
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
409
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
408
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ReportingFrameworkComponent, deps: [{ token: i1.HttpClient }, { token: i0.ComponentFactoryResolver }, { token: i2.DatePipe }, { token: i3.DialogsService }, { token: i4.NgbModal }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
409
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ReportingFrameworkComponent, selector: "hci-reporting-framework", inputs: { manageReportUrl: "manageReportUrl", commandPrefix: "commandPrefix", dictAPILeadIn: "dictAPILeadIn", reportsByType: "reportsByType" }, viewQueries: [{ propertyName: "paramContainer", first: true, predicate: ["paramContainer"], descendants: true, read: ViewContainerRef }, { propertyName: "formatContainer", first: true, predicate: ["formatContainer"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: `
|
|
410
410
|
<div style="height: 100vh">
|
|
411
411
|
<resizable-section-divider class="flex-grow-1" [isVerticalLayout]="true">
|
|
412
412
|
<div topSection class="d-flex flex-column" style="height: 100%; width: 100%; overflow: auto;">
|
|
@@ -510,7 +510,7 @@ export class ReportingFrameworkComponent {
|
|
|
510
510
|
|
|
511
511
|
`, isInline: true, styles: [":host ::ng-deep .mat-tab-body-wrapper{flex-grow:1}:host ::ng-deep .mat-tab-label{background-color:#98c7e0}:host ::ng-deep .mat-tab-label-active{background-color:#def4ff}.report-details{height:100%;width:100%;position:absolute}.center-row{margin-top:10px;margin-left:60vw}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatLegacyTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { kind: "component", type: i5.MatLegacyTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "directive", type: i5.MatLegacyTabContent, selector: "[matTabContent]" }, { kind: "component", type: i6.AgGridAngular, selector: "ag-grid-angular", inputs: ["gridOptions", "modules", "statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "suppressMenuHide", "enableBrowserTooltips", "tooltipShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "maintainColumnOrder", "suppressFieldDotNotation", "deltaColumnMode", "applyColumnDefOrder", "immutableColumns", "suppressSetColumnStateEvents", "suppressColumnStateEvents", "colWidth", "minColWidth", "maxColWidth", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressDragLeaveHidesColumns", "suppressRowGroupHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "components", "frameworkComponents", "editType", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterMovesDown", "enterMovesDownAfterEdit", "enableCellEditingOnBackspace", "undoRedoCellEditing", "undoRedoCellEditingLimit", "stopEditingWhenGridLosesFocus", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "defaultExportParams", "quickFilterText", "cacheQuickFilter", "excludeChildrenWhenTreeDataFiltering", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "enableChartToolPanelsButton", "chartToolPanelsDef", "loadingCellRenderer", "loadingCellRendererFramework", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererFramework", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressParentsInRowNodes", "suppressTouch", "suppressFocusAfterRefresh", "suppressAsyncEvents", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentFramework", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentFramework", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "pagination", "paginationPageSize", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "suppressAggFuncInHeader", "suppressAggAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "enableCellChangeFlash", "cellFlashDelay", "cellFadeDelay", "allowShowChangeAfterFilter", "domLayout", "ensureDomOrder", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "rowDragText", "fullWidthCellRenderer", "fullWidthCellRendererFramework", "fullWidthCellRendererParams", "embedFullWidthRows", "deprecatedEmbedFullWidthRows", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupAggFiltering", "groupIncludeFooter", "groupIncludeTotalFooter", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererFramework", "groupRowRendererParams", "suppressMakeColumnVisibleAfterUnGroup", "treeData", "rowGroupPanelSuppressSort", "groupRowsSticky", "groupRowInnerRenderer", "groupRowInnerRendererFramework", "groupMultiAutoColumn", "groupUseEntireRow", "groupSuppressAutoColumn", "rememberGroupStateWhenNewData", "pinnedTopRowData", "pinnedBottomRowData", "rowModelType", "rowData", "immutableData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "deltaRowDataMode", "batchUpdateWaitMillis", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideInitialRowCount", "serverSideStoreType", "serverSideInfiniteScroll", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortAllLevels", "serverSideFilterAllLevels", "serverSideSortOnServer", "serverSideFilterOnServer", "serverSideSortingAlwaysResets", "serverSideFilteringAlwaysResets", "suppressEnterpriseResetOnNewColumns", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellSelection", "suppressCellFocus", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "deltaSort", "treeDataDisplayType", "angularCompileRows", "angularCompileFilters", "functionsPassive", "enableGroupEdit", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "suppressKeyboardEvent", "localeTextFunc", "getLocaleText", "getDocument", "paginationNumberFormatter", "groupRowAggNodes", "getGroupRowAgg", "isGroupOpenByDefault", "initialGroupOrderComparator", "defaultGroupOrderComparator", "processSecondaryColDef", "processSecondaryColGroupDef", "processPivotResultColDef", "processPivotResultColGroupDef", "getDataPath", "defaultGroupSortComparator", "getChildCount", "getServerSideGroupLevelParams", "getServerSideStoreParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowNodeId", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSort", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthCell", "isFullWidthRow"], outputs: ["toolPanelVisibleChanged", "toolPanelSizeChanged", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "filterOpened", "filterChanged", "filterModified", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "cellKeyPress", "gridReady", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pinnedRowDataChanged", "rowDataChanged", "rowDataUpdated", "asyncTransactionsFlushed", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "sortChanged", "columnRowGroupChangeRequest", "columnPivotChangeRequest", "columnValueChangeRequest", "columnAggFuncChangeRequest"] }, { kind: "component", type: i7.ResizableSectionDividerComponent, selector: "resizable-section-divider", inputs: ["initialPercentage", "isVerticalLayout", "maxPercentage", "minPercentage"] }] }); }
|
|
512
512
|
}
|
|
513
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
513
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ReportingFrameworkComponent, decorators: [{
|
|
514
514
|
type: Component,
|
|
515
515
|
args: [{ selector: "hci-reporting-framework", template: `
|
|
516
516
|
<div style="height: 100vh">
|
|
@@ -630,4 +630,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
630
630
|
type: ViewChild,
|
|
631
631
|
args: ["formatContainer", { read: ViewContainerRef, static: false }]
|
|
632
632
|
}] } });
|
|
633
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0aW5nLWZyYW1ld29yay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9yZXBvcnRpbmctZnJhbWV3b3JrL3NyYy9yZXBvcnRpbmctZnJhbWV3b3JrLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULHdCQUF3QixFQUN4QixLQUFLLEVBRUwsU0FBUyxFQUNULGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsVUFBVSxFQUFFLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzVELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDMUMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDNUMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUMsbUJBQW1CLEVBQUUsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDekUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7QUFxSXpELE1BQU0sT0FBTywyQkFBMkI7SUFvQ3BDLFlBQW9CLElBQWdCLEVBQ2hCLFFBQWtDLEVBQ2xDLFFBQWtCLEVBQ2xCLGNBQThCLEVBQzlCLFlBQXNC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RyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFFZ0UsY0FBYztzQkFBbkYsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUNHLGVBQWU7c0JBQXJGLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDb21wb25lbnQsIENvbXBvbmVudEZhY3RvcnksXHJcbiAgICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIENvbXBvbmVudFJlZixcclxuICAgIElucHV0LCBPbkRlc3Ryb3ksXHJcbiAgICBPbkluaXQsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbiAgICBWaWV3Q29udGFpbmVyUmVmXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwUGFyYW1zfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHtSZXBvcnR9IGZyb20gXCIuL21vZGVsL3JlcG9ydC5tb2RlbFwiO1xyXG5pbXBvcnQge1BhcmFtfSBmcm9tIFwiLi9tb2RlbC9wYXJhbS5tb2RlbFwiO1xyXG5pbXBvcnQge1BhcmFtZXRlckNvbXBvbmVudH0gZnJvbSBcIi4vcGFyYW1ldGVyL3BhcmFtZXRlci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtPcHRpb259IGZyb20gXCIuL21vZGVsL29wdGlvbi5tb2RlbFwiO1xyXG5pbXBvcnQge1JlcG9ydFRhYn0gZnJvbSBcIi4vbW9kZWwvcmVwb3J0LXRhYi5tb2RlbFwiO1xyXG5pbXBvcnQge0Zvcm1hdH0gZnJvbSBcIi4vbW9kZWwvZm9ybWF0Lm1vZGVsXCI7XHJcbmltcG9ydCB7Rm9ybWF0Q29tcG9uZW50fSBmcm9tIFwiLi9mb3JtYXQvZm9ybWF0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xyXG5pbXBvcnQge0RhdGVQaXBlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7TW9kYWxEaXNtaXNzUmVhc29ucywgTmdiTW9kYWx9IGZyb20gXCJAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcFwiO1xyXG5pbXBvcnQge0RpYWxvZ3NTZXJ2aWNlfSBmcm9tIFwiLi9zcGlubmVyL2RpYWxvZ3Muc2VydmljZVwiO1xyXG5pbXBvcnQgeyBHcmlkQXBpIH0gZnJvbSBcImFnLWdyaWQtY29tbXVuaXR5XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImhjaS1yZXBvcnRpbmctZnJhbWV3b3JrXCIsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OiAxMDB2aFwiPlxyXG4gICAgICAgIDxyZXNpemFibGUtc2VjdGlvbi1kaXZpZGVyIGNsYXNzPVwiZmxleC1ncm93LTFcIiBbaXNWZXJ0aWNhbExheW91dF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICA8ZGl2IHRvcFNlY3Rpb24gY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW5cIiBzdHlsZT1cImhlaWdodDogMTAwJTsgd2lkdGg6IDEwMCU7IG92ZXJmbG93OiBhdXRvO1wiPlxyXG4gICAgICAgICAgICA8IS0tY2FuIHdyYXAganVzdCB0aGUgZ3JpZCB3aXRoIHRoZSB0YWJzLS0+XHJcbiAgICAgICAgICAgIDxtYXQtdGFiLWdyb3VwICpuZ0lmPVwidGFiTGlzdC5sZW5ndGggPiAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4LWdyb3ctMVwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtdGFiICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFiTGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJ7e3RhYi50aXRsZX19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXgtZ3Jvdy0xXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0VGFiQ29udGVudD5cclxuICAgICAgICAgICAgICAgICAgPGFnLWdyaWQtYW5ndWxhclxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWctdGhlbWUtYmFsaGFtIGZ1bGwtd2lkdGggZmxleC1ncm93LTFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwibWluLWhlaWdodDogMjAwcHg7IGhlaWdodDogMTAwJTtcIlxyXG4gICAgICAgICAgICAgICAgICAgIChncmlkUmVhZHkpPVwidGhpcy5vblRhYmJlZEdyaWRSZWFkeSgkZXZlbnQsIHRhYi5uYW1lKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2dyaWRPcHRpb25zXT1cInRoaXMuZ3JpZE9wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtyb3dTZWxlY3Rpb25dPVwiJ3NpbmdsZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgIChyb3dTZWxlY3RlZCk9XCJzZXRTZWxlY3RlZFJvdygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICBbZnJhbWV3b3JrQ29tcG9uZW50c109XCJmcmFtZXdvcmtDb21wb25lbnRzXCJcclxuICAgICAgICAgICAgICAgICAgICBbcm93RGF0YV09XCJ0YWJiZWRHcmlkTGlzdFt0YWIubmFtZV1cIj5cclxuICAgICAgICAgICAgICAgICAgPC9hZy1ncmlkLWFuZ3VsYXI+XHJcbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDwvbWF0LXRhYj5cclxuICAgICAgICAgICAgPC9tYXQtdGFiLWdyb3VwPlxyXG5cclxuICAgICAgICAgICAgPCEtLW5nYi10YWJzZXQgKm5nSWY9XCJ0YWJMaXN0Lmxlbmd0aCA+IDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXN0cm95T25IaWRlPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGFic1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleC1ncm93LTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAjcmVwb3J0VGFiU2V0PVwibmdiVGFic2V0XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxuZ2ItdGFiICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFiTGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJ7e3RhYi5uYW1lfX1cIiB0aXRsZT1cInt7dGFiLnRpdGxlfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiYm9yZGVyOiA1cHggc29saWQ7XCIgPlxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG5nYlRhYkNvbnRlbnQgPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPGFnLWdyaWQtYW5ndWxhclxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWctdGhlbWUtYmFsaGFtIGZ1bGwtd2lkdGggZmxleC1ncm93LTFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwibWluLWhlaWdodDogMjAwcHg7IGhlaWdodDogMTAwJTtcIlxyXG4gICAgICAgICAgICAgICAgICAgIChncmlkUmVhZHkpPVwidGhpcy5vblRhYmJlZEdyaWRSZWFkeSgkZXZlbnQsIHRhYi5uYW1lKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2dyaWRPcHRpb25zXT1cInRoaXMuZ3JpZE9wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtyb3dTZWxlY3Rpb25dPVwiJ3NpbmdsZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgIChyb3dTZWxlY3RlZCk9XCJzZXRTZWxlY3RlZFJvdygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICBbZnJhbWV3b3JrQ29tcG9uZW50c109XCJmcmFtZXdvcmtDb21wb25lbnRzXCJcclxuICAgICAgICAgICAgICAgICAgICBbcm93RGF0YV09XCJ0YWJiZWRHcmlkTGlzdFt0YWIubmFtZV1cIj5cclxuICAgICAgICAgICAgICAgICAgPC9hZy1ncmlkLWFuZ3VsYXI+XHJcbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDwvbmdiLXRhYj5cclxuXHJcbiAgICAgICAgICAgIDwvbmdiLXRhYnNldC0tPlxyXG5cclxuICAgICAgICAgICAgPGFnLWdyaWQtYW5ndWxhciAqbmdJZj1cInRhYkxpc3QubGVuZ3RoIDw9IDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWctdGhlbWUtYmFsaGFtIGZ1bGwtd2lkdGggZmxleC1ncm93LTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwibWluLWhlaWdodDogMjAwcHg7IGhlaWdodDogMTAwJTtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChncmlkUmVhZHkpPVwidGhpcy5vbk1haW5HcmlkUmVhZHkoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dyaWRPcHRpb25zXT1cInRoaXMuZ3JpZE9wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3dTZWxlY3Rpb25dPVwiJ3NpbmdsZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyb3dTZWxlY3RlZCk9XCJzZXRTZWxlY3RlZFJvdygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZnJhbWV3b3JrQ29tcG9uZW50c109XCJmcmFtZXdvcmtDb21wb25lbnRzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcm93RGF0YV09XCJmdWxsR3JpZExpc3RcIj5cclxuICAgICAgICAgICAgPC9hZy1ncmlkLWFuZ3VsYXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgYm90dG9tU2VjdGlvbiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtblwiIHN0eWxlPVwiaGVpZ2h0OiA4MCU7IHdpZHRoOiAxMDAlOyBvdmVyZmxvdzogYXV0bztcIj5cclxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrO1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAyNXB4OyBmb250LXdlaWdodDogYm9sZFwiPnt7c2VsZWN0ZWRSZXBvcnQudGl0bGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuXCIgKm5nSWY9XCJzZWxlY3RlZFJlcG9ydC5oZWxwICYmIHNlbGVjdGVkUmVwb3J0LmhlbHAgIT0gJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkhlbHAoY29udGVudClcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtcXVlc3Rpb24tY2lyY2xlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8dGVtcGxhdGUgI3BhcmFtQ29udGFpbmVyPjwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBibG9jaztcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGNlbnRlci1yb3dcIj5cclxuICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSAjZm9ybWF0Q29udGFpbmVyPjwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwic2VsZWN0ZWRSZXBvcnQubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJ1blJlcG9ydCgpXCJcclxuICAgICAgICAgICAgICAgID5SdW4gUmVwb3J0PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9yZXNpemFibGUtc2VjdGlvbi1kaXZpZGVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPG5nLXRlbXBsYXRlICNjb250ZW50IGxldC1tb2RhbD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XHJcbiAgICAgICAgICA8aDQgY2xhc3M9XCJtb2RhbC10aXRsZVwiIGlkPVwiaGVscC1tb2RlbC10aXRsZVwiPlJlcG9ydCBIZWxwPC9oND5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2xvc2VcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygnQ3Jvc3MgY2xpY2snKVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIiA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgW2lubmVySFRNTF09XCJzZWxlY3RlZFJlcG9ydC5oZWxwXCI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XHJcbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKCdPayBjbGljaycpXCI+T0s8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICBgLFxyXG4gICAgc3R5bGVzOiBbYFxyXG4gICAgICA6aG9zdCA6Om5nLWRlZXAgLm1hdC10YWItYm9keS13cmFwcGVye1xyXG4gICAgICAgIGZsZXgtZ3JvdzogMTtcclxuICAgICAgfVxyXG5cclxuICAgICAgOmhvc3QgOjpuZy1kZWVwIC5tYXQtdGFiLWxhYmVse1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5OGM3ZTA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIDpob3N0IDo6bmctZGVlcCAubWF0LXRhYi1sYWJlbC1hY3RpdmV7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RlZjRmZjtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnJlcG9ydC1kZXRhaWxze1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGVcclxuICAgICAgfVxyXG5cclxuICAgICAgLmNlbnRlci1yb3d7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNjB2dztcclxuICAgICAgfVxyXG4gICAgYF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFJlcG9ydGluZ0ZyYW1ld29ya0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgICBASW5wdXQoKSBtYW5hZ2VSZXBvcnRVcmw6IHN0cmluZzsgLy8gL2FydGFkbWluL2xlZ2FjeS9hcGkvaGNpLmFydGFkbWluLmNvbnRyb2xsZXIuTWFuYWdlUmVwb3J0c1xyXG4gICAgQElucHV0KCkgY29tbWFuZFByZWZpeDogc3RyaW5nOyAvLyAgL2FydGFkbWluL2xlZ2FjeS9hcGkvanNwXHJcbiAgICBASW5wdXQoKSBkaWN0QVBJTGVhZEluOiBzdHJpbmc7IC8vIC9hcnRhZG1pbi9hcGkvZGljdGlvbmFyaWVzXHJcbiAgICBASW5wdXQoKSByZXBvcnRzQnlUeXBlOiBzdHJpbmc7IC8vb3B0aW9uYWwuIHVzdWFsbHkgXCJnbG9iYWxcIiBvciBcInBhdGllbnRcIlxyXG5cclxuICAgIEBWaWV3Q2hpbGQoXCJwYXJhbUNvbnRhaW5lclwiLCB7cmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiBmYWxzZX0pIHBhcmFtQ29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xyXG4gICAgQFZpZXdDaGlsZChcImZvcm1hdENvbnRhaW5lclwiLCB7cmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiBmYWxzZX0pIGZvcm1hdENvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcclxuXHJcbiAgICBmdWxsR3JpZExpc3Q6IGFueVtdID0gW107XHJcbiAgICB0YWJiZWRHcmlkTGlzdDogYW55ID0ge307XHJcblxyXG5cclxuICAgIGdyaWRPcHRpb25zID0ge1xyXG4gICAgICByb3dTdHlsZToge1xyXG4gICAgICAgIFwiZm9udC1mYW1pbHlcIjogXCJQcm9tcHQsIHNhbnMtc2VyaWZcIlxyXG4gICAgICB9LFxyXG4gICAgICByb3dIZWlnaHQ6IDIwLFxyXG4gICAgICBlbmFibGVDZWxsVGV4dFNlbGVjdGlvbjogdHJ1ZSxcclxuICAgICAgZW5zdXJlRG9tT3JkZXI6IHRydWVcclxuICAgIH07IC8vZW5hYmxlQ2VsbFRleHRTZWxlY3Rpb24gc2hvdWxkIGJlIGNvbWJpbmVkIHdpdGggZW5zdXJlRG9tT3JkZXJcclxuICAgIGZyYW1ld29ya0NvbXBvbmVudHM6IGFueTtcclxuXHJcbiAgICBtYWluR3JpZEFwaTogR3JpZEFwaTtcclxuICAgIHRhYmJlZEdyaWRBcGlMaXN0OiBhbnkgPSB7fTsgLy9hIG1hcCBvZiBHcmlkQVBJcyB0byB0YWIgbmFtZXNcclxuXHJcbiAgICByZXBvcnRMaXN0OiBSZXBvcnRbXSA9IFtdO1xyXG4gICAgdGFiTGlzdDogUmVwb3J0VGFiW10gPSBbXTtcclxuICAgIHRhYlR5cGVOYW1lTG9va3VwOiBhbnkgPSB7fTsgLy9hIGtpbmQgb2YgZGljdCB0aGF0IG1hcHMgdGhlIHRhYiBvciB0eXBlIHRvIHRoZSB0YWItbmFtZVxyXG5cclxuICAgIHNlbGVjdGVkUmVwb3J0OiBSZXBvcnQgPSBuZXcgUmVwb3J0KCk7XHJcbiAgICBzZWxlY3RlZEZvcm1hdDogc3RyaW5nO1xyXG4gICAgZGlzcGxheWVkUGFyYW1Db21wb25lbnRSZWZzOiBDb21wb25lbnRSZWY8YW55PltdID0gW107XHJcbiAgICBkaXNwbGF5ZWRGb3JtYXRDb21wb25lbnRSZWZzOiBDb21wb25lbnRSZWY8YW55PltdID0gW107XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSByZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGUsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIGRpYWxvZ3NTZXJ2aWNlOiBEaWFsb2dzU2VydmljZSxcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCkge31cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMubWFuYWdlUmVwb3J0VXJsICE9IG51bGwpIHtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuaHR0cC5nZXQodGhpcy5tYW5hZ2VSZXBvcnRVcmwsXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiBuZXcgSHR0cFBhcmFtcygpLnNldChcImFjdGlvblwiLCBcImxvYWRXaXRoUGFyYW1zXCIpXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwKTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgdGVtcGxpc3QgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgdGVtcFRhYmJlZEdyaWRMaXN0ID0ge307XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHZhciB0YWJsaXN0ID0gcmVzcFtcInJlcG9ydFRhYnNcIl07XHJcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgcm93IG9mIHRhYmxpc3QpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRhYjogUmVwb3J0VGFiID0gbmV3IFJlcG9ydFRhYigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWIubmFtZSA9IHJvdy5uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWIudGl0bGUgPSByb3cudGl0bGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYi50eXBlID0gcm93LnR5cGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYi50YWIgPSByb3cudGFiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWIuZGF0YWtleSA9IHJvdy5kYXRha2V5O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLnJlcG9ydHNCeVR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFiTGlzdC5wdXNoKHRhYik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGFiLnRhYikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFiVHlwZU5hbWVMb29rdXBbdGFiLnRhYl0gPSB0YWIubmFtZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YWIudHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFiVHlwZU5hbWVMb29rdXBbdGFiLnR5cGVdID0gdGFiLm5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlcG9ydHNCeVR5cGUgPT0gdGFiLnR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYkxpc3QucHVzaCh0YWIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFiVHlwZU5hbWVMb29rdXBbdGFiLnRhYl0gPSB0YWIubmFtZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRhYkdyaWRMaXN0OiBhbnlbXSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmJlZEdyaWRMaXN0W3RhYi5uYW1lXSA9IHRhYkdyaWRMaXN0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZW1wVGFiYmVkR3JpZExpc3RbdGFiLm5hbWVdID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3QgPSByZXNwW1wicmVwb3J0TGlzdFwiXTtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhsaXN0KTtcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCByb3cgb2YgbGlzdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVwb3J0OiBSZXBvcnQgPSBuZXcgUmVwb3J0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydC5uYW1lID0gcm93Lm5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydC50aXRsZSA9IHJvdy50aXRsZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0LmRlc2NyaXB0aW9uID0gcm93LmRlc2NyaXB0aW9uO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXBvcnQuY2xhc3NOYW1lID0gcm93LmNsYXNzTmFtZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0LmZpbGVOYW1lID0gcm93LmZpbGVOYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXBvcnQudHlwZSA9IHJvdy50eXBlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXBvcnQudGFiID0gcm93LnRhYjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0LmRhdGFrZXkgPSByb3cuZGF0YWtleTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0LmhlbHAgPSByb3cuaGVscDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9iamVjdCA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHJlcG9ydC5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHJlcG9ydC50aXRsZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiByZXBvcnQuZGVzY3JpcHRpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGFibmFtZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcG9ydC50YWIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYm5hbWUgPSB0aGlzLnRhYlR5cGVOYW1lTG9va3VwW3JlcG9ydC50YWJdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLnJlcG9ydHNCeVR5cGUgJiYgcmVwb3J0LnR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYm5hbWUgPSB0aGlzLnRhYlR5cGVOYW1lTG9va3VwW3JlcG9ydC50eXBlXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRhYm5hbWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBncmlkbGlzdDogYW55W10gPSB0ZW1wVGFiYmVkR3JpZExpc3RbdGFibmFtZV07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5yZXBvcnRzQnlUeXBlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcG9ydC50eXBlID09PSB0aGlzLnJlcG9ydHNCeVR5cGUgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWRsaXN0LnB1c2gob2JqZWN0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZGxpc3QucHVzaChvYmplY3QpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcGFyYW1zID0gcm93LnBhcmFtcztcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmFtcykge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IHAgb2YgcGFyYW1zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2cocCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG5ld1BhcmFtOiBQYXJhbSA9IG5ldyBQYXJhbSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1BhcmFtLmRpY3RBUElMZWFkSW4gPSB0aGlzLmRpY3RBUElMZWFkSW47XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1BhcmFtLmNhcHRpb24gPSBwLmNhcHRpb247XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFyYW0ubmFtZSA9IHAubmFtZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS50eXBlID0gcC50eXBlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1BhcmFtLmNsYXNzTmFtZSA9IHAuY2xhc3NOYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1BhcmFtLnZhbHVlWFBhdGggPSBwLnZhbHVlWFBhdGg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFyYW0uZGlzcGxheVhQYXRoID0gcC5kaXNwbGF5WFBhdGg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFyYW0uZGlzcGxheU9yZGVyID0gcC5kaXNwbGF5T3JkZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFyYW0uYWN0aXZlT25seSA9IHAuYWN0aXZlT25seTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS5zb3J0RmllbGQgPSBwLnNvcnRGaWVsZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS5zb3J0TnVtZXJpYyA9IHAuc29ydE51bWVyaWM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFyYW0uZmlsdGVyRmllbGQgPSBwLmZpbHRlckZpZWxkO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV3UGFyYW0udmFsdWVYUGF0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS52YWx1ZVhQYXRoID0gbmV3UGFyYW0udmFsdWVYUGF0aC5yZXBsYWNlKFwiQFwiLCBcIlwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld1BhcmFtLmRpc3BsYXlYUGF0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS5kaXNwbGF5WFBhdGggPSBuZXdQYXJhbS5kaXNwbGF5WFBhdGgucmVwbGFjZShcIkBcIiwgXCJcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdQYXJhbS5zb3J0RmllbGQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFyYW0uc29ydEZpZWxkID0gbmV3UGFyYW0uc29ydEZpZWxkLnJlcGxhY2UoXCJAXCIsIFwiXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG9wdGlvbnMgPSBwLm9wdGlvbnM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMpIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IG8gb2Ygb3B0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG5ld09wdGlvbjogT3B0aW9uID0gbmV3IE9wdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3T3B0aW9uLnZhbHVlID0gby52YWx1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld09wdGlvbi5kaXNwbGF5ID0gby5kaXNwbGF5O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3T3B0aW9uLmRpc3BsYXlPcmRlciA9IG8uZGlzcGxheU9yZGVyO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1BhcmFtLm9wdGlvbnMucHVzaChuZXdPcHRpb24pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBvcnQucGFyYW1zLnB1c2gobmV3UGFyYW0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZm9ybWF0cyA9IHJvdy5mb3JtYXRzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZm9ybWF0cykge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGYgb2YgZm9ybWF0cykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBuZXdGb3JtYXQ6IEZvcm1hdCA9IG5ldyBGb3JtYXQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdGb3JtYXQubmFtZSA9IGYubmFtZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdGb3JtYXQuY2FwdGlvbiA9IGYuY2FwdGlvbjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdGb3JtYXQuZGlzcGxheU9yZGVyID0gZi5kaXNwbGF5T3JkZXI7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydC5mb3JtYXRzLnB1c2gobmV3Rm9ybWF0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVwb3J0TGlzdC5wdXNoKHJlcG9ydCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5yZXBvcnRzQnlUeXBlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihyZXBvcnQudHlwZSA9PT0gdGhpcy5yZXBvcnRzQnlUeXBlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcGxpc3QucHVzaChvYmplY3QpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcGxpc3QucHVzaChvYmplY3QpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZ1bGxHcmlkTGlzdCA9IHRlbXBsaXN0LnNsaWNlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJncmlkbGlzdDogXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMuZnVsbEdyaWRMaXN0KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgZm9yKGxldCB0YWIgb2YgdGhpcy50YWJMaXN0KXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJiZWRHcmlkTGlzdFt0YWIubmFtZV0gPSB0ZW1wVGFiYmVkR3JpZExpc3RbdGFiLm5hbWVdLnNsaWNlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNvbHVtbkRlZigpIDogYW55W10ge1xyXG4gICAgICByZXR1cm4gW1xyXG5cclxuICAgICAgICB7XHJcbiAgICAgICAgICBmaWVsZDogXCJ0aXRsZVwiLFxyXG4gICAgICAgICAgaGVhZGVyTmFtZTogXCJUaXRsZVwiLFxyXG4gICAgICAgICAgd2lkdGg6IDMwMCxcclxuICAgICAgICAgIHNvcnRhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxyXG4gICAgICAgICAgZWRpdGFibGU6IGZhbHNlfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBmaWVsZDogXCJkZXNjcmlwdGlvblwiLFxyXG4gICAgICAgICAgaGVhZGVyTmFtZTogXCJEZXNjcmlwdGlvblwiLFxyXG4gICAgICAgICAgc29ydGFibGU6IHRydWUsXHJcbiAgICAgICAgICByZXNpemFibGU6IHRydWUsXHJcbiAgICAgICAgICBlZGl0YWJsZTogZmFsc2V9XHJcbiAgICAgIF07XHJcblxyXG4gICAgfVxyXG5cclxuICAgIG9uTWFpbkdyaWRSZWFkeShwYXJhbXMgOiBhbnkpIHtcclxuXHJcbiAgICAgIHRoaXMubWFpbkdyaWRBcGkgPSBwYXJhbXMuYXBpO1xyXG4gICAgICB0aGlzLm1haW5HcmlkQXBpLnNldENvbHVtbkRlZnModGhpcy5jb2x1bW5EZWYoKSk7XHJcbiAgICAgIHRoaXMubWFpbkdyaWRBcGkuc2V0Um93RGF0YSh0aGlzLmZ1bGxHcmlkTGlzdCk7XHJcbiAgICAgIHRoaXMubWFpbkdyaWRBcGkuc2l6ZUNvbHVtbnNUb0ZpdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uVGFiYmVkR3JpZFJlYWR5KHBhcmFtcyA6IGFueSwgdGFibmFtZTogc3RyaW5nKSB7XHJcblxyXG4gICAgICB0aGlzLnRhYmJlZEdyaWRBcGlMaXN0W3RhYm5hbWVdID0gcGFyYW1zLmFwaTtcclxuICAgICAgdGhpcy50YWJiZWRHcmlkQXBpTGlzdFt0YWJuYW1lXS5zZXRDb2x1bW5EZWZzKHRoaXMuY29sdW1uRGVmKCkpO1xyXG4gICAgICB0aGlzLnRhYmJlZEdyaWRBcGlMaXN0W3RhYm5hbWVdLnNldFJvd0RhdGEodGhpcy50YWJiZWRHcmlkTGlzdFt0YWJuYW1lXSk7XHJcbiAgICAgIHRoaXMudGFiYmVkR3JpZEFwaUxpc3RbdGFibmFtZV0uc2l6ZUNvbHVtbnNUb0ZpdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFNlbGVjdGVkUm93KGV2ZW50KSB7XHJcblxyXG4gICAgICAgIC8vY29uc29sZS5sb2coZXZlbnQpO1xyXG4gICAgICAgIGlmKGV2ZW50Lm5vZGUuc2VsZWN0ZWQpIHtcclxuICAgICAgICAgIGxldCByZXBvcnROYW1lID0gZXZlbnQubm9kZS5kYXRhLm5hbWU7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhldmVudC5ub2RlLmRhdGEubmFtZSk7XHJcblxyXG4gICAgICAgICAgdmFyIG1hdGNoZWRSZXBvcnQ6IFJlcG9ydDtcclxuICAgICAgICAgIGZvciAobGV0IHIgb2YgdGhpcy5yZXBvcnRMaXN0KSB7XHJcbiAgICAgICAgICAgIGlmIChyLm5hbWUgPT0gcmVwb3J0TmFtZSkge1xyXG4gICAgICAgICAgICAgIG1hdGNoZWRSZXBvcnQgPSByO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKG1hdGNoZWRSZXBvcnQgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkUmVwb3J0ID0gbWF0Y2hlZFJlcG9ydDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSZXBvcnQgPSBuZXcgUmVwb3J0KCk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgdGhpcy5jcmVhdGVQYXJhbUNvbXBvbmVudHMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlUGFyYW1Db21wb25lbnRzKCkge1xyXG4gICAgICAgIGlmKHRoaXMucGFyYW1Db250YWluZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5wYXJhbUNvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZih0aGlzLmZvcm1hdENvbnRhaW5lcikge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1hdENvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy9kZXN0cm95IHByZXZpb3VzIGNvbXBvbmVudHMgYW5kIGNsZWFyIHRoZSBkaXNwbGF5ZWRSZWYgbGlzdHMuLj9cclxuICAgICAgICB0aGlzLmRlc3Ryb3lDb21wb25lbnRSZWZzKCk7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5ZWRQYXJhbUNvbXBvbmVudFJlZnMgPSBbXTtcclxuICAgICAgICB0aGlzLmRpc3BsYXllZEZvcm1hdENvbXBvbmVudFJlZnMgPSBbXTtcclxuXHJcbiAgICAgICAgZm9yKGxldCBwIG9mIHRoaXMuc2VsZWN0ZWRSZXBvcnQucGFyYW1zKXtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGZhY3Rvcnk6IENvbXBvbmVudEZhY3Rvcnk8UGFyYW1ldGVyQ29tcG9uZW50PiA9IHRoaXMucmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoUGFyYW1ldGVyQ29tcG9uZW50KTtcclxuICAgICAgICAgICAgdmFyIGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFBhcmFtZXRlckNvbXBvbmVudD4gPSB0aGlzLnBhcmFtQ29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcclxuICAgICAgICAgICAgdGhpcy5kaXNwbGF5ZWRQYXJhbUNvbXBvbmVudFJlZnMucHVzaChjb21wb25lbnRSZWYpO1xyXG5cclxuICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnNldFBhcmFtKHApO1xyXG5cclxuICAgICAgICAgICAgaWYocC5vcHRpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIHZhciBlbnRyaWVzOiBhbnlbXSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgZm9yKGxldCBvIG9mIHAub3B0aW9ucyl7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGUgPSB7aWQ6IG8udmFsdWUsIGRpc3BsYXk6IG8uZGlzcGxheX07XHJcbiAgICAgICAgICAgICAgICAgICAgZW50cmllcy5wdXNoKGUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmVudHJpZXMgPSBlbnRyaWVzO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFyIGZpcnN0OiBib29sZWFuID0gdHJ1ZTtcclxuICAgICAgICBmb3IobGV0IGYgb2YgdGhpcy5zZWxlY3RlZFJlcG9ydC5mb3JtYXRzKXtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGZhY3RvcnkyOiBDb21wb25lbnRGYWN0b3J5PEZvcm1hdENvbXBvbmVudD4gPSB0aGlzLnJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KEZvcm1hdENvbXBvbmVudCk7XHJcbiAgICAgICAgICAgIHZhciBjb21wb25lbnRSZWYyOiBDb21wb25lbnRSZWY8Rm9ybWF0Q29tcG9uZW50PiA9IHRoaXMuZm9ybWF0Q29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5Mik7XHJcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheWVkRm9ybWF0Q29tcG9uZW50UmVmcy5wdXNoKGNvbXBvbmVudFJlZjIpO1xyXG5cclxuICAgICAgICAgICAgY29tcG9uZW50UmVmMi5pbnN0YW5jZS5mb3JtYXQgPSBmO1xyXG4gICAgICAgICAgICBjb21wb25lbnRSZWYyLmluc3RhbmNlLnNlbGVjdGVkVmFsdWVDaGFuZ2Uuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKHMpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRm9ybWF0ID0gcztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgaWYoZmlyc3QpIHsvL3NlbGVjdCB0aGUgZmlyc3QgZm9ybWF0IGluIHRoZSBncm91cGluZ1xyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50UmVmMi5pbnN0YW5jZS5zZWxlY3RlZFZhbHVlID0gZi5uYW1lO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZvcm1hdCA9IGYubmFtZTtcclxuICAgICAgICAgICAgICAgIGZpcnN0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICBvcGVuSGVscChjb250ZW50KSB7XHJcblxyXG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oY29udGVudCwge2FyaWFMYWJlbGxlZEJ5OiBcImhlbHAtbW9kYWwtdGl0bGVcIn0pXHJcbiAgICAgICAgICAgIC5yZXN1bHQudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuY2xvc2VSZXN1bHQgPSBgQ2xvc2VkIHdpdGg6ICR7cmVzdWx0fWA7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7XHJcblxyXG4gICAgICAgIH0sIChyZWFzb24pID0+IHtcclxuICAgICAgICAgICAgdmFyIGNsb3NlUmVzdWx0ID0gYERpc21pc3NlZCAke3RoaXMuZ2V0RGlzbWlzc1JlYXNvbihyZWFzb24pfWA7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGNsb3NlUmVzdWx0KTtcclxuXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0RGlzbWlzc1JlYXNvbihyZWFzb246IGFueSk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKHJlYXNvbiA9PT0gTW9kYWxEaXNtaXNzUmVhc29ucy5FU0MpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFwiYnkgcHJlc3NpbmcgRVNDXCI7XHJcbiAgICAgICAgfSBlbHNlIGlmIChyZWFzb24gPT09IE1vZGFsRGlzbWlzc1JlYXNvbnMuQkFDS0RST1BfQ0xJQ0spIHtcclxuICAgICAgICAgICAgcmV0dXJuIFwiYnkgY2xpY2tpbmcgb24gYSBiYWNrZHJvcFwiO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiAgYHdpdGg6ICR7cmVhc29ufWA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uUnVuUmVwb3J0KCkge1xyXG5cclxuICAgICAgICBpZih0aGlzLnNlbGVjdGVkUmVwb3J0KSB7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ3NTZXJ2aWNlLnN0YXJ0RGVmYXVsdFNwaW5uZXJEaWFsb2coKTtcclxuXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZm9ybWF0OlwiICsgdGhpcy5zZWxlY3RlZEZvcm1hdCk7XHJcbiAgICAgICAgICAgIGlmKCF0aGlzLnNlbGVjdGVkRm9ybWF0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRm9ybWF0ID0gXCJodG1sXCI7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGxldCBydW5QYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG4gICAgICAgICAgICBydW5QYXJhbXMgPSBydW5QYXJhbXMuYXBwZW5kKFwiZm9ybWF0XCIsIHRoaXMuc2VsZWN0ZWRGb3JtYXQpO1xyXG4gICAgICAgICAgICBydW5QYXJhbXMgPSBydW5QYXJhbXMuYXBwZW5kKFwiYWN0aW9uXCIsIFwic2hvd1wiKTtcclxuICAgICAgICAgICAgcnVuUGFyYW1zID0gcnVuUGFyYW1zLmFwcGVuZChcInJlcG9ydE5hbWVcIiwgdGhpcy5zZWxlY3RlZFJlcG9ydC5uYW1lKTtcclxuXHJcbiAgICAgICAgICAgIHJ1blBhcmFtcyA9IHRoaXMuZ2V0UnVuUGFyYW1ldGVycyhydW5QYXJhbXMpO1xyXG5cclxuICAgICAgICAgICAgY29uc29sZS5sb2cocnVuUGFyYW1zKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuaHR0cC5nZXQodGhpcy5jb21tYW5kUHJlZml4ICsgdGhpcy5zZWxlY3RlZFJlcG9ydC5jbGFzc05hbWUsXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiBydW5QYXJhbXMsXHJcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZTogXCJyZXNwb25zZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogXCJibG9iXCJcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVzKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGZpbGVuYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuc2VsZWN0ZWRGb3JtYXQgIT0gXCJodG1sXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUgPSByZXMuaGVhZGVycy5nZXQoXCJjb250ZW50LWRpc3Bvc2l0aW9uXCIpLnNwbGl0KFwiO1wiKVsxXS5zcGxpdChcIj1cIilbMV0ucmVwbGFjZSgvXFxcIi9nLCBcIlwiKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGJsb2IgPSBuZXcgQmxvYihbcmVzLmJvZHldLCB7dHlwZTogcmVzLmJvZHkudHlwZX0gKTsgLy8sIHt0eXBlOiBcImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbFwifVxyXG4gICAgICAgICAgICAgICAgICAgIHZhciBmaWxlVVJMID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZmlsZVVSTCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGE6IEhUTUxBbmNob3JFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIikgYXMgSFRNTEFuY2hvckVsZW1lbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgYS5ocmVmID0gZmlsZVVSTDtcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLnNlbGVjdGVkRm9ybWF0ID09IFwiaHRtbFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGEudGFyZ2V0ID0gXCJfYmxhbmtcIjtcclxuICAgICAgICAgICAgICAgICAgICB9ZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGEuZG93bmxvYWQgPSBmaWxlbmFtZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7XHJcbiAgICAgICAgICAgICAgICAgICAgYS5jbGljaygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5kb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGEpO1xyXG4gICAgICAgICAgICAgICAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwoZmlsZVVSTCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nc1NlcnZpY2Uuc3RvcEFsbFNwaW5uZXJEaWFsb2dzKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldFJ1blBhcmFtZXRlcnMocnVuUGFyYW1zOiBIdHRwUGFyYW1zKTogSHR0cFBhcmFtcyB7XHJcbiAgICAgICAgdmFyIG5ld1BhcmFtcyA9IHJ1blBhcmFtcztcclxuXHJcbiAgICAgICAgZm9yKGxldCBvIG9mIHRoaXMuZGlzcGxheWVkUGFyYW1Db21wb25lbnRSZWZzKXtcclxuICAgICAgICAgICAgdmFyIHBhcmFtID0gby5pbnN0YW5jZS5wYXJhbTtcclxuXHJcbiAgICAgICAgICAgIGlmKHBhcmFtLnR5cGUgPT0gXCJtdWx0aXNlbGVjdFwiKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgcmVzTGlzdCA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICBmb3IobGV0IHYgb2YgcGFyYW0uc2VsZWN0ZWRWYWx1ZUxpc3Qpe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHJlc0xpc3QgIT0gXCJcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNMaXN0ICs9IFwiLFwiO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICByZXNMaXN0ICs9IHY7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBuZXdQYXJhbXMgPSBuZXdQYXJhbXMuYXBwZW5kKHBhcmFtLm5hbWUsIHJlc0xpc3QpO1xyXG4gICAgICAgICAgICB9ZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgdmFsdWU7XHJcbiAgICAgICAgICAgICAgICBpZihwYXJhbS5zZWxlY3RlZFZhbHVlKSB7IC8vc28gd2UgZG9uJ3QgZ2V0IFwidW5kZWZpbmVkXCIgc2VudCBiYWNrXHJcbiAgICAgICAgICAgICAgICAgICAgaWYocGFyYW0udHlwZSA9PSBcImRhdGVcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHRoaXMuZ2V0RGF0ZVN0cmluZyhwYXJhbS5zZWxlY3RlZFZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICB9ZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gcGFyYW0uc2VsZWN0ZWRWYWx1ZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9ZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBcIlwiO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgbmV3UGFyYW1zID0gbmV3UGFyYW1zLmFwcGVuZChwYXJhbS5uYW1lLCB2YWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG5ld1BhcmFtcztcclxuICAgIH1cclxuXHJcbiAgICBnZXREYXRlU3RyaW5nKGRhdGU6IGFueSk6IHN0cmluZyB7XHJcblxyXG4gICAgICAgIGlmIChkYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xyXG4gICAgICAgICAgICBpZiAoIWlzTmFOKGRhdGUuZ2V0VGltZSgpKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGRhdGUsIFwiTU0vZGQveXl5eVwiKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfWVsc2UgaWYobW9tZW50LmlzTW9tZW50KGRhdGUpICkge1xyXG4gICAgICAgICAgICBpZihkYXRlICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRlLmZvcm1hdChcIk0vRC9ZWVlZXCIpO1xyXG4gICAgICAgICAgICB9ZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1lbHNlIGlmKHR5cGVvZiBkYXRlID09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGRhdGU7XHJcbiAgICAgICAgfWVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZGVzdHJveUNvbXBvbmVudFJlZnMoKSB7XHJcbiAgICAgIGZvcihsZXQgbyBvZiB0aGlzLmRpc3BsYXllZFBhcmFtQ29tcG9uZW50UmVmcyl7XHJcbiAgICAgICAgby5kZXN0cm95KCk7XHJcbiAgICAgIH1cclxuICAgICAgZm9yKGxldCBvIG9mIHRoaXMuZGlzcGxheWVkRm9ybWF0Q29tcG9uZW50UmVmcyl7XHJcbiAgICAgICAgby5kZXN0cm95KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRlc3Ryb3lDb21wb25lbnRSZWZzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLypcclxuICAgIHN0eWxlczogW2BcclxuICAgICAgLnJlcG9ydC1kZXRhaWxze1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGVcclxuICAgICAgfVxyXG5cclxuICAgICAgLmNlbnRlci1yb3d7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNjB2dztcclxuICAgICAgfVxyXG5cclxuICAgICAgLm1hdC10YWItYm9keS13cmFwcGVye1xyXG4gICAgZmxleC1ncm93OiAxO1xyXG4gIH1cclxuXHJcbi50YWItcGFuZXtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbn1cclxuYF0qL1xyXG59XHJcbiJdfQ==
|
|
633
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0aW5nLWZyYW1ld29yay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9yZXBvcnRpbmctZnJhbWV3b3JrL3NyYy9yZXBvcnRpbmctZnJhbWV3b3JrLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULHdCQUF3QixFQUN4QixLQUFLLEVBRUwsU0FBUyxFQUNULGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsVUFBVSxFQUFFLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzVELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDMUMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDNUMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFDLG1CQUFtQixFQUFFLFFBQVEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3pFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7O0FBcUl6RCxNQUFNLE9BQU8sMkJBQTJCO0lBb0NwQyxZQUFvQixJQUFnQixFQUNoQixRQUFrQyxFQUNsQyxRQUFrQixFQUNsQixjQUE4QixFQUM5QixZQUFzQjtRQUp0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YTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRWdFLGNBQWM7c0JBQW5GLFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFDRyxlQUFlO3NCQUFyRixTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ29tcG9uZW50LCBDb21wb25lbnRGYWN0b3J5LFxyXG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBDb21wb25lbnRSZWYsXHJcbiAgICBJbnB1dCwgT25EZXN0cm95LFxyXG4gICAgT25Jbml0LFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgVmlld0NvbnRhaW5lclJlZlxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7SHR0cENsaWVudCwgSHR0cFBhcmFtc30gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7UmVwb3J0fSBmcm9tIFwiLi9tb2RlbC9yZXBvcnQubW9kZWxcIjtcclxuaW1wb3J0IHtQYXJhbX0gZnJvbSBcIi4vbW9kZWwvcGFyYW0ubW9kZWxcIjtcclxuaW1wb3J0IHtQYXJhbWV0ZXJDb21wb25lbnR9IGZyb20gXCIuL3BhcmFtZXRlci9wYXJhbWV0ZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7T3B0aW9ufSBmcm9tIFwiLi9tb2RlbC9vcHRpb24ubW9kZWxcIjtcclxuaW1wb3J0IHtSZXBvcnRUYWJ9IGZyb20gXCIuL21vZGVsL3JlcG9ydC10YWIubW9kZWxcIjtcclxuaW1wb3J0IHtGb3JtYXR9IGZyb20gXCIuL21vZGVsL2Zvcm1hdC5tb2RlbFwiO1xyXG5pbXBvcnQge0Zvcm1hdENvbXBvbmVudH0gZnJvbSBcIi4vZm9ybWF0L2Zvcm1hdC5jb21wb25lbnRcIjtcclxuaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XHJcbmltcG9ydCB7RGF0ZVBpcGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtNb2RhbERpc21pc3NSZWFzb25zLCBOZ2JNb2RhbH0gZnJvbSBcIkBuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwXCI7XHJcbmltcG9ydCB7RGlhbG9nc1NlcnZpY2V9IGZyb20gXCIuL3NwaW5uZXIvZGlhbG9ncy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEdyaWRBcGkgfSBmcm9tIFwiYWctZ3JpZC1jb21tdW5pdHlcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiaGNpLXJlcG9ydGluZy1mcmFtZXdvcmtcIixcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDEwMHZoXCI+XHJcbiAgICAgICAgPHJlc2l6YWJsZS1zZWN0aW9uLWRpdmlkZXIgY2xhc3M9XCJmbGV4LWdyb3ctMVwiIFtpc1ZlcnRpY2FsTGF5b3V0XT1cInRydWVcIj5cclxuICAgICAgICAgIDxkaXYgdG9wU2VjdGlvbiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtblwiIHN0eWxlPVwiaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTsgb3ZlcmZsb3c6IGF1dG87XCI+XHJcbiAgICAgICAgICAgIDwhLS1jYW4gd3JhcCBqdXN0IHRoZSBncmlkIHdpdGggdGhlIHRhYnMtLT5cclxuICAgICAgICAgICAgPG1hdC10YWItZ3JvdXAgKm5nSWY9XCJ0YWJMaXN0Lmxlbmd0aCA+IDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXgtZ3Jvdy0xXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC10YWIgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cInt7dGFiLnRpdGxlfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleC1ncm93LTFcIj5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRUYWJDb250ZW50PlxyXG4gICAgICAgICAgICAgICAgICA8YWctZ3JpZC1hbmd1bGFyXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZy10aGVtZS1iYWxoYW0gZnVsbC13aWR0aCBmbGV4LWdyb3ctMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtaW4taGVpZ2h0OiAyMDBweDsgaGVpZ2h0OiAxMDAlO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKGdyaWRSZWFkeSk9XCJ0aGlzLm9uVGFiYmVkR3JpZFJlYWR5KCRldmVudCwgdGFiLm5hbWUpXCJcclxuICAgICAgICAgICAgICAgICAgICBbZ3JpZE9wdGlvbnNdPVwidGhpcy5ncmlkT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Jvd1NlbGVjdGlvbl09XCInc2luZ2xlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKHJvd1NlbGVjdGVkKT1cInNldFNlbGVjdGVkUm93KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmcmFtZXdvcmtDb21wb25lbnRzXT1cImZyYW1ld29ya0NvbXBvbmVudHNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtyb3dEYXRhXT1cInRhYmJlZEdyaWRMaXN0W3RhYi5uYW1lXVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L2FnLWdyaWQtYW5ndWxhcj5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPC9tYXQtdGFiPlxyXG4gICAgICAgICAgICA8L21hdC10YWItZ3JvdXA+XHJcblxyXG4gICAgICAgICAgICA8IS0tbmdiLXRhYnNldCAqbmdJZj1cInRhYkxpc3QubGVuZ3RoID4gMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc3Ryb3lPbkhpZGU9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0YWJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4LWdyb3ctMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICNyZXBvcnRUYWJTZXQ9XCJuZ2JUYWJzZXRcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPG5nYi10YWIgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBpZD1cInt7dGFiLm5hbWV9fVwiIHRpdGxlPVwie3t0YWIudGl0bGV9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJib3JkZXI6IDVweCBzb2xpZDtcIiA+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdiVGFiQ29udGVudCA+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8YWctZ3JpZC1hbmd1bGFyXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZy10aGVtZS1iYWxoYW0gZnVsbC13aWR0aCBmbGV4LWdyb3ctMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtaW4taGVpZ2h0OiAyMDBweDsgaGVpZ2h0OiAxMDAlO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKGdyaWRSZWFkeSk9XCJ0aGlzLm9uVGFiYmVkR3JpZFJlYWR5KCRldmVudCwgdGFiLm5hbWUpXCJcclxuICAgICAgICAgICAgICAgICAgICBbZ3JpZE9wdGlvbnNdPVwidGhpcy5ncmlkT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Jvd1NlbGVjdGlvbl09XCInc2luZ2xlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKHJvd1NlbGVjdGVkKT1cInNldFNlbGVjdGVkUm93KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmcmFtZXdvcmtDb21wb25lbnRzXT1cImZyYW1ld29ya0NvbXBvbmVudHNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtyb3dEYXRhXT1cInRhYmJlZEdyaWRMaXN0W3RhYi5uYW1lXVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L2FnLWdyaWQtYW5ndWxhcj5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPC9uZ2ItdGFiPlxyXG5cclxuICAgICAgICAgICAgPC9uZ2ItdGFic2V0LS0+XHJcblxyXG4gICAgICAgICAgICA8YWctZ3JpZC1hbmd1bGFyICpuZ0lmPVwidGFiTGlzdC5sZW5ndGggPD0gMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZy10aGVtZS1iYWxoYW0gZnVsbC13aWR0aCBmbGV4LWdyb3ctMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtaW4taGVpZ2h0OiAyMDBweDsgaGVpZ2h0OiAxMDAlO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdyaWRSZWFkeSk9XCJ0aGlzLm9uTWFpbkdyaWRSZWFkeSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ3JpZE9wdGlvbnNdPVwidGhpcy5ncmlkT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Jvd1NlbGVjdGlvbl09XCInc2luZ2xlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJvd1NlbGVjdGVkKT1cInNldFNlbGVjdGVkUm93KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmcmFtZXdvcmtDb21wb25lbnRzXT1cImZyYW1ld29ya0NvbXBvbmVudHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3dEYXRhXT1cImZ1bGxHcmlkTGlzdFwiPlxyXG4gICAgICAgICAgICA8L2FnLWdyaWQtYW5ndWxhcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBib3R0b21TZWN0aW9uIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uXCIgc3R5bGU9XCJoZWlnaHQ6IDgwJTsgd2lkdGg6IDEwMCU7IG92ZXJmbG93OiBhdXRvO1wiPlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogYmxvY2s7XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDI1cHg7IGZvbnQtd2VpZ2h0OiBib2xkXCI+e3tzZWxlY3RlZFJlcG9ydC50aXRsZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG5cIiAqbmdJZj1cInNlbGVjdGVkUmVwb3J0LmhlbHAgJiYgc2VsZWN0ZWRSZXBvcnQuaGVscCAhPSAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuSGVscChjb250ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1xdWVzdGlvbi1jaXJjbGVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDx0ZW1wbGF0ZSAjcGFyYW1Db250YWluZXI+PC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrO1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgY2VudGVyLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPHRlbXBsYXRlICNmb3JtYXRDb250YWluZXI+PC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJzZWxlY3RlZFJlcG9ydC5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUnVuUmVwb3J0KClcIlxyXG4gICAgICAgICAgICAgICAgPlJ1biBSZXBvcnQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3Jlc2l6YWJsZS1zZWN0aW9uLWRpdmlkZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8bmctdGVtcGxhdGUgI2NvbnRlbnQgbGV0LW1vZGFsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cclxuICAgICAgICAgIDxoNCBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJoZWxwLW1vZGVsLXRpdGxlXCI+UmVwb3J0IEhlbHA8L2g0PlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZVwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKCdDcm9zcyBjbGljaycpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZ0aW1lczs8L3NwYW4+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiID5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBbaW5uZXJIVE1MXT1cInNlbGVjdGVkUmVwb3J0LmhlbHBcIj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cclxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoJ09rIGNsaWNrJylcIj5PSzwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIGAsXHJcbiAgICBzdHlsZXM6IFtgXHJcbiAgICAgIDpob3N0IDo6bmctZGVlcCAubWF0LXRhYi1ib2R5LXdyYXBwZXJ7XHJcbiAgICAgICAgZmxleC1ncm93OiAxO1xyXG4gICAgICB9XHJcblxyXG4gICAgICA6aG9zdCA6Om5nLWRlZXAgLm1hdC10YWItbGFiZWx7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzk4YzdlMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgOmhvc3QgOjpuZy1kZWVwIC5tYXQtdGFiLWxhYmVsLWFjdGl2ZXtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGVmNGZmO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAucmVwb3J0LWRldGFpbHN7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZVxyXG4gICAgICB9XHJcblxyXG4gICAgICAuY2VudGVyLXJvd3tcclxuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA2MHZ3O1xyXG4gICAgICB9XHJcbiAgICBgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVwb3J0aW5nRnJhbWV3b3JrQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICAgIEBJbnB1dCgpIG1hbmFnZVJlcG9ydFVybDogc3RyaW5nOyAvLyAvYXJ0YWRtaW4vbGVnYWN5L2FwaS9oY2kuYXJ0YWRtaW4uY29udHJvbGxlci5NYW5hZ2VSZXBvcnRzXHJcbiAgICBASW5wdXQoKSBjb21tYW5kUHJlZml4OiBzdHJpbmc7IC8vICAvYXJ0YWRtaW4vbGVnYWN5L2FwaS9qc3BcclxuICAgIEBJbnB1dCgpIGRpY3RBUElMZWFkSW46IHN0cmluZzsgLy8gL2FydGFkbWluL2FwaS9kaWN0aW9uYXJpZXNcclxuICAgIEBJbnB1dCgpIHJlcG9ydHNCeVR5cGU6IHN0cmluZzsgLy9vcHRpb25hbC4gdXN1YWxseSBcImdsb2JhbFwiIG9yIFwicGF0aWVudFwiXHJcblxyXG4gICAgQFZpZXdDaGlsZChcInBhcmFtQ29udGFpbmVyXCIsIHtyZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IGZhbHNlfSkgcGFyYW1Db250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XHJcbiAgICBAVmlld0NoaWxkKFwiZm9ybWF0Q29udGFpbmVyXCIsIHtyZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IGZhbHNlfSkgZm9ybWF0Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xyXG5cclxuICAgIGZ1bGxHcmlkTGlzdDogYW55W10gPSBbXTtcclxuICAgIHRhYmJlZEdyaWRMaXN0OiBhbnkgPSB7fTtcclxuXHJcblxyXG4gICAgZ3JpZE9wdGlvbnMgPSB7XHJcbiAgICAgIHJvd1N0eWxlOiB7XHJcbiAgICAgICAgXCJmb250LWZhbWlseVwiOiBcIlByb21wdCwgc2Fucy1zZXJpZlwiXHJcbiAgICAgIH0sXHJcbiAgICAgIHJvd0hlaWdodDogMjAsXHJcbiAgICAgIGVuYWJsZUNlbGxUZXh0U2VsZWN0aW9uOiB0cnVlLFxyXG4gICAgICBlbnN1cmVEb21PcmRlcjogdHJ1ZVxyXG4gICAgfTsgLy9lbmFibGVDZWxsVGV4dFNlbGVjdGlvbiBzaG91bGQgYmUgY29tYmluZWQgd2l0aCBlbnN1cmVEb21PcmRlclxyXG4gICAgZnJhbWV3b3JrQ29tcG9uZW50czogYW55O1xyXG5cclxuICAgIG1haW5HcmlkQXBpOiBHcmlkQXBpO1xyXG4gICAgdGFiYmVkR3JpZEFwaUxpc3Q6IGFueSA9IHt9OyAvL2EgbWFwIG9mIEdyaWRBUElzIHRvIHRhYiBuYW1lc1xyXG5cclxuICAgIHJlcG9ydExpc3Q6IFJlcG9ydFtdID0gW107XHJcbiAgICB0YWJMaXN0OiBSZXBvcnRUYWJbXSA9IFtdO1xyXG4gICAgdGFiVHlwZU5hbWVMb29rdXA6IGFueSA9IHt9OyAvL2Ega2luZCBvZiBkaWN0IHRoYXQgbWFwcyB0aGUgdGFiIG9yIHR5cGUgdG8gdGhlIHRhYi1uYW1lXHJcblxyXG4gICAgc2VsZWN0ZWRSZXBvcnQ6IFJlcG9ydCA9IG5ldyBSZXBvcnQoKTtcclxuICAgIHNlbGVjdGVkRm9ybWF0OiBzdHJpbmc7XHJcbiAgICBkaXNwbGF5ZWRQYXJhbUNvbXBvbmVudFJlZnM6IENvbXBvbmVudFJlZjxhbnk+W10gPSBbXTtcclxuICAgIGRpc3BsYXllZEZvcm1hdENvbXBvbmVudFJlZnM6IENvbXBvbmVudFJlZjxhbnk+W10gPSBbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZSxcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgZGlhbG9nc1NlcnZpY2U6IERpYWxvZ3NTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICAgICAgICBpZiAodGhpcy5tYW5hZ2VSZXBvcnRVcmwgIT0gbnVsbCkge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5odHRwLmdldCh0aGlzLm1hbmFnZVJlcG9ydFVybCxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKCkuc2V0KFwiYWN0aW9uXCIsIFwibG9hZFdpdGhQYXJhbXNcIilcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3ApO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciB0ZW1wbGlzdCA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciB0ZW1wVGFiYmVkR3JpZExpc3QgPSB7fTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRhYmxpc3QgPSByZXNwW1wicmVwb3J0VGFic1wiXTtcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCByb3cgb2YgdGFibGlzdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGFiOiBSZXBvcnRUYWIgPSBuZXcgUmVwb3J0VGFiKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYi5uYW1lID0gcm93Lm5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYi50aXRsZSA9IHJvdy50aXRsZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFiLnR5cGUgPSByb3cudHlwZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFiLnRhYiA9IHJvdy50YWI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYi5kYXRha2V5ID0gcm93LmRhdGFrZXk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMucmVwb3J0c0J5VHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJMaXN0LnB1c2godGFiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YWIudGFiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJUeXBlTmFtZUxvb2t1cFt0YWIudGFiXSA9IHRhYi5uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRhYi50eXBlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJUeXBlTmFtZUxvb2t1cFt0YWIudHlwZV0gPSB0YWIubmFtZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucmVwb3J0c0J5VHlwZSA9PSB0YWIudHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFiTGlzdC5wdXNoKHRhYik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJUeXBlTmFtZUxvb2t1cFt0YWIudGFiXSA9IHRhYi5uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGFiR3JpZExpc3Q6IGFueVtdID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFiYmVkR3JpZExpc3RbdGFiLm5hbWVdID0gdGFiR3JpZExpc3Q7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBUYWJiZWRHcmlkTGlzdFt0YWIubmFtZV0gPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdCA9IHJlc3BbXCJyZXBvcnRMaXN0XCJdO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGxpc3QpO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IHJvdyBvZiBsaXN0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXBvcnQ6IFJlcG9ydCA9IG5ldyBSZXBvcnQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0Lm5hbWUgPSByb3cubmFtZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0LnRpdGxlID0gcm93LnRpdGxlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXBvcnQuZGVzY3JpcHRpb24gPSByb3cuZGVzY3JpcHRpb247XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydC5jbGFzc05hbWUgPSByb3cuY2xhc3NOYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXBvcnQuZmlsZU5hbWUgPSByb3cuZmlsZU5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydC50eXBlID0gcm93LnR5cGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydC50YWIgPSByb3cudGFiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXBvcnQuZGF0YWtleSA9IHJvdy5kYXRha2V5O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXBvcnQuaGVscCA9IHJvdy5oZWxwO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2JqZWN0ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogcmVwb3J0Lm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogcmVwb3J0LnRpdGxlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHJlcG9ydC5kZXNjcmlwdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0YWJuYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVwb3J0LnRhYikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibmFtZSA9IHRoaXMudGFiVHlwZU5hbWVMb29rdXBbcmVwb3J0LnRhYl07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMucmVwb3J0c0J5VHlwZSAmJiByZXBvcnQudHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibmFtZSA9IHRoaXMudGFiVHlwZU5hbWVMb29rdXBbcmVwb3J0LnR5cGVdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGFibmFtZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGdyaWRsaXN0OiBhbnlbXSA9IHRlbXBUYWJiZWRHcmlkTGlzdFt0YWJuYW1lXTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLnJlcG9ydHNCeVR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVwb3J0LnR5cGUgPT09IHRoaXMucmVwb3J0c0J5VHlwZSApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZGxpc3QucHVzaChvYmplY3QpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkbGlzdC5wdXNoKG9iamVjdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwYXJhbXMgPSByb3cucGFyYW1zO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyYW1zKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgcCBvZiBwYXJhbXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbmV3UGFyYW06IFBhcmFtID0gbmV3IFBhcmFtKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFyYW0uZGljdEFQSUxlYWRJbiA9IHRoaXMuZGljdEFQSUxlYWRJbjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFyYW0uY2FwdGlvbiA9IHAuY2FwdGlvbjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS5uYW1lID0gcC5uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1BhcmFtLnR5cGUgPSBwLnR5cGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFyYW0uY2xhc3NOYW1lID0gcC5jbGFzc05hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFyYW0udmFsdWVYUGF0aCA9IHAudmFsdWVYUGF0aDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS5kaXNwbGF5WFBhdGggPSBwLmRpc3BsYXlYUGF0aDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS5kaXNwbGF5T3JkZXIgPSBwLmRpc3BsYXlPcmRlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS5hY3RpdmVPbmx5ID0gcC5hY3RpdmVPbmx5O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1BhcmFtLnNvcnRGaWVsZCA9IHAuc29ydEZpZWxkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1BhcmFtLnNvcnROdW1lcmljID0gcC5zb3J0TnVtZXJpYztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS5maWx0ZXJGaWVsZCA9IHAuZmlsdGVyRmllbGQ7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdQYXJhbS52YWx1ZVhQYXRoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1BhcmFtLnZhbHVlWFBhdGggPSBuZXdQYXJhbS52YWx1ZVhQYXRoLnJlcGxhY2UoXCJAXCIsIFwiXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV3UGFyYW0uZGlzcGxheVhQYXRoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1BhcmFtLmRpc3BsYXlYUGF0aCA9IG5ld1BhcmFtLmRpc3BsYXlYUGF0aC5yZXBsYWNlKFwiQFwiLCBcIlwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld1BhcmFtLnNvcnRGaWVsZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbS5zb3J0RmllbGQgPSBuZXdQYXJhbS5zb3J0RmllbGQucmVwbGFjZShcIkBcIiwgXCJcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgb3B0aW9ucyA9IHAub3B0aW9ucztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9ucykge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgbyBvZiBvcHRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbmV3T3B0aW9uOiBPcHRpb24gPSBuZXcgT3B0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdPcHRpb24udmFsdWUgPSBvLnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3T3B0aW9uLmRpc3BsYXkgPSBvLmRpc3BsYXk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdPcHRpb24uZGlzcGxheU9yZGVyID0gby5kaXNwbGF5T3JkZXI7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFyYW0ub3B0aW9ucy5wdXNoKG5ld09wdGlvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydC5wYXJhbXMucHVzaChuZXdQYXJhbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmb3JtYXRzID0gcm93LmZvcm1hdHM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmb3JtYXRzKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgZiBvZiBmb3JtYXRzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG5ld0Zvcm1hdDogRm9ybWF0ID0gbmV3IEZvcm1hdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0Zvcm1hdC5uYW1lID0gZi5uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0Zvcm1hdC5jYXB0aW9uID0gZi5jYXB0aW9uO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0Zvcm1hdC5kaXNwbGF5T3JkZXIgPSBmLmRpc3BsYXlPcmRlcjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0LmZvcm1hdHMucHVzaChuZXdGb3JtYXQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXBvcnRMaXN0LnB1c2gocmVwb3J0KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlcG9ydHNCeVR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHJlcG9ydC50eXBlID09PSB0aGlzLnJlcG9ydHNCeVR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wbGlzdC5wdXNoKG9iamVjdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wbGlzdC5wdXNoKG9iamVjdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZnVsbEdyaWRMaXN0ID0gdGVtcGxpc3Quc2xpY2UoKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImdyaWRsaXN0OiBcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2codGhpcy5mdWxsR3JpZExpc3QpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBmb3IobGV0IHRhYiBvZiB0aGlzLnRhYkxpc3Qpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmJlZEdyaWRMaXN0W3RhYi5uYW1lXSA9IHRlbXBUYWJiZWRHcmlkTGlzdFt0YWIubmFtZV0uc2xpY2UoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY29sdW1uRGVmKCkgOiBhbnlbXSB7XHJcbiAgICAgIHJldHVybiBbXHJcblxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGZpZWxkOiBcInRpdGxlXCIsXHJcbiAgICAgICAgICBoZWFkZXJOYW1lOiBcIlRpdGxlXCIsXHJcbiAgICAgICAgICB3aWR0aDogMzAwLFxyXG4gICAgICAgICAgc29ydGFibGU6IHRydWUsXHJcbiAgICAgICAgICByZXNpemFibGU6IHRydWUsXHJcbiAgICAgICAgICBlZGl0YWJsZTogZmFsc2V9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGZpZWxkOiBcImRlc2NyaXB0aW9uXCIsXHJcbiAgICAgICAgICBoZWFkZXJOYW1lOiBcIkRlc2NyaXB0aW9uXCIsXHJcbiAgICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcclxuICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcclxuICAgICAgICAgIGVkaXRhYmxlOiBmYWxzZX1cclxuICAgICAgXTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgb25NYWluR3JpZFJlYWR5KHBhcmFtcyA6IGFueSkge1xyXG5cclxuICAgICAgdGhpcy5tYWluR3JpZEFwaSA9IHBhcmFtcy5hcGk7XHJcbiAgICAgIHRoaXMubWFpbkdyaWRBcGkuc2V0Q29sdW1uRGVmcyh0aGlzLmNvbHVtbkRlZigpKTtcclxuICAgICAgdGhpcy5tYWluR3JpZEFwaS5zZXRSb3dEYXRhKHRoaXMuZnVsbEdyaWRMaXN0KTtcclxuICAgICAgdGhpcy5tYWluR3JpZEFwaS5zaXplQ29sdW1uc1RvRml0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25UYWJiZWRHcmlkUmVhZHkocGFyYW1zIDogYW55LCB0YWJuYW1lOiBzdHJpbmcpIHtcclxuXHJcbiAgICAgIHRoaXMudGFiYmVkR3JpZEFwaUxpc3RbdGFibmFtZV0gPSBwYXJhbXMuYXBpO1xyXG4gICAgICB0aGlzLnRhYmJlZEdyaWRBcGlMaXN0W3RhYm5hbWVdLnNldENvbHVtbkRlZnModGhpcy5jb2x1bW5EZWYoKSk7XHJcbiAgICAgIHRoaXMudGFiYmVkR3JpZEFwaUxpc3RbdGFibmFtZV0uc2V0Um93RGF0YSh0aGlzLnRhYmJlZEdyaWRMaXN0W3RhYm5hbWVdKTtcclxuICAgICAgdGhpcy50YWJiZWRHcmlkQXBpTGlzdFt0YWJuYW1lXS5zaXplQ29sdW1uc1RvRml0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0U2VsZWN0ZWRSb3coZXZlbnQpIHtcclxuXHJcbiAgICAgICAgLy9jb25zb2xlLmxvZyhldmVudCk7XHJcbiAgICAgICAgaWYoZXZlbnQubm9kZS5zZWxlY3RlZCkge1xyXG4gICAgICAgICAgbGV0IHJlcG9ydE5hbWUgPSBldmVudC5ub2RlLmRhdGEubmFtZTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGV2ZW50Lm5vZGUuZGF0YS5uYW1lKTtcclxuXHJcbiAgICAgICAgICB2YXIgbWF0Y2hlZFJlcG9ydDogUmVwb3J0O1xyXG4gICAgICAgICAgZm9yIChsZXQgciBvZiB0aGlzLnJlcG9ydExpc3QpIHtcclxuICAgICAgICAgICAgaWYgKHIubmFtZSA9PSByZXBvcnROYW1lKSB7XHJcbiAgICAgICAgICAgICAgbWF0Y2hlZFJlcG9ydCA9IHI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAobWF0Y2hlZFJlcG9ydCAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSZXBvcnQgPSBtYXRjaGVkUmVwb3J0O1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJlcG9ydCA9IG5ldyBSZXBvcnQoKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZVBhcmFtQ29tcG9uZW50cygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVQYXJhbUNvbXBvbmVudHMoKSB7XHJcbiAgICAgICAgaWYodGhpcy5wYXJhbUNvbnRhaW5lcikge1xyXG4gICAgICAgICAgICB0aGlzLnBhcmFtQ29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHRoaXMuZm9ybWF0Q29udGFpbmVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0Q29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL2Rlc3Ryb3kgcHJldmlvdXMgY29tcG9uZW50cyBhbmQgY2xlYXIgdGhlIGRpc3BsYXllZFJlZiBsaXN0cy4uP1xyXG4gICAgICAgIHRoaXMuZGVzdHJveUNvbXBvbmVudFJlZnMoKTtcclxuICAgICAgICB0aGlzLmRpc3BsYXllZFBhcmFtQ29tcG9uZW50UmVmcyA9IFtdO1xyXG4gICAgICAgIHRoaXMuZGlzcGxheWVkRm9ybWF0Q29tcG9uZW50UmVmcyA9IFtdO1xyXG5cclxuICAgICAgICBmb3IobGV0IHAgb2YgdGhpcy5zZWxlY3RlZFJlcG9ydC5wYXJhbXMpe1xyXG5cclxuICAgICAgICAgICAgY29uc3QgZmFjdG9yeTogQ29tcG9uZW50RmFjdG9yeTxQYXJhbWV0ZXJDb21wb25lbnQ+ID0gdGhpcy5yZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShQYXJhbWV0ZXJDb21wb25lbnQpO1xyXG4gICAgICAgICAgICB2YXIgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8UGFyYW1ldGVyQ29tcG9uZW50PiA9IHRoaXMucGFyYW1Db250YWluZXIuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xyXG4gICAgICAgICAgICB0aGlzLmRpc3BsYXllZFBhcmFtQ29tcG9uZW50UmVmcy5wdXNoKGNvbXBvbmVudFJlZik7XHJcblxyXG4gICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2Uuc2V0UGFyYW0ocCk7XHJcblxyXG4gICAgICAgICAgICBpZihwLm9wdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIGVudHJpZXM6IGFueVtdID0gW107XHJcbiAgICAgICAgICAgICAgICBmb3IobGV0IG8gb2YgcC5vcHRpb25zKXtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgZSA9IHtpZDogby52YWx1ZSwgZGlzcGxheTogby5kaXNwbGF5fTtcclxuICAgICAgICAgICAgICAgICAgICBlbnRyaWVzLnB1c2goZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZW50cmllcyA9IGVudHJpZXM7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgZmlyc3Q6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgICAgIGZvcihsZXQgZiBvZiB0aGlzLnNlbGVjdGVkUmVwb3J0LmZvcm1hdHMpe1xyXG5cclxuICAgICAgICAgICAgY29uc3QgZmFjdG9yeTI6IENvbXBvbmVudEZhY3Rvcnk8Rm9ybWF0Q29tcG9uZW50PiA9IHRoaXMucmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoRm9ybWF0Q29tcG9uZW50KTtcclxuICAgICAgICAgICAgdmFyIGNvbXBvbmVudFJlZjI6IENvbXBvbmVudFJlZjxGb3JtYXRDb21wb25lbnQ+ID0gdGhpcy5mb3JtYXRDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkyKTtcclxuICAgICAgICAgICAgdGhpcy5kaXNwbGF5ZWRGb3JtYXRDb21wb25lbnRSZWZzLnB1c2goY29tcG9uZW50UmVmMik7XHJcblxyXG4gICAgICAgICAgICBjb21wb25lbnRSZWYyLmluc3RhbmNlLmZvcm1hdCA9IGY7XHJcbiAgICAgICAgICAgIGNvbXBvbmVudFJlZjIuaW5zdGFuY2Uuc2VsZWN0ZWRWYWx1ZUNoYW5nZS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAocykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGb3JtYXQgPSBzO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBpZihmaXJzdCkgey8vc2VsZWN0IHRoZSBmaXJzdCBmb3JtYXQgaW4gdGhlIGdyb3VwaW5nXHJcbiAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYyLmluc3RhbmNlLnNlbGVjdGVkVmFsdWUgPSBmLm5hbWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRm9ybWF0ID0gZi5uYW1lO1xyXG4gICAgICAgICAgICAgICAgZmlyc3QgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIG9wZW5IZWxwKGNvbnRlbnQpIHtcclxuXHJcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3Blbihjb250ZW50LCB7YXJpYUxhYmVsbGVkQnk6IFwiaGVscC1tb2RhbC10aXRsZVwifSlcclxuICAgICAgICAgICAgLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgLy8gdGhpcy5jbG9zZVJlc3VsdCA9IGBDbG9zZWQgd2l0aDogJHtyZXN1bHR9YDtcclxuICAgICAgICAgICAgY29uc29sZS5sb2cocmVzdWx0KTtcclxuXHJcbiAgICAgICAgfSwgKHJlYXNvbikgPT4ge1xyXG4gICAgICAgICAgICB2YXIgY2xvc2VSZXN1bHQgPSBgRGlzbWlzc2VkICR7dGhpcy5nZXREaXNtaXNzUmVhc29uKHJlYXNvbil9YDtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coY2xvc2VSZXN1bHQpO1xyXG5cclxuICAgICAgICB9KTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXREaXNtaXNzUmVhc29uKHJlYXNvbjogYW55KTogc3RyaW5nIHtcclxuICAgICAgICBpZiAocmVhc29uID09PSBNb2RhbERpc21pc3NSZWFzb25zLkVTQykge1xyXG4gICAgICAgICAgICByZXR1cm4gXCJieSBwcmVzc2luZyBFU0NcIjtcclxuICAgICAgICB9IGVsc2UgaWYgKHJlYXNvbiA9PT0gTW9kYWxEaXNtaXNzUmVhc29ucy5CQUNLRFJPUF9DTElDSykge1xyXG4gICAgICAgICAgICByZXR1cm4gXCJieSBjbGlja2luZyBvbiBhIGJhY2tkcm9wXCI7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuICBgd2l0aDogJHtyZWFzb259YDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25SdW5SZXBvcnQoKSB7XHJcblxyXG4gICAgICAgIGlmKHRoaXMuc2VsZWN0ZWRSZXBvcnQpIHtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nc1NlcnZpY2Uuc3RhcnREZWZhdWx0U3Bpbm5lckRpYWxvZygpO1xyXG5cclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmb3JtYXQ6XCIgKyB0aGlzLnNlbGVjdGVkRm9ybWF0KTtcclxuICAgICAgICAgICAgaWYoIXRoaXMuc2VsZWN0ZWRGb3JtYXQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGb3JtYXQgPSBcImh0bWxcIjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGV0IHJ1blBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcbiAgICAgICAgICAgIHJ1blBhcmFtcyA9IHJ1blBhcmFtcy5hcHBlbmQoXCJmb3JtYXRcIiwgdGhpcy5zZWxlY3RlZEZvcm1hdCk7XHJcbiAgICAgICAgICAgIHJ1blBhcmFtcyA9IHJ1blBhcmFtcy5hcHBlbmQoXCJhY3Rpb25cIiwgXCJzaG93XCIpO1xyXG4gICAgICAgICAgICBydW5QYXJhbXMgPSBydW5QYXJhbXMuYXBwZW5kKFwicmVwb3J0TmFtZVwiLCB0aGlzLnNlbGVjdGVkUmVwb3J0Lm5hbWUpO1xyXG5cclxuICAgICAgICAgICAgcnVuUGFyYW1zID0gdGhpcy5nZXRSdW5QYXJhbWV0ZXJzKHJ1blBhcmFtcyk7XHJcblxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhydW5QYXJhbXMpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5odHRwLmdldCh0aGlzLmNvbW1hbmRQcmVmaXggKyB0aGlzLnNlbGVjdGVkUmVwb3J0LmNsYXNzTmFtZSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHJ1blBhcmFtcyxcclxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlOiBcInJlc3BvbnNlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiBcImJsb2JcIlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgIChyZXMpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXMpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB2YXIgZmlsZW5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5zZWxlY3RlZEZvcm1hdCAhPSBcImh0bWxcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZSA9IHJlcy5oZWFkZXJzLmdldChcImNvbnRlbnQtZGlzcG9zaXRpb25cIikuc3BsaXQoXCI7XCIpWzFdLnNwbGl0KFwiPVwiKVsxXS5yZXBsYWNlKC9cXFwiL2csIFwiXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB2YXIgYmxvYiA9IG5ldyBCbG9iKFtyZXMuYm9keV0sIHt0eXBlOiByZXMuYm9keS50eXBlfSApOyAvLywge3R5cGU6IFwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGZpbGVVUkwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhmaWxlVVJMKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYTogSFRNTEFuY2hvckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYVwiKSBhcyBIVE1MQW5jaG9yRWxlbWVudDtcclxuICAgICAgICAgICAgICAgICAgICBhLmhyZWYgPSBmaWxlVVJMO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuc2VsZWN0ZWRGb3JtYXQgPT0gXCJodG1sXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYS50YXJnZXQgPSBcIl9ibGFua1wiO1xyXG4gICAgICAgICAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYS5kb3dubG9hZCA9IGZpbGVuYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtcclxuICAgICAgICAgICAgICAgICAgICBhLmNsaWNrKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSk7XHJcbiAgICAgICAgICAgICAgICAgICAgVVJMLnJldm9rZU9iamVjdFVSTChmaWxlVVJMKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dzU2VydmljZS5zdG9wQWxsU3Bpbm5lckRpYWxvZ3MoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UnVuUGFyYW1ldGVycyhydW5QYXJhbXM6IEh0dHBQYXJhbXMpOiBIdHRwUGFyYW1zIHtcclxuICAgICAgICB2YXIgbmV3UGFyYW1zID0gcnVuUGFyYW1zO1xyXG5cclxuICAgICAgICBmb3IobGV0IG8gb2YgdGhpcy5kaXNwbGF5ZWRQYXJhbUNvbXBvbmVudFJlZnMpe1xyXG4gICAgICAgICAgICB2YXIgcGFyYW0gPSBvLmluc3RhbmNlLnBhcmFtO1xyXG5cclxuICAgICAgICAgICAgaWYocGFyYW0udHlwZSA9PSBcIm11bHRpc2VsZWN0XCIpIHtcclxuICAgICAgICAgICAgICAgIHZhciByZXNMaXN0ID0gXCJcIjtcclxuICAgICAgICAgICAgICAgIGZvcihsZXQgdiBvZiBwYXJhbS5zZWxlY3RlZFZhbHVlTGlzdCl7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYocmVzTGlzdCAhPSBcIlwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc0xpc3QgKz0gXCIsXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJlc0xpc3QgKz0gdjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIG5ld1BhcmFtcyA9IG5ld1BhcmFtcy5hcHBlbmQocGFyYW0ubmFtZSwgcmVzTGlzdCk7XHJcbiAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICAgIHZhciB2YWx1ZTtcclxuICAgICAgICAgICAgICAgIGlmKHBhcmFtLnNlbGVjdGVkVmFsdWUpIHsgLy9zbyB3ZSBkb24ndCBnZXQgXCJ1bmRlZmluZWRcIiBzZW50IGJhY2tcclxuICAgICAgICAgICAgICAgICAgICBpZihwYXJhbS50eXBlID09IFwiZGF0ZVwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdGhpcy5nZXREYXRlU3RyaW5nKHBhcmFtLnNlbGVjdGVkVmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJhbS5zZWxlY3RlZFZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBuZXdQYXJhbXMgPSBuZXdQYXJhbXMuYXBwZW5kKHBhcmFtLm5hbWUsIHZhbHVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmV3UGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIGdldERhdGVTdHJpbmcoZGF0ZTogYW55KTogc3RyaW5nIHtcclxuXHJcbiAgICAgICAgaWYgKGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgICAgICAgIGlmICghaXNOYU4oZGF0ZS5nZXRUaW1lKCkpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZGF0ZSwgXCJNTS9kZC95eXl5XCIpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9ZWxzZSBpZihtb21lbnQuaXNNb21lbnQoZGF0ZSkgKSB7XHJcbiAgICAgICAgICAgIGlmKGRhdGUgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGUuZm9ybWF0KFwiTS9EL1lZWVlcIik7XHJcbiAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfWVsc2UgaWYodHlwZW9mIGRhdGUgPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgICAgICByZXR1cm4gZGF0ZTtcclxuICAgICAgICB9ZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBkZXN0cm95Q29tcG9uZW50UmVmcygpIHtcclxuICAgICAgZm9yKGxldCBvIG9mIHRoaXMuZGlzcGxheWVkUGFyYW1Db21wb25lbnRSZWZzKXtcclxuICAgICAgICBvLmRlc3Ryb3koKTtcclxuICAgICAgfVxyXG4gICAgICBmb3IobGV0IG8gb2YgdGhpcy5kaXNwbGF5ZWRGb3JtYXRDb21wb25lbnRSZWZzKXtcclxuICAgICAgICBvLmRlc3Ryb3koKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGVzdHJveUNvbXBvbmVudFJlZnMoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKlxyXG4gICAgc3R5bGVzOiBbYFxyXG4gICAgICAucmVwb3J0LWRldGFpbHN7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZVxyXG4gICAgICB9XHJcblxyXG4gICAgICAuY2VudGVyLXJvd3tcclxuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA2MHZ3O1xyXG4gICAgICB9XHJcblxyXG4gICAgICAubWF0LXRhYi1ib2R5LXdyYXBwZXJ7XHJcbiAgICBmbGV4LWdyb3c6IDE7XHJcbiAgfVxyXG5cclxuLnRhYi1wYW5le1xyXG4gIGhlaWdodDogMTAwJTtcclxufVxyXG5gXSovXHJcbn1cclxuIl19
|