@worktile/theia 16.3.4 → 16.3.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/editor.module.d.ts +2 -2
- package/esm2022/components/action/prevent-default.mjs +3 -3
- package/esm2022/components/column-resize/column-resize-notifier.mjs +3 -3
- package/esm2022/components/column-resize/column-resize.directive.mjs +3 -3
- package/esm2022/components/column-resize/column-resize.module.mjs +8 -8
- package/esm2022/components/column-resize/event-dispatcher.mjs +3 -3
- package/esm2022/components/column-resize/overlay-handle.component.mjs +3 -3
- package/esm2022/components/column-resize/resizing.store.mjs +3 -3
- package/esm2022/components/contextmenu/contextmenu.component.mjs +3 -3
- package/esm2022/components/conversion-hint/conversion-hint.component.mjs +3 -3
- package/esm2022/components/element/element.component.mjs +3 -3
- package/esm2022/components/inline-toolbar/inline-toolbar.component.mjs +3 -3
- package/esm2022/components/listbox/listbox.mjs +9 -9
- package/esm2022/components/plugin-menu/plugin-menu.component.mjs +3 -3
- package/esm2022/components/table-select/table-select.component.mjs +3 -3
- package/esm2022/components/template/template.component.mjs +3 -3
- package/esm2022/components/text/text.component.mjs +3 -3
- package/esm2022/components/toolbar/toolbar.component.mjs +3 -3
- package/esm2022/components/toolbar-dropdown/toolbar-dropdown.component.mjs +3 -3
- package/esm2022/components/toolbar-group/toolbar-group.component.mjs +3 -3
- package/esm2022/components/toolbar-item/toolbar-item.component.mjs +3 -3
- package/esm2022/core/toolbar-item/base-toolbar-item.mjs +6 -6
- package/esm2022/editor.component.mjs +3 -3
- package/esm2022/editor.module.mjs +4 -4
- package/esm2022/interfaces/view-base.mjs +3 -3
- package/esm2022/pipes.mjs +9 -9
- package/esm2022/plugins/blockquote/blockquote.component.mjs +3 -3
- package/esm2022/plugins/code/code.component.mjs +3 -3
- package/esm2022/plugins/color/toolbar-item.component.mjs +3 -3
- package/esm2022/plugins/hr/hr.component.mjs +3 -3
- package/esm2022/plugins/image/image.component.mjs +5 -5
- package/esm2022/plugins/inline-code/inline-code.component.mjs +3 -3
- package/esm2022/plugins/link/edit/link-edit.component.mjs +3 -3
- package/esm2022/plugins/link/hover/link-hover.component.mjs +3 -3
- package/esm2022/plugins/link/link.component.mjs +6 -6
- package/esm2022/plugins/list/components/bulleted-list.component.mjs +3 -3
- package/esm2022/plugins/list/components/list-item.component.mjs +3 -3
- package/esm2022/plugins/list/components/numbered-list.component.mjs +3 -3
- package/esm2022/plugins/mention/suggestion.component.mjs +3 -3
- package/esm2022/plugins/quick-insert/components/quick-insert.component.mjs +3 -3
- package/esm2022/plugins/table/components/insert-mark/insert-mark.component.mjs +3 -3
- package/esm2022/plugins/table/components/row/row.component.mjs +3 -3
- package/esm2022/plugins/table/components/table.component.mjs +3 -3
- package/esm2022/plugins/table/components/td/td.component.mjs +3 -3
- package/esm2022/plugins/table/components/toolbar/table-options.component.mjs +3 -3
- package/esm2022/plugins/table/components/toolbar/table-toolbar.component.mjs +3 -3
- package/esm2022/plugins/table/table.editor.mjs +11 -12
- package/esm2022/plugins/table/table.pipe.mjs +6 -6
- package/esm2022/plugins/table/table.service.mjs +3 -3
- package/esm2022/plugins/table/table.store.mjs +5 -6
- package/esm2022/plugins/table/toolbar-item.component.mjs +3 -3
- package/esm2022/plugins/table/utils/get-select-cell-node.mjs +1 -8
- package/esm2022/plugins/todo-item/todo-item.component.mjs +3 -3
- package/esm2022/plugins/vertical-align/toolbar-item.component.mjs +3 -3
- package/esm2022/services/context.service.mjs +3 -3
- package/esm2022/services/table-contextmenu.service.mjs +3 -3
- package/esm2022/services/toolbar.service.mjs +3 -3
- package/fesm2022/worktile-theia.mjs +594 -600
- package/fesm2022/worktile-theia.mjs.map +1 -1
- package/interfaces/editor.d.ts +4 -4
- package/package.json +1 -1
- package/plugins/table/table.editor.d.ts +3 -3
- package/plugins/table/utils/get-select-cell-node.d.ts +0 -1
- package/queries/is-range-across-blocks.d.ts +1 -1
|
@@ -8,7 +8,6 @@ import { getNextCell } from './utils';
|
|
|
8
8
|
import { getCellPositionsFromRange, getSelectedCellPositions, isSelectedAllCell, uniqueCellPosition } from './utils/cell-position';
|
|
9
9
|
import { createTablePosition } from './utils/create-table-position';
|
|
10
10
|
import { getMinAndMaxCellIndex } from './utils/get-min-max-cell-index';
|
|
11
|
-
import { focusCell } from './utils/get-select-cell-node';
|
|
12
11
|
import { getCellPositionsBeforeMerge } from './utils/merge-cell';
|
|
13
12
|
import { getTablePath } from './utils/table-entry';
|
|
14
13
|
import * as i0 from "@angular/core";
|
|
@@ -331,7 +330,7 @@ export class TableStore {
|
|
|
331
330
|
this.preFocusCellPath = this.focusCellPath;
|
|
332
331
|
this.focusCellPath = path;
|
|
333
332
|
this.focusCellElement = cellHTMLElement;
|
|
334
|
-
|
|
333
|
+
Transforms.select(this.editor, Editor.start(this.editor, path));
|
|
335
334
|
}
|
|
336
335
|
/**
|
|
337
336
|
* 区域选择开始
|
|
@@ -408,10 +407,10 @@ export class TableStore {
|
|
|
408
407
|
this.setAreaSelectionCells(nextCell);
|
|
409
408
|
}
|
|
410
409
|
}
|
|
411
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
412
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.
|
|
410
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TableStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
411
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TableStore }); }
|
|
413
412
|
}
|
|
414
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
413
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TableStore, decorators: [{
|
|
415
414
|
type: Injectable
|
|
416
415
|
}], ctorParameters: function () { return []; } });
|
|
417
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy90YWJsZS90YWJsZS5zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR3hELE9BQU8sRUFBaUIsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3JELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSx3QkFBd0IsRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25JLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBR25ELE1BQU0sT0FBTyxVQUFVO0lBK0NuQixJQUFJLGNBQWM7UUFDZCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0Ms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QyxDQUFDO1FBQ2hELE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLElBQUksUUFBUSxFQUFFO1lBQ1YsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3hDO0lBQ0wsQ0FBQzs4R0FyZVEsVUFBVTtrSEFBVixVQUFVOzsyRkFBVixVQUFVO2tCQUR0QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBtZXJnZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2tpcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEVkaXRvciwgTm9kZSwgUGF0aCwgVHJhbnNmb3JtcyB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEFuZ3VsYXJFZGl0b3IgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcbmltcG9ydCB7IENvbG9yVHlwZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9jb2xvci1zZWxlY3QnO1xuaW1wb3J0IHsgVGFibGVDZWxsRWxlbWVudCB9IGZyb20gJy4uLy4uL2N1c3RvbS10eXBlcyc7XG5pbXBvcnQgeyBncm91cEJ5LCBtYXAsIHVuaXEgfSBmcm9tICcuLi8uLi91dGlscy9sb2Rhc2gnO1xuaW1wb3J0IHsgVGFibGVFZGl0b3IgfSBmcm9tICcuL3RhYmxlLmVkaXRvcic7XG5pbXBvcnQgeyBDZWxsUG9zaXRpb24sIFRhYmxlU2VsZWN0Q2VsbERpcmVjdGlvbiB9IGZyb20gJy4vdGFibGUudHlwZXMnO1xuaW1wb3J0IHsgVGFibGVQb3NpdGlvbiwgZ2V0TmV4dENlbGwgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IGdldENlbGxQb3NpdGlvbnNGcm9tUmFuZ2UsIGdldFNlbGVjdGVkQ2VsbFBvc2l0aW9ucywgaXNTZWxlY3RlZEFsbENlbGwsIHVuaXF1ZUNlbGxQb3NpdGlvbiB9IGZyb20gJy4vdXRpbHMvY2VsbC1wb3NpdGlvbic7XG5pbXBvcnQgeyBjcmVhdGVUYWJsZVBvc2l0aW9uIH0gZnJvbSAnLi91dGlscy9jcmVhdGUtdGFibGUtcG9zaXRpb24nO1xuaW1wb3J0IHsgZ2V0TWluQW5kTWF4Q2VsbEluZGV4IH0gZnJvbSAnLi91dGlscy9nZXQtbWluLW1heC1jZWxsLWluZGV4JztcbmltcG9ydCB7IGZvY3VzQ2VsbCB9IGZyb20gJy4vdXRpbHMvZ2V0LXNlbGVjdC1jZWxsLW5vZGUnO1xuaW1wb3J0IHsgZ2V0Q2VsbFBvc2l0aW9uc0JlZm9yZU1lcmdlIH0gZnJvbSAnLi91dGlscy9tZXJnZS1jZWxsJztcbmltcG9ydCB7IGdldFRhYmxlUGF0aCB9IGZyb20gJy4vdXRpbHMvdGFibGUtZW50cnknO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGFibGVTdG9yZSB7XG4gICAgcHJpdmF0ZSBzZWxlY3RlZENlbGxzJDogQmVoYXZpb3JTdWJqZWN0PFRhYmxlQ2VsbEVsZW1lbnRbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRhYmxlQ2VsbEVsZW1lbnRbXT4oW10pO1xuXG4gICAgcHJpdmF0ZSBkYW5nZXJvdXNDZWxscyQ6IEJlaGF2aW9yU3ViamVjdDxDZWxsUG9zaXRpb25bXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFtdKTtcblxuICAgIHByaXZhdGUgY2VsbHNDaGFuZ2VPYmplY3QkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIHByaXZhdGUgdGFibGVDaGFuZ2UkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIHNlbGVjdGVkQ29sdW1uc0luZGV4OiBudW1iZXJbXSA9IFtdO1xuXG4gICAgc2VsZWN0ZWRSb3dzSW5kZXg6IG51bWJlcltdID0gW107XG5cbiAgICBkYW5nZXJvdXNDb2x1bW5zSW5kZXg6IG51bWJlcltdID0gW107XG5cbiAgICBkYW5nZXJvdXNSb3dzSW5kZXg6IG51bWJlcltdID0gW107XG5cbiAgICBpc1NlbGVjdGVkVGFibGU6IGJvb2xlYW47XG5cbiAgICBlZGl0b3I6IEVkaXRvcjtcblxuICAgIHB1YmxpYyBpc0Z1bGxzY3JlZW46IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgYW5jaG9yQ2VsbFBhdGg6IG51bWJlcltdO1xuXG4gICAgcHVibGljIGZvY3VzQ2VsbFBhdGg6IG51bWJlcltdO1xuXG4gICAgcHVibGljIHByZUZvY3VzQ2VsbFBhdGg6IG51bWJlcltdO1xuXG4gICAgcHVibGljIGxhc3RGb2N1c0NlbGxQYXRoOiBudW1iZXJbXTtcblxuICAgIHB1YmxpYyBmb2N1c0NlbGxFbGVtZW50OiBIVE1MVGFibGVDZWxsRWxlbWVudDtcblxuICAgIHB1YmxpYyBpc1ByZXBhcmVTZWxlY3RpbmcgPSBmYWxzZTtcblxuICAgIHB1YmxpYyBpc0NlbGxTZWxlY3RpbmcgPSBmYWxzZTtcblxuICAgIHB1YmxpYyBpc1JpZ2h0Q2xpY2tpbmcgPSBmYWxzZTtcblxuICAgIHB1YmxpYyBpc0ZvY3VzZWRJbnB1dCA9IGZhbHNlO1xuXG4gICAgcHVibGljIHBvaW50ZXJTZWxlY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHB1YmxpYyBhcmVhU2VsZWN0aW9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgbWF4Q29sOiBudW1iZXI7XG5cbiAgICBnZXQgZGFuZ2Vyb3VzQ2VsbHMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhbmdlcm91c0NlbGxzJC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIGdldCBzZWxlY3RlZENlbGxzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZENlbGxzJC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKCkge31cblxuICAgIGluaXRFZGl0b3IoZWRpdG9yOiBFZGl0b3IpIHtcbiAgICAgICAgdGhpcy5lZGl0b3IgPSBlZGl0b3I7XG4gICAgfVxuXG4gICAgZ2V0U2VsZWN0ZWRDZWxsUG9zaXRpb25zKCk6IENlbGxQb3NpdGlvbltdIHtcbiAgICAgICAgcmV0dXJuIGdldFNlbGVjdGVkQ2VsbFBvc2l0aW9ucyh0aGlzLmVkaXRvciwgdGhpcy5zZWxlY3RlZENlbGxzJC5nZXRWYWx1ZSgpKTtcbiAgICB9XG5cbiAgICBwdWJsaXNoRGFuZ2Vyb3VzQ2VsbHModmFsdWU6IENlbGxQb3NpdGlvbltdKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhbmdlcm91c0NlbGxzJC5uZXh0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBzZXRTZWxlY3RlZENvbHVtbnNBbmRSb3dJbmRleCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmVkaXRvcj8uc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwb3MgPSBjcmVhdGVUYWJsZVBvc2l0aW9uKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgaWYgKCFwb3M/LnRhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtZXJnZUJlZm9yZUNlbGxzID0gW107XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkQ2VsbFBvc2l0aW9ucyA9IHRoaXMuZ2V0U2VsZWN0ZWRDZWxsUG9zaXRpb25zKCk7XG4gICAgICAgIHNlbGVjdGVkQ2VsbFBvc2l0aW9ucy5mb3JFYWNoKCh7IHJvdywgY29sIH0pID0+IHtcbiAgICAgICAgICAgIC8vIOiuoeeul+WQiOW5tuWNleWFg+agvOaVsOaNruaXtu+8jOimgeaMieWQiOW5tuWJjeeahOaVsOaNruWkhOeQhlxuICAgICAgICAgICAgbWVyZ2VCZWZvcmVDZWxscy5wdXNoKC4uLmdldENlbGxQb3NpdGlvbnNCZWZvcmVNZXJnZSh0aGlzLmVkaXRvciwgeyByb3csIGNvbCB9KSk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBjZWxscyA9IHVuaXF1ZUNlbGxQb3NpdGlvbihtZXJnZUJlZm9yZUNlbGxzLCBzZWxlY3RlZENlbGxQb3NpdGlvbnMpO1xuICAgICAgICBjb25zdCByb3dHcm91cCA9IGdyb3VwQnkoY2VsbHMsICh7IHJvdyB9KSA9PiByb3cpO1xuICAgICAgICBjb25zdCBjb2xHcm91cCA9IGdyb3VwQnkoY2VsbHMsICh7IGNvbCB9KSA9PiBjb2wpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkUm93c0luZGV4ID0gW107XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW5zSW5kZXggPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCByb3cgaW4gcm93R3JvdXApIHtcbiAgICAgICAgICAgIGlmIChyb3dHcm91cFtyb3ddLmxlbmd0aCA9PT0gcG9zLmdldFdpZHRoKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUm93c0luZGV4LnB1c2gocGFyc2VJbnQocm93LCAxMCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgY29sIGluIGNvbEdyb3VwKSB7XG4gICAgICAgICAgICBpZiAoY29sR3JvdXBbY29sXS5sZW5ndGggPT09IHBvcy5nZXRIZWlnaHQoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW5zSW5kZXgucHVzaChwYXJzZUludChjb2wsIDEwKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3RlZFJvd3NJbmRleCA9IHVuaXEodGhpcy5zZWxlY3RlZFJvd3NJbmRleCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW5zSW5kZXggPSB1bmlxKHRoaXMuc2VsZWN0ZWRDb2x1bW5zSW5kZXgpO1xuICAgICAgICBpZiAoaXNTZWxlY3RlZEFsbENlbGwodGhpcy5lZGl0b3IsIHNlbGVjdGVkQ2VsbFBvc2l0aW9ucykpIHtcbiAgICAgICAgICAgIHRoaXMuaXNTZWxlY3RlZFRhYmxlID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaXNTZWxlY3RlZFRhYmxlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRTZWxlY3RlZENlbGxzKGNlbGxzOiBDZWxsUG9zaXRpb25bXSwgcG9zOiBUYWJsZVBvc2l0aW9uKSB7XG4gICAgICAgIGNvbnN0IHVuaXF1ZUNlbGxzID0gdGhpcy5wb2ludGVyU2VsZWN0aW9uID8gdW5pcXVlQ2VsbFBvc2l0aW9uKGNlbGxzLCB0aGlzLmdldFNlbGVjdGVkQ2VsbFBvc2l0aW9ucygpKSA6IGNlbGxzO1xuICAgICAgICBjb25zdCBjZWxsRWxlbWVudHMgPSB1bmlxdWVDZWxscy5tYXAoY2VsbCA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcG9zLmZpbmRDZWxsQnlQYXRoKGNlbGwpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENlbGxzJC5uZXh0KGNlbGxFbGVtZW50cyk7XG4gICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRDb2x1bW5zQW5kUm93SW5kZXgoKTtcbiAgICB9XG5cbiAgICBzZWxlY3RSb3coZWRpdG9yOiBFZGl0b3IsIGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgcG9zID0gY3JlYXRlVGFibGVQb3NpdGlvbihlZGl0b3IpO1xuICAgICAgICBjb25zdCByYW5nZUNlbGxzID0gZ2V0Q2VsbFBvc2l0aW9uc0Zyb21SYW5nZShpbmRleCwgMCwgaW5kZXggKyAxLCBwb3MuZ2V0V2lkdGgoKSk7XG5cbiAgICAgICAgdGhpcy5jbGVhckxhc3RGb2N1c1BhdGgoKTtcbiAgICAgICAgaWYgKHRoaXMuYXJlYVNlbGVjdGlvbikge1xuICAgICAgICAgICAgdGhpcy5hcmVhU2VsZWN0Um93QW5kQ29sdW1uKHJhbmdlQ2VsbHMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbGFzdENvbEluZGV4ID0gcG9zLnRhYmxlRW50cnlbMF0uY2hpbGRyZW5baW5kZXhdLmNoaWxkcmVuLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICB0aGlzLnNldEFuY2hvckNlbGxQYXRoKHBvcy50YWJsZUVudHJ5WzFdLmNvbmNhdChbaW5kZXgsIGxhc3RDb2xJbmRleF0pKTtcbiAgICAgICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRDZWxscyhyYW5nZUNlbGxzLCBwb3MpO1xuICAgICAgICAgICAgdGhpcy5mb2N1c0NlbGwocG9zLnRhYmxlRW50cnlbMV0uY29uY2F0KFtpbmRleCwgMF0pKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNlbGVjdENvbHVtbihlZGl0b3I6IEVkaXRvciwgaW5kZXg6IG51bWJlcikge1xuICAgICAgICBjb25zdCBwb3MgPSBjcmVhdGVUYWJsZVBvc2l0aW9uKGVkaXRvcik7XG4gICAgICAgIGNvbnN0IHJhbmdlQ2VsbHMgPSBnZXRDZWxsUG9zaXRpb25zRnJvbVJhbmdlKDAsIGluZGV4LCBwb3MuZ2V0SGVpZ2h0KCksIGluZGV4ICsgMSk7XG5cbiAgICAgICAgdGhpcy5jbGVhckxhc3RGb2N1c1BhdGgoKTtcbiAgICAgICAgaWYgKHRoaXMuYXJlYVNlbGVjdGlvbikge1xuICAgICAgICAgICAgdGhpcy5hcmVhU2VsZWN0Um93QW5kQ29sdW1uKHJhbmdlQ2VsbHMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbGFzdFJvd0luZGV4ID0gcG9zLnRhYmxlRW50cnlbMF0uY2hpbGRyZW4ubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIHRoaXMuc2V0QW5jaG9yQ2VsbFBhdGgocG9zLnRhYmxlRW50cnlbMV0uY29uY2F0KFtsYXN0Um93SW5kZXgsIGluZGV4XSkpO1xuICAgICAgICAgICAgdGhpcy5zZXRTZWxlY3RlZENlbGxzKHJhbmdlQ2VsbHMsIHBvcyk7XG4gICAgICAgICAgICB0aGlzLmZvY3VzQ2VsbChwb3MudGFibGVFbnRyeVsxXS5jb25jYXQoWzAsIGluZGV4XSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2VsZWN0VGFibGUoZWRpdG9yOiBFZGl0b3IpIHtcbiAgICAgICAgY29uc3QgcG9zID0gY3JlYXRlVGFibGVQb3NpdGlvbihlZGl0b3IpO1xuICAgICAgICBjb25zdCBjZWxscyA9IGdldENlbGxQb3NpdGlvbnNGcm9tUmFuZ2UoMCwgMCwgcG9zLmdldEhlaWdodCgpLCBwb3MuZ2V0V2lkdGgoKSk7XG4gICAgICAgIGNvbnN0IGxhc3RDZWxsID0gY2VsbHNbY2VsbHMubGVuZ3RoIC0gMV07XG4gICAgICAgIGNvbnN0IGFuY2hvckNlbGxQYXRoID0gcG9zLnRhYmxlRW50cnlbMV0uY29uY2F0KFtsYXN0Q2VsbC5yb3csIGxhc3RDZWxsLmNvbF0pO1xuXG4gICAgICAgIHRoaXMuaXNTZWxlY3RlZFRhYmxlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zZXRTZWxlY3RlZENlbGxzKGNlbGxzLCBwb3MpO1xuICAgICAgICB0aGlzLnNldEFuY2hvckNlbGxQYXRoKGFuY2hvckNlbGxQYXRoKTtcbiAgICAgICAgdGhpcy5mb2N1c0NlbGwocG9zLnRhYmxlRW50cnlbMV0uY29uY2F0KFswLCAwXSkpO1xuICAgIH1cblxuICAgIC8vIOaLlumAieW8gOWniyB8fCDorrDlvZXogZrnhKbngrlcbiAgICBzZWxlY3RDZWxsU3RhcnQoY2VsbDogSFRNTFRhYmxlQ2VsbEVsZW1lbnQsIGVkaXRvcjogRWRpdG9yKSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBBbmd1bGFyRWRpdG9yLnRvU2xhdGVOb2RlKGVkaXRvciwgY2VsbCk7XG4gICAgICAgIGNvbnN0IHBhdGggPSBBbmd1bGFyRWRpdG9yLmZpbmRQYXRoKGVkaXRvciwgbm9kZSk7XG4gICAgICAgIHRoaXMuaXNQcmVwYXJlU2VsZWN0aW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zZXRBbmNob3JDZWxsUGF0aChwYXRoKTtcbiAgICAgICAgdGhpcy5mb2N1c0NlbGxQYXRoID0gcGF0aDtcbiAgICAgICAgdGhpcy5mb2N1c0NlbGxFbGVtZW50ID0gY2VsbDtcbiAgICAgICAgdGhpcy5sYXN0Rm9jdXNDZWxsUGF0aCA9IHBhdGg7XG4gICAgICAgIGlmICghdGhpcy5wcmVGb2N1c0NlbGxQYXRoKSB7XG4gICAgICAgICAgICB0aGlzLnByZUZvY3VzQ2VsbFBhdGggPSB0aGlzLmFuY2hvckNlbGxQYXRoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8g5ouW6YCJXG4gICAgc2VsZWN0Q2VsbHMoZWRpdG9yOiBFZGl0b3IpIHtcbiAgICAgICAgY29uc3QgcG9zID0gY3JlYXRlVGFibGVQb3NpdGlvbihlZGl0b3IpO1xuICAgICAgICBjb25zdCBhbmNob3JQYXRoID0gdGhpcy5hbmNob3JDZWxsUGF0aC5zbGljZSgtMik7XG4gICAgICAgIGNvbnN0IGZvY3VzUGF0aCA9IHRoaXMuZm9jdXNDZWxsUGF0aC5zbGljZSgtMik7XG5cbiAgICAgICAgY29uc3Qgcm93cyA9IFthbmNob3JQYXRoWzBdLCBmb2N1c1BhdGhbMF1dLnNvcnQoKG0sIG4pID0+IG0gLSBuKTtcbiAgICAgICAgY29uc3QgY29sdW1ucyA9IFthbmNob3JQYXRoWzFdLCBmb2N1c1BhdGhbMV1dLnNvcnQoKG0sIG4pID0+IG0gLSBuKTtcblxuICAgICAgICBjb25zdCB7IGNvbHNwYW46IGFuY2hvckNvbFNwYW5Db3VudCwgcm93c3BhbjogYW5jaG9yUm93U3BhbkNvdW50IH0gPSBFZGl0b3Iubm9kZShcbiAgICAgICAgICAgIGVkaXRvcixcbiAgICAgICAgICAgIHRoaXMuYW5jaG9yQ2VsbFBhdGhcbiAgICAgICAgKVswXSBhcyBUYWJsZUNlbGxFbGVtZW50O1xuICAgICAgICBjb25zdCB7IGNvbHNwYW46IGZvY3VzQ29sU3BhbkNvdW50LCByb3dzcGFuOiBmb2N1c1Jvd1NwYW5Db3VudCB9ID0gRWRpdG9yLm5vZGUoZWRpdG9yLCB0aGlzLmZvY3VzQ2VsbFBhdGgpWzBdIGFzIFRhYmxlQ2VsbEVsZW1lbnQ7XG5cbiAgICAgICAgY29uc3QgYW5jaG9yUm93ID0gYW5jaG9yUGF0aFswXSArIChhbmNob3JSb3dTcGFuQ291bnQgfHwgMSkgLSAxO1xuICAgICAgICBjb25zdCBmb2N1c1JvdyA9IGZvY3VzUGF0aFswXSArIChmb2N1c1Jvd1NwYW5Db3VudCB8fCAxKSAtIDE7XG4gICAgICAgIGNvbnN0IGFuY2hvckNvbCA9IGFuY2hvclBhdGhbMV0gKyAoYW5jaG9yQ29sU3BhbkNvdW50IHx8IDEpIC0gMTtcbiAgICAgICAgY29uc3QgZm9jdXNDb2wgPSBmb2N1c1BhdGhbMV0gKyAoZm9jdXNDb2xTcGFuQ291bnQgfHwgMSkgLSAxO1xuXG4gICAgICAgIGxldCBpbml0TWF4Q29sID0gTWF0aC5tYXgoYW5jaG9yQ29sLCBmb2N1c0NvbCk7XG4gICAgICAgIGxldCBpbml0TWF4Um93ID0gTWF0aC5tYXgoYW5jaG9yUm93LCBmb2N1c1Jvdyk7XG4gICAgICAgIGNvbnN0IHsgbWluUm93LCBtYXhSb3csIG1pbkNvbCwgbWF4Q29sIH0gPSBnZXRNaW5BbmRNYXhDZWxsSW5kZXgoXG4gICAgICAgICAgICB0aGlzLmVkaXRvcixcbiAgICAgICAgICAgIHRoaXMuZ2V0U2VsZWN0ZWRDZWxsUG9zaXRpb25zKCksXG4gICAgICAgICAgICBpbml0TWF4Um93LFxuICAgICAgICAgICAgaW5pdE1heENvbCxcbiAgICAgICAgICAgIHJvd3NbMF0sXG4gICAgICAgICAgICBjb2x1bW5zWzBdLFxuICAgICAgICAgICAgcG9zLnRhYmxlXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGNlbGxzID0gZ2V0Q2VsbFBvc2l0aW9uc0Zyb21SYW5nZShtaW5Sb3csIG1pbkNvbCwgbWF4Um93ICsgMSwgbWF4Q29sICsgMSk7XG4gICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRDZWxscyhjZWxscywgcG9zKTtcbiAgICB9XG5cbiAgICBzZWxlY3RGaXJzdENlbGwoKSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkQ2VsbFBvc2l0aW9ucyA9IHRoaXMuZ2V0U2VsZWN0ZWRDZWxsUG9zaXRpb25zKCk7XG4gICAgICAgIGNvbnN0IHsgcm93LCBjb2wgfSA9IHNlbGVjdGVkQ2VsbFBvc2l0aW9uc1swXTtcbiAgICAgICAgY29uc3QgdGFibGVQYXRoID0gZ2V0VGFibGVQYXRoKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgY29uc3QgcGF0aCA9IEVkaXRvci5zdGFydCh0aGlzLmVkaXRvciwgWy4uLnRhYmxlUGF0aCwgcm93LCBjb2xdKTtcbiAgICAgICAgVHJhbnNmb3Jtcy5zZWxlY3QodGhpcy5lZGl0b3IsIHBhdGgpO1xuICAgIH1cblxuICAgIC8vIOmAieaLqeWNleWFg+agvFxuICAgIHNlbGVjdENlbGwoY2VsbDogSFRNTFRhYmxlQ2VsbEVsZW1lbnQsIGVkaXRvcjogRWRpdG9yKSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBBbmd1bGFyRWRpdG9yLnRvU2xhdGVOb2RlKGVkaXRvciwgY2VsbCkgYXMgVGFibGVDZWxsRWxlbWVudDtcbiAgICAgICAgY29uc3QgcGF0aCA9IEFuZ3VsYXJFZGl0b3IuZmluZFBhdGgoZWRpdG9yLCBub2RlKTtcbiAgICAgICAgdGhpcy5zZXRBbmNob3JDZWxsUGF0aChwYXRoKTtcbiAgICAgICAgdGhpcy5mb2N1c0NlbGxQYXRoID0gcGF0aDtcbiAgICAgICAgdGhpcy5mb2N1c0NlbGxFbGVtZW50ID0gY2VsbDtcbiAgICAgICAgY29uc3QgW3JvdywgY29sXSA9IHBhdGguc2xpY2UoLTIpO1xuICAgICAgICBjb25zdCBwb3MgPSBjcmVhdGVUYWJsZVBvc2l0aW9uKGVkaXRvcik7XG4gICAgICAgIGNvbnN0IGNlbGxzOiBDZWxsUG9zaXRpb25bXSA9IFt7IHJvdywgY29sIH1dO1xuICAgICAgICBjb25zdCBzZWxlY3RlZENlbGxQb3NpdGlvbnMgPSB0aGlzLmdldFNlbGVjdGVkQ2VsbFBvc2l0aW9ucygpO1xuICAgICAgICBpZiAodGhpcy5wb2ludGVyU2VsZWN0aW9uKSB7XG4gICAgICAgICAgICBjZWxscy5wdXNoKC4uLnNlbGVjdGVkQ2VsbFBvc2l0aW9ucyk7XG4gICAgICAgICAgICAvLyDlpITnkIbljZXlhYPmoLzpgInkuK3ml7bvvIzlpITnkIbkuLrpgInkuK3lpJrljZXlhYPmoLxcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkQ2VsbHMgPSBnZXRDZWxsUG9zaXRpb25zQmVmb3JlTWVyZ2UodGhpcy5lZGl0b3IsIHsgcm93LCBjb2wgfSk7XG4gICAgICAgICAgICBjZWxscy5wdXNoKC4uLnNlbGVjdGVkQ2VsbHMpO1xuICAgICAgICAgICAgLy8g5bey6IGa54Sm55qE5Y2V5YWD5qC85Zyo5aSa6YCJ5qih5byP5LiL6YCJ5Lit77yI5pqC5a2Y5LiK5qyh6IGa54Sm55qE5Y2V5YWD5qC85pWw5o2u77yJXG4gICAgICAgICAgICBjb25zdCBmb2N1c0NlbGwgPSB0aGlzLmxhc3RGb2N1c0NlbGxQYXRoPy5zbGljZSgtMik7XG4gICAgICAgICAgICBpZiAoZm9jdXNDZWxsKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9jdXNDZWxscyA9IGdldENlbGxQb3NpdGlvbnNCZWZvcmVNZXJnZSh0aGlzLmVkaXRvciwgeyByb3c6IGZvY3VzQ2VsbFswXSwgY29sOiBmb2N1c0NlbGxbMV0gfSk7XG4gICAgICAgICAgICAgICAgY2VsbHMucHVzaCguLi5mb2N1c0NlbGxzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldFNlbGVjdGVkQ2VsbHMoY2VsbHMsIHBvcyk7XG4gICAgfVxuXG4gICAgc2VsZWN0Q2VsbE9uZ29pbmcoY2VsbDogSFRNTFRhYmxlQ2VsbEVsZW1lbnQsIGVkaXRvcjogRWRpdG9yKSB7XG4gICAgICAgIGNvbnN0IHBvcyA9IGNyZWF0ZVRhYmxlUG9zaXRpb24oZWRpdG9yKTtcbiAgICAgICAgaWYgKEFuZ3VsYXJFZGl0b3IuaXNSZWFkb25seShlZGl0b3IpIHx8ICFlZGl0b3Iuc2VsZWN0aW9uIHx8ICFwb3M/LnRhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGlzQ2hhbmdlZDogYm9vbGVhbjtcbiAgICAgICAgaWYgKGNlbGwpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBBbmd1bGFyRWRpdG9yLnRvU2xhdGVOb2RlKGVkaXRvciwgY2VsbCk7XG4gICAgICAgICAgICBjb25zdCBwYXRoID0gQW5ndWxhckVkaXRvci5maW5kUGF0aChlZGl0b3IsIG5vZGUpO1xuICAgICAgICAgICAgaXNDaGFuZ2VkID0gIXRoaXMuZm9jdXNDZWxsUGF0aCB8fCAhUGF0aC5lcXVhbHModGhpcy5mb2N1c0NlbGxQYXRoLCBwYXRoKTtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNDZWxsUGF0aCA9IHBhdGg7XG4gICAgICAgICAgICB0aGlzLmZvY3VzQ2VsbEVsZW1lbnQgPSBjZWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRDZWxsUG9zaXRpb25zID0gdGhpcy5nZXRTZWxlY3RlZENlbGxQb3NpdGlvbnMoKTtcbiAgICAgICAgICAgIGlzQ2hhbmdlZCA9ICF0aGlzLmZvY3VzQ2VsbFBhdGggfHwgKFBhdGguZXF1YWxzKHRoaXMuZm9jdXNDZWxsUGF0aCwgdGhpcy5hbmNob3JDZWxsUGF0aCkgJiYgc2VsZWN0ZWRDZWxsUG9zaXRpb25zLmxlbmd0aCA9PT0gMCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaXNQcmVwYXJlU2VsZWN0aW5nICYmIGlzQ2hhbmdlZCkge1xuICAgICAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KHRoaXMucHJlRm9jdXNDZWxsUGF0aCkgIT09IEpTT04uc3RyaW5naWZ5KHRoaXMuZm9jdXNDZWxsUGF0aCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzQ2VsbFNlbGVjdGluZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RDZWxscyhlZGl0b3IpO1xuICAgICAgICAgICAgICAgIHRoaXMucHJlRm9jdXNDZWxsUGF0aCA9IHRoaXMuZm9jdXNDZWxsUGF0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsZWFyU2VsZWN0ZWRDZWxscygpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENvbHVtbnNJbmRleCA9IFtdO1xuICAgICAgICB0aGlzLnNlbGVjdGVkUm93c0luZGV4ID0gW107XG4gICAgICAgIHRoaXMuaXNTZWxlY3RlZFRhYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNDZWxsU2VsZWN0aW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNSaWdodENsaWNraW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNGb2N1c2VkSW5wdXQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENlbGxzJC5uZXh0KFtdKTtcbiAgICB9XG5cbiAgICBjbGVhckxhc3RGb2N1c1BhdGgoKSB7XG4gICAgICAgIHRoaXMubGFzdEZvY3VzQ2VsbFBhdGggPSBudWxsO1xuICAgIH1cblxuICAgIHNlbGVjdGVkQ2VsbHNDaGFuZ2UoKTogT2JzZXJ2YWJsZTxUYWJsZUNlbGxFbGVtZW50W10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRDZWxscyQuYXNPYnNlcnZhYmxlKCkucGlwZShza2lwKDEpKTtcbiAgICB9XG5cbiAgICBjZWxsc1Bvc2l0aW9uQ2hhbmdlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jZWxsc0NoYW5nZU9iamVjdCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgY2hhbmdlQ2VsbHMoKSB7XG4gICAgICAgIHRoaXMuY2VsbHNDaGFuZ2VPYmplY3QkLm5leHQoKTtcbiAgICB9XG5cbiAgICBlbWl0VGFibGVDaGFuZ2UoKSB7XG4gICAgICAgIHRoaXMudGFibGVDaGFuZ2UkLm5leHQoKTtcbiAgICB9XG5cbiAgICB0YWJsZUNoYW5nZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGFibGVDaGFuZ2UkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHNlbGVjdENlbGxFbmQoKSB7XG4gICAgICAgIGlmICh0aGlzLmlzQ2VsbFNlbGVjdGluZykge1xuICAgICAgICAgICAgdGhpcy5mb2N1c0NlbGwodGhpcy5mb2N1c0NlbGxQYXRoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlzUHJlcGFyZVNlbGVjdGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnByZUZvY3VzQ2VsbFBhdGggPSBudWxsO1xuICAgIH1cblxuICAgIGRhbmdlcm91c0NlbGxzQ2hhbmdlKCk6IE9ic2VydmFibGU8Q2VsbFBvc2l0aW9uW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGFuZ2Vyb3VzQ2VsbHMkLmFzT2JzZXJ2YWJsZSgpLnBpcGUoc2tpcCgxKSk7XG4gICAgfVxuXG4gICAgc2V0RGFuZ2Vyb3VzQ2VsbHMoKSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkQ2VsbFBvc2l0aW9ucyA9IHRoaXMuZ2V0U2VsZWN0ZWRDZWxsUG9zaXRpb25zKCk7XG4gICAgICAgIHRoaXMuZGFuZ2Vyb3VzUm93c0luZGV4ID0gdGhpcy5zZWxlY3RlZFJvd3NJbmRleDtcbiAgICAgICAgdGhpcy5kYW5nZXJvdXNDb2x1bW5zSW5kZXggPSB0aGlzLnNlbGVjdGVkQ29sdW1uc0luZGV4O1xuICAgICAgICB0aGlzLmRhbmdlcm91c0NlbGxzJC5uZXh0KHNlbGVjdGVkQ2VsbFBvc2l0aW9ucyk7XG4gICAgfVxuXG4gICAgY2xlYXJEYW5nZXJvdXNDZWxscygpIHtcbiAgICAgICAgdGhpcy5kYW5nZXJvdXNSb3dzSW5kZXggPSBbXTtcbiAgICAgICAgdGhpcy5kYW5nZXJvdXNDb2x1bW5zSW5kZXggPSBbXTtcbiAgICAgICAgdGhpcy5kYW5nZXJvdXNDZWxscyQubmV4dChbXSk7XG4gICAgICAgIGNvbnN0IHBvcyA9IGNyZWF0ZVRhYmxlUG9zaXRpb24odGhpcy5lZGl0b3IpO1xuICAgICAgICBpZiAocG9zLnRhYmxlKSB7XG4gICAgICAgICAgICB0aGlzLmlzU2VsZWN0ZWRUYWJsZSA9IHRoaXMuc2VsZWN0ZWRSb3dzSW5kZXgubGVuZ3RoID09PSBwb3MuZ2V0SGVpZ2h0KCkgJiYgdGhpcy5zZWxlY3RlZENvbHVtbnNJbmRleC5sZW5ndGggPT09IHBvcy5nZXRXaWR0aCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGFuZ2Vyb3VzT3JTZWxlY3RlZENlbGxzQ2hhbmdlKCkge1xuICAgICAgICByZXR1cm4gbWVyZ2UodGhpcy5kYW5nZXJvdXNDZWxscyQuYXNPYnNlcnZhYmxlKCkucGlwZShza2lwKDEpKSwgdGhpcy5zZWxlY3RlZENlbGxzJC5hc09ic2VydmFibGUoKS5waXBlKHNraXAoMSkpKTtcbiAgICB9XG5cbiAgICBzZXREYW5nZXJvdXNSb3dzKCkge1xuICAgICAgICBjb25zdCBzZWxlY3RlZENlbGxQb3NpdGlvbnMgPSB0aGlzLmdldFNlbGVjdGVkQ2VsbFBvc2l0aW9ucygpO1xuICAgICAgICBjb25zdCBjZWxscyA9IHNlbGVjdGVkQ2VsbFBvc2l0aW9ucztcbiAgICAgICAgY29uc3Qgcm93cyA9IHVuaXEobWFwKGNlbGxzLCAncm93JykpLnZhbHVlT2YoKSBhcyBudW1iZXJbXTtcbiAgICAgICAgY29uc3QgcG9zID0gY3JlYXRlVGFibGVQb3NpdGlvbih0aGlzLmVkaXRvcik7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuXG4gICAgICAgIHRoaXMuZGFuZ2Vyb3VzUm93c0luZGV4ID0gcm93cztcbiAgICAgICAgdGhpcy5pc1NlbGVjdGVkVGFibGUgPSByb3dzLmxlbmd0aCA9PT0gcG9zLmdldEhlaWdodCgpO1xuICAgICAgICBpZiAodGhpcy5pc1NlbGVjdGVkVGFibGUpIHtcbiAgICAgICAgICAgIHRoaXMuZGFuZ2Vyb3VzQ29sdW1uc0luZGV4ID0gWy4uLkFycmF5KHBvcy5nZXRXaWR0aCgpKV0ubWFwKCh2LCBpKSA9PiBpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3Qgcm93SW5kZXggb2Ygcm93cykge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb3MuZ2V0V2lkdGgoKTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICAgICAgICAgICAgICByb3c6IHJvd0luZGV4LFxuICAgICAgICAgICAgICAgICAgICBjb2w6IGlcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRhbmdlcm91c0NlbGxzJC5uZXh0KHJlc3VsdCk7XG4gICAgfVxuXG4gICAgc2V0RGFuZ2Vyb3VzQ29sdW1ucygpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRDZWxsUG9zaXRpb25zID0gdGhpcy5nZXRTZWxlY3RlZENlbGxQb3NpdGlvbnMoKTtcbiAgICAgICAgY29uc3QgY2VsbHMgPSBzZWxlY3RlZENlbGxQb3NpdGlvbnM7XG4gICAgICAgIGNvbnN0IGNvbHMgPSB1bmlxKG1hcChjZWxscywgJ2NvbCcpKS52YWx1ZU9mKCkgYXMgbnVtYmVyW107XG4gICAgICAgIGNvbnN0IHBvcyA9IGNyZWF0ZVRhYmxlUG9zaXRpb24odGhpcy5lZGl0b3IpO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcblxuICAgICAgICB0aGlzLmRhbmdlcm91c0NvbHVtbnNJbmRleCA9IGNvbHM7XG4gICAgICAgIHRoaXMuaXNTZWxlY3RlZFRhYmxlID0gY29scy5sZW5ndGggPT09IHBvcy5nZXRXaWR0aCgpO1xuICAgICAgICBpZiAodGhpcy5pc1NlbGVjdGVkVGFibGUpIHtcbiAgICAgICAgICAgIHRoaXMuZGFuZ2Vyb3VzUm93c0luZGV4ID0gWy4uLkFycmF5KHBvcy5nZXRIZWlnaHQoKSldLm1hcCgoXywgaSkgPT4gaSk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGNvbEluZGV4IG9mIGNvbHMpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9zLmdldEhlaWdodCgpOyBpKyspIHtcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIHJvdzogaSxcbiAgICAgICAgICAgICAgICAgICAgY29sOiBjb2xJbmRleFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGFuZ2Vyb3VzQ2VsbHMkLm5leHQocmVzdWx0KTtcbiAgICB9XG5cbiAgICBzZXREYW5nZXJvdXNUYWJsZSgpIHtcbiAgICAgICAgdGhpcy5pc1NlbGVjdGVkVGFibGUgPSB0cnVlO1xuICAgICAgICBjb25zdCBwb3MgPSBjcmVhdGVUYWJsZVBvc2l0aW9uKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgY29uc3QgY2VsbHMgPSBnZXRDZWxsUG9zaXRpb25zRnJvbVJhbmdlKDAsIDAsIHBvcy5nZXRIZWlnaHQoKSwgcG9zLmdldFdpZHRoKCkpO1xuICAgICAgICB0aGlzLmRhbmdlcm91c1Jvd3NJbmRleCA9IFsuLi5BcnJheShwb3MuZ2V0SGVpZ2h0KCkpXS5tYXAoKF8sIGkpID0+IGkpO1xuICAgICAgICB0aGlzLmRhbmdlcm91c0NvbHVtbnNJbmRleCA9IFsuLi5BcnJheShwb3MuZ2V0V2lkdGgoKSldLm1hcCgoXywgaSkgPT4gaSk7XG4gICAgICAgIHRoaXMuZGFuZ2Vyb3VzQ2VsbHMkLm5leHQoY2VsbHMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOiBmueEpuWNleWFg+agvOW5tuiuvue9ruiBmueEpuebuOWFs+i3r+W+hOWPiuWFg+e0oFxuICAgICAqL1xuICAgIGZvY3VzQ2VsbChwYXRoOiBudW1iZXJbXSkge1xuICAgICAgICBjb25zdCBub2RlID0gTm9kZS5nZXQodGhpcy5lZGl0b3IsIHBhdGgpIGFzIFRhYmxlQ2VsbEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGNlbGxIVE1MRWxlbWVudCA9IEFuZ3VsYXJFZGl0b3IudG9ET01Ob2RlKHRoaXMuZWRpdG9yLCBub2RlKSBhcyBIVE1MVGFibGVDZWxsRWxlbWVudDtcbiAgICAgICAgdGhpcy5wcmVGb2N1c0NlbGxQYXRoID0gdGhpcy5mb2N1c0NlbGxQYXRoO1xuICAgICAgICB0aGlzLmZvY3VzQ2VsbFBhdGggPSBwYXRoO1xuICAgICAgICB0aGlzLmZvY3VzQ2VsbEVsZW1lbnQgPSBjZWxsSFRNTEVsZW1lbnQ7XG4gICAgICAgIGZvY3VzQ2VsbCh0aGlzLmVkaXRvciwgcGF0aCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5Yy65Z+f6YCJ5oup5byA5aeLXG4gICAgICogQHBhcmFtIGVkaXRvciDnvJbovpHlmajlr7nosaFcbiAgICAgKiBAcGFyYW0gY2VsbCDljZXlhYPmoLzlhYPntKBcbiAgICAgKi9cbiAgICBhcmVhU2VsZWN0aW9uU3RhcnQoY2VsbDogSFRNTFRhYmxlQ2VsbEVsZW1lbnQsIGVkaXRvcjogRWRpdG9yKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBBbmd1bGFyRWRpdG9yLnRvU2xhdGVOb2RlKGVkaXRvciwgY2VsbCk7XG4gICAgICAgIGNvbnN0IHBhdGggPSBBbmd1bGFyRWRpdG9yLmZpbmRQYXRoKGVkaXRvciwgbm9kZSk7XG4gICAgICAgIHRoaXMuaXNQcmVwYXJlU2VsZWN0aW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5sYXN0Rm9jdXNDZWxsUGF0aCA9IHBhdGg7XG4gICAgICAgIGlmICghdGhpcz8uYW5jaG9yQ2VsbFBhdGgpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0QW5jaG9yQ2VsbFBhdGgocGF0aCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzPy5mb2N1c0NlbGxQYXRoKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzQ2VsbFBhdGggPSBwYXRoO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5wcmVGb2N1c0NlbGxQYXRoKSB7XG4gICAgICAgICAgICB0aGlzLnByZUZvY3VzQ2VsbFBhdGggPSB0aGlzLmFuY2hvckNlbGxQYXRoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog6K6+572u5Yy65Z+f6YCJ5oup55qE5Y2V5YWD5qC8XG4gICAgICogQHBhcmFtIGNlbGxFbGVtZW50IOWNleWFg+agvOWFg+e0oFxuICAgICAqL1xuICAgIHNldEFyZWFTZWxlY3Rpb25DZWxscyhjZWxsRWxlbWVudDogVGFibGVDZWxsRWxlbWVudCk6IHZvaWQge1xuICAgICAgICBpZiAoQW5ndWxhckVkaXRvci5pc1JlYWRvbmx5KHRoaXMuZWRpdG9yKSB8fCAhdGhpcy5lZGl0b3Iuc2VsZWN0aW9uIHx8ICF0aGlzLmlzUHJlcGFyZVNlbGVjdGluZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY3VycmVudENlbGxQYXRoID0gQW5ndWxhckVkaXRvci5maW5kUGF0aCh0aGlzLmVkaXRvciwgY2VsbEVsZW1lbnQpO1xuICAgICAgICBjb25zdCBzZWxlY3RlZENlbGxQb3NpdGlvbnMgPSB0aGlzLmdldFNlbGVjdGVkQ2VsbFBvc2l0aW9ucygpO1xuICAgICAgICBjb25zdCBzZWxlY3RFcXVhbCA9IFBhdGguZXF1YWxzKGN1cnJlbnRDZWxsUGF0aCwgdGhpcy5hbmNob3JDZWxsUGF0aCk7XG5cbiAgICAgICAgLy8g5LiN5Y+v5Lul5Yy65Z+f6YCJ5oup5Y2V5LiA5Y2V5YWD5qC8XG4gICAgICAgIGlmIChzZWxlY3RlZENlbGxQb3NpdGlvbnMubGVuZ3RoIDw9IDEgJiYgc2VsZWN0RXF1YWwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlzQ2VsbFNlbGVjdGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuZm9jdXNDZWxsKGN1cnJlbnRDZWxsUGF0aCk7XG4gICAgICAgIHRoaXMuc2VsZWN0Q2VsbHModGhpcy5lZGl0b3IpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWkhOeQhuWMuuWfn+mAieaLqeWQr+eUqOaXtumAieaLqeaVtOihjC/mlbTliJdcbiAgICAgKiBAcGFyYW0gY2VsbHMg6YCJ5oup55qE5Y2V5YWD5qC8XG4gICAgICovXG4gICAgYXJlYVNlbGVjdFJvd0FuZENvbHVtbihjZWxsczogQ2VsbFBvc2l0aW9uW10pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcG9zID0gY3JlYXRlVGFibGVQb3NpdGlvbih0aGlzLmVkaXRvcik7XG4gICAgICAgIGNvbnN0IFtyb3csIGNvbF0gPSB0aGlzLmZvY3VzQ2VsbFBhdGguc2xpY2UoLTIpO1xuICAgICAgICBjb25zdCBzZWxlY3RDZWxscyA9IFt7IHJvdywgY29sIH0sIC4uLmNlbGxzXTtcbiAgICAgICAgY29uc3Qgc29ydFJvd3MgPSBzZWxlY3RDZWxscy5tYXAoaXRlbSA9PiBpdGVtLnJvdykuc29ydCgobSwgbikgPT4gbSAtIG4pO1xuICAgICAgICBjb25zdCBzb3J0Q29scyA9IHNlbGVjdENlbGxzLm1hcChpdGVtID0+IGl0ZW0uY29sKS5zb3J0KChtLCBuKSA9PiBtIC0gbik7XG4gICAgICAgIGNvbnN0IHN0YXJ0Um93ID0gc29ydFJvd3NbMF07XG4gICAgICAgIGNvbnN0IHN0YXJ0Q29sID0gc29ydENvbHNbMF07XG4gICAgICAgIGNvbnN0IGVuZFJvdyA9IHNvcnRDb2xzW3NvcnRDb2xzLmxlbmd0aCAtIDFdO1xuICAgICAgICBjb25zdCBlbmRDb2wgPSBzb3J0Um93c1tzb3J0Um93cy5sZW5ndGggLSAxXTtcbiAgICAgICAgY29uc3QgYW5jaG9yQ2VsbFBhdGggPSBwb3MudGFibGVFbnRyeVsxXS5jb25jYXQoW2VuZENvbCwgZW5kUm93XSk7XG4gICAgICAgIGNvbnN0IGZvY3VzQ2VsbFBhdGggPSBwb3MudGFibGVFbnRyeVsxXS5jb25jYXQoW3N0YXJ0Um93LCBzdGFydENvbF0pO1xuXG4gICAgICAgIHRoaXMuc2V0QW5jaG9yQ2VsbFBhdGgoYW5jaG9yQ2VsbFBhdGgpO1xuICAgICAgICB0aGlzLmZvY3VzQ2VsbChmb2N1c0NlbGxQYXRoKTtcbiAgICAgICAgdGhpcy5zZWxlY3RDZWxscyh0aGlzLmVkaXRvcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog6K6+572u5oyH5a6aIGFuY2hvckNlbGxQYXRoXG4gICAgICogQHBhcmFtIHBhdGgg6Lev5b6EXG4gICAgICovXG4gICAgc2V0QW5jaG9yQ2VsbFBhdGgocGF0aDogbnVtYmVyW10pIHtcbiAgICAgICAgaWYgKHBhdGgpIHtcbiAgICAgICAgICAgIHRoaXMuYW5jaG9yQ2VsbFBhdGggPSBwYXRoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2VsZWN0Q2VsbEluRGlyZWN0aW9uKGRpcmVjdGlvbjogVGFibGVTZWxlY3RDZWxsRGlyZWN0aW9uKSB7XG4gICAgICAgIGNvbnN0IFtyb3csIGNvbF0gPSB0aGlzLmZvY3VzQ2VsbFBhdGguc2xpY2UoLTIpO1xuICAgICAgICBjb25zdCBuZXh0Q2VsbCA9IGdldE5leHRDZWxsKHRoaXMuZWRpdG9yLCBkaXJlY3Rpb24sIFtyb3csIGNvbF0pO1xuICAgICAgICBpZiAobmV4dENlbGwpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0QXJlYVNlbGVjdGlvbkNlbGxzKG5leHRDZWxsKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
416
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy90YWJsZS90YWJsZS5zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXhELE9BQU8sRUFBaUIsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3JELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSx3QkFBd0IsRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25JLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFHbkQsTUFBTSxPQUFPLFVBQVU7SUErQ25CLElBQUksY0FBYztRQUNkLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRDtRQXREUSxtQkFBYyxHQUF3QyxJQUFJLGVBQWUsQ0FBcUIsRUFBRSxDQUFDLENBQUM7UUFFbEcsb0JBQWUsR0FBb0MsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFM0UsdUJBQWtCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUV6QyxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFM0MseUJBQW9CLEdBQWEsRUFBRSxDQUFDO1FBRXBDLHNCQUFpQixHQUFhLEVBQUUsQ0FBQztRQUVqQywwQkFBcUIsR0FBYSxFQUFFLENBQUM7UUFFckMsdUJBQWtCLEdBQWEsRUFBRSxDQUFDO1FBa0IzQix1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFFM0Isb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFFeEIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFFeEIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFFdkIscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBRWxDLGtCQUFhLEdBQVksS0FBSyxDQUFDO0lBWXZCLENBQUM7SUFFaEIsVUFBVSxDQUFDLE1BQWM7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDekIsQ0FBQztJQUVELHdCQUF3QjtRQUNwQixPQUFPLHdCQUF3QixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxLQUFxQjtRQUN2QyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCw2QkFBNkI7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFO1lBQ3pCLE9BQU87U0FDVjtRQUVELE1BQU0sR0FBRyxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRTtZQUNiLE9BQU87U0FDVjtRQUVELE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO1FBQzVCLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDOUQscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRTtZQUMzQyx3QkFBd0I7WUFDeEIsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsMkJBQTJCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDckYsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLEtBQUssR0FBRyxrQkFBa0IsQ0FBQyxnQkFBZ0IsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsRCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsRUFBRSxDQUFDO1FBQy9CLEtBQUssTUFBTSxHQUFHLElBQUksUUFBUSxFQUFFO1lBQ3hCLElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ2xEO1NBQ0o7UUFDRCxLQUFLLE1BQU0sR0FBRyxJQUFJLFFBQVEsRUFBRTtZQUN4QixJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDLFNBQVMsRUFBRSxFQUFFO2dCQUMxQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUNyRDtTQUNKO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzVELElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxFQUFFO1lBQ3ZELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1NBQy9CO2FBQU07WUFDSCxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztTQUNoQztJQUNMLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFxQixFQUFFLEdBQWtCO1FBQ3RELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUMvRyxNQUFNLFlBQVksR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3hDLE9BQU8sR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxTQUFTLENBQUMsTUFBYyxFQUFFLEtBQWE7UUFDbkMsTUFBTSxHQUFHLEdBQUcsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEMsTUFBTSxVQUFVLEdBQUcseUJBQXlCLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBRWxGLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzFCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNwQixJQUFJLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDM0M7YUFBTTtZQUNILE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQzNFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN4RDtJQUNMLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBYyxFQUFFLEtBQWE7UUFDdEMsTUFBTSxHQUFHLEdBQUcsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEMsTUFBTSxVQUFVLEdBQUcseUJBQXlCLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsU0FBUyxFQUFFLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRW5GLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzFCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNwQixJQUFJLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDM0M7YUFBTTtZQUNILE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDM0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4RSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3hEO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFjO1FBQ3RCLE1BQU0sR0FBRyxHQUFHLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sS0FBSyxHQUFHLHlCQUF5QixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLFNBQVMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQy9FLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUU5RSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLGVBQWUsQ0FBQyxJQUEwQixFQUFFLE1BQWM7UUFDdEQsTUFBTSxJQUFJLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDckQsTUFBTSxJQUFJLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUMvQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDL0M7SUFDTCxDQUFDO0lBRUQsS0FBSztJQUNMLFdBQVcsQ0FBQyxNQUFjO1FBQ3RCLE1BQU0sR0FBRyxHQUFHLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUUvQyxNQUFNLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDakUsTUFBTSxPQUFPLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRXBFLE1BQU0sRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FDNUUsTUFBTSxFQUNOLElBQUksQ0FBQyxjQUFjLENBQ3RCLENBQUMsQ0FBQyxDQUFxQixDQUFDO1FBQ3pCLE1BQU0sRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBcUIsQ0FBQztRQUVsSSxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEUsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdELE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGtCQUFrQixJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoRSxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFN0QsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDL0MsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDL0MsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLHFCQUFxQixDQUM1RCxJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxFQUMvQixVQUFVLEVBQ1YsVUFBVSxFQUNWLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQ1YsR0FBRyxDQUFDLEtBQUssQ0FDWixDQUFDO1FBQ0YsTUFBTSxLQUFLLEdBQUcseUJBQXlCLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNoRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxlQUFlO1FBQ1gsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUM5RCxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxTQUFTLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDakUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxRQUFRO0lBQ1IsVUFBVSxDQUFDLElBQTBCLEVBQUUsTUFBYztRQUNqRCxNQUFNLElBQUksR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQXFCLENBQUM7UUFDekUsTUFBTSxJQUFJLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDN0IsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEMsTUFBTSxHQUFHLEdBQUcsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEMsTUFBTSxLQUFLLEdBQW1CLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUM3QyxNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQzlELElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3ZCLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ3JDLHFCQUFxQjtZQUNyQixNQUFNLGFBQWEsR0FBRywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDN0UsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDO1lBQzdCLGdDQUFnQztZQUNoQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEQsSUFBSSxTQUFTLEVBQUU7Z0JBQ1gsTUFBTSxVQUFVLEdBQUcsMkJBQTJCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3RHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQzthQUM3QjtTQUNKO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsSUFBMEIsRUFBRSxNQUFjO1FBQ3hELE1BQU0sR0FBRyxHQUFHLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hDLElBQUksYUFBYSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFO1lBQ3RFLE9BQU87U0FDVjtRQUNELElBQUksU0FBa0IsQ0FBQztRQUN2QixJQUFJLElBQUksRUFBRTtZQUNOLE1BQU0sSUFBSSxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3JELE1BQU0sSUFBSSxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2xELFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDMUUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7WUFDMUIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztTQUNoQzthQUFNO1lBQ0gsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztZQUM5RCxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDbkk7UUFDRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxTQUFTLEVBQUU7WUFDdEMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFO2dCQUM5RSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztnQkFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDekIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7YUFDOUM7U0FDSjtJQUNMLENBQUM7SUFFRCxrQkFBa0I7UUFDZCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELGtCQUFrQjtRQUNkLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7SUFDbEMsQ0FBQztJQUVELG1CQUFtQjtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELG1CQUFtQjtRQUNmLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsV0FBVztRQUNQLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQsYUFBYTtRQUNULElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUN0QztRQUNELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDaEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztJQUNqQyxDQUFDO0lBRUQsb0JBQW9CO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELGlCQUFpQjtRQUNiLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDOUQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUNqRCxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1FBQ3ZELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELG1CQUFtQjtRQUNmLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5QixNQUFNLEdBQUcsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0MsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFO1lBQ1gsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNuSTtJQUNMLENBQUM7SUFFRCw4QkFBOEI7UUFDMUIsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0SCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ1osTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUM5RCxNQUFNLEtBQUssR0FBRyxxQkFBcUIsQ0FBQztRQUNwQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBYyxDQUFDO1FBQzNELE1BQU0sR0FBRyxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFFbEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUMvQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3ZELElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN0QixJQUFJLENBQUMscUJBQXFCLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzVFO1FBRUQsS0FBSyxNQUFNLFFBQVEsSUFBSSxJQUFJLEVBQUU7WUFDekIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDckMsTUFBTSxDQUFDLElBQUksQ0FBQztvQkFDUixHQUFHLEVBQUUsUUFBUTtvQkFDYixHQUFHLEVBQUUsQ0FBQztpQkFDVCxDQUFDLENBQUM7YUFDTjtTQUNKO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELG1CQUFtQjtRQUNmLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDOUQsTUFBTSxLQUFLLEdBQUcscUJBQXFCLENBQUM7UUFDcEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQWMsQ0FBQztRQUMzRCxNQUFNLEdBQUcsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0MsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWxCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUM7UUFDbEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN0RCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMxRTtRQUVELEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxFQUFFO1lBQ3pCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3RDLE1BQU0sQ0FBQyxJQUFJLENBQUM7b0JBQ1IsR0FBRyxFQUFFLENBQUM7b0JBQ04sR0FBRyxFQUFFLFFBQVE7aUJBQ2hCLENBQUMsQ0FBQzthQUNOO1NBQ0o7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2IsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDNUIsTUFBTSxHQUFHLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLE1BQU0sS0FBSyxHQUFHLHlCQUF5QixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLFNBQVMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQy9FLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLHFCQUFxQixHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxTQUFTLENBQUMsSUFBYztRQUNwQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFxQixDQUFDO1FBQzdELE1BQU0sZUFBZSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQXlCLENBQUM7UUFDM0YsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDM0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGVBQWUsQ0FBQztRQUN4QyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxrQkFBa0IsQ0FBQyxJQUEwQixFQUFFLE1BQWM7UUFDekQsTUFBTSxJQUFJLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDckQsTUFBTSxJQUFJLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUMvQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQzlCLElBQUksQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNoQztRQUNELElBQUksQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1NBQzdCO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN4QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUMvQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSCxxQkFBcUIsQ0FBQyxXQUE2QjtRQUMvQyxJQUFJLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDN0YsT0FBTztTQUNWO1FBRUQsTUFBTSxlQUFlLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDOUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXRFLGVBQWU7UUFDZixJQUFJLHFCQUFxQixDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksV0FBVyxFQUFFO1lBQ2xELE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILHNCQUFzQixDQUFDLEtBQXFCO1FBQ3hDLE1BQU0sR0FBRyxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQzdDLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDN0MsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDN0MsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNsRSxNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRXJFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxpQkFBaUIsQ0FBQyxJQUFjO1FBQzVCLElBQUksSUFBSSxFQUFFO1lBQ04sSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7U0FDOUI7SUFDTCxDQUFDO0lBRUQscUJBQXFCLENBQUMsU0FBbUM7UUFDckQsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLElBQUksUUFBUSxFQUFFO1lBQ1YsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3hDO0lBQ0wsQ0FBQzs4R0FyZVEsVUFBVTtrSEFBVixVQUFVOzsyRkFBVixVQUFVO2tCQUR0QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBtZXJnZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2tpcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEVkaXRvciwgTm9kZSwgUGF0aCwgVHJhbnNmb3JtcyB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEFuZ3VsYXJFZGl0b3IgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcbmltcG9ydCB7IFRhYmxlQ2VsbEVsZW1lbnQgfSBmcm9tICcuLi8uLi9jdXN0b20tdHlwZXMnO1xuaW1wb3J0IHsgZ3JvdXBCeSwgbWFwLCB1bmlxIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9kYXNoJztcbmltcG9ydCB7IENlbGxQb3NpdGlvbiwgVGFibGVTZWxlY3RDZWxsRGlyZWN0aW9uIH0gZnJvbSAnLi90YWJsZS50eXBlcyc7XG5pbXBvcnQgeyBUYWJsZVBvc2l0aW9uLCBnZXROZXh0Q2VsbCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgZ2V0Q2VsbFBvc2l0aW9uc0Zyb21SYW5nZSwgZ2V0U2VsZWN0ZWRDZWxsUG9zaXRpb25zLCBpc1NlbGVjdGVkQWxsQ2VsbCwgdW5pcXVlQ2VsbFBvc2l0aW9uIH0gZnJvbSAnLi91dGlscy9jZWxsLXBvc2l0aW9uJztcbmltcG9ydCB7IGNyZWF0ZVRhYmxlUG9zaXRpb24gfSBmcm9tICcuL3V0aWxzL2NyZWF0ZS10YWJsZS1wb3NpdGlvbic7XG5pbXBvcnQgeyBnZXRNaW5BbmRNYXhDZWxsSW5kZXggfSBmcm9tICcuL3V0aWxzL2dldC1taW4tbWF4LWNlbGwtaW5kZXgnO1xuaW1wb3J0IHsgZ2V0Q2VsbFBvc2l0aW9uc0JlZm9yZU1lcmdlIH0gZnJvbSAnLi91dGlscy9tZXJnZS1jZWxsJztcbmltcG9ydCB7IGdldFRhYmxlUGF0aCB9IGZyb20gJy4vdXRpbHMvdGFibGUtZW50cnknO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGFibGVTdG9yZSB7XG4gICAgcHJpdmF0ZSBzZWxlY3RlZENlbGxzJDogQmVoYXZpb3JTdWJqZWN0PFRhYmxlQ2VsbEVsZW1lbnRbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRhYmxlQ2VsbEVsZW1lbnRbXT4oW10pO1xuXG4gICAgcHJpdmF0ZSBkYW5nZXJvdXNDZWxscyQ6IEJlaGF2aW9yU3ViamVjdDxDZWxsUG9zaXRpb25bXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFtdKTtcblxuICAgIHByaXZhdGUgY2VsbHNDaGFuZ2VPYmplY3QkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIHByaXZhdGUgdGFibGVDaGFuZ2UkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIHNlbGVjdGVkQ29sdW1uc0luZGV4OiBudW1iZXJbXSA9IFtdO1xuXG4gICAgc2VsZWN0ZWRSb3dzSW5kZXg6IG51bWJlcltdID0gW107XG5cbiAgICBkYW5nZXJvdXNDb2x1bW5zSW5kZXg6IG51bWJlcltdID0gW107XG5cbiAgICBkYW5nZXJvdXNSb3dzSW5kZXg6IG51bWJlcltdID0gW107XG5cbiAgICBpc1NlbGVjdGVkVGFibGU6IGJvb2xlYW47XG5cbiAgICBlZGl0b3I6IEVkaXRvcjtcblxuICAgIHB1YmxpYyBpc0Z1bGxzY3JlZW46IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgYW5jaG9yQ2VsbFBhdGg6IG51bWJlcltdO1xuXG4gICAgcHVibGljIGZvY3VzQ2VsbFBhdGg6IG51bWJlcltdO1xuXG4gICAgcHVibGljIHByZUZvY3VzQ2VsbFBhdGg6IG51bWJlcltdO1xuXG4gICAgcHVibGljIGxhc3RGb2N1c0NlbGxQYXRoOiBudW1iZXJbXTtcblxuICAgIHB1YmxpYyBmb2N1c0NlbGxFbGVtZW50OiBIVE1MVGFibGVDZWxsRWxlbWVudDtcblxuICAgIHB1YmxpYyBpc1ByZXBhcmVTZWxlY3RpbmcgPSBmYWxzZTtcblxuICAgIHB1YmxpYyBpc0NlbGxTZWxlY3RpbmcgPSBmYWxzZTtcblxuICAgIHB1YmxpYyBpc1JpZ2h0Q2xpY2tpbmcgPSBmYWxzZTtcblxuICAgIHB1YmxpYyBpc0ZvY3VzZWRJbnB1dCA9IGZhbHNlO1xuXG4gICAgcHVibGljIHBvaW50ZXJTZWxlY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHB1YmxpYyBhcmVhU2VsZWN0aW9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgbWF4Q29sOiBudW1iZXI7XG5cbiAgICBnZXQgZGFuZ2Vyb3VzQ2VsbHMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhbmdlcm91c0NlbGxzJC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIGdldCBzZWxlY3RlZENlbGxzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZENlbGxzJC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKCkge31cblxuICAgIGluaXRFZGl0b3IoZWRpdG9yOiBFZGl0b3IpIHtcbiAgICAgICAgdGhpcy5lZGl0b3IgPSBlZGl0b3I7XG4gICAgfVxuXG4gICAgZ2V0U2VsZWN0ZWRDZWxsUG9zaXRpb25zKCk6IENlbGxQb3NpdGlvbltdIHtcbiAgICAgICAgcmV0dXJuIGdldFNlbGVjdGVkQ2VsbFBvc2l0aW9ucyh0aGlzLmVkaXRvciwgdGhpcy5zZWxlY3RlZENlbGxzJC5nZXRWYWx1ZSgpKTtcbiAgICB9XG5cbiAgICBwdWJsaXNoRGFuZ2Vyb3VzQ2VsbHModmFsdWU6IENlbGxQb3NpdGlvbltdKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhbmdlcm91c0NlbGxzJC5uZXh0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBzZXRTZWxlY3RlZENvbHVtbnNBbmRSb3dJbmRleCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmVkaXRvcj8uc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwb3MgPSBjcmVhdGVUYWJsZVBvc2l0aW9uKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgaWYgKCFwb3M/LnRhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtZXJnZUJlZm9yZUNlbGxzID0gW107XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkQ2VsbFBvc2l0aW9ucyA9IHRoaXMuZ2V0U2VsZWN0ZWRDZWxsUG9zaXRpb25zKCk7XG4gICAgICAgIHNlbGVjdGVkQ2VsbFBvc2l0aW9ucy5mb3JFYWNoKCh7IHJvdywgY29sIH0pID0+IHtcbiAgICAgICAgICAgIC8vIOiuoeeul+WQiOW5tuWNleWFg+agvOaVsOaNruaXtu+8jOimgeaMieWQiOW5tuWJjeeahOaVsOaNruWkhOeQhlxuICAgICAgICAgICAgbWVyZ2VCZWZvcmVDZWxscy5wdXNoKC4uLmdldENlbGxQb3NpdGlvbnNCZWZvcmVNZXJnZSh0aGlzLmVkaXRvciwgeyByb3csIGNvbCB9KSk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBjZWxscyA9IHVuaXF1ZUNlbGxQb3NpdGlvbihtZXJnZUJlZm9yZUNlbGxzLCBzZWxlY3RlZENlbGxQb3NpdGlvbnMpO1xuICAgICAgICBjb25zdCByb3dHcm91cCA9IGdyb3VwQnkoY2VsbHMsICh7IHJvdyB9KSA9PiByb3cpO1xuICAgICAgICBjb25zdCBjb2xHcm91cCA9IGdyb3VwQnkoY2VsbHMsICh7IGNvbCB9KSA9PiBjb2wpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkUm93c0luZGV4ID0gW107XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW5zSW5kZXggPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCByb3cgaW4gcm93R3JvdXApIHtcbiAgICAgICAgICAgIGlmIChyb3dHcm91cFtyb3ddLmxlbmd0aCA9PT0gcG9zLmdldFdpZHRoKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUm93c0luZGV4LnB1c2gocGFyc2VJbnQocm93LCAxMCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgY29sIGluIGNvbEdyb3VwKSB7XG4gICAgICAgICAgICBpZiAoY29sR3JvdXBbY29sXS5sZW5ndGggPT09IHBvcy5nZXRIZWlnaHQoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW5zSW5kZXgucHVzaChwYXJzZUludChjb2wsIDEwKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3RlZFJvd3NJbmRleCA9IHVuaXEodGhpcy5zZWxlY3RlZFJvd3NJbmRleCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW5zSW5kZXggPSB1bmlxKHRoaXMuc2VsZWN0ZWRDb2x1bW5zSW5kZXgpO1xuICAgICAgICBpZiAoaXNTZWxlY3RlZEFsbENlbGwodGhpcy5lZGl0b3IsIHNlbGVjdGVkQ2VsbFBvc2l0aW9ucykpIHtcbiAgICAgICAgICAgIHRoaXMuaXNTZWxlY3RlZFRhYmxlID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaXNTZWxlY3RlZFRhYmxlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRTZWxlY3RlZENlbGxzKGNlbGxzOiBDZWxsUG9zaXRpb25bXSwgcG9zOiBUYWJsZVBvc2l0aW9uKSB7XG4gICAgICAgIGNvbnN0IHVuaXF1ZUNlbGxzID0gdGhpcy5wb2ludGVyU2VsZWN0aW9uID8gdW5pcXVlQ2VsbFBvc2l0aW9uKGNlbGxzLCB0aGlzLmdldFNlbGVjdGVkQ2VsbFBvc2l0aW9ucygpKSA6IGNlbGxzO1xuICAgICAgICBjb25zdCBjZWxsRWxlbWVudHMgPSB1bmlxdWVDZWxscy5tYXAoY2VsbCA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcG9zLmZpbmRDZWxsQnlQYXRoKGNlbGwpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENlbGxzJC5uZXh0KGNlbGxFbGVtZW50cyk7XG4gICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRDb2x1bW5zQW5kUm93SW5kZXgoKTtcbiAgICB9XG5cbiAgICBzZWxlY3RSb3coZWRpdG9yOiBFZGl0b3IsIGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgcG9zID0gY3JlYXRlVGFibGVQb3NpdGlvbihlZGl0b3IpO1xuICAgICAgICBjb25zdCByYW5nZUNlbGxzID0gZ2V0Q2VsbFBvc2l0aW9uc0Zyb21SYW5nZShpbmRleCwgMCwgaW5kZXggKyAxLCBwb3MuZ2V0V2lkdGgoKSk7XG5cbiAgICAgICAgdGhpcy5jbGVhckxhc3RGb2N1c1BhdGgoKTtcbiAgICAgICAgaWYgKHRoaXMuYXJlYVNlbGVjdGlvbikge1xuICAgICAgICAgICAgdGhpcy5hcmVhU2VsZWN0Um93QW5kQ29sdW1uKHJhbmdlQ2VsbHMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbGFzdENvbEluZGV4ID0gcG9zLnRhYmxlRW50cnlbMF0uY2hpbGRyZW5baW5kZXhdLmNoaWxkcmVuLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICB0aGlzLnNldEFuY2hvckNlbGxQYXRoKHBvcy50YWJsZUVudHJ5WzFdLmNvbmNhdChbaW5kZXgsIGxhc3RDb2xJbmRleF0pKTtcbiAgICAgICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRDZWxscyhyYW5nZUNlbGxzLCBwb3MpO1xuICAgICAgICAgICAgdGhpcy5mb2N1c0NlbGwocG9zLnRhYmxlRW50cnlbMV0uY29uY2F0KFtpbmRleCwgMF0pKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNlbGVjdENvbHVtbihlZGl0b3I6IEVkaXRvciwgaW5kZXg6IG51bWJlcikge1xuICAgICAgICBjb25zdCBwb3MgPSBjcmVhdGVUYWJsZVBvc2l0aW9uKGVkaXRvcik7XG4gICAgICAgIGNvbnN0IHJhbmdlQ2VsbHMgPSBnZXRDZWxsUG9zaXRpb25zRnJvbVJhbmdlKDAsIGluZGV4LCBwb3MuZ2V0SGVpZ2h0KCksIGluZGV4ICsgMSk7XG5cbiAgICAgICAgdGhpcy5jbGVhckxhc3RGb2N1c1BhdGgoKTtcbiAgICAgICAgaWYgKHRoaXMuYXJlYVNlbGVjdGlvbikge1xuICAgICAgICAgICAgdGhpcy5hcmVhU2VsZWN0Um93QW5kQ29sdW1uKHJhbmdlQ2VsbHMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbGFzdFJvd0luZGV4ID0gcG9zLnRhYmxlRW50cnlbMF0uY2hpbGRyZW4ubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIHRoaXMuc2V0QW5jaG9yQ2VsbFBhdGgocG9zLnRhYmxlRW50cnlbMV0uY29uY2F0KFtsYXN0Um93SW5kZXgsIGluZGV4XSkpO1xuICAgICAgICAgICAgdGhpcy5zZXRTZWxlY3RlZENlbGxzKHJhbmdlQ2VsbHMsIHBvcyk7XG4gICAgICAgICAgICB0aGlzLmZvY3VzQ2VsbChwb3MudGFibGVFbnRyeVsxXS5jb25jYXQoWzAsIGluZGV4XSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2VsZWN0VGFibGUoZWRpdG9yOiBFZGl0b3IpIHtcbiAgICAgICAgY29uc3QgcG9zID0gY3JlYXRlVGFibGVQb3NpdGlvbihlZGl0b3IpO1xuICAgICAgICBjb25zdCBjZWxscyA9IGdldENlbGxQb3NpdGlvbnNGcm9tUmFuZ2UoMCwgMCwgcG9zLmdldEhlaWdodCgpLCBwb3MuZ2V0V2lkdGgoKSk7XG4gICAgICAgIGNvbnN0IGxhc3RDZWxsID0gY2VsbHNbY2VsbHMubGVuZ3RoIC0gMV07XG4gICAgICAgIGNvbnN0IGFuY2hvckNlbGxQYXRoID0gcG9zLnRhYmxlRW50cnlbMV0uY29uY2F0KFtsYXN0Q2VsbC5yb3csIGxhc3RDZWxsLmNvbF0pO1xuXG4gICAgICAgIHRoaXMuaXNTZWxlY3RlZFRhYmxlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zZXRTZWxlY3RlZENlbGxzKGNlbGxzLCBwb3MpO1xuICAgICAgICB0aGlzLnNldEFuY2hvckNlbGxQYXRoKGFuY2hvckNlbGxQYXRoKTtcbiAgICAgICAgdGhpcy5mb2N1c0NlbGwocG9zLnRhYmxlRW50cnlbMV0uY29uY2F0KFswLCAwXSkpO1xuICAgIH1cblxuICAgIC8vIOaLlumAieW8gOWniyB8fCDorrDlvZXogZrnhKbngrlcbiAgICBzZWxlY3RDZWxsU3RhcnQoY2VsbDogSFRNTFRhYmxlQ2VsbEVsZW1lbnQsIGVkaXRvcjogRWRpdG9yKSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBBbmd1bGFyRWRpdG9yLnRvU2xhdGVOb2RlKGVkaXRvciwgY2VsbCk7XG4gICAgICAgIGNvbnN0IHBhdGggPSBBbmd1bGFyRWRpdG9yLmZpbmRQYXRoKGVkaXRvciwgbm9kZSk7XG4gICAgICAgIHRoaXMuaXNQcmVwYXJlU2VsZWN0aW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zZXRBbmNob3JDZWxsUGF0aChwYXRoKTtcbiAgICAgICAgdGhpcy5mb2N1c0NlbGxQYXRoID0gcGF0aDtcbiAgICAgICAgdGhpcy5mb2N1c0NlbGxFbGVtZW50ID0gY2VsbDtcbiAgICAgICAgdGhpcy5sYXN0Rm9jdXNDZWxsUGF0aCA9IHBhdGg7XG4gICAgICAgIGlmICghdGhpcy5wcmVGb2N1c0NlbGxQYXRoKSB7XG4gICAgICAgICAgICB0aGlzLnByZUZvY3VzQ2VsbFBhdGggPSB0aGlzLmFuY2hvckNlbGxQYXRoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8g5ouW6YCJXG4gICAgc2VsZWN0Q2VsbHMoZWRpdG9yOiBFZGl0b3IpIHtcbiAgICAgICAgY29uc3QgcG9zID0gY3JlYXRlVGFibGVQb3NpdGlvbihlZGl0b3IpO1xuICAgICAgICBjb25zdCBhbmNob3JQYXRoID0gdGhpcy5hbmNob3JDZWxsUGF0aC5zbGljZSgtMik7XG4gICAgICAgIGNvbnN0IGZvY3VzUGF0aCA9IHRoaXMuZm9jdXNDZWxsUGF0aC5zbGljZSgtMik7XG5cbiAgICAgICAgY29uc3Qgcm93cyA9IFthbmNob3JQYXRoWzBdLCBmb2N1c1BhdGhbMF1dLnNvcnQoKG0sIG4pID0+IG0gLSBuKTtcbiAgICAgICAgY29uc3QgY29sdW1ucyA9IFthbmNob3JQYXRoWzFdLCBmb2N1c1BhdGhbMV1dLnNvcnQoKG0sIG4pID0+IG0gLSBuKTtcblxuICAgICAgICBjb25zdCB7IGNvbHNwYW46IGFuY2hvckNvbFNwYW5Db3VudCwgcm93c3BhbjogYW5jaG9yUm93U3BhbkNvdW50IH0gPSBFZGl0b3Iubm9kZShcbiAgICAgICAgICAgIGVkaXRvcixcbiAgICAgICAgICAgIHRoaXMuYW5jaG9yQ2VsbFBhdGhcbiAgICAgICAgKVswXSBhcyBUYWJsZUNlbGxFbGVtZW50O1xuICAgICAgICBjb25zdCB7IGNvbHNwYW46IGZvY3VzQ29sU3BhbkNvdW50LCByb3dzcGFuOiBmb2N1c1Jvd1NwYW5Db3VudCB9ID0gRWRpdG9yLm5vZGUoZWRpdG9yLCB0aGlzLmZvY3VzQ2VsbFBhdGgpWzBdIGFzIFRhYmxlQ2VsbEVsZW1lbnQ7XG5cbiAgICAgICAgY29uc3QgYW5jaG9yUm93ID0gYW5jaG9yUGF0aFswXSArIChhbmNob3JSb3dTcGFuQ291bnQgfHwgMSkgLSAxO1xuICAgICAgICBjb25zdCBmb2N1c1JvdyA9IGZvY3VzUGF0aFswXSArIChmb2N1c1Jvd1NwYW5Db3VudCB8fCAxKSAtIDE7XG4gICAgICAgIGNvbnN0IGFuY2hvckNvbCA9IGFuY2hvclBhdGhbMV0gKyAoYW5jaG9yQ29sU3BhbkNvdW50IHx8IDEpIC0gMTtcbiAgICAgICAgY29uc3QgZm9jdXNDb2wgPSBmb2N1c1BhdGhbMV0gKyAoZm9jdXNDb2xTcGFuQ291bnQgfHwgMSkgLSAxO1xuXG4gICAgICAgIGxldCBpbml0TWF4Q29sID0gTWF0aC5tYXgoYW5jaG9yQ29sLCBmb2N1c0NvbCk7XG4gICAgICAgIGxldCBpbml0TWF4Um93ID0gTWF0aC5tYXgoYW5jaG9yUm93LCBmb2N1c1Jvdyk7XG4gICAgICAgIGNvbnN0IHsgbWluUm93LCBtYXhSb3csIG1pbkNvbCwgbWF4Q29sIH0gPSBnZXRNaW5BbmRNYXhDZWxsSW5kZXgoXG4gICAgICAgICAgICB0aGlzLmVkaXRvcixcbiAgICAgICAgICAgIHRoaXMuZ2V0U2VsZWN0ZWRDZWxsUG9zaXRpb25zKCksXG4gICAgICAgICAgICBpbml0TWF4Um93LFxuICAgICAgICAgICAgaW5pdE1heENvbCxcbiAgICAgICAgICAgIHJvd3NbMF0sXG4gICAgICAgICAgICBjb2x1bW5zWzBdLFxuICAgICAgICAgICAgcG9zLnRhYmxlXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGNlbGxzID0gZ2V0Q2VsbFBvc2l0aW9uc0Zyb21SYW5nZShtaW5Sb3csIG1pbkNvbCwgbWF4Um93ICsgMSwgbWF4Q29sICsgMSk7XG4gICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRDZWxscyhjZWxscywgcG9zKTtcbiAgICB9XG5cbiAgICBzZWxlY3RGaXJzdENlbGwoKSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkQ2VsbFBvc2l0aW9ucyA9IHRoaXMuZ2V0U2VsZWN0ZWRDZWxsUG9zaXRpb25zKCk7XG4gICAgICAgIGNvbnN0IHsgcm93LCBjb2wgfSA9IHNlbGVjdGVkQ2VsbFBvc2l0aW9uc1swXTtcbiAgICAgICAgY29uc3QgdGFibGVQYXRoID0gZ2V0VGFibGVQYXRoKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgY29uc3QgcGF0aCA9IEVkaXRvci5zdGFydCh0aGlzLmVkaXRvciwgWy4uLnRhYmxlUGF0aCwgcm93LCBjb2xdKTtcbiAgICAgICAgVHJhbnNmb3Jtcy5zZWxlY3QodGhpcy5lZGl0b3IsIHBhdGgpO1xuICAgIH1cblxuICAgIC8vIOmAieaLqeWNleWFg+agvFxuICAgIHNlbGVjdENlbGwoY2VsbDogSFRNTFRhYmxlQ2VsbEVsZW1lbnQsIGVkaXRvcjogRWRpdG9yKSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBBbmd1bGFyRWRpdG9yLnRvU2xhdGVOb2RlKGVkaXRvciwgY2VsbCkgYXMgVGFibGVDZWxsRWxlbWVudDtcbiAgICAgICAgY29uc3QgcGF0aCA9IEFuZ3VsYXJFZGl0b3IuZmluZFBhdGgoZWRpdG9yLCBub2RlKTtcbiAgICAgICAgdGhpcy5zZXRBbmNob3JDZWxsUGF0aChwYXRoKTtcbiAgICAgICAgdGhpcy5mb2N1c0NlbGxQYXRoID0gcGF0aDtcbiAgICAgICAgdGhpcy5mb2N1c0NlbGxFbGVtZW50ID0gY2VsbDtcbiAgICAgICAgY29uc3QgW3JvdywgY29sXSA9IHBhdGguc2xpY2UoLTIpO1xuICAgICAgICBjb25zdCBwb3MgPSBjcmVhdGVUYWJsZVBvc2l0aW9uKGVkaXRvcik7XG4gICAgICAgIGNvbnN0IGNlbGxzOiBDZWxsUG9zaXRpb25bXSA9IFt7IHJvdywgY29sIH1dO1xuICAgICAgICBjb25zdCBzZWxlY3RlZENlbGxQb3NpdGlvbnMgPSB0aGlzLmdldFNlbGVjdGVkQ2VsbFBvc2l0aW9ucygpO1xuICAgICAgICBpZiAodGhpcy5wb2ludGVyU2VsZWN0aW9uKSB7XG4gICAgICAgICAgICBjZWxscy5wdXNoKC4uLnNlbGVjdGVkQ2VsbFBvc2l0aW9ucyk7XG4gICAgICAgICAgICAvLyDlpITnkIbljZXlhYPmoLzpgInkuK3ml7bvvIzlpITnkIbkuLrpgInkuK3lpJrljZXlhYPmoLxcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkQ2VsbHMgPSBnZXRDZWxsUG9zaXRpb25zQmVmb3JlTWVyZ2UodGhpcy5lZGl0b3IsIHsgcm93LCBjb2wgfSk7XG4gICAgICAgICAgICBjZWxscy5wdXNoKC4uLnNlbGVjdGVkQ2VsbHMpO1xuICAgICAgICAgICAgLy8g5bey6IGa54Sm55qE5Y2V5YWD5qC85Zyo5aSa6YCJ5qih5byP5LiL6YCJ5Lit77yI5pqC5a2Y5LiK5qyh6IGa54Sm55qE5Y2V5YWD5qC85pWw5o2u77yJXG4gICAgICAgICAgICBjb25zdCBmb2N1c0NlbGwgPSB0aGlzLmxhc3RGb2N1c0NlbGxQYXRoPy5zbGljZSgtMik7XG4gICAgICAgICAgICBpZiAoZm9jdXNDZWxsKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9jdXNDZWxscyA9IGdldENlbGxQb3NpdGlvbnNCZWZvcmVNZXJnZSh0aGlzLmVkaXRvciwgeyByb3c6IGZvY3VzQ2VsbFswXSwgY29sOiBmb2N1c0NlbGxbMV0gfSk7XG4gICAgICAgICAgICAgICAgY2VsbHMucHVzaCguLi5mb2N1c0NlbGxzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldFNlbGVjdGVkQ2VsbHMoY2VsbHMsIHBvcyk7XG4gICAgfVxuXG4gICAgc2VsZWN0Q2VsbE9uZ29pbmcoY2VsbDogSFRNTFRhYmxlQ2VsbEVsZW1lbnQsIGVkaXRvcjogRWRpdG9yKSB7XG4gICAgICAgIGNvbnN0IHBvcyA9IGNyZWF0ZVRhYmxlUG9zaXRpb24oZWRpdG9yKTtcbiAgICAgICAgaWYgKEFuZ3VsYXJFZGl0b3IuaXNSZWFkb25seShlZGl0b3IpIHx8ICFlZGl0b3Iuc2VsZWN0aW9uIHx8ICFwb3M/LnRhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGlzQ2hhbmdlZDogYm9vbGVhbjtcbiAgICAgICAgaWYgKGNlbGwpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBBbmd1bGFyRWRpdG9yLnRvU2xhdGVOb2RlKGVkaXRvciwgY2VsbCk7XG4gICAgICAgICAgICBjb25zdCBwYXRoID0gQW5ndWxhckVkaXRvci5maW5kUGF0aChlZGl0b3IsIG5vZGUpO1xuICAgICAgICAgICAgaXNDaGFuZ2VkID0gIXRoaXMuZm9jdXNDZWxsUGF0aCB8fCAhUGF0aC5lcXVhbHModGhpcy5mb2N1c0NlbGxQYXRoLCBwYXRoKTtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNDZWxsUGF0aCA9IHBhdGg7XG4gICAgICAgICAgICB0aGlzLmZvY3VzQ2VsbEVsZW1lbnQgPSBjZWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRDZWxsUG9zaXRpb25zID0gdGhpcy5nZXRTZWxlY3RlZENlbGxQb3NpdGlvbnMoKTtcbiAgICAgICAgICAgIGlzQ2hhbmdlZCA9ICF0aGlzLmZvY3VzQ2VsbFBhdGggfHwgKFBhdGguZXF1YWxzKHRoaXMuZm9jdXNDZWxsUGF0aCwgdGhpcy5hbmNob3JDZWxsUGF0aCkgJiYgc2VsZWN0ZWRDZWxsUG9zaXRpb25zLmxlbmd0aCA9PT0gMCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaXNQcmVwYXJlU2VsZWN0aW5nICYmIGlzQ2hhbmdlZCkge1xuICAgICAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KHRoaXMucHJlRm9jdXNDZWxsUGF0aCkgIT09IEpTT04uc3RyaW5naWZ5KHRoaXMuZm9jdXNDZWxsUGF0aCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzQ2VsbFNlbGVjdGluZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RDZWxscyhlZGl0b3IpO1xuICAgICAgICAgICAgICAgIHRoaXMucHJlRm9jdXNDZWxsUGF0aCA9IHRoaXMuZm9jdXNDZWxsUGF0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsZWFyU2VsZWN0ZWRDZWxscygpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENvbHVtbnNJbmRleCA9IFtdO1xuICAgICAgICB0aGlzLnNlbGVjdGVkUm93c0luZGV4ID0gW107XG4gICAgICAgIHRoaXMuaXNTZWxlY3RlZFRhYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNDZWxsU2VsZWN0aW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNSaWdodENsaWNraW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNGb2N1c2VkSW5wdXQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENlbGxzJC5uZXh0KFtdKTtcbiAgICB9XG5cbiAgICBjbGVhckxhc3RGb2N1c1BhdGgoKSB7XG4gICAgICAgIHRoaXMubGFzdEZvY3VzQ2VsbFBhdGggPSBudWxsO1xuICAgIH1cblxuICAgIHNlbGVjdGVkQ2VsbHNDaGFuZ2UoKTogT2JzZXJ2YWJsZTxUYWJsZUNlbGxFbGVtZW50W10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRDZWxscyQuYXNPYnNlcnZhYmxlKCkucGlwZShza2lwKDEpKTtcbiAgICB9XG5cbiAgICBjZWxsc1Bvc2l0aW9uQ2hhbmdlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jZWxsc0NoYW5nZU9iamVjdCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgY2hhbmdlQ2VsbHMoKSB7XG4gICAgICAgIHRoaXMuY2VsbHNDaGFuZ2VPYmplY3QkLm5leHQoKTtcbiAgICB9XG5cbiAgICBlbWl0VGFibGVDaGFuZ2UoKSB7XG4gICAgICAgIHRoaXMudGFibGVDaGFuZ2UkLm5leHQoKTtcbiAgICB9XG5cbiAgICB0YWJsZUNoYW5nZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGFibGVDaGFuZ2UkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHNlbGVjdENlbGxFbmQoKSB7XG4gICAgICAgIGlmICh0aGlzLmlzQ2VsbFNlbGVjdGluZykge1xuICAgICAgICAgICAgdGhpcy5mb2N1c0NlbGwodGhpcy5mb2N1c0NlbGxQYXRoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlzUHJlcGFyZVNlbGVjdGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnByZUZvY3VzQ2VsbFBhdGggPSBudWxsO1xuICAgIH1cblxuICAgIGRhbmdlcm91c0NlbGxzQ2hhbmdlKCk6IE9ic2VydmFibGU8Q2VsbFBvc2l0aW9uW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGFuZ2Vyb3VzQ2VsbHMkLmFzT2JzZXJ2YWJsZSgpLnBpcGUoc2tpcCgxKSk7XG4gICAgfVxuXG4gICAgc2V0RGFuZ2Vyb3VzQ2VsbHMoKSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkQ2VsbFBvc2l0aW9ucyA9IHRoaXMuZ2V0U2VsZWN0ZWRDZWxsUG9zaXRpb25zKCk7XG4gICAgICAgIHRoaXMuZGFuZ2Vyb3VzUm93c0luZGV4ID0gdGhpcy5zZWxlY3RlZFJvd3NJbmRleDtcbiAgICAgICAgdGhpcy5kYW5nZXJvdXNDb2x1bW5zSW5kZXggPSB0aGlzLnNlbGVjdGVkQ29sdW1uc0luZGV4O1xuICAgICAgICB0aGlzLmRhbmdlcm91c0NlbGxzJC5uZXh0KHNlbGVjdGVkQ2VsbFBvc2l0aW9ucyk7XG4gICAgfVxuXG4gICAgY2xlYXJEYW5nZXJvdXNDZWxscygpIHtcbiAgICAgICAgdGhpcy5kYW5nZXJvdXNSb3dzSW5kZXggPSBbXTtcbiAgICAgICAgdGhpcy5kYW5nZXJvdXNDb2x1bW5zSW5kZXggPSBbXTtcbiAgICAgICAgdGhpcy5kYW5nZXJvdXNDZWxscyQubmV4dChbXSk7XG4gICAgICAgIGNvbnN0IHBvcyA9IGNyZWF0ZVRhYmxlUG9zaXRpb24odGhpcy5lZGl0b3IpO1xuICAgICAgICBpZiAocG9zLnRhYmxlKSB7XG4gICAgICAgICAgICB0aGlzLmlzU2VsZWN0ZWRUYWJsZSA9IHRoaXMuc2VsZWN0ZWRSb3dzSW5kZXgubGVuZ3RoID09PSBwb3MuZ2V0SGVpZ2h0KCkgJiYgdGhpcy5zZWxlY3RlZENvbHVtbnNJbmRleC5sZW5ndGggPT09IHBvcy5nZXRXaWR0aCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGFuZ2Vyb3VzT3JTZWxlY3RlZENlbGxzQ2hhbmdlKCkge1xuICAgICAgICByZXR1cm4gbWVyZ2UodGhpcy5kYW5nZXJvdXNDZWxscyQuYXNPYnNlcnZhYmxlKCkucGlwZShza2lwKDEpKSwgdGhpcy5zZWxlY3RlZENlbGxzJC5hc09ic2VydmFibGUoKS5waXBlKHNraXAoMSkpKTtcbiAgICB9XG5cbiAgICBzZXREYW5nZXJvdXNSb3dzKCkge1xuICAgICAgICBjb25zdCBzZWxlY3RlZENlbGxQb3NpdGlvbnMgPSB0aGlzLmdldFNlbGVjdGVkQ2VsbFBvc2l0aW9ucygpO1xuICAgICAgICBjb25zdCBjZWxscyA9IHNlbGVjdGVkQ2VsbFBvc2l0aW9ucztcbiAgICAgICAgY29uc3Qgcm93cyA9IHVuaXEobWFwKGNlbGxzLCAncm93JykpLnZhbHVlT2YoKSBhcyBudW1iZXJbXTtcbiAgICAgICAgY29uc3QgcG9zID0gY3JlYXRlVGFibGVQb3NpdGlvbih0aGlzLmVkaXRvcik7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuXG4gICAgICAgIHRoaXMuZGFuZ2Vyb3VzUm93c0luZGV4ID0gcm93cztcbiAgICAgICAgdGhpcy5pc1NlbGVjdGVkVGFibGUgPSByb3dzLmxlbmd0aCA9PT0gcG9zLmdldEhlaWdodCgpO1xuICAgICAgICBpZiAodGhpcy5pc1NlbGVjdGVkVGFibGUpIHtcbiAgICAgICAgICAgIHRoaXMuZGFuZ2Vyb3VzQ29sdW1uc0luZGV4ID0gWy4uLkFycmF5KHBvcy5nZXRXaWR0aCgpKV0ubWFwKCh2LCBpKSA9PiBpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3Qgcm93SW5kZXggb2Ygcm93cykge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb3MuZ2V0V2lkdGgoKTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICAgICAgICAgICAgICByb3c6IHJvd0luZGV4LFxuICAgICAgICAgICAgICAgICAgICBjb2w6IGlcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRhbmdlcm91c0NlbGxzJC5uZXh0KHJlc3VsdCk7XG4gICAgfVxuXG4gICAgc2V0RGFuZ2Vyb3VzQ29sdW1ucygpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRDZWxsUG9zaXRpb25zID0gdGhpcy5nZXRTZWxlY3RlZENlbGxQb3NpdGlvbnMoKTtcbiAgICAgICAgY29uc3QgY2VsbHMgPSBzZWxlY3RlZENlbGxQb3NpdGlvbnM7XG4gICAgICAgIGNvbnN0IGNvbHMgPSB1bmlxKG1hcChjZWxscywgJ2NvbCcpKS52YWx1ZU9mKCkgYXMgbnVtYmVyW107XG4gICAgICAgIGNvbnN0IHBvcyA9IGNyZWF0ZVRhYmxlUG9zaXRpb24odGhpcy5lZGl0b3IpO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcblxuICAgICAgICB0aGlzLmRhbmdlcm91c0NvbHVtbnNJbmRleCA9IGNvbHM7XG4gICAgICAgIHRoaXMuaXNTZWxlY3RlZFRhYmxlID0gY29scy5sZW5ndGggPT09IHBvcy5nZXRXaWR0aCgpO1xuICAgICAgICBpZiAodGhpcy5pc1NlbGVjdGVkVGFibGUpIHtcbiAgICAgICAgICAgIHRoaXMuZGFuZ2Vyb3VzUm93c0luZGV4ID0gWy4uLkFycmF5KHBvcy5nZXRIZWlnaHQoKSldLm1hcCgoXywgaSkgPT4gaSk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGNvbEluZGV4IG9mIGNvbHMpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9zLmdldEhlaWdodCgpOyBpKyspIHtcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIHJvdzogaSxcbiAgICAgICAgICAgICAgICAgICAgY29sOiBjb2xJbmRleFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGFuZ2Vyb3VzQ2VsbHMkLm5leHQocmVzdWx0KTtcbiAgICB9XG5cbiAgICBzZXREYW5nZXJvdXNUYWJsZSgpIHtcbiAgICAgICAgdGhpcy5pc1NlbGVjdGVkVGFibGUgPSB0cnVlO1xuICAgICAgICBjb25zdCBwb3MgPSBjcmVhdGVUYWJsZVBvc2l0aW9uKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgY29uc3QgY2VsbHMgPSBnZXRDZWxsUG9zaXRpb25zRnJvbVJhbmdlKDAsIDAsIHBvcy5nZXRIZWlnaHQoKSwgcG9zLmdldFdpZHRoKCkpO1xuICAgICAgICB0aGlzLmRhbmdlcm91c1Jvd3NJbmRleCA9IFsuLi5BcnJheShwb3MuZ2V0SGVpZ2h0KCkpXS5tYXAoKF8sIGkpID0+IGkpO1xuICAgICAgICB0aGlzLmRhbmdlcm91c0NvbHVtbnNJbmRleCA9IFsuLi5BcnJheShwb3MuZ2V0V2lkdGgoKSldLm1hcCgoXywgaSkgPT4gaSk7XG4gICAgICAgIHRoaXMuZGFuZ2Vyb3VzQ2VsbHMkLm5leHQoY2VsbHMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOiBmueEpuWNleWFg+agvOW5tuiuvue9ruiBmueEpuebuOWFs+i3r+W+hOWPiuWFg+e0oFxuICAgICAqL1xuICAgIGZvY3VzQ2VsbChwYXRoOiBudW1iZXJbXSkge1xuICAgICAgICBjb25zdCBub2RlID0gTm9kZS5nZXQodGhpcy5lZGl0b3IsIHBhdGgpIGFzIFRhYmxlQ2VsbEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGNlbGxIVE1MRWxlbWVudCA9IEFuZ3VsYXJFZGl0b3IudG9ET01Ob2RlKHRoaXMuZWRpdG9yLCBub2RlKSBhcyBIVE1MVGFibGVDZWxsRWxlbWVudDtcbiAgICAgICAgdGhpcy5wcmVGb2N1c0NlbGxQYXRoID0gdGhpcy5mb2N1c0NlbGxQYXRoO1xuICAgICAgICB0aGlzLmZvY3VzQ2VsbFBhdGggPSBwYXRoO1xuICAgICAgICB0aGlzLmZvY3VzQ2VsbEVsZW1lbnQgPSBjZWxsSFRNTEVsZW1lbnQ7XG4gICAgICAgIFRyYW5zZm9ybXMuc2VsZWN0KHRoaXMuZWRpdG9yLCBFZGl0b3Iuc3RhcnQodGhpcy5lZGl0b3IsIHBhdGgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDljLrln5/pgInmi6nlvIDlp4tcbiAgICAgKiBAcGFyYW0gZWRpdG9yIOe8lui+keWZqOWvueixoVxuICAgICAqIEBwYXJhbSBjZWxsIOWNleWFg+agvOWFg+e0oFxuICAgICAqL1xuICAgIGFyZWFTZWxlY3Rpb25TdGFydChjZWxsOiBIVE1MVGFibGVDZWxsRWxlbWVudCwgZWRpdG9yOiBFZGl0b3IpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgbm9kZSA9IEFuZ3VsYXJFZGl0b3IudG9TbGF0ZU5vZGUoZWRpdG9yLCBjZWxsKTtcbiAgICAgICAgY29uc3QgcGF0aCA9IEFuZ3VsYXJFZGl0b3IuZmluZFBhdGgoZWRpdG9yLCBub2RlKTtcbiAgICAgICAgdGhpcy5pc1ByZXBhcmVTZWxlY3RpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmxhc3RGb2N1c0NlbGxQYXRoID0gcGF0aDtcbiAgICAgICAgaWYgKCF0aGlzPy5hbmNob3JDZWxsUGF0aCkge1xuICAgICAgICAgICAgdGhpcy5zZXRBbmNob3JDZWxsUGF0aChwYXRoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXM/LmZvY3VzQ2VsbFBhdGgpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNDZWxsUGF0aCA9IHBhdGg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLnByZUZvY3VzQ2VsbFBhdGgpIHtcbiAgICAgICAgICAgIHRoaXMucHJlRm9jdXNDZWxsUGF0aCA9IHRoaXMuYW5jaG9yQ2VsbFBhdGg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7ljLrln5/pgInmi6nnmoTljZXlhYPmoLxcbiAgICAgKiBAcGFyYW0gY2VsbEVsZW1lbnQg5Y2V5YWD5qC85YWD57SgXG4gICAgICovXG4gICAgc2V0QXJlYVNlbGVjdGlvbkNlbGxzKGNlbGxFbGVtZW50OiBUYWJsZUNlbGxFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChBbmd1bGFyRWRpdG9yLmlzUmVhZG9ubHkodGhpcy5lZGl0b3IpIHx8ICF0aGlzLmVkaXRvci5zZWxlY3Rpb24gfHwgIXRoaXMuaXNQcmVwYXJlU2VsZWN0aW5nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjdXJyZW50Q2VsbFBhdGggPSBBbmd1bGFyRWRpdG9yLmZpbmRQYXRoKHRoaXMuZWRpdG9yLCBjZWxsRWxlbWVudCk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkQ2VsbFBvc2l0aW9ucyA9IHRoaXMuZ2V0U2VsZWN0ZWRDZWxsUG9zaXRpb25zKCk7XG4gICAgICAgIGNvbnN0IHNlbGVjdEVxdWFsID0gUGF0aC5lcXVhbHMoY3VycmVudENlbGxQYXRoLCB0aGlzLmFuY2hvckNlbGxQYXRoKTtcblxuICAgICAgICAvLyDkuI3lj6/ku6XljLrln5/pgInmi6nljZXkuIDljZXlhYPmoLxcbiAgICAgICAgaWYgKHNlbGVjdGVkQ2VsbFBvc2l0aW9ucy5sZW5ndGggPD0gMSAmJiBzZWxlY3RFcXVhbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNDZWxsU2VsZWN0aW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5mb2N1c0NlbGwoY3VycmVudENlbGxQYXRoKTtcbiAgICAgICAgdGhpcy5zZWxlY3RDZWxscyh0aGlzLmVkaXRvcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5aSE55CG5Yy65Z+f6YCJ5oup5ZCv55So5pe26YCJ5oup5pW06KGML+aVtOWIl1xuICAgICAqIEBwYXJhbSBjZWxscyDpgInmi6nnmoTljZXlhYPmoLxcbiAgICAgKi9cbiAgICBhcmVhU2VsZWN0Um93QW5kQ29sdW1uKGNlbGxzOiBDZWxsUG9zaXRpb25bXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBwb3MgPSBjcmVhdGVUYWJsZVBvc2l0aW9uKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgY29uc3QgW3JvdywgY29sXSA9IHRoaXMuZm9jdXNDZWxsUGF0aC5zbGljZSgtMik7XG4gICAgICAgIGNvbnN0IHNlbGVjdENlbGxzID0gW3sgcm93LCBjb2wgfSwgLi4uY2VsbHNdO1xuICAgICAgICBjb25zdCBzb3J0Um93cyA9IHNlbGVjdENlbGxzLm1hcChpdGVtID0+IGl0ZW0ucm93KS5zb3J0KChtLCBuKSA9PiBtIC0gbik7XG4gICAgICAgIGNvbnN0IHNvcnRDb2xzID0gc2VsZWN0Q2VsbHMubWFwKGl0ZW0gPT4gaXRlbS5jb2wpLnNvcnQoKG0sIG4pID0+IG0gLSBuKTtcbiAgICAgICAgY29uc3Qgc3RhcnRSb3cgPSBzb3J0Um93c1swXTtcbiAgICAgICAgY29uc3Qgc3RhcnRDb2wgPSBzb3J0Q29sc1swXTtcbiAgICAgICAgY29uc3QgZW5kUm93ID0gc29ydENvbHNbc29ydENvbHMubGVuZ3RoIC0gMV07XG4gICAgICAgIGNvbnN0IGVuZENvbCA9IHNvcnRSb3dzW3NvcnRSb3dzLmxlbmd0aCAtIDFdO1xuICAgICAgICBjb25zdCBhbmNob3JDZWxsUGF0aCA9IHBvcy50YWJsZUVudHJ5WzFdLmNvbmNhdChbZW5kQ29sLCBlbmRSb3ddKTtcbiAgICAgICAgY29uc3QgZm9jdXNDZWxsUGF0aCA9IHBvcy50YWJsZUVudHJ5WzFdLmNvbmNhdChbc3RhcnRSb3csIHN0YXJ0Q29sXSk7XG5cbiAgICAgICAgdGhpcy5zZXRBbmNob3JDZWxsUGF0aChhbmNob3JDZWxsUGF0aCk7XG4gICAgICAgIHRoaXMuZm9jdXNDZWxsKGZvY3VzQ2VsbFBhdGgpO1xuICAgICAgICB0aGlzLnNlbGVjdENlbGxzKHRoaXMuZWRpdG9yKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7mjIflrpogYW5jaG9yQ2VsbFBhdGhcbiAgICAgKiBAcGFyYW0gcGF0aCDot6/lvoRcbiAgICAgKi9cbiAgICBzZXRBbmNob3JDZWxsUGF0aChwYXRoOiBudW1iZXJbXSkge1xuICAgICAgICBpZiAocGF0aCkge1xuICAgICAgICAgICAgdGhpcy5hbmNob3JDZWxsUGF0aCA9IHBhdGg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZWxlY3RDZWxsSW5EaXJlY3Rpb24oZGlyZWN0aW9uOiBUYWJsZVNlbGVjdENlbGxEaXJlY3Rpb24pIHtcbiAgICAgICAgY29uc3QgW3JvdywgY29sXSA9IHRoaXMuZm9jdXNDZWxsUGF0aC5zbGljZSgtMik7XG4gICAgICAgIGNvbnN0IG5leHRDZWxsID0gZ2V0TmV4dENlbGwodGhpcy5lZGl0b3IsIGRpcmVjdGlvbiwgW3JvdywgY29sXSk7XG4gICAgICAgIGlmIChuZXh0Q2VsbCkge1xuICAgICAgICAgICAgdGhpcy5zZXRBcmVhU2VsZWN0aW9uQ2VsbHMobmV4dENlbGwpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -49,8 +49,8 @@ export class TheTableToolbarItemComponent extends TheBaseToolbarItem {
|
|
|
49
49
|
});
|
|
50
50
|
return this.tableSelectRef;
|
|
51
51
|
}
|
|
52
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
53
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
52
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheTableToolbarItemComponent, deps: [{ token: i1.ThyPopover }, { token: i2.Overlay }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
53
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheTableToolbarItemComponent, selector: "the-table-toolbar-item", host: { classAttribute: "the-toolbar-dropdown-container" }, usesInheritance: true, ngImport: i0, template: `
|
|
54
54
|
<a
|
|
55
55
|
href="javascript:;"
|
|
56
56
|
class="link-with-down"
|
|
@@ -66,7 +66,7 @@ export class TheTableToolbarItemComponent extends TheBaseToolbarItem {
|
|
|
66
66
|
</a>
|
|
67
67
|
`, isInline: true, dependencies: [{ kind: "component", type: i3.ThyIconComponent, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: i4.ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "component", type: i5.ThyActionComponent, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }] }); }
|
|
68
68
|
}
|
|
69
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
69
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheTableToolbarItemComponent, decorators: [{
|
|
70
70
|
type: Component,
|
|
71
71
|
args: [{
|
|
72
72
|
selector: 'the-table-toolbar-item',
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { Editor, Transforms } from 'slate';
|
|
2
|
-
import { TheEditor } from '../../../interfaces';
|
|
3
1
|
import { createTablePosition } from './create-table-position';
|
|
4
2
|
export function getSelectCellNode(editor, selectedCells) {
|
|
5
3
|
const pos = createTablePosition(editor);
|
|
@@ -15,9 +13,4 @@ export function getSelectCellNode(editor, selectedCells) {
|
|
|
15
13
|
})
|
|
16
14
|
.filter(item => item);
|
|
17
15
|
}
|
|
18
|
-
|
|
19
|
-
const at = Editor.start(editor, path);
|
|
20
|
-
TheEditor.focus(editor);
|
|
21
|
-
Transforms.select(editor, at);
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXNlbGVjdC1jZWxsLW5vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy90YWJsZS91dGlscy9nZXQtc2VsZWN0LWNlbGwtbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFaEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE1BQWMsRUFBRSxhQUE2QjtJQUMzRSxNQUFNLEdBQUcsR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV4QyxPQUFPLGFBQWE7U0FDZixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDUixNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLElBQUksSUFBSSxFQUFFO1lBQ04sT0FBTztnQkFDSCxHQUFHLElBQUk7Z0JBQ1AsSUFBSSxFQUFFLElBQUk7YUFDYixDQUFDO1NBQ0w7SUFDTCxDQUFDLENBQUM7U0FDRCxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM5QixDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxNQUFjLEVBQUUsSUFBYztJQUNwRCxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN0QyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ2xDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3IsIFRyYW5zZm9ybXMgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBUaGVFZGl0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENlbGxQb3NpdGlvbiB9IGZyb20gJy4uL3RhYmxlLnR5cGVzJztcbmltcG9ydCB7IGNyZWF0ZVRhYmxlUG9zaXRpb24gfSBmcm9tICcuL2NyZWF0ZS10YWJsZS1wb3NpdGlvbic7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWxlY3RDZWxsTm9kZShlZGl0b3I6IEVkaXRvciwgc2VsZWN0ZWRDZWxsczogQ2VsbFBvc2l0aW9uW10pIHtcbiAgICBjb25zdCBwb3MgPSBjcmVhdGVUYWJsZVBvc2l0aW9uKGVkaXRvcik7XG5cbiAgICByZXR1cm4gc2VsZWN0ZWRDZWxsc1xuICAgICAgICAubWFwKGl0ZW0gPT4ge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHBvcy5maW5kQ2VsbEJ5UGF0aChpdGVtKTtcbiAgICAgICAgICAgIGlmIChub2RlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgbm9kZTogbm9kZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5maWx0ZXIoaXRlbSA9PiBpdGVtKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvY3VzQ2VsbChlZGl0b3I6IEVkaXRvciwgcGF0aDogbnVtYmVyW10pIHtcbiAgICBjb25zdCBhdCA9IEVkaXRvci5zdGFydChlZGl0b3IsIHBhdGgpO1xuICAgIFRoZUVkaXRvci5mb2N1cyhlZGl0b3IpO1xuICAgIFRyYW5zZm9ybXMuc2VsZWN0KGVkaXRvciwgYXQpO1xufVxuIl19
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXNlbGVjdC1jZWxsLW5vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy90YWJsZS91dGlscy9nZXQtc2VsZWN0LWNlbGwtbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU5RCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsTUFBYyxFQUFFLGFBQTZCO0lBQzNFLE1BQU0sR0FBRyxHQUFHLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXhDLE9BQU8sYUFBYTtTQUNmLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNSLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsSUFBSSxJQUFJLEVBQUU7WUFDTixPQUFPO2dCQUNILEdBQUcsSUFBSTtnQkFDUCxJQUFJLEVBQUUsSUFBSTthQUNiLENBQUM7U0FDTDtJQUNMLENBQUMsQ0FBQztTQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3IgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBDZWxsUG9zaXRpb24gfSBmcm9tICcuLi90YWJsZS50eXBlcyc7XG5pbXBvcnQgeyBjcmVhdGVUYWJsZVBvc2l0aW9uIH0gZnJvbSAnLi9jcmVhdGUtdGFibGUtcG9zaXRpb24nO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VsZWN0Q2VsbE5vZGUoZWRpdG9yOiBFZGl0b3IsIHNlbGVjdGVkQ2VsbHM6IENlbGxQb3NpdGlvbltdKSB7XG4gICAgY29uc3QgcG9zID0gY3JlYXRlVGFibGVQb3NpdGlvbihlZGl0b3IpO1xuXG4gICAgcmV0dXJuIHNlbGVjdGVkQ2VsbHNcbiAgICAgICAgLm1hcChpdGVtID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBwb3MuZmluZENlbGxCeVBhdGgoaXRlbSk7XG4gICAgICAgICAgICBpZiAobm9kZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgICAgICAgICAgIG5vZGU6IG5vZGVcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuZmlsdGVyKGl0ZW0gPT4gaXRlbSk7XG59XG4iXX0=
|
|
@@ -31,15 +31,15 @@ export class TheTodoItemComponent extends TheBaseElementComponent {
|
|
|
31
31
|
}
|
|
32
32
|
TheTransforms.setNode(this.editor, { checked }, this.element);
|
|
33
33
|
}
|
|
34
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
35
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
34
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheTodoItemComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.TheContextService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
35
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheTodoItemComponent, selector: "div[theTodoItem]", host: { properties: { "class.the-check-item": "this.checkItemClass", "class.the-todo-item-selectable": "this.checkItemSelectable", "attr.the-level": "this.level" } }, usesInheritance: true, ngImport: i0, template: `
|
|
36
36
|
<span contenteditable="false" class="todo-item-status">
|
|
37
37
|
<input #checkbox type="checkbox" [checked]="element.checked" (click)="onCheck(checkbox.checked)" />
|
|
38
38
|
</span>
|
|
39
39
|
<span><slate-children [children]="children" [context]="childrenContext" [viewContext]="viewContext"></slate-children></span>
|
|
40
40
|
`, isInline: true, dependencies: [{ kind: "component", type: i2.SlateChildren, selector: "slate-children", inputs: ["children", "context", "viewContext"] }] }); }
|
|
41
41
|
}
|
|
42
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheTodoItemComponent, decorators: [{
|
|
43
43
|
type: Component,
|
|
44
44
|
args: [{
|
|
45
45
|
selector: 'div[theTodoItem]',
|
|
@@ -63,10 +63,10 @@ export class TheVerticalToolbarItemComponent extends TheBaseToolbarDropdown {
|
|
|
63
63
|
this.dropdownPopoverRef.close();
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
67
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
66
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheVerticalToolbarItemComponent, deps: [{ token: i0.ElementRef }, { token: i1.ThyPopover }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
67
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheVerticalToolbarItemComponent, selector: "the-toolbar-vertical-align-item", host: { listeners: { "document: mousedown": "handleDocumentMouseDown($event)" }, properties: { "class.hide": "!active" }, classAttribute: "the-toolbar-dropdown-container verticalAlign" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["VerticalAlignItems"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<a\n href=\"javascript:;\"\n class=\"icon-mode link-with-down\"\n thyAction\n [thyActionIcon]=\"activeMenuItem?.icon\"\n [thyActionActive]=\"isOpened\"\n [thyTooltip]=\"toolbarItem?.name\"\n thyTooltipPlacement=\"top\"\n (mousedown)=\"execute($event)\"\n>\n <thy-icon class=\"font-size-sm text-desc ml-1\" thyIconName=\"caret-down\"></thy-icon>\n</a>\n\n<ng-template #VerticalAlignItems>\n <div class=\"thy-dropdown-menu\">\n <ng-container *ngFor=\"let menu of toolbarItem?.includes\">\n <a\n href=\"javascript:;\"\n thyDropdownMenuItem\n [thyDropdownMenuItemActive]=\"menu.key === activeMenuItem?.key\"\n (mousedown)=\"itemMousedown($event, menu)\"\n >\n <thy-icon *ngIf=\"menu.icon\" thyDropdownMenuItemIcon [thyIconName]=\"menu?.icon\"></thy-icon>\n <span thyDropdownMenuItemName>{{ menu.name }}</span>\n </a>\n </ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ThyIconComponent, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: i4.ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "component", type: i5.ThyActionComponent, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "directive", type: i6.ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { kind: "directive", type: i6.ThyDropdownMenuItemNameDirective, selector: "[thyDropdownMenuItemName]" }, { kind: "directive", type: i6.ThyDropdownMenuItemIconDirective, selector: "[thyDropdownMenuItemIcon]" }, { kind: "directive", type: i6.ThyDropdownMenuItemActiveDirective, selector: "[thyDropdownMenuItemActive]", inputs: ["thyDropdownMenuItemActive"] }] }); }
|
|
68
68
|
}
|
|
69
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
69
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheVerticalToolbarItemComponent, decorators: [{
|
|
70
70
|
type: Component,
|
|
71
71
|
args: [{ selector: 'the-toolbar-vertical-align-item', host: {
|
|
72
72
|
class: 'the-toolbar-dropdown-container verticalAlign',
|
|
@@ -126,10 +126,10 @@ export class TheContextService {
|
|
|
126
126
|
this.destroy$.next();
|
|
127
127
|
this.destroy$.complete();
|
|
128
128
|
}
|
|
129
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
130
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.
|
|
129
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheContextService, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
130
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheContextService }); }
|
|
131
131
|
}
|
|
132
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
132
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheContextService, decorators: [{
|
|
133
133
|
type: Injectable
|
|
134
134
|
}], ctorParameters: function () { return [{ type: i0.NgZone }]; } });
|
|
135
135
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3NlcnZpY2VzL2NvbnRleHQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUF1QyxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsU0FBUyxFQUFjLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFFcEUsT0FBTyxFQUFFLFNBQVMsRUFBYSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBZTNDLE1BQU0sT0FBTyxpQkFBaUI7SUFvQzFCLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBakMxQixhQUFRLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFJekMsbUJBQWMsR0FBa0MsRUFBRSxDQUFDO1FBRW5ELHNCQUFpQixHQUFzQjtZQUMxQyxRQUFRLEVBQUUsS0FBSztZQUNmLEtBQUssRUFBRSxFQUFFO1NBQ1osQ0FBQztRQVFLLHVCQUFrQixHQUFHLElBQUksT0FBTyxFQUFnRCxDQUFDO1FBRWpGLHFCQUFnQixHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFFMUMsc0JBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQWlGLENBQUM7UUFFakgsc0JBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQWlGLENBQUM7UUFFakgsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBaUYsQ0FBQztRQVNqSCxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBYSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUMxRixJQUFJ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RSxRQUFRLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxVQUFVLEVBQUUsQ0FBQztRQUMzQyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsVUFBVSxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLGNBQWMsRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsVUFBVSxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDOzhHQXhLUSxpQkFBaUI7a0hBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSwgT25EZXN0cm95LCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGhlT3B0aW9ucyB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWRpdG9yJztcbmltcG9ydCB7IEZvbnRTaXplcywgTWFya1R5cGVzLCBTY3JvbGxEaXJlY3Rpb24gfSBmcm9tICcuLi9jb25zdGFudHMvbm9kZS10eXBlcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGhlQ29udGV4dE9wdGlvbnMge1xuICAgIHRoZU9wdGlvbnM6IFRoZU9wdGlvbnM7XG4gICAgbmF0aXZlRWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gICAgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZjtcbiAgICB3aWR0aD86IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIFBhaW50Rm9ybWF0U3RhdHVzIHtcbiAgICBpc0FjdGl2ZTogYm9vbGVhbjtcbiAgICBtYXJrczogeyBba2V5IGluIE1hcmtUeXBlc10/OiBhbnkgfTtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRoZUNvbnRleHRTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIHNjcm9sbFN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICAgIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgcHJpdmF0ZSBvcHRpb25zOiBUaGVDb250ZXh0T3B0aW9ucztcblxuICAgIHB1YmxpYyB1cGxvYWRpbmdGaWxlczogeyB1cmw6IHN0cmluZzsgZmlsZTogRmlsZSB9W10gPSBbXTtcblxuICAgIHB1YmxpYyBwYWludEZvcm1hdFN0YXR1czogUGFpbnRGb3JtYXRTdGF0dXMgPSB7XG4gICAgICAgIGlzQWN0aXZlOiBmYWxzZSxcbiAgICAgICAgbWFya3M6IHt9XG4gICAgfTtcblxuICAgIHB1YmxpYyBvbk1vdXNlVXAkOiBPYnNlcnZhYmxlPE1vdXNlRXZlbnQ+O1xuXG4gICAgcHVibGljIG9uTW91c2VNb3ZlJDogT2JzZXJ2YWJsZTxNb3VzZUV2ZW50PjtcblxuICAgIHB1YmxpYyBvbk1vdXNlRG93biQ6IE9ic2VydmFibGU8TW91c2VFdmVudD47XG5cbiAgICBwdWJsaWMgY29udGFpbmVyU2Nyb2xsZWQkID0gbmV3IFN1YmplY3Q8eyBldmVudDogRXZlbnQ7IGRpcmVjdGlvbjogU2Nyb2xsRGlyZWN0aW9uIH0+KCk7XG5cbiAgICBwdWJsaWMgdXBsb2FkaW5nU3RhdHVzJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBwdWJsaWMgY29udGFpbmVyUmVzaXplZCQgPSBuZXcgU3ViamVjdDx7IGVudHJ5OiBSZXNpemVPYnNlcnZlckVudHJ5OyB3aWR0aENoYW5nZWQ6IGJvb2xlYW47IGhlaWdodENoYW5nZWQ6IGJvb2xlYW4gfT4oKTtcblxuICAgIHB1YmxpYyB0aGVFZGl0b3JSZXNpemVkJCA9IG5ldyBTdWJqZWN0PHsgZW50cnk6IFJlc2l6ZU9ic2VydmVyRW50cnk7IHdpZHRoQ2hhbmdlZDogYm9vbGVhbjsgaGVpZ2h0Q2hhbmdlZDogYm9vbGVhbiB9PigpO1xuXG4gICAgcHVibGljIHdpbmRvd1Jlc2l6ZWQkID0gbmV3IFN1YmplY3Q8eyBlbnRyeTogUmVzaXplT2JzZXJ2ZXJFbnRyeTsgd2lkdGhDaGFuZ2VkOiBib29sZWFuOyBoZWlnaHRDaGFuZ2VkOiBib29sZWFuIH0+KCk7XG5cbiAgICBwcml2YXRlIGNvbnRhaW5lclJlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlcjtcblxuICAgIHByaXZhdGUgdGhlRWRpdG9yUmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xuXG4gICAgcHJpdmF0ZSB3aW5kb3dSZXNpemVPYnNlcnZlcjogUmVzaXplT2JzZXJ2ZXI7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5nWm9uZTogTmdab25lKSB7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25Nb3VzZVVwJCA9IGZyb21FdmVudDxNb3VzZUV2ZW50Pih3aW5kb3csIGBtb3VzZXVwYCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpO1xuICAgICAgICAgICAgdGhpcy5vbk1vdXNlTW92ZSQgPSBmcm9tRXZlbnQ8TW91c2VFdmVudD4od2luZG93LCBgbW91c2Vtb3ZlYCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpO1xuICAgICAgICAgICAgdGhpcy5vbk1vdXNlRG93biQgPSBmcm9tRXZlbnQ8TW91c2VFdmVudD4od2luZG93LCBgbW91c2Vkb3duYCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdGlhbGl6ZShvcHRpb25zOiBUaGVDb250ZXh0T3B0aW9ucykge1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgICAgICB0aGlzLnJlYmluZENvbnRhaW5lclNjcm9sbCgpO1xuICAgICAgICB0aGlzLmJpbmRDb250YWluZXJSZXNpemUoKTtcbiAgICAgICAgdGhpcy5iaW5kVGhlRWRpdG9yUmVzaXplKCk7XG4gICAgICAgIHRoaXMuYmluZFdpbmRvd1Jlc2l6ZSgpO1xuICAgIH1cblxuICAgIGdldFNjcm9sbENvbnRhaW5lcigpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMubmF0aXZlRWxlbWVudC5jbG9zZXN0KHRoaXMub3B0aW9ucy50aGVPcHRpb25zPy5zY3JvbGxDb250YWluZXIpIHx8XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKHRoaXMub3B0aW9ucy50aGVPcHRpb25zPy5zY3JvbGxDb250YWluZXIpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmViaW5kQ29udGFpbmVyU2Nyb2xsKCkge1xuICAgICAgICB0aGlzLnNjcm9sbFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy50aGVPcHRpb25zPy5zY3JvbGxDb250YWluZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLmdldFNjcm9sbENvbnRhaW5lcigpO1xuICAgICAgICAgICAgaWYgKGNvbnRhaW5lckVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBwcmV2aW91c0NvbnRhaW5lclNjcm9sbCA9IHsgeDogMCwgeTogMCB9O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFN1YnNjcmlwdGlvbiA9IGZyb21FdmVudDxFdmVudD4oY29udGFpbmVyRWxlbWVudCwgJ3Njcm9sbCcpLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbnRpcmVzID0geyBldmVudCwgZGlyZWN0aW9uOiBTY3JvbGxEaXJlY3Rpb24uWSB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgW3gsIHldID0gW3RhcmdldC5zY3JvbGxMZWZ0LCB0YXJnZXQuc2Nyb2xsVG9wXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh4ICE9PSBwcmV2aW91c0NvbnRhaW5lclNjcm9sbC54KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50aXJlcy5kaXJlY3Rpb24gPSBTY3JvbGxEaXJlY3Rpb24uWDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh5ICE9PSBwcmV2aW91c0NvbnRhaW5lclNjcm9sbC55KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50aXJlcy5kaXJlY3Rpb24gPSBTY3JvbGxEaXJlY3Rpb24uWTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzQ29udGFpbmVyU2Nyb2xsID0geyB4LCB5IH07XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lclNjcm9sbGVkJC5uZXh0KGVudGlyZXMpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJpbmRDb250YWluZXJSZXNpemUoKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLmdldFNjcm9sbENvbnRhaW5lcigpO1xuICAgICAgICBpZiAoY29udGFpbmVyRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXJSZXNpemVPYnNlcnZlciA9IHRoaXMuZWxlbWVudFJlc2l6ZShjb250YWluZXJFbGVtZW50LCB0aGlzLmNvbnRhaW5lclJlc2l6ZWQkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJpbmRUaGVFZGl0b3JSZXNpemUoKSB7XG4gICAgICAgIHRoaXMudGhlRWRpdG9yUmVzaXplT2JzZXJ2ZXIgPSB0aGlzLmVsZW1lbnRSZXNpemUodGhpcy5vcHRpb25zLm5hdGl2ZUVsZW1lbnQsIHRoaXMudGhlRWRpdG9yUmVzaXplZCQpO1xuICAgIH1cblxuICAgIGJpbmRXaW5kb3dSZXNpemUoKSB7XG4gICAgICAgIHRoaXMud2luZG93UmVzaXplT2JzZXJ2ZXIgPSB0aGlzLmVsZW1lbnRSZXNpemUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCB0aGlzLndpbmRvd1Jlc2l6ZWQkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGVsZW1lbnRSZXNpemUoXG4gICAgICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgICAgICBzdWJqZWN0OiBTdWJqZWN0PHsgZW50cnk6IFJlc2l6ZU9ic2VydmVyRW50cnk7IHdpZHRoQ2hhbmdlZDogYm9vbGVhbjsgaGVpZ2h0Q2hhbmdlZDogYm9vbGVhbiB9PlxuICAgICkge1xuICAgICAgICBsZXQgcHJldmlvdXNDb250YWluZXJSZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgcmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoZW50aXJlcyA9PiB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50UmVjdCA9IGVudGlyZXNbMF0uY29udGVudFJlY3Q7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB7IGVudHJ5OiBlbnRpcmVzWzBdLCB3aWR0aENoYW5nZWQ6IGZhbHNlLCBoZWlnaHRDaGFuZ2VkOiBmYWxzZSB9O1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRSZWN0LndpZHRoICE9PSBwcmV2aW91c0NvbnRhaW5lclJlY3Qud2lkdGgpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQud2lkdGhDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjdXJyZW50UmVjdC5oZWlnaHQgIT09IHByZXZpb3VzQ29udGFpbmVyUmVjdC5oZWlnaHQpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQuaGVpZ2h0Q2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwcmV2aW91c0NvbnRhaW5lclJlY3QgPSBjdXJyZW50UmVjdDtcbiAgICAgICAgICAgIHN1YmplY3QubmV4dChyZXN1bHQpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50KTtcbiAgICAgICAgcmV0dXJuIHJlc2l6ZU9ic2VydmVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRPcHRpb25zKCkge1xuICAgICAgICBpZiAoIXRoaXMub3B0aW9ucy53aWR0aCkge1xuICAgICAgICAgICAgY29uc3QgZmlyc3RFbGVtZW50Q2hpbGQgPSB0aGlzLmdldEZpcnN0RWxlbWVudENoaWxkKCk7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMud2lkdGggPSBmaXJzdEVsZW1lbnRDaGlsZC5vZmZzZXRXaWR0aDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRUaGVPcHRpb25zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLnRoZU9wdGlvbnM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldERlZmF1bHRGb250U2l6ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy50aGVPcHRpb25zPy5mb250U2l6ZSB8fCBGb250U2l6ZXMuZm9udFNpemUxNDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RWRpdGFibGVFbGVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLnRoZS1lZGl0b3ItdHlwbycpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGaXJzdEVsZW1lbnRDaGlsZCgpIHtcbiAgICAgICAgY29uc3QgZWRpdGFibGVFbGVtZW50ID0gdGhpcy5nZXRFZGl0YWJsZUVsZW1lbnQoKTtcbiAgICAgICAgcmV0dXJuIGVkaXRhYmxlRWxlbWVudD8uZmlyc3RFbGVtZW50Q2hpbGQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgYWRkVXBsb2FkaW5nRmlsZXMoZmlsZTogeyB1cmw6IHN0cmluZzsgZmlsZTogRmlsZSB9KSB7XG4gICAgICAgIHRoaXMudXBsb2FkaW5nRmlsZXMucHVzaChmaWxlKTtcbiAgICB9XG5cbiAgICByZW1vdmVVcGxvYWRGaWxlKGZpbGU6IHsgdXJsOiBzdHJpbmc7IGZpbGU6IEZpbGUgfSkge1xuICAgICAgICB0aGlzLnVwbG9hZGluZ0ZpbGVzLnNwbGljZShcbiAgICAgICAgICAgIHRoaXMudXBsb2FkaW5nRmlsZXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS51cmwgPT09IGZpbGUudXJsKSxcbiAgICAgICAgICAgIDFcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGxvYWRpbmdTdGF0dXMkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuY29udGFpbmVyU2Nyb2xsZWQkPy5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLnRoZUVkaXRvclJlc2l6ZWQkPy5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLmNvbnRhaW5lclJlc2l6ZWQkPy5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLmNvbnRhaW5lclJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgICAgIHRoaXMudGhlRWRpdG9yUmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgdGhpcy53aW5kb3dSZXNpemVkJD8uY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy53aW5kb3dSZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgICAgICB0aGlzLnNjcm9sbFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -270,10 +270,10 @@ export class TheTableContextMenuService {
|
|
|
270
270
|
return this.menuRef.afterClosed();
|
|
271
271
|
}
|
|
272
272
|
}
|
|
273
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
274
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.
|
|
273
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheTableContextMenuService, deps: [{ token: i1.TableStore }, { token: i2.ThyPopover }, { token: i0.NgZone }, { token: i3.TheContextService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
274
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheTableContextMenuService }); }
|
|
275
275
|
}
|
|
276
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
276
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheTableContextMenuService, decorators: [{
|
|
277
277
|
type: Injectable
|
|
278
278
|
}], ctorParameters: function () { return [{ type: i1.TableStore }, { type: i2.ThyPopover }, { type: i0.NgZone }, { type: i3.TheContextService }]; } });
|
|
279
279
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29udGV4dG1lbnUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9zZXJ2aWNlcy90YWJsZS1jb250ZXh0bWVudS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDMUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTVELE9BQU8sRUFBYyxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNoRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQzs7Ozs7QUFJaEQsTUFBTSxPQUFPLDBCQUEwQjtJQUduQyxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztJQUMxRCxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO0lBQ3JELENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDZixNQUFNLElBQUksR0FB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QkFDckIsZ0JBQWdCLEVBQUUsS0FBSzthQUMxQixDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxnQkFBZ0I7UUFDWixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3JCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNyQztJQUNMLENBQUM7OEdBL1FRLDBCQUEwQjtrSEFBMUIsMEJBQTBCOzsyRkFBMUIsMEJBQTBCO2tCQUR0QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlQb3BvdmVyLCBUaHlQb3BvdmVyUmVmIH0gZnJvbSAnbmd4LXRldGh5cy9wb3BvdmVyJztcbmltcG9ydCB7IFRoZUNvbnRleHRNZW51Q29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9jb250ZXh0bWVudS9jb250ZXh0bWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVFZGl0b3IgfSBmcm9tICcuLi9wbHVnaW5zL3RhYmxlL3RhYmxlLmVkaXRvcic7XG5pbXBvcnQgeyBUYWJsZVN0b3JlIH0gZnJvbSAnLi4vcGx1Z2lucy90YWJsZS90YWJsZS5zdG9yZSc7XG5pbXBvcnQgeyBNZW51RW50aXR5LCBUYWJsZUluc2VydFR5cGUgfSBmcm9tICcuLi9wbHVnaW5zL3RhYmxlL3RhYmxlLnR5cGVzJztcbmltcG9ydCB7IGdldFNlbGVjdENlbGxOb2RlIH0gZnJvbSAnLi4vcGx1Z2lucy90YWJsZS91dGlscy9nZXQtc2VsZWN0LWNlbGwtbm9kZSc7XG5pbXBvcnQgeyBzb3J0Q2VsbCB9IGZyb20gJy4uL3BsdWdpbnMvdGFibGUvdXRpbHMvaGFuZGxlLWNlbGwnO1xuaW1wb3J0IHsgY2FsY3VsYXRlQ2VsbFNwYW4sIGdldExlZnRDZWxsRGljdCB9IGZyb20gJy4uL3BsdWdpbnMvdGFibGUvdXRpbHMvbWVyZ2UtY2VsbCc7XG5pbXBvcnQgeyByZW1vdmVDb2x1bW5PclJvd3MgfSBmcm9tICcuLi9wbHVnaW5zL3RhYmxlL3V0aWxzL3JlbW92ZS1yb3ctY29sdW1uJztcbmltcG9ydCB7IHNldENlbGxNZW51VmlzaWJpbGl0eSB9IGZyb20gJy4uL3BsdWdpbnMvdGFibGUvdXRpbHMvc2V0LW1lbnUtY2VsbC1pbnZpc2liaWxpdHknO1xuaW1wb3J0IHsgZ2V0U2VsZWN0ZWRDZWxsIH0gZnJvbSAnLi4vcGx1Z2lucy90YWJsZS91dGlscy90YWJsZS1lbnRyeSc7XG5pbXBvcnQgeyByZVNlbGVjdGlvbiwgcmVmb2N1cyB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IFRoZUNvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi9jb250ZXh0LnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGhlVGFibGVDb250ZXh0TWVudVNlcnZpY2Uge1xuICAgIG1lbnVSZWY6IFRoeVBvcG92ZXJSZWY8VGhlQ29udGV4dE1lbnVDb21wb25lbnQ+O1xuXG4gICAgZ2V0IGlzT3BlbmVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tZW51UmVmICYmIHRoaXMubWVudVJlZi5jb21wb25lbnRJbnN0YW5jZTtcbiAgICB9XG5cbiAgICBnZXQgZWRpdG9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50YWJsZVN0b3JlICYmIHRoaXMudGFibGVTdG9yZS5lZGl0b3I7XG4gICAgfVxuXG4gICAgZ2V0IGJhY2tncm91bmRDb2xvcigpIHtcbiAgICAgICAgY29uc3QgY2VsbCA9IGdldFNlbGVjdGVkQ2VsbCh0aGlzLmVkaXRvcik7XG4gICAgICAgIHJldHVybiBjZWxsID8gY2VsbC5iYWNrZ3JvdW5kQ29sb3IgOiAnJztcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB0YWJsZVN0b3JlOiBUYWJsZVN0b3JlLFxuICAgICAgICBwcml2YXRlIHRoeVBvcG92ZXI6IFRoeVBvcG92ZXIsXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIHByaXZhdGUgdGhlQ29udGV4dFNlcnZpY2U6IFRoZUNvbnRleHRTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgbWVudUVudGl0aWVzOiBNZW51RW50aXR5W10gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ2JhY2tncm91bmQtY29sb3InLFxuICAgICAgICAgICAgaWNvbjogJ2JhY2tncm91bmQtdHQnLFxuICAgICAgICAgICAgZGl2aWRlcjogdHJ1ZSxcbiAgICAgICAgICAgIG5hbWU6ICfljZXlhYPmoLzog4zmma8nLFxuICAgICAgICAgICAgZXh0ZW5kSWNvbjogJ2FuZ2xlLXJpZ2h0JyxcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IHRydWUsXG4gICAgICAgICAgICBhY3Rpb25IYW5kbGU6ICgpID0+IHt9LFxuICAgICAgICAgICAgYWN0aXZlSGFuZGxlOiAoZXZlbnQ6IE1vdXNlRXZlbnQsIGl0ZW06IE1lbnVFbnRpdHkpID0+IHtcbiAgICAgICAgICAgICAgICBUYWJsZUVkaXRvci5zZXRDZWxsc0JhY2tncm91bmRDb2xvcih0aGlzLmVkaXRvciwgaXRlbS5iYWNrZ3JvdW5kQ29sb3IpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRlYWN0aXZhdGVIYW5kbGU6IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChldmVudC5yZWxhdGVkVGFyZ2V0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LnJlbGF0ZWRUYXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCdjb2xvci1zZWxlY3QtY29udGFpbmVyJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IFRhYmxlSW5zZXJ0VHlwZS5pbnNlcnRSb3dzVXAsXG4gICAgICAgICAgICBpY29uOiAndGFibGUtaW5zZXJ0LXJvd3MtdG9wJyxcbiAgICAgICAgICAgIG5hbWU6ICflkJHkuIrmj5LlhaUnLFxuICAgICAgICAgICAgdmlzaWJpbGl0eTogdHJ1ZSxcbiAgICAgICAgICAgIGlzSW5wdXROdW1iZXI6IHRydWUsXG4gICAgICAgICAgICBuYW1lU3VmZml4OiAn6KGMJyxcbiAgICAgICAgICAgIGFjdGlvbkhhbmRsZTogKGl0ZW06IE1lbnVFbnRpdHkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHRhcmdldFJvd0luZGV4IH0gPSB0aGlzLmdldFRhcmdldFJvd09yQ29sSW5kZXgoKTtcbiAgICAgICAgICAgICAgICBUYWJsZUVkaXRvci5pbnNlcnRSb3codGhpcy5lZGl0b3IsIGl0ZW0uY291bnQsIHRhcmdldFJvd0luZGV4KTtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlU3RvcmUuY2hhbmdlQ2VsbHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBUYWJsZUluc2VydFR5cGUuaW5zZXJ0Um93c0Rvd24sXG4gICAgICAgICAgICBpY29uOiAndGFibGUtaW5zZXJ0LXJvd3MtZG93bicsXG4gICAgICAgICAgICBuYW1lOiAn5ZCR5LiL5o+S5YWlJyxcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IHRydWUsXG4gICAgICAgICAgICBpc0lucHV0TnVtYmVyOiB0cnVlLFxuICAgICAgICAgICAgbmFtZVN1ZmZpeDogJ+ihjCcsXG4gICAgICAgICAgICBhY3Rpb25IYW5kbGU6IChpdGVtOiBNZW51RW50aXR5KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyB0YXJnZXRSb3dJbmRleCB9ID0gdGhpcy5nZXRUYXJnZXRSb3dPckNvbEluZGV4KGZhbHNlKTtcbiAgICAgICAgICAgICAgICBUYWJsZUVkaXRvci5pbnNlcnRSb3codGhpcy5lZGl0b3IsIGl0ZW0uY291bnQsIHRhcmdldFJvd0luZGV4KTtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlU3RvcmUuY2hhbmdlQ2VsbHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBUYWJsZUluc2VydFR5cGUuaW5zZXJ0Q29sdW1uc0xlZnQsXG4gICAgICAgICAgICBpY29uOiAndGFibGUtaW5zZXJ0LWNvbHVtbnMtbGVmdCcsXG4gICAgICAgICAgICBuYW1lOiAn5ZCR5bem5o+S5YWlJyxcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IHRydWUsXG4gICAgICAgICAgICBpc0lucHV0TnVtYmVyOiB0cnVlLFxuICAgICAgICAgICAgbmFtZVN1ZmZpeDogJ+WIlycsXG4gICAgICAgICAgICBhY3Rpb25IYW5kbGU6IChpdGVtOiBNZW51RW50aXR5KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyB0YXJnZXRDb2xJbmRleCB9ID0gdGhpcy5nZXRUYXJnZXRSb3dPckNvbEluZGV4KCk7XG4gICAgICAgICAgICAgICAgVGFibGVFZGl0b3IuaW5zZXJ0Q29sdW1uKHRoaXMuZWRpdG9yLCBpdGVtLmNvdW50LCB0YXJnZXRDb2xJbmRleCk7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZVN0b3JlLmNoYW5nZUNlbGxzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogVGFibGVJbnNlcnRUeXBlLmluc2VydENvbHVtbnNSaWdodCxcbiAgICAgICAgICAgIGljb246ICd0YWJsZS1pbnNlcnQtY29sdW1ucy1yaWdodCcsXG4gICAgICAgICAgICBkaXZpZGVyOiB0cnVlLFxuICAgICAgICAgICAgbmFtZTogJ+WQkeWPs+aPkuWFpScsXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxuICAgICAgICAgICAgaXNJbnB1dE51bWJlcjogdHJ1ZSxcbiAgICAgICAgICAgIG5hbWVTdWZmaXg6ICfliJcnLFxuICAgICAgICAgICAgYWN0aW9uSGFuZGxlOiAoaXRlbTogTWVudUVudGl0eSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgdGFyZ2V0Q29sSW5kZXggfSA9IHRoaXMuZ2V0VGFyZ2V0Um93T3JDb2xJbmRleChmYWxzZSk7XG4gICAgICAgICAgICAgICAgVGFibGVFZGl0b3IuaW5zZXJ0Q29sdW1uKHRoaXMuZWRpdG9yLCBpdGVtLmNvdW50LCB0YXJnZXRDb2xJbmRleCk7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZVN0b3JlLmNoYW5nZUNlbGxzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG5cbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiAnY2xlYXItc2VsZWN0aW9uJyxcbiAgICAgICAgICAgIGljb246ICdzd2VlcCcsXG4gICAgICAgICAgICBkaXZpZGVyOiB0cnVlLFxuICAgICAgICAgICAgbmFtZTogJ+a4heepuumAieS4reWMuuWfnycsXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxuICAgICAgICAgICAgYWN0aW9uSGFuZGxlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgVGFibGVFZGl0b3IuY2xlYXJDZWxsc0NvbnRlbnQodGhpcy5lZGl0b3IpO1xuICAgICAgICAgICAgICAgIHRoaXMudGFibGVTdG9yZS5zZWxlY3RGaXJzdENlbGwoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiAnbWVyZ2UtY2VsbHMnLFxuICAgICAgICAgICAgaWNvbjogJ3RhYmxlLW1lcmdlLWNlbGxzJyxcbiAgICAgICAgICAgIG5hbWU6ICflkIjlubbljZXlhYPmoLwnLFxuICAgICAgICAgICAgdmlzaWJpbGl0eTogdHJ1ZSxcbiAgICAgICAgICAgIGFjdGlvbkhhbmRsZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIFRhYmxlRWRpdG9yLm1lcmdlQ2VsbCh0aGlzLmVkaXRvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ3NwbGl0LWNlbGxzJyxcbiAgICAgICAgICAgIGljb246ICd0YWJsZS11bm1lcmdlLWNlbGxzJyxcbiAgICAgICAgICAgIG5hbWU6ICfmi4bliIbljZXlhYPmoLwnLFxuICAgICAgICAgICAgZGl2aWRlcjogdHJ1ZSxcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IHRydWUsXG4gICAgICAgICAgICBhY3Rpb25IYW5kbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBUYWJsZUVkaXRvci5zcGxpdENlbGwodGhpcy5lZGl0b3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICdkZWxldGUtc2VsZWN0aW9uLXJvd3MnLFxuICAgICAgICAgICAgaWNvbjogJ3RhYmxlLWRlbGV0ZS1yb3dzJyxcbiAgICAgICAgICAgIG5hbWU6ICfliKDpmaTmiYDlnKjooYwnLFxuICAgICAgICAgICAgdmlzaWJpbGl0eTogdHJ1ZSxcbiAgICAgICAgICAgIGFjdGlvbkhhbmRsZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJlbW92ZUNvbHVtbk9yUm93cyh0aGlzLmVkaXRvciwgdGhpcy50YWJsZVN0b3JlLCB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkQ29sdW1uc0luZGV4OiB0aGlzLnRhYmxlU3RvcmUuZGFuZ2Vyb3VzQ29sdW1uc0luZGV4LFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFJvd3NJbmRleDogdGhpcy50YWJsZVN0b3JlLmRhbmdlcm91c1Jvd3NJbmRleFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMudGFibGVTdG9yZS5jbGVhckRhbmdlcm91c0NlbGxzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZVN0b3JlLmNsZWFyU2VsZWN0ZWRDZWxscygpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFjdGl2ZUhhbmRsZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudGFibGVTdG9yZS5zZXREYW5nZXJvdXNSb3dzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ2RlbGV0ZS1zZWxlY3Rpb24tY29sdW1ucycsXG4gICAgICAgICAgICBpY29uOiAndGFibGUtZGVsZXRlLWNvbHVtbnMnLFxuICAgICAgICAgICAgZGl2aWRlcjogdHJ1ZSxcbiAgICAgICAgICAgIG5hbWU6ICfliKDpmaTmiYDlnKjliJcnLFxuICAgICAgICAgICAgdmlzaWJpbGl0eTogdHJ1ZSxcbiAgICAgICAgICAgIGFjdGlvbkhhbmRsZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJlbW92ZUNvbHVtbk9yUm93cyh0aGlzLmVkaXRvciwgdGhpcy50YWJsZVN0b3JlLCB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkQ29sdW1uc0luZGV4OiB0aGlzLnRhYmxlU3RvcmUuZGFuZ2Vyb3VzQ29sdW1uc0luZGV4LFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFJvd3NJbmRleDogdGhpcy50YWJsZVN0b3JlLmRhbmdlcm91c1Jvd3NJbmRleFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMudGFibGVTdG9yZS5jbGVhckRhbmdlcm91c0NlbGxzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZVN0b3JlLmNsZWFyU2VsZWN0ZWRDZWxscygpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFjdGl2ZUhhbmRsZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudGFibGVTdG9yZS5zZXREYW5nZXJvdXNDb2x1bW5zKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ2RlbGV0ZS10YWJsZScsXG4gICAgICAgICAgICBpY29uOiAndHJhc2gnLFxuICAgICAgICAgICAgbmFtZTogJ+WIoOmZpOihqOagvCcsXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxuICAgICAgICAgICAgYWN0aW9uSGFuZGxlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgVGFibGVFZGl0b3IucmVtb3ZlVGFibGUodGhpcy5lZGl0b3IpO1xuICAgICAgICAgICAgICAgIHRoaXMudGFibGVTdG9yZS5jbGVhckRhbmdlcm91c0NlbGxzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZVN0b3JlLmNsZWFyU2VsZWN0ZWRDZWxscygpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFjdGl2ZUhhbmRsZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudGFibGVTdG9yZS5zZXREYW5nZXJvdXNUYWJsZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgXTtcblxuICAgIGdldFNlbGVjdGVkQ2VsbCgpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRDZWxsUG9zaXRpb25zID0gdGhpcy50YWJsZVN0b3JlLmdldFNlbGVjdGVkQ2VsbFBvc2l0aW9ucygpO1xuICAgICAgICBjb25zdCBzZWxlY3RDZWxsTm9kZXMgPSBnZXRTZWxlY3RDZWxsTm9kZSh0aGlzLmVkaXRvciwgc2VsZWN0ZWRDZWxsUG9zaXRpb25zKTtcbiAgICAgICAgc29ydENlbGwoc2VsZWN0Q2VsbE5vZGVzKTtcbiAgICAgICAgY29uc3QgbGVmdENlbGxEaWN0ID0gZ2V0TGVmdENlbGxEaWN0KHNlbGVjdENlbGxOb2Rlcyk7XG4gICAgICAgIGNvbnN0IHsgcm93c3BhbiwgY29sc3BhbiB9ID0gY2FsY3VsYXRlQ2VsbFNwYW4oc2VsZWN0Q2VsbE5vZGVzLCBsZWZ0Q2VsbERpY3QpO1xuXG4gICAgICAgIHJldHVybiB7IHJvdzogcm93c3BhbiwgY29sOiBjb2xzcGFuLCBzZWxlY3RDZWxsTm9kZXMgfTtcbiAgICB9XG5cbiAgICBnZXRUYXJnZXRSb3dPckNvbEluZGV4KGlzRnJvbnQgPSB0cnVlKSB7XG4gICAgICAgIGNvbnN0IHsgcm93LCBjb2wsIHNlbGVjdENlbGxOb2RlcyB9ID0gdGhpcy5nZXRTZWxlY3RlZENlbGwoKTtcbiAgICAgICAgY29uc3QgZmlyc3RTZWxlY3RDZWxsID0gc2VsZWN0Q2VsbE5vZGVzWzBdO1xuICAgICAgICBjb25zdCB0YXJnZXRSb3dJbmRleCA9IGlzRnJvbnQgPyBmaXJzdFNlbGVjdENlbGwucm93IDogcm93ICsgZmlyc3RTZWxlY3RDZWxsLnJvdztcbiAgICAgICAgY29uc3QgdGFyZ2V0Q29sSW5kZXggPSBpc0Zyb250ID8gZmlyc3RTZWxlY3RDZWxsLmNvbCA6IGNvbCArIGZpcnN0U2VsZWN0Q2VsbC5jb2w7XG5cbiAgICAgICAgcmV0dXJuIHsgdGFyZ2V0Um93SW5kZXgsIHRhcmdldENvbEluZGV4IH07XG4gICAgfVxuXG4gICAgb3Blbk1lbnVMaXN0KGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IGlzRnVsbHNjcmVlbiwgc2VsZWN0ZWRSb3dzSW5kZXgsIHNlbGVjdGVkQ29sdW1uc0luZGV4LCBpc1NlbGVjdGVkVGFibGUgfSA9IHRoaXMudGFibGVTdG9yZTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkQ2VsbFBvc2l0aW9ucyA9IHRoaXMudGFibGVTdG9yZS5nZXRTZWxlY3RlZENlbGxQb3NpdGlvbnMoKTtcbiAgICAgICAgICAgIGNvbnN0IHRhYmxlSW5mbyA9IHsgc2VsZWN0ZWRDZWxsUG9zaXRpb25zLCBpc0Z1bGxzY3JlZW4sIHNlbGVjdGVkUm93c0luZGV4LCBzZWxlY3RlZENvbHVtbnNJbmRleCwgaXNTZWxlY3RlZFRhYmxlIH07XG4gICAgICAgICAgICBjb25zdCB7IHJvdywgY29sIH0gPSB0aGlzLmdldFNlbGVjdGVkQ2VsbCgpO1xuICAgICAgICAgICAgc2V0Q2VsbE1lbnVWaXNpYmlsaXR5KHRoaXMuZWRpdG9yLCB0aGlzLm1lbnVFbnRpdGllcywgdGFibGVJbmZvKTtcblxuICAgICAgICAgICAgdGhpcy5tZW51RW50aXRpZXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGl0ZW0ua2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2JhY2tncm91bmQtY29sb3InOlxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5iYWNrZ3JvdW5kQ29sb3IgPSB0aGlzLmJhY2tncm91bmRDb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFRhYmxlSW5zZXJ0VHlwZS5pbnNlcnRSb3dzVXA6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgVGFibGVJbnNlcnRUeXBlLmluc2VydFJvd3NEb3duOlxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5jb3VudCA9IHJvdztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFRhYmxlSW5zZXJ0VHlwZS5pbnNlcnRDb2x1bW5zTGVmdDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBUYWJsZUluc2VydFR5cGUuaW5zZXJ0Q29sdW1uc1JpZ2h0OlxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5jb3VudCA9IGNvbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5tZW51UmVmID0gdGhpcy50aHlQb3BvdmVyLm9wZW4oVGhlQ29udGV4dE1lbnVDb21wb25lbnQsIHtcbiAgICAgICAgICAgICAgICBvcmlnaW46IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCxcbiAgICAgICAgICAgICAgICBpbml0aWFsU3RhdGU6IHtcbiAgICAgICAgICAgICAgICAgICAgbWVudUVudGl0aWVzOiB0aGlzLm1lbnVFbnRpdGllcyxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uSGFuZGxlOiAoZW50aXR5OiBNZW51RW50aXR5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZWRpdG9yLnNlbGVjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZm9jdXModGhpcy5lZGl0b3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5LmFjdGlvbkhhbmRsZShlbnRpdHkpO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBhY3RpdmVIYW5kbGU6IChtZW51RXZlbnQ6IE1vdXNlRXZlbnQsIGVudGl0eTogTWVudUVudGl0eSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVudGl0eS5hY3RpdmVIYW5kbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZWRpdG9yLnNlbGVjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZVNlbGVjdGlvbih0aGlzLmVkaXRvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eS5hY3RpdmVIYW5kbGUobWVudUV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZGVhY3RpdmF0ZUhhbmRsZTogKG1lbnVFdmVudDogTW91c2VFdmVudCwgZW50aXR5OiBNZW51RW50aXR5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZW50aXR5LmtleS5pbmRleE9mKCdkZWxldGUnKSA+PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJsZVN0b3JlLmNsZWFyRGFuZ2Vyb3VzQ2VsbHMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbnRpdHkuZGVhY3RpdmF0ZUhhbmRsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5lZGl0b3Iuc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlU2VsZWN0aW9uKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5LmRlYWN0aXZhdGVIYW5kbGUobWVudUV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgb3JpZ2luUG9zaXRpb246IHtcbiAgICAgICAgICAgICAgICAgICAgeDogZXZlbnQueCArIDMwLFxuICAgICAgICAgICAgICAgICAgICB5OiBldmVudC55XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBoYXNCYWNrZHJvcDogZmFsc2UsXG4gICAgICAgICAgICAgICAgcGxhY2VtZW50OiAnYm90dG9tTGVmdCcsXG4gICAgICAgICAgICAgICAgcGFuZWxDbGFzczogJ3RoZS10YWJsZS1jb250ZXh0bWVudS1wYW5lbCcsXG4gICAgICAgICAgICAgICAgdmlld0NvbnRhaW5lclJlZjogdGhpcy50aGVDb250ZXh0U2VydmljZS5nZXRPcHRpb25zKCkudmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgICAgICAgICBtYW51YWxDbG9zdXJlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGluc2lkZUNsb3NhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBiYWNrZHJvcENsb3NhYmxlOiBmYWxzZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNsb3NlQ29udGV4dE1lbnUoKSB7XG4gICAgICAgIGlmICh0aGlzLmlzT3BlbmVkKSB7XG4gICAgICAgICAgICB0aGlzLm1lbnVSZWYuY2xvc2UoKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm1lbnVSZWYuYWZ0ZXJDbG9zZWQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -38,10 +38,10 @@ export class TheToolbarService {
|
|
|
38
38
|
return item;
|
|
39
39
|
});
|
|
40
40
|
}
|
|
41
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
42
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.
|
|
41
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheToolbarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
42
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheToolbarService }); }
|
|
43
43
|
}
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheToolbarService, decorators: [{
|
|
45
45
|
type: Injectable
|
|
46
46
|
}] });
|
|
47
47
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3NlcnZpY2VzL3Rvb2xiYXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFJOUYsTUFBTSxPQUFPLGlCQUFpQjtJQUMxQixVQUFVLENBQ04sWUFBMkIsRUFDM0IsU0FBbUIsOEJBQThCLEVBQ2pELFNBQW1CLDhCQUE4QjtRQUVqRCxNQUFNLGlCQUFpQixHQUFHO1lBQ3RCLE1BQU07WUFDTixNQUFNO1NBQ1QsQ0FBQztRQUVGLE1BQU0saUJBQWlCLEdBQTZCLElBQUksR0FBRyxFQUF1QixDQUFDO1FBQ25GLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTNELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBRW5GLE9BQU87WUFDSCxpQkFBaUI7WUFDakIsaUJBQWlCO1lBQ2pCLGFBQWE7U0FDaEIsQ0FBQztJQUNOLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxpQkFBb0MsRUFBRSxZQUFzQztRQUMxRixNQUFNLE1BQU0sR0FBa0IsRUFBRSxDQUFDO1FBQ2pDLEtBQUssTUFBTSxNQUFNLElBQUksaUJBQWlCLEVBQUU7WUFDcEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQztTQUN2RjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxJQUFrQixFQUFFLFlBQXNDO1FBQzNFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQWUsRUFBRSxFQUFFO1lBQ2hDLElBQUksR0FBRyxLQUFLLE9BQU8sRUFBRTtnQkFDakIsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQzthQUMzQjtZQUNELE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDUCxNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7YUFDdEQ7WUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2YsT0FBTyxFQUFFLEdBQUcsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQXdCLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQzthQUN4RztZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0E3Q1EsaUJBQWlCO2tIQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEZWZhdWx0R2xvYmFsVG9vbGJhckRlZmluaXRpb24sIERlZmF1bHRJbmxpbmVUb29sYmFyRGVmaW5pdGlvbiB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBUb29sYmFyS2V5LCBUb29sYmFySXRlbSwgVG9vbGJhckRlZmluaXRpb24sIFRvb2xiYXJFbnRpdHksIFRvb2xiYXJJbml0T3B0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUaGVUb29sYmFyU2VydmljZSB7XG4gICAgaW5pdGlhbGl6ZShcbiAgICAgICAgdG9vbGJhckl0ZW1zOiBUb29sYmFySXRlbVtdLFxuICAgICAgICBnbG9iYWw6IHN0cmluZ1tdID0gRGVmYXVsdEdsb2JhbFRvb2xiYXJEZWZpbml0aW9uLFxuICAgICAgICBpbmxpbmU6IHN0cmluZ1tdID0gRGVmYXVsdElubGluZVRvb2xiYXJEZWZpbml0aW9uXG4gICAgKTogVG9vbGJhckluaXRPcHRpb24ge1xuICAgICAgICBjb25zdCB0b29sYmFyRGVmaW5pdGlvbiA9IHtcbiAgICAgICAgICAgIGdsb2JhbCxcbiAgICAgICAgICAgIGlubGluZVxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHRvb2xiYXJPcGVyYXRpb25zOiBNYXA8c3RyaW5nLCBUb29sYmFySXRlbT4gPSBuZXcgTWFwPHN0cmluZywgVG9vbGJhckl0ZW0+KCk7XG4gICAgICAgIHRvb2xiYXJJdGVtcy5mb3JFYWNoKGkgPT4gdG9vbGJhck9wZXJhdGlvbnMuc2V0KGkua2V5LCBpKSk7XG5cbiAgICAgICAgY29uc3QgdG9vbGJhckVudGl0eSA9IHRoaXMubmV4dFRvb2xiYXJFbnRpdHkodG9vbGJhckRlZmluaXRpb24sIHRvb2xiYXJPcGVyYXRpb25zKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdG9vbGJhckRlZmluaXRpb24sXG4gICAgICAgICAgICB0b29sYmFyT3BlcmF0aW9ucyxcbiAgICAgICAgICAgIHRvb2xiYXJFbnRpdHlcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBuZXh0VG9vbGJhckVudGl0eSh0b29sYmFyRGVmaW5pdGlvbjogVG9vbGJhckRlZmluaXRpb24sIHRvb2xiYXJJdGVtczogTWFwPHN0cmluZywgVG9vbGJhckl0ZW0+KTogVG9vbGJhckVudGl0eSB7XG4gICAgICAgIGNvbnN0IGVudGl0eTogVG9vbGJhckVudGl0eSA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IGRlZktleSBpbiB0b29sYmFyRGVmaW5pdGlvbikge1xuICAgICAgICAgICAgZW50aXR5W2RlZktleV0gPSB0aGlzLmdldFRvb2xiYXJJdGVtQnlLZXlzKHRvb2xiYXJEZWZpbml0aW9uW2RlZktleV0sIHRvb2xiYXJJdGVtcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVudGl0eTtcbiAgICB9XG5cbiAgICBnZXRUb29sYmFySXRlbUJ5S2V5cyhrZXlzOiBUb29sYmFyS2V5W10sIHRvb2xiYXJJdGVtczogTWFwPHN0cmluZywgVG9vbGJhckl0ZW0+KTogVG9vbGJhckl0ZW1bXSB7XG4gICAgICAgIHJldHVybiBrZXlzLm1hcCgoa2V5OiBUb29sYmFyS2V5KSA9PiB7XG4gICAgICAgICAgICBpZiAoa2V5ID09PSBgc3BsaXRgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsga2V5OiBgc3BsaXRgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBpdGVtID0gdG9vbGJhckl0ZW1zLmdldChrZXkpO1xuICAgICAgICAgICAgaWYgKCFpdGVtKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBSZWFkIGEgbm9uLWV4aXN0ZW50IHRvb2xiYXIga2V5YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXRlbS5pbmNsdWRlcykge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IC4uLml0ZW0sIGluY2x1ZGVzOiB0aGlzLmdldFRvb2xiYXJJdGVtQnlLZXlzKGl0ZW0uaW5jbHVkZXMgYXMgVG9vbGJhcktleVtdLCB0b29sYmFySXRlbXMpIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|