keevo-components 1.8.454 → 1.8.455
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/api/base-components/base-component-crud-form.mjs +1 -1
- package/esm2022/lib/api/base-components/base-component-crud-list.mjs +1 -1
- package/esm2022/lib/api/base-components/base-component-crud.mjs +1 -1
- package/esm2022/lib/api/base-components/base-component-dropdown.mjs +1 -1
- package/esm2022/lib/api/base-components/base-component-multi-select.mjs +1 -1
- package/esm2022/lib/api/components/chart/orchart.config.mjs +1 -1
- package/esm2022/lib/api/components/chart/orchartnode.mjs +1 -1
- package/esm2022/lib/api/components/table/table.config.column.mjs +1 -1
- package/esm2022/lib/api/components/table/table.paginate.mjs +1 -1
- package/esm2022/lib/api/components/table/tableedit.config.column.mjs +1 -1
- package/esm2022/lib/api/components/tree-table/tree-table-keys.mjs +1 -1
- package/esm2022/lib/api/modules/primeng.module.mjs +1 -1
- package/esm2022/lib/api/pipes/capitalize.pipe.mjs +1 -1
- package/esm2022/lib/api/services/breadcrumbs.service.mjs +1 -1
- package/esm2022/lib/api/services/chat.service.mjs +1 -1
- package/esm2022/lib/api/services/component.service.mjs +5 -2
- package/esm2022/lib/api/services/form.service.mjs +1 -1
- package/esm2022/lib/api/services/image.cutter.service.mjs +43 -43
- package/esm2022/lib/api/services/notification.service.mjs +1 -1
- package/esm2022/lib/api/services/orgchart.service.mjs +1 -1
- package/esm2022/lib/components/keevo-components.module.mjs +1 -1
- package/esm2022/lib/components/kv-avatar/kv-avatar.component.mjs +3 -3
- package/esm2022/lib/components/kv-avatar/kv-avatar.module.mjs +1 -1
- package/esm2022/lib/components/kv-button/kv-button.component.mjs +3 -3
- package/esm2022/lib/components/kv-carousel/kv-carousel.component.mjs +3 -3
- package/esm2022/lib/components/kv-content-viewer/kv-content-viewer.component.mjs +3 -3
- package/esm2022/lib/components/kv-content-viewer/kv-content-viewer.module.mjs +1 -1
- package/esm2022/lib/components/kv-file-upload/kv-file-upload.component.mjs +3 -3
- package/esm2022/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.component.mjs +3 -3
- package/esm2022/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.module.mjs +1 -1
- package/esm2022/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.mjs +3 -3
- package/esm2022/lib/components/kv-image-upload/kv-image-upload.component.mjs +3 -3
- package/esm2022/lib/components/kv-inputs/kv-check/kv-check.component.mjs +3 -3
- package/esm2022/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.mjs +3 -3
- package/esm2022/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.mjs +3 -3
- package/esm2022/lib/components/kv-inputs/kv-input-text/kv-input-text.component.mjs +3 -3
- package/esm2022/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.mjs +3 -3
- package/esm2022/lib/components/kv-inputs/kv-inputs.module.mjs +1 -1
- package/esm2022/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.mjs +3 -3
- package/esm2022/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.mjs +3 -3
- package/esm2022/lib/components/kv-inputs/kv-switch/kv-switch.component.mjs +3 -3
- package/esm2022/lib/components/kv-inputs/kv-tree-multi-select/kv-tree-multi-select.component.mjs +3 -3
- package/esm2022/lib/components/kv-layout/dropdown-master/dropdown-master.component.mjs +3 -3
- package/esm2022/lib/components/kv-layout/layout/kv-layout.component.mjs +3 -3
- package/esm2022/lib/components/kv-login/kv-login.component.mjs +3 -3
- package/esm2022/lib/components/kv-orgchart/kv-orgchart.component.mjs +11 -11
- package/esm2022/lib/components/kv-orgchart/kv-orgchart.module.mjs +1 -1
- package/esm2022/lib/components/kv-page-form/kv-page-form.component.mjs +3 -3
- package/esm2022/lib/components/kv-pick-list/kv-pick-list.component.mjs +3 -3
- package/esm2022/lib/components/kv-pick-list/kv-pick-list.module.mjs +1 -1
- package/esm2022/lib/components/kv-report/kv-report.component.mjs +3 -3
- package/esm2022/lib/components/kv-table/kv-table.component.mjs +3 -3
- package/esm2022/lib/components/kv-table-edit/kv-table-edit.component.mjs +3 -3
- package/esm2022/lib/components/kv-table-expandable/kv-table-expandable.component.mjs +3 -3
- package/esm2022/lib/components/kv-tree-table/kv-tree-table.component.mjs +3 -3
- package/esm2022/lib/components/kv-tree-view/kv-tree-view.component.mjs +3 -3
- package/esm2022/lib/components/kv-workspace/kv-workspace.module.mjs +1 -1
- package/esm2022/lib/components/kv-workspace/logo/kv-workspace-logo.component.mjs +3 -3
- package/esm2022/lib/components/kv-workspace/workspace/kv-workspace.component.mjs +3 -3
- package/esm2022/public-api.mjs +1 -1
- package/fesm2022/keevo-components.mjs +116 -113
- package/fesm2022/keevo-components.mjs.map +1 -1
- package/package.json +2 -2
- package/src/lib/components/keevo-components-styles.scss +183 -183
- package/src/lib/components/kv-button/kv-button.component.scss +203 -203
- package/src/lib/components/kv-table/kv-table.component.scss +202 -202
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
-
import { FormControlName, FormGroupDirective, NgControl } from '@angular/forms';
|
|
2
|
+
import { FormControlDirective, FormControlName, FormGroupDirective, NgControl } from '@angular/forms';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
// export class ComponentService {
|
|
5
5
|
// constructor(public readonly injector: Injector, public changeDetectorRef: ChangeDetectorRef) {}
|
|
@@ -19,6 +19,9 @@ export class ComponentService {
|
|
|
19
19
|
if (control.constructor === FormControlName) {
|
|
20
20
|
return this.injector.get(FormGroupDirective).getControl(control);
|
|
21
21
|
}
|
|
22
|
+
else if (control instanceof FormControlDirective) {
|
|
23
|
+
return control.control;
|
|
24
|
+
}
|
|
22
25
|
return undefined;
|
|
23
26
|
}
|
|
24
27
|
catch (ex) {
|
|
@@ -31,4 +34,4 @@ export class ComponentService {
|
|
|
31
34
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: ComponentService, decorators: [{
|
|
32
35
|
type: Injectable
|
|
33
36
|
}], ctorParameters: () => [{ type: i0.Injector }, { type: i0.ChangeDetectorRef }] });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvYXBpL3NlcnZpY2VzL2NvbXBvbmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxVQUFVLEVBRVgsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUVMLG9CQUFvQixFQUNwQixlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLFNBQVMsRUFDVixNQUFNLGdCQUFnQixDQUFDOztBQUd4QixrQ0FBa0M7QUFFbEMsb0dBQW9HO0FBRXBHLHFEQUFxRDtBQUNyRCw2REFBNkQ7QUFDN0QsbUVBQW1FO0FBQ25FLE1BQU07QUFDTixJQUFJO0FBQ0osTUFBTSxPQUFPLGdCQUFnQjtJQUUzQixZQUE0QixRQUFrQixFQUFTLGlCQUFvQztRQUEvRCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUFJLENBQUM7SUFFaEcsY0FBYztRQUNaLElBQUksQ0FBQztZQUNILE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzdDLElBQUksT0FBTyxDQUFDLFdBQVcsS0FBSyxlQUFlLEVBQUUsQ0FBQztnQkFDNUMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUEwQixDQUFDLENBQUM7WUFDdEYsQ0FBQztpQkFBTSxJQUFJLE9BQU8sWUFBWSxvQkFBb0IsRUFBRSxDQUFDO2dCQUNuRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDekIsQ0FBQztZQUVELE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ1YsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztJQUNILENBQUM7OEdBbEJVLGdCQUFnQjtrSEFBaEIsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQVY1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBJbmplY3RhYmxlLFxyXG4gIEluamVjdG9yXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gIEZvcm1Db250cm9sLFxyXG4gIEZvcm1Db250cm9sRGlyZWN0aXZlLFxyXG4gIEZvcm1Db250cm9sTmFtZSxcclxuICBGb3JtR3JvdXBEaXJlY3RpdmUsXHJcbiAgTmdDb250cm9sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG4vLyBleHBvcnQgY2xhc3MgQ29tcG9uZW50U2VydmljZSB7XHJcblxyXG4vLyAgIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsIHB1YmxpYyBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XHJcblxyXG4vLyAgIGdldEZvcm1Db250cm9sKCk6IEZvcm1Db250cm9sPGFueT4gfCB1bmRlZmluZWQge1xyXG4vLyAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCk/LmNvbnRyb2w7XHJcbi8vICAgICByZXR1cm4gY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sID8gY29udHJvbCA6IHVuZGVmaW5lZDtcclxuLy8gICB9XHJcbi8vIH1cclxuZXhwb3J0IGNsYXNzIENvbXBvbmVudFNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLCBwdWJsaWMgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7IH1cclxuXHJcbiAgZ2V0Rm9ybUNvbnRyb2woKTogRm9ybUNvbnRyb2w8YW55PiB8IHVuZGVmaW5lZCB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBjb250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoTmdDb250cm9sKTtcclxuICAgICAgaWYgKGNvbnRyb2wuY29uc3RydWN0b3IgPT09IEZvcm1Db250cm9sTmFtZSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmluamVjdG9yLmdldChGb3JtR3JvdXBEaXJlY3RpdmUpLmdldENvbnRyb2woY29udHJvbCBhcyBGb3JtQ29udHJvbE5hbWUpO1xyXG4gICAgICB9IGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbERpcmVjdGl2ZSkge1xyXG4gICAgICAgIHJldHVybiBjb250cm9sLmNvbnRyb2w7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZXgpIHtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -92,4 +92,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
|
|
|
92
92
|
providedIn: 'root',
|
|
93
93
|
}]
|
|
94
94
|
}] });
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2FwaS9zZXJ2aWNlcy9mb3JtLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUlqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBcUJqRCxNQUFNLE9BQU8sV0FBVztJQUN0QixNQUFNLENBQUMsY0FBYyxDQUFDLFNBQW9CLEVBQUUsVUFBa0I7UUFDNUQsU0FBUyxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsTUFBTSxDQUFDLHNCQUFzQixDQUMzQixTQUFvQixFQUNwQixVQUFrQixFQUNsQixLQUFXO1FBRVgsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksSUFBSSxLQUFLLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFvQixFQUFFLFVBQWtCO1FBQzNELFNBQVMsRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQUksU0FBb0IsRUFBRSxVQUFrQjtRQUM3RCxPQUFVLFNBQVMsRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxDQUFDO0lBQ25ELENBQUM7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUNwQixTQUFvQixFQUNwQixPQUFlLEVBQ2YsU0FBa0I7UUFFbEIsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMs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RUFBRSxLQUFVO1FBQ3pFLFNBQVMsRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUNsQixTQUFvQixFQUNwQixVQUFrQixFQUNsQixVQUE4QztRQUU5QyxTQUFTLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzRCxTQUFTLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLHNCQUFzQixFQUFFLENBQUM7SUFDNUQsQ0FBQztJQUVELE1BQU0sQ0FBQyxlQUFlLENBQUMsU0FBb0IsRUFBRSxVQUFrQjtRQUM3RCxTQUFTLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLHNCQUFzQixFQUFFLENBQUM7SUFDNUQsQ0FBQzs4R0FoSFUsV0FBVztrSEFBWCxXQUFXLGNBRlYsTUFBTTs7MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEZvcm1Hcm91cCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IE9iamVjdFNlcnZpY2UgfSBmcm9tICcuL29iamVjdC5zZXJ2aWNlJztcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xuXG5leHBvcnQgaW50ZXJmYWNlIHBhcmFtc0RpYWxvZyB7XG4gIGlkPzogYW55O1xuICBtYXhpbWl6YWJsZT86IGJvb2xlYW47XG4gIHBvcHVwPzogYm9vbGVhbjtcbiAgaGVpZ2h0Pzogc3RyaW5nO1xuICB3aWR0aD86IHN0cmluZztcbiAgc3R5bGVDbGFzcz86IHN0cmluZztcbiAgaGVhZGVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBFc3NhIHByb3ByaWVkYWRlIHNlbXByZSBzZXLDoSBmYWxzZS4gTsOjbyDDqSBuZWNlc3PDoXJpbyBhdHJpYnVpciB2YWxvciBwYXJhIGVsYVxuICAgKi9cbiAgY2xvc2FibGU/OiBib29sZWFuO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybVNlcnZpY2Uge1xuICBzdGF0aWMgZGlzYWJsZUNvbnRyb2woZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGNvbnRyb05hbWU6IHN0cmluZykge1xuICAgIGZvcm1Hcm91cD8uY29udHJvbHNbY29udHJvTmFtZV0/LmRpc2FibGUoKTtcbiAgfVxuXG4gIHN0YXRpYyBkaXNhYmxlQW5kQ2xlYXJDb250cm9sKFxuICAgIGZvcm1Hcm91cDogRm9ybUdyb3VwLFxuICAgIGNvbnRyb05hbWU6IHN0cmluZyxcbiAgICB2YWx1ZT86IGFueVxuICApIHtcbiAgICB0aGlzLmRpc2FibGVDb250cm9sKGZvcm1Hcm91cCwgY29udHJvTmFtZSk7XG4gICAgdGhpcy5zZXRDb250cm9sVmFsdWUoZm9ybUdyb3VwLCBjb250cm9OYW1lLCBudWxsIHx8IHZhbHVlKTtcbiAgfVxuXG4gIHN0YXRpYyBlbmFibGVDb250cm9sKGZvcm1Hcm91cDogRm9ybUdyb3VwLCBjb250cm9OYW1lOiBzdHJpbmcpIHtcbiAgICBmb3JtR3JvdXA/LmNvbnRyb2xzW2NvbnRyb05hbWVdPy5lbmFibGUoKTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRGb3JtVmFsdWU8VD4oZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGNvbnRyb05hbWU6IHN0cmluZyk6IFQge1xuICAgIHJldHVybiA8VD5mb3JtR3JvdXA/LmNvbnRyb2xzW2NvbnRyb05hbWVdPy52YWx1ZTtcbiAgfVxuXG4gIHN0YXRpYyBoYXNDb250cm9sRXJyb3IoXG4gICAgZm9ybUdyb3VwOiBGb3JtR3JvdXAsXG4gICAgY29udHJvbDogc3RyaW5nLFxuICAgIGVycm9yQ29kZT86IHN0cmluZ1xuICApOiBib29sZWFuIHtcbiAgICBjb25zdCBmb3JtQ29udHJvbCA9IGZvcm1Hcm91cC5nZXQoY29udHJvbCk7XG4gICAgbGV0IGhhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBpZiAoIWZvcm1Db250cm9sKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKGVycm9yQ29kZSkgaGFzRXJyb3IgPSBmb3JtQ29udHJvbC5oYXNFcnJvcihlcnJvckNvZGUpO1xuICAgIGVsc2UgaGFzRXJyb3IgPSBmb3JtQ29udHJvbC5lcnJvcnMgPyB0cnVlIDogZmFsc2U7XG5cbiAgICByZXR1cm4gaGFzRXJyb3IgJiYgZm9ybUNvbnRyb2wudG91Y2hlZDtcbiAgfVxuXG4gIHN0YXRpYyBpbnZhbGlkRm9ybShmb3JtR3JvdXA6IEZvcm1Hcm91cCwgbm90aWZpY2F0aW9uPzogYW55KSB7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpKTtcblxuICAgIGtleXMuZm9yRWFjaCgoaykgPT4ge1xuICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5jb250cm9sc1trXTtcblxuICAgICAgaWYgKG5vdGlmaWNhdGlvbikge1xuICAgICAgICBpZiAobm90aWZpY2F0aW9uPy5pdGVtMikge1xuICAgICAgICAgIGNvbnN0IGl0ZW0gPSBPYmplY3RTZXJ2aWNlLmZpbmRPYmplY3QoXG4gICAgICAgICAgICBub3RpZmljYXRpb24uaXRlbTIsXG4gICAgICAgICAgICAncHJvcGVydHknLFxuICAgICAgICAgICAga1xuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKGl0ZW0pXG4gICAgICAgICAgICBjb250cm9sLnNldEVycm9ycyh7XG4gICAgICAgICAgICAgIGJhY2tlbmRFcnJvcjogdHJ1ZSxcbiAgICAgICAgICAgICAgZXJyb01lc3NhZ2U6IGl0ZW0ubWVzc2FnZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGl0ZW0gPSBPYmplY3RTZXJ2aWNlLmZpbmRPYmplY3Qobm90aWZpY2F0aW9uLCAna2V5Jywgayk7XG4gICAgICAgICAgaWYgKGl0ZW0pXG4gICAgICAgICAgICBjb250cm9sLnNldEVycm9ycyh7XG4gICAgICAgICAgICAgIGJhY2tlbmRFcnJvcjogdHJ1ZSxcbiAgICAgICAgICAgICAgZXJyb01lc3NhZ2U6IGl0ZW0ubWVzc2FnZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghY29udHJvbC52YWxpZCkge1xuICAgICAgICBjb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBvcGVuRGlhbG9nKFxuICAgIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXG4gICAgY29tcG9uZW50VHlwZTogVHlwZTxhbnk+LFxuICAgIGNhbGxCYWNrRnVuY3Rpb246IEZ1bmN0aW9uLFxuICAgIHBhcmFtc0RpYWxvZz86IHBhcmFtc0RpYWxvZ1xuICApIHtcbiAgICBjb25zdCByZWYgPSBkaWFsb2dTZXJ2aWNlLm9wZW4oY29tcG9uZW50VHlwZSwge1xuICAgICAgY2xvc2FibGU6IGZhbHNlLFxuICAgICAgbWF4aW1pemFibGU6IHBhcmFtc0RpYWxvZz8ubWF4aW1pemFibGUgfHwgZmFsc2UsXG4gICAgICBoZWlnaHQ6IHBhcmFtc0RpYWxvZz8uaGVpZ2h0IHx8ICdhdXRvJyxcbiAgICAgIHdpZHRoOiBwYXJhbXNEaWFsb2c/LndpZHRoLFxuICAgICAgc3R5bGVDbGFzczogcGFyYW1zRGlhbG9nPy5zdHlsZUNsYXNzLFxuICAgICAgc2hvd0hlYWRlcjogdHJ1ZSxcbiAgICAgIGhlYWRlcjogcGFyYW1zRGlhbG9nPy5oZWFkZXIsXG4gICAgICBkYXRhOiB7IGlkOiBwYXJhbXNEaWFsb2c/LmlkLCBwb3B1cDogcGFyYW1zRGlhbG9nPy5wb3B1cCAmJiB0cnVlIH0sXG4gICAgICBjbG9zZU9uRXNjYXBlOiBmYWxzZSxcbiAgICAgIGZvY3VzT25TaG93OiBmYWxzZSxcbiAgICAgIGZvY3VzVHJhcDogZmFsc2UsXG4gICAgfSk7XG5cbiAgICByZWYub25DbG9zZS5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xuICAgICAgaWYgKGRhdGEpIGNhbGxCYWNrRnVuY3Rpb24oZGF0YSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlZjtcbiAgfVxuXG4gIHN0YXRpYyBzZXRDb250cm9sVmFsdWUoZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGNvbnRyb05hbWU6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIGZvcm1Hcm91cD8uY29udHJvbHNbY29udHJvTmFtZV0/LnNldFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIHN0YXRpYyBzZXRWYWxpZGF0b3JzKFxuICAgIGZvcm1Hcm91cDogRm9ybUdyb3VwLFxuICAgIGNvbnRyb05hbWU6IHN0cmluZyxcbiAgICB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbiB8IFZhbGlkYXRvckZuW10gfCBudWxsXG4gICkge1xuICAgIGZvcm1Hcm91cD8uY29udHJvbHNbY29udHJvTmFtZV0/LnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XG4gICAgZm9ybUdyb3VwPy5jb250cm9sc1tjb250cm9OYW1lXT8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgc3RhdGljIGNsZWFyVmFsaWRhdG9ycyhmb3JtR3JvdXA6IEZvcm1Hcm91cCwgY29udHJvTmFtZTogc3RyaW5nKSB7XG4gICAgZm9ybUdyb3VwPy5jb250cm9sc1tjb250cm9OYW1lXT8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG59XG4iXX0=
|
|
@@ -497,52 +497,52 @@ class SimpleComponent {
|
|
|
497
497
|
this.closeCropModal();
|
|
498
498
|
}
|
|
499
499
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: SimpleComponent, deps: [{ token: i1.DynamicDialogRef }, { token: i1.DialogService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
500
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: SimpleComponent, isStandalone: true, selector: "app-simple-component", host: { listeners: { "window:resize": "onWindowResize($event)" } }, viewQueries: [{ propertyName: "cropCanvas", first: true, predicate: ["cropCanvas"], descendants: true }, { propertyName: "cropBorder", first: true, predicate: ["cropBorder"], descendants: true }], ngImport: i0, template: `
|
|
501
|
-
<div class="modal-content">
|
|
502
|
-
<div class="crop-container">
|
|
503
|
-
<canvas #cropCanvas class="crop-canvas"></canvas>
|
|
504
|
-
<div #cropBorder class="crop-border"></div>
|
|
505
|
-
</div>
|
|
506
|
-
|
|
507
|
-
<div class="w-full mt-2">
|
|
508
|
-
<kv-label label="Zoom" style="text-align: left;" />
|
|
509
|
-
<p-slider [(ngModel)]="this.scaleFactorModel" [step]="0.0001" [max]="5" (onChange)="onZoomChange($event)"></p-slider>
|
|
510
|
-
</div>
|
|
511
|
-
|
|
512
|
-
<div class="button-container">
|
|
513
|
-
<kv-button label="Cancelar" severity="tertiary" icon="close" (click)="cancel()"></kv-button>
|
|
514
|
-
<kv-button label="Recortar" severity="primary" icon="crop" (click)="cropImage()" class="ml-2"></kv-button>
|
|
515
|
-
</div>
|
|
516
|
-
|
|
517
|
-
</div>
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
500
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: SimpleComponent, isStandalone: true, selector: "app-simple-component", host: { listeners: { "window:resize": "onWindowResize($event)" } }, viewQueries: [{ propertyName: "cropCanvas", first: true, predicate: ["cropCanvas"], descendants: true }, { propertyName: "cropBorder", first: true, predicate: ["cropBorder"], descendants: true }], ngImport: i0, template: `
|
|
501
|
+
<div class="modal-content">
|
|
502
|
+
<div class="crop-container">
|
|
503
|
+
<canvas #cropCanvas class="crop-canvas"></canvas>
|
|
504
|
+
<div #cropBorder class="crop-border"></div>
|
|
505
|
+
</div>
|
|
506
|
+
|
|
507
|
+
<div class="w-full mt-2">
|
|
508
|
+
<kv-label label="Zoom" style="text-align: left;" />
|
|
509
|
+
<p-slider [(ngModel)]="this.scaleFactorModel" [step]="0.0001" [max]="5" (onChange)="onZoomChange($event)"></p-slider>
|
|
510
|
+
</div>
|
|
511
|
+
|
|
512
|
+
<div class="button-container">
|
|
513
|
+
<kv-button label="Cancelar" severity="tertiary" icon="close" (click)="cancel()"></kv-button>
|
|
514
|
+
<kv-button label="Recortar" severity="primary" icon="crop" (click)="cropImage()" class="ml-2"></kv-button>
|
|
515
|
+
</div>
|
|
516
|
+
|
|
517
|
+
</div>
|
|
518
|
+
|
|
519
|
+
|
|
520
|
+
|
|
521
521
|
`, isInline: true, styles: ["img{border-style:solid;border-width:2px;border-radius:50%;object-fit:cover}i{font-size:22px}.botao-alterar-foto{border-style:none;width:max-content;background-color:#002542;color:#000;font-weight:700;cursor:pointer;padding:7px 9px}.botao-alterar-foto i{color:#fff}.botao-excluir-foto{border-style:none;width:max-content;background-color:#002542;color:#000;font-weight:700;cursor:pointer;padding:7px 9px}.botao-excluir-foto i{color:#fff}.btn{position:absolute;top:87%;left:87%;transform:translate(-50%,-50%)}.image-container{display:inline-block;position:relative}.modal-content{position:relative;background-color:#fefefe;margin:1% auto;padding:20px;width:80%;max-width:fit-content;text-align:center;border-radius:12px}.crop-container{display:flex;justify-content:center;align-items:center}.crop-canvas{border:1px solid #d1d5db;border-radius:12px;width:100%;height:auto}.crop-border{position:absolute;border:2px dashed #9ca3af;pointer-events:none}.zoom-container{padding-top:20px;padding-bottom:20px}.button-container{display:flex;align-items:center;justify-content:flex-end;flex-direction:row;margin-top:24px}\n"], dependencies: [{ kind: "ngmodule", type: DialogModule }, { kind: "ngmodule", type: KvModalModule }, { kind: "ngmodule", type: SliderModule }, { kind: "component", type: i2.Slider, selector: "p-slider", inputs: ["animate", "disabled", "min", "max", "orientation", "step", "range", "style", "styleClass", "ariaLabel", "ariaLabelledBy", "tabindex", "autofocus"], outputs: ["onChange", "onSlideEnd"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "ngmodule", type: FileUploadModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: KvButtonModule }, { kind: "component", type: i4.KvButtonComponent, selector: "kv-button", inputs: ["fullWidth", "type", "loading", "severity", "size", "icon", "label", "disabled"], outputs: ["onClick"] }, { kind: "ngmodule", type: KvLabelModule }, { kind: "component", type: i5.KvLabelComponent, selector: "kv-label", inputs: ["componentId", "label"] }] }); }
|
|
522
522
|
}
|
|
523
523
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: SimpleComponent, decorators: [{
|
|
524
524
|
type: Component,
|
|
525
|
-
args: [{ selector: 'app-simple-component', template: `
|
|
526
|
-
<div class="modal-content">
|
|
527
|
-
<div class="crop-container">
|
|
528
|
-
<canvas #cropCanvas class="crop-canvas"></canvas>
|
|
529
|
-
<div #cropBorder class="crop-border"></div>
|
|
530
|
-
</div>
|
|
531
|
-
|
|
532
|
-
<div class="w-full mt-2">
|
|
533
|
-
<kv-label label="Zoom" style="text-align: left;" />
|
|
534
|
-
<p-slider [(ngModel)]="this.scaleFactorModel" [step]="0.0001" [max]="5" (onChange)="onZoomChange($event)"></p-slider>
|
|
535
|
-
</div>
|
|
536
|
-
|
|
537
|
-
<div class="button-container">
|
|
538
|
-
<kv-button label="Cancelar" severity="tertiary" icon="close" (click)="cancel()"></kv-button>
|
|
539
|
-
<kv-button label="Recortar" severity="primary" icon="crop" (click)="cropImage()" class="ml-2"></kv-button>
|
|
540
|
-
</div>
|
|
541
|
-
|
|
542
|
-
</div>
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
525
|
+
args: [{ selector: 'app-simple-component', template: `
|
|
526
|
+
<div class="modal-content">
|
|
527
|
+
<div class="crop-container">
|
|
528
|
+
<canvas #cropCanvas class="crop-canvas"></canvas>
|
|
529
|
+
<div #cropBorder class="crop-border"></div>
|
|
530
|
+
</div>
|
|
531
|
+
|
|
532
|
+
<div class="w-full mt-2">
|
|
533
|
+
<kv-label label="Zoom" style="text-align: left;" />
|
|
534
|
+
<p-slider [(ngModel)]="this.scaleFactorModel" [step]="0.0001" [max]="5" (onChange)="onZoomChange($event)"></p-slider>
|
|
535
|
+
</div>
|
|
536
|
+
|
|
537
|
+
<div class="button-container">
|
|
538
|
+
<kv-button label="Cancelar" severity="tertiary" icon="close" (click)="cancel()"></kv-button>
|
|
539
|
+
<kv-button label="Recortar" severity="primary" icon="crop" (click)="cropImage()" class="ml-2"></kv-button>
|
|
540
|
+
</div>
|
|
541
|
+
|
|
542
|
+
</div>
|
|
543
|
+
|
|
544
|
+
|
|
545
|
+
|
|
546
546
|
`, standalone: true, imports: [
|
|
547
547
|
DialogModule,
|
|
548
548
|
KvModalModule,
|
|
@@ -566,4 +566,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
|
|
|
566
566
|
type: HostListener,
|
|
567
567
|
args: ['window:resize', ['$event']]
|
|
568
568
|
}] } });
|
|
569
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuY3V0dGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvYXBpL3NlcnZpY2VzL2ltYWdlLmN1dHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdCLFFBQVEsRUFBYyxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0gsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBMEM5Qyx3Q0FBd0M7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7OztBQTlDN0UsTUFBTSxPQUFPLGtCQUFrQjtJQUU3QixZQUNtQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUMzQyxDQUFDO0lBRUwsR0FBRyxDQUFDLFdBQW1CLEVBQUUsS0FBYSxFQUFFLE1BQWMsRUFBRSxZQUFxQixLQUFLO1FBQ2hGLE1BQU0sU0FBUyxHQUFH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LGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsTUFBTTtRQUNKLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxXQUFXLENBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFDO2dCQUN6RCxNQUFNLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7Z0JBQ2pDLE1BQU0sRUFBRSxLQUFLO2FBQ2QsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVOLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQTtJQUN2QixDQUFDOzhHQXRqQkcsZUFBZTtrR0FBZixlQUFlLHlWQTFJVDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJULGdxQ0FzR0MsWUFBWSw4QkFDWixhQUFhLDhCQUNiLFlBQVksK1JBQ1osWUFBWSw4QkFDWixZQUFZLDhCQUNaLGdCQUFnQiw4QkFFaEIsV0FBVyw4VkFDWCxtQkFBbUIsOEJBQ25CLGNBQWMseU5BQ2QsYUFBYTs7MkZBS1gsZUFBZTtrQkE1SXBCLFNBQVM7K0JBQ0Usc0JBQXNCLFlBQ3RCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQlQsY0FvR1csSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixZQUFZO3dCQUNaLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QsYUFBYTtxQkFFZDtpSEFnQjBCLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWTtnQkFDRSxVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBK0d6QixjQUFjO3NCQURiLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb21wb25lbnRSZWYsIGNvbXB1dGVkLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdGFibGUsIHNpZ25hbCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UsIER5bmFtaWNEaWFsb2dDb21wb25lbnQsIER5bmFtaWNEaWFsb2dSZWYgfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xyXG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2RpYWxvZyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbWFnZUN1dHRlclNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nc2VydmljZTogRGlhbG9nU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIGN1dChpbWFnZUJhc2U2NDogc3RyaW5nLCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciwgaW5kQ2lyY2xlOiBib29sZWFuID0gZmFsc2UpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgY29uc3QgY3V0Q29uZmlnID0geyBpbWFnZUJhc2U2NCwgd2lkdGgsIGhlaWdodCwgaW5kQ2lyY2xlIH07XHJcbiAgICB0aGlzLmFicmlyTW9kYWwoY3V0Q29uZmlnKTtcclxuXHJcbiAgICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjcm9wSW1hZ2UnLCAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmKGV2ZW50LmRldGFpbC5zdGF0dXMgPT0gdHJ1ZSApIHtcclxuICAgICAgICAgIHJlc29sdmUoZXZlbnQuZGV0YWlsLnJlc3VsdCk7XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICByZWplY3QoJ09wZXJhY2FvIGNhbmNlbGFkYS4nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgYWJyaXJNb2RhbChjdXRDb25maWc6IHsgaW1hZ2VCYXNlNjQ6IHN0cmluZywgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIGluZENpcmNsZTogYm9vbGVhbiB9KSB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSAgICAgICB7XHJcbiAgICAgIGNsb3NhYmxlOiB0cnVlLFxyXG4gICAgICBtYXhpbWl6YWJsZTogZmFsc2UsXHJcbiAgICAgIHBvcHVwOiB0cnVlLFxyXG4gICAgICB3aWR0aDogJzc1dncnLFxyXG4gICAgICBoZWFkZXI6IGBDb3J0YXJgICxcclxuICAgICAgaWQ6IHsgaW1hZ2VtOiBjdXRDb25maWcuaW1hZ2VCYXNlNjQsIHdpZHRoOiBjdXRDb25maWcud2lkdGgsIGhlaWdodDogY3V0Q29uZmlnLmhlaWdodCwgaW5kQ2lyY2xlOiBjdXRDb25maWcuaW5kQ2lyY2xlIH0sXHJcbiAgICAgIHN0eWxlQ2xhc3M6ICdtb2RhbCdcclxuICAgIH1cclxuICAgIGNvbnN0IGRpYWxvZ1JlZjogRHluYW1pY0RpYWxvZ1JlZiA9IEZvcm1TZXJ2aWNlLm9wZW5EaWFsb2codGhpcy5kaWFsb2dzZXJ2aWNlLCBTaW1wbGVDb21wb25lbnQsICgpPT57fSwgcGFyYW1zKTtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vLyA/IENvbXBvbmVudGUgZGUgbW9kYWwgdXNhZG8gbm8gY3V0dGVyXHJcbmltcG9ydCB7IFNsaWRlck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvc2xpZGVyJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZmlsZXVwbG9hZCc7XHJcbmltcG9ydCB7IEt2TGFiZWxNb2R1bGUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2t2LWxhYmVsL2t2LWxhYmVsLm1vZHVsZSc7XHJcbmltcG9ydCB7IEZvcm1TZXJ2aWNlIH0gZnJvbSAnLi9mb3JtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBLdk1vZGFsTW9kdWxlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9rdi1tb2RhbC9rdi1tb2RhbC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBLdkJ1dHRvbk1vZHVsZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMva3YtYnV0dG9uL2t2LWJ1dHRvbi5tb2R1bGUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtc2ltcGxlLWNvbXBvbmVudCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3JvcC1jb250YWluZXJcIj5cclxuICAgICAgICAgIDxjYW52YXMgI2Nyb3BDYW52YXMgY2xhc3M9XCJjcm9wLWNhbnZhc1wiPjwvY2FudmFzPlxyXG4gICAgICAgICAgPGRpdiAjY3JvcEJvcmRlciBjbGFzcz1cImNyb3AtYm9yZGVyXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgbXQtMlwiPlxyXG4gICAgICAgICAgPGt2LWxhYmVsIGxhYmVsPVwiWm9vbVwiIHN0eWxlPVwidGV4dC1hbGlnbjogbGVmdDtcIiAvPlxyXG4gICAgICAgICAgPHAtc2xpZGVyIFsobmdNb2RlbCldPVwidGhpcy5zY2FsZUZhY3Rvck1vZGVsXCIgW3N0ZXBdPVwiMC4wMDAxXCIgIFttYXhdPVwiNVwiICAob25DaGFuZ2UpPVwib25ab29tQ2hhbmdlKCRldmVudClcIj48L3Atc2xpZGVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8a3YtYnV0dG9uIGxhYmVsPVwiQ2FuY2VsYXJcIiBzZXZlcml0eT1cInRlcnRpYXJ5XCIgaWNvbj1cImNsb3NlXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+PC9rdi1idXR0b24+XHJcbiAgICAgICAgICA8a3YtYnV0dG9uIGxhYmVsPVwiUmVjb3J0YXJcIiBzZXZlcml0eT1cInByaW1hcnlcIiBpY29uPVwiY3JvcFwiIChjbGljayk9XCJjcm9wSW1hZ2UoKVwiIGNsYXNzPVwibWwtMlwiPjwva3YtYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPC9kaXY+XHJcblxyXG5cclxuXHJcbiAgYCxcclxuICBzdHlsZXM6IFtgXHJcblxyXG5pbWcge1xyXG4gIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgYm9yZGVyLXdpZHRoOiAycHg7XHJcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gIG9iamVjdC1maXQ6IGNvdmVyO1xyXG59XHJcblxyXG5pIHtcclxuICBmb250LXNpemU6IDIycHg7XHJcbn1cclxuXHJcbi5ib3Rhby1hbHRlcmFyLWZvdG8ge1xyXG4gIGJvcmRlci1zdHlsZTogbm9uZTtcclxuICB3aWR0aDogbWF4LWNvbnRlbnQ7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMjU0MjtcclxuICBjb2xvcjogYmxhY2s7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIHBhZGRpbmc6IDdweCA5cHg7XHJcbn1cclxuXHJcbi5ib3Rhby1hbHRlcmFyLWZvdG8gaSB7XHJcbiAgY29sb3I6ICNmZmY7XHJcbn1cclxuXHJcbi5ib3Rhby1leGNsdWlyLWZvdG8ge1xyXG4gIGJvcmRlci1zdHlsZTogbm9uZTtcclxuICB3aWR0aDogbWF4LWNvbnRlbnQ7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMjU0MjtcclxuICBjb2xvcjogYmxhY2s7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIHBhZGRpbmc6IDdweCA5cHg7XHJcbn1cclxuXHJcbi5ib3Rhby1leGNsdWlyLWZvdG8gaSB7XHJcbiAgY29sb3I6ICNmZmY7XHJcbn1cclxuXHJcbi5idG4ge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDg3JTtcclxuICBsZWZ0OiA4NyU7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbn1cclxuXHJcbi5pbWFnZS1jb250YWluZXIge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5tb2RhbC1jb250ZW50IHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcclxuICBtYXJnaW46IDElIGF1dG87XHJcbiAgcGFkZGluZzogMjBweDtcclxuICB3aWR0aDogODAlO1xyXG4gIG1heC13aWR0aDogZml0LWNvbnRlbnQ7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XHJcbn1cclxuXHJcbi5jcm9wLWNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG59XHJcblxyXG4uY3JvcC1jYW52YXMge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNkMWQ1ZGI7XHJcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IGF1dG87XHJcbn1cclxuXHJcbi5jcm9wLWJvcmRlciB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGJvcmRlcjogMnB4IGRhc2hlZCAjOWNhM2FmO1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG59XHJcblxyXG4uem9vbS1jb250YWluZXIge1xyXG4gIHBhZGRpbmctdG9wOiAyMHB4O1xyXG4gIHBhZGRpbmctYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4uYnV0dG9uLWNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBtYXJnaW4tdG9wOiAyNHB4O1xyXG59XHJcblxyXG5cclxuXHJcbiAgYF0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBEaWFsb2dNb2R1bGUsXHJcbiAgICBLdk1vZGFsTW9kdWxlLFxyXG4gICAgU2xpZGVyTW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgQnV0dG9uTW9kdWxlLFxyXG4gICAgRmlsZVVwbG9hZE1vZHVsZSxcclxuICAgIFNsaWRlck1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIEt2QnV0dG9uTW9kdWxlLFxyXG4gICAgS3ZMYWJlbE1vZHVsZSxcclxuXHJcbiAgXVxyXG59KVxyXG5cclxuY2xhc3MgU2ltcGxlQ29tcG9uZW50IHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkeW5hbWljRGlhbG9nUmVmOiBEeW5hbWljRGlhbG9nUmVmLCBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UpIHtcclxuICAgIHRoaXMuYXR1YWxpemFUYW1hbmhvVGVsYSgpXHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gPyBWYXJpYXZpZXMgcXVlIHJlY2ViZW0gb3MgdmFsb3JlcyBkbyBkaWFsb2dcclxuICBfdmFyaWF2aWVzRGlhbG9nID0gc2lnbmFsPHsgaW1hZ2VtOiBzdHJpbmcsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCBpbmRDaXJjbGU6IGJvb2xlYW4gfXxudWxsPihudWxsKVxyXG5cclxuXHJcblxyXG4gICAgLy8/IFJlZmVyw6puY2lhIHBhcmEgbyBlbGVtZW50byBxdWUgY29udMOpbSBhIGltYWdlbSBlIGNhbnZhc1xyXG4gICAgQFZpZXdDaGlsZCgnY3JvcENhbnZhcycpIGNyb3BDYW52YXMhOiBFbGVtZW50UmVmPEhUTUxDYW52YXNFbGVtZW50PjtcclxuICAgIEBWaWV3Q2hpbGQoJ2Nyb3BCb3JkZXInKSBjcm9wQm9yZGVyITogRWxlbWVudFJlZjtcclxuXHJcbiAgICAvLz8gUmVmZXLDqm5jaWFzIHBhcmEgbyBjb250ZXh0byBlIGNhbnZhc1xyXG4gICAgcHJpdmF0ZSBjYW52YXMgPSBzaWduYWw8SFRNTENhbnZhc0VsZW1lbnR8bnVsbD4obnVsbCk7XHJcbiAgICBwcml2YXRlIGN0eCA9ICBzaWduYWw8Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEfG51bGw+KG51bGwpO1xyXG4gICAgcHJpdmF0ZSBfSW1hZ2UgPSBzaWduYWw8SFRNTEltYWdlRWxlbWVudD4obmV3IEltYWdlKCkpO1xyXG5cclxuICAgIC8vPyBDb29yZGVuYWRhcyBpbmljaWFpcyBlIGZpbmFpcyBkbyBkZXNlbmhvXHJcbiAgICBwcml2YXRlIHN0YXJ0WCA9IDA7XHJcbiAgICBwcml2YXRlIHN0YXJ0WSA9IDA7XHJcblxyXG4gICAgLy8/IFJlZmVyw6puY2lhIHBhcmEgbyBtb2RhbFxyXG4gICAgcHJpdmF0ZSBkaWFsb2dJbnN0YW5jZSE6RHluYW1pY0RpYWxvZ0NvbXBvbmVudDtcclxuXHJcbiAgICAvLz8gRmF0b3IgZGUgZXNjYWxhIGRhIGltYWdlbSBlIHpvb21cclxuICAgIHNjYWxlRmFjdG9yUmVhZE9ubHkgPSBjb21wdXRlZDxudW1iZXI+KCgpPT4ge1xyXG4gICAgICByZXR1cm4gTWF0aC5taW4odGhpcy5zY2FsZUZhY3RvcigpISwgdGhpcy5zY2FsZUZhY3RvckluaWNpYWwoKSErNSk7XHJcbiAgICB9KVxyXG5cclxuICAgIHB1YmxpYyBzY2FsZUZhY3RvckluaWNpYWwgPSBzaWduYWw8bnVtYmVyfG51bGw+KG51bGwpO1xyXG5cclxuICAgIHByaXZhdGUgc2NhbGVGYWN0b3IgPSBzaWduYWw8bnVtYmVyfG51bGw+KG51bGwpO1xyXG5cclxuICAgIHNldFNjYWxlRmFjdG9yTW9kZWwodmFsb3I6bnVtYmVyKXtcclxuICAgICAgdGhpcy5zY2FsZUZhY3Rvck1vZGVsID0gdmFsb3IgLSB0aGlzLnNjYWxlRmFjdG9ySW5pY2lhbCgpITtcclxuICAgICAgdGhpcy5zY2FsZUZhY3Rvci5zZXQodmFsb3IpXHJcbiAgICB9XHJcbiAgICBzY2FsZUZhY3Rvck1vZGVsID0gMDtcclxuXHJcbiAgICBwcml2YXRlIGltYWdlWDogbnVtYmVyID0gMDtcclxuICAgIHByaXZhdGUgaW1hZ2VZOiBudW1iZXIgPSAwO1xyXG5cclxuXHJcbiAgICAvLyNyZWdpb24gUHJvcHJpZWRhZGVzIGNvbXB1dGFkYXMgZGUgdGFtYW5obyBkbyBjYW52YXMgZSBkYSBpbWFnZW1cclxuICAgICAgLy8/IExhcmd1cmEgZSBhbHR1cmEgZG8gY2FudmFzIGJhc2VhZG8gbmEgdGFtYW5obyBkYSB0ZWxhXHJcbiAgICAgIGNhbnZhc1dpZHRoID0gY29tcHV0ZWQ8bnVtYmVyIHwgbnVsbD4oKCkgPT4gdGhpcy53aWR0aFRlbGEoKSowLjUpO1xyXG4gICAgICBjYW52YXNIZWlnaHQgPSBjb21wdXRlZDxudW1iZXIgfCBudWxsPigoKSA9PiB0aGlzLmhlaWd0aFRlbGEoKSowLjUpO1xyXG5cclxuICAgICAgLy8/IExhcmd1cmEgZSBhbHR1cmEgZGEgw6FyZWEgZGUgY29ydGVcclxuICAgICAgY3V0V2lkdGggPSBjb21wdXRlZDxudW1iZXIgfCBudWxsPigoKSA9PiB7XHJcbiAgICAgICAgaWYodGhpcy5fdmFyaWF2aWVzRGlhbG9nKCk/LmluZENpcmNsZSl7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5yYWRpdXMoKSEgKiAyO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgY29uc3QgY2FudmFzV2lkdGggPSB0aGlzLmNhbnZhc1dpZHRoKCkhO1xyXG4gICAgICAgICAgY29uc3QgbWF4V2lkdGggPSBjYW52YXNXaWR0aCAqIDAuODtcclxuICAgICAgICAgIGNvbnN0IHByb3BvcnRpb25hbEhlaWdodCA9IG1heFdpZHRoICogdGhpcy5wcm9wb3JjYW9JbWFnZW0oKSE7XHJcbiAgICAgICAgICByZXR1cm4gcHJvcG9ydGlvbmFsSGVpZ2h0ID4gdGhpcy5jYW52YXNIZWlnaHQoKSEgKiAwLjggPyB0aGlzLmNhbnZhc0hlaWdodCgpISAqIDAuOCAvIHRoaXMucHJvcG9yY2FvSW1hZ2VtKCkhIDogbWF4V2lkdGg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfSk7XHJcbiAgICAgIGN1dEhlaWdodCA9IGNvbXB1dGVkPG51bWJlciB8IG51bGw+KCgpID0+IHtcclxuICAgICAgICBpZih0aGlzLl92YXJpYXZpZXNEaWFsb2coKT8uaW5kQ2lyY2xlKXtcclxuICAgICAgICAgIHJldHVybiB0aGlzLnJhZGl1cygpISAqIDI7XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICBjb25zdCBjYW52YXNIZWlnaHQgPSB0aGlzLmNhbnZhc0hlaWdodCgpITtcclxuICAgICAgICAgIGNvbnN0IG1heEhlaWdodCA9IGNhbnZhc0hlaWdodCAqIDAuODtcclxuICAgICAgICAgIGNvbnN0IHByb3BvcnRpb25hbFdpZHRoID0gbWF4SGVpZ2h0IC8gdGhpcy5wcm9wb3JjYW9JbWFnZW0oKSE7XHJcbiAgICAgICAgICByZXR1cm4gcHJvcG9ydGlvbmFsV2lkdGggPiB0aGlzLmNhbnZhc1dpZHRoKCkhICogMC44ID8gdGhpcy5jYW52YXNXaWR0aCgpISAqIDAuOCAqIHRoaXMucHJvcG9yY2FvSW1hZ2VtKCkhIDogbWF4SGVpZ2h0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgLy8/IExhcmd1cmEgZSBhbHR1cmEgZGEgaW1hZ2VtIG5vIGNhbnZhcyAoYmFzZWFkbyBuYSBlc2NhbGEpIC0gdGFtYW5obyByZWFsIGRhIGltYWdlbVxyXG4gICAgICBjYW52YUltYWdlV2lkdGggPSBjb21wdXRlZDxudW1iZXI+KCgpPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9JbWFnZSgpLndpZHRoICogdGhpcy5zY2FsZUZhY3RvclJlYWRPbmx5KCkhXHJcbiAgICAgIH0pXHJcbiAgICAgIGNhbnZhSW1hZ2VIZWlnaHQgPSBjb21wdXRlZDxudW1iZXI+KCgpPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9JbWFnZSgpLmhlaWdodCAqIHRoaXMuc2NhbGVGYWN0b3JSZWFkT25seSgpIVxyXG4gICAgICB9KVxyXG4gICAgICBwcm9wb3JjYW9JbWFnZW0gPSBjb21wdXRlZDxudW1iZXIgfCBudWxsPigoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Zhcmlhdmllc0RpYWxvZygpPy5oZWlnaHQhIC8gdGhpcy5fdmFyaWF2aWVzRGlhbG9nKCk/LndpZHRoITtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICByYWRpdXMgPSBjb21wdXRlZDxudW1iZXIgfCBudWxsPigoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgbWluU2l6ZSA9ICAgTWF0aC5taW4odGhpcy5jYW52YXNIZWlnaHQoKSEqMC44LCB0aGlzLmNhbnZhc1dpZHRoKCkhKjAuOCApO1xyXG4gICAgICAgIHJldHVybiBtaW5TaXplLzI7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgIC8vICNyZWdpb24gTGltaXRlcyBkZSBtb3ZpbWVudGHDp8OjbyBkYSBpbWFnZW1cclxuICAgIC8vPyBMaW1pdGVzIGRlIG1vdmltZW50YcOnw6NvIGRhIGltYWdlbVxyXG4gICAgICBpbmRDaXJjbGUgPSBjb21wdXRlZDxib29sZWFuPigoKT0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdmFyaWF2aWVzRGlhbG9nKCk/LmluZENpcmNsZSFcclxuICAgICAgfSlcclxuXHJcbiAgICAgIHhNaW4gPSBjb21wdXRlZDxudW1iZXI+KCgpPT4ge1xyXG4gICAgICAgIHJldHVybiAhdGhpcy5fdmFyaWF2aWVzRGlhbG9nKCk/LmluZENpcmNsZSEgPyAodGhpcy5jYW52YXNXaWR0aCgpISAtICB0aGlzLmN1dFdpZHRoKCkhKS8yIDogKHRoaXMuY2FudmFzV2lkdGgoKSEgLSAgKHRoaXMucmFkaXVzKCkhKjIpKS8yXHJcbiAgICAgIH0pXHJcbiAgICAgIHlNaW4gPSBjb21wdXRlZDxudW1iZXI+KCgpPT4ge1xyXG4gICAgICAgIHJldHVybiAhdGhpcy5fdmFyaWF2aWVzRGlhbG9nKCk/LmluZENpcmNsZSEgPyAodGhpcy5jYW52YXNIZWlnaHQoKSEgLSAgdGhpcy5jdXRIZWlnaHQoKSEpLzIgOiAodGhpcy5jYW52YXNIZWlnaHQoKSEgLSAgKHRoaXMucmFkaXVzKCkhKjIpKS8yXHJcbiAgICAgIH0pXHJcblxyXG4gICAgICB4TWF4ID0gY29tcHV0ZWQ8bnVtYmVyPigoKT0+IHtcclxuICAgICAgICByZXR1cm4gIXRoaXMuX3Zhcmlhdmllc0RpYWxvZygpPy5pbmRDaXJjbGUhID8gLSggdGhpcy5jYW52YUltYWdlV2lkdGgoKSEgLSAodGhpcy54TWluKCkhKSAtIHRoaXMuY3V0V2lkdGgoKSEpIDogLSggdGhpcy5jYW52YUltYWdlV2lkdGgoKSEgLSAodGhpcy54TWluKCkhKSAtICh0aGlzLnJhZGl1cygpISoyKSlcclxuICAgICAgfSlcclxuICAgICAgeU1heCA9IGNvbXB1dGVkPG51bWJlcj4oKCk9PiB7XHJcbiAgICAgICAgcmV0dXJuICF0aGlzLl92YXJpYXZpZXNEaWFsb2coKT8uaW5kQ2lyY2xlISA/IC0oIHRoaXMuY2FudmFJbWFnZUhlaWdodCgpISAtICh0aGlzLnlNaW4oKSEpIC0gdGhpcy5jdXRIZWlnaHQoKSEpIDogLSggdGhpcy5jYW52YUltYWdlSGVpZ2h0KCkhIC0gKHRoaXMueU1pbigpISkgLSAodGhpcy5yYWRpdXMoKSEqMikpXHJcbiAgICAgIH0pXHJcbiAgICAvLyAjZW5kcmVnaW9uXHJcblxyXG5cclxuXHJcbiAgICAvLz8gUHJvcG9yw6fDo28gZGEgaW1hZ2VtXHJcblxyXG4gICAgd2lkdGhUZWxhID0gc2lnbmFsPG51bWJlcj4oMClcclxuICAgIGhlaWd0aFRlbGEgPSBzaWduYWw8bnVtYmVyPigwKVxyXG5cclxuXHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxyXG4gIG9uV2luZG93UmVzaXplKCkge1xyXG4gICAgdGhpcy5hdHVhbGl6YVRhbWFuaG9UZWxhKClcclxuICAgIHRoaXMudXBkYXRlQ2FudmFzU2l6ZSgpO1xyXG4gICAgdGhpcy5hdHVhbGl6YUN1dEJvcmRlcigpO1xyXG4gIH1cclxuXHJcbiAgYXR1YWxpemFUYW1hbmhvVGVsYSgpe1xyXG4gICAgdGhpcy53aWR0aFRlbGEuc2V0KHdpbmRvdy5pbm5lcldpZHRoKTtcclxuICAgIHRoaXMuaGVpZ3RoVGVsYS5zZXQod2luZG93LmlubmVySGVpZ2h0KTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMucmVjdXBlcmFyVmFyaWF2aWVzRGlhbG9nKClcclxuICAgIHRoaXMuaW5jaWFyUmVmZXJlbmNpYXMoKVxyXG4gICAgdGhpcy5pbmljaWFyQ2FudmFzKClcclxuICB9XHJcbiAgaW5jaWFyUmVmZXJlbmNpYXMoKXtcclxuICAgIHRoaXMuY2FudmFzLnNldCh0aGlzLmNyb3BDYW52YXMubmF0aXZlRWxlbWVudCk7XHJcbiAgICB0aGlzLmN0eC5zZXQodGhpcy5jYW52YXMoKSEuZ2V0Q29udGV4dCgnMmQnKSlcclxuICAgIHRoaXMuX0ltYWdlKCkuc3JjID0gdGhpcy5fdmFyaWF2aWVzRGlhbG9nKCk/LmltYWdlbSFcclxuICB9XHJcbiAgaW5pY2lhckNhbnZhcygpe1xyXG4gICAgICB0aGlzLl9JbWFnZSgpLm9ubG9hZCA9ICgpID0+IHtcclxuXHJcbiAgICAgIC8vPyBEZWZpbmUgbyB0YW1hbmhvIGRvIGNhbnZhc1xyXG4gICAgICB0aGlzLmNhbnZhcygpIS5oZWlnaHQgPSB0aGlzLmNhbnZhc0hlaWdodCgpITtcclxuICAgICAgdGhpcy5jYW52YXMoKSEud2lkdGggPSB0aGlzLmNhbnZhc1dpZHRoKCkhO1xyXG5cclxuXHJcbiAgICAgIHRoaXMuYWp1c3RhclpvbW1FUG9zaWNhb0luaWNpYWwoKVxyXG5cclxuXHJcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZUltYWdlTW92ZSh0aGlzLmNhbnZhcygpISwgdGhpcy5jdHgoKSwgdGhpcy5fSW1hZ2UoKSk7XHJcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZU1vdXNlV2hlZWwodGhpcy5jYW52YXMoKSEsIHRoaXMuY3R4KCksIHRoaXMuX0ltYWdlKCkpO1xyXG5cclxuICAgICAgdGhpcy5yZWRyYXdDYW52YXModGhpcy5jdHgoKSwgdGhpcy5fSW1hZ2UoKSk7XHJcblxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGFqdXN0YXJab21tRVBvc2ljYW9JbmljaWFsKCl7XHJcbiAgICBjb25zdCBjdXRXaWR0aCA9IHRoaXMuY3V0V2lkdGgoKSE7XHJcbiAgICBjb25zdCBjdXRIZWlnaHQgPSB0aGlzLmN1dEhlaWdodCgpITtcclxuICAgIGNvbnN0IGltYWdlV2lkdGggPSB0aGlzLl9JbWFnZSgpLndpZHRoO1xyXG4gICAgY29uc3QgaW1hZ2VIZWlnaHQgPSB0aGlzLl9JbWFnZSgpLmhlaWdodDtcclxuXHJcbiAgICAvLz8gQWp1c3RhIHBvc3Npw6fDo28gZSB6b29tIGluaWNpYWxcclxuXHJcbiAgICBpZiAodGhpcy5fdmFyaWF2aWVzRGlhbG9nKCk/LmluZENpcmNsZSkge1xyXG4gICAgICBjb25zdCBzY2FsZUZhY3RvciA9ICh0aGlzLnJhZGl1cygpISAqIDIpIC8gTWF0aC5taW4oaW1hZ2VXaWR0aCwgaW1hZ2VIZWlnaHQpO1xyXG4gICAgICB0aGlzLnNjYWxlRmFjdG9ySW5pY2lhbC5zZXQoc2NhbGVGYWN0b3IpXHJcbiAgICAgIHRoaXMuc2V0U2NhbGVGYWN0b3JNb2RlbChzY2FsZUZhY3Rvcik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBzY2FsZUZhY3RvciA9IHRoaXMuY3V0SGVpZ2h0KCkhID09PSB0aGlzLmN1dFdpZHRoKCkhXHJcbiAgICAgICAgPyB0aGlzLl9JbWFnZSgpLndpZHRoID4gdGhpcy5fSW1hZ2UoKS5oZWlnaHRcclxuICAgICAgICAgID8gdGhpcy5jdXRIZWlnaHQoKSEgLyBpbWFnZUhlaWdodFxyXG4gICAgICAgICAgOiB0aGlzLmN1dFdpZHRoKCkhIC8gaW1hZ2VXaWR0aFxyXG4gICAgICAgIDogdGhpcy5jdXRIZWlnaHQoKSEgPiB0aGlzLmN1dFdpZHRoKCkhXHJcbiAgICAgICAgICA/IHRoaXMuY3V0SGVpZ2h0KCkhIC8gaW1hZ2VIZWlnaHRcclxuICAgICAgICAgIDogdGhpcy5jdXRXaWR0aCgpISAvIGltYWdlV2lkdGg7XHJcbiAgICAgIHRoaXMuc2NhbGVGYWN0b3JJbmljaWFsLnNldChzY2FsZUZhY3RvcilcclxuICAgICAgdGhpcy5zZXRTY2FsZUZhY3Rvck1vZGVsKHNjYWxlRmFjdG9yKTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pbWFnZVggPSBNYXRoLm1heCgodGhpcy5jYW52YXMoKSEud2lkdGggLSBpbWFnZVdpZHRoICogdGhpcy5zY2FsZUZhY3RvclJlYWRPbmx5KCkhKSAvIDIsIHRoaXMueE1pbigpISk7XHJcbiAgICB0aGlzLmltYWdlWSA9IE1hdGgubWF4KCh0aGlzLmNhbnZhc0hlaWdodCgpISAtIGltYWdlSGVpZ2h0ICogdGhpcy5zY2FsZUZhY3RvclJlYWRPbmx5KCkhKSAvIDIsIHRoaXMueU1pbigpISk7XHJcblxyXG4gIH1cclxuXHJcbiAgLy8jcmVnaW9uIE3DqXRvZG9zIGRlIHJlY3VwZXJhw6fDo28gZGUgZGFkb3NcclxuICByZWN1cGVyYUluc3RhbmNpYURpYWxvZygpOiBEeW5hbWljRGlhbG9nQ29tcG9uZW50IHtcclxuICAgIGNvbnN0IGFycjogTWFwPER5bmFtaWNEaWFsb2dSZWY8YW55PiwgQ29tcG9uZW50UmVmPGFueT4+ID0gdGhpcy5kaWFsb2dTZXJ2aWNlLmRpYWxvZ0NvbXBvbmVudFJlZk1hcFxyXG4gICAgY29uc3QgZW50cmllcyA9IGFyci5lbnRyaWVzKCk7XHJcbiAgICBjb25zdCBmaXJzdEVudHJ5ID0gZW50cmllcy5uZXh0KCkudmFsdWU7XHJcbiAgICBjb25zdCBbZmlyc3RLZXksIGZpcnN0VmFsdWVdID0gZmlyc3RFbnRyeTtcclxuICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5kaWFsb2dTZXJ2aWNlLmdldEluc3RhbmNlKGZpcnN0S2V5KVxyXG4gICAgdGhpcy5kaWFsb2dJbnN0YW5jZSA9IGluc3RhbmNlXHJcbiAgICByZXR1cm4gaW5zdGFuY2VcclxuICB9XHJcblxyXG4gIHJlY3VwZXJhclZhcmlhdmllc0RpYWxvZygpOiB2b2lke1xyXG4gICAgdGhpcy5fdmFyaWF2aWVzRGlhbG9nLnNldCh0aGlzLnJlY3VwZXJhSW5zdGFuY2lhRGlhbG9nKCkuZGF0YS5pZClcclxuICB9XHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG5cclxuICAvLyNyZWdpb24gTcOpdG9kb3MgZGUgYXR1YWxpemFjYW8gZG8gY2FudmFzXHJcbiAgLy8/IEF0dWFsaXphIG8gdGFtYW5obyBkbyBjYW52YXNcclxuICB1cGRhdGVDYW52YXNTaXplKCkge1xyXG5cclxuICAgIHRoaXMuaW1hZ2VYID0gKHRoaXMuY2FudmFzKCkhLndpZHRoIC0gdGhpcy5fSW1hZ2UoKS53aWR0aCAqIHRoaXMuc2NhbGVGYWN0b3JSZWFkT25seSgpISkgLyAyO1xyXG4gICAgdGhpcy5pbWFnZVkgPSAodGhpcy5jYW52YXNIZWlnaHQoKSEgLyAyKSAtICh0aGlzLl9JbWFnZSgpLmhlaWdodCAqIHRoaXMuc2NhbGVGYWN0b3JSZWFkT25seSgpISkgLyAyO1xyXG5cclxuXHJcblxyXG4gICAgdGhpcy5jYW52YXMoKSEuaGVpZ2h0ID0gdGhpcy5jYW52YXNIZWlnaHQoKSE7XHJcbiAgICB0aGlzLmNhbnZhcygpIS53aWR0aCA9IHRoaXMuY2FudmFzV2lkdGgoKSE7XHJcblxyXG4gICAgdGhpcy5yZWRyYXdDYW52YXModGhpcy5jdHgoKSwgdGhpcy5fSW1hZ2UoKSk7XHJcbiAgfVxyXG5cclxuICByZWRyYXdDYW52YXMoY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgfCBudWxsLCBpbWc6IEhUTUxJbWFnZUVsZW1lbnQpIHtcclxuICAgIGlmICghY3R4KSByZXR1cm47XHJcblxyXG4gICAgdGhpcy5kcmF3Q3JvcEFyZWEoY3R4KTtcclxuXHJcbiAgICBjdHguY2xlYXJSZWN0KDAsIDAsIGN0eC5jYW52YXMud2lkdGgsIGN0eC5jYW52YXMuaGVpZ2h0KTtcclxuICAgIGN0eC5maWx0ZXIgPSAnYmx1cig1cHgpIG9wYWNpdHkoMC45KSc7XHJcbiAgICBjdHguZHJhd0ltYWdlKGltZywgdGhpcy5pbWFnZVgsIHRoaXMuaW1hZ2VZLCBpbWcud2lkdGggKiB0aGlzLnNjYWxlRmFjdG9yUmVhZE9ubHkoKSEsIGltZy5oZWlnaHQgKiB0aGlzLnNjYWxlRmFjdG9yUmVhZE9ubHkoKSEpO1xyXG4gICAgY3R4LmZpbHRlciA9ICdub25lJztcclxuXHJcbiAgICB0aGlzLmRyYXdJbWFnZUluQ3JvcEFyZWEoY3R4LCBpbWcpO1xyXG4gIH1cclxuXHJcbiAgLy8/IERlc2VuaGEgYSDDoXJlYSBkZSBjb3J0ZVxyXG4gIGRyYXdDcm9wQXJlYShjdHg6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB8IG51bGwpIHtcclxuICAgIGlmICghY3R4KSByZXR1cm47XHJcblxyXG4gICAgdGhpcy5hdHVhbGl6YUN1dEJvcmRlcigpXHJcblxyXG4gICAgY29uc3QgY3JvcFggPSBjdHguY2FudmFzLndpZHRoIC8gMiAtIHRoaXMuY3V0V2lkdGgoKSEgLyAyO1xyXG4gICAgY29uc3QgY3JvcFkgPSBjdHguY2FudmFzLmhlaWdodCAvIDIgLSB0aGlzLmN1dEhlaWdodCgpISAvIDI7XHJcblxyXG5cclxuICAgIGNvbnN0IGNyb3BYQ2lyY2xlID0gY3R4LmNhbnZhcy53aWR0aCAvIDIgLSB0aGlzLnJhZGl1cygpISAvIDI7XHJcbiAgICBjb25zdCBjcm9wWUNpcmNsZSA9IGN0eC5jYW52YXMuaGVpZ2h0IC8gMiAtIHRoaXMucmFkaXVzKCkhIC8gMjtcclxuXHJcbiAgICBjdHguYmVnaW5QYXRoKCk7XHJcbiAgICBjdHguc3Ryb2tlU3R5bGUgPSAndHJhbnNwYXJlbnQnO1xyXG4gICAgY3R4LmxpbmVXaWR0aCA9IDI7XHJcblxyXG4gICAgaWYodGhpcy5fdmFyaWF2aWVzRGlhbG9nKCk/LmluZENpcmNsZSkge1xyXG4gICAgICBjdHguYXJjKGNyb3BYQ2lyY2xlLCBjcm9wWUNpcmNsZSwgdGhpcy5yYWRpdXMoKSEsIDAsIE1hdGguUEkgKiAyLCB0cnVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGN0eC5yZWN0KGNyb3BYLCBjcm9wWSAsIHRoaXMuY3V0V2lkdGgoKSEsIHRoaXMuY3V0SGVpZ2h0KCkhKTtcclxuICAgIH1cclxuXHJcbiAgICBjdHguc3Ryb2tlKCk7XHJcblxyXG5cclxuICB9XHJcbiAgLy8/IERlc2VuaGEgYSBpbWFnZW0gbmEgw6FyZWEgZGUgY29ydGVcclxuICBkcmF3SW1hZ2VJbkNyb3BBcmVhKGN0eDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIHwgbnVsbCwgaW1nOiBIVE1MSW1hZ2VFbGVtZW50KSB7XHJcbiAgICAgIGlmICghY3R4KSByZXR1cm47XHJcblxyXG4gICAgICBjb25zdCBjcm9wWCA9IChjdHguY2FudmFzLndpZHRoIC0gdGhpcy5jdXRXaWR0aCgpISkgLyAyO1xyXG4gICAgICBjb25zdCBjcm9wWSA9IChjdHguY2FudmFzLmhlaWdodCAtIHRoaXMuY3V0SGVpZ2h0KCkhKSAvIDI7XHJcblxyXG4gICAgICBjdHguc2F2ZSgpO1xyXG4gICAgICBjdHguYmVnaW5QYXRoKCk7XHJcblxyXG4gICAgICBpZih0aGlzLl92YXJpYXZpZXNEaWFsb2coKT8uaW5kQ2lyY2xlKSB7XHJcbiAgICAgICAgY3R4LmFyYyhjdHguY2FudmFzLndpZHRoLzIsIGN0eC5jYW52YXMuaGVpZ2h0LzIsIHRoaXMucmFkaXVzKCkhLCAwLCBNYXRoLlBJICogMiwgdHJ1ZSk7XHJcblxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGN0eC5yZWN0KGNyb3BYLCBjcm9wWSAsIHRoaXMuY3V0V2lkdGgoKSEsIHRoaXMuY3V0SGVpZ2h0KCkhKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY3R4LmNsaXAoKTtcclxuICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIHRoaXMuaW1hZ2VYLCB0aGlzLmltYWdlWSwgaW1nLndpZHRoICogdGhpcy5zY2FsZUZhY3RvclJlYWRPbmx5KCkhLCBpbWcuaGVpZ2h0ICogdGhpcy5zY2FsZUZhY3RvclJlYWRPbmx5KCkhKTtcclxuICAgICAgY3R4LnJlc3RvcmUoKTtcclxuICB9XHJcbiAgYXR1YWxpemFDdXRCb3JkZXIoKSB7XHJcbiAgICBpZiAodGhpcy5jcm9wQm9yZGVyICYmIHRoaXMuY3JvcEJvcmRlci5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgIGNvbnN0IGNyb3BCb3JkZXJFbGVtZW50ID0gdGhpcy5jcm9wQm9yZGVyLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgIGlmKHRoaXMuX3Zhcmlhdmllc0RpYWxvZygpPy5pbmRDaXJjbGUpe1xyXG5cclxuICAgICAgICBjcm9wQm9yZGVyRWxlbWVudC5zdHlsZS5ib3JkZXJSYWRpdXMgPSB0aGlzLnJhZGl1cygpISoyKydweCc7XHJcbiAgICAgICAgY3JvcEJvcmRlckVsZW1lbnQuc3R5bGUud2lkdGggPSB0aGlzLnJhZGl1cygpISoyKydweCc7XHJcbiAgICAgICAgY3JvcEJvcmRlckVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gdGhpcy5yYWRpdXMoKSEqMisncHgnO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBjcm9wQm9yZGVyRWxlbWVudC5zdHlsZS53aWR0aCA9IHRoaXMuY3V0V2lkdGgoKSErJ3B4JztcclxuICAgICAgICBjcm9wQm9yZGVyRWxlbWVudC5zdHlsZS5oZWlnaHQgPSB0aGlzLmN1dEhlaWdodCgpISsncHgnO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuXHJcbiAgLy8jcmVnaW9uIGhhbmRsZXJzIGRlIGV2ZW50b3NcclxuXHJcbiAgY29tcGFyYWRvck9uWm9vbUNoYW5nZSA9IHRoaXMuc2NhbGVGYWN0b3JJbmljaWFsKCkhO1xyXG4gIG9uWm9vbUNoYW5nZShlOiBhbnkpIHtcclxuICAgIGNvbnN0IHByZXZab29tID0gdGhpcy5jb21wYXJhZG9yT25ab29tQ2hhbmdlO1xyXG4gICAgY29uc3Qgem9vbVZhbHVlID0gZS52YWx1ZTtcclxuICAgIHRoaXMuY29tcGFyYWRvck9uWm9vbUNoYW5nZSA9IGUudmFsdWU7XHJcbiAgICBjb25zdCBkaXJlY3Rpb246ICd1cCcgfCAnZG93bicgPSBwcmV2Wm9vbSA8IHpvb21WYWx1ZSA/ICd1cCcgOiAnZG93bic7XHJcbiAgICB0aGlzLmFqdXN0YXJab29tKGRpcmVjdGlvbiwgZS52YWx1ZSk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGluaXRpYWxpemVNb3VzZVdoZWVsKGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQsIGN0eDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIHwgbnVsbCwgaW1nOiBIVE1MSW1hZ2VFbGVtZW50KSB7XHJcbiAgICBjYW52YXMub253aGVlbCA9IChlKSA9PiB7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgLy8/IFJlY3VwZXJhbmRvIG9zIHZhbG9yZXMgZGUgem9vbSBlIGRlbHRhIGF0dWFpc1xyXG4gICAgICBjb25zdCBkaXJlY3Rpb246ICd1cCcgfCAnZG93bicgPSBlLmRlbHRhWSA+IDAgPyAnZG93bicgOiAndXAnO1xyXG5cclxuICAgICAgdGhpcy5hanVzdGFyWm9vbShkaXJlY3Rpb24pXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcblxyXG4gIGFqdXN0YXJab29tKGRpcmVjdGlvbjogJ3VwJyB8ICdkb3duJywgdmFsdWU/OiBudW1iZXIpIHtcclxuICAgIGNvbnN0IHByZXZTY2FsZUZhY3RvciA9IHRoaXMuc2NhbGVGYWN0b3JSZWFkT25seSgpITtcclxuICAgIGNvbnN0IGRlbHRhID0gZGlyZWN0aW9uID09ICdkb3duJyA/IC0wLjAxNSA6IDAuMDE1O1xyXG5cclxuICAgIGxldCBzY2FsZUZhY3RvciA9IHByZXZTY2FsZUZhY3RvciArIChkZWx0YSoxLjQpO1xyXG5cclxuICAgIGlmKHZhbHVlKVxyXG4gICAgICAgIHNjYWxlRmFjdG9yID0gdmFsdWUrIHRoaXMuc2NhbGVGYWN0b3JJbmljaWFsKCkhO1xyXG5cclxuICAgIGNvbnN0IG5ld0hlaWdodCA9IHRoaXMuX0ltYWdlKCkuaGVpZ2h0ICogc2NhbGVGYWN0b3I7XHJcbiAgICBjb25zdCBuZXdXaWR0aCA9IHRoaXMuX0ltYWdlKCkud2lkdGggKiBzY2FsZUZhY3RvcjtcclxuXHJcbiAgICBpZiAodGhpcy5fdmFyaWF2aWVzRGlhbG9nKCk/LmluZENpcmNsZSkge1xyXG4gICAgICBpZiAobmV3SGVpZ2h0IDwgdGhpcy5yYWRpdXMoKSEgKiAyIHx8IG5ld1dpZHRoIDwgdGhpcy5yYWRpdXMoKSEgKiAyKSB7XHJcbiAgICAgICAgc2NhbGVGYWN0b3IgPSBwcmV2U2NhbGVGYWN0b3I7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zY2FsZUZhY3Rvci5zZXQoc2NhbGVGYWN0b3IpO1xyXG4gICAgICAgIHRoaXMuc2V0U2NhbGVGYWN0b3JNb2RlbChzY2FsZUZhY3Rvcik7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChuZXdIZWlnaHQgPCB0aGlzLmN1dEhlaWdodCgpISB8fCBuZXdXaWR0aCA8IHRoaXMuY3V0V2lkdGgoKSEpIHtcclxuICAgICAgICBzY2FsZUZhY3RvciA9IHByZXZTY2FsZUZhY3RvcjtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNjYWxlRmFjdG9yLnNldChzY2FsZUZhY3Rvcik7XHJcbiAgICAgICAgdGhpcy5zZXRTY2FsZUZhY3Rvck1vZGVsKHNjYWxlRmFjdG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2NhbGVGYWN0b3Iuc2V0KHNjYWxlRmFjdG9yKTtcclxuICAgIHRoaXMuc2V0U2NhbGVGYWN0b3JNb2RlbChzY2FsZUZhY3Rvcik7XHJcblxyXG4gICAgY29uc3QgY2FudmFzID0gdGhpcy5jcm9wQ2FudmFzLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBjb25zdCBjYW52YXNXaWR0aCA9IGNhbnZhcy5vZmZzZXRXaWR0aDtcclxuICAgIGNvbnN0IGNhbnZhc0hlaWdodCA9IGNhbnZhcy5vZmZzZXRIZWlnaHQ7XHJcbiAgICBjb25zdCBjZW50ZXJYID0gY2FudmFzV2lkdGggLyAyO1xyXG4gICAgY29uc3QgY2VudGVyWSA9IGNhbnZhc0hlaWdodCAvIDI7XHJcbiAgICBjb25zdCBuZXdDYW52YXNYID0gY2VudGVyWCAtIChjZW50ZXJYIC0gdGhpcy5pbWFnZVgpICogKHNjYWxlRmFjdG9yIC8gcHJldlNjYWxlRmFjdG9yKTtcclxuICAgIGNvbnN0IG5ld0NhbnZhc1kgPSBjZW50ZXJZIC0gKGNlbnRlclkgLSB0aGlzLmltYWdlWSkgKiAoc2NhbGVGYWN0b3IgLyBwcmV2U2NhbGVGYWN0b3IpO1xyXG4gICAgdGhpcy5pbWFnZVggPSBuZXdDYW52YXNYO1xyXG4gICAgdGhpcy5pbWFnZVkgPSBuZXdDYW52YXNZO1xyXG5cclxuICAgIGlmICghdGhpcy52ZXJpZmljYUltYWdlbWRlbnRyb0Rvc0xpbWl0ZVhtaW4oKSkge1xyXG4gICAgICBjb25zdCBkaWZmWG1pbiA9IHRoaXMucmV0b3JuYURpZmZYbWF4KCk7XHJcbiAgICAgIHRoaXMubW92ZUltYWdlKHRoaXMuaW1hZ2VYIC0gZGlmZlhtaW4pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy52ZXJpZmljYUltYWdlbWRlbnRyb0Rvc0xpbWl0ZVhtYXgoKSkge1xyXG4gICAgICBjb25zdCBkaWZmWG1heCA9IHRoaXMucmV0b3JuYURpZmZYbWluKCk7XHJcbiAgICAgIHRoaXMubW92ZUltYWdlKHRoaXMuaW1hZ2VYICsgZGlmZlhtYXgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy52ZXJpZmljYUltYWdlbWRlbnRyb0Rvc0xpbWl0ZVltYXgoKSkge1xyXG4gICAgICBjb25zdCBkaWZmWW1heCA9IHRoaXMucmV0b3JuYURpZmZZbWluKCk7XHJcbiAgICAgIHRoaXMubW92ZUltYWdlKHVuZGVmaW5lZCwgdGhpcy5pbWFnZVkgKyBkaWZmWW1heCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLnZlcmlmaWNhSW1hZ2VtZGVudHJvRG9zTGltaXRlWW1pbigpKSB7XHJcbiAgICAgIGNvbnN0IGRpZmZZbWluID0gdGhpcy5yZXRvcm5hRGlmZlltYXgoKTtcclxuICAgICAgdGhpcy5tb3ZlSW1hZ2UodW5kZWZpbmVkLCB0aGlzLmltYWdlWSAtIGRpZmZZbWluKTtcclxuICAgIH1cclxuICAgIHRoaXMucmVkcmF3Q2FudmFzKHRoaXMuY3R4KCkhLCB0aGlzLl9JbWFnZSgpISk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuICB2ZXJpZmljYUltYWdlbWRlbnRyb0Rvc0xpbWl0ZVhtaW4oKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBuZXdJbWFnZVggPSB0aGlzLmltYWdlWDtcclxuICAgIHJldHVybiBuZXdJbWFnZVggPCB0aGlzLnhNaW4oKSFcclxuICB9XHJcbiAgdmVyaWZpY2FJbWFnZW1kZW50cm9Eb3NMaW1pdGVYbWF4KCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgbmV3SW1hZ2VYID0gdGhpcy5pbWFnZVg7XHJcbiAgICByZXR1cm4gbmV3SW1hZ2VYID4gdGhpcy54TWF4KCkhXHJcbiAgfVxyXG4gIHZlcmlmaWNhSW1hZ2VtZGVudHJvRG9zTGltaXRlWW1pbigpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IG5ld0ltYWdlWSA9IHRoaXMuaW1hZ2VZO1xyXG4gICAgcmV0dXJuIG5ld0ltYWdlWSA8IHRoaXMueU1pbigpIVxyXG4gIH1cclxuICB2ZXJpZmljYUltYWdlbWRlbnRyb0Rvc0xpbWl0ZVltYXgoKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBuZXdJbWFnZVkgPSB0aGlzLmltYWdlWTtcclxuICAgIHJldHVybiBuZXdJbWFnZVkgPiB0aGlzLnlNYXgoKSFcclxuICB9XHJcblxyXG4gIHJldG9ybmFEaWZmWG1pbigpOiBudW1iZXIge1xyXG4gICAgY29uc3QgbmV3SW1hZ2VYID0gdGhpcy5pbWFnZVg7XHJcbiAgICByZXR1cm4gdGhpcy54TWluKCkhIC0gbmV3SW1hZ2VYO1xyXG4gIH1cclxuICByZXRvcm5hRGlmZlhtYXgoKTogbnVtYmVyIHtcclxuICAgIGNvbnN0IG5ld0ltYWdlWCA9IHRoaXMuaW1hZ2VYO1xyXG4gICAgcmV0dXJuIG5ld0ltYWdlWCAtIHRoaXMueE1heCgpITtcclxuICB9XHJcbiAgcmV0b3JuYURpZmZZbWluKCk6IG51bWJlciB7XHJcbiAgICBjb25zdCBuZXdJbWFnZVkgPSB0aGlzLmltYWdlWTtcclxuICAgIHJldHVybiB0aGlzLnlNaW4oKSEgLSBuZXdJbWFnZVk7XHJcbiAgfVxyXG4gIHJldG9ybmFEaWZmWW1heCgpOiBudW1iZXIge1xyXG4gICAgY29uc3QgbmV3SW1hZ2VZID0gdGhpcy5pbWFnZVk7XHJcbiAgICByZXR1cm4gbmV3SW1hZ2VZIC0gdGhpcy55TWF4KCkhO1xyXG4gIH1cclxuXHJcblxyXG4gIGluaXRpYWxpemVJbWFnZU1vdmUoY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCwgY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgfCBudWxsLCBpbWc6IEhUTUxJbWFnZUVsZW1lbnQpIHtcclxuICAgIGxldCBpc0RyYWdnaW5nID0gZmFsc2U7XHJcblxyXG4gICAgY2FudmFzLnN0eWxlLmN1cnNvciA9ICdncmFiJztcclxuXHJcbiAgICBjYW52YXMub25tb3VzZWRvd24gPSAoZSkgPT4ge1xyXG4gICAgICBpc0RyYWdnaW5nID0gdHJ1ZTtcclxuICAgICAgY2FudmFzLnN0eWxlLmN1cnNvciA9ICdncmFiYmluZyc7XHJcbiAgICAgIHRoaXMuc3RhcnRYID0gZS5vZmZzZXRYIC0gdGhpcy5pbWFnZVg7XHJcbiAgICAgIHRoaXMuc3RhcnRZID0gZS5vZmZzZXRZIC0gdGhpcy5pbWFnZVk7XHJcbiAgICB9O1xyXG5cclxuICAgIGNhbnZhcy5vbm1vdXNldXAgPSAoKSA9PiB7XHJcbiAgICAgIGlzRHJhZ2dpbmcgPSBmYWxzZTtcclxuICAgICAgY2FudmFzLnN0eWxlLmN1cnNvciA9ICdncmFiJztcclxuICAgIH07XHJcblxyXG4gICAgY2FudmFzLm9ubW91c2VvdXQgPSAoKSA9PiB7XHJcbiAgICAgIGlzRHJhZ2dpbmcgPSBmYWxzZTtcclxuICAgICAgY2FudmFzLnN0eWxlLmN1cnNvciA9ICdncmFiJztcclxuICAgIH07XHJcblxyXG4gICAgY2FudmFzLm9ubW91c2Vtb3ZlID0gKGUpID0+IHtcclxuICAgICAgaWYgKGlzRHJhZ2dpbmcpIHtcclxuXHJcbiAgICAgICAgICAvLyBDYWxjdWxhIG8gbm92byBwb3NpY2lvbmFtZW50byBkYSBpbWFnZW1cclxuICAgICAgICAgIGxldCBuZXdJbWFnZVggPSBlLm9mZnNldFggLSB0aGlzLnN0YXJ0WDtcclxuICAgICAgICAgIGxldCBuZXdJbWFnZVkgPSBlLm9mZnNldFkgLSB0aGlzLnN0YXJ0WTtcclxuXHJcbiAgICAgICAgICBpZiAobmV3SW1hZ2VYIDwgIHRoaXMueE1pbigpISAmJiBuZXdJbWFnZVggPiB0aGlzLnhNYXgoKSEpIHtcclxuICAgICAgICAgICAgdGhpcy5tb3ZlSW1hZ2UobmV3SW1hZ2VYKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYobmV3SW1hZ2VZIDwgdGhpcy55TWluKCkhICYmIG5ld0ltYWdlWSA+IHRoaXMueU1heCgpISl7XHJcbiAgICAgICAgICAgIHRoaXMubW92ZUltYWdlKHVuZGVmaW5lZCwgbmV3SW1hZ2VZKVxyXG4gICAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgICB0aGlzLnJlZHJhd0NhbnZhcyhjdHgsIGltZyk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG5cclxuICB9XHJcblxyXG4gIG1vdmVJbWFnZShkeD86IG51bWJlciwgZHk/OiBudW1iZXIpIHtcclxuICAgIHRoaXMuaW1hZ2VYID0gKGR4Pz90aGlzLmltYWdlWCk7XHJcbiAgICB0aGlzLmltYWdlWSA9IChkeT8/dGhpcy5pbWFnZVkpO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICAvLyNlbmRyZWdpb25cclxuXHJcblxyXG4gIC8vI3JlZ2lvbiBNw6l0b2RvcyBkZSBjb3J0ZSBlIGZlY2hhbWVudG8gZG8gbW9kYWxcclxuICBjcm9wSW1hZ2UoKSB7XHJcbiAgICBjb25zdCBjdHggPSB0aGlzLmN0eCgpO1xyXG5cclxuICAgIGlmIChjdHgpIHtcclxuICAgICAgY29uc3QgWCA9ICgodGhpcy5jYW52YXMoKSEud2lkdGggLSB0aGlzLl9JbWFnZSgpLndpZHRoICogdGhpcy5zY2FsZUZhY3RvclJlYWRPbmx5KCkhKSAvIDIpO1xyXG4gICAgICBjb25zdCBZID0gKCh0aGlzLmNhbnZhc0hlaWdodCgpISAvIDIpIC0gKHRoaXMuX0ltYWdlKCkuaGVpZ2h0ICogdGhpcy5zY2FsZUZhY3RvclJlYWRPbmx5KCkhKSAvIDIpO1xyXG5cclxuICAgICAgLy8gUmVjdXBlcmFyIG8gaW1hZ2VEYXRhIGRhIGltYWdlbSBxdWUgZXN0w6EgbmEgw6FyZWEgZGUgY29ydGVcclxuICAgICAgbGV0IGltYWdlRGF0YVxyXG4gICAgICBjb25zdCBjcm9wWCA9IChjdHguY2FudmFzLndpZHRoIC0gdGhpcy5jdXRXaWR0aCgpISkgLyAyO1xyXG4gICAgICBjb25zdCBjcm9wWSA9IChjdHguY2FudmFzLmhlaWdodCAtIHRoaXMuY3V0SGVpZ2h0KCkhKSAvIDI7XHJcbiAgICAgIGlmKHRoaXMuX3Zhcmlhdmllc0RpYWxvZygpPy5pbmRDaXJjbGUpe1xyXG4gICAgICAgIC8vIENyZWF0ZSBhIG5ldyBjYW52YXMgd2l0aCB0aGUgc2FtZSBkaW1lbnNpb25zIGFzIHRoZSBjaXJjbGVcclxuICAgICAgICBjb25zdCBjaXJjbGVDYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcclxuICAgICAgICBjb25zdCBjaXJjbGVDdHggPSBjaXJjbGVDYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcclxuICAgICAgICBjaXJjbGVDYW52YXMud2lkdGggPSB0aGlzLnJhZGl1cygpISAqIDI7XHJcbiAgICAgICAgY2lyY2xlQ2FudmFzLmhlaWdodCA9IHRoaXMucmFkaXVzKCkhICogMjtcclxuXHJcbiAgICAgICAgLy8gRHJhdyB0aGUgY2lyY2xlIG9uIHRoZSBuZXcgY2FudmFzXHJcbiAgICAgICAgY2lyY2xlQ3R4IS5iZWdpblBhdGgoKTtcclxuICAgICAgICBjaXJjbGVDdHghLmFyYyh0aGlzLnJhZGl1cygpISwgdGhpcy5yYWRpdXMoKSEsIHRoaXMucmFkaXVzKCkhLCAwLCAyICogTWF0aC5QSSk7XHJcbiAgICAgICAgY2lyY2xlQ3R4IS5maWxsKCk7XHJcblxyXG4gICAgICAgIC8vIFNldCB0aGUgY29tcG9zaXRlIG9wZXJhdGlvbiB0byAnZGVzdGluYXRpb24taW4nIHRvIGN1dCBvdXQgdGhlIGNpcmNsZVxyXG4gICAgICAgIGN0eC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb24gPSAnZGVzdGluYXRpb24taW4nO1xyXG5cclxuICAgICAgICAvLyBEcmF3IHRoZSBpbWFnZSBvbiB0aGUgbWFpbiBjYW52YXMgdXNpbmcgdGhlIGNpcmNsZSBhcyBhIG1hc2tcclxuICAgICAgICBjdHguZHJhd0ltYWdlKGNpcmNsZUNhbnZhcywgY3JvcFgsIGNyb3BZKTtcclxuXHJcbiAgICAgICAgLy8gUmVzZXQgdGhlIGNvbXBvc2l0ZSBvcGVyYXRpb24gdG8gdGhlIGRlZmF1bHQgdmFsdWVcclxuICAgICAgICBjdHguZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uID0gJ3NvdXJjZS1vdmVyJztcclxuXHJcbiAgICAgICAgLy8gR2V0IHRoZSBpbWFnZSBkYXRhIG9mIHRoZSBjcm9wcGVkIGNpcmNsZVxyXG4gICAgICAgIGltYWdlRGF0YSA9IGN0eC5nZXRJbWFnZURhdGEoY3JvcFgsIGNyb3BZLCB0aGlzLnJhZGl1cygpISAqIDIsIHRoaXMucmFkaXVzKCkhICogMik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaW1hZ2VEYXRhID0gY3R4LmdldEltYWdlRGF0YShjcm9wWCwgY3JvcFksIHRoaXMuY3V0V2lkdGgoKSEsIHRoaXMuY3V0SGVpZ2h0KCkhKTtcclxuICAgICAgfVxyXG5cclxuXHJcbiAgICAgIC8vIE9idGVyIG9zIHZhbG9yZXMgZGUgd2lkdGggZSBoZWlnaHQgZGEgdmFyacOhdmVsIF92YXJpYXZpZXNEaWFsb2dcclxuICAgICAgY29uc3QgdmFyaWF2ZWlzRGlhbG9nID0gdGhpcy5fdmFyaWF2aWVzRGlhbG9nKCk7XHJcbiAgICAgIGlmICh2YXJpYXZlaXNEaWFsb2cpIHtcclxuICAgICAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IHZhcmlhdmVpc0RpYWxvZztcclxuXHJcbiAgICAgICAgLy8gQ3JpYXIgdW0gbm92byBjYW52YXMgZSBjb250ZXh0byBjb20gb3MgdmFsb3JlcyBkZSB3aWR0aCBlIGhlaWdodFxyXG4gICAgICAgIGNvbnN0IG5ld0NhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xyXG4gICAgICAgIGNvbnN0IG5ld0N0eCA9IG5ld0NhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xyXG4gICAgICAgIG5ld0NhbnZhcy53aWR0aCA9IHdpZHRoO1xyXG4gICAgICAgIG5ld0NhbnZhcy5oZWlnaHQgPSBoZWlnaHQ7XHJcblxyXG4gICAgICAgIGlmIChuZXdDdHgpIHtcclxuICAgICAgICAgIC8vIFJlZGltZW5zaW9uYXIgYSBpbWFnZW0gcGFyYSBvIHRhbWFuaG8gZXNwZWNpZmljYWRvXHJcbiAgICAgICAgICBjb25zdCB0ZW1wQ2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XHJcbiAgICAgICAgICBjb25zdCB0ZW1wQ3R4ID0gdGVtcENhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xyXG4gICAgICAgICAgdGVtcENhbnZhcy53aWR0aCA9IHRoaXMuY3V0V2lkdGgoKSE7XHJcbiAgICAgICAgICB0ZW1wQ2FudmFzLmhlaWdodCA9IHRoaXMuY3V0SGVpZ2h0KCkhO1xyXG4gICAgICAgICAgdGVtcEN0eCEucHV0SW1hZ2VEYXRhKGltYWdlRGF0YSwgMCwgMCk7XHJcblxyXG4gICAgICAgICAgbmV3Q3R4LmRyYXdJbWFnZSh0ZW1wQ2FudmFzLCAwLCAwLCB3aWR0aCwgaGVpZ2h0KTtcclxuXHJcbiAgICAgICAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2Nyb3BJbWFnZScsIHsgZGV0YWlsOntcclxuICAgICAgICAgICAgcmVzdWx0OiBQcm9taXNlLnJlc29sdmUobmV3Q2FudmFzLnRvRGF0YVVSTCgpKSxcclxuICAgICAgICAgICAgc3RhdHVzOiB0cnVlXHJcbiAgICAgICAgICB9IH0pKTtcclxuICAgICAgICAgIHRoaXMuY2xvc2VDcm9wTW9kYWwoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlQ3JvcE1vZGFsKCkge1xyXG4gICAgdGhpcy5kaWFsb2dJbnN0YW5jZS5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgY2FuY2VsKCl7XHJcbiAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2Nyb3BJbWFnZScsIHsgZGV0YWlsOntcclxuICAgICAgcmVzdWx0OiBQcm9taXNlLnJlc29sdmUoJ2NhbmNlbCcpLFxyXG4gICAgICBzdGF0dXM6IGZhbHNlXHJcbiAgICB9IH0pKTtcclxuXHJcbiAgICB0aGlzLmNsb3NlQ3JvcE1vZGFsKClcclxuICB9XHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG59XHJcbiJdfQ==
|
|
569
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuY3V0dGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvYXBpL3NlcnZpY2VzL2ltYWdlLmN1dHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdCLFFBQVEsRUFBYyxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0gsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBMEM5Qyx3Q0FBd0M7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7OztBQTlDN0UsTUFBTSxPQUFPLGtCQUFrQjtJQUU3QixZQUNtQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUMzQyxDQUFDO0lBRUwsR0FBRyxDQUFDLFdBQW1CLEVBQUUsS0FBYSxFQUFFLE1BQWMsRUFBRSxZQUFxQixLQUFLO1FBQ2hGLE1BQU0sU0FBUyxHQUFH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LGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsTUFBTTtRQUNKLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxXQUFXLENBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFDO2dCQUN6RCxNQUFNLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7Z0JBQ2pDLE1BQU0sRUFBRSxLQUFLO2FBQ2QsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVOLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQTtJQUN2QixDQUFDOzhHQXRqQkcsZUFBZTtrR0FBZixlQUFlLHlWQTFJVDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJULGdxQ0FzR0MsWUFBWSw4QkFDWixhQUFhLDhCQUNiLFlBQVksK1JBQ1osWUFBWSw4QkFDWixZQUFZLDhCQUNaLGdCQUFnQiw4QkFFaEIsV0FBVyw4VkFDWCxtQkFBbUIsOEJBQ25CLGNBQWMseU5BQ2QsYUFBYTs7MkZBS1gsZUFBZTtrQkE1SXBCLFNBQVM7K0JBQ0Usc0JBQXNCLFlBQ3RCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQlQsY0FvR1csSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixZQUFZO3dCQUNaLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QsYUFBYTtxQkFFZDtpSEFnQjBCLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWTtnQkFDRSxVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBK0d6QixjQUFjO3NCQURiLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb21wb25lbnRSZWYsIGNvbXB1dGVkLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdGFibGUsIHNpZ25hbCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlLCBEeW5hbWljRGlhbG9nQ29tcG9uZW50LCBEeW5hbWljRGlhbG9nUmVmIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcbmltcG9ydCB7IERpYWxvZ01vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZGlhbG9nJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VDdXR0ZXJTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ3NlcnZpY2U6IERpYWxvZ1NlcnZpY2VcbiAgKSB7IH1cblxuICBjdXQoaW1hZ2VCYXNlNjQ6IHN0cmluZywgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIGluZENpcmNsZTogYm9vbGVhbiA9IGZhbHNlKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBjdXRDb25maWcgPSB7IGltYWdlQmFzZTY0LCB3aWR0aCwgaGVpZ2h0LCBpbmRDaXJjbGUgfTtcbiAgICB0aGlzLmFicmlyTW9kYWwoY3V0Q29uZmlnKTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjcm9wSW1hZ2UnLCAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICBpZihldmVudC5kZXRhaWwuc3RhdHVzID09IHRydWUgKSB7XG4gICAgICAgICAgcmVzb2x2ZShldmVudC5kZXRhaWwucmVzdWx0KTtcbiAgICAgICAgfWVsc2V7XG4gICAgICAgICAgcmVqZWN0KCdPcGVyYWNhbyBjYW5jZWxhZGEuJyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cblxuICBhYnJpck1vZGFsKGN1dENvbmZpZzogeyBpbWFnZUJhc2U2NDogc3RyaW5nLCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciwgaW5kQ2lyY2xlOiBib29sZWFuIH0pIHtcbiAgICBjb25zdCBwYXJhbXMgPSAgICAgICB7XG4gICAgICBjbG9zYWJsZTogdHJ1ZSxcbiAgICAgIG1heGltaXphYmxlOiBmYWxzZSxcbiAgICAgIHBvcHVwOiB0cnVlLFxuICAgICAgd2lkdGg6ICc3NXZ3JyxcbiAgICAgIGhlYWRlcjogYENvcnRhcmAgLFxuICAgICAgaWQ6IHsgaW1hZ2VtOiBjdXRDb25maWcuaW1hZ2VCYXNlNjQsIHdpZHRoOiBjdXRDb25maWcud2lkdGgsIGhlaWdodDogY3V0Q29uZmlnLmhlaWdodCwgaW5kQ2lyY2xlOiBjdXRDb25maWcuaW5kQ2lyY2xlIH0sXG4gICAgICBzdHlsZUNsYXNzOiAnbW9kYWwnXG4gICAgfVxuICAgIGNvbnN0IGRpYWxvZ1JlZjogRHluYW1pY0RpYWxvZ1JlZiA9IEZvcm1TZXJ2aWNlLm9wZW5EaWFsb2codGhpcy5kaWFsb2dzZXJ2aWNlLCBTaW1wbGVDb21wb25lbnQsICgpPT57fSwgcGFyYW1zKTtcbiAgfVxufVxuXG5cbi8vID8gQ29tcG9uZW50ZSBkZSBtb2RhbCB1c2FkbyBubyBjdXR0ZXJcbmltcG9ydCB7IFNsaWRlck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvc2xpZGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcbmltcG9ydCB7IEZpbGVVcGxvYWRNb2R1bGUgfSBmcm9tICdwcmltZW5nL2ZpbGV1cGxvYWQnO1xuaW1wb3J0IHsgS3ZMYWJlbE1vZHVsZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMva3YtbGFiZWwva3YtbGFiZWwubW9kdWxlJztcbmltcG9ydCB7IEZvcm1TZXJ2aWNlIH0gZnJvbSAnLi9mb3JtLnNlcnZpY2UnO1xuaW1wb3J0IHsgS3ZNb2RhbE1vZHVsZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMva3YtbW9kYWwva3YtbW9kYWwubW9kdWxlJztcbmltcG9ydCB7IEt2QnV0dG9uTW9kdWxlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9rdi1idXR0b24va3YtYnV0dG9uLm1vZHVsZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1zaW1wbGUtY29tcG9uZW50JyxcbiAgdGVtcGxhdGU6IGBcbiAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcm9wLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxjYW52YXMgI2Nyb3BDYW52YXMgY2xhc3M9XCJjcm9wLWNhbnZhc1wiPjwvY2FudmFzPlxuICAgICAgICAgIDxkaXYgI2Nyb3BCb3JkZXIgY2xhc3M9XCJjcm9wLWJvcmRlclwiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIG10LTJcIj5cbiAgICAgICAgICA8a3YtbGFiZWwgbGFiZWw9XCJab29tXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBsZWZ0O1wiIC8+XG4gICAgICAgICAgPHAtc2xpZGVyIFsobmdNb2RlbCldPVwidGhpcy5zY2FsZUZhY3Rvck1vZGVsXCIgW3N0ZXBdPVwiMC4wMDAxXCIgIFttYXhdPVwiNVwiICAob25DaGFuZ2UpPVwib25ab29tQ2hhbmdlKCRldmVudClcIj48L3Atc2xpZGVyPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tY29udGFpbmVyXCI+XG4gICAgICAgICAgPGt2LWJ1dHRvbiBsYWJlbD1cIkNhbmNlbGFyXCIgc2V2ZXJpdHk9XCJ0ZXJ0aWFyeVwiIGljb249XCJjbG9zZVwiIChjbGljayk9XCJjYW5jZWwoKVwiPjwva3YtYnV0dG9uPlxuICAgICAgICAgIDxrdi1idXR0b24gbGFiZWw9XCJSZWNvcnRhclwiIHNldmVyaXR5PVwicHJpbWFyeVwiIGljb249XCJjcm9wXCIgKGNsaWNrKT1cImNyb3BJbWFnZSgpXCIgY2xhc3M9XCJtbC0yXCI+PC9rdi1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICA8L2Rpdj5cblxuXG5cbiAgYCxcbiAgc3R5bGVzOiBbYFxuXG5pbWcge1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDJweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBvYmplY3QtZml0OiBjb3Zlcjtcbn1cblxuaSB7XG4gIGZvbnQtc2l6ZTogMjJweDtcbn1cblxuLmJvdGFvLWFsdGVyYXItZm90byB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgd2lkdGg6IG1heC1jb250ZW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAyNTQyO1xuICBjb2xvcjogYmxhY2s7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDdweCA5cHg7XG59XG5cbi5ib3Rhby1hbHRlcmFyLWZvdG8gaSB7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4uYm90YW8tZXhjbHVpci1mb3RvIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDI1NDI7XG4gIGNvbG9yOiBibGFjaztcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogN3B4IDlweDtcbn1cblxuLmJvdGFvLWV4Y2x1aXItZm90byBpIHtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5idG4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogODclO1xuICBsZWZ0OiA4NyU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xufVxuXG4uaW1hZ2UtY29udGFpbmVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5tb2RhbC1jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICBtYXJnaW46IDElIGF1dG87XG4gIHBhZGRpbmc6IDIwcHg7XG4gIHdpZHRoOiA4MCU7XG4gIG1heC13aWR0aDogZml0LWNvbnRlbnQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbn1cblxuLmNyb3AtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5jcm9wLWNhbnZhcyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkMWQ1ZGI7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi5jcm9wLWJvcmRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm9yZGVyOiAycHggZGFzaGVkICM5Y2EzYWY7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uem9vbS1jb250YWluZXIge1xuICBwYWRkaW5nLXRvcDogMjBweDtcbiAgcGFkZGluZy1ib3R0b206IDIwcHg7XG59XG5cbi5idXR0b24tY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgbWFyZ2luLXRvcDogMjRweDtcbn1cblxuXG5cbiAgYF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBEaWFsb2dNb2R1bGUsXG4gICAgS3ZNb2RhbE1vZHVsZSxcbiAgICBTbGlkZXJNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEJ1dHRvbk1vZHVsZSxcbiAgICBGaWxlVXBsb2FkTW9kdWxlLFxuICAgIFNsaWRlck1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEt2QnV0dG9uTW9kdWxlLFxuICAgIEt2TGFiZWxNb2R1bGUsXG5cbiAgXVxufSlcblxuY2xhc3MgU2ltcGxlQ29tcG9uZW50IHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGR5bmFtaWNEaWFsb2dSZWY6IER5bmFtaWNEaWFsb2dSZWYsIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSkge1xuICAgIHRoaXMuYXR1YWxpemFUYW1hbmhvVGVsYSgpXG4gIH1cblxuXG4gIC8vID8gVmFyaWF2aWVzIHF1ZSByZWNlYmVtIG9zIHZhbG9yZXMgZG8gZGlhbG9nXG4gIF92YXJpYXZpZXNEaWFsb2cgPSBzaWduYWw8eyBpbWFnZW06IHN0cmluZywgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIGluZENpcmNsZTogYm9vbGVhbiB9fG51bGw+KG51bGwpXG5cblxuXG4gICAgLy8/IFJlZmVyw6puY2lhIHBhcmEgbyBlbGVtZW50byBxdWUgY29udMOpbSBhIGltYWdlbSBlIGNhbnZhc1xuICAgIEBWaWV3Q2hpbGQoJ2Nyb3BDYW52YXMnKSBjcm9wQ2FudmFzITogRWxlbWVudFJlZjxIVE1MQ2FudmFzRWxlbWVudD47XG4gICAgQFZpZXdDaGlsZCgnY3JvcEJvcmRlcicpIGNyb3BCb3JkZXIhOiBFbGVtZW50UmVmO1xuXG4gICAgLy8/IFJlZmVyw6puY2lhcyBwYXJhIG8gY29udGV4dG8gZSBjYW52YXNcbiAgICBwcml2YXRlIGNhbnZhcyA9IHNpZ25hbDxIVE1MQ2FudmFzRWxlbWVudHxudWxsPihudWxsKTtcbiAgICBwcml2YXRlIGN0eCA9ICBzaWduYWw8Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEfG51bGw+KG51bGwpO1xuICAgIHByaXZhdGUgX0ltYWdlID0gc2lnbmFsPEhUTUxJbWFnZUVsZW1lbnQ+KG5ldyBJbWFnZSgpKTtcblxuICAgIC8vPyBDb29yZGVuYWRhcyBpbmljaWFpcyBlIGZpbmFpcyBkbyBkZXNlbmhvXG4gICAgcHJpdmF0ZSBzdGFydFggPSAwO1xuICAgIHByaXZhdGUgc3RhcnRZID0gMDtcblxuICAgIC8vPyBSZWZlcsOqbmNpYSBwYXJhIG8gbW9kYWxcbiAgICBwcml2YXRlIGRpYWxvZ0luc3RhbmNlITpEeW5hbWljRGlhbG9nQ29tcG9uZW50O1xuXG4gICAgLy8/IEZhdG9yIGRlIGVzY2FsYSBkYSBpbWFnZW0gZSB6b29tXG4gICAgc2NhbGVGYWN0b3JSZWFkT25seSA9IGNvbXB1dGVkPG51bWJlcj4oKCk9PiB7XG4gICAgICByZXR1cm4gTWF0aC5taW4odGhpcy5zY2FsZUZhY3RvcigpISwgdGhpcy5zY2FsZUZhY3RvckluaWNpYWwoKSErNSk7XG4gICAgfSlcblxuICAgIHB1YmxpYyBzY2FsZUZhY3RvckluaWNpYWwgPSBzaWduYWw8bnVtYmVyfG51bGw+KG51bGwpO1xuXG4gICAgcHJpdmF0ZSBzY2FsZUZhY3RvciA9IHNpZ25hbDxudW1iZXJ8bnVsbD4obnVsbCk7XG5cbiAgICBzZXRTY2FsZUZhY3Rvck1vZGVsKHZhbG9yOm51bWJlcil7XG4gICAgICB0aGlzLnNjYWxlRmFjdG9yTW9kZWwgPSB2YWxvciAtIHRoaXMuc2NhbGVGYWN0b3JJbmljaWFsKCkhO1xuICAgICAgdGhpcy5zY2FsZUZhY3Rvci5zZXQodmFsb3IpXG4gICAgfVxuICAgIHNjYWxlRmFjdG9yTW9kZWwgPSAwO1xuXG4gICAgcHJpdmF0ZSBpbWFnZVg6IG51bWJlciA9IDA7XG4gICAgcHJpdmF0ZSBpbWFnZVk6IG51bWJlciA9IDA7XG5cblxuICAgIC8vI3JlZ2lvbiBQcm9wcmllZGFkZXMgY29tcHV0YWRhcyBkZSB0YW1hbmhvIGRvIGNhbnZhcyBlIGRhIGltYWdlbVxuICAgICAgLy8/IExhcmd1cmEgZSBhbHR1cmEgZG8gY2FudmFzIGJhc2VhZG8gbmEgdGFtYW5obyBkYSB0ZWxhXG4gICAgICBjYW52YXNXaWR0aCA9IGNvbXB1dGVkPG51bWJlciB8IG51bGw+KCgpID0+IHRoaXMud2lkdGhUZWxhKCkqMC41KTtcbiAgICAgIGNhbnZhc0hlaWdodCA9IGNvbXB1dGVkPG51bWJlciB8IG51bGw+KCgpID0+IHRoaXMuaGVpZ3RoVGVsYSgpKjAuNSk7XG5cbiAgICAgIC8vPyBMYXJndXJhIGUgYWx0dXJhIGRhIMOhcmVhIGRlIGNvcnRlXG4gICAgICBjdXRXaWR0aCA9IGNvbXB1dGVkPG51bWJlciB8IG51bGw+KCgpID0+IHtcbiAgICAgICAgaWYodGhpcy5fdmFyaWF2aWVzRGlhbG9nKCk/LmluZENpcmNsZSl7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucmFkaXVzKCkhICogMjtcbiAgICAgICAgfWVsc2V7XG4gICAgICAgICAgY29uc3QgY2FudmFzV2lkdGggPSB0aGlzLmNhbnZhc1dpZHRoKCkhO1xuICAgICAgICAgIGNvbnN0IG1heFdpZHRoID0gY2FudmFzV2lkdGggKiAwLjg7XG4gICAgICAgICAgY29uc3QgcHJvcG9ydGlvbmFsSGVpZ2h0ID0gbWF4V2lkdGggKiB0aGlzLnByb3BvcmNhb0ltYWdlbSgpITtcbiAgICAgICAgICByZXR1cm4gcHJvcG9ydGlvbmFsSGVpZ2h0ID4gdGhpcy5jYW52YXNIZWlnaHQoKSEgKiAwLjggPyB0aGlzLmNhbnZhc0hlaWdodCgpISAqIDAuOCAvIHRoaXMucHJvcG9yY2FvSW1hZ2VtKCkhIDogbWF4V2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgfSk7XG4gICAgICBjdXRIZWlnaHQgPSBjb21wdXRlZDxudW1iZXIgfCBudWxsPigoKSA9PiB7XG4gICAgICAgIGlmKHRoaXMuX3Zhcmlhdmllc0RpYWxvZygpPy5pbmRDaXJjbGUpe1xuICAgICAgICAgIHJldHVybiB0aGlzLnJhZGl1cygpISAqIDI7XG4gICAgICAgIH1lbHNle1xuICAgICAgICAgIGNvbnN0IGNhbnZhc0hlaWdodCA9IHRoaXMuY2FudmFzSGVpZ2h0KCkhO1xuICAgICAgICAgIGNvbnN0IG1heEhlaWdodCA9IGNhbnZhc0hlaWdodCAqIDAuODtcbiAgICAgICAgICBjb25zdCBwcm9wb3J0aW9uYWxXaWR0aCA9IG1heEhlaWdodCAvIHRoaXMucHJvcG9yY2FvSW1hZ2VtKCkhO1xuICAgICAgICAgIHJldHVybiBwcm9wb3J0aW9uYWxXaWR0aCA+IHRoaXMuY2FudmFzV2lkdGgoKSEgKiAwLjggPyB0aGlzLmNhbnZhc1dpZHRoKCkhICogMC44ICogdGhpcy5wcm9wb3JjYW9JbWFnZW0oKSEgOiBtYXhIZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgfSk7XG5cbiAgICAgIC8vPyBMYXJndXJhIGUgYWx0dXJhIGRhIGltYWdlbSBubyBjYW52YXMgKGJhc2VhZG8gbmEgZXNjYWxhKSAtIHRhbWFuaG8gcmVhbCBkYSBpbWFnZW1cbiAgICAgIGNhbnZhSW1hZ2VXaWR0aCA9IGNvbXB1dGVkPG51bWJlcj4oKCk9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9JbWFnZSgpLndpZHRoICogdGhpcy5zY2FsZUZhY3RvclJlYWRPbmx5KCkhXG4gICAgICB9KVxuICAgICAgY2FudmFJbWFnZUhlaWdodCA9IGNvbXB1dGVkPG51bWJlcj4oKCk9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9JbWFnZSgpLmhlaWdodCAqIHRoaXMuc2NhbGVGYWN0b3JSZWFkT25seSgpIVxuICAgICAgfSlcbiAgICAgIHByb3BvcmNhb0ltYWdlbSA9IGNvbXB1dGVkPG51bWJlciB8IG51bGw+KCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Zhcmlhdmllc0RpYWxvZygpPy5oZWlnaHQhIC8gdGhpcy5fdmFyaWF2aWVzRGlhbG9nKCk/LndpZHRoITtcbiAgICAgIH0pO1xuXG4gICAgICByYWRpdXMgPSBjb21wdXRlZDxudW1iZXIgfCBudWxsPigoKSA9PiB7XG4gICAgICAgIGNvbnN0IG1pblNpemUgPSAgIE1hdGgubWluKHRoaXMuY2FudmFzSGVpZ2h0KCkhKjAuOCwgdGhpcy5jYW52YXNXaWR0aCgpISowLjggKTtcbiAgICAgICAgcmV0dXJuIG1pblNpemUvMjtcbiAgICAgIH0pO1xuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyAjcmVnaW9uIExpbWl0ZXMgZGUgbW92aW1lbnRhw6fDo28gZGEgaW1hZ2VtXG4gICAgLy8/IExpbWl0ZXMgZGUgbW92aW1lbnRhw6fDo28gZGEgaW1hZ2VtXG4gICAgICBpbmRDaXJjbGUgPSBjb21wdXRlZDxib29sZWFuPigoKT0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Zhcmlhdmllc0RpYWxvZygpPy5pbmRDaXJjbGUhXG4gICAgICB9KVxuXG4gICAgICB4TWluID0gY29tcHV0ZWQ8bnVtYmVyPigoKT0+IHtcbiAgICAgICAgcmV0dXJuICF0aGlzLl92YXJpYXZpZXNEaWFsb2coKT8uaW5kQ2lyY2xlISA/ICh0aGlzLmNhbnZhc1dpZHRoKCkhIC0gIHRoaXMuY3V0V2lkdGgoKSEpLzIgOiAodGhpcy5jYW52YXNXaWR0aCgpISAtICAodGhpcy5yYWRpdXMoKSEqMikpLzJcbiAgICAgIH0pXG4gICAgICB5TWluID0gY29tcHV0ZWQ8bnVtYmVyPigoKT0+IHtcbiAgICAgICAgcmV0dXJuICF0aGlzLl92YXJpYXZpZXNEaWFsb2coKT8uaW5kQ2lyY2xlISA/ICh0aGlzLmNhbnZhc0hlaWdodCgpISAtICB0aGlzLmN1dEhlaWdodCgpISkvMiA6ICh0aGlzLmNhbnZhc0hlaWdodCgpISAtICAodGhpcy5yYWRpdXMoKSEqMikpLzJcbiAgICAgIH0pXG5cbiAgICAgIHhNYXggPSBjb21wdXRlZDxudW1iZXI+KCgpPT4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuX3Zhcmlhdmllc0RpYWxvZygpPy5pbmRDaXJjbGUhID8gLSggdGhpcy5jYW52YUltYWdlV2lkdGgoKSEgLSAodGhpcy54TWluKCkhKSAtIHRoaXMuY3V0V2lkdGgoKSEpIDogLSggdGhpcy5jYW52YUltYWdlV2lkdGgoKSEgLSAodGhpcy54TWluKCkhKSAtICh0aGlzLnJhZGl1cygpISoyKSlcbiAgICAgIH0pXG4gICAgICB5TWF4ID0gY29tcHV0ZWQ8bnVtYmVyPigoKT0+IHtcbiAgICAgICAgcmV0dXJuICF0aGlzLl92YXJpYXZpZXNEaWFsb2coKT8uaW5kQ2lyY2xlISA/IC0oIHRoaXMuY2FudmFJbWFnZUhlaWdodCgpISAtICh0aGlzLnlNaW4oKSEpIC0gdGhpcy5jdXRIZWlnaHQoKSEpIDogLSggdGhpcy5jYW52YUltYWdlSGVpZ2h0KCkhIC0gKHRoaXMueU1pbigpISkgLSAodGhpcy5yYWRpdXMoKSEqMikpXG4gICAgICB9KVxuICAgIC8vICNlbmRyZWdpb25cblxuXG5cbiAgICAvLz8gUHJvcG9yw6fDo28gZGEgaW1hZ2VtXG5cbiAgICB3aWR0aFRlbGEgPSBzaWduYWw8bnVtYmVyPigwKVxuICAgIGhlaWd0aFRlbGEgPSBzaWduYWw8bnVtYmVyPigwKVxuXG5cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgb25XaW5kb3dSZXNpemUoKSB7XG4gICAgdGhpcy5hdHVhbGl6YVRhbWFuaG9UZWxhKClcbiAgICB0aGlzLnVwZGF0ZUNhbnZhc1NpemUoKTtcbiAgICB0aGlzLmF0dWFsaXphQ3V0Qm9yZGVyKCk7XG4gIH1cblxuICBhdHVhbGl6YVRhbWFuaG9UZWxhKCl7XG4gICAgdGhpcy53aWR0aFRlbGEuc2V0KHdpbmRvdy5pbm5lcldpZHRoKTtcbiAgICB0aGlzLmhlaWd0aFRlbGEuc2V0KHdpbmRvdy5pbm5lckhlaWdodCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5yZWN1cGVyYXJWYXJpYXZpZXNEaWFsb2coKVxuICAgIHRoaXMuaW5jaWFyUmVmZXJlbmNpYXMoKVxuICAgIHRoaXMuaW5pY2lhckNhbnZhcygpXG4gIH1cbiAgaW5jaWFyUmVmZXJlbmNpYXMoKXtcbiAgICB0aGlzLmNhbnZhcy5zZXQodGhpcy5jcm9wQ2FudmFzLm5hdGl2ZUVsZW1lbnQpO1xuICAgIHRoaXMuY3R4LnNldCh0aGlzLmNhbnZhcygpIS5nZXRDb250ZXh0KCcyZCcpKVxuICAgIHRoaXMuX0ltYWdlKCkuc3JjID0gdGhpcy5fdmFyaWF2aWVzRGlhbG9nKCk/LmltYWdlbSFcbiAgfVxuICBpbmljaWFyQ2FudmFzKCl7XG4gICAgICB0aGlzLl9JbWFnZSgpLm9ubG9hZCA9ICgpID0+IHtcblxuICAgICAgLy8/IERlZmluZSBvIHRhbWFuaG8gZG8gY2FudmFzXG4gICAgICB0aGlzLmNhbnZhcygpIS5oZWlnaHQgPSB0aGlzLmNhbnZhc0hlaWdodCgpITtcbiAgICAgIHRoaXMuY2FudmFzKCkhLndpZHRoID0gdGhpcy5jYW52YXNXaWR0aCgpITtcblxuXG4gICAgICB0aGlzLmFqdXN0YXJab21tRVBvc2ljYW9JbmljaWFsKClcblxuXG4gICAgICB0aGlzLmluaXRpYWxpemVJbWFnZU1vdmUodGhpcy5jYW52YXMoKSEsIHRoaXMuY3R4KCksIHRoaXMuX0ltYWdlKCkpO1xuICAgICAgdGhpcy5pbml0aWFsaXplTW91c2VXaGVlbCh0aGlzLmNhbnZhcygpISwgdGhpcy5jdHgoKSwgdGhpcy5fSW1hZ2UoKSk7XG5cbiAgICAgIHRoaXMucmVkcmF3Q2FudmFzKHRoaXMuY3R4KCksIHRoaXMuX0ltYWdlKCkpO1xuXG4gICAgfTtcbiAgfVxuXG4gIGFqdXN0YXJab21tRVBvc2ljYW9JbmljaWFsKCl7XG4gICAgY29uc3QgY3V0V2lkdGggPSB0aGlzLmN1dFdpZHRoKCkhO1xuICAgIGNvbnN0IGN1dEhlaWdodCA9IHRoaXMuY3V0SGVpZ2h0KCkhO1xuICAgIGNvbnN0IGltYWdlV2lkdGggPSB0aGlzLl9JbWFnZSgpLndpZHRoO1xuICAgIGNvbnN0IGltYWdlSGVpZ2h0ID0gdGhpcy5fSW1hZ2UoKS5oZWlnaHQ7XG5cbiAgICAvLz8gQWp1c3RhIHBvc3Npw6fDo28gZSB6b29tIGluaWNpYWxcblxuICAgIGlmICh0aGlzLl92YXJpYXZpZXNEaWFsb2coKT8uaW5kQ2lyY2xlKSB7XG4gICAgICBjb25zdCBzY2FsZUZhY3RvciA9ICh0aGlzLnJhZGl1cygpISAqIDIpIC8gTWF0aC5taW4oaW1hZ2VXaWR0aCwgaW1hZ2VIZWlnaHQpO1xuICAgICAgdGhpcy5zY2FsZUZhY3RvckluaWNpYWwuc2V0KHNjYWxlRmFjdG9yKVxuICAgICAgdGhpcy5zZXRTY2FsZUZhY3Rvck1vZGVsKHNjYWxlRmFjdG9yKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc2NhbGVGYWN0b3IgPSB0aGlzLmN1dEhlaWdodCgpISA9PT0gdGhpcy5jdXRXaWR0aCgpIVxuICAgICAgICA/IHRoaXMuX0ltYWdlKCkud2lkdGggPiB0aGlzLl9JbWFnZSgpLmhlaWdodFxuICAgICAgICAgID8gdGhpcy5jdXRIZWlnaHQoKSEgLyBpbWFnZUhlaWdodFxuICAgICAgICAgIDogdGhpcy5jdXRXaWR0aCgpISAvIGltYWdlV2lkdGhcbiAgICAgICAgOiB0aGlzLmN1dEhlaWdodCgpISA+IHRoaXMuY3V0V2lkdGgoKSFcbiAgICAgICAgICA/IHRoaXMuY3V0SGVpZ2h0KCkhIC8gaW1hZ2VIZWlnaHRcbiAgICAgICAgICA6IHRoaXMuY3V0V2lkdGgoKSEgLyBpbWFnZVdpZHRoO1xuICAgICAgdGhpcy5zY2FsZUZhY3RvckluaWNpYWwuc2V0KHNjYWxlRmFjdG9yKVxuICAgICAgdGhpcy5zZXRTY2FsZUZhY3Rvck1vZGVsKHNjYWxlRmFjdG9yKTtcblxuICAgIH1cblxuICAgIHRoaXMuaW1hZ2VYID0gTWF0aC5tYXgoKHRoaXMuY2FudmFzKCkhLndpZHRoIC0gaW1hZ2VXaWR0aCAqIHRoaXMuc2NhbGVGYWN0b3JSZWFkT25seSgpISkgLyAyLCB0aGlzLnhNaW4oKSEpO1xuICAgIHRoaXMuaW1hZ2VZID0gTWF0aC5tYXgoKHRoaXMuY2FudmFzSGVpZ2h0KCkhIC0gaW1hZ2VIZWlnaHQgKiB0aGlzLnNjYWxlRmFjdG9yUmVhZE9ubHkoKSEpIC8gMiwgdGhpcy55TWluKCkhKTtcblxuICB9XG5cbiAgLy8jcmVnaW9uIE3DqXRvZG9zIGRlIHJlY3VwZXJhw6fDo28gZGUgZGFkb3NcbiAgcmVjdXBlcmFJbnN0YW5jaWFEaWFsb2coKTogRHluYW1pY0RpYWxvZ0NvbXBvbmVudCB7XG4gICAgY29uc3QgYXJyOiBNYXA8RHluYW1pY0RpYWxvZ1JlZjxhbnk+LCBDb21wb25lbnRSZWY8YW55Pj4gPSB0aGlzLmRpYWxvZ1NlcnZpY2UuZGlhbG9nQ29tcG9uZW50UmVmTWFwXG4gICAgY29uc3QgZW50cmllcyA9IGFyci5lbnRyaWVzKCk7XG4gICAgY29uc3QgZmlyc3RFbnRyeSA9IGVudHJpZXMubmV4dCgpLnZhbHVlO1xuICAgIGNvbnN0IFtmaXJzdEtleSwgZmlyc3RWYWx1ZV0gPSBmaXJzdEVudHJ5O1xuICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5kaWFsb2dTZXJ2aWNlLmdldEluc3RhbmNlKGZpcnN0S2V5KVxuICAgIHRoaXMuZGlhbG9nSW5zdGFuY2UgPSBpbnN0YW5jZVxuICAgIHJldHVybiBpbnN0YW5jZVxuICB9XG5cbiAgcmVjdXBlcmFyVmFyaWF2aWVzRGlhbG9nKCk6IHZvaWR7XG4gICAgdGhpcy5fdmFyaWF2aWVzRGlhbG9nLnNldCh0aGlzLnJlY3VwZXJhSW5zdGFuY2lhRGlhbG9nKCkuZGF0YS5pZClcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuXG4gIC8vI3JlZ2lvbiBNw6l0b2RvcyBkZSBhdHVhbGl6YWNhbyBkbyBjYW52YXNcbiAgLy8/IEF0dWFsaXphIG8gdGFtYW5obyBkbyBjYW52YXNcbiAgdXBkYXRlQ2FudmFzU2l6ZSgpIHtcblxuICAgIHRoaXMuaW1hZ2VYID0gKHRoaXMuY2FudmFzKCkhLndpZHRoIC0gdGhpcy5fSW1hZ2UoKS53aWR0aCAqIHRoaXMuc2NhbGVGYWN0b3JSZWFkT25seSgpISkgLyAyO1xuICAgIHRoaXMuaW1hZ2VZID0gKHRoaXMuY2FudmFzSGVpZ2h0KCkhIC8gMikgLSAodGhpcy5fSW1hZ2UoKS5oZWlnaHQgKiB0aGlzLnNjYWxlRmFjdG9yUmVhZE9ubHkoKSEpIC8gMjtcblxuXG5cbiAgICB0aGlzLmNhbnZhcygpIS5oZWlnaHQgPSB0aGlzLmNhbnZhc0hlaWdodCgpITtcbiAgICB0aGlzLmNhbnZhcygpIS53aWR0aCA9IHRoaXMuY2FudmFzV2lkdGgoKSE7XG5cbiAgICB0aGlzLnJlZHJhd0NhbnZhcyh0aGlzLmN0eCgpLCB0aGlzLl9JbWFnZSgpKTtcbiAgfVxuXG4gIHJlZHJhd0NhbnZhcyhjdHg6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB8IG51bGwsIGltZzogSFRNTEltYWdlRWxlbWVudCkge1xuICAgIGlmICghY3R4KSByZXR1cm47XG5cbiAgICB0aGlzLmRyYXdDcm9wQXJlYShjdHgpO1xuXG4gICAgY3R4LmNsZWFyUmVjdCgwLCAwLCBjdHguY2FudmFzLndpZHRoLCBjdHguY2FudmFzLmhlaWdodCk7XG4gICAgY3R4LmZpbHRlciA9ICdibHVyKDVweCkgb3BhY2l0eSgwLjkpJztcbiAgICBjdHguZHJhd0ltYWdlKGltZywgdGhpcy5pbWFnZVgsIHRoaXMuaW1hZ2VZLCBpbWcud2lkdGggKiB0aGlzLnNjYWxlRmFjdG9yUmVhZE9ubHkoKSEsIGltZy5oZWlnaHQgKiB0aGlzLnNjYWxlRmFjdG9yUmVhZE9ubHkoKSEpO1xuICAgIGN0eC5maWx0ZXIgPSAnbm9uZSc7XG5cbiAgICB0aGlzLmRyYXdJbWFnZUluQ3JvcEFyZWEoY3R4LCBpbWcpO1xuICB9XG5cbiAgLy8/IERlc2VuaGEgYSDDoXJlYSBkZSBjb3J0ZVxuICBkcmF3Q3JvcEFyZWEoY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgfCBudWxsKSB7XG4gICAgaWYgKCFjdHgpIHJldHVybjtcblxuICAgIHRoaXMuYXR1YWxpemFDdXRCb3JkZXIoKVxuXG4gICAgY29uc3QgY3JvcFggPSBjdHguY2FudmFzLndpZHRoIC8gMiAtIHRoaXMuY3V0V2lkdGgoKSEgLyAyO1xuICAgIGNvbnN0IGNyb3BZID0gY3R4LmNhbnZhcy5oZWlnaHQgLyAyIC0gdGhpcy5jdXRIZWlnaHQoKSEgLyAyO1xuXG5cbiAgICBjb25zdCBjcm9wWENpcmNsZSA9IGN0eC5jYW52YXMud2lkdGggLyAyIC0gdGhpcy5yYWRpdXMoKSEgLyAyO1xuICAgIGNvbnN0IGNyb3BZQ2lyY2xlID0gY3R4LmNhbnZhcy5oZWlnaHQgLyAyIC0gdGhpcy5yYWRpdXMoKSEgLyAyO1xuXG4gICAgY3R4LmJlZ2luUGF0aCgpO1xuICAgIGN0eC5zdHJva2VTdHlsZSA9ICd0cmFuc3BhcmVudCc7XG4gICAgY3R4LmxpbmVXaWR0aCA9IDI7XG5cbiAgICBpZih0aGlzLl92YXJpYXZpZXNEaWFsb2coKT8uaW5kQ2lyY2xlKSB7XG4gICAgICBjdHguYXJjKGNyb3BYQ2lyY2xlLCBjcm9wWUNpcmNsZSwgdGhpcy5yYWRpdXMoKSEsIDAsIE1hdGguUEkgKiAyLCB0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY3R4LnJlY3QoY3JvcFgsIGNyb3BZICwgdGhpcy5jdXRXaWR0aCgpISwgdGhpcy5jdXRIZWlnaHQoKSEpO1xuICAgIH1cblxuICAgIGN0eC5zdHJva2UoKTtcblxuXG4gIH1cbiAgLy8/IERlc2VuaGEgYSBpbWFnZW0gbmEgw6FyZWEgZGUgY29ydGVcbiAgZHJhd0ltYWdlSW5Dcm9wQXJlYShjdHg6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB8IG51bGwsIGltZzogSFRNTEltYWdlRWxlbWVudCkge1xuICAgICAgaWYgKCFjdHgpIHJldHVybjtcblxuICAgICAgY29uc3QgY3JvcFggPSAoY3R4LmNhbnZhcy53aWR0aCAtIHRoaXMuY3V0V2lkdGgoKSEpIC8gMjtcbiAgICAgIGNvbnN0IGNyb3BZID0gKGN0eC5jYW52YXMuaGVpZ2h0IC0gdGhpcy5jdXRIZWlnaHQoKSEpIC8gMjtcblxuICAgICAgY3R4LnNhdmUoKTtcbiAgICAgIGN0eC5iZWdpblBhdGgoKTtcblxuICAgICAgaWYodGhpcy5fdmFyaWF2aWVzRGlhbG9nKCk/LmluZENpcmNsZSkge1xuICAgICAgICBjdHguYXJjKGN0eC5jYW52YXMud2lkdGgvMiwgY3R4LmNhbnZhcy5oZWlnaHQvMiwgdGhpcy5yYWRpdXMoKSEsIDAsIE1hdGguUEkgKiAyLCB0cnVlKTtcblxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY3R4LnJlY3QoY3JvcFgsIGNyb3BZICwgdGhpcy5jdXRXaWR0aCgpISwgdGhpcy5jdXRIZWlnaHQoKSEpO1xuICAgICAgfVxuXG4gICAgICBjdHguY2xpcCgpO1xuICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIHRoaXMuaW1hZ2VYLCB0aGlzLmltYWdlWSwgaW1nLndpZHRoICogdGhpcy5zY2FsZUZhY3RvclJlYWRPbmx5KCkhLCBpbWcuaGVpZ2h0ICogdGhpcy5zY2FsZUZhY3RvclJlYWRPbmx5KCkhKTtcbiAgICAgIGN0eC5yZXN0b3JlKCk7XG4gIH1cbiAgYXR1YWxpemFDdXRCb3JkZXIoKSB7XG4gICAgaWYgKHRoaXMuY3JvcEJvcmRlciAmJiB0aGlzLmNyb3BCb3JkZXIubmF0aXZlRWxlbWVudCkge1xuICAgICAgY29uc3QgY3JvcEJvcmRlckVsZW1lbnQgPSB0aGlzLmNyb3BCb3JkZXIubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGlmKHRoaXMuX3Zhcmlhdmllc0RpYWxvZygpPy5pbmRDaXJjbGUpe1xuXG4gICAgICAgIGNyb3BCb3JkZXJFbGVtZW50LnN0eWxlLmJvcmRlclJhZGl1cyA9IHRoaXMucmFkaXVzKCkhKjIrJ3B4JztcbiAgICAgICAgY3JvcEJvcmRlckVsZW1lbnQuc3R5bGUud2lkdGggPSB0aGlzLnJhZGl1cygpISoyKydweCc7XG4gICAgICAgIGNyb3BCb3JkZXJFbGVtZW50LnN0eWxlLmhlaWdodCA9IHRoaXMucmFkaXVzKCkhKjIrJ3B4JztcbiAgICAgIH1lbHNle1xuICAgICAgICBjcm9wQm9yZGVyRWxlbWVudC5zdHlsZS53aWR0aCA9IHRoaXMuY3V0V2lkdGgoKSErJ3B4JztcbiAgICAgICAgY3JvcEJvcmRlckVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gdGhpcy5jdXRIZWlnaHQoKSErJ3B4JztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cblxuICAvLyNyZWdpb24gaGFuZGxlcnMgZGUgZXZlbnRvc1xuXG4gIGNvbXBhcmFkb3JPblpvb21DaGFuZ2UgPSB0aGlzLnNjYWxlRmFjdG9ySW5pY2lhbCgpITtcbiAgb25ab29tQ2hhbmdlKGU6IGFueSkge1xuICAgIGNvbnN0IHByZXZab29tID0gdGhpcy5jb21wYXJhZG9yT25ab29tQ2hhbmdlO1xuICAgIGNvbnN0IHpvb21WYWx1ZSA9IGUudmFsdWU7XG4gICAgdGhpcy5jb21wYXJhZG9yT25ab29tQ2hhbmdlID0gZS52YWx1ZTtcbiAgICBjb25zdCBkaXJlY3Rpb246ICd1cCcgfCAnZG93bicgPSBwcmV2Wm9vbSA8IHpvb21WYWx1ZSA/ICd1cCcgOiAnZG93bic7XG4gICAgdGhpcy5hanVzdGFyWm9vbShkaXJlY3Rpb24sIGUudmFsdWUpO1xuICB9XG5cblxuXG4gIGluaXRpYWxpemVNb3VzZVdoZWVsKGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQsIGN0eDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIHwgbnVsbCwgaW1nOiBIVE1MSW1hZ2VFbGVtZW50KSB7XG4gICAgY2FudmFzLm9ud2hlZWwgPSAoZSkgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgLy8/IFJlY3VwZXJhbmRvIG9zIHZhbG9yZXMgZGUgem9vbSBlIGRlbHRhIGF0dWFpc1xuICAgICAgY29uc3QgZGlyZWN0aW9uOiAndXAnIHwgJ2Rvd24nID0gZS5kZWx0YVkgPiAwID8gJ2Rvd24nIDogJ3VwJztcblxuICAgICAgdGhpcy5hanVzdGFyWm9vbShkaXJlY3Rpb24pXG4gICAgfTtcbiAgfVxuXG5cbiAgYWp1c3Rhclpvb20oZGlyZWN0aW9uOiAndXAnIHwgJ2Rvd24nLCB2YWx1ZT86IG51bWJlcikge1xuICAgIGNvbnN0IHByZXZTY2FsZUZhY3RvciA9IHRoaXMuc2NhbGVGYWN0b3JSZWFkT25seSgpITtcbiAgICBjb25zdCBkZWx0YSA9IGRpcmVjdGlvbiA9PSAnZG93bicgPyAtMC4wMTUgOiAwLjAxNTtcblxuICAgIGxldCBzY2FsZUZhY3RvciA9IHByZXZTY2FsZUZhY3RvciArIChkZWx0YSoxLjQpO1xuXG4gICAgaWYodmFsdWUpXG4gICAgICAgIHNjYWxlRmFjdG9yID0gdmFsdWUrIHRoaXMuc2NhbGVGYWN0b3JJbmljaWFsKCkhO1xuXG4gICAgY29uc3QgbmV3SGVpZ2h0ID0gdGhpcy5fSW1hZ2UoKS5oZWlnaHQgKiBzY2FsZUZhY3RvcjtcbiAgICBjb25zdCBuZXdXaWR0aCA9IHRoaXMuX0ltYWdlKCkud2lkdGggKiBzY2FsZUZhY3RvcjtcblxuICAgIGlmICh0aGlzLl92YXJpYXZpZXNEaWFsb2coKT8uaW5kQ2lyY2xlKSB7XG4gICAgICBpZiAobmV3SGVpZ2h0IDwgdGhpcy5yYWRpdXMoKSEgKiAyIHx8IG5ld1dpZHRoIDwgdGhpcy5yYWRpdXMoKSEgKiAyKSB7XG4gICAgICAgIHNjYWxlRmFjdG9yID0gcHJldlNjYWxlRmFjdG9yO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zY2FsZUZhY3Rvci5zZXQoc2NhbGVGYWN0b3IpO1xuICAgICAgICB0aGlzLnNldFNjYWxlRmFjdG9yTW9kZWwoc2NhbGVGYWN0b3IpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAobmV3SGVpZ2h0IDwgdGhpcy5jdXRIZWlnaHQoKSEgfHwgbmV3V2lkdGggPCB0aGlzLmN1dFdpZHRoKCkhKSB7XG4gICAgICAgIHNjYWxlRmFjdG9yID0gcHJldlNjYWxlRmFjdG9yO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zY2FsZUZhY3Rvci5zZXQoc2NhbGVGYWN0b3IpO1xuICAgICAgICB0aGlzLnNldFNjYWxlRmFjdG9yTW9kZWwoc2NhbGVGYWN0b3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuc2NhbGVGYWN0b3Iuc2V0KHNjYWxlRmFjdG9yKTtcbiAgICB0aGlzLnNldFNjYWxlRmFjdG9yTW9kZWwoc2NhbGVGYWN0b3IpO1xuXG4gICAgY29uc3QgY2FudmFzID0gdGhpcy5jcm9wQ2FudmFzLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgY2FudmFzV2lkdGggPSBjYW52YXMub2Zmc2V0V2lkdGg7XG4gICAgY29uc3QgY2FudmFzSGVpZ2h0ID0gY2FudmFzLm9mZnNldEhlaWdodDtcbiAgICBjb25zdCBjZW50ZXJYID0gY2FudmFzV2lkdGggLyAyO1xuICAgIGNvbnN0IGNlbnRlclkgPSBjYW52YXNIZWlnaHQgLyAyO1xuICAgIGNvbnN0IG5ld0NhbnZhc1ggPSBjZW50ZXJYIC0gKGNlbnRlclggLSB0aGlzLmltYWdlWCkgKiAoc2NhbGVGYWN0b3IgLyBwcmV2U2NhbGVGYWN0b3IpO1xuICAgIGNvbnN0IG5ld0NhbnZhc1kgPSBjZW50ZXJZIC0gKGNlbnRlclkgLSB0aGlzLmltYWdlWSkgKiAoc2NhbGVGYWN0b3IgLyBwcmV2U2NhbGVGYWN0b3IpO1xuICAgIHRoaXMuaW1hZ2VYID0gbmV3Q2FudmFzWDtcbiAgICB0aGlzLmltYWdlWSA9IG5ld0NhbnZhc1k7XG5cbiAgICBpZiAoIXRoaXMudmVyaWZpY2FJbWFnZW1kZW50cm9Eb3NMaW1pdGVYbWluKCkpIHtcbiAgICAgIGNvbnN0IGRpZmZYbWluID0gdGhpcy5yZXRvcm5hRGlmZlhtYXgoKTtcbiAgICAgIHRoaXMubW92ZUltYWdlKHRoaXMuaW1hZ2VYIC0gZGlmZlhtaW4pO1xuICAgIH1cblxuICAgIGlmICghdGhpcy52ZXJpZmljYUltYWdlbWRlbnRyb0Rvc0xpbWl0ZVhtYXgoKSkge1xuICAgICAgY29uc3QgZGlmZlhtYXggPSB0aGlzLnJldG9ybmFEaWZmWG1pbigpO1xuICAgICAgdGhpcy5tb3ZlSW1hZ2UodGhpcy5pbWFnZVggKyBkaWZmWG1heCk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnZlcmlmaWNhSW1hZ2VtZGVudHJvRG9zTGltaXRlWW1heCgpKSB7XG4gICAgICBjb25zdCBkaWZmWW1heCA9IHRoaXMucmV0b3JuYURpZmZZbWluKCk7XG4gICAgICB0aGlzLm1vdmVJbWFnZSh1bmRlZmluZWQsIHRoaXMuaW1hZ2VZICsgZGlmZlltYXgpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy52ZXJpZmljYUltYWdlbWRlbnRyb0Rvc0xpbWl0ZVltaW4oKSkge1xuICAgICAgY29uc3QgZGlmZlltaW4gPSB0aGlzLnJldG9ybmFEaWZmWW1heCgpO1xuICAgICAgdGhpcy5tb3ZlSW1hZ2UodW5kZWZpbmVkLCB0aGlzLmltYWdlWSAtIGRpZmZZbWluKTtcbiAgICB9XG4gICAgdGhpcy5yZWRyYXdDYW52YXModGhpcy5jdHgoKSEsIHRoaXMuX0ltYWdlKCkhKTtcbiAgfVxuXG5cblxuXG4gIHZlcmlmaWNhSW1hZ2VtZGVudHJvRG9zTGltaXRlWG1pbigpOiBib29sZWFuIHtcbiAgICBjb25zdCBuZXdJbWFnZVggPSB0aGlzLmltYWdlWDtcbiAgICByZXR1cm4gbmV3SW1hZ2VYIDwgdGhpcy54TWluKCkhXG4gIH1cbiAgdmVyaWZpY2FJbWFnZW1kZW50cm9Eb3NMaW1pdGVYbWF4KCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG5ld0ltYWdlWCA9IHRoaXMuaW1hZ2VYO1xuICAgIHJldHVybiBuZXdJbWFnZVggPiB0aGlzLnhNYXgoKSFcbiAgfVxuICB2ZXJpZmljYUltYWdlbWRlbnRyb0Rvc0xpbWl0ZVltaW4oKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbmV3SW1hZ2VZID0gdGhpcy5pbWFnZVk7XG4gICAgcmV0dXJuIG5ld0ltYWdlWSA8IHRoaXMueU1pbigpIVxuICB9XG4gIHZlcmlmaWNhSW1hZ2VtZGVudHJvRG9zTGltaXRlWW1heCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBuZXdJbWFnZVkgPSB0aGlzLmltYWdlWTtcbiAgICByZXR1cm4gbmV3SW1hZ2VZID4gdGhpcy55TWF4KCkhXG4gIH1cblxuICByZXRvcm5hRGlmZlhtaW4oKTogbnVtYmVyIHtcbiAgICBjb25zdCBuZXdJbWFnZVggPSB0aGlzLmltYWdlWDtcbiAgICByZXR1cm4gdGhpcy54TWluKCkhIC0gbmV3SW1hZ2VYO1xuICB9XG4gIHJldG9ybmFEaWZmWG1heCgpOiBudW1iZXIge1xuICAgIGNvbnN0IG5ld0ltYWdlWCA9IHRoaXMuaW1hZ2VYO1xuICAgIHJldHVybiBuZXdJbWFnZVggLSB0aGlzLnhNYXgoKSE7XG4gIH1cbiAgcmV0b3JuYURpZmZZbWluKCk6IG51bWJlciB7XG4gICAgY29uc3QgbmV3SW1hZ2VZID0gdGhpcy5pbWFnZVk7XG4gICAgcmV0dXJuIHRoaXMueU1pbigpISAtIG5ld0ltYWdlWTtcbiAgfVxuICByZXRvcm5hRGlmZlltYXgoKTogbnVtYmVyIHtcbiAgICBjb25zdCBuZXdJbWFnZVkgPSB0aGlzLmltYWdlWTtcbiAgICByZXR1cm4gbmV3SW1hZ2VZIC0gdGhpcy55TWF4KCkhO1xuICB9XG5cblxuICBpbml0aWFsaXplSW1hZ2VNb3ZlKGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQsIGN0eDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIHwgbnVsbCwgaW1nOiBIVE1MSW1hZ2VFbGVtZW50KSB7XG4gICAgbGV0IGlzRHJhZ2dpbmcgPSBmYWxzZTtcblxuICAgIGNhbnZhcy5zdHlsZS5jdXJzb3IgPSAnZ3JhYic7XG5cbiAgICBjYW52YXMub25tb3VzZWRvd24gPSAoZSkgPT4ge1xuICAgICAgaXNEcmFnZ2luZyA9IHRydWU7XG4gICAgICBjYW52YXMuc3R5bGUuY3Vyc29yID0gJ2dyYWJiaW5nJztcbiAgICAgIHRoaXMuc3RhcnRYID0gZS5vZmZzZXRYIC0gdGhpcy5pbWFnZVg7XG4gICAgICB0aGlzLnN0YXJ0WSA9IGUub2Zmc2V0WSAtIHRoaXMuaW1hZ2VZO1xuICAgIH07XG5cbiAgICBjYW52YXMub25tb3VzZXVwID0gKCkgPT4ge1xuICAgICAgaXNEcmFnZ2luZyA9IGZhbHNlO1xuICAgICAgY2FudmFzLnN0eWxlLmN1cnNvciA9ICdncmFiJztcbiAgICB9O1xuXG4gICAgY2FudmFzLm9ubW91c2VvdXQgPSAoKSA9PiB7XG4gICAgICBpc0RyYWdnaW5nID0gZmFsc2U7XG4gICAgICBjYW52YXMuc3R5bGUuY3Vyc29yID0gJ2dyYWInO1xuICAgIH07XG5cbiAgICBjYW52YXMub25tb3VzZW1vdmUgPSAoZSkgPT4ge1xuICAgICAgaWYgKGlzRHJhZ2dpbmcpIHtcblxuICAgICAgICAgIC8vIENhbGN1bGEgbyBub3ZvIHBvc2ljaW9uYW1lbnRvIGRhIGltYWdlbVxuICAgICAgICAgIGxldCBuZXdJbWFnZVggPSBlLm9mZnNldFggLSB0aGlzLnN0YXJ0WDtcbiAgICAgICAgICBsZXQgbmV3SW1hZ2VZID0gZS5vZmZzZXRZIC0gdGhpcy5zdGFydFk7XG5cbiAgICAgICAgICBpZiAobmV3SW1hZ2VYIDwgIHRoaXMueE1pbigpISAmJiBuZXdJbWFnZVggPiB0aGlzLnhNYXgoKSEpIHtcbiAgICAgICAgICAgIHRoaXMubW92ZUltYWdlKG5ld0ltYWdlWClcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYobmV3SW1hZ2VZIDwgdGhpcy55TWluKCkhICYmIG5ld0ltYWdlWSA+IHRoaXMueU1heCgpISl7XG4gICAgICAgICAgICB0aGlzLm1vdmVJbWFnZSh1bmRlZmluZWQsIG5ld0ltYWdlWSlcbiAgICAgICAgICB9XG5cblxuICAgICAgICAgIHRoaXMucmVkcmF3Q2FudmFzKGN0eCwgaW1nKTtcbiAgICAgIH1cbiAgICB9O1xuXG5cbiAgfVxuXG4gIG1vdmVJbWFnZShkeD86IG51bWJlciwgZHk/OiBudW1iZXIpIHtcbiAgICB0aGlzLmltYWdlWCA9IChkeD8/dGhpcy5pbWFnZVgpO1xuICAgIHRoaXMuaW1hZ2VZID0gKGR5Pz90aGlzLmltYWdlWSk7XG4gIH1cblxuXG5cbiAgLy8jZW5kcmVnaW9uXG5cblxuICAvLyNyZWdpb24gTcOpdG9kb3MgZGUgY29ydGUgZSBmZWNoYW1lbnRvIGRvIG1vZGFsXG4gIGNyb3BJbWFnZSgpIHtcbiAgICBjb25zdCBjdHggPSB0aGlzLmN0eCgpO1xuXG4gICAgaWYgKGN0eCkge1xuICAgICAgY29uc3QgWCA9ICgodGhpcy5jYW52YXMoKSEud2lkdGggLSB0aGlzLl9JbWFnZSgpLndpZHRoICogdGhpcy5zY2FsZUZhY3RvclJlYWRPbmx5KCkhKSAvIDIpO1xuICAgICAgY29uc3QgWSA9ICgodGhpcy5jYW52YXNIZWlnaHQoKSEgLyAyKSAtICh0aGlzLl9JbWFnZSgpLmhlaWdodCAqIHRoaXMuc2NhbGVGYWN0b3JSZWFkT25seSgpISkgLyAyKTtcblxuICAgICAgLy8gUmVjdXBlcmFyIG8gaW1hZ2VEYXRhIGRhIGltYWdlbSBxdWUgZXN0w6EgbmEgw6FyZWEgZGUgY29ydGVcbiAgICAgIGxldCBpbWFnZURhdGFcbiAgICAgIGNvbnN0IGNyb3BYID0gKGN0eC5jYW52YXMud2lkdGggLSB0aGlzLmN1dFdpZHRoKCkhKSAvIDI7XG4gICAgICBjb25zdCBjcm9wWSA9IChjdHguY2FudmFzLmhlaWdodCAtIHRoaXMuY3V0SGVpZ2h0KCkhKSAvIDI7XG4gICAgICBpZih0aGlzLl92YXJpYXZpZXNEaWFsb2coKT8uaW5kQ2lyY2xlKXtcbiAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IGNhbnZhcyB3aXRoIHRoZSBzYW1lIGRpbWVuc2lvbnMgYXMgdGhlIGNpcmNsZVxuICAgICAgICBjb25zdCBjaXJjbGVDYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcbiAgICAgICAgY29uc3QgY2lyY2xlQ3R4ID0gY2lyY2xlQ2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgICAgIGNpcmNsZUNhbnZhcy53aWR0aCA9IHRoaXMucmFkaXVzKCkhICogMjtcbiAgICAgICAgY2lyY2xlQ2FudmFzLmhlaWdodCA9IHRoaXMucmFkaXVzKCkhICogMjtcblxuICAgICAgICAvLyBEcmF3IHRoZSBjaXJjbGUgb24gdGhlIG5ldyBjYW52YXNcbiAgICAgICAgY2lyY2xlQ3R4IS5iZWdpblBhdGgoKTtcbiAgICAgICAgY2lyY2xlQ3R4IS5hcmModGhpcy5yYWRpdXMoKSEsIHRoaXMucmFkaXVzKCkhLCB0aGlzLnJhZGl1cygpISwgMCwgMiAqIE1hdGguUEkpO1xuICAgICAgICBjaXJjbGVDdHghLmZpbGwoKTtcblxuICAgICAgICAvLyBTZXQgdGhlIGNvbXBvc2l0ZSBvcGVyYXRpb24gdG8gJ2Rlc3RpbmF0aW9uLWluJyB0byBjdXQgb3V0IHRoZSBjaXJjbGVcbiAgICAgICAgY3R4Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbiA9ICdkZXN0aW5hdGlvbi1pbic7XG5cbiAgICAgICAgLy8gRHJhdyB0aGUgaW1hZ2Ugb24gdGhlIG1haW4gY2FudmFzIHVzaW5nIHRoZSBjaXJjbGUgYXMgYSBtYXNrXG4gICAgICAgIGN0eC5kcmF3SW1hZ2UoY2lyY2xlQ2FudmFzLCBjcm9wWCwgY3JvcFkpO1xuXG4gICAgICAgIC8vIFJlc2V0IHRoZSBjb21wb3NpdGUgb3BlcmF0aW9uIHRvIHRoZSBkZWZhdWx0IHZhbHVlXG4gICAgICAgIGN0eC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb24gPSAnc291cmNlLW92ZXInO1xuXG4gICAgICAgIC8vIEdldCB0aGUgaW1hZ2UgZGF0YSBvZiB0aGUgY3JvcHBlZCBjaXJjbGVcbiAgICAgICAgaW1hZ2VEYXRhID0gY3R4LmdldEltYWdlRGF0YShjcm9wWCwgY3JvcFksIHRoaXMucmFkaXVzKCkhICogMiwgdGhpcy5yYWRpdXMoKSEgKiAyKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGltYWdlRGF0YSA9IGN0eC5nZXRJbWFnZURhdGEoY3JvcFgsIGNyb3BZLCB0aGlzLmN1dFdpZHRoKCkhLCB0aGlzLmN1dEhlaWdodCgpISk7XG4gICAgICB9XG5cblxuICAgICAgLy8gT2J0ZXIgb3MgdmFsb3JlcyBkZSB3aWR0aCBlIGhlaWdodCBkYSB2YXJpw6F2ZWwgX3Zhcmlhdmllc0RpYWxvZ1xuICAgICAgY29uc3QgdmFyaWF2ZWlzRGlhbG9nID0gdGhpcy5fdmFyaWF2aWVzRGlhbG9nKCk7XG4gICAgICBpZiAodmFyaWF2ZWlzRGlhbG9nKSB7XG4gICAgICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gdmFyaWF2ZWlzRGlhbG9nO1xuXG4gICAgICAgIC8vIENyaWFyIHVtIG5vdm8gY2FudmFzIGUgY29udGV4dG8gY29tIG9zIHZhbG9yZXMgZGUgd2lkdGggZSBoZWlnaHRcbiAgICAgICAgY29uc3QgbmV3Q2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgICAgIGNvbnN0IG5ld0N0eCA9IG5ld0NhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuICAgICAgICBuZXdDYW52YXMud2lkdGggPSB3aWR0aDtcbiAgICAgICAgbmV3Q2FudmFzLmhlaWdodCA9IGhlaWdodDtcblxuICAgICAgICBpZiAobmV3Q3R4KSB7XG4gICAgICAgICAgLy8gUmVkaW1lbnNpb25hciBhIGltYWdlbSBwYXJhIG8gdGFtYW5obyBlc3BlY2lmaWNhZG9cbiAgICAgICAgICBjb25zdCB0ZW1wQ2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgICAgICAgY29uc3QgdGVtcEN0eCA9IHRlbXBDYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICAgICAgICB0ZW1wQ2FudmFzLndpZHRoID0gdGhpcy5jdXRXaWR0aCgpITtcbiAgICAgICAgICB0ZW1wQ2FudmFzLmhlaWdodCA9IHRoaXMuY3V0SGVpZ2h0KCkhO1xuICAgICAgICAgIHRlbXBDdHghLnB1dEltYWdlRGF0YShpbWFnZURhdGEsIDAsIDApO1xuXG4gICAgICAgICAgbmV3Q3R4LmRyYXdJbWFnZSh0ZW1wQ2FudmFzLCAwLCAwLCB3aWR0aCwgaGVpZ2h0KTtcblxuICAgICAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnY3JvcEltYWdlJywgeyBkZXRhaWw6e1xuICAgICAgICAgICAgcmVzdWx0OiBQcm9taXNlLnJlc29sdmUobmV3Q2FudmFzLnRvRGF0YVVSTCgpKSxcbiAgICAgICAgICAgIHN0YXR1czogdHJ1ZVxuICAgICAgICAgIH0gfSkpO1xuICAgICAgICAgIHRoaXMuY2xvc2VDcm9wTW9kYWwoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNsb3NlQ3JvcE1vZGFsKCkge1xuICAgIHRoaXMuZGlhbG9nSW5zdGFuY2UuY2xvc2UoKTtcbiAgfVxuXG4gIGNhbmNlbCgpe1xuICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnY3JvcEltYWdlJywgeyBkZXRhaWw6e1xuICAgICAgcmVzdWx0OiBQcm9taXNlLnJlc29sdmUoJ2NhbmNlbCcpLFxuICAgICAgc3RhdHVzOiBmYWxzZVxuICAgIH0gfSkpO1xuXG4gICAgdGhpcy5jbG9zZUNyb3BNb2RhbCgpXG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbn1cbiJdfQ==
|
|
@@ -66,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
|
|
|
66
66
|
providedIn: 'root',
|
|
67
67
|
}]
|
|
68
68
|
}], ctorParameters: () => [{ type: i1.ConfirmationService }, { type: i1.MessageService }] });
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvYXBpL3NlcnZpY2VzL25vdGlmaWNhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUF1QnpELE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsWUFDbUIsbUJBQXdDLEVBQ3hDLGNBQThCO1FBRDlCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO0lBQzdDLENBQUM7SUFFTCxRQUFRLENBQUMsTUFBc0I7UUFDN0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQztZQUMvQixNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsYUFBYTtZQUMzRCxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixFQUFFO1lBQ3hGLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLHNCQUFzQixFQUFFLDJCQUEyQjtZQUNuRCxXQUFXLEVBQUUsS0FBSztZQUNsQixzQkFBc0IsRUFBRSw0QkFBNEI7WUFDcEQsR0FBRyxNQUFNO1NBQ1YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFvQjtRQUN6QixJQUFJLFlBQW9CLENBQUM7UUFDekIsSUFBSSxVQUFrQixDQUFDO1FBRXZCLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3BCLEtBQUssT0FBTztnQkFDVixZQUFZLEdBQUcsU0FBUyxDQUFDO2dCQUN6QixVQUFVLEdBQUcsNEJBQTRCLENBQUM7Z0JBQzFDLE1BQU07WUFDUixLQUFLLE1BQU07Z0JBQ1QsWUFBWSxHQUFHLFlBQVksQ0FBQztnQkFDNUIsVUFBVSxHQUFHLG1CQUFtQixDQUFDO2dCQUNqQyxNQUFNO1lBQ1IsS0FBSyxPQUFPO2dCQUNWLFlBQVksR0FBRyxNQUFNLENBQUM7Z0JBQ3RCLFVBQVUsR0FBRyxvQkFBb0IsQ0FBQztnQkFDbEMsTUFBTTtRQUNWLENBQUM7UUFFRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDO1lBQy9CLE1BQU0sRUFBRSxZQUFZO1lBQ3BCLElBQUksRUFBRSxVQUFVO1lBQ2hCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLHNCQUFzQixFQUFFLDJCQUEyQjtZQUNuRCxhQUFhLEVBQUUsS0FBSztZQUNwQixhQUFhLEVBQUUsS0FBSztZQUNwQixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87WUFDdkIsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRTtTQUMvQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQWUsRUFBRSxPQUFlLElBQUk7UUFDL0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNwRyxDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQWUsRUFBRSxPQUFlLElBQUk7UUFDNUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQWUsRUFBRSxPQUFlLElBQUk7UUFDNUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQWUsRUFBRSxPQUFlLElBQUk7UUFDN0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMvRixDQUFDOzhHQS9EVSxtQkFBbUI7a0hBQW5CLG1CQUFtQixjQUZsQixNQUFNOzsyRkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuaW1wb3J0IHtcbiAgQ29uZmlybWF0aW9uU2VydmljZSxcbiAgTWVzc2FnZVNlcnZpY2Vcbn0gZnJvbSBcInByaW1lbmcvYXBpXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVlc3Rpb25Db25maWcge1xuICB0eXBlPzogJ3F1ZXN0aW9uJyB8ICdhbGVydCc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgYWNjZXB0PzogRnVuY3Rpb247XG4gIHJlamVjdD86IEZ1bmN0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpYWxvZ0NvbmZpZyB7XG4gIHR5cGU6ICdpbmZvJyB8ICdhbGVydCcgfCAnZXJyb3InO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIGFjY2VwdD86IEZ1bmN0aW9uO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgKSB7IH1cblxuICBxdWVzdGlvbihjb25maWc6IFF1ZXN0aW9uQ29uZmlnKSB7XG4gICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xuICAgICAgaGVhZGVyOiBjb25maWcudHlwZSA9PT0gJ2FsZXJ0JyA/ICdBdGVuw6fDo28nIDogJ0NvbmZpcm1hw6fDo28nLFxuICAgICAgaWNvbjogYHBpICR7Y29uZmlnLnR5cGUgPT09ICdhbGVydCcgPyAncGktZXhjbGFtYXRpb24tdHJpYW5nbGUnIDogJ3BpLXF1ZXN0aW9uLWNpcmNsZSd9YCxcbiAgICAgIGFjY2VwdExhYmVsOiAnU2ltJyxcbiAgICAgIGFjY2VwdEJ1dHRvblN0eWxlQ2xhc3M6ICcga3YtYnV0dG9uIHByaW1hcnkgbm9ybWFsJyxcbiAgICAgIHJlamVjdExhYmVsOiAnTsOjbycsXG4gICAgICByZWplY3RCdXR0b25TdHlsZUNsYXNzOiAnIGt2LWJ1dHRvbiB0ZXJ0aWFyeSBub3JtYWwnLFxuICAgICAgLi4uY29uZmlnLFxuICAgIH0pO1xuICB9XG5cbiAgZGlhbG9nKGNvbmZpZzogRGlhbG9nQ29uZmlnKSB7XG4gICAgbGV0IGRpYWxvZ0hlYWRlcjogc3RyaW5nO1xuICAgIGxldCBkaWFsb2dJY29uOiBzdHJpbmc7XG5cbiAgICBzd2l0Y2ggKGNvbmZpZy50eXBlKSB7XG4gICAgICBjYXNlICdhbGVydCc6XG4gICAgICAgIGRpYWxvZ0hlYWRlciA9ICdBdGVuw6fDo28nO1xuICAgICAgICBkaWFsb2dJY29uID0gJ3BpIHBpLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdpbmZvJzpcbiAgICAgICAgZGlhbG9nSGVhZGVyID0gJ0luZm9ybWHDp8Ojbyc7XG4gICAgICAgIGRpYWxvZ0ljb24gPSAncGkgcGktaW5mby1jaXJjbGUnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgICAgZGlhbG9nSGVhZGVyID0gJ0Vycm8nO1xuICAgICAgICBkaWFsb2dJY29uID0gJ3BpIHBpLXRpbWVzLWNpcmNsZSc7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHRoaXMuY29uZmlybWF0aW9uU2VydmljZS5jb25maXJtKHtcbiAgICAgIGhlYWRlcjogZGlhbG9nSGVhZGVyLFxuICAgICAgaWNvbjogZGlhbG9nSWNvbixcbiAgICAgIGFjY2VwdExhYmVsOiAnT2snLFxuICAgICAgYWNjZXB0QnV0dG9uU3R5bGVDbGFzczogJyBrdi1idXR0b24gcHJpbWFyeSBub3JtYWwnLFxuICAgICAgcmVqZWN0VmlzaWJsZTogZmFsc2UsXG4gICAgICBjbG9zZU9uRXNjYXBlOiBmYWxzZSxcbiAgICAgIG1lc3NhZ2U6IGNvbmZpZy5tZXNzYWdlLFxuICAgICAgYWNjZXB0OiAoKSA9PiBjb25maWcuYWNjZXB0ICYmIGNvbmZpZy5hY2NlcHQoKVxuICAgIH0pO1xuICB9XG5cbiAgdG9hc3RTdWNjZXNzKG1lc3NhZ2U6IHN0cmluZywgdGltZTogbnVtYmVyID0gNDAwMCkge1xuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdzdWNjZXNzJywgc3VtbWFyeTogJ1N1Y2Vzc28nLCBkZXRhaWw6IG1lc3NhZ2UsIGxpZmU6IHRpbWUgfSk7XG4gIH1cblxuICB0b2FzdEluZm8obWVzc2FnZTogc3RyaW5nLCB0aW1lOiBudW1iZXIgPSA0MDAwKSB7XG4gICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2luZm8nLCBzdW1tYXJ5OiAnSW5mbycsIGRldGFpbDogbWVzc2FnZSwgbGlmZTogdGltZSB9KTtcbiAgfVxuXG4gIHRvYXN0V2FybihtZXNzYWdlOiBzdHJpbmcsIHRpbWU6IG51bWJlciA9IDQwMDApIHtcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnd2FybicsIHN1bW1hcnk6ICdBdmlzbycsIGRldGFpbDogbWVzc2FnZSwgbGlmZTogdGltZSB9KTtcbiAgfVxuXG4gIHRvYXN0RXJyb3IobWVzc2FnZTogc3RyaW5nLCB0aW1lOiBudW1iZXIgPSA0MDAwKSB7XG4gICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ0Vycm8nLCBkZXRhaWw6IG1lc3NhZ2UsIGxpZmU6IHRpbWUgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -61,4 +61,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
|
|
|
61
61
|
providedIn: 'root'
|
|
62
62
|
}]
|
|
63
63
|
}] });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnY2hhcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9hcGkvc2VydmljZXMvb3JnY2hhcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUsvQixNQUFNLE9BQU8sZUFBZTtJQUg1QjtRQUtVLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQWdCLENBQUM7UUFDckQsYUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFdEMsc0JBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUNsRCxnQkFBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVwRCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN4QyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQThDLENBQUM7S0E0RDVFO0lBMURDLGFBQWEsQ0FBQyxJQUFrQjtRQUM5QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsV0FBVyxDQUFDLEVBQVU7UUFDcEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsZUFBZSxDQUFDLFNBQXlCLEVBQUUsTUFBYyxFQUFFLFFBQWlCO1FBQzFFLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUM7UUFFcEUsSUFBSSxTQUFTLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNyQixNQUFNLFdBQVcsR0FBRztnQkFDbEIsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDO2dCQUN2QixTQUFTLEVBQUUsSUFBSTtnQkFDZixRQUFRO2FBQ1QsQ0FBQztZQUVGLE9BQU87Z0JBQ0wsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUM7Z0JBQ2hDLFdBQVc7Z0JBQ1gsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7YUFDbEMsQ0FBQztRQUNKLENBQUM7YUFBSyxDQUFDO1lBQ0wsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztJQUNILENBQUM7SUFFRCxxQkFBcUIsQ0FDbkIsU0FBeUIsRUFDekIsTUFBYyxFQUNkLEtBQWlDLEVBQ2pDLEtBQVE7UUFHUixNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxDQUFDO1FBRXBFLElBQUksU0FBUyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDckIsTUFBTSxXQUFXLEdBQUc7Z0JBQ2xCLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQztnQkFDdkIsSUFBSSxFQUFFO29CQUNKLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUk7b0JBQzVCLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSztpQkFDZjthQUNGLENBQUM7WUFFRixPQUFPO2dCQUNMLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDO2dCQUNoQyxXQUFXO2dCQUNYLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO2FBQ2xDLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzs4R0FqRVUsZUFBZTtrSEFBZixlQUFlLGNBRmQsTUFBTTs7MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBPcmdDaGFydE5vZGUgZnJvbSAnLi4vY29tcG9uZW50cy9jaGFydC9vcmNoYXJ0bm9kZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE9yZ0NoYXJ0U2VydmljZSB7XG5cbiAgcHJpdmF0ZSBub2RlQWRkU3ViamVjdCA9IG5ldyBTdWJqZWN0PE9yZ0NoYXJ0Tm9kZT4oKTtcbiAgbm9kZUFkZCQgPSB0aGlzLm5vZGVBZGRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByaXZhdGUgbm9kZVJlbW92ZVN1YmplY3QgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG4gIG5vZGVSZW1vdmUkID0gdGhpcy5ub2RlUmVtb3ZlU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuICBub2RlUmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIG5vZGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8eyBub2RlOiBPcmdDaGFydE5vZGUsIHNlbGV0b3JDc3M6IHN0cmluZyB9PigpO1xuXG4gIGFkaWNpb25hck5vZGUobm9kZTogT3JnQ2hhcnROb2RlKSB7XG4gICAgdGhpcy5ub2RlQWRkU3ViamVjdC5uZXh0KG5vZGUpO1xuICB9XG5cbiAgcmVtb3Zlck5vZGUoaWQ6IG51bWJlcikge1xuICAgIHRoaXMubm9kZVJlbW92ZVN1YmplY3QubmV4dChpZCk7XG4gIH1cblxuICBzZXROb2RlRXhwYW5kZWQob3JnU291cmNlOiBPcmdDaGFydE5vZGVbXSwgbm9kZUlkOiBudW1iZXIsIGV4cGFuZGVkOiBib29sZWFuKSB7XG4gICAgY29uc3Qgbm9kZUluZGV4ID0gb3JnU291cmNlLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS5pZCA9PT0gbm9kZUlkKTtcblxuICAgIGlmIChub2RlSW5kZXggIT09IC0xKSB7XG4gICAgICBjb25zdCB1cGRhdGVkTm9kZSA9IHtcbiAgICAgICAgLi4ub3JnU291cmNlW25vZGVJbmRleF0sXG4gICAgICAgIF9leHBhbmRlZDogdHJ1ZSxcbiAgICAgICAgZXhwYW5kZWRcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBbXG4gICAgICAgIC4uLm9yZ1NvdXJjZS5zbGljZSgwLCBub2RlSW5kZXgpLFxuICAgICAgICB1cGRhdGVkTm9kZSxcbiAgICAgICAgLi4ub3JnU291cmNlLnNsaWNlKG5vZGVJbmRleCArIDEpXG4gICAgICBdO1xuICAgIH1lbHNlIHtcbiAgICAgIHJldHVybiBvcmdTb3VyY2U7XG4gICAgfVxuICB9XG5cbiAgbW9kaWZpY2FyQ2FtcERhdGFOb2RlPFQ+KFxuICAgIG9yZ1NvdXJjZTogT3JnQ2hhcnROb2RlW10sXG4gICAgbm9kZUlkOiBudW1iZXIsXG4gICAgZmllbGQ6IGtleW9mIE9yZ0NoYXJ0Tm9kZVsnZGF0YSddLFxuICAgIHZhbHVlOiBUXG4gICk6IE9yZ0NoYXJ0Tm9kZVtdIHtcblxuICAgIGNvbnN0IG5vZGVJbmRleCA9IG9yZ1NvdXJjZS5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0uaWQgPT09IG5vZGVJZCk7XG5cbiAgICBpZiAobm9kZUluZGV4ICE9PSAtMSkge1xuICAgICAgY29uc3QgdXBkYXRlZE5vZGUgPSB7XG4gICAgICAgIC4uLm9yZ1NvdXJjZVtub2RlSW5kZXhdLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgLi4ub3JnU291cmNlW25vZGVJbmRleF0uZGF0YSxcbiAgICAgICAgICBbZmllbGRdOiB2YWx1ZVxuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gW1xuICAgICAgICAuLi5vcmdTb3VyY2Uuc2xpY2UoMCwgbm9kZUluZGV4KSxcbiAgICAgICAgdXBkYXRlZE5vZGUsXG4gICAgICAgIC4uLm9yZ1NvdXJjZS5zbGljZShub2RlSW5kZXggKyAxKVxuICAgICAgXTtcbiAgICB9XG5cbiAgICByZXR1cm4gb3JnU291cmNlO1xuICB9XG5cblxuXG59XG4iXX0=
|
|
@@ -197,4 +197,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
|
|
|
197
197
|
],
|
|
198
198
|
}]
|
|
199
199
|
}] });
|
|
200
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
200
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2Vldm8tY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9rZWV2by1jb21wb25lbnRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFB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QixzQkFBc0I7WUFDdEIsc0JBQXNCOzsyRkFHYixxQkFBcUI7a0JBNURqQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUU7d0JBQ1AsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGNBQWM7d0JBQ2QsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLGFBQWE7d0JBQ2IsaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIsYUFBYTt3QkFDYixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsc0JBQXNCO3dCQUN0QixzQkFBc0I7cUJBQ3ZCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQixpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQix1QkFBdUI7d0JBQ3ZCLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCLHNCQUFzQjt3QkFDdEIsc0JBQXNCO3FCQUN2QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEt2QXZhdGFyTW9kdWxlIH0gZnJvbSAnLi9rdi1hdmF0YXIva3YtYXZhdGFyLm1vZHVsZSc7XG5pbXBvcnQgeyBLdkJ1dHRvbnNNb2R1bGUgfSBmcm9tICcuL2t2LWJ1dHRvbnMva3YtYnV0dG9uLm1vZHVsZSc7XG5pbXBvcnQgeyBLdkNhcm91c2VsTW9kdWxlIH0gZnJvbSAnLi9rdi1jYXJvdXNlbC9rdi1jYXJvdXNlbC5tb2R1bGUnO1xuaW1wb3J0IHsgS3ZDaGFydE1vZHVsZSB9IGZyb20gJy4va3YtY2hhcnQva3YtY2hhcnQubW9kdWxlJztcbmltcG9ydCB7IEt2SW5wdXRzTW9kdWxlIH0gZnJvbSAnLi9rdi1pbnB1dHMva3YtaW5wdXRzLm1vZHVsZSc7XG5pbXBvcnQgeyBLdkxvYWRlck1vZHVsZSB9IGZyb20gJy4va3YtbG9hZGVyL2t2LWxvYWRlci5tb2R1bGUnO1xuaW1wb3J0IHsgS3ZMb2dpbk1vZHVsZSB9IGZyb20gJy4va3YtbG9naW4va3YtbG9naW4ubW9kdWxlJztcbmltcG9ydCB7IEt2TGF5b3V0TW9kdWxlIH0gZnJvbSAnLi9rdi1sYXlvdXQva3YtbGF5b3V0Lm1vZHVsZSc7XG5pbXBvcnQgeyBLdk1vZGFsTW9kdWxlIH0gZnJvbSAnLi9rdi1tb2RhbC9rdi1tb2RhbC5tb2R1bGUnO1xuaW1wb3J0IHsgS3ZPcmdjaGFydE1vZHVsZSB9IGZyb20gJy4va3Ytb3JnY2hhcnQva3Ytb3JnY2hhcnQubW9kdWxlJztcbmltcG9ydCB7IEt2UGFnZUZvcm1Nb2R1bGUgfSBmcm9tICcuL2t2LXBhZ2UtZm9ybS9rdi1wYWdlLWZvcm0ubW9kdWxlJztcbmltcG9ydCB7IEt2UGlja0xpc3RNb2R1bGUgfSBmcm9tICcuL2t2LXBpY2stbGlzdC9rdi1waWNrLWxpc3QubW9kdWxlJztcbmltcG9ydCB7IEt2UHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tICcuL2t2LXByb2dyZXNzLWJhci9rdi1wcm9ncmVzcy1iYXIubW9kdWxlJztcbmltcG9ydCB7IEt2VGFibGVFZGl0TW9kdWxlIH0gZnJvbSAnLi9rdi10YWJsZS1lZGl0L2t2LXRhYmxlLWVkaXQubW9kdWxlJztcbmltcG9ydCB7IEt2VGFibGVNb2R1bGUgfSBmcm9tICcuL2t2LXRhYmxlL2t2LXRhYmxlLm1vZHVsZSc7XG5pbXBvcnQgeyBLdlRyZWV0YWJsZU1vZHVsZSB9IGZyb20gJy4va3YtdHJlZS10YWJsZS9rdi10cmVlLXRhYmxlLm1vZHVsZSc7XG5pbXBvcnQgeyBLdnRyZWVWaWV3TW9kdWxlIH0gZnJvbSAnLi9rdi10cmVlLXZpZXcva3YtdHJlZS12aWV3Lm1vZHVsZSc7XG5pbXBvcnQgeyBLdldvcmtzcGFjZU1vZHVsZSB9IGZyb20gJy4va3Ytd29ya3NwYWNlL2t2LXdvcmtzcGFjZS5tb2R1bGUnO1xuaW1wb3J0IHsgS3ZTdGVwcGVyTW9kdWxlIH0gZnJvbSAnLi9rdi1zdGVwcGVyL2t2LXN0ZXBwZXIubW9kdWxlJztcbmltcG9ydCB7IEt2SW1hZ2VVcGxvYWRNb2R1bGUgfSBmcm9tICcuL2t2LWltYWdlLXVwbG9hZC9rdi1pbWFnZS11cGxvYWQubW9kdWxlJztcbmltcG9ydCB7IEt2VGFibGVFeHBhbmRhYmxlTW9kdWxlIH0gZnJvbSAnLi9rdi10YWJsZS1leHBhbmRhYmxlL2t2LXRhYmxlLWV4cGFuZGFibGUubW9kdWxlJztcbmltcG9ydCB7IEt2RmlsdGVyQ2FyZE1vZHVsZSB9IGZyb20gJy4va3YtZmlsdGVyLWNhcmQva3YtZmlsdGVyLWNhcmQubW9kdWxlJztcbmltcG9ydCB7IEt2R0ljb25Nb2R1bGUgfSBmcm9tICcuL2t2LWctaWNvbi9rdi1nLWljb24ubW9kdWxlJztcbmltcG9ydCB7IEt2RmlsZVZpZXdlck1vZHVsZSB9IGZyb20gJy4va3YtZmlsZS12aWV3ZXIva3YtZmlsZS12aWV3ZXIubW9kdWxlJztcbmltcG9ydCB7IEt2QnV0dG9uTW9kdWxlIH0gZnJvbSAnLi9rdi1idXR0b24va3YtYnV0dG9uLm1vZHVsZSc7XG5pbXBvcnQgeyBLdkZpbHRlckZpZWxkc2V0TW9kdWxlIH0gZnJvbSAnLi9rdi1maWx0ZXItZmllbGRzZXQva3YtZmlsdGVyLWZpZWxkc2V0Lm1vZHVsZSc7XG5pbXBvcnQgeyBLdkZpbGVWaWV3ZXJOb3ZvTW9kdWxlIH0gZnJvbSAnLi9rdi1maWxlLXZpZXdlci1ub3ZvL2t2LWZpbGUtdmlld2VyLW5vdm8ubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXSxcbiAgaW1wb3J0czogW1xuICAgIEt2QXZhdGFyTW9kdWxlLFxuICAgIEt2QnV0dG9uc01vZHVsZSxcbiAgICBLdkJ1dHRvbk1vZHVsZSxcbiAgICBLdkNhcm91c2VsTW9kdWxlLFxuICAgIEt2Q2hhcnRNb2R1bGUsXG4gICAgS3ZJbnB1dHNNb2R1bGUsXG4gICAgS3ZMb2FkZXJNb2R1bGUsXG4gICAgS3ZMb2dpbk1vZHVsZSxcbiAgICBLdkxheW91dE1vZHVsZSxcbiAgICBLdk1vZGFsTW9kdWxlLFxuICAgIEt2T3JnY2hhcnRNb2R1bGUsXG4gICAgS3ZQYWdlRm9ybU1vZHVsZSxcbiAgICBLdlBpY2tMaXN0TW9kdWxlLFxuICAgIEt2UHJvZ3Jlc3NCYXJNb2R1bGUsXG4gICAgS3ZUYWJsZU1vZHVsZSxcbiAgICBLdlRyZWV0YWJsZU1vZHVsZSxcbiAgICBLdnRyZWVWaWV3TW9kdWxlLFxuICAgIEt2V29ya3NwYWNlTW9kdWxlLFxuICAgIEt2U3RlcHBlck1vZHVsZSxcbiAgICBLdkltYWdlVXBsb2FkTW9kdWxlLFxuICAgIEt2VGFibGVFeHBhbmRhYmxlTW9kdWxlLFxuICAgIEt2R0ljb25Nb2R1bGUsXG4gICAgS3ZGaWx0ZXJDYXJkTW9kdWxlLFxuICAgIEt2RmlsZVZpZXdlck1vZHVsZSxcbiAgICBLdkZpbGVWaWV3ZXJOb3ZvTW9kdWxlLFxuICAgIEt2RmlsdGVyRmllbGRzZXRNb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBLdkF2YXRhck1vZHVsZSxcbiAgICBLdkJ1dHRvbnNNb2R1bGUsXG4gICAgS3ZCdXR0b25Nb2R1bGUsXG4gICAgS3ZDYXJvdXNlbE1vZHVsZSxcbiAgICBLdkNoYXJ0TW9kdWxlLFxuICAgIEt2SW5wdXRzTW9kdWxlLFxuICAgIEt2TG9hZGVyTW9kdWxlLFxuICAgIEt2TG9naW5Nb2R1bGUsXG4gICAgS3ZMYXlvdXRNb2R1bGUsXG4gICAgS3ZNb2RhbE1vZHVsZSxcbiAgICBLdk9yZ2NoYXJ0TW9kdWxlLFxuICAgIEt2UGFnZUZvcm1Nb2R1bGUsXG4gICAgS3ZQaWNrTGlzdE1vZHVsZSxcbiAgICBLdlByb2dyZXNzQmFyTW9kdWxlLFxuICAgIEt2VGFibGVFZGl0TW9kdWxlLFxuICAgIEt2VGFibGVNb2R1bGUsXG4gICAgS3ZUcmVldGFibGVNb2R1bGUsXG4gICAgS3Z0cmVlVmlld01vZHVsZSxcbiAgICBLdldvcmtzcGFjZU1vZHVsZSxcbiAgICBLdlN0ZXBwZXJNb2R1bGUsXG4gICAgS3ZJbWFnZVVwbG9hZE1vZHVsZSxcbiAgICBLdlRhYmxlRXhwYW5kYWJsZU1vZHVsZSxcbiAgICBLdkdJY29uTW9kdWxlLFxuICAgIEt2RmlsdGVyQ2FyZE1vZHVsZSxcbiAgICBLdkZpbGVWaWV3ZXJNb2R1bGUsXG4gICAgS3ZGaWx0ZXJGaWVsZHNldE1vZHVsZSxcbiAgICBLdkZpbGVWaWV3ZXJOb3ZvTW9kdWxlXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEtlZXZvQ29tcG9uZW50c01vZHVsZSB7fVxuIl19
|