carbon-components-angular 6.0.0-rc.4 → 6.0.0-rc.6
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/combobox/combobox.component.d.ts +3 -2
- package/docs/documentation/components/ComboBox.html +160 -138
- package/docs/documentation/components/ContentSwitcher.html +19 -13
- package/docs/documentation/components/ContextMenuComponent.html +35 -29
- package/docs/documentation/components/ContextMenuDividerComponent.html +11 -6
- package/docs/documentation/components/ContextMenuGroupComponent.html +25 -19
- package/docs/documentation/components/ContextMenuItemComponent.html +70 -64
- package/docs/documentation/components/DatePicker.html +106 -100
- package/docs/documentation/components/DatePickerInput.html +41 -35
- package/docs/documentation/components/Dropdown.html +118 -119
- package/docs/documentation/components/DropdownList.html +88 -97
- package/docs/documentation/js/search/search_index.js +2 -2
- package/docs/documentation/modules/TilesModule/dependencies.svg +106 -106
- package/docs/documentation/modules/TilesModule.html +106 -106
- package/docs/documentation/modules/TimePickerModule/dependencies.svg +36 -40
- package/docs/documentation/modules/TimePickerModule.html +36 -40
- package/docs/documentation/modules/TimePickerSelectModule/dependencies.svg +49 -45
- package/docs/documentation/modules/TimePickerSelectModule.html +49 -45
- package/docs/documentation/modules/ToggleModule/dependencies.svg +4 -4
- package/docs/documentation/modules/ToggleModule.html +4 -4
- package/docs/documentation/modules/TooltipModule/dependencies.svg +29 -29
- package/docs/documentation/modules/TooltipModule.html +29 -29
- package/docs/documentation/modules/TreeviewModule/dependencies.svg +35 -35
- package/docs/documentation/modules/TreeviewModule.html +35 -35
- package/docs/documentation.json +505 -497
- package/docs/storybook/{8383.1f80f6c8.iframe.bundle.js → 8383.844bcd95.iframe.bundle.js} +1 -1
- package/docs/storybook/combobox-combobox-stories.2b92d137.iframe.bundle.js +1 -0
- package/docs/storybook/{content-switcher-content-switcher-stories.753fbf1c.iframe.bundle.js → content-switcher-content-switcher-stories.0d959b5c.iframe.bundle.js} +1 -1
- package/docs/storybook/{context-menu-context-menu-stories.6344e050.iframe.bundle.js → context-menu-context-menu-stories.d2e63fe8.iframe.bundle.js} +1 -1
- package/docs/storybook/{datepicker-datepicker-stories.5cf89dc1.iframe.bundle.js → datepicker-datepicker-stories.b4bcda9f.iframe.bundle.js} +1 -1
- package/docs/storybook/iframe.html +2 -2
- package/docs/storybook/main.07778da0.iframe.bundle.js +1 -0
- package/docs/storybook/project.json +1 -1
- package/docs/storybook/{runtime~main.de5a4ef6.iframe.bundle.js → runtime~main.ec2949a5.iframe.bundle.js} +1 -1
- package/dropdown/dropdown.component.d.ts +2 -3
- package/dropdown/list/dropdown-list.component.d.ts +2 -3
- package/esm2022/combobox/combobox.component.mjs +11 -9
- package/esm2022/content-switcher/content-switcher.component.mjs +5 -4
- package/esm2022/context-menu/context-menu-divider.component.mjs +5 -4
- package/esm2022/context-menu/context-menu-group.component.mjs +5 -4
- package/esm2022/context-menu/context-menu-item.component.mjs +4 -4
- package/esm2022/context-menu/context-menu.component.mjs +4 -4
- package/esm2022/datepicker/datepicker.component.mjs +5 -4
- package/esm2022/datepicker-input/datepicker-input.component.mjs +5 -4
- package/esm2022/dropdown/dropdown.component.mjs +1 -1
- package/esm2022/dropdown/list/dropdown-list.component.mjs +4 -6
- package/fesm2022/carbon-components-angular-combobox.mjs +10 -8
- package/fesm2022/carbon-components-angular-combobox.mjs.map +1 -1
- package/fesm2022/carbon-components-angular-content-switcher.mjs +4 -3
- package/fesm2022/carbon-components-angular-content-switcher.mjs.map +1 -1
- package/fesm2022/carbon-components-angular-context-menu.mjs +11 -9
- package/fesm2022/carbon-components-angular-context-menu.mjs.map +1 -1
- package/fesm2022/carbon-components-angular-datepicker-input.mjs +4 -3
- package/fesm2022/carbon-components-angular-datepicker-input.mjs.map +1 -1
- package/fesm2022/carbon-components-angular-datepicker.mjs +4 -3
- package/fesm2022/carbon-components-angular-datepicker.mjs.map +1 -1
- package/fesm2022/carbon-components-angular-dropdown.mjs +3 -5
- package/fesm2022/carbon-components-angular-dropdown.mjs.map +1 -1
- package/package.json +7 -7
- package/docs/storybook/combobox-combobox-stories.3bf37571.iframe.bundle.js +0 -1
- package/docs/storybook/main.3c25e34a.iframe.bundle.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, HostBinding } from "@angular/core";
|
|
1
|
+
import { ChangeDetectionStrategy, Component, HostBinding } from "@angular/core";
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class ContextMenuDividerComponent {
|
|
4
4
|
constructor() {
|
|
@@ -6,13 +6,14 @@ export class ContextMenuDividerComponent {
|
|
|
6
6
|
this.role = "separator";
|
|
7
7
|
}
|
|
8
8
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ContextMenuDividerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: ContextMenuDividerComponent, selector: "cds-context-menu-divider, ibm-context-menu-divider", host: { properties: { "class.cds--menu-item-divider": "this.dividerClass", "attr.role": "this.role" } }, ngImport: i0, template: "", isInline: true }); }
|
|
9
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: ContextMenuDividerComponent, selector: "cds-context-menu-divider, ibm-context-menu-divider", host: { properties: { "class.cds--menu-item-divider": "this.dividerClass", "attr.role": "this.role" } }, ngImport: i0, template: "", isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
10
10
|
}
|
|
11
11
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ContextMenuDividerComponent, decorators: [{
|
|
12
12
|
type: Component,
|
|
13
13
|
args: [{
|
|
14
14
|
selector: "cds-context-menu-divider, ibm-context-menu-divider",
|
|
15
|
-
template: ""
|
|
15
|
+
template: "",
|
|
16
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
16
17
|
}]
|
|
17
18
|
}], propDecorators: { dividerClass: [{
|
|
18
19
|
type: HostBinding,
|
|
@@ -21,4 +22,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
21
22
|
type: HostBinding,
|
|
22
23
|
args: ["attr.role"]
|
|
23
24
|
}] } });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LWRpdmlkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUtZGl2aWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBT2hGLE1BQU0sT0FBTywyQkFBMkI7SUFMeEM7UUFNOEMsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFDdkMsU0FBSSxHQUFHLFdBQVcsQ0FBQztLQUM3QzsrR0FIWSwyQkFBMkI7bUdBQTNCLDJCQUEyQixtTUFIN0IsRUFBRTs7NEZBR0EsMkJBQTJCO2tCQUx2QyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxvREFBb0Q7b0JBQzlELFFBQVEsRUFBRSxFQUFFO29CQUNaLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUMvQzs4QkFFNkMsWUFBWTtzQkFBeEQsV0FBVzt1QkFBQyw4QkFBOEI7Z0JBQ2pCLElBQUk7c0JBQTdCLFdBQVc7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiBcImNkcy1jb250ZXh0LW1lbnUtZGl2aWRlciwgaWJtLWNvbnRleHQtbWVudS1kaXZpZGVyXCIsXG5cdHRlbXBsYXRlOiBcIlwiLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDb250ZXh0TWVudURpdmlkZXJDb21wb25lbnQge1xuXHRASG9zdEJpbmRpbmcoXCJjbGFzcy5jZHMtLW1lbnUtaXRlbS1kaXZpZGVyXCIpIGRpdmlkZXJDbGFzcyA9IHRydWU7XG5cdEBIb3N0QmluZGluZyhcImF0dHIucm9sZVwiKSByb2xlID0gXCJzZXBhcmF0b3JcIjtcbn1cbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, EventEmitter, HostBinding, Input, Output } from "@angular/core";
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output } from "@angular/core";
|
|
2
2
|
import { Subscription } from "rxjs";
|
|
3
3
|
import { ContextMenuSelectionService } from "./context-menu-selection.service";
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
@@ -38,7 +38,7 @@ export class ContextMenuGroupComponent {
|
|
|
38
38
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ContextMenuGroupComponent, deps: [{ token: i1.ContextMenuSelectionService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39
39
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: ContextMenuGroupComponent, selector: "cds-context-menu-group, ibm-context-menu-group", inputs: { label: "label", value: "value", type: "type" }, outputs: { valueChange: "valueChange" }, host: { properties: { "attr.role": "this.role", "class.cds--menu-item-radio-group": "this.radioGroup", "class.cds--menu-item-group": "this.group", "attr.aria-label": "this.label" } }, providers: [ContextMenuSelectionService], usesOnChanges: true, ngImport: i0, template: `
|
|
40
40
|
<ng-content />
|
|
41
|
-
`, isInline: true }); }
|
|
41
|
+
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
42
42
|
}
|
|
43
43
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ContextMenuGroupComponent, decorators: [{
|
|
44
44
|
type: Component,
|
|
@@ -47,7 +47,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
47
47
|
template: `
|
|
48
48
|
<ng-content />
|
|
49
49
|
`,
|
|
50
|
-
providers: [ContextMenuSelectionService]
|
|
50
|
+
providers: [ContextMenuSelectionService],
|
|
51
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
51
52
|
}]
|
|
52
53
|
}], ctorParameters: () => [{ type: i1.ContextMenuSelectionService }], propDecorators: { role: [{
|
|
53
54
|
type: HostBinding,
|
|
@@ -70,4 +71,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
70
71
|
}], valueChange: [{
|
|
71
72
|
type: Output
|
|
72
73
|
}] } });
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0LW1lbnUvY29udGV4dC1tZW51LWdyb3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFJTCxNQUFNLEVBRU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7O0FBVS9FLE1BQU0sT0FBTyx5QkFBeUI7SUFFckMsSUFBcUQsVUFBVSxLQUFNLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3BHLElBQStDLEtBQUssS0FBSyxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQztJQVMzRixZQUFzQiwyQkFBd0Q7UUFBeEQsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUE2QjtRQVhwRCxTQUFJLEdBQUcsT0FBTyxDQUFDO1FBSUEsVUFBSyxHQUFHLElBQUksQ0FBQztRQUM3QyxVQUFLLEdBQVUsRUFBRSxDQUFDO1FBQ2xCLFNBQUksR0FBZ0MsSUFBSSxDQUFDO1FBQ3hDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQUUxQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFFd0MsQ0FBQztJQUVuRixRQUFRO1FBQ1AsTUFBTSxFQUFFLG1CQUFtQixFQUFFLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixDQUFDO1FBQ2pFLE1BQU0sWUFBWSxHQUFHLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMxRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDakMsSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsMkJBQTJCLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDMUUsQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLDJCQUEyQixDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDL0UsQ0FBQztRQUNGLENBQUM7SUFDRixDQUFDO0lBRUQsV0FBVztRQUNWLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDakMsQ0FBQzsrR0FwQ1cseUJBQXlCO21HQUF6Qix5QkFBeUIsb1dBSDFCLENBQUMsMkJBQTJCLENBQUMsK0NBSDlCOztFQUVUOzs0RkFJVyx5QkFBeUI7a0JBUnJDLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGdEQUFnRDtvQkFDMUQsUUFBUSxFQUFFOztFQUVUO29CQUNELFNBQVMsRUFBRSxDQUFDLDJCQUEyQixDQUFDO29CQUN4QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0M7Z0dBRTBCLElBQUk7c0JBQTdCLFdBQVc7dUJBQUMsV0FBVztnQkFDNkIsVUFBVTtzQkFBOUQsV0FBVzt1QkFBQyxrQ0FBa0M7Z0JBQ0EsS0FBSztzQkFBbkQsV0FBVzt1QkFBQyw0QkFBNEI7Z0JBRUEsS0FBSztzQkFBN0MsV0FBVzt1QkFBQyxpQkFBaUI7O3NCQUFHLEtBQUs7Z0JBQzdCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdEV2ZW50RW1pdHRlcixcblx0SG9zdEJpbmRpbmcsXG5cdElucHV0LFxuXHRPbkNoYW5nZXMsXG5cdE9uRGVzdHJveSxcblx0T25Jbml0LFxuXHRPdXRwdXQsXG5cdFNpbXBsZUNoYW5nZXNcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBDb250ZXh0TWVudVNlbGVjdGlvblNlcnZpY2UgfSBmcm9tIFwiLi9jb250ZXh0LW1lbnUtc2VsZWN0aW9uLnNlcnZpY2VcIjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiBcImNkcy1jb250ZXh0LW1lbnUtZ3JvdXAsIGlibS1jb250ZXh0LW1lbnUtZ3JvdXBcIixcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmctY29udGVudCAvPlxuXHRgLFxuXHRwcm92aWRlcnM6IFtDb250ZXh0TWVudVNlbGVjdGlvblNlcnZpY2VdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDb250ZXh0TWVudUdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG5cdEBIb3N0QmluZGluZyhcImF0dHIucm9sZVwiKSByb2xlID0gXCJncm91cFwiO1xuXHRASG9zdEJpbmRpbmcoXCJjbGFzcy5jZHMtLW1lbnUtaXRlbS1yYWRpby1ncm91cFwiKSBnZXQgcmFkaW9Hcm91cCgpIHsgIHJldHVybiB0aGlzLnR5cGUgPT09IFwicmFkaW9cIjsgfVxuXHRASG9zdEJpbmRpbmcoXCJjbGFzcy5jZHMtLW1lbnUtaXRlbS1ncm91cFwiKSBnZXQgZ3JvdXAoKSB7IHJldHVybiB0aGlzLnR5cGUgPT09IFwiY2hlY2tib3hcIjsgfVxuXG5cdEBIb3N0QmluZGluZyhcImF0dHIuYXJpYS1sYWJlbFwiKSBASW5wdXQoKSBsYWJlbCA9IG51bGw7XG5cdEBJbnB1dCgpIHZhbHVlOiBhbnlbXSA9IFtdO1xuXHRASW5wdXQoKSB0eXBlOiBudWxsIHwgXCJyYWRpb1wiIHwgXCJjaGVja2JveFwiID0gbnVsbDtcblx0QE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcblxuXHRwcml2YXRlIHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuXHRjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY29udGV4dE1lbnVTZWxlY3Rpb25TZXJ2aWNlOiBDb250ZXh0TWVudVNlbGVjdGlvblNlcnZpY2UpIHsgfVxuXG5cdG5nT25Jbml0KCkge1xuXHRcdGNvbnN0IHsgc2VsZWN0aW9uT2JzZXJ2YWJsZSB9ID0gdGhpcy5jb250ZXh0TWVudVNlbGVjdGlvblNlcnZpY2U7XG5cdFx0Y29uc3Qgc3Vic2NyaXB0aW9uID0gc2VsZWN0aW9uT2JzZXJ2YWJsZS5zdWJzY3JpYmUodmFsdWUgPT4ge1xuXHRcdFx0dGhpcy52YWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcblx0XHR9KTtcblx0XHR0aGlzLnN1YnNjcmlwdGlvbi5hZGQoc3Vic2NyaXB0aW9uKTtcblx0fVxuXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcblx0XHRpZiAoY2hhbmdlcy52YWx1ZSkge1xuXHRcdFx0aWYgKHRoaXMudHlwZSA9PT0gXCJyYWRpb1wiKSB7XG5cdFx0XHRcdHRoaXMuY29udGV4dE1lbnVTZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdFJhZGlvKGNoYW5nZXMudmFsdWUuY3VycmVudFZhbHVlKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKHRoaXMudHlwZSA9PT0gXCJjaGVja2JveFwiKSB7XG5cdFx0XHRcdHRoaXMuY29udGV4dE1lbnVTZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdENoZWNrYm94ZXMoY2hhbmdlcy52YWx1ZS5jdXJyZW50VmFsdWUpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdG5nT25EZXN0cm95KCkge1xuXHRcdHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG5cdH1cbn1cbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, HostBinding, Input, Output, EventEmitter, HostListener, ContentChild, Optional } from "@angular/core";
|
|
1
|
+
import { Component, HostBinding, Input, Output, EventEmitter, HostListener, ContentChild, Optional, ChangeDetectionStrategy } from "@angular/core";
|
|
2
2
|
import { Subscription } from "rxjs";
|
|
3
3
|
import { ContextMenuComponent } from "./context-menu.component";
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
@@ -142,7 +142,7 @@ export class ContextMenuItemComponent {
|
|
|
142
142
|
}
|
|
143
143
|
</div>
|
|
144
144
|
<ng-content />
|
|
145
|
-
`, isInline: true, styles: [":host{grid-template-columns:1rem 1fr max-content}\n"], dependencies: [{ kind: "directive", type: i2.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }] }); }
|
|
145
|
+
`, isInline: true, styles: [":host{grid-template-columns:1rem 1fr max-content}\n"], dependencies: [{ kind: "directive", type: i2.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
146
146
|
}
|
|
147
147
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ContextMenuItemComponent, decorators: [{
|
|
148
148
|
type: Component,
|
|
@@ -164,7 +164,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
164
164
|
}
|
|
165
165
|
</div>
|
|
166
166
|
<ng-content />
|
|
167
|
-
`, styles: [":host{grid-template-columns:1rem 1fr max-content}\n"] }]
|
|
167
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{grid-template-columns:1rem 1fr max-content}\n"] }]
|
|
168
168
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.ContextMenuSelectionService, decorators: [{
|
|
169
169
|
type: Optional
|
|
170
170
|
}] }], propDecorators: { optionClass: [{
|
|
@@ -224,4 +224,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
224
224
|
type: HostListener,
|
|
225
225
|
args: ["blur"]
|
|
226
226
|
}] } });
|
|
227
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUtaXRlbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBRVosWUFBWSxFQUNaLFlBQVksRUFDWixRQUFRLEVBSVIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVwQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQTZCaEUsTUFBTSxPQUFPLHdCQUF3QjtJQU1wQyxJQUFzQyxXQUFXO1FBQ2hELE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxVQUFVLENBQUMsQ0FBQztZQUNoQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN2QyxDQUFDO0lBZ0JELFlBQ1csVUFBc0IsRUFDViwyQkFBd0Q7UUFEcEUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNWLGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBNkI7UUExQjFDLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQzlCLFNBQUksR0FBRyxVQUFVLENBQUM7UUFDZCxhQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDVCxpQkFBWSxHQUFHLElBQUksQ0FBQztRQUNwQixpQkFBWSxHQUFHLElBQUksQ0FBQztRQU05QyxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUNWLFNBQUksR0FBZ0MsSUFBSSxDQUFDO1FBQ3pDLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsU0FBSSxHQUFHLEVB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ZSxFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFDeEMsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUN4QyxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkErQ2pDLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxXQUFXO2dCQU16QixjQUFjO3NCQURiLFlBQVk7dUJBQUMsVUFBVTtnQkFNeEIsV0FBVztzQkFEVixZQUFZO3VCQUFDLE9BQU87Z0JBU3JCLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q29tcG9uZW50LFxuXHRIb3N0QmluZGluZyxcblx0SW5wdXQsXG5cdE91dHB1dCxcblx0RXZlbnRFbWl0dGVyLFxuXHRFbGVtZW50UmVmLFxuXHRIb3N0TGlzdGVuZXIsXG5cdENvbnRlbnRDaGlsZCxcblx0T3B0aW9uYWwsXG5cdE9uSW5pdCxcblx0QWZ0ZXJDb250ZW50SW5pdCxcblx0T25EZXN0cm95XG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgQ29udGV4dE1lbnVTZWxlY3Rpb25TZXJ2aWNlIH0gZnJvbSBcIi4vY29udGV4dC1tZW51LXNlbGVjdGlvbi5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBDb250ZXh0TWVudUNvbXBvbmVudCB9IGZyb20gXCIuL2NvbnRleHQtbWVudS5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiBcImNkcy1jb250ZXh0LW1lbnUtaXRlbSwgaWJtLWNvbnRleHQtbWVudS1pdGVtXCIsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PGRpdiBjbGFzcz1cImNkcy0tbWVudS1pdGVtX19pY29uXCI+XG5cdFx0XHRAaWYgKHNlbGVjdGFibGUgJiYgY2hlY2tlZCkge1xuXHRcdFx0XHQ8c3ZnIGNkc0ljb249XCJjaGVja21hcmtcIiBzaXplPVwiMTZcIj48L3N2Zz5cblx0XHRcdH0gQGVsc2UgaWYgKCFzZWxlY3RhYmxlICYmIGljb24pIHtcblx0XHRcdFx0PHN2ZyBbY2RzSWNvbl09XCJpY29uXCIgc2l6ZT1cIjE2XCI+PC9zdmc+XG5cdFx0XHR9XG5cdFx0PC9kaXY+XG5cdFx0PGRpdiBjbGFzcz1cImNkcy0tbWVudS1pdGVtX19sYWJlbFwiIFt0aXRsZV09XCJsYWJlbFwiPnt7bGFiZWx9fTwvZGl2PlxuXHRcdDxkaXYgY2xhc3M9XCJjZHMtLW1lbnUtaXRlbV9fc2hvcnRjdXRcIj5cblx0XHRcdEBpZiAoaW5mbykge1xuXHRcdFx0XHR7e2luZm99fVxuXHRcdFx0fVxuXHRcdFx0QGlmIChoYXNDaGlsZHJlbikge1xuXHRcdFx0XHQ8c3ZnIGNkc0ljb249XCJjYXJldC0tcmlnaHRcIiBzaXplPVwiMTZcIj48L3N2Zz5cblx0XHRcdH1cblx0XHQ8L2Rpdj5cblx0XHQ8bmctY29udGVudCAvPlxuXHRgLFxuXHRzdHlsZXM6IFtgXG5cdFx0Omhvc3Qge1xuXHRcdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxcmVtIDFmciBtYXgtY29udGVudDtcblx0XHR9XG5cdGBdXG59KVxuZXhwb3J0IGNsYXNzIENvbnRleHRNZW51SXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS1tZW51LWl0ZW1cIikgb3B0aW9uQ2xhc3MgPSB0cnVlO1xuXHRASG9zdEJpbmRpbmcoXCJhdHRyLnJvbGVcIikgcm9sZSA9IFwibWVudWl0ZW1cIjtcblx0QEhvc3RCaW5kaW5nKFwiYXR0ci50YWJpbmRleFwiKSB0YWJpbmRleCA9IC0xO1xuXHRASG9zdEJpbmRpbmcoXCJhdHRyLmFyaWEtaGFzcG9wdXBcIikgYXJpYUhhc1BvcHVwID0gbnVsbDtcblx0QEhvc3RCaW5kaW5nKFwiYXR0ci5hcmlhLWV4cGFuZGVkXCIpIGFyaWFFeHBhbmRlZCA9IG51bGw7XG5cdEBIb3N0QmluZGluZyhcImF0dHIuYXJpYS1jaGVja2VkXCIpIGdldCBhcmlhQ2hlY2tlZCgpIHtcblx0XHRyZXR1cm4gdGhpcy50eXBlID09PSBcImNoZWNrYm94XCIgP1xuXHRcdFx0KHRoaXMuY2hlY2tlZCA/IHRydWUgOiBmYWxzZSkgOiBudWxsO1xuXHR9XG5cblx0QElucHV0KCkgbGFiZWwgPSBcIlwiO1xuXHRASW5wdXQoKSBpbmZvID0gXCJcIjtcblx0QElucHV0KCkgdHlwZTogbnVsbCB8IFwiY2hlY2tib3hcIiB8IFwicmFkaW9cIiA9IG51bGw7XG5cdEBJbnB1dCgpIGNoZWNrZWQgPSBmYWxzZTtcblx0QElucHV0KCkgaWNvbiA9IFwiXCI7XG5cdEBJbnB1dCgpIHZhbHVlID0gXCJcIjtcblx0QE91dHB1dCgpIGNoZWNrZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cblx0aGFzQ2hpbGRyZW4gPSBmYWxzZTtcblx0c2VsZWN0YWJsZSA9IGZhbHNlO1xuXG5cdEBDb250ZW50Q2hpbGQoQ29udGV4dE1lbnVDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIGNoaWxkQ29udGV4dE1lbnU6IENvbnRleHRNZW51Q29tcG9uZW50O1xuXHRwcml2YXRlIHN1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0cHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG5cdFx0QE9wdGlvbmFsKCkgcHJvdGVjdGVkIGNvbnRleHRNZW51U2VsZWN0aW9uU2VydmljZTogQ29udGV4dE1lbnVTZWxlY3Rpb25TZXJ2aWNlXG5cdCkgeyB9XG5cblx0bmdPbkluaXQoKSB7XG5cdFx0c3dpdGNoICh0aGlzLnR5cGUpIHtcblx0XHRcdGNhc2UgXCJjaGVja2JveFwiOiB7XG5cdFx0XHRcdHRoaXMucm9sZSA9IFwibWVudWl0ZW1jaGVja2JveFwiO1xuXHRcdFx0XHR0aGlzLnNlbGVjdGFibGUgPSB0cnVlO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHRcdGNhc2UgXCJyYWRpb1wiOiB7XG5cdFx0XHRcdHRoaXMucm9sZSA9IFwibWVudWl0ZW1yYWRpb1wiO1xuXHRcdFx0XHR0aGlzLnNlbGVjdGFibGUgPSB0cnVlO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHRcdGRlZmF1bHQ6IHtcblx0XHRcdFx0dGhpcy5yb2xlID0gXCJtZW51aXRlbVwiO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmICh0aGlzLnR5cGUgJiYgdGhpcy5jb250ZXh0TWVudVNlbGVjdGlvblNlcnZpY2UgJiYgdGhpcy52YWx1ZSkge1xuXHRcdFx0Y29uc3QgeyBzZWxlY3Rpb25PYnNlcnZhYmxlIH0gPSB0aGlzLmNvbnRleHRNZW51U2VsZWN0aW9uU2VydmljZTtcblx0XHRcdGNvbnN0IHN1YnNjcmlwdGlvbiA9IHNlbGVjdGlvbk9ic2VydmFibGUuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRpZiAodGhpcy50eXBlID09PSBcInJhZGlvXCIpIHtcblx0XHRcdFx0XHR0aGlzLmhhbmRsZVNlbGVjdGlvbih2YWx1ZSA9PT0gdGhpcy52YWx1ZSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAodGhpcy50eXBlID09PSBcImNoZWNrYm94XCIpIHtcblx0XHRcdFx0XHR0aGlzLmhhbmRsZVNlbGVjdGlvbih2YWx1ZS5pbmNsdWRlcyh0aGlzLnZhbHVlKSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0dGhpcy5zdWJzY3JpcHRpb25zLmFkZChzdWJzY3JpcHRpb24pO1xuXHRcdH1cblx0fVxuXG5cdG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcblx0XHRpZiAodGhpcy5jaGlsZENvbnRleHRNZW51KSB7XG5cdFx0XHR0aGlzLmhhc0NoaWxkcmVuID0gdHJ1ZTtcblx0XHRcdHRoaXMuYXJpYUhhc1BvcHVwID0gdHJ1ZTtcblx0XHRcdHRoaXMuYXJpYUV4cGFuZGVkID0gZmFsc2U7XG5cdFx0fVxuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcihcImtleWRvd24uZW50ZXJcIiwgW1wiJGV2ZW50XCJdKVxuXHRASG9zdExpc3RlbmVyKFwia2V5ZG93bi5zcGFjZVwiLCBbXCIkZXZlbnRcIl0pXG5cdEBIb3N0TGlzdGVuZXIoXCJjbGlja1wiLCBbXCIkZXZlbnRcIl0pXG5cdGhhbmRsZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50ICYgS2V5Ym9hcmRFdmVudCkge1xuXHRcdGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXHRcdGlmICh0aGlzLmhhc0NoaWxkcmVuKSB7XG5cdFx0XHR0aGlzLm9wZW5TdWJNZW51KCk7XG5cdFx0XHR0aGlzLmNoaWxkQ29udGV4dE1lbnUuZm9jdXNNZW51KCk7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMudHlwZSkge1xuXHRcdFx0dGhpcy5oYW5kbGVTZWxlY3Rpb24oIXRoaXMuY2hlY2tlZCk7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuY29udGV4dE1lbnVTZWxlY3Rpb25TZXJ2aWNlKSB7XG5cdFx0XHRpZiAodGhpcy50eXBlID09PSBcInJhZGlvXCIpIHtcblx0XHRcdFx0dGhpcy5jb250ZXh0TWVudVNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0UmFkaW8odGhpcy52YWx1ZSk7XG5cdFx0XHR9XG5cblx0XHRcdGlmICh0aGlzLnR5cGUgPT09IFwiY2hlY2tib3hcIikge1xuXHRcdFx0XHR0aGlzLmNvbnRleHRNZW51U2VsZWN0aW9uU2VydmljZS5zZWxlY3RDaGVja2JveCh0aGlzLnZhbHVlKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRoYW5kbGVTZWxlY3Rpb24oc2VsZWN0ZWQ6IGJvb2xlYW4pIHtcblx0XHR0aGlzLmNoZWNrZWQgPSBzZWxlY3RlZDtcblx0XHR0aGlzLmNoZWNrZWRDaGFuZ2UuZW1pdCh0aGlzLmNoZWNrZWQpO1xuXHR9XG5cblx0b3BlblN1Yk1lbnUoKSB7XG5cdFx0aWYgKHRoaXMuY2hpbGRDb250ZXh0TWVudSkge1xuXHRcdFx0dGhpcy5jaGlsZENvbnRleHRNZW51Lm9wZW4gPSB0cnVlO1xuXHRcdFx0dGhpcy5hcmlhRXhwYW5kZWQgPSB0cnVlO1xuXHRcdFx0Y29uc3QgZGltZW5zaW9ucyA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXHRcdFx0dGhpcy5jaGlsZENvbnRleHRNZW51LnBvc2l0aW9uLmxlZnQgPSBkaW1lbnNpb25zLmxlZnQgKyBkaW1lbnNpb25zLndpZHRoO1xuXHRcdFx0Ly8gc3VidHJhY3QgNHB4IHRvIGFjY291bnQgZm9yIG1hcmdpbnNcblx0XHRcdHRoaXMuY2hpbGRDb250ZXh0TWVudS5wb3NpdGlvbi50b3AgPSBkaW1lbnNpb25zLnRvcCAtIDQ7XG5cdFx0fVxuXHR9XG5cblx0Y2xvc2VTdWJNZW51KCkge1xuXHRcdGlmICh0aGlzLmNoaWxkQ29udGV4dE1lbnUpIHtcblx0XHRcdHRoaXMuY2hpbGRDb250ZXh0TWVudS5vcGVuID0gZmFsc2U7XG5cdFx0XHR0aGlzLmFyaWFFeHBhbmRlZCA9IGZhbHNlO1xuXHRcdH1cblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoXCJtb3VzZW92ZXJcIilcblx0aGFuZGxlTW91c2VPdmVyKCkge1xuXHRcdHRoaXMub3BlblN1Yk1lbnUoKTtcblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoXCJtb3VzZW91dFwiKVxuXHRoYW5kbGVNb3VzZU91dCgpIHtcblx0XHR0aGlzLmNsb3NlU3ViTWVudSgpO1xuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcihcImZvY3VzXCIpXG5cdGhhbmRsZUZvY3VzKCkge1xuXHRcdHRoaXMudGFiaW5kZXggPSAwO1xuXHRcdGlmICh0aGlzLmhhc0NoaWxkcmVuICYmIHRoaXMuYXJpYUV4cGFuZGVkKSB7XG5cdFx0XHR0aGlzLmNsb3NlU3ViTWVudSgpO1xuXHRcdH1cblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoXCJibHVyXCIpXG5cdGhhbmRsZUJsdXIoKSB7XG5cdFx0dGhpcy50YWJpbmRleCA9IC0xO1xuXHR9XG5cblx0Zm9jdXNJdGVtKCkge1xuXHRcdHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpIHtcblx0XHR0aGlzLnN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcblx0fVxufVxuIl19
|
|
227
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUtaXRlbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBRVosWUFBWSxFQUNaLFlBQVksRUFDWixRQUFRLEVBSVIsdUJBQXVCLEVBQ3ZCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUE4QmhFLE1BQU0sT0FBTyx3QkFBd0I7SUFNcEMsSUFBc0MsV0FBVztRQUNoRCxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLENBQUM7WUFDaEMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDdkMsQ0FBQztJQWdCRCxZQUNXLFVBQXNCLEVBQ1YsMkJBQXdEO1FBRHBFLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDVixnQ0FBMkIsR0FBM0IsMkJBQTJCLENBQTZCO1FBMUIxQyxnQkFBVyxHQUFHLElBQUksQ0FBQztRQUM5QixTQUFJLEdBQUcsVUFBVSxDQUFDO1FBQ2QsYUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ1QsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFDcEIsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFNOUMsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixTQUFJLEdBQWdDLElBQUksQ0FBQztRQUN6QyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hC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RUFBRTtnQkFtRHBELFdBQVc7c0JBSFYsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUN4QyxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQ3hDLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQStDakMsZUFBZTtzQkFEZCxZQUFZO3VCQUFDLFdBQVc7Z0JBTXpCLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxVQUFVO2dCQU14QixXQUFXO3NCQURWLFlBQVk7dUJBQUMsT0FBTztnQkFTckIsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDb21wb25lbnQsXG5cdEhvc3RCaW5kaW5nLFxuXHRJbnB1dCxcblx0T3V0cHV0LFxuXHRFdmVudEVtaXR0ZXIsXG5cdEVsZW1lbnRSZWYsXG5cdEhvc3RMaXN0ZW5lcixcblx0Q29udGVudENoaWxkLFxuXHRPcHRpb25hbCxcblx0T25Jbml0LFxuXHRBZnRlckNvbnRlbnRJbml0LFxuXHRPbkRlc3Ryb3ksXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5XG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgQ29udGV4dE1lbnVTZWxlY3Rpb25TZXJ2aWNlIH0gZnJvbSBcIi4vY29udGV4dC1tZW51LXNlbGVjdGlvbi5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBDb250ZXh0TWVudUNvbXBvbmVudCB9IGZyb20gXCIuL2NvbnRleHQtbWVudS5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiBcImNkcy1jb250ZXh0LW1lbnUtaXRlbSwgaWJtLWNvbnRleHQtbWVudS1pdGVtXCIsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PGRpdiBjbGFzcz1cImNkcy0tbWVudS1pdGVtX19pY29uXCI+XG5cdFx0XHRAaWYgKHNlbGVjdGFibGUgJiYgY2hlY2tlZCkge1xuXHRcdFx0XHQ8c3ZnIGNkc0ljb249XCJjaGVja21hcmtcIiBzaXplPVwiMTZcIj48L3N2Zz5cblx0XHRcdH0gQGVsc2UgaWYgKCFzZWxlY3RhYmxlICYmIGljb24pIHtcblx0XHRcdFx0PHN2ZyBbY2RzSWNvbl09XCJpY29uXCIgc2l6ZT1cIjE2XCI+PC9zdmc+XG5cdFx0XHR9XG5cdFx0PC9kaXY+XG5cdFx0PGRpdiBjbGFzcz1cImNkcy0tbWVudS1pdGVtX19sYWJlbFwiIFt0aXRsZV09XCJsYWJlbFwiPnt7bGFiZWx9fTwvZGl2PlxuXHRcdDxkaXYgY2xhc3M9XCJjZHMtLW1lbnUtaXRlbV9fc2hvcnRjdXRcIj5cblx0XHRcdEBpZiAoaW5mbykge1xuXHRcdFx0XHR7e2luZm99fVxuXHRcdFx0fVxuXHRcdFx0QGlmIChoYXNDaGlsZHJlbikge1xuXHRcdFx0XHQ8c3ZnIGNkc0ljb249XCJjYXJldC0tcmlnaHRcIiBzaXplPVwiMTZcIj48L3N2Zz5cblx0XHRcdH1cblx0XHQ8L2Rpdj5cblx0XHQ8bmctY29udGVudCAvPlxuXHRgLFxuXHRzdHlsZXM6IFtgXG5cdFx0Omhvc3Qge1xuXHRcdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxcmVtIDFmciBtYXgtY29udGVudDtcblx0XHR9XG5cdGBdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDb250ZXh0TWVudUl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG5cdEBIb3N0QmluZGluZyhcImNsYXNzLmNkcy0tbWVudS1pdGVtXCIpIG9wdGlvbkNsYXNzID0gdHJ1ZTtcblx0QEhvc3RCaW5kaW5nKFwiYXR0ci5yb2xlXCIpIHJvbGUgPSBcIm1lbnVpdGVtXCI7XG5cdEBIb3N0QmluZGluZyhcImF0dHIudGFiaW5kZXhcIikgdGFiaW5kZXggPSAtMTtcblx0QEhvc3RCaW5kaW5nKFwiYXR0ci5hcmlhLWhhc3BvcHVwXCIpIGFyaWFIYXNQb3B1cCA9IG51bGw7XG5cdEBIb3N0QmluZGluZyhcImF0dHIuYXJpYS1leHBhbmRlZFwiKSBhcmlhRXhwYW5kZWQgPSBudWxsO1xuXHRASG9zdEJpbmRpbmcoXCJhdHRyLmFyaWEtY2hlY2tlZFwiKSBnZXQgYXJpYUNoZWNrZWQoKSB7XG5cdFx0cmV0dXJuIHRoaXMudHlwZSA9PT0gXCJjaGVja2JveFwiID9cblx0XHRcdCh0aGlzLmNoZWNrZWQgPyB0cnVlIDogZmFsc2UpIDogbnVsbDtcblx0fVxuXG5cdEBJbnB1dCgpIGxhYmVsID0gXCJcIjtcblx0QElucHV0KCkgaW5mbyA9IFwiXCI7XG5cdEBJbnB1dCgpIHR5cGU6IG51bGwgfCBcImNoZWNrYm94XCIgfCBcInJhZGlvXCIgPSBudWxsO1xuXHRASW5wdXQoKSBjaGVja2VkID0gZmFsc2U7XG5cdEBJbnB1dCgpIGljb24gPSBcIlwiO1xuXHRASW5wdXQoKSB2YWx1ZSA9IFwiXCI7XG5cdEBPdXRwdXQoKSBjaGVja2VkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG5cdGhhc0NoaWxkcmVuID0gZmFsc2U7XG5cdHNlbGVjdGFibGUgPSBmYWxzZTtcblxuXHRAQ29udGVudENoaWxkKENvbnRleHRNZW51Q29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBjaGlsZENvbnRleHRNZW51OiBDb250ZXh0TWVudUNvbXBvbmVudDtcblx0cHJpdmF0ZSBzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByb3RlY3RlZCBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuXHRcdEBPcHRpb25hbCgpIHByb3RlY3RlZCBjb250ZXh0TWVudVNlbGVjdGlvblNlcnZpY2U6IENvbnRleHRNZW51U2VsZWN0aW9uU2VydmljZVxuXHQpIHsgfVxuXG5cdG5nT25Jbml0KCkge1xuXHRcdHN3aXRjaCAodGhpcy50eXBlKSB7XG5cdFx0XHRjYXNlIFwiY2hlY2tib3hcIjoge1xuXHRcdFx0XHR0aGlzLnJvbGUgPSBcIm1lbnVpdGVtY2hlY2tib3hcIjtcblx0XHRcdFx0dGhpcy5zZWxlY3RhYmxlID0gdHJ1ZTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0XHRjYXNlIFwicmFkaW9cIjoge1xuXHRcdFx0XHR0aGlzLnJvbGUgPSBcIm1lbnVpdGVtcmFkaW9cIjtcblx0XHRcdFx0dGhpcy5zZWxlY3RhYmxlID0gdHJ1ZTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0XHRkZWZhdWx0OiB7XG5cdFx0XHRcdHRoaXMucm9sZSA9IFwibWVudWl0ZW1cIjtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAodGhpcy50eXBlICYmIHRoaXMuY29udGV4dE1lbnVTZWxlY3Rpb25TZXJ2aWNlICYmIHRoaXMudmFsdWUpIHtcblx0XHRcdGNvbnN0IHsgc2VsZWN0aW9uT2JzZXJ2YWJsZSB9ID0gdGhpcy5jb250ZXh0TWVudVNlbGVjdGlvblNlcnZpY2U7XG5cdFx0XHRjb25zdCBzdWJzY3JpcHRpb24gPSBzZWxlY3Rpb25PYnNlcnZhYmxlLnN1YnNjcmliZSgodmFsdWUpID0+IHtcblx0XHRcdFx0aWYgKHRoaXMudHlwZSA9PT0gXCJyYWRpb1wiKSB7XG5cdFx0XHRcdFx0dGhpcy5oYW5kbGVTZWxlY3Rpb24odmFsdWUgPT09IHRoaXMudmFsdWUpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKHRoaXMudHlwZSA9PT0gXCJjaGVja2JveFwiKSB7XG5cdFx0XHRcdFx0dGhpcy5oYW5kbGVTZWxlY3Rpb24odmFsdWUuaW5jbHVkZXModGhpcy52YWx1ZSkpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRcdHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoc3Vic2NyaXB0aW9uKTtcblx0XHR9XG5cdH1cblxuXHRuZ0FmdGVyQ29udGVudEluaXQoKSB7XG5cdFx0aWYgKHRoaXMuY2hpbGRDb250ZXh0TWVudSkge1xuXHRcdFx0dGhpcy5oYXNDaGlsZHJlbiA9IHRydWU7XG5cdFx0XHR0aGlzLmFyaWFIYXNQb3B1cCA9IHRydWU7XG5cdFx0XHR0aGlzLmFyaWFFeHBhbmRlZCA9IGZhbHNlO1xuXHRcdH1cblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoXCJrZXlkb3duLmVudGVyXCIsIFtcIiRldmVudFwiXSlcblx0QEhvc3RMaXN0ZW5lcihcImtleWRvd24uc3BhY2VcIiwgW1wiJGV2ZW50XCJdKVxuXHRASG9zdExpc3RlbmVyKFwiY2xpY2tcIiwgW1wiJGV2ZW50XCJdKVxuXHRoYW5kbGVDbGljayhldmVudDogTW91c2VFdmVudCAmIEtleWJvYXJkRXZlbnQpIHtcblx0XHRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblx0XHRpZiAodGhpcy5oYXNDaGlsZHJlbikge1xuXHRcdFx0dGhpcy5vcGVuU3ViTWVudSgpO1xuXHRcdFx0dGhpcy5jaGlsZENvbnRleHRNZW51LmZvY3VzTWVudSgpO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLnR5cGUpIHtcblx0XHRcdHRoaXMuaGFuZGxlU2VsZWN0aW9uKCF0aGlzLmNoZWNrZWQpO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLmNvbnRleHRNZW51U2VsZWN0aW9uU2VydmljZSkge1xuXHRcdFx0aWYgKHRoaXMudHlwZSA9PT0gXCJyYWRpb1wiKSB7XG5cdFx0XHRcdHRoaXMuY29udGV4dE1lbnVTZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdFJhZGlvKHRoaXMudmFsdWUpO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAodGhpcy50eXBlID09PSBcImNoZWNrYm94XCIpIHtcblx0XHRcdFx0dGhpcy5jb250ZXh0TWVudVNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0Q2hlY2tib3godGhpcy52YWx1ZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0aGFuZGxlU2VsZWN0aW9uKHNlbGVjdGVkOiBib29sZWFuKSB7XG5cdFx0dGhpcy5jaGVja2VkID0gc2VsZWN0ZWQ7XG5cdFx0dGhpcy5jaGVja2VkQ2hhbmdlLmVtaXQodGhpcy5jaGVja2VkKTtcblx0fVxuXG5cdG9wZW5TdWJNZW51KCkge1xuXHRcdGlmICh0aGlzLmNoaWxkQ29udGV4dE1lbnUpIHtcblx0XHRcdHRoaXMuY2hpbGRDb250ZXh0TWVudS5vcGVuID0gdHJ1ZTtcblx0XHRcdHRoaXMuYXJpYUV4cGFuZGVkID0gdHJ1ZTtcblx0XHRcdGNvbnN0IGRpbWVuc2lvbnMgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblx0XHRcdHRoaXMuY2hpbGRDb250ZXh0TWVudS5wb3NpdGlvbi5sZWZ0ID0gZGltZW5zaW9ucy5sZWZ0ICsgZGltZW5zaW9ucy53aWR0aDtcblx0XHRcdC8vIHN1YnRyYWN0IDRweCB0byBhY2NvdW50IGZvciBtYXJnaW5zXG5cdFx0XHR0aGlzLmNoaWxkQ29udGV4dE1lbnUucG9zaXRpb24udG9wID0gZGltZW5zaW9ucy50b3AgLSA0O1xuXHRcdH1cblx0fVxuXG5cdGNsb3NlU3ViTWVudSgpIHtcblx0XHRpZiAodGhpcy5jaGlsZENvbnRleHRNZW51KSB7XG5cdFx0XHR0aGlzLmNoaWxkQ29udGV4dE1lbnUub3BlbiA9IGZhbHNlO1xuXHRcdFx0dGhpcy5hcmlhRXhwYW5kZWQgPSBmYWxzZTtcblx0XHR9XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKFwibW91c2VvdmVyXCIpXG5cdGhhbmRsZU1vdXNlT3ZlcigpIHtcblx0XHR0aGlzLm9wZW5TdWJNZW51KCk7XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKFwibW91c2VvdXRcIilcblx0aGFuZGxlTW91c2VPdXQoKSB7XG5cdFx0dGhpcy5jbG9zZVN1Yk1lbnUoKTtcblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoXCJmb2N1c1wiKVxuXHRoYW5kbGVGb2N1cygpIHtcblx0XHR0aGlzLnRhYmluZGV4ID0gMDtcblx0XHRpZiAodGhpcy5oYXNDaGlsZHJlbiAmJiB0aGlzLmFyaWFFeHBhbmRlZCkge1xuXHRcdFx0dGhpcy5jbG9zZVN1Yk1lbnUoKTtcblx0XHR9XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKFwiYmx1clwiKVxuXHRoYW5kbGVCbHVyKCkge1xuXHRcdHRoaXMudGFiaW5kZXggPSAtMTtcblx0fVxuXG5cdGZvY3VzSXRlbSgpIHtcblx0XHR0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKSB7XG5cdFx0dGhpcy5zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG5cdH1cbn1cbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, HostListener, Input, HostBinding } from "@angular/core";
|
|
1
|
+
import { Component, HostListener, Input, HostBinding, ChangeDetectionStrategy } from "@angular/core";
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
/**
|
|
4
4
|
* Get started with importing the module:
|
|
@@ -91,13 +91,13 @@ export class ContextMenuComponent {
|
|
|
91
91
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ContextMenuComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
92
92
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: ContextMenuComponent, selector: "cds-context-menu, ibm-context-menu", inputs: { open: "open", position: "position" }, host: { listeners: { "keydown": "handleNavigation($event)" }, properties: { "class.cds--menu": "this.contextMenu", "class.cds--menu--open": "this.contextMenuOpen", "class.cds--menu--shown": "this.showMenu", "attr.role": "this.role", "attr.tabindex": "this.tabindex", "style.left.px": "this.leftPosition", "style.top.px": "this.topPosition", "class.cds--menu--with-icons": "this.classIcons" } }, usesOnChanges: true, ngImport: i0, template: `
|
|
93
93
|
<ng-content />
|
|
94
|
-
`, isInline: true, styles: [":host{display:block}\n"] }); }
|
|
94
|
+
`, isInline: true, styles: [":host{display:block}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
95
95
|
}
|
|
96
96
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ContextMenuComponent, decorators: [{
|
|
97
97
|
type: Component,
|
|
98
98
|
args: [{ selector: "cds-context-menu, ibm-context-menu", template: `
|
|
99
99
|
<ng-content />
|
|
100
|
-
`, styles: [":host{display:block}\n"] }]
|
|
100
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block}\n"] }]
|
|
101
101
|
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { open: [{
|
|
102
102
|
type: Input
|
|
103
103
|
}], position: [{
|
|
@@ -130,4 +130,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
130
130
|
type: HostListener,
|
|
131
131
|
args: ["keydown", ["$event"]]
|
|
132
132
|
}] } });
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0LW1lbnUvY29udGV4dC1tZW51LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsV0FBVyxFQUNYLHVCQUF1QixFQUN2QixNQUFNLGVBQWUsQ0FBQzs7QUFFdkI7Ozs7Ozs7O0dBUUc7QUFhSCxNQUFNLE9BQU8sb0JBQW9CO0lBUWhDLElBQTBDLGVBQWUsS0FBSyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2pGLElBQTJDLFFBQVEsS0FBSyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBRzNFLElBQWtDLFlBQVksS0FBSyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMvRSxJQUFpQyxXQUFXLEtBQUssT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFNUUsSUFBZ0QsVUFBVTtRQUN6RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWE7YUFDOUMsYUFBYSxDQUFDLDJDQUEyQyxDQUFnQixDQUFDO1FBQzVFLE9BQU8sVUFBVSxDQUFDO0lBQ25CLENBQUM7SUFFRCxZQUFzQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBcEJuQyxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2IsYUFBUSxHQUFHO1lBQ25CLElBQUksRUFBRSxDQUFDO1lBQ1AsR0FBRyxFQUFFLENBQUM7U0FDTixDQUFDO1FBRThCLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBR3pCLFNBQUksR0FBRyxNQUFNLENBQUM7UUFDVixhQUFRLEdBQUcsSUFBSSxDQUFDO0lBVUUsQ0FBQztJQUVqRCxXQUFXLENBQUMsT0FBc0I7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WUFDRCxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xCLE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLGtDQUFrQyxDQUFnQixDQUFDO2dCQUN4RyxJQUFJLE1BQU0sRUFBRSxDQUFDO29CQUNaLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDaEIsQ0FBQztnQkFDRCxNQUFNO1lBQ1AsQ0FBQztRQUNGLENBQUM7SUFDRixDQUFDOytHQXBGVyxvQkFBb0I7bUdBQXBCLG9CQUFvQiwwaEJBVnRCOztFQUVUOzs0RkFRVyxvQkFBb0I7a0JBWmhDLFNBQVM7K0JBQ0Msb0NBQW9DLFlBQ3BDOztFQUVULG1CQU1nQix1QkFBdUIsQ0FBQyxNQUFNOytFQUd0QyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFLMEIsV0FBVztzQkFBMUMsV0FBVzt1QkFBQyxpQkFBaUI7Z0JBQ1ksZUFBZTtzQkFBeEQsV0FBVzt1QkFBQyx1QkFBdUI7Z0JBQ08sUUFBUTtzQkFBbEQsV0FBVzt1QkFBQyx3QkFBd0I7Z0JBQ1gsSUFBSTtzQkFBN0IsV0FBVzt1QkFBQyxXQUFXO2dCQUNNLFFBQVE7c0JBQXJDLFdBQVc7dUJBQUMsZUFBZTtnQkFDTSxZQUFZO3NCQUE3QyxXQUFXO3VCQUFDLGVBQWU7Z0JBQ0ssV0FBVztzQkFBM0MsV0FBVzt1QkFBQyxjQUFjO2dCQUVxQixVQUFVO3NCQUF6RCxXQUFXO3VCQUFDLDZCQUE2QjtnQkF3QjFDLGdCQUFnQjtzQkFEZixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENvbXBvbmVudCxcblx0RWxlbWVudFJlZixcblx0SG9zdExpc3RlbmVyLFxuXHRJbnB1dCxcblx0U2ltcGxlQ2hhbmdlcyxcblx0T25DaGFuZ2VzLFxuXHRIb3N0QmluZGluZyxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3lcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuLyoqXG4gKiBHZXQgc3RhcnRlZCB3aXRoIGltcG9ydGluZyB0aGUgbW9kdWxlOlxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGltcG9ydCB7IENvbnRleHRNZW51TW9kdWxlIH0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG4gKiBgYGBcbiAqXG4gKiBbU2VlIGRlbW9dKC4uLy4uLz9wYXRoPS9zdG9yeS9jb21wb25lbnRzLWNvbnRleHQtbWVudS0tYmFzaWMpXG4gKi9cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogXCJjZHMtY29udGV4dC1tZW51LCBpYm0tY29udGV4dC1tZW51XCIsXG5cdHRlbXBsYXRlOiBgXG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRgLFxuXHRzdHlsZXM6IFtgXG5cdFx0Omhvc3Qge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0fVxuXHRgXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ29udGV4dE1lbnVDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXHRASW5wdXQoKSBvcGVuID0gZmFsc2U7XG5cdEBJbnB1dCgpIHBvc2l0aW9uID0ge1xuXHRcdGxlZnQ6IDAsXG5cdFx0dG9wOiAwXG5cdH07XG5cblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS1tZW51XCIpIGNvbnRleHRNZW51ID0gdHJ1ZTtcblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS1tZW51LS1vcGVuXCIpIGdldCBjb250ZXh0TWVudU9wZW4oKSB7IHJldHVybiB0aGlzLm9wZW47IH1cblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS1tZW51LS1zaG93blwiKSBnZXQgc2hvd01lbnUoKSB7IHJldHVybiB0aGlzLm9wZW47IH1cblx0QEhvc3RCaW5kaW5nKFwiYXR0ci5yb2xlXCIpIHJvbGUgPSBcIm1lbnVcIjtcblx0QEhvc3RCaW5kaW5nKFwiYXR0ci50YWJpbmRleFwiKSB0YWJpbmRleCA9IFwiLTFcIjtcblx0QEhvc3RCaW5kaW5nKFwic3R5bGUubGVmdC5weFwiKSBnZXQgbGVmdFBvc2l0aW9uKCkgeyByZXR1cm4gdGhpcy5wb3NpdGlvbi5sZWZ0OyB9XG5cdEBIb3N0QmluZGluZyhcInN0eWxlLnRvcC5weFwiKSBnZXQgdG9wUG9zaXRpb24oKSB7IHJldHVybiB0aGlzLnBvc2l0aW9uLnRvcDsgfVxuXG5cdEBIb3N0QmluZGluZyhcImNsYXNzLmNkcy0tbWVudS0td2l0aC1pY29uc1wiKSBnZXQgY2xhc3NJY29ucygpIHtcblx0XHRjb25zdCBzdmdFbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcblx0XHRcdC5xdWVyeVNlbGVjdG9yKFwiLmNkcy0tbWVudS1pdGVtIC5jZHMtLW1lbnUtaXRlbV9faWNvbiBzdmdcIikgYXMgSFRNTEVsZW1lbnQ7XG5cdFx0cmV0dXJuIHN2Z0VsZW1lbnQ7XG5cdH1cblxuXHRjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZikgeyB9XG5cblx0bmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuXHRcdGlmIChjaGFuZ2VzLm9wZW4gJiYgY2hhbmdlcy5vcGVuLmN1cnJlbnRWYWx1ZSkge1xuXHRcdFx0dGhpcy5mb2N1c01lbnUoKTtcblx0XHR9XG5cdH1cblxuXHRmb2N1c01lbnUoKSB7XG5cdFx0Ly8gd2FpdCB1bnRpbCB0aGUgbmV4dCB0aWNrIHRvIGxldCB0aGUgRE9NIHNldHRsZSBiZWZvcmUgY2hhbmdpbmcgdGhlIGZvY3VzXG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRjb25zdCBsaXN0OiBIVE1MRWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXHRcdFx0Y29uc3QgZmlyc3RPcHRpb24gPSBsaXN0LnF1ZXJ5U2VsZWN0b3IoXCIuY2RzLS1tZW51LWl0ZW1cIikgYXMgSFRNTEVsZW1lbnQ7XG5cdFx0XHRmaXJzdE9wdGlvbi5mb2N1cygpO1xuXHRcdH0pO1xuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcihcImtleWRvd25cIiwgW1wiJGV2ZW50XCJdKVxuXHRoYW5kbGVOYXZpZ2F0aW9uKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG5cdFx0Y29uc3QgbGlzdDogSFRNTEVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblx0XHRjb25zdCBzdWJNZW51czogSFRNTEVsZW1lbnRbXSA9IEFycmF5LmZyb20obGlzdC5xdWVyeVNlbGVjdG9yQWxsKFwiY2RzLWNvbnRleHQtbWVudVtyb2xlPW1lbnVdXCIpKTtcblx0XHRjb25zdCBtZW51SXRlbXM6IEhUTUxFbGVtZW50W10gPSAoXG5cdFx0XHRBcnJheS5mcm9tKGxpc3QucXVlcnlTZWxlY3RvckFsbChcIi5jZHMtLW1lbnUtaXRlbVwiKSkgYXMgSFRNTEVsZW1lbnRbXSlcblx0XHRcdC5maWx0ZXIobWVudUl0ZW0gPT4gIXN1Yk1lbnVzLnNvbWUoc3ViTWVudSA9PiBzdWJNZW51LmNvbnRhaW5zKG1lbnVJdGVtKSlcblx0XHQpO1xuXHRcdGNvbnN0IGN1cnJlbnRJbmRleCA9IG1lbnVJdGVtcy5maW5kSW5kZXgobWVudUl0ZW0gPT4gcGFyc2VJbnQobWVudUl0ZW0uZ2V0QXR0cmlidXRlKFwidGFiaW5kZXhcIiksIDEwKSA9PT0gMCk7XG5cdFx0Y29uc3QgY3VycmVudE1lbnVJdGVtID0gbWVudUl0ZW1zW2N1cnJlbnRJbmRleF07XG5cblx0XHRzd2l0Y2ggKGV2ZW50LmtleSkge1xuXHRcdFx0Y2FzZSBcIkFycm93RG93blwiOiB7XG5cdFx0XHRcdGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBsaXN0KSB7XG5cdFx0XHRcdFx0bWVudUl0ZW1zWzBdLmZvY3VzKCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0aWYgKGN1cnJlbnRJbmRleCAhPT0gLTEgJiYgY3VycmVudEluZGV4IDwgbWVudUl0ZW1zLmxlbmd0aCAtIDEpIHtcblx0XHRcdFx0XHRcdG1lbnVJdGVtc1tjdXJyZW50SW5kZXggKyAxXS5mb2N1cygpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHRcdGNhc2UgXCJBcnJvd1VwXCI6IHtcblx0XHRcdFx0aWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGxpc3QpIHtcblx0XHRcdFx0XHRtZW51SXRlbXNbbWVudUl0ZW1zLmxlbmd0aCAtIDFdLmZvY3VzKCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0aWYgKGN1cnJlbnRJbmRleCAhPT0gLTEgJiYgY3VycmVudEluZGV4ID4gMCkge1xuXHRcdFx0XHRcdFx0bWVudUl0ZW1zW2N1cnJlbnRJbmRleCAtIDFdLmZvY3VzKCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdFx0Y2FzZSBcIkFycm93UmlnaHRcIjoge1xuXHRcdFx0XHRpZiAoY3VycmVudEluZGV4ICE9PSAtMSAmJiBzdWJNZW51cy5zb21lKHN1Yk1lbnUgPT4gY3VycmVudE1lbnVJdGVtLmNvbnRhaW5zKHN1Yk1lbnUpKSkge1xuXHRcdFx0XHRcdGN1cnJlbnRNZW51SXRlbS5jbGljaygpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdFx0Y2FzZSBcIkFycm93TGVmdFwiOiB7XG5cdFx0XHRcdGNvbnN0IHBhcmVudCA9IGN1cnJlbnRNZW51SXRlbS5wYXJlbnRFbGVtZW50LmNsb3Nlc3QoXCIuY2RzLS1tZW51LWl0ZW0sIC5jZHMtLW1lbnUtaXRlbVwiKSBhcyBIVE1MRWxlbWVudDtcblx0XHRcdFx0aWYgKHBhcmVudCkge1xuXHRcdFx0XHRcdHBhcmVudC5mb2N1cygpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, Input, Output, EventEmitter, ViewEncapsulation, HostListener, ViewChild } from "@angular/core";
|
|
1
|
+
import { Component, Input, Output, EventEmitter, ViewEncapsulation, HostListener, ViewChild, ChangeDetectionStrategy } from "@angular/core";
|
|
2
2
|
import rangePlugin from "flatpickr/dist/plugins/rangePlugin";
|
|
3
3
|
import flatpickr from "flatpickr";
|
|
4
4
|
import { NG_VALUE_ACCESSOR } from "@angular/forms";
|
|
@@ -605,7 +605,7 @@ export class DatePicker {
|
|
|
605
605
|
}
|
|
606
606
|
</div>
|
|
607
607
|
</div>
|
|
608
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3.DatePickerInput, selector: "cds-date-picker-input, ibm-date-picker-input", inputs: ["type", "id", "hasIcon", "label", "placeholder", "pattern", "theme", "disabled", "readonly", "invalid", "invalidText", "warn", "warnText", "helperText", "skeleton", "value", "size"], outputs: ["valueChange"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
608
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3.DatePickerInput, selector: "cds-date-picker-input, ibm-date-picker-input", inputs: ["type", "id", "hasIcon", "label", "placeholder", "pattern", "theme", "disabled", "readonly", "invalid", "invalidText", "warn", "warnText", "helperText", "skeleton", "value", "size"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
609
609
|
}
|
|
610
610
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: DatePicker, decorators: [{
|
|
611
611
|
type: Component,
|
|
@@ -678,7 +678,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
678
678
|
multi: true
|
|
679
679
|
}
|
|
680
680
|
],
|
|
681
|
-
encapsulation: ViewEncapsulation.None
|
|
681
|
+
encapsulation: ViewEncapsulation.None,
|
|
682
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
682
683
|
}]
|
|
683
684
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.I18n }], propDecorators: { range: [{
|
|
684
685
|
type: Input
|
|
@@ -751,4 +752,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
751
752
|
type: HostListener,
|
|
752
753
|
args: ["focusout"]
|
|
753
754
|
}] } });
|
|
754
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGF0ZXBpY2tlci9kYXRlcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLGlCQUFpQixFQUdqQixZQUFZLEVBTVosU0FBUyxFQUdULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sV0FBVyxNQUFNLG9DQUFvQyxDQUFDO0FBQzdELE9BQU8sU0FBUyxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRixPQUFPLEtBQUssU0FBUyxNQUFNLDJCQUEyQixDQUFDOzs7OztBQUt2RDs7Ozs7OztHQU9HO0FBQ0gsSUFBSSxTQUFTLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUMvQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBc0IsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUM5SCxJQUFJLEdBQUcsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUN4QixPQUFPLElBQUksQ0FBQztRQUNiLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEIsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUF3RUgsTUFBTSxPQUFPLFVBQVU7YUFNUCxvQkFBZSxHQUFHLENBQUMsQUFB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TztzQkFBZixLQUFLO2dCQUlHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBSUcsSUFBSTtzQkFBWixLQUFLO2dCQUlHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUlHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBSUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUlHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBSUcsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFHRixnQkFBZ0I7c0JBRG5CLEtBQUs7Z0JBcUJnQyxLQUFLO3NCQUExQyxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ1gsVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQUViLFdBQVc7c0JBQXBCLE1BQU07Z0JBTUcsT0FBTztzQkFBaEIsTUFBTTtnQkF3R1AsT0FBTztzQkFETixZQUFZO3VCQUFDLFNBQVM7Z0JBZ0J2QixVQUFVO3NCQURULFlBQVk7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENvbXBvbmVudCxcblx0SW5wdXQsXG5cdE91dHB1dCxcblx0RXZlbnRFbWl0dGVyLFxuXHRWaWV3RW5jYXBzdWxhdGlvbixcblx0RWxlbWVudFJlZixcblx0T25EZXN0cm95LFxuXHRIb3N0TGlzdGVuZXIsXG5cdFRlbXBsYXRlUmVmLFxuXHRPbkNoYW5nZXMsXG5cdFNpbXBsZUNoYW5nZXMsXG5cdEFmdGVyVmlld0NoZWNrZWQsXG5cdEFmdGVyVmlld0luaXQsXG5cdFZpZXdDaGlsZCxcblx0T25Jbml0LFxuXHRTaW1wbGVDaGFuZ2Vcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCByYW5nZVBsdWdpbiBmcm9tIFwiZmxhdHBpY2tyL2Rpc3QvcGx1Z2lucy9yYW5nZVBsdWdpblwiO1xuaW1wb3J0IGZsYXRwaWNrciBmcm9tIFwiZmxhdHBpY2tyXCI7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgY2FyYm9uRmxhdHBpY2tyTW9udGhTZWxlY3RQbHVnaW4gfSBmcm9tIFwiLi9jYXJib24tZmxhdHBpY2tyLW1vbnRoLXNlbGVjdFwiO1xuaW1wb3J0ICogYXMgbGFuZ3VhZ2VzIGZyb20gXCJmbGF0cGlja3IvZGlzdC9sMTBuL2luZGV4XCI7XG5pbXBvcnQgeyBPcHRpb25zIH0gZnJvbSBcImZsYXRwaWNrci9kaXN0L3R5cGVzL29wdGlvbnNcIjtcbmltcG9ydCB7IERhdGVQaWNrZXJJbnB1dCB9IGZyb20gXCJjYXJib24tY29tcG9uZW50cy1hbmd1bGFyL2RhdGVwaWNrZXItaW5wdXRcIjtcbmltcG9ydCB7IEkxOG4gfSBmcm9tIFwiY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhci9pMThuXCI7XG5cbi8qKlxuICogRHVlIHRvIHR5cGUgZXJyb3IsIHdlIGhhdmUgdG8gdXNlIHNxdWFyZSBicmFja2V0cyBwcm9wZXJ0eSBhY2Nlc3NvclxuICogVGhlcmUgaXMgYSB3ZWJwYWNrIGlzc3VlIHdoZW4gYXR0ZW1wdGluZyB0byBhY2Nlc3MgZXhwb3J0ZWQgbGFuZ3VhZ2VzIGZyb20gZmxhdHBpY2tyIGwxMG4gQW5ndWxhciAxNCsgYXBwc1xuICogbGFuZ3VhZ2VzLmRlZmF1bHRbbG9jYWxlXSBmYWlscyBpbiBhcHAgY29uc3VtaW5nIENDQSBsaWJyYXJ5IGJ1dCBwYXNzZXMgaW4gdGVzdFxuICogbGFuZ3VhZ2VzLmRlZmF1bHQuZGVmYXVsdFtsb2NhbGVdIGZhaWxzIGluIHRlc3QgYnV0IHdvcmtzIGluIGFwcCBjb25zdW1pbmcgQ0NBIGxpYnJhcnkuXG4gKlxuICogVG8gcGxlYXNlIGJvdGggc2NlbmFyaW9zLCB3ZSBhcmUgYWRkaW5nIGEgY29uZGl0aW9uIHRvIHByZXZlbnQgdGVzdHMgZnJvbSBmYWlsaW5nXG4gKi9cbmlmIChsYW5ndWFnZXMuZGVmYXVsdD8uZGVmYXVsdFtcImVuXCJdPy53ZWVrZGF5cykge1xuXHQobGFuZ3VhZ2VzLmRlZmF1bHQuZGVmYXVsdFtcImVuXCJdLndlZWtkYXlzLnNob3J0aGFuZCBhcyBzdHJpbmdbXSkgPSBsYW5ndWFnZXMuZGVmYXVsdC5kZWZhdWx0W1wiZW5cIl0ud2Vla2RheXMubG9uZ2hhbmQubWFwKGRheSA9PiB7XG5cdFx0aWYgKGRheSA9PT0gXCJUaHVyc2RheVwiKSB7XG5cdFx0XHRyZXR1cm4gXCJUaFwiO1xuXHRcdH1cblx0XHRyZXR1cm4gZGF5LmNoYXJBdCgwKTtcblx0fSk7XG59XG5cbi8qKlxuICogR2V0IHN0YXJ0ZWQgd2l0aCBpbXBvcnRpbmcgdGhlIG1vZHVsZTpcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgeyBEYXRlUGlja2VyTW9kdWxlIH0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG4gKiBgYGBcbiAqXG4gKiBbU2VlIGRlbW9dKC4uLy4uLz9wYXRoPS9zdG9yeS9jb21wb25lbnRzLWRhdGUtcGlja2VyLS1zaW5nbGUpXG4gKi9cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogXCJjZHMtZGF0ZS1waWNrZXIsIGlibS1kYXRlLXBpY2tlclwiLFxuXHR0ZW1wbGF0ZTogYFxuXHQ8ZGl2IGNsYXNzPVwiY2RzLS1mb3JtLWl0ZW1cIj5cblx0XHQ8ZGl2XG5cdFx0XHRjbGFzcz1cImNkcy0tZGF0ZS1waWNrZXJcIlxuXHRcdFx0W25nQ2xhc3NdPVwie1xuXHRcdFx0XHQnY2RzLS1kYXRlLXBpY2tlci0tcmFuZ2UnIDogcmFuZ2UsXG5cdFx0XHRcdCdjZHMtLWRhdGUtcGlja2VyLS1zaW5nbGUnIDogIXJhbmdlLFxuXHRcdFx0XHQnY2RzLS1kYXRlLXBpY2tlci0tbGlnaHQnIDogdGhlbWUgPT09ICdsaWdodCcsXG5cdFx0XHRcdCdjZHMtLXNrZWxldG9uJyA6IHNrZWxldG9uXG5cdFx0XHR9XCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY2RzLS1kYXRlLXBpY2tlci1jb250YWluZXJcIj5cblx0XHRcdFx0PGNkcy1kYXRlLXBpY2tlci1pbnB1dFxuXHRcdFx0XHRcdCNpbnB1dFxuXHRcdFx0XHRcdFtsYWJlbF09XCJsYWJlbFwiXG5cdFx0XHRcdFx0W3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcblx0XHRcdFx0XHRbcGF0dGVybl09XCJpbnB1dFBhdHRlcm5cIlxuXHRcdFx0XHRcdFtpZF09XCJpZCArICctaW5wdXQnXCJcblx0XHRcdFx0XHRbc2l6ZV09XCJzaXplXCJcblx0XHRcdFx0XHRbdHlwZV09XCIocmFuZ2UgPyAncmFuZ2UnIDogJ3NpbmdsZScpXCJcblx0XHRcdFx0XHRbaGFzSWNvbl09XCIocmFuZ2UgPyBmYWxzZSA6IHRydWUpXCJcblx0XHRcdFx0XHRbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuXHRcdFx0XHRcdFtyZWFkb25seV09XCJyZWFkb25seVwiXG5cdFx0XHRcdFx0W2ludmFsaWRdPVwiaW52YWxpZFwiXG5cdFx0XHRcdFx0W2ludmFsaWRUZXh0XT1cImludmFsaWRUZXh0XCJcblx0XHRcdFx0XHRbd2Fybl09XCJ3YXJuXCJcblx0XHRcdFx0XHRbd2FyblRleHRdPVwid2FyblRleHRcIlxuXHRcdFx0XHRcdFtza2VsZXRvbl09XCJza2VsZXRvblwiXG5cdFx0XHRcdFx0W2hlbHBlclRleHRdPVwiaGVscGVyVGV4dFwiXG5cdFx0XHRcdFx0KHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG5cdFx0XHRcdFx0KGNsaWNrKT1cIm9wZW5DYWxlbmRhcihpbnB1dClcIj5cblx0XHRcdFx0PC9jZHMtZGF0ZS1waWNrZXItaW5wdXQ+XG5cdFx0XHQ8L2Rpdj5cblxuXHRcdFx0QGlmIChyYW5nZSkge1xuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY2RzLS1kYXRlLXBpY2tlci1jb250YWluZXJcIj5cblx0XHRcdFx0XHQ8Y2RzLWRhdGUtcGlja2VyLWlucHV0XG5cdFx0XHRcdFx0XHQjcmFuZ2VJbnB1dFxuXHRcdFx0XHRcdFx0W2xhYmVsXT1cInJhbmdlTGFiZWxcIlxuXHRcdFx0XHRcdFx0W3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcblx0XHRcdFx0XHRcdFtwYXR0ZXJuXT1cImlucHV0UGF0dGVyblwiXG5cdFx0XHRcdFx0XHRbaWRdPVwiaWQgKyAnLXJhbmdlSW5wdXQnXCJcblx0XHRcdFx0XHRcdFtzaXplXT1cInNpemVcIlxuXHRcdFx0XHRcdFx0W3R5cGVdPVwiKHJhbmdlID8gJ3JhbmdlJyA6ICdzaW5nbGUnKVwiXG5cdFx0XHRcdFx0XHRbaGFzSWNvbl09XCIocmFuZ2UgPyB0cnVlIDogbnVsbClcIlxuXHRcdFx0XHRcdFx0W2Rpc2FibGVkXT1cImRpc2FibGVkXCJcblx0XHRcdFx0XHRcdFtyZWFkb25seV09XCJyZWFkb25seVwiXG5cdFx0XHRcdFx0XHRbaW52YWxpZF09XCJyYW5nZUludmFsaWRcIlxuXHRcdFx0XHRcdFx0W2ludmFsaWRUZXh0XT1cInJhbmdlSW52YWxpZFRleHRcIlxuXHRcdFx0XHRcdFx0W3dhcm5dPVwicmFuZ2VXYXJuXCJcblx0XHRcdFx0XHRcdFt3YXJuVGV4dF09XCJyYW5nZVdhcm5UZXh0XCJcblx0XHRcdFx0XHRcdFtza2VsZXRvbl09XCJza2VsZXRvblwiXG5cdFx0XHRcdFx0XHRbaGVscGVyVGV4dF09XCJyYW5nZUhlbHBlclRleHRcIlxuXHRcdFx0XHRcdFx0KHZhbHVlQ2hhbmdlKT1cIm9uUmFuZ2VWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcblx0XHRcdFx0XHRcdChjbGljayk9XCJvcGVuQ2FsZW5kYXIocmFuZ2VJbnB1dClcIj5cblx0XHRcdFx0XHQ8L2Nkcy1kYXRlLXBpY2tlci1pbnB1dD5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHR9XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuXHRgLFxuXHRwcm92aWRlcnM6IFtcblx0XHR7XG5cdFx0XHRwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcblx0XHRcdHVzZUV4aXN0aW5nOiBEYXRlUGlja2VyLFxuXHRcdFx0bXVsdGk6IHRydWVcblx0XHR9XG5cdF0sXG5cdGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZVBpY2tlciBpbXBsZW1lbnRzXG5cdE9uSW5pdCxcblx0T25EZXN0cm95LFxuXHRPbkNoYW5nZXMsXG5cdEFmdGVyVmlld0NoZWNrZWQsXG5cdEFmdGVyVmlld0luaXQge1xuXHRwcml2YXRlIHN0YXRpYyBkYXRlUGlja2VyQ291bnQgPSAwO1xuXG5cdC8qKlxuXHQgKiBTZWxlY3QgY2FsZW5kYXIgcmFuZ2UgbW9kZVxuXHQgKi9cblx0QElucHV0KCkgcmFuZ2UgPSBmYWxzZTtcblxuXHQvKipcblx0ICogRm9ybWF0IG9mIGRhdGVcblx0ICpcblx0ICogRm9yIHJlZmVyZW5jZTogaHR0cHM6Ly9mbGF0cGlja3IuanMub3JnL2Zvcm1hdHRpbmcvXG5cdCAqL1xuXHRASW5wdXQoKSBkYXRlRm9ybWF0ID0gXCJtL2QvWVwiO1xuXG5cdC8qKlxuXHQgKiBMYW5ndWFnZSBvZiB0aGUgZmxhdHBpY2tyIGNhbGVuZGFyLlxuXHQgKlxuXHQgKiBGb3IgcmVmZXJlbmNlIG9mIHRoZSBwb3NzaWJsZSBsb2NhbGVzOlxuXHQgKiBodHRwczovL2dpdGh1Yi5jb20vZmxhdHBpY2tyL2ZsYXRwaWNrci9ibG9iL21hc3Rlci9zcmMvbDEwbi9pbmRleC50c1xuXHQgKi9cblx0QElucHV0KCkgbGFuZ3VhZ2UgPSBcImVuXCI7XG5cblx0QElucHV0KCkgbGFiZWw6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cdEBJbnB1dCgpIGhlbHBlclRleHQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cdEBJbnB1dCgpIHJhbmdlSGVscGVyVGV4dDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55Pjtcblx0QElucHV0KCkgcmFuZ2VMYWJlbDogc3RyaW5nO1xuXG5cdEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gXCJtbS9kZC95eXl5XCI7XG5cblx0LyoqXG5cdCAqIEFyaWEgbGFiZWwgYWRkZWQgdG8gZGF0ZXBpY2tlcidzIGNhbGVuZGFyIGNvbnRhaW5lci5cblx0ICovXG5cdEBJbnB1dCgpIGFyaWFMYWJlbCA9IFwiY2FsZW5kYXIgY29udGFpbmVyXCI7XG5cblx0LyoqXG5cdCAqIFRoZSBwYXR0ZXJuIGZvciB0aGUgdW5kZXJseWluZyBpbnB1dCBlbGVtZW50XG5cdCAqL1xuXHRASW5wdXQoKSBpbnB1dFBhdHRlcm4gPSBcIl5cXFxcZHsxLDJ9L1xcXFxkezEsMn0vXFxcXGR7NH0kXCI7XG5cblx0QElucHV0KCkgaWQgPSBgZGF0ZXBpY2tlci0ke0RhdGVQaWNrZXIuZGF0ZVBpY2tlckNvdW50Kyt9YDtcblxuXHRASW5wdXQoKSBzZXQgdmFsdWUodjogKERhdGUgfCBzdHJpbmcpW10pIHtcblx0XHRpZiAoIXYpIHtcblx0XHRcdHYgPSBbXTtcblx0XHR9XG5cdFx0dGhpcy5fdmFsdWUgPSB2O1xuXHR9XG5cblx0Z2V0IHZhbHVlKCkge1xuXHRcdHJldHVybiB0aGlzLl92YWx1ZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBAZGVwcmVjYXRlZCBzaW5jZSB2NSAtIFVzZSBgY2RzTGF5ZXJgIGRpcmVjdGl2ZSBpbnN0ZWFkXG5cdCAqIFNldCB0byBgXCJsaWdodFwiYCB0byBhcHBseSB0aGUgbGlnaHQgc3R5bGVcblx0ICovXG5cdEBJbnB1dCgpIHRoZW1lOiBcImxpZ2h0XCIgfCBcImRhcmtcIiA9IFwiZGFya1wiO1xuXG5cdEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cblx0QElucHV0KCkgcmVhZG9ubHkgPSBmYWxzZTtcblx0LyoqXG5cdCAqIFNldCB0byBgdHJ1ZWAgdG8gZGlzcGxheSB0aGUgaW52YWxpZCBzdGF0ZS5cblx0ICovXG5cdEBJbnB1dCgpIGludmFsaWQgPSBmYWxzZTtcblx0LyoqXG5cdCAqIFZhbHVlIGRpc3BsYXllZCBpZiBkYXRlcGlja2VyIGlzIGluIGFuIGludmFsaWQgc3RhdGUuXG5cdCAqL1xuXHRASW5wdXQoKSBpbnZhbGlkVGV4dDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55Pjtcblx0LyoqXG5cdCAgKiBTZXQgdG8gYHRydWVgIHRvIHNob3cgYSB3YXJuaW5nIChjb250ZW50cyBzZXQgYnkgd2FybmluZ1RleHQpXG5cdCAgKi9cblx0QElucHV0KCkgd2FybiA9IGZhbHNlO1xuXHQvKipcblx0ICogU2V0cyB0aGUgd2FybmluZyB0ZXh0XG5cdCAqL1xuXHRASW5wdXQoKSB3YXJuVGV4dDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PjtcblxuXHRASW5wdXQoKSBzaXplOiBcInNtXCIgfCBcIm1kXCIgfCBcImxnXCIgPSBcIm1kXCI7XG5cdC8qKlxuXHQgKiBTZXQgdG8gYHRydWVgIHRvIGRpc3BsYXkgdGhlIGludmFsaWQgc3RhdGUgZm9yIHRoZSBzZWNvbmQgZGF0ZXBpY2tlciBpbnB1dC5cblx0ICovXG5cdEBJbnB1dCgpIHJhbmdlSW52YWxpZCA9IGZhbHNlO1xuXHQvKipcblx0ICogVmFsdWUgZGlzcGxheWVkIGlmIHRoZSBzZWNvbmQgZGF0ZXBpY2tlciBpbnB1dCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLlxuXHQgKi9cblx0QElucHV0KCkgcmFuZ2VJbnZhbGlkVGV4dDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55Pjtcblx0LyoqXG5cdCAgKiBTZXQgdG8gYHRydWVgIHRvIHNob3cgYSB3YXJuaW5nIGluIHRoZSBzZWNvbmQgZGF0ZXBpY2tlciBpbnB1dCAoY29udGVudHMgc2V0IGJ5IHJhbmdlV2FybmluZ1RleHQpXG5cdCAgKi9cblx0QElucHV0KCkgcmFuZ2VXYXJuID0gZmFsc2U7XG5cdC8qKlxuXHQgKiBTZXRzIHRoZSB3YXJuaW5nIHRleHQgZm9yIHRoZSBzZWNvbmQgZGF0ZXBpY2tlciBpbnB1dFxuXHQgKi9cblx0QElucHV0KCkgcmFuZ2VXYXJuVGV4dDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PjtcblxuXHRASW5wdXQoKSBza2VsZXRvbiA9IGZhbHNlO1xuXG5cdEBJbnB1dCgpIHBsdWdpbnMgPSBbXTtcblxuXHRASW5wdXQoKVxuXHRzZXQgZmxhdHBpY2tyT3B0aW9ucyhvcHRpb25zOiBQYXJ0aWFsPE9wdGlvbnM+KSB7XG5cdFx0dGhpcy5fZmxhdHBpY2tyT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX2ZsYXRwaWNrck9wdGlvbnMsIG9wdGlvbnMpO1xuXHR9XG5cdGdldCBmbGF0cGlja3JPcHRpb25zKCk6IFBhcnRpYWw8T3B0aW9ucz4ge1xuXHRcdGNvbnN0IHBsdWdpbnMgPSBbLi4udGhpcy5wbHVnaW5zLCBjYXJib25GbGF0cGlja3JNb250aFNlbGVjdFBsdWdpbl07XG5cdFx0aWYgKHRoaXMucmFuZ2UpIHtcblx0XHRcdHBsdWdpbnMucHVzaChyYW5nZVBsdWdpbih7IGlucHV0OiBgIyR7dGhpcy5pZH0tcmFuZ2VJbnB1dGAsIHBvc2l0aW9uOiBcImxlZnRcIiB9KSk7XG5cdFx0fVxuXHRcdHJldHVybiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9mbGF0cGlja3JPcHRpb25zLCB0aGlzLmZsYXRwaWNrckJhc2VPcHRpb25zLCB7XG5cdFx0XHRtb2RlOiB0aGlzLnJhbmdlID8gXCJyYW5nZVwiIDogXCJzaW5nbGVcIixcblx0XHRcdHBsdWdpbnMsXG5cdFx0XHRkYXRlRm9ybWF0OiB0aGlzLmRhdGVGb3JtYXQsXG5cdFx0XHRsb2NhbGU6IGxhbmd1YWdlcy5kZWZhdWx0Py5kZWZhdWx0W3RoaXMubGFuZ3VhZ2VdIHx8IGxhbmd1YWdlcy5kZWZhdWx0W3RoaXMubGFuZ3VhZ2VdLFxuXHRcdFx0Ly8gTGl0dGxlIHRyaWNrIGZvcmNlIFwicmVhZG9ubHkgbW9kZVwiIG9uIGRhdGVwaWNrZXIgaW5wdXQuXG5cdFx0XHQvLyBEb2NzOiBXaGV0aGVyIGNsaWNraW5nIG9uIHRoZSBpbnB1dCBzaG91bGQgb3BlbiB0aGUgcGlja2VyLlxuXHRcdFx0Ly8gWW91IGNvdWxkIGRpc2FibGUgdGhpcyBpZiB5b3Ugd2lzaCB0byBvcGVuIHRoZSBjYWxlbmRhciBtYW51YWxseSB3aXRoLm9wZW4oKS5cblx0XHRcdGNsaWNrT3BlbnM6ICF0aGlzLnJlYWRvbmx5XG5cdFx0fSk7XG5cdH1cblxuXHRAVmlld0NoaWxkKFwiaW5wdXRcIiwgeyBzdGF0aWM6IHRydWUgfSkgaW5wdXQ6IERhdGVQaWNrZXJJbnB1dDtcblx0QFZpZXdDaGlsZChcInJhbmdlSW5wdXRcIikgcmFuZ2VJbnB1dDogRGF0ZVBpY2tlcklucHV0O1xuXG5cdEBPdXRwdXQoKSB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cblx0LyoqXG5cdCAqIFdlIGFyZSBvdmVycmlkaW5nIG9uQ2xvc2UgZXZlbnQgZXZlbiBpZiB1c2VycyBwYXNzIGl0IHZpYSBmbGF0cGlja3Igb3B0aW9uc1xuXHQgKiBFbWl0cyBhbiBldmVudCB3aGVuIGRhdGUgcGlja2VyIGNsb3Nlc1xuXHQgKi9cblx0QE91dHB1dCgpIG9uQ2xvc2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cdHByb3RlY3RlZCBfdmFsdWUgPSBbXTtcblxuXHRwcm90ZWN0ZWQgX2ZsYXRwaWNrck9wdGlvbnM6IFBhcnRpYWw8T3B0aW9ucz4gPSB7XG5cdFx0YWxsb3dJbnB1dDogdHJ1ZVxuXHR9O1xuXG5cdHByb3RlY3RlZCBmbGF0cGlja3JCYXNlT3B0aW9ucyA9IHtcblx0XHRtb2RlOiBcInNpbmdsZVwiLFxuXHRcdGRhdGVGb3JtYXQ6IFwibS9kL1lcIixcblx0XHRwbHVnaW5zOiB0aGlzLnBsdWdpbnMsXG5cdFx0b25PcGVuOiAoKSA9PiB7XG5cdFx0XHR0aGlzLnVwZGF0ZUNsYXNzTmFtZXMoKTtcblx0XHRcdHRoaXMudXBkYXRlQXR0cmlidXRlcygpO1xuXHRcdFx0dGhpcy51cGRhdGVDYWxlbmRhckxpc3RlbmVycygpO1xuXHRcdH0sXG5cdFx0b25DbG9zZTogKGRhdGUpID0+IHtcblx0XHRcdC8vIFRoaXMgbWFrZXMgc3VyZSB0aGF0IHRoZSBgZmxhdHBpY2tySW5zdGFuY2Ugc2VsZWN0ZWREYXRlc2AgYXJlIGluIHN5bmMgd2l0aCB0aGUgdmFsdWVzIG9mXG5cdFx0XHQvLyB0aGUgaW5wdXRzIHdoZW4gdGhlIGNhbGVuZGFyIGNsb3Nlcy5cblx0XHRcdGlmICh0aGlzLnJhbmdlICYmIHRoaXMuZmxhdHBpY2tySW5zdGFuY2UpIHtcblx0XHRcdFx0Y29uc3QgaW5wdXRWYWx1ZSA9IHRoaXMuaW5wdXQuaW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZTtcblx0XHRcdFx0Y29uc3QgcmFuZ2VJbnB1dFZhbHVlID0gdGhpcy5yYW5nZUlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWU7XG5cdFx0XHRcdGlmIChpbnB1dFZhbHVlIHx8IHJhbmdlSW5wdXRWYWx1ZSkge1xuXHRcdFx0XHRcdGNvbnN0IHBhcnNlRGF0ZSA9IChkYXRlOiBzdHJpbmcpID0+IHRoaXMuZmxhdHBpY2tySW5zdGFuY2UucGFyc2VEYXRlKGRhdGUsIHRoaXMuZGF0ZUZvcm1hdCk7XG5cdFx0XHRcdFx0dGhpcy5zZXREYXRlVmFsdWVzKFtwYXJzZURhdGUoaW5wdXRWYWx1ZSksIHBhcnNlRGF0ZShyYW5nZUlucHV0VmFsdWUgfHwgaW5wdXRWYWx1ZSldKTtcblx0XHRcdFx0XHR0aGlzLmRvU2VsZWN0KHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlcyk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHRoaXMub25DbG9zZS5lbWl0KGRhdGUpO1xuXHRcdH0sXG5cdFx0b25EYXlDcmVhdGU6IChfZE9iaiwgX2RTdHIsIF9mcCwgZGF5RWxlbSkgPT4ge1xuXHRcdFx0ZGF5RWxlbS5jbGFzc0xpc3QuYWRkKFwiY2RzLS1kYXRlLXBpY2tlcl9fZGF5XCIpO1xuXHRcdH0sXG5cdFx0bmV4dEFycm93OiB0aGlzLnJpZ2h0QXJyb3dIVE1MKCksXG5cdFx0cHJldkFycm93OiB0aGlzLmxlZnRBcnJvd0hUTUwoKSxcblx0XHR2YWx1ZTogdGhpcy52YWx1ZVxuXHR9O1xuXG5cdHByb3RlY3RlZCBmbGF0cGlja3JJbnN0YW5jZSA9IG51bGw7XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0cHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG5cdFx0cHJvdGVjdGVkIGkxOG46IEkxOG5cblx0KSB7IH1cblxuXHRuZ09uSW5pdCgpIHtcblx0XHQvLyBpZiBpMThuIGlzIHNldCB0byBhbnl0aGluZyBvdGhlciB0aGFuIGVuIHdlJ2xsIHdhbnQgdG8gY2hhbmdlIHRoZSBsYW5ndWFnZVxuXHRcdC8vIG90aGVyd2lzZSB3ZSdsbCBqdXN0IHVzZSB0aGUgbG9jYWwgc2V0dGluZ1xuXHRcdGlmICh0aGlzLmkxOG4uZ2V0TG9jYWxlKCkgIT09IFwiZW5cIikge1xuXHRcdFx0dGhpcy5pMThuLmdldExvY2FsZU9ic2VydmFibGUoKS5zdWJzY3JpYmUobG9jYWxlID0+IHtcblx0XHRcdFx0dGhpcy5sYW5ndWFnZSA9IGxvY2FsZTtcblx0XHRcdFx0dGhpcy5yZXNldEZsYXRwaWNrckluc3RhbmNlKCk7XG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG5cdFx0Ly8gUmVzZXQgdGhlIGZsYXRwaWNrciBpbnN0YW5jZSBvbiBpbnB1dCBjaGFuZ2VzIHRoYXQgYWZmZWN0IGZsYXRwaWNrci5cblx0XHRjb25zdCBmbGF0cGlja3JDaGFuZ2VLZXlzID0gW1xuXHRcdFx0XCJyYW5nZVwiLFxuXHRcdFx0XCJkYXRlRm9ybWF0XCIsXG5cdFx0XHRcImxhbmd1YWdlXCIsXG5cdFx0XHRcImlkXCIsXG5cdFx0XHRcInZhbHVlXCIsXG5cdFx0XHRcInBsdWdpbnNcIixcblx0XHRcdFwiZmxhdHBpY2tyT3B0aW9uc1wiLFxuXHRcdFx0XCJyZWFkb25seVwiXG5cdFx0XTtcblx0XHRjb25zdCBjaGFuZ2VLZXlzID0gT2JqZWN0LmtleXMoY2hhbmdlcyk7XG5cdFx0aWYgKGNoYW5nZUtleXMuc29tZShrZXkgPT4gZmxhdHBpY2tyQ2hhbmdlS2V5cy5pbmNsdWRlcyhrZXkpKSkge1xuXHRcdFx0dGhpcy5yZXNldEZsYXRwaWNrckluc3RhbmNlKGNoYW5nZXMudmFsdWUpO1xuXHRcdH1cblx0fVxuXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpIHtcblx0XHRpZiAoIXRoaXMuc2tlbGV0b24pIHtcblx0XHRcdHRoaXMuaW5wdXQuaW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMuX3ZhbHVlWzBdID8/IFwiXCI7XG5cdFx0XHRpZiAodGhpcy5yYW5nZSkge1xuXHRcdFx0XHR0aGlzLnJhbmdlSW5wdXQuaW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMuX3ZhbHVlWzFdID8/IFwiXCI7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0dGhpcy5hZGRJbnB1dExpc3RlbmVycygpO1xuXHRcdH0sIDApO1xuXHR9XG5cblx0Ly8gYmVjYXVzZSB0aGUgYWN0dWFsIHZpZXcgbWF5IGJlIGRlbGF5ZWQgaW4gbG9hZGluZyAodGhpbmsgcHJvamVjdGlvbiBpbnRvIGEgdGFiIHBhbmUpXG5cdC8vIGFuZCBiZWNhdXNlIHdlIHJlbHkgb24gYSBsaWJyYXJ5IHRoYXQgb3BlcmF0ZXMgb3V0c2lkZSB0aGUgQW5ndWxhciB2aWV3IG9mIHRoZSB3b3JsZFxuXHQvLyB3ZSBuZWVkIHRvIGtlZXAgdHJ5aW5nIHRvIGxvYWQgdGhlIGxpYnJhcnksIHVudGlsIHRoZSByZWxldmFudCBET00gaXMgYWN0dWFsbHkgbGl2ZVxuXHRuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG5cdFx0aWYgKCF0aGlzLmlzRmxhdHBpY2tyTG9hZGVkKCkpIHtcblx0XHRcdC8vIEB0cy1pZ25vcmUgdHMgaXMgdW5oYXBweSB3aXRoIHRoZSBiZWxvdyBjYWxsIHRvIGBmbGF0cGlja3JgXG5cdFx0XHR0aGlzLmZsYXRwaWNrckluc3RhbmNlID0gZmxhdHBpY2tyKGAjJHt0aGlzLmlkfS1pbnB1dGAsIHRoaXMuZmxhdHBpY2tyT3B0aW9ucyk7XG5cdFx0XHQvLyBpZiAoYW5kIG9ubHkgaWYpIHRoZSBpbml0aWFsaXphdGlvbiBzdWNjZWVkZWQsIHdlIGNhbiBzZXQgdGhlIGRhdGUgdmFsdWVzXG5cdFx0XHRpZiAodGhpcy5pc0ZsYXRwaWNrckxvYWRlZCgpKSB7XG5cdFx0XHRcdGlmICh0aGlzLnZhbHVlLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHR0aGlzLnNldERhdGVWYWx1ZXModGhpcy52YWx1ZSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKFwiZm9jdXNpblwiKVxuXHRvbkZvY3VzKCkge1xuXHRcdC8vIFVwZGF0ZXMgdGhlIG1vbnRoIG1hbnVhbGx5IHdoZW4gY2FsZW5kYXIgbW9kZSBpcyByYW5nZSBiZWNhdXNlIG1vbnRoXG5cdFx0Ly8gd2lsbCBub3QgdXBkYXRlIHByb3Blcmx5IHdpdGhvdXQgbWFudWFsbHkgdXBkYXRpbmcgdGhlbSBvbiBmb2N1cy5cblx0XHRpZiAodGhpcy5yYW5nZSkge1xuXHRcdFx0aWYgKHRoaXMucmFuZ2VJbnB1dC5pbnB1dC5uYXRpdmVFbGVtZW50ID09PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50ICYmIHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlc1sxXSkge1xuXHRcdFx0XHRjb25zdCBjdXJyZW50TW9udGggPSB0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZXNbMV0uZ2V0TW9udGgoKTtcblx0XHRcdFx0dGhpcy5mbGF0cGlja3JJbnN0YW5jZS5jaGFuZ2VNb250aChjdXJyZW50TW9udGgsIGZhbHNlKTtcblx0XHRcdH0gZWxzZSBpZiAodGhpcy5pbnB1dC5pbnB1dC5uYXRpdmVFbGVtZW50ID09PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50ICYmIHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlc1swXSkge1xuXHRcdFx0XHRjb25zdCBjdXJyZW50TW9udGggPSB0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZXNbMF0uZ2V0TW9udGgoKTtcblx0XHRcdFx0dGhpcy5mbGF0cGlja3JJbnN0YW5jZS5jaGFuZ2VNb250aChjdXJyZW50TW9udGgsIGZhbHNlKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKFwiZm9jdXNvdXRcIilcblx0b25Gb2N1c091dCgpIHtcblx0XHR0aGlzLm9uVG91Y2hlZCgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdyaXRlcyBhIHZhbHVlIGZyb20gdGhlIG1vZGVsIHRvIHRoZSBjb21wb25lbnQuIEV4cGVjdHMgdGhlIHZhbHVlIHRvIGJlIGBudWxsYCBvciBgKERhdGUgfCBzdHJpbmcpW11gXG5cdCAqIEBwYXJhbSB2YWx1ZSB2YWx1ZSByZWNlaXZlZCBmcm9tIHRoZSBtb2RlbFxuXHQgKi9cblx0d3JpdGVWYWx1ZSh2YWx1ZTogKERhdGUgfCBzdHJpbmcpW10pIHtcblx0XHR0aGlzLnZhbHVlID0gdmFsdWU7XG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRpZiAodGhpcy5pc0ZsYXRwaWNrckxvYWRlZCgpICYmIHRoaXMuZmxhdHBpY2tySW5zdGFuY2UuY29uZmlnKSB7XG5cdFx0XHRcdHRoaXMuc2V0RGF0ZVZhbHVlcyh0aGlzLnZhbHVlKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBgQ29udHJvbFZhbHVlQWNjZXNzb3JgIG1ldGhvZCB0byBwcm9ncmFtbWF0aWNhbGx5IGRpc2FibGUgdGhlIERhdGVQaWNrZXIuXG5cdCAqXG5cdCAqIGV4OiBgdGhpcy5mb3JtR3JvdXAuZ2V0KFwibXlEYXRlUGlja2VyXCIpLmRpc2FibGUoKTtgXG5cdCAqXG5cdCAqIEBwYXJhbSBpc0Rpc2FibGVkIGB0cnVlYCB0byBkaXNhYmxlIHRoZSBEYXRlUGlja2VyXG5cdCAqL1xuXHRzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcblx0XHR0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcblx0fVxuXG5cdHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuXHRcdHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XG5cdH1cblxuXHRyZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XG5cdFx0dGhpcy5vblRvdWNoZWQgPSBmbjtcblx0fVxuXG5cdG9uVG91Y2hlZDogKCkgPT4gYW55ID0gKCkgPT4geyB9O1xuXG5cdHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHsgfTtcblxuXHQvKipcblx0ICogQ2xlYW5zIHVwIG91ciBmbGF0cGlja3IgaW5zdGFuY2Vcblx0ICovXG5cdG5nT25EZXN0cm95KCkge1xuXHRcdGlmICghdGhpcy5pc0ZsYXRwaWNrckxvYWRlZCgpKSB7IHJldHVybjsgfVxuXHRcdHRoaXMuZmxhdHBpY2tySW5zdGFuY2UuZGVzdHJveSgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEhhbmRsZXMgdGhlIGB2YWx1ZUNoYW5nZWAgZXZlbnQgZnJvbSB0aGUgcHJpbWFyeS9zaW5nbGUgaW5wdXRcblx0ICovXG5cdG9uVmFsdWVDaGFuZ2UoZXZlbnQ6IHN0cmluZykge1xuXHRcdGlmICh0aGlzLmlzRmxhdHBpY2tyTG9hZGVkKCkpIHtcblx0XHRcdGNvbnN0IGRhdGUgPSB0aGlzLmZsYXRwaWNrckluc3RhbmNlLnBhcnNlRGF0ZShldmVudCwgdGhpcy5kYXRlRm9ybWF0KTtcblx0XHRcdGlmICh0aGlzLnJhbmdlKSB7XG5cdFx0XHRcdHRoaXMuc2V0RGF0ZVZhbHVlcyhbZGF0ZSwgdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVzWzFdXSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLnNldERhdGVWYWx1ZXMoW2RhdGVdKTtcblx0XHRcdH1cblx0XHRcdHRoaXMuZG9TZWxlY3QodGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVzKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogSGFuZGxlcyB0aGUgYHZhbHVlQ2hhbmdlYCBldmVudCBmcm9tIHRoZSByYW5nZSBpbnB1dFxuXHQgKi9cblx0b25SYW5nZVZhbHVlQ2hhbmdlKGV2ZW50OiBzdHJpbmcpIHtcblx0XHRpZiAodGhpcy5pc0ZsYXRwaWNrckxvYWRlZCgpICYmIHRoaXMuZmxhdHBpY2tySW5zdGFuY2UuaXNPcGVuKSB7XG5cdFx0XHRjb25zdCBkYXRlID0gdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5wYXJzZURhdGUoZXZlbnQsIHRoaXMuZGF0ZUZvcm1hdCk7XG5cdFx0XHR0aGlzLnNldERhdGVWYWx1ZXMoW3RoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlc1swXSwgZGF0ZV0pO1xuXHRcdFx0dGhpcy5kb1NlbGVjdCh0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZXMpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBIYW5kbGVzIG9wZW5pbmcgdGhlIGNhbGVuZGFyIFwicHJvcGVybHlcIiB3aGVuIHRoZSBjYWxlbmRhciBpY29uIGlzIGNsaWNrZWQuXG5cdCAqL1xuXHRvcGVuQ2FsZW5kYXIoZGF0ZXBpY2tlcklucHV0OiBEYXRlUGlja2VySW5wdXQpIHtcblx0XHRpZiAodGhpcy5yZWFkb25seSB8fCB0aGlzLnNrZWxldG9uKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMucmFuZ2UpIHtcblx0XHRcdGRhdGVwaWNrZXJJbnB1dC5pbnB1dC5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG5cblx0XHRcdC8vIElmIHRoZSBmaXJzdCBpbnB1dCdzIGNhbGVuZGFyIGljb24gaXMgY2xpY2tlZCB3aGVuIGNhbGVuZGFyIGlzIGluIHJhbmdlIG1vZGUsIHRoZW5cblx0XHRcdC8vIHRoZSBtb250aCBhbmQgeWVhciBuZWVkcyB0byBiZSBtYW51YWxseSBjaGFuZ2VkIHRvIHRoZSBjdXJyZW50IHNlbGVjdGVkIG1vbnRoIGFuZFxuXHRcdFx0Ly8geWVhciBvdGhlcndpc2UgdGhlIGNhbGVuZGFyIHZpZXcgd2lsbCBub3QgYmUgdXBkYXRlZCB1cG9uIG9wZW5pbmcuXG5cdFx0XHRpZiAoZGF0ZXBpY2tlcklucHV0ID09PSB0aGlzLmlucHV0ICYmIHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlc1swXSkge1xuXHRcdFx0XHRjb25zdCBjdXJyZW50TW9udGggPSB0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZXNbMF0uZ2V0TW9udGgoKTtcblxuXHRcdFx0XHR0aGlzLmZsYXRwaWNrckluc3RhbmNlLmN1cnJlbnRZZWFyID0gdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVzWzBdLmdldEZ1bGxZZWFyKCk7XG5cdFx0XHRcdHRoaXMuZmxhdHBpY2tySW5zdGFuY2UuY2hhbmdlTW9udGgoY3VycmVudE1vbnRoLCBmYWxzZSk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIFNpbmdsZS1tb2RlIGZsYXRwaWNrciBoYW5kbGVzIG1vdXNlZG93biBidXQgbm90IGNsaWNrLCBzbyBuYXRpdmVFbGVtZW50LmNsaWNrKCkgd29uJ3Rcblx0XHRcdC8vIHdvcmsgd2hlbiB0aGUgY2FsZW5kYXIgaWNvbiBpcyBjbGlja2VkLiBJbiB0aGlzIGNhc2Ugd2Ugc2ltcGx5IHVzZSBmbGF0cGlja3Iub3BlbigpLlxuXHRcdFx0dGhpcy5mbGF0cGlja3JJbnN0YW5jZS5vcGVuKCk7XG5cdFx0fVxuXHR9XG5cblx0cHJvdGVjdGVkIHVwZGF0ZUNhbGVuZGFyTGlzdGVuZXJzKCkge1xuXHRcdGNvbnN0IGNhbGVuZGFyQ29udGFpbmVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5mbGF0cGlja3ItY2FsZW5kYXJcIik7XG5cdFx0QXJyYXkuZnJvbShjYWxlbmRhckNvbnRhaW5lcikuZm9yRWFjaChjYWxlbmRhciA9PiB7XG5cdFx0XHRjYWxlbmRhci5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdGhpcy5wcmV2ZW50Q2FsZW5kYXJDbG9zZSk7XG5cdFx0XHRjYWxlbmRhci5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdGhpcy5wcmV2ZW50Q2FsZW5kYXJDbG9zZSk7XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogSGFuZGxlcyB0aGUgaW5pdGlhbGl6YXRpb24gb2YgZXZlbnQgbGlzdGVuZXJzIGZvciB0aGUgZGF0ZXBpY2tlciBpbnB1dCBhbmQgcmFuZ2UgaW5wdXQgZmllbGRzLlxuXHQgKi9cblx0cHJvdGVjdGVkIGFkZElucHV0TGlzdGVuZXJzKCkge1xuXHRcdGlmICghdGhpcy5pc0ZsYXRwaWNrckxvYWRlZCgpKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Ly8gQWxsb3dzIGZvY3VzIHRyYW5zaXRpb24gZnJvbSB0aGUgZGF0ZXBpY2tlciBpbnB1dCBvciByYW5nZSBpbnB1dCBmaWVsZCB0b1xuXHRcdC8vIGZsYXRwaWNrciBjYWxlbmRhciB1c2luZyBhIGtleWJvYXJkLlxuXHRcdGNvbnN0IGFkZEZvY3VzQ2FsZW5kYXJMaXN0ZW5lciA9IChlbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50KSA9PiB7XG5cdFx0XHRlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuXHRcdFx0XHQvLyBMaXN0ZW5lcnMgYXJlIGFkZGVkIGp1c3Qgb25jZSwgc28gYSBjaGVjayBpcyBuZWVkZWQgaGVyZS5cblx0XHRcdFx0aWYgKHRoaXMucmVhZG9ubHkpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKGV2ZW50LmtleSA9PT0gXCJFc2NhcGVcIikge1xuXHRcdFx0XHRcdHRoaXMuZmxhdHBpY2tySW5zdGFuY2UuY2xvc2UoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoZXZlbnQua2V5ID09PSBcIkFycm93RG93blwiKSB7XG5cdFx0XHRcdFx0aWYgKCF0aGlzLmZsYXRwaWNrckluc3RhbmNlLmlzT3Blbikge1xuXHRcdFx0XHRcdFx0dGhpcy5mbGF0cGlja3JJbnN0YW5jZS5vcGVuKCk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Y29uc3QgY2FsZW5kYXJDb250YWluZXIgPSB0aGlzLmZsYXRwaWNrckluc3RhbmNlLmNhbGVuZGFyQ29udGFpbmVyO1xuXHRcdFx0XHRcdGNvbnN0IGRheUVsZW1lbnQgPSBjYWxlbmRhckNvbnRhaW5lciAmJiBjYWxlbmRhckNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKFwiLmZsYXRwaWNrci1kYXlbdGFiaW5kZXhdXCIpO1xuXG5cdFx0XHRcdFx0aWYgKGRheUVsZW1lbnQpIHtcblx0XHRcdFx0XHRcdGRheUVsZW1lbnQuZm9jdXMoKTtcblxuXHRcdFx0XHRcdFx0Ly8gSWYgdGhlIHVzZXIgbWFudWFsbHkgaW5wdXRzIGEgdmFsdWUgaW50byB0aGUgZGF0ZSBmaWVsZCBhbmQgcHJlc3NlcyBhcnJvdyBkb3duLFxuXHRcdFx0XHRcdFx0Ly8gZGF0ZXBpY2tlciBpbnB1dCBvbmNoYW5nZSB3aWxsIGJlIHRyaWdnZXJlZCB3aGVuIGZvY3VzIGlzIHJlbW92ZWQgZnJvbSBpdCBhbmRcblx0XHRcdFx0XHRcdC8vIGBmbGF0cGlja3JJbnN0YW5jZS5zZXREYXRlYCBhbmQgYGZsYXRwaWNrckluc3RhbmNlLmNoYW5nZU1vbnRoYCB3aWxsIGJlIGludm9rZWRcblx0XHRcdFx0XHRcdC8vIHdoaWNoIHdpbGwgYXV0b21hdGljYWxseSBjaGFuZ2UgZm9jdXMgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgZG9jdW1lbnQuXG5cdFx0XHRcdFx0XHRpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAhPT0gZGF5RWxlbWVudCAmJiB0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZUVsZW0pIHtcblx0XHRcdFx0XHRcdFx0dGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVFbGVtLmZvY3VzKCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9O1xuXG5cdFx0aWYgKHRoaXMuaW5wdXQgJiYgdGhpcy5pbnB1dC5pbnB1dCkge1xuXHRcdFx0YWRkRm9jdXNDYWxlbmRhckxpc3RlbmVyKHRoaXMuaW5wdXQuaW5wdXQubmF0aXZlRWxlbWVudCk7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMucmFuZ2VJbnB1dCAmJiB0aGlzLnJhbmdlSW5wdXQuaW5wdXQpIHtcblx0XHRcdGFkZEZvY3VzQ2FsZW5kYXJMaXN0ZW5lcih0aGlzLnJhbmdlSW5wdXQuaW5wdXQubmF0aXZlRWxlbWVudCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFJlc2V0cyB0aGUgZmxhdHBpY2tyIGluc3RhbmNlIHdoaWxlIGtlZXBpbmcgdGhlIGRhdGUgdmFsdWVzIChvciB1cGRhdGluZyB0aGVtIGlmIG5ld0RhdGVzIGlzIHByb3ZpZGVkKVxuXHQgKlxuXHQgKiBVc2VkIHRvIHBpY2sgdXAgaW5wdXQgY2hhbmdlcyBvciBsb2NhbGUgY2hhbmdlcy5cblx0ICpcblx0ICogQHBhcmFtIG5ld0RhdGVzIEFuIG9wdGlvbmFsIFNpbXBsZUNoYW5nZSBvZiBkYXRlIHZhbHVlc1xuXHQgKi9cblx0cHJvdGVjdGVkIHJlc2V0RmxhdHBpY2tySW5zdGFuY2UobmV3RGF0ZXM/OiBTaW1wbGVDaGFuZ2UpIHtcblx0XHRpZiAodGhpcy5pc0ZsYXRwaWNrckxvYWRlZCgpKSB7XG5cdFx0XHRsZXQgZGF0ZXMgPSB0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZXM7XG5cdFx0XHRpZiAobmV3RGF0ZXMgJiYgdGhpcy5kaWREYXRlVmFsdWVDaGFuZ2UobmV3RGF0ZXMuY3VycmVudFZhbHVlLCBuZXdEYXRlcy5wcmV2aW91c1ZhbHVlKSkge1xuXHRcdFx0XHRkYXRlcyA9IG5ld0RhdGVzLmN1cnJlbnRWYWx1ZTtcblx0XHRcdH1cblx0XHRcdC8vIG9ubHkgcmVzZXQgdGhlIGZsYXRwaWNrciBpbnN0YW5jZSBvbiBJbnB1dCBjaGFuZ2VzXG5cdFx0XHQvLyBAdHMtaWdub3JlIHRzIGlzIHVuaGFwcHkgd2l0aCB0aGUgYmVsb3cgY2FsbCB0byBgZmxhdHBpY2tyYFxuXHRcdFx0dGhpcy5mbGF0cGlja3JJbnN0YW5jZSA9IGZsYXRwaWNrcihgIyR7dGhpcy5pZH0taW5wdXRgLCB0aGlzLmZsYXRwaWNrck9wdGlvbnMpO1xuXHRcdFx0dGhpcy5zZXREYXRlVmFsdWVzKGRhdGVzKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogQ2FyYm9uIHVzZXMgYSBudW1iZXIgb2Ygc3BlY2lmaWMgY2xhc3NuYW1lcyBmb3IgcGFydHMgb2YgdGhlIGZsYXRwaWNrciAtIHRoaXMgaWRlbXBvdGVudCBtZXRob2QgYXBwbGllcyB0aGVtIGlmIG5lZWRlZC5cblx0ICovXG5cdHByb3RlY3RlZCB1cGRhdGVDbGFzc05hbWVzKCkge1xuXHRcdGlmICghdGhpcy5lbGVtZW50UmVmKSB7IHJldHVybjsgfVxuXHRcdC8vIGdldCBhbGwgdGhlIHBvc3NpYmxlIGZsYXRwaWNrcnMgaW4gdGhlIGRvY3VtZW50IC0gd2UgbmVlZCB0byBhZGQgY2xhc3NlcyB0byAocG90ZW50aWFsbHkpIGFsbCBvZiB0aGVtXG5cdFx0Y29uc3QgY2FsZW5kYXJDb250YWluZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLmZsYXRwaWNrci1jYWxlbmRhclwiKTtcblx0XHRjb25zdCBtb250aENvbnRhaW5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuZmxhdHBpY2tyLW1vbnRoXCIpO1xuXHRcdGNvbnN0IHdlZWtkYXlzQ29udGFpbmVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5mbGF0cGlja3Itd2Vla2RheXNcIik7XG5cdFx0Y29uc3Qgd2Vla2RheUNvbnRhaW5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuZmxhdHBpY2tyLXdlZWtkYXlcIik7XG5cdFx0Y29uc3QgZGF5c0NvbnRhaW5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuZmxhdHBpY2tyLWRheXNcIik7XG5cdFx0Y29uc3QgZGF5Q29udGFpbmVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5mbGF0cGlja3ItZGF5XCIpO1xuXG5cdFx0Ly8gYWRkIGNsYXNzZXMgdG8gbGlzdHMgb2YgZWxlbWVudHNcblx0XHRjb25zdCBhZGRDbGFzc0lmTm90RXhpc3RzID0gKGNsYXNzbmFtZTogc3RyaW5nLCBlbGVtZW50TGlzdDogTm9kZUxpc3RPZjxFbGVtZW50PikgPT4ge1xuXHRcdFx0QXJyYXkuZnJvbShlbGVtZW50TGlzdCkuZm9yRWFjaChlbGVtZW50ID0+IHtcblx0XHRcdFx0aWYgKCFlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhjbGFzc25hbWUpKSB7XG5cdFx0XHRcdFx0ZWxlbWVudC5jbGFzc0xpc3QuYWRkKGNsYXNzbmFtZSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH07XG5cblx0XHQvLyBhZGQgY2xhc3NlcyAoYnV0IG9ubHkgaWYgdGhleSBkb24ndCBleGlzdCwgc21hbGwgcGVyZiB3aW4pXG5cdFx0YWRkQ2xhc3NJZk5vdEV4aXN0cyhcImNkcy0tZGF0ZS1waWNrZXJfX2NhbGVuZGFyXCIsIGNhbGVuZGFyQ29udGFpbmVyKTtcblx0XHRhZGRDbGFzc0lmTm90RXhpc3RzKFwiY2RzLS1kYXRlLXBpY2tlcl9fbW9udGhcIiwgbW9udGhDb250YWluZXIpO1xuXHRcdGFkZENsYXNzSWZOb3RFeGlzdHMoXCJjZHMtLWRhdGUtcGlja2VyX193ZWVrZGF5c1wiLCB3ZWVrZGF5c0NvbnRhaW5lcik7XG5cdFx0YWRkQ2xhc3NJZk5vdEV4aXN0cyhcImNkcy0tZGF0ZS1waWNrZXJfX2RheXNcIiwgZGF5c0NvbnRhaW5lcik7XG5cblx0XHQvLyBhZGQgd2Vla2RheSBjbGFzc2VzIGFuZCBmb3JtYXQgdGhlIHRleHRcblx0XHRBcnJheS5mcm9tKHdlZWtkYXlDb250YWluZXIpLmZvckVhY2goZWxlbWVudCA9PiB7XG5cdFx0XHRlbGVtZW50LmlubmVySFRNTCA9IGVsZW1lbnQuaW5uZXJIVE1MLnJlcGxhY2UoL1xccysvZywgXCJcIik7XG5cdFx0XHRlbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJjZHMtLWRhdGUtcGlja2VyX193ZWVrZGF5XCIpO1xuXHRcdH0pO1xuXG5cdFx0Ly8gYWRkIGRheSBjbGFzc2VzIGFuZCBzcGVjaWFsIGNhc2UgdGhlIFwidG9kYXlcIiBlbGVtZW50IGJhc2VkIG9uIGB0aGlzLnZhbHVlYFxuXHRcdEFycmF5LmZyb20oZGF5Q29udGFpbmVyKS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuXHRcdFx0ZWxlbWVudC5jbGFzc0xpc3QuYWRkKFwiY2RzLS1kYXRlLXBpY2tlcl9fZGF5XCIpO1xuXHRcdFx0aWYgKCF0aGlzLnZhbHVlKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGlmIChlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhcInRvZGF5XCIpICYmIHRoaXMudmFsdWUubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRlbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJuby1ib3JkZXJcIik7XG5cdFx0XHR9IGVsc2UgaWYgKGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKFwidG9kYXlcIikgJiYgdGhpcy52YWx1ZS5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0ZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwibm8tYm9yZGVyXCIpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0cHJvdGVjdGVkIHVwZGF0ZUF0dHJpYnV0ZXMoKSB7XG5cdFx0Y29uc3QgY2FsZW5kYXJDb250YWluZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLmZsYXRwaWNrci1jYWxlbmRhclwiKTtcblx0XHRBcnJheS5mcm9tKGNhbGVuZGFyQ29udGFpbmVyKS5mb3JFYWNoKGNhbGVuZGFyID0+IHtcblx0XHRcdGNhbGVuZGFyLnNldEF0dHJpYnV0ZShcInJvbGVcIiwgXCJyZWdpb25cIik7XG5cdFx0XHRjYWxlbmRhci5zZXRBdHRyaWJ1dGUoXCJhcmlhLWxhYmVsXCIsIHRoaXMuYXJpYUxhYmVsKTtcblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBBcHBsaWVzIHRoZSBnaXZlbiBkYXRlIHZhbHVlIGFycmF5IHRvIGJvdGggdGhlIGZsYXRwaWNrciBpbnN0YW5jZSBhbmQgdGhlIGBpbnB1dGAocylcblx0ICogQHBhcmFtIGRhdGVzIHRoZSBkYXRlIHZhbHVlcyB0byBhcHBseVxuXHQgKi9cblx0cHJvdGVjdGVkIHNldERhdGVWYWx1ZXMoZGF0ZXM6IChEYXRlIHwgc3RyaW5nKVtdKSB7XG5cdFx0aWYgKHRoaXMuaXNGbGF0cGlja3JMb2FkZWQoKSkge1xuXHRcdFx0Y29uc3Qgc2luZ2xlSW5wdXQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKGAjJHt0aGlzLmlkfS1pbnB1dGApO1xuXHRcdFx0Y29uc3QgcmFuZ2VJbnB1dCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYCMke3RoaXMuaWR9LXJhbmdlSW5wdXRgKTtcblxuXHRcdFx0Ly8gYGZsYXRwaWNrckluc3RhbmNlLnNldERhdGVgIHJlbW92ZXMgdGhlIGZvY3VzIG9uIHRoZSBzZWxlY3RlZCBkYXRlIGVsZW1lbnQgYW5kIHdpbGxcblx0XHRcdC8vIGF1dG9tYXRpY2FsbHkgY2hhbmdlIGZvY3VzIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGRvY3VtZW50LiBJZiBhIHNlbGVjdGVkIGRhdGUgaXNcblx0XHRcdC8vIGZvY3VzZWQgYmVmb3JlIGBmbGF0cGlja3JJbnN0YW5jZS5zZXREYXRlYCBpcyBpbnZva2VkIHRoZW4gaXQgc2hvdWxkIHJlbWFpbiBmb2N1c2VkLlxuXHRcdFx0bGV0IHNob3VsZFJlZm9jdXNEYXRlRWxlbWVudCA9IHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlRWxlbSA9PT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcblxuXHRcdFx0Ly8gc2V0IHRoZSBkYXRlIG9uIHRoZSBpbnN0YW5jZVxuXHRcdFx0dGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZXREYXRlKGRhdGVzKTtcblxuXHRcdFx0aWYgKHNob3VsZFJlZm9jdXNEYXRlRWxlbWVudCkge1xuXHRcdFx0XHR0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZUVsZW0uZm9jdXMoKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gd2UgY2FuIGVpdGhlciBzZXQgYSBkYXRlIHZhbHVlIG9yIGFuIGVtcHR5IHN0cmluZywgc28gd2Ugc3RhcnQgd2l0aCBhbiBlbXB0eSBzdHJpbmdcblx0XHRcdGxldCBzaW5nbGVEYXRlID0gXCJcIjtcblx0XHRcdC8vIGlmIGRhdGUgaXMgYSBzdHJpbmcsIHBhcnNlIGFuZCBmb3JtYXRcblx0XHRcdGlmICh0eXBlb2YgdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVzWzBdID09PSBcInN0cmluZ1wiKSB7XG5cdFx0XHRcdHNpbmdsZURhdGUgPSB0aGlzLmZsYXRwaWNrckluc3RhbmNlLnBhcnNlRGF0ZSh0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZXNbMF0sIHRoaXMuZGF0ZUZvcm1hdCk7XG5cdFx0XHRcdHNpbmdsZURhdGUgPSB0aGlzLmZsYXRwaWNrckluc3RhbmNlLmZvcm1hdERhdGUoc2luZ2xlRGF0ZSwgdGhpcy5kYXRlRm9ybWF0KTtcblx0XHRcdC8vIGlmIGRhdGUgaXMgbm90IGEgc3RyaW5nIHdlIGNhbiBhc3N1bWUgaXQncyBhIERhdGUgYW5kIHdlIHNob3VsZCBmb3JtYXRcblx0XHRcdH0gZWxzZSBpZiAoISF0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZXNbMF0pIHtcblx0XHRcdFx0c2luZ2xlRGF0ZSA9IHRoaXMuZmxhdHBpY2tySW5zdGFuY2UuZm9ybWF0RGF0ZSh0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZXNbMF0sIHRoaXMuZGF0ZUZvcm1hdCk7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChyYW5nZUlucHV0KSB7XG5cdFx0XHRcdC8vIHdlIGNhbiBlaXRoZXIgc2V0IGEgZGF0ZSB2YWx1ZSBvciBhbiBlbXB0eSBzdHJpbmcsIHNvIHdlIHN0YXJ0IHdpdGggYW4gZW1wdHkgc3RyaW5nXG5cdFx0XHRcdGxldCByYW5nZURhdGUgPSBcIlwiO1xuXHRcdFx0XHQvLyBpZiBkYXRlIGlzIGEgc3RyaW5nLCBwYXJzZSBhbmQgZm9ybWF0XG5cdFx0XHRcdGlmICh0eXBlb2YgdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVzWzFdID09PSBcInN0cmluZ1wiKSB7XG5cdFx0XHRcdFx0cmFuZ2VEYXRlID0gdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5wYXJzZURhdGUodGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVzWzFdLnRvU3RyaW5nKCksIHRoaXMuZGF0ZUZvcm1hdCk7XG5cdFx0XHRcdFx0cmFuZ2VEYXRlID0gdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5mb3JtYXREYXRlKHJhbmdlRGF0ZSwgdGhpcy5kYXRlRm9ybWF0KTtcblx0XHRcdFx0Ly8gaWYgZGF0ZSBpcyBub3QgYSBzdHJpbmcgd2UgY2FuIGFzc3VtZSBpdCdzIGEgRGF0ZSBhbmQgd2Ugc2hvdWxkIGZvcm1hdFxuXHRcdFx0XHR9IGVsc2UgaWYgKCEhdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVzWzFdKSB7XG5cdFx0XHRcdFx0cmFuZ2VEYXRlID0gdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5mb3JtYXREYXRlKHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlc1sxXSwgdGhpcy5kYXRlRm9ybWF0KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHQvLyBhcHBseSB0aGUgdmFsdWVzXG5cdFx0XHRcdFx0cmFuZ2VJbnB1dC52YWx1ZSA9IHJhbmdlRGF0ZTtcblx0XHRcdFx0XHRzaW5nbGVJbnB1dC52YWx1ZSA9IHNpbmdsZURhdGU7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHByb3RlY3RlZCBwcmV2ZW50Q2FsZW5kYXJDbG9zZSA9IGV2ZW50ID0+IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG5cdHByb3RlY3RlZCBkb1NlbGVjdChzZWxlY3RlZFZhbHVlOiAoRGF0ZSB8IHN0cmluZylbXSkge1xuXHRcdC8vIEluIHJhbmdlIG1vZGUsIGlmIGEgZGF0ZSBpcyBzZWxlY3RlZCBmcm9tIHRoZSBmaXJzdCBjYWxlbmRhciB0aGF0IGlzIGZyb20gdGhlIHByZXZpb3VzIG1vbnRoLFxuXHRcdC8vIHRoZSBtb250aCB3aWxsIG5vdCBiZSB1cGRhdGVkIG9uIHRoZSBjYWxlbmRhciB1bnRpbCB0aGUgY2FsZW5kYXIgaXMgcmUtb3BlbmVkLlxuXHRcdC8vIFRoaXMgd2lsbCBtYWtlIHN1cmUgdGhlIGNhbGVuZGFyIGlzIHVwZGF0ZWQgd2l0aCB0aGUgY29ycmVjdCBtb250aC5cblx0XHRpZiAodGhpcy5yYW5nZSAmJiB0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZXNbMF0pIHtcblx0XHRcdGNvbnN0IGN1cnJlbnRNb250aCA9IHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlc1swXS5nZXRNb250aCgpO1xuXG5cdFx0XHQvLyBgZmxhdHBpY2tySW5zdGFuY2UuY2hhbmdlTW9udGhgIHJlbW92ZXMgdGhlIGZvY3VzIG9uIHRoZSBzZWxlY3RlZCBkYXRlIGVsZW1lbnQgYW5kIHdpbGxcblx0XHRcdC8vIGF1dG9tYXRpY2FsbHkgY2hhbmdlIGZvY3VzIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGRvY3VtZW50LiBJZiBhIHNlbGVjdGVkIGRhdGUgaXNcblx0XHRcdC8vIGZvY3VzZWQgYmVmb3JlIGBmbGF0cGlja3JJbnN0YW5jZS5jaGFuZ2VNb250aGAgaXMgaW52b2tlZCB0aGVuIGl0IHNob3VsZCByZW1haW4gZm9jdXNlZC5cblx0XHRcdGxldCBzaG91bGRSZWZvY3VzRGF0ZUVsZW1lbnQgPSB0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZUVsZW0gPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG5cblx0XHRcdHRoaXMuZmxhdHBpY2tySW5zdGFuY2UuY2hhbmdlTW9udGgoY3VycmVudE1vbnRoLCBmYWxzZSk7XG5cblx0XHRcdGlmIChzaG91bGRSZWZvY3VzRGF0ZUVsZW1lbnQpIHtcblx0XHRcdFx0dGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVFbGVtLmZvY3VzKCk7XG5cdFx0XHR9XG5cblx0XHR9XG5cdFx0dGhpcy52YWx1ZUNoYW5nZS5lbWl0KHNlbGVjdGVkVmFsdWUpO1xuXHRcdHRoaXMucHJvcGFnYXRlQ2hhbmdlKHNlbGVjdGVkVmFsdWUpO1xuXHR9XG5cblx0cHJvdGVjdGVkIGRpZERhdGVWYWx1ZUNoYW5nZShjdXJyZW50VmFsdWUsIHByZXZpb3VzVmFsdWUpIHtcblx0XHRyZXR1cm4gY3VycmVudFZhbHVlWzBdICE9PSBwcmV2aW91c1ZhbHVlWzBdIHx8IGN1cnJlbnRWYWx1ZVsxXSAhPT0gcHJldmlvdXNWYWx1ZVsxXTtcblx0fVxuXG5cdC8qKlxuXHQgKiBNb3JlIGFkdmFuY2VkIGNoZWNraW5nIG9mIHRoZSBsb2FkZWQgc3RhdGUgb2YgZmxhdHBpY2tyXG5cdCAqL1xuXHRwcm90ZWN0ZWQgaXNGbGF0cGlja3JMb2FkZWQoKSB7XG5cdFx0Ly8gY2FzdCB0aGUgaW5zdGFuY2UgdG8gYSBib29sZWFuLCBhbmQgc29tZSBtZXRob2QgdGhhdCBoYXMgdG8gZXhpc3QgZm9yIHRoZSBsaWJyYXJ5IHRvIGJlIGxvYWRlZCBpbiB0aGlzIGNhc2UgYHNldERhdGVgXG5cdFx0cmV0dXJuICEhdGhpcy5mbGF0cGlja3JJbnN0YW5jZSAmJiAhIXRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2V0RGF0ZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSaWdodCBhcnJvdyBIVE1MIHBhc3NlZCB0byBmbGF0cGlja3Jcblx0ICovXG5cdHByb3RlY3RlZCByaWdodEFycm93SFRNTCgpIHtcblx0XHRyZXR1cm4gYFxuXHRcdFx0PHN2ZyB3aWR0aD1cIjE2cHhcIiBoZWlnaHQ9XCIxNnB4XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiPlxuXHRcdFx0XHQ8cG9seWdvbiBwb2ludHM9XCIxMSw4IDYsMTMgNS4zLDEyLjMgOS42LDggNS4zLDMuNyA2LDMgXCIvPlxuXHRcdFx0XHQ8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBzdHlsZT1cImZpbGw6bm9uZVwiIC8+XG5cdFx0XHQ8L3N2Zz5gO1xuXHR9XG5cblx0LyoqXG5cdCAqIExlZnQgYXJyb3cgSFRNTCBwYXNzZWQgdG8gZmxhdHBpY2tyXG5cdCAqL1xuXHRwcm90ZWN0ZWQgbGVmdEFycm93SFRNTCgpIHtcblx0XHRyZXR1cm4gYFxuXHRcdFx0PHN2ZyB3aWR0aD1cIjE2cHhcIiBoZWlnaHQ9XCIxNnB4XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiPlxuXHRcdFx0XHQ8cG9seWdvbiBwb2ludHM9XCI1LDggMTAsMyAxMC43LDMuNyA2LjQsOCAxMC43LDEyLjMgMTAsMTMgXCIvPlxuXHRcdFx0XHQ8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBzdHlsZT1cImZpbGw6bm9uZVwiIC8+XG5cdFx0XHQ8L3N2Zz5gO1xuXHR9XG59XG4iXX0=
|
|
755
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGF0ZXBpY2tlci9kYXRlcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLGlCQUFpQixFQUdqQixZQUFZLEVBTVosU0FBUyxFQUdULHVCQUF1QixFQUN2QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLFdBQVcsTUFBTSxvQ0FBb0MsQ0FBQztBQUM3RCxPQUFPLFNBQVMsTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkYsT0FBTyxLQUFLLFNBQVMsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7QUFLdkQ7Ozs7Ozs7R0FPRztBQUNILElBQUksU0FBUyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUM7SUFDL0MsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQXNCLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDOUgsSUFBSSxHQUFHLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDeEIsT0FBTyxJQUFJLENBQUM7UUFDYixDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RCLENBQUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBeUVILE1BQU0sT0FBTyxVQUFVO2FBTVAsb0JBQWUs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QVE7c0JBQWhCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFJRyxPQUFPO3NCQUFmLEtBQUs7Z0JBSUcsV0FBVztzQkFBbkIsS0FBSztnQkFJRyxJQUFJO3NCQUFaLEtBQUs7Z0JBSUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBSUcsWUFBWTtzQkFBcEIsS0FBSztnQkFJRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBSUcsU0FBUztzQkFBakIsS0FBSztnQkFJRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUdGLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFxQmdDLEtBQUs7c0JBQTFDLFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDWCxVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBRWIsV0FBVztzQkFBcEIsTUFBTTtnQkFNRyxPQUFPO3NCQUFoQixNQUFNO2dCQXdHUCxPQUFPO3NCQUROLFlBQVk7dUJBQUMsU0FBUztnQkFnQnZCLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q29tcG9uZW50LFxuXHRJbnB1dCxcblx0T3V0cHV0LFxuXHRFdmVudEVtaXR0ZXIsXG5cdFZpZXdFbmNhcHN1bGF0aW9uLFxuXHRFbGVtZW50UmVmLFxuXHRPbkRlc3Ryb3ksXG5cdEhvc3RMaXN0ZW5lcixcblx0VGVtcGxhdGVSZWYsXG5cdE9uQ2hhbmdlcyxcblx0U2ltcGxlQ2hhbmdlcyxcblx0QWZ0ZXJWaWV3Q2hlY2tlZCxcblx0QWZ0ZXJWaWV3SW5pdCxcblx0Vmlld0NoaWxkLFxuXHRPbkluaXQsXG5cdFNpbXBsZUNoYW5nZSxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3lcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCByYW5nZVBsdWdpbiBmcm9tIFwiZmxhdHBpY2tyL2Rpc3QvcGx1Z2lucy9yYW5nZVBsdWdpblwiO1xuaW1wb3J0IGZsYXRwaWNrciBmcm9tIFwiZmxhdHBpY2tyXCI7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgY2FyYm9uRmxhdHBpY2tyTW9udGhTZWxlY3RQbHVnaW4gfSBmcm9tIFwiLi9jYXJib24tZmxhdHBpY2tyLW1vbnRoLXNlbGVjdFwiO1xuaW1wb3J0ICogYXMgbGFuZ3VhZ2VzIGZyb20gXCJmbGF0cGlja3IvZGlzdC9sMTBuL2luZGV4XCI7XG5pbXBvcnQgeyBPcHRpb25zIH0gZnJvbSBcImZsYXRwaWNrci9kaXN0L3R5cGVzL29wdGlvbnNcIjtcbmltcG9ydCB7IERhdGVQaWNrZXJJbnB1dCB9IGZyb20gXCJjYXJib24tY29tcG9uZW50cy1hbmd1bGFyL2RhdGVwaWNrZXItaW5wdXRcIjtcbmltcG9ydCB7IEkxOG4gfSBmcm9tIFwiY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhci9pMThuXCI7XG5cbi8qKlxuICogRHVlIHRvIHR5cGUgZXJyb3IsIHdlIGhhdmUgdG8gdXNlIHNxdWFyZSBicmFja2V0cyBwcm9wZXJ0eSBhY2Nlc3NvclxuICogVGhlcmUgaXMgYSB3ZWJwYWNrIGlzc3VlIHdoZW4gYXR0ZW1wdGluZyB0byBhY2Nlc3MgZXhwb3J0ZWQgbGFuZ3VhZ2VzIGZyb20gZmxhdHBpY2tyIGwxMG4gQW5ndWxhciAxNCsgYXBwc1xuICogbGFuZ3VhZ2VzLmRlZmF1bHRbbG9jYWxlXSBmYWlscyBpbiBhcHAgY29uc3VtaW5nIENDQSBsaWJyYXJ5IGJ1dCBwYXNzZXMgaW4gdGVzdFxuICogbGFuZ3VhZ2VzLmRlZmF1bHQuZGVmYXVsdFtsb2NhbGVdIGZhaWxzIGluIHRlc3QgYnV0IHdvcmtzIGluIGFwcCBjb25zdW1pbmcgQ0NBIGxpYnJhcnkuXG4gKlxuICogVG8gcGxlYXNlIGJvdGggc2NlbmFyaW9zLCB3ZSBhcmUgYWRkaW5nIGEgY29uZGl0aW9uIHRvIHByZXZlbnQgdGVzdHMgZnJvbSBmYWlsaW5nXG4gKi9cbmlmIChsYW5ndWFnZXMuZGVmYXVsdD8uZGVmYXVsdFtcImVuXCJdPy53ZWVrZGF5cykge1xuXHQobGFuZ3VhZ2VzLmRlZmF1bHQuZGVmYXVsdFtcImVuXCJdLndlZWtkYXlzLnNob3J0aGFuZCBhcyBzdHJpbmdbXSkgPSBsYW5ndWFnZXMuZGVmYXVsdC5kZWZhdWx0W1wiZW5cIl0ud2Vla2RheXMubG9uZ2hhbmQubWFwKGRheSA9PiB7XG5cdFx0aWYgKGRheSA9PT0gXCJUaHVyc2RheVwiKSB7XG5cdFx0XHRyZXR1cm4gXCJUaFwiO1xuXHRcdH1cblx0XHRyZXR1cm4gZGF5LmNoYXJBdCgwKTtcblx0fSk7XG59XG5cbi8qKlxuICogR2V0IHN0YXJ0ZWQgd2l0aCBpbXBvcnRpbmcgdGhlIG1vZHVsZTpcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgeyBEYXRlUGlja2VyTW9kdWxlIH0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG4gKiBgYGBcbiAqXG4gKiBbU2VlIGRlbW9dKC4uLy4uLz9wYXRoPS9zdG9yeS9jb21wb25lbnRzLWRhdGUtcGlja2VyLS1zaW5nbGUpXG4gKi9cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogXCJjZHMtZGF0ZS1waWNrZXIsIGlibS1kYXRlLXBpY2tlclwiLFxuXHR0ZW1wbGF0ZTogYFxuXHQ8ZGl2IGNsYXNzPVwiY2RzLS1mb3JtLWl0ZW1cIj5cblx0XHQ8ZGl2XG5cdFx0XHRjbGFzcz1cImNkcy0tZGF0ZS1waWNrZXJcIlxuXHRcdFx0W25nQ2xhc3NdPVwie1xuXHRcdFx0XHQnY2RzLS1kYXRlLXBpY2tlci0tcmFuZ2UnIDogcmFuZ2UsXG5cdFx0XHRcdCdjZHMtLWRhdGUtcGlja2VyLS1zaW5nbGUnIDogIXJhbmdlLFxuXHRcdFx0XHQnY2RzLS1kYXRlLXBpY2tlci0tbGlnaHQnIDogdGhlbWUgPT09ICdsaWdodCcsXG5cdFx0XHRcdCdjZHMtLXNrZWxldG9uJyA6IHNrZWxldG9uXG5cdFx0XHR9XCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY2RzLS1kYXRlLXBpY2tlci1jb250YWluZXJcIj5cblx0XHRcdFx0PGNkcy1kYXRlLXBpY2tlci1pbnB1dFxuXHRcdFx0XHRcdCNpbnB1dFxuXHRcdFx0XHRcdFtsYWJlbF09XCJsYWJlbFwiXG5cdFx0XHRcdFx0W3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcblx0XHRcdFx0XHRbcGF0dGVybl09XCJpbnB1dFBhdHRlcm5cIlxuXHRcdFx0XHRcdFtpZF09XCJpZCArICctaW5wdXQnXCJcblx0XHRcdFx0XHRbc2l6ZV09XCJzaXplXCJcblx0XHRcdFx0XHRbdHlwZV09XCIocmFuZ2UgPyAncmFuZ2UnIDogJ3NpbmdsZScpXCJcblx0XHRcdFx0XHRbaGFzSWNvbl09XCIocmFuZ2UgPyBmYWxzZSA6IHRydWUpXCJcblx0XHRcdFx0XHRbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuXHRcdFx0XHRcdFtyZWFkb25seV09XCJyZWFkb25seVwiXG5cdFx0XHRcdFx0W2ludmFsaWRdPVwiaW52YWxpZFwiXG5cdFx0XHRcdFx0W2ludmFsaWRUZXh0XT1cImludmFsaWRUZXh0XCJcblx0XHRcdFx0XHRbd2Fybl09XCJ3YXJuXCJcblx0XHRcdFx0XHRbd2FyblRleHRdPVwid2FyblRleHRcIlxuXHRcdFx0XHRcdFtza2VsZXRvbl09XCJza2VsZXRvblwiXG5cdFx0XHRcdFx0W2hlbHBlclRleHRdPVwiaGVscGVyVGV4dFwiXG5cdFx0XHRcdFx0KHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG5cdFx0XHRcdFx0KGNsaWNrKT1cIm9wZW5DYWxlbmRhcihpbnB1dClcIj5cblx0XHRcdFx0PC9jZHMtZGF0ZS1waWNrZXItaW5wdXQ+XG5cdFx0XHQ8L2Rpdj5cblxuXHRcdFx0QGlmIChyYW5nZSkge1xuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY2RzLS1kYXRlLXBpY2tlci1jb250YWluZXJcIj5cblx0XHRcdFx0XHQ8Y2RzLWRhdGUtcGlja2VyLWlucHV0XG5cdFx0XHRcdFx0XHQjcmFuZ2VJbnB1dFxuXHRcdFx0XHRcdFx0W2xhYmVsXT1cInJhbmdlTGFiZWxcIlxuXHRcdFx0XHRcdFx0W3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcblx0XHRcdFx0XHRcdFtwYXR0ZXJuXT1cImlucHV0UGF0dGVyblwiXG5cdFx0XHRcdFx0XHRbaWRdPVwiaWQgKyAnLXJhbmdlSW5wdXQnXCJcblx0XHRcdFx0XHRcdFtzaXplXT1cInNpemVcIlxuXHRcdFx0XHRcdFx0W3R5cGVdPVwiKHJhbmdlID8gJ3JhbmdlJyA6ICdzaW5nbGUnKVwiXG5cdFx0XHRcdFx0XHRbaGFzSWNvbl09XCIocmFuZ2UgPyB0cnVlIDogbnVsbClcIlxuXHRcdFx0XHRcdFx0W2Rpc2FibGVkXT1cImRpc2FibGVkXCJcblx0XHRcdFx0XHRcdFtyZWFkb25seV09XCJyZWFkb25seVwiXG5cdFx0XHRcdFx0XHRbaW52YWxpZF09XCJyYW5nZUludmFsaWRcIlxuXHRcdFx0XHRcdFx0W2ludmFsaWRUZXh0XT1cInJhbmdlSW52YWxpZFRleHRcIlxuXHRcdFx0XHRcdFx0W3dhcm5dPVwicmFuZ2VXYXJuXCJcblx0XHRcdFx0XHRcdFt3YXJuVGV4dF09XCJyYW5nZVdhcm5UZXh0XCJcblx0XHRcdFx0XHRcdFtza2VsZXRvbl09XCJza2VsZXRvblwiXG5cdFx0XHRcdFx0XHRbaGVscGVyVGV4dF09XCJyYW5nZUhlbHBlclRleHRcIlxuXHRcdFx0XHRcdFx0KHZhbHVlQ2hhbmdlKT1cIm9uUmFuZ2VWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcblx0XHRcdFx0XHRcdChjbGljayk9XCJvcGVuQ2FsZW5kYXIocmFuZ2VJbnB1dClcIj5cblx0XHRcdFx0XHQ8L2Nkcy1kYXRlLXBpY2tlci1pbnB1dD5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHR9XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuXHRgLFxuXHRwcm92aWRlcnM6IFtcblx0XHR7XG5cdFx0XHRwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcblx0XHRcdHVzZUV4aXN0aW5nOiBEYXRlUGlja2VyLFxuXHRcdFx0bXVsdGk6IHRydWVcblx0XHR9XG5cdF0sXG5cdGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIERhdGVQaWNrZXIgaW1wbGVtZW50c1xuXHRPbkluaXQsXG5cdE9uRGVzdHJveSxcblx0T25DaGFuZ2VzLFxuXHRBZnRlclZpZXdDaGVja2VkLFxuXHRBZnRlclZpZXdJbml0IHtcblx0cHJpdmF0ZSBzdGF0aWMgZGF0ZVBpY2tlckNvdW50ID0gMDtcblxuXHQvKipcblx0ICogU2VsZWN0IGNhbGVuZGFyIHJhbmdlIG1vZGVcblx0ICovXG5cdEBJbnB1dCgpIHJhbmdlID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqIEZvcm1hdCBvZiBkYXRlXG5cdCAqXG5cdCAqIEZvciByZWZlcmVuY2U6IGh0dHBzOi8vZmxhdHBpY2tyLmpzLm9yZy9mb3JtYXR0aW5nL1xuXHQgKi9cblx0QElucHV0KCkgZGF0ZUZvcm1hdCA9IFwibS9kL1lcIjtcblxuXHQvKipcblx0ICogTGFuZ3VhZ2Ugb2YgdGhlIGZsYXRwaWNrciBjYWxlbmRhci5cblx0ICpcblx0ICogRm9yIHJlZmVyZW5jZSBvZiB0aGUgcG9zc2libGUgbG9jYWxlczpcblx0ICogaHR0cHM6Ly9naXRodWIuY29tL2ZsYXRwaWNrci9mbGF0cGlja3IvYmxvYi9tYXN0ZXIvc3JjL2wxMG4vaW5kZXgudHNcblx0ICovXG5cdEBJbnB1dCgpIGxhbmd1YWdlID0gXCJlblwiO1xuXG5cdEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuXHRASW5wdXQoKSBoZWxwZXJUZXh0OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuXHRASW5wdXQoKSByYW5nZUhlbHBlclRleHQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cdEBJbnB1dCgpIHJhbmdlTGFiZWw6IHN0cmluZztcblxuXHRASW5wdXQoKSBwbGFjZWhvbGRlciA9IFwibW0vZGQveXl5eVwiO1xuXG5cdC8qKlxuXHQgKiBBcmlhIGxhYmVsIGFkZGVkIHRvIGRhdGVwaWNrZXIncyBjYWxlbmRhciBjb250YWluZXIuXG5cdCAqL1xuXHRASW5wdXQoKSBhcmlhTGFiZWwgPSBcImNhbGVuZGFyIGNvbnRhaW5lclwiO1xuXG5cdC8qKlxuXHQgKiBUaGUgcGF0dGVybiBmb3IgdGhlIHVuZGVybHlpbmcgaW5wdXQgZWxlbWVudFxuXHQgKi9cblx0QElucHV0KCkgaW5wdXRQYXR0ZXJuID0gXCJeXFxcXGR7MSwyfS9cXFxcZHsxLDJ9L1xcXFxkezR9JFwiO1xuXG5cdEBJbnB1dCgpIGlkID0gYGRhdGVwaWNrZXItJHtEYXRlUGlja2VyLmRhdGVQaWNrZXJDb3VudCsrfWA7XG5cblx0QElucHV0KCkgc2V0IHZhbHVlKHY6IChEYXRlIHwgc3RyaW5nKVtdKSB7XG5cdFx0aWYgKCF2KSB7XG5cdFx0XHR2ID0gW107XG5cdFx0fVxuXHRcdHRoaXMuX3ZhbHVlID0gdjtcblx0fVxuXG5cdGdldCB2YWx1ZSgpIHtcblx0XHRyZXR1cm4gdGhpcy5fdmFsdWU7XG5cdH1cblxuXHQvKipcblx0ICogQGRlcHJlY2F0ZWQgc2luY2UgdjUgLSBVc2UgYGNkc0xheWVyYCBkaXJlY3RpdmUgaW5zdGVhZFxuXHQgKiBTZXQgdG8gYFwibGlnaHRcImAgdG8gYXBwbHkgdGhlIGxpZ2h0IHN0eWxlXG5cdCAqL1xuXHRASW5wdXQoKSB0aGVtZTogXCJsaWdodFwiIHwgXCJkYXJrXCIgPSBcImRhcmtcIjtcblxuXHRASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuXG5cdEBJbnB1dCgpIHJlYWRvbmx5ID0gZmFsc2U7XG5cdC8qKlxuXHQgKiBTZXQgdG8gYHRydWVgIHRvIGRpc3BsYXkgdGhlIGludmFsaWQgc3RhdGUuXG5cdCAqL1xuXHRASW5wdXQoKSBpbnZhbGlkID0gZmFsc2U7XG5cdC8qKlxuXHQgKiBWYWx1ZSBkaXNwbGF5ZWQgaWYgZGF0ZXBpY2tlciBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLlxuXHQgKi9cblx0QElucHV0KCkgaW52YWxpZFRleHQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cdC8qKlxuXHQgICogU2V0IHRvIGB0cnVlYCB0byBzaG93IGEgd2FybmluZyAoY29udGVudHMgc2V0IGJ5IHdhcm5pbmdUZXh0KVxuXHQgICovXG5cdEBJbnB1dCgpIHdhcm4gPSBmYWxzZTtcblx0LyoqXG5cdCAqIFNldHMgdGhlIHdhcm5pbmcgdGV4dFxuXHQgKi9cblx0QElucHV0KCkgd2FyblRleHQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cblx0QElucHV0KCkgc2l6ZTogXCJzbVwiIHwgXCJtZFwiIHwgXCJsZ1wiID0gXCJtZFwiO1xuXHQvKipcblx0ICogU2V0IHRvIGB0cnVlYCB0byBkaXNwbGF5IHRoZSBpbnZhbGlkIHN0YXRlIGZvciB0aGUgc2Vjb25kIGRhdGVwaWNrZXIgaW5wdXQuXG5cdCAqL1xuXHRASW5wdXQoKSByYW5nZUludmFsaWQgPSBmYWxzZTtcblx0LyoqXG5cdCAqIFZhbHVlIGRpc3BsYXllZCBpZiB0aGUgc2Vjb25kIGRhdGVwaWNrZXIgaW5wdXQgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS5cblx0ICovXG5cdEBJbnB1dCgpIHJhbmdlSW52YWxpZFRleHQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cdC8qKlxuXHQgICogU2V0IHRvIGB0cnVlYCB0byBzaG93IGEgd2FybmluZyBpbiB0aGUgc2Vjb25kIGRhdGVwaWNrZXIgaW5wdXQgKGNvbnRlbnRzIHNldCBieSByYW5nZVdhcm5pbmdUZXh0KVxuXHQgICovXG5cdEBJbnB1dCgpIHJhbmdlV2FybiA9IGZhbHNlO1xuXHQvKipcblx0ICogU2V0cyB0aGUgd2FybmluZyB0ZXh0IGZvciB0aGUgc2Vjb25kIGRhdGVwaWNrZXIgaW5wdXRcblx0ICovXG5cdEBJbnB1dCgpIHJhbmdlV2FyblRleHQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cblx0QElucHV0KCkgc2tlbGV0b24gPSBmYWxzZTtcblxuXHRASW5wdXQoKSBwbHVnaW5zID0gW107XG5cblx0QElucHV0KClcblx0c2V0IGZsYXRwaWNrck9wdGlvbnMob3B0aW9uczogUGFydGlhbDxPcHRpb25zPikge1xuXHRcdHRoaXMuX2ZsYXRwaWNrck9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9mbGF0cGlja3JPcHRpb25zLCBvcHRpb25zKTtcblx0fVxuXHRnZXQgZmxhdHBpY2tyT3B0aW9ucygpOiBQYXJ0aWFsPE9wdGlvbnM+IHtcblx0XHRjb25zdCBwbHVnaW5zID0gWy4uLnRoaXMucGx1Z2lucywgY2FyYm9uRmxhdHBpY2tyTW9udGhTZWxlY3RQbHVnaW5dO1xuXHRcdGlmICh0aGlzLnJhbmdlKSB7XG5cdFx0XHRwbHVnaW5zLnB1c2gocmFuZ2VQbHVnaW4oeyBpbnB1dDogYCMke3RoaXMuaWR9LXJhbmdlSW5wdXRgLCBwb3NpdGlvbjogXCJsZWZ0XCIgfSkpO1xuXHRcdH1cblx0XHRyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5fZmxhdHBpY2tyT3B0aW9ucywgdGhpcy5mbGF0cGlja3JCYXNlT3B0aW9ucywge1xuXHRcdFx0bW9kZTogdGhpcy5yYW5nZSA/IFwicmFuZ2VcIiA6IFwic2luZ2xlXCIsXG5cdFx0XHRwbHVnaW5zLFxuXHRcdFx0ZGF0ZUZvcm1hdDogdGhpcy5kYXRlRm9ybWF0LFxuXHRcdFx0bG9jYWxlOiBsYW5ndWFnZXMuZGVmYXVsdD8uZGVmYXVsdFt0aGlzLmxhbmd1YWdlXSB8fCBsYW5ndWFnZXMuZGVmYXVsdFt0aGlzLmxhbmd1YWdlXSxcblx0XHRcdC8vIExpdHRsZSB0cmljayBmb3JjZSBcInJlYWRvbmx5IG1vZGVcIiBvbiBkYXRlcGlja2VyIGlucHV0LlxuXHRcdFx0Ly8gRG9jczogV2hldGhlciBjbGlja2luZyBvbiB0aGUgaW5wdXQgc2hvdWxkIG9wZW4gdGhlIHBpY2tlci5cblx0XHRcdC8vIFlvdSBjb3VsZCBkaXNhYmxlIHRoaXMgaWYgeW91IHdpc2ggdG8gb3BlbiB0aGUgY2FsZW5kYXIgbWFudWFsbHkgd2l0aC5vcGVuKCkuXG5cdFx0XHRjbGlja09wZW5zOiAhdGhpcy5yZWFkb25seVxuXHRcdH0pO1xuXHR9XG5cblx0QFZpZXdDaGlsZChcImlucHV0XCIsIHsgc3RhdGljOiB0cnVlIH0pIGlucHV0OiBEYXRlUGlja2VySW5wdXQ7XG5cdEBWaWV3Q2hpbGQoXCJyYW5nZUlucHV0XCIpIHJhbmdlSW5wdXQ6IERhdGVQaWNrZXJJbnB1dDtcblxuXHRAT3V0cHV0KCkgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cdC8qKlxuXHQgKiBXZSBhcmUgb3ZlcnJpZGluZyBvbkNsb3NlIGV2ZW50IGV2ZW4gaWYgdXNlcnMgcGFzcyBpdCB2aWEgZmxhdHBpY2tyIG9wdGlvbnNcblx0ICogRW1pdHMgYW4gZXZlbnQgd2hlbiBkYXRlIHBpY2tlciBjbG9zZXNcblx0ICovXG5cdEBPdXRwdXQoKSBvbkNsb3NlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuXHRwcm90ZWN0ZWQgX3ZhbHVlID0gW107XG5cblx0cHJvdGVjdGVkIF9mbGF0cGlja3JPcHRpb25zOiBQYXJ0aWFsPE9wdGlvbnM+ID0ge1xuXHRcdGFsbG93SW5wdXQ6IHRydWVcblx0fTtcblxuXHRwcm90ZWN0ZWQgZmxhdHBpY2tyQmFzZU9wdGlvbnMgPSB7XG5cdFx0bW9kZTogXCJzaW5nbGVcIixcblx0XHRkYXRlRm9ybWF0OiBcIm0vZC9ZXCIsXG5cdFx0cGx1Z2luczogdGhpcy5wbHVnaW5zLFxuXHRcdG9uT3BlbjogKCkgPT4ge1xuXHRcdFx0dGhpcy51cGRhdGVDbGFzc05hbWVzKCk7XG5cdFx0XHR0aGlzLnVwZGF0ZUF0dHJpYnV0ZXMoKTtcblx0XHRcdHRoaXMudXBkYXRlQ2FsZW5kYXJMaXN0ZW5lcnMoKTtcblx0XHR9LFxuXHRcdG9uQ2xvc2U6IChkYXRlKSA9PiB7XG5cdFx0XHQvLyBUaGlzIG1ha2VzIHN1cmUgdGhhdCB0aGUgYGZsYXRwaWNrckluc3RhbmNlIHNlbGVjdGVkRGF0ZXNgIGFyZSBpbiBzeW5jIHdpdGggdGhlIHZhbHVlcyBvZlxuXHRcdFx0Ly8gdGhlIGlucHV0cyB3aGVuIHRoZSBjYWxlbmRhciBjbG9zZXMuXG5cdFx0XHRpZiAodGhpcy5yYW5nZSAmJiB0aGlzLmZsYXRwaWNrckluc3RhbmNlKSB7XG5cdFx0XHRcdGNvbnN0IGlucHV0VmFsdWUgPSB0aGlzLmlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWU7XG5cdFx0XHRcdGNvbnN0IHJhbmdlSW5wdXRWYWx1ZSA9IHRoaXMucmFuZ2VJbnB1dC5pbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuXHRcdFx0XHRpZiAoaW5wdXRWYWx1ZSB8fCByYW5nZUlucHV0VmFsdWUpIHtcblx0XHRcdFx0XHRjb25zdCBwYXJzZURhdGUgPSAoZGF0ZTogc3RyaW5nKSA9PiB0aGlzLmZsYXRwaWNrckluc3RhbmNlLnBhcnNlRGF0ZShkYXRlLCB0aGlzLmRhdGVGb3JtYXQpO1xuXHRcdFx0XHRcdHRoaXMuc2V0RGF0ZVZhbHVlcyhbcGFyc2VEYXRlKGlucHV0VmFsdWUpLCBwYXJzZURhdGUocmFuZ2VJbnB1dFZhbHVlIHx8IGlucHV0VmFsdWUpXSk7XG5cdFx0XHRcdFx0dGhpcy5kb1NlbGVjdCh0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZXMpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHR0aGlzLm9uQ2xvc2UuZW1pdChkYXRlKTtcblx0XHR9LFxuXHRcdG9uRGF5Q3JlYXRlOiAoX2RPYmosIF9kU3RyLCBfZnAsIGRheUVsZW0pID0+IHtcblx0XHRcdGRheUVsZW0uY2xhc3NMaXN0LmFkZChcImNkcy0tZGF0ZS1waWNrZXJfX2RheVwiKTtcblx0XHR9LFxuXHRcdG5leHRBcnJvdzogdGhpcy5yaWdodEFycm93SFRNTCgpLFxuXHRcdHByZXZBcnJvdzogdGhpcy5sZWZ0QXJyb3dIVE1MKCksXG5cdFx0dmFsdWU6IHRoaXMudmFsdWVcblx0fTtcblxuXHRwcm90ZWN0ZWQgZmxhdHBpY2tySW5zdGFuY2UgPSBudWxsO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByb3RlY3RlZCBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuXHRcdHByb3RlY3RlZCBpMThuOiBJMThuXG5cdCkgeyB9XG5cblx0bmdPbkluaXQoKSB7XG5cdFx0Ly8gaWYgaTE4biBpcyBzZXQgdG8gYW55dGhpbmcgb3RoZXIgdGhhbiBlbiB3ZSdsbCB3YW50IHRvIGNoYW5nZSB0aGUgbGFuZ3VhZ2Vcblx0XHQvLyBvdGhlcndpc2Ugd2UnbGwganVzdCB1c2UgdGhlIGxvY2FsIHNldHRpbmdcblx0XHRpZiAodGhpcy5pMThuLmdldExvY2FsZSgpICE9PSBcImVuXCIpIHtcblx0XHRcdHRoaXMuaTE4bi5nZXRMb2NhbGVPYnNlcnZhYmxlKCkuc3Vic2NyaWJlKGxvY2FsZSA9PiB7XG5cdFx0XHRcdHRoaXMubGFuZ3VhZ2UgPSBsb2NhbGU7XG5cdFx0XHRcdHRoaXMucmVzZXRGbGF0cGlja3JJbnN0YW5jZSgpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0bmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuXHRcdC8vIFJlc2V0IHRoZSBmbGF0cGlja3IgaW5zdGFuY2Ugb24gaW5wdXQgY2hhbmdlcyB0aGF0IGFmZmVjdCBmbGF0cGlja3IuXG5cdFx0Y29uc3QgZmxhdHBpY2tyQ2hhbmdlS2V5cyA9IFtcblx0XHRcdFwicmFuZ2VcIixcblx0XHRcdFwiZGF0ZUZvcm1hdFwiLFxuXHRcdFx0XCJsYW5ndWFnZVwiLFxuXHRcdFx0XCJpZFwiLFxuXHRcdFx0XCJ2YWx1ZVwiLFxuXHRcdFx0XCJwbHVnaW5zXCIsXG5cdFx0XHRcImZsYXRwaWNrck9wdGlvbnNcIixcblx0XHRcdFwicmVhZG9ubHlcIlxuXHRcdF07XG5cdFx0Y29uc3QgY2hhbmdlS2V5cyA9IE9iamVjdC5rZXlzKGNoYW5nZXMpO1xuXHRcdGlmIChjaGFuZ2VLZXlzLnNvbWUoa2V5ID0+IGZsYXRwaWNrckNoYW5nZUtleXMuaW5jbHVkZXMoa2V5KSkpIHtcblx0XHRcdHRoaXMucmVzZXRGbGF0cGlja3JJbnN0YW5jZShjaGFuZ2VzLnZhbHVlKTtcblx0XHR9XG5cdH1cblxuXHRuZ0FmdGVyVmlld0luaXQoKSB7XG5cdFx0aWYgKCF0aGlzLnNrZWxldG9uKSB7XG5cdFx0XHR0aGlzLmlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLl92YWx1ZVswXSA/PyBcIlwiO1xuXHRcdFx0aWYgKHRoaXMucmFuZ2UpIHtcblx0XHRcdFx0dGhpcy5yYW5nZUlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLl92YWx1ZVsxXSA/PyBcIlwiO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdHRoaXMuYWRkSW5wdXRMaXN0ZW5lcnMoKTtcblx0XHR9LCAwKTtcblx0fVxuXG5cdC8vIGJlY2F1c2UgdGhlIGFjdHVhbCB2aWV3IG1heSBiZSBkZWxheWVkIGluIGxvYWRpbmcgKHRoaW5rIHByb2plY3Rpb24gaW50byBhIHRhYiBwYW5lKVxuXHQvLyBhbmQgYmVjYXVzZSB3ZSByZWx5IG9uIGEgbGlicmFyeSB0aGF0IG9wZXJhdGVzIG91dHNpZGUgdGhlIEFuZ3VsYXIgdmlldyBvZiB0aGUgd29ybGRcblx0Ly8gd2UgbmVlZCB0byBrZWVwIHRyeWluZyB0byBsb2FkIHRoZSBsaWJyYXJ5LCB1bnRpbCB0aGUgcmVsZXZhbnQgRE9NIGlzIGFjdHVhbGx5IGxpdmVcblx0bmdBZnRlclZpZXdDaGVja2VkKCkge1xuXHRcdGlmICghdGhpcy5pc0ZsYXRwaWNrckxvYWRlZCgpKSB7XG5cdFx0XHQvLyBAdHMtaWdub3JlIHRzIGlzIHVuaGFwcHkgd2l0aCB0aGUgYmVsb3cgY2FsbCB0byBgZmxhdHBpY2tyYFxuXHRcdFx0dGhpcy5mbGF0cGlja3JJbnN0YW5jZSA9IGZsYXRwaWNrcihgIyR7dGhpcy5pZH0taW5wdXRgLCB0aGlzLmZsYXRwaWNrck9wdGlvbnMpO1xuXHRcdFx0Ly8gaWYgKGFuZCBvbmx5IGlmKSB0aGUgaW5pdGlhbGl6YXRpb24gc3VjY2VlZGVkLCB3ZSBjYW4gc2V0IHRoZSBkYXRlIHZhbHVlc1xuXHRcdFx0aWYgKHRoaXMuaXNGbGF0cGlja3JMb2FkZWQoKSkge1xuXHRcdFx0XHRpZiAodGhpcy52YWx1ZS5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdFx0dGhpcy5zZXREYXRlVmFsdWVzKHRoaXMudmFsdWUpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcihcImZvY3VzaW5cIilcblx0b25Gb2N1cygpIHtcblx0XHQvLyBVcGRhdGVzIHRoZSBtb250aCBtYW51YWxseSB3aGVuIGNhbGVuZGFyIG1vZGUgaXMgcmFuZ2UgYmVjYXVzZSBtb250aFxuXHRcdC8vIHdpbGwgbm90IHVwZGF0ZSBwcm9wZXJseSB3aXRob3V0IG1hbnVhbGx5IHVwZGF0aW5nIHRoZW0gb24gZm9jdXMuXG5cdFx0aWYgKHRoaXMucmFuZ2UpIHtcblx0XHRcdGlmICh0aGlzLnJhbmdlSW5wdXQuaW5wdXQubmF0aXZlRWxlbWVudCA9PT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAmJiB0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZXNbMV0pIHtcblx0XHRcdFx0Y29uc3QgY3VycmVudE1vbnRoID0gdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVzWzFdLmdldE1vbnRoKCk7XG5cdFx0XHRcdHRoaXMuZmxhdHBpY2tySW5zdGFuY2UuY2hhbmdlTW9udGgoY3VycmVudE1vbnRoLCBmYWxzZSk7XG5cdFx0XHR9IGVsc2UgaWYgKHRoaXMuaW5wdXQuaW5wdXQubmF0aXZlRWxlbWVudCA9PT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAmJiB0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZXNbMF0pIHtcblx0XHRcdFx0Y29uc3QgY3VycmVudE1vbnRoID0gdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVzWzBdLmdldE1vbnRoKCk7XG5cdFx0XHRcdHRoaXMuZmxhdHBpY2tySW5zdGFuY2UuY2hhbmdlTW9udGgoY3VycmVudE1vbnRoLCBmYWxzZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcihcImZvY3Vzb3V0XCIpXG5cdG9uRm9jdXNPdXQoKSB7XG5cdFx0dGhpcy5vblRvdWNoZWQoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXcml0ZXMgYSB2YWx1ZSBmcm9tIHRoZSBtb2RlbCB0byB0aGUgY29tcG9uZW50LiBFeHBlY3RzIHRoZSB2YWx1ZSB0byBiZSBgbnVsbGAgb3IgYChEYXRlIHwgc3RyaW5nKVtdYFxuXHQgKiBAcGFyYW0gdmFsdWUgdmFsdWUgcmVjZWl2ZWQgZnJvbSB0aGUgbW9kZWxcblx0ICovXG5cdHdyaXRlVmFsdWUodmFsdWU6IChEYXRlIHwgc3RyaW5nKVtdKSB7XG5cdFx0dGhpcy52YWx1ZSA9IHZhbHVlO1xuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0aWYgKHRoaXMuaXNGbGF0cGlja3JMb2FkZWQoKSAmJiB0aGlzLmZsYXRwaWNrckluc3RhbmNlLmNvbmZpZykge1xuXHRcdFx0XHR0aGlzLnNldERhdGVWYWx1ZXModGhpcy52YWx1ZSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogYENvbnRyb2xWYWx1ZUFjY2Vzc29yYCBtZXRob2QgdG8gcHJvZ3JhbW1hdGljYWxseSBkaXNhYmxlIHRoZSBEYXRlUGlja2VyLlxuXHQgKlxuXHQgKiBleDogYHRoaXMuZm9ybUdyb3VwLmdldChcIm15RGF0ZVBpY2tlclwiKS5kaXNhYmxlKCk7YFxuXHQgKlxuXHQgKiBAcGFyYW0gaXNEaXNhYmxlZCBgdHJ1ZWAgdG8gZGlzYWJsZSB0aGUgRGF0ZVBpY2tlclxuXHQgKi9cblx0c2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG5cdFx0dGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG5cdH1cblxuXHRyZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcblx0XHR0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xuXHR9XG5cblx0cmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuXHRcdHRoaXMub25Ub3VjaGVkID0gZm47XG5cdH1cblxuXHRvblRvdWNoZWQ6ICgpID0+IGFueSA9ICgpID0+IHsgfTtcblxuXHRwcm9wYWdhdGVDaGFuZ2UgPSAoXzogYW55KSA9PiB7IH07XG5cblx0LyoqXG5cdCAqIENsZWFucyB1cCBvdXIgZmxhdHBpY2tyIGluc3RhbmNlXG5cdCAqL1xuXHRuZ09uRGVzdHJveSgpIHtcblx0XHRpZiAoIXRoaXMuaXNGbGF0cGlja3JMb2FkZWQoKSkgeyByZXR1cm47IH1cblx0XHR0aGlzLmZsYXRwaWNrckluc3RhbmNlLmRlc3Ryb3koKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBIYW5kbGVzIHRoZSBgdmFsdWVDaGFuZ2VgIGV2ZW50IGZyb20gdGhlIHByaW1hcnkvc2luZ2xlIGlucHV0XG5cdCAqL1xuXHRvblZhbHVlQ2hhbmdlKGV2ZW50OiBzdHJpbmcpIHtcblx0XHRpZiAodGhpcy5pc0ZsYXRwaWNrckxvYWRlZCgpKSB7XG5cdFx0XHRjb25zdCBkYXRlID0gdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5wYXJzZURhdGUoZXZlbnQsIHRoaXMuZGF0ZUZvcm1hdCk7XG5cdFx0XHRpZiAodGhpcy5yYW5nZSkge1xuXHRcdFx0XHR0aGlzLnNldERhdGVWYWx1ZXMoW2RhdGUsIHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlc1sxXV0pO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5zZXREYXRlVmFsdWVzKFtkYXRlXSk7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLmRvU2VsZWN0KHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlcyk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEhhbmRsZXMgdGhlIGB2YWx1ZUNoYW5nZWAgZXZlbnQgZnJvbSB0aGUgcmFuZ2UgaW5wdXRcblx0ICovXG5cdG9uUmFuZ2VWYWx1ZUNoYW5nZShldmVudDogc3RyaW5nKSB7XG5cdFx0aWYgKHRoaXMuaXNGbGF0cGlja3JMb2FkZWQoKSAmJiB0aGlzLmZsYXRwaWNrckluc3RhbmNlLmlzT3Blbikge1xuXHRcdFx0Y29uc3QgZGF0ZSA9IHRoaXMuZmxhdHBpY2tySW5zdGFuY2UucGFyc2VEYXRlKGV2ZW50LCB0aGlzLmRhdGVGb3JtYXQpO1xuXHRcdFx0dGhpcy5zZXREYXRlVmFsdWVzKFt0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZXNbMF0sIGRhdGVdKTtcblx0XHRcdHRoaXMuZG9TZWxlY3QodGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVzKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogSGFuZGxlcyBvcGVuaW5nIHRoZSBjYWxlbmRhciBcInByb3Blcmx5XCIgd2hlbiB0aGUgY2FsZW5kYXIgaWNvbiBpcyBjbGlja2VkLlxuXHQgKi9cblx0b3BlbkNhbGVuZGFyKGRhdGVwaWNrZXJJbnB1dDogRGF0ZVBpY2tlcklucHV0KSB7XG5cdFx0aWYgKHRoaXMucmVhZG9ubHkgfHwgdGhpcy5za2VsZXRvbikge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLnJhbmdlKSB7XG5cdFx0XHRkYXRlcGlja2VySW5wdXQuaW5wdXQubmF0aXZlRWxlbWVudC5jbGljaygpO1xuXG5cdFx0XHQvLyBJZiB0aGUgZmlyc3QgaW5wdXQncyBjYWxlbmRhciBpY29uIGlzIGNsaWNrZWQgd2hlbiBjYWxlbmRhciBpcyBpbiByYW5nZSBtb2RlLCB0aGVuXG5cdFx0XHQvLyB0aGUgbW9udGggYW5kIHllYXIgbmVlZHMgdG8gYmUgbWFudWFsbHkgY2hhbmdlZCB0byB0aGUgY3VycmVudCBzZWxlY3RlZCBtb250aCBhbmRcblx0XHRcdC8vIHllYXIgb3RoZXJ3aXNlIHRoZSBjYWxlbmRhciB2aWV3IHdpbGwgbm90IGJlIHVwZGF0ZWQgdXBvbiBvcGVuaW5nLlxuXHRcdFx0aWYgKGRhdGVwaWNrZXJJbnB1dCA9PT0gdGhpcy5pbnB1dCAmJiB0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZXNbMF0pIHtcblx0XHRcdFx0Y29uc3QgY3VycmVudE1vbnRoID0gdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVzWzBdLmdldE1vbnRoKCk7XG5cblx0XHRcdFx0dGhpcy5mbGF0cGlja3JJbnN0YW5jZS5jdXJyZW50WWVhciA9IHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlc1swXS5nZXRGdWxsWWVhcigpO1xuXHRcdFx0XHR0aGlzLmZsYXRwaWNrckluc3RhbmNlLmNoYW5nZU1vbnRoKGN1cnJlbnRNb250aCwgZmFsc2UpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBTaW5nbGUtbW9kZSBmbGF0cGlja3IgaGFuZGxlcyBtb3VzZWRvd24gYnV0IG5vdCBjbGljaywgc28gbmF0aXZlRWxlbWVudC5jbGljaygpIHdvbid0XG5cdFx0XHQvLyB3b3JrIHdoZW4gdGhlIGNhbGVuZGFyIGljb24gaXMgY2xpY2tlZC4gSW4gdGhpcyBjYXNlIHdlIHNpbXBseSB1c2UgZmxhdHBpY2tyLm9wZW4oKS5cblx0XHRcdHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uub3BlbigpO1xuXHRcdH1cblx0fVxuXG5cdHByb3RlY3RlZCB1cGRhdGVDYWxlbmRhckxpc3RlbmVycygpIHtcblx0XHRjb25zdCBjYWxlbmRhckNvbnRhaW5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuZmxhdHBpY2tyLWNhbGVuZGFyXCIpO1xuXHRcdEFycmF5LmZyb20oY2FsZW5kYXJDb250YWluZXIpLmZvckVhY2goY2FsZW5kYXIgPT4ge1xuXHRcdFx0Y2FsZW5kYXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIHRoaXMucHJldmVudENhbGVuZGFyQ2xvc2UpO1xuXHRcdFx0Y2FsZW5kYXIuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIHRoaXMucHJldmVudENhbGVuZGFyQ2xvc2UpO1xuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIEhhbmRsZXMgdGhlIGluaXRpYWxpemF0aW9uIG9mIGV2ZW50IGxpc3RlbmVycyBmb3IgdGhlIGRhdGVwaWNrZXIgaW5wdXQgYW5kIHJhbmdlIGlucHV0IGZpZWxkcy5cblx0ICovXG5cdHByb3RlY3RlZCBhZGRJbnB1dExpc3RlbmVycygpIHtcblx0XHRpZiAoIXRoaXMuaXNGbGF0cGlja3JMb2FkZWQoKSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIEFsbG93cyBmb2N1cyB0cmFuc2l0aW9uIGZyb20gdGhlIGRhdGVwaWNrZXIgaW5wdXQgb3IgcmFuZ2UgaW5wdXQgZmllbGQgdG9cblx0XHQvLyBmbGF0cGlja3IgY2FsZW5kYXIgdXNpbmcgYSBrZXlib2FyZC5cblx0XHRjb25zdCBhZGRGb2N1c0NhbGVuZGFyTGlzdGVuZXIgPSAoZWxlbWVudDogSFRNTElucHV0RWxlbWVudCkgPT4ge1xuXHRcdFx0ZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcblx0XHRcdFx0Ly8gTGlzdGVuZXJzIGFyZSBhZGRlZCBqdXN0IG9uY2UsIHNvIGEgY2hlY2sgaXMgbmVlZGVkIGhlcmUuXG5cdFx0XHRcdGlmICh0aGlzLnJlYWRvbmx5KSB7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChldmVudC5rZXkgPT09IFwiRXNjYXBlXCIpIHtcblx0XHRcdFx0XHR0aGlzLmZsYXRwaWNrckluc3RhbmNlLmNsb3NlKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKGV2ZW50LmtleSA9PT0gXCJBcnJvd0Rvd25cIikge1xuXHRcdFx0XHRcdGlmICghdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5pc09wZW4pIHtcblx0XHRcdFx0XHRcdHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uub3BlbigpO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGNvbnN0IGNhbGVuZGFyQ29udGFpbmVyID0gdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5jYWxlbmRhckNvbnRhaW5lcjtcblx0XHRcdFx0XHRjb25zdCBkYXlFbGVtZW50ID0gY2FsZW5kYXJDb250YWluZXIgJiYgY2FsZW5kYXJDb250YWluZXIucXVlcnlTZWxlY3RvcihcIi5mbGF0cGlja3ItZGF5W3RhYmluZGV4XVwiKTtcblxuXHRcdFx0XHRcdGlmIChkYXlFbGVtZW50KSB7XG5cdFx0XHRcdFx0XHRkYXlFbGVtZW50LmZvY3VzKCk7XG5cblx0XHRcdFx0XHRcdC8vIElmIHRoZSB1c2VyIG1hbnVhbGx5IGlucHV0cyBhIHZhbHVlIGludG8gdGhlIGRhdGUgZmllbGQgYW5kIHByZXNzZXMgYXJyb3cgZG93bixcblx0XHRcdFx0XHRcdC8vIGRhdGVwaWNrZXIgaW5wdXQgb25jaGFuZ2Ugd2lsbCBiZSB0cmlnZ2VyZWQgd2hlbiBmb2N1cyBpcyByZW1vdmVkIGZyb20gaXQgYW5kXG5cdFx0XHRcdFx0XHQvLyBgZmxhdHBpY2tySW5zdGFuY2Uuc2V0RGF0ZWAgYW5kIGBmbGF0cGlja3JJbnN0YW5jZS5jaGFuZ2VNb250aGAgd2lsbCBiZSBpbnZva2VkXG5cdFx0XHRcdFx0XHQvLyB3aGljaCB3aWxsIGF1dG9tYXRpY2FsbHkgY2hhbmdlIGZvY3VzIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGRvY3VtZW50LlxuXHRcdFx0XHRcdFx0aWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgIT09IGRheUVsZW1lbnQgJiYgdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVFbGVtKSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlRWxlbS5mb2N1cygpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fTtcblxuXHRcdGlmICh0aGlzLmlucHV0ICYmIHRoaXMuaW5wdXQuaW5wdXQpIHtcblx0XHRcdGFkZEZvY3VzQ2FsZW5kYXJMaXN0ZW5lcih0aGlzLmlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQpO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLnJhbmdlSW5wdXQgJiYgdGhpcy5yYW5nZUlucHV0LmlucHV0KSB7XG5cdFx0XHRhZGRGb2N1c0NhbGVuZGFyTGlzdGVuZXIodGhpcy5yYW5nZUlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBSZXNldHMgdGhlIGZsYXRwaWNrciBpbnN0YW5jZSB3aGlsZSBrZWVwaW5nIHRoZSBkYXRlIHZhbHVlcyAob3IgdXBkYXRpbmcgdGhlbSBpZiBuZXdEYXRlcyBpcyBwcm92aWRlZClcblx0ICpcblx0ICogVXNlZCB0byBwaWNrIHVwIGlucHV0IGNoYW5nZXMgb3IgbG9jYWxlIGNoYW5nZXMuXG5cdCAqXG5cdCAqIEBwYXJhbSBuZXdEYXRlcyBBbiBvcHRpb25hbCBTaW1wbGVDaGFuZ2Ugb2YgZGF0ZSB2YWx1ZXNcblx0ICovXG5cdHByb3RlY3RlZCByZXNldEZsYXRwaWNrckluc3RhbmNlKG5ld0RhdGVzPzogU2ltcGxlQ2hhbmdlKSB7XG5cdFx0aWYgKHRoaXMuaXNGbGF0cGlja3JMb2FkZWQoKSkge1xuXHRcdFx0bGV0IGRhdGVzID0gdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVzO1xuXHRcdFx0aWYgKG5ld0RhdGVzICYmIHRoaXMuZGlkRGF0ZVZhbHVlQ2hhbmdlKG5ld0RhdGVzLmN1cnJlbnRWYWx1ZSwgbmV3RGF0ZXMucHJldmlvdXNWYWx1ZSkpIHtcblx0XHRcdFx0ZGF0ZXMgPSBuZXdEYXRlcy5jdXJyZW50VmFsdWU7XG5cdFx0XHR9XG5cdFx0XHQvLyBvbmx5IHJlc2V0IHRoZSBmbGF0cGlja3IgaW5zdGFuY2Ugb24gSW5wdXQgY2hhbmdlc1xuXHRcdFx0Ly8gQHRzLWlnbm9yZSB0cyBpcyB1bmhhcHB5IHdpdGggdGhlIGJlbG93IGNhbGwgdG8gYGZsYXRwaWNrcmBcblx0XHRcdHRoaXMuZmxhdHBpY2tySW5zdGFuY2UgPSBmbGF0cGlja3IoYCMke3RoaXMuaWR9LWlucHV0YCwgdGhpcy5mbGF0cGlja3JPcHRpb25zKTtcblx0XHRcdHRoaXMuc2V0RGF0ZVZhbHVlcyhkYXRlcyk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIENhcmJvbiB1c2VzIGEgbnVtYmVyIG9mIHNwZWNpZmljIGNsYXNzbmFtZXMgZm9yIHBhcnRzIG9mIHRoZSBmbGF0cGlja3IgLSB0aGlzIGlkZW1wb3RlbnQgbWV0aG9kIGFwcGxpZXMgdGhlbSBpZiBuZWVkZWQuXG5cdCAqL1xuXHRwcm90ZWN0ZWQgdXBkYXRlQ2xhc3NOYW1lcygpIHtcblx0XHRpZiAoIXRoaXMuZWxlbWVudFJlZikgeyByZXR1cm47IH1cblx0XHQvLyBnZXQgYWxsIHRoZSBwb3NzaWJsZSBmbGF0cGlja3JzIGluIHRoZSBkb2N1bWVudCAtIHdlIG5lZWQgdG8gYWRkIGNsYXNzZXMgdG8gKHBvdGVudGlhbGx5KSBhbGwgb2YgdGhlbVxuXHRcdGNvbnN0IGNhbGVuZGFyQ29udGFpbmVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5mbGF0cGlja3ItY2FsZW5kYXJcIik7XG5cdFx0Y29uc3QgbW9udGhDb250YWluZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLmZsYXRwaWNrci1tb250aFwiKTtcblx0XHRjb25zdCB3ZWVrZGF5c0NvbnRhaW5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuZmxhdHBpY2tyLXdlZWtkYXlzXCIpO1xuXHRcdGNvbnN0IHdlZWtkYXlDb250YWluZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLmZsYXRwaWNrci13ZWVrZGF5XCIpO1xuXHRcdGNvbnN0IGRheXNDb250YWluZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLmZsYXRwaWNrci1kYXlzXCIpO1xuXHRcdGNvbnN0IGRheUNvbnRhaW5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuZmxhdHBpY2tyLWRheVwiKTtcblxuXHRcdC8vIGFkZCBjbGFzc2VzIHRvIGxpc3RzIG9mIGVsZW1lbnRzXG5cdFx0Y29uc3QgYWRkQ2xhc3NJZk5vdEV4aXN0cyA9IChjbGFzc25hbWU6IHN0cmluZywgZWxlbWVudExpc3Q6IE5vZGVMaXN0T2Y8RWxlbWVudD4pID0+IHtcblx0XHRcdEFycmF5LmZyb20oZWxlbWVudExpc3QpLmZvckVhY2goZWxlbWVudCA9PiB7XG5cdFx0XHRcdGlmICghZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoY2xhc3NuYW1lKSkge1xuXHRcdFx0XHRcdGVsZW1lbnQuY2xhc3NMaXN0LmFkZChjbGFzc25hbWUpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9O1xuXG5cdFx0Ly8gYWRkIGNsYXNzZXMgKGJ1dCBvbmx5IGlmIHRoZXkgZG9uJ3QgZXhpc3QsIHNtYWxsIHBlcmYgd2luKVxuXHRcdGFkZENsYXNzSWZOb3RFeGlzdHMoXCJjZHMtLWRhdGUtcGlja2VyX19jYWxlbmRhclwiLCBjYWxlbmRhckNvbnRhaW5lcik7XG5cdFx0YWRkQ2xhc3NJZk5vdEV4aXN0cyhcImNkcy0tZGF0ZS1waWNrZXJfX21vbnRoXCIsIG1vbnRoQ29udGFpbmVyKTtcblx0XHRhZGRDbGFzc0lmTm90RXhpc3RzKFwiY2RzLS1kYXRlLXBpY2tlcl9fd2Vla2RheXNcIiwgd2Vla2RheXNDb250YWluZXIpO1xuXHRcdGFkZENsYXNzSWZOb3RFeGlzdHMoXCJjZHMtLWRhdGUtcGlja2VyX19kYXlzXCIsIGRheXNDb250YWluZXIpO1xuXG5cdFx0Ly8gYWRkIHdlZWtkYXkgY2xhc3NlcyBhbmQgZm9ybWF0IHRoZSB0ZXh0XG5cdFx0QXJyYXkuZnJvbSh3ZWVrZGF5Q29udGFpbmVyKS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuXHRcdFx0ZWxlbWVudC5pbm5lckhUTUwgPSBlbGVtZW50LmlubmVySFRNTC5yZXBsYWNlKC9cXHMrL2csIFwiXCIpO1xuXHRcdFx0ZWxlbWVudC5jbGFzc0xpc3QuYWRkKFwiY2RzLS1kYXRlLXBpY2tlcl9fd2Vla2RheVwiKTtcblx0XHR9KTtcblxuXHRcdC8vIGFkZCBkYXkgY2xhc3NlcyBhbmQgc3BlY2lhbCBjYXNlIHRoZSBcInRvZGF5XCIgZWxlbWVudCBiYXNlZCBvbiBgdGhpcy52YWx1ZWBcblx0XHRBcnJheS5mcm9tKGRheUNvbnRhaW5lcikuZm9yRWFjaChlbGVtZW50ID0+IHtcblx0XHRcdGVsZW1lbnQuY2xhc3NMaXN0LmFkZChcImNkcy0tZGF0ZS1waWNrZXJfX2RheVwiKTtcblx0XHRcdGlmICghdGhpcy52YWx1ZSkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRpZiAoZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoXCJ0b2RheVwiKSAmJiB0aGlzLnZhbHVlLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0ZWxlbWVudC5jbGFzc0xpc3QuYWRkKFwibm8tYm9yZGVyXCIpO1xuXHRcdFx0fSBlbHNlIGlmIChlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhcInRvZGF5XCIpICYmIHRoaXMudmFsdWUubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRcdGVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcIm5vLWJvcmRlclwiKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHByb3RlY3RlZCB1cGRhdGVBdHRyaWJ1dGVzKCkge1xuXHRcdGNvbnN0IGNhbGVuZGFyQ29udGFpbmVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5mbGF0cGlja3ItY2FsZW5kYXJcIik7XG5cdFx0QXJyYXkuZnJvbShjYWxlbmRhckNvbnRhaW5lcikuZm9yRWFjaChjYWxlbmRhciA9PiB7XG5cdFx0XHRjYWxlbmRhci5zZXRBdHRyaWJ1dGUoXCJyb2xlXCIsIFwicmVnaW9uXCIpO1xuXHRcdFx0Y2FsZW5kYXIuc2V0QXR0cmlidXRlKFwiYXJpYS1sYWJlbFwiLCB0aGlzLmFyaWFMYWJlbCk7XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogQXBwbGllcyB0aGUgZ2l2ZW4gZGF0ZSB2YWx1ZSBhcnJheSB0byBib3RoIHRoZSBmbGF0cGlja3IgaW5zdGFuY2UgYW5kIHRoZSBgaW5wdXRgKHMpXG5cdCAqIEBwYXJhbSBkYXRlcyB0aGUgZGF0ZSB2YWx1ZXMgdG8gYXBwbHlcblx0ICovXG5cdHByb3RlY3RlZCBzZXREYXRlVmFsdWVzKGRhdGVzOiAoRGF0ZSB8IHN0cmluZylbXSkge1xuXHRcdGlmICh0aGlzLmlzRmxhdHBpY2tyTG9hZGVkKCkpIHtcblx0XHRcdGNvbnN0IHNpbmdsZUlucHV0ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihgIyR7dGhpcy5pZH0taW5wdXRgKTtcblx0XHRcdGNvbnN0IHJhbmdlSW5wdXQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKGAjJHt0aGlzLmlkfS1yYW5nZUlucHV0YCk7XG5cblx0XHRcdC8vIGBmbGF0cGlja3JJbnN0YW5jZS5zZXREYXRlYCByZW1vdmVzIHRoZSBmb2N1cyBvbiB0aGUgc2VsZWN0ZWQgZGF0ZSBlbGVtZW50IGFuZCB3aWxsXG5cdFx0XHQvLyBhdXRvbWF0aWNhbGx5IGNoYW5nZSBmb2N1cyB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBkb2N1bWVudC4gSWYgYSBzZWxlY3RlZCBkYXRlIGlzXG5cdFx0XHQvLyBmb2N1c2VkIGJlZm9yZSBgZmxhdHBpY2tySW5zdGFuY2Uuc2V0RGF0ZWAgaXMgaW52b2tlZCB0aGVuIGl0IHNob3VsZCByZW1haW4gZm9jdXNlZC5cblx0XHRcdGxldCBzaG91bGRSZWZvY3VzRGF0ZUVsZW1lbnQgPSB0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZUVsZW0gPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG5cblx0XHRcdC8vIHNldCB0aGUgZGF0ZSBvbiB0aGUgaW5zdGFuY2Vcblx0XHRcdHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2V0RGF0ZShkYXRlcyk7XG5cblx0XHRcdGlmIChzaG91bGRSZWZvY3VzRGF0ZUVsZW1lbnQpIHtcblx0XHRcdFx0dGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVFbGVtLmZvY3VzKCk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIHdlIGNhbiBlaXRoZXIgc2V0IGEgZGF0ZSB2YWx1ZSBvciBhbiBlbXB0eSBzdHJpbmcsIHNvIHdlIHN0YXJ0IHdpdGggYW4gZW1wdHkgc3RyaW5nXG5cdFx0XHRsZXQgc2luZ2xlRGF0ZSA9IFwiXCI7XG5cdFx0XHQvLyBpZiBkYXRlIGlzIGEgc3RyaW5nLCBwYXJzZSBhbmQgZm9ybWF0XG5cdFx0XHRpZiAodHlwZW9mIHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlc1swXSA9PT0gXCJzdHJpbmdcIikge1xuXHRcdFx0XHRzaW5nbGVEYXRlID0gdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5wYXJzZURhdGUodGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVzWzBdLCB0aGlzLmRhdGVGb3JtYXQpO1xuXHRcdFx0XHRzaW5nbGVEYXRlID0gdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5mb3JtYXREYXRlKHNpbmdsZURhdGUsIHRoaXMuZGF0ZUZvcm1hdCk7XG5cdFx0XHQvLyBpZiBkYXRlIGlzIG5vdCBhIHN0cmluZyB3ZSBjYW4gYXNzdW1lIGl0J3MgYSBEYXRlIGFuZCB3ZSBzaG91bGQgZm9ybWF0XG5cdFx0XHR9IGVsc2UgaWYgKCEhdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVzWzBdKSB7XG5cdFx0XHRcdHNpbmdsZURhdGUgPSB0aGlzLmZsYXRwaWNrckluc3RhbmNlLmZvcm1hdERhdGUodGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVzWzBdLCB0aGlzLmRhdGVGb3JtYXQpO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAocmFuZ2VJbnB1dCkge1xuXHRcdFx0XHQvLyB3ZSBjYW4gZWl0aGVyIHNldCBhIGRhdGUgdmFsdWUgb3IgYW4gZW1wdHkgc3RyaW5nLCBzbyB3ZSBzdGFydCB3aXRoIGFuIGVtcHR5IHN0cmluZ1xuXHRcdFx0XHRsZXQgcmFuZ2VEYXRlID0gXCJcIjtcblx0XHRcdFx0Ly8gaWYgZGF0ZSBpcyBhIHN0cmluZywgcGFyc2UgYW5kIGZvcm1hdFxuXHRcdFx0XHRpZiAodHlwZW9mIHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlc1sxXSA9PT0gXCJzdHJpbmdcIikge1xuXHRcdFx0XHRcdHJhbmdlRGF0ZSA9IHRoaXMuZmxhdHBpY2tySW5zdGFuY2UucGFyc2VEYXRlKHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlc1sxXS50b1N0cmluZygpLCB0aGlzLmRhdGVGb3JtYXQpO1xuXHRcdFx0XHRcdHJhbmdlRGF0ZSA9IHRoaXMuZmxhdHBpY2tySW5zdGFuY2UuZm9ybWF0RGF0ZShyYW5nZURhdGUsIHRoaXMuZGF0ZUZvcm1hdCk7XG5cdFx0XHRcdC8vIGlmIGRhdGUgaXMgbm90IGEgc3RyaW5nIHdlIGNhbiBhc3N1bWUgaXQncyBhIERhdGUgYW5kIHdlIHNob3VsZCBmb3JtYXRcblx0XHRcdFx0fSBlbHNlIGlmICghIXRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlc1sxXSkge1xuXHRcdFx0XHRcdHJhbmdlRGF0ZSA9IHRoaXMuZmxhdHBpY2tySW5zdGFuY2UuZm9ybWF0RGF0ZSh0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZXNbMV0sIHRoaXMuZGF0ZUZvcm1hdCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0Ly8gYXBwbHkgdGhlIHZhbHVlc1xuXHRcdFx0XHRcdHJhbmdlSW5wdXQudmFsdWUgPSByYW5nZURhdGU7XG5cdFx0XHRcdFx0c2luZ2xlSW5wdXQudmFsdWUgPSBzaW5nbGVEYXRlO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRwcm90ZWN0ZWQgcHJldmVudENhbGVuZGFyQ2xvc2UgPSBldmVudCA9PiBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuXHRwcm90ZWN0ZWQgZG9TZWxlY3Qoc2VsZWN0ZWRWYWx1ZTogKERhdGUgfCBzdHJpbmcpW10pIHtcblx0XHQvLyBJbiByYW5nZSBtb2RlLCBpZiBhIGRhdGUgaXMgc2VsZWN0ZWQgZnJvbSB0aGUgZmlyc3QgY2FsZW5kYXIgdGhhdCBpcyBmcm9tIHRoZSBwcmV2aW91cyBtb250aCxcblx0XHQvLyB0aGUgbW9udGggd2lsbCBub3QgYmUgdXBkYXRlZCBvbiB0aGUgY2FsZW5kYXIgdW50aWwgdGhlIGNhbGVuZGFyIGlzIHJlLW9wZW5lZC5cblx0XHQvLyBUaGlzIHdpbGwgbWFrZSBzdXJlIHRoZSBjYWxlbmRhciBpcyB1cGRhdGVkIHdpdGggdGhlIGNvcnJlY3QgbW9udGguXG5cdFx0aWYgKHRoaXMucmFuZ2UgJiYgdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVzWzBdKSB7XG5cdFx0XHRjb25zdCBjdXJyZW50TW9udGggPSB0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZXNbMF0uZ2V0TW9udGgoKTtcblxuXHRcdFx0Ly8gYGZsYXRwaWNrckluc3RhbmNlLmNoYW5nZU1vbnRoYCByZW1vdmVzIHRoZSBmb2N1cyBvbiB0aGUgc2VsZWN0ZWQgZGF0ZSBlbGVtZW50IGFuZCB3aWxsXG5cdFx0XHQvLyBhdXRvbWF0aWNhbGx5IGNoYW5nZSBmb2N1cyB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBkb2N1bWVudC4gSWYgYSBzZWxlY3RlZCBkYXRlIGlzXG5cdFx0XHQvLyBmb2N1c2VkIGJlZm9yZSBgZmxhdHBpY2tySW5zdGFuY2UuY2hhbmdlTW9udGhgIGlzIGludm9rZWQgdGhlbiBpdCBzaG91bGQgcmVtYWluIGZvY3VzZWQuXG5cdFx0XHRsZXQgc2hvdWxkUmVmb2N1c0RhdGVFbGVtZW50ID0gdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVFbGVtID09PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuXG5cdFx0XHR0aGlzLmZsYXRwaWNrckluc3RhbmNlLmNoYW5nZU1vbnRoKGN1cnJlbnRNb250aCwgZmFsc2UpO1xuXG5cdFx0XHRpZiAoc2hvdWxkUmVmb2N1c0RhdGVFbGVtZW50KSB7XG5cdFx0XHRcdHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlRWxlbS5mb2N1cygpO1xuXHRcdFx0fVxuXG5cdFx0fVxuXHRcdHRoaXMudmFsdWVDaGFuZ2UuZW1pdChzZWxlY3RlZFZhbHVlKTtcblx0XHR0aGlzLnByb3BhZ2F0ZUNoYW5nZShzZWxlY3RlZFZhbHVlKTtcblx0fVxuXG5cdHByb3RlY3RlZCBkaWREYXRlVmFsdWVDaGFuZ2UoY3VycmVudFZhbHVlLCBwcmV2aW91c1ZhbHVlKSB7XG5cdFx0cmV0dXJuIGN1cnJlbnRWYWx1ZVswXSAhPT0gcHJldmlvdXNWYWx1ZVswXSB8fCBjdXJyZW50VmFsdWVbMV0gIT09IHByZXZpb3VzVmFsdWVbMV07XG5cdH1cblxuXHQvKipcblx0ICogTW9yZSBhZHZhbmNlZCBjaGVja2luZyBvZiB0aGUgbG9hZGVkIHN0YXRlIG9mIGZsYXRwaWNrclxuXHQgKi9cblx0cHJvdGVjdGVkIGlzRmxhdHBpY2tyTG9hZGVkKCkge1xuXHRcdC8vIGNhc3QgdGhlIGluc3RhbmNlIHRvIGEgYm9vbGVhbiwgYW5kIHNvbWUgbWV0aG9kIHRoYXQgaGFzIHRvIGV4aXN0IGZvciB0aGUgbGlicmFyeSB0byBiZSBsb2FkZWQgaW4gdGhpcyBjYXNlIGBzZXREYXRlYFxuXHRcdHJldHVybiAhIXRoaXMuZmxhdHBpY2tySW5zdGFuY2UgJiYgISF0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNldERhdGU7XG5cdH1cblxuXHQvKipcblx0ICogUmlnaHQgYXJyb3cgSFRNTCBwYXNzZWQgdG8gZmxhdHBpY2tyXG5cdCAqL1xuXHRwcm90ZWN0ZWQgcmlnaHRBcnJvd0hUTUwoKSB7XG5cdFx0cmV0dXJuIGBcblx0XHRcdDxzdmcgd2lkdGg9XCIxNnB4XCIgaGVpZ2h0PVwiMTZweFwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIj5cblx0XHRcdFx0PHBvbHlnb24gcG9pbnRzPVwiMTEsOCA2LDEzIDUuMywxMi4zIDkuNiw4IDUuMywzLjcgNiwzIFwiLz5cblx0XHRcdFx0PHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgc3R5bGU9XCJmaWxsOm5vbmVcIiAvPlxuXHRcdFx0PC9zdmc+YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBMZWZ0IGFycm93IEhUTUwgcGFzc2VkIHRvIGZsYXRwaWNrclxuXHQgKi9cblx0cHJvdGVjdGVkIGxlZnRBcnJvd0hUTUwoKSB7XG5cdFx0cmV0dXJuIGBcblx0XHRcdDxzdmcgd2lkdGg9XCIxNnB4XCIgaGVpZ2h0PVwiMTZweFwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIj5cblx0XHRcdFx0PHBvbHlnb24gcG9pbnRzPVwiNSw4IDEwLDMgMTAuNywzLjcgNi40LDggMTAuNywxMi4zIDEwLDEzIFwiLz5cblx0XHRcdFx0PHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgc3R5bGU9XCJmaWxsOm5vbmVcIiAvPlxuXHRcdFx0PC9zdmc+YDtcblx0fVxufVxuIl19
|