@fundamental-ngx/platform 0.44.0-rc.0 → 0.44.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/form/switch/switch/switch.component.mjs +3 -3
- package/esm2022/form/text-area/text-area.component.mjs +3 -3
- package/esm2022/list/base-list-item.mjs +2 -2
- package/esm2022/table/components/table-editable-cell/table-editable-cell.component.mjs +2 -2
- package/esm2022/table-helpers/domain/table-data-provider.mjs +2 -2
- package/esm2022/table-helpers/helpers.mjs +2 -4
- package/fesm2022/fundamental-ngx-platform-form.mjs +4 -4
- package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-list.mjs +1 -1
- package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-table-helpers.mjs +10 -13
- package/fesm2022/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-table.mjs +1 -1
- package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
- package/fundamental-ngx-platform-v0.44.0-rc.1.tgz +0 -0
- package/package.json +4 -4
- package/schematics/ng-add/index.js +1 -1
- package/fundamental-ngx-platform-v0.44.0-rc.0.tgz +0 -0
|
@@ -68,11 +68,11 @@ export class SwitchComponent extends BaseInput {
|
|
|
68
68
|
this.switchChange.emit(event);
|
|
69
69
|
}
|
|
70
70
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: SwitchComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.NgControl, optional: true, self: true }, { token: i1.ControlContainer, optional: true, skipSelf: true }, { token: i1.NgForm, optional: true, skipSelf: true }, { token: FD_FORM_FIELD, host: true, optional: true, skipSelf: true }, { token: FD_FORM_FIELD_CONTROL, host: true, optional: true, skipSelf: true }, { token: i2.SwitchConfig }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
71
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: SwitchComponent, selector: "fdp-switch", inputs: { ariaLabel: "ariaLabel", ariaLabelledby: "ariaLabelledby", semantic: "semantic" }, outputs: { switchChange: "switchChange" }, providers: [{ provide: FD_FORM_FIELD_CONTROL, useExisting: SwitchComponent, multi: true }], usesInheritance: true, ngImport: i0, template: "<fd-switch\n [id]=\"id\"\n [required]=\"required\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n [semantic]=\"semantic\"\n [ariaLabel]=\"ariaLabel\"\n [
|
|
71
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: SwitchComponent, selector: "fdp-switch", inputs: { ariaLabel: "ariaLabel", ariaLabelledby: "ariaLabelledby", semantic: "semantic" }, outputs: { switchChange: "switchChange" }, providers: [{ provide: FD_FORM_FIELD_CONTROL, useExisting: SwitchComponent, multi: true }], usesInheritance: true, ngImport: i0, template: "<fd-switch\n [id]=\"id\"\n [required]=\"required\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n [semantic]=\"semantic\"\n [ariaLabel]=\"ariaLabel\"\n [ariaLabelledBy]=\"ariaLabelledby\"\n [checked]=\"switchCurrentValue\"\n (checkedChange)=\"onValueChange($event)\"\n></fd-switch>\n", dependencies: [{ kind: "component", type: i3.SwitchComponent, selector: "fd-switch", inputs: ["activeText", "inactiveText", "disabled", "id", "name", "required", "checked", "semantic", "ariaLabel", "ariaLabelledby", "ariaLabelledBy", "semanticAcceptLabel", "semanticDeclineLabel"], outputs: ["checkedChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
72
72
|
}
|
|
73
73
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: SwitchComponent, decorators: [{
|
|
74
74
|
type: Component,
|
|
75
|
-
args: [{ selector: 'fdp-switch', changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: FD_FORM_FIELD_CONTROL, useExisting: SwitchComponent, multi: true }], template: "<fd-switch\n [id]=\"id\"\n [required]=\"required\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n [semantic]=\"semantic\"\n [ariaLabel]=\"ariaLabel\"\n [
|
|
75
|
+
args: [{ selector: 'fdp-switch', changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: FD_FORM_FIELD_CONTROL, useExisting: SwitchComponent, multi: true }], template: "<fd-switch\n [id]=\"id\"\n [required]=\"required\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n [semantic]=\"semantic\"\n [ariaLabel]=\"ariaLabel\"\n [ariaLabelledBy]=\"ariaLabelledby\"\n [checked]=\"switchCurrentValue\"\n (checkedChange)=\"onValueChange($event)\"\n></fd-switch>\n" }]
|
|
76
76
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.NgControl, decorators: [{
|
|
77
77
|
type: Optional
|
|
78
78
|
}, {
|
|
@@ -112,4 +112,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
|
|
|
112
112
|
}], switchChange: [{
|
|
113
113
|
type: Output
|
|
114
114
|
}] } });
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9mb3JtL3N3aXRjaC9zd2l0Y2gvc3dpdGNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9mb3JtL3N3aXRjaC9zd2l0Y2gvc3dpdGNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLElBQUksRUFDSixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUNKLFFBQVEsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRixPQUFPLEVBQUUsU0FBUyxFQUFFLHdCQUF3QixFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDMUcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7QUFFL0MsbUNBQW1DO0FBQ25DLE1BQU0sT0FBTyxpQkFBaUI7Q0FLN0I7QUFRRCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxTQUFTO0lBb0IxQywrQkFBK0I7SUFDL0IsSUFBSSxLQUFLLENBQUMsV0FBZ0I7UUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBQ0QsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQU9ELGNBQWM7SUFDZCxZQUNJLEVBQXFCLEVBQ3JCLFVBQXNCLEVBQ0YsU0FBb0IsRUFDaEIsZ0JBQWtDLEVBQ2xDLE1BQWMsRUFDaUIsU0FBNEIsRUFDcEIsV0FBcUMsRUFDMUYsYUFBMkI7UUFFckMsS0FBSyxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFGekUsa0JBQWEsR0FBYixhQUFhLENBQWM7UUF6Q3pDLHVEQUF1RDtRQUV2RCxjQUFTLEdBQUcsY0FBYyxDQUFDO1FBRTNCLDREQUE0RDtRQUU1RCxtQkFBYyxHQUFrQixJQUFJLENBQUM7UUFFckMscUNBQXFDO1FBRXJDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakI7OztXQUdHO1FBRU0saUJBQVksR0FBb0MsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFVL0Y7O1dBRUc7UUFDSCx1QkFBa0IsR0FBRyxLQUFLLENBQUM7SUFjM0IsQ0FBQztJQUVELCtDQUErQztJQUMvQyxhQUFhLENBQUMsVUFBbUI7UUFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsMkNBQTJDO0lBQzNDLFVBQVUsQ0FBQyxLQUFVO1FBQ2pCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDaEMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSyxZQUFZLENBQUMsVUFBbUI7UUFDcEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNLLGdCQUFnQixDQUFDLFVBQW1CO1FBQ3hDLE1BQU0sS0FBSyxHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUN0QyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNwQixLQUFLLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQztRQUUzQix5Q0FBeUM7UUFDekMsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUM7UUFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQzs4R0E5RVEsZUFBZSx3UEF3Q29CLGFBQWEseURBQ2IscUJBQXFCO2tHQXpDeEQsZUFBZSw0S0FGYixDQUFDLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLGlEQy9COUYsdVRBV0E7OzJGRHNCYSxlQUFlO2tCQU4zQixTQUFTOytCQUNJLFlBQVksbUJBRUwsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFdBQVcsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDOzswQkF1Q3JGLFFBQVE7OzBCQUFJLElBQUk7OzBCQUNoQixRQUFROzswQkFBSSxRQUFROzswQkFDcEIsUUFBUTs7MEJBQUksUUFBUTs7MEJBQ3BCLFFBQVE7OzBCQUFJLFFBQVE7OzBCQUFJLElBQUk7OzBCQUFJLE1BQU07MkJBQUMsYUFBYTs7MEJBQ3BELFFBQVE7OzBCQUFJLFFBQVE7OzBCQUFJLElBQUk7OzBCQUFJLE1BQU07MkJBQUMscUJBQXFCO3VFQXRDakUsU0FBUztzQkFEUixLQUFLO2dCQUtOLGNBQWM7c0JBRGIsS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUs7Z0JBUUcsWUFBWTtzQkFEcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3QsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBTZWxmLFxuICAgIFNraXBTZWxmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgTmdDb250cm9sLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGRF9GT1JNX0ZJRUxELCBGRF9GT1JNX0ZJRUxEX0NPTlRST0wgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtcyc7XG5pbXBvcnQgeyBCYXNlSW5wdXQsIFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbCwgUGxhdGZvcm1Gb3JtRmllbGQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NoYXJlZCc7XG5pbXBvcnQgeyBTd2l0Y2hDb25maWcgfSBmcm9tICcuL3N3aXRjaC5jb25maWcnO1xuXG4vKiogU3dpdGNoIGNoYW5nZSBldmVudCBpbnN0YW5jZSAqL1xuZXhwb3J0IGNsYXNzIFN3aXRjaENoYW5nZUV2ZW50IHtcbiAgICAvKiogVGhlIHNvdXJjZSBTd2l0Y2ggb2YgdGhlIGV2ZW50LiAqL1xuICAgIHNvdXJjZTogU3dpdGNoQ29tcG9uZW50O1xuICAgIC8qKiBUaGUgbmV3IGBwYXlsb2FkYCB2YWx1ZSBvZiB0aGUgc3dpdGNoLiAqL1xuICAgIHBheWxvYWQ6IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLXN3aXRjaCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3N3aXRjaC5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBGRF9GT1JNX0ZJRUxEX0NPTlRST0wsIHVzZUV4aXN0aW5nOiBTd2l0Y2hDb21wb25lbnQsIG11bHRpOiB0cnVlIH1dXG59KVxuZXhwb3J0IGNsYXNzIFN3aXRjaENvbXBvbmVudCBleHRlbmRzIEJhc2VJbnB1dCB7XG4gICAgLyoqIGFyaWEtbGFiZWwgYXR0cmlidXRlIG9mIHRoZSBpbm5lciBpbnB1dCBlbGVtZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsID0gJ1N3aXRjaCBpbnB1dCc7XG5cbiAgICAvKiogYXJpYS1sYWJlbGxlZGJ5IGF0dHJpYnV0ZSBvZiB0aGUgaW5uZXIgaW5wdXQgZWxlbWVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFMYWJlbGxlZGJ5OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBzd2l0Y2ggaXMgc2VtYW50aWMgKi9cbiAgICBASW5wdXQoKVxuICAgIHNlbWFudGljID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCBmaXJlZCB3aGVuIHRoZSBzdGF0ZSBvZiB0aGUgc3dpdGNoIGNoYW5nZXMuXG4gICAgICogKiRldmVudCogY2FuIGJlIHVzZWQgdG8gcmV0cmlldmUgdGhlIG5ldyBzdGF0ZSBvZiB0aGUgc3dpdGNoLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHN3aXRjaENoYW5nZTogRXZlbnRFbWl0dGVyPFN3aXRjaENoYW5nZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8U3dpdGNoQ2hhbmdlRXZlbnQ+
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9mb3JtL3N3aXRjaC9zd2l0Y2gvc3dpdGNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9mb3JtL3N3aXRjaC9zd2l0Y2gvc3dpdGNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLElBQUksRUFDSixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUNKLFFBQVEsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRixPQUFPLEVBQUUsU0FBUyxFQUFFLHdCQUF3QixFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDMUcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7QUFFL0MsbUNBQW1DO0FBQ25DLE1BQU0sT0FBTyxpQkFBaUI7Q0FLN0I7QUFRRCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxTQUFTO0lBb0IxQywrQkFBK0I7SUFDL0IsSUFBSSxLQUFLLENBQUMsV0FBZ0I7UUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBQ0QsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQU9ELGNBQWM7SUFDZCxZQUNJLEVBQXFCLEVBQ3JCLFVBQXNCLEVBQ0YsU0FBb0IsRUFDaEIsZ0JBQWtDLEVBQ2xDLE1BQWMsRUFDaUIsU0FBNEIsRUFDcEIsV0FBcUMsRUFDMUYsYUFBMkI7UUFFckMsS0FBSyxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFGekUsa0JBQWEsR0FBYixhQUFhLENBQWM7UUF6Q3pDLHVEQUF1RDtRQUV2RCxjQUFTLEdBQUcsY0FBYyxDQUFDO1FBRTNCLDREQUE0RDtRQUU1RCxtQkFBYyxHQUFrQixJQUFJLENBQUM7UUFFckMscUNBQXFDO1FBRXJDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakI7OztXQUdHO1FBRU0saUJBQVksR0FBb0MsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFVL0Y7O1dBRUc7UUFDSCx1QkFBa0IsR0FBRyxLQUFLLENBQUM7SUFjM0IsQ0FBQztJQUVELCtDQUErQztJQUMvQyxhQUFhLENBQUMsVUFBbUI7UUFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsMkNBQTJDO0lBQzNDLFVBQVUsQ0FBQyxLQUFVO1FBQ2pCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDaEMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSyxZQUFZLENBQUMsVUFBbUI7UUFDcEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNLLGdCQUFnQixDQUFDLFVBQW1CO1FBQ3hDLE1BQU0sS0FBSyxHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUN0QyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNwQixLQUFLLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQztRQUUzQix5Q0FBeUM7UUFDekMsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUM7UUFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQzs4R0E5RVEsZUFBZSx3UEF3Q29CLGFBQWEseURBQ2IscUJBQXFCO2tHQXpDeEQsZUFBZSw0S0FGYixDQUFDLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLGlEQy9COUYsdVRBV0E7OzJGRHNCYSxlQUFlO2tCQU4zQixTQUFTOytCQUNJLFlBQVksbUJBRUwsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFdBQVcsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDOzswQkF1Q3JGLFFBQVE7OzBCQUFJLElBQUk7OzBCQUNoQixRQUFROzswQkFBSSxRQUFROzswQkFDcEIsUUFBUTs7MEJBQUksUUFBUTs7MEJBQ3BCLFFBQVE7OzBCQUFJLFFBQVE7OzBCQUFJLElBQUk7OzBCQUFJLE1BQU07MkJBQUMsYUFBYTs7MEJBQ3BELFFBQVE7OzBCQUFJLFFBQVE7OzBCQUFJLElBQUk7OzBCQUFJLE1BQU07MkJBQUMscUJBQXFCO3VFQXRDakUsU0FBUztzQkFEUixLQUFLO2dCQUtOLGNBQWM7c0JBRGIsS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUs7Z0JBUUcsWUFBWTtzQkFEcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3QsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBTZWxmLFxuICAgIFNraXBTZWxmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgTmdDb250cm9sLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGRF9GT1JNX0ZJRUxELCBGRF9GT1JNX0ZJRUxEX0NPTlRST0wgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtcyc7XG5pbXBvcnQgeyBCYXNlSW5wdXQsIFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbCwgUGxhdGZvcm1Gb3JtRmllbGQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NoYXJlZCc7XG5pbXBvcnQgeyBTd2l0Y2hDb25maWcgfSBmcm9tICcuL3N3aXRjaC5jb25maWcnO1xuXG4vKiogU3dpdGNoIGNoYW5nZSBldmVudCBpbnN0YW5jZSAqL1xuZXhwb3J0IGNsYXNzIFN3aXRjaENoYW5nZUV2ZW50IHtcbiAgICAvKiogVGhlIHNvdXJjZSBTd2l0Y2ggb2YgdGhlIGV2ZW50LiAqL1xuICAgIHNvdXJjZTogU3dpdGNoQ29tcG9uZW50O1xuICAgIC8qKiBUaGUgbmV3IGBwYXlsb2FkYCB2YWx1ZSBvZiB0aGUgc3dpdGNoLiAqL1xuICAgIHBheWxvYWQ6IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLXN3aXRjaCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3N3aXRjaC5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBGRF9GT1JNX0ZJRUxEX0NPTlRST0wsIHVzZUV4aXN0aW5nOiBTd2l0Y2hDb21wb25lbnQsIG11bHRpOiB0cnVlIH1dXG59KVxuZXhwb3J0IGNsYXNzIFN3aXRjaENvbXBvbmVudCBleHRlbmRzIEJhc2VJbnB1dCB7XG4gICAgLyoqIGFyaWEtbGFiZWwgYXR0cmlidXRlIG9mIHRoZSBpbm5lciBpbnB1dCBlbGVtZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsID0gJ1N3aXRjaCBpbnB1dCc7XG5cbiAgICAvKiogYXJpYS1sYWJlbGxlZGJ5IGF0dHJpYnV0ZSBvZiB0aGUgaW5uZXIgaW5wdXQgZWxlbWVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFMYWJlbGxlZGJ5OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBzd2l0Y2ggaXMgc2VtYW50aWMgKi9cbiAgICBASW5wdXQoKVxuICAgIHNlbWFudGljID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCBmaXJlZCB3aGVuIHRoZSBzdGF0ZSBvZiB0aGUgc3dpdGNoIGNoYW5nZXMuXG4gICAgICogKiRldmVudCogY2FuIGJlIHVzZWQgdG8gcmV0cmlldmUgdGhlIG5ldyBzdGF0ZSBvZiB0aGUgc3dpdGNoLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHN3aXRjaENoYW5nZTogRXZlbnRFbWl0dGVyPFN3aXRjaENoYW5nZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8U3dpdGNoQ2hhbmdlRXZlbnQ+KCk7XG5cbiAgICAvKiogdmFsdWUgZm9yIHN3aXRjaCBjb250cm9sICovXG4gICAgc2V0IHZhbHVlKHNlbGVjdFZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZShzZWxlY3RWYWx1ZSk7XG4gICAgfVxuICAgIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuXG4gICAgICogdHJhY2tpbmcgc3dpdGNoIGN1cnJlbnQgdmFsdWVcbiAgICAgKi9cbiAgICBzd2l0Y2hDdXJyZW50VmFsdWUgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgY29udHJvbENvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lcixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgbmdGb3JtOiBOZ0Zvcm0sXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIEBIb3N0KCkgQEluamVjdChGRF9GT1JNX0ZJRUxEKSBmb3JtRmllbGQ6IFBsYXRmb3JtRm9ybUZpZWxkLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBASG9zdCgpIEBJbmplY3QoRkRfRk9STV9GSUVMRF9DT05UUk9MKSBmb3JtQ29udHJvbDogUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sLFxuICAgICAgICBwcm90ZWN0ZWQgX3N3aXRjaENvbmZpZzogU3dpdGNoQ29uZmlnXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNkLCBlbGVtZW50UmVmLCBuZ0NvbnRyb2wsIGNvbnRyb2xDb250YWluZXIsIG5nRm9ybSwgZm9ybUZpZWxkLCBmb3JtQ29udHJvbCk7XG4gICAgfVxuXG4gICAgLyoqIHVwZGF0ZSBjb250cm9sbGVyIG9uIHN3aXRjaCBzdGF0ZSBjaGFuZ2UgKi9cbiAgICBvblZhbHVlQ2hhbmdlKG1vZGVsVmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlTW9kZWwobW9kZWxWYWx1ZSk7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoJ3N3aXRjaDogb25WYWx1ZUNoYW5nZScpO1xuICAgIH1cblxuICAgIC8qKiB3cml0ZSB2YWx1ZSBmb3IgQ29udHJvbFZhbHVlQWNjZXNzb3IgKi9cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zd2l0Y2hDdXJyZW50VmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiB1cGRhdGUgbW9kZWxcbiAgICAgKi9cbiAgICBwcml2YXRlIF91cGRhdGVNb2RlbChtb2RlbFZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFuZ2VFdmVudChtb2RlbFZhbHVlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlblxuICAgICAqIE1ldGhvZCB0byBlbWl0IGNoYW5nZSBldmVudFxuICAgICAqL1xuICAgIHByaXZhdGUgX2VtaXRDaGFuZ2VFdmVudChtb2RlbFZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IFN3aXRjaENoYW5nZUV2ZW50KCk7XG4gICAgICAgIGV2ZW50LnNvdXJjZSA9IHRoaXM7XG4gICAgICAgIGV2ZW50LnBheWxvYWQgPSBtb2RlbFZhbHVlO1xuXG4gICAgICAgIC8vIHNldHRpbmcgdmFsdWUsIGl0IHdpbGwgY2FsbCBzZXRWYWx1ZSgpXG4gICAgICAgIHRoaXMudmFsdWUgPSBtb2RlbFZhbHVlO1xuICAgICAgICB0aGlzLnN3aXRjaENoYW5nZS5lbWl0KGV2ZW50KTtcbiAgICB9XG59XG4iLCI8ZmQtc3dpdGNoXG4gICAgW2lkXT1cImlkXCJcbiAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW3NlbWFudGljXT1cInNlbWFudGljXCJcbiAgICBbYXJpYUxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgW2FyaWFMYWJlbGxlZEJ5XT1cImFyaWFMYWJlbGxlZGJ5XCJcbiAgICBbY2hlY2tlZF09XCJzd2l0Y2hDdXJyZW50VmFsdWVcIlxuICAgIChjaGVja2VkQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4+PC9mZC1zd2l0Y2g+XG4iXX0=
|
|
@@ -292,7 +292,7 @@ export class TextAreaComponent extends BaseInput {
|
|
|
292
292
|
useExisting: TextAreaComponent,
|
|
293
293
|
multi: true
|
|
294
294
|
}
|
|
295
|
-
], viewQueries: [{ propertyName: "_textareaCounter", first: true, predicate: ["counter"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<textarea\n #inputElementRef\n fd-form-control\n [attr.id]=\"id\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-describedby]=\"id + '-counter'\"\n [attr.aria-required]=\"required\"\n [attr.placeholder]=\"placeholder\"\n [
|
|
295
|
+
], viewQueries: [{ propertyName: "_textareaCounter", first: true, predicate: ["counter"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<textarea\n #inputElementRef\n fd-form-control\n [disabled]=\"disabled\"\n [attr.id]=\"id\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-describedby]=\"id + '-counter'\"\n [attr.aria-required]=\"required\"\n [attr.placeholder]=\"placeholder\"\n [attr.rows]=\"growing ? 2 : height ? 2 : growingMaxLines\"\n [attr.cols]=\"cols\"\n [attr.wrap]=\"wrapType\"\n [attr.maxlength]=\"!showExceededText ? maxLength : null\"\n [attr.readonly]=\"readonly ? true : null\"\n [(ngModel)]=\"value\"\n [state]=\"getUpdatedState()\"\n (paste)=\"handlePasteInteraction()\"\n (blur)=\"_onFocusChanged(false)\"\n (focus)=\"_onFocusChanged(true)\"\n></textarea>\n\n<!-- ICU recommends full text in format -->\n<div\n class=\"fd-textarea-counter\"\n *ngIf=\"showExceededText\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n [attr.id]=\"id + '-counter'\"\n #counter\n>\n <!-- render spaces instead of the actual value while translation string is loading in order to avoid content jumps -->\n <ng-container *ngIf=\"counterExcessOrRemaining === 'excess'; else charactersRemaining\">\n <span\n [innerHtml]=\"\n (exceededCharCount === 1\n ? 'platformTextarea.counterMessageCharactersOverTheLimitSingular'\n : 'platformTextarea.counterMessageCharactersOverTheLimitPlural'\n ) | fdTranslate : { count: exceededCharCount } : ' '\n \"\n ></span>\n </ng-container>\n <ng-template #charactersRemaining>\n <span\n [innerHtml]=\"\n (exceededCharCount === 1\n ? 'platformTextarea.counterMessageCharactersRemainingSingular'\n : 'platformTextarea.counterMessageCharactersRemainingPlural'\n ) | fdTranslate : { count: exceededCharCount } : ' '\n \"\n ></span>\n </ng-template>\n</div>\n", styles: [".fd-textarea-counter{display:inline-block;width:100%}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.FormControlComponent, selector: "[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i4.TextareaFormControlDirective, selector: "textarea[fd-form-control]" }, { kind: "pipe", type: i5.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
296
296
|
}
|
|
297
297
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: TextAreaComponent, decorators: [{
|
|
298
298
|
type: Component,
|
|
@@ -302,7 +302,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
|
|
|
302
302
|
useExisting: TextAreaComponent,
|
|
303
303
|
multi: true
|
|
304
304
|
}
|
|
305
|
-
], template: "<textarea\n #inputElementRef\n fd-form-control\n [attr.id]=\"id\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-describedby]=\"id + '-counter'\"\n [attr.aria-required]=\"required\"\n [attr.placeholder]=\"placeholder\"\n [
|
|
305
|
+
], template: "<textarea\n #inputElementRef\n fd-form-control\n [disabled]=\"disabled\"\n [attr.id]=\"id\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-describedby]=\"id + '-counter'\"\n [attr.aria-required]=\"required\"\n [attr.placeholder]=\"placeholder\"\n [attr.rows]=\"growing ? 2 : height ? 2 : growingMaxLines\"\n [attr.cols]=\"cols\"\n [attr.wrap]=\"wrapType\"\n [attr.maxlength]=\"!showExceededText ? maxLength : null\"\n [attr.readonly]=\"readonly ? true : null\"\n [(ngModel)]=\"value\"\n [state]=\"getUpdatedState()\"\n (paste)=\"handlePasteInteraction()\"\n (blur)=\"_onFocusChanged(false)\"\n (focus)=\"_onFocusChanged(true)\"\n></textarea>\n\n<!-- ICU recommends full text in format -->\n<div\n class=\"fd-textarea-counter\"\n *ngIf=\"showExceededText\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n [attr.id]=\"id + '-counter'\"\n #counter\n>\n <!-- render spaces instead of the actual value while translation string is loading in order to avoid content jumps -->\n <ng-container *ngIf=\"counterExcessOrRemaining === 'excess'; else charactersRemaining\">\n <span\n [innerHtml]=\"\n (exceededCharCount === 1\n ? 'platformTextarea.counterMessageCharactersOverTheLimitSingular'\n : 'platformTextarea.counterMessageCharactersOverTheLimitPlural'\n ) | fdTranslate : { count: exceededCharCount } : ' '\n \"\n ></span>\n </ng-container>\n <ng-template #charactersRemaining>\n <span\n [innerHtml]=\"\n (exceededCharCount === 1\n ? 'platformTextarea.counterMessageCharactersRemainingSingular'\n : 'platformTextarea.counterMessageCharactersRemainingPlural'\n ) | fdTranslate : { count: exceededCharCount } : ' '\n \"\n ></span>\n </ng-template>\n</div>\n", styles: [".fd-textarea-counter{display:inline-block;width:100%}\n"] }]
|
|
306
306
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.NgControl, decorators: [{
|
|
307
307
|
type: Optional
|
|
308
308
|
}, {
|
|
@@ -360,4 +360,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
|
|
|
360
360
|
type: HostListener,
|
|
361
361
|
args: ['keyup', ['$event']]
|
|
362
362
|
}] } });
|
|
363
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1hcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9mb3JtL3RleHQtYXJlYS90ZXh0LWFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vdGV4dC1hcmVhL3RleHQtYXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLElBQUksRUFDSixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEVBRVQsUUFBUSxFQUNSLElBQUksRUFDSixRQUFRLEVBQ1IsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUQsT0FBTyxFQUFFLE9BQU8sRUFBWSxNQUFNLDRCQUE0QixDQUFDO0FBRS9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7OztBQUVsRixNQUFNLGdCQUFnQixHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztBQUlqRDs7O0dBR0c7QUFlSCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsU0FBUztJQXVENUM7OzhFQUUwRTtJQUMxRSxJ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O2dCQU9OLE9BQU87c0JBRE4sS0FBSztnQkFPRixTQUFTO3NCQURaLEtBQUs7Z0JBa0JGLEtBQUs7c0JBRFIsS0FBSztnQkFpQk4sZ0JBQWdCO3NCQURmLFNBQVM7dUJBQUMsU0FBUztnQkFtTHBCLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0NoZWNrZWQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0LFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgaXNEZXZNb2RlLFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFNraXBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIE5nQ29udHJvbCwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQkFDS1NQQUNFLCBERUxFVEUgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuXG5pbXBvcnQgeyBLZXlVdGlsLCBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IEZvcm1TdGF0ZXMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtcyc7XG5pbXBvcnQgeyBCYXNlSW5wdXQsIFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbCwgUGxhdGZvcm1Gb3JtRmllbGQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NoYXJlZCc7XG5pbXBvcnQgeyBUZXh0QXJlYUNvbmZpZyB9IGZyb20gJy4vdGV4dC1hcmVhLmNvbmZpZyc7XG5pbXBvcnQgeyBGRF9GT1JNX0ZJRUxELCBGRF9GT1JNX0ZJRUxEX0NPTlRST0wgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtcyc7XG5cbmNvbnN0IFZBTElEX1dSQVBfVFlQRVMgPSBbJ2hhcmQnLCAnc29mdCcsICdvZmYnXTtcblxuZXhwb3J0IHR5cGUgV3JhcFR5cGUgPSAnaGFyZCcgfCAnc29mdCcgfCAnb2ZmJztcblxuLyoqXG4gKiBUZXh0YXJlYSBmaWVsZCBpbXBsZW1lbnRhdGlvbiB0aGF0IGlzIGNvbXBsaWFudCB3aXRoIFBsYXRmb3JtJ3MgRm9ybUdyb3VwL0Zvcm1GaWVsZCBkZXNpZ25cbiAqXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLXRleHRhcmVhJyxcbiAgICB0ZW1wbGF0ZVVybDogJ3RleHQtYXJlYS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJ3RleHQtYXJlYS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEX0ZPUk1fRklFTERfQ09OVFJPTCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBUZXh0QXJlYUNvbXBvbmVudCxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFRleHRBcmVhQ29tcG9uZW50IGV4dGVuZHMgQmFzZUlucHV0IGltcGxlbWVudHMgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgICAvKipcbiAgICAgKiBUaGUgaGVpZ2h0IHRvIHdoaWNoIHRoZSB0ZXh0YXJlYSB3aWxsIGdyb3cgd2hlbiBgZ3Jvd2luZ2AgaXMgc2V0LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaGVpZ2h0OiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgICogVGhlIG51bWJlciBvZiByb3dzIHRoYXQgd2lsbCBiZSB2aXNpYmxlIHdoZW4gYGdyb3dpbmdgIGlzIHNldC5cbiAgICAgKiBJZiBib3RoIGBncm93aW5nTWF4TGluZXNgIGFuZCBgaGVpZ2h0YCBhcmUgcHJvdmlkZWQsIGBoZWlnaHRgIHZhbHVlIHRha2VzIHByZWNlZGVuY2UuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBncm93aW5nTWF4TGluZXM6IE51bGxhYmxlPG51bWJlcj47XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdGV4dGFyZWEgYGNvbHNgIGF0dHJpYnV0ZSB3cmFwcGVkLSB0aGUgbnVtYmVyIG9mIGxldHRlcnMgdmlzaWJsZSBwZXIgbGluZS5cbiAgICAgKiBJZiB3aWR0aCBpcyBzZXQgdG8gYXV0bywgdGhpcyBhdHRyaWJ1dGUgaGFzIG5vIGVmZmVjdC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbHM6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIFRoZSB0ZXh0YXJlYSBgd3JhcGAgYXR0cmlidXRlIC0gY2FuIGJlIG9uZSBvZiB0aHJlZTogJ29mZicsICdoYXJkJyBvciAnc29mdCcuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB3cmFwVHlwZTogV3JhcFR5cGUgPSAnc29mdCc7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSB0ZXh0YXJlYSBpcyByZWFkb25seVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmVhZG9ubHk6IGJvb2xlYW47XG5cbiAgICAvKiogVGhlIG1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgYWxsb3dlZCB0byBlbnRlci5cbiAgICAgKiBJZiBgc2hvd0V4Y2VlZGVkVGV4dGAgaXMgZmFsc2UsIGBtYXhMZW5ndGhgIGhhcyBuYXRpdmUgdGV4dGFyZWEncyBiZWhhdmlvciBvZiBkaXNhbGxvd2luZyB0eXBpbmcgYmV5b25kIGBtYXhMZW5ndGhgLlxuICAgICAqIElmIGBzaG93RXhjZWVkZWRUZXh0YCBpcyB0cnVlLCB1c2VyIGlzIGFsbG93ZWQgdG8gdHlwZSBiZXlvbmQgYG1heExlbmd0aGAsIGJ1dCBlcnJvciBzdGF0ZXMgYW5kIGNvdW50ZXIgbWVzc2FnZXMgc2hvd2luZ1xuICAgICAqIHRoZSBleGNlZWRlZCBjb3VudCBpcyBkaXNwbGF5ZWQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBtYXhMZW5ndGg6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgY291bnRlciBtZXNzYWdlIHNob3VsZCBiZSBzaG93bi5cbiAgICAgKiBJZiBgc2hvd0V4Y2VlZGVkVGV4dGAgaXMgZmFsc2UsIG5vIHN0YXRlIGNoYW5nZXMgb3IgZXJyb3IgbWVzc2FnZXMgYXJlIHNob3duLiBVc2VyIGlzIHNpbXBseSBub3QgYWxsb3dlZCB0byB0eXBlXG4gICAgICogYmV5b25kIHRoZSBgbWF4TGVuZ3RoYCBjaGFyYWN0ZXJzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0V4Y2VlZGVkVGV4dCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGlzIHRleHRhcmVhIGNhbiBncm93LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ3Jvd2luZyA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKiBzZXQgc3RhdGUgb2YgaW5kaXZpZHVhbCBjaGVja2JveC4gVXNlZCBieSBDQkcgdG8gc2V0IGNoZWNrYm94IHN0YXRlcyAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHN0YXRlVHlwZShzdGF0ZTogRm9ybVN0YXRlcykge1xuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignXCJzdGF0ZVR5cGVcIiBpcyBkZXByZWNhdGVkLiBVc2UgXCJzdGF0ZVwiIGluc3RlYWQnKTtcbiAgICAgICAgfVxuICAgICAgICBzdXBlci5zdGF0ZSA9IHN0YXRlO1xuICAgIH1cbiAgICBnZXQgc3RhdGVUeXBlKCk6IEZvcm1TdGF0ZXMge1xuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignXCJzdGF0ZVR5cGVcIiBpcyBkZXByZWNhdGVkLiBVc2UgXCJzdGF0ZVwiIGluc3RlYWQnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3VwZXIuc3RhdGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIHRleHRhcmVhJ3MgdmFsdWVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgc3VwZXIuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gd2hlbiBjdXN0b20gdmFsdWUgbm90IHNldCwgd2Ugc2hvdWxkIHNldC9yZXNldCBjb3VudGVyIHRvIG1heGxlbmd0aCB2YWx1ZSB3aGVuIGl0IGJlY29tZXMgdW5kZWZpbmVkXG4gICAgICAgICAgICB0aGlzLmV4Y2VlZGVkQ2hhckNvdW50ID0gdGhpcy5tYXhMZW5ndGggPyB0aGlzLm1heExlbmd0aCA6IDA7XG4gICAgICAgICAgICAvLyByZXNldCBzdGF0ZSBieSByZXNldHRpbmcgdmFsdWVcbiAgICAgICAgICAgIHN1cGVyLnNldFZhbHVlKCcnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgdmFsdWUoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdjb3VudGVyJylcbiAgICBfdGV4dGFyZWFDb3VudGVyPzogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGhhc1RleHRFeGNlZWRlZCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gZXhjZXNzIGNoYXJhY3RlciBjb3VudCAqL1xuICAgIGV4Y2VlZGVkQ2hhckNvdW50ID0gMDtcblxuICAgIC8qKiBAaGlkZGVuIGEgc3RyaW5nIHBsYWNlaG9sZGVyIHRoYXQgdG9nZ2xlcyBiZXR3ZWVuICdyZW1haW5pbmcnIGFuZCAnZXhjZXNzJyBmb3IgdGhlIHNlbGVjdCBJQ1UgZXhwcmVzc2lvbiAqL1xuICAgIGNvdW50ZXJFeGNlc3NPclJlbWFpbmluZyA9ICdyZW1haW5pbmcnO1xuXG4gICAgLyoqIEBoaWRkZW4gZmxhZyB0byBjaGVjayBpZiB0aGVyZSBpcyBhbiBpbml0aWFsIHZhbHVlIHNldCAqL1xuICAgIGlzVmFsdWVDdXN0b21TZXQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgLyoqIHRvIGtlZXAgdHJhY2sgb2YgbnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4gdGhlIHRleHRhcmVhICovXG4gICAgcHJpdmF0ZSBfdGV4dEFyZWFDaGFyQ291bnQgPSAwO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pc1Bhc3RlZCA9IGZhbHNlO1xuXG4gICAgLyoqIGZvciBpMThuIGNvdW50ZXIgbWVzc2FnZSB0cmFuc2xhdGlvbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVtYWluaW5nVGV4dCA9ICdyZW1haW5pbmcnO1xuICAgIC8qKiBmb3IgaTE4biBjb3VudGVyIG1lc3NhZ2UgdHJhbnNsYXRpb24gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGV4Y2Vzc1RleHQgPSAnZXhjZXNzJztcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAc2VlIFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbC5leHRyYUNvbnRlbnRIZWlnaHRQeFxuICAgICAqL1xuICAgIGdldCBleHRyYUNvbnRlbnRIZWlnaHRQeCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGV4dGFyZWFDb3VudGVyPy5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgZ2V0IF9zaG91bGRUcmFja1RleHRMaW1pdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWF4TGVuZ3RoID4gMCAmJiAhdGhpcy5zaG93RXhjZWVkZWRUZXh0O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgY29udHJvbENvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lcixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgbmdGb3JtOiBOZ0Zvcm0sXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIEBIb3N0KCkgQEluamVjdChGRF9GT1JNX0ZJRUxEKSBmb3JtRmllbGQ6IFBsYXRmb3JtRm9ybUZpZWxkLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBASG9zdCgpIEBJbmplY3QoRkRfRk9STV9GSUVMRF9DT05UUk9MKSBmb3JtQ29udHJvbDogUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sLFxuICAgICAgICBwcm90ZWN0ZWQgX3RleHRBcmVhQ29uZmlnOiBUZXh0QXJlYUNvbmZpZ1xuICAgICkge1xuICAgICAgICBzdXBlcihjZCwgZWxlbWVudFJlZiwgbmdDb250cm9sLCBjb250cm9sQ29udGFpbmVyLCBuZ0Zvcm0sIGZvcm1GaWVsZCwgZm9ybUNvbnRyb2wpO1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLndyYXBUeXBlIHx8IFZBTElEX1dSQVBfVFlQRVMuaW5kZXhPZih0aGlzLndyYXBUeXBlKSA9PT0gLTEpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVGV4dGFyZWEgd3JhcCB0eXBlICR7dGhpcy53cmFwVHlwZX0gaXMgbm90IHN1cHBvcnRlZGApO1xuICAgICAgICB9XG4gICAgICAgIC8vIGlmIG5vdCBjdXN0b20gc2V0LCBzZXQgY291bnRlciB0byBtYXggbGVuZ3RoIHZhbHVlLCBlbHNlIGl0IGNhbGN1bGF0ZXMgcmVtYWluaW5nL2V4Y2VlZGVkIGNoYXJhY3RlcnMuXG4gICAgICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5leGNlZWRlZENoYXJDb3VudCA9IHRoaXMubWF4TGVuZ3RoIHx8IDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmlzVmFsdWVDdXN0b21TZXQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIHNldCBtYXggaGVpZ2h0XG4gICAgICAgIHRoaXMuX3NldE1heEhlaWdodCgpO1xuXG4gICAgICAgIC8vIGRvbid0IHNldCBhbnkgZXJyb3Igc3RhdGUgaWYgd2UgYXJlIG5vdCBzaG93aW5nIGNvdW50ZXIgbWVzc2FnZVxuICAgICAgICBpZiAoIXRoaXMuX3Nob3VsZFRyYWNrVGV4dExpbWl0KSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgICAgIC8vIHdoZW4gdmFsdWUgaXMgY3VzdG9tIHNldChpbml0aWFsIHZhbHVlIGlzIHByZXNlbnQpLCB0aGUgaGVpZ2h0cyBkb24ndCBnZXRcbiAgICAgICAgLy8gc2V0IHRvIHNob3cgdGhlIGZ1bGwgdGV4dCBpbiB0aGUgbmdBZnRlclZpZXdJbml0IGltbWVkaWF0ZWx5LiB0aGVyZWZvcmUsIHdlIGNhbGwgYXV0b0dyb3dUZXh0QXJlYSBpblxuICAgICAgICAvLyBuZ0FmdGVyVmlld0NoZWNrZWQgYW5kIGRldGVjdCBjaGFuZ2VzIGFnYWluLlxuICAgICAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLmlzVmFsdWVDdXN0b21TZXQpIHtcbiAgICAgICAgICAgIHRoaXMuYXV0b0dyb3dUZXh0QXJlYSgpOyAvLyBpZiBhcHBsaWNhYmxlLCBncm93IHRoZSB0ZXh0YXJlYSB3aGVuIHZhbHVlIGlzIGN1c3RvbSBzZXRcbiAgICAgICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoJ3RleHRhcmVhOiBuZ0FmdGVyVmlld0NoZWNrZWQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiB3cml0ZSB2YWx1ZSBmb3IgQ29udHJvbFZhbHVlQWNjZXNzb3IgKi9cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSA/PyAnJyk7XG4gICAgICAgIHRoaXMudXBkYXRlQ291bnRlckludGVyYWN0aW9ucygpO1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCd0ZXh0YXJlYTogd3JpdGVWYWx1ZScpO1xuICAgIH1cblxuICAgIC8qKiB1cGRhdGUgdGhlIGNvdW50ZXIgbWVzc2FnZSBhbmQgcmVsYXRlZCBpbnRlcmFjdGlvbnMgKi9cbiAgICB1cGRhdGVDb3VudGVySW50ZXJhY3Rpb25zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90ZXh0QXJlYUNoYXJDb3VudCA9IHRoaXMudmFsdWU/Lmxlbmd0aCA/PyAwO1xuXG4gICAgICAgIGlmICh0aGlzLm1heExlbmd0aCkge1xuICAgICAgICAgICAgLy8gbmV3bHkgYWRkZWQgdG8gYXZvaWQgdW5uZWNlc3NhcnkgaXRlcmF0aW9uLCByZW1vdmUgaWYgaXNzdWUgZm91bmRcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGVMZW5ndGhPbkN1c3RvbVNldCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIGlmIGV4Y2VlZGVkIG1heGxlbmd0aCB3aGVuIHNldCBhcyBhIHZhbHVlIGluIGNvZGUsIGhpZ2hsaWdodCB0aGUgZXhjZWVkZWQgdGV4dC4gKi9cbiAgICB2YWxpZGF0ZUxlbmd0aE9uQ3VzdG9tU2V0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fdGV4dEFyZWFDaGFyQ291bnQgPiB0aGlzLm1heExlbmd0aCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2lzUGFzdGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UodGhpcy5tYXhMZW5ndGgsIHRoaXMuX3RleHRBcmVhQ2hhckNvdW50KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5jb3VudGVyRXhjZXNzT3JSZW1haW5pbmcgPSB0aGlzLmV4Y2Vzc1RleHQ7XG4gICAgICAgICAgICB0aGlzLmV4Y2VlZGVkQ2hhckNvdW50ID0gdGhpcy5fdGV4dEFyZWFDaGFyQ291bnQgLSB0aGlzLm1heExlbmd0aDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY291bnRlckV4Y2Vzc09yUmVtYWluaW5nID0gdGhpcy5yZW1haW5pbmdUZXh0O1xuICAgICAgICAgICAgdGhpcy5leGNlZWRlZENoYXJDb3VudCA9IHRoaXMubWF4TGVuZ3RoIC0gdGhpcy5fdGV4dEFyZWFDaGFyQ291bnQ7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9pc1Bhc3RlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKiBoYW5kbGUgZXhjZWVkZWQgbWF4bGVuZ3RoIGNhc2Ugd2hlbiB0ZXh0IGlzIHBhc3RlZCAqL1xuICAgIGhhbmRsZVBhc3RlSW50ZXJhY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2lzUGFzdGVkID0gdHJ1ZTtcblxuICAgICAgICAvLyBXcmFwcGVkIGluIHRpbWVvdXQgdG8gbWFrZSBzZWxlY3RpbmcgcmFuZ2Ugd29ya2luZ1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlQ291bnRlckludGVyYWN0aW9ucygpKTtcbiAgICB9XG5cbiAgICAvKiogaGFuZGxlIGF1dG8gZ3Jvd2luZyBvZiB0ZXh0YXJlYSAqL1xuICAgIGF1dG9Hcm93VGV4dEFyZWEoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmdyb3dpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gJ2luaGVyaXQnO1xuICAgICAgICAgICAgY29uc3QgdGV4dGFyZWFUb3RhbEhlaWdodCA9IHRoaXMuX2dldFRleHRhcmVhVG90YWxIZWlnaHQoKTtcbiAgICAgICAgICAgIGNvbnN0IG1heEhlaWdodCA9IHBhcnNlSW50KHRoaXMuX3RhcmdldEVsZW1lbnQuc3R5bGUubWF4SGVpZ2h0IGFzIHN0cmluZywgMTApO1xuICAgICAgICAgICAgaWYgKG1heEhlaWdodCkge1xuICAgICAgICAgICAgICAgIGlmICh0ZXh0YXJlYVRvdGFsSGVpZ2h0IDw9IG1heEhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl90YXJnZXRFbGVtZW50LnN0eWxlLmhlaWdodCA9IHRleHRhcmVhVG90YWxIZWlnaHQgKyAncHgnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5zdHlsZS5oZWlnaHQgPSB0aGlzLmhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gbWF4SGVpZ2h0ICsgJ3B4JztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gbm8gYm91bmQgbWF4IGhlaWdodCwga2VlcCBncm93aW5nXG4gICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5zdHlsZS5oZWlnaHQgPSB0ZXh0YXJlYVRvdGFsSGVpZ2h0ICsgJ3B4JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGdldCBsaW5lIGhlaWdodCBvZiB0ZXh0YXJlYVxuICAgICAqL1xuICAgIGdldFRleHRhcmVhTGluZUhlaWdodCgpOiBudW1iZXIge1xuICAgICAgICAvLyBHZXQgdGhlIGNvbXB1dGVkIHN0eWxlcyBmb3IgdGhlIGVsZW1lbnRcbiAgICAgICAgaWYgKHRoaXMuX3RhcmdldEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXB1dGVkID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5fdGFyZ2V0RWxlbWVudCk7XG5cbiAgICAgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgaGVpZ2h0XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQoY29tcHV0ZWQuZ2V0UHJvcGVydHlWYWx1ZSgnbGluZS1oZWlnaHQnKSwgMTApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAyMDsgLy8gZGVmYXVsdCBsaW5lIGhlaWdodCBpZiBub3RoaW5nIGlzIGRlZmluZWRcbiAgICB9XG5cbiAgICAvKiogd2hlbiBiYWNrcHJlc3Mgb3IgZGVsZXRlIGtleSBpcyBwcmVzc2VkIHdoZW4gc2hvd0V4Y2VlZGVkVGV4dCBmaWVsZCBpcyBub3Qgc2V0LCBzaW1wbHkgcmVtb3ZlIGV4Y2VzcyBjaGFyYWN0ZXJzLFxuICAgIC8qIGVsc2UgaGFuZGxlIGF1dG9ncm93IGNhc2VcbiAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSlcbiAgICBoYW5kbGVCYWNrUHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgLy8gaWYgbm90IHNob3dpbmcgZXhjZWVkZWQgdGV4dCBtZXNzYWdlL2ludGVyYWN0aW9ucyBvciBncm93aW5nLCBhbmQgY3VzdG9tIHZhbHVlIHNldFxuICAgICAgICBpZiAodGhpcy5ncm93aW5nKSB7XG4gICAgICAgICAgICB0aGlzLmF1dG9Hcm93VGV4dEFyZWEoKTtcbiAgICAgICAgICAgIHRoaXMuaXNWYWx1ZUN1c3RvbVNldCA9IGZhbHNlOyAvLyBzZXQgaXQgdG8gZmFsc2UgZmlyc3QgdGltZSBpdCBjb21lcyBoZXJlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX3Nob3VsZFRyYWNrVGV4dExpbWl0ICYmIEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbREVMRVRFLCBCQUNLU1BBQ0VdKSkge1xuICAgICAgICAgICAgLy8gZm9yIHRoZSBjdXN0b20gdmFsdWUgc2V0IGFuZCBzaG93RXhjZWVkZWRUZXh0PWZhbHNlIGNhc2UsIG9uIGFueSBrZXkgcHJlc3MsIHJlbW92ZSBleGNlc3MgY2hhcmFjdGVyc1xuICAgICAgICAgICAgaWYgKHRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl90ZXh0QXJlYUNoYXJDb3VudCA9IHRoaXMudmFsdWUubGVuZ3RoO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl90ZXh0QXJlYUNoYXJDb3VudCA+IHRoaXMubWF4TGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZSBleGNlc3MgY2hhcmFjdGVyc1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy52YWx1ZS5zdWJzdHJpbmcoMCwgdGhpcy5tYXhMZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzVmFsdWVDdXN0b21TZXQgPSBmYWxzZTsgLy8gc2luY2UgdmFsdWUgaXMgbm93IGNoYW5nZWQsIGl0IGlzIG5vIGxvbmdlciBjdXN0b20gc2V0XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2V0IHRoZSB1cGRhdGVkIHN0YXRlIHdoZW4gY2hhcmFjdGVyIGNvdW50IGJyZWFjaGVzIGBtYXhMZW5ndGhgXG4gICAgICovXG4gICAgZ2V0VXBkYXRlZFN0YXRlKCk6IEZvcm1TdGF0ZXMge1xuICAgICAgICBpZiAodGhpcy5fZ2V0Q29udGVudExlbmd0aCgpID4gdGhpcy5tYXhMZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuaGFzVGV4dEV4Y2VlZGVkID0gdHJ1ZTsgLy8gc2V0IGZsYWcgZm9yIGVycm9yIG1lc3NhZ2UgdG8gYWxzbyBjaGFuZ2UgYWNjb3JkaW5nbHlcbiAgICAgICAgICAgIHRoaXMuY291bnRlckV4Y2Vzc09yUmVtYWluaW5nID0gdGhpcy5leGNlc3NUZXh0O1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhhc1RleHRFeGNlZWRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNvdW50ZXJFeGNlc3NPclJlbWFpbmluZyA9IHRoaXMucmVtYWluaW5nVGV4dDtcblxuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZTsgLy8gcmV0dXJuIGFueSBvdGhlciBlcnJvcnMgZm91bmQgYnkgcGFyZW50IGZvcm0gZmllbGRcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBOYXRpdmUgZWxlbWVudCAgKi9cbiAgICBnZXQgX3RhcmdldEVsZW1lbnQoKTogSFRNTFRleHRBcmVhRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIGdldCB0aGUgbGVuZ3RoIG9mIHRoZSB0ZXh0YXJlYSBjb250ZW50ICovXG4gICAgcHJpdmF0ZSBfZ2V0Q29udGVudExlbmd0aCgpOiBudW1iZXIge1xuICAgICAgICBsZXQgY29udGVudExlbmd0aDtcbiAgICAgICAgaWYgKHRoaXMuX3RhcmdldEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnRlbnRMZW5ndGggPSB0aGlzLl90YXJnZXRFbGVtZW50LnZhbHVlLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgY29udGVudExlbmd0aCA9IHRoaXMudmFsdWUubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb250ZW50TGVuZ3RoO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIGdldCB0aGUgdG90YWwgaGVpZ2h0IGluY2x1ZGluZyBib3JkZXJzIGFuZCBzY3JvbGwgaGVpZ2h0ICovXG4gICAgcHJpdmF0ZSBfZ2V0VGV4dGFyZWFUb3RhbEhlaWdodCgpOiBudW1iZXIge1xuICAgICAgICAvLyBHZXQgdGhlIGNvbXB1dGVkIHN0eWxlcyBmb3IgdGhlIGVsZW1lbnRcbiAgICAgICAgY29uc3QgY29tcHV0ZWQgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLl90YXJnZXRFbGVtZW50KTtcbiAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBoZWlnaHRcbiAgICAgICAgY29uc3QgaGVpZ2h0ID1cbiAgICAgICAgICAgIHBhcnNlSW50KGNvbXB1dGVkLmdldFByb3BlcnR5VmFsdWUoJ2JvcmRlci10b3Atd2lkdGgnKSwgMTApICtcbiAgICAgICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQuc2Nyb2xsSGVpZ2h0ICtcbiAgICAgICAgICAgIHBhcnNlSW50KGNvbXB1dGVkLmdldFByb3BlcnR5VmFsdWUoJ2JvcmRlci1ib3R0b20td2lkdGgnKSwgMTApO1xuXG4gICAgICAgIHJldHVybiBoZWlnaHQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gc2V0IGluaXRpYWwgbWF4IGhlaWdodCAqKi9cbiAgICBwcml2YXRlIF9zZXRNYXhIZWlnaHQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmdyb3dpbmcgJiYgdGhpcy5fdGFyZ2V0RWxlbWVudCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZ3Jvd2luZ01heExpbmVzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5zdHlsZS5tYXhIZWlnaHQgPSB0aGlzLmdyb3dpbmdNYXhMaW5lcyAqIHRoaXMuZ2V0VGV4dGFyZWFMaW5lSGVpZ2h0KCkgKyAncHgnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuaGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5zdHlsZS5tYXhIZWlnaHQgPSB0aGlzLmhlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmdyb3dpbmdNYXhMaW5lcykge1xuICAgICAgICAgICAgICAgIC8vIG5vdGhpbmcgdG8gZG8gaGVyZS4gcm93cyBhdHRyaWJ1dGUgdGFrZXMgY2FyZS5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmhlaWdodCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gdGhpcy5oZWlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8dGV4dGFyZWFcbiAgICAjaW5wdXRFbGVtZW50UmVmXG4gICAgZmQtZm9ybS1jb250cm9sXG4gICAgW2F0dHIuaWRdPVwiaWRcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnlcIlxuICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiaWQgKyAnLWNvdW50ZXInXCJcbiAgICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgIFtyb3dzXT1cImdyb3dpbmcgPyAyIDogaGVpZ2h0ID8gMiA6IGdyb3dpbmdNYXhMaW5lc1wiXG4gICAgW2NvbHNdPVwiY29sc1wiXG4gICAgW3dyYXBdPVwid3JhcFR5cGVcIlxuICAgIFttYXhsZW5ndGhdPVwiIXNob3dFeGNlZWRlZFRleHQgPyBtYXhMZW5ndGggOiBudWxsXCJcbiAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICBbc3RhdGVdPVwiZ2V0VXBkYXRlZFN0YXRlKClcIlxuICAgIChwYXN0ZSk9XCJoYW5kbGVQYXN0ZUludGVyYWN0aW9uKClcIlxuICAgIChibHVyKT1cIl9vbkZvY3VzQ2hhbmdlZChmYWxzZSlcIlxuICAgIChmb2N1cyk9XCJfb25Gb2N1c0NoYW5nZWQodHJ1ZSlcIlxuPjwvdGV4dGFyZWE+XG5cbjwhLS0gSUNVIHJlY29tbWVuZHMgZnVsbCB0ZXh0IGluIGZvcm1hdCAtLT5cbjxkaXZcbiAgICBjbGFzcz1cImZkLXRleHRhcmVhLWNvdW50ZXJcIlxuICAgICpuZ0lmPVwic2hvd0V4Y2VlZGVkVGV4dFwiXG4gICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICBhcmlhLWF0b21pYz1cInRydWVcIlxuICAgIFthdHRyLmlkXT1cImlkICsgJy1jb3VudGVyJ1wiXG4gICAgI2NvdW50ZXJcbj5cbiAgICA8IS0tIHJlbmRlciBzcGFjZXMgaW5zdGVhZCBvZiB0aGUgYWN0dWFsIHZhbHVlIHdoaWxlIHRyYW5zbGF0aW9uIHN0cmluZyBpcyBsb2FkaW5nIGluIG9yZGVyIHRvIGF2b2lkIGNvbnRlbnQganVtcHMgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvdW50ZXJFeGNlc3NPclJlbWFpbmluZyA9PT0gJ2V4Y2Vzcyc7IGVsc2UgY2hhcmFjdGVyc1JlbWFpbmluZ1wiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgW2lubmVySHRtbF09XCJcbiAgICAgICAgICAgICAgICAoZXhjZWVkZWRDaGFyQ291bnQgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgPyAncGxhdGZvcm1UZXh0YXJlYS5jb3VudGVyTWVzc2FnZUNoYXJhY3RlcnNPdmVyVGhlTGltaXRTaW5ndWxhcidcbiAgICAgICAgICAgICAgICAgICAgOiAncGxhdGZvcm1UZXh0YXJlYS5jb3VudGVyTWVzc2FnZUNoYXJhY3RlcnNPdmVyVGhlTGltaXRQbHVyYWwnXG4gICAgICAgICAgICAgICAgKSB8IGZkVHJhbnNsYXRlOiB7IGNvdW50OiBleGNlZWRlZENoYXJDb3VudCB9OicmbmJzcDsmbmJzcDsnXG4gICAgICAgICAgICBcIlxuICAgICAgICA+PC9zcGFuPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjY2hhcmFjdGVyc1JlbWFpbmluZz5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIFtpbm5lckh0bWxdPVwiXG4gICAgICAgICAgICAgICAgKGV4Y2VlZGVkQ2hhckNvdW50ID09PSAxXG4gICAgICAgICAgICAgICAgICAgID8gJ3BsYXRmb3JtVGV4dGFyZWEuY291bnRlck1lc3NhZ2VDaGFyYWN0ZXJzUmVtYWluaW5nU2luZ3VsYXInXG4gICAgICAgICAgICAgICAgICAgIDogJ3BsYXRmb3JtVGV4dGFyZWEuY291bnRlck1lc3NhZ2VDaGFyYWN0ZXJzUmVtYWluaW5nUGx1cmFsJ1xuICAgICAgICAgICAgICAgICkgfCBmZFRyYW5zbGF0ZTogeyBjb3VudDogZXhjZWVkZWRDaGFyQ291bnQgfTonJm5ic3A7Jm5ic3A7J1xuICAgICAgICAgICAgXCJcbiAgICAgICAgPjwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
|
|
363
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1hcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9mb3JtL3RleHQtYXJlYS90ZXh0LWFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vdGV4dC1hcmVhL3RleHQtYXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLElBQUksRUFDSixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEVBRVQsUUFBUSxFQUNSLElBQUksRUFDSixRQUFRLEVBQ1IsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUQsT0FBTyxFQUFFLE9BQU8sRUFBWSxNQUFNLDRCQUE0QixDQUFDO0FBRS9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7OztBQUVsRixNQUFNLGdCQUFnQixHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztBQUlqRDs7O0dBR0c7QUFlSCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsU0FBUztJQXVENUM7OzhFQUUwRTtJQUMxRSxJ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O2dCQU9OLE9BQU87c0JBRE4sS0FBSztnQkFPRixTQUFTO3NCQURaLEtBQUs7Z0JBa0JGLEtBQUs7c0JBRFIsS0FBSztnQkFpQk4sZ0JBQWdCO3NCQURmLFNBQVM7dUJBQUMsU0FBUztnQkFtTHBCLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0NoZWNrZWQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0LFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgaXNEZXZNb2RlLFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFNraXBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIE5nQ29udHJvbCwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQkFDS1NQQUNFLCBERUxFVEUgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuXG5pbXBvcnQgeyBLZXlVdGlsLCBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IEZvcm1TdGF0ZXMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtcyc7XG5pbXBvcnQgeyBCYXNlSW5wdXQsIFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbCwgUGxhdGZvcm1Gb3JtRmllbGQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NoYXJlZCc7XG5pbXBvcnQgeyBUZXh0QXJlYUNvbmZpZyB9IGZyb20gJy4vdGV4dC1hcmVhLmNvbmZpZyc7XG5pbXBvcnQgeyBGRF9GT1JNX0ZJRUxELCBGRF9GT1JNX0ZJRUxEX0NPTlRST0wgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtcyc7XG5cbmNvbnN0IFZBTElEX1dSQVBfVFlQRVMgPSBbJ2hhcmQnLCAnc29mdCcsICdvZmYnXTtcblxuZXhwb3J0IHR5cGUgV3JhcFR5cGUgPSAnaGFyZCcgfCAnc29mdCcgfCAnb2ZmJztcblxuLyoqXG4gKiBUZXh0YXJlYSBmaWVsZCBpbXBsZW1lbnRhdGlvbiB0aGF0IGlzIGNvbXBsaWFudCB3aXRoIFBsYXRmb3JtJ3MgRm9ybUdyb3VwL0Zvcm1GaWVsZCBkZXNpZ25cbiAqXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLXRleHRhcmVhJyxcbiAgICB0ZW1wbGF0ZVVybDogJ3RleHQtYXJlYS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJ3RleHQtYXJlYS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEX0ZPUk1fRklFTERfQ09OVFJPTCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBUZXh0QXJlYUNvbXBvbmVudCxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFRleHRBcmVhQ29tcG9uZW50IGV4dGVuZHMgQmFzZUlucHV0IGltcGxlbWVudHMgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgICAvKipcbiAgICAgKiBUaGUgaGVpZ2h0IHRvIHdoaWNoIHRoZSB0ZXh0YXJlYSB3aWxsIGdyb3cgd2hlbiBgZ3Jvd2luZ2AgaXMgc2V0LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaGVpZ2h0OiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgICogVGhlIG51bWJlciBvZiByb3dzIHRoYXQgd2lsbCBiZSB2aXNpYmxlIHdoZW4gYGdyb3dpbmdgIGlzIHNldC5cbiAgICAgKiBJZiBib3RoIGBncm93aW5nTWF4TGluZXNgIGFuZCBgaGVpZ2h0YCBhcmUgcHJvdmlkZWQsIGBoZWlnaHRgIHZhbHVlIHRha2VzIHByZWNlZGVuY2UuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBncm93aW5nTWF4TGluZXM6IE51bGxhYmxlPG51bWJlcj47XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdGV4dGFyZWEgYGNvbHNgIGF0dHJpYnV0ZSB3cmFwcGVkLSB0aGUgbnVtYmVyIG9mIGxldHRlcnMgdmlzaWJsZSBwZXIgbGluZS5cbiAgICAgKiBJZiB3aWR0aCBpcyBzZXQgdG8gYXV0bywgdGhpcyBhdHRyaWJ1dGUgaGFzIG5vIGVmZmVjdC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbHM6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIFRoZSB0ZXh0YXJlYSBgd3JhcGAgYXR0cmlidXRlIC0gY2FuIGJlIG9uZSBvZiB0aHJlZTogJ29mZicsICdoYXJkJyBvciAnc29mdCcuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB3cmFwVHlwZTogV3JhcFR5cGUgPSAnc29mdCc7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSB0ZXh0YXJlYSBpcyByZWFkb25seVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmVhZG9ubHk6IGJvb2xlYW47XG5cbiAgICAvKiogVGhlIG1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgYWxsb3dlZCB0byBlbnRlci5cbiAgICAgKiBJZiBgc2hvd0V4Y2VlZGVkVGV4dGAgaXMgZmFsc2UsIGBtYXhMZW5ndGhgIGhhcyBuYXRpdmUgdGV4dGFyZWEncyBiZWhhdmlvciBvZiBkaXNhbGxvd2luZyB0eXBpbmcgYmV5b25kIGBtYXhMZW5ndGhgLlxuICAgICAqIElmIGBzaG93RXhjZWVkZWRUZXh0YCBpcyB0cnVlLCB1c2VyIGlzIGFsbG93ZWQgdG8gdHlwZSBiZXlvbmQgYG1heExlbmd0aGAsIGJ1dCBlcnJvciBzdGF0ZXMgYW5kIGNvdW50ZXIgbWVzc2FnZXMgc2hvd2luZ1xuICAgICAqIHRoZSBleGNlZWRlZCBjb3VudCBpcyBkaXNwbGF5ZWQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBtYXhMZW5ndGg6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgY291bnRlciBtZXNzYWdlIHNob3VsZCBiZSBzaG93bi5cbiAgICAgKiBJZiBgc2hvd0V4Y2VlZGVkVGV4dGAgaXMgZmFsc2UsIG5vIHN0YXRlIGNoYW5nZXMgb3IgZXJyb3IgbWVzc2FnZXMgYXJlIHNob3duLiBVc2VyIGlzIHNpbXBseSBub3QgYWxsb3dlZCB0byB0eXBlXG4gICAgICogYmV5b25kIHRoZSBgbWF4TGVuZ3RoYCBjaGFyYWN0ZXJzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0V4Y2VlZGVkVGV4dCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGlzIHRleHRhcmVhIGNhbiBncm93LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ3Jvd2luZyA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKiBzZXQgc3RhdGUgb2YgaW5kaXZpZHVhbCBjaGVja2JveC4gVXNlZCBieSBDQkcgdG8gc2V0IGNoZWNrYm94IHN0YXRlcyAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHN0YXRlVHlwZShzdGF0ZTogRm9ybVN0YXRlcykge1xuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignXCJzdGF0ZVR5cGVcIiBpcyBkZXByZWNhdGVkLiBVc2UgXCJzdGF0ZVwiIGluc3RlYWQnKTtcbiAgICAgICAgfVxuICAgICAgICBzdXBlci5zdGF0ZSA9IHN0YXRlO1xuICAgIH1cbiAgICBnZXQgc3RhdGVUeXBlKCk6IEZvcm1TdGF0ZXMge1xuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignXCJzdGF0ZVR5cGVcIiBpcyBkZXByZWNhdGVkLiBVc2UgXCJzdGF0ZVwiIGluc3RlYWQnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3VwZXIuc3RhdGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIHRleHRhcmVhJ3MgdmFsdWVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgc3VwZXIuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gd2hlbiBjdXN0b20gdmFsdWUgbm90IHNldCwgd2Ugc2hvdWxkIHNldC9yZXNldCBjb3VudGVyIHRvIG1heGxlbmd0aCB2YWx1ZSB3aGVuIGl0IGJlY29tZXMgdW5kZWZpbmVkXG4gICAgICAgICAgICB0aGlzLmV4Y2VlZGVkQ2hhckNvdW50ID0gdGhpcy5tYXhMZW5ndGggPyB0aGlzLm1heExlbmd0aCA6IDA7XG4gICAgICAgICAgICAvLyByZXNldCBzdGF0ZSBieSByZXNldHRpbmcgdmFsdWVcbiAgICAgICAgICAgIHN1cGVyLnNldFZhbHVlKCcnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgdmFsdWUoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdjb3VudGVyJylcbiAgICBfdGV4dGFyZWFDb3VudGVyPzogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGhhc1RleHRFeGNlZWRlZCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gZXhjZXNzIGNoYXJhY3RlciBjb3VudCAqL1xuICAgIGV4Y2VlZGVkQ2hhckNvdW50ID0gMDtcblxuICAgIC8qKiBAaGlkZGVuIGEgc3RyaW5nIHBsYWNlaG9sZGVyIHRoYXQgdG9nZ2xlcyBiZXR3ZWVuICdyZW1haW5pbmcnIGFuZCAnZXhjZXNzJyBmb3IgdGhlIHNlbGVjdCBJQ1UgZXhwcmVzc2lvbiAqL1xuICAgIGNvdW50ZXJFeGNlc3NPclJlbWFpbmluZyA9ICdyZW1haW5pbmcnO1xuXG4gICAgLyoqIEBoaWRkZW4gZmxhZyB0byBjaGVjayBpZiB0aGVyZSBpcyBhbiBpbml0aWFsIHZhbHVlIHNldCAqL1xuICAgIGlzVmFsdWVDdXN0b21TZXQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgLyoqIHRvIGtlZXAgdHJhY2sgb2YgbnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4gdGhlIHRleHRhcmVhICovXG4gICAgcHJpdmF0ZSBfdGV4dEFyZWFDaGFyQ291bnQgPSAwO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pc1Bhc3RlZCA9IGZhbHNlO1xuXG4gICAgLyoqIGZvciBpMThuIGNvdW50ZXIgbWVzc2FnZSB0cmFuc2xhdGlvbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVtYWluaW5nVGV4dCA9ICdyZW1haW5pbmcnO1xuICAgIC8qKiBmb3IgaTE4biBjb3VudGVyIG1lc3NhZ2UgdHJhbnNsYXRpb24gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGV4Y2Vzc1RleHQgPSAnZXhjZXNzJztcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAc2VlIFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbC5leHRyYUNvbnRlbnRIZWlnaHRQeFxuICAgICAqL1xuICAgIGdldCBleHRyYUNvbnRlbnRIZWlnaHRQeCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGV4dGFyZWFDb3VudGVyPy5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgZ2V0IF9zaG91bGRUcmFja1RleHRMaW1pdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWF4TGVuZ3RoID4gMCAmJiAhdGhpcy5zaG93RXhjZWVkZWRUZXh0O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgY29udHJvbENvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lcixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgbmdGb3JtOiBOZ0Zvcm0sXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIEBIb3N0KCkgQEluamVjdChGRF9GT1JNX0ZJRUxEKSBmb3JtRmllbGQ6IFBsYXRmb3JtRm9ybUZpZWxkLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBASG9zdCgpIEBJbmplY3QoRkRfRk9STV9GSUVMRF9DT05UUk9MKSBmb3JtQ29udHJvbDogUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sLFxuICAgICAgICBwcm90ZWN0ZWQgX3RleHRBcmVhQ29uZmlnOiBUZXh0QXJlYUNvbmZpZ1xuICAgICkge1xuICAgICAgICBzdXBlcihjZCwgZWxlbWVudFJlZiwgbmdDb250cm9sLCBjb250cm9sQ29udGFpbmVyLCBuZ0Zvcm0sIGZvcm1GaWVsZCwgZm9ybUNvbnRyb2wpO1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLndyYXBUeXBlIHx8IFZBTElEX1dSQVBfVFlQRVMuaW5kZXhPZih0aGlzLndyYXBUeXBlKSA9PT0gLTEpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVGV4dGFyZWEgd3JhcCB0eXBlICR7dGhpcy53cmFwVHlwZX0gaXMgbm90IHN1cHBvcnRlZGApO1xuICAgICAgICB9XG4gICAgICAgIC8vIGlmIG5vdCBjdXN0b20gc2V0LCBzZXQgY291bnRlciB0byBtYXggbGVuZ3RoIHZhbHVlLCBlbHNlIGl0IGNhbGN1bGF0ZXMgcmVtYWluaW5nL2V4Y2VlZGVkIGNoYXJhY3RlcnMuXG4gICAgICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5leGNlZWRlZENoYXJDb3VudCA9IHRoaXMubWF4TGVuZ3RoIHx8IDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmlzVmFsdWVDdXN0b21TZXQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIHNldCBtYXggaGVpZ2h0XG4gICAgICAgIHRoaXMuX3NldE1heEhlaWdodCgpO1xuXG4gICAgICAgIC8vIGRvbid0IHNldCBhbnkgZXJyb3Igc3RhdGUgaWYgd2UgYXJlIG5vdCBzaG93aW5nIGNvdW50ZXIgbWVzc2FnZVxuICAgICAgICBpZiAoIXRoaXMuX3Nob3VsZFRyYWNrVGV4dExpbWl0KSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgICAgIC8vIHdoZW4gdmFsdWUgaXMgY3VzdG9tIHNldChpbml0aWFsIHZhbHVlIGlzIHByZXNlbnQpLCB0aGUgaGVpZ2h0cyBkb24ndCBnZXRcbiAgICAgICAgLy8gc2V0IHRvIHNob3cgdGhlIGZ1bGwgdGV4dCBpbiB0aGUgbmdBZnRlclZpZXdJbml0IGltbWVkaWF0ZWx5LiB0aGVyZWZvcmUsIHdlIGNhbGwgYXV0b0dyb3dUZXh0QXJlYSBpblxuICAgICAgICAvLyBuZ0FmdGVyVmlld0NoZWNrZWQgYW5kIGRldGVjdCBjaGFuZ2VzIGFnYWluLlxuICAgICAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLmlzVmFsdWVDdXN0b21TZXQpIHtcbiAgICAgICAgICAgIHRoaXMuYXV0b0dyb3dUZXh0QXJlYSgpOyAvLyBpZiBhcHBsaWNhYmxlLCBncm93IHRoZSB0ZXh0YXJlYSB3aGVuIHZhbHVlIGlzIGN1c3RvbSBzZXRcbiAgICAgICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoJ3RleHRhcmVhOiBuZ0FmdGVyVmlld0NoZWNrZWQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiB3cml0ZSB2YWx1ZSBmb3IgQ29udHJvbFZhbHVlQWNjZXNzb3IgKi9cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSA/PyAnJyk7XG4gICAgICAgIHRoaXMudXBkYXRlQ291bnRlckludGVyYWN0aW9ucygpO1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCd0ZXh0YXJlYTogd3JpdGVWYWx1ZScpO1xuICAgIH1cblxuICAgIC8qKiB1cGRhdGUgdGhlIGNvdW50ZXIgbWVzc2FnZSBhbmQgcmVsYXRlZCBpbnRlcmFjdGlvbnMgKi9cbiAgICB1cGRhdGVDb3VudGVySW50ZXJhY3Rpb25zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90ZXh0QXJlYUNoYXJDb3VudCA9IHRoaXMudmFsdWU/Lmxlbmd0aCA/PyAwO1xuXG4gICAgICAgIGlmICh0aGlzLm1heExlbmd0aCkge1xuICAgICAgICAgICAgLy8gbmV3bHkgYWRkZWQgdG8gYXZvaWQgdW5uZWNlc3NhcnkgaXRlcmF0aW9uLCByZW1vdmUgaWYgaXNzdWUgZm91bmRcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGVMZW5ndGhPbkN1c3RvbVNldCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIGlmIGV4Y2VlZGVkIG1heGxlbmd0aCB3aGVuIHNldCBhcyBhIHZhbHVlIGluIGNvZGUsIGhpZ2hsaWdodCB0aGUgZXhjZWVkZWQgdGV4dC4gKi9cbiAgICB2YWxpZGF0ZUxlbmd0aE9uQ3VzdG9tU2V0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fdGV4dEFyZWFDaGFyQ291bnQgPiB0aGlzLm1heExlbmd0aCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2lzUGFzdGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UodGhpcy5tYXhMZW5ndGgsIHRoaXMuX3RleHRBcmVhQ2hhckNvdW50KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5jb3VudGVyRXhjZXNzT3JSZW1haW5pbmcgPSB0aGlzLmV4Y2Vzc1RleHQ7XG4gICAgICAgICAgICB0aGlzLmV4Y2VlZGVkQ2hhckNvdW50ID0gdGhpcy5fdGV4dEFyZWFDaGFyQ291bnQgLSB0aGlzLm1heExlbmd0aDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY291bnRlckV4Y2Vzc09yUmVtYWluaW5nID0gdGhpcy5yZW1haW5pbmdUZXh0O1xuICAgICAgICAgICAgdGhpcy5leGNlZWRlZENoYXJDb3VudCA9IHRoaXMubWF4TGVuZ3RoIC0gdGhpcy5fdGV4dEFyZWFDaGFyQ291bnQ7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9pc1Bhc3RlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKiBoYW5kbGUgZXhjZWVkZWQgbWF4bGVuZ3RoIGNhc2Ugd2hlbiB0ZXh0IGlzIHBhc3RlZCAqL1xuICAgIGhhbmRsZVBhc3RlSW50ZXJhY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2lzUGFzdGVkID0gdHJ1ZTtcblxuICAgICAgICAvLyBXcmFwcGVkIGluIHRpbWVvdXQgdG8gbWFrZSBzZWxlY3RpbmcgcmFuZ2Ugd29ya2luZ1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlQ291bnRlckludGVyYWN0aW9ucygpKTtcbiAgICB9XG5cbiAgICAvKiogaGFuZGxlIGF1dG8gZ3Jvd2luZyBvZiB0ZXh0YXJlYSAqL1xuICAgIGF1dG9Hcm93VGV4dEFyZWEoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmdyb3dpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gJ2luaGVyaXQnO1xuICAgICAgICAgICAgY29uc3QgdGV4dGFyZWFUb3RhbEhlaWdodCA9IHRoaXMuX2dldFRleHRhcmVhVG90YWxIZWlnaHQoKTtcbiAgICAgICAgICAgIGNvbnN0IG1heEhlaWdodCA9IHBhcnNlSW50KHRoaXMuX3RhcmdldEVsZW1lbnQuc3R5bGUubWF4SGVpZ2h0IGFzIHN0cmluZywgMTApO1xuICAgICAgICAgICAgaWYgKG1heEhlaWdodCkge1xuICAgICAgICAgICAgICAgIGlmICh0ZXh0YXJlYVRvdGFsSGVpZ2h0IDw9IG1heEhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl90YXJnZXRFbGVtZW50LnN0eWxlLmhlaWdodCA9IHRleHRhcmVhVG90YWxIZWlnaHQgKyAncHgnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5zdHlsZS5oZWlnaHQgPSB0aGlzLmhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gbWF4SGVpZ2h0ICsgJ3B4JztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gbm8gYm91bmQgbWF4IGhlaWdodCwga2VlcCBncm93aW5nXG4gICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5zdHlsZS5oZWlnaHQgPSB0ZXh0YXJlYVRvdGFsSGVpZ2h0ICsgJ3B4JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGdldCBsaW5lIGhlaWdodCBvZiB0ZXh0YXJlYVxuICAgICAqL1xuICAgIGdldFRleHRhcmVhTGluZUhlaWdodCgpOiBudW1iZXIge1xuICAgICAgICAvLyBHZXQgdGhlIGNvbXB1dGVkIHN0eWxlcyBmb3IgdGhlIGVsZW1lbnRcbiAgICAgICAgaWYgKHRoaXMuX3RhcmdldEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXB1dGVkID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5fdGFyZ2V0RWxlbWVudCk7XG5cbiAgICAgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgaGVpZ2h0XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQoY29tcHV0ZWQuZ2V0UHJvcGVydHlWYWx1ZSgnbGluZS1oZWlnaHQnKSwgMTApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAyMDsgLy8gZGVmYXVsdCBsaW5lIGhlaWdodCBpZiBub3RoaW5nIGlzIGRlZmluZWRcbiAgICB9XG5cbiAgICAvKiogd2hlbiBiYWNrcHJlc3Mgb3IgZGVsZXRlIGtleSBpcyBwcmVzc2VkIHdoZW4gc2hvd0V4Y2VlZGVkVGV4dCBmaWVsZCBpcyBub3Qgc2V0LCBzaW1wbHkgcmVtb3ZlIGV4Y2VzcyBjaGFyYWN0ZXJzLFxuICAgIC8qIGVsc2UgaGFuZGxlIGF1dG9ncm93IGNhc2VcbiAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSlcbiAgICBoYW5kbGVCYWNrUHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgLy8gaWYgbm90IHNob3dpbmcgZXhjZWVkZWQgdGV4dCBtZXNzYWdlL2ludGVyYWN0aW9ucyBvciBncm93aW5nLCBhbmQgY3VzdG9tIHZhbHVlIHNldFxuICAgICAgICBpZiAodGhpcy5ncm93aW5nKSB7XG4gICAgICAgICAgICB0aGlzLmF1dG9Hcm93VGV4dEFyZWEoKTtcbiAgICAgICAgICAgIHRoaXMuaXNWYWx1ZUN1c3RvbVNldCA9IGZhbHNlOyAvLyBzZXQgaXQgdG8gZmFsc2UgZmlyc3QgdGltZSBpdCBjb21lcyBoZXJlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX3Nob3VsZFRyYWNrVGV4dExpbWl0ICYmIEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbREVMRVRFLCBCQUNLU1BBQ0VdKSkge1xuICAgICAgICAgICAgLy8gZm9yIHRoZSBjdXN0b20gdmFsdWUgc2V0IGFuZCBzaG93RXhjZWVkZWRUZXh0PWZhbHNlIGNhc2UsIG9uIGFueSBrZXkgcHJlc3MsIHJlbW92ZSBleGNlc3MgY2hhcmFjdGVyc1xuICAgICAgICAgICAgaWYgKHRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl90ZXh0QXJlYUNoYXJDb3VudCA9IHRoaXMudmFsdWUubGVuZ3RoO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl90ZXh0QXJlYUNoYXJDb3VudCA+IHRoaXMubWF4TGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZSBleGNlc3MgY2hhcmFjdGVyc1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy52YWx1ZS5zdWJzdHJpbmcoMCwgdGhpcy5tYXhMZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzVmFsdWVDdXN0b21TZXQgPSBmYWxzZTsgLy8gc2luY2UgdmFsdWUgaXMgbm93IGNoYW5nZWQsIGl0IGlzIG5vIGxvbmdlciBjdXN0b20gc2V0XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2V0IHRoZSB1cGRhdGVkIHN0YXRlIHdoZW4gY2hhcmFjdGVyIGNvdW50IGJyZWFjaGVzIGBtYXhMZW5ndGhgXG4gICAgICovXG4gICAgZ2V0VXBkYXRlZFN0YXRlKCk6IEZvcm1TdGF0ZXMge1xuICAgICAgICBpZiAodGhpcy5fZ2V0Q29udGVudExlbmd0aCgpID4gdGhpcy5tYXhMZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuaGFzVGV4dEV4Y2VlZGVkID0gdHJ1ZTsgLy8gc2V0IGZsYWcgZm9yIGVycm9yIG1lc3NhZ2UgdG8gYWxzbyBjaGFuZ2UgYWNjb3JkaW5nbHlcbiAgICAgICAgICAgIHRoaXMuY291bnRlckV4Y2Vzc09yUmVtYWluaW5nID0gdGhpcy5leGNlc3NUZXh0O1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhhc1RleHRFeGNlZWRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNvdW50ZXJFeGNlc3NPclJlbWFpbmluZyA9IHRoaXMucmVtYWluaW5nVGV4dDtcblxuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZTsgLy8gcmV0dXJuIGFueSBvdGhlciBlcnJvcnMgZm91bmQgYnkgcGFyZW50IGZvcm0gZmllbGRcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBOYXRpdmUgZWxlbWVudCAgKi9cbiAgICBnZXQgX3RhcmdldEVsZW1lbnQoKTogSFRNTFRleHRBcmVhRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIGdldCB0aGUgbGVuZ3RoIG9mIHRoZSB0ZXh0YXJlYSBjb250ZW50ICovXG4gICAgcHJpdmF0ZSBfZ2V0Q29udGVudExlbmd0aCgpOiBudW1iZXIge1xuICAgICAgICBsZXQgY29udGVudExlbmd0aDtcbiAgICAgICAgaWYgKHRoaXMuX3RhcmdldEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnRlbnRMZW5ndGggPSB0aGlzLl90YXJnZXRFbGVtZW50LnZhbHVlLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgY29udGVudExlbmd0aCA9IHRoaXMudmFsdWUubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb250ZW50TGVuZ3RoO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIGdldCB0aGUgdG90YWwgaGVpZ2h0IGluY2x1ZGluZyBib3JkZXJzIGFuZCBzY3JvbGwgaGVpZ2h0ICovXG4gICAgcHJpdmF0ZSBfZ2V0VGV4dGFyZWFUb3RhbEhlaWdodCgpOiBudW1iZXIge1xuICAgICAgICAvLyBHZXQgdGhlIGNvbXB1dGVkIHN0eWxlcyBmb3IgdGhlIGVsZW1lbnRcbiAgICAgICAgY29uc3QgY29tcHV0ZWQgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLl90YXJnZXRFbGVtZW50KTtcbiAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBoZWlnaHRcbiAgICAgICAgY29uc3QgaGVpZ2h0ID1cbiAgICAgICAgICAgIHBhcnNlSW50KGNvbXB1dGVkLmdldFByb3BlcnR5VmFsdWUoJ2JvcmRlci10b3Atd2lkdGgnKSwgMTApICtcbiAgICAgICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQuc2Nyb2xsSGVpZ2h0ICtcbiAgICAgICAgICAgIHBhcnNlSW50KGNvbXB1dGVkLmdldFByb3BlcnR5VmFsdWUoJ2JvcmRlci1ib3R0b20td2lkdGgnKSwgMTApO1xuXG4gICAgICAgIHJldHVybiBoZWlnaHQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gc2V0IGluaXRpYWwgbWF4IGhlaWdodCAqKi9cbiAgICBwcml2YXRlIF9zZXRNYXhIZWlnaHQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmdyb3dpbmcgJiYgdGhpcy5fdGFyZ2V0RWxlbWVudCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZ3Jvd2luZ01heExpbmVzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5zdHlsZS5tYXhIZWlnaHQgPSB0aGlzLmdyb3dpbmdNYXhMaW5lcyAqIHRoaXMuZ2V0VGV4dGFyZWFMaW5lSGVpZ2h0KCkgKyAncHgnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuaGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5zdHlsZS5tYXhIZWlnaHQgPSB0aGlzLmhlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmdyb3dpbmdNYXhMaW5lcykge1xuICAgICAgICAgICAgICAgIC8vIG5vdGhpbmcgdG8gZG8gaGVyZS4gcm93cyBhdHRyaWJ1dGUgdGFrZXMgY2FyZS5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmhlaWdodCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gdGhpcy5oZWlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8dGV4dGFyZWFcbiAgICAjaW5wdXRFbGVtZW50UmVmXG4gICAgZmQtZm9ybS1jb250cm9sXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbYXR0ci5pZF09XCJpZFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRCeVwiXG4gICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJpZCArICctY291bnRlcidcIlxuICAgIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbYXR0ci5yb3dzXT1cImdyb3dpbmcgPyAyIDogaGVpZ2h0ID8gMiA6IGdyb3dpbmdNYXhMaW5lc1wiXG4gICAgW2F0dHIuY29sc109XCJjb2xzXCJcbiAgICBbYXR0ci53cmFwXT1cIndyYXBUeXBlXCJcbiAgICBbYXR0ci5tYXhsZW5ndGhdPVwiIXNob3dFeGNlZWRlZFRleHQgPyBtYXhMZW5ndGggOiBudWxsXCJcbiAgICBbYXR0ci5yZWFkb25seV09XCJyZWFkb25seSA/IHRydWUgOiBudWxsXCJcbiAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICBbc3RhdGVdPVwiZ2V0VXBkYXRlZFN0YXRlKClcIlxuICAgIChwYXN0ZSk9XCJoYW5kbGVQYXN0ZUludGVyYWN0aW9uKClcIlxuICAgIChibHVyKT1cIl9vbkZvY3VzQ2hhbmdlZChmYWxzZSlcIlxuICAgIChmb2N1cyk9XCJfb25Gb2N1c0NoYW5nZWQodHJ1ZSlcIlxuPjwvdGV4dGFyZWE+XG5cbjwhLS0gSUNVIHJlY29tbWVuZHMgZnVsbCB0ZXh0IGluIGZvcm1hdCAtLT5cbjxkaXZcbiAgICBjbGFzcz1cImZkLXRleHRhcmVhLWNvdW50ZXJcIlxuICAgICpuZ0lmPVwic2hvd0V4Y2VlZGVkVGV4dFwiXG4gICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICBhcmlhLWF0b21pYz1cInRydWVcIlxuICAgIFthdHRyLmlkXT1cImlkICsgJy1jb3VudGVyJ1wiXG4gICAgI2NvdW50ZXJcbj5cbiAgICA8IS0tIHJlbmRlciBzcGFjZXMgaW5zdGVhZCBvZiB0aGUgYWN0dWFsIHZhbHVlIHdoaWxlIHRyYW5zbGF0aW9uIHN0cmluZyBpcyBsb2FkaW5nIGluIG9yZGVyIHRvIGF2b2lkIGNvbnRlbnQganVtcHMgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvdW50ZXJFeGNlc3NPclJlbWFpbmluZyA9PT0gJ2V4Y2Vzcyc7IGVsc2UgY2hhcmFjdGVyc1JlbWFpbmluZ1wiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgW2lubmVySHRtbF09XCJcbiAgICAgICAgICAgICAgICAoZXhjZWVkZWRDaGFyQ291bnQgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgPyAncGxhdGZvcm1UZXh0YXJlYS5jb3VudGVyTWVzc2FnZUNoYXJhY3RlcnNPdmVyVGhlTGltaXRTaW5ndWxhcidcbiAgICAgICAgICAgICAgICAgICAgOiAncGxhdGZvcm1UZXh0YXJlYS5jb3VudGVyTWVzc2FnZUNoYXJhY3RlcnNPdmVyVGhlTGltaXRQbHVyYWwnXG4gICAgICAgICAgICAgICAgKSB8IGZkVHJhbnNsYXRlIDogeyBjb3VudDogZXhjZWVkZWRDaGFyQ291bnQgfSA6ICcmbmJzcDsmbmJzcDsnXG4gICAgICAgICAgICBcIlxuICAgICAgICA+PC9zcGFuPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjY2hhcmFjdGVyc1JlbWFpbmluZz5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIFtpbm5lckh0bWxdPVwiXG4gICAgICAgICAgICAgICAgKGV4Y2VlZGVkQ2hhckNvdW50ID09PSAxXG4gICAgICAgICAgICAgICAgICAgID8gJ3BsYXRmb3JtVGV4dGFyZWEuY291bnRlck1lc3NhZ2VDaGFyYWN0ZXJzUmVtYWluaW5nU2luZ3VsYXInXG4gICAgICAgICAgICAgICAgICAgIDogJ3BsYXRmb3JtVGV4dGFyZWEuY291bnRlck1lc3NhZ2VDaGFyYWN0ZXJzUmVtYWluaW5nUGx1cmFsJ1xuICAgICAgICAgICAgICAgICkgfCBmZFRyYW5zbGF0ZSA6IHsgY291bnQ6IGV4Y2VlZGVkQ2hhckNvdW50IH0gOiAnJm5ic3A7Jm5ic3A7J1xuICAgICAgICAgICAgXCJcbiAgICAgICAgPjwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
|
|
@@ -6,7 +6,7 @@ import { RadioButtonComponent } from '@fundamental-ngx/core/radio';
|
|
|
6
6
|
import { BaseComponent, isPresent } from '@fundamental-ngx/platform/shared';
|
|
7
7
|
import { ListConfig } from './list.config';
|
|
8
8
|
import { FdpListComponent } from './fdpListComponent.token';
|
|
9
|
-
import merge from 'lodash-es
|
|
9
|
+
import { merge } from 'lodash-es';
|
|
10
10
|
import { FD_LIST_UNREAD_INDICATOR } from '@fundamental-ngx/core/list';
|
|
11
11
|
import * as i0 from "@angular/core";
|
|
12
12
|
import * as i1 from "./list.config";
|
|
@@ -483,4 +483,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
|
|
|
483
483
|
type: HostListener,
|
|
484
484
|
args: ['focusout', ['$event']]
|
|
485
485
|
}] } });
|
|
486
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1saXN0LWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvbGlzdC9iYXNlLWxpc3QtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVyRCxPQUFPLEVBQWUsT0FBTyxFQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFFeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sS0FBSyxNQUFNLGlCQUFpQixDQUFDO0FBR3BDLE9BQU8sRUFBRSx3QkFBd0IsRUFBdUIsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBRTNGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxXQUFXLENBQUM7QUFDM0MsSUFBSSxjQUFjLEdBQUcsQ0FBQyxDQUFDO0FBR3ZCLE1BQU0sT0FBTyxjQUFjO0lBQTNCO1FBS0ksNEJBQTRCO1FBQzVCLFVBQUssR0FBMkIsRUFBRSxDQUFDO1FBQ25DOzs7V0FHRztRQUNILFNBQUksR0FBMEIsV0FBVyxDQUFDO0lBRzlDLENBQUM7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QUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0NoZWNrZWQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRU5URVIsIFNQQUNFIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcblxuaW1wb3J0IHsgQ29sb3JBY2NlbnQsIEtleVV0aWwsIFNpemUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NoZWNrYm94JztcbmltcG9ydCB7IFJhZGlvQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3JhZGlvJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIGlzUHJlc2VudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2hhcmVkJztcbmltcG9ydCB7IExpc3RDb25maWcgfSBmcm9tICcuL2xpc3QuY29uZmlnJztcbmltcG9ydCB7IEZkcExpc3RDb21wb25lbnQgfSBmcm9tICcuL2ZkcExpc3RDb21wb25lbnQudG9rZW4nO1xuaW1wb3J0IG1lcmdlIGZyb20gJ2xvZGFzaC1lcy9tZXJnZSc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2ljb24nO1xuaW1wb3J0IHsgRmRwTGlzdCwgTGlzdFR5cGUsIFNlbGVjdGlvblR5cGUgfSBmcm9tICcuL21vZGVscy9saXN0JztcbmltcG9ydCB7IEZEX0xJU1RfVU5SRUFEX0lORElDQVRPUiwgTGlzdFVucmVhZEluZGljYXRvciB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9saXN0JztcblxuZXhwb3J0IGNvbnN0IElTX0FDVElWRV9DTEFTUyA9ICdpcy1hY3RpdmUnO1xubGV0IG5leHRMaXN0SXRlbUlkID0gMDtcbmV4cG9ydCB0eXBlIFN0YXR1c1R5cGUgPSAnbmVnYXRpdmUnIHwgJ2NyaXRpY2FsJyB8ICdwb3NpdGl2ZScgfCAnaW5mb3JtYXRpdmUnO1xuXG5leHBvcnQgY2xhc3MgTGlzdEljb25Db25maWcge1xuICAgIC8qKiBUaGUgaWNvbiBuYW1lIHRvIGRpc3BsYXkuIFNlZSB0aGUgaWNvbiBwYWdlIGZvciB0aGUgbGlzdCBvZiBpY29uc1xuICAgICAqIGhlcmU6IGh0dHBzOi8vc2FwLmdpdGh1Yi5pby9mdW5kYW1lbnRhbC1uZ3gvaWNvblxuICAgICAqICovXG4gICAgZ2x5cGg6IEljb25Db21wb25lbnRbJ2dseXBoJ107XG4gICAgLyoqIHVzZXIncyBjdXN0b20gY2xhc3NlcyAqL1xuICAgIGNsYXNzOiBJY29uQ29tcG9uZW50WydjbGFzcyddID0gJyc7XG4gICAgLyoqXG4gICAgICogVGhlIGljb24gZm9udFxuICAgICAqIE9wdGlvbnMgaW5jbHVkZTogJ1NBUC1pY29ucycsICdCdXNpbmVzc1N1aXRlSW5BcHBTeW1ib2xzJyBhbmQgJ1NBUC1pY29ucy1UTlQnXG4gICAgICovXG4gICAgZm9udDogSWNvbkNvbXBvbmVudFsnZm9udCddID0gJ1NBUC1pY29ucyc7XG4gICAgLyoqIEFyaWEtbGFiZWwgZm9yIEljb24uICovXG4gICAgYXJpYUxhYmVsOiBJY29uQ29tcG9uZW50WydhcmlhTGFiZWwnXTtcbn1cblxuZXhwb3J0IGNsYXNzIExpc3RBdmF0YXJDb25maWcge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY2xhc3MgPSAnJztcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGFyaWFMYWJlbDogTnVsbGFibGU8c3RyaW5nPiA9IG51bGw7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBhcmlhTGFiZWxsZWRieTogTnVsbGFibGU8c3RyaW5nPiA9IG51bGw7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBsYWJlbDogTnVsbGFibGU8c3RyaW5nPiA9IG51bGw7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzaXplOiBTaXplID0gJ3MnO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2x5cGg6IE51bGxhYmxlPHN0cmluZz4gPSBudWxsO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgem9vbUdseXBoOiBOdWxsYWJsZTxzdHJpbmc+ID0gbnVsbDtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNpcmNsZSA9IGZhbHNlO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdHJhbnNwYXJlbnQgPSBmYWxzZTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnRhaW4gPSBmYWxzZTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHBsYWNlaG9sZGVyID0gZmFsc2U7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB0aWxlID0gZmFsc2U7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBib3JkZXIgPSBmYWxzZTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbG9yQWNjZW50OiBOdWxsYWJsZTxDb2xvckFjY2VudD4gPSBudWxsO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmFuZG9tID0gZmFsc2U7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjbGlja2FibGUgPSBmYWxzZTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGltYWdlOiBOdWxsYWJsZTxzdHJpbmc+ID0gbnVsbDtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGFsdGVySWNvbjogTnVsbGFibGU8c3RyaW5nPiA9IG51bGw7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBiYWNrdXBJbWFnZTogTnVsbGFibGU8c3RyaW5nPiA9IG51bGw7XG59XG5cbi8qKlxuICogQmFzZSBpbnRlcmZhY2UgZm9yIGEgbGlzdCB2YXJpYW50IGRlZmluaXRpb24uXG4gKiBDYXB0dXJlcyBhIGxpc3QgaXRlbSB0ZW1wbGF0ZSBkZWZpbml0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1EZWYge1xuICAgIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RBZHZhbmNlZERlc2NyaXB0aW9uIHtcbiAgICB0ZXh0OiBzdHJpbmc7XG4gICAgYXJpYUxhYmVsPzogc3RyaW5nO1xuICAgIHRpdGxlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBMaXN0RGVzY3JpcHRpb24gPSBzdHJpbmcgfCBMaXN0QWR2YW5jZWREZXNjcmlwdGlvbjtcblxuZXhwb3J0IGNsYXNzIE1vZGlmeUl0ZW1FdmVudCB7XG4gICAgLyoqIExpc3QgSXRlbSBjb21wb25lbnQgKi9cbiAgICBzb3VyY2U6IEJhc2VMaXN0SXRlbTtcbiAgICAvKiogQWN0aW9uICovXG4gICAgYWN0aW9uOiAnZGVsZXRlJyB8ICdlZGl0Jztcbn1cblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW2ZkcEl0ZW1EZWZdJyB9KVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgY2xhc3MgTGlzdEl0ZW1EZWYgaW1wbGVtZW50cyBJdGVtRGVmIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKC8qKiBAZG9jcy1wcml2YXRlICovIHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55Pikge31cbn1cblxuLyoqXG4gKiBUaGlzIGNsYXNzIGNvbnRhaW5zIGNvbW1vbiBwcm9wZXJ0aWVzIHVzZWQgYWNyb3NzIGxpc3QgSXRlbSBjb21wb25lbnRzLlxuICogdGhpcyBjYW4gYmUgZXh0ZW5kZWQgdG8gcmVkdWNlIHRoZSBjb2RlIGR1cGxpY2F0aW9uIGFjcm9zcyBsaXN0IEl0ZW0gY29tcG9uZW50cy5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgQmFzZUxpc3RJdGVtIGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25EZXN0cm95IHtcbiAgICAvKiogZGVmaW5lIGxhYmVsIGZvciBzY3JlZW4gcmVhZGVyICovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWxsZWRCeTogc3RyaW5nO1xuXG4gICAgLyoqIGRlZmluZSBsZXZlbCBvZiBpdGVtIGZvciBzY3JlZW4gcmVhZGVyICovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGV2ZWw6IG51bWJlcjtcblxuICAgIC8qKiBkZWZpbmUgcG9zaXRpb24gb2YgaXRlbSBmb3Igc2NyZWVuIHJlYWRlciAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYVBvc2luZXQ6IG51bWJlcjtcblxuICAgIC8qKiBBdmF0YXIgY29tcG9uZW50IHByb3BlcnRpZXMuIEBzZWUgQXZhdGFyQ29tcG9uZW50IGZvciBtb3JlIGRldGFpbHMgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBhdmF0YXIodmFsdWU6IFBhcnRpYWw8TGlzdEF2YXRhckNvbmZpZz4gfCBzdHJpbmcpIHtcbiAgICAgICAgdmFsdWUgPSB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8geyBpbWFnZTogdmFsdWUgfSA6IHZhbHVlO1xuICAgICAgICB0aGlzLl9hdmF0YXJDb25maWcgPSBtZXJnZShuZXcgTGlzdEF2YXRhckNvbmZpZygpLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IGF2YXRhcigpOiBMaXN0QXZhdGFyQ29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2F2YXRhckNvbmZpZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqIFVzZSBgYXZhdGFyYCBwcm9wZXJ0eSBmb3IgbW9yZSBmbGV4aWJsZSBjb25maWd1cmF0aW9uLlxuICAgICAqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogQXR0cmlidXRlIHRvIGhvbGQgYXZhdGFyIHBhdGhcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBhdmF0YXJTcmModmFsdWU6IE51bGxhYmxlPHN0cmluZz4pIHtcbiAgICAgICAgdGhpcy5fYXZhdGFyQ29uZmlnID0gbWVyZ2UodGhpcy5fYXZhdGFyQ29uZmlnLCB7IGltYWdlOiB2YWx1ZSB9KTtcbiAgICB9XG5cbiAgICBnZXQgYXZhdGFyU3JjKCk6IE51bGxhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hdmF0YXI/LmltYWdlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICogVXNlIGBhdmF0YXJgIHByb3BlcnR5IGZvciBtb3JlIGZsZXhpYmxlIGNvbmZpZ3VyYXRpb24uXG4gICAgICpcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBBdHRyaWJ1dGUgdG8gaG9sZCBhdmF0YXIgdGl0bGUgZm9yIGExMXlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBhdmF0YXJUaXRsZSh2YWx1ZTogTnVsbGFibGU8c3RyaW5nPikge1xuICAgICAgICB0aGlzLl9hdmF0YXJDb25maWcgPSBtZXJnZSh0aGlzLl9hdmF0YXJDb25maWcsIHsgYXJpYUxhYmVsOiB2YWx1ZSB9KTtcbiAgICB9XG5cbiAgICBnZXQgYXZhdGFyVGl0bGUoKTogTnVsbGFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmF2YXRhcj8uYXJpYUxhYmVsO1xuICAgIH1cblxuICAgIC8qKiBhdHRyaWJ1dGUgdG8gaG9sZCBjb3VudGVyIHZhbHVlICovXG4gICAgQElucHV0KClcbiAgICBjb3VudGVyPzogc3RyaW5nO1xuXG4gICAgLyoqIERlc2NyaXB0aW9uIG9mIHRoZSB0aXRsZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGVzY3JpcHRpb246IE51bGxhYmxlPExpc3REZXNjcmlwdGlvbj47XG5cbiAgICAvKiogVG8gaW52ZXJ0IHRoZSBzdGF0dXMgb2Ygc2Vjb25kYXJ5IHRleHQgKi9cbiAgICBASW5wdXQoKVxuICAgIGludmVydGVkID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGVyZSBpcyBubyBkYXRhIGluc2lkZSBsaXN0IGl0ZW0gKi9cbiAgICBASW5wdXQoKVxuICAgIG5vRGF0YVRleHQ6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSB0eXBlIG9mIHRoZSBzZWNvbmRhcnkgdGV4dC5mZC1saXN0X19ieWxpbmUtcmlnaHQtLSpcbiAgICAgKiBDYW4gYmUgb25lIG9mICpwb3NpdGl2ZSosICpuZWdhdGl2ZSosICppbmZvcm1hdGl2ZSosICpjcml0aWNhbCosICpuZXV0cmFsXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzdGF0dXNUeXBlPzogU3RhdHVzVHlwZTtcblxuICAgIC8qKiBhdHRyaWJ1dGUgdG8gaG9sZCBzZWNvbmRhcnkgdGV4dCovXG4gICAgQElucHV0KClcbiAgICBzZWNvbmRhcnk6IE51bGxhYmxlPExpc3REZXNjcmlwdGlvbj47XG5cbiAgICAvKipcbiAgICAgKiBFbmFibGluZyB0aGlzIGZsYWcgY2F1c2VzIGZvcmNpbmcgc2Vjb25kYXJ5IGl0ZW0gZGlyZWN0aXZlIHRvIG5vdCB3cmFwIHRleHQsXG4gICAgICogaW5zdGVhZCBvZiB3cmFwcGluZyB0aGVyZSB3aWxsIGJlIHRleHQgdHJ1bmNhdGlvblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2Vjb25kYXJ5V3JhcD86IGJvb2xlYW47XG5cbiAgICAvKiogVG9vbHRpcCB0ZXh0IHRvIHNob3cgd2hlbiBmb2N1c2VkIGZvciBtb3JlIHRoYW4gdGltZW91dCB2YWx1ZSovXG4gICAgQElucHV0KClcbiAgICB0aXRsZT86IHN0cmluZztcblxuICAgIC8qKiBVc2VkIGZvciBwbGFjZWluZyBuYXZpZ2F0aW9uIExpbmsgKi9cbiAgICBASW5wdXQoKVxuICAgIGxpbms6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKipcbiAgICAgKiBFbmFibGluZyB0aGlzIGZsYWcgY2F1c2VzIGZvcmNpbmcgdGl0bGUgZGlyZWN0aXZlIHRvIG5vdCB3cmFwIHRleHQsXG4gICAgICogaW5zdGVhZCBvZiB3cmFwcGluZyB0aGVyZSB3aWxsIGJlIHRleHQgdHJ1bmNhdGlvblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGl0bGVXcmFwPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIFNlZSBgaWNvbmAgaW5wdXQgcHJvcGVydHkgZm9yIG1vcmUgZmxleGlibGUgaWNvbiBjb25maWd1cmF0aW9uLlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIGF0dHJpYnV0ZSB0byBob2xkIHByaW1hcnkvdGl0bGUgaWNvblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRpdGxlSWNvbih2YWx1ZTogTnVsbGFibGU8c3RyaW5nPikge1xuICAgICAgICB0aGlzLl9pY29uQ29uZmlnID0gbWVyZ2UobmV3IExpc3RJY29uQ29uZmlnKCksIHsgZ2x5cGg6IHZhbHVlLCBhcmlhTGFiZWw6IHZhbHVlIH0pO1xuICAgIH1cblxuICAgIGdldCB0aXRsZUljb24oKTogTnVsbGFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pY29uQ29uZmlnLmdseXBoO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIExpc3QgaXRlbSBpY29uIGNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgaWNvbih2YWx1ZTogUGFydGlhbDxMaXN0SWNvbkNvbmZpZz4pIHtcbiAgICAgICAgdGhpcy5faWNvbkNvbmZpZyA9IG1lcmdlKG5ldyBMaXN0SWNvbkNvbmZpZygpLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IGljb24oKTogTGlzdEljb25Db25maWcge1xuICAgICAgICByZXR1cm4gdGhpcy5faWNvbkNvbmZpZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBzZXRzIHRoZSBsaXN0IGl0ZW0gaW4gYm9sZCB0ZXh0XG4gICAgICogd2hpY2ggcmVzcHJlc2VudHMgdW5yZWFkIGRhdGFcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHVuUmVhZDogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gZGlzcGxheSB1bnJlYWQgbm90aWZpY2F0aW9uIGNpcmNsZS5cbiAgICAgKi9cbiAgICBnZXQgZGlzcGxheVVucmVhZE5vdGlmaWNhdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5fbGlzdD8udW5yZWFkSW5kaWNhdG9yO1xuICAgIH1cblxuICAgIC8qKiByYWRpbyBidXR0b24gdmFsdWUgKi9cbiAgICBASW5wdXQoKVxuICAgIHZhbHVlOiBzdHJpbmc7XG5cbiAgICAvKiogQnkgZGVmYXVsdCBzZWxlY3Rpb24gbW9kZSBpcyAnbm9uZScgKi9cbiAgICBASW5wdXQoKVxuICAgIHNlbGVjdGlvbk1vZGU6IFNlbGVjdGlvblR5cGUgPSAnbm9uZSc7XG5cbiAgICAvKiogQnkgZGVmYXVsdCBzZWxlY3Rpb24gbW9kZSBpcyAnYWN0aXZlJyAqL1xuICAgIEBJbnB1dCgpXG4gICAgbGlzdFR5cGU6IExpc3RUeXBlID0gJ2FjdGl2ZSc7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIE5hdmlnYXRpb24gbW9kZSBpcyBpbmNsdWRlZCB0byBsaXN0IGNvbXBvbmVudFxuICAgICAqIGZvciBhbGwgdGhlIGl0ZW1zXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBuYXZpZ2F0ZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgTmF2aWdhdGlvbiBtb2RlIGlzIGluY2x1ZGVkIHRvIGxpc3QgY29tcG9uZW50XG4gICAgICogb25seSBhIHN1YnNldCBvZiB0aGUgbGlzdCBpdGVtcyBhcmUgbmF2aWdhYmxlXG4gICAgICogeW91IHNob3VsZCBpbmRpY2F0ZSB0aG9zZSBieSBkaXNwbGF5aW5nIGEgbmF2aWdhdGlvbiBhcnJvd1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbmF2aWdhdGlvbkluZGljYXRvciA9IGZhbHNlO1xuXG4gICAgLyoqIHJvbGUgKi9cbiAgICBASW5wdXQoKVxuICAgIHJvbGUgPSAnb3B0aW9uJztcblxuICAgIC8qKlxuICAgICAqIGV2ZW50IGVtaXR0ZXIgZm9yIHNlbGVjdGVkIGl0ZW1cbiAgICAgKiBzZXByYXRlIFBSIGZvciBjdXN0b20gZXZlbnRcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBpdGVtU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE1vZGlmeUl0ZW1FdmVudD4oKTtcblxuICAgIC8qKlxuICAgICAqIEV2ZW50IGVtaXR0ZWQgZm9yIHNlbGVjdGVkIGl0ZW0gdGhyb3VnaCB0aGUgY2hlY2tib3guXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgaXRlbUNoZWNrYm94U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE1vZGlmeUl0ZW1FdmVudD4oKTtcblxuICAgIC8qKiBFdmVudCBzZW50IHdoZW4gZGVsZXRlLCBkZXRhaWxzIG9yIGFueSBvdGhlciBhY3Rpb24gYnV0dG9ucyBhcmUgY2xpY2tlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGJ1dHRvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE1vZGlmeUl0ZW1FdmVudD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnbGlzdEl0ZW0nLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgICBsaXN0SXRlbTogRWxlbWVudFJlZjxIVE1MTElFbGVtZW50PjtcblxuICAgIC8qKiBBY2Nlc3MgY2hpbGQgZWxlbWVudCwgZm9yIGNoZWNraW5nIGxpbmsgY29udGVudCovXG4gICAgQFZpZXdDaGlsZCgnbGlua0VsZW1lbnQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgICBhbmNob3I6IEVsZW1lbnRSZWY8SFRNTExpbmtFbGVtZW50PjtcblxuICAgIC8qKiBBY2Nlc3MgZWRpdCBidXR0b24qL1xuICAgIEBWaWV3Q2hpbGQoJ2VkaXQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgICBlZGl0OiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcblxuICAgIC8qKiBBY2Nlc3MgZGVsZXRlIGJ1dHRvbiovXG4gICAgQFZpZXdDaGlsZCgnZGVsZXRlJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gICAgZGVsZXRlOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChDaGVja2JveENvbXBvbmVudClcbiAgICBjaGVja2JveENvbXBvbmVudDogQ2hlY2tib3hDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoUmFkaW9CdXR0b25Db21wb25lbnQpXG4gICAgcmFkaW9CdXR0b25Db21wb25lbnQ6IFJhZGlvQnV0dG9uQ29tcG9uZW50O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFdoZXRoZXIgQnkgbGluZSBtb2RlIGlzIGluY2x1ZGVkIHRvIGxpc3QgY29tcG9uZW50LCBieSB3aGljaFxuICAgICAqIGxpc3QgaXRlbSB3aWxsIGFjY29tZGF0ZSB0aGUgZGF0YSBpbiAyIGNvbHVtblxuICAgICAqL1xuICAgIF9oYXNCeUxpbmUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBXaGV0aGVyIGxpc3RpdGVtIGhhcyByb3cgbGV2ZWwgc2VsZWN0aW9uIGVuYWJsZWRcbiAgICAgKi9cbiAgICByb3dTZWxlY3Rpb246IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogV2hldGhlciBsaXN0aXRlbSBpcyBzZWxlY3RlZCBiaW5kZWQgdG8gdGVtcGxhdGVcbiAgICAgKi9cbiAgICBfc2VsZWN0ZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBnZXQgdGhlIGZvY3VzZWQgZWxlbWVudCBmb3Iga2V5IG1hbmFnZXJcbiAgICAgKi9cbiAgICBfZm9jdXNlZDogYm9vbGVhbjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdENvbXBvbmVudCA9IGluamVjdDxGZHBMaXN0PihGZHBMaXN0Q29tcG9uZW50KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYXZhdGFyQ29uZmlnOiBMaXN0QXZhdGFyQ29uZmlnID0gbmV3IExpc3RBdmF0YXJDb25maWcoKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaWNvbkNvbmZpZzogTGlzdEljb25Db25maWcgPSBuZXcgTGlzdEljb25Db25maWcoKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwdWJsaWMgaXRlbUVsOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgcHJvdGVjdGVkIF9saXN0Q29uZmlnOiBMaXN0Q29uZmlnLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEZEX0xJU1RfVU5SRUFEX0lORElDQVRPUikgcHJpdmF0ZSByZWFkb25seSBfbGlzdDogTGlzdFVucmVhZEluZGljYXRvclxuICAgICkge1xuICAgICAgICBzdXBlcihfY2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiByYWRpbyBidXR0b24gc2VsZWN0ZWQgdmFsdWUgYmluZGVkIHRvIHRlbXBsYXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBfc2VsZWN0aW9uVmFsdWU6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogU2VsZWN0aW9uIHZhbHVlICovXG4gICAgQElucHV0KClcbiAgICBzZXQgc2VsZWN0aW9uVmFsdWUodmFsdWU6IE51bGxhYmxlPHN0cmluZz4pIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fc2VsZWN0aW9uVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGlvblZhbHVlICE9PSB1bmRlZmluZWQgJiYgdGhpcy5zZWxlY3Rpb25WYWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWQgPSB0aGlzLnZhbHVlID09PSB0aGlzLl9zZWxlY3Rpb25WYWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgc2VsZWN0aW9uVmFsdWUoKTogTnVsbGFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3Rpb25WYWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogU2hvdyBuYXZpZ2F0aW9uIGZvciBzaW5nbGUgbGlzdFxuICAgICAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlkID0gYGZkcC1saXN0LWl0ZW0tJHtuZXh0TGlzdEl0ZW1JZCsrfWA7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5pdGVtU2VsZWN0ZWQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbGlzdENvbXBvbmVudC5fc2V0dXBMaXN0SXRlbSh0aGlzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogVG8gZGV0ZWN0IGNoYW5nZXMgZnJvbSBwYXJlbnQtbGlzdGJveCB0byBsaXN0IGl0ZW1cbiAgICAgKiBmb3IgZXhhbXBsZSBzaW5nbGUsIG11bHRpIG9wdGlvbiBzZWxlY3Rpb24gdGhvc2UgZGV0YWlsc1xuICAgICAqIHdpbGwgYmUgZGVkdWN0ZWQgaW4gbGlzdCBpdGVtXG4gICAgICovXG4gICAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjdXJyZW50SXRlbTogTnVsbGFibGU8SFRNTExJRWxlbWVudD4gPSB0aGlzLml0ZW1FbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2xpJyk7XG4gICAgICAgIGlmICghY3VycmVudEl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGN1cnJlbnRJdGVtLnNldEF0dHJpYnV0ZSgncm9sZScsICdvcHRpb24nKTtcbiAgICAgICAgY29uc3QgcGFyZW50Tm9kZSA9IGN1cnJlbnRJdGVtLnBhcmVudE5vZGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCAmJiBjdXJyZW50SXRlbS5wYXJlbnROb2RlO1xuICAgICAgICBpZiAocGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgcGFyZW50Tm9kZS5yZW1vdmVBdHRyaWJ1dGUoJ3RpdGxlJyk7XG4gICAgICAgICAgICBwYXJlbnROb2RlLnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucm93U2VsZWN0aW9uIHx8IHRoaXMuc2VsZWN0aW9uTW9kZSA9PT0gJ211bHRpJyB8fCB0aGlzLnNlbGVjdGlvbk1vZGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICAgICAgICBjdXJyZW50SXRlbS5zZXRBdHRyaWJ1dGUoJ2FyaWEtc2VsZWN0ZWQnLCBgJHshIXRoaXMuX3NlbGVjdGVkfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBDcmVhdGVkIGZvY3VzIG9uIGxpc3QgaXRlbSBvbiBtb3VzZWNsaWNrLFxuICAgICAqIFVwLGRvd24gYXJyb3cgcHJlc3NcbiAgICAgKi9cbiAgICBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5saXN0SXRlbS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJvZ3JhbW1hdGljYWxseSBzZXQgc2VsZWN0ZWQgc3RhdGUgb2YgdGhlIGxpc3QgaXRlbS5cbiAgICAgKiBAcGFyYW0gc2VsZWN0ZWQgV2hldGhlciB0aGUgbGlzdCBpdGVtIGlzIHNlbGVjdGVkXG4gICAgICovXG4gICAgc2V0U2VsZWN0ZWQoc2VsZWN0ZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHNlbGVjdGVkID09PSB0aGlzLl9zZWxlY3RlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IE1vZGlmeUl0ZW1FdmVudCgpO1xuICAgICAgICBldmVudC5zb3VyY2UgPSB0aGlzO1xuICAgICAgICB0aGlzLl9zZWxlY3RlZCA9IHNlbGVjdGVkO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIE9uIGl0ZW0gY2xpY2sgZXZlbnQgd2lsbCBiZSBlbWl0dGVkXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIF9vbkl0ZW1DbGljaygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucm93U2VsZWN0aW9uICYmIHRoaXMuc2VsZWN0aW9uTW9kZSA9PT0gJ211bHRpJykge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWQgPSAhdGhpcy5fc2VsZWN0ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBldmVudCA9IG5ldyBNb2RpZnlJdGVtRXZlbnQoKTtcbiAgICAgICAgZXZlbnQuc291cmNlID0gdGhpcztcbiAgICAgICAgdGhpcy5fZm9jdXNlZCA9ICF0aGlzLl9mb2N1c2VkO1xuICAgICAgICB0aGlzLml0ZW1TZWxlY3RlZC5lbWl0KGV2ZW50KTtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBfaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIUtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbRU5URVIsIFNQQUNFXSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmNoZWNrYm94Q29tcG9uZW50IHx8IHRoaXMucmFkaW9CdXR0b25Db21wb25lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuX29uS2V5Ym9hcmRDbGljayhldmVudCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFuY2hvcj8ubmF0aXZlRWxlbWVudC5jbGljaygpO1xuXG4gICAgICAgIGlmICh0aGlzLnJvd1NlbGVjdGlvbikge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWQgPSAhdGhpcy5fc2VsZWN0ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCAkZXZlbnQgPSBuZXcgTW9kaWZ5SXRlbUV2ZW50KCk7XG4gICAgICAgICRldmVudC5zb3VyY2UgPSB0aGlzO1xuICAgICAgICB0aGlzLml0ZW1TZWxlY3RlZC5lbWl0KCRldmVudCk7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBIYW5kbGVyIGZvciBtb3VzZSBldmVudHNcbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gICAgX29uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY2hlY2tib3hDb21wb25lbnQgJiYgIXRoaXMuYW5jaG9yKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuY2hlY2tib3hDb21wb25lbnQuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSkge1xuICAgICAgICAgICAgICAgIC8vIGNsaWNraW5nIG9uIHRoZSBjaGVja2JveCBpcyBub3Qgc3VwcHJlc3NlZFxuICAgICAgICAgICAgICAgIC8vIHNvIHdlIHNob3VsZCBvbmx5IHByb2Nlc3MgY2xpY2tzIGlmIGNsaWNrZWQgb24gdGhlIGxpc3QtaXRlbSwgbm90IGNoZWNrYm94IGl0c2VsZlxuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tib3hDb21wb25lbnQubmV4dFZhbHVlKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMucmFkaW9CdXR0b25Db21wb25lbnQ/LnZhbHVlQ2hhbmdlKGV2ZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICBjb25zdCAkZXZlbnQgPSBuZXcgTW9kaWZ5SXRlbUV2ZW50KCk7XG4gICAgICAgICRldmVudC5zb3VyY2UgPSB0aGlzO1xuICAgICAgICB0aGlzLml0ZW1TZWxlY3RlZC5lbWl0KCRldmVudCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIGhlbHBzIHRvIGF2b2lkIG11bHRpIHJvd3MgYWN0aXZlIGNsYXNzIHdpdGggbmF2aWdhdGlvblxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgWyckZXZlbnQnXSlcbiAgICBfb25CbHVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChpc1ByZXNlbnQodGhpcy5hbmNob3IpICYmICFLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0VOVEVSLCBTUEFDRV0pKSB7XG4gICAgICAgICAgICB0aGlzLmFuY2hvci5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoSVNfQUNUSVZFX0NMQVNTKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBvbiBrZXlkb3duIGFwcGVuZCBhY3RpdmUgc3R5bGVzIG9uIGFjdGlvbmFibGUgaXRlbVxuICAgICAqL1xuICAgIF9vbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzUHJlc2VudCh0aGlzLmFuY2hvcikgJiYgS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtFTlRFUiwgU1BBQ0VdKSkge1xuICAgICAgICAgICAgdGhpcy5hbmNob3IubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKElTX0FDVElWRV9DTEFTUyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogb24ga2V5dXAgcmVtb3ZlIGFjdGl2ZSBzdHlsZXMgZnJvbSBhY3Rpb25hYmxlIGl0ZW1cbiAgICAgKi9cbiAgICBfb25LZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoaXNQcmVzZW50KHRoaXMuYW5jaG9yKSAmJiBLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0VOVEVSLCBTUEFDRV0pKSB7XG4gICAgICAgICAgICB0aGlzLmFuY2hvci5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoSVNfQUNUSVZFX0NMQVNTKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uQ2hlY2tib3hNb2RlbENoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgTW9kaWZ5SXRlbUV2ZW50KCk7XG4gICAgICAgIGV2ZW50LnNvdXJjZSA9IHRoaXM7XG4gICAgICAgIHRoaXMuaXRlbUNoZWNrYm94U2VsZWN0ZWQuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEhhbmRsZXMgYWN0aW9uIGJ1dHRvbiBjbGlja1xuICAgICAqL1xuICAgIF9vbkFjdGlvbkJ1dHRvbkNsaWNrKGFjdGlvbjogJ2RlbGV0ZScgfCAnZWRpdCcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgTW9kaWZ5SXRlbUV2ZW50KCk7XG4gICAgICAgIGV2ZW50LnNvdXJjZSA9IHRoaXM7XG4gICAgICAgIGV2ZW50LmFjdGlvbiA9IGFjdGlvbjtcbiAgICAgICAgdGhpcy5idXR0b25DbGlja2VkLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBIYW5kbGVzIGFjdGlvbiBidXR0b24gY2xpY2sgb24ga2V5IHByZXNzXG4gICAgICovXG4gICAgX29uS2V5QnV0dG9uQ2xpY2soZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGFjdGlvbjogJ2RlbGV0ZScgfCAnZWRpdCcpOiB2b2lkIHtcbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbRU5URVIsIFNQQUNFXSkpIHtcbiAgICAgICAgICAgIHRoaXMuX29uQWN0aW9uQnV0dG9uQ2xpY2soYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2lzQWR2YW5jZWRUZXh0KHRleHQ6IExpc3REZXNjcmlwdGlvbik6IHRleHQgaXMgTGlzdEFkdmFuY2VkRGVzY3JpcHRpb24ge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHRleHQgIT09ICdzdHJpbmcnICYmICEhdGV4dC50ZXh0O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfb25LZXlib2FyZENsaWNrKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hlY2tib3hDb21wb25lbnQ/Lm5leHRWYWx1ZSgpO1xuICAgICAgICB0aGlzLnJhZGlvQnV0dG9uQ29tcG9uZW50Py52YWx1ZUNoYW5nZShldmVudCk7XG5cbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIGNvbnN0ICRldmVudCA9IG5ldyBNb2RpZnlJdGVtRXZlbnQoKTtcbiAgICAgICAgJGV2ZW50LnNvdXJjZSA9IHRoaXM7XG4gICAgICAgIHRoaXMuaXRlbVNlbGVjdGVkLmVtaXQoJGV2ZW50KTtcbiAgICB9XG59XG4iXX0=
|
|
486
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1saXN0LWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvbGlzdC9iYXNlLWxpc3QtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVyRCxPQUFPLEVBQWUsT0FBTyxFQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFFeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHbEMsT0FBTyxFQUFFLHdCQUF3QixFQUF1QixNQUFNLDRCQUE0QixDQUFDOzs7QUFFM0YsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLFdBQVcsQ0FBQztBQUMzQyxJQUFJLGNBQWMsR0FBRyxDQUFDLENBQUM7QUFHdkIsTUFBTSxPQUFPLGNBQWM7SUFBM0I7UUFLSSw0QkFBNEI7UUFDNUIsVUFBSyxHQUEyQixFQUFFLENBQUM7UUFDbkM7OztXQUdHO1FBQ0gsU0FBSSxHQUEwQixXQUFXLENBQUM7SUFHOUMsQ0FBQztDQUFBO0FBRUQsTUFBTSxPQUFPLGdCQUFnQjtJQUE3QjtRQUNJLGNBQWM7UUFDZCxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsY0FBYztRQUNkLGNBQVMsR0FBcUIsSUFBSSxDQUFDO1FBQ25DLGNBQWM7UUFDZCxtQkFBYyxHQUFxQixJQUFJLENBQUM7UUFDeEMsY0FBYztRQUNkLFVBQUssR0FBcUIsSUFBSSxDQUFDO1FBQy9CLGNBQWM7UUFDZCxTQUFJLEdBQVMsR0FBRyxDQUFDO1FBQ2pCLGNBQWM7UUFDZCxVQUFLLEdBQXFCLElBQUksQ0FBQztRQUMvQixjQUFjO1FBQ2QsY0FBUyxHQUFxQixJQUFJLENBQUM7UUFDbkMsY0FBYztRQUNkLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixjQUFjO1FBQ2QsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsY0FBYztRQUNkLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsY0FBYztRQUNkLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGNBQWM7UUFDZCxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2IsY0FBYztRQUNkLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixjQUFjO1FBQ2QsZ0JBQVcsR0FBMEIsSUFBSSxDQUFDO1FBQzFDLGNBQWM7UUFDZCxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YsY0FBYztRQUNkLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsY0FBYztRQUNkLFVBQUssR0FBcUIsSUFBSSxDQUFDO1FBQy9CLGNBQWM7UUFDZCxjQUFTLEdBQXFCLElBQUksQ0FBQztRQUNuQyxjQUFjO1FBQ2QsZ0JBQVcsR0FBcUIsSUFBSSxDQUFDO0lBQ3pDLENBQUM7Q0FBQTtBQWtCRCxNQUFNLE9BQU8sZUFBZTtDQUszQjtBQUdELGtFQUFrRTtBQUNsRSxNQUFNLE9BQU8sV0FBVztJQUNwQixjQUFjO0lBQ2QsWUFBWSxvQkFBb0IsQ0FBUSxXQUE2QjtRQUE3QixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7SUFBRyxDQUFDOzhHQUZoRSxXQUFXO2tHQUFYLFdBQVc7OzJGQUFYLFdBQVc7a0JBRnZCLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFOztBQU92Qzs7O0dBR0c7QUFFSCxNQUFNLE9BQU8sWUFBYSxTQUFRLGFBQWE7SUFhM0MseUVBQXlFO0lBQ3pFLElBQ0ksTUFBTSxDQUFDLEtBQXlDO1FBQ2hELEtBQUssR0FBRyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDN0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsSUFBSSxnQkFBZ0IsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILElBQ0ksU0FBUyxDQUFDLEtBQXVCO1FBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsSUFDSSxXQUFXLENBQUMsS0FBdUI7UUFDbkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDO0lBQ2xDLENBQUM7SUFtREQ7Ozs7T0FJRztJQUNILElBQ0ksU0FBUyxDQUFDLEtBQXVCO1FBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLElBQUksY0FBYyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQ0ksSUFBSSxDQUFDLEtBQThCO1FBQ25DLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLElBQUksY0FBYyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQUksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBU0Q7O09BRUc7SUFDSCxJQUFJLHlCQUF5QjtRQUN6QixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQztJQUN6QyxDQUFDO0lBNEdELGNBQWM7SUFDZCxZQUNjLGtCQUFxQyxFQUN4QyxNQUErQixFQUM1QixXQUF1QixFQUM4QixLQUEwQjtRQUV6RixLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUxoQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3hDLFdBQU0sR0FBTixNQUFNLENBQXlCO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQzhCLFVBQUssR0FBTCxLQUFLLENBQXFCO1FBaE03Riw2Q0FBNkM7UUFFN0MsYUFBUSxHQUFHLEtBQUssQ0FBQztRQW1GakIsMENBQTBDO1FBRTFDLGtCQUFhLEdBQWtCLE1BQU0sQ0FBQztRQUV0Qyw0Q0FBNEM7UUFFNUMsYUFBUSxHQUFhLFFBQVEsQ0FBQztRQUU5Qjs7O1dBR0c7UUFFSCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCOzs7O1dBSUc7UUFFSCx3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFFNUIsV0FBVztRQUVYLFNBQUksR0FBRyxRQUFRLENBQUM7UUFFaEI7OztXQUdHO1FBRUgsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUVuRDs7V0FFRztRQUVILHlCQUFvQixHQUFHLElBQUksWUFBWSxFQUFtQixDQUFDO1FBRTNELDhFQUE4RTtRQUU5RSxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFtQixDQUFDO1FBMEJwRDs7OztXQUlHO1FBQ0gsZUFBVSxHQUFHLEtBQUssQ0FBQztRQVFuQjs7O1dBR0c7UUFDSCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBUWxCLGNBQWM7UUFDTixtQkFBYyxHQUFHLE1BQU0sQ0FBVSxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTNELGNBQWM7UUFDTixrQkFBYSxHQUFxQixJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFFakUsY0FBYztRQUNOLGdCQUFXLEdBQW1CLElBQUksY0FBYyxFQUFFLENBQUM7SUFVM0QsQ0FBQztJQVFELHNCQUFzQjtJQUN0QixJQUNJLGNBQWMsQ0FBQyxLQUF1QjtRQUN0QyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM3QixJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssSUFBSSxFQUFFO1lBQ3BFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsZUFBZSxDQUFDO1NBQ3hEO0lBQ0wsQ0FBQztJQUNELElBQUksY0FBYztRQUNkLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUTtRQUNKLElBQUksQ0FBQyxFQUFFLEdBQUcsaUJBQWlCLGNBQWMsRUFBRSxFQUFFLENBQUM7SUFDbEQsQ0FBQztJQUVELGNBQWM7SUFDZCxXQUFXO1FBQ1AsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELGNBQWM7SUFDZCxlQUFlO1FBQ1gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsa0JBQWtCO1FBQ2QsTUFBTSxXQUFXLEdBQTRCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzRixJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2QsT0FBTztTQUNWO1FBRUQsV0FBVyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDM0MsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLFVBQVUsWUFBWSxXQUFXLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQztRQUMzRixJQUFJLFVBQVUsRUFBRTtZQUNaLFVBQVUsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDcEMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUM1QztRQUVELElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLE9BQU8sSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLFFBQVEsRUFBRTtZQUN4RixXQUFXLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztTQUNwRTtRQUVELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUs7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVyxDQUFDLFFBQWlCO1FBQ3pCLElBQUksUUFBUSxLQUFLLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDN0IsT0FBTztTQUNWO1FBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUNwQyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMxQixJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7T0FHRztJQUVILFlBQVk7UUFDUixJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxPQUFPLEVBQUU7WUFDckQsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7U0FDcEM7UUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3BDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsY0FBYztJQUVkLG9CQUFvQixDQUFDLEtBQW9CO1FBQ3JDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQzNDLE9BQU87U0FDVjtRQUVELElBQUksSUFBSSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUNyRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDaEM7UUFFRCxJQUFJLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUVuQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7U0FDcEM7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3JDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7OztPQUdHO0lBRUgsUUFBUSxDQUFDLEtBQWlCO1FBQ3RCLElBQUksSUFBSSxDQUFDLGlCQUFpQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUN4QyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFjLENBQUMsRUFBRTtnQkFDakYsNkNBQTZDO2dCQUM3QyxvRkFBb0Y7Z0JBQ3BGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQzthQUN0QztZQUVELElBQUksQ0FBQyxvQkFBb0IsRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDakQ7UUFFRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUNyQyxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7OztPQUdHO0lBRUgsT0FBTyxDQUFDLEtBQW9CO1FBQ3hCLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDckUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUMvRDtJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSCxVQUFVLENBQUMsS0FBb0I7UUFDM0IsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDcEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUM1RDtJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSCxRQUFRLENBQUMsS0FBb0I7UUFDekIsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDcEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUMvRDtJQUNMLENBQUM7SUFFRCxjQUFjO0lBQ2Qsc0JBQXNCO1FBQ2xCLE1BQU0sS0FBSyxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDcEMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsb0JBQW9CLENBQUMsTUFBeUI7UUFDMUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUNwQyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNwQixLQUFLLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsaUJBQWlCLENBQUMsS0FBb0IsRUFBRSxNQUF5QjtRQUM3RCxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDMUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3JDO0lBQ0wsQ0FBQztJQUVELGNBQWM7SUFDZCxlQUFlLENBQUMsSUFBcUI7UUFDakMsT0FBTyxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkQsQ0FBQztJQUVELGNBQWM7SUFDTixnQkFBZ0IsQ0FBQyxLQUFvQjtRQUN6QyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU5QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUNyQyxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxDQUFDOzhHQW5lUSxZQUFZLHVHQWdRRyx3QkFBd0I7a0dBaFF2QyxZQUFZLHMrQkFrTVUsVUFBVSxnR0FJUCxVQUFVLHVGQUlqQixVQUFVLDJGQUlSLFVBQVUsaUVBSTVCLGlCQUFpQix1RkFJakIsb0JBQW9COzsyRkF0TnRCLFlBQVk7a0JBRHhCLFNBQVM7OzBCQWlRRCxRQUFROzswQkFBSSxNQUFNOzJCQUFDLHdCQUF3Qjs0Q0E3UGhELGNBQWM7c0JBRGIsS0FBSztnQkFLTixTQUFTO3NCQURSLEtBQUs7Z0JBS04sV0FBVztzQkFEVixLQUFLO2dCQUtGLE1BQU07c0JBRFQsS0FBSztnQkFrQkYsU0FBUztzQkFEWixLQUFLO2dCQWlCRixXQUFXO3NCQURkLEtBQUs7Z0JBV04sT0FBTztzQkFETixLQUFLO2dCQUtOLFdBQVc7c0JBRFYsS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUs7Z0JBS04sVUFBVTtzQkFEVCxLQUFLO2dCQVFOLFVBQVU7c0JBRFQsS0FBSztnQkFLTixTQUFTO3NCQURSLEtBQUs7Z0JBUU4sYUFBYTtzQkFEWixLQUFLO2dCQUtOLEtBQUs7c0JBREosS0FBSztnQkFLTixJQUFJO3NCQURILEtBQUs7Z0JBUU4sU0FBUztzQkFEUixLQUFLO2dCQVNGLFNBQVM7c0JBRFosS0FBSztnQkFhRixJQUFJO3NCQURQLEtBQUs7Z0JBY04sTUFBTTtzQkFETCxLQUFLO2dCQVlOLEtBQUs7c0JBREosS0FBSztnQkFLTixhQUFhO3NCQURaLEtBQUs7Z0JBS04sUUFBUTtzQkFEUCxLQUFLO2dCQVFOLFNBQVM7c0JBRFIsS0FBSztnQkFTTixtQkFBbUI7c0JBRGxCLEtBQUs7Z0JBS04sSUFBSTtzQkFESCxLQUFLO2dCQVFOLFlBQVk7c0JBRFgsTUFBTTtnQkFPUCxvQkFBb0I7c0JBRG5CLE1BQU07Z0JBS1AsYUFBYTtzQkFEWixNQUFNO2dCQUtQLFFBQVE7c0JBRFAsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUszQyxNQUFNO3NCQURMLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFLOUMsSUFBSTtzQkFESCxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBS3ZDLE1BQU07c0JBREwsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUt6QyxpQkFBaUI7c0JBRGhCLFNBQVM7dUJBQUMsaUJBQWlCO2dCQUs1QixvQkFBb0I7c0JBRG5CLFNBQVM7dUJBQUMsb0JBQW9CO2dCQXVEM0IsY0FBYztzQkFEakIsS0FBSztnQkFxRk4sWUFBWTtzQkFEWCxZQUFZO3VCQUFDLE9BQU87Z0JBZXJCLG9CQUFvQjtzQkFEbkIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBMkJuQyxRQUFRO3NCQURQLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQXVCakMsT0FBTztzQkFETixZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFTlRFUiwgU1BBQ0UgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuXG5pbXBvcnQgeyBDb2xvckFjY2VudCwgS2V5VXRpbCwgU2l6ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvY2hlY2tib3gnO1xuaW1wb3J0IHsgUmFkaW9CdXR0b25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvcmFkaW8nO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCwgaXNQcmVzZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zaGFyZWQnO1xuaW1wb3J0IHsgTGlzdENvbmZpZyB9IGZyb20gJy4vbGlzdC5jb25maWcnO1xuaW1wb3J0IHsgRmRwTGlzdENvbXBvbmVudCB9IGZyb20gJy4vZmRwTGlzdENvbXBvbmVudC50b2tlbic7XG5pbXBvcnQgeyBtZXJnZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2ljb24nO1xuaW1wb3J0IHsgRmRwTGlzdCwgTGlzdFR5cGUsIFNlbGVjdGlvblR5cGUgfSBmcm9tICcuL21vZGVscy9saXN0JztcbmltcG9ydCB7IEZEX0xJU1RfVU5SRUFEX0lORElDQVRPUiwgTGlzdFVucmVhZEluZGljYXRvciB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9saXN0JztcblxuZXhwb3J0IGNvbnN0IElTX0FDVElWRV9DTEFTUyA9ICdpcy1hY3RpdmUnO1xubGV0IG5leHRMaXN0SXRlbUlkID0gMDtcbmV4cG9ydCB0eXBlIFN0YXR1c1R5cGUgPSAnbmVnYXRpdmUnIHwgJ2NyaXRpY2FsJyB8ICdwb3NpdGl2ZScgfCAnaW5mb3JtYXRpdmUnO1xuXG5leHBvcnQgY2xhc3MgTGlzdEljb25Db25maWcge1xuICAgIC8qKiBUaGUgaWNvbiBuYW1lIHRvIGRpc3BsYXkuIFNlZSB0aGUgaWNvbiBwYWdlIGZvciB0aGUgbGlzdCBvZiBpY29uc1xuICAgICAqIGhlcmU6IGh0dHBzOi8vc2FwLmdpdGh1Yi5pby9mdW5kYW1lbnRhbC1uZ3gvaWNvblxuICAgICAqICovXG4gICAgZ2x5cGg6IEljb25Db21wb25lbnRbJ2dseXBoJ107XG4gICAgLyoqIHVzZXIncyBjdXN0b20gY2xhc3NlcyAqL1xuICAgIGNsYXNzOiBJY29uQ29tcG9uZW50WydjbGFzcyddID0gJyc7XG4gICAgLyoqXG4gICAgICogVGhlIGljb24gZm9udFxuICAgICAqIE9wdGlvbnMgaW5jbHVkZTogJ1NBUC1pY29ucycsICdCdXNpbmVzc1N1aXRlSW5BcHBTeW1ib2xzJyBhbmQgJ1NBUC1pY29ucy1UTlQnXG4gICAgICovXG4gICAgZm9udDogSWNvbkNvbXBvbmVudFsnZm9udCddID0gJ1NBUC1pY29ucyc7XG4gICAgLyoqIEFyaWEtbGFiZWwgZm9yIEljb24uICovXG4gICAgYXJpYUxhYmVsOiBJY29uQ29tcG9uZW50WydhcmlhTGFiZWwnXTtcbn1cblxuZXhwb3J0IGNsYXNzIExpc3RBdmF0YXJDb25maWcge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY2xhc3MgPSAnJztcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGFyaWFMYWJlbDogTnVsbGFibGU8c3RyaW5nPiA9IG51bGw7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBhcmlhTGFiZWxsZWRieTogTnVsbGFibGU8c3RyaW5nPiA9IG51bGw7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBsYWJlbDogTnVsbGFibGU8c3RyaW5nPiA9IG51bGw7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzaXplOiBTaXplID0gJ3MnO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2x5cGg6IE51bGxhYmxlPHN0cmluZz4gPSBudWxsO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgem9vbUdseXBoOiBOdWxsYWJsZTxzdHJpbmc+ID0gbnVsbDtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNpcmNsZSA9IGZhbHNlO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdHJhbnNwYXJlbnQgPSBmYWxzZTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnRhaW4gPSBmYWxzZTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHBsYWNlaG9sZGVyID0gZmFsc2U7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB0aWxlID0gZmFsc2U7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBib3JkZXIgPSBmYWxzZTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbG9yQWNjZW50OiBOdWxsYWJsZTxDb2xvckFjY2VudD4gPSBudWxsO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmFuZG9tID0gZmFsc2U7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjbGlja2FibGUgPSBmYWxzZTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGltYWdlOiBOdWxsYWJsZTxzdHJpbmc+ID0gbnVsbDtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGFsdGVySWNvbjogTnVsbGFibGU8c3RyaW5nPiA9IG51bGw7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBiYWNrdXBJbWFnZTogTnVsbGFibGU8c3RyaW5nPiA9IG51bGw7XG59XG5cbi8qKlxuICogQmFzZSBpbnRlcmZhY2UgZm9yIGEgbGlzdCB2YXJpYW50IGRlZmluaXRpb24uXG4gKiBDYXB0dXJlcyBhIGxpc3QgaXRlbSB0ZW1wbGF0ZSBkZWZpbml0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1EZWYge1xuICAgIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RBZHZhbmNlZERlc2NyaXB0aW9uIHtcbiAgICB0ZXh0OiBzdHJpbmc7XG4gICAgYXJpYUxhYmVsPzogc3RyaW5nO1xuICAgIHRpdGxlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBMaXN0RGVzY3JpcHRpb24gPSBzdHJpbmcgfCBMaXN0QWR2YW5jZWREZXNjcmlwdGlvbjtcblxuZXhwb3J0IGNsYXNzIE1vZGlmeUl0ZW1FdmVudCB7XG4gICAgLyoqIExpc3QgSXRlbSBjb21wb25lbnQgKi9cbiAgICBzb3VyY2U6IEJhc2VMaXN0SXRlbTtcbiAgICAvKiogQWN0aW9uICovXG4gICAgYWN0aW9uOiAnZGVsZXRlJyB8ICdlZGl0Jztcbn1cblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW2ZkcEl0ZW1EZWZdJyB9KVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgY2xhc3MgTGlzdEl0ZW1EZWYgaW1wbGVtZW50cyBJdGVtRGVmIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKC8qKiBAZG9jcy1wcml2YXRlICovIHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55Pikge31cbn1cblxuLyoqXG4gKiBUaGlzIGNsYXNzIGNvbnRhaW5zIGNvbW1vbiBwcm9wZXJ0aWVzIHVzZWQgYWNyb3NzIGxpc3QgSXRlbSBjb21wb25lbnRzLlxuICogdGhpcyBjYW4gYmUgZXh0ZW5kZWQgdG8gcmVkdWNlIHRoZSBjb2RlIGR1cGxpY2F0aW9uIGFjcm9zcyBsaXN0IEl0ZW0gY29tcG9uZW50cy5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgQmFzZUxpc3RJdGVtIGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25EZXN0cm95IHtcbiAgICAvKiogZGVmaW5lIGxhYmVsIGZvciBzY3JlZW4gcmVhZGVyICovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWxsZWRCeTogc3RyaW5nO1xuXG4gICAgLyoqIGRlZmluZSBsZXZlbCBvZiBpdGVtIGZvciBzY3JlZW4gcmVhZGVyICovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGV2ZWw6IG51bWJlcjtcblxuICAgIC8qKiBkZWZpbmUgcG9zaXRpb24gb2YgaXRlbSBmb3Igc2NyZWVuIHJlYWRlciAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYVBvc2luZXQ6IG51bWJlcjtcblxuICAgIC8qKiBBdmF0YXIgY29tcG9uZW50IHByb3BlcnRpZXMuIEBzZWUgQXZhdGFyQ29tcG9uZW50IGZvciBtb3JlIGRldGFpbHMgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBhdmF0YXIodmFsdWU6IFBhcnRpYWw8TGlzdEF2YXRhckNvbmZpZz4gfCBzdHJpbmcpIHtcbiAgICAgICAgdmFsdWUgPSB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8geyBpbWFnZTogdmFsdWUgfSA6IHZhbHVlO1xuICAgICAgICB0aGlzLl9hdmF0YXJDb25maWcgPSBtZXJnZShuZXcgTGlzdEF2YXRhckNvbmZpZygpLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IGF2YXRhcigpOiBMaXN0QXZhdGFyQ29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2F2YXRhckNvbmZpZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqIFVzZSBgYXZhdGFyYCBwcm9wZXJ0eSBmb3IgbW9yZSBmbGV4aWJsZSBjb25maWd1cmF0aW9uLlxuICAgICAqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogQXR0cmlidXRlIHRvIGhvbGQgYXZhdGFyIHBhdGhcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBhdmF0YXJTcmModmFsdWU6IE51bGxhYmxlPHN0cmluZz4pIHtcbiAgICAgICAgdGhpcy5fYXZhdGFyQ29uZmlnID0gbWVyZ2UodGhpcy5fYXZhdGFyQ29uZmlnLCB7IGltYWdlOiB2YWx1ZSB9KTtcbiAgICB9XG5cbiAgICBnZXQgYXZhdGFyU3JjKCk6IE51bGxhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hdmF0YXI/LmltYWdlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICogVXNlIGBhdmF0YXJgIHByb3BlcnR5IGZvciBtb3JlIGZsZXhpYmxlIGNvbmZpZ3VyYXRpb24uXG4gICAgICpcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBBdHRyaWJ1dGUgdG8gaG9sZCBhdmF0YXIgdGl0bGUgZm9yIGExMXlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBhdmF0YXJUaXRsZSh2YWx1ZTogTnVsbGFibGU8c3RyaW5nPikge1xuICAgICAgICB0aGlzLl9hdmF0YXJDb25maWcgPSBtZXJnZSh0aGlzLl9hdmF0YXJDb25maWcsIHsgYXJpYUxhYmVsOiB2YWx1ZSB9KTtcbiAgICB9XG5cbiAgICBnZXQgYXZhdGFyVGl0bGUoKTogTnVsbGFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmF2YXRhcj8uYXJpYUxhYmVsO1xuICAgIH1cblxuICAgIC8qKiBhdHRyaWJ1dGUgdG8gaG9sZCBjb3VudGVyIHZhbHVlICovXG4gICAgQElucHV0KClcbiAgICBjb3VudGVyPzogc3RyaW5nO1xuXG4gICAgLyoqIERlc2NyaXB0aW9uIG9mIHRoZSB0aXRsZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGVzY3JpcHRpb246IE51bGxhYmxlPExpc3REZXNjcmlwdGlvbj47XG5cbiAgICAvKiogVG8gaW52ZXJ0IHRoZSBzdGF0dXMgb2Ygc2Vjb25kYXJ5IHRleHQgKi9cbiAgICBASW5wdXQoKVxuICAgIGludmVydGVkID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGVyZSBpcyBubyBkYXRhIGluc2lkZSBsaXN0IGl0ZW0gKi9cbiAgICBASW5wdXQoKVxuICAgIG5vRGF0YVRleHQ6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSB0eXBlIG9mIHRoZSBzZWNvbmRhcnkgdGV4dC5mZC1saXN0X19ieWxpbmUtcmlnaHQtLSpcbiAgICAgKiBDYW4gYmUgb25lIG9mICpwb3NpdGl2ZSosICpuZWdhdGl2ZSosICppbmZvcm1hdGl2ZSosICpjcml0aWNhbCosICpuZXV0cmFsXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzdGF0dXNUeXBlPzogU3RhdHVzVHlwZTtcblxuICAgIC8qKiBhdHRyaWJ1dGUgdG8gaG9sZCBzZWNvbmRhcnkgdGV4dCovXG4gICAgQElucHV0KClcbiAgICBzZWNvbmRhcnk6IE51bGxhYmxlPExpc3REZXNjcmlwdGlvbj47XG5cbiAgICAvKipcbiAgICAgKiBFbmFibGluZyB0aGlzIGZsYWcgY2F1c2VzIGZvcmNpbmcgc2Vjb25kYXJ5IGl0ZW0gZGlyZWN0aXZlIHRvIG5vdCB3cmFwIHRleHQsXG4gICAgICogaW5zdGVhZCBvZiB3cmFwcGluZyB0aGVyZSB3aWxsIGJlIHRleHQgdHJ1bmNhdGlvblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2Vjb25kYXJ5V3JhcD86IGJvb2xlYW47XG5cbiAgICAvKiogVG9vbHRpcCB0ZXh0IHRvIHNob3cgd2hlbiBmb2N1c2VkIGZvciBtb3JlIHRoYW4gdGltZW91dCB2YWx1ZSovXG4gICAgQElucHV0KClcbiAgICB0aXRsZT86IHN0cmluZztcblxuICAgIC8qKiBVc2VkIGZvciBwbGFjZWluZyBuYXZpZ2F0aW9uIExpbmsgKi9cbiAgICBASW5wdXQoKVxuICAgIGxpbms6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKipcbiAgICAgKiBFbmFibGluZyB0aGlzIGZsYWcgY2F1c2VzIGZvcmNpbmcgdGl0bGUgZGlyZWN0aXZlIHRvIG5vdCB3cmFwIHRleHQsXG4gICAgICogaW5zdGVhZCBvZiB3cmFwcGluZyB0aGVyZSB3aWxsIGJlIHRleHQgdHJ1bmNhdGlvblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGl0bGVXcmFwPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIFNlZSBgaWNvbmAgaW5wdXQgcHJvcGVydHkgZm9yIG1vcmUgZmxleGlibGUgaWNvbiBjb25maWd1cmF0aW9uLlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIGF0dHJpYnV0ZSB0byBob2xkIHByaW1hcnkvdGl0bGUgaWNvblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRpdGxlSWNvbih2YWx1ZTogTnVsbGFibGU8c3RyaW5nPikge1xuICAgICAgICB0aGlzLl9pY29uQ29uZmlnID0gbWVyZ2UobmV3IExpc3RJY29uQ29uZmlnKCksIHsgZ2x5cGg6IHZhbHVlLCBhcmlhTGFiZWw6IHZhbHVlIH0pO1xuICAgIH1cblxuICAgIGdldCB0aXRsZUljb24oKTogTnVsbGFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pY29uQ29uZmlnLmdseXBoO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIExpc3QgaXRlbSBpY29uIGNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgaWNvbih2YWx1ZTogUGFydGlhbDxMaXN0SWNvbkNvbmZpZz4pIHtcbiAgICAgICAgdGhpcy5faWNvbkNvbmZpZyA9IG1lcmdlKG5ldyBMaXN0SWNvbkNvbmZpZygpLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IGljb24oKTogTGlzdEljb25Db25maWcge1xuICAgICAgICByZXR1cm4gdGhpcy5faWNvbkNvbmZpZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBzZXRzIHRoZSBsaXN0IGl0ZW0gaW4gYm9sZCB0ZXh0XG4gICAgICogd2hpY2ggcmVzcHJlc2VudHMgdW5yZWFkIGRhdGFcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHVuUmVhZDogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gZGlzcGxheSB1bnJlYWQgbm90aWZpY2F0aW9uIGNpcmNsZS5cbiAgICAgKi9cbiAgICBnZXQgZGlzcGxheVVucmVhZE5vdGlmaWNhdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5fbGlzdD8udW5yZWFkSW5kaWNhdG9yO1xuICAgIH1cblxuICAgIC8qKiByYWRpbyBidXR0b24gdmFsdWUgKi9cbiAgICBASW5wdXQoKVxuICAgIHZhbHVlOiBzdHJpbmc7XG5cbiAgICAvKiogQnkgZGVmYXVsdCBzZWxlY3Rpb24gbW9kZSBpcyAnbm9uZScgKi9cbiAgICBASW5wdXQoKVxuICAgIHNlbGVjdGlvbk1vZGU6IFNlbGVjdGlvblR5cGUgPSAnbm9uZSc7XG5cbiAgICAvKiogQnkgZGVmYXVsdCBzZWxlY3Rpb24gbW9kZSBpcyAnYWN0aXZlJyAqL1xuICAgIEBJbnB1dCgpXG4gICAgbGlzdFR5cGU6IExpc3RUeXBlID0gJ2FjdGl2ZSc7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIE5hdmlnYXRpb24gbW9kZSBpcyBpbmNsdWRlZCB0byBsaXN0IGNvbXBvbmVudFxuICAgICAqIGZvciBhbGwgdGhlIGl0ZW1zXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBuYXZpZ2F0ZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgTmF2aWdhdGlvbiBtb2RlIGlzIGluY2x1ZGVkIHRvIGxpc3QgY29tcG9uZW50XG4gICAgICogb25seSBhIHN1YnNldCBvZiB0aGUgbGlzdCBpdGVtcyBhcmUgbmF2aWdhYmxlXG4gICAgICogeW91IHNob3VsZCBpbmRpY2F0ZSB0aG9zZSBieSBkaXNwbGF5aW5nIGEgbmF2aWdhdGlvbiBhcnJvd1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbmF2aWdhdGlvbkluZGljYXRvciA9IGZhbHNlO1xuXG4gICAgLyoqIHJvbGUgKi9cbiAgICBASW5wdXQoKVxuICAgIHJvbGUgPSAnb3B0aW9uJztcblxuICAgIC8qKlxuICAgICAqIGV2ZW50IGVtaXR0ZXIgZm9yIHNlbGVjdGVkIGl0ZW1cbiAgICAgKiBzZXByYXRlIFBSIGZvciBjdXN0b20gZXZlbnRcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBpdGVtU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE1vZGlmeUl0ZW1FdmVudD4oKTtcblxuICAgIC8qKlxuICAgICAqIEV2ZW50IGVtaXR0ZWQgZm9yIHNlbGVjdGVkIGl0ZW0gdGhyb3VnaCB0aGUgY2hlY2tib3guXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgaXRlbUNoZWNrYm94U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE1vZGlmeUl0ZW1FdmVudD4oKTtcblxuICAgIC8qKiBFdmVudCBzZW50IHdoZW4gZGVsZXRlLCBkZXRhaWxzIG9yIGFueSBvdGhlciBhY3Rpb24gYnV0dG9ucyBhcmUgY2xpY2tlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGJ1dHRvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE1vZGlmeUl0ZW1FdmVudD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnbGlzdEl0ZW0nLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgICBsaXN0SXRlbTogRWxlbWVudFJlZjxIVE1MTElFbGVtZW50PjtcblxuICAgIC8qKiBBY2Nlc3MgY2hpbGQgZWxlbWVudCwgZm9yIGNoZWNraW5nIGxpbmsgY29udGVudCovXG4gICAgQFZpZXdDaGlsZCgnbGlua0VsZW1lbnQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgICBhbmNob3I6IEVsZW1lbnRSZWY8SFRNTExpbmtFbGVtZW50PjtcblxuICAgIC8qKiBBY2Nlc3MgZWRpdCBidXR0b24qL1xuICAgIEBWaWV3Q2hpbGQoJ2VkaXQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgICBlZGl0OiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcblxuICAgIC8qKiBBY2Nlc3MgZGVsZXRlIGJ1dHRvbiovXG4gICAgQFZpZXdDaGlsZCgnZGVsZXRlJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gICAgZGVsZXRlOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChDaGVja2JveENvbXBvbmVudClcbiAgICBjaGVja2JveENvbXBvbmVudDogQ2hlY2tib3hDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoUmFkaW9CdXR0b25Db21wb25lbnQpXG4gICAgcmFkaW9CdXR0b25Db21wb25lbnQ6IFJhZGlvQnV0dG9uQ29tcG9uZW50O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFdoZXRoZXIgQnkgbGluZSBtb2RlIGlzIGluY2x1ZGVkIHRvIGxpc3QgY29tcG9uZW50LCBieSB3aGljaFxuICAgICAqIGxpc3QgaXRlbSB3aWxsIGFjY29tZGF0ZSB0aGUgZGF0YSBpbiAyIGNvbHVtblxuICAgICAqL1xuICAgIF9oYXNCeUxpbmUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBXaGV0aGVyIGxpc3RpdGVtIGhhcyByb3cgbGV2ZWwgc2VsZWN0aW9uIGVuYWJsZWRcbiAgICAgKi9cbiAgICByb3dTZWxlY3Rpb246IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogV2hldGhlciBsaXN0aXRlbSBpcyBzZWxlY3RlZCBiaW5kZWQgdG8gdGVtcGxhdGVcbiAgICAgKi9cbiAgICBfc2VsZWN0ZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBnZXQgdGhlIGZvY3VzZWQgZWxlbWVudCBmb3Iga2V5IG1hbmFnZXJcbiAgICAgKi9cbiAgICBfZm9jdXNlZDogYm9vbGVhbjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdENvbXBvbmVudCA9IGluamVjdDxGZHBMaXN0PihGZHBMaXN0Q29tcG9uZW50KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYXZhdGFyQ29uZmlnOiBMaXN0QXZhdGFyQ29uZmlnID0gbmV3IExpc3RBdmF0YXJDb25maWcoKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaWNvbkNvbmZpZzogTGlzdEljb25Db25maWcgPSBuZXcgTGlzdEljb25Db25maWcoKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwdWJsaWMgaXRlbUVsOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgcHJvdGVjdGVkIF9saXN0Q29uZmlnOiBMaXN0Q29uZmlnLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEZEX0xJU1RfVU5SRUFEX0lORElDQVRPUikgcHJpdmF0ZSByZWFkb25seSBfbGlzdDogTGlzdFVucmVhZEluZGljYXRvclxuICAgICkge1xuICAgICAgICBzdXBlcihfY2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiByYWRpbyBidXR0b24gc2VsZWN0ZWQgdmFsdWUgYmluZGVkIHRvIHRlbXBsYXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBfc2VsZWN0aW9uVmFsdWU6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogU2VsZWN0aW9uIHZhbHVlICovXG4gICAgQElucHV0KClcbiAgICBzZXQgc2VsZWN0aW9uVmFsdWUodmFsdWU6IE51bGxhYmxlPHN0cmluZz4pIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fc2VsZWN0aW9uVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGlvblZhbHVlICE9PSB1bmRlZmluZWQgJiYgdGhpcy5zZWxlY3Rpb25WYWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWQgPSB0aGlzLnZhbHVlID09PSB0aGlzLl9zZWxlY3Rpb25WYWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgc2VsZWN0aW9uVmFsdWUoKTogTnVsbGFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3Rpb25WYWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogU2hvdyBuYXZpZ2F0aW9uIGZvciBzaW5nbGUgbGlzdFxuICAgICAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlkID0gYGZkcC1saXN0LWl0ZW0tJHtuZXh0TGlzdEl0ZW1JZCsrfWA7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5pdGVtU2VsZWN0ZWQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbGlzdENvbXBvbmVudC5fc2V0dXBMaXN0SXRlbSh0aGlzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogVG8gZGV0ZWN0IGNoYW5nZXMgZnJvbSBwYXJlbnQtbGlzdGJveCB0byBsaXN0IGl0ZW1cbiAgICAgKiBmb3IgZXhhbXBsZSBzaW5nbGUsIG11bHRpIG9wdGlvbiBzZWxlY3Rpb24gdGhvc2UgZGV0YWlsc1xuICAgICAqIHdpbGwgYmUgZGVkdWN0ZWQgaW4gbGlzdCBpdGVtXG4gICAgICovXG4gICAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjdXJyZW50SXRlbTogTnVsbGFibGU8SFRNTExJRWxlbWVudD4gPSB0aGlzLml0ZW1FbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2xpJyk7XG4gICAgICAgIGlmICghY3VycmVudEl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGN1cnJlbnRJdGVtLnNldEF0dHJpYnV0ZSgncm9sZScsICdvcHRpb24nKTtcbiAgICAgICAgY29uc3QgcGFyZW50Tm9kZSA9IGN1cnJlbnRJdGVtLnBhcmVudE5vZGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCAmJiBjdXJyZW50SXRlbS5wYXJlbnROb2RlO1xuICAgICAgICBpZiAocGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgcGFyZW50Tm9kZS5yZW1vdmVBdHRyaWJ1dGUoJ3RpdGxlJyk7XG4gICAgICAgICAgICBwYXJlbnROb2RlLnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucm93U2VsZWN0aW9uIHx8IHRoaXMuc2VsZWN0aW9uTW9kZSA9PT0gJ211bHRpJyB8fCB0aGlzLnNlbGVjdGlvbk1vZGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICAgICAgICBjdXJyZW50SXRlbS5zZXRBdHRyaWJ1dGUoJ2FyaWEtc2VsZWN0ZWQnLCBgJHshIXRoaXMuX3NlbGVjdGVkfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBDcmVhdGVkIGZvY3VzIG9uIGxpc3QgaXRlbSBvbiBtb3VzZWNsaWNrLFxuICAgICAqIFVwLGRvd24gYXJyb3cgcHJlc3NcbiAgICAgKi9cbiAgICBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5saXN0SXRlbS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJvZ3JhbW1hdGljYWxseSBzZXQgc2VsZWN0ZWQgc3RhdGUgb2YgdGhlIGxpc3QgaXRlbS5cbiAgICAgKiBAcGFyYW0gc2VsZWN0ZWQgV2hldGhlciB0aGUgbGlzdCBpdGVtIGlzIHNlbGVjdGVkXG4gICAgICovXG4gICAgc2V0U2VsZWN0ZWQoc2VsZWN0ZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHNlbGVjdGVkID09PSB0aGlzLl9zZWxlY3RlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IE1vZGlmeUl0ZW1FdmVudCgpO1xuICAgICAgICBldmVudC5zb3VyY2UgPSB0aGlzO1xuICAgICAgICB0aGlzLl9zZWxlY3RlZCA9IHNlbGVjdGVkO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIE9uIGl0ZW0gY2xpY2sgZXZlbnQgd2lsbCBiZSBlbWl0dGVkXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIF9vbkl0ZW1DbGljaygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucm93U2VsZWN0aW9uICYmIHRoaXMuc2VsZWN0aW9uTW9kZSA9PT0gJ211bHRpJykge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWQgPSAhdGhpcy5fc2VsZWN0ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBldmVudCA9IG5ldyBNb2RpZnlJdGVtRXZlbnQoKTtcbiAgICAgICAgZXZlbnQuc291cmNlID0gdGhpcztcbiAgICAgICAgdGhpcy5fZm9jdXNlZCA9ICF0aGlzLl9mb2N1c2VkO1xuICAgICAgICB0aGlzLml0ZW1TZWxlY3RlZC5lbWl0KGV2ZW50KTtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBfaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIUtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbRU5URVIsIFNQQUNFXSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmNoZWNrYm94Q29tcG9uZW50IHx8IHRoaXMucmFkaW9CdXR0b25Db21wb25lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuX29uS2V5Ym9hcmRDbGljayhldmVudCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFuY2hvcj8ubmF0aXZlRWxlbWVudC5jbGljaygpO1xuXG4gICAgICAgIGlmICh0aGlzLnJvd1NlbGVjdGlvbikge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWQgPSAhdGhpcy5fc2VsZWN0ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCAkZXZlbnQgPSBuZXcgTW9kaWZ5SXRlbUV2ZW50KCk7XG4gICAgICAgICRldmVudC5zb3VyY2UgPSB0aGlzO1xuICAgICAgICB0aGlzLml0ZW1TZWxlY3RlZC5lbWl0KCRldmVudCk7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBIYW5kbGVyIGZvciBtb3VzZSBldmVudHNcbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gICAgX29uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY2hlY2tib3hDb21wb25lbnQgJiYgIXRoaXMuYW5jaG9yKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuY2hlY2tib3hDb21wb25lbnQuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSkge1xuICAgICAgICAgICAgICAgIC8vIGNsaWNraW5nIG9uIHRoZSBjaGVja2JveCBpcyBub3Qgc3VwcHJlc3NlZFxuICAgICAgICAgICAgICAgIC8vIHNvIHdlIHNob3VsZCBvbmx5IHByb2Nlc3MgY2xpY2tzIGlmIGNsaWNrZWQgb24gdGhlIGxpc3QtaXRlbSwgbm90IGNoZWNrYm94IGl0c2VsZlxuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tib3hDb21wb25lbnQubmV4dFZhbHVlKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMucmFkaW9CdXR0b25Db21wb25lbnQ/LnZhbHVlQ2hhbmdlKGV2ZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICBjb25zdCAkZXZlbnQgPSBuZXcgTW9kaWZ5SXRlbUV2ZW50KCk7XG4gICAgICAgICRldmVudC5zb3VyY2UgPSB0aGlzO1xuICAgICAgICB0aGlzLml0ZW1TZWxlY3RlZC5lbWl0KCRldmVudCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIGhlbHBzIHRvIGF2b2lkIG11bHRpIHJvd3MgYWN0aXZlIGNsYXNzIHdpdGggbmF2aWdhdGlvblxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgWyckZXZlbnQnXSlcbiAgICBfb25CbHVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChpc1ByZXNlbnQodGhpcy5hbmNob3IpICYmICFLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0VOVEVSLCBTUEFDRV0pKSB7XG4gICAgICAgICAgICB0aGlzLmFuY2hvci5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoSVNfQUNUSVZFX0NMQVNTKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBvbiBrZXlkb3duIGFwcGVuZCBhY3RpdmUgc3R5bGVzIG9uIGFjdGlvbmFibGUgaXRlbVxuICAgICAqL1xuICAgIF9vbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzUHJlc2VudCh0aGlzLmFuY2hvcikgJiYgS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtFTlRFUiwgU1BBQ0VdKSkge1xuICAgICAgICAgICAgdGhpcy5hbmNob3IubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKElTX0FDVElWRV9DTEFTUyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogb24ga2V5dXAgcmVtb3ZlIGFjdGl2ZSBzdHlsZXMgZnJvbSBhY3Rpb25hYmxlIGl0ZW1cbiAgICAgKi9cbiAgICBfb25LZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoaXNQcmVzZW50KHRoaXMuYW5jaG9yKSAmJiBLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0VOVEVSLCBTUEFDRV0pKSB7XG4gICAgICAgICAgICB0aGlzLmFuY2hvci5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoSVNfQUNUSVZFX0NMQVNTKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uQ2hlY2tib3hNb2RlbENoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgTW9kaWZ5SXRlbUV2ZW50KCk7XG4gICAgICAgIGV2ZW50LnNvdXJjZSA9IHRoaXM7XG4gICAgICAgIHRoaXMuaXRlbUNoZWNrYm94U2VsZWN0ZWQuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEhhbmRsZXMgYWN0aW9uIGJ1dHRvbiBjbGlja1xuICAgICAqL1xuICAgIF9vbkFjdGlvbkJ1dHRvbkNsaWNrKGFjdGlvbjogJ2RlbGV0ZScgfCAnZWRpdCcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgTW9kaWZ5SXRlbUV2ZW50KCk7XG4gICAgICAgIGV2ZW50LnNvdXJjZSA9IHRoaXM7XG4gICAgICAgIGV2ZW50LmFjdGlvbiA9IGFjdGlvbjtcbiAgICAgICAgdGhpcy5idXR0b25DbGlja2VkLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBIYW5kbGVzIGFjdGlvbiBidXR0b24gY2xpY2sgb24ga2V5IHByZXNzXG4gICAgICovXG4gICAgX29uS2V5QnV0dG9uQ2xpY2soZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGFjdGlvbjogJ2RlbGV0ZScgfCAnZWRpdCcpOiB2b2lkIHtcbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbRU5URVIsIFNQQUNFXSkpIHtcbiAgICAgICAgICAgIHRoaXMuX29uQWN0aW9uQnV0dG9uQ2xpY2soYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2lzQWR2YW5jZWRUZXh0KHRleHQ6IExpc3REZXNjcmlwdGlvbik6IHRleHQgaXMgTGlzdEFkdmFuY2VkRGVzY3JpcHRpb24ge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHRleHQgIT09ICdzdHJpbmcnICYmICEhdGV4dC50ZXh0O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfb25LZXlib2FyZENsaWNrKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hlY2tib3hDb21wb25lbnQ/Lm5leHRWYWx1ZSgpO1xuICAgICAgICB0aGlzLnJhZGlvQnV0dG9uQ29tcG9uZW50Py52YWx1ZUNoYW5nZShldmVudCk7XG5cbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIGNvbnN0ICRldmVudCA9IG5ldyBNb2RpZnlJdGVtRXZlbnQoKTtcbiAgICAgICAgJGV2ZW50LnNvdXJjZSA9IHRoaXM7XG4gICAgICAgIHRoaXMuaXRlbVNlbGVjdGVkLmVtaXQoJGV2ZW50KTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, Input, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
2
2
|
import { NgForm } from '@angular/forms';
|
|
3
3
|
import { EditableTableCell, TableColumn } from '@fundamental-ngx/platform/table-helpers';
|
|
4
|
-
import set from 'lodash-es
|
|
4
|
+
import { set } from 'lodash-es';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@angular/common";
|
|
7
7
|
import * as i2 from "@angular/forms";
|
|
@@ -37,4 +37,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
|
|
|
37
37
|
type: ViewChild,
|
|
38
38
|
args: [NgForm]
|
|
39
39
|
}] } });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZWRpdGFibGUtY2VsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvdGFibGUvY29tcG9uZW50cy90YWJsZS1lZGl0YWJsZS1jZWxsL3RhYmxlLWVkaXRhYmxlLWNlbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtZWRpdGFibGUtY2VsbC90YWJsZS1lZGl0YWJsZS1jZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBWSxNQUFNLHlDQUF5QyxDQUFDO0FBQ25HLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7OztBQUVoQyxJQUFJLGFBQWEsR0FBRyxDQUFDLENBQUM7QUFTdEIsTUFBTSxPQUFPLDBCQUEwQjtJQVB2QztRQStCSSxjQUFjO1FBQ2QscUJBQWdCLEdBQUcsU0FBUyxhQUFhLEVBQUUsRUFBRSxDQUFDO0tBSWpEO0lBcEJHLG9CQUFvQjtJQUNwQixJQUNJLFdBQVcsQ0FBQyxLQUFVO1FBQ3RCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzdCLENBQUM7OEdBbEJRLDBCQUEwQjtrR0FBMUIsMEJBQTBCLHdIQUZ4QixDQUFDLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSwwQkFBMEIsRUFBRSxDQUFDLGdFQXVCekUsTUFBTSxnRENuQ3JCLGdsQ0EyQkE7OzJGRGJhLDBCQUEwQjtrQkFQdEMsU0FBUzsrQkFDSSx5QkFBeUIsaUJBRXBCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLDRCQUE0QixFQUFFLENBQUM7OEJBS3BGLEdBQUc7c0JBREYsS0FBSztnQkFLTixNQUFNO3NCQURMLEtBQUs7Z0JBS0YsV0FBVztzQkFEZCxLQUFLO2dCQVlOLElBQUk7c0JBREgsU0FBUzt1QkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEVkaXRhYmxlVGFibGVDZWxsLCBUYWJsZUNvbHVtbiwgVGFibGVSb3cgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3RhYmxlLWhlbHBlcnMnO1xuaW1wb3J0IHsgc2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcblxubGV0IGNvbnRyb2xVbmlxSWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC10YWJsZS1lZGl0YWJsZS1jZWxsJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtZWRpdGFibGUtY2VsbC5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEVkaXRhYmxlVGFibGVDZWxsLCB1c2VFeGlzdGluZzogVGFibGVFZGl0YWJsZUNlbGxDb21wb25lbnQgfV1cbn0pXG5leHBvcnQgY2xhc3MgVGFibGVFZGl0YWJsZUNlbGxDb21wb25lbnQgaW1wbGVtZW50cyBFZGl0YWJsZVRhYmxlQ2VsbCB7XG4gICAgLyoqIFRhYmxlIHJvdyBkZWZpbml0aW9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgcm93OiBUYWJsZVJvdztcblxuICAgIC8qKiBUYWJsZSBjZWxsIGRlZmluaXRpb24uICovXG4gICAgQElucHV0KClcbiAgICBjb2x1bW46IFRhYmxlQ29sdW1uO1xuXG4gICAgLyoqIENvbHVtbiB2YWx1ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBjb2x1bW5WYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgICAgIHRoaXMuX2NvbHVtblZhbHVlID0gdmFsdWU7XG4gICAgICAgIHNldCh0aGlzLnJvdy52YWx1ZSwgdGhpcy5jb2x1bW4ua2V5LCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbHVtblZhbHVlKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb2x1bW5WYWx1ZTtcbiAgICB9XG5cbiAgICAvKiogRWRpdGFibGUgY2VsbCBmb3JtLiAqL1xuICAgIEBWaWV3Q2hpbGQoTmdGb3JtKVxuICAgIGZvcm06IE5nRm9ybTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2NvbnRyb2xVbmlxTmFtZSA9IGBpbnB1dC0ke2NvbnRyb2xVbmlxSWQrK31gO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jb2x1bW5WYWx1ZTogYW55O1xufVxuIiwiPGZvcm0gI25nRm9ybT5cbiAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJjb2x1bW4uZGF0YVR5cGVcIj5cbiAgICAgICAgPGZkcC1pbnB1dFxuICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidudW1iZXInXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCIncGxhdGZvcm1UYWJsZS5lZGl0YWJsZUNlbGxOdW1iZXJQbGFjZWhvbGRlcicgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbHVtblZhbHVlXCJcbiAgICAgICAgICAgIFtuYW1lXT1cIl9jb250cm9sVW5pcU5hbWVcIlxuICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgID48L2ZkcC1pbnB1dD5cbiAgICAgICAgPGZkcC1kYXRlLXBpY2tlclxuICAgICAgICAgICAgdHlwZT1cInNpbmdsZVwiXG4gICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGUnXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCIncGxhdGZvcm1UYWJsZS5lZGl0YWJsZUNlbGxEYXRlUGxhY2Vob2xkZXInIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgW25hbWVdPVwiX2NvbnRyb2xVbmlxTmFtZVwiXG4gICAgICAgICAgICBbYWxsb3dOdWxsXT1cImZhbHNlXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29sdW1uVmFsdWVcIlxuICAgICAgICA+PC9mZHAtZGF0ZS1waWNrZXI+XG4gICAgICAgIDxmZHAtc3dpdGNoICpuZ1N3aXRjaENhc2U9XCInYm9vbGVhbidcIiBbKG5nTW9kZWwpXT1cImNvbHVtblZhbHVlXCIgW25hbWVdPVwiX2NvbnRyb2xVbmlxTmFtZVwiPjwvZmRwLXN3aXRjaD5cbiAgICAgICAgPGZkcC1pbnB1dFxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidwbGF0Zm9ybVRhYmxlLmVkaXRhYmxlQ2VsbFN0cmluZ1BsYWNlaG9sZGVyJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICpuZ1N3aXRjaERlZmF1bHRcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29sdW1uVmFsdWVcIlxuICAgICAgICAgICAgW25hbWVdPVwiX2NvbnRyb2xVbmlxTmFtZVwiXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgID48L2ZkcC1pbnB1dD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZm9ybT5cbiJdfQ==
|