@talrace/ngx-noder 0.0.4 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +72 -64
- package/esm2022/lib/+shared/abstract/base-api.service.mjs +4 -4
- package/esm2022/lib/+shared/abstract/observer.component.mjs +4 -4
- package/esm2022/lib/+shared/add-link-dialog/add-link-dialog.component.mjs +11 -7
- package/esm2022/lib/+shared/confirm-dialog/confirm-dialog.component.mjs +12 -8
- package/esm2022/lib/+shared/editor/core/components/edges/edge.component.mjs +4 -4
- package/esm2022/lib/+shared/editor/core/editor.mjs +7 -14
- package/esm2022/lib/+shared/editor/core/helpers/rendering.helper.mjs +9 -8
- package/esm2022/lib/+shared/editor/core/layers/text.layer.mjs +4 -4
- package/esm2022/lib/+shared/editor/custom-components/external-element/external.component.mjs +4 -4
- package/esm2022/lib/+shared/editor/custom-components/image/components/image.component.mjs +7 -6
- package/esm2022/lib/+shared/editor/custom-components/image/resizer/resizer.component.mjs +4 -4
- package/esm2022/lib/+shared/editor/custom-components/image/services/image-api.service.mjs +4 -4
- package/esm2022/lib/+shared/editor/custom-components/shared/abstract/base.component.mjs +6 -4
- package/esm2022/lib/+shared/editor/custom-components/shared/services/component/component.service.mjs +4 -4
- package/esm2022/lib/+shared/editor/custom-components/shared/services/custom-content/custom-content.service.mjs +9 -15
- package/esm2022/lib/+shared/editor/custom-components/shared/services/overlay/overlay.service.mjs +4 -4
- package/esm2022/lib/+shared/editor/custom-components/tab/tab.component.mjs +6 -5
- package/esm2022/lib/+shared/editor/custom-components/table/components/table-cell.component.mjs +8 -6
- package/esm2022/lib/+shared/editor/custom-components/table/components/table.component.mjs +10 -8
- package/esm2022/lib/+shared/editor/custom-components/table/overlay-menu/overlay-menu.component.mjs +4 -4
- package/esm2022/lib/+shared/editor/editor.component.mjs +7 -14
- package/esm2022/lib/+shared/editor/editor.module.mjs +5 -8
- package/esm2022/lib/+shared/editor/execution/models/general-properties.model.mjs +1 -1
- package/esm2022/lib/+shared/editor/execution/regulator.service.mjs +18 -8
- package/esm2022/lib/+shared/editor/interaction/editor.service.mjs +4 -4
- package/esm2022/lib/+shared/editor-search/editor-search-dialog.component.mjs +4 -4
- package/esm2022/lib/+shared/editor-title/editor-title.component.mjs +83 -0
- package/esm2022/lib/+shared/editor-toolbar/color-picker/color-picker.component.mjs +5 -5
- package/esm2022/lib/+shared/editor-toolbar/editor-toolbar.component.mjs +78 -92
- package/esm2022/lib/+shared/editor-toolbar/editor-toolbar.module.mjs +15 -5
- package/esm2022/lib/+shared/editor-toolbar/font/font.component.mjs +5 -5
- package/esm2022/lib/+shared/editor-toolbar/font-size/font-size.component.mjs +5 -5
- package/esm2022/lib/+shared/editor-toolbar/font-style/font-style.component.mjs +5 -5
- package/esm2022/lib/+shared/editor-toolbar/format/format.component.mjs +5 -5
- package/esm2022/lib/+shared/editor-toolbar/heading/heading.component.mjs +4 -4
- package/esm2022/lib/+shared/editor-toolbar/menu-dropdowns/menu-dropdowns.component.mjs +194 -0
- package/esm2022/lib/+shared/editor-toolbar/numbering/numbering.component.mjs +5 -5
- package/esm2022/lib/+shared/editor-toolbar/print/print.component.mjs +5 -5
- package/esm2022/lib/+shared/editor-toolbar/toolbar-actions/toolbar-actions.component.mjs +126 -0
- package/esm2022/lib/+shared/editor-toolbar/undo-redo/undo-redo.component.mjs +5 -5
- package/esm2022/lib/+shared/editor-toolbar/zoom/zoom.component.mjs +4 -4
- package/esm2022/lib/+shared/helpers/scaling.helper.mjs +9 -0
- package/esm2022/lib/+shared/insert-table/insert-table.component.mjs +4 -4
- package/esm2022/lib/+shared/services/commands.service.mjs +4 -4
- package/esm2022/lib/+shared/services/custom-icon.service.mjs +4 -4
- package/esm2022/public-api.mjs +2 -2
- package/fesm2022/talrace-ngx-noder.mjs +545 -488
- package/fesm2022/talrace-ngx-noder.mjs.map +1 -1
- package/lib/+shared/add-link-dialog/add-link-dialog.component.d.ts +1 -0
- package/lib/+shared/confirm-dialog/confirm-dialog.component.d.ts +1 -0
- package/lib/+shared/editor/core/editor.d.ts +3 -3
- package/lib/+shared/editor/core/helpers/rendering.helper.d.ts +3 -3
- package/lib/+shared/editor/custom-components/shared/abstract/base.component.d.ts +3 -1
- package/lib/+shared/editor/custom-components/shared/services/custom-content/custom-content.service.d.ts +1 -1
- package/lib/+shared/editor/custom-components/table/components/table-cell.component.d.ts +2 -2
- package/lib/+shared/editor/custom-components/table/components/table.component.d.ts +0 -2
- package/lib/+shared/editor/editor.component.d.ts +1 -5
- package/lib/+shared/editor/editor.module.d.ts +15 -16
- package/lib/+shared/editor/execution/models/general-properties.model.d.ts +1 -0
- package/lib/+shared/editor/execution/regulator.service.d.ts +2 -2
- package/lib/+shared/editor-title/editor-title.component.d.ts +24 -0
- package/lib/+shared/editor-toolbar/editor-toolbar.component.d.ts +31 -30
- package/lib/+shared/editor-toolbar/editor-toolbar.module.d.ts +19 -16
- package/lib/+shared/editor-toolbar/menu-dropdowns/menu-dropdowns.component.d.ts +73 -0
- package/lib/+shared/editor-toolbar/toolbar-actions/toolbar-actions.component.d.ts +49 -0
- package/lib/+shared/helpers/scaling.helper.d.ts +4 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -1
- package/src/_ngx-noder.theme.scss +10 -8
- package/src/lib/+shared/add-link-dialog/_add-link-dialog.theme.scss +3 -3
- package/src/lib/+shared/confirm-dialog/_theme.scss +6 -6
- package/src/lib/+shared/editor/_editor.theme.scss +84 -15
- package/src/lib/+shared/editor/_theme.scss +0 -2
- package/src/lib/+shared/editor-title/_editor-title.theme.scss +28 -0
- package/src/lib/+shared/editor-toolbar/_editor-toolbar.theme.scss +1 -24
- package/src/lib/+shared/editor-toolbar/_theme.scss +16 -2
- package/src/lib/+shared/editor-toolbar/font/_font.theme.scss +12 -0
- package/src/lib/+shared/editor-toolbar/font-size/_font-size.theme.scss +14 -0
- package/src/lib/+shared/editor-toolbar/font-style/_font-style.theme.scss +21 -0
- package/src/lib/+shared/editor-toolbar/format/_format.theme.scss +21 -0
- package/src/lib/+shared/editor-toolbar/menu-dropdowns/_menu-dropdowns.theme.scss +26 -0
- package/src/lib/+shared/editor-toolbar/numbering/_numbering.theme.scss +52 -11
- package/src/lib/+shared/editor-toolbar/toolbar-actions/_toolbar-actions.theme.scss +21 -0
- package/src/lib/+shared/editor-toolbar/undo-redo/_undo-redo.theme.scss +16 -0
- package/src/lib/+shared/insert-table/_insert-table.theme.scss +9 -6
- package/src/scss/_mixins.scss +2 -37
- package/esm2022/lib/+shared/editor/custom-components/external-element/element-toolbar/element-toolbar.component.mjs +0 -35
- package/esm2022/lib/+shared/editor-header/editor-header.component.mjs +0 -314
- package/lib/+shared/editor/custom-components/external-element/element-toolbar/element-toolbar.component.d.ts +0 -14
- package/lib/+shared/editor-header/editor-header.component.d.ts +0 -101
- package/src/lib/+shared/editor/custom-components/external-element/element-toolbar/_element-toolbar.theme.scss +0 -10
- package/src/lib/+shared/editor-header/_editor-header.theme.scss +0 -106
|
@@ -5,6 +5,7 @@ import { CellResizer } from '../cell-resizer/cell-resizer';
|
|
|
5
5
|
import { HRule } from '../../../core/enums/hrule.enum';
|
|
6
6
|
import { NoderTableCellComponent } from './table-cell.component';
|
|
7
7
|
import { RowDataModel } from '../models/row-data.model';
|
|
8
|
+
import { ScalingHelper } from '../../../../helpers/scaling.helper';
|
|
8
9
|
import { TableSelection } from '../selection/table-selection';
|
|
9
10
|
import { VerticalMerge } from '../enums/vertical-merge.enum';
|
|
10
11
|
import * as i0 from "@angular/core";
|
|
@@ -90,7 +91,7 @@ export class NoderTableComponent extends BaseNoderComponent {
|
|
|
90
91
|
tableRow.cells[cellIndex].widthType = 'dxa';
|
|
91
92
|
return (cellWidth * this._width) / 5000; // 5000 is equal to 100% in docx units of measurement
|
|
92
93
|
}
|
|
93
|
-
return cellWidth;
|
|
94
|
+
return ScalingHelper.scale(cellWidth, this.generalProperties.scalingRatio);
|
|
94
95
|
}
|
|
95
96
|
createResizer() {
|
|
96
97
|
this.resizerEl = document.createElement('div');
|
|
@@ -164,9 +165,9 @@ export class NoderTableComponent extends BaseNoderComponent {
|
|
|
164
165
|
cellIndex: modelCellIndex,
|
|
165
166
|
columnIndex: currentTargetIndex,
|
|
166
167
|
width: this.getAdjustedWidth(this.table.rows[rowIndex], modelCellIndex, currentTargetIndex),
|
|
168
|
+
generalProperties: this.generalProperties,
|
|
167
169
|
heightChanged: this.cellHeightChanged,
|
|
168
|
-
startResizing: this.startResizing
|
|
169
|
-
properties: this.properties
|
|
170
|
+
startResizing: this.startResizing
|
|
170
171
|
});
|
|
171
172
|
const cellContentHeight = componentRef.instance.getCellContentHeight();
|
|
172
173
|
const cellData = new CellDataModel(cell, cellContentHeight, componentRef);
|
|
@@ -197,7 +198,8 @@ export class NoderTableComponent extends BaseNoderComponent {
|
|
|
197
198
|
let i = 0;
|
|
198
199
|
while (i < this.table.columns.length) {
|
|
199
200
|
const col = document.createElement('col');
|
|
200
|
-
|
|
201
|
+
const scaledWidth = ScalingHelper.scale(this.table.columns[i].width, this.generalProperties.scalingRatio);
|
|
202
|
+
col.style.width = `${scaledWidth}px`;
|
|
201
203
|
colgroup.appendChild(col);
|
|
202
204
|
i++;
|
|
203
205
|
}
|
|
@@ -389,11 +391,11 @@ export class NoderTableComponent extends BaseNoderComponent {
|
|
|
389
391
|
}
|
|
390
392
|
return sum;
|
|
391
393
|
}
|
|
392
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
393
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
394
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NoderTableComponent, deps: [{ token: i1.ComponentService }, { token: i2.EditorService }, { token: i0.ElementRef }, { token: i3.OverlayService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
395
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NoderTableComponent, selector: "app-noder-table", usesInheritance: true, ngImport: i0, template: '', isInline: true, styles: [":host{position:relative}:host::ng-deep table{position:relative;border-collapse:collapse;background:transparent;empty-cells:show;border-spacing:0;overflow:visible;table-layout:fixed}:host::ng-deep td{position:relative;vertical-align:top;border:1px solid #000;margin:0;padding:0;height:inherit}:host::ng-deep .hidden-cell{display:none;cursor:not-allowed}:host::ng-deep .resizer-border{position:absolute;border:solid .5px blue;z-index:1}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
394
396
|
}
|
|
395
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
397
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NoderTableComponent, decorators: [{
|
|
396
398
|
type: Component,
|
|
397
399
|
args: [{ selector: 'app-noder-table', template: '', changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{position:relative}:host::ng-deep table{position:relative;border-collapse:collapse;background:transparent;empty-cells:show;border-spacing:0;overflow:visible;table-layout:fixed}:host::ng-deep td{position:relative;vertical-align:top;border:1px solid #000;margin:0;padding:0;height:inherit}:host::ng-deep .hidden-cell{display:none;cursor:not-allowed}:host::ng-deep .resizer-border{position:absolute;border:solid .5px blue;z-index:1}\n"] }]
|
|
398
400
|
}], ctorParameters: () => [{ type: i1.ComponentService }, { type: i2.EditorService }, { type: i0.ElementRef }, { type: i3.OverlayService }] });
|
|
399
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvK3NoYXJlZC9lZGl0b3IvY3VzdG9tLWNvbXBvbmVudHMvdGFibGUvY29tcG9uZW50cy90YWJsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBeUIsTUFBTSxlQUFlLENBQUM7QUFFMUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQU0zRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7O0FBUTdELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxrQkFBa0I7SUFDdkQsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsT0FBcUIsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsR0FBZTtRQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUN2QixDQUFDO0lBb0JELFlBQ1ksZ0JBQWtDLEVBQ2xDLGFBQTRCLEVBQzVCLEVBQWMsRUFDZCxjQUE4QjtRQUV0QyxLQUFLLEVBQUUsQ0FBQztRQUxBLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNkLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQWQxQyxjQUFTLEdBQW1CLEVBQUUsQ0FBQztRQUkvQixXQUFNLEdBQWEsRUFBRSxDQUFDO1FBRWIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFFbEIsZUFBVSxHQUFHLENBQUMsQ0FBQztRQWdUeEIsa0JBQWEsR0FBRyxDQUFDLHFCQUFpRCxFQUFRLEVBQUU7WUFDeEUsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzVFLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUM1RSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDOUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1lBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUNqRCxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3hELENBQUMsQ0FBQztRQWdHTSxzQkFBaUIsR0FBRyxDQUFDLFFBQWdCLEVBQUUsU0FBaUIsRUFBRSxNQUFjLEVBQVEsRUFBRTtZQUN0RixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1lBRXRILElBQUksUUFBUSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsS0FBSyxFQUFFO2dCQUNoQyxPQUFPO2FBQ1Y7WUFFRCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRXhGLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDakQsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQztZQUN2QyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUNqRixNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFFN0QsSUFDSSxtQkFBbUIsR0FBRyxhQUFhO2dCQUNuQyxDQUFDLG1CQUFtQixHQUFHLGFBQWEsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsTUFBTSxJQUFJLG1CQUFtQixDQUFDLENBQUMsRUFDdkc7Z0JBQ0UsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxtQkFBbUIsSUFBSSxDQUFDO2dCQUM5QyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQztnQkFDdEQsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ3pFO1FBQ0wsQ0FBQyxDQUFDO0lBdGFGLENBQUM7SUFFUSxXQUFXO1FBQ2hCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsY0FBYyxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxVQUFVO1FBQ04sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FDcEMsSUFBSSxDQUFDLGFBQWEsRUFDbEIsSUFBSSxDQUFDLGNBQWMsRUFDbkIsSUFBSSxDQUFDLFNBQVMsRUFDZCxJQUFJLENBQUMsS0FBSyxFQUNWLElBQUksQ0FBQyxPQUFPLEVBQ1osSUFBSSxDQUFDLFNBQVMsQ0FDakIsQ0FBQztJQUNOLENBQUM7SUFFRCxjQUFjLENBQUMsR0FBVyxFQUFFLE1BQWM7UUFDdEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztJQUMzRSxDQUFDO0lBRUQsWUFBWSxDQUFDLFFBQWtCLEVBQUUsU0FBaUIsRUFBRSxpQkFBeUI7UUFDekUsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRTtZQUNqQyxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxDQUFDO1NBQzFDO1FBRUQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLEdBQUcsaUJBQWlCLENBQUM7UUFDMUIsTUFBTSxhQUFhLEdBQUcsaUJBQWlCLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxlQUFlLENBQUM7UUFFcEYsR0FBRztZQUNDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDckMsQ0FBQyxFQUFFLENBQUM7U0FDUCxRQUFRLENBQUMsR0FBRyxhQUFhLEVBQUU7UUFFNUIsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVPLGdCQUFnQixDQUFDLFFBQWtCLEVBQUUsU0FBaUIsRUFBRSxpQkFBeUI7UUFDckYsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFFNUUsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxLQUFLLEVBQUU7WUFDL0MsUUFBUSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQzVDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLHFEQUFxRDtTQUNqRztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxhQUFhO1FBQ1QsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxHQUFHLGdCQUFnQixDQUFDO1FBQzVDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3RixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzVDLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFdBQVc7UUFDUCxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQW9CLENBQUM7UUFDaEYsTUFBTSxTQUFTLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQzFELFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsVUFBVSxDQUFDLFNBQWlCLEVBQUUsV0FBbUI7UUFDN0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDbkMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBRWpCLE9BQU8sUUFBUSxHQUFHLFNBQVMsRUFBRTtZQUN6QixNQUFNLGNBQWMsR0FBRyxXQUFXLEdBQUcsUUFBUSxDQUFDO1lBQzlDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDLEVBQUUsSUFBSSxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbEYsUUFBUSxFQUFFLENBQUM7U0FDZDtRQUVELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQWdCLEVBQUUsVUFBa0IsRUFBRSxXQUFtQjtRQUNqRSxJQUFJLGdCQUFnQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxRQUFnQixFQUFFLFdBQW1CO1FBQ3JELElBQUksc0JBQXNCLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO1FBRXpCLE9BQU8sc0JBQXNCLEdBQUcsV0FBVyxFQUFFO1lBQ3pDLHNCQUFzQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLGVBQWUsSUFBSSxDQUFDLENBQUM7WUFFakcsSUFBSSxzQkFBc0IsR0FBRyxXQUFXLEVBQUU7Z0JBQ3RDLE1BQU07YUFDVDtZQUVELGdCQUFnQixFQUFFLENBQUM7U0FDdEI7UUFFRCxPQUFPLGdCQUFnQixDQUFDO0lBQzVCLENBQUM7SUFFRCxRQUFRLENBQUMsUUFBZ0IsRUFBRSxVQUFrQixFQUFFLFdBQW1CLEVBQUUsZ0JBQXdCO1FBQ3hGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNWLElBQUksa0JBQWtCLEdBQUcsV0FBVyxDQUFDO1FBRXJDLE9BQU8sQ0FBQyxHQUFHLFVBQVUsRUFBRTtZQUNuQixNQUFNLGNBQWMsR0FBRyxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7WUFFNUMsSUFBSyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsYUFBK0IsS0FBSyxhQUFhLENBQUMsS0FBSyxFQUFFO2dCQUMxRyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztnQkFDL0UsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLGVBQWUsSUFBSSxDQUFDLENBQUM7Z0JBQ25GLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLGVBQWUsQ0FBQyxDQUFDO2dCQUM5RSxrQkFBa0IsSUFBSSxLQUFLLENBQUM7Z0JBQzVCLENBQUMsRUFBRSxDQUFDO2dCQUNKLFNBQVM7YUFDWjtZQUVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ3hFLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLEVBQUUsdUJBQXVCLEVBQUU7Z0JBQ2pHLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7Z0JBQ3JELGVBQWUsRUFBRSxJQUFJLENBQUMsU0FBUztnQkFDL0IsUUFBUTtnQkFDUixTQUFTLEVBQUUsY0FBYztnQkFDekIsV0FBVyxFQUFFLGtCQUFrQjtnQkFDL0IsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLENBQUM7Z0JBQzNGLGFBQWEsRUFBRSxJQUFJLENBQUMsaUJBQWlCO2dCQUNyQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7Z0JBQ2pDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTthQUM5QixDQUFDLENBQUM7WUFDSCxNQUFNLGlCQUFpQixHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUN2RSxNQUFNLFFBQVEsR0FBRyxJQUFJLGFBQWEsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDMUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUN2RSxrQkFBa0IsRUFBRSxDQUFDO1lBRXJCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLGVBQWUsR0FBRyxDQUFDLEVBQUU7Z0JBQ3JFLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDO2dCQUNsRixJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLGtCQUFrQixFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDdkUsa0JBQWtCLElBQUksS0FBSyxDQUFDO2FBQy9CO1lBRUQsQ0FBQyxFQUFFLENBQUM7U0FDUDtJQUNMLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxRQUFnQixFQUFFLFNBQWlCLEVBQUUsVUFBa0IsRUFBRSxnQkFBK0I7UUFDdkcsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNqQyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDekUsY0FBYyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDNUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxhQUFhLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLGlCQUFpQixFQUFFLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzdILElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQ2pFO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRW5FLElBQUksWUFBWSxDQUFDLE1BQU0sRUFBRTtZQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM3QztRQUVELE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRVYsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ2xDLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQztZQUNyRCxRQUFRLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzFCLENBQUMsRUFBRSxDQUFDO1NBQ1A7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsWUFBWTtRQUNSLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDN0MsUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUU7Z0JBQzlCLEtBQUssS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUNoQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUM7b0JBQ3hFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxTQUFTLElBQUksQ0FBQztvQkFDckQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO29CQUNyQyxNQUFNO2lCQUNUO2dCQUNELEtBQUssS0FBSyxDQUFDLEtBQUs7b0JBQ1osSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDO29CQUNyRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7b0JBQ3JELE1BQU07Z0JBQ1YsT0FBTyxDQUFDLENBQUM7b0JBQ0wsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDdkMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUM7b0JBQ3BFLE1BQU0sWUFBWSxHQUFHLFlBQVksR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO29CQUN6RSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsWUFBWSxJQUFJLENBQUM7b0JBQ3hELElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQztvQkFDeEMsTUFBTTtpQkFDVDthQUNKO1NBQ0o7SUFDTCxDQUFDO0lBRUQsWUFBWSxDQUFDLFFBQWdCO1FBQ3pCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNoRSxJQUFLLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUErQixLQUFLLGFBQWEsQ0FBQyxPQUFPLEVBQUU7Z0JBQ3pGLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUU1RixJQUFJLHdCQUF3QixFQUFFO29CQUMxQixJQUFJLENBQUMsR0FBRyxRQUFRLEdBQUcsQ0FBQyxDQUFDO29CQUNyQixJQUFJLGFBQWEsR0FBRyxDQUFDLENBQUMsaUJBQWlCLENBQUM7b0JBRXhDLE9BQU8sQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUU7d0JBQ3BELGFBQWEsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQzt3QkFDMUMsQ0FBQyxFQUFFLENBQUM7cUJBQ1A7b0JBRUQsT0FBTyxhQUFhLENBQUM7aUJBQ3hCO2dCQUVELE9BQU8sQ0FBQyxDQUFDO2FBQ1o7WUFFRCxPQUFPLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxjQUFjO1FBQ1YsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzVDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3JELElBQ0ksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO29CQUN6RSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUk7b0JBQ3ZFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQStCLEtBQUssYUFBYSxDQUFDLEtBQUssRUFDaEg7b0JBQ0UsU0FBUztpQkFDWjtnQkFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztnQkFDaEgsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlO29CQUNqRCxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7Z0JBQzFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQzdCO1NBQ0o7SUFDTCxDQUFDO0lBRUQsY0FBYyxDQUFDLFFBQWdCLEVBQUUsaUJBQXlCO1FBQ3RELElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7UUFFbkUsSUFDSyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQStCO1lBQzdHLGFBQWEsQ0FBQyxPQUFPLEVBQ3ZCO1lBQ0UsT0FBTztTQUNWO1FBRUQsS0FBSyxJQUFJLENBQUMsR0FBRyxRQUFRLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN2RCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUMsSUFBSSxFQUFFO2dCQUM1RyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUNwRTtpQkFBTTtnQkFDSCxNQUFNO2FBQ1Q7U0FDSjtJQUNMLENBQUM7SUFFRCxjQUFjO1FBQ1YsSUFBSSxhQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztRQUVuQixLQUFLLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDNUIsVUFBVSxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUM7WUFFekIsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFO2dCQUNsRSxhQUFhLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQzthQUNwQztTQUNKO1FBRUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLEdBQUcsYUFBYSxDQUFDO0lBQzlDLENBQUM7SUFXRCxZQUFZLENBQ1IsZUFBdUIsRUFDdkIsd0JBQWdDLEVBQ2hDLGFBQXFCO1FBRXJCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVwQixJQUFJLGVBQWUsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2hDLE9BQU8sRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQztTQUN0RTtRQUVELElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFO1lBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDaEY7UUFFRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxFQUFFLHdCQUF3QixFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFTyxVQUFVLENBQ2QsZUFBdUIsRUFDdkIsd0JBQWdDLEVBQ2hDLGFBQXFCO1FBRXJCLElBQUksVUFBVSxHQUFHLENBQUMsRUFDZCxxQkFBcUIsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUNuQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLE9BQU8sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQ3JDLElBQUksRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxlQUFlLENBQUMsQ0FBQztZQUNoRixRQUFRLEdBQUcsS0FBSyxDQUFDO1lBQ2pCLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO2dCQUNqQyxNQUFNO2FBQ1Q7WUFFRCxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVM7aUJBQ3RCLEtBQUssQ0FBQyxLQUFLLENBQUM7aUJBQ1osR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztpQkFDbEIsTUFBTSxDQUFDLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsVUFBVSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFdkUsTUFBTSxjQUFjLEdBQUcsd0JBQXdCLEdBQUcsZUFBZSxHQUFHLFVBQVUsQ0FBQztZQUMvRSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsQ0FBQztZQUNoRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM3QyxxQkFBcUIsSUFBSSxjQUFjLENBQUM7WUFDeEMsZUFBZSxHQUFHLGFBQWEsQ0FBQztTQUNuQztRQUVELE9BQU87WUFDSCxXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQy9CLFdBQVcsRUFBRSxxQkFBcUI7WUFDbEMsVUFBVTtTQUNiLENBQUM7SUFDTixDQUFDO0lBRU8sbUJBQW1CLENBQUMsVUFBa0IsRUFBRSxNQUFjO1FBQzFELElBQUksVUFBVSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQ3JDLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDO1NBQzFEO1FBRUQsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFDakUsQ0FBQyxHQUFHLFVBQVUsQ0FBQztRQUVuQixPQUFPLFdBQVcsR0FBRyxNQUFNLEVBQUU7WUFDekIsV0FBVyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQy9ELENBQUMsRUFBRSxDQUFDO1NBQ1A7UUFFRCxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDN0UsQ0FBQztJQUVPLGNBQWMsQ0FBQyxLQUFhLEVBQUUsTUFBYztRQUNoRCxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUM7UUFDdEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRU8sWUFBWTtRQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNqQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQzdDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3BELEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNmO0lBQ0wsQ0FBQztJQUVTLG1CQUFtQjtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNmLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU8sYUFBYTtRQUNqQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDN0YsQ0FBQztJQTRCTyxnQkFBZ0IsQ0FBQyxRQUFnQjtRQUNyQyxPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFTywwQkFBMEIsQ0FBQyxHQUF3QjtRQUN2RCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVPLG1CQUFtQixDQUFDLFFBQWdCO1FBQ3hDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLEtBQUssTUFBTSxPQUFPLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUMvQixJQUFJLFFBQVEsR0FBRyxPQUFPLEVBQUU7Z0JBQ3BCLE1BQU07YUFDVDtZQUVELEtBQUssR0FBRyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1NBQ3ZCO1FBRUQsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRU8sMEJBQTBCLENBQUMsUUFBZ0I7UUFDL0MsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN4QyxLQUFLLE1BQU0sT0FBTyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDL0IsSUFBSSxRQUFRLEdBQUcsT0FBTyxFQUFFO2dCQUNwQixRQUFRLEdBQUcsT0FBTyxDQUFDO2dCQUNuQixNQUFNO2FBQ1Q7WUFFRCxVQUFVLEdBQUcsT0FBTyxHQUFHLENBQUMsQ0FBQztTQUM1QjtRQUVELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVPLGFBQWEsQ0FBQyxLQUFhLEVBQUUsR0FBVztRQUM1QyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDWixLQUFLLElBQUksQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzlCLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7U0FDNUM7UUFFRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7OEdBcGZRLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDhFQUpsQixFQUFFOzsyRkFJSCxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0ksaUJBQWlCLFlBQ2pCLEVBQUUsbUJBRUssdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCYXNlTm9kZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9zaGFyZWQvYWJzdHJhY3QvYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2VsbERhdGFNb2RlbCB9IGZyb20gJy4uL21vZGVscy9jZWxsLWRhdGEubW9kZWwnO1xuaW1wb3J0IHsgQ2VsbFJlc2l6ZXIgfSBmcm9tICcuLi9jZWxsLXJlc2l6ZXIvY2VsbC1yZXNpemVyJztcbmltcG9ydCB7IENlbGxSZXNpemVyUGFyYW1ldGVyc01vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2NlbGwtcmVzaXplci1wYXJhbWV0ZXJzLm1vZGVsJztcbmltcG9ydCB7IENvbXBvbmVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2VydmljZXMvY29tcG9uZW50L2NvbXBvbmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEVkaXRTZXNzaW9uIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9lZGl0LnNlc3Npb24nO1xuaW1wb3J0IHsgRWRpdG9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2ludGVyYWN0aW9uL2VkaXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IEdlbmVyYWxQcm9wZXJ0aWVzTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9leGVjdXRpb24vbW9kZWxzL2dlbmVyYWwtcHJvcGVydGllcy5tb2RlbCc7XG5pbXBvcnQgeyBIUnVsZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvZW51bXMvaHJ1bGUuZW51bSc7XG5pbXBvcnQgeyBOb2RlclRhYmxlQ2VsbENvbXBvbmVudCB9IGZyb20gJy4vdGFibGUtY2VsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3ZlcmxheVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2VydmljZXMvb3ZlcmxheS9vdmVybGF5LnNlcnZpY2UnO1xuaW1wb3J0IHsgUm93RGF0YU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL3Jvdy1kYXRhLm1vZGVsJztcbmltcG9ydCB7IFJvd01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9yb3cubW9kZWwnO1xuaW1wb3J0IHsgVGFibGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvdGFibGUubW9kZWwnO1xuaW1wb3J0IHsgVGFibGVTZWxlY3Rpb24gfSBmcm9tICcuLi9zZWxlY3Rpb24vdGFibGUtc2VsZWN0aW9uJztcbmltcG9ydCB7IFZlcnRpY2FsTWVyZ2UgfSBmcm9tICcuLi9lbnVtcy92ZXJ0aWNhbC1tZXJnZS5lbnVtJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtbm9kZXItdGFibGUnLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBzdHlsZVVybHM6IFsnLi90YWJsZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE5vZGVyVGFibGVDb21wb25lbnQgZXh0ZW5kcyBCYXNlTm9kZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIGdldCB0YWJsZSgpOiBUYWJsZU1vZGVsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGVudCBhcyBUYWJsZU1vZGVsO1xuICAgIH1cbiAgICBzZXQgdGFibGUodmFsOiBUYWJsZU1vZGVsKSB7XG4gICAgICAgIHRoaXMuY29udGVudCA9IHZhbDtcbiAgICB9XG5cbiAgICB0YWJsZVNlbGVjdGlvbjogVGFibGVTZWxlY3Rpb247XG5cbiAgICB0YWJsZUVsOiBIVE1MVGFibGVFbGVtZW50O1xuXG4gICAgcmVzaXplcjogQ2VsbFJlc2l6ZXI7XG5cbiAgICByZXNpemVyRWw6IEhUTUxEaXZFbGVtZW50O1xuXG4gICAgcm93TWF0cml4OiBSb3dEYXRhTW9kZWxbXSA9IFtdO1xuXG4gICAgcHJvcGVydGllczogR2VuZXJhbFByb3BlcnRpZXNNb2RlbDtcblxuICAgIHNwbGl0czogbnVtYmVyW10gPSBbXTtcblxuICAgIHJlYWRvbmx5IG1pblJvd0hlaWdodCA9IDE5O1xuXG4gICAgcmVhZG9ubHkgYm9yZGVyU2l6ZSA9IDE7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjb21wb25lbnRTZXJ2aWNlOiBDb21wb25lbnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGVkaXRvclNlcnZpY2U6IEVkaXRvclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgb3ZlcmxheVNlcnZpY2U6IE92ZXJsYXlTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgICAgIHRoaXMudGFibGVTZWxlY3Rpb24/LmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNyZWF0ZVRhYmxlKCk7XG4gICAgICAgIHRoaXMuY2FsY3VsYXRlUHJvcGVydGllcygpO1xuICAgICAgICB0aGlzLmNyZWF0ZVJlc2l6ZXIoKTtcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMucmVzaXplckVsKTtcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMudGFibGVFbCk7XG4gICAgICAgIHRoaXMudGFibGVTZWxlY3Rpb24gPSBuZXcgVGFibGVTZWxlY3Rpb24oXG4gICAgICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UsXG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlTZXJ2aWNlLFxuICAgICAgICAgICAgdGhpcy5yb3dNYXRyaXgsXG4gICAgICAgICAgICB0aGlzLnRhYmxlLFxuICAgICAgICAgICAgdGhpcy50YWJsZUVsLFxuICAgICAgICAgICAgdGhpcy5zZXNzaW9uSWRcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRDZWxsU2Vzc2lvbihyb3c6IG51bWJlciwgY29sdW1uOiBudW1iZXIpOiBFZGl0U2Vzc2lvbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJvd01hdHJpeFtyb3ddLmNlbGxzW2NvbHVtbl0uY29tcG9uZW50UmVmLmluc3RhbmNlLnNlc3Npb247XG4gICAgfVxuXG4gICAgZ2V0Q2VsbFdpZHRoKHRhYmxlUm93OiBSb3dNb2RlbCwgY2VsbEluZGV4OiBudW1iZXIsIGFic29sdXRlQ2VsbEluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBpZiAodGFibGVSb3cuY2VsbHNbY2VsbEluZGV4XS53aWR0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHRhYmxlUm93LmNlbGxzW2NlbGxJbmRleF0ud2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgd2lkdGggPSAwO1xuICAgICAgICBsZXQgaSA9IGFic29sdXRlQ2VsbEluZGV4O1xuICAgICAgICBjb25zdCBjZWxsU3BhbkNvdW50ID0gYWJzb2x1dGVDZWxsSW5kZXggKyB0YWJsZVJvdy5jZWxsc1tjZWxsSW5kZXhdLmhvcml6b250YWxNZXJnZTtcblxuICAgICAgICBkbyB7XG4gICAgICAgICAgICB3aWR0aCArPSB0aGlzLnRhYmxlLmNvbHVtbnNbaV0ud2lkdGg7XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH0gd2hpbGUgKGkgPCBjZWxsU3BhbkNvdW50KTtcblxuICAgICAgICByZXR1cm4gd2lkdGg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRBZGp1c3RlZFdpZHRoKHRhYmxlUm93OiBSb3dNb2RlbCwgY2VsbEluZGV4OiBudW1iZXIsIGFic29sdXRlQ2VsbEluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBjZWxsV2lkdGggPSB0aGlzLmdldENlbGxXaWR0aCh0YWJsZVJvdywgY2VsbEluZGV4LCBhYnNvbHV0ZUNlbGxJbmRleCk7XG5cbiAgICAgICAgaWYgKHRhYmxlUm93LmNlbGxzW2NlbGxJbmRleF0ud2lkdGhUeXBlID09PSAncGN0Jykge1xuICAgICAgICAgICAgdGFibGVSb3cuY2VsbHNbY2VsbEluZGV4XS53aWR0aFR5cGUgPSAnZHhhJztcbiAgICAgICAgICAgIHJldHVybiAoY2VsbFdpZHRoICogdGhpcy5fd2lkdGgpIC8gNTAwMDsgLy8gNTAwMCBpcyBlcXVhbCB0byAxMDAlIGluIGRvY3ggdW5pdHMgb2YgbWVhc3VyZW1lbnRcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjZWxsV2lkdGg7XG4gICAgfVxuXG4gICAgY3JlYXRlUmVzaXplcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZXNpemVyRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5yZXNpemVyRWwuY2xhc3NOYW1lID0gJ3Jlc2l6ZXItYm9yZGVyJztcbiAgICAgICAgdGhpcy5yZXNpemVyRWwuc2V0QXR0cmlidXRlKCdzdHlsZScsIGBkaXNwbGF5Om5vbmU7YCk7XG4gICAgICAgIHRoaXMucmVzaXplciA9IG5ldyBDZWxsUmVzaXplcih0aGlzLnRhYmxlLCB0aGlzLnRhYmxlRWwsIHRoaXMuZWRpdG9yU2VydmljZSwgdGhpcy5yZXNpemVyRWwpO1xuICAgICAgICB0aGlzLnJlc2l6ZXIuc2Vzc2lvbklkID0gdGhpcy5zZXNzaW9uSWQ7XG4gICAgfVxuXG4gICAgY3JlYXRlVGFibGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGFibGVFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RhYmxlJyk7XG4gICAgICAgIHRoaXMuc2V0Q29sZ3JvdXAoKTtcbiAgICAgICAgdGhpcy5pbnNlcnRSb3dzKHRoaXMudGFibGUucm93cy5sZW5ndGgsIDApO1xuICAgICAgICB0aGlzLmZpbGxUYWJsZUNlbGxzKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlVGFibGUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNlbGxzID0gW10uY29uY2F0KC4uLnRoaXMucm93TWF0cml4Lm1hcCh4ID0+IHguY2VsbHMpKSBhcyBDZWxsRGF0YU1vZGVsW107XG4gICAgICAgIGNvbnN0IHVuaXFDZWxscyA9IG5ldyBTZXQoY2VsbHMubWFwKHggPT4geC5jb21wb25lbnRSZWYpKTtcbiAgICAgICAgdW5pcUNlbGxzLmZvckVhY2goeCA9PiB0aGlzLmNvbXBvbmVudFNlcnZpY2UucmVtb3ZlQ29tcG9uZW50KHgpKTtcbiAgICAgICAgdGhpcy50YWJsZVNlbGVjdGlvbi5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMucm93TWF0cml4ID0gW107XG4gICAgICAgIHRoaXMudGFibGVFbC5yZW1vdmUoKTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplKCk7XG4gICAgfVxuXG4gICAgaW5zZXJ0Um93cyhyb3dzQ291bnQ6IG51bWJlciwgdGFyZ2V0SW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl93aWR0aCA9IHRoaXMuZ2V0VGFibGVXaWR0aCgpO1xuICAgICAgICBsZXQgcm93SW5kZXggPSAwO1xuXG4gICAgICAgIHdoaWxlIChyb3dJbmRleCA8IHJvd3NDb3VudCkge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0Um93SW5kZXggPSB0YXJnZXRJbmRleCArIHJvd0luZGV4O1xuICAgICAgICAgICAgY29uc3Qgcm93ID0gdGhpcy50YWJsZUVsLmluc2VydFJvdyh0YXJnZXRSb3dJbmRleCk7XG4gICAgICAgICAgICB0aGlzLnJvd01hdHJpeC5zcGxpY2UodGFyZ2V0Um93SW5kZXgsIDAsIG5ldyBSb3dEYXRhTW9kZWwocm93LCAwLCBbXSkpO1xuICAgICAgICAgICAgdGhpcy5pbnNlcnRDZWxscyh0YXJnZXRSb3dJbmRleCwgdGhpcy50YWJsZS5yb3dzW3RhcmdldFJvd0luZGV4XS5jZWxscy5sZW5ndGgsIDApO1xuICAgICAgICAgICAgcm93SW5kZXgrKztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZmlsbFRhYmxlUm93KCk7XG4gICAgfVxuXG4gICAgaW5zZXJ0Q2VsbHMocm93SW5kZXg6IG51bWJlciwgY2VsbHNDb3VudDogbnVtYmVyLCB0YXJnZXRJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGxldCBtb2RlbFRhcmdldEluZGV4ID0gdGhpcy5nZXRNb2RlbFRhcmdldEluZGV4KHJvd0luZGV4LCB0YXJnZXRJbmRleCk7XG4gICAgICAgIHRoaXMuYWRkQ2VsbHMocm93SW5kZXgsIGNlbGxzQ291bnQsIHRhcmdldEluZGV4LCBtb2RlbFRhcmdldEluZGV4KTtcbiAgICB9XG5cbiAgICBnZXRNb2RlbFRhcmdldEluZGV4KHJvd0luZGV4OiBudW1iZXIsIHRhcmdldEluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBsZXQgYWJzb2x1dGVNb2RlbENlbGxDb3VudCA9IDA7XG4gICAgICAgIGxldCBtb2RlbFRhcmdldEluZGV4ID0gMDtcblxuICAgICAgICB3aGlsZSAoYWJzb2x1dGVNb2RlbENlbGxDb3VudCA8IHRhcmdldEluZGV4KSB7XG4gICAgICAgICAgICBhYnNvbHV0ZU1vZGVsQ2VsbENvdW50ICs9IHRoaXMudGFibGUucm93c1tyb3dJbmRleF0uY2VsbHNbbW9kZWxUYXJnZXRJbmRleF0uaG9yaXpvbnRhbE1lcmdlID8/IDE7XG5cbiAgICAgICAgICAgIGlmIChhYnNvbHV0ZU1vZGVsQ2VsbENvdW50ID4gdGFyZ2V0SW5kZXgpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbW9kZWxUYXJnZXRJbmRleCsrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1vZGVsVGFyZ2V0SW5kZXg7XG4gICAgfVxuXG4gICAgYWRkQ2VsbHMocm93SW5kZXg6IG51bWJlciwgY2VsbHNDb3VudDogbnVtYmVyLCB0YXJnZXRJbmRleDogbnVtYmVyLCBtb2RlbFRhcmdldEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICBsZXQgY3VycmVudFRhcmdldEluZGV4ID0gdGFyZ2V0SW5kZXg7XG5cbiAgICAgICAgd2hpbGUgKGkgPCBjZWxsc0NvdW50KSB7XG4gICAgICAgICAgICBjb25zdCBtb2RlbENlbGxJbmRleCA9IG1vZGVsVGFyZ2V0SW5kZXggKyBpO1xuXG4gICAgICAgICAgICBpZiAoKHRoaXMudGFibGUucm93c1tyb3dJbmRleF0uY2VsbHNbbW9kZWxDZWxsSW5kZXhdLnZlcnRpY2FsTWVyZ2UgYXMgVmVydGljYWxNZXJnZSkgPT09IFZlcnRpY2FsTWVyZ2UuTWVyZ2UpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmhlcml0Q2VsbERhdGEgPSB0aGlzLnJvd01hdHJpeFtyb3dJbmRleCAtIDFdLmNlbGxzW2N1cnJlbnRUYXJnZXRJbmRleF07XG4gICAgICAgICAgICAgICAgY29uc3QgY291bnQgPSB0aGlzLnRhYmxlLnJvd3Nbcm93SW5kZXhdLmNlbGxzW21vZGVsQ2VsbEluZGV4XS5ob3Jpem9udGFsTWVyZ2UgPz8gMTtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZEFkZGl0aW9uYWxDZWxscyhyb3dJbmRleCwgY3VycmVudFRhcmdldEluZGV4LCBjb3VudCwgaW5oZXJpdENlbGxEYXRhKTtcbiAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0SW5kZXggKz0gY291bnQ7XG4gICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBjZWxsID0gdGhpcy50YWJsZUVsLnJvd3Nbcm93SW5kZXhdLmluc2VydENlbGwoY3VycmVudFRhcmdldEluZGV4KTtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuY29tcG9uZW50U2VydmljZS5nZW5lcmF0ZUFuZEF0dGFjaENvbXBvbmVudChjZWxsLCBOb2RlclRhYmxlQ2VsbENvbXBvbmVudCwge1xuICAgICAgICAgICAgICAgIHRhYmxlOiB0aGlzLnRhYmxlLFxuICAgICAgICAgICAgICAgIGNlbGw6IHRoaXMudGFibGUucm93c1tyb3dJbmRleF0uY2VsbHNbbW9kZWxDZWxsSW5kZXhdLFxuICAgICAgICAgICAgICAgIHBhcmVudFNlc3Npb25JZDogdGhpcy5zZXNzaW9uSWQsXG4gICAgICAgICAgICAgICAgcm93SW5kZXgsXG4gICAgICAgICAgICAgICAgY2VsbEluZGV4OiBtb2RlbENlbGxJbmRleCxcbiAgICAgICAgICAgICAgICBjb2x1bW5JbmRleDogY3VycmVudFRhcmdldEluZGV4LFxuICAgICAgICAgICAgICAgIHdpZHRoOiB0aGlzLmdldEFkanVzdGVkV2lkdGgodGhpcy50YWJsZS5yb3dzW3Jvd0luZGV4XSwgbW9kZWxDZWxsSW5kZXgsIGN1cnJlbnRUYXJnZXRJbmRleCksXG4gICAgICAgICAgICAgICAgaGVpZ2h0Q2hhbmdlZDogdGhpcy5jZWxsSGVpZ2h0Q2hhbmdlZCxcbiAgICAgICAgICAgICAgICBzdGFydFJlc2l6aW5nOiB0aGlzLnN0YXJ0UmVzaXppbmcsXG4gICAgICAgICAgICAgICAgcHJvcGVydGllczogdGhpcy5wcm9wZXJ0aWVzXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IGNlbGxDb250ZW50SGVpZ2h0ID0gY29tcG9uZW50UmVmLmluc3RhbmNlLmdldENlbGxDb250ZW50SGVpZ2h0KCk7XG4gICAgICAgICAgICBjb25zdCBjZWxsRGF0YSA9IG5ldyBDZWxsRGF0YU1vZGVsKGNlbGwsIGNlbGxDb250ZW50SGVpZ2h0LCBjb21wb25lbnRSZWYpO1xuICAgICAgICAgICAgdGhpcy5yb3dNYXRyaXhbcm93SW5kZXhdLmNlbGxzLnNwbGljZShjdXJyZW50VGFyZ2V0SW5kZXgsIDAsIGNlbGxEYXRhKTtcbiAgICAgICAgICAgIGN1cnJlbnRUYXJnZXRJbmRleCsrO1xuXG4gICAgICAgICAgICBpZiAodGhpcy50YWJsZS5yb3dzW3Jvd0luZGV4XS5jZWxsc1ttb2RlbENlbGxJbmRleF0uaG9yaXpvbnRhbE1lcmdlID4gMSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvdW50ID0gdGhpcy50YWJsZS5yb3dzW3Jvd0luZGV4XS5jZWxsc1ttb2RlbENlbGxJbmRleF0uaG9yaXpvbnRhbE1lcmdlIC0gMTtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZEFkZGl0aW9uYWxDZWxscyhyb3dJbmRleCwgY3VycmVudFRhcmdldEluZGV4LCBjb3VudCwgY2VsbERhdGEpO1xuICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXRJbmRleCArPSBjb3VudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaSsrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWRkQWRkaXRpb25hbENlbGxzKHJvd0luZGV4OiBudW1iZXIsIGNlbGxJbmRleDogbnVtYmVyLCBjZWxsc0NvdW50OiBudW1iZXIsIG9yaWdpbmFsQ2VsbERhdGE6IENlbGxEYXRhTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBjZWxsc0NvdW50OyBqKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGFkZGl0aW9uYWxDZWxsID0gdGhpcy50YWJsZUVsLnJvd3Nbcm93SW5kZXhdLmluc2VydENlbGwoY2VsbEluZGV4KTtcbiAgICAgICAgICAgIGFkZGl0aW9uYWxDZWxsLmNsYXNzTGlzdC5hZGQoJ2hpZGRlbi1jZWxsJyk7XG4gICAgICAgICAgICBjb25zdCBjZWxsRGF0YSA9IG5ldyBDZWxsRGF0YU1vZGVsKG9yaWdpbmFsQ2VsbERhdGEuY2VsbCwgb3JpZ2luYWxDZWxsRGF0YS5jZWxsQ29udGVudEhlaWdodCwgb3JpZ2luYWxDZWxsRGF0YS5jb21wb25lbnRSZWYpO1xuICAgICAgICAgICAgdGhpcy5yb3dNYXRyaXhbcm93SW5kZXhdLmNlbGxzLnNwbGljZShjZWxsSW5kZXgsIDAsIGNlbGxEYXRhKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldENvbGdyb3VwKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBvbGRDb2xHcm91cHMgPSB0aGlzLnRhYmxlRWwuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2NvbGdyb3VwJyk7XG5cbiAgICAgICAgaWYgKG9sZENvbEdyb3Vwcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMudGFibGVFbC5yZW1vdmVDaGlsZChvbGRDb2xHcm91cHNbMF0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29sZ3JvdXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjb2xncm91cCcpO1xuICAgICAgICBsZXQgaSA9IDA7XG5cbiAgICAgICAgd2hpbGUgKGkgPCB0aGlzLnRhYmxlLmNvbHVtbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBjb2wgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjb2wnKTtcbiAgICAgICAgICAgIGNvbC5zdHlsZS53aWR0aCA9IGAke3RoaXMudGFibGUuY29sdW1uc1tpXS53aWR0aH1weGA7XG4gICAgICAgICAgICBjb2xncm91cC5hcHBlbmRDaGlsZChjb2wpO1xuICAgICAgICAgICAgaSsrO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50YWJsZUVsLmluc2VydEFkamFjZW50RWxlbWVudCgnYWZ0ZXJiZWdpbicsIGNvbGdyb3VwKTtcbiAgICB9XG5cbiAgICBmaWxsVGFibGVSb3coKTogdm9pZCB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50YWJsZS5yb3dzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMudGFibGUucm93c1tpXS5oUnVsZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgSFJ1bGUuQXRMZWFzdDoge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByb3dIZWlnaHQgPSB0aGlzLmdldFJvd0hlaWdodChpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJsZUVsLnJvd3NbaV0uc3R5bGUubWluSGVpZ2h0ID0gYCR7dGhpcy50YWJsZS5yb3dzW2ldLmhlaWdodH1weGA7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGVFbC5yb3dzW2ldLnN0eWxlLmhlaWdodCA9IGAke3Jvd0hlaWdodH1weGA7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm93TWF0cml4W2ldLmhlaWdodCA9IHJvd0hlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgSFJ1bGUuRXhhY3Q6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGVFbC5yb3dzW2ldLnN0eWxlLmhlaWdodCA9IGAke3RoaXMudGFibGUucm93c1tpXS5oZWlnaHR9cHhgO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvd01hdHJpeFtpXS5oZWlnaHQgPSB0aGlzLnRhYmxlLnJvd3NbaV0uaGVpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvd0hlaWdodCA9IHRoaXMuZ2V0Um93SGVpZ2h0KGkpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtaW5Sb3dIZWlnaHQgPSB0aGlzLnRhYmxlLnJvd3NbaV0uaGVpZ2h0ID8/IHRoaXMubWluUm93SGVpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHRIZWlnaHQgPSBtaW5Sb3dIZWlnaHQgPiByb3dIZWlnaHQgPyBtaW5Sb3dIZWlnaHQgOiByb3dIZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGVFbC5yb3dzW2ldLnN0eWxlLmhlaWdodCA9IGAke3Jlc3VsdEhlaWdodH1weGA7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm93TWF0cml4W2ldLmhlaWdodCA9IHJlc3VsdEhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0Um93SGVpZ2h0KHJvd0luZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBjZWxsSGVpZ2h0cyA9IHRoaXMucm93TWF0cml4W3Jvd0luZGV4XS5jZWxscy5tYXAoKHgsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpZiAoKHguY29tcG9uZW50UmVmLmluc3RhbmNlLmNlbGwudmVydGljYWxNZXJnZSBhcyBWZXJ0aWNhbE1lcmdlKSA9PT0gVmVydGljYWxNZXJnZS5SZXN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNMYXN0VmVydGljYWxNZXJnZWRDZWxsID0geC5jZWxsICE9PSB0aGlzLnJvd01hdHJpeFtyb3dJbmRleCArIDFdPy5jZWxsc1tpbmRleF0uY2VsbDtcblxuICAgICAgICAgICAgICAgIGlmIChpc0xhc3RWZXJ0aWNhbE1lcmdlZENlbGwpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGkgPSByb3dJbmRleCAtIDE7XG4gICAgICAgICAgICAgICAgICAgIGxldCBjdXJyZW50SGVpZ2h0ID0geC5jZWxsQ29udGVudEhlaWdodDtcblxuICAgICAgICAgICAgICAgICAgICB3aGlsZSAoeC5jZWxsID09PSB0aGlzLnJvd01hdHJpeFtpXT8uY2VsbHNbaW5kZXhdLmNlbGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRIZWlnaHQgLT0gdGhpcy5yb3dNYXRyaXhbaV0uaGVpZ2h0O1xuICAgICAgICAgICAgICAgICAgICAgICAgaS0tO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRIZWlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB4LmNlbGxDb250ZW50SGVpZ2h0O1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gTWF0aC5tYXgoLi4uY2VsbEhlaWdodHMpO1xuICAgIH1cblxuICAgIGZpbGxUYWJsZUNlbGxzKCk6IHZvaWQge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucm93TWF0cml4Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMucm93TWF0cml4W2ldLmNlbGxzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvd01hdHJpeFtpIC0gMV0/LmNlbGxzW2pdPy5jZWxsID09PSB0aGlzLnJvd01hdHJpeFtpXS5jZWxsc1tqXS5jZWxsIHx8XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm93TWF0cml4W2ldLmNlbGxzW2pdLmNlbGwgPT09IHRoaXMucm93TWF0cml4W2ldLmNlbGxzW2ogLSAxXT8uY2VsbCB8fFxuICAgICAgICAgICAgICAgICAgICAodGhpcy5yb3dNYXRyaXhbaV0uY2VsbHNbal0uY29tcG9uZW50UmVmLmluc3RhbmNlLmNlbGwudmVydGljYWxNZXJnZSBhcyBWZXJ0aWNhbE1lcmdlKSA9PT0gVmVydGljYWxNZXJnZS5NZXJnZVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLnJvd01hdHJpeFtpXS5jZWxsc1tqXS5jZWxsLmNvbFNwYW4gPSB0aGlzLnJvd01hdHJpeFtpXS5jZWxsc1tqXS5jb21wb25lbnRSZWYuaW5zdGFuY2UuY2VsbC5ob3Jpem9udGFsTWVyZ2U7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3dNYXRyaXhbaV0uY2VsbHNbal0uY2VsbC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvd01hdHJpeFtpXS5jZWxsc1tqXS5jb21wb25lbnRSZWYuaW5zdGFuY2UuY2VsbC5iYWNrZ3JvdW5kQ29sb3I7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRDZWxsUm93U3BhbihpLCBqKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldENlbGxSb3dTcGFuKHJvd0luZGV4OiBudW1iZXIsIGFic29sdXRlQ2VsbEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yb3dNYXRyaXhbcm93SW5kZXhdLmNlbGxzW2Fic29sdXRlQ2VsbEluZGV4XS5jZWxsLnJvd1NwYW4gPSAxO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICh0aGlzLnJvd01hdHJpeFtyb3dJbmRleF0uY2VsbHNbYWJzb2x1dGVDZWxsSW5kZXhdLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5jZWxsLnZlcnRpY2FsTWVyZ2UgYXMgVmVydGljYWxNZXJnZSkgIT09XG4gICAgICAgICAgICBWZXJ0aWNhbE1lcmdlLlJlc3RhcnRcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGxldCBpID0gcm93SW5kZXggKyAxOyBpIDwgdGhpcy5yb3dNYXRyaXgubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnJvd01hdHJpeFtpXS5jZWxsc1thYnNvbHV0ZUNlbGxJbmRleF0uY2VsbCA9PT0gdGhpcy5yb3dNYXRyaXhbcm93SW5kZXhdLmNlbGxzW2Fic29sdXRlQ2VsbEluZGV4XS5jZWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3dNYXRyaXhbcm93SW5kZXhdLmNlbGxzW2Fic29sdXRlQ2VsbEluZGV4XS5jZWxsLnJvd1NwYW4rKztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRUYWJsZUhlaWdodCgpOiB2b2lkIHtcbiAgICAgICAgbGV0IGJvcmRlcnNIZWlnaHQgPSAwO1xuICAgICAgICBsZXQgcm93c0hlaWdodCA9IDE7XG5cbiAgICAgICAgZm9yIChsZXQgcm93IG9mIHRoaXMucm93TWF0cml4KSB7XG4gICAgICAgICAgICByb3dzSGVpZ2h0ICs9IHJvdy5oZWlnaHQ7XG5cbiAgICAgICAgICAgIGlmIChyb3cuY2VsbHMuc29tZSh4ID0+ICF4LmNvbXBvbmVudFJlZi5pbnN0YW5jZS5jZWxsLnZlcnRpY2FsTWVyZ2UpKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyc0hlaWdodCArPSB0aGlzLmJvcmRlclNpemU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9oZWlnaHQgPSByb3dzSGVpZ2h0ICsgYm9yZGVyc0hlaWdodDtcbiAgICB9XG5cbiAgICBzdGFydFJlc2l6aW5nID0gKGNlbGxSZXNpemVyUGFyYW1ldGVyczogQ2VsbFJlc2l6ZXJQYXJhbWV0ZXJzTW9kZWwpOiB2b2lkID0+IHtcbiAgICAgICAgY29uc3Qgc3BsaXRSb3dJbmRleCA9IHRoaXMuZ2V0U3BsaXRSb3dJbmRleChjZWxsUmVzaXplclBhcmFtZXRlcnMucm93SW5kZXgpO1xuICAgICAgICB0aGlzLnJlc2l6ZXIucmVzaXplckhlaWdodCA9IHRoaXMuZ2V0Um93c0hlaWdodEJldHdlZW5TcGxpdHMoc3BsaXRSb3dJbmRleCk7XG4gICAgICAgIHRoaXMucmVzaXplci5zdGFydFkgPSB0aGlzLmdldFJvd3NIZWlnaHRCZWZvcmUoc3BsaXRSb3dJbmRleCk7XG4gICAgICAgIHRoaXMucmVzaXplci5zcGxpdFJvd0luZGV4ID0gc3BsaXRSb3dJbmRleDtcbiAgICAgICAgdGhpcy5yZXNpemVyLnRhYmxlSW5zZXJ0SW5kZXggPSB0aGlzLmluc2VydEluZGV4O1xuICAgICAgICB0aGlzLnJlc2l6ZXIub25TdGFydFJlc2l6aW5nKGNlbGxSZXNpemVyUGFyYW1ldGVycyk7XG4gICAgfTtcblxuICAgIHByb2Nlc3NTcGxpdChcbiAgICAgICAgbGVmdFNwYWNlT25QYWdlOiBudW1iZXIsXG4gICAgICAgIHNwYWNlQmV0d2VlblBhZ2VzQ29udGVudDogbnVtYmVyLFxuICAgICAgICBjb250ZW50SGVpZ2h0OiBudW1iZXJcbiAgICApOiB7IHNwbGl0c0NvdW50OiBudW1iZXI7IHRhYmxlSGVpZ2h0OiBudW1iZXI7IGxlZnRIZWlnaHQ6IG51bWJlciB9IHtcbiAgICAgICAgdGhpcy5yZW1vdmVTcGxpdHMoKTtcblxuICAgICAgICBpZiAobGVmdFNwYWNlT25QYWdlID49IHRoaXMuaGVpZ2h0KSB7XG4gICAgICAgICAgICByZXR1cm4geyBzcGxpdHNDb3VudDogMCwgdGFibGVIZWlnaHQ6IHRoaXMuaGVpZ2h0LCBsZWZ0SGVpZ2h0OiAwIH07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGVmdFNwYWNlT25QYWdlIDwgdGhpcy5yb3dNYXRyaXhbMF0uaGVpZ2h0KSB7XG4gICAgICAgICAgICByZXR1cm4geyBzcGxpdHNDb3VudDogMSwgdGFibGVIZWlnaHQ6IHRoaXMuaGVpZ2h0LCBsZWZ0SGVpZ2h0OiB0aGlzLmhlaWdodCB9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc3BsaXRUYWJsZShsZWZ0U3BhY2VPblBhZ2UsIHNwYWNlQmV0d2VlblBhZ2VzQ29udGVudCwgY29udGVudEhlaWdodCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzcGxpdFRhYmxlKFxuICAgICAgICBsZWZ0U3BhY2VPblBhZ2U6IG51bWJlcixcbiAgICAgICAgc3BhY2VCZXR3ZWVuUGFnZXNDb250ZW50OiBudW1iZXIsXG4gICAgICAgIGNvbnRlbnRIZWlnaHQ6IG51bWJlclxuICAgICk6IHsgc3BsaXRzQ291bnQ6IG51bWJlcjsgdGFibGVIZWlnaHQ6IG51bWJlcjsgbGVmdEhlaWdodDogbnVtYmVyIH0ge1xuICAgICAgICBsZXQgbGVmdEhlaWdodCA9IDAsXG4gICAgICAgICAgICB0YWJsZUhlaWdodFdpdGhTcGxpdHMgPSB0aGlzLmhlaWdodCxcbiAgICAgICAgICAgIHJvd0luZGV4ID0gMDtcbiAgICAgICAgd2hpbGUgKHJvd0luZGV4IDwgdGhpcy5yb3dNYXRyaXgubGVuZ3RoKSB7XG4gICAgICAgICAgICBsZXQgeyBpbmRleCwgcm93c0hlaWdodCB9ID0gdGhpcy5nZXRSb3dJbmRleEJ5SGVpZ2h0KHJvd0luZGV4LCBsZWZ0U3BhY2VPblBhZ2UpO1xuICAgICAgICAgICAgcm93SW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gdGhpcy5yb3dNYXRyaXgubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxlZnRIZWlnaHQgPSB0aGlzLnJvd01hdHJpeFxuICAgICAgICAgICAgICAgIC5zbGljZShpbmRleClcbiAgICAgICAgICAgICAgICAubWFwKHggPT4geC5oZWlnaHQpXG4gICAgICAgICAgICAgICAgLnJlZHVjZSgocGFydGlhbFN1bSwgY3VycikgPT4gcGFydGlhbFN1bSArIGN1cnIgKyB0aGlzLmJvcmRlclNpemUpO1xuXG4gICAgICAgICAgICBjb25zdCBzcGxpdFJvd0hlaWdodCA9IHNwYWNlQmV0d2VlblBhZ2VzQ29udGVudCArIGxlZnRTcGFjZU9uUGFnZSAtIHJvd3NIZWlnaHQ7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZVNwbGl0Um93KGluZGV4ICsgdGhpcy5zcGxpdHMubGVuZ3RoLCBzcGxpdFJvd0hlaWdodCk7XG4gICAgICAgICAgICB0aGlzLnNwbGl0cy5wdXNoKGluZGV4ICsgdGhpcy5zcGxpdHMubGVuZ3RoKTtcbiAgICAgICAgICAgIHRhYmxlSGVpZ2h0V2l0aFNwbGl0cyArPSBzcGxpdFJvd0hlaWdodDtcbiAgICAgICAgICAgIGxlZnRTcGFjZU9uUGFnZSA9IGNvbnRlbnRIZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc3BsaXRzQ291bnQ6IHRoaXMuc3BsaXRzLmxlbmd0aCxcbiAgICAgICAgICAgIHRhYmxlSGVpZ2h0OiB0YWJsZUhlaWdodFdpdGhTcGxpdHMsXG4gICAgICAgICAgICBsZWZ0SGVpZ2h0XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRSb3dJbmRleEJ5SGVpZ2h0KHN0YXJ0SW5kZXg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpOiB7IGluZGV4OiBudW1iZXI7IHJvd3NIZWlnaHQ6IG51bWJlciB9IHtcbiAgICAgICAgaWYgKHN0YXJ0SW5kZXggPj0gdGhpcy5yb3dNYXRyaXgubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4geyBpbmRleDogdGhpcy5yb3dNYXRyaXgubGVuZ3RoLCByb3dzSGVpZ2h0OiAwIH07XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgdGFibGVIZWlnaHQgPSB0aGlzLnJvd01hdHJpeFtzdGFydEluZGV4XS5oZWlnaHQgKyB0aGlzLmJvcmRlclNpemUsXG4gICAgICAgICAgICBpID0gc3RhcnRJbmRleDtcblxuICAgICAgICB3aGlsZSAodGFibGVIZWlnaHQgPCBoZWlnaHQpIHtcbiAgICAgICAgICAgIHRhYmxlSGVpZ2h0ICs9IHRoaXMucm93TWF0cml4W2kgKyAxXT8uaGVpZ2h0ICsgdGhpcy5ib3JkZXJTaXplO1xuICAgICAgICAgICAgaSsrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHsgaW5kZXg6IGksIHJvd3NIZWlnaHQ6IHRhYmxlSGVpZ2h0IC0gdGhpcy5yb3dNYXRyaXhbaV0/LmhlaWdodCB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlU3BsaXRSb3coaW5kZXg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50YWJsZUVsLmluc2VydFJvdyhpbmRleCk7XG4gICAgICAgIHRoaXMudGFibGVFbC5yb3dzW2luZGV4XS5zdHlsZS5oZWlnaHQgPSBgJHtoZWlnaHR9cHhgO1xuICAgICAgICB0aGlzLnRhYmxlRWwucm93c1tpbmRleF0uY2xhc3NMaXN0LmFkZCgnc3BsaXQtcm93Jyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW1vdmVTcGxpdHMoKSB7XG4gICAgICAgIHRoaXMuc3BsaXRzID0gW107XG4gICAgICAgIHdoaWxlICh0aGlzLnRhYmxlRWwucXVlcnlTZWxlY3RvcignLnNwbGl0LXJvdycpKSB7XG4gICAgICAgICAgICBjb25zdCBlbCA9IHRoaXMudGFibGVFbC5xdWVyeVNlbGVjdG9yKCcuc3BsaXQtcm93Jyk7XG4gICAgICAgICAgICBlbC5yZW1vdmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBjYWxjdWxhdGVQcm9wZXJ0aWVzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMudGFibGVFbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRUYWJsZUhlaWdodCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VGFibGVXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy50YWJsZS5jb2x1bW5zLnJlZHVjZSgocHJldiwgbmV4dCkgPT4gcHJldiArIG5leHQud2lkdGggKyB0aGlzLmJvcmRlclNpemUsIDEpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2VsbEhlaWdodENoYW5nZWQgPSAocm93SW5kZXg6IG51bWJlciwgY2VsbEluZGV4OiBudW1iZXIsIGhlaWdodDogbnVtYmVyKTogdm9pZCA9PiB7XG4gICAgICAgIGNvbnN0IHRhYmxlUm93ID0gdGhpcy50YWJsZS5yb3dzW3Jvd0luZGV4XTtcbiAgICAgICAgdGhpcy5yb3dNYXRyaXhbcm93SW5kZXhdLmNlbGxzW2NlbGxJbmRleF0uY2VsbENvbnRlbnRIZWlnaHQgPSBoZWlnaHQgPCB0aGlzLm1pblJvd0hlaWdodCA/IHRoaXMubWluUm93SGVpZ2h0IDogaGVpZ2h0O1xuXG4gICAgICAgIGlmICh0YWJsZVJvdy5oUnVsZSA9PT0gSFJ1bGUuRXhhY3QpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJvd0luZGV4V2l0aFNwbGl0ID0gdGhpcy5nZXRJbmRleEluY2x1ZGluZ1NwbGl0Um93cyh0aGlzLnJvd01hdHJpeFtyb3dJbmRleF0ucm93KTtcblxuICAgICAgICBjb25zdCByb3cgPSB0aGlzLnRhYmxlRWwucm93c1tyb3dJbmRleFdpdGhTcGxpdF07XG4gICAgICAgIGNvbnN0IGN1cnJlbnRIZWlnaHQgPSByb3cub2Zmc2V0SGVpZ2h0O1xuICAgICAgICBjb25zdCBjZWxsSGVpZ2h0cyA9IHRoaXMucm93TWF0cml4W3Jvd0luZGV4XS5jZWxscy5tYXAoeCA9PiB4LmNlbGxDb250ZW50SGVpZ2h0KTtcbiAgICAgICAgY29uc3QgbWF4Q2VsbENvbnRlbnRIZWlnaCA9IE1hdGgubWF4KC4uLmNlbGxIZWlnaHRzLCBoZWlnaHQpO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIG1heENlbGxDb250ZW50SGVpZ2ggPiBjdXJyZW50SGVpZ2h0IHx8XG4gICAgICAgICAgICAobWF4Q2VsbENvbnRlbnRIZWlnaCA8IGN1cnJlbnRIZWlnaHQgJiYgKCF0YWJsZVJvdy5oZWlnaHQgfHwgdGFibGVSb3cuaGVpZ2h0IDw9IG1heENlbGxDb250ZW50SGVpZ2gpKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJvdy5zdHlsZS5oZWlnaHQgPSBgJHttYXhDZWxsQ29udGVudEhlaWdofXB4YDtcbiAgICAgICAgICAgIHRoaXMucm93TWF0cml4W3Jvd0luZGV4XS5oZWlnaHQgPSBtYXhDZWxsQ29udGVudEhlaWdoO1xuICAgICAgICAgICAgdGhpcy5zZXRUYWJsZUhlaWdodCgpO1xuICAgICAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmNoYW5nZWRUYWJsZVNpemUodGhpcy5pbnNlcnRJbmRleCwgdGhpcy5zZXNzaW9uSWQpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIHByaXZhdGUgZ2V0U3BsaXRSb3dJbmRleChyb3dJbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEluZGV4SW5jbHVkaW5nU3BsaXRSb3dzKHRoaXMucm93TWF0cml4W3Jvd0luZGV4XS5yb3cpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0SW5kZXhJbmNsdWRpbmdTcGxpdFJvd3Mocm93OiBIVE1MVGFibGVSb3dFbGVtZW50KTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy50YWJsZUVsLnJvd3MpLmluZGV4T2Yocm93KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFJvd3NIZWlnaHRCZWZvcmUocm93SW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGxldCBpbmRleCA9IDA7XG4gICAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiB0aGlzLnNwbGl0cykge1xuICAgICAgICAgICAgaWYgKHJvd0luZGV4IDwgZWxlbWVudCkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbmRleCA9IGVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Um93c0hlaWdodCgwLCBpbmRleCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRSb3dzSGVpZ2h0QmV0d2VlblNwbGl0cyhyb3dJbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgbGV0IHN0YXJ0SW5kZXggPSAwO1xuICAgICAgICBsZXQgZW5kSW5kZXggPSB0aGlzLnRhYmxlRWwucm93cy5sZW5ndGg7XG4gICAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiB0aGlzLnNwbGl0cykge1xuICAgICAgICAgICAgaWYgKHJvd0luZGV4IDwgZWxlbWVudCkge1xuICAgICAgICAgICAgICAgIGVuZEluZGV4ID0gZWxlbWVudDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3RhcnRJbmRleCA9IGVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Um93c0hlaWdodChzdGFydEluZGV4LCBlbmRJbmRleCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRSb3dzSGVpZ2h0KHN0YXJ0OiBudW1iZXIsIGVuZDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgbGV0IHN1bSA9IDA7XG4gICAgICAgIGZvciAobGV0IGkgPSBzdGFydDsgaSA8IGVuZDsgaSsrKSB7XG4gICAgICAgICAgICBzdW0gKz0gdGhpcy50YWJsZUVsLnJvd3NbaV0ub2Zmc2V0SGVpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHN1bTtcbiAgICB9XG59XG4iXX0=
|
|
401
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvK3NoYXJlZC9lZGl0b3IvY3VzdG9tLWNvbXBvbmVudHMvdGFibGUvY29tcG9uZW50cy90YWJsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBeUIsTUFBTSxlQUFlLENBQUM7QUFFMUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUszRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXhELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7OztBQVE3RCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsa0JBQWtCO0lBQ3ZELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLE9BQXFCLENBQUM7SUFDdEMsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLEdBQWU7UUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7SUFDdkIsQ0FBQztJQWtCRCxZQUNZLGdCQUFrQyxFQUNsQyxhQUE0QixFQUM1QixFQUFjLEVBQ2QsY0FBOEI7UUFFdEMsS0FBSyxFQUFFLENB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LENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN4QyxLQUFLLE1BQU0sT0FBTyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDL0IsSUFBSSxRQUFRLEdBQUcsT0FBTyxFQUFFO2dCQUNwQixRQUFRLEdBQUcsT0FBTyxDQUFDO2dCQUNuQixNQUFNO2FBQ1Q7WUFFRCxVQUFVLEdBQUcsT0FBTyxHQUFHLENBQUMsQ0FBQztTQUM1QjtRQUVELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVPLGFBQWEsQ0FBQyxLQUFhLEVBQUUsR0FBVztRQUM1QyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDWixLQUFLLElBQUksQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzlCLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7U0FDNUM7UUFFRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7K0dBbmZRLG1CQUFtQjttR0FBbkIsbUJBQW1CLDhFQUpsQixFQUFFOzs0RkFJSCxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0ksaUJBQWlCLFlBQ2pCLEVBQUUsbUJBRUssdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCYXNlTm9kZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9zaGFyZWQvYWJzdHJhY3QvYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2VsbERhdGFNb2RlbCB9IGZyb20gJy4uL21vZGVscy9jZWxsLWRhdGEubW9kZWwnO1xuaW1wb3J0IHsgQ2VsbFJlc2l6ZXIgfSBmcm9tICcuLi9jZWxsLXJlc2l6ZXIvY2VsbC1yZXNpemVyJztcbmltcG9ydCB7IENlbGxSZXNpemVyUGFyYW1ldGVyc01vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2NlbGwtcmVzaXplci1wYXJhbWV0ZXJzLm1vZGVsJztcbmltcG9ydCB7IENvbXBvbmVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2VydmljZXMvY29tcG9uZW50L2NvbXBvbmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEVkaXRTZXNzaW9uIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9lZGl0LnNlc3Npb24nO1xuaW1wb3J0IHsgRWRpdG9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2ludGVyYWN0aW9uL2VkaXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IEhSdWxlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9lbnVtcy9ocnVsZS5lbnVtJztcbmltcG9ydCB7IE5vZGVyVGFibGVDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPdmVybGF5U2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9vdmVybGF5L292ZXJsYXkuc2VydmljZSc7XG5pbXBvcnQgeyBSb3dEYXRhTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvcm93LWRhdGEubW9kZWwnO1xuaW1wb3J0IHsgUm93TW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL3Jvdy5tb2RlbCc7XG5pbXBvcnQgeyBTY2FsaW5nSGVscGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vaGVscGVycy9zY2FsaW5nLmhlbHBlcic7XG5pbXBvcnQgeyBUYWJsZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC90YWJsZS5tb2RlbCc7XG5pbXBvcnQgeyBUYWJsZVNlbGVjdGlvbiB9IGZyb20gJy4uL3NlbGVjdGlvbi90YWJsZS1zZWxlY3Rpb24nO1xuaW1wb3J0IHsgVmVydGljYWxNZXJnZSB9IGZyb20gJy4uL2VudW1zL3ZlcnRpY2FsLW1lcmdlLmVudW0nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1ub2Rlci10YWJsZScsXG4gICAgdGVtcGxhdGU6ICcnLFxuICAgIHN0eWxlVXJsczogWycuL3RhYmxlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTm9kZXJUYWJsZUNvbXBvbmVudCBleHRlbmRzIEJhc2VOb2RlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgZ2V0IHRhYmxlKCk6IFRhYmxlTW9kZWwge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZW50IGFzIFRhYmxlTW9kZWw7XG4gICAgfVxuICAgIHNldCB0YWJsZSh2YWw6IFRhYmxlTW9kZWwpIHtcbiAgICAgICAgdGhpcy5jb250ZW50ID0gdmFsO1xuICAgIH1cblxuICAgIHRhYmxlU2VsZWN0aW9uOiBUYWJsZVNlbGVjdGlvbjtcblxuICAgIHRhYmxlRWw6IEhUTUxUYWJsZUVsZW1lbnQ7XG5cbiAgICByZXNpemVyOiBDZWxsUmVzaXplcjtcblxuICAgIHJlc2l6ZXJFbDogSFRNTERpdkVsZW1lbnQ7XG5cbiAgICByb3dNYXRyaXg6IFJvd0RhdGFNb2RlbFtdID0gW107XG5cbiAgICBzcGxpdHM6IG51bWJlcltdID0gW107XG5cbiAgICByZWFkb25seSBtaW5Sb3dIZWlnaHQgPSAxOTtcblxuICAgIHJlYWRvbmx5IGJvcmRlclNpemUgPSAxO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY29tcG9uZW50U2VydmljZTogQ29tcG9uZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBlZGl0b3JTZXJ2aWNlOiBFZGl0b3JTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIG92ZXJsYXlTZXJ2aWNlOiBPdmVybGF5U2VydmljZVxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgICAgICB0aGlzLnRhYmxlU2VsZWN0aW9uPy5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jcmVhdGVUYWJsZSgpO1xuICAgICAgICB0aGlzLmNhbGN1bGF0ZVByb3BlcnRpZXMoKTtcbiAgICAgICAgdGhpcy5jcmVhdGVSZXNpemVyKCk7XG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLnJlc2l6ZXJFbCk7XG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlRWwpO1xuICAgICAgICB0aGlzLnRhYmxlU2VsZWN0aW9uID0gbmV3IFRhYmxlU2VsZWN0aW9uKFxuICAgICAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLFxuICAgICAgICAgICAgdGhpcy5vdmVybGF5U2VydmljZSxcbiAgICAgICAgICAgIHRoaXMucm93TWF0cml4LFxuICAgICAgICAgICAgdGhpcy50YWJsZSxcbiAgICAgICAgICAgIHRoaXMudGFibGVFbCxcbiAgICAgICAgICAgIHRoaXMuc2Vzc2lvbklkXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0Q2VsbFNlc3Npb24ocm93OiBudW1iZXIsIGNvbHVtbjogbnVtYmVyKTogRWRpdFNlc3Npb24ge1xuICAgICAgICByZXR1cm4gdGhpcy5yb3dNYXRyaXhbcm93XS5jZWxsc1tjb2x1bW5dLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5zZXNzaW9uO1xuICAgIH1cblxuICAgIGdldENlbGxXaWR0aCh0YWJsZVJvdzogUm93TW9kZWwsIGNlbGxJbmRleDogbnVtYmVyLCBhYnNvbHV0ZUNlbGxJbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHRhYmxlUm93LmNlbGxzW2NlbGxJbmRleF0ud2lkdGgpIHtcbiAgICAgICAgICAgIHJldHVybiB0YWJsZVJvdy5jZWxsc1tjZWxsSW5kZXhdLndpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHdpZHRoID0gMDtcbiAgICAgICAgbGV0IGkgPSBhYnNvbHV0ZUNlbGxJbmRleDtcbiAgICAgICAgY29uc3QgY2VsbFNwYW5Db3VudCA9IGFic29sdXRlQ2VsbEluZGV4ICsgdGFibGVSb3cuY2VsbHNbY2VsbEluZGV4XS5ob3Jpem9udGFsTWVyZ2U7XG5cbiAgICAgICAgZG8ge1xuICAgICAgICAgICAgd2lkdGggKz0gdGhpcy50YWJsZS5jb2x1bW5zW2ldLndpZHRoO1xuICAgICAgICAgICAgaSsrO1xuICAgICAgICB9IHdoaWxlIChpIDwgY2VsbFNwYW5Db3VudCk7XG5cbiAgICAgICAgcmV0dXJuIHdpZHRoO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QWRqdXN0ZWRXaWR0aCh0YWJsZVJvdzogUm93TW9kZWwsIGNlbGxJbmRleDogbnVtYmVyLCBhYnNvbHV0ZUNlbGxJbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgY2VsbFdpZHRoID0gdGhpcy5nZXRDZWxsV2lkdGgodGFibGVSb3csIGNlbGxJbmRleCwgYWJzb2x1dGVDZWxsSW5kZXgpO1xuXG4gICAgICAgIGlmICh0YWJsZVJvdy5jZWxsc1tjZWxsSW5kZXhdLndpZHRoVHlwZSA9PT0gJ3BjdCcpIHtcbiAgICAgICAgICAgIHRhYmxlUm93LmNlbGxzW2NlbGxJbmRleF0ud2lkdGhUeXBlID0gJ2R4YSc7XG4gICAgICAgICAgICByZXR1cm4gKGNlbGxXaWR0aCAqIHRoaXMuX3dpZHRoKSAvIDUwMDA7IC8vIDUwMDAgaXMgZXF1YWwgdG8gMTAwJSBpbiBkb2N4IHVuaXRzIG9mIG1lYXN1cmVtZW50XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gU2NhbGluZ0hlbHBlci5zY2FsZShjZWxsV2lkdGgsIHRoaXMuZ2VuZXJhbFByb3BlcnRpZXMuc2NhbGluZ1JhdGlvKTtcbiAgICB9XG5cbiAgICBjcmVhdGVSZXNpemVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlc2l6ZXJFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0aGlzLnJlc2l6ZXJFbC5jbGFzc05hbWUgPSAncmVzaXplci1ib3JkZXInO1xuICAgICAgICB0aGlzLnJlc2l6ZXJFbC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgYGRpc3BsYXk6bm9uZTtgKTtcbiAgICAgICAgdGhpcy5yZXNpemVyID0gbmV3IENlbGxSZXNpemVyKHRoaXMudGFibGUsIHRoaXMudGFibGVFbCwgdGhpcy5lZGl0b3JTZXJ2aWNlLCB0aGlzLnJlc2l6ZXJFbCk7XG4gICAgICAgIHRoaXMucmVzaXplci5zZXNzaW9uSWQgPSB0aGlzLnNlc3Npb25JZDtcbiAgICB9XG5cbiAgICBjcmVhdGVUYWJsZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50YWJsZUVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGFibGUnKTtcbiAgICAgICAgdGhpcy5zZXRDb2xncm91cCgpO1xuICAgICAgICB0aGlzLmluc2VydFJvd3ModGhpcy50YWJsZS5yb3dzLmxlbmd0aCwgMCk7XG4gICAgICAgIHRoaXMuZmlsbFRhYmxlQ2VsbHMoKTtcbiAgICB9XG5cbiAgICB1cGRhdGVUYWJsZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY2VsbHMgPSBbXS5jb25jYXQoLi4udGhpcy5yb3dNYXRyaXgubWFwKHggPT4geC5jZWxscykpIGFzIENlbGxEYXRhTW9kZWxbXTtcbiAgICAgICAgY29uc3QgdW5pcUNlbGxzID0gbmV3IFNldChjZWxscy5tYXAoeCA9PiB4LmNvbXBvbmVudFJlZikpO1xuICAgICAgICB1bmlxQ2VsbHMuZm9yRWFjaCh4ID0+IHRoaXMuY29tcG9uZW50U2VydmljZS5yZW1vdmVDb21wb25lbnQoeCkpO1xuICAgICAgICB0aGlzLnRhYmxlU2VsZWN0aW9uLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5yb3dNYXRyaXggPSBbXTtcbiAgICAgICAgdGhpcy50YWJsZUVsLnJlbW92ZSgpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemUoKTtcbiAgICB9XG5cbiAgICBpbnNlcnRSb3dzKHJvd3NDb3VudDogbnVtYmVyLCB0YXJnZXRJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3dpZHRoID0gdGhpcy5nZXRUYWJsZVdpZHRoKCk7XG4gICAgICAgIGxldCByb3dJbmRleCA9IDA7XG5cbiAgICAgICAgd2hpbGUgKHJvd0luZGV4IDwgcm93c0NvdW50KSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXRSb3dJbmRleCA9IHRhcmdldEluZGV4ICsgcm93SW5kZXg7XG4gICAgICAgICAgICBjb25zdCByb3cgPSB0aGlzLnRhYmxlRWwuaW5zZXJ0Um93KHRhcmdldFJvd0luZGV4KTtcbiAgICAgICAgICAgIHRoaXMucm93TWF0cml4LnNwbGljZSh0YXJnZXRSb3dJbmRleCwgMCwgbmV3IFJvd0RhdGFNb2RlbChyb3csIDAsIFtdKSk7XG4gICAgICAgICAgICB0aGlzLmluc2VydENlbGxzKHRhcmdldFJvd0luZGV4LCB0aGlzLnRhYmxlLnJvd3NbdGFyZ2V0Um93SW5kZXhdLmNlbGxzLmxlbmd0aCwgMCk7XG4gICAgICAgICAgICByb3dJbmRleCsrO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5maWxsVGFibGVSb3coKTtcbiAgICB9XG5cbiAgICBpbnNlcnRDZWxscyhyb3dJbmRleDogbnVtYmVyLCBjZWxsc0NvdW50OiBudW1iZXIsIHRhcmdldEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgbGV0IG1vZGVsVGFyZ2V0SW5kZXggPSB0aGlzLmdldE1vZGVsVGFyZ2V0SW5kZXgocm93SW5kZXgsIHRhcmdldEluZGV4KTtcbiAgICAgICAgdGhpcy5hZGRDZWxscyhyb3dJbmRleCwgY2VsbHNDb3VudCwgdGFyZ2V0SW5kZXgsIG1vZGVsVGFyZ2V0SW5kZXgpO1xuICAgIH1cblxuICAgIGdldE1vZGVsVGFyZ2V0SW5kZXgocm93SW5kZXg6IG51bWJlciwgdGFyZ2V0SW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGxldCBhYnNvbHV0ZU1vZGVsQ2VsbENvdW50ID0gMDtcbiAgICAgICAgbGV0IG1vZGVsVGFyZ2V0SW5kZXggPSAwO1xuXG4gICAgICAgIHdoaWxlIChhYnNvbHV0ZU1vZGVsQ2VsbENvdW50IDwgdGFyZ2V0SW5kZXgpIHtcbiAgICAgICAgICAgIGFic29sdXRlTW9kZWxDZWxsQ291bnQgKz0gdGhpcy50YWJsZS5yb3dzW3Jvd0luZGV4XS5jZWxsc1ttb2RlbFRhcmdldEluZGV4XS5ob3Jpem9udGFsTWVyZ2UgPz8gMTtcblxuICAgICAgICAgICAgaWYgKGFic29sdXRlTW9kZWxDZWxsQ291bnQgPiB0YXJnZXRJbmRleCkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBtb2RlbFRhcmdldEluZGV4Kys7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbW9kZWxUYXJnZXRJbmRleDtcbiAgICB9XG5cbiAgICBhZGRDZWxscyhyb3dJbmRleDogbnVtYmVyLCBjZWxsc0NvdW50OiBudW1iZXIsIHRhcmdldEluZGV4OiBudW1iZXIsIG1vZGVsVGFyZ2V0SW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBsZXQgaSA9IDA7XG4gICAgICAgIGxldCBjdXJyZW50VGFyZ2V0SW5kZXggPSB0YXJnZXRJbmRleDtcblxuICAgICAgICB3aGlsZSAoaSA8IGNlbGxzQ291bnQpIHtcbiAgICAgICAgICAgIGNvbnN0IG1vZGVsQ2VsbEluZGV4ID0gbW9kZWxUYXJnZXRJbmRleCArIGk7XG5cbiAgICAgICAgICAgIGlmICgodGhpcy50YWJsZS5yb3dzW3Jvd0luZGV4XS5jZWxsc1ttb2RlbENlbGxJbmRleF0udmVydGljYWxNZXJnZSBhcyBWZXJ0aWNhbE1lcmdlKSA9PT0gVmVydGljYWxNZXJnZS5NZXJnZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGluaGVyaXRDZWxsRGF0YSA9IHRoaXMucm93TWF0cml4W3Jvd0luZGV4IC0gMV0uY2VsbHNbY3VycmVudFRhcmdldEluZGV4XTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb3VudCA9IHRoaXMudGFibGUucm93c1tyb3dJbmRleF0uY2VsbHNbbW9kZWxDZWxsSW5kZXhdLmhvcml6b250YWxNZXJnZSA/PyAxO1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkQWRkaXRpb25hbENlbGxzKHJvd0luZGV4LCBjdXJyZW50VGFyZ2V0SW5kZXgsIGNvdW50LCBpbmhlcml0Q2VsbERhdGEpO1xuICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXRJbmRleCArPSBjb3VudDtcbiAgICAgICAgICAgICAgICBpKys7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGNlbGwgPSB0aGlzLnRhYmxlRWwucm93c1tyb3dJbmRleF0uaW5zZXJ0Q2VsbChjdXJyZW50VGFyZ2V0SW5kZXgpO1xuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5jb21wb25lbnRTZXJ2aWNlLmdlbmVyYXRlQW5kQXR0YWNoQ29tcG9uZW50KGNlbGwsIE5vZGVyVGFibGVDZWxsQ29tcG9uZW50LCB7XG4gICAgICAgICAgICAgICAgdGFibGU6IHRoaXMudGFibGUsXG4gICAgICAgICAgICAgICAgY2VsbDogdGhpcy50YWJsZS5yb3dzW3Jvd0luZGV4XS5jZWxsc1ttb2RlbENlbGxJbmRleF0sXG4gICAgICAgICAgICAgICAgcGFyZW50U2Vzc2lvbklkOiB0aGlzLnNlc3Npb25JZCxcbiAgICAgICAgICAgICAgICByb3dJbmRleCxcbiAgICAgICAgICAgICAgICBjZWxsSW5kZXg6IG1vZGVsQ2VsbEluZGV4LFxuICAgICAgICAgICAgICAgIGNvbHVtbkluZGV4OiBjdXJyZW50VGFyZ2V0SW5kZXgsXG4gICAgICAgICAgICAgICAgd2lkdGg6IHRoaXMuZ2V0QWRqdXN0ZWRXaWR0aCh0aGlzLnRhYmxlLnJvd3Nbcm93SW5kZXhdLCBtb2RlbENlbGxJbmRleCwgY3VycmVudFRhcmdldEluZGV4KSxcbiAgICAgICAgICAgICAgICBnZW5lcmFsUHJvcGVydGllczogdGhpcy5nZW5lcmFsUHJvcGVydGllcyxcbiAgICAgICAgICAgICAgICBoZWlnaHRDaGFuZ2VkOiB0aGlzLmNlbGxIZWlnaHRDaGFuZ2VkLFxuICAgICAgICAgICAgICAgIHN0YXJ0UmVzaXppbmc6IHRoaXMuc3RhcnRSZXNpemluZ1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBjZWxsQ29udGVudEhlaWdodCA9IGNvbXBvbmVudFJlZi5pbnN0YW5jZS5nZXRDZWxsQ29udGVudEhlaWdodCgpO1xuICAgICAgICAgICAgY29uc3QgY2VsbERhdGEgPSBuZXcgQ2VsbERhdGFNb2RlbChjZWxsLCBjZWxsQ29udGVudEhlaWdodCwgY29tcG9uZW50UmVmKTtcbiAgICAgICAgICAgIHRoaXMucm93TWF0cml4W3Jvd0luZGV4XS5jZWxscy5zcGxpY2UoY3VycmVudFRhcmdldEluZGV4LCAwLCBjZWxsRGF0YSk7XG4gICAgICAgICAgICBjdXJyZW50VGFyZ2V0SW5kZXgrKztcblxuICAgICAgICAgICAgaWYgKHRoaXMudGFibGUucm93c1tyb3dJbmRleF0uY2VsbHNbbW9kZWxDZWxsSW5kZXhdLmhvcml6b250YWxNZXJnZSA+IDEpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb3VudCA9IHRoaXMudGFibGUucm93c1tyb3dJbmRleF0uY2VsbHNbbW9kZWxDZWxsSW5kZXhdLmhvcml6b250YWxNZXJnZSAtIDE7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRBZGRpdGlvbmFsQ2VsbHMocm93SW5kZXgsIGN1cnJlbnRUYXJnZXRJbmRleCwgY291bnQsIGNlbGxEYXRhKTtcbiAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0SW5kZXggKz0gY291bnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFkZEFkZGl0aW9uYWxDZWxscyhyb3dJbmRleDogbnVtYmVyLCBjZWxsSW5kZXg6IG51bWJlciwgY2VsbHNDb3VudDogbnVtYmVyLCBvcmlnaW5hbENlbGxEYXRhOiBDZWxsRGF0YU1vZGVsKTogdm9pZCB7XG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgY2VsbHNDb3VudDsgaisrKSB7XG4gICAgICAgICAgICBjb25zdCBhZGRpdGlvbmFsQ2VsbCA9IHRoaXMudGFibGVFbC5yb3dzW3Jvd0luZGV4XS5pbnNlcnRDZWxsKGNlbGxJbmRleCk7XG4gICAgICAgICAgICBhZGRpdGlvbmFsQ2VsbC5jbGFzc0xpc3QuYWRkKCdoaWRkZW4tY2VsbCcpO1xuICAgICAgICAgICAgY29uc3QgY2VsbERhdGEgPSBuZXcgQ2VsbERhdGFNb2RlbChvcmlnaW5hbENlbGxEYXRhLmNlbGwsIG9yaWdpbmFsQ2VsbERhdGEuY2VsbENvbnRlbnRIZWlnaHQsIG9yaWdpbmFsQ2VsbERhdGEuY29tcG9uZW50UmVmKTtcbiAgICAgICAgICAgIHRoaXMucm93TWF0cml4W3Jvd0luZGV4XS5jZWxscy5zcGxpY2UoY2VsbEluZGV4LCAwLCBjZWxsRGF0YSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRDb2xncm91cCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgb2xkQ29sR3JvdXBzID0gdGhpcy50YWJsZUVsLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdjb2xncm91cCcpO1xuXG4gICAgICAgIGlmIChvbGRDb2xHcm91cHMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnRhYmxlRWwucmVtb3ZlQ2hpbGQob2xkQ29sR3JvdXBzWzBdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbGdyb3VwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY29sZ3JvdXAnKTtcbiAgICAgICAgbGV0IGkgPSAwO1xuXG4gICAgICAgIHdoaWxlIChpIDwgdGhpcy50YWJsZS5jb2x1bW5zLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgY29sID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY29sJyk7XG4gICAgICAgICAgICBjb25zdCBzY2FsZWRXaWR0aCA9IFNjYWxpbmdIZWxwZXIuc2NhbGUodGhpcy50YWJsZS5jb2x1bW5zW2ldLndpZHRoLCB0aGlzLmdlbmVyYWxQcm9wZXJ0aWVzLnNjYWxpbmdSYXRpbyk7XG4gICAgICAgICAgICBjb2wuc3R5bGUud2lkdGggPSBgJHtzY2FsZWRXaWR0aH1weGA7XG4gICAgICAgICAgICBjb2xncm91cC5hcHBlbmRDaGlsZChjb2wpO1xuICAgICAgICAgICAgaSsrO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50YWJsZUVsLmluc2VydEFkamFjZW50RWxlbWVudCgnYWZ0ZXJiZWdpbicsIGNvbGdyb3VwKTtcbiAgICB9XG5cbiAgICBmaWxsVGFibGVSb3coKTogdm9pZCB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50YWJsZS5yb3dzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMudGFibGUucm93c1tpXS5oUnVsZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgSFJ1bGUuQXRMZWFzdDoge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByb3dIZWlnaHQgPSB0aGlzLmdldFJvd0hlaWdodChpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJsZUVsLnJvd3NbaV0uc3R5bGUubWluSGVpZ2h0ID0gYCR7dGhpcy50YWJsZS5yb3dzW2ldLmhlaWdodH1weGA7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGVFbC5yb3dzW2ldLnN0eWxlLmhlaWdodCA9IGAke3Jvd0hlaWdodH1weGA7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm93TWF0cml4W2ldLmhlaWdodCA9IHJvd0hlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgSFJ1bGUuRXhhY3Q6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGVFbC5yb3dzW2ldLnN0eWxlLmhlaWdodCA9IGAke3RoaXMudGFibGUucm93c1tpXS5oZWlnaHR9cHhgO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvd01hdHJpeFtpXS5oZWlnaHQgPSB0aGlzLnRhYmxlLnJvd3NbaV0uaGVpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvd0hlaWdodCA9IHRoaXMuZ2V0Um93SGVpZ2h0KGkpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtaW5Sb3dIZWlnaHQgPSB0aGlzLnRhYmxlLnJvd3NbaV0uaGVpZ2h0ID8/IHRoaXMubWluUm93SGVpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHRIZWlnaHQgPSBtaW5Sb3dIZWlnaHQgPiByb3dIZWlnaHQgPyBtaW5Sb3dIZWlnaHQgOiByb3dIZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGVFbC5yb3dzW2ldLnN0eWxlLmhlaWdodCA9IGAke3Jlc3VsdEhlaWdodH1weGA7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm93TWF0cml4W2ldLmhlaWdodCA9IHJlc3VsdEhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0Um93SGVpZ2h0KHJvd0luZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBjZWxsSGVpZ2h0cyA9IHRoaXMucm93TWF0cml4W3Jvd0luZGV4XS5jZWxscy5tYXAoKHgsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpZiAoKHguY29tcG9uZW50UmVmLmluc3RhbmNlLmNlbGwudmVydGljYWxNZXJnZSBhcyBWZXJ0aWNhbE1lcmdlKSA9PT0gVmVydGljYWxNZXJnZS5SZXN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNMYXN0VmVydGljYWxNZXJnZWRDZWxsID0geC5jZWxsICE9PSB0aGlzLnJvd01hdHJpeFtyb3dJbmRleCArIDFdPy5jZWxsc1tpbmRleF0uY2VsbDtcblxuICAgICAgICAgICAgICAgIGlmIChpc0xhc3RWZXJ0aWNhbE1lcmdlZENlbGwpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGkgPSByb3dJbmRleCAtIDE7XG4gICAgICAgICAgICAgICAgICAgIGxldCBjdXJyZW50SGVpZ2h0ID0geC5jZWxsQ29udGVudEhlaWdodDtcblxuICAgICAgICAgICAgICAgICAgICB3aGlsZSAoeC5jZWxsID09PSB0aGlzLnJvd01hdHJpeFtpXT8uY2VsbHNbaW5kZXhdLmNlbGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRIZWlnaHQgLT0gdGhpcy5yb3dNYXRyaXhbaV0uaGVpZ2h0O1xuICAgICAgICAgICAgICAgICAgICAgICAgaS0tO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRIZWlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB4LmNlbGxDb250ZW50SGVpZ2h0O1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gTWF0aC5tYXgoLi4uY2VsbEhlaWdodHMpO1xuICAgIH1cblxuICAgIGZpbGxUYWJsZUNlbGxzKCk6IHZvaWQge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucm93TWF0cml4Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMucm93TWF0cml4W2ldLmNlbGxzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvd01hdHJpeFtpIC0gMV0/LmNlbGxzW2pdPy5jZWxsID09PSB0aGlzLnJvd01hdHJpeFtpXS5jZWxsc1tqXS5jZWxsIHx8XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm93TWF0cml4W2ldLmNlbGxzW2pdLmNlbGwgPT09IHRoaXMucm93TWF0cml4W2ldLmNlbGxzW2ogLSAxXT8uY2VsbCB8fFxuICAgICAgICAgICAgICAgICAgICAodGhpcy5yb3dNYXRyaXhbaV0uY2VsbHNbal0uY29tcG9uZW50UmVmLmluc3RhbmNlLmNlbGwudmVydGljYWxNZXJnZSBhcyBWZXJ0aWNhbE1lcmdlKSA9PT0gVmVydGljYWxNZXJnZS5NZXJnZVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLnJvd01hdHJpeFtpXS5jZWxsc1tqXS5jZWxsLmNvbFNwYW4gPSB0aGlzLnJvd01hdHJpeFtpXS5jZWxsc1tqXS5jb21wb25lbnRSZWYuaW5zdGFuY2UuY2VsbC5ob3Jpem9udGFsTWVyZ2U7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3dNYXRyaXhbaV0uY2VsbHNbal0uY2VsbC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvd01hdHJpeFtpXS5jZWxsc1tqXS5jb21wb25lbnRSZWYuaW5zdGFuY2UuY2VsbC5iYWNrZ3JvdW5kQ29sb3I7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRDZWxsUm93U3BhbihpLCBqKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldENlbGxSb3dTcGFuKHJvd0luZGV4OiBudW1iZXIsIGFic29sdXRlQ2VsbEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yb3dNYXRyaXhbcm93SW5kZXhdLmNlbGxzW2Fic29sdXRlQ2VsbEluZGV4XS5jZWxsLnJvd1NwYW4gPSAxO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICh0aGlzLnJvd01hdHJpeFtyb3dJbmRleF0uY2VsbHNbYWJzb2x1dGVDZWxsSW5kZXhdLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5jZWxsLnZlcnRpY2FsTWVyZ2UgYXMgVmVydGljYWxNZXJnZSkgIT09XG4gICAgICAgICAgICBWZXJ0aWNhbE1lcmdlLlJlc3RhcnRcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGxldCBpID0gcm93SW5kZXggKyAxOyBpIDwgdGhpcy5yb3dNYXRyaXgubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnJvd01hdHJpeFtpXS5jZWxsc1thYnNvbHV0ZUNlbGxJbmRleF0uY2VsbCA9PT0gdGhpcy5yb3dNYXRyaXhbcm93SW5kZXhdLmNlbGxzW2Fic29sdXRlQ2VsbEluZGV4XS5jZWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3dNYXRyaXhbcm93SW5kZXhdLmNlbGxzW2Fic29sdXRlQ2VsbEluZGV4XS5jZWxsLnJvd1NwYW4rKztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRUYWJsZUhlaWdodCgpOiB2b2lkIHtcbiAgICAgICAgbGV0IGJvcmRlcnNIZWlnaHQgPSAwO1xuICAgICAgICBsZXQgcm93c0hlaWdodCA9IDE7XG5cbiAgICAgICAgZm9yIChsZXQgcm93IG9mIHRoaXMucm93TWF0cml4KSB7XG4gICAgICAgICAgICByb3dzSGVpZ2h0ICs9IHJvdy5oZWlnaHQ7XG5cbiAgICAgICAgICAgIGlmIChyb3cuY2VsbHMuc29tZSh4ID0+ICF4LmNvbXBvbmVudFJlZi5pbnN0YW5jZS5jZWxsLnZlcnRpY2FsTWVyZ2UpKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyc0hlaWdodCArPSB0aGlzLmJvcmRlclNpemU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9oZWlnaHQgPSByb3dzSGVpZ2h0ICsgYm9yZGVyc0hlaWdodDtcbiAgICB9XG5cbiAgICBzdGFydFJlc2l6aW5nID0gKGNlbGxSZXNpemVyUGFyYW1ldGVyczogQ2VsbFJlc2l6ZXJQYXJhbWV0ZXJzTW9kZWwpOiB2b2lkID0+IHtcbiAgICAgICAgY29uc3Qgc3BsaXRSb3dJbmRleCA9IHRoaXMuZ2V0U3BsaXRSb3dJbmRleChjZWxsUmVzaXplclBhcmFtZXRlcnMucm93SW5kZXgpO1xuICAgICAgICB0aGlzLnJlc2l6ZXIucmVzaXplckhlaWdodCA9IHRoaXMuZ2V0Um93c0hlaWdodEJldHdlZW5TcGxpdHMoc3BsaXRSb3dJbmRleCk7XG4gICAgICAgIHRoaXMucmVzaXplci5zdGFydFkgPSB0aGlzLmdldFJvd3NIZWlnaHRCZWZvcmUoc3BsaXRSb3dJbmRleCk7XG4gICAgICAgIHRoaXMucmVzaXplci5zcGxpdFJvd0luZGV4ID0gc3BsaXRSb3dJbmRleDtcbiAgICAgICAgdGhpcy5yZXNpemVyLnRhYmxlSW5zZXJ0SW5kZXggPSB0aGlzLmluc2VydEluZGV4O1xuICAgICAgICB0aGlzLnJlc2l6ZXIub25TdGFydFJlc2l6aW5nKGNlbGxSZXNpemVyUGFyYW1ldGVycyk7XG4gICAgfTtcblxuICAgIHByb2Nlc3NTcGxpdChcbiAgICAgICAgbGVmdFNwYWNlT25QYWdlOiBudW1iZXIsXG4gICAgICAgIHNwYWNlQmV0d2VlblBhZ2VzQ29udGVudDogbnVtYmVyLFxuICAgICAgICBjb250ZW50SGVpZ2h0OiBudW1iZXJcbiAgICApOiB7IHNwbGl0c0NvdW50OiBudW1iZXI7IHRhYmxlSGVpZ2h0OiBudW1iZXI7IGxlZnRIZWlnaHQ6IG51bWJlciB9IHtcbiAgICAgICAgdGhpcy5yZW1vdmVTcGxpdHMoKTtcblxuICAgICAgICBpZiAobGVmdFNwYWNlT25QYWdlID49IHRoaXMuaGVpZ2h0KSB7XG4gICAgICAgICAgICByZXR1cm4geyBzcGxpdHNDb3VudDogMCwgdGFibGVIZWlnaHQ6IHRoaXMuaGVpZ2h0LCBsZWZ0SGVpZ2h0OiAwIH07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGVmdFNwYWNlT25QYWdlIDwgdGhpcy5yb3dNYXRyaXhbMF0uaGVpZ2h0KSB7XG4gICAgICAgICAgICByZXR1cm4geyBzcGxpdHNDb3VudDogMSwgdGFibGVIZWlnaHQ6IHRoaXMuaGVpZ2h0LCBsZWZ0SGVpZ2h0OiB0aGlzLmhlaWdodCB9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc3BsaXRUYWJsZShsZWZ0U3BhY2VPblBhZ2UsIHNwYWNlQmV0d2VlblBhZ2VzQ29udGVudCwgY29udGVudEhlaWdodCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzcGxpdFRhYmxlKFxuICAgICAgICBsZWZ0U3BhY2VPblBhZ2U6IG51bWJlcixcbiAgICAgICAgc3BhY2VCZXR3ZWVuUGFnZXNDb250ZW50OiBudW1iZXIsXG4gICAgICAgIGNvbnRlbnRIZWlnaHQ6IG51bWJlclxuICAgICk6IHsgc3BsaXRzQ291bnQ6IG51bWJlcjsgdGFibGVIZWlnaHQ6IG51bWJlcjsgbGVmdEhlaWdodDogbnVtYmVyIH0ge1xuICAgICAgICBsZXQgbGVmdEhlaWdodCA9IDAsXG4gICAgICAgICAgICB0YWJsZUhlaWdodFdpdGhTcGxpdHMgPSB0aGlzLmhlaWdodCxcbiAgICAgICAgICAgIHJvd0luZGV4ID0gMDtcbiAgICAgICAgd2hpbGUgKHJvd0luZGV4IDwgdGhpcy5yb3dNYXRyaXgubGVuZ3RoKSB7XG4gICAgICAgICAgICBsZXQgeyBpbmRleCwgcm93c0hlaWdodCB9ID0gdGhpcy5nZXRSb3dJbmRleEJ5SGVpZ2h0KHJvd0luZGV4LCBsZWZ0U3BhY2VPblBhZ2UpO1xuICAgICAgICAgICAgcm93SW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gdGhpcy5yb3dNYXRyaXgubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxlZnRIZWlnaHQgPSB0aGlzLnJvd01hdHJpeFxuICAgICAgICAgICAgICAgIC5zbGljZShpbmRleClcbiAgICAgICAgICAgICAgICAubWFwKHggPT4geC5oZWlnaHQpXG4gICAgICAgICAgICAgICAgLnJlZHVjZSgocGFydGlhbFN1bSwgY3VycikgPT4gcGFydGlhbFN1bSArIGN1cnIgKyB0aGlzLmJvcmRlclNpemUpO1xuXG4gICAgICAgICAgICBjb25zdCBzcGxpdFJvd0hlaWdodCA9IHNwYWNlQmV0d2VlblBhZ2VzQ29udGVudCArIGxlZnRTcGFjZU9uUGFnZSAtIHJvd3NIZWlnaHQ7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZVNwbGl0Um93KGluZGV4ICsgdGhpcy5zcGxpdHMubGVuZ3RoLCBzcGxpdFJvd0hlaWdodCk7XG4gICAgICAgICAgICB0aGlzLnNwbGl0cy5wdXNoKGluZGV4ICsgdGhpcy5zcGxpdHMubGVuZ3RoKTtcbiAgICAgICAgICAgIHRhYmxlSGVpZ2h0V2l0aFNwbGl0cyArPSBzcGxpdFJvd0hlaWdodDtcbiAgICAgICAgICAgIGxlZnRTcGFjZU9uUGFnZSA9IGNvbnRlbnRIZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc3BsaXRzQ291bnQ6IHRoaXMuc3BsaXRzLmxlbmd0aCxcbiAgICAgICAgICAgIHRhYmxlSGVpZ2h0OiB0YWJsZUhlaWdodFdpdGhTcGxpdHMsXG4gICAgICAgICAgICBsZWZ0SGVpZ2h0XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRSb3dJbmRleEJ5SGVpZ2h0KHN0YXJ0SW5kZXg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpOiB7IGluZGV4OiBudW1iZXI7IHJvd3NIZWlnaHQ6IG51bWJlciB9IHtcbiAgICAgICAgaWYgKHN0YXJ0SW5kZXggPj0gdGhpcy5yb3dNYXRyaXgubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4geyBpbmRleDogdGhpcy5yb3dNYXRyaXgubGVuZ3RoLCByb3dzSGVpZ2h0OiAwIH07XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgdGFibGVIZWlnaHQgPSB0aGlzLnJvd01hdHJpeFtzdGFydEluZGV4XS5oZWlnaHQgKyB0aGlzLmJvcmRlclNpemUsXG4gICAgICAgICAgICBpID0gc3RhcnRJbmRleDtcblxuICAgICAgICB3aGlsZSAodGFibGVIZWlnaHQgPCBoZWlnaHQpIHtcbiAgICAgICAgICAgIHRhYmxlSGVpZ2h0ICs9IHRoaXMucm93TWF0cml4W2kgKyAxXT8uaGVpZ2h0ICsgdGhpcy5ib3JkZXJTaXplO1xuICAgICAgICAgICAgaSsrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHsgaW5kZXg6IGksIHJvd3NIZWlnaHQ6IHRhYmxlSGVpZ2h0IC0gdGhpcy5yb3dNYXRyaXhbaV0/LmhlaWdodCB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlU3BsaXRSb3coaW5kZXg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50YWJsZUVsLmluc2VydFJvdyhpbmRleCk7XG4gICAgICAgIHRoaXMudGFibGVFbC5yb3dzW2luZGV4XS5zdHlsZS5oZWlnaHQgPSBgJHtoZWlnaHR9cHhgO1xuICAgICAgICB0aGlzLnRhYmxlRWwucm93c1tpbmRleF0uY2xhc3NMaXN0LmFkZCgnc3BsaXQtcm93Jyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW1vdmVTcGxpdHMoKSB7XG4gICAgICAgIHRoaXMuc3BsaXRzID0gW107XG4gICAgICAgIHdoaWxlICh0aGlzLnRhYmxlRWwucXVlcnlTZWxlY3RvcignLnNwbGl0LXJvdycpKSB7XG4gICAgICAgICAgICBjb25zdCBlbCA9IHRoaXMudGFibGVFbC5xdWVyeVNlbGVjdG9yKCcuc3BsaXQtcm93Jyk7XG4gICAgICAgICAgICBlbC5yZW1vdmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBjYWxjdWxhdGVQcm9wZXJ0aWVzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMudGFibGVFbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRUYWJsZUhlaWdodCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VGFibGVXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy50YWJsZS5jb2x1bW5zLnJlZHVjZSgocHJldiwgbmV4dCkgPT4gcHJldiArIG5leHQud2lkdGggKyB0aGlzLmJvcmRlclNpemUsIDEpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2VsbEhlaWdodENoYW5nZWQgPSAocm93SW5kZXg6IG51bWJlciwgY2VsbEluZGV4OiBudW1iZXIsIGhlaWdodDogbnVtYmVyKTogdm9pZCA9PiB7XG4gICAgICAgIGNvbnN0IHRhYmxlUm93ID0gdGhpcy50YWJsZS5yb3dzW3Jvd0luZGV4XTtcbiAgICAgICAgdGhpcy5yb3dNYXRyaXhbcm93SW5kZXhdLmNlbGxzW2NlbGxJbmRleF0uY2VsbENvbnRlbnRIZWlnaHQgPSBoZWlnaHQgPCB0aGlzLm1pblJvd0hlaWdodCA/IHRoaXMubWluUm93SGVpZ2h0IDogaGVpZ2h0O1xuXG4gICAgICAgIGlmICh0YWJsZVJvdy5oUnVsZSA9PT0gSFJ1bGUuRXhhY3QpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJvd0luZGV4V2l0aFNwbGl0ID0gdGhpcy5nZXRJbmRleEluY2x1ZGluZ1NwbGl0Um93cyh0aGlzLnJvd01hdHJpeFtyb3dJbmRleF0ucm93KTtcblxuICAgICAgICBjb25zdCByb3cgPSB0aGlzLnRhYmxlRWwucm93c1tyb3dJbmRleFdpdGhTcGxpdF07XG4gICAgICAgIGNvbnN0IGN1cnJlbnRIZWlnaHQgPSByb3cub2Zmc2V0SGVpZ2h0O1xuICAgICAgICBjb25zdCBjZWxsSGVpZ2h0cyA9IHRoaXMucm93TWF0cml4W3Jvd0luZGV4XS5jZWxscy5tYXAoeCA9PiB4LmNlbGxDb250ZW50SGVpZ2h0KTtcbiAgICAgICAgY29uc3QgbWF4Q2VsbENvbnRlbnRIZWlnaCA9IE1hdGgubWF4KC4uLmNlbGxIZWlnaHRzLCBoZWlnaHQpO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIG1heENlbGxDb250ZW50SGVpZ2ggPiBjdXJyZW50SGVpZ2h0IHx8XG4gICAgICAgICAgICAobWF4Q2VsbENvbnRlbnRIZWlnaCA8IGN1cnJlbnRIZWlnaHQgJiYgKCF0YWJsZVJvdy5oZWlnaHQgfHwgdGFibGVSb3cuaGVpZ2h0IDw9IG1heENlbGxDb250ZW50SGVpZ2gpKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJvdy5zdHlsZS5oZWlnaHQgPSBgJHttYXhDZWxsQ29udGVudEhlaWdofXB4YDtcbiAgICAgICAgICAgIHRoaXMucm93TWF0cml4W3Jvd0luZGV4XS5oZWlnaHQgPSBtYXhDZWxsQ29udGVudEhlaWdoO1xuICAgICAgICAgICAgdGhpcy5zZXRUYWJsZUhlaWdodCgpO1xuICAgICAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmNoYW5nZWRUYWJsZVNpemUodGhpcy5pbnNlcnRJbmRleCwgdGhpcy5zZXNzaW9uSWQpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIHByaXZhdGUgZ2V0U3BsaXRSb3dJbmRleChyb3dJbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEluZGV4SW5jbHVkaW5nU3BsaXRSb3dzKHRoaXMucm93TWF0cml4W3Jvd0luZGV4XS5yb3cpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0SW5kZXhJbmNsdWRpbmdTcGxpdFJvd3Mocm93OiBIVE1MVGFibGVSb3dFbGVtZW50KTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy50YWJsZUVsLnJvd3MpLmluZGV4T2Yocm93KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFJvd3NIZWlnaHRCZWZvcmUocm93SW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGxldCBpbmRleCA9IDA7XG4gICAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiB0aGlzLnNwbGl0cykge1xuICAgICAgICAgICAgaWYgKHJvd0luZGV4IDwgZWxlbWVudCkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbmRleCA9IGVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Um93c0hlaWdodCgwLCBpbmRleCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRSb3dzSGVpZ2h0QmV0d2VlblNwbGl0cyhyb3dJbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgbGV0IHN0YXJ0SW5kZXggPSAwO1xuICAgICAgICBsZXQgZW5kSW5kZXggPSB0aGlzLnRhYmxlRWwucm93cy5sZW5ndGg7XG4gICAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiB0aGlzLnNwbGl0cykge1xuICAgICAgICAgICAgaWYgKHJvd0luZGV4IDwgZWxlbWVudCkge1xuICAgICAgICAgICAgICAgIGVuZEluZGV4ID0gZWxlbWVudDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3RhcnRJbmRleCA9IGVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Um93c0hlaWdodChzdGFydEluZGV4LCBlbmRJbmRleCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRSb3dzSGVpZ2h0KHN0YXJ0OiBudW1iZXIsIGVuZDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgbGV0IHN1bSA9IDA7XG4gICAgICAgIGZvciAobGV0IGkgPSBzdGFydDsgaSA8IGVuZDsgaSsrKSB7XG4gICAgICAgICAgICBzdW0gKz0gdGhpcy50YWJsZUVsLnJvd3NbaV0ub2Zmc2V0SGVpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHN1bTtcbiAgICB9XG59XG4iXX0=
|
package/esm2022/lib/+shared/editor/custom-components/table/overlay-menu/overlay-menu.component.mjs
CHANGED
|
@@ -52,10 +52,10 @@ export class TableOverlayMenuComponent {
|
|
|
52
52
|
this.editorService.removeTableColumns(this.tableInsertIndex, this.selectionRange.cellIndexes.startIndex, this.selectionRange.cellIndexes.endIndex, this.sessionId);
|
|
53
53
|
this.overlayService.close();
|
|
54
54
|
}
|
|
55
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
56
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
55
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableOverlayMenuComponent, deps: [{ token: i1.EditorService }, { token: i2.OverlayService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
56
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TableOverlayMenuComponent, selector: "app-table-overlay-menu", inputs: { selectionRange: "selectionRange", targets: "targets", canRemoveRows: "canRemoveRows", canRemoveColumns: "canRemoveColumns", tableInsertIndex: "tableInsertIndex", sessionId: "sessionId" }, ngImport: i0, template: "<div\n class=\"menu-item\"\n (click)=\"onInsertRowsAbove()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-add\"></mat-icon>\n {{ insertMessages.insertRowsAboveMessage }}\n</div>\n<div\n class=\"menu-item\"\n (click)=\"onInsertRowsBelow()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-add\"></mat-icon>\n {{ insertMessages.insertRowsBelowMessage }}\n</div>\n<div\n class=\"menu-item\"\n (click)=\"onInsertColumnsLeft()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-add\"></mat-icon>\n {{ insertMessages.insertColumnsLeftMessage }}\n</div>\n<div\n class=\"menu-item\"\n (click)=\"onInsertColumnsRight()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-add\"></mat-icon>\n {{ insertMessages.insertColumnsRightMessage }}\n</div>\n<ng-container *ngIf=\"canRemoveRows || canRemoveColumns\">\n <div class=\"menu-separator\">\n <div class=\"menu-separator-top\"></div>\n <div class=\"menu-separator-bottom\"></div>\n </div>\n <div\n *ngIf=\"canRemoveRows\"\n class=\"menu-item\"\n (click)=\"onRemoveRows()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-delete\"></mat-icon>\n {{ removeMessages.removeRowsMessage }}\n </div>\n <div\n *ngIf=\"canRemoveColumns\"\n class=\"menu-item\"\n (click)=\"onRemoveColumns()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-delete\"></mat-icon>\n {{ removeMessages.removeColumnsMessage }}\n </div>\n</ng-container>\n", styles: [":host{position:absolute;border:1px solid transparent;border-radius:4px;box-shadow:0 2px 6px 2px #3c404326;overflow-y:auto;background:#fff;cursor:default;font-size:13px;margin:0;padding:6px 0}.menu-item{display:flex;flex-direction:row;align-items:center;cursor:pointer;min-height:20px;color:#202124;font-size:16px;letter-spacing:.2px;line-height:20px;padding:6px}.menu-item:hover{background-color:#0000001a}.mat-icon{margin-right:6px;width:20px;height:20px;font-size:20px}.menu-separator{-webkit-user-select:none;user-select:none}.menu-separator .menu-separator-top{padding:4px}.menu-separator .menu-separator-bottom{border-top:1px solid #dadce0;padding:4px}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
57
57
|
}
|
|
58
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableOverlayMenuComponent, decorators: [{
|
|
59
59
|
type: Component,
|
|
60
60
|
args: [{ selector: 'app-table-overlay-menu', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"menu-item\"\n (click)=\"onInsertRowsAbove()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-add\"></mat-icon>\n {{ insertMessages.insertRowsAboveMessage }}\n</div>\n<div\n class=\"menu-item\"\n (click)=\"onInsertRowsBelow()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-add\"></mat-icon>\n {{ insertMessages.insertRowsBelowMessage }}\n</div>\n<div\n class=\"menu-item\"\n (click)=\"onInsertColumnsLeft()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-add\"></mat-icon>\n {{ insertMessages.insertColumnsLeftMessage }}\n</div>\n<div\n class=\"menu-item\"\n (click)=\"onInsertColumnsRight()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-add\"></mat-icon>\n {{ insertMessages.insertColumnsRightMessage }}\n</div>\n<ng-container *ngIf=\"canRemoveRows || canRemoveColumns\">\n <div class=\"menu-separator\">\n <div class=\"menu-separator-top\"></div>\n <div class=\"menu-separator-bottom\"></div>\n </div>\n <div\n *ngIf=\"canRemoveRows\"\n class=\"menu-item\"\n (click)=\"onRemoveRows()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-delete\"></mat-icon>\n {{ removeMessages.removeRowsMessage }}\n </div>\n <div\n *ngIf=\"canRemoveColumns\"\n class=\"menu-item\"\n (click)=\"onRemoveColumns()\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-delete\"></mat-icon>\n {{ removeMessages.removeColumnsMessage }}\n </div>\n</ng-container>\n", styles: [":host{position:absolute;border:1px solid transparent;border-radius:4px;box-shadow:0 2px 6px 2px #3c404326;overflow-y:auto;background:#fff;cursor:default;font-size:13px;margin:0;padding:6px 0}.menu-item{display:flex;flex-direction:row;align-items:center;cursor:pointer;min-height:20px;color:#202124;font-size:16px;letter-spacing:.2px;line-height:20px;padding:6px}.menu-item:hover{background-color:#0000001a}.mat-icon{margin-right:6px;width:20px;height:20px;font-size:20px}.menu-separator{-webkit-user-select:none;user-select:none}.menu-separator .menu-separator-top{padding:4px}.menu-separator .menu-separator-bottom{border-top:1px solid #dadce0;padding:4px}\n"] }]
|
|
61
61
|
}], ctorParameters: () => [{ type: i1.EditorService }, { type: i2.OverlayService }], propDecorators: { selectionRange: [{
|
|
@@ -71,4 +71,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
71
71
|
}], sessionId: [{
|
|
72
72
|
type: Input
|
|
73
73
|
}] } });
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliLytzaGFyZWQvZWRpdG9yL2N1c3RvbS1jb21wb25lbnRzL3RhYmxlL292ZXJsYXktbWVudS9vdmVybGF5LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvK3NoYXJlZC9lZGl0b3IvY3VzdG9tLWNvbXBvbmVudHMvdGFibGUvb3ZlcmxheS1tZW51L292ZXJsYXktbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBWTFFLE1BQU0sT0FBTyx5QkFBeUI7SUE2QmxDLFlBQW9CLGFBQTRCLEVBQVUsY0FBOEI7UUFBcEUsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFBRyxDQUFDO0lBRTVGLFFBQVE7UUFDSixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDakgsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ3RILElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxzQkFBc0I7UUFDbEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3pGLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixVQUFVLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUN4RyxJQUFJLENBQUMsY0FBYyxHQUFHO1lBQ2xCLHNCQUFzQixFQUFFLFVBQVUsVUFBVSxRQUFRO1lBQ3BELHNCQUFzQixFQUFFLFVBQVUsVUFBVSxRQUFRO1lBQ3BELHdCQUF3QixFQUFFLFVBQVUsYUFBYSxjQUFjO1lBQy9ELHlCQUF5QixFQUFFLFVBQVUsYUFBYSxlQUFlO1NBQ3BFLENBQUM7UUFDRixJQUFJLENBQUMsY0FBYyxHQUFHO1lBQ2xCLGlCQUFpQixFQUFFLFVBQVUsVUFBVSxFQUFFO1lBQ3pDLG9CQUFvQixFQUFFLFVBQVUsYUFBYSxFQUFFO1NBQ2xELENBQUM7SUFDTixDQUFDO0lBRUQsaUJBQWlCO1FBQ2IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQzlCLElBQUksQ0FBQyxnQkFBZ0IsRUFDckIsSUFBSSxDQUFDLGlCQUFpQixFQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQ2xDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFDekMsSUFBSSxDQUFDLFNBQVMsQ0FDakIsQ0FBQztRQUNGLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELGlCQUFpQjtRQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUM5QixJQUFJLENBQUMsZ0JBQWdCLEVBQ3JCLElBQUksQ0FBQyxpQkFBaUIsRUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUNoQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQ3ZDLElBQUksQ0FBQyxTQUFTLENBQ2pCLENBQUM7UUFDRixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxtQkFBbUI7UUFDZixJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUNqQyxJQUFJLENBQUMsZ0JBQWdCLEVBQ3JCLElBQUksQ0FBQyxvQkFBb0IsRUFDekIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUNuQyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQzFDLElBQUksQ0FBQyxTQUFTLENBQ2pCLENBQUM7UUFDRixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxvQkFBb0I7UUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FDakMsSUFBSSxDQUFDLGdCQUFnQixFQUNyQixJQUFJLENBQUMsb0JBQW9CLEVBQ3pCLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFDakMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUN4QyxJQUFJLENBQUMsU0FBUyxDQUNqQixDQUFDO1FBQ0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsWUFBWTtRQUNSLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUM5QixJQUFJLENBQUMsZ0JBQWdCLEVBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFDekMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUN2QyxJQUFJLENBQUMsU0FBUyxDQUNqQixDQUFDO1FBQ0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsRUFDckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUMxQyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQ3hDLElBQUksQ0FBQyxTQUFTLENBQ2pCLENBQUM7UUFDRixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2hDLENBQUM7OEdBbEhRLHlCQUF5QjtrR0FBekIseUJBQXlCLG9RQ1p0QywybURBd0RBOzsyRkQ1Q2EseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNJLHdCQUF3QixtQkFHakIsdUJBQXVCLENBQUMsTUFBTTsrR0FHdEMsY0FBYztzQkFBdEIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBFZGl0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJhY3Rpb24vZWRpdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgT3ZlcmxheVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2VydmljZXMvb3ZlcmxheS9vdmVybGF5LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2VsZWN0aW9uUmFuZ2VNb2RlbCB9IGZyb20gJy4uL21vZGVscy9zZWxlY3Rpb24tcmFuZ2UubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC10YWJsZS1vdmVybGF5LW1lbnUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9vdmVybGF5LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL292ZXJsYXktbWVudS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlT3ZlcmxheU1lbnVDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIHNlbGVjdGlvblJhbmdlOiBTZWxlY3Rpb25SYW5nZU1vZGVsO1xuXG4gICAgQElucHV0KCkgdGFyZ2V0czogU2VsZWN0aW9uUmFuZ2VNb2RlbDtcblxuICAgIEBJbnB1dCgpIGNhblJlbW92ZVJvd3M6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKSBjYW5SZW1vdmVDb2x1bW5zOiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgdGFibGVJbnNlcnRJbmRleDogbnVtYmVyO1xuXG4gICAgQElucHV0KCkgc2Vzc2lvbklkOiBudW1iZXI7XG5cbiAgICBzZWxlY3RlZFJvd3NDb3VudDogbnVtYmVyO1xuXG4gICAgc2VsZWN0ZWRDb2x1bW5zQ291bnQ6IG51bWJlcjtcblxuICAgIGluc2VydE1lc3NhZ2VzOiB7XG4gICAgICAgIGluc2VydFJvd3NBYm92ZU1lc3NhZ2U6IHN0cmluZztcbiAgICAgICAgaW5zZXJ0Um93c0JlbG93TWVzc2FnZTogc3RyaW5nO1xuICAgICAgICBpbnNlcnRDb2x1bW5zTGVmdE1lc3NhZ2U6IHN0cmluZztcbiAgICAgICAgaW5zZXJ0Q29sdW1uc1JpZ2h0TWVzc2FnZTogc3RyaW5nO1xuICAgIH07XG5cbiAgICByZW1vdmVNZXNzYWdlczoge1xuICAgICAgICByZW1vdmVSb3dzTWVzc2FnZTogc3RyaW5nO1xuICAgICAgICByZW1vdmVDb2x1bW5zTWVzc2FnZTogc3RyaW5nO1xuICAgIH07XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVkaXRvclNlcnZpY2U6IEVkaXRvclNlcnZpY2UsIHByaXZhdGUgb3ZlcmxheVNlcnZpY2U6IE92ZXJsYXlTZXJ2aWNlKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRSb3dzQ291bnQgPSB0aGlzLnNlbGVjdGlvblJhbmdlLnJvd0luZGV4ZXMuZW5kSW5kZXggLSB0aGlzLnNlbGVjdGlvblJhbmdlLnJvd0luZGV4ZXMuc3RhcnRJbmRleCArIDE7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW5zQ291bnQgPSB0aGlzLnNlbGVjdGlvblJhbmdlLmNlbGxJbmRleGVzLmVuZEluZGV4IC0gdGhpcy5zZWxlY3Rpb25SYW5nZS5jZWxsSW5kZXhlcy5zdGFydEluZGV4ICsgMTtcbiAgICAgICAgdGhpcy5wcm9jZXNzSW5zZXJ0TWVudUl0ZW1zKCk7XG4gICAgfVxuXG4gICAgcHJvY2Vzc0luc2VydE1lbnVJdGVtcygpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgcm93c1N1ZmZpeCA9IHRoaXMuc2VsZWN0ZWRSb3dzQ291bnQgPiAxID8gYCR7dGhpcy5zZWxlY3RlZFJvd3NDb3VudH0gcm93c2AgOiAncm93JztcbiAgICAgICAgY29uc3QgY29sdW1uc1N1ZmZpeCA9IHRoaXMuc2VsZWN0ZWRDb2x1bW5zQ291bnQgPiAxID8gYCR7dGhpcy5zZWxlY3RlZENvbHVtbnNDb3VudH0gY29sdW1uc2AgOiAnY29sdW1uJztcbiAgICAgICAgdGhpcy5pbnNlcnRNZXNzYWdlcyA9IHtcbiAgICAgICAgICAgIGluc2VydFJvd3NBYm92ZU1lc3NhZ2U6IGBJbnNlcnQgJHtyb3dzU3VmZml4fSBhYm92ZWAsXG4gICAgICAgICAgICBpbnNlcnRSb3dzQmVsb3dNZXNzYWdlOiBgSW5zZXJ0ICR7cm93c1N1ZmZpeH0gYmVsb3dgLFxuICAgICAgICAgICAgaW5zZXJ0Q29sdW1uc0xlZnRNZXNzYWdlOiBgSW5zZXJ0ICR7Y29sdW1uc1N1ZmZpeH0gdG8gdGhlIGxlZnRgLFxuICAgICAgICAgICAgaW5zZXJ0Q29sdW1uc1JpZ2h0TWVzc2FnZTogYEluc2VydCAke2NvbHVtbnNTdWZmaXh9IHRvIHRoZSByaWdodGBcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5yZW1vdmVNZXNzYWdlcyA9IHtcbiAgICAgICAgICAgIHJlbW92ZVJvd3NNZXNzYWdlOiBgUmVtb3ZlICR7cm93c1N1ZmZpeH1gLFxuICAgICAgICAgICAgcmVtb3ZlQ29sdW1uc01lc3NhZ2U6IGBSZW1vdmUgJHtjb2x1bW5zU3VmZml4fWBcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBvbkluc2VydFJvd3NBYm92ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmluc2VydFRhYmxlUm93cyhcbiAgICAgICAgICAgIHRoaXMudGFibGVJbnNlcnRJbmRleCxcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSb3dzQ291bnQsXG4gICAgICAgICAgICB0aGlzLnRhcmdldHMucm93SW5kZXhlcy5zdGFydEluZGV4LFxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25SYW5nZS5yb3dJbmRleGVzLnN0YXJ0SW5kZXgsXG4gICAgICAgICAgICB0aGlzLnNlc3Npb25JZFxuICAgICAgICApO1xuICAgICAgICB0aGlzLm92ZXJsYXlTZXJ2aWNlLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgb25JbnNlcnRSb3dzQmVsb3coKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5pbnNlcnRUYWJsZVJvd3MoXG4gICAgICAgICAgICB0aGlzLnRhYmxlSW5zZXJ0SW5kZXgsXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkUm93c0NvdW50LFxuICAgICAgICAgICAgdGhpcy50YXJnZXRzLnJvd0luZGV4ZXMuZW5kSW5kZXgsXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvblJhbmdlLnJvd0luZGV4ZXMuZW5kSW5kZXgsXG4gICAgICAgICAgICB0aGlzLnNlc3Npb25JZFxuICAgICAgICApO1xuICAgICAgICB0aGlzLm92ZXJsYXlTZXJ2aWNlLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgb25JbnNlcnRDb2x1bW5zTGVmdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmluc2VydFRhYmxlQ29sdW1ucyhcbiAgICAgICAgICAgIHRoaXMudGFibGVJbnNlcnRJbmRleCxcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW5zQ291bnQsXG4gICAgICAgICAgICB0aGlzLnRhcmdldHMuY2VsbEluZGV4ZXMuc3RhcnRJbmRleCxcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uUmFuZ2UuY2VsbEluZGV4ZXMuc3RhcnRJbmRleCxcbiAgICAgICAgICAgIHRoaXMuc2Vzc2lvbklkXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMub3ZlcmxheVNlcnZpY2UuY2xvc2UoKTtcbiAgICB9XG5cbiAgICBvbkluc2VydENvbHVtbnNSaWdodCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmluc2VydFRhYmxlQ29sdW1ucyhcbiAgICAgICAgICAgIHRoaXMudGFibGVJbnNlcnRJbmRleCxcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW5zQ291bnQsXG4gICAgICAgICAgICB0aGlzLnRhcmdldHMuY2VsbEluZGV4ZXMuZW5kSW5kZXgsXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvblJhbmdlLmNlbGxJbmRleGVzLmVuZEluZGV4LFxuICAgICAgICAgICAgdGhpcy5zZXNzaW9uSWRcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5vdmVybGF5U2VydmljZS5jbG9zZSgpO1xuICAgIH1cblxuICAgIG9uUmVtb3ZlUm93cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLnJlbW92ZVRhYmxlUm93cyhcbiAgICAgICAgICAgIHRoaXMudGFibGVJbnNlcnRJbmRleCxcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uUmFuZ2Uucm93SW5kZXhlcy5zdGFydEluZGV4LFxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25SYW5nZS5yb3dJbmRleGVzLmVuZEluZGV4LFxuICAgICAgICAgICAgdGhpcy5zZXNzaW9uSWRcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5vdmVybGF5U2VydmljZS5jbG9zZSgpO1xuICAgIH1cblxuICAgIG9uUmVtb3ZlQ29sdW1ucygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLnJlbW92ZVRhYmxlQ29sdW1ucyhcbiAgICAgICAgICAgIHRoaXMudGFibGVJbnNlcnRJbmRleCxcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uUmFuZ2UuY2VsbEluZGV4ZXMuc3RhcnRJbmRleCxcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uUmFuZ2UuY2VsbEluZGV4ZXMuZW5kSW5kZXgsXG4gICAgICAgICAgICB0aGlzLnNlc3Npb25JZFxuICAgICAgICApO1xuICAgICAgICB0aGlzLm92ZXJsYXlTZXJ2aWNlLmNsb3NlKCk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwibWVudS1pdGVtXCJcbiAgICAoY2xpY2spPVwib25JbnNlcnRSb3dzQWJvdmUoKVwiPlxuICAgIDxtYXQtaWNvblxuICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgIGZvbnRJY29uPVwiaWNvbi1hZGRcIj48L21hdC1pY29uPlxuICAgIHt7IGluc2VydE1lc3NhZ2VzLmluc2VydFJvd3NBYm92ZU1lc3NhZ2UgfX1cbjwvZGl2PlxuPGRpdlxuICAgIGNsYXNzPVwibWVudS1pdGVtXCJcbiAgICAoY2xpY2spPVwib25JbnNlcnRSb3dzQmVsb3coKVwiPlxuICAgIDxtYXQtaWNvblxuICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgIGZvbnRJY29uPVwiaWNvbi1hZGRcIj48L21hdC1pY29uPlxuICAgIHt7IGluc2VydE1lc3NhZ2VzLmluc2VydFJvd3NCZWxvd01lc3NhZ2UgfX1cbjwvZGl2PlxuPGRpdlxuICAgIGNsYXNzPVwibWVudS1pdGVtXCJcbiAgICAoY2xpY2spPVwib25JbnNlcnRDb2x1bW5zTGVmdCgpXCI+XG4gICAgPG1hdC1pY29uXG4gICAgICAgIGZvbnRTZXQ9XCJuYy1pY29uXCJcbiAgICAgICAgZm9udEljb249XCJpY29uLWFkZFwiPjwvbWF0LWljb24+XG4gICAge3sgaW5zZXJ0TWVzc2FnZXMuaW5zZXJ0Q29sdW1uc0xlZnRNZXNzYWdlIH19XG48L2Rpdj5cbjxkaXZcbiAgICBjbGFzcz1cIm1lbnUtaXRlbVwiXG4gICAgKGNsaWNrKT1cIm9uSW5zZXJ0Q29sdW1uc1JpZ2h0KClcIj5cbiAgICA8bWF0LWljb25cbiAgICAgICAgZm9udFNldD1cIm5jLWljb25cIlxuICAgICAgICBmb250SWNvbj1cImljb24tYWRkXCI+PC9tYXQtaWNvbj5cbiAgICB7eyBpbnNlcnRNZXNzYWdlcy5pbnNlcnRDb2x1bW5zUmlnaHRNZXNzYWdlIH19XG48L2Rpdj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJjYW5SZW1vdmVSb3dzIHx8IGNhblJlbW92ZUNvbHVtbnNcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWVudS1zZXBhcmF0b3JcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtc2VwYXJhdG9yLXRvcFwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1zZXBhcmF0b3ItYm90dG9tXCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgICAqbmdJZj1cImNhblJlbW92ZVJvd3NcIlxuICAgICAgICBjbGFzcz1cIm1lbnUtaXRlbVwiXG4gICAgICAgIChjbGljayk9XCJvblJlbW92ZVJvd3MoKVwiPlxuICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgIGZvbnRTZXQ9XCJuYy1pY29uXCJcbiAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1kZWxldGVcIj48L21hdC1pY29uPlxuICAgICAgICB7eyByZW1vdmVNZXNzYWdlcy5yZW1vdmVSb3dzTWVzc2FnZSB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJjYW5SZW1vdmVDb2x1bW5zXCJcbiAgICAgICAgY2xhc3M9XCJtZW51LWl0ZW1cIlxuICAgICAgICAoY2xpY2spPVwib25SZW1vdmVDb2x1bW5zKClcIj5cbiAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgICAgICBmb250SWNvbj1cImljb24tZGVsZXRlXCI+PC9tYXQtaWNvbj5cbiAgICAgICAge3sgcmVtb3ZlTWVzc2FnZXMucmVtb3ZlQ29sdW1uc01lc3NhZ2UgfX1cbiAgICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliLytzaGFyZWQvZWRpdG9yL2N1c3RvbS1jb21wb25lbnRzL3RhYmxlL292ZXJsYXktbWVudS9vdmVybGF5LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvK3NoYXJlZC9lZGl0b3IvY3VzdG9tLWNvbXBvbmVudHMvdGFibGUvb3ZlcmxheS1tZW51L292ZXJsYXktbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBWTFFLE1BQU0sT0FBTyx5QkFBeUI7SUE2QmxDLFlBQW9CLGFBQTRCLEVBQVUsY0FBOEI7UUFBcEUsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFBRyxDQUFDO0lBRTVGLFFBQVE7UUFDSixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDakgsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ3RILElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxzQkFBc0I7UUFDbEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENB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QyxXQUFXLENBQUMsVUFBVSxFQUMxQyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQ3hDLElBQUksQ0FBQyxTQUFTLENBQ2pCLENBQUM7UUFDRixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2hDLENBQUM7K0dBbEhRLHlCQUF5QjttR0FBekIseUJBQXlCLG9RQ1p0QywybURBd0RBOzs0RkQ1Q2EseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNJLHdCQUF3QixtQkFHakIsdUJBQXVCLENBQUMsTUFBTTsrR0FHdEMsY0FBYztzQkFBdEIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBFZGl0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJhY3Rpb24vZWRpdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgT3ZlcmxheVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2VydmljZXMvb3ZlcmxheS9vdmVybGF5LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2VsZWN0aW9uUmFuZ2VNb2RlbCB9IGZyb20gJy4uL21vZGVscy9zZWxlY3Rpb24tcmFuZ2UubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC10YWJsZS1vdmVybGF5LW1lbnUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9vdmVybGF5LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL292ZXJsYXktbWVudS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlT3ZlcmxheU1lbnVDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIHNlbGVjdGlvblJhbmdlOiBTZWxlY3Rpb25SYW5nZU1vZGVsO1xuXG4gICAgQElucHV0KCkgdGFyZ2V0czogU2VsZWN0aW9uUmFuZ2VNb2RlbDtcblxuICAgIEBJbnB1dCgpIGNhblJlbW92ZVJvd3M6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKSBjYW5SZW1vdmVDb2x1bW5zOiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgdGFibGVJbnNlcnRJbmRleDogbnVtYmVyO1xuXG4gICAgQElucHV0KCkgc2Vzc2lvbklkOiBudW1iZXI7XG5cbiAgICBzZWxlY3RlZFJvd3NDb3VudDogbnVtYmVyO1xuXG4gICAgc2VsZWN0ZWRDb2x1bW5zQ291bnQ6IG51bWJlcjtcblxuICAgIGluc2VydE1lc3NhZ2VzOiB7XG4gICAgICAgIGluc2VydFJvd3NBYm92ZU1lc3NhZ2U6IHN0cmluZztcbiAgICAgICAgaW5zZXJ0Um93c0JlbG93TWVzc2FnZTogc3RyaW5nO1xuICAgICAgICBpbnNlcnRDb2x1bW5zTGVmdE1lc3NhZ2U6IHN0cmluZztcbiAgICAgICAgaW5zZXJ0Q29sdW1uc1JpZ2h0TWVzc2FnZTogc3RyaW5nO1xuICAgIH07XG5cbiAgICByZW1vdmVNZXNzYWdlczoge1xuICAgICAgICByZW1vdmVSb3dzTWVzc2FnZTogc3RyaW5nO1xuICAgICAgICByZW1vdmVDb2x1bW5zTWVzc2FnZTogc3RyaW5nO1xuICAgIH07XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVkaXRvclNlcnZpY2U6IEVkaXRvclNlcnZpY2UsIHByaXZhdGUgb3ZlcmxheVNlcnZpY2U6IE92ZXJsYXlTZXJ2aWNlKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRSb3dzQ291bnQgPSB0aGlzLnNlbGVjdGlvblJhbmdlLnJvd0luZGV4ZXMuZW5kSW5kZXggLSB0aGlzLnNlbGVjdGlvblJhbmdlLnJvd0luZGV4ZXMuc3RhcnRJbmRleCArIDE7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW5zQ291bnQgPSB0aGlzLnNlbGVjdGlvblJhbmdlLmNlbGxJbmRleGVzLmVuZEluZGV4IC0gdGhpcy5zZWxlY3Rpb25SYW5nZS5jZWxsSW5kZXhlcy5zdGFydEluZGV4ICsgMTtcbiAgICAgICAgdGhpcy5wcm9jZXNzSW5zZXJ0TWVudUl0ZW1zKCk7XG4gICAgfVxuXG4gICAgcHJvY2Vzc0luc2VydE1lbnVJdGVtcygpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgcm93c1N1ZmZpeCA9IHRoaXMuc2VsZWN0ZWRSb3dzQ291bnQgPiAxID8gYCR7dGhpcy5zZWxlY3RlZFJvd3NDb3VudH0gcm93c2AgOiAncm93JztcbiAgICAgICAgY29uc3QgY29sdW1uc1N1ZmZpeCA9IHRoaXMuc2VsZWN0ZWRDb2x1bW5zQ291bnQgPiAxID8gYCR7dGhpcy5zZWxlY3RlZENvbHVtbnNDb3VudH0gY29sdW1uc2AgOiAnY29sdW1uJztcbiAgICAgICAgdGhpcy5pbnNlcnRNZXNzYWdlcyA9IHtcbiAgICAgICAgICAgIGluc2VydFJvd3NBYm92ZU1lc3NhZ2U6IGBJbnNlcnQgJHtyb3dzU3VmZml4fSBhYm92ZWAsXG4gICAgICAgICAgICBpbnNlcnRSb3dzQmVsb3dNZXNzYWdlOiBgSW5zZXJ0ICR7cm93c1N1ZmZpeH0gYmVsb3dgLFxuICAgICAgICAgICAgaW5zZXJ0Q29sdW1uc0xlZnRNZXNzYWdlOiBgSW5zZXJ0ICR7Y29sdW1uc1N1ZmZpeH0gdG8gdGhlIGxlZnRgLFxuICAgICAgICAgICAgaW5zZXJ0Q29sdW1uc1JpZ2h0TWVzc2FnZTogYEluc2VydCAke2NvbHVtbnNTdWZmaXh9IHRvIHRoZSByaWdodGBcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5yZW1vdmVNZXNzYWdlcyA9IHtcbiAgICAgICAgICAgIHJlbW92ZVJvd3NNZXNzYWdlOiBgUmVtb3ZlICR7cm93c1N1ZmZpeH1gLFxuICAgICAgICAgICAgcmVtb3ZlQ29sdW1uc01lc3NhZ2U6IGBSZW1vdmUgJHtjb2x1bW5zU3VmZml4fWBcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBvbkluc2VydFJvd3NBYm92ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmluc2VydFRhYmxlUm93cyhcbiAgICAgICAgICAgIHRoaXMudGFibGVJbnNlcnRJbmRleCxcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSb3dzQ291bnQsXG4gICAgICAgICAgICB0aGlzLnRhcmdldHMucm93SW5kZXhlcy5zdGFydEluZGV4LFxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25SYW5nZS5yb3dJbmRleGVzLnN0YXJ0SW5kZXgsXG4gICAgICAgICAgICB0aGlzLnNlc3Npb25JZFxuICAgICAgICApO1xuICAgICAgICB0aGlzLm92ZXJsYXlTZXJ2aWNlLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgb25JbnNlcnRSb3dzQmVsb3coKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5pbnNlcnRUYWJsZVJvd3MoXG4gICAgICAgICAgICB0aGlzLnRhYmxlSW5zZXJ0SW5kZXgsXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkUm93c0NvdW50LFxuICAgICAgICAgICAgdGhpcy50YXJnZXRzLnJvd0luZGV4ZXMuZW5kSW5kZXgsXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvblJhbmdlLnJvd0luZGV4ZXMuZW5kSW5kZXgsXG4gICAgICAgICAgICB0aGlzLnNlc3Npb25JZFxuICAgICAgICApO1xuICAgICAgICB0aGlzLm92ZXJsYXlTZXJ2aWNlLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgb25JbnNlcnRDb2x1bW5zTGVmdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmluc2VydFRhYmxlQ29sdW1ucyhcbiAgICAgICAgICAgIHRoaXMudGFibGVJbnNlcnRJbmRleCxcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW5zQ291bnQsXG4gICAgICAgICAgICB0aGlzLnRhcmdldHMuY2VsbEluZGV4ZXMuc3RhcnRJbmRleCxcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uUmFuZ2UuY2VsbEluZGV4ZXMuc3RhcnRJbmRleCxcbiAgICAgICAgICAgIHRoaXMuc2Vzc2lvbklkXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMub3ZlcmxheVNlcnZpY2UuY2xvc2UoKTtcbiAgICB9XG5cbiAgICBvbkluc2VydENvbHVtbnNSaWdodCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmluc2VydFRhYmxlQ29sdW1ucyhcbiAgICAgICAgICAgIHRoaXMudGFibGVJbnNlcnRJbmRleCxcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW5zQ291bnQsXG4gICAgICAgICAgICB0aGlzLnRhcmdldHMuY2VsbEluZGV4ZXMuZW5kSW5kZXgsXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvblJhbmdlLmNlbGxJbmRleGVzLmVuZEluZGV4LFxuICAgICAgICAgICAgdGhpcy5zZXNzaW9uSWRcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5vdmVybGF5U2VydmljZS5jbG9zZSgpO1xuICAgIH1cblxuICAgIG9uUmVtb3ZlUm93cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLnJlbW92ZVRhYmxlUm93cyhcbiAgICAgICAgICAgIHRoaXMudGFibGVJbnNlcnRJbmRleCxcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uUmFuZ2Uucm93SW5kZXhlcy5zdGFydEluZGV4LFxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25SYW5nZS5yb3dJbmRleGVzLmVuZEluZGV4LFxuICAgICAgICAgICAgdGhpcy5zZXNzaW9uSWRcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5vdmVybGF5U2VydmljZS5jbG9zZSgpO1xuICAgIH1cblxuICAgIG9uUmVtb3ZlQ29sdW1ucygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLnJlbW92ZVRhYmxlQ29sdW1ucyhcbiAgICAgICAgICAgIHRoaXMudGFibGVJbnNlcnRJbmRleCxcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uUmFuZ2UuY2VsbEluZGV4ZXMuc3RhcnRJbmRleCxcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uUmFuZ2UuY2VsbEluZGV4ZXMuZW5kSW5kZXgsXG4gICAgICAgICAgICB0aGlzLnNlc3Npb25JZFxuICAgICAgICApO1xuICAgICAgICB0aGlzLm92ZXJsYXlTZXJ2aWNlLmNsb3NlKCk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwibWVudS1pdGVtXCJcbiAgICAoY2xpY2spPVwib25JbnNlcnRSb3dzQWJvdmUoKVwiPlxuICAgIDxtYXQtaWNvblxuICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgIGZvbnRJY29uPVwiaWNvbi1hZGRcIj48L21hdC1pY29uPlxuICAgIHt7IGluc2VydE1lc3NhZ2VzLmluc2VydFJvd3NBYm92ZU1lc3NhZ2UgfX1cbjwvZGl2PlxuPGRpdlxuICAgIGNsYXNzPVwibWVudS1pdGVtXCJcbiAgICAoY2xpY2spPVwib25JbnNlcnRSb3dzQmVsb3coKVwiPlxuICAgIDxtYXQtaWNvblxuICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgIGZvbnRJY29uPVwiaWNvbi1hZGRcIj48L21hdC1pY29uPlxuICAgIHt7IGluc2VydE1lc3NhZ2VzLmluc2VydFJvd3NCZWxvd01lc3NhZ2UgfX1cbjwvZGl2PlxuPGRpdlxuICAgIGNsYXNzPVwibWVudS1pdGVtXCJcbiAgICAoY2xpY2spPVwib25JbnNlcnRDb2x1bW5zTGVmdCgpXCI+XG4gICAgPG1hdC1pY29uXG4gICAgICAgIGZvbnRTZXQ9XCJuYy1pY29uXCJcbiAgICAgICAgZm9udEljb249XCJpY29uLWFkZFwiPjwvbWF0LWljb24+XG4gICAge3sgaW5zZXJ0TWVzc2FnZXMuaW5zZXJ0Q29sdW1uc0xlZnRNZXNzYWdlIH19XG48L2Rpdj5cbjxkaXZcbiAgICBjbGFzcz1cIm1lbnUtaXRlbVwiXG4gICAgKGNsaWNrKT1cIm9uSW5zZXJ0Q29sdW1uc1JpZ2h0KClcIj5cbiAgICA8bWF0LWljb25cbiAgICAgICAgZm9udFNldD1cIm5jLWljb25cIlxuICAgICAgICBmb250SWNvbj1cImljb24tYWRkXCI+PC9tYXQtaWNvbj5cbiAgICB7eyBpbnNlcnRNZXNzYWdlcy5pbnNlcnRDb2x1bW5zUmlnaHRNZXNzYWdlIH19XG48L2Rpdj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJjYW5SZW1vdmVSb3dzIHx8IGNhblJlbW92ZUNvbHVtbnNcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWVudS1zZXBhcmF0b3JcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtc2VwYXJhdG9yLXRvcFwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1zZXBhcmF0b3ItYm90dG9tXCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgICAqbmdJZj1cImNhblJlbW92ZVJvd3NcIlxuICAgICAgICBjbGFzcz1cIm1lbnUtaXRlbVwiXG4gICAgICAgIChjbGljayk9XCJvblJlbW92ZVJvd3MoKVwiPlxuICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgIGZvbnRTZXQ9XCJuYy1pY29uXCJcbiAgICAgICAgICAgIGZvbnRJY29uPVwiaWNvbi1kZWxldGVcIj48L21hdC1pY29uPlxuICAgICAgICB7eyByZW1vdmVNZXNzYWdlcy5yZW1vdmVSb3dzTWVzc2FnZSB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJjYW5SZW1vdmVDb2x1bW5zXCJcbiAgICAgICAgY2xhc3M9XCJtZW51LWl0ZW1cIlxuICAgICAgICAoY2xpY2spPVwib25SZW1vdmVDb2x1bW5zKClcIj5cbiAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgICAgICBmb250SWNvbj1cImljb24tZGVsZXRlXCI+PC9tYXQtaWNvbj5cbiAgICAgICAge3sgcmVtb3ZlTWVzc2FnZXMucmVtb3ZlQ29sdW1uc01lc3NhZ2UgfX1cbiAgICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
@@ -2,7 +2,7 @@ import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewChild } fro
|
|
|
2
2
|
import { DocxModel } from '../../models/generated/docx.model';
|
|
3
3
|
import { Editor } from './core/editor';
|
|
4
4
|
import { EDITOR_VERSION } from './core/constants/editor-version.const';
|
|
5
|
-
import {
|
|
5
|
+
import { EXTERNAL_ELEMENT_SIDENAV } from './custom-components/external-element/external-elements.const';
|
|
6
6
|
import { FontMetrics } from './core/helpers/font-metrics.helper';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "./custom-components/shared/services/component/component.service";
|
|
@@ -10,9 +10,7 @@ import * as i2 from "./interaction/editor.service";
|
|
|
10
10
|
import * as i3 from "./execution/regulator.service";
|
|
11
11
|
import * as i4 from "../services/commands.service";
|
|
12
12
|
import * as i5 from "@angular/cdk/clipboard";
|
|
13
|
-
import * as i6 from "@angular/
|
|
14
|
-
import * as i7 from "@angular/material/sidenav";
|
|
15
|
-
import * as i8 from "./custom-components/external-element/element-toolbar/element-toolbar.component";
|
|
13
|
+
import * as i6 from "@angular/material/sidenav";
|
|
16
14
|
export class EditorComponent {
|
|
17
15
|
get isViewOnly$() {
|
|
18
16
|
return this.editorService.isViewOnly$;
|
|
@@ -38,7 +36,6 @@ export class EditorComponent {
|
|
|
38
36
|
this.class = 'base-editor';
|
|
39
37
|
this.subscriptions = [];
|
|
40
38
|
this.sidenavComponentRef = null;
|
|
41
|
-
this.elements = this.injector.get(EXTERNAL_ELEMENT_SERVICE).elements;
|
|
42
39
|
this.sidenavProperties = this.injector.get(EXTERNAL_ELEMENT_SIDENAV);
|
|
43
40
|
FontMetrics.checkVersion(EDITOR_VERSION);
|
|
44
41
|
}
|
|
@@ -53,10 +50,6 @@ export class EditorComponent {
|
|
|
53
50
|
this.editor = new Editor(content, this.container, this.editorService, this.regulatorService, this.commandsService, this.clipboard, this.customPageWidth);
|
|
54
51
|
this.subscriptions.push(this.toggleSidenavSubscription());
|
|
55
52
|
}
|
|
56
|
-
createElement(model) {
|
|
57
|
-
this.editor.createCustomElement(model);
|
|
58
|
-
this.editor.focus();
|
|
59
|
-
}
|
|
60
53
|
toggleSidenavSubscription() {
|
|
61
54
|
return this.editorService.toggleSidenav$.subscribe(data => {
|
|
62
55
|
if (this.sidenav.opened === data.open) {
|
|
@@ -79,12 +72,12 @@ export class EditorComponent {
|
|
|
79
72
|
this.cdr.markForCheck();
|
|
80
73
|
});
|
|
81
74
|
}
|
|
82
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
83
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
75
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditorComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.ComponentService }, { token: i2.EditorService }, { token: i0.Injector }, { token: i3.RegulatorService }, { token: i4.CommandsService }, { token: i5.Clipboard }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
76
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: EditorComponent, selector: "app-editor", inputs: { customPageWidth: "customPageWidth", content: "content" }, host: { properties: { "class": "this.class" } }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, static: true }, { propertyName: "sidenavContainer", first: true, predicate: ["drawerContainer"], descendants: true, static: true }, { propertyName: "sidenav", first: true, predicate: ["drawer"], descendants: true, static: true }], ngImport: i0, template: "<mat-drawer-container\n class=\"sidenav-container\"\n [hasBackdrop]=\"sidenavProperties.hasBackdrop\">\n <mat-drawer-content>\n <div class=\"container\">\n <div\n #container\n class=\"edit-container\"></div>\n </div>\n </mat-drawer-content>\n <mat-drawer\n #drawer\n [autoFocus]=\"sidenavProperties.autoFocus\"\n [position]=\"sidenavProperties.position\"\n [mode]=\"sidenavProperties.mode\">\n <div\n #drawerContainer\n class=\"drawer-container\"></div>\n </mat-drawer>\n</mat-drawer-container>\n", styles: [":host{flex:1;display:flex;position:relative}.sidenav-container{width:100%}.container{height:100%;display:flex;justify-content:center}:host::ng-deep .ace-editor{position:relative;line-height:1;font-size:12pt;font-family:Courier New,Courier,monospace;text-align:left;width:100%;height:100%}:host::ng-deep .ace-scroller{position:absolute;overflow:hidden;top:0;bottom:0;-webkit-user-select:none;user-select:none;cursor:text}:host::ng-deep .ace-scrollbar{overflow:hidden scroll;contain:strict;position:absolute;right:0;bottom:0;z-index:6;top:0}:host::ng-deep .ace-scrollbar-inner{position:absolute;cursor:text;left:0;top:0}:host::ng-deep .ace-text-input{position:absolute;z-index:0;width:.5em;height:1em;opacity:0;background:transparent;appearance:none;border:none;resize:none;overflow:hidden;font:inherit;padding:0 1px;margin:0 -1px;contain:strict;-webkit-user-select:text;user-select:text}:host::ng-deep .ace-layer{z-index:1;position:absolute;word-wrap:normal;white-space:pre;height:100%;width:100%;box-sizing:border-box;pointer-events:none}:host::ng-deep .ace-text-layer{font:inherit!important;position:absolute;contain:style size layout;pointer-events:auto}:host::ng-deep .ace-edges-layer{z-index:2}:host::ng-deep .ace-line{display:flex;align-items:baseline;line-height:normal}:host::ng-deep .ace-line .hyperlink-hover{cursor:pointer}:host::ng-deep .ace-line>*{display:inline-block;font-kerning:none}:host::ng-deep .ace-line>*.paragraph-symbol{align-self:flex-end}:host::ng-deep .ace-content{position:inherit;box-sizing:border-box;min-width:100%;contain:style size layout;inset:0}:host::ng-deep .ace-line-group{display:inline-flex}:host::ng-deep .ace-line-group .lines-container{width:100%}:host::ng-deep .ace-line-group .numberingMarker{display:inline-flex}:host::ng-deep .ace-line-group .numberingMarker span{align-self:end}:host::ng-deep .ace-text-layer>.ace-line,:host::ng-deep .ace-text-layer>.ace-line-group,:host::ng-deep .ace-edges-layer>.ace-line,:host::ng-deep .ace-edges-layer>.ace-line-group{contain:style size layout;position:absolute;top:0;left:0;right:0}:host::ng-deep .ace-text-layer>.ace-line-group:has(.focused){z-index:1}:host::ng-deep .ace-line-group:has(.lines-container>.ace-line:first-child>span:not(:empty)){align-items:baseline}:host::ng-deep .ace-cursor-layer{z-index:4}:host::ng-deep .ace-cursor-layer.selecting{display:none}:host::ng-deep .ace-cursor{z-index:4;position:absolute;box-sizing:border-box;border-left:2px solid;transform:translateZ(0)}:host::ng-deep .ace-hidden-cursors .ace-cursor{opacity:0}:host::ng-deep .ace-hidden-cursors{visibility:hidden}:host::ng-deep .ace-animate-blinking .ace-cursor{animation-duration:1s;animation-timing-function:step-end;animation-name:blink-ace-animate;animation-iteration-count:infinite}:host::ng-deep .ace-animate-blinking.ace-smooth-blinking .ace-cursor{animation-duration:1s;animation-timing-function:ease-in-out;animation-name:blink-ace-animate-smooth}@keyframes blink-ace-animate{0%,to{opacity:1}60%{opacity:0}}@keyframes blink-ace-animate-smooth{0%,to{opacity:1}45%{opacity:1}60%{opacity:0}85%{opacity:0}}:host::ng-deep .ace-selection-layer .ace-selection{position:absolute;z-index:5}:host::ng-deep .ace-selection-layer.text-selection .ace-selection{background-color:#5ea8f766}:host::ng-deep .ace-selection-layer.notes-highlight .ace-selection{background:#ff06}:host::ng-deep .ace-underline{text-decoration:underline}:host::ng-deep .ace-bold{font-weight:700}:host::ng-deep .ace-italic{font-style:italic}:host::ng-deep .page{width:100%;position:absolute}:host::ng-deep .page-label{position:absolute;top:40px;right:96px;font-family:Courier New,Courier,monospace;font-size:16px;line-height:1}:host::ng-deep .font-baseline{visibility:hidden;height:500px}:host::ng-deep .font-baseline span:after{content:\"\";height:100%;display:inline-block}:host::ng-deep .ruler-line{position:absolute;top:0;bottom:0;width:0;border-left:1px solid rgba(0,0,0,.4);opacity:.5;display:none;z-index:1}:host::ng-deep .ruler-line.visible{display:block}:host::ng-deep .drawer-container .mat-button-toggle-button{height:48px;border-radius:4px}:host::ng-deep .drawer-container .mat-button-toggle-checked button{height:48px;border-radius:4px}\n"], dependencies: [{ kind: "component", type: i6.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i6.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: i6.MatDrawerContent, selector: "mat-drawer-content" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
84
77
|
}
|
|
85
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
78
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditorComponent, decorators: [{
|
|
86
79
|
type: Component,
|
|
87
|
-
args: [{ selector: 'app-editor', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-drawer-container\n class=\"sidenav-container\"\n [hasBackdrop]=\"sidenavProperties.hasBackdrop\">\n <mat-drawer-content>\n <div class=\"container\">\n <div\n #container\n class=\"edit-container\"></div>\n
|
|
80
|
+
args: [{ selector: 'app-editor', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-drawer-container\n class=\"sidenav-container\"\n [hasBackdrop]=\"sidenavProperties.hasBackdrop\">\n <mat-drawer-content>\n <div class=\"container\">\n <div\n #container\n class=\"edit-container\"></div>\n </div>\n </mat-drawer-content>\n <mat-drawer\n #drawer\n [autoFocus]=\"sidenavProperties.autoFocus\"\n [position]=\"sidenavProperties.position\"\n [mode]=\"sidenavProperties.mode\">\n <div\n #drawerContainer\n class=\"drawer-container\"></div>\n </mat-drawer>\n</mat-drawer-container>\n", styles: [":host{flex:1;display:flex;position:relative}.sidenav-container{width:100%}.container{height:100%;display:flex;justify-content:center}:host::ng-deep .ace-editor{position:relative;line-height:1;font-size:12pt;font-family:Courier New,Courier,monospace;text-align:left;width:100%;height:100%}:host::ng-deep .ace-scroller{position:absolute;overflow:hidden;top:0;bottom:0;-webkit-user-select:none;user-select:none;cursor:text}:host::ng-deep .ace-scrollbar{overflow:hidden scroll;contain:strict;position:absolute;right:0;bottom:0;z-index:6;top:0}:host::ng-deep .ace-scrollbar-inner{position:absolute;cursor:text;left:0;top:0}:host::ng-deep .ace-text-input{position:absolute;z-index:0;width:.5em;height:1em;opacity:0;background:transparent;appearance:none;border:none;resize:none;overflow:hidden;font:inherit;padding:0 1px;margin:0 -1px;contain:strict;-webkit-user-select:text;user-select:text}:host::ng-deep .ace-layer{z-index:1;position:absolute;word-wrap:normal;white-space:pre;height:100%;width:100%;box-sizing:border-box;pointer-events:none}:host::ng-deep .ace-text-layer{font:inherit!important;position:absolute;contain:style size layout;pointer-events:auto}:host::ng-deep .ace-edges-layer{z-index:2}:host::ng-deep .ace-line{display:flex;align-items:baseline;line-height:normal}:host::ng-deep .ace-line .hyperlink-hover{cursor:pointer}:host::ng-deep .ace-line>*{display:inline-block;font-kerning:none}:host::ng-deep .ace-line>*.paragraph-symbol{align-self:flex-end}:host::ng-deep .ace-content{position:inherit;box-sizing:border-box;min-width:100%;contain:style size layout;inset:0}:host::ng-deep .ace-line-group{display:inline-flex}:host::ng-deep .ace-line-group .lines-container{width:100%}:host::ng-deep .ace-line-group .numberingMarker{display:inline-flex}:host::ng-deep .ace-line-group .numberingMarker span{align-self:end}:host::ng-deep .ace-text-layer>.ace-line,:host::ng-deep .ace-text-layer>.ace-line-group,:host::ng-deep .ace-edges-layer>.ace-line,:host::ng-deep .ace-edges-layer>.ace-line-group{contain:style size layout;position:absolute;top:0;left:0;right:0}:host::ng-deep .ace-text-layer>.ace-line-group:has(.focused){z-index:1}:host::ng-deep .ace-line-group:has(.lines-container>.ace-line:first-child>span:not(:empty)){align-items:baseline}:host::ng-deep .ace-cursor-layer{z-index:4}:host::ng-deep .ace-cursor-layer.selecting{display:none}:host::ng-deep .ace-cursor{z-index:4;position:absolute;box-sizing:border-box;border-left:2px solid;transform:translateZ(0)}:host::ng-deep .ace-hidden-cursors .ace-cursor{opacity:0}:host::ng-deep .ace-hidden-cursors{visibility:hidden}:host::ng-deep .ace-animate-blinking .ace-cursor{animation-duration:1s;animation-timing-function:step-end;animation-name:blink-ace-animate;animation-iteration-count:infinite}:host::ng-deep .ace-animate-blinking.ace-smooth-blinking .ace-cursor{animation-duration:1s;animation-timing-function:ease-in-out;animation-name:blink-ace-animate-smooth}@keyframes blink-ace-animate{0%,to{opacity:1}60%{opacity:0}}@keyframes blink-ace-animate-smooth{0%,to{opacity:1}45%{opacity:1}60%{opacity:0}85%{opacity:0}}:host::ng-deep .ace-selection-layer .ace-selection{position:absolute;z-index:5}:host::ng-deep .ace-selection-layer.text-selection .ace-selection{background-color:#5ea8f766}:host::ng-deep .ace-selection-layer.notes-highlight .ace-selection{background:#ff06}:host::ng-deep .ace-underline{text-decoration:underline}:host::ng-deep .ace-bold{font-weight:700}:host::ng-deep .ace-italic{font-style:italic}:host::ng-deep .page{width:100%;position:absolute}:host::ng-deep .page-label{position:absolute;top:40px;right:96px;font-family:Courier New,Courier,monospace;font-size:16px;line-height:1}:host::ng-deep .font-baseline{visibility:hidden;height:500px}:host::ng-deep .font-baseline span:after{content:\"\";height:100%;display:inline-block}:host::ng-deep .ruler-line{position:absolute;top:0;bottom:0;width:0;border-left:1px solid rgba(0,0,0,.4);opacity:.5;display:none;z-index:1}:host::ng-deep .ruler-line.visible{display:block}:host::ng-deep .drawer-container .mat-button-toggle-button{height:48px;border-radius:4px}:host::ng-deep .drawer-container .mat-button-toggle-checked button{height:48px;border-radius:4px}\n"] }]
|
|
88
81
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.ComponentService }, { type: i2.EditorService }, { type: i0.Injector }, { type: i3.RegulatorService }, { type: i4.CommandsService }, { type: i5.Clipboard }], propDecorators: { customPageWidth: [{
|
|
89
82
|
type: Input
|
|
90
83
|
}], content: [{
|
|
@@ -102,4 +95,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
102
95
|
type: HostBinding,
|
|
103
96
|
args: ['class']
|
|
104
97
|
}] } });
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliLytzaGFyZWQvZWRpdG9yL2VkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci9lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBR1QsV0FBVyxFQUVYLEtBQUssRUFFTCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFPdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBR3ZFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBR2xJLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7OztBQVNqRSxNQUFNLE9BQU8sZUFBZTtJQUN4QixJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDO0lBQzFDLENBQUM7SUFJRCxJQUNJLE9BQU8sQ0FBQyxLQUFnQjtRQUN4QixJQUFJLEtBQUssRUFBRTtZQUNQLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxTQUFTLENBQUMsUUFBcUIsQ0FBQyxDQUFDO1NBQ3hEO1FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFD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QUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2dCQUNoRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO2FBQ25DO1lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFO2dCQUM3QiwrQkFBK0I7WUFDbkMsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0FuR1EsZUFBZTtrR0FBZixlQUFlLG1mQ25DNUIsazNCQXlCQTs7MkZEVWEsZUFBZTtrQkFOM0IsU0FBUzsrQkFDSSxZQUFZLG1CQUdMLHVCQUF1QixDQUFDLE1BQU07NlBBT3RDLGVBQWU7c0JBQXZCLEtBQUs7Z0JBR0YsT0FBTztzQkFEVixLQUFLO2dCQWNvQyxTQUFTO3NCQUFsRCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRVEsZ0JBQWdCO3NCQUEvRCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFUCxPQUFPO3NCQUE3QyxTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRWYsS0FBSztzQkFBMUIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENsaXBib2FyZCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jbGlwYm9hcmQnO1xuaW1wb3J0IHsgTWF0RHJhd2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQ29tbWFuZHNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29tbWFuZHMuc2VydmljZSc7XG5pbXBvcnQgeyBDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnLi9jdXN0b20tY29tcG9uZW50cy9zaGFyZWQvc2VydmljZXMvY29tcG9uZW50L2NvbXBvbmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IERvY3hNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvZG9jeC5tb2RlbCc7XG5pbXBvcnQgeyBFZGl0b3IgfSBmcm9tICcuL2NvcmUvZWRpdG9yJztcbmltcG9ydCB7IEVESVRPUl9WRVJTSU9OIH0gZnJvbSAnLi9jb3JlL2NvbnN0YW50cy9lZGl0b3ItdmVyc2lvbi5jb25zdCc7XG5pbXBvcnQgeyBFZGl0b3JTZXJ2aWNlIH0gZnJvbSAnLi9pbnRlcmFjdGlvbi9lZGl0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBFbGVtZW50RGF0YU1vZGVsIH0gZnJvbSAnLi9jdXN0b20tY29tcG9uZW50cy9leHRlcm5hbC1lbGVtZW50L21vZGVscy9lbGVtZW50LWRhdGEubW9kZWwnO1xuaW1wb3J0IHsgRVhURVJOQUxfRUxFTUVOVF9TRVJWSUNFLCBFWFRFUk5BTF9FTEVNRU5UX1NJREVOQVYgfSBmcm9tICcuL2N1c3RvbS1jb21wb25lbnRzL2V4dGVybmFsLWVsZW1lbnQvZXh0ZXJuYWwtZWxlbWVudHMuY29uc3QnO1xuaW1wb3J0IHsgRXh0ZXJuYWxFbGVtZW50TW9kZWwgfSBmcm9tICcuL2N1c3RvbS1jb21wb25lbnRzL2V4dGVybmFsLWVsZW1lbnQvbW9kZWxzL2V4dGVybmFsLWVsZW1lbnQubW9kZWwnO1xuaW1wb3J0IHsgRXh0ZXJuYWxTaWRlbmF2TW9kZWwgfSBmcm9tICcuL2N1c3RvbS1jb21wb25lbnRzL2V4dGVybmFsLWVsZW1lbnQvbW9kZWxzL2V4dGVybmFsLXNpZGVuYXYubW9kZWwnO1xuaW1wb3J0IHsgRm9udE1ldHJpY3MgfSBmcm9tICcuL2NvcmUvaGVscGVycy9mb250LW1ldHJpY3MuaGVscGVyJztcbmltcG9ydCB7IFJlZ3VsYXRvclNlcnZpY2UgfSBmcm9tICcuL2V4ZWN1dGlvbi9yZWd1bGF0b3Iuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLWVkaXRvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZWRpdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBnZXQgaXNWaWV3T25seSQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmVkaXRvclNlcnZpY2UuaXNWaWV3T25seSQ7XG4gICAgfVxuXG4gICAgQElucHV0KCkgY3VzdG9tUGFnZVdpZHRoPzogbnVtYmVyO1xuXG4gICAgQElucHV0KClcbiAgICBzZXQgY29udGVudChtb2RlbDogRG9jeE1vZGVsKSB7XG4gICAgICAgIGlmIChtb2RlbCkge1xuICAgICAgICAgICAgY29uc3QgZGVlcENvcHkgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG1vZGVsKSk7XG4gICAgICAgICAgICB0aGlzLl9jb250ZW50ID0gbmV3IERvY3hNb2RlbChkZWVwQ29weSBhcyBEb2N4TW9kZWwpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pbml0RWRpdG9yKHRoaXMuX2NvbnRlbnQpO1xuICAgIH1cbiAgICBnZXQgY29udGVudCgpOiBEb2N4TW9kZWwge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGVudDtcbiAgICB9XG4gICAgcHJpdmF0ZSBfY29udGVudDogRG9jeE1vZGVsO1xuXG4gICAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSkgY29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIEBWaWV3Q2hpbGQoJ2RyYXdlckNvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pIHNpZGVuYXZDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZCgnZHJhd2VyJywgeyBzdGF0aWM6IHRydWUgfSkgc2lkZW5hdjogTWF0RHJhd2VyO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGNsYXNzID0gJ2Jhc2UtZWRpdG9yJztcblxuICAgIGVkaXRvcjogRWRpdG9yO1xuXG4gICAgZWxlbWVudHM6IEV4dGVybmFsRWxlbWVudE1vZGVsW107XG5cbiAgICBzaWRlbmF2UHJvcGVydGllczogRXh0ZXJuYWxTaWRlbmF2TW9kZWw7XG5cbiAgICByZWFkb25seSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBzaWRlbmF2Q29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PiB8IG51bGwgPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBjb21wb25lbnRTZXJ2aWNlOiBDb21wb25lbnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGVkaXRvclNlcnZpY2U6IEVkaXRvclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIHJlZ3VsYXRvclNlcnZpY2U6IFJlZ3VsYXRvclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY29tbWFuZHNTZXJ2aWNlOiBDb21tYW5kc1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY2xpcGJvYXJkOiBDbGlwYm9hcmRcbiAgICApIHtcbiAgICAgICAgdGhpcy5lbGVtZW50cyA9IHRoaXMuaW5qZWN0b3IuZ2V0KEVYVEVSTkFMX0VMRU1FTlRfU0VSVklDRSkuZWxlbWVudHM7XG4gICAgICAgIHRoaXMuc2lkZW5hdlByb3BlcnRpZXMgPSB0aGlzLmluamVjdG9yLmdldChFWFRFUk5BTF9FTEVNRU5UX1NJREVOQVYpO1xuICAgICAgICBGb250TWV0cmljcy5jaGVja1ZlcnNpb24oRURJVE9SX1ZFUlNJT04pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVkaXRvcj8uZGVzdHJveSgpO1xuICAgICAgICB0aGlzLnJlZ3VsYXRvclNlcnZpY2UuY2xlYXJBbGxTZXNzaW9ucygpO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaCh4ID0+IHg/LnVuc3Vic2NyaWJlKCkpO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuc3BsaWNlKDApO1xuICAgIH1cblxuICAgIGluaXRFZGl0b3IoY29udGVudDogRG9jeE1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5lZGl0b3IgPSBuZXcgRWRpdG9yKFxuICAgICAgICAgICAgY29udGVudCxcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLFxuICAgICAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLFxuICAgICAgICAgICAgdGhpcy5yZWd1bGF0b3JTZXJ2aWNlLFxuICAgICAgICAgICAgdGhpcy5jb21tYW5kc1NlcnZpY2UsXG4gICAgICAgICAgICB0aGlzLmNsaXBib2FyZCxcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tUGFnZVdpZHRoXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMudG9nZ2xlU2lkZW5hdlN1YnNjcmlwdGlvbigpKTtcbiAgICB9XG5cbiAgICBjcmVhdGVFbGVtZW50KG1vZGVsOiBFbGVtZW50RGF0YU1vZGVsKSB7XG4gICAgICAgIHRoaXMuZWRpdG9yLmNyZWF0ZUN1c3RvbUVsZW1lbnQobW9kZWwpO1xuICAgICAgICB0aGlzLmVkaXRvci5mb2N1cygpO1xuICAgIH1cblxuICAgIHRvZ2dsZVNpZGVuYXZTdWJzY3JpcHRpb24oKTogU3Vic2NyaXB0aW9uIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWRpdG9yU2VydmljZS50b2dnbGVTaWRlbmF2JC5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5zaWRlbmF2Lm9wZW5lZCA9PT0gZGF0YS5vcGVuKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEub3Blbikge1xuICAgICAgICAgICAgICAgIHRoaXMuc2lkZW5hdkNvbXBvbmVudFJlZiA9IHRoaXMuY29tcG9uZW50U2VydmljZS5jcmVhdGVDb21wb25lbnQoZGF0YS5jb21wb25lbnQsIHtcbiAgICAgICAgICAgICAgICAgICAgbW9kZWw6IGRhdGEubW9kZWwsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnRXaWR0aDogZGF0YS5jb250ZW50V2lkdGhcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFNlcnZpY2UuYXR0YWNoQ29tcG9uZW50KHRoaXMuc2lkZW5hdkNvbnRhaW5lci5uYXRpdmVFbGVtZW50LCB0aGlzLnNpZGVuYXZDb21wb25lbnRSZWYpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFNlcnZpY2UucmVtb3ZlQ29tcG9uZW50KHRoaXMuc2lkZW5hdkNvbXBvbmVudFJlZik7XG4gICAgICAgICAgICAgICAgdGhpcy5zaWRlbmF2Q29tcG9uZW50UmVmID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2lkZW5hdi50b2dnbGUoKS5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gY29udGludWUgcmVnYXJkbGVzcyBvZiBlcnJvclxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPG1hdC1kcmF3ZXItY29udGFpbmVyXG4gICAgY2xhc3M9XCJzaWRlbmF2LWNvbnRhaW5lclwiXG4gICAgW2hhc0JhY2tkcm9wXT1cInNpZGVuYXZQcm9wZXJ0aWVzLmhhc0JhY2tkcm9wXCI+XG4gICAgPG1hdC1kcmF3ZXItY29udGVudD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICNjb250YWluZXJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImVkaXQtY29udGFpbmVyXCI+PC9kaXY+XG4gICAgICAgICAgICA8YXBwLWVsZW1lbnQtdG9vbGJhclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZWxlbWVudHMubGVuZ3RoXCJcbiAgICAgICAgICAgICAgICBbZWxlbWVudHNdPVwiZWxlbWVudHNcIlxuICAgICAgICAgICAgICAgIFtpc0Rpc2FibGVkXT1cImlzVmlld09ubHkkIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgIChjcmVhdGVFbGVtZW50KT1cImNyZWF0ZUVsZW1lbnQoJGV2ZW50KVwiPjwvYXBwLWVsZW1lbnQtdG9vbGJhcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9tYXQtZHJhd2VyLWNvbnRlbnQ+XG4gICAgPG1hdC1kcmF3ZXJcbiAgICAgICAgI2RyYXdlclxuICAgICAgICBbYXV0b0ZvY3VzXT1cInNpZGVuYXZQcm9wZXJ0aWVzLmF1dG9Gb2N1c1wiXG4gICAgICAgIFtwb3NpdGlvbl09XCJzaWRlbmF2UHJvcGVydGllcy5wb3NpdGlvblwiXG4gICAgICAgIFttb2RlXT1cInNpZGVuYXZQcm9wZXJ0aWVzLm1vZGVcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgI2RyYXdlckNvbnRhaW5lclxuICAgICAgICAgICAgY2xhc3M9XCJkcmF3ZXItY29udGFpbmVyXCI+PC9kaXY+XG4gICAgPC9tYXQtZHJhd2VyPlxuPC9tYXQtZHJhd2VyLWNvbnRhaW5lcj5cbiJdfQ==
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliLytzaGFyZWQvZWRpdG9yL2VkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci9lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBR1QsV0FBVyxFQUVYLEtBQUssRUFFTCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFPdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRXZFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBRXhHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7QUFTakUsTUFBTSxPQUFPLGVBQWU7SUFDeEIsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztJQUMxQyxDQUFDO0lBSUQsSUFDSSxPQUFPLENBQUMsS0FBZ0I7UUFDeEIsSUFBSSxLQUFLLEVBQUU7WUFDUCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksU0FBUyxDQUFDLFFBQXFCLENBQUMsQ0FBQztTQUN4RDtRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFDRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQW1CRCxZQUNZLEdBQXNCLEVBQ3RCLGdCQUFrQyxFQUNsQyxhQUE0QixFQUM1QixRQUFrQixFQUNsQixnQkFBa0MsRUFDbEMsZUFBZ0MsRUFDaEMsU0FBb0I7UUFOcEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFqQlYsVUFBSyxHQUFHLGFBQWEsQ0FBQztRQU1uQyxrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFFcEMsd0JBQW1CLEdBQTZCLElBQUksQ0FBQztRQVd6RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUNyRSxXQUFXLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBa0I7UUFDekIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQ3BCLE9BQU8sRUFDUCxJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyxhQUFhLEVBQ2xCLElBQUksQ0FBQyxnQkFBZ0IsRUFDckIsSUFBSSxDQUFDLGVBQWUsRUFDcEIsSUFBSSxDQUFDLFNBQVMsRUFDZCxJQUFJLENBQUMsZUFBZSxDQUN2QixDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQseUJBQXlCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3RELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDbkMsT0FBTzthQUNWO1lBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNYLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7b0JBQzdFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztvQkFDakIsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO2lCQUNsQyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2FBQ3hHO2lCQUFNO2dCQUNILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7Z0JBQ2hFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7YUFDbkM7WUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUU7Z0JBQzdCLCtCQUErQjtZQUNuQyxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQTNGUSxlQUFlO21HQUFmLGVBQWUsbWZDakM1QixvbkJBb0JBOzs0RkRhYSxlQUFlO2tCQU4zQixTQUFTOytCQUNJLFlBQVksbUJBR0wsdUJBQXVCLENBQUMsTUFBTTs2UEFPdEMsZUFBZTtzQkFBdkIsS0FBSztnQkFHRixPQUFPO3NCQURWLEtBQUs7Z0JBY29DLFNBQVM7c0JBQWxELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFUSxnQkFBZ0I7c0JBQS9ELFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUVQLE9BQU87c0JBQTdDLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFZixLQUFLO3NCQUExQixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb21wb25lbnRSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xpcGJvYXJkIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NsaXBib2FyZCc7XG5pbXBvcnQgeyBNYXREcmF3ZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBDb21tYW5kc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jb21tYW5kcy5zZXJ2aWNlJztcbmltcG9ydCB7IENvbXBvbmVudFNlcnZpY2UgfSBmcm9tICcuL2N1c3RvbS1jb21wb25lbnRzL3NoYXJlZC9zZXJ2aWNlcy9jb21wb25lbnQvY29tcG9uZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgRG9jeE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9kb2N4Lm1vZGVsJztcbmltcG9ydCB7IEVkaXRvciB9IGZyb20gJy4vY29yZS9lZGl0b3InO1xuaW1wb3J0IHsgRURJVE9SX1ZFUlNJT04gfSBmcm9tICcuL2NvcmUvY29uc3RhbnRzL2VkaXRvci12ZXJzaW9uLmNvbnN0JztcbmltcG9ydCB7IEVkaXRvclNlcnZpY2UgfSBmcm9tICcuL2ludGVyYWN0aW9uL2VkaXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IEVYVEVSTkFMX0VMRU1FTlRfU0lERU5BViB9IGZyb20gJy4vY3VzdG9tLWNvbXBvbmVudHMvZXh0ZXJuYWwtZWxlbWVudC9leHRlcm5hbC1lbGVtZW50cy5jb25zdCc7XG5pbXBvcnQgeyBFeHRlcm5hbFNpZGVuYXZNb2RlbCB9IGZyb20gJy4vY3VzdG9tLWNvbXBvbmVudHMvZXh0ZXJuYWwtZWxlbWVudC9tb2RlbHMvZXh0ZXJuYWwtc2lkZW5hdi5tb2RlbCc7XG5pbXBvcnQgeyBGb250TWV0cmljcyB9IGZyb20gJy4vY29yZS9oZWxwZXJzL2ZvbnQtbWV0cmljcy5oZWxwZXInO1xuaW1wb3J0IHsgUmVndWxhdG9yU2VydmljZSB9IGZyb20gJy4vZXhlY3V0aW9uL3JlZ3VsYXRvci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtZWRpdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIGdldCBpc1ZpZXdPbmx5JCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWRpdG9yU2VydmljZS5pc1ZpZXdPbmx5JDtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBjdXN0b21QYWdlV2lkdGg/OiBudW1iZXIgfCBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBzZXQgY29udGVudChtb2RlbDogRG9jeE1vZGVsKSB7XG4gICAgICAgIGlmIChtb2RlbCkge1xuICAgICAgICAgICAgY29uc3QgZGVlcENvcHkgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG1vZGVsKSk7XG4gICAgICAgICAgICB0aGlzLl9jb250ZW50ID0gbmV3IERvY3hNb2RlbChkZWVwQ29weSBhcyBEb2N4TW9kZWwpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pbml0RWRpdG9yKHRoaXMuX2NvbnRlbnQpO1xuICAgIH1cbiAgICBnZXQgY29udGVudCgpOiBEb2N4TW9kZWwge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGVudDtcbiAgICB9XG4gICAgcHJpdmF0ZSBfY29udGVudDogRG9jeE1vZGVsO1xuXG4gICAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSkgY29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIEBWaWV3Q2hpbGQoJ2RyYXdlckNvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pIHNpZGVuYXZDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZCgnZHJhd2VyJywgeyBzdGF0aWM6IHRydWUgfSkgc2lkZW5hdjogTWF0RHJhd2VyO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGNsYXNzID0gJ2Jhc2UtZWRpdG9yJztcblxuICAgIGVkaXRvcjogRWRpdG9yO1xuXG4gICAgc2lkZW5hdlByb3BlcnRpZXM6IEV4dGVybmFsU2lkZW5hdk1vZGVsO1xuXG4gICAgcmVhZG9ubHkgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICAgIHByaXZhdGUgc2lkZW5hdkNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPGFueT4gfCBudWxsID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgY29tcG9uZW50U2VydmljZTogQ29tcG9uZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBlZGl0b3JTZXJ2aWNlOiBFZGl0b3JTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSByZWd1bGF0b3JTZXJ2aWNlOiBSZWd1bGF0b3JTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNvbW1hbmRzU2VydmljZTogQ29tbWFuZHNTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNsaXBib2FyZDogQ2xpcGJvYXJkXG4gICAgKSB7XG4gICAgICAgIHRoaXMuc2lkZW5hdlByb3BlcnRpZXMgPSB0aGlzLmluamVjdG9yLmdldChFWFRFUk5BTF9FTEVNRU5UX1NJREVOQVYpO1xuICAgICAgICBGb250TWV0cmljcy5jaGVja1ZlcnNpb24oRURJVE9SX1ZFUlNJT04pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVkaXRvcj8uZGVzdHJveSgpO1xuICAgICAgICB0aGlzLnJlZ3VsYXRvclNlcnZpY2UuY2xlYXJBbGxTZXNzaW9ucygpO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaCh4ID0+IHg/LnVuc3Vic2NyaWJlKCkpO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuc3BsaWNlKDApO1xuICAgIH1cblxuICAgIGluaXRFZGl0b3IoY29udGVudDogRG9jeE1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5lZGl0b3IgPSBuZXcgRWRpdG9yKFxuICAgICAgICAgICAgY29udGVudCxcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLFxuICAgICAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLFxuICAgICAgICAgICAgdGhpcy5yZWd1bGF0b3JTZXJ2aWNlLFxuICAgICAgICAgICAgdGhpcy5jb21tYW5kc1NlcnZpY2UsXG4gICAgICAgICAgICB0aGlzLmNsaXBib2FyZCxcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tUGFnZVdpZHRoXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMudG9nZ2xlU2lkZW5hdlN1YnNjcmlwdGlvbigpKTtcbiAgICB9XG5cbiAgICB0b2dnbGVTaWRlbmF2U3Vic2NyaXB0aW9uKCk6IFN1YnNjcmlwdGlvbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmVkaXRvclNlcnZpY2UudG9nZ2xlU2lkZW5hdiQuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2lkZW5hdi5vcGVuZWQgPT09IGRhdGEub3Blbikge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLm9wZW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNpZGVuYXZDb21wb25lbnRSZWYgPSB0aGlzLmNvbXBvbmVudFNlcnZpY2UuY3JlYXRlQ29tcG9uZW50KGRhdGEuY29tcG9uZW50LCB7XG4gICAgICAgICAgICAgICAgICAgIG1vZGVsOiBkYXRhLm1vZGVsLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50V2lkdGg6IGRhdGEuY29udGVudFdpZHRoXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRTZXJ2aWNlLmF0dGFjaENvbXBvbmVudCh0aGlzLnNpZGVuYXZDb250YWluZXIubmF0aXZlRWxlbWVudCwgdGhpcy5zaWRlbmF2Q29tcG9uZW50UmVmKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRTZXJ2aWNlLnJlbW92ZUNvbXBvbmVudCh0aGlzLnNpZGVuYXZDb21wb25lbnRSZWYpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2lkZW5hdkNvbXBvbmVudFJlZiA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNpZGVuYXYudG9nZ2xlKCkuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIGNvbnRpbnVlIHJlZ2FyZGxlc3Mgb2YgZXJyb3JcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxtYXQtZHJhd2VyLWNvbnRhaW5lclxuICAgIGNsYXNzPVwic2lkZW5hdi1jb250YWluZXJcIlxuICAgIFtoYXNCYWNrZHJvcF09XCJzaWRlbmF2UHJvcGVydGllcy5oYXNCYWNrZHJvcFwiPlxuICAgIDxtYXQtZHJhd2VyLWNvbnRlbnQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAjY29udGFpbmVyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJlZGl0LWNvbnRhaW5lclwiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L21hdC1kcmF3ZXItY29udGVudD5cbiAgICA8bWF0LWRyYXdlclxuICAgICAgICAjZHJhd2VyXG4gICAgICAgIFthdXRvRm9jdXNdPVwic2lkZW5hdlByb3BlcnRpZXMuYXV0b0ZvY3VzXCJcbiAgICAgICAgW3Bvc2l0aW9uXT1cInNpZGVuYXZQcm9wZXJ0aWVzLnBvc2l0aW9uXCJcbiAgICAgICAgW21vZGVdPVwic2lkZW5hdlByb3BlcnRpZXMubW9kZVwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAjZHJhd2VyQ29udGFpbmVyXG4gICAgICAgICAgICBjbGFzcz1cImRyYXdlci1jb250YWluZXJcIj48L2Rpdj5cbiAgICA8L21hdC1kcmF3ZXI+XG48L21hdC1kcmF3ZXItY29udGFpbmVyPlxuIl19
|