@coolon/angular-ui-powerups 16.1.0-aplpha.122 → 16.1.0-aplpha.124
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/tables/abstract-table-model.mjs +11 -23
- package/esm2022/lib/components/tables/column/column-model.mjs +4 -4
- package/esm2022/lib/components/tables/column/selection-column-model.mjs +31 -12
- package/esm2022/lib/components/tables/renderer/cell-portal-ref.mjs +6 -6
- package/esm2022/lib/components/tables/renderer/table-cell/table-cell.component.mjs +6 -6
- package/esm2022/lib/components/tables/table/table-model.mjs +9 -3
- package/esm2022/lib/components/tables/tree-table/tree-table-model.mjs +1 -4
- package/fesm2022/coolon-angular-ui-powerups.mjs +56 -47
- package/fesm2022/coolon-angular-ui-powerups.mjs.map +1 -1
- package/lib/components/tables/abstract-table-model.d.ts +3 -4
- package/lib/components/tables/column/selection-column-model.d.ts +7 -3
- package/lib/components/tables/renderer/cell-portal-ref.d.ts +7 -7
- package/lib/components/tables/renderer/table-cell/table-cell.component.d.ts +1 -2
- package/lib/components/tables/table/table-model.d.ts +2 -3
- package/lib/components/tables/tree-table/tree-table-model.d.ts +1 -3
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Injector } from "@angular/core";
|
|
2
|
-
import { assert, DelegatingListModel, DependsOnOptions, DirtyTrackingForm, Dsl, EventListenerList, GarbageCollector, MutableListModel,
|
|
2
|
+
import { assert, DelegatingListModel, DependsOnOptions, DirtyTrackingForm, Dsl, EventListenerList, GarbageCollector, MutableListModel, ProxyRegistry } from "@coolon/pectin";
|
|
3
3
|
import { lang } from "@coolon/typescript-utilities";
|
|
4
|
-
import { isFunction
|
|
4
|
+
import { isFunction } from "lodash-es";
|
|
5
5
|
import { ColumnManager } from "./column/column-manager";
|
|
6
6
|
import { CustomTemplateColumnModel } from "./column/custom-template-column-model";
|
|
7
7
|
import { CustomValueColumnModel } from "./column/custom-value-column-model";
|
|
@@ -56,7 +56,6 @@ export class AbstractTableModel extends GarbageCollector {
|
|
|
56
56
|
textSearchPredicate$;
|
|
57
57
|
identityOf;
|
|
58
58
|
dataSourceEmpty$;
|
|
59
|
-
selectionModelProxy = proxify((SelectionModel));
|
|
60
59
|
selectedItems$;
|
|
61
60
|
leadSelection$;
|
|
62
61
|
hasSelection$;
|
|
@@ -75,13 +74,16 @@ export class AbstractTableModel extends GarbageCollector {
|
|
|
75
74
|
return (!regex || !!columns.find(c => regex.test(c.getSearchTextFor(row))));
|
|
76
75
|
};
|
|
77
76
|
});
|
|
77
|
+
this.selectionColumnModel = new SelectionColumnModel("selection-column", this.columnManager, () => this.getColumnTextProperties("selection-column"));
|
|
78
|
+
this.addColumn(this.selectionColumnModel, { before: null }); // first column
|
|
79
|
+
this.addRowClass("aup-row-selected", row => this.selectionColumnModel.isSelected(row));
|
|
78
80
|
this.firstEditableColumn$ = chain(this.columns$).select(c => c.hasEditorPortal()).first();
|
|
79
81
|
this.firstVisibleColumn$ = chain(this.visibleColumns$).first();
|
|
80
82
|
this.lastVisibleColumn$ = chain(this.visibleColumns$).last();
|
|
81
83
|
this.rowSelectionDisabledOnAllColumns$ = chain(this.columnManager.visibleColumns$).select(column => column.isRowSelectionEnabled()).count().equals(0);
|
|
82
84
|
this.dataSourceEmpty$ = chain(this.dataSource$).isEmpty();
|
|
83
|
-
this.selectedItems$ = this.
|
|
84
|
-
this.leadSelection$ = this.
|
|
85
|
+
this.selectedItems$ = this.selectionColumnModel.selectionModel.selectedItems$;
|
|
86
|
+
this.leadSelection$ = this.selectionColumnModel.selectionModel.leadSelection$;
|
|
85
87
|
this.hasSelection$ = chain(this.selectedItems$).isNotEmpty();
|
|
86
88
|
}
|
|
87
89
|
setDataSource(dataSource$) {
|
|
@@ -183,21 +185,8 @@ export class AbstractTableModel extends GarbageCollector {
|
|
|
183
185
|
const columnId = options?.columnId || property.toString();
|
|
184
186
|
return this.addColumn(new ListPropertyColumnModel(columnId, this.columnManager, property, () => this.getColumnTextProperties(columnId)));
|
|
185
187
|
}
|
|
186
|
-
|
|
187
|
-
// tableModel.useSelectionModel(model) and have the seleciton column automatically
|
|
188
|
-
// added. Need to look at how we're using the visibility controls as well.
|
|
189
|
-
// Should also lazy create the selection column model if someone accesses it.
|
|
190
|
-
_addSelectionColumn(selectionModel, visible) {
|
|
191
|
-
assert.isNil(this.selectionColumnModel);
|
|
192
|
-
const columnId = "selection-column";
|
|
193
|
-
this.selectionColumnModel = new SelectionColumnModel(columnId, this.columnManager, () => this.getColumnTextProperties(columnId), this.selectionModelProxy);
|
|
188
|
+
useSelectionModel(selectionModel) {
|
|
194
189
|
this.selectionColumnModel.useSelectionModel(selectionModel);
|
|
195
|
-
this.addRowClass("aup-row-selected", row => this.selectionColumnModel.isSelected(row));
|
|
196
|
-
const selectionColumnModel = this.addColumn(this.selectionColumnModel, { before: null }); // first column
|
|
197
|
-
if (!isNil(visible)) {
|
|
198
|
-
selectionColumnModel.visibleWhile(visible instanceof ValueModel ? visible : ValueModel.constant(visible));
|
|
199
|
-
}
|
|
200
|
-
return selectionColumnModel;
|
|
201
190
|
}
|
|
202
191
|
addEditControls(saveCommandFactory, formFactory) {
|
|
203
192
|
this.saveCommandFactory = saveCommandFactory;
|
|
@@ -269,11 +258,10 @@ export class AbstractTableModel extends GarbageCollector {
|
|
|
269
258
|
return this.hasUserSelectionModelThatIsEnabled() && !this.rowSelectionDisabledOnAllColumns$.value;
|
|
270
259
|
}
|
|
271
260
|
hasUserSelectionModelThatIsEnabled() {
|
|
272
|
-
|
|
273
|
-
return !!userSelectionModel && userSelectionModel.enabled$.value;
|
|
261
|
+
return this.selectionColumnModel.selectionModel.enabled$.value;
|
|
274
262
|
}
|
|
275
263
|
getSelectionModel() {
|
|
276
|
-
return this.selectionColumnModel
|
|
264
|
+
return this.selectionColumnModel.selectionModel;
|
|
277
265
|
}
|
|
278
266
|
isHoverEnabled() {
|
|
279
267
|
return this.isRowSelectionEnabled() || this.rowClickListeners.listenerCount > 0;
|
|
@@ -303,4 +291,4 @@ export class AbstractTableModel extends GarbageCollector {
|
|
|
303
291
|
}
|
|
304
292
|
}
|
|
305
293
|
ProxyRegistry.registerOneTimeBinding(AbstractTableModel);
|
|
306
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtdGFibGUtbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9hYnN0cmFjdC10YWJsZS1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQW9CLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQ0wsTUFBTSxFQUlOLG1CQUFtQixFQUFFLGdCQUFnQixFQUNyQyxpQkFBaUIsRUFFakIsR0FBRyxFQUNILGlCQUFpQixFQUNqQixnQkFBZ0IsRUFHaEIsZ0JBQWdCLEVBRWhCLE9BQU8sRUFDUCxhQUFhLEVBQ2IsY0FBYyxFQUVkLFVBQVUsRUFFWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUVsRCxPQUFPLEVBQUMsVUFBVSxFQUFFLEtBQUssRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUM1QyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFJdEQsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDMUUsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRWxELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLHVDQUF1QyxDQUFD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QyxDQUFDO0lBQzNGLENBQUM7SUFFRCxTQUFTLENBQUMsR0FBUTtRQUNoQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxZQUFZLENBQUMsUUFBNEI7UUFDdkMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxXQUE2QixFQUFFLEdBQVE7UUFDeEQsSUFBSSxJQUFJLENBQUMsd0JBQXdCLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDOUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNyQjthQUFNO1lBQ0wsZ0JBQWdCO1lBQ2hCLDZFQUE2RTtZQUM3RSx3RUFBd0U7WUFDeEUsdURBQXVEO1lBQ3ZELHNFQUFzRTtZQUN0RSxLQUFLO1NBQ047UUFFRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0MsQ0FBQztDQUVGO0FBRUQsYUFBYSxDQUFDLHNCQUFzQixDQUFDLGtCQUFrQixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudFR5cGV9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xuaW1wb3J0IHtDb21wb25lbnRQb3J0YWx9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XG5pbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBJbmplY3Rvcn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIGFzc2VydCxcbiAgQm9vbGVhblZhbHVlTW9kZWxDaGFpbixcbiAgQ29tbWFuZCxcbiAgQ29uc3RydWN0YWJsZSxcbiAgRGVsZWdhdGluZ0xpc3RNb2RlbCwgRGVwZW5kc09uT3B0aW9ucyxcbiAgRGlydHlUcmFja2luZ0Zvcm0sXG4gIERpc3Bvc2FibGUsXG4gIERzbCxcbiAgRXZlbnRMaXN0ZW5lckxpc3QsXG4gIEdhcmJhZ2VDb2xsZWN0b3IsIEhhc1ZhbHVlLFxuICBMaXN0TW9kZWwsXG4gIE1hcE1vZGVsQ2hhaW4sXG4gIE11dGFibGVMaXN0TW9kZWwsXG4gIFByb3hpZmllZCxcbiAgcHJveGlmeSxcbiAgUHJveHlSZWdpc3RyeSxcbiAgU2VsZWN0aW9uTW9kZWwsXG4gIFR5cGVzLFxuICBWYWx1ZU1vZGVsLFxuICBWYWx1ZU1vZGVsQ2hhaW5cbn0gZnJvbSBcIkBjb29sb24vcGVjdGluXCI7XG5pbXBvcnQge2xhbmd9IGZyb20gXCJAY29vbG9uL3R5cGVzY3JpcHQtdXRpbGl0aWVzXCI7XG5cbmltcG9ydCB7aXNGdW5jdGlvbiwgaXNOaWx9IGZyb20gXCJsb2Rhc2gtZXNcIjtcbmltcG9ydCB7Q29sdW1uTWFuYWdlcn0gZnJvbSBcIi4vY29sdW1uL2NvbHVtbi1tYW5hZ2VyXCI7XG5pbXBvcnQge0NlbGxSZW5kZXJlck9wdGlvbnMsIENvbHVtbk1vZGVsLCBPbkNvbXBvbmVudEluaXR9IGZyb20gXCIuL2NvbHVtbi9jb2x1bW4tbW9kZWxcIjtcbmltcG9ydCB7Q29sdW1uT3JkZXJNYW5hZ2VyfSBmcm9tIFwiLi9jb2x1bW4vY29sdW1uLW9yZGVyLW1hbmFnZXJcIjtcbmltcG9ydCB7Q29sdW1uVGV4dFByb3BlcnRpZXN9IGZyb20gXCIuL2NvbHVtbi9jb2x1bW4tdGV4dC1wcm9wZXJ0aWVzXCI7XG5pbXBvcnQge0N1c3RvbVRlbXBsYXRlQ29sdW1uTW9kZWx9IGZyb20gXCIuL2NvbHVtbi9jdXN0b20tdGVtcGxhdGUtY29sdW1uLW1vZGVsXCI7XG5pbXBvcnQge0N1c3RvbVZhbHVlQ29sdW1uTW9kZWx9IGZyb20gXCIuL2NvbHVtbi9jdXN0b20tdmFsdWUtY29sdW1uLW1vZGVsXCI7XG5pbXBvcnQge0VkaXRvckNvbnRyb2xDb2x1bW5Nb2RlbH0gZnJvbSBcIi4vY29sdW1uL2VkaXRvci1jb250cm9scy1jb2x1bW4tbW9kZWxcIjtcbmltcG9ydCB7TGlzdFByb3BlcnR5Q29sdW1uTW9kZWx9IGZyb20gXCIuL2NvbHVtbi9saXN0LXByb3BlcnktY29sdW1uLW1vZGVsXCI7XG5pbXBvcnQge1Byb3BlcnR5Q29sdW1uTW9kZWx9IGZyb20gXCIuL2NvbHVtbi9wcm9wZXJ0eS1jb2x1bW4tbW9kZWxcIjtcbmltcG9ydCB7U2VsZWN0aW9uQ29sdW1uTW9kZWx9IGZyb20gXCIuL2NvbHVtbi9zZWxlY3Rpb24tY29sdW1uLW1vZGVsXCI7XG5pbXBvcnQge0VkaXRTZXNzaW9ufSBmcm9tIFwiLi9lZGl0b3IvZWRpdC1zZXNzaW9uXCI7XG5cbmltcG9ydCB7Q29sdW1uVGV4dFNlYXJjaEZvcm1hdHRlcn0gZnJvbSBcIi4vZmlsdGVyL2NvbHVtbi10ZXh0LXNlYXJjaC1mb3JtYXR0ZXJcIjtcbmltcG9ydCB7VGV4dFNlYXJjaFByZWRpY2F0ZX0gZnJvbSBcIi4vZmlsdGVyL3RleHQtc2VhcmNoLXByZWRpY2F0ZVwiO1xuaW1wb3J0IHtDZWxsUmVuZGVyZXJ9IGZyb20gXCIuL3JlbmRlcmVyL2NlbGwtcmVuZGVyZXJcIjtcbmltcG9ydCB7Rm9vdGVyUm93TW9kZWx9IGZyb20gXCIuL2Zvb3Rlci9mb290ZXItcm93LW1vZGVsXCI7XG5pbXBvcnQge1xuICBUYWJsZU1vcmVNZW51UG9wdXBDb21wb25lbnRcbn0gZnJvbSBcIi4vcmVuZGVyZXIvdGFibGUtbW9yZS1tZW51L3RhYmxlLW1vcmUtbWVudS1wb3B1cC90YWJsZS1tb3JlLW1lbnUtcG9wdXAuY29tcG9uZW50XCI7XG5pbXBvcnQge1RhYmxlTW9yZU1lbnVDb21wb25lbnR9IGZyb20gXCIuL3JlbmRlcmVyL3RhYmxlLW1vcmUtbWVudS90YWJsZS1tb3JlLW1lbnUuY29tcG9uZW50XCI7XG5pbXBvcnQgRGVmYXVsdEFycmF5Rm9ybWF0dGVyID0gQ29sdW1uVGV4dFNlYXJjaEZvcm1hdHRlci5EZWZhdWx0QXJyYXlGb3JtYXR0ZXI7XG5pbXBvcnQgRGVmYXVsdFZhbHVlRm9ybWF0dGVyID0gQ29sdW1uVGV4dFNlYXJjaEZvcm1hdHRlci5EZWZhdWx0VmFsdWVGb3JtYXR0ZXI7XG5cbi8vIGV4cG9ydCB0eXBlIFN0cmluZ1Byb3BlcnRpZXNPZjxUPiA9IHsgW0sgaW4ga2V5b2YgVF06IFRbS10gZXh0ZW5kcyBzdHJpbmcgPyBLIDogbmV2ZXIgfVtrZXlvZiBUXTtcbi8vIGV4cG9ydCB0eXBlIE51bWJlclByb3BlcnRpZXNPZjxUPiA9IHsgW0sgaW4ga2V5b2YgVF06IFRbS10gZXh0ZW5kcyBudW1iZXIgPyBLIDogbmV2ZXIgfVtrZXlvZiBUXTtcblxuY2xhc3MgUm93Q2xhc3M8Um93PiB7XG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGNsYXNzTmFtZTogc3RyaW5nLFxuICAgICAgICAgICAgICByZWFkb25seSBtYXRjaGVzOiAocm93OiBSb3cpID0+IGJvb2xlYW4pIHtcbiAgfVxufVxuXG5jbGFzcyBSb3dBdHRyaWJ1dGU8Um93PiB7XG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGF0dHJpYnV0ZU5hbWU6IHN0cmluZyxcbiAgICAgICAgICAgICAgcmVhZG9ubHkgZ2V0VmFsdWU6IChyb3c6IFJvdykgPT4gc3RyaW5nKSB7XG4gIH1cbn1cblxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RUYWJsZU1vZGVsPFJvdyBleHRlbmRzIG9iamVjdD4gZXh0ZW5kcyBHYXJiYWdlQ29sbGVjdG9yIHtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2RhdGFTb3VyY2UkID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IERlbGVnYXRpbmdMaXN0TW9kZWw8Um93PigpKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9maWx0ZXJlZFJvd3MkID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IERlbGVnYXRpbmdMaXN0TW9kZWw8Um93PigpKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF92aXNpYmxlUm93cyQgPSB0aGlzLnJlZ2lzdGVyRGlzcG9zYWJsZShuZXcgRGVsZWdhdGluZ0xpc3RNb2RlbDxSb3c+KCkpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjb2x1bW5NYW5hZ2VyID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IENvbHVtbk1hbmFnZXI8Um93PigpKTtcblxuICBwcml2YXRlIF9lZGl0b3JTZXNzaW9ucyA9IG5ldyBNdXRhYmxlTGlzdE1vZGVsPEVkaXRTZXNzaW9uPFJvdz4+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3Jvd3NCZWluZ0VkaXRlZCQ6IE11dGFibGVMaXN0TW9kZWw8Um93PjtcbiAgcHJpdmF0ZSBzYXZlQ29tbWFuZEZhY3Rvcnk6IENvbW1hbmQuRmFjdG9yeTxEaXJ0eVRyYWNraW5nRm9ybTxSb3c+LCBib29sZWFuIHwgUHJvbWlzZTxib29sZWFuPj47XG4gIHByaXZhdGUgX2VkaXRvclNlc3Npb25CeVJvd0lkOiBNYXBNb2RlbENoYWluPGFueSwgRWRpdFNlc3Npb248Um93Pj47XG5cbiAgcHJpdmF0ZSByZWFkb25seSByb3dDbGFzc05hbWVQcmVkaWNhdGVzOiBSb3dDbGFzczxSb3c+W10gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSByb3dBdHRyaWJ1dGVHZW5lcmF0b3JzOiBSb3dBdHRyaWJ1dGU8Um93PltdID0gW107XG5cbiAgcHJpdmF0ZSBfY29sdW1uVGV4dFByb3BlcnRpZXNMb29rdXA6IHsgW2NvbHVtbk5hbWU6IHN0cmluZ106IENvbHVtblRleHRQcm9wZXJ0aWVzIH07XG5cbiAgcmVhZG9ubHkgZWRpdGluZyQ6IEJvb2xlYW5WYWx1ZU1vZGVsQ2hhaW47XG4gIHJlYWRvbmx5IGZpcnN0RWRpdGFibGVDb2x1bW4kOiBWYWx1ZU1vZGVsQ2hhaW48Q29sdW1uTW9kZWw8Um93Pj47XG4gIHByaXZhdGUgc2VsZWN0aW9uQ29sdW1uTW9kZWw6IFNlbGVjdGlvbkNvbHVtbk1vZGVsPFJvdz47XG4gIHByaXZhdGUgcm93U2VsZWN0aW9uRGlzYWJsZWRPbkFsbENvbHVtbnMkOiBCb29sZWFuVmFsdWVNb2RlbENoYWluO1xuICBwcml2YXRlIHJlYWRvbmx5IHJvd0NsaWNrTGlzdGVuZXJzID0gbmV3IEV2ZW50TGlzdGVuZXJMaXN0PChyb3c6IFJvdykgPT4gdm9pZD4oKTtcbiAgcmVhZG9ubHkgZmlyc3RWaXNpYmxlQ29sdW1uJDogVmFsdWVNb2RlbDxDb2x1bW5Nb2RlbDxSb3c+PjtcbiAgcmVhZG9ubHkgbGFzdFZpc2libGVDb2x1bW4kOiBWYWx1ZU1vZGVsPENvbHVtbk1vZGVsPFJvdz4+O1xuXG4gIHByaXZhdGUgX2NyZWF0ZUZvcm06IChyb3c6IFJvdykgPT4gRGlydHlUcmFja2luZ0Zvcm08Um93PiA9IChyb3cpID0+IG5ldyBEaXJ0eVRyYWNraW5nRm9ybTxSb3c+KCk7XG4gIHJlYWRvbmx5IHRleHRTZWFyY2hQcmVkaWNhdGUkOiBWYWx1ZU1vZGVsPFRleHRTZWFyY2hQcmVkaWNhdGU8Um93Pj47XG4gIHByb3RlY3RlZCBpZGVudGl0eU9mOiAoaXRlbTogUm93KSA9PiBhbnk7XG4gIHJlYWRvbmx5IGRhdGFTb3VyY2VFbXB0eSQ6IFZhbHVlTW9kZWw8Ym9vbGVhbj47XG4gIHByaXZhdGUgcmVhZG9ubHkgc2VsZWN0aW9uTW9kZWxQcm94eSA9IHByb3hpZnkoU2VsZWN0aW9uTW9kZWw8Um93PikgYXMgUHJveGlmaWVkPFNlbGVjdGlvbk1vZGVsPFJvdz4+O1xuXG4gIHJlYWRvbmx5IHNlbGVjdGVkSXRlbXMkOiBMaXN0TW9kZWw8Um93PjtcbiAgcmVhZG9ubHkgbGVhZFNlbGVjdGlvbiQ6IFZhbHVlTW9kZWw8Um93PjtcbiAgcmVhZG9ubHkgaGFzU2VsZWN0aW9uJDogQm9vbGVhblZhbHVlTW9kZWxDaGFpbjtcbiAgZm9vdGVyUm93TW9kZWw6IEZvb3RlclJvd01vZGVsLkltcGw8YW55PjtcbiAgcHJpdmF0ZSByZWFkb25seSBfdmlld0RlcGVuZGVuY2llcyA9IG5ldyBTZXQ8SGFzVmFsdWU8YW55Pj4oKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBjb25zdCB7Y2hhaW59ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgIHRoaXMuX3Jvd3NCZWluZ0VkaXRlZCQgPSBuZXcgTXV0YWJsZUxpc3RNb2RlbDxSb3c+KFtdLCB7XG4gICAgICBpZGVudGlmaWVkV2l0aDogcm93ID0+IHRoaXMuaWRlbnRpdHlPZihyb3cpXG4gICAgfSk7XG4gICAgdGhpcy5fZWRpdG9yU2Vzc2lvbkJ5Um93SWQgPSBjaGFpbih0aGlzLl9lZGl0b3JTZXNzaW9ucykuaW5kZXhCeShcInJvd0lkXCIpO1xuICAgIHRoaXMuZWRpdGluZyQgPSBjaGFpbih0aGlzLl9lZGl0b3JTZXNzaW9ucykuY291bnQoKS5pc0dyZWF0ZXJUaGFuKDApO1xuXG4gICAgdGhpcy50ZXh0U2VhcmNoUHJlZGljYXRlJCA9IGNoYWluKHRoaXMudmlzaWJsZUNvbHVtbnMkKS5yZWR1Y2VBbGwoY29sdW1ucyA9PiB7XG4gICAgICByZXR1cm4gKHJvdzogUm93LCByZWdleDogUmVnRXhwKSA9PiB7XG4gICAgICAgIHJldHVybiAoIXJlZ2V4IHx8ICEhY29sdW1ucy5maW5kKGMgPT4gcmVnZXgudGVzdChjLmdldFNlYXJjaFRleHRGb3Iocm93KSkpKTtcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgdGhpcy5maXJzdEVkaXRhYmxlQ29sdW1uJCA9IGNoYWluKHRoaXMuY29sdW1ucyQpLnNlbGVjdChjID0+IGMuaGFzRWRpdG9yUG9ydGFsKCkpLmZpcnN0KCk7XG4gICAgdGhpcy5maXJzdFZpc2libGVDb2x1bW4kID0gY2hhaW4odGhpcy52aXNpYmxlQ29sdW1ucyQpLmZpcnN0KCk7XG4gICAgdGhpcy5sYXN0VmlzaWJsZUNvbHVtbiQgPSBjaGFpbih0aGlzLnZpc2libGVDb2x1bW5zJCkubGFzdCgpO1xuXG4gICAgdGhpcy5yb3dTZWxlY3Rpb25EaXNhYmxlZE9uQWxsQ29sdW1ucyQgPSBjaGFpbih0aGlzLmNvbHVtbk1hbmFnZXIudmlzaWJsZUNvbHVtbnMkKS5zZWxlY3QoY29sdW1uID0+IGNvbHVtbi5pc1Jvd1NlbGVjdGlvbkVuYWJsZWQoKSkuY291bnQoKS5lcXVhbHMoMCk7XG5cbiAgICB0aGlzLmRhdGFTb3VyY2VFbXB0eSQgPSBjaGFpbih0aGlzLmRhdGFTb3VyY2UkKS5pc0VtcHR5KCk7XG5cbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMkID0gdGhpcy5zZWxlY3Rpb25Nb2RlbFByb3h5LnNlbGVjdGVkSXRlbXMkO1xuICAgIHRoaXMubGVhZFNlbGVjdGlvbiQgPSB0aGlzLnNlbGVjdGlvbk1vZGVsUHJveHkubGVhZFNlbGVjdGlvbiQ7XG4gICAgdGhpcy5oYXNTZWxlY3Rpb24kID0gY2hhaW4odGhpcy5zZWxlY3RlZEl0ZW1zJCkuaXNOb3RFbXB0eSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldERhdGFTb3VyY2UoZGF0YVNvdXJjZSQpIHtcbiAgICB0aGlzLl9kYXRhU291cmNlJC5zZXREZWxlZ2F0ZShkYXRhU291cmNlJCk7XG4gIH1cblxuICAvKipcbiAgICogVG9kbzogbWFrZSB0aGlzIGZvcmNlIG9uZSB0YWJsZSBhdCBhIHRpbWVcbiAgICogQHBhcmFtIGluamVjdG9yXG4gICAqIEBwYXJhbSBpZGVudGl0eU9mXG4gICAqIEBwYXJhbSByZXN0XG4gICAqL1xuICBpbml0aWFsaXNlKGluamVjdG9yOiBJbmplY3RvciwgaWRlbnRpdHlPZjogKGl0ZW06IFJvdykgPT4gYW55KSB7XG4gICAgLy8gbm90IHN1cmUgaWYgSSBzaG91bGQgZGVmaW5lIHRoZXNlIGF0IHRoZSBtb2R1bGUgbGV2ZWwgb3Igbm90Li4uXG4gICAgY29uc3QgY3VzdG9tSW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtwcm92aWRlOiBEZWZhdWx0VmFsdWVGb3JtYXR0ZXJ9LFxuICAgICAgICB7cHJvdmlkZTogRGVmYXVsdEFycmF5Rm9ybWF0dGVyfVxuICAgICAgXSxcbiAgICAgIHBhcmVudDogaW5qZWN0b3JcbiAgICB9KTtcbiAgICB0aGlzLmNvbHVtbnMkLnZhbHVlLmZvckVhY2goYyA9PiBjLmluaXRpYWxpc2UoY3VzdG9tSW5qZWN0b3IpKTtcbiAgICB0aGlzLmlkZW50aXR5T2YgPSBpZGVudGl0eU9mO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYWRkaXRpb25hbCBtb2RlbHMgdGhhdCB3aWxsIHRyaWdnZXIgYSB0YWJsZSByZXBhaW50LiAgVGhpcyBpcyByZXF1aXJlZCBpZiB0aGUgdGFibGVcbiAgICogbmVlZHMgdG8gYmUgcmVkcmF3biBvdXRzaWRlIG9mIGNoYW5nZXMgdG8gdGhlIHJvd3Mgb2YgZmlsdGVycy4gIGkuZS4gc29tZSBldGVybmFsIHN0YXRlIGlzIHVzZWRcbiAgICogdG8gYXNzaWduIHJvdyBjbGFzc2VzIGV0Yy5cbiAgICpcbiAgICogTm90ZTogVGhpcyBmdW5jdGlvbiBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgdGhlIHRhYmxlIGlzIGJvdW5kIHRvIHRoZSBtb2RlbC5cbiAgICogQHBhcmFtIGhhc1ZhbHVlc1xuICAgKi9cbiAgdmlld1N0YXRlRGVwZW5kc09uKC4uLmhhc1ZhbHVlczogUmVhZG9ubHlBcnJheTxIYXNWYWx1ZTxhbnk+Pikge1xuICAgIGhhc1ZhbHVlcy5mb3JFYWNoKGl0ID0+IHRoaXMuX3ZpZXdEZXBlbmRlbmNpZXMuYWRkKGl0KSlcbiAgfVxuXG4gIGdldCB2aWV3U3RhdGVEZXBlbmRlbmNpZXMoKTogUmVhZG9ubHlBcnJheTxIYXNWYWx1ZTxhbnk+PiB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5fdmlld0RlcGVuZGVuY2llcy52YWx1ZXMoKSk7XG4gIH1cblxuICBnZXQgZGF0YVNvdXJjZSQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2UkLnJlYWRvbmx5JDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSByb3dzIHRoYXQgYXJlIHZpc2libGUgYWZ0ZXIgYW55IGZpbHRlcnMgYXJlIGFwcGxpZWQuICBJZiB0aGVyZSBhcmVcbiAgICogbm8gZmlsdGVycyB0aGVuIHRoaXMgd2lsbCBiZSB0aGUgc2FtZSBhcyB0aGUgcm9vdCBkYXRhc2V0LlxuICAgKi9cbiAgZ2V0IGZpbHRlcmVkUm93cyQoKTogTGlzdE1vZGVsPFJvdz4ge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJlZFJvd3MkLnJlYWRvbmx5JDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSByb3dzIGFyZSBjdXJyZW50bHkgdmlzaWJsZSB0byB0aGUgdXNlci4gIEkuZS4gdGhlIGN1cnJlbnQgcGFnZSBpbiBhIHBhZ2VkIHRhYmxlIG9yIHRoZVxuICAgKiBleHBhbmRlZCByb3dzIGluIGEgdHJlZSB0YWJsZS5cbiAgICovXG4gIGdldCB2aXNpYmxlUm93cyQoKTogTGlzdE1vZGVsPFJvdz4ge1xuICAgIHJldHVybiB0aGlzLl92aXNpYmxlUm93cyQucmVhZG9ubHkkO1xuICB9XG5cbiAgZ2V0IHJvd3NCZWluZ0VkaXRlZCQoKTogTGlzdE1vZGVsPFJvdz4ge1xuICAgIHJldHVybiB0aGlzLl9yb3dzQmVpbmdFZGl0ZWQkLnJlYWRvbmx5JDtcbiAgfVxuXG4gIHN0YXJ0RWRpdFNlc3Npb24ocm93OiBSb3cpOiBFZGl0U2Vzc2lvbjxSb3c+IHtcbiAgICBjb25zdCByb3dJZCA9IHRoaXMuaWRlbnRpdHlPZihyb3cpO1xuICAgIGlmICh0aGlzLl9yb3dzQmVpbmdFZGl0ZWQkLnF1ZXJ5KCkuaW5kZXhPZihyb3cpID4gLTEpIHtcbiAgICAgIHJldHVybiBsYW5nLmlsbGVnYWxTdGF0ZShgUm93IHdpdGggaWQ9JHtyb3dJZH0gYWxyZWFkeSBiZWluZyBlZGl0ZWRgKTtcbiAgICB9XG5cbiAgICAvLyB0b2RvOiBwYXNzIHRoZSBmYWN0b3JpZXMgdG8gdGhlIGVkaXQgc2Vzc2lvbiBzbyB3ZSBjYW4gbWFrZSB0aGUgd2hvbGUgbG90IHBsdWdnYWJsZT9cbiAgICBjb25zdCBmb3JtID0gdGhpcy5fY3JlYXRlRm9ybShyb3cpO1xuICAgIGNvbnN0IHNhdmVDb21tYW5kID0gdGhpcy5zYXZlQ29tbWFuZEZhY3RvcnkuY3JlYXRlKGZvcm0sIHtkaXNwb3NlZFdpdGg6IHRoaXN9KTtcbiAgICBjb25zdCBlZGl0U2Vzc2lvbiA9IG5ldyBFZGl0U2Vzc2lvbjxSb3c+KHJvd0lkLCByb3csIGZvcm0sIHNhdmVDb21tYW5kKTtcbiAgICBjb25zdCB7d2hlbn0gPSBEc2wuZGlzcG9zZVdpdGgoZWRpdFNlc3Npb24pO1xuICAgIHdoZW4oZWRpdFNlc3Npb24ubGl2ZVJvd1ZhbHVlJCkuY2hhbmdlcygoZWRpdGVkVmFsdWUpID0+IHtcbiAgICAgIHRoaXMuX3Jvd3NCZWluZ0VkaXRlZCQucmVwbGFjZU9yUHVzaChlZGl0ZWRWYWx1ZSk7XG4gICAgfSwge2luaXRpYWxWYWx1ZTogXCJ0cmlnZ2VyQ2hhbmdlVW5sZXNzTmlsXCJ9KTtcblxuICAgIHRoaXMuX2VkaXRvclNlc3Npb25zLnB1c2goZWRpdFNlc3Npb24pO1xuICAgIGVkaXRTZXNzaW9uLm9uRGlzcG9zZSgoKSA9PiB7XG4gICAgICB0aGlzLl9yb3dzQmVpbmdFZGl0ZWQkLnJlbW92ZShlZGl0U2Vzc2lvbi5saXZlUm93VmFsdWUkLnZhbHVlKTtcbiAgICAgIHRoaXMuX2VkaXRvclNlc3Npb25zLnJlbW92ZShlZGl0U2Vzc2lvbik7XG4gICAgfSk7XG4gICAgcmV0dXJuIGVkaXRTZXNzaW9uO1xuICB9XG5cbiAgZ2V0RWRpdFNlc3Npb25Gb3Iocm93OiBSb3cpOiBFZGl0U2Vzc2lvbjxSb3c+IHtcbiAgICByZXR1cm4gdGhpcy5fZWRpdG9yU2Vzc2lvbkJ5Um93SWQuZ2V0KHRoaXMuaWRlbnRpdHlPZihyb3cpKTtcbiAgfVxuXG4gIGNhbmNlbEFsbEVkaXRvclNlc3Npb25zKCkge1xuICAgIHRoaXMuX2VkaXRvclNlc3Npb25zLnJ1bkluVHJhbnNhY3Rpb24oKGRyYWZ0KSA9PiB7XG4gICAgICB0aGlzLl9yb3dzQmVpbmdFZGl0ZWQkLnJ1bkluVHJhbnNhY3Rpb24oKCkgPT4ge1xuICAgICAgICBkcmFmdC52YWx1ZS5mb3JFYWNoKHNlc3Npb24gPT4gc2Vzc2lvbi5kaXNwb3NlKCkpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuXG4gIGdldCBjb2x1bW5zJCgpOiBMaXN0TW9kZWw8Q29sdW1uTW9kZWw8Um93Pj4ge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbk1hbmFnZXIuYWxsQ29sdW1ucyQ7XG4gIH1cblxuICBnZXQgdmlzaWJsZUNvbHVtbnMkKCk6IExpc3RNb2RlbDxDb2x1bW5Nb2RlbDxSb3c+PiB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1uTWFuYWdlci52aXNpYmxlQ29sdW1ucyQ7XG4gIH1cblxuICBwbHVjazxQIGV4dGVuZHMgVHlwZXMuVmFsdWVQcm9wZXJ0aWVzT2Y8Um93Pj4ocHJvcGVydHk6IFAsIG9wdGlvbnM/OiB7XG4gICAgY29sdW1uSWQ6IHN0cmluZ1xuICB9KTogUHJvcGVydHlDb2x1bW5Nb2RlbDxSb3csIFA+IHtcbiAgICBjb25zdCBjb2x1bW5JZCA9IG9wdGlvbnM/LmNvbHVtbklkIHx8IHByb3BlcnR5LnRvU3RyaW5nKCk7XG4gICAgcmV0dXJuIHRoaXMuYWRkQ29sdW1uKG5ldyBQcm9wZXJ0eUNvbHVtbk1vZGVsPFJvdywgUD4oY29sdW1uSWQsIHRoaXMuY29sdW1uTWFuYWdlciwgcHJvcGVydHksICgpID0+IHRoaXMuZ2V0Q29sdW1uVGV4dFByb3BlcnRpZXMoY29sdW1uSWQpKSk7XG4gIH1cblxuICBwbHVja0xpc3Q8UCBleHRlbmRzIFR5cGVzLkFycmF5UHJvcGVydGllc09mPFJvdz4+KHByb3BlcnR5OiBQLCBvcHRpb25zPzoge1xuICAgIGNvbHVtbklkOiBzdHJpbmdcbiAgfSk6IExpc3RQcm9wZXJ0eUNvbHVtbk1vZGVsPFJvdywgUD4ge1xuICAgIGNvbnN0IGNvbHVtbklkID0gb3B0aW9ucz8uY29sdW1uSWQgfHwgcHJvcGVydHkudG9TdHJpbmcoKTtcbiAgICByZXR1cm4gdGhpcy5hZGRDb2x1bW4obmV3IExpc3RQcm9wZXJ0eUNvbHVtbk1vZGVsPFJvdywgUD4oY29sdW1uSWQsIHRoaXMuY29sdW1uTWFuYWdlciwgcHJvcGVydHksICgpID0+IHRoaXMuZ2V0Q29sdW1uVGV4dFByb3BlcnRpZXMoY29sdW1uSWQpKSk7XG4gIH1cblxuICAvLyBUT0RPOiBjbGVhbiB0aGlzIHVwIGFuZCBhc3NpZ24gdGhlIHNlbGVjdGlvbiBtb2RlbCBvbiB0ZWggdGFibGUgZGlyZWN0bHkuXG4gIC8vICAgICAgIHRhYmxlTW9kZWwudXNlU2VsZWN0aW9uTW9kZWwobW9kZWwpIGFuZCBoYXZlIHRoZSBzZWxlY2l0b24gY29sdW1uIGF1dG9tYXRpY2FsbHlcbiAgLy8gICAgICAgYWRkZWQuICBOZWVkIHRvIGxvb2sgYXQgaG93IHdlJ3JlIHVzaW5nIHRoZSB2aXNpYmlsaXR5IGNvbnRyb2xzIGFzIHdlbGwuXG4gIC8vICAgICAgIFNob3VsZCBhbHNvIGxhenkgY3JlYXRlIHRoZSBzZWxlY3Rpb24gY29sdW1uIG1vZGVsIGlmIHNvbWVvbmUgYWNjZXNzZXMgaXQuXG4gIHByb3RlY3RlZCBfYWRkU2VsZWN0aW9uQ29sdW1uKHNlbGVjdGlvbk1vZGVsPzogU2VsZWN0aW9uTW9kZWw8Um93PiwgdmlzaWJsZT86IFZhbHVlTW9kZWw8Ym9vbGVhbj4gfCBib29sZWFuKTogU2VsZWN0aW9uQ29sdW1uTW9kZWw8Um93PiB7XG4gICAgYXNzZXJ0LmlzTmlsKHRoaXMuc2VsZWN0aW9uQ29sdW1uTW9kZWwpO1xuICAgIGNvbnN0IGNvbHVtbklkID0gXCJzZWxlY3Rpb24tY29sdW1uXCI7XG4gICAgdGhpcy5zZWxlY3Rpb25Db2x1bW5Nb2RlbCA9IG5ldyBTZWxlY3Rpb25Db2x1bW5Nb2RlbDxSb3c+KGNvbHVtbklkLCB0aGlzLmNvbHVtbk1hbmFnZXIsICgpID0+IHRoaXMuZ2V0Q29sdW1uVGV4dFByb3BlcnRpZXMoY29sdW1uSWQpLCB0aGlzLnNlbGVjdGlvbk1vZGVsUHJveHkpO1xuICAgIHRoaXMuc2VsZWN0aW9uQ29sdW1uTW9kZWwudXNlU2VsZWN0aW9uTW9kZWwoc2VsZWN0aW9uTW9kZWwpXG4gICAgdGhpcy5hZGRSb3dDbGFzcyhcImF1cC1yb3ctc2VsZWN0ZWRcIiwgcm93ID0+IHRoaXMuc2VsZWN0aW9uQ29sdW1uTW9kZWwuaXNTZWxlY3RlZChyb3cpKTtcbiAgICBjb25zdCBzZWxlY3Rpb25Db2x1bW5Nb2RlbCA9IHRoaXMuYWRkQ29sdW1uKHRoaXMuc2VsZWN0aW9uQ29sdW1uTW9kZWwsIHtiZWZvcmU6IG51bGx9KTsgLy8gZmlyc3QgY29sdW1uXG4gICAgaWYgKCFpc05pbCh2aXNpYmxlKSkge1xuICAgICAgc2VsZWN0aW9uQ29sdW1uTW9kZWwudmlzaWJsZVdoaWxlKHZpc2libGUgaW5zdGFuY2VvZiBWYWx1ZU1vZGVsID8gdmlzaWJsZSA6IFZhbHVlTW9kZWwuY29uc3RhbnQodmlzaWJsZSkpO1xuICAgIH1cbiAgICByZXR1cm4gc2VsZWN0aW9uQ29sdW1uTW9kZWw7XG4gIH1cblxuXG4gIGFkZEVkaXRDb250cm9scyhzYXZlQ29tbWFuZEZhY3Rvcnk6IENvbW1hbmQuRmFjdG9yeTxEaXJ0eVRyYWNraW5nRm9ybTxSb3c+LCBib29sZWFuIHwgUHJvbWlzZTxib29sZWFuPj4sIGZvcm1GYWN0b3J5PzogKHJvdzogUm93KSA9PiBEaXJ0eVRyYWNraW5nRm9ybTxSb3c+KTogRWRpdG9yQ29udHJvbENvbHVtbk1vZGVsPFJvdz4ge1xuICAgIHRoaXMuc2F2ZUNvbW1hbmRGYWN0b3J5ID0gc2F2ZUNvbW1hbmRGYWN0b3J5O1xuICAgIGlmIChpc0Z1bmN0aW9uKGZvcm1GYWN0b3J5KSkge1xuICAgICAgdGhpcy5fY3JlYXRlRm9ybSA9IGZvcm1GYWN0b3J5O1xuICAgIH1cbiAgICBjb25zdCBjb2x1bW5JZCA9IFwiZWRpdENvbnRyb2xzXCI7XG4gICAgcmV0dXJuIHRoaXMuYWRkQ29sdW1uKG5ldyBFZGl0b3JDb250cm9sQ29sdW1uTW9kZWw8Um93Pihjb2x1bW5JZCwgdGhpcy5jb2x1bW5NYW5hZ2VyLCBzYXZlQ29tbWFuZEZhY3RvcnksICgpID0+IHRoaXMuZ2V0Q29sdW1uVGV4dFByb3BlcnRpZXMoY29sdW1uSWQpKSk7XG4gIH1cblxuICBhZGRDdXN0b21Db2x1bW48Vj4oY29sdW1uSWQ6IHN0cmluZywgZGF0YUFjY2Vzc29yOiAocm93OiBSb3cpID0+IFYpOiBDdXN0b21WYWx1ZUNvbHVtbk1vZGVsPFJvdywgVj4ge1xuICAgIHJldHVybiB0aGlzLmFkZENvbHVtbihuZXcgQ3VzdG9tVmFsdWVDb2x1bW5Nb2RlbDxSb3csIFY+KGNvbHVtbklkLCB0aGlzLmNvbHVtbk1hbmFnZXIsICgpID0+IHRoaXMuZ2V0Q29sdW1uVGV4dFByb3BlcnRpZXMoY29sdW1uSWQpLCBkYXRhQWNjZXNzb3IpKTtcbiAgfVxuXG4gIGFkZENvbXBvbmVudENvbHVtbjxDIGV4dGVuZHMgQ2VsbFJlbmRlcmVyPFBhcnRpYWw8Um93Pj4+KGNvbHVtbklkOiBzdHJpbmcsIGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxDPiwgb25Jbml0PzogT25Db21wb25lbnRJbml0PEM+KTogQ3VzdG9tVmFsdWVDb2x1bW5Nb2RlbDxSb3csIFJvdz5cbiAgYWRkQ29tcG9uZW50Q29sdW1uPEMgZXh0ZW5kcyBDZWxsUmVuZGVyZXI8UGFydGlhbDxSb3c+Pj4oY29sdW1uSWQ6IHN0cmluZywgY29tcG9uZW50OiBDb21wb25lbnRUeXBlPEM+LCBvcHRpb25zPzogQ2VsbFJlbmRlcmVyT3B0aW9uczxSb3csIEM+KTogQ3VzdG9tVmFsdWVDb2x1bW5Nb2RlbDxSb3csIFJvdz5cbiAgYWRkQ29tcG9uZW50Q29sdW1uPEMgZXh0ZW5kcyBDZWxsUmVuZGVyZXI8UGFydGlhbDxSb3c+Pj4oY29sdW1uSWQ6IHN0cmluZywgY29tcG9uZW50OiBDb21wb25lbnRUeXBlPEM+LCBvbkNvbXBvbmVudEluaXRPck9wdGlvbnM/OiBPbkNvbXBvbmVudEluaXQ8Qz4gfCBDZWxsUmVuZGVyZXJPcHRpb25zPFJvdywgQz4pOiBDdXN0b21WYWx1ZUNvbHVtbk1vZGVsPFJvdywgUm93PiB7XG4gICAgcmV0dXJuIHRoaXMuYWRkQ29sdW1uKG5ldyBDdXN0b21WYWx1ZUNvbHVtbk1vZGVsPFJvdywgUm93Pihjb2x1bW5JZCwgdGhpcy5jb2x1bW5NYW5hZ2VyLCAoKSA9PiB0aGlzLmdldENvbHVtblRleHRQcm9wZXJ0aWVzKGNvbHVtbklkKSwgcm93ID0+IHJvdykpLmNlbGxSZW5kZXJlcihjb21wb25lbnQsIG9uQ29tcG9uZW50SW5pdE9yT3B0aW9ucyk7XG4gIH1cblxuICBhZGRNb3JlTWVudTxDIGV4dGVuZHMgVGFibGVNb3JlTWVudVBvcHVwQ29tcG9uZW50PFJvdz4+KGNvbXBvbmVudENsYXNzOiBDb25zdHJ1Y3RhYmxlPEM+LCBpbml0aWFsaXNlQ2FsbGJhY2s/OiAoY29tcG9uZW50OiBDKSA9PiB2b2lkKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkQ29tcG9uZW50Q29sdW1uKFwibW9yZS1tZW51XCIsIFRhYmxlTW9yZU1lbnVDb21wb25lbnQsIChjb21wb25lbnQ6IFRhYmxlTW9yZU1lbnVDb21wb25lbnQ8Um93PikgPT4ge1xuICAgICAgY29tcG9uZW50LmNvbmZpZ3VyZVBvcHVwQ29tcG9uZW50VHlwZShjb21wb25lbnRDbGFzcywgaW5pdGlhbGlzZUNhbGxiYWNrKTtcbiAgICB9KS5jb2x1bW5UZXh0UHJvcGVydGllcyh7XG4gICAgICBoZWFkZXJUZXh0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBcIlwiXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBhZGRGb290ZXJSb3c8Qz4oY29tcG9uZW50OiBDb21wb25lbnRUeXBlPEM+LCBpbml0aWFsaXNlQ2FsbGJhY2s/OiAoY29tcG9uZW50OiBDKSA9PiB2b2lkKTpGb290ZXJSb3dNb2RlbDxDPiB7XG4gICAgYXNzZXJ0LmlzTmlsKHRoaXMuZm9vdGVyUm93TW9kZWwpO1xuICAgIHRoaXMuZm9vdGVyUm93TW9kZWwgPSBuZXcgRm9vdGVyUm93TW9kZWwuSW1wbChjb21wb25lbnQsIGluaXRpYWxpc2VDYWxsYmFjayk7XG4gICAgcmV0dXJuIHRoaXMuZm9vdGVyUm93TW9kZWw7XG4gIH1cblxuICBhZGRUZW1wbGF0ZUNvbHVtbjxWPihjb2x1bW5JZDogc3RyaW5nKTogQ3VzdG9tVGVtcGxhdGVDb2x1bW5Nb2RlbDxSb3c+IHtcbiAgICByZXR1cm4gdGhpcy5hZGRDb2x1bW4obmV3IEN1c3RvbVRlbXBsYXRlQ29sdW1uTW9kZWw8Um93Pihjb2x1bW5JZCwgdGhpcy5jb2x1bW5NYW5hZ2VyLCAoKSA9PiB0aGlzLmdldENvbHVtblRleHRQcm9wZXJ0aWVzKGNvbHVtbklkKSkpO1xuICB9XG5cbiAgYWRkUm93Q2xhc3MoY2xhc3NOYW1lOiBzdHJpbmcsIHByZWRpY2F0ZTogKHJvdzogUm93KSA9PiBib29sZWFuLCBvcHRpb25zPzogRGVwZW5kc09uT3B0aW9ucykge1xuICAgIHRoaXMucm93Q2xhc3NOYW1lUHJlZGljYXRlcy5wdXNoKG5ldyBSb3dDbGFzczxSb3c+KGNsYXNzTmFtZSwgcHJlZGljYXRlKSk7XG4gICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgIHRoaXMudmlld1N0YXRlRGVwZW5kc09uKC4uLkRlcGVuZHNPbk9wdGlvbnMuZXh0cmFjdChvcHRpb25zKSlcbiAgICB9XG4gIH1cblxuICBhZGRSb3dBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZTogc3RyaW5nLCBnZXRWYWx1ZTogKHJvdzogUm93KSA9PiBzdHJpbmcpIHtcbiAgICB0aGlzLnJvd0F0dHJpYnV0ZUdlbmVyYXRvcnMucHVzaChuZXcgUm93QXR0cmlidXRlPFJvdz4oYXR0cmlidXRlTmFtZSwgZ2V0VmFsdWUpKTtcbiAgfVxuXG4gIGdldFJvd0NsYXNzZXMocm93OiBSb3cpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgY2xhc3NOYW1lczogc3RyaW5nW10gPSBbXTtcbiAgICB0aGlzLnJvd0NsYXNzTmFtZVByZWRpY2F0ZXMuZm9yRWFjaChpID0+IHtcbiAgICAgIGlmIChpLm1hdGNoZXMocm93KSkge1xuICAgICAgICBjbGFzc05hbWVzLnB1c2goaS5jbGFzc05hbWUpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBjbGFzc05hbWVzO1xuICB9XG5cbiAgZ2V0Um93QXR0cmlidXRlcyhyb3c6IFJvdyk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLnJvd0F0dHJpYnV0ZUdlbmVyYXRvcnMucmVkdWNlKChyZXN1bHQsIGdlbmVyYXRvcikgPT4ge1xuICAgICAgcmV0dXJuIHsuLi5yZXN1bHQsIFtnZW5lcmF0b3IuYXR0cmlidXRlTmFtZV06IGdlbmVyYXRvci5nZXRWYWx1ZShyb3cpfVxuICAgIH0sIHt9KTtcbiAgfVxuXG5cbiAgcHJvdGVjdGVkIGFkZENvbHVtbjxDIGV4dGVuZHMgQ29sdW1uTW9kZWw8Um93Pj4oY29sdW1uOiBDLCBwb3NpdGlvbj86IENvbHVtbk9yZGVyTWFuYWdlci5Qb3NpdGlvbik6IEMge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbk1hbmFnZXIuYWRkQ29sdW1uKGNvbHVtbiwgcG9zaXRpb24pO1xuICB9XG5cbiAgY29sdW1uVGV4dFByb3BlcnRpZXMoY29sdW1uVGV4dFByb3BlcnRpZXM6IHsgW2NvbHVtbk5hbWU6IHN0cmluZ106IENvbHVtblRleHRQcm9wZXJ0aWVzIH0pIHtcbiAgICB0aGlzLl9jb2x1bW5UZXh0UHJvcGVydGllc0xvb2t1cCA9IGNvbHVtblRleHRQcm9wZXJ0aWVzO1xuICB9XG5cbiAgZ2V0Q29sdW1uVGV4dFByb3BlcnRpZXMoY29sdW1uSWQ6IHN0cmluZyk6IENvbHVtblRleHRQcm9wZXJ0aWVzIHtcbiAgICByZXR1cm4gdGhpcy5fY29sdW1uVGV4dFByb3BlcnRpZXNMb29rdXAgPyB0aGlzLl9jb2x1bW5UZXh0UHJvcGVydGllc0xvb2t1cFtjb2x1bW5JZF0gOiB1bmRlZmluZWQ7XG4gIH1cblxuXG4gIGlzUm93U2VsZWN0aW9uRW5hYmxlZEZvcihjb2x1bW46IENvbHVtbk1vZGVsPFJvdz4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc1Jvd1NlbGVjdGlvbkVuYWJsZWQoKSAmJiBjb2x1bW4uaXNSb3dTZWxlY3Rpb25FbmFibGVkKCk7XG4gIH1cblxuICBpc1Jvd1NlbGVjdGlvbkVuYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaGFzVXNlclNlbGVjdGlvbk1vZGVsVGhhdElzRW5hYmxlZCgpICYmICF0aGlzLnJvd1NlbGVjdGlvbkRpc2FibGVkT25BbGxDb2x1bW5zJC52YWx1ZTtcbiAgfVxuXG4gIGhhc1VzZXJTZWxlY3Rpb25Nb2RlbFRoYXRJc0VuYWJsZWQoKSB7XG4gICAgY29uc3QgdXNlclNlbGVjdGlvbk1vZGVsID0gdGhpcy5zZWxlY3Rpb25Db2x1bW5Nb2RlbD8uc2VsZWN0aW9uTW9kZWwuZ2V0UHJveHlUYXJnZXQoKTtcbiAgICByZXR1cm4gISF1c2VyU2VsZWN0aW9uTW9kZWwgJiYgdXNlclNlbGVjdGlvbk1vZGVsLmVuYWJsZWQkLnZhbHVlO1xuICB9XG5cbiAgZ2V0U2VsZWN0aW9uTW9kZWwoKTogU2VsZWN0aW9uTW9kZWw8Um93PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uQ29sdW1uTW9kZWw/LnNlbGVjdGlvbk1vZGVsO1xuICB9XG5cbiAgaXNIb3ZlckVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNSb3dTZWxlY3Rpb25FbmFibGVkKCkgfHwgdGhpcy5yb3dDbGlja0xpc3RlbmVycy5saXN0ZW5lckNvdW50ID4gMDtcbiAgfVxuXG4gIGlzQ3Vyc29yRW5hYmxlZChjb2x1bW46IENvbHVtbk1vZGVsPFJvdz4pIHtcbiAgICByZXR1cm4gdGhpcy5pc1Jvd1NlbGVjdGlvbkVuYWJsZWRGb3IoY29sdW1uKSB8fCB0aGlzLnJvd0NsaWNrTGlzdGVuZXJzLmxpc3RlbmVyQ291bnQgPiAwO1xuICB9XG5cbiAgc2VsZWN0Um93KHJvdzogUm93KSB7XG4gICAgdGhpcy5zZWxlY3Rpb25Db2x1bW5Nb2RlbD8uc2VsZWN0Um93KHJvdyk7XG4gIH1cblxuICBvblJvd0NsaWNrZWQoY2FsbGJhY2s6IChyb3c6IFJvdykgPT4gdm9pZCk6IERpc3Bvc2FibGUge1xuICAgIHJldHVybiB0aGlzLnJvd0NsaWNrTGlzdGVuZXJzLmFkZChjYWxsYmFjayk7XG4gIH1cblxuICBfbm90aWZ5Q2VsbENsaWNrZWQoY29sdW1uTW9kZWw6IENvbHVtbk1vZGVsPFJvdz4sIHJvdzogUm93KSB7XG4gICAgaWYgKHRoaXMuaXNSb3dTZWxlY3Rpb25FbmFibGVkRm9yKGNvbHVtbk1vZGVsKSkge1xuICAgICAgdGhpcy5zZWxlY3RSb3cocm93KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gY29uc29sZS5sb2coe1xuICAgICAgLy8gICBoYXNFbmFibGVkVXNlclNlbGVjdGlvbk1vZGVsOiB0aGlzLmhhc1VzZXJTZWxlY3Rpb25Nb2RlbFRoYXRJc0VuYWJsZWQoKSxcbiAgICAgIC8vICAgYWxsU2VsZWN0aW9uRGlzYWJsZWQ6IHRoaXMucm93U2VsZWN0aW9uRGlzYWJsZWRPbkFsbENvbHVtbnMkLnZhbHVlLFxuICAgICAgLy8gICByb3dTZWxlY3Rpb25FbmFibGVkOiB0aGlzLmlzUm93U2VsZWN0aW9uRW5hYmxlZCgpLFxuICAgICAgLy8gICByb3dTZWxlY3Rpb25FbmFibGVkRm9yQ29sdW1uOiBjb2x1bW5Nb2RlbC5pc1Jvd1NlbGVjdGlvbkVuYWJsZWQoKVxuICAgICAgLy8gfSlcbiAgICB9XG5cbiAgICB0aGlzLnJvd0NsaWNrTGlzdGVuZXJzLmZpcmUobCA9PiBsKHJvdykpO1xuICB9XG5cbn1cblxuUHJveHlSZWdpc3RyeS5yZWdpc3Rlck9uZVRpbWVCaW5kaW5nKEFic3RyYWN0VGFibGVNb2RlbClcbiJdfQ==
|
|
294
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtdGFibGUtbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9hYnN0cmFjdC10YWJsZS1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFDTCxNQUFNLEVBSU4sbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixpQkFBaUIsRUFFakIsR0FBRyxFQUNILGlCQUFpQixFQUNqQixnQkFBZ0IsRUFJaEIsZ0JBQWdCLEVBR2hCLGFBQWEsRUFLZCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUVsRCxPQUFPLEVBQUMsVUFBVSxFQUFRLE1BQU0sV0FBVyxDQUFDO0FBQzVDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUl0RCxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNoRixPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUMxRSxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUMzRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFbEQsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFFaEYsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBS3pELE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQzVGLElBQU8scUJBQXFCLEdBQUcseUJBQXlCLENBQUMscUJBQXFCLENBQUM7QUFDL0UsSUFBTyxxQkFBcUIsR0FBRyx5QkFBeUIsQ0FBQyxxQkFBcUIsQ0FBQztBQUUvRSxvR0FBb0c7QUFDcEcsb0dBQW9HO0FBRXBHLE1BQU0sUUFBUTtJQUNTO0lBQ0E7SUFEckIsWUFBcUIsU0FBaUIsRUFDakIsT0FBOEI7UUFEOUIsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUNqQixZQUFPLEdBQVAsT0FBTyxDQUF1QjtJQUNuRCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLFlBQVk7SUFDSztJQUNBO0lBRHJCLFlBQXFCLGFBQXFCLEVBQ3JCLFFBQThCO1FBRDlCLGtCQUFhLEdBQWIsYUFBYSxDQUFRO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQXNCO0lBQ25ELENBQUM7Q0FDRjtBQUdELE1BQU0sT0FBZ0Isa0JBQXVDLFNBQVEsZ0JBQWdCO0lBRWhFLFlBQVksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxtQkFBbUIsRUFBTyxDQUFDLENBQUM7SUFDdkUsY0FBYyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLG1CQUFtQixFQUFPLENBQUMsQ0FBQztJQUN6RSxhQUFhLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksbUJBQW1CLEVBQU8sQ0FBQyxDQUFDO0lBRXhFLGFBQWEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxhQUFhLEVBQU8sQ0FBQyxDQUFDO0lBRTdFLGVBQWUsR0FBRyxJQUFJLGdCQUFnQixFQUFvQixDQUFDO0lBQ2xELGlCQUFpQixDQUF3QjtJQUNsRCxrQkFBa0IsQ0FBc0U7SUFDeEYscUJBQXFCLENBQXVDO0lBRW5ELHNCQUFzQixHQUFvQixFQUFFLENBQUM7SUFDN0Msc0JBQXNCLEdBQXdCLEVBQUUsQ0FBQztJQUUxRCwyQkFBMkIsQ0FBaUQ7SUFFM0UsUUFBUSxDQUF5QjtJQUNqQyxvQkFBb0IsQ0FBb0M7SUFDeEQsb0JBQW9CLENBQTRCO0lBQ2pELGlDQUFpQyxDQUF5QjtJQUNqRCxpQkFBaUIsR0FBRyxJQUFJLGlCQUFpQixFQUFzQixDQUFDO0lBQ3hFLG1CQUFtQixDQUErQjtJQUNsRCxrQkFBa0IsQ0FBK0I7SUFFbEQsV0FBVyxHQUF5QyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxpQkFBaUIsRUFBTyxDQUFDO0lBQ3pGLG9CQUFvQixDQUF1QztJQUMxRCxVQUFVLENBQXFCO0lBQ2hDLGdCQUFnQixDQUFzQjtJQUd0QyxjQUFjLENBQWlCO0lBQy9CLGNBQWMsQ0FBa0I7SUFDaEMsYUFBYSxDQUF5QjtJQUMvQyxjQUFjLENBQTJCO0lBQ3hCLGlCQUFpQixHQUFHLElBQUksR0FBRyxFQUFpQixDQUFDO0lBRTlEO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFDUixNQUFNLEVBQUMsS0FBSyxFQUFDLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBTSxFQUFFLEVBQUU7WUFDckQsY0FBYyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7U0FDNUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFckUsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzFFLE9BQU8sQ0FBQyxHQUFRLEVBQUUsS0FBYSxFQUFFLEVBQUU7Z0JBQ2pDLE9BQU8sQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlFLENBQUMsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksb0JBQW9CLENBQU0sa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO1FBQzFKLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQyxlQUFlO1FBQzFFLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFdkYsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDMUYsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDL0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFN0QsSUFBSSxDQUFDLGlDQUFpQyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXRKLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRTFELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUM7UUFDOUUsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQztRQUM5RSxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDL0QsQ0FBQztJQUVTLGFBQWEsQ0FBQyxXQUFXO1FBQ2pDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFVBQVUsQ0FBQyxRQUFrQixFQUFFLFVBQThCO1FBQzNELGtFQUFrRTtRQUNsRSxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ3JDLFNBQVMsRUFBRTtnQkFDVCxFQUFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBQztnQkFDaEMsRUFBQyxPQUFPLEVBQUUscUJBQXFCLEVBQUM7YUFDakM7WUFDRCxNQUFNLEVBQUUsUUFBUTtTQUNqQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxrQkFBa0IsQ0FBQyxHQUFHLFNBQXVDO1FBQzNELFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDekQsQ0FBQztJQUVELElBQUkscUJBQXFCO1FBQ3ZCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDO0lBQzFDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxHQUFRO1FBQ3ZCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQ3BELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLEtBQUssdUJBQXVCLENBQUMsQ0FBQztTQUN2RTtRQUVELHVGQUF1RjtRQUN2RixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUMsWUFBWSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFDL0UsTUFBTSxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQU0sS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDeEUsTUFBTSxFQUFDLElBQUksRUFBQyxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUN0RCxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BELENBQUMsRUFBRSxFQUFDLFlBQVksRUFBRSx3QkFBd0IsRUFBQyxDQUFDLENBQUM7UUFFN0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdkMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDekIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9ELElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEdBQVE7UUFDeEIsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsdUJBQXVCO1FBQ3JCLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUM5QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFO2dCQUMzQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ3BELENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBR0QsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUM7SUFDNUMsQ0FBQztJQUVELEtBQUssQ0FBeUMsUUFBVyxFQUFFLE9BRTFEO1FBQ0MsTUFBTSxRQUFRLEdBQUcsT0FBTyxFQUFFLFFBQVEsSUFBSSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksbUJBQW1CLENBQVMsUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0ksQ0FBQztJQUVELFNBQVMsQ0FBeUMsUUFBVyxFQUFFLE9BRTlEO1FBQ0MsTUFBTSxRQUFRLEdBQUcsT0FBTyxFQUFFLFFBQVEsSUFBSSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksdUJBQXVCLENBQVMsUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkosQ0FBQztJQUVELGlCQUFpQixDQUFDLGNBQW9DO1FBQ3BELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsZUFBZSxDQUFDLGtCQUF1RixFQUFFLFdBQWtEO1FBQ3pKLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztRQUM3QyxJQUFJLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUMzQixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztTQUNoQztRQUNELE1BQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQztRQUNoQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSx3QkFBd0IsQ0FBTSxRQUFRLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNKLENBQUM7SUFFRCxlQUFlLENBQUksUUFBZ0IsRUFBRSxZQUE2QjtRQUNoRSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxzQkFBc0IsQ0FBUyxRQUFRLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUN0SixDQUFDO0lBSUQsa0JBQWtCLENBQXVDLFFBQWdCLEVBQUUsU0FBMkIsRUFBRSx3QkFBMkU7UUFDakwsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksc0JBQXNCLENBQVcsUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLHdCQUF3QixDQUFDLENBQUM7SUFDeE0sQ0FBQztJQUVELFdBQVcsQ0FBNkMsY0FBZ0MsRUFBRSxrQkFBMkM7UUFDbkksT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLHNCQUFzQixFQUFFLENBQUMsU0FBc0MsRUFBRSxFQUFFO1lBQzdHLFNBQVMsQ0FBQywyQkFBMkIsQ0FBQyxjQUFjLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUM1RSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQztZQUN0QixVQUFVO2dCQUNSLE9BQU8sRUFBRSxDQUFBO1lBQ1gsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZLENBQUksU0FBMkIsRUFBRSxrQkFBMkM7UUFDdEYsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDN0UsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxpQkFBaUIsQ0FBSSxRQUFnQjtRQUNuQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSx5QkFBeUIsQ0FBTSxRQUFRLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hJLENBQUM7SUFFRCxXQUFXLENBQUMsU0FBaUIsRUFBRSxTQUFnQyxFQUFFLE9BQTBCO1FBQ3pGLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxRQUFRLENBQU0sU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDMUUsSUFBSSxPQUFPLEVBQUU7WUFDWCxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtTQUM5RDtJQUNILENBQUM7SUFFRCxlQUFlLENBQUMsYUFBcUIsRUFBRSxRQUE4QjtRQUNuRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksWUFBWSxDQUFNLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCxhQUFhLENBQUMsR0FBUTtRQUNwQixNQUFNLFVBQVUsR0FBYSxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN0QyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2xCLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQzlCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsR0FBUTtRQUN2QixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEVBQUU7WUFDOUQsT0FBTyxFQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUMsQ0FBQTtRQUN4RSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDVCxDQUFDO0lBR1MsU0FBUyxDQUE2QixNQUFTLEVBQUUsUUFBc0M7UUFDL0YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELG9CQUFvQixDQUFDLG9CQUFvRTtRQUN2RixJQUFJLENBQUMsMkJBQTJCLEdBQUcsb0JBQW9CLENBQUM7SUFDMUQsQ0FBQztJQUVELHVCQUF1QixDQUFDLFFBQWdCO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNuRyxDQUFDO0lBR0Qsd0JBQXdCLENBQUMsTUFBd0I7UUFDL0MsT0FBTyxJQUFJLENBQUMscUJBQXFCLEVBQUUsSUFBSSxNQUFNLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUN4RSxDQUFDO0lBRUQscUJBQXFCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGtDQUFrQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsaUNBQWlDLENBQUMsS0FBSyxDQUFDO0lBQ3BHLENBQUM7SUFFRCxrQ0FBa0M7UUFDaEMsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFDakUsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLGNBQWMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixFQUFFLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVELGVBQWUsQ0FBQyxNQUF3QjtRQUN0QyxPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQVE7UUFDaEIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsWUFBWSxDQUFDLFFBQTRCO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsV0FBNkIsRUFBRSxHQUFRO1FBQ3hELElBQUksSUFBSSxDQUFDLHdCQUF3QixDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQzlDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDckI7YUFBTTtZQUNMLGdCQUFnQjtZQUNoQiw2RUFBNkU7WUFDN0Usd0VBQXdFO1lBQ3hFLHVEQUF1RDtZQUN2RCxzRUFBc0U7WUFDdEUsS0FBSztTQUNOO1FBRUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7Q0FFRjtBQUVELGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnRUeXBlfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcbmltcG9ydCB7SW5qZWN0b3J9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1xuICBhc3NlcnQsXG4gIEJvb2xlYW5WYWx1ZU1vZGVsQ2hhaW4sXG4gIENvbW1hbmQsXG4gIENvbnN0cnVjdGFibGUsXG4gIERlbGVnYXRpbmdMaXN0TW9kZWwsXG4gIERlcGVuZHNPbk9wdGlvbnMsXG4gIERpcnR5VHJhY2tpbmdGb3JtLFxuICBEaXNwb3NhYmxlLFxuICBEc2wsXG4gIEV2ZW50TGlzdGVuZXJMaXN0LFxuICBHYXJiYWdlQ29sbGVjdG9yLFxuICBIYXNWYWx1ZSxcbiAgTGlzdE1vZGVsLFxuICBNYXBNb2RlbENoYWluLCBNdWx0aXBsZVNlbGVjdGlvbk1vZGVsLFxuICBNdXRhYmxlTGlzdE1vZGVsLFxuICBQcm94aWZpZWQsXG4gIHByb3hpZnksXG4gIFByb3h5UmVnaXN0cnksXG4gIFNlbGVjdGlvbk1vZGVsLFxuICBUeXBlcyxcbiAgVmFsdWVNb2RlbCxcbiAgVmFsdWVNb2RlbENoYWluXG59IGZyb20gXCJAY29vbG9uL3BlY3RpblwiO1xuaW1wb3J0IHtsYW5nfSBmcm9tIFwiQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllc1wiO1xuXG5pbXBvcnQge2lzRnVuY3Rpb24sIGlzTmlsfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQge0NvbHVtbk1hbmFnZXJ9IGZyb20gXCIuL2NvbHVtbi9jb2x1bW4tbWFuYWdlclwiO1xuaW1wb3J0IHtDZWxsUmVuZGVyZXJPcHRpb25zLCBDb2x1bW5Nb2RlbCwgT25Db21wb25lbnRJbml0fSBmcm9tIFwiLi9jb2x1bW4vY29sdW1uLW1vZGVsXCI7XG5pbXBvcnQge0NvbHVtbk9yZGVyTWFuYWdlcn0gZnJvbSBcIi4vY29sdW1uL2NvbHVtbi1vcmRlci1tYW5hZ2VyXCI7XG5pbXBvcnQge0NvbHVtblRleHRQcm9wZXJ0aWVzfSBmcm9tIFwiLi9jb2x1bW4vY29sdW1uLXRleHQtcHJvcGVydGllc1wiO1xuaW1wb3J0IHtDdXN0b21UZW1wbGF0ZUNvbHVtbk1vZGVsfSBmcm9tIFwiLi9jb2x1bW4vY3VzdG9tLXRlbXBsYXRlLWNvbHVtbi1tb2RlbFwiO1xuaW1wb3J0IHtDdXN0b21WYWx1ZUNvbHVtbk1vZGVsfSBmcm9tIFwiLi9jb2x1bW4vY3VzdG9tLXZhbHVlLWNvbHVtbi1tb2RlbFwiO1xuaW1wb3J0IHtFZGl0b3JDb250cm9sQ29sdW1uTW9kZWx9IGZyb20gXCIuL2NvbHVtbi9lZGl0b3ItY29udHJvbHMtY29sdW1uLW1vZGVsXCI7XG5pbXBvcnQge0xpc3RQcm9wZXJ0eUNvbHVtbk1vZGVsfSBmcm9tIFwiLi9jb2x1bW4vbGlzdC1wcm9wZXJ5LWNvbHVtbi1tb2RlbFwiO1xuaW1wb3J0IHtQcm9wZXJ0eUNvbHVtbk1vZGVsfSBmcm9tIFwiLi9jb2x1bW4vcHJvcGVydHktY29sdW1uLW1vZGVsXCI7XG5pbXBvcnQge1NlbGVjdGlvbkNvbHVtbk1vZGVsfSBmcm9tIFwiLi9jb2x1bW4vc2VsZWN0aW9uLWNvbHVtbi1tb2RlbFwiO1xuaW1wb3J0IHtFZGl0U2Vzc2lvbn0gZnJvbSBcIi4vZWRpdG9yL2VkaXQtc2Vzc2lvblwiO1xuXG5pbXBvcnQge0NvbHVtblRleHRTZWFyY2hGb3JtYXR0ZXJ9IGZyb20gXCIuL2ZpbHRlci9jb2x1bW4tdGV4dC1zZWFyY2gtZm9ybWF0dGVyXCI7XG5pbXBvcnQge1RleHRTZWFyY2hQcmVkaWNhdGV9IGZyb20gXCIuL2ZpbHRlci90ZXh0LXNlYXJjaC1wcmVkaWNhdGVcIjtcbmltcG9ydCB7Rm9vdGVyUm93TW9kZWx9IGZyb20gXCIuL2Zvb3Rlci9mb290ZXItcm93LW1vZGVsXCI7XG5pbXBvcnQge0NlbGxSZW5kZXJlcn0gZnJvbSBcIi4vcmVuZGVyZXIvY2VsbC1yZW5kZXJlclwiO1xuaW1wb3J0IHtcbiAgVGFibGVNb3JlTWVudVBvcHVwQ29tcG9uZW50XG59IGZyb20gXCIuL3JlbmRlcmVyL3RhYmxlLW1vcmUtbWVudS90YWJsZS1tb3JlLW1lbnUtcG9wdXAvdGFibGUtbW9yZS1tZW51LXBvcHVwLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtUYWJsZU1vcmVNZW51Q29tcG9uZW50fSBmcm9tIFwiLi9yZW5kZXJlci90YWJsZS1tb3JlLW1lbnUvdGFibGUtbW9yZS1tZW51LmNvbXBvbmVudFwiO1xuaW1wb3J0IERlZmF1bHRBcnJheUZvcm1hdHRlciA9IENvbHVtblRleHRTZWFyY2hGb3JtYXR0ZXIuRGVmYXVsdEFycmF5Rm9ybWF0dGVyO1xuaW1wb3J0IERlZmF1bHRWYWx1ZUZvcm1hdHRlciA9IENvbHVtblRleHRTZWFyY2hGb3JtYXR0ZXIuRGVmYXVsdFZhbHVlRm9ybWF0dGVyO1xuXG4vLyBleHBvcnQgdHlwZSBTdHJpbmdQcm9wZXJ0aWVzT2Y8VD4gPSB7IFtLIGluIGtleW9mIFRdOiBUW0tdIGV4dGVuZHMgc3RyaW5nID8gSyA6IG5ldmVyIH1ba2V5b2YgVF07XG4vLyBleHBvcnQgdHlwZSBOdW1iZXJQcm9wZXJ0aWVzT2Y8VD4gPSB7IFtLIGluIGtleW9mIFRdOiBUW0tdIGV4dGVuZHMgbnVtYmVyID8gSyA6IG5ldmVyIH1ba2V5b2YgVF07XG5cbmNsYXNzIFJvd0NsYXNzPFJvdz4ge1xuICBjb25zdHJ1Y3RvcihyZWFkb25seSBjbGFzc05hbWU6IHN0cmluZyxcbiAgICAgICAgICAgICAgcmVhZG9ubHkgbWF0Y2hlczogKHJvdzogUm93KSA9PiBib29sZWFuKSB7XG4gIH1cbn1cblxuY2xhc3MgUm93QXR0cmlidXRlPFJvdz4ge1xuICBjb25zdHJ1Y3RvcihyZWFkb25seSBhdHRyaWJ1dGVOYW1lOiBzdHJpbmcsXG4gICAgICAgICAgICAgIHJlYWRvbmx5IGdldFZhbHVlOiAocm93OiBSb3cpID0+IHN0cmluZykge1xuICB9XG59XG5cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0VGFibGVNb2RlbDxSb3cgZXh0ZW5kcyBvYmplY3Q+IGV4dGVuZHMgR2FyYmFnZUNvbGxlY3RvciB7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9kYXRhU291cmNlJCA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBEZWxlZ2F0aW5nTGlzdE1vZGVsPFJvdz4oKSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBfZmlsdGVyZWRSb3dzJCA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBEZWxlZ2F0aW5nTGlzdE1vZGVsPFJvdz4oKSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBfdmlzaWJsZVJvd3MkID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IERlbGVnYXRpbmdMaXN0TW9kZWw8Um93PigpKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29sdW1uTWFuYWdlciA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBDb2x1bW5NYW5hZ2VyPFJvdz4oKSk7XG5cbiAgcHJpdmF0ZSBfZWRpdG9yU2Vzc2lvbnMgPSBuZXcgTXV0YWJsZUxpc3RNb2RlbDxFZGl0U2Vzc2lvbjxSb3c+PigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9yb3dzQmVpbmdFZGl0ZWQkOiBNdXRhYmxlTGlzdE1vZGVsPFJvdz47XG4gIHByaXZhdGUgc2F2ZUNvbW1hbmRGYWN0b3J5OiBDb21tYW5kLkZhY3Rvcnk8RGlydHlUcmFja2luZ0Zvcm08Um93PiwgYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj4+O1xuICBwcml2YXRlIF9lZGl0b3JTZXNzaW9uQnlSb3dJZDogTWFwTW9kZWxDaGFpbjxhbnksIEVkaXRTZXNzaW9uPFJvdz4+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcm93Q2xhc3NOYW1lUHJlZGljYXRlczogUm93Q2xhc3M8Um93PltdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgcm93QXR0cmlidXRlR2VuZXJhdG9yczogUm93QXR0cmlidXRlPFJvdz5bXSA9IFtdO1xuXG4gIHByaXZhdGUgX2NvbHVtblRleHRQcm9wZXJ0aWVzTG9va3VwOiB7IFtjb2x1bW5OYW1lOiBzdHJpbmddOiBDb2x1bW5UZXh0UHJvcGVydGllcyB9O1xuXG4gIHJlYWRvbmx5IGVkaXRpbmckOiBCb29sZWFuVmFsdWVNb2RlbENoYWluO1xuICByZWFkb25seSBmaXJzdEVkaXRhYmxlQ29sdW1uJDogVmFsdWVNb2RlbENoYWluPENvbHVtbk1vZGVsPFJvdz4+O1xuICByZWFkb25seSBzZWxlY3Rpb25Db2x1bW5Nb2RlbDogU2VsZWN0aW9uQ29sdW1uTW9kZWw8Um93PjtcbiAgcHJpdmF0ZSByb3dTZWxlY3Rpb25EaXNhYmxlZE9uQWxsQ29sdW1ucyQ6IEJvb2xlYW5WYWx1ZU1vZGVsQ2hhaW47XG4gIHByaXZhdGUgcmVhZG9ubHkgcm93Q2xpY2tMaXN0ZW5lcnMgPSBuZXcgRXZlbnRMaXN0ZW5lckxpc3Q8KHJvdzogUm93KSA9PiB2b2lkPigpO1xuICByZWFkb25seSBmaXJzdFZpc2libGVDb2x1bW4kOiBWYWx1ZU1vZGVsPENvbHVtbk1vZGVsPFJvdz4+O1xuICByZWFkb25seSBsYXN0VmlzaWJsZUNvbHVtbiQ6IFZhbHVlTW9kZWw8Q29sdW1uTW9kZWw8Um93Pj47XG5cbiAgcHJpdmF0ZSBfY3JlYXRlRm9ybTogKHJvdzogUm93KSA9PiBEaXJ0eVRyYWNraW5nRm9ybTxSb3c+ID0gKHJvdykgPT4gbmV3IERpcnR5VHJhY2tpbmdGb3JtPFJvdz4oKTtcbiAgcmVhZG9ubHkgdGV4dFNlYXJjaFByZWRpY2F0ZSQ6IFZhbHVlTW9kZWw8VGV4dFNlYXJjaFByZWRpY2F0ZTxSb3c+PjtcbiAgcHJvdGVjdGVkIGlkZW50aXR5T2Y6IChpdGVtOiBSb3cpID0+IGFueTtcbiAgcmVhZG9ubHkgZGF0YVNvdXJjZUVtcHR5JDogVmFsdWVNb2RlbDxib29sZWFuPjtcblxuXG4gIHJlYWRvbmx5IHNlbGVjdGVkSXRlbXMkOiBMaXN0TW9kZWw8Um93PjtcbiAgcmVhZG9ubHkgbGVhZFNlbGVjdGlvbiQ6IFZhbHVlTW9kZWw8Um93PjtcbiAgcmVhZG9ubHkgaGFzU2VsZWN0aW9uJDogQm9vbGVhblZhbHVlTW9kZWxDaGFpbjtcbiAgZm9vdGVyUm93TW9kZWw6IEZvb3RlclJvd01vZGVsLkltcGw8YW55PjtcbiAgcHJpdmF0ZSByZWFkb25seSBfdmlld0RlcGVuZGVuY2llcyA9IG5ldyBTZXQ8SGFzVmFsdWU8YW55Pj4oKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBjb25zdCB7Y2hhaW59ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgIHRoaXMuX3Jvd3NCZWluZ0VkaXRlZCQgPSBuZXcgTXV0YWJsZUxpc3RNb2RlbDxSb3c+KFtdLCB7XG4gICAgICBpZGVudGlmaWVkV2l0aDogcm93ID0+IHRoaXMuaWRlbnRpdHlPZihyb3cpXG4gICAgfSk7XG4gICAgdGhpcy5fZWRpdG9yU2Vzc2lvbkJ5Um93SWQgPSBjaGFpbih0aGlzLl9lZGl0b3JTZXNzaW9ucykuaW5kZXhCeShcInJvd0lkXCIpO1xuICAgIHRoaXMuZWRpdGluZyQgPSBjaGFpbih0aGlzLl9lZGl0b3JTZXNzaW9ucykuY291bnQoKS5pc0dyZWF0ZXJUaGFuKDApO1xuXG4gICAgdGhpcy50ZXh0U2VhcmNoUHJlZGljYXRlJCA9IGNoYWluKHRoaXMudmlzaWJsZUNvbHVtbnMkKS5yZWR1Y2VBbGwoY29sdW1ucyA9PiB7XG4gICAgICByZXR1cm4gKHJvdzogUm93LCByZWdleDogUmVnRXhwKSA9PiB7XG4gICAgICAgIHJldHVybiAoIXJlZ2V4IHx8ICEhY29sdW1ucy5maW5kKGMgPT4gcmVnZXgudGVzdChjLmdldFNlYXJjaFRleHRGb3Iocm93KSkpKTtcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgdGhpcy5zZWxlY3Rpb25Db2x1bW5Nb2RlbCA9IG5ldyBTZWxlY3Rpb25Db2x1bW5Nb2RlbDxSb3c+KFwic2VsZWN0aW9uLWNvbHVtblwiLCB0aGlzLmNvbHVtbk1hbmFnZXIsICgpID0+IHRoaXMuZ2V0Q29sdW1uVGV4dFByb3BlcnRpZXMoXCJzZWxlY3Rpb24tY29sdW1uXCIpKTtcbiAgICB0aGlzLmFkZENvbHVtbih0aGlzLnNlbGVjdGlvbkNvbHVtbk1vZGVsLCB7YmVmb3JlOiBudWxsfSk7IC8vIGZpcnN0IGNvbHVtblxuICAgIHRoaXMuYWRkUm93Q2xhc3MoXCJhdXAtcm93LXNlbGVjdGVkXCIsIHJvdyA9PiB0aGlzLnNlbGVjdGlvbkNvbHVtbk1vZGVsLmlzU2VsZWN0ZWQocm93KSk7XG5cbiAgICB0aGlzLmZpcnN0RWRpdGFibGVDb2x1bW4kID0gY2hhaW4odGhpcy5jb2x1bW5zJCkuc2VsZWN0KGMgPT4gYy5oYXNFZGl0b3JQb3J0YWwoKSkuZmlyc3QoKTtcbiAgICB0aGlzLmZpcnN0VmlzaWJsZUNvbHVtbiQgPSBjaGFpbih0aGlzLnZpc2libGVDb2x1bW5zJCkuZmlyc3QoKTtcbiAgICB0aGlzLmxhc3RWaXNpYmxlQ29sdW1uJCA9IGNoYWluKHRoaXMudmlzaWJsZUNvbHVtbnMkKS5sYXN0KCk7XG5cbiAgICB0aGlzLnJvd1NlbGVjdGlvbkRpc2FibGVkT25BbGxDb2x1bW5zJCA9IGNoYWluKHRoaXMuY29sdW1uTWFuYWdlci52aXNpYmxlQ29sdW1ucyQpLnNlbGVjdChjb2x1bW4gPT4gY29sdW1uLmlzUm93U2VsZWN0aW9uRW5hYmxlZCgpKS5jb3VudCgpLmVxdWFscygwKTtcblxuICAgIHRoaXMuZGF0YVNvdXJjZUVtcHR5JCA9IGNoYWluKHRoaXMuZGF0YVNvdXJjZSQpLmlzRW1wdHkoKTtcblxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyQgPSB0aGlzLnNlbGVjdGlvbkNvbHVtbk1vZGVsLnNlbGVjdGlvbk1vZGVsLnNlbGVjdGVkSXRlbXMkO1xuICAgIHRoaXMubGVhZFNlbGVjdGlvbiQgPSB0aGlzLnNlbGVjdGlvbkNvbHVtbk1vZGVsLnNlbGVjdGlvbk1vZGVsLmxlYWRTZWxlY3Rpb24kO1xuICAgIHRoaXMuaGFzU2VsZWN0aW9uJCA9IGNoYWluKHRoaXMuc2VsZWN0ZWRJdGVtcyQpLmlzTm90RW1wdHkoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXREYXRhU291cmNlKGRhdGFTb3VyY2UkKSB7XG4gICAgdGhpcy5fZGF0YVNvdXJjZSQuc2V0RGVsZWdhdGUoZGF0YVNvdXJjZSQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRvZG86IG1ha2UgdGhpcyBmb3JjZSBvbmUgdGFibGUgYXQgYSB0aW1lXG4gICAqIEBwYXJhbSBpbmplY3RvclxuICAgKiBAcGFyYW0gaWRlbnRpdHlPZlxuICAgKiBAcGFyYW0gcmVzdFxuICAgKi9cbiAgaW5pdGlhbGlzZShpbmplY3RvcjogSW5qZWN0b3IsIGlkZW50aXR5T2Y6IChpdGVtOiBSb3cpID0+IGFueSkge1xuICAgIC8vIG5vdCBzdXJlIGlmIEkgc2hvdWxkIGRlZmluZSB0aGVzZSBhdCB0aGUgbW9kdWxlIGxldmVsIG9yIG5vdC4uLlxuICAgIGNvbnN0IGN1c3RvbUluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7cHJvdmlkZTogRGVmYXVsdFZhbHVlRm9ybWF0dGVyfSxcbiAgICAgICAge3Byb3ZpZGU6IERlZmF1bHRBcnJheUZvcm1hdHRlcn1cbiAgICAgIF0sXG4gICAgICBwYXJlbnQ6IGluamVjdG9yXG4gICAgfSk7XG4gICAgdGhpcy5jb2x1bW5zJC52YWx1ZS5mb3JFYWNoKGMgPT4gYy5pbml0aWFsaXNlKGN1c3RvbUluamVjdG9yKSk7XG4gICAgdGhpcy5pZGVudGl0eU9mID0gaWRlbnRpdHlPZjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFkZGl0aW9uYWwgbW9kZWxzIHRoYXQgd2lsbCB0cmlnZ2VyIGEgdGFibGUgcmVwYWludC4gIFRoaXMgaXMgcmVxdWlyZWQgaWYgdGhlIHRhYmxlXG4gICAqIG5lZWRzIHRvIGJlIHJlZHJhd24gb3V0c2lkZSBvZiBjaGFuZ2VzIHRvIHRoZSByb3dzIG9mIGZpbHRlcnMuICBpLmUuIHNvbWUgZXRlcm5hbCBzdGF0ZSBpcyB1c2VkXG4gICAqIHRvIGFzc2lnbiByb3cgY2xhc3NlcyBldGMuXG4gICAqXG4gICAqIE5vdGU6IFRoaXMgZnVuY3Rpb24gbXVzdCBiZSBjYWxsZWQgYmVmb3JlIHRoZSB0YWJsZSBpcyBib3VuZCB0byB0aGUgbW9kZWwuXG4gICAqIEBwYXJhbSBoYXNWYWx1ZXNcbiAgICovXG4gIHZpZXdTdGF0ZURlcGVuZHNPbiguLi5oYXNWYWx1ZXM6IFJlYWRvbmx5QXJyYXk8SGFzVmFsdWU8YW55Pj4pIHtcbiAgICBoYXNWYWx1ZXMuZm9yRWFjaChpdCA9PiB0aGlzLl92aWV3RGVwZW5kZW5jaWVzLmFkZChpdCkpXG4gIH1cblxuICBnZXQgdmlld1N0YXRlRGVwZW5kZW5jaWVzKCk6IFJlYWRvbmx5QXJyYXk8SGFzVmFsdWU8YW55Pj4ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuX3ZpZXdEZXBlbmRlbmNpZXMudmFsdWVzKCkpO1xuICB9XG5cbiAgZ2V0IGRhdGFTb3VyY2UkKCkge1xuICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlJC5yZWFkb25seSQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgcm93cyB0aGF0IGFyZSB2aXNpYmxlIGFmdGVyIGFueSBmaWx0ZXJzIGFyZSBhcHBsaWVkLiAgSWYgdGhlcmUgYXJlXG4gICAqIG5vIGZpbHRlcnMgdGhlbiB0aGlzIHdpbGwgYmUgdGhlIHNhbWUgYXMgdGhlIHJvb3QgZGF0YXNldC5cbiAgICovXG4gIGdldCBmaWx0ZXJlZFJvd3MkKCk6IExpc3RNb2RlbDxSb3c+IHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyZWRSb3dzJC5yZWFkb25seSQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgcm93cyBhcmUgY3VycmVudGx5IHZpc2libGUgdG8gdGhlIHVzZXIuICBJLmUuIHRoZSBjdXJyZW50IHBhZ2UgaW4gYSBwYWdlZCB0YWJsZSBvciB0aGVcbiAgICogZXhwYW5kZWQgcm93cyBpbiBhIHRyZWUgdGFibGUuXG4gICAqL1xuICBnZXQgdmlzaWJsZVJvd3MkKCk6IExpc3RNb2RlbDxSb3c+IHtcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZVJvd3MkLnJlYWRvbmx5JDtcbiAgfVxuXG4gIGdldCByb3dzQmVpbmdFZGl0ZWQkKCk6IExpc3RNb2RlbDxSb3c+IHtcbiAgICByZXR1cm4gdGhpcy5fcm93c0JlaW5nRWRpdGVkJC5yZWFkb25seSQ7XG4gIH1cblxuICBzdGFydEVkaXRTZXNzaW9uKHJvdzogUm93KTogRWRpdFNlc3Npb248Um93PiB7XG4gICAgY29uc3Qgcm93SWQgPSB0aGlzLmlkZW50aXR5T2Yocm93KTtcbiAgICBpZiAodGhpcy5fcm93c0JlaW5nRWRpdGVkJC5xdWVyeSgpLmluZGV4T2Yocm93KSA+IC0xKSB7XG4gICAgICByZXR1cm4gbGFuZy5pbGxlZ2FsU3RhdGUoYFJvdyB3aXRoIGlkPSR7cm93SWR9IGFscmVhZHkgYmVpbmcgZWRpdGVkYCk7XG4gICAgfVxuXG4gICAgLy8gdG9kbzogcGFzcyB0aGUgZmFjdG9yaWVzIHRvIHRoZSBlZGl0IHNlc3Npb24gc28gd2UgY2FuIG1ha2UgdGhlIHdob2xlIGxvdCBwbHVnZ2FibGU/XG4gICAgY29uc3QgZm9ybSA9IHRoaXMuX2NyZWF0ZUZvcm0ocm93KTtcbiAgICBjb25zdCBzYXZlQ29tbWFuZCA9IHRoaXMuc2F2ZUNvbW1hbmRGYWN0b3J5LmNyZWF0ZShmb3JtLCB7ZGlzcG9zZWRXaXRoOiB0aGlzfSk7XG4gICAgY29uc3QgZWRpdFNlc3Npb24gPSBuZXcgRWRpdFNlc3Npb248Um93Pihyb3dJZCwgcm93LCBmb3JtLCBzYXZlQ29tbWFuZCk7XG4gICAgY29uc3Qge3doZW59ID0gRHNsLmRpc3Bvc2VXaXRoKGVkaXRTZXNzaW9uKTtcbiAgICB3aGVuKGVkaXRTZXNzaW9uLmxpdmVSb3dWYWx1ZSQpLmNoYW5nZXMoKGVkaXRlZFZhbHVlKSA9PiB7XG4gICAgICB0aGlzLl9yb3dzQmVpbmdFZGl0ZWQkLnJlcGxhY2VPclB1c2goZWRpdGVkVmFsdWUpO1xuICAgIH0sIHtpbml0aWFsVmFsdWU6IFwidHJpZ2dlckNoYW5nZVVubGVzc05pbFwifSk7XG5cbiAgICB0aGlzLl9lZGl0b3JTZXNzaW9ucy5wdXNoKGVkaXRTZXNzaW9uKTtcbiAgICBlZGl0U2Vzc2lvbi5vbkRpc3Bvc2UoKCkgPT4ge1xuICAgICAgdGhpcy5fcm93c0JlaW5nRWRpdGVkJC5yZW1vdmUoZWRpdFNlc3Npb24ubGl2ZVJvd1ZhbHVlJC52YWx1ZSk7XG4gICAgICB0aGlzLl9lZGl0b3JTZXNzaW9ucy5yZW1vdmUoZWRpdFNlc3Npb24pO1xuICAgIH0pO1xuICAgIHJldHVybiBlZGl0U2Vzc2lvbjtcbiAgfVxuXG4gIGdldEVkaXRTZXNzaW9uRm9yKHJvdzogUm93KTogRWRpdFNlc3Npb248Um93PiB7XG4gICAgcmV0dXJuIHRoaXMuX2VkaXRvclNlc3Npb25CeVJvd0lkLmdldCh0aGlzLmlkZW50aXR5T2Yocm93KSk7XG4gIH1cblxuICBjYW5jZWxBbGxFZGl0b3JTZXNzaW9ucygpIHtcbiAgICB0aGlzLl9lZGl0b3JTZXNzaW9ucy5ydW5JblRyYW5zYWN0aW9uKChkcmFmdCkgPT4ge1xuICAgICAgdGhpcy5fcm93c0JlaW5nRWRpdGVkJC5ydW5JblRyYW5zYWN0aW9uKCgpID0+IHtcbiAgICAgICAgZHJhZnQudmFsdWUuZm9yRWFjaChzZXNzaW9uID0+IHNlc3Npb24uZGlzcG9zZSgpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cblxuICBnZXQgY29sdW1ucyQoKTogTGlzdE1vZGVsPENvbHVtbk1vZGVsPFJvdz4+IHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5NYW5hZ2VyLmFsbENvbHVtbnMkO1xuICB9XG5cbiAgZ2V0IHZpc2libGVDb2x1bW5zJCgpOiBMaXN0TW9kZWw8Q29sdW1uTW9kZWw8Um93Pj4ge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbk1hbmFnZXIudmlzaWJsZUNvbHVtbnMkO1xuICB9XG5cbiAgcGx1Y2s8UCBleHRlbmRzIFR5cGVzLlZhbHVlUHJvcGVydGllc09mPFJvdz4+KHByb3BlcnR5OiBQLCBvcHRpb25zPzoge1xuICAgIGNvbHVtbklkOiBzdHJpbmdcbiAgfSk6IFByb3BlcnR5Q29sdW1uTW9kZWw8Um93LCBQPiB7XG4gICAgY29uc3QgY29sdW1uSWQgPSBvcHRpb25zPy5jb2x1bW5JZCB8fCBwcm9wZXJ0eS50b1N0cmluZygpO1xuICAgIHJldHVybiB0aGlzLmFkZENvbHVtbihuZXcgUHJvcGVydHlDb2x1bW5Nb2RlbDxSb3csIFA+KGNvbHVtbklkLCB0aGlzLmNvbHVtbk1hbmFnZXIsIHByb3BlcnR5LCAoKSA9PiB0aGlzLmdldENvbHVtblRleHRQcm9wZXJ0aWVzKGNvbHVtbklkKSkpO1xuICB9XG5cbiAgcGx1Y2tMaXN0PFAgZXh0ZW5kcyBUeXBlcy5BcnJheVByb3BlcnRpZXNPZjxSb3c+Pihwcm9wZXJ0eTogUCwgb3B0aW9ucz86IHtcbiAgICBjb2x1bW5JZDogc3RyaW5nXG4gIH0pOiBMaXN0UHJvcGVydHlDb2x1bW5Nb2RlbDxSb3csIFA+IHtcbiAgICBjb25zdCBjb2x1bW5JZCA9IG9wdGlvbnM/LmNvbHVtbklkIHx8IHByb3BlcnR5LnRvU3RyaW5nKCk7XG4gICAgcmV0dXJuIHRoaXMuYWRkQ29sdW1uKG5ldyBMaXN0UHJvcGVydHlDb2x1bW5Nb2RlbDxSb3csIFA+KGNvbHVtbklkLCB0aGlzLmNvbHVtbk1hbmFnZXIsIHByb3BlcnR5LCAoKSA9PiB0aGlzLmdldENvbHVtblRleHRQcm9wZXJ0aWVzKGNvbHVtbklkKSkpO1xuICB9XG5cbiAgdXNlU2VsZWN0aW9uTW9kZWwoc2VsZWN0aW9uTW9kZWw/OiBTZWxlY3Rpb25Nb2RlbDxSb3c+KSB7XG4gICAgdGhpcy5zZWxlY3Rpb25Db2x1bW5Nb2RlbC51c2VTZWxlY3Rpb25Nb2RlbChzZWxlY3Rpb25Nb2RlbCk7XG4gIH1cblxuICBhZGRFZGl0Q29udHJvbHMoc2F2ZUNvbW1hbmRGYWN0b3J5OiBDb21tYW5kLkZhY3Rvcnk8RGlydHlUcmFja2luZ0Zvcm08Um93PiwgYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj4+LCBmb3JtRmFjdG9yeT86IChyb3c6IFJvdykgPT4gRGlydHlUcmFja2luZ0Zvcm08Um93Pik6IEVkaXRvckNvbnRyb2xDb2x1bW5Nb2RlbDxSb3c+IHtcbiAgICB0aGlzLnNhdmVDb21tYW5kRmFjdG9yeSA9IHNhdmVDb21tYW5kRmFjdG9yeTtcbiAgICBpZiAoaXNGdW5jdGlvbihmb3JtRmFjdG9yeSkpIHtcbiAgICAgIHRoaXMuX2NyZWF0ZUZvcm0gPSBmb3JtRmFjdG9yeTtcbiAgICB9XG4gICAgY29uc3QgY29sdW1uSWQgPSBcImVkaXRDb250cm9sc1wiO1xuICAgIHJldHVybiB0aGlzLmFkZENvbHVtbihuZXcgRWRpdG9yQ29udHJvbENvbHVtbk1vZGVsPFJvdz4oY29sdW1uSWQsIHRoaXMuY29sdW1uTWFuYWdlciwgc2F2ZUNvbW1hbmRGYWN0b3J5LCAoKSA9PiB0aGlzLmdldENvbHVtblRleHRQcm9wZXJ0aWVzKGNvbHVtbklkKSkpO1xuICB9XG5cbiAgYWRkQ3VzdG9tQ29sdW1uPFY+KGNvbHVtbklkOiBzdHJpbmcsIGRhdGFBY2Nlc3NvcjogKHJvdzogUm93KSA9PiBWKTogQ3VzdG9tVmFsdWVDb2x1bW5Nb2RlbDxSb3csIFY+IHtcbiAgICByZXR1cm4gdGhpcy5hZGRDb2x1bW4obmV3IEN1c3RvbVZhbHVlQ29sdW1uTW9kZWw8Um93LCBWPihjb2x1bW5JZCwgdGhpcy5jb2x1bW5NYW5hZ2VyLCAoKSA9PiB0aGlzLmdldENvbHVtblRleHRQcm9wZXJ0aWVzKGNvbHVtbklkKSwgZGF0YUFjY2Vzc29yKSk7XG4gIH1cblxuICBhZGRDb21wb25lbnRDb2x1bW48QyBleHRlbmRzIENlbGxSZW5kZXJlcjxQYXJ0aWFsPFJvdz4+Pihjb2x1bW5JZDogc3RyaW5nLCBjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8Qz4sIG9uSW5pdD86IE9uQ29tcG9uZW50SW5pdDxDPik6IEN1c3RvbVZhbHVlQ29sdW1uTW9kZWw8Um93LCBSb3c+XG4gIGFkZENvbXBvbmVudENvbHVtbjxDIGV4dGVuZHMgQ2VsbFJlbmRlcmVyPFBhcnRpYWw8Um93Pj4+KGNvbHVtbklkOiBzdHJpbmcsIGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxDPiwgb3B0aW9ucz86IENlbGxSZW5kZXJlck9wdGlvbnM8Um93LCBDPik6IEN1c3RvbVZhbHVlQ29sdW1uTW9kZWw8Um93LCBSb3c+XG4gIGFkZENvbXBvbmVudENvbHVtbjxDIGV4dGVuZHMgQ2VsbFJlbmRlcmVyPFBhcnRpYWw8Um93Pj4+KGNvbHVtbklkOiBzdHJpbmcsIGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxDPiwgb25Db21wb25lbnRJbml0T3JPcHRpb25zPzogT25Db21wb25lbnRJbml0PEM+IHwgQ2VsbFJlbmRlcmVyT3B0aW9uczxSb3csIEM+KTogQ3VzdG9tVmFsdWVDb2x1bW5Nb2RlbDxSb3csIFJvdz4ge1xuICAgIHJldHVybiB0aGlzLmFkZENvbHVtbihuZXcgQ3VzdG9tVmFsdWVDb2x1bW5Nb2RlbDxSb3csIFJvdz4oY29sdW1uSWQsIHRoaXMuY29sdW1uTWFuYWdlciwgKCkgPT4gdGhpcy5nZXRDb2x1bW5UZXh0UHJvcGVydGllcyhjb2x1bW5JZCksIHJvdyA9PiByb3cpKS5jZWxsUmVuZGVyZXIoY29tcG9uZW50LCBvbkNvbXBvbmVudEluaXRPck9wdGlvbnMpO1xuICB9XG5cbiAgYWRkTW9yZU1lbnU8QyBleHRlbmRzIFRhYmxlTW9yZU1lbnVQb3B1cENvbXBvbmVudDxSb3c+Pihjb21wb25lbnRDbGFzczogQ29uc3RydWN0YWJsZTxDPiwgaW5pdGlhbGlzZUNhbGxiYWNrPzogKGNvbXBvbmVudDogQykgPT4gdm9pZCkge1xuICAgIHJldHVybiB0aGlzLmFkZENvbXBvbmVudENvbHVtbihcIm1vcmUtbWVudVwiLCBUYWJsZU1vcmVNZW51Q29tcG9uZW50LCAoY29tcG9uZW50OiBUYWJsZU1vcmVNZW51Q29tcG9uZW50PFJvdz4pID0+IHtcbiAgICAgIGNvbXBvbmVudC5jb25maWd1cmVQb3B1cENvbXBvbmVudFR5cGUoY29tcG9uZW50Q2xhc3MsIGluaXRpYWxpc2VDYWxsYmFjayk7XG4gICAgfSkuY29sdW1uVGV4dFByb3BlcnRpZXMoe1xuICAgICAgaGVhZGVyVGV4dCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gXCJcIlxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgYWRkRm9vdGVyUm93PEM+KGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxDPiwgaW5pdGlhbGlzZUNhbGxiYWNrPzogKGNvbXBvbmVudDogQykgPT4gdm9pZCk6IEZvb3RlclJvd01vZGVsPEM+IHtcbiAgICBhc3NlcnQuaXNOaWwodGhpcy5mb290ZXJSb3dNb2RlbCk7XG4gICAgdGhpcy5mb290ZXJSb3dNb2RlbCA9IG5ldyBGb290ZXJSb3dNb2RlbC5JbXBsKGNvbXBvbmVudCwgaW5pdGlhbGlzZUNhbGxiYWNrKTtcbiAgICByZXR1cm4gdGhpcy5mb290ZXJSb3dNb2RlbDtcbiAgfVxuXG4gIGFkZFRlbXBsYXRlQ29sdW1uPFY+KGNvbHVtbklkOiBzdHJpbmcpOiBDdXN0b21UZW1wbGF0ZUNvbHVtbk1vZGVsPFJvdz4ge1xuICAgIHJldHVybiB0aGlzLmFkZENvbHVtbihuZXcgQ3VzdG9tVGVtcGxhdGVDb2x1bW5Nb2RlbDxSb3c+KGNvbHVtbklkLCB0aGlzLmNvbHVtbk1hbmFnZXIsICgpID0+IHRoaXMuZ2V0Q29sdW1uVGV4dFByb3BlcnRpZXMoY29sdW1uSWQpKSk7XG4gIH1cblxuICBhZGRSb3dDbGFzcyhjbGFzc05hbWU6IHN0cmluZywgcHJlZGljYXRlOiAocm93OiBSb3cpID0+IGJvb2xlYW4sIG9wdGlvbnM/OiBEZXBlbmRzT25PcHRpb25zKSB7XG4gICAgdGhpcy5yb3dDbGFzc05hbWVQcmVkaWNhdGVzLnB1c2gobmV3IFJvd0NsYXNzPFJvdz4oY2xhc3NOYW1lLCBwcmVkaWNhdGUpKTtcbiAgICBpZiAob3B0aW9ucykge1xuICAgICAgdGhpcy52aWV3U3RhdGVEZXBlbmRzT24oLi4uRGVwZW5kc09uT3B0aW9ucy5leHRyYWN0KG9wdGlvbnMpKVxuICAgIH1cbiAgfVxuXG4gIGFkZFJvd0F0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lOiBzdHJpbmcsIGdldFZhbHVlOiAocm93OiBSb3cpID0+IHN0cmluZykge1xuICAgIHRoaXMucm93QXR0cmlidXRlR2VuZXJhdG9ycy5wdXNoKG5ldyBSb3dBdHRyaWJ1dGU8Um93PihhdHRyaWJ1dGVOYW1lLCBnZXRWYWx1ZSkpO1xuICB9XG5cbiAgZ2V0Um93Q2xhc3Nlcyhyb3c6IFJvdyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBjbGFzc05hbWVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIHRoaXMucm93Q2xhc3NOYW1lUHJlZGljYXRlcy5mb3JFYWNoKGkgPT4ge1xuICAgICAgaWYgKGkubWF0Y2hlcyhyb3cpKSB7XG4gICAgICAgIGNsYXNzTmFtZXMucHVzaChpLmNsYXNzTmFtZSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGNsYXNzTmFtZXM7XG4gIH1cblxuICBnZXRSb3dBdHRyaWJ1dGVzKHJvdzogUm93KTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMucm93QXR0cmlidXRlR2VuZXJhdG9ycy5yZWR1Y2UoKHJlc3VsdCwgZ2VuZXJhdG9yKSA9PiB7XG4gICAgICByZXR1cm4gey4uLnJlc3VsdCwgW2dlbmVyYXRvci5hdHRyaWJ1dGVOYW1lXTogZ2VuZXJhdG9yLmdldFZhbHVlKHJvdyl9XG4gICAgfSwge30pO1xuICB9XG5cblxuICBwcm90ZWN0ZWQgYWRkQ29sdW1uPEMgZXh0ZW5kcyBDb2x1bW5Nb2RlbDxSb3c+Pihjb2x1bW46IEMsIHBvc2l0aW9uPzogQ29sdW1uT3JkZXJNYW5hZ2VyLlBvc2l0aW9uKTogQyB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1uTWFuYWdlci5hZGRDb2x1bW4oY29sdW1uLCBwb3NpdGlvbik7XG4gIH1cblxuICBjb2x1bW5UZXh0UHJvcGVydGllcyhjb2x1bW5UZXh0UHJvcGVydGllczogeyBbY29sdW1uTmFtZTogc3RyaW5nXTogQ29sdW1uVGV4dFByb3BlcnRpZXMgfSkge1xuICAgIHRoaXMuX2NvbHVtblRleHRQcm9wZXJ0aWVzTG9va3VwID0gY29sdW1uVGV4dFByb3BlcnRpZXM7XG4gIH1cblxuICBnZXRDb2x1bW5UZXh0UHJvcGVydGllcyhjb2x1bW5JZDogc3RyaW5nKTogQ29sdW1uVGV4dFByb3BlcnRpZXMge1xuICAgIHJldHVybiB0aGlzLl9jb2x1bW5UZXh0UHJvcGVydGllc0xvb2t1cCA/IHRoaXMuX2NvbHVtblRleHRQcm9wZXJ0aWVzTG9va3VwW2NvbHVtbklkXSA6IHVuZGVmaW5lZDtcbiAgfVxuXG5cbiAgaXNSb3dTZWxlY3Rpb25FbmFibGVkRm9yKGNvbHVtbjogQ29sdW1uTW9kZWw8Um93Pik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzUm93U2VsZWN0aW9uRW5hYmxlZCgpICYmIGNvbHVtbi5pc1Jvd1NlbGVjdGlvbkVuYWJsZWQoKTtcbiAgfVxuXG4gIGlzUm93U2VsZWN0aW9uRW5hYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5oYXNVc2VyU2VsZWN0aW9uTW9kZWxUaGF0SXNFbmFibGVkKCkgJiYgIXRoaXMucm93U2VsZWN0aW9uRGlzYWJsZWRPbkFsbENvbHVtbnMkLnZhbHVlO1xuICB9XG5cbiAgaGFzVXNlclNlbGVjdGlvbk1vZGVsVGhhdElzRW5hYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb25Db2x1bW5Nb2RlbC5zZWxlY3Rpb25Nb2RlbC5lbmFibGVkJC52YWx1ZTtcbiAgfVxuXG4gIGdldFNlbGVjdGlvbk1vZGVsKCk6IFNlbGVjdGlvbk1vZGVsPFJvdz4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbkNvbHVtbk1vZGVsLnNlbGVjdGlvbk1vZGVsO1xuICB9XG5cbiAgaXNIb3ZlckVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNSb3dTZWxlY3Rpb25FbmFibGVkKCkgfHwgdGhpcy5yb3dDbGlja0xpc3RlbmVycy5saXN0ZW5lckNvdW50ID4gMDtcbiAgfVxuXG4gIGlzQ3Vyc29yRW5hYmxlZChjb2x1bW46IENvbHVtbk1vZGVsPFJvdz4pIHtcbiAgICByZXR1cm4gdGhpcy5pc1Jvd1NlbGVjdGlvbkVuYWJsZWRGb3IoY29sdW1uKSB8fCB0aGlzLnJvd0NsaWNrTGlzdGVuZXJzLmxpc3RlbmVyQ291bnQgPiAwO1xuICB9XG5cbiAgc2VsZWN0Um93KHJvdzogUm93KSB7XG4gICAgdGhpcy5zZWxlY3Rpb25Db2x1bW5Nb2RlbD8uc2VsZWN0Um93KHJvdyk7XG4gIH1cblxuICBvblJvd0NsaWNrZWQoY2FsbGJhY2s6IChyb3c6IFJvdykgPT4gdm9pZCk6IERpc3Bvc2FibGUge1xuICAgIHJldHVybiB0aGlzLnJvd0NsaWNrTGlzdGVuZXJzLmFkZChjYWxsYmFjayk7XG4gIH1cblxuICBfbm90aWZ5Q2VsbENsaWNrZWQoY29sdW1uTW9kZWw6IENvbHVtbk1vZGVsPFJvdz4sIHJvdzogUm93KSB7XG4gICAgaWYgKHRoaXMuaXNSb3dTZWxlY3Rpb25FbmFibGVkRm9yKGNvbHVtbk1vZGVsKSkge1xuICAgICAgdGhpcy5zZWxlY3RSb3cocm93KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gY29uc29sZS5sb2coe1xuICAgICAgLy8gICBoYXNFbmFibGVkVXNlclNlbGVjdGlvbk1vZGVsOiB0aGlzLmhhc1VzZXJTZWxlY3Rpb25Nb2RlbFRoYXRJc0VuYWJsZWQoKSxcbiAgICAgIC8vICAgYWxsU2VsZWN0aW9uRGlzYWJsZWQ6IHRoaXMucm93U2VsZWN0aW9uRGlzYWJsZWRPbkFsbENvbHVtbnMkLnZhbHVlLFxuICAgICAgLy8gICByb3dTZWxlY3Rpb25FbmFibGVkOiB0aGlzLmlzUm93U2VsZWN0aW9uRW5hYmxlZCgpLFxuICAgICAgLy8gICByb3dTZWxlY3Rpb25FbmFibGVkRm9yQ29sdW1uOiBjb2x1bW5Nb2RlbC5pc1Jvd1NlbGVjdGlvbkVuYWJsZWQoKVxuICAgICAgLy8gfSlcbiAgICB9XG5cbiAgICB0aGlzLnJvd0NsaWNrTGlzdGVuZXJzLmZpcmUobCA9PiBsKHJvdykpO1xuICB9XG5cbn1cblxuUHJveHlSZWdpc3RyeS5yZWdpc3Rlck9uZVRpbWVCaW5kaW5nKEFic3RyYWN0VGFibGVNb2RlbClcbiJdfQ==
|
|
@@ -132,12 +132,12 @@ export class ColumnModel extends GarbageCollector {
|
|
|
132
132
|
return !!this._cellEditorPortalRef;
|
|
133
133
|
}
|
|
134
134
|
attachHeaderCell(host) {
|
|
135
|
-
this._columnHeaderPortalRef.initialiseHost(host
|
|
135
|
+
this._columnHeaderPortalRef.initialiseHost(host);
|
|
136
136
|
}
|
|
137
137
|
attachCell(host) {
|
|
138
|
-
this._cellRendererPortalRef.initialiseHost(host
|
|
138
|
+
this._cellRendererPortalRef.initialiseHost(host);
|
|
139
139
|
if (this.hasEditorPortal()) {
|
|
140
|
-
this._cellEditorPortalRef.initialiseHost(host
|
|
140
|
+
this._cellEditorPortalRef.initialiseHost(host);
|
|
141
141
|
}
|
|
142
142
|
}
|
|
143
143
|
onHeaderAttached(host, ref) {
|
|
@@ -198,4 +198,4 @@ __decorate([
|
|
|
198
198
|
(function (ColumnModel) {
|
|
199
199
|
ColumnModel.CELL_RENDERER_COMPONENT_ROW_CACHE = Symbol('aup-cell-renderer:row-data-cache');
|
|
200
200
|
})(ColumnModel || (ColumnModel = {}));
|
|
201
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLW1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvY29sdW1uL2NvbHVtbi1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUFDLFlBQVksRUFBVyxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQVUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQzNHLE9BQU8sRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRCxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEVBQXNCLG1CQUFtQixFQUF3QixNQUFNLDZCQUE2QixDQUFDO0FBQzVHLE9BQU8sRUFDTCxrQ0FBa0MsRUFDbkMsTUFBTSxpRkFBaUYsQ0FBQztBQVF6RixNQUFNLElBQUksR0FBRyxHQUFHLEVBQUU7SUFDaEIsT0FBTztBQUNULENBQUMsQ0FBQztBQW9CRixNQUFNLHVCQUE2QixTQUFRLHlCQUF5QixDQUFDLFFBQWE7SUFDeEUsU0FBUyxDQUFpQztJQUMxQyxJQUFJLEdBQXFCLFNBQVMsQ0FBQyxRQUFRLENBQUM7SUFFcEQsVUFBVSxDQUFDLFFBQWtCO1FBQzNCLElBQUksSUFBSSxDQUFDLFNBQVMsWUFBWSx5QkFBeUIsQ0FBQyxRQUFRLEVBQUU7WUFDaEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDckM7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQVE7UUFDYixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxD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QUFJLENBQUMsWUFBWSxDQUFDLCtDQUErQyxHQUFHLEVBQUUsQ0FBQyxDQUFBO1NBQ3hFO0lBQ0gsQ0FBQztJQUNTLDBCQUEwQixDQUFDLEdBQStCO1FBQ2xFLElBQUksR0FBRyxZQUFZLFlBQVksRUFBRTtZQUMvQixPQUFPLEdBQUcsQ0FBQyxRQUFRLENBQUM7U0FDckI7YUFBTTtZQUNMLE9BQU8sR0FBRyxDQUFDO1NBQ1o7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLFFBQWtCO1FBQzNCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0MsQ0FBQztDQUNGO0FBMUpDO0lBREMsT0FBTyxFQUFFOzs7O2dEQUdUO0FBd0JEO0lBREMsT0FBTyxFQUFFOzs7OzBEQUdUO0FBZ0lILFdBQWlCLFdBQVc7SUFDYiw2Q0FBaUMsR0FBRyxNQUFNLENBQUMsa0NBQWtDLENBQUMsQ0FBQztBQUU5RixDQUFDLEVBSGdCLFdBQVcsS0FBWCxXQUFXLFFBRzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnRUeXBlfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcbmltcG9ydCB7Q2RrUG9ydGFsT3V0bGV0QXR0YWNoZWRSZWZ9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XG5pbXBvcnQge0NvbXBvbmVudFJlZiwgSW5qZWN0b3J9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge0NvbW1hbmQsIERlbGVnYXRpbmdWYWx1ZU1vZGVsLCBEc2wsIEZ1bmN0aW9ucywgR2FyYmFnZUNvbGxlY3RvciwgVmFsdWVNb2RlbH0gZnJvbSBcIkBjb29sb24vcGVjdGluXCI7XG5pbXBvcnQge2Fzc2VydCwgbGFuZywgU3RyaW5neX0gZnJvbSBcIkBjb29sb24vdHlwZXNjcmlwdC11dGlsaXRpZXNcIjtcbmltcG9ydCB7TWVtb2l6ZX0gZnJvbSBcImZhc3QtdHlwZXNjcmlwdC1tZW1vaXplXCI7XG5pbXBvcnQge0VkaXRTZXNzaW9ufSBmcm9tIFwiLi4vZWRpdG9yL2VkaXQtc2Vzc2lvblwiO1xuaW1wb3J0IHtDb2x1bW5UZXh0U2VhcmNoRm9ybWF0dGVyfSBmcm9tIFwiLi4vZmlsdGVyL2NvbHVtbi10ZXh0LXNlYXJjaC1mb3JtYXR0ZXJcIjtcbmltcG9ydCB7Q2VsbEVkaXRvclBvcnRhbFJlZiwgQ2VsbEhlYWRlclBvcnRhbFJlZiwgQ2VsbFJlbmRlcmVyUG9ydGFsUmVmfSBmcm9tIFwiLi4vcmVuZGVyZXIvY2VsbC1wb3J0YWwtcmVmXCI7XG5pbXBvcnQge1xuICBEZWZhdWx0SGVhZGVyQ2VsbFJlbmRlcmVyQ29tcG9uZW50XG59IGZyb20gXCIuLi9yZW5kZXJlci9kZWZhdWx0LWhlYWRlci1jZWxsLXJlbmRlcmVyL2RlZmF1bHQtaGVhZGVyLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50XCI7XG5pbXBvcnQge1RhYmxlQ2VsbENvbXBvbmVudH0gZnJvbSBcIi4uL3JlbmRlcmVyL3RhYmxlLWNlbGwvdGFibGUtY2VsbC5jb21wb25lbnRcIjtcbmltcG9ydCB7VGFibGVIZWFkZXJDZWxsQ29tcG9uZW50fSBmcm9tIFwiLi4vcmVuZGVyZXIvdGFibGUtaGVhZGVyLWNlbGwvdGFibGUtaGVhZGVyLWNlbGwuY29tcG9uZW50XCI7XG5pbXBvcnQge0NvbHVtbk1hbmFnZXJ9IGZyb20gXCIuL2NvbHVtbi1tYW5hZ2VyXCI7XG5pbXBvcnQge0NvbHVtbk9yZGVyTWFuYWdlcn0gZnJvbSBcIi4vY29sdW1uLW9yZGVyLW1hbmFnZXJcIjtcbmltcG9ydCB7Q29sdW1uVGV4dFByb3BlcnRpZXN9IGZyb20gXCIuL2NvbHVtbi10ZXh0LXByb3BlcnRpZXNcIjtcblxuXG5jb25zdCBub29wID0gKCkgPT4ge1xuICAvLyBub29wXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJvd0RhdGE8Um93IGV4dGVuZHMgb2JqZWN0PiB7XG4gIHJvdzogUm93O1xuICBlZGl0U2Vzc2lvbj86IEVkaXRTZXNzaW9uPFJvdz47XG4gIGVkaXRSb3dDb21tYW5kOiBDb21tYW5kPHZvaWQ+O1xufVxuXG5leHBvcnQgdHlwZSBPbkNvbXBvbmVudEluaXQ8Qz4gPSAoY29tcG9uZW50OiBDKSA9PiB2b2lkO1xuXG5leHBvcnQgaW50ZXJmYWNlIENlbGxSZW5kZXJlck9wdGlvbnM8Um93LCBFPiB7XG4gIG9uQ29tcG9uZW50SW5pdD86IChjb21wb25lbnQ6IEUpID0+IHZvaWQ7XG4gIG9uUm93VXBkYXRlPzogKGNvbXBvbmVudDogRSwgcm93OiBSb3cpID0+IHZvaWQ7XG59XG5cblxuZXhwb3J0IGludGVyZmFjZSBNdXRhYmxlQ2VsbFJlbmRlcmVyT3B0aW9uczxSb3csIEUsIFAgZXh0ZW5kcyBrZXlvZiBSb3c+IGV4dGVuZHMgQ2VsbFJlbmRlcmVyT3B0aW9uczxSb3csIEU+IHtcbiAgb25WYWx1ZUVkaXQ6IChyb3c6IFJvdywgaXM6IFJvd1tQXSwgd2FzOiBSb3dbUF0pID0+IHZvaWQ7XG59XG5cbmNsYXNzIENvbHVtblRleHRTZWFyY2hXcmFwcGVyPFJvdz4gZXh0ZW5kcyBDb2x1bW5UZXh0U2VhcmNoRm9ybWF0dGVyLkRlbGVnYXRlPFJvdz57XG4gIHByaXZhdGUgX2RlbGVnYXRlOiBDb2x1bW5UZXh0U2VhcmNoRm9ybWF0dGVyPGFueT47XG4gIHByaXZhdGUgX21hcDogKHJvdzpSb3cpID0+IGFueSA9IEZ1bmN0aW9ucy5pZGVudGl0eTtcblxuICBpbml0aWFsaXNlKGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgIGlmICh0aGlzLl9kZWxlZ2F0ZSBpbnN0YW5jZW9mIENvbHVtblRleHRTZWFyY2hGb3JtYXR0ZXIuRGVsZWdhdGUpIHtcbiAgICAgIHRoaXMuX2RlbGVnYXRlLmluaXRpYWxpc2UoaW5qZWN0b3IpO1xuICAgIH1cbiAgfVxuXG4gIGZvcm1hdChyb3c6IFJvdyk6IHN0cmluZyB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLl9tYXAocm93KTtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9kZWxlZ2F0ZSA/IHRoaXMuX2RlbGVnYXRlLmZvcm1hdCh2YWx1ZSkgOiBcIlwiO1xuICAgIC8vIGNvbnNvbGUubG9nKHtmb3JtYXQ6IHJvdywgdmFsdWUsIHRleHQ6cmVzdWx0fSlcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgc2V0RGVsZWdhdGU8VD4oZm9ybWF0dGVyOiBDb2x1bW5UZXh0U2VhcmNoRm9ybWF0dGVyPFQ+LCBtYXBwZXI/OiAocm93OlJvdykgPT4gVCkge1xuICAgIHRoaXMuX2RlbGVnYXRlID0gZm9ybWF0dGVyO1xuICAgIHRoaXMuX21hcCA9IG1hcHBlciA/PyBGdW5jdGlvbnMuaWRlbnRpdHk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbHVtbk1vZGVsPFJvdyBleHRlbmRzIG9iamVjdD4gZXh0ZW5kcyBHYXJiYWdlQ29sbGVjdG9yIHtcblxuICBwcml2YXRlIF9jb2x1bW5UZXh0UHJvcGVydGllczogQ29sdW1uVGV4dFByb3BlcnRpZXM7XG5cbiAgcHJpdmF0ZSBfY29sdW1uSGVhZGVyUG9ydGFsUmVmOiBDZWxsSGVhZGVyUG9ydGFsUmVmPFJvdywgYW55PjtcbiAgcHJpdmF0ZSBfY2VsbFJlbmRlcmVyUG9ydGFsUmVmOiBDZWxsUmVuZGVyZXJQb3J0YWxSZWY8Um93LCBhbnk+O1xuICBwcml2YXRlIF9jZWxsRWRpdG9yUG9ydGFsUmVmOiBDZWxsRWRpdG9yUG9ydGFsUmVmPFJvdywgYW55PjtcblxuICBwcml2YXRlIF9lbmFibGVSb3dTZWxlY3Rpb24gPSB0cnVlO1xuICBwcml2YXRlIF9mbGV4ID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfZGVmYXVsdFZpc2liaWxpdHkkID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IERlbGVnYXRpbmdWYWx1ZU1vZGVsPGJvb2xlYW4+KCkud2l0aERlZmF1bHQodHJ1ZSkpO1xuICBwcml2YXRlIF9tYXN0ZXJWaXNpYmlsaXR5JCA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBEZWxlZ2F0aW5nVmFsdWVNb2RlbDxib29sZWFuPigpLndpdGhEZWZhdWx0KHRydWUpKTtcbiAgcHJpdmF0ZSBfdXNlclZpc2libGUkID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IERlbGVnYXRpbmdWYWx1ZU1vZGVsPGJvb2xlYW4+KCkud2l0aERlZmF1bHQodGhpcy5fZGVmYXVsdFZpc2liaWxpdHkkKSk7XG4gIHJlYWRvbmx5IGRhc2hlcmlzZWRDb2x1bW5JZDogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdGV4dFNlYXJjaERlbGVnYXRlID0gbmV3IENvbHVtblRleHRTZWFyY2hXcmFwcGVyPFJvdz4oKTtcblxuICByZWFkb25seSB2aXNpYmxlJDogVmFsdWVNb2RlbDxib29sZWFuPjtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBjb2x1bW5JZDogc3RyaW5nLCBwcml2YXRlIHJlYWRvbmx5IG9yZGVyOiBDb2x1bW5PcmRlck1hbmFnZXIsIHByaXZhdGUgdGV4dFByb3BlcnRpZXNQcm92aWRlcjogQ29sdW1uTW9kZWwuVGV4dFByb3BlcnRpZXNQcm92aWRlcikge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3Qge3ZhbHVlT2Z9ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgIHRoaXMuaW5zdGFsbEhlYWRlclJlbmRlcmVyKCk7XG4gICAgdGhpcy5kYXNoZXJpc2VkQ29sdW1uSWQgPSBTdHJpbmd5LmZyb20oY29sdW1uSWQpLmRhc2hlcml6ZSgpLnRvU3RyaW5nKCk7XG4gICAgdGhpcy52aXNpYmxlJCA9IHZhbHVlT2YuYWxsKFxuICAgICAgdGhpcy5fdXNlclZpc2libGUkLFxuICAgICAgdGhpcy5fbWFzdGVyVmlzaWJpbGl0eSRcbiAgICApLmFyZVRydXRoeSgpXG4gIH1cblxuICBwcm90ZWN0ZWQgaW5zdGFsbEhlYWRlclJlbmRlcmVyKCkge1xuICAgIHRoaXMuY2VsbEhlYWRlclJlbmRlcmVyKERlZmF1bHRIZWFkZXJDZWxsUmVuZGVyZXJDb21wb25lbnQsIChjb21wb25lbnQsIGNvbHVtbikgPT4ge1xuICAgICAgY29tcG9uZW50LmhlYWRlclRleHQgPSBjb2x1bW4uZ2V0SGVhZGVyVGV4dCgpO1xuICAgIH0pO1xuICB9XG5cbiAgQE1lbW9pemUoKVxuICBnZXRIZWFkZXJUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q29sdW1uVGV4dFByb3BlcnRpZXMoKT8uaGVhZGVyVGV4dCgpID8/IHRoaXMuZ2V0RGVmYXVsdEhlYWRlclRleHQoKTtcbiAgfVxuXG4gIGlzVmlzaWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52aXNpYmxlJC52YWx1ZTtcbiAgfVxuXG4gIHZpc2libGVXaGlsZSh2aXNpYmxlOiBWYWx1ZU1vZGVsPGJvb2xlYW4+KTogdGhpcyB7XG4gICAgdGhpcy5fdXNlclZpc2libGUkLnNldERlbGVnYXRlKHZpc2libGUpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldERlZmF1bHRWaXNpYmlsaXR5KHZpc2libGU6IFZhbHVlTW9kZWw8Ym9vbGVhbj4pIHtcbiAgICB0aGlzLl9kZWZhdWx0VmlzaWJpbGl0eSQuc2V0RGVsZWdhdGUodmlzaWJsZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0TWFzdGVyVmlzaWJpbGl0eSh2aXNpYmxlOiBWYWx1ZU1vZGVsPGJvb2xlYW4+KSB7XG4gICAgdGhpcy5fbWFzdGVyVmlzaWJpbGl0eSQuc2V0RGVsZWdhdGUodmlzaWJsZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0RGVmYXVsdEhlYWRlclRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1uSWQ7XG4gIH1cblxuICBATWVtb2l6ZSgpXG4gIGdldENvbHVtblRleHRQcm9wZXJ0aWVzKCk6IENvbHVtblRleHRQcm9wZXJ0aWVzIHtcbiAgICByZXR1cm4gdGhpcy5fY29sdW1uVGV4dFByb3BlcnRpZXMgPz8gdGhpcy50ZXh0UHJvcGVydGllc1Byb3ZpZGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlICNjb2x1bW5UZXh0UHJvcGVydGllcyBpbnN0ZWFkXG4gICAqIEBwYXJhbSBjb2x1bW5UZXh0UHJvcGVydGllc1xuICAgKi9cbiAgdGV4dFByb3BlcnRpZXMoY29sdW1uVGV4dFByb3BlcnRpZXM6IENvbHVtblRleHRQcm9wZXJ0aWVzKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1uVGV4dFByb3BlcnRpZXMoY29sdW1uVGV4dFByb3BlcnRpZXMpO1xuICB9XG5cbiAgY29sdW1uVGV4dFByb3BlcnRpZXMoY29sdW1uVGV4dFByb3BlcnRpZXM6IENvbHVtblRleHRQcm9wZXJ0aWVzKTogdGhpcyB7XG4gICAgdGhpcy5fY29sdW1uVGV4dFByb3BlcnRpZXMgPSBjb2x1bW5UZXh0UHJvcGVydGllcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHBvc2l0aW9uQWZ0ZXIoY29sdW1uOiBDb2x1bW5Nb2RlbDxhbnk+KTp0aGlzIHtcbiAgICB0aGlzLm9yZGVyLnBvc2l0aW9uKHRoaXMsIHthZnRlcjogY29sdW1ufSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwb3NpdGlvbkJlZm9yZShjb2x1bW46IENvbHVtbk1vZGVsPGFueT4pOnRoaXMge1xuICAgIHRoaXMub3JkZXIucG9zaXRpb24odGhpcywge2JlZm9yZTogY29sdW1ufSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBnZXRTZWFyY2hUZXh0Rm9yKHJvdzogUm93KTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB0aGlzLnRleHRTZWFyY2hEZWxlZ2F0ZS5mb3JtYXQocm93KVxuICB9XG5cbiAgY29uZmlndXJlQ29sdW1uVGV4dFNlYXJjaChmb3JtYXR0ZXI6IENvbHVtblRleHRTZWFyY2hGb3JtYXR0ZXI8Um93Pik6dGhpc1xuICBjb25maWd1cmVDb2x1bW5UZXh0U2VhcmNoPFQ+KGZvcm1hdHRlcjogQ29sdW1uVGV4dFNlYXJjaEZvcm1hdHRlcjxUPiwgbWFwcGVyOiAocm93OlJvdykgPT4gVCk6dGhpc1xuICBjb25maWd1cmVDb2x1bW5UZXh0U2VhcmNoKGZvcm1hdHRlcjogQ29sdW1uVGV4dFNlYXJjaEZvcm1hdHRlcjxhbnk+LCBtYXBwZXI/OiAocm93OlJvdykgPT4gYW55KTp0aGlzIHtcbiAgICBhc3NlcnQubm90TmlsKGZvcm1hdHRlcik7XG4gICAgLy8gY29uc29sZS5sb2coe2NvbDogdGhpcy5jb2x1bW5JZCwgZm9ybWF0dGVyfSk7XG4gICAgdGhpcy50ZXh0U2VhcmNoRGVsZWdhdGUuc2V0RGVsZWdhdGUoZm9ybWF0dGVyLCBtYXBwZXIpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cblxuICBwcm90ZWN0ZWQgY29uZmlndXJlSGVhZGVyUmVuZGVyZXI8Qz4oY29uZmlnOiBDZWxsSGVhZGVyUG9ydGFsUmVmPFJvdywgYW55Pik6IHZvaWQge1xuICAgIHRoaXMuX2NvbHVtbkhlYWRlclBvcnRhbFJlZiA9IGNvbmZpZztcbiAgfVxuXG4gIHByb3RlY3RlZCBjb25maWd1cmVDZWxsUmVuZGVyZXI8Qz4oY29uZmlnOiBDZWxsUmVuZGVyZXJQb3J0YWxSZWY8Um93LCBhbnk+KTogdm9pZCB7XG4gICAgdGhpcy5fY2VsbFJlbmRlcmVyUG9ydGFsUmVmID0gY29uZmlnO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvbmZpZ3VyZUNlbGxFZGl0b3I8RT4oY2VsbEVkaXRvcjogQ2VsbEVkaXRvclBvcnRhbFJlZjxSb3csIEU+KTogdm9pZCB7XG4gICAgdGhpcy5fY2VsbEVkaXRvclBvcnRhbFJlZiA9IGNlbGxFZGl0b3I7XG4gIH1cblxuICBjZWxsSGVhZGVyUmVuZGVyZXI8Qz4oY29tcG9uZW50VHlwZTogQ29tcG9uZW50VHlwZTxDPiwgaW5pdGlhbGlzZXI6IChjb21wb25lbnQ6IEMsIGNvbHVtbjogQ29sdW1uTW9kZWw8Um93PikgPT4gdm9pZCk6IHRoaXMge1xuICAgIHRoaXMuY29uZmlndXJlSGVhZGVyUmVuZGVyZXIobmV3IENlbGxIZWFkZXJQb3J0YWxSZWY8Um93LCBDPihjb21wb25lbnRUeXBlLCBpbml0aWFsaXNlcikpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZmxleChmbGV4ID0gdHJ1ZSkge1xuICAgIHRoaXMuX2ZsZXggPSBmbGV4O1xuICB9XG5cbiAgaXNGbGV4KCkge1xuICAgIHJldHVybiB0aGlzLl9mbGV4O1xuICB9XG5cbiAgaGFzRWRpdG9yUG9ydGFsKCkge1xuICAgIHJldHVybiAhIXRoaXMuX2NlbGxFZGl0b3JQb3J0YWxSZWY7XG4gIH1cblxuICBhdHRhY2hIZWFkZXJDZWxsKGhvc3Q6IGFueSkge1xuICAgIHRoaXMuX2NvbHVtbkhlYWRlclBvcnRhbFJlZi5pbml0aWFsaXNlSG9zdChob3N0LCB0aGlzKTtcbiAgfVxuXG4gIGF0dGFjaENlbGwoaG9zdDogYW55KSB7XG4gICAgdGhpcy5fY2VsbFJlbmRlcmVyUG9ydGFsUmVmLmluaXRpYWxpc2VIb3N0KGhvc3QsIHRoaXMpO1xuICAgIGlmICh0aGlzLmhhc0VkaXRvclBvcnRhbCgpKSB7XG4gICAgICB0aGlzLl9jZWxsRWRpdG9yUG9ydGFsUmVmLmluaXRpYWxpc2VIb3N0KGhvc3QsIHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIG9uSGVhZGVyQXR0YWNoZWQoaG9zdDogVGFibGVIZWFkZXJDZWxsQ29tcG9uZW50LCByZWY6IENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmKSB7XG4gICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5nZXRDb21wb25lbnQocmVmKTtcbiAgICB0aGlzLl9jb2x1bW5IZWFkZXJQb3J0YWxSZWYub25Qb3J0YWxBdHRhY2hlZChob3N0LCBjb21wb25lbnQpO1xuICB9XG5cbiAgb25SZW5kZXJlckF0dGFjaGVkKGhvc3Q6IFRhYmxlQ2VsbENvbXBvbmVudDxSb3c+LCByZWY6IENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmKSB7XG4gICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5nZXRDb21wb25lbnRPckVtYmVkZGVkVmlldyhyZWYpO1xuICAgIHRoaXMuX2NlbGxSZW5kZXJlclBvcnRhbFJlZi5vblBvcnRhbEF0dGFjaGVkKGhvc3QsIGNvbXBvbmVudCk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBvbkVkaXRvckF0dGFjaGVkKGhvc3Q6IFRhYmxlQ2VsbENvbXBvbmVudDxSb3c+LCByZWY6IENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmKSB7XG4gICAgdGhpcy5fY2VsbEVkaXRvclBvcnRhbFJlZi5vblBvcnRhbEF0dGFjaGVkKGhvc3QsIHRoaXMuZ2V0Q29tcG9uZW50KHJlZikpO1xuICB9XG5cbiAgdXBkYXRlUG9ydGFsQ29udGVudChob3N0OiBUYWJsZUNlbGxDb21wb25lbnQ8Um93Pikge1xuICAgIHRoaXMuX2NlbGxSZW5kZXJlclBvcnRhbFJlZi5wdXNoU3RhdGUoaG9zdCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX3NlbGVjdFJvd09uQ2xpY2soc2VsZWN0Um93T25DbGljazogYm9vbGVhbik6IHRoaXMge1xuICAgIHRoaXMuX2VuYWJsZVJvd1NlbGVjdGlvbiA9IHNlbGVjdFJvd09uQ2xpY2s7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBpc1Jvd1NlbGVjdGlvbkVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2VuYWJsZVJvd1NlbGVjdGlvbjtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRDb21wb25lbnQocmVmOiBDZGtQb3J0YWxPdXRsZXRBdHRhY2hlZFJlZik6IGFueSB7XG4gICAgaWYgKHJlZiBpbnN0YW5jZW9mIENvbXBvbmVudFJlZikge1xuICAgICAgcmV0dXJuIHJlZi5pbnN0YW5jZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcihcImhlYWRlcnMgb25seSBzdXBwb3J0IGNvbXBvbmVudCBwb3J0YWxzLCBnb3RcIiwgcmVmKTtcbiAgICAgIGxhbmcuaWxsZWdhbFN0YXRlKGBoZWFkZXJzIG9ubHkgc3VwcG9ydCBjb21wb25lbnQgcG9ydGFscywgZ290ICR7cmVmfWApXG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBnZXRDb21wb25lbnRPckVtYmVkZGVkVmlldyhyZWY6IENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmKTogYW55IHtcbiAgICBpZiAocmVmIGluc3RhbmNlb2YgQ29tcG9uZW50UmVmKSB7XG4gICAgICByZXR1cm4gcmVmLmluc3RhbmNlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcmVmO1xuICAgIH1cbiAgfVxuXG4gIGluaXRpYWxpc2UoaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgdGhpcy50ZXh0U2VhcmNoRGVsZWdhdGUuaW5pdGlhbGlzZShpbmplY3Rvcik7XG4gIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBDb2x1bW5Nb2RlbCB7XG4gIGV4cG9ydCBjb25zdCBDRUxMX1JFTkRFUkVSX0NPTVBPTkVOVF9ST1dfQ0FDSEUgPSBTeW1ib2woJ2F1cC1jZWxsLXJlbmRlcmVyOnJvdy1kYXRhLWNhY2hlJyk7XG4gIGV4cG9ydCB0eXBlIFRleHRQcm9wZXJ0aWVzUHJvdmlkZXIgPSAoKSA9PiBDb2x1bW5UZXh0UHJvcGVydGllc1xufVxuXG4iXX0=
|
|
201
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLW1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvY29sdW1uL2NvbHVtbi1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUFDLFlBQVksRUFBVyxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQVUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQzNHLE9BQU8sRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRCxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEVBQXNCLG1CQUFtQixFQUF3QixNQUFNLDZCQUE2QixDQUFDO0FBQzVHLE9BQU8sRUFDTCxrQ0FBa0MsRUFDbkMsTUFBTSxpRkFBaUYsQ0FBQztBQVF6RixNQUFNLElBQUksR0FBRyxHQUFHLEVBQUU7SUFDaEIsT0FBTztBQUNULENBQUMsQ0FBQztBQW9CRixNQUFNLHVCQUE2QixTQUFRLHlCQUF5QixDQUFDLFFBQWE7SUFDeEUsU0FBUyxDQUFpQztJQUMxQyxJQUFJLEdBQXFCLFNBQVMsQ0FBQyxRQUFRLENBQUM7SUFFcEQsVUFBVSxDQUFDLFFBQWtCO1FBQzNCLElBQUksSUFBSSxDQUFDLFNBQVMsWUFBWSx5QkFBeUIsQ0FBQyxRQUFRLEVBQUU7WUFDaEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDckM7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQVE7UUFDYixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxD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LEVBQUUsQ0FBQyxDQUFBO1NBQ3hFO0lBQ0gsQ0FBQztJQUNTLDBCQUEwQixDQUFDLEdBQStCO1FBQ2xFLElBQUksR0FBRyxZQUFZLFlBQVksRUFBRTtZQUMvQixPQUFPLEdBQUcsQ0FBQyxRQUFRLENBQUM7U0FDckI7YUFBTTtZQUNMLE9BQU8sR0FBRyxDQUFDO1NBQ1o7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLFFBQWtCO1FBQzNCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0MsQ0FBQztDQUNGO0FBMUpDO0lBREMsT0FBTyxFQUFFOzs7O2dEQUdUO0FBd0JEO0lBREMsT0FBTyxFQUFFOzs7OzBEQUdUO0FBZ0lILFdBQWlCLFdBQVc7SUFDYiw2Q0FBaUMsR0FBRyxNQUFNLENBQUMsa0NBQWtDLENBQUMsQ0FBQztBQUU5RixDQUFDLEVBSGdCLFdBQVcsS0FBWCxXQUFXLFFBRzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnRUeXBlfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcbmltcG9ydCB7Q2RrUG9ydGFsT3V0bGV0QXR0YWNoZWRSZWZ9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XG5pbXBvcnQge0NvbXBvbmVudFJlZiwgSW5qZWN0b3J9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge0NvbW1hbmQsIERlbGVnYXRpbmdWYWx1ZU1vZGVsLCBEc2wsIEZ1bmN0aW9ucywgR2FyYmFnZUNvbGxlY3RvciwgVmFsdWVNb2RlbH0gZnJvbSBcIkBjb29sb24vcGVjdGluXCI7XG5pbXBvcnQge2Fzc2VydCwgbGFuZywgU3RyaW5neX0gZnJvbSBcIkBjb29sb24vdHlwZXNjcmlwdC11dGlsaXRpZXNcIjtcbmltcG9ydCB7TWVtb2l6ZX0gZnJvbSBcImZhc3QtdHlwZXNjcmlwdC1tZW1vaXplXCI7XG5pbXBvcnQge0VkaXRTZXNzaW9ufSBmcm9tIFwiLi4vZWRpdG9yL2VkaXQtc2Vzc2lvblwiO1xuaW1wb3J0IHtDb2x1bW5UZXh0U2VhcmNoRm9ybWF0dGVyfSBmcm9tIFwiLi4vZmlsdGVyL2NvbHVtbi10ZXh0LXNlYXJjaC1mb3JtYXR0ZXJcIjtcbmltcG9ydCB7Q2VsbEVkaXRvclBvcnRhbFJlZiwgQ2VsbEhlYWRlclBvcnRhbFJlZiwgQ2VsbFJlbmRlcmVyUG9ydGFsUmVmfSBmcm9tIFwiLi4vcmVuZGVyZXIvY2VsbC1wb3J0YWwtcmVmXCI7XG5pbXBvcnQge1xuICBEZWZhdWx0SGVhZGVyQ2VsbFJlbmRlcmVyQ29tcG9uZW50XG59IGZyb20gXCIuLi9yZW5kZXJlci9kZWZhdWx0LWhlYWRlci1jZWxsLXJlbmRlcmVyL2RlZmF1bHQtaGVhZGVyLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50XCI7XG5pbXBvcnQge1RhYmxlQ2VsbENvbXBvbmVudH0gZnJvbSBcIi4uL3JlbmRlcmVyL3RhYmxlLWNlbGwvdGFibGUtY2VsbC5jb21wb25lbnRcIjtcbmltcG9ydCB7VGFibGVIZWFkZXJDZWxsQ29tcG9uZW50fSBmcm9tIFwiLi4vcmVuZGVyZXIvdGFibGUtaGVhZGVyLWNlbGwvdGFibGUtaGVhZGVyLWNlbGwuY29tcG9uZW50XCI7XG5pbXBvcnQge0NvbHVtbk1hbmFnZXJ9IGZyb20gXCIuL2NvbHVtbi1tYW5hZ2VyXCI7XG5pbXBvcnQge0NvbHVtbk9yZGVyTWFuYWdlcn0gZnJvbSBcIi4vY29sdW1uLW9yZGVyLW1hbmFnZXJcIjtcbmltcG9ydCB7Q29sdW1uVGV4dFByb3BlcnRpZXN9IGZyb20gXCIuL2NvbHVtbi10ZXh0LXByb3BlcnRpZXNcIjtcblxuXG5jb25zdCBub29wID0gKCkgPT4ge1xuICAvLyBub29wXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJvd0RhdGE8Um93IGV4dGVuZHMgb2JqZWN0PiB7XG4gIHJvdzogUm93O1xuICBlZGl0U2Vzc2lvbj86IEVkaXRTZXNzaW9uPFJvdz47XG4gIGVkaXRSb3dDb21tYW5kOiBDb21tYW5kPHZvaWQ+O1xufVxuXG5leHBvcnQgdHlwZSBPbkNvbXBvbmVudEluaXQ8Qz4gPSAoY29tcG9uZW50OiBDKSA9PiB2b2lkO1xuXG5leHBvcnQgaW50ZXJmYWNlIENlbGxSZW5kZXJlck9wdGlvbnM8Um93LCBFPiB7XG4gIG9uQ29tcG9uZW50SW5pdD86IChjb21wb25lbnQ6IEUpID0+IHZvaWQ7XG4gIG9uUm93VXBkYXRlPzogKGNvbXBvbmVudDogRSwgcm93OiBSb3cpID0+IHZvaWQ7XG59XG5cblxuZXhwb3J0IGludGVyZmFjZSBNdXRhYmxlQ2VsbFJlbmRlcmVyT3B0aW9uczxSb3csIEUsIFAgZXh0ZW5kcyBrZXlvZiBSb3c+IGV4dGVuZHMgQ2VsbFJlbmRlcmVyT3B0aW9uczxSb3csIEU+IHtcbiAgb25WYWx1ZUVkaXQ6IChyb3c6IFJvdywgaXM6IFJvd1tQXSwgd2FzOiBSb3dbUF0pID0+IHZvaWQ7XG59XG5cbmNsYXNzIENvbHVtblRleHRTZWFyY2hXcmFwcGVyPFJvdz4gZXh0ZW5kcyBDb2x1bW5UZXh0U2VhcmNoRm9ybWF0dGVyLkRlbGVnYXRlPFJvdz57XG4gIHByaXZhdGUgX2RlbGVnYXRlOiBDb2x1bW5UZXh0U2VhcmNoRm9ybWF0dGVyPGFueT47XG4gIHByaXZhdGUgX21hcDogKHJvdzpSb3cpID0+IGFueSA9IEZ1bmN0aW9ucy5pZGVudGl0eTtcblxuICBpbml0aWFsaXNlKGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgIGlmICh0aGlzLl9kZWxlZ2F0ZSBpbnN0YW5jZW9mIENvbHVtblRleHRTZWFyY2hGb3JtYXR0ZXIuRGVsZWdhdGUpIHtcbiAgICAgIHRoaXMuX2RlbGVnYXRlLmluaXRpYWxpc2UoaW5qZWN0b3IpO1xuICAgIH1cbiAgfVxuXG4gIGZvcm1hdChyb3c6IFJvdyk6IHN0cmluZyB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLl9tYXAocm93KTtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9kZWxlZ2F0ZSA/IHRoaXMuX2RlbGVnYXRlLmZvcm1hdCh2YWx1ZSkgOiBcIlwiO1xuICAgIC8vIGNvbnNvbGUubG9nKHtmb3JtYXQ6IHJvdywgdmFsdWUsIHRleHQ6cmVzdWx0fSlcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgc2V0RGVsZWdhdGU8VD4oZm9ybWF0dGVyOiBDb2x1bW5UZXh0U2VhcmNoRm9ybWF0dGVyPFQ+LCBtYXBwZXI/OiAocm93OlJvdykgPT4gVCkge1xuICAgIHRoaXMuX2RlbGVnYXRlID0gZm9ybWF0dGVyO1xuICAgIHRoaXMuX21hcCA9IG1hcHBlciA/PyBGdW5jdGlvbnMuaWRlbnRpdHk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbHVtbk1vZGVsPFJvdyBleHRlbmRzIG9iamVjdD4gZXh0ZW5kcyBHYXJiYWdlQ29sbGVjdG9yIHtcblxuICBwcml2YXRlIF9jb2x1bW5UZXh0UHJvcGVydGllczogQ29sdW1uVGV4dFByb3BlcnRpZXM7XG5cbiAgcHJpdmF0ZSBfY29sdW1uSGVhZGVyUG9ydGFsUmVmOiBDZWxsSGVhZGVyUG9ydGFsUmVmPFJvdywgYW55PjtcbiAgcHJpdmF0ZSBfY2VsbFJlbmRlcmVyUG9ydGFsUmVmOiBDZWxsUmVuZGVyZXJQb3J0YWxSZWY8Um93LCBhbnk+O1xuICBwcml2YXRlIF9jZWxsRWRpdG9yUG9ydGFsUmVmOiBDZWxsRWRpdG9yUG9ydGFsUmVmPFJvdywgYW55PjtcblxuICBwcml2YXRlIF9lbmFibGVSb3dTZWxlY3Rpb24gPSB0cnVlO1xuICBwcml2YXRlIF9mbGV4ID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfZGVmYXVsdFZpc2liaWxpdHkkID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IERlbGVnYXRpbmdWYWx1ZU1vZGVsPGJvb2xlYW4+KCkud2l0aERlZmF1bHQodHJ1ZSkpO1xuICBwcml2YXRlIF9tYXN0ZXJWaXNpYmlsaXR5JCA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBEZWxlZ2F0aW5nVmFsdWVNb2RlbDxib29sZWFuPigpLndpdGhEZWZhdWx0KHRydWUpKTtcbiAgcHJpdmF0ZSBfdXNlclZpc2libGUkID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IERlbGVnYXRpbmdWYWx1ZU1vZGVsPGJvb2xlYW4+KCkud2l0aERlZmF1bHQodGhpcy5fZGVmYXVsdFZpc2liaWxpdHkkKSk7XG4gIHJlYWRvbmx5IGRhc2hlcmlzZWRDb2x1bW5JZDogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdGV4dFNlYXJjaERlbGVnYXRlID0gbmV3IENvbHVtblRleHRTZWFyY2hXcmFwcGVyPFJvdz4oKTtcblxuICByZWFkb25seSB2aXNpYmxlJDogVmFsdWVNb2RlbDxib29sZWFuPjtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBjb2x1bW5JZDogc3RyaW5nLCBwcml2YXRlIHJlYWRvbmx5IG9yZGVyOiBDb2x1bW5PcmRlck1hbmFnZXIsIHByaXZhdGUgdGV4dFByb3BlcnRpZXNQcm92aWRlcjogQ29sdW1uTW9kZWwuVGV4dFByb3BlcnRpZXNQcm92aWRlcikge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3Qge3ZhbHVlT2Z9ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgIHRoaXMuaW5zdGFsbEhlYWRlclJlbmRlcmVyKCk7XG4gICAgdGhpcy5kYXNoZXJpc2VkQ29sdW1uSWQgPSBTdHJpbmd5LmZyb20oY29sdW1uSWQpLmRhc2hlcml6ZSgpLnRvU3RyaW5nKCk7XG4gICAgdGhpcy52aXNpYmxlJCA9IHZhbHVlT2YuYWxsKFxuICAgICAgdGhpcy5fdXNlclZpc2libGUkLFxuICAgICAgdGhpcy5fbWFzdGVyVmlzaWJpbGl0eSRcbiAgICApLmFyZVRydXRoeSgpXG4gIH1cblxuICBwcm90ZWN0ZWQgaW5zdGFsbEhlYWRlclJlbmRlcmVyKCkge1xuICAgIHRoaXMuY2VsbEhlYWRlclJlbmRlcmVyKERlZmF1bHRIZWFkZXJDZWxsUmVuZGVyZXJDb21wb25lbnQsIChjb21wb25lbnQsIGNvbHVtbikgPT4ge1xuICAgICAgY29tcG9uZW50LmhlYWRlclRleHQgPSBjb2x1bW4uZ2V0SGVhZGVyVGV4dCgpO1xuICAgIH0pO1xuICB9XG5cbiAgQE1lbW9pemUoKVxuICBnZXRIZWFkZXJUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q29sdW1uVGV4dFByb3BlcnRpZXMoKT8uaGVhZGVyVGV4dCgpID8/IHRoaXMuZ2V0RGVmYXVsdEhlYWRlclRleHQoKTtcbiAgfVxuXG4gIGlzVmlzaWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52aXNpYmxlJC52YWx1ZTtcbiAgfVxuXG4gIHZpc2libGVXaGlsZSh2aXNpYmxlOiBWYWx1ZU1vZGVsPGJvb2xlYW4+KTogdGhpcyB7XG4gICAgdGhpcy5fdXNlclZpc2libGUkLnNldERlbGVnYXRlKHZpc2libGUpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldERlZmF1bHRWaXNpYmlsaXR5KHZpc2libGU6IFZhbHVlTW9kZWw8Ym9vbGVhbj4pIHtcbiAgICB0aGlzLl9kZWZhdWx0VmlzaWJpbGl0eSQuc2V0RGVsZWdhdGUodmlzaWJsZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0TWFzdGVyVmlzaWJpbGl0eSh2aXNpYmxlOiBWYWx1ZU1vZGVsPGJvb2xlYW4+KSB7XG4gICAgdGhpcy5fbWFzdGVyVmlzaWJpbGl0eSQuc2V0RGVsZWdhdGUodmlzaWJsZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0RGVmYXVsdEhlYWRlclRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1uSWQ7XG4gIH1cblxuICBATWVtb2l6ZSgpXG4gIGdldENvbHVtblRleHRQcm9wZXJ0aWVzKCk6IENvbHVtblRleHRQcm9wZXJ0aWVzIHtcbiAgICByZXR1cm4gdGhpcy5fY29sdW1uVGV4dFByb3BlcnRpZXMgPz8gdGhpcy50ZXh0UHJvcGVydGllc1Byb3ZpZGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlICNjb2x1bW5UZXh0UHJvcGVydGllcyBpbnN0ZWFkXG4gICAqIEBwYXJhbSBjb2x1bW5UZXh0UHJvcGVydGllc1xuICAgKi9cbiAgdGV4dFByb3BlcnRpZXMoY29sdW1uVGV4dFByb3BlcnRpZXM6IENvbHVtblRleHRQcm9wZXJ0aWVzKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1uVGV4dFByb3BlcnRpZXMoY29sdW1uVGV4dFByb3BlcnRpZXMpO1xuICB9XG5cbiAgY29sdW1uVGV4dFByb3BlcnRpZXMoY29sdW1uVGV4dFByb3BlcnRpZXM6IENvbHVtblRleHRQcm9wZXJ0aWVzKTogdGhpcyB7XG4gICAgdGhpcy5fY29sdW1uVGV4dFByb3BlcnRpZXMgPSBjb2x1bW5UZXh0UHJvcGVydGllcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHBvc2l0aW9uQWZ0ZXIoY29sdW1uOiBDb2x1bW5Nb2RlbDxhbnk+KTp0aGlzIHtcbiAgICB0aGlzLm9yZGVyLnBvc2l0aW9uKHRoaXMsIHthZnRlcjogY29sdW1ufSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwb3NpdGlvbkJlZm9yZShjb2x1bW46IENvbHVtbk1vZGVsPGFueT4pOnRoaXMge1xuICAgIHRoaXMub3JkZXIucG9zaXRpb24odGhpcywge2JlZm9yZTogY29sdW1ufSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBnZXRTZWFyY2hUZXh0Rm9yKHJvdzogUm93KTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB0aGlzLnRleHRTZWFyY2hEZWxlZ2F0ZS5mb3JtYXQocm93KVxuICB9XG5cbiAgY29uZmlndXJlQ29sdW1uVGV4dFNlYXJjaChmb3JtYXR0ZXI6IENvbHVtblRleHRTZWFyY2hGb3JtYXR0ZXI8Um93Pik6dGhpc1xuICBjb25maWd1cmVDb2x1bW5UZXh0U2VhcmNoPFQ+KGZvcm1hdHRlcjogQ29sdW1uVGV4dFNlYXJjaEZvcm1hdHRlcjxUPiwgbWFwcGVyOiAocm93OlJvdykgPT4gVCk6dGhpc1xuICBjb25maWd1cmVDb2x1bW5UZXh0U2VhcmNoKGZvcm1hdHRlcjogQ29sdW1uVGV4dFNlYXJjaEZvcm1hdHRlcjxhbnk+LCBtYXBwZXI/OiAocm93OlJvdykgPT4gYW55KTp0aGlzIHtcbiAgICBhc3NlcnQubm90TmlsKGZvcm1hdHRlcik7XG4gICAgLy8gY29uc29sZS5sb2coe2NvbDogdGhpcy5jb2x1bW5JZCwgZm9ybWF0dGVyfSk7XG4gICAgdGhpcy50ZXh0U2VhcmNoRGVsZWdhdGUuc2V0RGVsZWdhdGUoZm9ybWF0dGVyLCBtYXBwZXIpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cblxuICBwcm90ZWN0ZWQgY29uZmlndXJlSGVhZGVyUmVuZGVyZXI8Qz4oY29uZmlnOiBDZWxsSGVhZGVyUG9ydGFsUmVmPFJvdywgYW55Pik6IHZvaWQge1xuICAgIHRoaXMuX2NvbHVtbkhlYWRlclBvcnRhbFJlZiA9IGNvbmZpZztcbiAgfVxuXG4gIHByb3RlY3RlZCBjb25maWd1cmVDZWxsUmVuZGVyZXI8Qz4oY29uZmlnOiBDZWxsUmVuZGVyZXJQb3J0YWxSZWY8Um93LCBhbnk+KTogdm9pZCB7XG4gICAgdGhpcy5fY2VsbFJlbmRlcmVyUG9ydGFsUmVmID0gY29uZmlnO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvbmZpZ3VyZUNlbGxFZGl0b3I8RT4oY2VsbEVkaXRvcjogQ2VsbEVkaXRvclBvcnRhbFJlZjxSb3csIEU+KTogdm9pZCB7XG4gICAgdGhpcy5fY2VsbEVkaXRvclBvcnRhbFJlZiA9IGNlbGxFZGl0b3I7XG4gIH1cblxuICBjZWxsSGVhZGVyUmVuZGVyZXI8Qz4oY29tcG9uZW50VHlwZTogQ29tcG9uZW50VHlwZTxDPiwgaW5pdGlhbGlzZXI6IChjb21wb25lbnQ6IEMsIGNvbHVtbjogQ29sdW1uTW9kZWw8Um93PikgPT4gdm9pZCk6IHRoaXMge1xuICAgIHRoaXMuY29uZmlndXJlSGVhZGVyUmVuZGVyZXIobmV3IENlbGxIZWFkZXJQb3J0YWxSZWY8Um93LCBDPihjb21wb25lbnRUeXBlLCBpbml0aWFsaXNlcikpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZmxleChmbGV4ID0gdHJ1ZSkge1xuICAgIHRoaXMuX2ZsZXggPSBmbGV4O1xuICB9XG5cbiAgaXNGbGV4KCkge1xuICAgIHJldHVybiB0aGlzLl9mbGV4O1xuICB9XG5cbiAgaGFzRWRpdG9yUG9ydGFsKCkge1xuICAgIHJldHVybiAhIXRoaXMuX2NlbGxFZGl0b3JQb3J0YWxSZWY7XG4gIH1cblxuICBhdHRhY2hIZWFkZXJDZWxsKGhvc3Q6IGFueSkge1xuICAgIHRoaXMuX2NvbHVtbkhlYWRlclBvcnRhbFJlZi5pbml0aWFsaXNlSG9zdChob3N0KTtcbiAgfVxuXG4gIGF0dGFjaENlbGwoaG9zdDogYW55KSB7XG4gICAgdGhpcy5fY2VsbFJlbmRlcmVyUG9ydGFsUmVmLmluaXRpYWxpc2VIb3N0KGhvc3QpO1xuICAgIGlmICh0aGlzLmhhc0VkaXRvclBvcnRhbCgpKSB7XG4gICAgICB0aGlzLl9jZWxsRWRpdG9yUG9ydGFsUmVmLmluaXRpYWxpc2VIb3N0KGhvc3QpO1xuICAgIH1cbiAgfVxuXG4gIG9uSGVhZGVyQXR0YWNoZWQoaG9zdDogVGFibGVIZWFkZXJDZWxsQ29tcG9uZW50LCByZWY6IENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmKSB7XG4gICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5nZXRDb21wb25lbnQocmVmKTtcbiAgICB0aGlzLl9jb2x1bW5IZWFkZXJQb3J0YWxSZWYub25Qb3J0YWxBdHRhY2hlZChob3N0LCBjb21wb25lbnQpO1xuICB9XG5cbiAgb25SZW5kZXJlckF0dGFjaGVkKGhvc3Q6IFRhYmxlQ2VsbENvbXBvbmVudDxSb3c+LCByZWY6IENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmKSB7XG4gICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5nZXRDb21wb25lbnRPckVtYmVkZGVkVmlldyhyZWYpO1xuICAgIHRoaXMuX2NlbGxSZW5kZXJlclBvcnRhbFJlZi5vblBvcnRhbEF0dGFjaGVkKGhvc3QsIGNvbXBvbmVudCk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBvbkVkaXRvckF0dGFjaGVkKGhvc3Q6IFRhYmxlQ2VsbENvbXBvbmVudDxSb3c+LCByZWY6IENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmKSB7XG4gICAgdGhpcy5fY2VsbEVkaXRvclBvcnRhbFJlZi5vblBvcnRhbEF0dGFjaGVkKGhvc3QsIHRoaXMuZ2V0Q29tcG9uZW50KHJlZikpO1xuICB9XG5cbiAgdXBkYXRlUG9ydGFsQ29udGVudChob3N0OiBUYWJsZUNlbGxDb21wb25lbnQ8Um93Pikge1xuICAgIHRoaXMuX2NlbGxSZW5kZXJlclBvcnRhbFJlZi5wdXNoU3RhdGUoaG9zdCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX3NlbGVjdFJvd09uQ2xpY2soc2VsZWN0Um93T25DbGljazogYm9vbGVhbik6IHRoaXMge1xuICAgIHRoaXMuX2VuYWJsZVJvd1NlbGVjdGlvbiA9IHNlbGVjdFJvd09uQ2xpY2s7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBpc1Jvd1NlbGVjdGlvbkVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2VuYWJsZVJvd1NlbGVjdGlvbjtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRDb21wb25lbnQocmVmOiBDZGtQb3J0YWxPdXRsZXRBdHRhY2hlZFJlZik6IGFueSB7XG4gICAgaWYgKHJlZiBpbnN0YW5jZW9mIENvbXBvbmVudFJlZikge1xuICAgICAgcmV0dXJuIHJlZi5pbnN0YW5jZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcihcImhlYWRlcnMgb25seSBzdXBwb3J0IGNvbXBvbmVudCBwb3J0YWxzLCBnb3RcIiwgcmVmKTtcbiAgICAgIGxhbmcuaWxsZWdhbFN0YXRlKGBoZWFkZXJzIG9ubHkgc3VwcG9ydCBjb21wb25lbnQgcG9ydGFscywgZ290ICR7cmVmfWApXG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBnZXRDb21wb25lbnRPckVtYmVkZGVkVmlldyhyZWY6IENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmKTogYW55IHtcbiAgICBpZiAocmVmIGluc3RhbmNlb2YgQ29tcG9uZW50UmVmKSB7XG4gICAgICByZXR1cm4gcmVmLmluc3RhbmNlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcmVmO1xuICAgIH1cbiAgfVxuXG4gIGluaXRpYWxpc2UoaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgdGhpcy50ZXh0U2VhcmNoRGVsZWdhdGUuaW5pdGlhbGlzZShpbmplY3Rvcik7XG4gIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBDb2x1bW5Nb2RlbCB7XG4gIGV4cG9ydCBjb25zdCBDRUxMX1JFTkRFUkVSX0NPTVBPTkVOVF9ST1dfQ0FDSEUgPSBTeW1ib2woJ2F1cC1jZWxsLXJlbmRlcmVyOnJvdy1kYXRhLWNhY2hlJyk7XG4gIGV4cG9ydCB0eXBlIFRleHRQcm9wZXJ0aWVzUHJvdmlkZXIgPSAoKSA9PiBDb2x1bW5UZXh0UHJvcGVydGllc1xufVxuXG4iXX0=
|
|
@@ -1,32 +1,37 @@
|
|
|
1
|
-
import { Dsl, SelectionModel } from "@coolon/pectin";
|
|
1
|
+
import { Dsl, GarbageCollector, MutableValueModel, proxify, SelectionModel } from "@coolon/pectin";
|
|
2
2
|
import { ComponentCellRendererPortalRef } from "../renderer/cell-portal-ref";
|
|
3
3
|
import { SelectionHeaderCellComponent } from "../renderer/select-header-cell/selection-header-cell.component";
|
|
4
4
|
import { SelectionCellComponent } from "../renderer/selection-cell/selection-cell.component";
|
|
5
5
|
import { ColumnModel } from "./column-model";
|
|
6
6
|
export class SelectionColumnModel extends ColumnModel {
|
|
7
|
-
selectionModel;
|
|
8
7
|
_enableHeaderControls = true;
|
|
9
8
|
_color = "accent";
|
|
10
|
-
|
|
9
|
+
_selectionModelProxy = proxify((SelectionModel));
|
|
10
|
+
_isUsingTemporarySelection$ = new MutableValueModel(false);
|
|
11
|
+
_userSelectionModel;
|
|
12
|
+
constructor(columnId, order, defaults) {
|
|
11
13
|
super(columnId, order, defaults);
|
|
12
|
-
this.selectionModel = selectionModel;
|
|
13
14
|
const { chain } = Dsl.disposeWith(this);
|
|
14
15
|
this._selectRowOnClick(false);
|
|
15
16
|
this.cellHeaderRenderer(SelectionHeaderCellComponent, (component) => {
|
|
16
|
-
component.selectionModel = this.
|
|
17
|
+
component.selectionModel = this._selectionModelProxy;
|
|
17
18
|
component.enableHeaderControls = this._enableHeaderControls;
|
|
18
19
|
component.color = this._color;
|
|
19
20
|
});
|
|
20
21
|
this.configureCellRenderer(new ComponentCellRendererPortalRef(SelectionCellComponent, (component, rowData) => {
|
|
21
22
|
component.row = rowData.row;
|
|
22
|
-
component.selectionModel = this.
|
|
23
|
+
component.selectionModel = this._selectionModelProxy;
|
|
23
24
|
component.color = this._color;
|
|
24
25
|
}));
|
|
25
|
-
this.setMasterVisibility(this.
|
|
26
|
-
this.setDefaultVisibility(chain(this.
|
|
26
|
+
this.setMasterVisibility(this._selectionModelProxy.enabled$);
|
|
27
|
+
this.setDefaultVisibility(chain(this._selectionModelProxy.mode$).equals(SelectionModel.Mode.MULTIPLE));
|
|
28
|
+
}
|
|
29
|
+
get selectionModel() {
|
|
30
|
+
return this._selectionModelProxy;
|
|
27
31
|
}
|
|
28
32
|
useSelectionModel(selectionModel) {
|
|
29
|
-
this.selectionModel
|
|
33
|
+
this._userSelectionModel = selectionModel;
|
|
34
|
+
this._selectionModelProxy.setProxyTarget(selectionModel);
|
|
30
35
|
}
|
|
31
36
|
getDefaultHeaderText() {
|
|
32
37
|
return '';
|
|
@@ -42,10 +47,24 @@ export class SelectionColumnModel extends ColumnModel {
|
|
|
42
47
|
this._color = color;
|
|
43
48
|
}
|
|
44
49
|
selectRow(row) {
|
|
45
|
-
this.
|
|
50
|
+
this._selectionModelProxy.selectCommand.execute(row);
|
|
46
51
|
}
|
|
47
52
|
isSelected(row) {
|
|
48
|
-
return this.
|
|
53
|
+
return this._selectionModelProxy.isSelected(row);
|
|
54
|
+
}
|
|
55
|
+
async withTemporarySelectionModel(createSelectionModel, process) {
|
|
56
|
+
const garbage = new GarbageCollector();
|
|
57
|
+
this._isUsingTemporarySelection$.value = true;
|
|
58
|
+
const selectionModel = createSelectionModel(garbage);
|
|
59
|
+
this._selectionModelProxy.setProxyTarget(selectionModel);
|
|
60
|
+
try {
|
|
61
|
+
await process(selectionModel);
|
|
62
|
+
}
|
|
63
|
+
finally {
|
|
64
|
+
this._selectionModelProxy.setProxyTarget(this._userSelectionModel);
|
|
65
|
+
garbage.dispose();
|
|
66
|
+
this._isUsingTemporarySelection$.value = false;
|
|
67
|
+
}
|
|
49
68
|
}
|
|
50
69
|
}
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWNvbHVtbi1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL2NvbHVtbi9zZWxlY3Rpb24tY29sdW1uLW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFFTCxHQUFHLEVBQ0gsZ0JBQWdCLEVBQ1EsaUJBQWlCLEVBRXpDLE9BQU8sRUFDUCxjQUFjLEVBQ2YsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRSxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSxnRUFBZ0UsQ0FBQztBQUM1RyxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxxREFBcUQsQ0FBQztBQUMzRixPQUFPLEVBQUMsV0FBVyxFQUFVLE1BQU0sZ0JBQWdCLENBQUM7QUFHcEQsTUFBTSxPQUFPLG9CQUF5QyxTQUFRLFdBQWdCO0lBRXBFLHFCQUFxQixHQUFHLElBQUksQ0FBQztJQUM3QixNQUFNLEdBQWlCLFFBQVEsQ0FBQztJQUN2QixvQkFBb0IsR0FBRyxPQUFPLENBQUMsQ0FBQSxjQUFtQixDQUFBLENBQW1DLENBQUM7SUFDL0YsMkJBQTJCLEdBQUcsSUFBSSxpQkFBaUIsQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUNwRSxtQkFBbUIsQ0FBc0I7SUFHakQsWUFBWSxRQUFnQixFQUFFLEtBQXlCLEVBQUUsUUFBNEM7UUFDbkcsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDakMsTUFBTSxFQUFDLEtBQUssRUFBQyxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyw0QkFBNEIsRUFBRSxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ2xFLFNBQVMsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1lBQ3JELFNBQVMsQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUM7WUFDNUQsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFBO1FBQy9CLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksOEJBQThCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxTQUFTLEVBQUUsT0FBcUIsRUFBRSxFQUFFO1lBQ3pILFNBQVMsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUM1QixTQUFTLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztZQUNyRCxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUE7UUFDL0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNKLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUN6RyxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ25DLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxjQUFtQztRQUNuRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsY0FBYyxDQUFDO1FBQzFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVrQixvQkFBb0I7UUFDckMsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsb0JBQW9CLENBQUMsTUFBZTtRQUNsQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsTUFBTSxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLEtBQW1CO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxTQUFTLENBQUMsR0FBUTtRQUNoQixJQUFJLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxLQUFLLENBQUMsMkJBQTJCLENBQWdDLG9CQUFzRCxFQUFHLE9BQTRDO1FBQ3BLLE1BQU0sT0FBTyxHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsMkJBQTJCLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUM5QyxNQUFNLGNBQWMsR0FBRyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3pELElBQUk7WUFDRixNQUFNLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUMvQjtnQkFBUztZQUNSLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDbkUsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1NBQ2hEO0lBQ0gsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUaGVtZVBhbGV0dGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jb3JlXCI7XG5pbXBvcnQge1xuICBDYW5Qcm94eSxcbiAgRHNsLFxuICBHYXJiYWdlQ29sbGVjdG9yLFxuICBNdWx0aXBsZVNlbGVjdGlvbk1vZGVsLCBNdXRhYmxlVmFsdWVNb2RlbCxcbiAgUHJveGlmaWVkLFxuICBwcm94aWZ5LFxuICBTZWxlY3Rpb25Nb2RlbFxufSBmcm9tIFwiQGNvb2xvbi9wZWN0aW5cIjtcbmltcG9ydCB7Q29tcG9uZW50Q2VsbFJlbmRlcmVyUG9ydGFsUmVmfSBmcm9tIFwiLi4vcmVuZGVyZXIvY2VsbC1wb3J0YWwtcmVmXCI7XG5pbXBvcnQge1NlbGVjdGlvbkhlYWRlckNlbGxDb21wb25lbnR9IGZyb20gXCIuLi9yZW5kZXJlci9zZWxlY3QtaGVhZGVyLWNlbGwvc2VsZWN0aW9uLWhlYWRlci1jZWxsLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtTZWxlY3Rpb25DZWxsQ29tcG9uZW50fSBmcm9tIFwiLi4vcmVuZGVyZXIvc2VsZWN0aW9uLWNlbGwvc2VsZWN0aW9uLWNlbGwuY29tcG9uZW50XCI7XG5pbXBvcnQge0NvbHVtbk1vZGVsLCBSb3dEYXRhfSBmcm9tIFwiLi9jb2x1bW4tbW9kZWxcIjtcbmltcG9ydCB7Q29sdW1uT3JkZXJNYW5hZ2VyfSBmcm9tIFwiLi9jb2x1bW4tb3JkZXItbWFuYWdlclwiO1xuXG5leHBvcnQgY2xhc3MgU2VsZWN0aW9uQ29sdW1uTW9kZWw8Um93IGV4dGVuZHMgb2JqZWN0PiBleHRlbmRzIENvbHVtbk1vZGVsPFJvdz4ge1xuXG4gIHByaXZhdGUgX2VuYWJsZUhlYWRlckNvbnRyb2xzID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfY29sb3I6IFRoZW1lUGFsZXR0ZSA9IFwiYWNjZW50XCI7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3NlbGVjdGlvbk1vZGVsUHJveHkgPSBwcm94aWZ5KFNlbGVjdGlvbk1vZGVsPFJvdz4pIGFzIFByb3hpZmllZDxTZWxlY3Rpb25Nb2RlbDxSb3c+PjtcbiAgcHJpdmF0ZSBfaXNVc2luZ1RlbXBvcmFyeVNlbGVjdGlvbiQgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcml2YXRlIF91c2VyU2VsZWN0aW9uTW9kZWw6IFNlbGVjdGlvbk1vZGVsPFJvdz47XG5cblxuICBjb25zdHJ1Y3Rvcihjb2x1bW5JZDogc3RyaW5nLCBvcmRlcjogQ29sdW1uT3JkZXJNYW5hZ2VyLCBkZWZhdWx0czogQ29sdW1uTW9kZWwuVGV4dFByb3BlcnRpZXNQcm92aWRlcikge1xuICAgIHN1cGVyKGNvbHVtbklkLCBvcmRlciwgZGVmYXVsdHMpO1xuICAgIGNvbnN0IHtjaGFpbn0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgdGhpcy5fc2VsZWN0Um93T25DbGljayhmYWxzZSk7XG4gICAgdGhpcy5jZWxsSGVhZGVyUmVuZGVyZXIoU2VsZWN0aW9uSGVhZGVyQ2VsbENvbXBvbmVudCwgKGNvbXBvbmVudCkgPT4ge1xuICAgICAgY29tcG9uZW50LnNlbGVjdGlvbk1vZGVsID0gdGhpcy5fc2VsZWN0aW9uTW9kZWxQcm94eTtcbiAgICAgIGNvbXBvbmVudC5lbmFibGVIZWFkZXJDb250cm9scyA9IHRoaXMuX2VuYWJsZUhlYWRlckNvbnRyb2xzO1xuICAgICAgY29tcG9uZW50LmNvbG9yID0gdGhpcy5fY29sb3JcbiAgICB9KTtcbiAgICB0aGlzLmNvbmZpZ3VyZUNlbGxSZW5kZXJlcihuZXcgQ29tcG9uZW50Q2VsbFJlbmRlcmVyUG9ydGFsUmVmKFNlbGVjdGlvbkNlbGxDb21wb25lbnQsIChjb21wb25lbnQsIHJvd0RhdGE6IFJvd0RhdGE8Um93PikgPT4ge1xuICAgICAgY29tcG9uZW50LnJvdyA9IHJvd0RhdGEucm93O1xuICAgICAgY29tcG9uZW50LnNlbGVjdGlvbk1vZGVsID0gdGhpcy5fc2VsZWN0aW9uTW9kZWxQcm94eTtcbiAgICAgIGNvbXBvbmVudC5jb2xvciA9IHRoaXMuX2NvbG9yXG4gICAgfSkpO1xuICAgIHRoaXMuc2V0TWFzdGVyVmlzaWJpbGl0eSh0aGlzLl9zZWxlY3Rpb25Nb2RlbFByb3h5LmVuYWJsZWQkKTtcbiAgICB0aGlzLnNldERlZmF1bHRWaXNpYmlsaXR5KGNoYWluKHRoaXMuX3NlbGVjdGlvbk1vZGVsUHJveHkubW9kZSQpLmVxdWFscyhTZWxlY3Rpb25Nb2RlbC5Nb2RlLk1VTFRJUExFKSk7XG4gIH1cblxuICBnZXQgc2VsZWN0aW9uTW9kZWwoKTogU2VsZWN0aW9uTW9kZWw8Um93PiB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGlvbk1vZGVsUHJveHk7XG4gIH1cblxuICB1c2VTZWxlY3Rpb25Nb2RlbChzZWxlY3Rpb25Nb2RlbDogU2VsZWN0aW9uTW9kZWw8Um93Pikge1xuICAgIHRoaXMuX3VzZXJTZWxlY3Rpb25Nb2RlbCA9IHNlbGVjdGlvbk1vZGVsO1xuICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsUHJveHkuc2V0UHJveHlUYXJnZXQoc2VsZWN0aW9uTW9kZWwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGdldERlZmF1bHRIZWFkZXJUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgZW5hYmxlSGVhZGVyQ29udHJvbHMoZW5hYmxlOiBib29sZWFuKTogdGhpcyB7XG4gICAgdGhpcy5fZW5hYmxlSGVhZGVyQ29udHJvbHMgPSBlbmFibGU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBjaGVja2JveCB0byB1c2UgYSB0aGVtZSBjb2xvciBlLmcuIFwicHJpbWFyeVwiIHwgXCJhY2NlbnRcIiB8IFwid2FyblwiXG4gICAqL1xuICBjb2xvcihjb2xvcjogVGhlbWVQYWxldHRlKSB7XG4gICAgdGhpcy5fY29sb3IgPSBjb2xvcjtcbiAgfVxuXG4gIHNlbGVjdFJvdyhyb3c6IFJvdykge1xuICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsUHJveHkuc2VsZWN0Q29tbWFuZC5leGVjdXRlKHJvdyk7XG4gIH1cblxuICBpc1NlbGVjdGVkKHJvdzogUm93KSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGlvbk1vZGVsUHJveHkuaXNTZWxlY3RlZChyb3cpO1xuICB9XG5cbiAgYXN5bmMgd2l0aFRlbXBvcmFyeVNlbGVjdGlvbk1vZGVsPFMgZXh0ZW5kcyBTZWxlY3Rpb25Nb2RlbDxSb3c+PihjcmVhdGVTZWxlY3Rpb25Nb2RlbDogKGdhcmJhZ2U6IEdhcmJhZ2VDb2xsZWN0b3IpID0+IFMsICBwcm9jZXNzOiAoc2VsZWN0aW9uTW9kZWw6UykgPT4gUHJvbWlzZTx2b2lkPikge1xuICAgIGNvbnN0IGdhcmJhZ2UgPSBuZXcgR2FyYmFnZUNvbGxlY3RvcigpO1xuICAgIHRoaXMuX2lzVXNpbmdUZW1wb3JhcnlTZWxlY3Rpb24kLnZhbHVlID0gdHJ1ZTtcbiAgICBjb25zdCBzZWxlY3Rpb25Nb2RlbCA9IGNyZWF0ZVNlbGVjdGlvbk1vZGVsKGdhcmJhZ2UpO1xuICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsUHJveHkuc2V0UHJveHlUYXJnZXQoc2VsZWN0aW9uTW9kZWwpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBwcm9jZXNzKHNlbGVjdGlvbk1vZGVsKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5fc2VsZWN0aW9uTW9kZWxQcm94eS5zZXRQcm94eVRhcmdldCh0aGlzLl91c2VyU2VsZWN0aW9uTW9kZWwpO1xuICAgICAgZ2FyYmFnZS5kaXNwb3NlKCk7XG4gICAgICB0aGlzLl9pc1VzaW5nVGVtcG9yYXJ5U2VsZWN0aW9uJC52YWx1ZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=
|
|
@@ -16,7 +16,7 @@ export class CellHeaderPortalRef extends CellPortalRef {
|
|
|
16
16
|
this.componentType = componentType;
|
|
17
17
|
this.initialiseHeader = initialiseHeader;
|
|
18
18
|
}
|
|
19
|
-
initialiseHost(host
|
|
19
|
+
initialiseHost(host) {
|
|
20
20
|
assert.isTruthy(host);
|
|
21
21
|
host[HEADER_CELL_RENDERER_PORTAL] = new ComponentPortal(this.componentType);
|
|
22
22
|
}
|
|
@@ -35,7 +35,7 @@ export class ComponentCellRendererPortalRef extends CellRendererPortalRef {
|
|
|
35
35
|
this.componentType = componentType;
|
|
36
36
|
this.updateComponent = updateComponent;
|
|
37
37
|
}
|
|
38
|
-
initialiseHost(host
|
|
38
|
+
initialiseHost(host) {
|
|
39
39
|
host[CELL_RENDERER_PORTAL] = new ComponentPortal(this.componentType);
|
|
40
40
|
}
|
|
41
41
|
// @Trace()
|
|
@@ -58,7 +58,7 @@ export class CellEditorPortalRef extends CellPortalRef {
|
|
|
58
58
|
this.componentType = componentType;
|
|
59
59
|
this.initialiseEditorSession = initialiseEditorSession;
|
|
60
60
|
}
|
|
61
|
-
initialiseHost(host
|
|
61
|
+
initialiseHost(host) {
|
|
62
62
|
assert.isTruthy(host);
|
|
63
63
|
host[CELL_EDITOR_PORTAL] = new ComponentPortal(this.componentType);
|
|
64
64
|
}
|
|
@@ -82,7 +82,7 @@ export class TemplateCellRendererPortalRef extends CellRendererPortalRef {
|
|
|
82
82
|
this.fillCell = fillCell;
|
|
83
83
|
this.padChild = padChild;
|
|
84
84
|
}
|
|
85
|
-
initialiseHost(host
|
|
85
|
+
initialiseHost(host) {
|
|
86
86
|
assert.isTruthy(host);
|
|
87
87
|
}
|
|
88
88
|
// @Trace()
|
|
@@ -107,7 +107,7 @@ export class CellFooterPortalRef extends CellPortalRef {
|
|
|
107
107
|
this.componentType = componentType;
|
|
108
108
|
this.initialiseHeader = initialiseHeader;
|
|
109
109
|
}
|
|
110
|
-
initialiseHost(host
|
|
110
|
+
initialiseHost(host) {
|
|
111
111
|
assert.isTruthy(host);
|
|
112
112
|
host[HEADER_CELL_RENDERER_PORTAL] = new ComponentPortal(this.componentType);
|
|
113
113
|
}
|
|
@@ -116,4 +116,4 @@ export class CellFooterPortalRef extends CellPortalRef {
|
|
|
116
116
|
this.initialiseHeader(portalComponent, host.column);
|
|
117
117
|
}
|
|
118
118
|
}
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1wb3J0YWwtcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvcmVuZGVyZXIvY2VsbC1wb3J0YWwtcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxlQUFlLEVBQUUsY0FBYyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFcEUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBTXBELE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLE1BQU0sQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO0FBQzVGLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLE1BQU0sQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO0FBQzVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0FBQzlFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0FBQzFFLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLE1BQU0sQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO0FBQ3RGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0FBR2xGLE1BQU0sT0FBZ0IsYUFBYTtDQUtsQztBQUVELE1BQU0sT0FBTyxtQkFBMkMsU0FBUSxhQUErQztJQUN4RjtJQUEwQztJQUEvRCxZQUFxQixhQUErQixFQUFXLGdCQUF1RTtRQUNwSSxLQUFLLEVBQUUsQ0FBQztRQURXLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUFXLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBdUQ7SUFFdEksQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUE4QixFQUFFLFdBQTZCO1FBQzFFLE1BQU0sQ0FBQyxRQUFRLENB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O0lBQ3RELENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50VHlwZX0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHtDb21wb25lbnRQb3J0YWwsIFRlbXBsYXRlUG9ydGFsfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7VGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHthc3NlcnR9IGZyb20gJ0Bjb29sb24vdHlwZXNjcmlwdC11dGlsaXRpZXMnO1xuaW1wb3J0IHtDb2x1bW5Nb2RlbCwgUm93RGF0YX0gZnJvbSAnLi4vY29sdW1uL2NvbHVtbi1tb2RlbCc7XG5pbXBvcnQge0VkaXRTZXNzaW9ufSBmcm9tICcuLi9lZGl0b3IvZWRpdC1zZXNzaW9uJztcbmltcG9ydCB7VGFibGVDZWxsQ29tcG9uZW50fSBmcm9tICcuL3RhYmxlLWNlbGwvdGFibGUtY2VsbC5jb21wb25lbnQnO1xuaW1wb3J0IHtUYWJsZUhlYWRlckNlbGxDb21wb25lbnR9IGZyb20gJy4vdGFibGUtaGVhZGVyLWNlbGwvdGFibGUtaGVhZGVyLWNlbGwuY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IEhFQURFUl9DRUxMX1JFTkRFUkVSX1BPUlRBTCA9IFN5bWJvbCgnYXVwLWNlbGwtaGVhZGVyLXJlbmRlcmVyLWNvbXBvbmVudC1yZWYnKTtcbmV4cG9ydCBjb25zdCBGT09URVJfQ0VMTF9SRU5ERVJFUl9QT1JUQUwgPSBTeW1ib2woJ2F1cC1jZWxsLWZvb3Rlci1yZW5kZXJlci1jb21wb25lbnQtcmVmJyk7XG5leHBvcnQgY29uc3QgQ0VMTF9SRU5ERVJFUl9QT1JUQUwgPSBTeW1ib2woJ2F1cC1jZWxsLXJlbmRlcmVyLWNvbXBvbmVudC1yZWYnKTtcbmV4cG9ydCBjb25zdCBDRUxMX0VESVRPUl9QT1JUQUwgPSBTeW1ib2woJ2F1cC1jZWxsLWVkaXRvci1jb21wb25lbnQtcmVmJyk7XG5leHBvcnQgY29uc3QgUE9SVEFMX1JFTkRFUkVSX0NPTVBPTkVOVCA9IFN5bWJvbCgnYXVwLWNlbGwtcmVuZGVyZXItcG9ydGFsLWNvbXBvbmVudCcpO1xuZXhwb3J0IGNvbnN0IFBPUlRBTF9FRElUT1JfQ09NUE9ORU5UID0gU3ltYm9sKCdhdXAtY2VsbC1lZGl0b3ItcG9ydGFsLWNvbXBvbmVudCcpO1xuXG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDZWxsUG9ydGFsUmVmPFJvdyBleHRlbmRzIG9iamVjdCwgSG9zdCwgUG9ydGFsPiB7XG5cbiAgYWJzdHJhY3QgaW5pdGlhbGlzZUhvc3QoaG9zdDogSG9zdCwgY29sdW1uTW9kZWw6IENvbHVtbk1vZGVsPFJvdz4pOiB2b2lkXG5cbiAgYWJzdHJhY3Qgb25Qb3J0YWxBdHRhY2hlZChob3N0OiBIb3N0LCBwb3J0YWxDb21wb25lbnQ6IFBvcnRhbCk6IHZvaWRcbn1cblxuZXhwb3J0IGNsYXNzIENlbGxIZWFkZXJQb3J0YWxSZWY8Um93IGV4dGVuZHMgb2JqZWN0LCBDPiBleHRlbmRzIENlbGxQb3J0YWxSZWY8Um93LCBUYWJsZUhlYWRlckNlbGxDb21wb25lbnQsIEM+IHtcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgY29tcG9uZW50VHlwZTogQ29tcG9uZW50VHlwZTxDPiwgcmVhZG9ubHkgaW5pdGlhbGlzZUhlYWRlcjogKGNvbXBvbmVudDogQywgY29sdW1uTW9kZWw6IENvbHVtbk1vZGVsPFJvdz4pID0+IHZvaWQpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgaW5pdGlhbGlzZUhvc3QoaG9zdDogVGFibGVIZWFkZXJDZWxsQ29tcG9uZW50LCBjb2x1bW5Nb2RlbDogQ29sdW1uTW9kZWw8Um93Pikge1xuICAgIGFzc2VydC5pc1RydXRoeShob3N0KTtcbiAgICBob3N0W0hFQURFUl9DRUxMX1JFTkRFUkVSX1BPUlRBTF0gPSBuZXcgQ29tcG9uZW50UG9ydGFsKHRoaXMuY29tcG9uZW50VHlwZSk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBvblBvcnRhbEF0dGFjaGVkKGhvc3Q6IFRhYmxlSGVhZGVyQ2VsbENvbXBvbmVudCwgcG9ydGFsQ29tcG9uZW50OiBDKSB7XG4gICAgdGhpcy5pbml0aWFsaXNlSGVhZGVyKHBvcnRhbENvbXBvbmVudCwgaG9zdC5jb2x1bW4pO1xuICB9XG5cbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENlbGxSZW5kZXJlclBvcnRhbFJlZjxSb3cgZXh0ZW5kcyBvYmplY3QsIFBvcnRhbD4gZXh0ZW5kcyBDZWxsUG9ydGFsUmVmPFJvdywgVGFibGVDZWxsQ29tcG9uZW50PFJvdz4sIFBvcnRhbD4ge1xuICBhYnN0cmFjdCBwdXNoU3RhdGUoaG9zdDogVGFibGVDZWxsQ29tcG9uZW50PFJvdz4pOiB2b2lkO1xufVxuXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50Q2VsbFJlbmRlcmVyUG9ydGFsUmVmPFJvdyBleHRlbmRzIG9iamVjdCwgUG9ydGFsPiBleHRlbmRzIENlbGxSZW5kZXJlclBvcnRhbFJlZjxSb3csIFBvcnRhbD4ge1xuXG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgY29tcG9uZW50VHlwZTogQ29tcG9uZW50VHlwZTxQb3J0YWw+LCByZWFkb25seSB1cGRhdGVDb21wb25lbnQ6IChjb21wb25lbnQ6IFBvcnRhbCwgcm93RGF0YTogUm93RGF0YTxSb3c+LCBmaXJzdFRpbWU6IGJvb2xlYW4pID0+IHZvaWQpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgaW5pdGlhbGlzZUhvc3QoaG9zdDogVGFibGVDZWxsQ29tcG9uZW50PFJvdz4sIGNvbHVtbk1vZGVsOiBDb2x1bW5Nb2RlbDxSb3c+KSB7XG4gICAgaG9zdFtDRUxMX1JFTkRFUkVSX1BPUlRBTF0gPSBuZXcgQ29tcG9uZW50UG9ydGFsKHRoaXMuY29tcG9uZW50VHlwZSk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBvblBvcnRhbEF0dGFjaGVkKGhvc3Q6IFRhYmxlQ2VsbENvbXBvbmVudDxSb3c+LCBwb3J0YWxDb21wb25lbnQ6IFBvcnRhbCkge1xuICAgIGhvc3RbUE9SVEFMX1JFTkRFUkVSX0NPTVBPTkVOVF0gPSBwb3J0YWxDb21wb25lbnQ7XG4gICAgdGhpcy51cGRhdGVDb21wb25lbnQocG9ydGFsQ29tcG9uZW50LCBob3N0LmdldFJvd0RhdGEoKSwgdHJ1ZSk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBwdXNoU3RhdGUoaG9zdDogVGFibGVDZWxsQ29tcG9uZW50PFJvdz4pOiB2b2lkIHtcbiAgICBpZiAoaG9zdFtQT1JUQUxfUkVOREVSRVJfQ09NUE9ORU5UXSkge1xuICAgICAgdGhpcy51cGRhdGVDb21wb25lbnQoaG9zdFtQT1JUQUxfUkVOREVSRVJfQ09NUE9ORU5UXSwgaG9zdC5nZXRSb3dEYXRhKCksIGZhbHNlKTtcbiAgICB9XG4gIH1cblxufVxuXG5leHBvcnQgY2xhc3MgQ2VsbEVkaXRvclBvcnRhbFJlZjxSb3cgZXh0ZW5kcyBvYmplY3QsIFBvcnRhbD4gZXh0ZW5kcyBDZWxsUG9ydGFsUmVmPFJvdywgVGFibGVDZWxsQ29tcG9uZW50PFJvdz4sIFBvcnRhbD4ge1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGNvbXBvbmVudFR5cGU6IENvbXBvbmVudFR5cGU8UG9ydGFsPiwgcmVhZG9ubHkgaW5pdGlhbGlzZUVkaXRvclNlc3Npb246IChjb21wb25lbnQ6IFBvcnRhbCwgZWRpdFNlc3Npb246IEVkaXRTZXNzaW9uPFJvdz4pID0+IHZvaWQpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgaW5pdGlhbGlzZUhvc3QoaG9zdDogVGFibGVDZWxsQ29tcG9uZW50PFJvdz4sIGNvbHVtbk1vZGVsOiBDb2x1bW5Nb2RlbDxSb3c+KSB7XG4gICAgYXNzZXJ0LmlzVHJ1dGh5KGhvc3QpO1xuICAgIGhvc3RbQ0VMTF9FRElUT1JfUE9SVEFMXSA9IG5ldyBDb21wb25lbnRQb3J0YWwodGhpcy5jb21wb25lbnRUeXBlKTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIG9uUG9ydGFsQXR0YWNoZWQoaG9zdDogVGFibGVDZWxsQ29tcG9uZW50PFJvdz4sIHBvcnRhbENvbXBvbmVudDogUG9ydGFsKSB7XG4gICAgaG9zdFtQT1JUQUxfRURJVE9SX0NPTVBPTkVOVF0gPSBwb3J0YWxDb21wb25lbnQ7XG4gICAgdGhpcy5pbml0aWFsaXNlRWRpdG9yU2Vzc2lvbihwb3J0YWxDb21wb25lbnQsIGhvc3QuZWRpdFNlc3Npb24pO1xuICB9XG5cbn1cblxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlQ2VsbFJlbmRlcmVyUG9ydGFsUmVmPFJvdyBleHRlbmRzIG9iamVjdD4gZXh0ZW5kcyBDZWxsUmVuZGVyZXJQb3J0YWxSZWY8Um93LCB1bmRlZmluZWQ+IHtcblxuICBwcml2YXRlIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XG4gIHByaXZhdGUgZmlsbENlbGw6IGJvb2xlYW47XG4gIHByaXZhdGUgcGFkQ2hpbGQ6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3RlclBvcnRhbCh0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55Piwgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZiwgZmlsbENlbGw6IGJvb2xlYW4sIHBhZENoaWxkOiBib29sZWFuKSB7XG4gICAgdGhpcy50ZW1wbGF0ZVJlZiA9IHRlbXBsYXRlUmVmO1xuICAgIHRoaXMudmlld0NvbnRhaW5lciA9IHZpZXdDb250YWluZXI7XG4gICAgdGhpcy5maWxsQ2VsbCA9IGZpbGxDZWxsO1xuICAgIHRoaXMucGFkQ2hpbGQgPSBwYWRDaGlsZDtcbiAgfVxuXG4gIGluaXRpYWxpc2VIb3N0KGhvc3Q6IFRhYmxlQ2VsbENvbXBvbmVudDxSb3c+LCBjb2x1bW5Nb2RlbDogQ29sdW1uTW9kZWw8Um93Pikge1xuICAgIGFzc2VydC5pc1RydXRoeShob3N0KTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIG9uUG9ydGFsQXR0YWNoZWQoaG9zdDogVGFibGVDZWxsQ29tcG9uZW50PFJvdz4sIHBvcnRhbENvbXBvbmVudDogdW5kZWZpbmVkKSB7XG4gICAgLy8gIGRvbid0IGNhcmVcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIHB1c2hTdGF0ZShob3N0OiBUYWJsZUNlbGxDb21wb25lbnQ8Um93Pik6IHZvaWQge1xuICAgIGhvc3RbQ0VMTF9SRU5ERVJFUl9QT1JUQUxdID0gdGhpcy5jcmVhdGVQb3J0YWwoaG9zdC5nZXRSb3dEYXRhKCkpO1xuICAgIGhvc3QuZmlsbENlbGwgPSB0aGlzLmZpbGxDZWxsO1xuICAgIGhvc3QucGFkQ2hpbGQgPSB0aGlzLnBhZENoaWxkO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVQb3J0YWwoZGF0YTogUm93RGF0YTxSb3c+KSB7XG4gICAgcmV0dXJuIG5ldyBUZW1wbGF0ZVBvcnRhbDxhbnk+KHRoaXMudGVtcGxhdGVSZWYsIHRoaXMudmlld0NvbnRhaW5lciwgey4uLihkYXRhKSwgJGltcGxpY2l0OiBkYXRhLnJvd30pO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDZWxsRm9vdGVyUG9ydGFsUmVmPFJvdyBleHRlbmRzIG9iamVjdCwgQz4gZXh0ZW5kcyBDZWxsUG9ydGFsUmVmPFJvdywgVGFibGVIZWFkZXJDZWxsQ29tcG9uZW50LCBDPiB7XG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGNvbXBvbmVudFR5cGU6IENvbXBvbmVudFR5cGU8Qz4sIHJlYWRvbmx5IGluaXRpYWxpc2VIZWFkZXI6IChjb21wb25lbnQ6IEMsIGNvbHVtbk1vZGVsOiBDb2x1bW5Nb2RlbDxSb3c+KSA9PiB2b2lkKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGluaXRpYWxpc2VIb3N0KGhvc3Q6IFRhYmxlSGVhZGVyQ2VsbENvbXBvbmVudCwgY29sdW1uTW9kZWw6IENvbHVtbk1vZGVsPFJvdz4pIHtcbiAgICBhc3NlcnQuaXNUcnV0aHkoaG9zdCk7XG4gICAgaG9zdFtIRUFERVJfQ0VMTF9SRU5ERVJFUl9QT1JUQUxdID0gbmV3IENvbXBvbmVudFBvcnRhbCh0aGlzLmNvbXBvbmVudFR5cGUpO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgb25Qb3J0YWxBdHRhY2hlZChob3N0OiBUYWJsZUhlYWRlckNlbGxDb21wb25lbnQsIHBvcnRhbENvbXBvbmVudDogQykge1xuICAgIHRoaXMuaW5pdGlhbGlzZUhlYWRlcihwb3J0YWxDb21wb25lbnQsIGhvc3QuY29sdW1uKTtcbiAgfVxuXG59XG5cbiJdfQ==
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1wb3J0YWwtcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvcmVuZGVyZXIvY2VsbC1wb3J0YWwtcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxlQUFlLEVBQUUsY0FBYyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFcEUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBTXBELE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLE1BQU0sQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO0FBQzVGLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLE1BQU0sQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO0FBQzVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0FBQzlFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0FBQzFFLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLE1BQU0sQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO0FBQ3RGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0FBR2xGLE1BQU0sT0FBZ0IsYUFBYTtDQUtsQztBQUVELE1BQU0sT0FBTyxtQkFBMkMsU0FBUSxhQUErQztJQUN4RjtJQUEwQztJQUEvRCxZQUFxQixhQUErQixFQUFXLGdCQUF1RTtRQUNwSSxLQUFLLEVBQUUsQ0FBQztRQURXLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUFXLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBdUQ7SUFFdEksQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFVO1FBQ3ZCLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFD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ZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHtDb21wb25lbnRQb3J0YWwsIFRlbXBsYXRlUG9ydGFsfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7SG9zdCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHthc3NlcnR9IGZyb20gJ0Bjb29sb24vdHlwZXNjcmlwdC11dGlsaXRpZXMnO1xuaW1wb3J0IHtDb2x1bW5Nb2RlbCwgUm93RGF0YX0gZnJvbSAnLi4vY29sdW1uL2NvbHVtbi1tb2RlbCc7XG5pbXBvcnQge0VkaXRTZXNzaW9ufSBmcm9tICcuLi9lZGl0b3IvZWRpdC1zZXNzaW9uJztcbmltcG9ydCB7VGFibGVDZWxsQ29tcG9uZW50fSBmcm9tICcuL3RhYmxlLWNlbGwvdGFibGUtY2VsbC5jb21wb25lbnQnO1xuaW1wb3J0IHtUYWJsZUhlYWRlckNlbGxDb21wb25lbnR9IGZyb20gJy4vdGFibGUtaGVhZGVyLWNlbGwvdGFibGUtaGVhZGVyLWNlbGwuY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IEhFQURFUl9DRUxMX1JFTkRFUkVSX1BPUlRBTCA9IFN5bWJvbCgnYXVwLWNlbGwtaGVhZGVyLXJlbmRlcmVyLWNvbXBvbmVudC1yZWYnKTtcbmV4cG9ydCBjb25zdCBGT09URVJfQ0VMTF9SRU5ERVJFUl9QT1JUQUwgPSBTeW1ib2woJ2F1cC1jZWxsLWZvb3Rlci1yZW5kZXJlci1jb21wb25lbnQtcmVmJyk7XG5leHBvcnQgY29uc3QgQ0VMTF9SRU5ERVJFUl9QT1JUQUwgPSBTeW1ib2woJ2F1cC1jZWxsLXJlbmRlcmVyLWNvbXBvbmVudC1yZWYnKTtcbmV4cG9ydCBjb25zdCBDRUxMX0VESVRPUl9QT1JUQUwgPSBTeW1ib2woJ2F1cC1jZWxsLWVkaXRvci1jb21wb25lbnQtcmVmJyk7XG5leHBvcnQgY29uc3QgUE9SVEFMX1JFTkRFUkVSX0NPTVBPTkVOVCA9IFN5bWJvbCgnYXVwLWNlbGwtcmVuZGVyZXItcG9ydGFsLWNvbXBvbmVudCcpO1xuZXhwb3J0IGNvbnN0IFBPUlRBTF9FRElUT1JfQ09NUE9ORU5UID0gU3ltYm9sKCdhdXAtY2VsbC1lZGl0b3ItcG9ydGFsLWNvbXBvbmVudCcpO1xuXG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDZWxsUG9ydGFsUmVmPFJvdyBleHRlbmRzIG9iamVjdCwgSG9zdCwgUG9ydGFsPiB7XG5cbiAgYWJzdHJhY3QgaW5pdGlhbGlzZUhvc3QoaG9zdDogSG9zdCk6IHZvaWRcblxuICBhYnN0cmFjdCBvblBvcnRhbEF0dGFjaGVkKGhvc3Q6IEhvc3QsIHBvcnRhbENvbXBvbmVudDogUG9ydGFsKTogdm9pZFxufVxuXG5leHBvcnQgY2xhc3MgQ2VsbEhlYWRlclBvcnRhbFJlZjxSb3cgZXh0ZW5kcyBvYmplY3QsIEM+IGV4dGVuZHMgQ2VsbFBvcnRhbFJlZjxSb3csIFRhYmxlSGVhZGVyQ2VsbENvbXBvbmVudCwgQz4ge1xuICBjb25zdHJ1Y3RvcihyZWFkb25seSBjb21wb25lbnRUeXBlOiBDb21wb25lbnRUeXBlPEM+LCByZWFkb25seSBpbml0aWFsaXNlSGVhZGVyOiAoY29tcG9uZW50OiBDLCBjb2x1bW5Nb2RlbDogQ29sdW1uTW9kZWw8Um93PikgPT4gdm9pZCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBpbml0aWFsaXNlSG9zdChob3N0OiBIb3N0KTogdm9pZCB7XG4gICAgYXNzZXJ0LmlzVHJ1dGh5KGhvc3QpO1xuICAgIGhvc3RbSEVBREVSX0NFTExfUkVOREVSRVJfUE9SVEFMXSA9IG5ldyBDb21wb25lbnRQb3J0YWwodGhpcy5jb21wb25lbnRUeXBlKTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIG9uUG9ydGFsQXR0YWNoZWQoaG9zdDogVGFibGVIZWFkZXJDZWxsQ29tcG9uZW50LCBwb3J0YWxDb21wb25lbnQ6IEMpIHtcbiAgICB0aGlzLmluaXRpYWxpc2VIZWFkZXIocG9ydGFsQ29tcG9uZW50LCBob3N0LmNvbHVtbik7XG4gIH1cblxufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ2VsbFJlbmRlcmVyUG9ydGFsUmVmPFJvdyBleHRlbmRzIG9iamVjdCwgUG9ydGFsPiBleHRlbmRzIENlbGxQb3J0YWxSZWY8Um93LCBUYWJsZUNlbGxDb21wb25lbnQ8Um93PiwgUG9ydGFsPiB7XG4gIGFic3RyYWN0IHB1c2hTdGF0ZShob3N0OiBUYWJsZUNlbGxDb21wb25lbnQ8Um93Pik6IHZvaWQ7XG59XG5cbmV4cG9ydCBjbGFzcyBDb21wb25lbnRDZWxsUmVuZGVyZXJQb3J0YWxSZWY8Um93IGV4dGVuZHMgb2JqZWN0LCBQb3J0YWw+IGV4dGVuZHMgQ2VsbFJlbmRlcmVyUG9ydGFsUmVmPFJvdywgUG9ydGFsPiB7XG5cblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBjb21wb25lbnRUeXBlOiBDb21wb25lbnRUeXBlPFBvcnRhbD4sIHJlYWRvbmx5IHVwZGF0ZUNvbXBvbmVudDogKGNvbXBvbmVudDogUG9ydGFsLCByb3dEYXRhOiBSb3dEYXRhPFJvdz4sIGZpcnN0VGltZTogYm9vbGVhbikgPT4gdm9pZCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBpbml0aWFsaXNlSG9zdChob3N0OiBIb3N0KTogdm9pZCB7XG4gICAgaG9zdFtDRUxMX1JFTkRFUkVSX1BPUlRBTF0gPSBuZXcgQ29tcG9uZW50UG9ydGFsKHRoaXMuY29tcG9uZW50VHlwZSk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBvblBvcnRhbEF0dGFjaGVkKGhvc3Q6IFRhYmxlQ2VsbENvbXBvbmVudDxSb3c+LCBwb3J0YWxDb21wb25lbnQ6IFBvcnRhbCkge1xuICAgIGhvc3RbUE9SVEFMX1JFTkRFUkVSX0NPTVBPTkVOVF0gPSBwb3J0YWxDb21wb25lbnQ7XG4gICAgdGhpcy51cGRhdGVDb21wb25lbnQocG9ydGFsQ29tcG9uZW50LCBob3N0LmdldFJvd0RhdGEoKSwgdHJ1ZSk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBwdXNoU3RhdGUoaG9zdDogVGFibGVDZWxsQ29tcG9uZW50PFJvdz4pOiB2b2lkIHtcbiAgICBpZiAoaG9zdFtQT1JUQUxfUkVOREVSRVJfQ09NUE9ORU5UXSkge1xuICAgICAgdGhpcy51cGRhdGVDb21wb25lbnQoaG9zdFtQT1JUQUxfUkVOREVSRVJfQ09NUE9ORU5UXSwgaG9zdC5nZXRSb3dEYXRhKCksIGZhbHNlKTtcbiAgICB9XG4gIH1cblxufVxuXG5leHBvcnQgY2xhc3MgQ2VsbEVkaXRvclBvcnRhbFJlZjxSb3cgZXh0ZW5kcyBvYmplY3QsIFBvcnRhbD4gZXh0ZW5kcyBDZWxsUG9ydGFsUmVmPFJvdywgVGFibGVDZWxsQ29tcG9uZW50PFJvdz4sIFBvcnRhbD4ge1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGNvbXBvbmVudFR5cGU6IENvbXBvbmVudFR5cGU8UG9ydGFsPiwgcmVhZG9ubHkgaW5pdGlhbGlzZUVkaXRvclNlc3Npb246IChjb21wb25lbnQ6IFBvcnRhbCwgZWRpdFNlc3Npb246IEVkaXRTZXNzaW9uPFJvdz4pID0+IHZvaWQpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgaW5pdGlhbGlzZUhvc3QoaG9zdDogSG9zdCk6IHZvaWQge1xuICAgIGFzc2VydC5pc1RydXRoeShob3N0KTtcbiAgICBob3N0W0NFTExfRURJVE9SX1BPUlRBTF0gPSBuZXcgQ29tcG9uZW50UG9ydGFsKHRoaXMuY29tcG9uZW50VHlwZSk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBvblBvcnRhbEF0dGFjaGVkKGhvc3Q6IFRhYmxlQ2VsbENvbXBvbmVudDxSb3c+LCBwb3J0YWxDb21wb25lbnQ6IFBvcnRhbCkge1xuICAgIGhvc3RbUE9SVEFMX0VESVRPUl9DT01QT05FTlRdID0gcG9ydGFsQ29tcG9uZW50O1xuICAgIHRoaXMuaW5pdGlhbGlzZUVkaXRvclNlc3Npb24ocG9ydGFsQ29tcG9uZW50LCBob3N0LmVkaXRTZXNzaW9uKTtcbiAgfVxuXG59XG5cbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZUNlbGxSZW5kZXJlclBvcnRhbFJlZjxSb3cgZXh0ZW5kcyBvYmplY3Q+IGV4dGVuZHMgQ2VsbFJlbmRlcmVyUG9ydGFsUmVmPFJvdywgdW5kZWZpbmVkPiB7XG5cbiAgcHJpdmF0ZSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcbiAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xuICBwcml2YXRlIGZpbGxDZWxsOiBib29sZWFuO1xuICBwcml2YXRlIHBhZENoaWxkOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJQb3J0YWwodGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsIGZpbGxDZWxsOiBib29sZWFuLCBwYWRDaGlsZDogYm9vbGVhbikge1xuICAgIHRoaXMudGVtcGxhdGVSZWYgPSB0ZW1wbGF0ZVJlZjtcbiAgICB0aGlzLnZpZXdDb250YWluZXIgPSB2aWV3Q29udGFpbmVyO1xuICAgIHRoaXMuZmlsbENlbGwgPSBmaWxsQ2VsbDtcbiAgICB0aGlzLnBhZENoaWxkID0gcGFkQ2hpbGQ7XG4gIH1cblxuICBpbml0aWFsaXNlSG9zdChob3N0OiBIb3N0KTogdm9pZCB7XG4gICAgYXNzZXJ0LmlzVHJ1dGh5KGhvc3QpO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgb25Qb3J0YWxBdHRhY2hlZChob3N0OiBUYWJsZUNlbGxDb21wb25lbnQ8Um93PiwgcG9ydGFsQ29tcG9uZW50OiB1bmRlZmluZWQpIHtcbiAgICAvLyAgZG9uJ3QgY2FyZVxuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgcHVzaFN0YXRlKGhvc3Q6IFRhYmxlQ2VsbENvbXBvbmVudDxSb3c+KTogdm9pZCB7XG4gICAgaG9zdFtDRUxMX1JFTkRFUkVSX1BPUlRBTF0gPSB0aGlzLmNyZWF0ZVBvcnRhbChob3N0LmdldFJvd0RhdGEoKSk7XG4gICAgaG9zdC5maWxsQ2VsbCA9IHRoaXMuZmlsbENlbGw7XG4gICAgaG9zdC5wYWRDaGlsZCA9IHRoaXMucGFkQ2hpbGQ7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVBvcnRhbChkYXRhOiBSb3dEYXRhPFJvdz4pIHtcbiAgICByZXR1cm4gbmV3IFRlbXBsYXRlUG9ydGFsPGFueT4odGhpcy50ZW1wbGF0ZVJlZiwgdGhpcy52aWV3Q29udGFpbmVyLCB7Li4uKGRhdGEpLCAkaW1wbGljaXQ6IGRhdGEucm93fSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENlbGxGb290ZXJQb3J0YWxSZWY8Um93IGV4dGVuZHMgb2JqZWN0LCBDPiBleHRlbmRzIENlbGxQb3J0YWxSZWY8Um93LCBUYWJsZUhlYWRlckNlbGxDb21wb25lbnQsIEM+IHtcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgY29tcG9uZW50VHlwZTogQ29tcG9uZW50VHlwZTxDPiwgcmVhZG9ubHkgaW5pdGlhbGlzZUhlYWRlcjogKGNvbXBvbmVudDogQywgY29sdW1uTW9kZWw6IENvbHVtbk1vZGVsPFJvdz4pID0+IHZvaWQpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgaW5pdGlhbGlzZUhvc3QoaG9zdDogSG9zdCk6IHZvaWQge1xuICAgIGFzc2VydC5pc1RydXRoeShob3N0KTtcbiAgICBob3N0W0hFQURFUl9DRUxMX1JFTkRFUkVSX1BPUlRBTF0gPSBuZXcgQ29tcG9uZW50UG9ydGFsKHRoaXMuY29tcG9uZW50VHlwZSk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBvblBvcnRhbEF0dGFjaGVkKGhvc3Q6IFRhYmxlSGVhZGVyQ2VsbENvbXBvbmVudCwgcG9ydGFsQ29tcG9uZW50OiBDKSB7XG4gICAgdGhpcy5pbml0aWFsaXNlSGVhZGVyKHBvcnRhbENvbXBvbmVudCwgaG9zdC5jb2x1bW4pO1xuICB9XG5cbn1cblxuIl19
|