@progress-chef/platform-shared-components 0.0.7 → 0.0.9
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.
|
@@ -85,7 +85,6 @@ export class GridPaginationComponent {
|
|
|
85
85
|
this.setSelectableSettings();
|
|
86
86
|
}
|
|
87
87
|
ngOnInit() {
|
|
88
|
-
this.selectedRows = this.preSelected;
|
|
89
88
|
for (let column of this.columnData) {
|
|
90
89
|
column.sortable = column.sortable == undefined ? true : column.sortable;
|
|
91
90
|
}
|
|
@@ -133,6 +132,15 @@ export class GridPaginationComponent {
|
|
|
133
132
|
this.grid.expandRow(id);
|
|
134
133
|
});
|
|
135
134
|
}
|
|
135
|
+
this.selectedRows = this.preSelected;
|
|
136
|
+
if (this.selectedRows.length > 0) {
|
|
137
|
+
if (this.selectedRows.length == this.gridView.total) {
|
|
138
|
+
this.selectAllState = 'checked';
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
this.selectAllState = 'indeterminate';
|
|
142
|
+
}
|
|
143
|
+
}
|
|
136
144
|
this.initialGridHeight =
|
|
137
145
|
this.gridElement.nativeElement.offsetHeight + this.gridBottomSpace;
|
|
138
146
|
this.getGridHeight();
|
|
@@ -426,4 +434,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
426
434
|
type: HostListener,
|
|
427
435
|
args: ['window:resize', ['$event']]
|
|
428
436
|
}] } });
|
|
429
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL21vbGVjdWxlcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL21vbGVjdWxlcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBQ1QsWUFBWSxFQUVaLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFHTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUlMLGFBQWEsR0FLZCxNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBa0IsT0FBTyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxFQUVMLGVBQWUsRUFDZixhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2pCLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7Ozs7QUFPbkMsTUFBTSxPQUFPLHVCQUF1QjtJQTBFbEM7UUFqRVMsYUFBUSxHQUFtQixFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ2xELFNBQUksR0FBVyxDQUFDLENBQUM7UUFDakIsZUFBVSxHQUFRLEVBQUUsQ0FBQztRQUNyQixhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBQ3JCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0Isa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFDM0IsNEJBQXVCLEdBQVksS0FBSyxDQUFDO1FBQ3pDLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQUNwQyxrQ0FBNkIsR0FBWSxJQUFJLENBQUM7UUFDOUMscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBQ2xDLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsU0FBSSxHQUErQixVQUFVLENBQUM7UUFDOUMsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFDcEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsY0FBUyxHQUFZLElBQUksQ0FBQztRQUUxQix5QkFBb0IsR0FBVyxFQUFFLENBQUM7UUFDbEMscUJBQWdCLEdBQVcsc0JBQXNCLENBQUM7UUFDakQsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO1FBQzdDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRXRDLHVCQUFrQixHQUF1QixFQUFFLENBQUM7UUFDbkMsY0FBUyxHQUFRLEVBQUUsQ0FBQztRQUNwQixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzFCLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO1FBQ3ZDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUMxQyxTQUFJLEdBQVksZ0JBQWdCLENBQUM7UUFDakMscUJBQWdCLEdBQVcsRUFBRSxDQUFDO1FBQ3ZDLFNBQUksR0FBUSxFQUFFLENBQUM7UUFDTixpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUNqQix5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ2hELGdCQUFXLEdBQVUsRUFBRSxDQUFDO1FBQ2pDLHVCQUFrQixHQUFVLEVBQUUsQ0FBQztRQUNyQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDeEMsMEJBQXFCLEdBQWEsRUFBRSxDQUFDO1FBQ3JDLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUNsQyxTQUFJLEdBQXFCO1lBQ2hDO2dCQUNFLEtBQUssRUFBRSxFQUFFO2dCQUNULEdBQUcsRUFBRSxTQUFTO2FBQ2Y7U0FDRixDQUFDO1FBQ08sa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDckIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQzNDLGtCQUFhLEdBQVksZUFBZSxDQUFDO1FBQ3pDLGdCQUFXLEdBQVksYUFBYSxDQUFDO1FBQ25DLG1CQUFjLEdBQWEsRUFBRSxDQUFDO1FBQzlCLDBCQUFxQixHQUFZLEtBQUssQ0FBQztRQUN2QyxzQkFBaUIsR0FBVyxFQUFFLENBQUM7UUFDeEMseUJBQW9CLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUMxQyxVQUFLLEdBQVUsRUFBRSxDQUFDO1FBQ2xCLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFDZCxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIsc0JBQWlCLEdBQWEsRUFBRSxDQUFDO1FBRTFDLG9CQUFlLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLGlCQUFZLEdBQVEsQ0FBQyxDQUFDO1FBQ3RCLG1CQUFjLEdBQTJCLFdBQVcsQ0FBQztRQUNyRCxpQkFBWSxHQUFVLEVBQUUsQ0FBQztRQW9QekIsYUFBUSxHQUFHLENBQUMsSUFBa0IsRUFBRSxFQUFFO1lBQ2hDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDcEIsT0FBTztvQkFDTCxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQ3pDO2lCQUNGLENBQUM7YUFDSDtZQUNELE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQyxDQUFDO1FBMVBBLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3JDLEtBQUssSUFBSSxNQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNsQyxNQUFNLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7U0FDekU7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN2QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDckI7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQzVFLElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzNFLHVEQUF1RDtRQUN2RCxJQUFJLGVBQWUsS0FBSyxlQUFlLEVBQUU7WUFDdkMsMENBQTBDO1lBQzFDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxFQUFFLENBQUM7WUFDN0IsS0FDRSxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQ1gsR0FBRyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUNoRCxHQUFHLEVBQUUsRUFDTDtnQkFDQSxLQUFLLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFO29CQUN4RCwrQ0FBK0M7b0JBQy9DLElBQ0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDO3dCQUNsRCxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUN4Qzt3QkFDQSxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUM7d0JBQ2xCLDZHQUE2Rzt3QkFDN0csS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFOzRCQUNyRCxJQUNFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDO2dDQUMzQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsRUFDbEQ7Z0NBQ0EsS0FBSyxHQUFHLElBQUksQ0FBQzs2QkFDZDt5QkFDRjt3QkFDRCxJQUFJLENBQUMsS0FBSyxFQUFFOzRCQUNWLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzt5QkFDdkQ7cUJBQ0Y7aUJBQ0Y7YUFDRjtZQUNELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDdEU7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQzNDO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUM5QixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO2dCQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMxQixDQUFDLENBQUMsQ0FBQztTQUNKO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQjtZQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUNyRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFzQjtRQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQscUJBQXFCO1FBQ25CLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUMvQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztTQUMxQjtRQUVELElBQUksQ0FBQyxrQkFBa0IsR0FBRztZQUN4QixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDL0IsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXO1NBQ3ZCLENBQUM7SUFDSixDQUFDO0lBRUQsNkRBQTZEO0lBQzdEOzs7Ozs7UUFNSTtJQUVKLGtCQUFrQixDQUFDLElBQWM7UUFDL0IsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3RDLElBQUksaUJBQWlCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUU7WUFDNUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUM7U0FDakM7YUFBTSxJQUFJLGlCQUFpQixJQUFJLENBQUMsRUFBRTtZQUNqQyxJQUFJLENBQUMsY0FBYyxHQUFHLFdBQVcsQ0FBQztTQUNuQzthQUFNO1lBQ0wsSUFBSSxDQUFDLGNBQWMsR0FBRyxlQUFlLENBQUM7U0FDdkM7SUFDSCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsSUFBUztRQUN6QixLQUFLLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDdkQsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ2xCLEtBQUssSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRTtnQkFDL0MsSUFDRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztvQkFDekMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEVBQzFEO29CQUNBLEtBQUssR0FBRyxJQUFJLENBQUM7aUJBQ2Q7YUFDRjtZQUNELElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUNqRDtTQUNGO1FBQ0QsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDcEMsS0FBSyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFO2dCQUN6RCxLQUFLLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUU7b0JBQy9DLElBQ0UsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUM7d0JBQ3pDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUM1RDt3QkFDQSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7cUJBQzFCO2lCQUNGO2dCQUNELEtBQUssSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFO29CQUM3RCxJQUNFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUM7d0JBQ3ZELElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUM1RDt3QkFDQSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQzt3QkFDdkMsdUNBQXVDO3dCQUN2QyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FDbEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQzdELENBQUM7d0JBQ0YsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLEVBQUU7NEJBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQzt5QkFDbkM7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQVMsRUFBRSxVQUFlO1FBQ3JDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxjQUFjLENBQUMsT0FBWTtRQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQW9CO1FBQ25DLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLElBQUksSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQ3pELE9BQU87YUFDUjtZQUNELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQy9DO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFzQjtRQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN2QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDckI7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsUUFBUSxHQUFHO1lBQ2QsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzdDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUs7U0FDNUIsQ0FBQztJQUNKLENBQUM7SUFFRCxTQUFTLENBQUMsRUFBVTtRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFRCxXQUFXLENBQUMsRUFBVTtRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvRCxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUNuQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1lBQ3hDLE1BQU0sUUFBUSxHQUFRLFFBQVEsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDMUQsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLHFCQUFxQixFQUFFLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFDekUsSUFBSSxZQUFZLEdBQUcsVUFBVSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtnQkFDdEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Z0JBQ3JCLE9BQU87YUFDUjtZQUNELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN0QjtJQUNILENBQUM7SUFFRCxRQUFRLENBQUMsVUFBZTtRQUN0QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNULElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3JDLE9BQU8sYUFBYSxDQUFDO1NBQ3RCO1FBQ0QsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztJQUVELGFBQWE7UUFDWCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3hDLE1BQU0sUUFBUSxHQUFRLFFBQVEsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUQsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLHFCQUFxQixFQUFFLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDekUsTUFBTSxVQUFVLEdBQ2QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyx1Q0FBdUM7UUFDN0csSUFBSSxVQUFVLEdBQUcsVUFBVSxJQUFJLFlBQVksRUFBRTtZQUMzQyxJQUFJLENBQUMsTUFBTSxHQUFHLFlBQVksR0FBRyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDbEU7SUFDSCxDQUFDO0lBR0QsTUFBTSxDQUFDLEVBQU87UUFDWixJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDN0MsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztZQUMxQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztTQUN0QjtRQUNELElBQUksSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsV0FBVyxFQUFFO1lBQzFDLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1NBQ3ZCO1FBQ0QsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFhRCxpQkFBaUI7UUFDZixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsb0JBQW9CLEdBQUcsR0FBRyxDQUFDO1lBQ2hDLE9BQU8sWUFBWSxDQUFDO1NBQ3JCO1FBQ0QsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztRQUMvQixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxZQUFvQztRQUNwRCxJQUFJLFlBQVksS0FBSyxTQUFTLEVBQUU7WUFDOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUk7aUJBQ2xDLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO2lCQUNuRCxNQUFNLENBQUMsQ0FBQyxFQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzNCLElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDO1NBQ2pDO2FBQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxjQUFjLEdBQUcsZUFBZSxDQUFDO1NBQ3ZDO2FBQU07WUFDTCxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsY0FBYyxHQUFHLFdBQVcsQ0FBQztTQUNuQztJQUNILENBQUM7K0dBN1ZVLHVCQUF1QjttR0FBdkIsdUJBQXVCLDgzREFNdkIsYUFBYSxrS0M3QzFCLGt6S0ErRkE7OzRGRHhEYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0UscUJBQXFCOzBFQU9FLFdBQVc7c0JBQTNDLFlBQVk7dUJBQUMsaUJBQWlCO2dCQUNDLGNBQWM7c0JBQTdDLFlBQVk7dUJBQUMsZ0JBQWdCO2dCQUNBLFlBQVk7c0JBQXpDLFlBQVk7dUJBQUMsY0FBYztnQkFDRixJQUFJO3NCQUE3QixTQUFTO3VCQUFDLGFBQWE7Z0JBQ0UsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhO2dCQUVmLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLDZCQUE2QjtzQkFBckMsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDSSxlQUFlO3NCQUF4QixNQUFNO2dCQUNFLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0ksb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNFLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksWUFBWTtzQkFBckIsTUFBTTtnQkFDRSxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFNRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU07Z0JBR0UsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUVJLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0UsS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkE4T04sTUFBTTtzQkFETCxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgU2VsZWN0YWJsZVNldHRpbmdzLFxuICBTZWxlY3RhYmxlTW9kZSxcbiAgQ2VsbENsaWNrRXZlbnQsXG4gIEdyaWRDb21wb25lbnQsXG4gIEdyaWREYXRhUmVzdWx0LFxuICBQYWdlQ2hhbmdlRXZlbnQsXG4gIFJvd0NsYXNzQXJncyxcbiAgU2VsZWN0QWxsQ2hlY2tib3hTdGF0ZSxcbn0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItZ3JpZCc7XG5pbXBvcnQgeyBTb3J0RGVzY3JpcHRvciwgb3JkZXJCeSB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1kYXRhLXF1ZXJ5JztcbmltcG9ydCB7XG4gIFNWR0ljb24sXG4gIGNoZXZyb25Eb3duSWNvbixcbiAgY2hldnJvblVwSWNvbixcbiAgbW9yZVZlcnRpY2FsSWNvblxufSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tc3ZnLWljb25zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWdyaWQtcGFnaW5hdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9ncmlkLXBhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ncmlkLXBhZ2luYXRpb24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgR3JpZFBhZ2luYXRpb25Db21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdFxue1xuICBAQ29udGVudENoaWxkKCdtdWx0aUNvbHVtbkRhdGEnKSB0ZW1wbGF0ZVJlZiE6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsO1xuICBAQ29udGVudENoaWxkKCdkZXRhaWxUZW1wbGF0ZScpIGRldGFpbFRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PiB8IG51bGw7XG4gIEBDb250ZW50Q2hpbGQoJ2ltcGFjdENvbHVtbicpIGltcGFjdENvbHVtbiE6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsO1xuICBAVmlld0NoaWxkKEdyaWRDb21wb25lbnQpIGdyaWQhOiBHcmlkQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdncmlkRWxlbWVudCcpIGdyaWRFbGVtZW50ITogRWxlbWVudFJlZjtcblxuICBASW5wdXQoKSBncmlkVmlldzogR3JpZERhdGFSZXN1bHQgPSB7IGRhdGE6IFtdLCB0b3RhbDogMCB9O1xuICBASW5wdXQoKSBza2lwOiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBjb2x1bW5EYXRhOiBhbnkgPSBbXTtcbiAgQElucHV0KCkgcGFnZVNpemU6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIHBhZ2VhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNvcnRhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGdyb3VwYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSByZW9yZGVyYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSByZXNpemFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgY2hlY2tCb3hXaWR0aDogbnVtYmVyID0gNDU7XG4gIEBJbnB1dCgpIGNoZWNrQm94Q29sdW1uUmVzaXphYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNoZWNrQm94Q29sdW1uTWVudTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjaGVja0JveENvbHVtblNob3dTZWxlY3RlZEFsbDogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGNoZWNrQm94UmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgY29sdW1uTWVudTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBtb2RlOiBTZWxlY3RhYmxlTW9kZSB8IHVuZGVmaW5lZCA9ICdtdWx0aXBsZSc7XG4gIEBJbnB1dCgpIGNoZWNrYm94T25seSA9IHRydWU7XG4gIEBJbnB1dCgpIGRyYWdDb2x1bW5zID0gZmFsc2U7XG4gIEBJbnB1dCgpIG5hdmlnYWJsZTogYm9vbGVhbiA9IHRydWU7XG4gIGhlaWdodDogYW55O1xuICBASW5wdXQoKSBncmlkUm93U2VsZWN0QnlWYWx1ZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIG5vUmVjb3Jkc0NvbnRlbnQ6IHN0cmluZyA9ICdObyBSZWNvcmRzIEF2YWlsYWJsZSc7XG4gIEBPdXRwdXQoKSBzZWxlY3RlZFJvd0RhdGEgPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xuICBASW5wdXQoKSBzaG93VG9vbGJhcjogYm9vbGVhbiA9IGZhbHNlO1xuICBleHRyYWN0RGF0YUl0ZW1zOiBhbnk7XG4gIHNlbGVjdGFibGVTZXR0aW5nczogU2VsZWN0YWJsZVNldHRpbmdzID0ge307XG4gIEBJbnB1dCgpIGtlYmFiTGlzdDogYW55ID0gW107XG4gIEBJbnB1dCgpIHNob3dLZWJhYjogYm9vbGVhbiA9IGZhbHNlO1xuICBAT3V0cHV0KCkgcm93RGV0YWlscyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XG4gIEBPdXRwdXQoKSBrZWJhYkl0ZW1DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBpY29uOiBTVkdJY29uID0gbW9yZVZlcnRpY2FsSWNvbjtcbiAgQElucHV0KCkga2ViYWJDb2x1bW5XaWR0aDogbnVtYmVyID0gNjA7XG4gIGRhdGE6IGFueSA9IFtdO1xuICBASW5wdXQoKSBzZWxlY3RDb2x1bW4gPSAnJztcbiAgQE91dHB1dCgpIHJvd0RhdGFPZkNsaWNrZWRDZWxsID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIHByZVNlbGVjdGVkOiBhbnlbXSA9IFtdO1xuICBwcmVTZWxlY3RlZFJlY29yZHM6IGFueVtdID0gW107XG4gIEBPdXRwdXQoKSBvblBhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQElucHV0KCkgaWdub3JlQ29sdW1uQ2VsbENsaWNrOiBudW1iZXJbXSA9IFtdO1xuICBASW5wdXQoKSBhbGxvd0NvbHVtbkNsaWNrOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNvcnQ6IFNvcnREZXNjcmlwdG9yW10gPSBbXG4gICAge1xuICAgICAgZmllbGQ6ICcnLFxuICAgICAgZGlyOiB1bmRlZmluZWQsXG4gICAgfSxcbiAgXTtcbiAgQElucHV0KCkgaGFzQXBpU29ydGluZyA9IGZhbHNlO1xuICBAT3V0cHV0KCkgc29ydERpcmVjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBwdWJsaWMgYXJyb3dEb3duSWNvbjogU1ZHSWNvbiA9IGNoZXZyb25Eb3duSWNvbjtcbiAgcHVibGljIGFycm93VXBJY29uOiBTVkdJY29uID0gY2hldnJvblVwSWNvbjtcbiAgQElucHV0KCkgZXhwYW5kUm93SW5kZXg6IG51bWJlcltdID0gW107XG4gIEBJbnB1dCgpIGN1c3RvbUV4cGFuZFJvd0NvbHVtbjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBkZWxldGVDb2x1bW5XaWR0aDogbnVtYmVyID0gNDI7XG4gIGV4cGFuZFJvd0NvbHVtbldpZHRoOiBudW1iZXIgPSA1NjtcbiAgQE91dHB1dCgpIGRlbGV0ZWRSb3dEYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIHNpemVzOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBwYWdlQ291bnQgPSAwO1xuICBASW5wdXQoKSBzaG93RGVsZXRlQ29sdW1uID0gZmFsc2U7XG4gIEBJbnB1dCgpIGhpZGVLZWJhYlJvd0luZGV4OiBudW1iZXJbXSA9IFtdO1xuICBpbml0aWFsR3JpZEhlaWdodDogYW55O1xuICBncmlkQm90dG9tU3BhY2UgPSAyNDtcbiAgcmVzaXplSGVpZ2h0OiBhbnkgPSAwO1xuICBzZWxlY3RBbGxTdGF0ZTogU2VsZWN0QWxsQ2hlY2tib3hTdGF0ZSA9ICd1bmNoZWNrZWQnO1xuICBzZWxlY3RlZFJvd3M6IGFueVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5zZXRTZWxlY3RhYmxlU2V0dGluZ3MoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2VsZWN0ZWRSb3dzID0gdGhpcy5wcmVTZWxlY3RlZDtcbiAgICBmb3IgKGxldCBjb2x1bW4gb2YgdGhpcy5jb2x1bW5EYXRhKSB7XG4gICAgICBjb2x1bW4uc29ydGFibGUgPSBjb2x1bW4uc29ydGFibGUgPT0gdW5kZWZpbmVkID8gdHJ1ZSA6IGNvbHVtbi5zb3J0YWJsZTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmhhc0FwaVNvcnRpbmcpIHtcbiAgICAgIHRoaXMubG9hZEdyaWREYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGxldCBwcmV2UHJlU2VsZWN0ZWQgPSBKU09OLnN0cmluZ2lmeShjaGFuZ2VzWydwcmVTZWxlY3RlZCddPy5wcmV2aW91c1ZhbHVlKTtcbiAgICBsZXQgY3VyclByZVNlbGVjdGVkID0gSlNPTi5zdHJpbmdpZnkoY2hhbmdlc1sncHJlU2VsZWN0ZWQnXT8uY3VycmVudFZhbHVlKTtcbiAgICAvLyBDaGVjayBpZiB0aGVyZSBpcyBhIGNoYW5nZSBpbiB0aGlzLnByZVNlbGVjdGVkIGlucHV0XG4gICAgaWYgKHByZXZQcmVTZWxlY3RlZCAhPT0gY3VyclByZVNlbGVjdGVkKSB7XG4gICAgICAvLyBDbGVhciB0aGUgdGhpcy5wcmVTZWxlY3RlZFJlY29yZHMgYXJyYXlcbiAgICAgIHRoaXMucHJlU2VsZWN0ZWRSZWNvcmRzID0gW107XG4gICAgICBmb3IgKFxuICAgICAgICBsZXQgcm93ID0gMDtcbiAgICAgICAgcm93IDwgY2hhbmdlc1sncHJlU2VsZWN0ZWQnXS5jdXJyZW50VmFsdWUubGVuZ3RoO1xuICAgICAgICByb3crK1xuICAgICAgKSB7XG4gICAgICAgIGZvciAobGV0IGNvbCA9IDA7IGNvbCA8IHRoaXMuZ3JpZFZpZXcuZGF0YS5sZW5ndGg7IGNvbCsrKSB7XG4gICAgICAgICAgLy8gRmluZCB0aGUgcmVsZXZhbnQgcmVjb3JkIGZvciBhIHBhcnRpY3VsYXIgaWRcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmdyaWRWaWV3LmRhdGFbY29sXVt0aGlzLmdyaWRSb3dTZWxlY3RCeVZhbHVlXSA9PT1cbiAgICAgICAgICAgIGNoYW5nZXNbJ3ByZVNlbGVjdGVkJ10uY3VycmVudFZhbHVlW3Jvd11cbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGxldCBmb3VuZCA9IGZhbHNlO1xuICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhpcyByZWNvcmQgaXMgcHJlc2VudCBpbiB0aGlzLmRhdGEsIGlmIHllcyBkb24ndCBwdXNoIGl0IGluIHRoaXMucHJlU2VsZWN0ZWRSZWNvcmRzIGVsc2UgcHVzaCBpdFxuICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMuZGF0YS5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIHRoaXMuZGF0YVtpbmRleF1bdGhpcy5ncmlkUm93U2VsZWN0QnlWYWx1ZV0gPT09XG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkVmlldy5kYXRhW2NvbF1bdGhpcy5ncmlkUm93U2VsZWN0QnlWYWx1ZV1cbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWZvdW5kKSB7XG4gICAgICAgICAgICAgIHRoaXMucHJlU2VsZWN0ZWRSZWNvcmRzLnB1c2godGhpcy5ncmlkVmlldy5kYXRhW2NvbF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5zZWxlY3RlZFJvd0RhdGEuZW1pdCh0aGlzLnByZVNlbGVjdGVkUmVjb3Jkcy5jb25jYXQodGhpcy5kYXRhKSk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wYWdlYWJsZSkge1xuICAgICAgdGhpcy5wYWdlU2l6ZSA9IHRoaXMuZ3JpZFZpZXcuZGF0YS5sZW5ndGg7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLmN1c3RvbUV4cGFuZFJvd0NvbHVtbikge1xuICAgICAgdGhpcy5leHBhbmRSb3dJbmRleC5mb3JFYWNoKChpZCkgPT4ge1xuICAgICAgICB0aGlzLmdyaWQuZXhwYW5kUm93KGlkKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmluaXRpYWxHcmlkSGVpZ2h0ID1cbiAgICAgIHRoaXMuZ3JpZEVsZW1lbnQubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgKyB0aGlzLmdyaWRCb3R0b21TcGFjZTtcbiAgICB0aGlzLmdldEdyaWRIZWlnaHQoKTtcbiAgfVxuXG4gIHBhZ2VDaGFuZ2UoZXZlbnQ6IFBhZ2VDaGFuZ2VFdmVudCkge1xuICAgIHRoaXMub25QYWdlQ2hhbmdlLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgc2V0U2VsZWN0YWJsZVNldHRpbmdzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNoZWNrYm94T25seSB8fCB0aGlzLm1vZGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICB0aGlzLmRyYWdDb2x1bW5zID0gZmFsc2U7XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RhYmxlU2V0dGluZ3MgPSB7XG4gICAgICBjaGVja2JveE9ubHk6IHRoaXMuY2hlY2tib3hPbmx5LFxuICAgICAgbW9kZTogdGhpcy5tb2RlLFxuICAgICAgZHJhZzogdGhpcy5kcmFnQ29sdW1ucyxcbiAgICB9O1xuICB9XG5cbiAgLy8gV2UgY2FuIGV4dHJhY3QgZGF0YSBvdXQgb2Ygcm93IG51bWJlciB1c2luZyBiZWxvdyBmdW5jdGlvblxuICAvKiBleHRyYWN0KCkge1xuICAgIHRoaXMuZXh0cmFjdERhdGFJdGVtcyA9IHRoaXMubXlTZWxlY3Rpb24ubWFwKGlkeCA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5ncmlkRGF0YS5maW5kKChkYXRhOiB7IFByb2R1Y3RJRDogbnVtYmVyOyB9KSA9PiBkYXRhLlByb2R1Y3RJRCA9PT0gaWR4KTtcbiAgICB9KTtcbiAgICBjb25zb2xlLmxvZyh0aGlzLmV4dHJhY3REYXRhSXRlbXMpXG4gICAgdGhpcy5zZWxlY3RlZFJvd0RhdGEuZW1pdCh0aGlzLmV4dHJhY3REYXRhSXRlbXMpO1xuICB9ICovXG5cbiAgc2VsZWN0ZWRLZXlzQ2hhbmdlKHJvd3M6IG51bWJlcltdKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRSb3dzQ291bnQgPSByb3dzLmxlbmd0aDtcbiAgICBpZiAoc2VsZWN0ZWRSb3dzQ291bnQgPT0gdGhpcy5ncmlkVmlldy50b3RhbCkge1xuICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICdjaGVja2VkJztcbiAgICB9IGVsc2UgaWYgKHNlbGVjdGVkUm93c0NvdW50ID09IDApIHtcbiAgICAgIHRoaXMuc2VsZWN0QWxsU3RhdGUgPSAndW5jaGVja2VkJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICdpbmRldGVybWluYXRlJztcbiAgICB9XG4gIH1cblxuICBvblNlbGVjdGlvbkNoYW5nZShhcmdzOiBhbnkpOiBhbnkge1xuICAgIGZvciAobGV0IHJvdyA9IDA7IHJvdyA8IGFyZ3Muc2VsZWN0ZWRSb3dzLmxlbmd0aDsgcm93KyspIHtcbiAgICAgIHZhciBmb3VuZCA9IGZhbHNlO1xuICAgICAgZm9yIChsZXQgY29sID0gMDsgY29sIDwgdGhpcy5kYXRhLmxlbmd0aDsgY29sKyspIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMuZGF0YVtjb2xdW3RoaXMuZ3JpZFJvd1NlbGVjdEJ5VmFsdWVdID09PVxuICAgICAgICAgIGFyZ3Muc2VsZWN0ZWRSb3dzW3Jvd10uZGF0YUl0ZW1bdGhpcy5ncmlkUm93U2VsZWN0QnlWYWx1ZV1cbiAgICAgICAgKSB7XG4gICAgICAgICAgZm91bmQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoIWZvdW5kKSB7XG4gICAgICAgIHRoaXMuZGF0YS5wdXNoKGFyZ3Muc2VsZWN0ZWRSb3dzW3Jvd10uZGF0YUl0ZW0pO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoYXJncy5kZXNlbGVjdGVkUm93cy5sZW5ndGggIT09IDApIHtcbiAgICAgIGZvciAobGV0IHJvdyA9IDA7IHJvdyA8IGFyZ3MuZGVzZWxlY3RlZFJvd3MubGVuZ3RoOyByb3crKykge1xuICAgICAgICBmb3IgKGxldCBjb2wgPSAwOyBjb2wgPCB0aGlzLmRhdGEubGVuZ3RoOyBjb2wrKykge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuZGF0YVtjb2xdW3RoaXMuZ3JpZFJvd1NlbGVjdEJ5VmFsdWVdID09PVxuICAgICAgICAgICAgYXJncy5kZXNlbGVjdGVkUm93c1tyb3ddLmRhdGFJdGVtW3RoaXMuZ3JpZFJvd1NlbGVjdEJ5VmFsdWVdXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGEuc3BsaWNlKGNvbCwgMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGNvbCA9IDA7IGNvbCA8IHRoaXMucHJlU2VsZWN0ZWRSZWNvcmRzLmxlbmd0aDsgY29sKyspIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLnByZVNlbGVjdGVkUmVjb3Jkc1tjb2xdW3RoaXMuZ3JpZFJvd1NlbGVjdEJ5VmFsdWVdID09PVxuICAgICAgICAgICAgYXJncy5kZXNlbGVjdGVkUm93c1tyb3ddLmRhdGFJdGVtW3RoaXMuZ3JpZFJvd1NlbGVjdEJ5VmFsdWVdXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnByZVNlbGVjdGVkUmVjb3Jkcy5zcGxpY2UoY29sLCAxKTtcbiAgICAgICAgICAgIC8vIFJlbW92ZSB0aGlzIGVsZW1lbnQgZnJvbSBwcmVzZWxlY3RlZFxuICAgICAgICAgICAgbGV0IGluZGV4ID0gdGhpcy5wcmVTZWxlY3RlZC5pbmRleE9mKFxuICAgICAgICAgICAgICBhcmdzLmRlc2VsZWN0ZWRSb3dzW3Jvd10uZGF0YUl0ZW1bdGhpcy5ncmlkUm93U2VsZWN0QnlWYWx1ZV1cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgIHRoaXMucHJlU2VsZWN0ZWQuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZFJvd0RhdGEuZW1pdCh0aGlzLnByZVNlbGVjdGVkUmVjb3Jkcy5jb25jYXQodGhpcy5kYXRhKSk7XG4gIH1cblxuICBvbktlYmFiQ2xpY2soaXRlbTogYW55LCByb3dEZXRhaWxzOiBhbnkpIHtcbiAgICB0aGlzLmtlYmFiSXRlbUNsaWNrLmVtaXQoeyBhY3Rpb246IGl0ZW0sIHJvd0RldGFpbHMgfSk7XG4gIH1cblxuICBvbkRldGFpbEV4cGFuZChyb3dEYXRhOiBhbnkpIHtcbiAgICB0aGlzLnJvd0RldGFpbHMuZW1pdChyb3dEYXRhLmRhdGFJdGVtKTtcbiAgfVxuXG4gIGNlbGxDbGlja0hhbmRsZXIoYXJnczogQ2VsbENsaWNrRXZlbnQpIHtcbiAgICBpZiAodGhpcy5hbGxvd0NvbHVtbkNsaWNrKSB7XG4gICAgICBpZiAodGhpcy5pZ25vcmVDb2x1bW5DZWxsQ2xpY2suaW5jbHVkZXMoYXJncy5jb2x1bW5JbmRleCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5yb3dEYXRhT2ZDbGlja2VkQ2VsbC5lbWl0KGFyZ3MuZGF0YUl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIHNvcnRDaGFuZ2Uoc29ydDogU29ydERlc2NyaXB0b3JbXSk6IHZvaWQge1xuICAgIHRoaXMuc29ydCA9IHNvcnQ7XG4gICAgaWYgKCF0aGlzLmhhc0FwaVNvcnRpbmcpIHtcbiAgICAgIHRoaXMubG9hZEdyaWREYXRhKCk7XG4gICAgfVxuICAgIHRoaXMuc29ydERpcmVjdGlvbi5lbWl0KHRoaXMuc29ydCk7XG4gIH1cblxuICBsb2FkR3JpZERhdGEoKTogdm9pZCB7XG4gICAgdGhpcy5ncmlkVmlldyA9IHtcbiAgICAgIGRhdGE6IG9yZGVyQnkodGhpcy5ncmlkVmlldz8uZGF0YSwgdGhpcy5zb3J0KSxcbiAgICAgIHRvdGFsOiB0aGlzLmdyaWRWaWV3Py50b3RhbCxcbiAgICB9O1xuICB9XG5cbiAgZXhwYW5kUm93KGlkOiBudW1iZXIpIHtcbiAgICB0aGlzLmdyaWQuZXhwYW5kUm93KGlkKTtcbiAgICB0aGlzLmV4cGFuZFJvd0luZGV4LnB1c2goaWQpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5nZXRHcmlkSGVpZ2h0KCk7XG4gICAgfSwgMCk7XG4gIH1cblxuICBjb2xsYXBzZVJvdyhpZDogbnVtYmVyKSB7XG4gICAgdGhpcy5ncmlkLmNvbGxhcHNlUm93KGlkKTtcbiAgICB0aGlzLmV4cGFuZFJvd0luZGV4LnNwbGljZSh0aGlzLmV4cGFuZFJvd0luZGV4LmluZGV4T2YoaWQpLCAxKTtcbiAgICBpZiAodGhpcy5leHBhbmRSb3dJbmRleC5sZW5ndGggPT0gMCkge1xuICAgICAgY29uc3Qgd2luZG93SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xuICAgICAgY29uc3Qgdmlld3BvcnQ6IGFueSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsaWItZ3JpZCcpO1xuICAgICAgY29uc3QgZ3JpZE9mZnNldCA9IHZpZXdwb3J0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIHdpbmRvdy5zY3JvbGxZO1xuICAgICAgaWYgKHdpbmRvd0hlaWdodCA+IGdyaWRPZmZzZXQgKyB0aGlzLmluaXRpYWxHcmlkSGVpZ2h0KSB7XG4gICAgICAgIHRoaXMuaGVpZ2h0ID0gJzEwMCUnO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLmdldEdyaWRIZWlnaHQoKTtcbiAgICB9XG4gIH1cblxuICBvbkRlbGV0ZShyb3dEZXRhaWxzOiBhbnkpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZ2V0SGVhZGVySGVpZ2h0KCk7XG4gICAgfSwgMTAwMCk7XG4gICAgdGhpcy5kZWxldGVkUm93RGF0YS5lbWl0KHJvd0RldGFpbHMpO1xuICB9XG5cbiAgZ2V0SGVhZGVySGVpZ2h0KCkge1xuICAgIGlmICh0aGlzLmdyaWRWaWV3Py5kYXRhPy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiAnaGlkZS1oZWFkZXInO1xuICAgIH1cbiAgICByZXR1cm4gJ3ZpZXctaGVhZGVyJztcbiAgfVxuXG4gIGdldEdyaWRIZWlnaHQoKSB7XG4gICAgY29uc3Qgd2luZG93SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xuICAgIGNvbnN0IHZpZXdwb3J0OiBhbnkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGliLWdyaWQnKTtcbiAgICBjb25zdCBncmlkT2Zmc2V0ID0gdmlld3BvcnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgd2luZG93LnNjcm9sbFk7XG4gICAgY29uc3QgZ3JpZEhlaWdodCA9XG4gICAgICB0aGlzLmdyaWRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0ICsgdGhpcy5ncmlkQm90dG9tU3BhY2U7IC8vZ3JpZCBzaG91bGQgaGF2ZSAyNHB4IHNwYWNlIGF0IGJvdHRvbVxuICAgIGlmIChncmlkT2Zmc2V0ICsgZ3JpZEhlaWdodCA+PSB3aW5kb3dIZWlnaHQpIHtcbiAgICAgIHRoaXMuaGVpZ2h0ID0gd2luZG93SGVpZ2h0IC0gKGdyaWRPZmZzZXQgKyB0aGlzLmdyaWRCb3R0b21TcGFjZSk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gIHJlc2l6ZShldjogYW55KSB7XG4gICAgaWYgKGV2LnRhcmdldC5pbm5lckhlaWdodCA+IHRoaXMucmVzaXplSGVpZ2h0KSB7XG4gICAgICB0aGlzLnJlc2l6ZUhlaWdodCA9IGV2LnRhcmdldC5pbm5lckhlaWdodDtcbiAgICAgIHRoaXMuaGVpZ2h0ID0gJzEwMCUnO1xuICAgIH1cbiAgICBpZiAodGhpcy5yZXNpemVIZWlnaHQgPiB3aW5kb3cuaW5uZXJIZWlnaHQpIHtcbiAgICAgIHRoaXMucmVzaXplSGVpZ2h0ID0gMDtcbiAgICB9XG4gICAgdGhpcy5nZXRHcmlkSGVpZ2h0KCk7XG4gIH1cblxuICByb3dDbGFzcyA9IChhcmdzOiBSb3dDbGFzc0FyZ3MpID0+IHtcbiAgICBpZiAodGhpcy5wcmVTZWxlY3RlZCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgJ2stZGlzYWJsZWQnOiB0aGlzLnNlbGVjdGVkUm93cy5pbmNsdWRlcyhcbiAgICAgICAgICBhcmdzLmRhdGFJdGVtW3RoaXMuZ3JpZFJvd1NlbGVjdEJ5VmFsdWVdXG4gICAgICAgICksXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH07XG5cbiAgZXhwYW5kQ29sdW1uQ2xhc3MoKSB7XG4gICAgaWYgKHRoaXMucHJlU2VsZWN0ZWQubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5leHBhbmRSb3dDb2x1bW5XaWR0aCA9IDE5NDtcbiAgICAgIHJldHVybiAnZXhwYW5kLXJvdyc7XG4gICAgfVxuICAgIHRoaXMuZXhwYW5kUm93Q29sdW1uV2lkdGggPSA1NjtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBvblNlbGVjdEFsbENoYW5nZShjaGVja2VkU3RhdGU6IFNlbGVjdEFsbENoZWNrYm94U3RhdGUpOiB2b2lkIHtcbiAgICBpZiAoY2hlY2tlZFN0YXRlID09PSAnY2hlY2tlZCcpIHtcbiAgICAgIHRoaXMucHJlU2VsZWN0ZWQgPSB0aGlzLmdyaWRWaWV3LmRhdGFcbiAgICAgICAgLm1hcCgoaXRlbTogYW55KSA9PiBpdGVtW3RoaXMuZ3JpZFJvd1NlbGVjdEJ5VmFsdWVdKVxuICAgICAgICAuZmlsdGVyKChpZDogYW55KSA9PiBpZCk7XG4gICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ2NoZWNrZWQnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZFJvd3MubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5wcmVTZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRSb3dzO1xuICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICdpbmRldGVybWluYXRlJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcmVTZWxlY3RlZCA9IFtdO1xuICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICd1bmNoZWNrZWQnO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAjZ3JpZEVsZW1lbnQgKHdpbmRvdzpyZXNpemUpPVwicmVzaXplKCRldmVudClcIiA+XG48a2VuZG8tZ3JpZCBbZGF0YV09XCJncmlkVmlld1wiIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZVwiIFtza2lwXT1cInNraXBcIiBbc2VsZWN0YWJsZV09XCJzZWxlY3RhYmxlU2V0dGluZ3NcIiBcbiAgW3BhZ2VhYmxlXT1cInBhZ2VhYmxlXCIgW3NvcnRhYmxlXT1cInNvcnRhYmxlXCIgW2dyb3VwYWJsZV09XCJncm91cGFibGVcIiBbcmVvcmRlcmFibGVdPVwicmVvcmRlcmFibGVcIlxuICBbcmVzaXphYmxlXT1cInJlc2l6YWJsZVwiIFtjb2x1bW5NZW51XT1cImNvbHVtbk1lbnVcIiBbbmF2aWdhYmxlXT1cIm5hdmlnYWJsZVwiIFtoZWlnaHRdPVwiaGVpZ2h0XCIgW3N0eWxlLmhlaWdodF09XCJoZWlnaHRcIlxuICAoY2hhbmdlKT1cInNldFNlbGVjdGFibGVTZXR0aW5ncygpXCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXCIgKHNlbGVjdGVkS2V5c0NoYW5nZSk9XCJzZWxlY3RlZEtleXNDaGFuZ2UoJGV2ZW50KVwiXG4gIFtrZW5kb0dyaWRTZWxlY3RCeV09XCJncmlkUm93U2VsZWN0QnlWYWx1ZVwiIChkZXRhaWxFeHBhbmQpPVwib25EZXRhaWxFeHBhbmQoJGV2ZW50KVwiIFtzZWxlY3RlZEtleXNdPVwicHJlU2VsZWN0ZWRcIlxuICAocGFnZUNoYW5nZSk9XCJwYWdlQ2hhbmdlKCRldmVudClcIiAoY2VsbENsaWNrKT1cImNlbGxDbGlja0hhbmRsZXIoJGV2ZW50KVwiIFtzb3J0XT1cInNvcnRcIlxuICAoc29ydENoYW5nZSk9XCJzb3J0Q2hhbmdlKCRldmVudClcIiBbbmdDbGFzc109XCJnZXRIZWFkZXJIZWlnaHQoKVwiIGlkPVwibGliLWdyaWRcIiBbcm93Q2xhc3NdPVwicm93Q2xhc3NcIj5cblxuICA8bmctdGVtcGxhdGUgKm5nSWY9XCJzaG93VG9vbGJhclwiIGtlbmRvR3JpZFRvb2xiYXJUZW1wbGF0ZT5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPG5nLXRlbXBsYXRlICpuZ0lmPVwidGhpcy5ncmlkVmlldy5kYXRhLmxlbmd0aCA9PT0gMFwiIGtlbmRvR3JpZE5vUmVjb3Jkc1RlbXBsYXRlPlxuICAgIDxsaWItdHlwb2dyYXBoeSBbZGVmYXVsdFRleHRdPVwibm9SZWNvcmRzQ29udGVudFwiIHR5cGU9XCJQX01VTElTSF8xNl9SRUdVTEFSXCI+PC9saWItdHlwb2dyYXBoeT5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwidGhpcy5ncmlkVmlldy5kYXRhLmxlbmd0aCA+IDBcIj5cbiAgICA8a2VuZG8tZ3JpZC1jaGVja2JveC1jb2x1bW4gKm5nSWY9XCJjaGVja0JveFJlcXVpcmVkID09PSB0cnVlXCIgW3dpZHRoXT1cImNoZWNrQm94V2lkdGhcIlxuICAgICAgW3Jlc2l6YWJsZV09XCJjaGVja0JveENvbHVtblJlc2l6YWJsZVwiIFtjb2x1bW5NZW51XT1cImNoZWNrQm94Q29sdW1uTWVudVwiIGNsYXNzPVwiY2hlY2tib3gtY29sdW1uXCI+XG4gICAgICA8bmctdGVtcGxhdGUga2VuZG9HcmlkSGVhZGVyVGVtcGxhdGU+XG4gICAgICAgIDxpbnB1dCBpZD1cInNlbGVjdEFsbENoZWNrYm94SWRcIiB0eXBlPVwiY2hlY2tib3hcIiBrZW5kb0NoZWNrQm94IGtlbmRvR3JpZFNlbGVjdEFsbENoZWNrYm94IFtzdGF0ZV09XCJzZWxlY3RBbGxTdGF0ZVwiXG4gICAgICAgICAgKHNlbGVjdEFsbENoYW5nZSk9XCJvblNlbGVjdEFsbENoYW5nZSgkZXZlbnQpXCIgLz5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9rZW5kby1ncmlkLWNoZWNrYm94LWNvbHVtbj5cblxuICAgIDxrZW5kby1ncmlkLWNvbHVtbiBjbGFzcz1cImdyaWQtY29sdW1uXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29sdW1uRGF0YVwiIFtmaWVsZF09XCJpdGVtLmZpZWxkXCIgW3RpdGxlXT1cIml0ZW0udGl0bGVcIlxuICAgICAgW3dpZHRoXT1cIml0ZW0uY29sdW1uV2lkdGhcIiBbc29ydGFibGVdPVwiaXRlbS5zb3J0YWJsZVwiPlxuXG4gICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJzb3J0YWJsZVwiIGtlbmRvR3JpZEhlYWRlclRlbXBsYXRlPlxuICAgICAgICB7e2l0ZW0udGl0bGV9fVxuICAgICAgICA8c3BhbiAqbmdJZj1cInNvcnRbMF0uZmllbGQgPT09IGl0ZW0uZmllbGRcIj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cInNvcnRbMF0uZGlyID09PSAnYXNjJ1wiPjwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cInNvcnRbMF0uZGlyID09PSAnZGVzYydcIj48L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cIml0ZW0uY3VzdG9tXCIga2VuZG9HcmlkQ2VsbFRlbXBsYXRlIGxldC1kYXRhSXRlbT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlUmVmOyBjb250ZXh0OiB7JGltcGxpY2l0OiBkYXRhSXRlbX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJpdGVtLmltcGFjdFwiIGtlbmRvR3JpZENlbGxUZW1wbGF0ZSBsZXQtZGF0YUl0ZW0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbXBhY3RDb2x1bW47IGNvbnRleHQ6IHskaW1wbGljaXQ6IGRhdGFJdGVtfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2tlbmRvLWdyaWQtY29sdW1uPlxuXG4gICAgPGtlbmRvLWdyaWQtY29sdW1uICpuZ0lmPVwic2hvd0RlbGV0ZUNvbHVtblwiIFt3aWR0aF09XCJkZWxldGVDb2x1bW5XaWR0aFwiIGNsYXNzPVwiZGVsZXRlLWNvbHVtblwiIHRpdGxlPVwiQWN0aW9uXCI+XG4gICAgICA8bmctdGVtcGxhdGUga2VuZG9HcmlkQ2VsbFRlbXBsYXRlIGxldC1kYXRhSXRlbSBsZXQtcm93SW5kZXg9XCJyb3dJbmRleFwiPlxuICAgICAgICA8bGliLXRvb2x0aXAgc2hvd09uPVwiaG92ZXJcIiBwb3NpdGlvbj1cImJvdHRvbVwiIGNsYXNzPVwicmVtb3ZlLXRvb2x0aXBcIj5cbiAgICAgICAgICAgIDxsaWItaWNvbiBuYW1lPVwiZGVsZXRlXCIgY2xhc3M9XCJkZWxldGUtaWNvblwiIChjbGljayk9XCJvbkRlbGV0ZShkYXRhSXRlbSlcIj48L2xpYi1pY29uPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b29sdGlwLWNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxsaWItdHlwb2dyYXBoeSBkZWZhdWx0VGV4dD1cIlJlbW92ZVwiPjwvbGliLXR5cG9ncmFwaHk+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbGliLXRvb2x0aXA+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwva2VuZG8tZ3JpZC1jb2x1bW4+XG5cbiAgICA8a2VuZG8tZ3JpZC1jb2x1bW4gW3dpZHRoXT1cImtlYmFiQ29sdW1uV2lkdGhcIiBjbGFzcz1cImtlYmFiLWNvbHVtblwiICpuZ0lmPVwic2hvd0tlYmFiXCIgdGl0bGU9XCJBY3Rpb25zXCI+XG4gICAgICA8bmctdGVtcGxhdGUga2VuZG9HcmlkQ2VsbFRlbXBsYXRlIGxldC1kYXRhSXRlbSBsZXQtcm93SW5kZXg9XCJyb3dJbmRleFwiPlxuICAgICAgICA8a2VuZG8tZHJvcGRvd25idXR0b24gKm5nSWY9XCIhaGlkZUtlYmFiUm93SW5kZXguaW5jbHVkZXMocm93SW5kZXgpXCIgW3N2Z0ljb25dPVwiaWNvblwiIGZpbGxNb2RlPVwibm9uZVwiIFtkYXRhXT1cImtlYmFiTGlzdCB8IGtlYmFiTWVudUZpbHRlciA6IGRhdGFJdGVtXCIgIGNsYXNzPVwia2ViYWJcIlxuICAgICAgICAgIChpdGVtQ2xpY2spPVwib25LZWJhYkNsaWNrKCRldmVudCwgZGF0YUl0ZW0pXCIgW3BvcHVwU2V0dGluZ3NdPVwieyBhbGlnbjogJ3JpZ2h0JywgYW5pbWF0ZTogdHJ1ZSwgcG9wdXBDbGFzczogJ2tlYmFiLWxpc3QnIH1cIj5cbiAgICAgICAgPC9rZW5kby1kcm9wZG93bmJ1dHRvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9rZW5kby1ncmlkLWNvbHVtbj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZERldGFpbFRlbXBsYXRlIGxldC1kYXRhSXRlbT5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGV0YWlsVGVtcGxhdGU7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGRhdGFJdGVtfVwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxrZW5kby1ncmlkLWNvbHVtbiAqbmdJZj1cImN1c3RvbUV4cGFuZFJvd0NvbHVtblwiIFt3aWR0aF09XCJleHBhbmRSb3dDb2x1bW5XaWR0aFwiIGNsYXNzPVwiZ3JpZC1jb2x1bW4gZXhwYW5kLWNvbHVtblwiPlxuICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWRDZWxsVGVtcGxhdGUgbGV0LWRhdGFJdGVtIGxldC1yb3dJbmRleD1cInJvd0luZGV4XCI+XG4gICAgICA8ZGl2IFtuZ0NsYXNzXT1cImV4cGFuZENvbHVtbkNsYXNzKClcIj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJzZWxlY3RlZFJvd3MuaW5jbHVkZXMoZGF0YUl0ZW1bZ3JpZFJvd1NlbGVjdEJ5VmFsdWVdKVwiIGNsYXNzPVwiZXhwYW5kLWNvbHVtbi10ZXh0XCI+XG4gICAgICAgICAgQWxyZWFkeSBhZGRlZFxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxrZW5kby1idXR0b24gKm5nSWY9XCIhZXhwYW5kUm93SW5kZXguaW5jbHVkZXMocm93SW5kZXgpXCIgW3N2Z0ljb25dPVwiYXJyb3dEb3duSWNvblwiIChjbGljayk9XCJleHBhbmRSb3cocm93SW5kZXgpXCJcbiAgICAgICAgICBmaWxsTW9kZT1cIm5vbmVcIiBjbGFzcz1cImFycm93LWJ0blwiPlxuICAgICAgICA8L2tlbmRvLWJ1dHRvbj5cbiAgICAgICAgPGtlbmRvLWJ1dHRvbiAqbmdJZj1cImV4cGFuZFJvd0luZGV4LmluY2x1ZGVzKHJvd0luZGV4KVwiIFtzdmdJY29uXT1cImFycm93VXBJY29uXCIgKGNsaWNrKT1cImNvbGxhcHNlUm93KHJvd0luZGV4KVwiXG4gICAgICAgICAgZmlsbE1vZGU9XCJub25lXCIgY2xhc3M9XCJhcnJvdy1idG5cIj5cbiAgICAgICAgPC9rZW5kby1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2tlbmRvLWdyaWQtY29sdW1uPlxuXG4gIDxuZy10ZW1wbGF0ZSBrZW5kb1BhZ2VyVGVtcGxhdGUgbGV0LXRvdGFsUGFnZXM9XCJ0b3RhbFBhZ2VzXCIgbGV0LWN1cnJlbnRQYWdlPVwiY3VycmVudFBhZ2VcIj5cbiAgICA8a2VuZG8tcGFnZXItcHJldi1idXR0b25zPjwva2VuZG8tcGFnZXItcHJldi1idXR0b25zPlxuICAgIDxrZW5kby1wYWdlci1udW1lcmljLWJ1dHRvbnMgW2J1dHRvbkNvdW50XT1cInBhZ2VDb3VudFwiPjwva2VuZG8tcGFnZXItbnVtZXJpYy1idXR0b25zPlxuICAgIDxrZW5kby1wYWdlci1uZXh0LWJ1dHRvbnM+PC9rZW5kby1wYWdlci1uZXh0LWJ1dHRvbnM+XG4gICAgPGtlbmRvLXBhZ2VyLWluZm8+PC9rZW5kby1wYWdlci1pbmZvPlxuICAgIDxrZW5kby1wYWdlci1wYWdlLXNpemVzIFtwYWdlU2l6ZXNdPVwic2l6ZXNcIj48L2tlbmRvLXBhZ2VyLXBhZ2Utc2l6ZXM+XG4gIDwvbmctdGVtcGxhdGU+XG5cbjwva2VuZG8tZ3JpZD5cbjwvZGl2PlxuIl19
|
|
437
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL21vbGVjdWxlcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL21vbGVjdWxlcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBQ1QsWUFBWSxFQUVaLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFHTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUlMLGFBQWEsR0FLZCxNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBa0IsT0FBTyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxFQUVMLGVBQWUsRUFDZixhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2pCLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7Ozs7QUFPbkMsTUFBTSxPQUFPLHVCQUF1QjtJQTBFbEM7UUFqRVMsYUFBUSxHQUFtQixFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ2xELFNBQUksR0FBVyxDQUFDLENBQUM7UUFDakIsZUFBVSxHQUFRLEVBQUUsQ0FBQztRQUNyQixhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBQ3JCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0Isa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFD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LE1BQU07c0JBREwsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFNlbGVjdGFibGVTZXR0aW5ncyxcbiAgU2VsZWN0YWJsZU1vZGUsXG4gIENlbGxDbGlja0V2ZW50LFxuICBHcmlkQ29tcG9uZW50LFxuICBHcmlkRGF0YVJlc3VsdCxcbiAgUGFnZUNoYW5nZUV2ZW50LFxuICBSb3dDbGFzc0FyZ3MsXG4gIFNlbGVjdEFsbENoZWNrYm94U3RhdGUsXG59IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLWdyaWQnO1xuaW1wb3J0IHsgU29ydERlc2NyaXB0b3IsIG9yZGVyQnkgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tZGF0YS1xdWVyeSc7XG5pbXBvcnQge1xuICBTVkdJY29uLFxuICBjaGV2cm9uRG93bkljb24sXG4gIGNoZXZyb25VcEljb24sXG4gIG1vcmVWZXJ0aWNhbEljb25cbn0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLXN2Zy1pY29ucyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1ncmlkLXBhZ2luYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEdyaWRQYWdpbmF0aW9uQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXRcbntcbiAgQENvbnRlbnRDaGlsZCgnbXVsdGlDb2x1bW5EYXRhJykgdGVtcGxhdGVSZWYhOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbDtcbiAgQENvbnRlbnRDaGlsZCgnZGV0YWlsVGVtcGxhdGUnKSBkZXRhaWxUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsO1xuICBAQ29udGVudENoaWxkKCdpbXBhY3RDb2x1bW4nKSBpbXBhY3RDb2x1bW4hOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbDtcbiAgQFZpZXdDaGlsZChHcmlkQ29tcG9uZW50KSBncmlkITogR3JpZENvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnZ3JpZEVsZW1lbnQnKSBncmlkRWxlbWVudCE6IEVsZW1lbnRSZWY7XG5cbiAgQElucHV0KCkgZ3JpZFZpZXc6IEdyaWREYXRhUmVzdWx0ID0geyBkYXRhOiBbXSwgdG90YWw6IDAgfTtcbiAgQElucHV0KCkgc2tpcDogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgY29sdW1uRGF0YTogYW55ID0gW107XG4gIEBJbnB1dCgpIHBhZ2VTaXplOiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBwYWdlYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzb3J0YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBncm91cGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcmVvcmRlcmFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcmVzaXphYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNoZWNrQm94V2lkdGg6IG51bWJlciA9IDQ1O1xuICBASW5wdXQoKSBjaGVja0JveENvbHVtblJlc2l6YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjaGVja0JveENvbHVtbk1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgY2hlY2tCb3hDb2x1bW5TaG93U2VsZWN0ZWRBbGw6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBjaGVja0JveFJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNvbHVtbk1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbW9kZTogU2VsZWN0YWJsZU1vZGUgfCB1bmRlZmluZWQgPSAnbXVsdGlwbGUnO1xuICBASW5wdXQoKSBjaGVja2JveE9ubHkgPSB0cnVlO1xuICBASW5wdXQoKSBkcmFnQ29sdW1ucyA9IGZhbHNlO1xuICBASW5wdXQoKSBuYXZpZ2FibGU6IGJvb2xlYW4gPSB0cnVlO1xuICBoZWlnaHQ6IGFueTtcbiAgQElucHV0KCkgZ3JpZFJvd1NlbGVjdEJ5VmFsdWU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBub1JlY29yZHNDb250ZW50OiBzdHJpbmcgPSAnTm8gUmVjb3JkcyBBdmFpbGFibGUnO1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRSb3dEYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcbiAgQElucHV0KCkgc2hvd1Rvb2xiYXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZXh0cmFjdERhdGFJdGVtczogYW55O1xuICBzZWxlY3RhYmxlU2V0dGluZ3M6IFNlbGVjdGFibGVTZXR0aW5ncyA9IHt9O1xuICBASW5wdXQoKSBrZWJhYkxpc3Q6IGFueSA9IFtdO1xuICBASW5wdXQoKSBzaG93S2ViYWI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpIHJvd0RldGFpbHMgPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xuICBAT3V0cHV0KCkga2ViYWJJdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQElucHV0KCkgaWNvbjogU1ZHSWNvbiA9IG1vcmVWZXJ0aWNhbEljb247XG4gIEBJbnB1dCgpIGtlYmFiQ29sdW1uV2lkdGg6IG51bWJlciA9IDYwO1xuICBkYXRhOiBhbnkgPSBbXTtcbiAgQElucHV0KCkgc2VsZWN0Q29sdW1uID0gJyc7XG4gIEBPdXRwdXQoKSByb3dEYXRhT2ZDbGlja2VkQ2VsbCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBwcmVTZWxlY3RlZDogYW55W10gPSBbXTtcbiAgcHJlU2VsZWN0ZWRSZWNvcmRzOiBhbnlbXSA9IFtdO1xuICBAT3V0cHV0KCkgb25QYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIGlnbm9yZUNvbHVtbkNlbGxDbGljazogbnVtYmVyW10gPSBbXTtcbiAgQElucHV0KCkgYWxsb3dDb2x1bW5DbGljazogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzb3J0OiBTb3J0RGVzY3JpcHRvcltdID0gW1xuICAgIHtcbiAgICAgIGZpZWxkOiAnJyxcbiAgICAgIGRpcjogdW5kZWZpbmVkLFxuICAgIH0sXG4gIF07XG4gIEBJbnB1dCgpIGhhc0FwaVNvcnRpbmcgPSBmYWxzZTtcbiAgQE91dHB1dCgpIHNvcnREaXJlY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgcHVibGljIGFycm93RG93bkljb246IFNWR0ljb24gPSBjaGV2cm9uRG93bkljb247XG4gIHB1YmxpYyBhcnJvd1VwSWNvbjogU1ZHSWNvbiA9IGNoZXZyb25VcEljb247XG4gIEBJbnB1dCgpIGV4cGFuZFJvd0luZGV4OiBudW1iZXJbXSA9IFtdO1xuICBASW5wdXQoKSBjdXN0b21FeHBhbmRSb3dDb2x1bW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZGVsZXRlQ29sdW1uV2lkdGg6IG51bWJlciA9IDQyO1xuICBleHBhbmRSb3dDb2x1bW5XaWR0aDogbnVtYmVyID0gNTY7XG4gIEBPdXRwdXQoKSBkZWxldGVkUm93RGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBzaXplczogYW55W10gPSBbXTtcbiAgQElucHV0KCkgcGFnZUNvdW50ID0gMDtcbiAgQElucHV0KCkgc2hvd0RlbGV0ZUNvbHVtbiA9IGZhbHNlO1xuICBASW5wdXQoKSBoaWRlS2ViYWJSb3dJbmRleDogbnVtYmVyW10gPSBbXTtcbiAgaW5pdGlhbEdyaWRIZWlnaHQ6IGFueTtcbiAgZ3JpZEJvdHRvbVNwYWNlID0gMjQ7XG4gIHJlc2l6ZUhlaWdodDogYW55ID0gMDtcbiAgc2VsZWN0QWxsU3RhdGU6IFNlbGVjdEFsbENoZWNrYm94U3RhdGUgPSAndW5jaGVja2VkJztcbiAgc2VsZWN0ZWRSb3dzOiBhbnlbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuc2V0U2VsZWN0YWJsZVNldHRpbmdzKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBmb3IgKGxldCBjb2x1bW4gb2YgdGhpcy5jb2x1bW5EYXRhKSB7XG4gICAgICBjb2x1bW4uc29ydGFibGUgPSBjb2x1bW4uc29ydGFibGUgPT0gdW5kZWZpbmVkID8gdHJ1ZSA6IGNvbHVtbi5zb3J0YWJsZTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmhhc0FwaVNvcnRpbmcpIHtcbiAgICAgIHRoaXMubG9hZEdyaWREYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGxldCBwcmV2UHJlU2VsZWN0ZWQgPSBKU09OLnN0cmluZ2lmeShjaGFuZ2VzWydwcmVTZWxlY3RlZCddPy5wcmV2aW91c1ZhbHVlKTtcbiAgICBsZXQgY3VyclByZVNlbGVjdGVkID0gSlNPTi5zdHJpbmdpZnkoY2hhbmdlc1sncHJlU2VsZWN0ZWQnXT8uY3VycmVudFZhbHVlKTtcbiAgICAvLyBDaGVjayBpZiB0aGVyZSBpcyBhIGNoYW5nZSBpbiB0aGlzLnByZVNlbGVjdGVkIGlucHV0XG4gICAgaWYgKHByZXZQcmVTZWxlY3RlZCAhPT0gY3VyclByZVNlbGVjdGVkKSB7XG4gICAgICAvLyBDbGVhciB0aGUgdGhpcy5wcmVTZWxlY3RlZFJlY29yZHMgYXJyYXlcbiAgICAgIHRoaXMucHJlU2VsZWN0ZWRSZWNvcmRzID0gW107XG4gICAgICBmb3IgKFxuICAgICAgICBsZXQgcm93ID0gMDtcbiAgICAgICAgcm93IDwgY2hhbmdlc1sncHJlU2VsZWN0ZWQnXS5jdXJyZW50VmFsdWUubGVuZ3RoO1xuICAgICAgICByb3crK1xuICAgICAgKSB7XG4gICAgICAgIGZvciAobGV0IGNvbCA9IDA7IGNvbCA8IHRoaXMuZ3JpZFZpZXcuZGF0YS5sZW5ndGg7IGNvbCsrKSB7XG4gICAgICAgICAgLy8gRmluZCB0aGUgcmVsZXZhbnQgcmVjb3JkIGZvciBhIHBhcnRpY3VsYXIgaWRcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmdyaWRWaWV3LmRhdGFbY29sXVt0aGlzLmdyaWRSb3dTZWxlY3RCeVZhbHVlXSA9PT1cbiAgICAgICAgICAgIGNoYW5nZXNbJ3ByZVNlbGVjdGVkJ10uY3VycmVudFZhbHVlW3Jvd11cbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGxldCBmb3VuZCA9IGZhbHNlO1xuICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhpcyByZWNvcmQgaXMgcHJlc2VudCBpbiB0aGlzLmRhdGEsIGlmIHllcyBkb24ndCBwdXNoIGl0IGluIHRoaXMucHJlU2VsZWN0ZWRSZWNvcmRzIGVsc2UgcHVzaCBpdFxuICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMuZGF0YS5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIHRoaXMuZGF0YVtpbmRleF1bdGhpcy5ncmlkUm93U2VsZWN0QnlWYWx1ZV0gPT09XG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkVmlldy5kYXRhW2NvbF1bdGhpcy5ncmlkUm93U2VsZWN0QnlWYWx1ZV1cbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWZvdW5kKSB7XG4gICAgICAgICAgICAgIHRoaXMucHJlU2VsZWN0ZWRSZWNvcmRzLnB1c2godGhpcy5ncmlkVmlldy5kYXRhW2NvbF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5zZWxlY3RlZFJvd0RhdGEuZW1pdCh0aGlzLnByZVNlbGVjdGVkUmVjb3Jkcy5jb25jYXQodGhpcy5kYXRhKSk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wYWdlYWJsZSkge1xuICAgICAgdGhpcy5wYWdlU2l6ZSA9IHRoaXMuZ3JpZFZpZXcuZGF0YS5sZW5ndGg7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLmN1c3RvbUV4cGFuZFJvd0NvbHVtbikge1xuICAgICAgdGhpcy5leHBhbmRSb3dJbmRleC5mb3JFYWNoKChpZCkgPT4ge1xuICAgICAgICB0aGlzLmdyaWQuZXhwYW5kUm93KGlkKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkUm93cyA9IHRoaXMucHJlU2VsZWN0ZWQ7XG4gICAgaWYodGhpcy5zZWxlY3RlZFJvd3MubGVuZ3RoID4gMCl7XG4gICAgICBpZih0aGlzLnNlbGVjdGVkUm93cy5sZW5ndGggPT0gdGhpcy5ncmlkVmlldy50b3RhbCl7XG4gICAgICAgIHRoaXMuc2VsZWN0QWxsU3RhdGUgPSAnY2hlY2tlZCc7XG4gICAgICB9XG4gICAgICBlbHNle1xuICAgICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ2luZGV0ZXJtaW5hdGUnXG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuaW5pdGlhbEdyaWRIZWlnaHQgPVxuICAgICAgdGhpcy5ncmlkRWxlbWVudC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCArIHRoaXMuZ3JpZEJvdHRvbVNwYWNlO1xuICAgIHRoaXMuZ2V0R3JpZEhlaWdodCgpO1xuICB9XG5cbiAgcGFnZUNoYW5nZShldmVudDogUGFnZUNoYW5nZUV2ZW50KSB7XG4gICAgdGhpcy5vblBhZ2VDaGFuZ2UuZW1pdChldmVudCk7XG4gIH1cblxuICBzZXRTZWxlY3RhYmxlU2V0dGluZ3MoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2hlY2tib3hPbmx5IHx8IHRoaXMubW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgIHRoaXMuZHJhZ0NvbHVtbnMgPSBmYWxzZTtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGFibGVTZXR0aW5ncyA9IHtcbiAgICAgIGNoZWNrYm94T25seTogdGhpcy5jaGVja2JveE9ubHksXG4gICAgICBtb2RlOiB0aGlzLm1vZGUsXG4gICAgICBkcmFnOiB0aGlzLmRyYWdDb2x1bW5zLFxuICAgIH07XG4gIH1cblxuICAvLyBXZSBjYW4gZXh0cmFjdCBkYXRhIG91dCBvZiByb3cgbnVtYmVyIHVzaW5nIGJlbG93IGZ1bmN0aW9uXG4gIC8qIGV4dHJhY3QoKSB7XG4gICAgdGhpcy5leHRyYWN0RGF0YUl0ZW1zID0gdGhpcy5teVNlbGVjdGlvbi5tYXAoaWR4ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmdyaWREYXRhLmZpbmQoKGRhdGE6IHsgUHJvZHVjdElEOiBudW1iZXI7IH0pID0+IGRhdGEuUHJvZHVjdElEID09PSBpZHgpO1xuICAgIH0pO1xuICAgIGNvbnNvbGUubG9nKHRoaXMuZXh0cmFjdERhdGFJdGVtcylcbiAgICB0aGlzLnNlbGVjdGVkUm93RGF0YS5lbWl0KHRoaXMuZXh0cmFjdERhdGFJdGVtcyk7XG4gIH0gKi9cblxuICBzZWxlY3RlZEtleXNDaGFuZ2Uocm93czogbnVtYmVyW10pIHtcbiAgICBjb25zdCBzZWxlY3RlZFJvd3NDb3VudCA9IHJvd3MubGVuZ3RoO1xuICAgIGlmIChzZWxlY3RlZFJvd3NDb3VudCA9PSB0aGlzLmdyaWRWaWV3LnRvdGFsKSB7XG4gICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ2NoZWNrZWQnO1xuICAgIH0gZWxzZSBpZiAoc2VsZWN0ZWRSb3dzQ291bnQgPT0gMCkge1xuICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICd1bmNoZWNrZWQnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ2luZGV0ZXJtaW5hdGUnO1xuICAgIH1cbiAgfVxuXG4gIG9uU2VsZWN0aW9uQ2hhbmdlKGFyZ3M6IGFueSk6IGFueSB7XG4gICAgZm9yIChsZXQgcm93ID0gMDsgcm93IDwgYXJncy5zZWxlY3RlZFJvd3MubGVuZ3RoOyByb3crKykge1xuICAgICAgdmFyIGZvdW5kID0gZmFsc2U7XG4gICAgICBmb3IgKGxldCBjb2wgPSAwOyBjb2wgPCB0aGlzLmRhdGEubGVuZ3RoOyBjb2wrKykge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgdGhpcy5kYXRhW2NvbF1bdGhpcy5ncmlkUm93U2VsZWN0QnlWYWx1ZV0gPT09XG4gICAgICAgICAgYXJncy5zZWxlY3RlZFJvd3Nbcm93XS5kYXRhSXRlbVt0aGlzLmdyaWRSb3dTZWxlY3RCeVZhbHVlXVxuICAgICAgICApIHtcbiAgICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghZm91bmQpIHtcbiAgICAgICAgdGhpcy5kYXRhLnB1c2goYXJncy5zZWxlY3RlZFJvd3Nbcm93XS5kYXRhSXRlbSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChhcmdzLmRlc2VsZWN0ZWRSb3dzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgZm9yIChsZXQgcm93ID0gMDsgcm93IDwgYXJncy5kZXNlbGVjdGVkUm93cy5sZW5ndGg7IHJvdysrKSB7XG4gICAgICAgIGZvciAobGV0IGNvbCA9IDA7IGNvbCA8IHRoaXMuZGF0YS5sZW5ndGg7IGNvbCsrKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5kYXRhW2NvbF1bdGhpcy5ncmlkUm93U2VsZWN0QnlWYWx1ZV0gPT09XG4gICAgICAgICAgICBhcmdzLmRlc2VsZWN0ZWRSb3dzW3Jvd10uZGF0YUl0ZW1bdGhpcy5ncmlkUm93U2VsZWN0QnlWYWx1ZV1cbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YS5zcGxpY2UoY29sLCAxKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgY29sID0gMDsgY29sIDwgdGhpcy5wcmVTZWxlY3RlZFJlY29yZHMubGVuZ3RoOyBjb2wrKykge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMucHJlU2VsZWN0ZWRSZWNvcmRzW2NvbF1bdGhpcy5ncmlkUm93U2VsZWN0QnlWYWx1ZV0gPT09XG4gICAgICAgICAgICBhcmdzLmRlc2VsZWN0ZWRSb3dzW3Jvd10uZGF0YUl0ZW1bdGhpcy5ncmlkUm93U2VsZWN0QnlWYWx1ZV1cbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMucHJlU2VsZWN0ZWRSZWNvcmRzLnNwbGljZShjb2wsIDEpO1xuICAgICAgICAgICAgLy8gUmVtb3ZlIHRoaXMgZWxlbWVudCBmcm9tIHByZXNlbGVjdGVkXG4gICAgICAgICAgICBsZXQgaW5kZXggPSB0aGlzLnByZVNlbGVjdGVkLmluZGV4T2YoXG4gICAgICAgICAgICAgIGFyZ3MuZGVzZWxlY3RlZFJvd3Nbcm93XS5kYXRhSXRlbVt0aGlzLmdyaWRSb3dTZWxlY3RCeVZhbHVlXVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgdGhpcy5wcmVTZWxlY3RlZC5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkUm93RGF0YS5lbWl0KHRoaXMucHJlU2VsZWN0ZWRSZWNvcmRzLmNvbmNhdCh0aGlzLmRhdGEpKTtcbiAgfVxuXG4gIG9uS2ViYWJDbGljayhpdGVtOiBhbnksIHJvd0RldGFpbHM6IGFueSkge1xuICAgIHRoaXMua2ViYWJJdGVtQ2xpY2suZW1pdCh7IGFjdGlvbjogaXRlbSwgcm93RGV0YWlscyB9KTtcbiAgfVxuXG4gIG9uRGV0YWlsRXhwYW5kKHJvd0RhdGE6IGFueSkge1xuICAgIHRoaXMucm93RGV0YWlscy5lbWl0KHJvd0RhdGEuZGF0YUl0ZW0pO1xuICB9XG5cbiAgY2VsbENsaWNrSGFuZGxlcihhcmdzOiBDZWxsQ2xpY2tFdmVudCkge1xuICAgIGlmICh0aGlzLmFsbG93Q29sdW1uQ2xpY2spIHtcbiAgICAgIGlmICh0aGlzLmlnbm9yZUNvbHVtbkNlbGxDbGljay5pbmNsdWRlcyhhcmdzLmNvbHVtbkluZGV4KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLnJvd0RhdGFPZkNsaWNrZWRDZWxsLmVtaXQoYXJncy5kYXRhSXRlbSk7XG4gICAgfVxuICB9XG5cbiAgc29ydENoYW5nZShzb3J0OiBTb3J0RGVzY3JpcHRvcltdKTogdm9pZCB7XG4gICAgdGhpcy5zb3J0ID0gc29ydDtcbiAgICBpZiAoIXRoaXMuaGFzQXBpU29ydGluZykge1xuICAgICAgdGhpcy5sb2FkR3JpZERhdGEoKTtcbiAgICB9XG4gICAgdGhpcy5zb3J0RGlyZWN0aW9uLmVtaXQodGhpcy5zb3J0KTtcbiAgfVxuXG4gIGxvYWRHcmlkRGF0YSgpOiB2b2lkIHtcbiAgICB0aGlzLmdyaWRWaWV3ID0ge1xuICAgICAgZGF0YTogb3JkZXJCeSh0aGlzLmdyaWRWaWV3Py5kYXRhLCB0aGlzLnNvcnQpLFxuICAgICAgdG90YWw6IHRoaXMuZ3JpZFZpZXc/LnRvdGFsLFxuICAgIH07XG4gIH1cblxuICBleHBhbmRSb3coaWQ6IG51bWJlcikge1xuICAgIHRoaXMuZ3JpZC5leHBhbmRSb3coaWQpO1xuICAgIHRoaXMuZXhwYW5kUm93SW5kZXgucHVzaChpZCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmdldEdyaWRIZWlnaHQoKTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIGNvbGxhcHNlUm93KGlkOiBudW1iZXIpIHtcbiAgICB0aGlzLmdyaWQuY29sbGFwc2VSb3coaWQpO1xuICAgIHRoaXMuZXhwYW5kUm93SW5kZXguc3BsaWNlKHRoaXMuZXhwYW5kUm93SW5kZXguaW5kZXhPZihpZCksIDEpO1xuICAgIGlmICh0aGlzLmV4cGFuZFJvd0luZGV4Lmxlbmd0aCA9PSAwKSB7XG4gICAgICBjb25zdCB3aW5kb3dIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG4gICAgICBjb25zdCB2aWV3cG9ydDogYW55ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xpYi1ncmlkJyk7XG4gICAgICBjb25zdCBncmlkT2Zmc2V0ID0gdmlld3BvcnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgd2luZG93LnNjcm9sbFk7XG4gICAgICBpZiAod2luZG93SGVpZ2h0ID4gZ3JpZE9mZnNldCArIHRoaXMuaW5pdGlhbEdyaWRIZWlnaHQpIHtcbiAgICAgICAgdGhpcy5oZWlnaHQgPSAnMTAwJSc7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuZ2V0R3JpZEhlaWdodCgpO1xuICAgIH1cbiAgfVxuXG4gIG9uRGVsZXRlKHJvd0RldGFpbHM6IGFueSkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5nZXRIZWFkZXJIZWlnaHQoKTtcbiAgICB9LCAxMDAwKTtcbiAgICB0aGlzLmRlbGV0ZWRSb3dEYXRhLmVtaXQocm93RGV0YWlscyk7XG4gIH1cblxuICBnZXRIZWFkZXJIZWlnaHQoKSB7XG4gICAgaWYgKHRoaXMuZ3JpZFZpZXc/LmRhdGE/Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuICdoaWRlLWhlYWRlcic7XG4gICAgfVxuICAgIHJldHVybiAndmlldy1oZWFkZXInO1xuICB9XG5cbiAgZ2V0R3JpZEhlaWdodCgpIHtcbiAgICBjb25zdCB3aW5kb3dIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG4gICAgY29uc3Qgdmlld3BvcnQ6IGFueSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsaWItZ3JpZCcpO1xuICAgIGNvbnN0IGdyaWRPZmZzZXQgPSB2aWV3cG9ydC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgKyB3aW5kb3cuc2Nyb2xsWTtcbiAgICBjb25zdCBncmlkSGVpZ2h0ID1cbiAgICAgIHRoaXMuZ3JpZEVsZW1lbnQubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgKyB0aGlzLmdyaWRCb3R0b21TcGFjZTsgLy9ncmlkIHNob3VsZCBoYXZlIDI0cHggc3BhY2UgYXQgYm90dG9tXG4gICAgaWYgKGdyaWRPZmZzZXQgKyBncmlkSGVpZ2h0ID49IHdpbmRvd0hlaWdodCkge1xuICAgICAgdGhpcy5oZWlnaHQgPSB3aW5kb3dIZWlnaHQgLSAoZ3JpZE9mZnNldCArIHRoaXMuZ3JpZEJvdHRvbVNwYWNlKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgcmVzaXplKGV2OiBhbnkpIHtcbiAgICBpZiAoZXYudGFyZ2V0LmlubmVySGVpZ2h0ID4gdGhpcy5yZXNpemVIZWlnaHQpIHtcbiAgICAgIHRoaXMucmVzaXplSGVpZ2h0ID0gZXYudGFyZ2V0LmlubmVySGVpZ2h0O1xuICAgICAgdGhpcy5oZWlnaHQgPSAnMTAwJSc7XG4gICAgfVxuICAgIGlmICh0aGlzLnJlc2l6ZUhlaWdodCA+IHdpbmRvdy5pbm5lckhlaWdodCkge1xuICAgICAgdGhpcy5yZXNpemVIZWlnaHQgPSAwO1xuICAgIH1cbiAgICB0aGlzLmdldEdyaWRIZWlnaHQoKTtcbiAgfVxuXG4gIHJvd0NsYXNzID0gKGFyZ3M6IFJvd0NsYXNzQXJncykgPT4ge1xuICAgIGlmICh0aGlzLnByZVNlbGVjdGVkKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAnay1kaXNhYmxlZCc6IHRoaXMuc2VsZWN0ZWRSb3dzLmluY2x1ZGVzKFxuICAgICAgICAgIGFyZ3MuZGF0YUl0ZW1bdGhpcy5ncmlkUm93U2VsZWN0QnlWYWx1ZV1cbiAgICAgICAgKSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfTtcblxuICBleHBhbmRDb2x1bW5DbGFzcygpIHtcbiAgICBpZiAodGhpcy5wcmVTZWxlY3RlZC5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmV4cGFuZFJvd0NvbHVtbldpZHRoID0gMTk0O1xuICAgICAgcmV0dXJuICdleHBhbmQtcm93JztcbiAgICB9XG4gICAgdGhpcy5leHBhbmRSb3dDb2x1bW5XaWR0aCA9IDU2O1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIG9uU2VsZWN0QWxsQ2hhbmdlKGNoZWNrZWRTdGF0ZTogU2VsZWN0QWxsQ2hlY2tib3hTdGF0ZSk6IHZvaWQge1xuICAgIGlmIChjaGVja2VkU3RhdGUgPT09ICdjaGVja2VkJykge1xuICAgICAgdGhpcy5wcmVTZWxlY3RlZCA9IHRoaXMuZ3JpZFZpZXcuZGF0YVxuICAgICAgICAubWFwKChpdGVtOiBhbnkpID0+IGl0ZW1bdGhpcy5ncmlkUm93U2VsZWN0QnlWYWx1ZV0pXG4gICAgICAgIC5maWx0ZXIoKGlkOiBhbnkpID0+IGlkKTtcbiAgICAgIHRoaXMuc2VsZWN0QWxsU3RhdGUgPSAnY2hlY2tlZCc7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkUm93cy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnByZVNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZFJvd3M7XG4gICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ2luZGV0ZXJtaW5hdGUnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnByZVNlbGVjdGVkID0gW107XG4gICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ3VuY2hlY2tlZCc7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2ICNncmlkRWxlbWVudCAod2luZG93OnJlc2l6ZSk9XCJyZXNpemUoJGV2ZW50KVwiID5cbjxrZW5kby1ncmlkIFtkYXRhXT1cImdyaWRWaWV3XCIgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCIgW3NraXBdPVwic2tpcFwiIFtzZWxlY3RhYmxlXT1cInNlbGVjdGFibGVTZXR0aW5nc1wiIFxuICBbcGFnZWFibGVdPVwicGFnZWFibGVcIiBbc29ydGFibGVdPVwic29ydGFibGVcIiBbZ3JvdXBhYmxlXT1cImdyb3VwYWJsZVwiIFtyZW9yZGVyYWJsZV09XCJyZW9yZGVyYWJsZVwiXG4gIFtyZXNpemFibGVdPVwicmVzaXphYmxlXCIgW2NvbHVtbk1lbnVdPVwiY29sdW1uTWVudVwiIFtuYXZpZ2FibGVdPVwibmF2aWdhYmxlXCIgW2hlaWdodF09XCJoZWlnaHRcIiBbc3R5bGUuaGVpZ2h0XT1cImhlaWdodFwiXG4gIChjaGFuZ2UpPVwic2V0U2VsZWN0YWJsZVNldHRpbmdzKClcIiAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIiAoc2VsZWN0ZWRLZXlzQ2hhbmdlKT1cInNlbGVjdGVkS2V5c0NoYW5nZSgkZXZlbnQpXCJcbiAgW2tlbmRvR3JpZFNlbGVjdEJ5XT1cImdyaWRSb3dTZWxlY3RCeVZhbHVlXCIgKGRldGFpbEV4cGFuZCk9XCJvbkRldGFpbEV4cGFuZCgkZXZlbnQpXCIgW3NlbGVjdGVkS2V5c109XCJwcmVTZWxlY3RlZFwiXG4gIChwYWdlQ2hhbmdlKT1cInBhZ2VDaGFuZ2UoJGV2ZW50KVwiIChjZWxsQ2xpY2spPVwiY2VsbENsaWNrSGFuZGxlcigkZXZlbnQpXCIgW3NvcnRdPVwic29ydFwiXG4gIChzb3J0Q2hhbmdlKT1cInNvcnRDaGFuZ2UoJGV2ZW50KVwiIFtuZ0NsYXNzXT1cImdldEhlYWRlckhlaWdodCgpXCIgaWQ9XCJsaWItZ3JpZFwiIFtyb3dDbGFzc109XCJyb3dDbGFzc1wiPlxuXG4gIDxuZy10ZW1wbGF0ZSAqbmdJZj1cInNob3dUb29sYmFyXCIga2VuZG9HcmlkVG9vbGJhclRlbXBsYXRlPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8bmctdGVtcGxhdGUgKm5nSWY9XCJ0aGlzLmdyaWRWaWV3LmRhdGEubGVuZ3RoID09PSAwXCIga2VuZG9HcmlkTm9SZWNvcmRzVGVtcGxhdGU+XG4gICAgPGxpYi10eXBvZ3JhcGh5IFtkZWZhdWx0VGV4dF09XCJub1JlY29yZHNDb250ZW50XCIgdHlwZT1cIlBfTVVMSVNIXzE2X1JFR1VMQVJcIj48L2xpYi10eXBvZ3JhcGh5PlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0aGlzLmdyaWRWaWV3LmRhdGEubGVuZ3RoID4gMFwiPlxuICAgIDxrZW5kby1ncmlkLWNoZWNrYm94LWNvbHVtbiAqbmdJZj1cImNoZWNrQm94UmVxdWlyZWQgPT09IHRydWVcIiBbd2lkdGhdPVwiY2hlY2tCb3hXaWR0aFwiXG4gICAgICBbcmVzaXphYmxlXT1cImNoZWNrQm94Q29sdW1uUmVzaXphYmxlXCIgW2NvbHVtbk1lbnVdPVwiY2hlY2tCb3hDb2x1bW5NZW51XCIgY2xhc3M9XCJjaGVja2JveC1jb2x1bW5cIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWRIZWFkZXJUZW1wbGF0ZT5cbiAgICAgICAgPGlucHV0IGlkPVwic2VsZWN0QWxsQ2hlY2tib3hJZFwiIHR5cGU9XCJjaGVja2JveFwiIGtlbmRvQ2hlY2tCb3gga2VuZG9HcmlkU2VsZWN0QWxsQ2hlY2tib3ggW3N0YXRlXT1cInNlbGVjdEFsbFN0YXRlXCJcbiAgICAgICAgICAoc2VsZWN0QWxsQ2hhbmdlKT1cIm9uU2VsZWN0QWxsQ2hhbmdlKCRldmVudClcIiAvPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2tlbmRvLWdyaWQtY2hlY2tib3gtY29sdW1uPlxuXG4gICAgPGtlbmRvLWdyaWQtY29sdW1uIGNsYXNzPVwiZ3JpZC1jb2x1bW5cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb2x1bW5EYXRhXCIgW2ZpZWxkXT1cIml0ZW0uZmllbGRcIiBbdGl0bGVdPVwiaXRlbS50aXRsZVwiXG4gICAgICBbd2lkdGhdPVwiaXRlbS5jb2x1bW5XaWR0aFwiIFtzb3J0YWJsZV09XCJpdGVtLnNvcnRhYmxlXCI+XG5cbiAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cInNvcnRhYmxlXCIga2VuZG9HcmlkSGVhZGVyVGVtcGxhdGU+XG4gICAgICAgIHt7aXRlbS50aXRsZX19XG4gICAgICAgIDxzcGFuICpuZ0lmPVwic29ydFswXS5maWVsZCA9PT0gaXRlbS5maWVsZFwiPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwic29ydFswXS5kaXIgPT09ICdhc2MnXCI+PC9zcGFuPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwic29ydFswXS5kaXIgPT09ICdkZXNjJ1wiPjwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwiaXRlbS5jdXN0b21cIiBrZW5kb0dyaWRDZWxsVGVtcGxhdGUgbGV0LWRhdGFJdGVtPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVSZWY7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGRhdGFJdGVtfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cIml0ZW0uaW1wYWN0XCIga2VuZG9HcmlkQ2VsbFRlbXBsYXRlIGxldC1kYXRhSXRlbT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImltcGFjdENvbHVtbjsgY29udGV4dDogeyRpbXBsaWNpdDogZGF0YUl0ZW19XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwva2VuZG8tZ3JpZC1jb2x1bW4+XG5cbiAgICA8a2VuZG8tZ3JpZC1jb2x1bW4gKm5nSWY9XCJzaG93RGVsZXRlQ29sdW1uXCIgW3dpZHRoXT1cImRlbGV0ZUNvbHVtbldpZHRoXCIgY2xhc3M9XCJkZWxldGUtY29sdW1uXCIgdGl0bGU9XCJBY3Rpb25cIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWRDZWxsVGVtcGxhdGUgbGV0LWRhdGFJdGVtIGxldC1yb3dJbmRleD1cInJvd0luZGV4XCI+XG4gICAgICAgIDxsaWItdG9vbHRpcCBzaG93T249XCJob3ZlclwiIHBvc2l0aW9uPVwiYm90dG9tXCIgY2xhc3M9XCJyZW1vdmUtdG9vbHRpcFwiPlxuICAgICAgICAgICAgPGxpYi1pY29uIG5hbWU9XCJkZWxldGVcIiBjbGFzcz1cImRlbGV0ZS1pY29uXCIgKGNsaWNrKT1cIm9uRGVsZXRlKGRhdGFJdGVtKVwiPjwvbGliLWljb24+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRvb2x0aXAtY29udGVudFwiPlxuICAgICAgICAgICAgPGxpYi10eXBvZ3JhcGh5IGRlZmF1bHRUZXh0PVwiUmVtb3ZlXCI+PC9saWItdHlwb2dyYXBoeT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9saWItdG9vbHRpcD5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9rZW5kby1ncmlkLWNvbHVtbj5cblxuICAgIDxrZW5kby1ncmlkLWNvbHVtbiBbd2lkdGhdPVwia2ViYWJDb2x1bW5XaWR0aFwiIGNsYXNzPVwia2ViYWItY29sdW1uXCIgKm5nSWY9XCJzaG93S2ViYWJcIiB0aXRsZT1cIkFjdGlvbnNcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWRDZWxsVGVtcGxhdGUgbGV0LWRhdGFJdGVtIGxldC1yb3dJbmRleD1cInJvd0luZGV4XCI+XG4gICAgICAgIDxrZW5kby1kcm9wZG93bmJ1dHRvbiAqbmdJZj1cIiFoaWRlS2ViYWJSb3dJbmRleC5pbmNsdWRlcyhyb3dJbmRleClcIiBbc3ZnSWNvbl09XCJpY29uXCIgZmlsbE1vZGU9XCJub25lXCIgW2RhdGFdPVwia2ViYWJMaXN0IHwga2ViYWJNZW51RmlsdGVyIDogZGF0YUl0ZW1cIiAgY2xhc3M9XCJrZWJhYlwiXG4gICAgICAgICAgKGl0ZW1DbGljayk9XCJvbktlYmFiQ2xpY2soJGV2ZW50LCBkYXRhSXRlbSlcIiBbcG9wdXBTZXR0aW5nc109XCJ7IGFsaWduOiAncmlnaHQnLCBhbmltYXRlOiB0cnVlLCBwb3B1cENsYXNzOiAna2ViYWItbGlzdCcgfVwiPlxuICAgICAgICA8L2tlbmRvLWRyb3Bkb3duYnV0dG9uPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2tlbmRvLWdyaWQtY29sdW1uPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctdGVtcGxhdGUga2VuZG9HcmlkRGV0YWlsVGVtcGxhdGUgbGV0LWRhdGFJdGVtPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkZXRhaWxUZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogZGF0YUl0ZW19XCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPGtlbmRvLWdyaWQtY29sdW1uICpuZ0lmPVwiY3VzdG9tRXhwYW5kUm93Q29sdW1uXCIgW3dpZHRoXT1cImV4cGFuZFJvd0NvbHVtbldpZHRoXCIgY2xhc3M9XCJncmlkLWNvbHVtbiBleHBhbmQtY29sdW1uXCI+XG4gICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZENlbGxUZW1wbGF0ZSBsZXQtZGF0YUl0ZW0gbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIj5cbiAgICAgIDxkaXYgW25nQ2xhc3NdPVwiZXhwYW5kQ29sdW1uQ2xhc3MoKVwiPlxuICAgICAgICA8c3BhbiAqbmdJZj1cInNlbGVjdGVkUm93cy5pbmNsdWRlcyhkYXRhSXRlbVtncmlkUm93U2VsZWN0QnlWYWx1ZV0pXCIgY2xhc3M9XCJleHBhbmQtY29sdW1uLXRleHRcIj5cbiAgICAgICAgICBBbHJlYWR5IGFkZGVkXG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPGtlbmRvLWJ1dHRvbiAqbmdJZj1cIiFleHBhbmRSb3dJbmRleC5pbmNsdWRlcyhyb3dJbmRleClcIiBbc3ZnSWNvbl09XCJhcnJvd0Rvd25JY29uXCIgKGNsaWNrKT1cImV4cGFuZFJvdyhyb3dJbmRleClcIlxuICAgICAgICAgIGZpbGxNb2RlPVwibm9uZVwiIGNsYXNzPVwiYXJyb3ctYnRuXCI+XG4gICAgICAgIDwva2VuZG8tYnV0dG9uPlxuICAgICAgICA8a2VuZG8tYnV0dG9uICpuZ0lmPVwiZXhwYW5kUm93SW5kZXguaW5jbHVkZXMocm93SW5kZXgpXCIgW3N2Z0ljb25dPVwiYXJyb3dVcEljb25cIiAoY2xpY2spPVwiY29sbGFwc2VSb3cocm93SW5kZXgpXCJcbiAgICAgICAgICBmaWxsTW9kZT1cIm5vbmVcIiBjbGFzcz1cImFycm93LWJ0blwiPlxuICAgICAgICA8L2tlbmRvLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwva2VuZG8tZ3JpZC1jb2x1bW4+XG5cbiAgPG5nLXRlbXBsYXRlIGtlbmRvUGFnZXJUZW1wbGF0ZSBsZXQtdG90YWxQYWdlcz1cInRvdGFsUGFnZXNcIiBsZXQtY3VycmVudFBhZ2U9XCJjdXJyZW50UGFnZVwiPlxuICAgIDxrZW5kby1wYWdlci1wcmV2LWJ1dHRvbnM+PC9rZW5kby1wYWdlci1wcmV2LWJ1dHRvbnM+XG4gICAgPGtlbmRvLXBhZ2VyLW51bWVyaWMtYnV0dG9ucyBbYnV0dG9uQ291bnRdPVwicGFnZUNvdW50XCI+PC9rZW5kby1wYWdlci1udW1lcmljLWJ1dHRvbnM+XG4gICAgPGtlbmRvLXBhZ2VyLW5leHQtYnV0dG9ucz48L2tlbmRvLXBhZ2VyLW5leHQtYnV0dG9ucz5cbiAgICA8a2VuZG8tcGFnZXItaW5mbz48L2tlbmRvLXBhZ2VyLWluZm8+XG4gICAgPGtlbmRvLXBhZ2VyLXBhZ2Utc2l6ZXMgW3BhZ2VTaXplc109XCJzaXplc1wiPjwva2VuZG8tcGFnZXItcGFnZS1zaXplcz5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuPC9rZW5kby1ncmlkPlxuPC9kaXY+XG4iXX0=
|
|
@@ -3504,7 +3504,6 @@ class GridPaginationComponent {
|
|
|
3504
3504
|
this.setSelectableSettings();
|
|
3505
3505
|
}
|
|
3506
3506
|
ngOnInit() {
|
|
3507
|
-
this.selectedRows = this.preSelected;
|
|
3508
3507
|
for (let column of this.columnData) {
|
|
3509
3508
|
column.sortable = column.sortable == undefined ? true : column.sortable;
|
|
3510
3509
|
}
|
|
@@ -3552,6 +3551,15 @@ class GridPaginationComponent {
|
|
|
3552
3551
|
this.grid.expandRow(id);
|
|
3553
3552
|
});
|
|
3554
3553
|
}
|
|
3554
|
+
this.selectedRows = this.preSelected;
|
|
3555
|
+
if (this.selectedRows.length > 0) {
|
|
3556
|
+
if (this.selectedRows.length == this.gridView.total) {
|
|
3557
|
+
this.selectAllState = 'checked';
|
|
3558
|
+
}
|
|
3559
|
+
else {
|
|
3560
|
+
this.selectAllState = 'indeterminate';
|
|
3561
|
+
}
|
|
3562
|
+
}
|
|
3555
3563
|
this.initialGridHeight =
|
|
3556
3564
|
this.gridElement.nativeElement.offsetHeight + this.gridBottomSpace;
|
|
3557
3565
|
this.getGridHeight();
|