ps-toolkit-ui 1.21.51 → 1.21.69
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/bundles/ps-toolkit-ui.umd.js +7 -6
- package/bundles/ps-toolkit-ui.umd.js.map +1 -1
- package/bundles/ps-toolkit-ui.umd.min.js +1 -1
- package/bundles/ps-toolkit-ui.umd.min.js.map +1 -1
- package/esm2015/lib/components/table/row/table.row.component.js +8 -7
- package/fesm2015/ps-toolkit-ui.js +7 -6
- package/fesm2015/ps-toolkit-ui.js.map +1 -1
- package/package.json +1 -1
- package/ps-toolkit-ui.metadata.json +1 -1
|
@@ -114,8 +114,8 @@ export class TableRowComponent {
|
|
|
114
114
|
return this.confirmShow.emit(e);
|
|
115
115
|
}
|
|
116
116
|
setSortRow() {
|
|
117
|
-
|
|
118
|
-
|
|
117
|
+
if (this.table.hasChildren) {
|
|
118
|
+
setTimeout(() => {
|
|
119
119
|
// @ts-ignore
|
|
120
120
|
$(this.childrenDiv.nativeElement).sortable({
|
|
121
121
|
axis: 'y',
|
|
@@ -130,16 +130,17 @@ export class TableRowComponent {
|
|
|
130
130
|
const p = new PermissionClass();
|
|
131
131
|
p.Area = this.table.permissions.Area;
|
|
132
132
|
p.Controller = this.table.permissions.Controller;
|
|
133
|
-
p.
|
|
133
|
+
p.RelatedId = this.table.permissions.RelatedId;
|
|
134
|
+
p.Action = this.table.permissions.Action ? this.table.permissions.Action + '-sort' : 'sort';
|
|
134
135
|
new RequestClass(this.table.environment, this.table.l).send(p.getUrl().toLowerCase(), Method.Post, { Ids: data }, null, () => {
|
|
135
136
|
if (this.table.onSort) {
|
|
136
137
|
this.table.onSort();
|
|
137
138
|
}
|
|
138
139
|
}, () => { });
|
|
139
140
|
}
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
}
|
|
141
|
+
}).disableSelection();
|
|
142
|
+
}, 500);
|
|
143
|
+
}
|
|
143
144
|
}
|
|
144
145
|
setOptions() {
|
|
145
146
|
var _a, _b, _c, _d;
|
|
@@ -447,4 +448,4 @@ TableRowComponent.propDecorators = {
|
|
|
447
448
|
childrenDiv: [{ type: ViewChild, args: ['childrenDiv',] }],
|
|
448
449
|
onContextMenu: [{ type: HostListener, args: ['contextmenu', ['$event'],] }]
|
|
449
450
|
};
|
|
450
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUucm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJEOi9Qc1Rvb2xraXQvVUkvcHJvamVjdHMvcHMtdG9vbGtpdC11aS9zcmMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy90YWJsZS9yb3cvdGFibGUucm93LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHbEgsT0FBTyxFQUVMLFNBQVMsRUFDVCxNQUFNLEVBQUUsd0JBQXdCLEVBQ2hDLHlCQUF5QixFQUN6Qix1QkFBdUIsRUFDdkIsa0JBQWtCLEVBRWxCLGVBQWUsRUFBRSxjQUFjLEVBQ2hDLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDMUQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDMUUsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ2xFLE9BQU8sMEJBQTBCLENBQUM7QUFPbEMsTUFBTSxPQUFPLGlCQUFpQjtJQXNCNUIsWUFBbUIsT0FBaUM7UUFBakMsWUFBTyxHQUFQLE9BQU8sQ0FBMEI7UUFwQnBELGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV6QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQVF4QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUl4QyxpQkFBWSxHQUFlLElBQUksQ0FBQztRQUNoQyxnQkFBVyxH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QUNELElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUN6QixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFDO2dCQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3pDO1NBQ0Y7SUFDSCxDQUFDO0lBQ0QsYUFBYSxDQUFDLENBQUM7UUFDYixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDbkIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBQztZQUN0RCxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzNDO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFpQjtRQUM3QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyw2REFBNkQ7SUFDdkYsQ0FBQzs7O1lBMWFGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZUFBZTtnQkFDekIsbzdGQUF5Qzs7YUFFMUM7OztZQVRPLHdCQUF3Qjs7OzBCQVc3QixNQUFNO3lCQUVOLE1BQU07b0JBRU4sS0FBSztvQkFFTCxLQUFLO2tCQUVMLEtBQUs7eUJBRUwsTUFBTTswQkFVTixTQUFTLFNBQUMsYUFBYTs0QkE2WXZCLFlBQVksU0FBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQge1RhYmxlQ2xhc3MsIFRhYmxlQ29sbENsYXNzfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL3RhYmxlLmNsYXNzJztcclxuaW1wb3J0IHtcclxuICBFbnVtVXRpbHMsIEZpbGVJY29ucyxcclxuICBJbnB1dFR5cGUsXHJcbiAgTWV0aG9kLCBQZXJtaXNzaW9uQWNjZXNzVHlwZUVudW0sXHJcbiAgUGVybWlzc2lvbklucHV0QWN0aW9uRW51bSxcclxuICBQZXJtaXNzaW9uSW5wdXRUeXBlRW51bSxcclxuICBQZXJtaXNzaW9uVHlwZUVudW0sXHJcbiAgVGFibGVDb2xsVHlwZSxcclxuICBUYWJsZU9wdGlvblR5cGUsIFRhYmxlUm93U3RhdHVzXHJcbn0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9lbnVtLmNsYXNzJztcclxuaW1wb3J0IHtJbnB1dENsYXNzfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm0uY2xhc3MnO1xyXG5pbXBvcnQge1JlcXVlc3RDbGFzc30gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9yZXF1ZXN0LmNsYXNzJztcclxuaW1wb3J0IHtIZWxwZXJDbGFzc30gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9oZWxwZXIuY2xhc3MnO1xyXG5pbXBvcnQge1BzVG9vbGtpdFVpQ29uZmlnU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgKiBhcyAkIGZyb20gJ2pxdWVyeSc7XHJcbmltcG9ydCB7UGVybWlzc2lvbkNsYXNzfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL3Blcm1pc3Npb24uY2xhc3MnO1xyXG5pbXBvcnQgJ2pxdWVyeS11aS1kaXN0L2pxdWVyeS11aSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi10YWJsZS1yb3cnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS5yb3cuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLnJvdy5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlUm93Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0e1xyXG4gIEBPdXRwdXQoKVxyXG4gIGNvbmZpcm1TaG93ID0gbmV3IEV2ZW50RW1pdHRlcjxvYmplY3Q+KCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgY2hhbmdlUm93cyA9IG5ldyBFdmVudEVtaXR0ZXI8b2JqZWN0PigpO1xyXG4gIEBJbnB1dCgpXHJcbiAgbGV2ZWw6IG51bWJlcjtcclxuICBASW5wdXQoKVxyXG4gIHRhYmxlOiBUYWJsZUNsYXNzO1xyXG4gIEBJbnB1dCgpXHJcbiAgcm93O1xyXG4gIEBPdXRwdXQoKVxyXG4gIGxvYWRQYXJlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBnZXQgdGFibGVSb3dTdGF0dXMoKTogdHlwZW9mIFRhYmxlUm93U3RhdHVzIHsgcmV0dXJuIFRhYmxlUm93U3RhdHVzOyB9XHJcbiAgZ2V0IHR5cGUoKTogdHlwZW9mIElucHV0VHlwZSB7IHJldHVybiBJbnB1dFR5cGU7IH1cclxuICBnZXQgdGFibGVPcHRpb25UeXBlKCk6IHR5cGVvZiBUYWJsZU9wdGlvblR5cGV7IHJldHVybiBUYWJsZU9wdGlvblR5cGU7IH1cclxuICBzaG93Q2hpbGRyZW46IElucHV0Q2xhc3MgPSBudWxsO1xyXG4gIGFkZENoaWxkcmVuOiBJbnB1dENsYXNzID0gbnVsbDtcclxuICBncm91cDogSW5wdXRDbGFzcyA9IG51bGw7XHJcbiAgY2hpbGRyZW46IGFueVtdID0gW107XHJcbiAgb3B0aW9uczogYW55W10gPSBbXTtcclxuICBAVmlld0NoaWxkKCdjaGlsZHJlbkRpdicpIGNoaWxkcmVuRGl2OiBFbGVtZW50UmVmO1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzZXJ2aWNlOiBQc1Rvb2xraXRVaUNvbmZpZ1NlcnZpY2UpIHtcclxuICB9XHJcbiAgbW91c2VPdXQoZSk6IHZvaWR7XHJcbiAgICAkKGUudGFyZ2V0KS5maW5kKCcub3B0aW9ucy1jb24nKS5yZW1vdmVDbGFzcygnc2hvdy1ncm91cCcpO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucm93LnN1YlRhYmxlID0gdGhpcy50YWJsZS5zdWJUYWJsZSAhPSBudWxsID8gSGVscGVyQ2xhc3MuY2xvbmUodGhpcy50YWJsZS5zdWJUYWJsZSkgOiBudWxsO1xyXG4gICAgdGhpcy5ncm91cCA9IG5ldyBJbnB1dENsYXNzKHRoaXMudGFibGUuZW52aXJvbm1lbnQsIHRoaXMudGFibGUubCwgJ1Nob3dPcHRpb25zJywgJ2ZhcyBmYS1lbGxpcHNpcy12ZXJ0aWNhbCcsIElucHV0VHlwZS5JY29uLCAnYmx1ZSBtLWgtNSBoLTI1IGQtaWIgdmEtbSBmLXUnKTtcclxuICAgIHRoaXMuZ3JvdXAub25Gb2N1c0luID0gKGUpID0+IHtcclxuICAgICAgJChlLnRhcmdldCkuY2xvc2VzdCgnLm9wdGlvbnMtY29uJykuYWRkQ2xhc3MoJ3Nob3ctZ3JvdXAnKTtcclxuICAgIH07XHJcbiAgICB0aGlzLmdyb3VwLm9uRm9jdXNPdXQgPSAoZSkgPT4ge1xyXG4gICAgICAvLyAkKGUudGFyZ2V0KS5jbG9zZXN0KCcub3B0aW9ucy1jb24nKS5yZW1vdmVDbGFzcygnc2hvdy1ncm91cCcpO1xyXG4gICAgfTtcclxuICAgIGlmICh0aGlzLnRhYmxlLmhhc0NoaWxkcmVuKXtcclxuICAgICAgaWYgKCF0aGlzLnRhYmxlLmNoaWxkcmVuQXV0b0xvYWQpe1xyXG4gICAgICAgIHRoaXMuY2hpbGRyZW4gPSB0aGlzLmdldENoaWxkcmVuKCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMudGFibGUucGVybWlzc2lvbnMuaGFzQWNjZXNzKFBlcm1pc3Npb25BY2Nlc3NUeXBlRW51bS5JbnNlcnQpKXtcclxuICAgICAgICB0aGlzLmFkZENoaWxkcmVuID0gbmV3IElucHV0Q2xhc3ModGhpcy50YWJsZS5lbnZpcm9ubWVudCwgdGhpcy50YWJsZS5sLCB0aGlzLnRhYmxlLm5hbWUgKyAnQWRkU3Vic2V0VGl0bGUnLFxyXG4gICAgICAgICAgJ2ZhZCBmYS1wbHVzIGZhLXJvdGF0ZS05MCcsIElucHV0VHlwZS5JY29uLFxyXG4gICAgICAgICAgJ2dyZWVuIG0taC01IGgtMjUgZC1pYiB2YS1tIGYtdScpO1xyXG4gICAgICAgIHRoaXMuYWRkQ2hpbGRyZW4ub25DbGljayA9ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMudGFibGUuZm9ybS5vblN1Y2Nlc3NCYXNlID0gKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlLm1vZGFsLmhpZGUoKTtcclxuICAgICAgICAgICAgdGhpcy5zaG93Q2hpbGRyZW4udHlwZSA9IElucHV0VHlwZS5JY29uO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRDaGlsZHJlbih0aGlzLnJvdy5EYXRhLklkKTtcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICB0aGlzLnRhYmxlLnNob3dJbnNlcnRNb2RhbCh0aGlzLnJvdy5EYXRhLklkLCB0aGlzLmxldmVsLCB0aGlzLnJvdy5EYXRhKTtcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy50YWJsZS5oYXNDaGlsZHJlbiB8fCB0aGlzLnJvdy5zdWJUYWJsZSAhPSBudWxsKXtcclxuICAgICAgdGhpcy5zaG93Q2hpbGRyZW4gPSBuZXcgSW5wdXRDbGFzcyh0aGlzLnRhYmxlLmVudmlyb25tZW50LCB0aGlzLnRhYmxlLmwsIHRoaXMudGFibGUubmFtZSArICdTdWJzZXRUaXRsZScsICdmYWQgZmEtYW5nbGUtbGVmdCBmLXMtMjInLFxyXG4gICAgICAgIHRoaXMucm93LkRhdGEuQ291bnRDaGlsZCA+IDAgfHwgKCF0aGlzLnRhYmxlLmNoaWxkcmVuQXV0b0xvYWQgJiYgdGhpcy5jaGlsZHJlbi5sZW5ndGggPiAwKSB8fCB0aGlzLnJvdy5zdWJUYWJsZSAhPSBudWxsID8gSW5wdXRUeXBlLkljb24gOiBJbnB1dFR5cGUuSGlkZGVuLCAnaC0yNSBtLWgtNSBkLWliIHZhLW0gZi11Jyk7XHJcbiAgICAgIHRoaXMuc2hvd0NoaWxkcmVuLm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgaWYgKCQodGhpcy5jaGlsZHJlbkRpdi5uYXRpdmVFbGVtZW50KS5pcygnOnZpc2libGUnKSl7XHJcbiAgICAgICAgICAkKHRoaXMuY2hpbGRyZW5EaXYubmF0aXZlRWxlbWVudCkuc2xpZGVVcCgpO1xyXG4gICAgICAgICAgdGhpcy5zaG93Q2hpbGRyZW4uaWNvbiA9ICdmYWQgZmEtYW5nbGUtbGVmdCBmLXMtMjInO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy50YWJsZS5oYXNDaGlsZHJlbiAmJiB0aGlzLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCl7XHJcbiAgICAgICAgICB0aGlzLmxvYWRDaGlsZHJlbih0aGlzLnJvdy5EYXRhLklkKTtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMucm93LnN1YlRhYmxlICE9IG51bGwgJiYgdGhpcy5yb3cuc3ViVGFibGUucGVybWlzc2lvbnMgPT0gbnVsbCl7XHJcbiAgICAgICAgICBjb25zdCBhY2MgPSB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLkFjY2Vzc2VzLmZpbmQoeCA9PiB4LkFjdGlvbiA9PT0gdGhpcy5yb3cuc3ViVGFibGUubmFtZSk7XHJcbiAgICAgICAgICBjb25zdCBwcyA9IG5ldyBQZXJtaXNzaW9uQ2xhc3MoKTtcclxuICAgICAgICAgIHBzLlJlbGF0ZWRJZCA9IHRoaXMucm93LkRhdGEuSWQ7XHJcbiAgICAgICAgICBwcy5BcmVhID0gYWNjLkFyZWE7XHJcbiAgICAgICAgICBwcy5Db250cm9sbGVyID0gYWNjLkNvbnRyb2xsZXI7XHJcbiAgICAgICAgICBwcy5BY3Rpb24gPSBhY2MuQWN0aW9uO1xyXG4gICAgICAgICAgcHMuQWNjZXNzZXMgPSB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLkFjY2Vzc2VzPy5maWx0ZXIoeCA9PiB4LlBhcmVudElkID09PSBhY2MuSWQpID8/IFtdO1xyXG4gICAgICAgICAgdGhpcy5yb3cuc3ViVGFibGUucGVybWlzc2lvbnMgPSBwcztcclxuICAgICAgICAgIHRoaXMucm93LnN1YlRhYmxlLnNldCgpO1xyXG4gICAgICAgICAgJCh0aGlzLmNoaWxkcmVuRGl2Lm5hdGl2ZUVsZW1lbnQpLnNsaWRlRG93bigpO1xyXG4gICAgICAgICAgdGhpcy5zaG93Q2hpbGRyZW4uaWNvbiA9ICdmYWQgZmEtYW5nbGUtZG93biBmLXMtMjInO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAkKHRoaXMuY2hpbGRyZW5EaXYubmF0aXZlRWxlbWVudCkuc2xpZGVEb3duKCk7XHJcbiAgICAgICAgICB0aGlzLnNob3dDaGlsZHJlbi5pY29uID0gJ2ZhZCBmYS1hbmdsZS1kb3duIGYtcy0yMic7XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMudGFibGUuc29ydGFibGUpe1xyXG4gICAgICB0aGlzLnNldFNvcnRSb3coKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0T3B0aW9ucygpO1xyXG4gIH1cclxuICBsb2FkQ2hpbGRyZW4ocCk6IHZvaWR7XHJcbiAgICBjb25zdCBkYXRhID0gdGhpcy50YWJsZS5zZWFyY2hEYXRhKCk7XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcclxuICAgIGRhdGFbJ1BhZ2UnXSA9IDE7XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcclxuICAgIGRhdGFbJ1BlclBhZ2UnXSA9IC0xO1xyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lXHJcbiAgICBkYXRhWydMZXZlbCddID0gdGhpcy5sZXZlbDtcclxuICAgIG5ldyBSZXF1ZXN0Q2xhc3ModGhpcy50YWJsZS5lbnZpcm9ubWVudCwgdGhpcy50YWJsZS5sKS5zZW5kKHRoaXMudGFibGUudXJsICsgYC8ke3B9YCwgTWV0aG9kLlBvc3QsXHJcbiAgICAgIGRhdGEsIHRoaXMuc2hvd0NoaWxkcmVuLCAocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgdGhpcy5jaGlsZHJlbiA9IHJlc3VsdC5MaXN0O1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgJCh0aGlzLmNoaWxkcmVuRGl2Lm5hdGl2ZUVsZW1lbnQpLnNsaWRlRG93bigpO1xyXG4gICAgICAgICAgdGhpcy5zaG93Q2hpbGRyZW4uaWNvbiA9ICdmYWQgZmEtYW5nbGUtZG93biBmLXMtMjInO1xyXG4gICAgICAgIH0sIDUwKTtcclxuICAgICAgfSwgKCkgPT4ge30pO1xyXG4gIH1cclxuICBjaGVjaygpOiB2b2lke1xyXG4gICAgdGhpcy5yb3cuY2hlY2tlZCA9ICF0aGlzLnJvdy5jaGVja2VkO1xyXG4gICAgaWYgKHRoaXMudGFibGUub25DaGFuZ2VDaGVjayl7XHJcbiAgICAgIHRoaXMudGFibGUub25DaGFuZ2VDaGVjayh0aGlzLnJvdyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uQ2hhbmdlUm93cyhlKTogdm9pZHtcclxuICAgIHJldHVybiB0aGlzLmNoYW5nZVJvd3MuZW1pdChlKTtcclxuICB9XHJcbiAgb25Db25maXJtU2hvdyhlKTogdm9pZHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpcm1TaG93LmVtaXQoZSk7XHJcbiAgfVxyXG4gIHNldFNvcnRSb3coKTogdm9pZHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy50YWJsZS5oYXNDaGlsZHJlbikge1xyXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAkKHRoaXMuY2hpbGRyZW5EaXYubmF0aXZlRWxlbWVudCkuc29ydGFibGUoe1xyXG4gICAgICAgICAgYXhpczogJ3knLFxyXG4gICAgICAgICAgaXRlbXM6ICcucm93JyxcclxuICAgICAgICAgIGhhbmRsZTogJz4gLmhhbmRsZS1jb24gPiAuaGFuZGxlLmhhbmRsZS1zb3J0YWJsZScsXHJcbiAgICAgICAgICB1cGRhdGU6ICgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IFtdO1xyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICQodGhpcy5jaGlsZHJlbkRpdi5uYXRpdmVFbGVtZW50KS5zb3J0YWJsZSgndG9BcnJheScsIHthdHRyaWJ1dGU6ICdkYXRhLWlkJ30pLmZvckVhY2goeCA9PiB7XHJcbiAgICAgICAgICAgICAgZGF0YS5wdXNoKHBhcnNlSW50KHgsIDEwKSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBjb25zdCBwID0gbmV3IFBlcm1pc3Npb25DbGFzcygpO1xyXG4gICAgICAgICAgICBwLkFyZWEgPSB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLkFyZWE7XHJcbiAgICAgICAgICAgIHAuQ29udHJvbGxlciA9IHRoaXMudGFibGUucGVybWlzc2lvbnMuQ29udHJvbGxlcjtcclxuICAgICAgICAgICAgcC5BY3Rpb24gPSAnc29ydCc7XHJcbiAgICAgICAgICAgIG5ldyBSZXF1ZXN0Q2xhc3ModGhpcy50YWJsZS5lbnZpcm9ubWVudCwgdGhpcy50YWJsZS5sKS5zZW5kKHAuZ2V0VXJsKCkudG9Mb3dlckNhc2UoKSwgTWV0aG9kLlBvc3QsIHtJZHM6IGRhdGF9LCBudWxsLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMudGFibGUub25Tb3J0KXtcclxuICAgICAgICAgICAgICAgIHRoaXMudGFibGUub25Tb3J0KCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LCAoKSA9PiB7fSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0sIDUwMCk7XHJcbiAgfVxyXG4gIHNldE9wdGlvbnMoKTogdm9pZHtcclxuICAgIGNvbnN0IG9wdHMgPSBbXTtcclxuICAgIGZvciAoY29uc3Qgb3B0aW9uIG9mICh0aGlzLnJvdy5PcHRpb25zPy5maWx0ZXIoeCA9PiB4LlR5cGUgPT09IFBlcm1pc3Npb25UeXBlRW51bS5PcHRpb24gJiYgeC5JbnB1dEFjdGlvbiA9PT0gUGVybWlzc2lvbklucHV0QWN0aW9uRW51bS5JbnB1dCkgPz8gW10pKXtcclxuICAgICAgY29uc3QgaW5wID0gbmV3IElucHV0Q2xhc3ModGhpcy50YWJsZS5lbnZpcm9ubWVudCwgdGhpcy50YWJsZS5sLCBudWxsLCBudWxsLCBJbnB1dFR5cGUuQ2hlY2ssICdoLTI1IHdpdGhvdXQtYm9yZGVyIG0taC01IHAtMCB3LXUnLCB0aGlzLnJvdy5EYXRhW29wdGlvbi5BY3Rpb25dID09PSB0cnVlKTtcclxuICAgICAgaW5wLnJvdyA9IHRoaXMucm93O1xyXG4gICAgICBpbnAudG9vbHRpcCA9IG9wdGlvbi5OYW1lO1xyXG4gICAgICBpbnAub25DaGFuZ2UgPSAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yb3cuRGF0YVtvcHRpb24uQWN0aW9uXSA9ICFpbnAuZGF0YSgpO1xyXG4gICAgICAgIG5ldyBSZXF1ZXN0Q2xhc3ModGhpcy50YWJsZS5lbnZpcm9ubWVudCwgdGhpcy50YWJsZS5sKS5zZW5kKHRoaXMudGFibGUuZ2V0T3B0aW9uVXJsKG9wdGlvbi5VcmwsIHRoaXMudGFibGUucGVybWlzc2lvbnMuUmVsYXRlZElkLCB0aGlzLnJvdy5EYXRhLklkKSwgTWV0aG9kLlBvc3QsIG51bGwsIG51bGwsICgpID0+IHtcclxuICAgICAgICAgIHRoaXMudGFibGUubG9hZCgpO1xyXG4gICAgICAgIH0sICgpID0+IHtcclxuICAgICAgICAgIHRoaXMudGFibGUubG9hZCgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9O1xyXG4gICAgICBpbnAuZGlzcGxheUxhYmVsID0gZmFsc2U7XHJcbiAgICAgIG9wdHMucHVzaChpbnApO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuYWRkQ2hpbGRyZW4gIT09IG51bGwgJiYgKHRoaXMudGFibGUubGV2ZWwgPT09IG51bGwgfHwgdGhpcy50YWJsZS5sZXZlbCA+IHRoaXMubGV2ZWwpKXtcclxuICAgICAgb3B0cy5wdXNoKHRoaXMuYWRkQ2hpbGRyZW4pO1xyXG4gICAgfVxyXG4gICAgZm9yIChjb25zdCBvcHRpb24gb2YgKHRoaXMucm93Lk9wdGlvbnM/LmZpbHRlcih4ID0+IHguVHlwZSA9PT0gUGVybWlzc2lvblR5cGVFbnVtLk9wdGlvbiAmJiB4LklucHV0QWN0aW9uICE9PSBQZXJtaXNzaW9uSW5wdXRBY3Rpb25FbnVtLklucHV0KSA/PyBbXSkpe1xyXG4gICAgICBjb25zdCBvcHQgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLnRhYmxlLmVudmlyb25tZW50LCB0aGlzLnRhYmxlLmwsIG9wdGlvbi5OYW1lLCBvcHRpb24uSWNvbixcclxuICAgICAgICBvcHRpb24uSW5wdXRUeXBlID09PSBQZXJtaXNzaW9uSW5wdXRUeXBlRW51bS5JY29uID8gSW5wdXRUeXBlLkljb24gOiBJbnB1dFR5cGUuQnV0dG9uLCAnYmx1ZSBoLTI1IG0taC01IGQtaWIgdmEtbSBmLXUnKTtcclxuICAgICAgb3B0LnJvdyA9IHRoaXMucm93O1xyXG4gICAgICBpZiAob3B0aW9uLkFjY2Vzc1R5cGUgPT09IFBlcm1pc3Npb25BY2Nlc3NUeXBlRW51bS5VcGRhdGUpe1xyXG4gICAgICAgIGlmICh0aGlzLnRhYmxlLmZvcm0pe1xyXG4gICAgICAgICAgb3B0Lm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudGFibGUuZm9ybS51cmwgPSB0aGlzLnRhYmxlLmdldE9wdGlvblVybChvcHRpb24uVXJsLCB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLlJlbGF0ZWRJZCwgdGhpcy5yb3cuRGF0YS5JZCk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnRhYmxlLmhhc0NoaWxkcmVuICYmIHRoaXMucm93LkRhdGEuUGFyZW50SWQgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgIHRoaXMudGFibGUuZm9ybS5vblN1Y2Nlc3NCYXNlID0gKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZS5tb2RhbC5oaWRlKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50YWJsZS5jaGlsZHJlbkF1dG9Mb2FkKXtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkUGFyZW50LmVtaXQodGhpcy5yb3cuRGF0YS5QYXJlbnRJZCk7XHJcbiAgICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgICAgdGhpcy50YWJsZS5sb2FkKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnRhYmxlLmZvcm0ub25TdWNjZXNzQmFzZSA9ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy50YWJsZS5mb3JtLm9uVG9wKXtcclxuICAgICAgICAgICAgICAgICAgdGhpcy50YWJsZS5tb2RhbC5oaWRlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLmZvcm0uY2xlYXIodGhpcy50YWJsZS5pbnNlcnRBY2Nlc3MgIT0gbnVsbCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLmxvYWQoKTtcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuZWRpdChvcHQsIG9wdGlvbik7XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvcHQudXJsID0gdGhpcy50YWJsZS5nZXRPcHRpb25Vcmwob3B0aW9uLlVybCwgdGhpcy50YWJsZS5wZXJtaXNzaW9ucy5SZWxhdGVkSWQsIHRoaXMucm93LkRhdGEuSWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChvcHRpb24uQWNjZXNzVHlwZSA9PT0gUGVybWlzc2lvbkFjY2Vzc1R5cGVFbnVtLkRlbGV0ZSl7XHJcbiAgICAgICAgb3B0LmNsYXNzID0gb3B0LmNsYXNzLnJlcGxhY2UoJ2JsdWUnLCAncmVkJyk7XHJcbiAgICAgICAgb3B0Lm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy50YWJsZS5mb3JtKXtcclxuICAgICAgICAgICAgdGhpcy50YWJsZS5mb3JtLmNsZWFyKHRoaXMudGFibGUuaW5zZXJ0QWNjZXNzICE9IG51bGwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHRoaXMudGFibGUucGVybWlzc2lvbnMuVHlwZSA9PT0gUGVybWlzc2lvblR5cGVFbnVtLkZvcm0pe1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlLnJvd3MgPSB0aGlzLnRhYmxlLnJvd3MuZmlsdGVyKHggPT4geC5EYXRhLklkICE9PSB0aGlzLnJvdy5EYXRhLklkKTtcclxuICAgICAgICAgICAgaWYgKHRoaXMudGFibGUub25Mb2FkKXtcclxuICAgICAgICAgICAgICB0aGlzLnRhYmxlLm9uTG9hZCh0aGlzLnRhYmxlLnJvd3MpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlUm93cy5lbWl0KHRoaXMucm93LkRhdGEpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5jb25maXJtU2hvdy5lbWl0KHtcclxuICAgICAgICAgICAgICBhY3Rpb246IG9wdGlvbi5BY3Rpb24sXHJcbiAgICAgICAgICAgICAgZGF0YTogdGhpcy50YWJsZS5oYXNDaGlsZHJlbiA/IHtMZXZlbDogdGhpcy5sZXZlbH0gOiBudWxsLFxyXG4gICAgICAgICAgICAgIHVybDogdGhpcy50YWJsZS5nZXRPcHRpb25Vcmwob3B0aW9uLlVybCwgdGhpcy50YWJsZS5wZXJtaXNzaW9ucy5SZWxhdGVkSWQsIHRoaXMucm93LkRhdGEuSWQpLFxyXG4gICAgICAgICAgICAgIGFjY2VwdDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudGFibGUuaGFzQ2hpbGRyZW4gJiYgdGhpcy50YWJsZS5jaGlsZHJlbkF1dG9Mb2FkICYmIHRoaXMucm93LkRhdGEuUGFyZW50SWQgIT0gbnVsbCApe1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmxvYWRQYXJlbnQuZW1pdCh0aGlzLnJvdy5EYXRhLlBhcmVudElkKTtcclxuICAgICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLmxvYWQoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9fSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChvcHRpb24uQWNjZXNzVHlwZSA9PT0gUGVybWlzc2lvbkFjY2Vzc1R5cGVFbnVtLlJlcG9ydCl7XHJcbiAgICAgICAgb3B0LnVybCA9IHRoaXMudGFibGUuZ2V0T3B0aW9uVXJsKCcvcmVwb3J0JyArIG9wdGlvbi5VcmwsIHRoaXMudGFibGUucGVybWlzc2lvbnMuUmVsYXRlZElkLCB0aGlzLnJvdy5EYXRhLklkKTtcclxuICAgICAgICBvcHQucXVlcnlQYXJhbXMgPSB7cmVwb3J0SWQ6IEhlbHBlckNsYXNzLnJhbmRvbSgyMCl9O1xyXG4gICAgICAgIG9wdC51cmxOZXdUYWIgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKG9wdGlvbi5JbnB1dEFjdGlvbiA9PT0gUGVybWlzc2lvbklucHV0QWN0aW9uRW51bS5MaW5rIHx8IG9wdGlvbi5JbnB1dEFjdGlvbiA9PT0gUGVybWlzc2lvbklucHV0QWN0aW9uRW51bS5MaW5rTmV3VGFiKXtcclxuICAgICAgICBvcHQudXJsID0gb3B0aW9uLlVybC5yZXBsYWNlKCd7fScsIHRoaXMucm93LkRhdGEuSWQpO1xyXG4gICAgICAgIG9wdC51cmxOZXdUYWIgPSBvcHRpb24uSW5wdXRBY3Rpb24gPT09IFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0uTGlua05ld1RhYjtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChvcHRpb24uSW5wdXRBY3Rpb24gPT09IFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0uTW9kYWwpe1xyXG4gICAgICAgIG9wdC5tb2RhbCA9IHRoaXMudGFibGUub3B0aW9uc0FjdGlvbnMuZmluZCh4ID0+IHgubmFtZSA9PT0gb3B0aW9uLkFjdGlvbik7XHJcbiAgICAgICAgb3B0Lm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgICBpZiAob3B0Lm1vZGFsLnRhYmxlKXtcclxuICAgICAgICAgICAgY29uc3QgcCA9IG5ldyBQZXJtaXNzaW9uQ2xhc3MoKTtcclxuICAgICAgICAgICAgcC5SZWxhdGVkSWQgPSB0aGlzLnJvdy5EYXRhLklkO1xyXG4gICAgICAgICAgICBwLkFyZWEgPSB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLkFyZWE7XHJcbiAgICAgICAgICAgIHAuQ29udHJvbGxlciA9IHRoaXMudGFibGUucGVybWlzc2lvbnMuQ29udHJvbGxlcjtcclxuICAgICAgICAgICAgcC5BY3Rpb24gPSBvcHRpb24uQWN0aW9uO1xyXG4gICAgICAgICAgICBwLkFjY2Vzc2VzID0gdGhpcy5nZXRQZXJtaXNzaW9uKG9wdGlvbi5JZCwgdGhpcy5yb3cuT3B0aW9ucyk7XHJcbiAgICAgICAgICAgIG9wdC5tb2RhbC50YWJsZS5wZXJtaXNzaW9ucyA9IHA7XHJcbiAgICAgICAgICAgIGlmIChvcHQubW9kYWwudGFibGUuZm9ybSl7XHJcbiAgICAgICAgICAgICAgb3B0Lm1vZGFsLnRhYmxlLmZvcm0udXJsID0gb3B0aW9uLlVybC5yZXBsYWNlKCd7fScsIHRoaXMucm93LkRhdGEuSWQpICsgJy1pbnNlcnQnO1xyXG4gICAgICAgICAgICAgIG9wdC5tb2RhbC50YWJsZS5mb3JtLmJhc2VVcmwgPSBvcHRpb24uVXJsLnJlcGxhY2UoJ3t9JywgdGhpcy5yb3cuRGF0YS5JZCkgKyAnLWluc2VydCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgb3B0Lm1vZGFsLnRhYmxlLnJlbGF0ZWRSb3cgPSB0aGlzLnJvdy5EYXRhO1xyXG4gICAgICAgICAgICBvcHQubW9kYWwudGFibGUuc2V0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAob3B0Lm1vZGFsLmZvcm0pe1xyXG4gICAgICAgICAgICBvcHQubW9kYWwuZm9ybS5uYW1lID0gb3B0aW9uLk5hbWU7XHJcbiAgICAgICAgICAgIG9wdC5tb2RhbC5mb3JtLnVybCA9IG9wdGlvbi5VcmwucmVwbGFjZSgne30nLCB0aGlzLnJvdy5EYXRhLklkKSArICctdXBkYXRlJztcclxuICAgICAgICAgICAgb3B0Lm1vZGFsLmZvcm0ubG9hZERhdGEob3B0aW9uLlVybC5yZXBsYWNlKCd7fScsIHRoaXMucm93LkRhdGEuSWQpICsgJy1nZXQnKTtcclxuICAgICAgICAgICAgb3B0Lm1vZGFsLmZvcm0ub25TdWNjZXNzQmFzZSA9ICgpID0+IHtcclxuICAgICAgICAgICAgICBvcHQubW9kYWwuaGlkZSgpO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKG9wdC5tb2RhbC5hY2NvcmRpb24pe1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHIgb2Ygb3B0Lm1vZGFsLmFjY29yZGlvbi5yb3dzKXtcclxuICAgICAgICAgICAgICBpZiAoci50YWJsZSl7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnJvdy5PcHRpb25zID8/IFtdKSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCByb3dPcHRpb24gPSBvcHRpb25zLmZpbmQoeCA9PiB4LlBhcmVudElkID09PSBvcHRpb24uSWQgJiYgeC5BY3Rpb24gPT09IHIubmFtZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAocm93T3B0aW9uKXtcclxuICAgICAgICAgICAgICAgICAgY29uc3QgcCA9IG5ldyBQZXJtaXNzaW9uQ2xhc3MoKTtcclxuICAgICAgICAgICAgICAgICAgcC5SZWxhdGVkSWQgPSB0aGlzLnJvdy5EYXRhLklkO1xyXG4gICAgICAgICAgICAgICAgICBwLkFyZWEgPSB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLkFyZWE7XHJcbiAgICAgICAgICAgICAgICAgIHAuQ29udHJvbGxlciA9IG9wdGlvbi5Db250cm9sbGVyO1xyXG4gICAgICAgICAgICAgICAgICBwLkFjdGlvbiA9IHIubmFtZTtcclxuICAgICAgICAgICAgICAgICAgcC5BY2Nlc3NlcyA9IG9wdGlvbnMuZmlsdGVyKHggPT4geC5QYXJlbnRJZCA9PT0gcm93T3B0aW9uLklkKTtcclxuICAgICAgICAgICAgICAgICAgci50YWJsZS5wZXJtaXNzaW9ucyA9IHA7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChyLnRhYmxlLmZvcm0pe1xyXG4gICAgICAgICAgICAgICAgICAgIHIudGFibGUuZm9ybS51cmwgPSBvcHRpb24uVXJsICsgJ2luc2VydCc7XHJcbiAgICAgICAgICAgICAgICAgICAgci50YWJsZS5mb3JtLmJhc2VVcmwgPSBvcHRpb24uVXJsICsgJ2luc2VydCc7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgci50YWJsZS5zZXQoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKG9wdGlvbi5JbnB1dEFjdGlvbiA9PT0gUGVybWlzc2lvbklucHV0QWN0aW9uRW51bS5GaWxlKXtcclxuICAgICAgICBjb25zdCBwID0gbmV3IFBlcm1pc3Npb25DbGFzcygpO1xyXG4gICAgICAgIHAuUmVsYXRlZElkID0gdGhpcy50YWJsZS5wZXJtaXNzaW9ucy5SZWxhdGVkSWQ7XHJcbiAgICAgICAgcC5BcmVhID0gdGhpcy50YWJsZS5wZXJtaXNzaW9ucy5BcmVhO1xyXG4gICAgICAgIHAuQ29udHJvbGxlciA9IG9wdGlvbi5Db250cm9sbGVyO1xyXG4gICAgICAgIHAuQWN0aW9uID0gb3B0aW9uLkFjdGlvbjtcclxuICAgICAgICBvcHQudXJsID0gJy9maWxlJyArIHRoaXMudGFibGUuZ2V0T3B0aW9uVXJsKG9wdGlvbi5VcmwsIHRoaXMudGFibGUucGVybWlzc2lvbnMuUmVsYXRlZElkLCB0aGlzLnJvdy5EYXRhLklkKTtcclxuICAgICAgICBvcHQudXJsTmV3VGFiID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChvcHRpb24uSW5wdXRBY3Rpb24gPT09IFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0uQ29uZmlybSl7XHJcbiAgICAgICAgb3B0Lm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBwID0gbmV3IFBlcm1pc3Npb25DbGFzcygpO1xyXG4gICAgICAgICAgcC5SZWxhdGVkSWQgPSB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLlJlbGF0ZWRJZDtcclxuICAgICAgICAgIHAuQXJlYSA9IHRoaXMudGFibGUucGVybWlzc2lvbnMuQXJlYTtcclxuICAgICAgICAgIHAuQ29udHJvbGxlciA9IG9wdGlvbi5Db250cm9sbGVyO1xyXG4gICAgICAgICAgcC5BY3Rpb24gPSBvcHRpb24uQWN0aW9uO1xyXG4gICAgICAgICAgdGhpcy50YWJsZS5zaG93Q29uZmlybSh0aGlzLnRhYmxlLmwob3B0aW9uLkFjdGlvbiArICdDb25maXJtJyksIHRoaXMudGFibGUuZ2V0T3B0aW9uVXJsKG9wdGlvbi5VcmwsIHRoaXMudGFibGUucGVybWlzc2lvbnMuUmVsYXRlZElkLCB0aGlzLnJvdy5EYXRhLklkKSwgbnVsbCwgKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlLmxvYWQoKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAob3B0aW9uLklucHV0QWN0aW9uID09PSBQZXJtaXNzaW9uSW5wdXRBY3Rpb25FbnVtLk9uQ2xpY2spe1xyXG4gICAgICAgIG9wdC5vbkNsaWNrID0gKGJ0bikgPT4ge1xyXG4gICAgICAgICAgdGhpcy50YWJsZS5vcHRpb25zQWN0aW9ucy5maW5kKHggPT4geC5uYW1lID09PSBvcHRpb24uQWN0aW9uKS5vbkNsaWNrKGJ0bik7XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICBvcHRzLnB1c2gob3B0KTtcclxuICAgIH1cclxuICAgIHRoaXMub3B0aW9ucyA9IG9wdHM7XHJcbiAgICAvLyByZXR1cm4gKHRoaXMuYWRkQ2hpbGRyZW4gIT09IG51bGwgJiYgKHRoaXMudGFibGUubGV2ZWwgPT09IG51bGwgfHwgdGhpcy50YWJsZS5sZXZlbCA+IHRoaXMubGV2ZWwpID8gW3RoaXMuYWRkQ2hpbGRyZW5dIDogW10pXHJcbiAgICAvLyAgIC5jb25jYXQodGhpcy50YWJsZS5vcHRpb25zLmZpbHRlcih4ID0+IHguY29uZGl0aW9uID09IG51bGwgfHxcclxuICAgIC8vICAgICAoeC5jb25kaXRpb24uc3RhcnRzV2l0aCgnIScpID8gIXRoaXMucm93LkRhdGFbeC5jb25kaXRpb24uc3Vic3RyaW5nKDEpXSA6IHRoaXMucm93LkRhdGFbeC5jb25kaXRpb25dKSkubWFwKChvKSA9PiB7XHJcbiAgICAvLyAgICAgY29uc3QgaSA9IEhlbHBlckNsYXNzLmNsb25lKG8pO1xyXG4gICAgLy8gICAgIGlmIChpLnVybCl7XHJcbiAgICAvLyAgICAgICBpLnVybCA9IGkudXJsLnJlcGxhY2UoJ3t9JywgdGhpcy5yb3cuRGF0YS5JZCk7XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICAgIGkucm93ID0gdGhpcy5yb3cuRGF0YTtcclxuICAgIC8vICAgICBpLmNsYXNzID0gaS5jbGFzcyArICcgbS1oLTUgaC0yNSBkLWliIHZhLW0gZi11JztcclxuICAgIC8vICAgICByZXR1cm4gaTtcclxuICAgIC8vIH0pKS5jb25jYXQodGhpcy50YWJsZS5oYXNTdGF0dXMgPyBbdGhpcy5vcHRTdGF0dXNdIDogW10pXHJcbiAgICAvLyAgICAgLmNvbmNhdCh0aGlzLnRhYmxlLnBlcm1pc3Npb25zLmhhc0FjY2VzcygnVXBkYXRlJykgPyBbdGhpcy5vcHRFZGl0XSA6IFtdKVxyXG4gICAgLy8gICAgIC5jb25jYXQodGhpcy50YWJsZS5wZXJtaXNzaW9ucy5oYXNBY2Nlc3MoJ0RlbGV0ZScpID8gW3RoaXMub3B0RGVsZXRlXSA6IFtdKTtcclxuICB9XHJcbiAgZ2V0UGVybWlzc2lvbihwYXJlbnRJZCwgbGlzdCk6IGFueSB7XHJcbiAgICBjb25zdCBjaGlsZHJlbiA9IGxpc3QuZmlsdGVyKGl0ZW0gPT4gaXRlbS5QYXJlbnRJZCA9PT0gcGFyZW50SWQpO1xyXG4gICAgcmV0dXJuIGNoaWxkcmVuLnJlZHVjZSgoYWNjLCBjaGlsZCkgPT4ge1xyXG4gICAgICBhY2MucHVzaChjaGlsZCk7XHJcbiAgICAgIGFjYy5wdXNoKC4uLnRoaXMuZ2V0UGVybWlzc2lvbihjaGlsZC5JZCwgbGlzdCkpO1xyXG4gICAgICByZXR1cm4gYWNjO1xyXG4gICAgfSwgW10pO1xyXG4gIH1cclxuICBnZXRDZWxsKGNvbDogVGFibGVDb2xsQ2xhc3MpOiBhbnl7XHJcbiAgICByZXR1cm4gdGhpcy50YWJsZS5nZXRDZWxsKHRoaXMucm93LCBjb2wpO1xyXG4gIH1cclxuICBnZXRDb2wobik6IHN0cmluZ3tcclxuICAgIGxldCBjID0gdGhpcy5yb3cuRGF0YTtcclxuICAgIG4uc3BsaXQoJy4nKS5mb3JFYWNoKCh4KSA9PiB7XHJcbiAgICAgIGMgPSBjW3hdO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gYztcclxuICB9XHJcbiAgZWRpdChvcHQ6IElucHV0Q2xhc3MsIG9wdGlvbjogUGVybWlzc2lvbkNsYXNzKTogdm9pZHtcclxuICAgIHRoaXMudGFibGUuZm9ybS5pc0VkaXQgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMudGFibGUucGVybWlzc2lvbnMuVHlwZSA9PT0gUGVybWlzc2lvblR5cGVFbnVtLkZvcm0pe1xyXG4gICAgICB0aGlzLnRhYmxlLmZvcm0ubmFtZSA9IG9wdC5uYW1lO1xyXG4gICAgICB0aGlzLnRhYmxlLmZvcm0uc2V0RGF0YSh0aGlzLnJvdy5EYXRhKTtcclxuICAgICAgdGhpcy50YWJsZS5mb3JtLnNldEJ1dHRvbnModGhpcy50YWJsZS5mb3JtLm9uVG9wLCB0cnVlLCBmYWxzZSwgdHJ1ZSk7XHJcbiAgICAgIHRoaXMudGFibGUuZm9ybS5pbnB1dHMuZmlsdGVyKHggPT4geC5pbkVkaXREaXNhYmxlZCkuZm9yRWFjaCh4ID0+IHguZGlzYWJsZWQgPSB0cnVlKTtcclxuICAgICAgdGhpcy50YWJsZS5mb3JtLmlucHV0cy5maWx0ZXIoeCA9PiAheC5pbkVkaXRWaXNpYmxlKS5mb3JFYWNoKHggPT4geC52aXNpYmxlID0gZmFsc2UpO1xyXG4gICAgICB0aGlzLnRhYmxlLmZvcm0uaW5wdXRzLmZvckVhY2goeCA9PiB4LnJlcXVpcmVkID0geC5pbkVkaXRSZXF1aXJlZCk7XHJcbiAgICAgIGlmICh0aGlzLnRhYmxlLmZvcm0ub25Mb2FkKXtcclxuICAgICAgICB0aGlzLnRhYmxlLmZvcm0ub25Mb2FkKHRoaXMucm93LkRhdGEpO1xyXG4gICAgICB9XHJcbiAgICB9ZWxzZXtcclxuICAgICAgY29uc3QgZGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgICBpZiAodGhpcy50YWJsZS5oYXNDaGlsZHJlbil7XHJcbiAgICAgICAgZGF0YS5hcHBlbmQoJ0xldmVsJywgdGhpcy5sZXZlbC50b1N0cmluZygpKTtcclxuICAgICAgfVxyXG4gICAgICBuZXcgUmVxdWVzdENsYXNzKHRoaXMudGFibGUuZW52aXJvbm1lbnQsIHRoaXMudGFibGUubCkuc2VuZCh0aGlzLnRhYmxlLmdldE9wdGlvblVybChvcHRpb24uVXJsLnJlcGxhY2UoJ3VwZGF0ZScsICdnZXQnKSwgdGhpcy50YWJsZS5wZXJtaXNzaW9ucy5SZWxhdGVkSWQsIHRoaXMucm93LkRhdGEuSWQpLCBNZXRob2QuUG9zdCxcclxuICAgICAgICBkYXRhLCBvcHQsIChyZXN1bHQpID0+IHtcclxuICAgICAgICAgIHRoaXMudGFibGUuZm9ybS5uYW1lID0gb3B0Lm5hbWU7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlLmZvcm0uc2V0RGF0YShyZXN1bHQpO1xyXG4gICAgICAgICAgdGhpcy50YWJsZS5mb3JtLnNldEJ1dHRvbnModGhpcy50YWJsZS5mb3JtLm9uVG9wLCB0cnVlLCBmYWxzZSwgdHJ1ZSk7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlLmZvcm0uaW5wdXRzLmZpbHRlcih4ID0+IHguaW5FZGl0RGlzYWJsZWQpLmZvckVhY2goeCA9PiB4LmRpc2FibGVkID0gdHJ1ZSk7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlLmZvcm0uaW5wdXRzLmZpbHRlcih4ID0+ICF4LmluRWRpdFZpc2libGUpLmZvckVhY2goeCA9PiB4LnZpc2libGUgPSBmYWxzZSk7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlLmZvcm0uaW5wdXRzLmZvckVhY2goeCA9PiB4LnJlcXVpcmVkID0geC5pbkVkaXRSZXF1aXJlZCk7XHJcbiAgICAgICAgICBpZiAodGhpcy50YWJsZS5tb2RhbCl7XHJcbiAgICAgICAgICAgIHRoaXMudGFibGUubW9kYWwuc2hvdyh0aGlzLnJvdy5EYXRhKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh0aGlzLnRhYmxlLmZvcm0ub25Mb2FkKXtcclxuICAgICAgICAgICAgdGhpcy50YWJsZS5mb3JtLm9uTG9hZChyZXN1bHQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sICgpID0+IHt9KTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0Q2hpbGRyZW4oKTogYW55W117XHJcbiAgICByZXR1cm4gdGhpcy5yb3cuRGF0YS5JZCA/IHRoaXMudGFibGUucm93cy5maWx0ZXIoeCA9PiB4LkRhdGEuUGFyZW50SWQgPT09IHRoaXMucm93LkRhdGEuSWQpIDogW107XHJcbiAgfVxyXG4gIGdldFN0YXR1c2VzKCk6IHN0cmluZ3tcclxuICAgIHJldHVybiB0aGlzLnJvdy5TdGF0dXNlcyAmJiB0aGlzLnJvdy5TdGF0dXNlcy5pbmNsdWRlcyhUYWJsZVJvd1N0YXR1cy5VbnJlYWQpID8gJ3VucmVhZCAnIDogJyc7XHJcbiAgfVxyXG4gIHNlbGVjdFJvdyhlKTogdm9pZHtcclxuICAgIGlmICh0aGlzLnRhYmxlLndpdGhTZWxlY3Qpe1xyXG4gICAgICBpZiAoJChlLnRhcmdldCkuY2xvc2VzdCgnLmhhbmRsZS1jb24nKS5oYXNDbGFzcygnaGFuZGxlLWNvbicpIHx8ICQoZS50YXJnZXQpLmNsb3Nlc3QoJy5vcHRpb25zLWNlbGwnKS5oYXNDbGFzcygnb3B0aW9ucy1jZWxsJykpe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBzID0gdGhpcy50YWJsZS5yb3dzLmZpbmQoeCA9PiB4LnNlbGVjdGVkKTtcclxuICAgICAgaWYgKHMpe1xyXG4gICAgICAgIHMuc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnJvdy5zZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgIGlmICh0aGlzLnRhYmxlLm9uU2VsZWN0Um93KXtcclxuICAgICAgICB0aGlzLnRhYmxlLm9uU2VsZWN0Um93KHRoaXMucm93LkRhdGEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGRibGNsaWNrUm93KGUpOiB2b2lke1xyXG4gICAgaWYgKHRoaXMudGFibGUud2l0aFNlbGVjdCl7XHJcbiAgICAgIGlmICgkKGUudGFyZ2V0KS5jbG9zZXN0KCcuaGFuZGxlLWNvbicpLmhhc0NsYXNzKCdoYW5kbGUtY29uJykgfHwgJChlLnRhcmdldCkuY2xvc2VzdCgnLm9wdGlvbnMtY2VsbCcpLmhhc0NsYXNzKCdvcHRpb25zLWNlbGwnKSl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHMgPSB0aGlzLnRhYmxlLnJvd3MuZmluZCh4ID0+IHguc2VsZWN0ZWQpO1xyXG4gICAgICBpZiAocyl7XHJcbiAgICAgICAgcy5zZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucm93LnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgaWYgKHRoaXMudGFibGUub25EYmxDbGlja1Jvdyl7XHJcbiAgICAgICAgdGhpcy50YWJsZS5vbkRibENsaWNrUm93KHRoaXMucm93LkRhdGEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJpZ2h0Q2xpY2tSb3coZSk6IHZvaWR7XHJcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBpZiAodGhpcy50YWJsZS53aXRoU2VsZWN0ICYmIHRoaXMudGFibGUub25SaWdodENsaWNrUm93KXtcclxuICAgICAgdGhpcy50YWJsZS5vblJpZ2h0Q2xpY2tSb3codGhpcy5yb3cuRGF0YSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ2NvbnRleHRtZW51JywgWyckZXZlbnQnXSlcclxuICBvbkNvbnRleHRNZW51KGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOyAvLyBQcmV2ZW50cyB0aGUgZGVmYXVsdCBjb250ZXh0IG1lbnUgZm9yIHRoZSBlbnRpcmUgY29tcG9uZW50XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
451
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUucm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJEOi9Qc1Rvb2xraXQvVUkvcHJvamVjdHMvcHMtdG9vbGtpdC11aS9zcmMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy90YWJsZS9yb3cvdGFibGUucm93LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHbEgsT0FBTyxFQUVMLFNBQVMsRUFDVCxNQUFNLEVBQUUsd0JBQXdCLEVBQ2hDLHlCQUF5QixFQUN6Qix1QkFBdUIsRUFDdkIsa0JBQWtCLEVBRWxCLGVBQWUsRUFBRSxjQUFjLEVBQ2hDLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDMUQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDMUUsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ2xFLE9BQU8sMEJBQTBCLENBQUM7QUFPbEMsTUFBTSxPQUFPLGlCQUFpQjtJQXNCNUIsWUFBbUIsT0FBaUM7UUFBakMsWUFBTyxHQUFQLE9BQU8sQ0FBMEI7UUFwQnBELGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV6QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQVF4QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUl4QyxpQkFBWSxHQUFlLElBQUksQ0FBQztRQUNoQyxnQkFBVyxHQUFlLElBQUksQ0FBQztRQUMvQixVQUFLLEdBQWUsSUFBSSxDQUFDO1FBQ3pCLGFBQVEsR0FBVSxFQUFFLENBQUM7UUFDckIsWUFBTyxHQUFVLEVBQUUsQ0FBQztJQUdwQixDQUFDO0lBVkQsSUFBSSxjQUFjLEtBQTRCLE9BQU8sY0FBYyxDQUFDLENBQUMsQ0FBQztJQUN0RSxJQUFJLElBQUksS0FBdUIsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ2xELElBQUksZUFBZSxLQUE0QixPQUFPLGVBQWUsQ0FBQyxDQUFDLENBQUM7SUFTeEUsUUFBUSxDQUFDLENBQUM7UUFDUixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ2hHLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsYUFBYSxFQUFFLDBCQUEwQixFQUFFLFNBQVMsQ0FBQyxJQUFJLEVBQUUsK0JBQStCLENBQUMsQ0FBQztRQUM5SixJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzNCLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM3RCxDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzVCLGlFQUFpRTtRQUNuRSxDQUFDLENBQUM7UUFDRixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFDO1lBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFDO2dCQUMvQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUNwQztZQUNELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxFQUFDO2dCQUNwRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLGdCQUFnQixFQUN4RywwQkFBMEIsRUFBRSxTQUFTLENBQUMsSUFBSSxFQUMxQyxnQ0FBZ0MsQ0FBQyxDQUFDO2dCQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUU7b0JBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLEVBQUU7d0JBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO3dCQUN4QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO3dCQUN4QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUN0QyxDQUFDLENBQUM7b0JBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDMUUsQ0FBQyxDQUFDO2FBQ0g7U0FDRjtRQUNELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFDO1lBQ3RELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsYUFBYSxFQUFFLDBCQUEwQixFQUNsSSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO1lBQzNMLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRTs7Z0JBQy9CLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFDO29CQUNuRCxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDNUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEdBQUcsMEJBQTBCLENBQUM7aUJBQ3JEO3FCQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFDO29CQUM5RCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUNyQztxQkFBTSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxXQUFXLElBQUksSUFBSSxFQUFDO29CQUM1RSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDM0YsTUFBTSxFQUFFLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztvQkFDakMsRUFBRSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQ2hDLEVBQUUsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztvQkFDbkIsRUFBRSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDO29CQUMvQixFQUFFLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7b0JBQ3ZCLEVBQUUsQ0FBQyxRQUFRLGVBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBUSwwQ0FBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLEdBQUcsQ0FBQyxFQUFFLG9DQUFLLEVBQUUsQ0FBQztvQkFDeEYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztvQkFDbkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQ3hCLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUM5QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksR0FBRywwQkFBMEIsQ0FBQztpQkFDckQ7cUJBQU07b0JBQ0wsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7b0JBQzlDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxHQUFHLDBCQUEwQixDQUFDO2lCQUNyRDtZQUNILENBQUMsQ0FBQztTQUNIO1FBQ0QsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBQztZQUN0QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDbkI7UUFDRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUNELFlBQVksQ0FBQyxDQUFDO1FBQ1osTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNyQywyQkFBMkI7UUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQiwyQkFBMkI7UUFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLDJCQUEyQjtRQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUMzQixJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQy9GLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQzVCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQzlDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxHQUFHLDBCQUEwQixDQUFDO1lBQ3RELENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNULENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBQ0QsS0FBSztRQUNILElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7UUFDckMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBQztZQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDcEM7SUFDSCxDQUFDO0lBQ0QsWUFBWSxDQUFDLENBQUM7UUFDWixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFDRCxhQUFhLENBQUMsQ0FBQztRQUNiLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUNELFVBQVU7UUFDUixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQzFCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsYUFBYTtnQkFDYixDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxRQUFRLENBQUM7b0JBQ3pDLElBQUksRUFBRSxHQUFHO29CQUNULEtBQUssRUFBRSxNQUFNO29CQUNiLE1BQU0sRUFBRSx5Q0FBeUM7b0JBQ2pELE1BQU0sRUFBRSxHQUFHLEVBQUU7d0JBQ1gsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO3dCQUNoQixhQUFhO3dCQUNiLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsRUFBQyxTQUFTLEVBQUUsU0FBUyxFQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7NEJBQ3hGLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO3dCQUM3QixDQUFDLENBQUMsQ0FBQzt3QkFDSCxNQUFNLENBQUMsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO3dCQUNoQyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQzt3QkFDckMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUM7d0JBQ2pELENBQUMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDO3dCQUMvQyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO3dCQUM1RixJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFOzRCQUN6SCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFDO2dDQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDOzZCQUNyQjt3QkFDSCxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ2YsQ0FBQztpQkFDRixDQUFDLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN4QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDVDtJQUNILENBQUM7SUFDRCxVQUFVOztRQUNSLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNoQixLQUFLLE1BQU0sTUFBTSxJQUFJLGFBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLDBDQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssa0JBQWtCLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxXQUFXLEtBQUsseUJBQXlCLENBQUMsS0FBSyxvQ0FBSyxFQUFFLENBQUMsRUFBQztZQUNwSixNQUFNLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsbUNBQW1DLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDO1lBQzFLLEdBQUcsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUNuQixHQUFHLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDMUIsR0FBRyxDQUFDLFFBQVEsR0FBRyxHQUFHLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDM0MsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRTtvQkFDakwsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDcEIsQ0FBQyxFQUFFLEdBQUcsRUFBRTtvQkFDTixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNwQixDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQztZQUNGLEdBQUcsQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDaEI7UUFDRCxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBQztZQUM1RixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUM3QjtRQUNELEtBQUssTUFBTSxNQUFNLElBQUksYUFBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sMENBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxrQkFBa0IsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLFdBQVcsS0FBSyx5QkFBeUIsQ0FBQyxLQUFLLG9DQUFLLEVBQUUsQ0FBQyxFQUFDO1lBQ3BKLE1BQU0sR0FBRyxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFDdkYsTUFBTSxDQUFDLFNBQVMsS0FBSyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsK0JBQStCLENBQUMsQ0FBQztZQUMxSCxHQUFHLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDbkIsSUFBSSxNQUFNLENBQUMsVUFBVSxLQUFLLHdCQUF3QixDQUFDLE1BQU0sRUFBQztnQkFDeEQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBQztvQkFDbEIsR0FBRyxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUU7d0JBQ2pCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFDOUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFOzRCQUM1RCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxFQUFFO2dDQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQ0FDeEIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFDO29DQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztpQ0FDOUM7cUNBQUk7b0NBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztpQ0FDbkI7NEJBQ0gsQ0FBQyxDQUFDO3lCQUNIOzZCQUFNOzRCQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLEVBQUU7Z0NBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUM7b0NBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO2lDQUN6QjtnQ0FDRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLENBQUM7Z0NBQ3ZELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7NEJBQ3BCLENBQUMsQ0FBQzt5QkFDSDt3QkFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztvQkFDekIsQ0FBQyxDQUFDO2lCQUNIO3FCQUFNO29CQUNMLEdBQUcsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQ25HO2FBQ0Y7aUJBQ0ksSUFBSSxNQUFNLENBQUMsVUFBVSxLQUFLLHdCQUF3QixDQUFDLE1BQU0sRUFBQztnQkFDN0QsR0FBRyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQzdDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFO29CQUNqQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFDO3dCQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLENBQUM7cUJBQ3hEO29CQUNELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLGtCQUFrQixDQUFDLElBQUksRUFBQzt3QkFDMUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7d0JBQzlFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUM7NEJBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7eUJBQ3BDO3dCQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQ3JDO3lCQUFNO3dCQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDOzRCQUNwQixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07NEJBQ3JCLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFJOzRCQUN6RCxHQUFHLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDOzRCQUM1RixNQUFNLEVBQUUsR0FBRyxFQUFFO2dDQUNYLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFO29DQUMzRixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztpQ0FDOUM7cUNBQUk7b0NBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztpQ0FDbkI7NEJBQ0gsQ0FBQzt5QkFBQyxDQUFDLENBQUM7cUJBQ1A7Z0JBQ0gsQ0FBQyxDQUFDO2FBQ0g7aUJBQ0ksSUFBSSxNQUFNLENBQUMsVUFBVSxLQUFLLHdCQUF3QixDQUFDLE1BQU0sRUFBQztnQkFDN0QsR0FBRyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzlHLEdBQUcsQ0FBQyxXQUFXLEdBQUcsRUFBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDO2dCQUNyRCxHQUFHLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQzthQUN0QjtpQkFDSSxJQUFJLE1BQU0sQ0FBQyxXQUFXLEtBQUsseUJBQXlCLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxXQUFXLEtBQUsseUJBQXlCLENBQUMsVUFBVSxFQUFDO2dCQUM1SCxHQUFHLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDckQsR0FBRyxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsV0FBVyxLQUFLLHlCQUF5QixDQUFDLFVBQVUsQ0FBQzthQUM3RTtpQkFDSSxJQUFJLE1BQU0sQ0FBQyxXQUFXLEtBQUsseUJBQXlCLENBQUMsS0FBSyxFQUFDO2dCQUM5RCxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMxRSxHQUFHLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRTs7b0JBQ2pCLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUM7d0JBQ2xCLE1BQU0sQ0FBQyxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7d0JBQ2hDLENBQUMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO3dCQUMvQixDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQzt3QkFDckMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUM7d0JBQ2pELENBQUMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQzt3QkFDekIsQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQzt3QkFDN0QsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQzt3QkFDaEMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUM7NEJBQ3ZCLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQzs0QkFDbEYsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO3lCQUN2Rjt3QkFDRCxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7d0JBQzNDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO3FCQUN2QjtvQkFDRCxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFDO3dCQUNqQixHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQzt3QkFDbEMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUM7d0JBQzVFLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7d0JBQzdFLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLEVBQUU7NEJBQ2xDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7d0JBQ25CLENBQUMsQ0FBQztxQkFDSDtvQkFDRCxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFDO3dCQUN0QixLQUFLLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksRUFBQzs0QkFDdkMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFDO2dDQUNWLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsT0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sbUNBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztnQ0FDbkUsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQ0FDckYsSUFBSSxTQUFTLEVBQUM7b0NBQ1osTUFBTSxDQUFDLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztvQ0FDaEMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7b0NBQy9CLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO29DQUNyQyxDQUFDLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7b0NBQ2pDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztvQ0FDbEIsQ0FBQyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7b0NBQzlELENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztvQ0FDeEIsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBQzt3Q0FDZixDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUM7d0NBQ3pDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQztxQ0FDOUM7b0NBQ0QsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztpQ0FDZjs2QkFDRjt5QkFDRjtxQkFDRjtnQkFDSCxDQUFDLENBQUM7YUFDSDtpQkFDSSxJQUFJLE1BQU0sQ0FBQyxXQUFXLEtBQUsseUJBQXlCLENBQUMsSUFBSSxFQUFDO2dCQUM3RCxNQUFNLENBQUMsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO2dCQUNoQyxDQUFDLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQztnQkFDL0MsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7Z0JBQ3JDLENBQUMsQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztnQkFDakMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO2dCQUN6QixHQUFHLENBQUMsR0FBRyxHQUFHLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDNUcsR0FBRyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7YUFDdEI7aUJBQ0ksSUFBSSxNQUFNLENBQUMsV0FBVyxLQUFLLHlCQUF5QixDQUFDLE9BQU8sRUFBQztnQkFDaEUsR0FBRyxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUU7b0JBQ2pCLE1BQU0sQ0FBQyxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7b0JBQ2hDLENBQUMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDO29CQUMvQyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztvQkFDckMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO29CQUNqQyxDQUFDLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7b0JBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRTt3QkFDbEssSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDcEIsQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQyxDQUFDO2FBQ0g7aUJBQ0ksSUFBSSxNQUFNLENBQUMsV0FBVyxLQUFLLHlCQUF5QixDQUFDLE9BQU8sRUFBQztnQkFDaEUsR0FBRyxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFO29CQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzdFLENBQUMsQ0FBQzthQUNIO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNoQjtRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLCtIQUErSDtRQUMvSCxrRUFBa0U7UUFDbEUsMEhBQTBIO1FBQzFILHNDQUFzQztRQUN0QyxrQkFBa0I7UUFDbEIsdURBQXVEO1FBQ3ZELFFBQVE7UUFDUiw2QkFBNkI7UUFDN0IsdURBQXVEO1FBQ3ZELGdCQUFnQjtRQUNoQiwyREFBMkQ7UUFDM0QsZ0ZBQWdGO1FBQ2hGLG1GQUFtRjtJQUNyRixDQUFDO0lBQ0QsYUFBYSxDQUFDLFFBQVEsRUFBRSxJQUFJO1FBQzFCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNwQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hCLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNoRCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNULENBQUM7SUFDRCxPQUFPLENBQUMsR0FBbUI7UUFDekIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFDRCxNQUFNLENBQUMsQ0FBQztRQUNOLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDekIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBQ0QsSUFBSSxDQUFDLEdBQWUsRUFBRSxNQUF1QjtRQUMzQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQzlCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLGtCQUFrQixDQUFDLElBQUksRUFBQztZQUMxRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztZQUNoQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDckUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQ3JGLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDO1lBQ3JGLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNuRSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBQztnQkFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDdkM7U0FDRjthQUFJO1lBQ0gsTUFBTSxJQUFJLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUM1QixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFDO2dCQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7YUFDN0M7WUFDRCxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQ3ZMLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNyRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLENBQUM7Z0JBQ3JGLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDO2dCQUNyRixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQ25FLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUM7b0JBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUN0QztnQkFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBQztvQkFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUNoQztZQUNILENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQztTQUNoQjtJQUNILENBQUM7SUFDRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDbkcsQ0FBQztJQUNELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ2pHLENBQUM7SUFDRCxTQUFTLENBQUMsQ0FBQztRQUNULElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUM7WUFDeEIsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFDO2dCQUM3SCxPQUFPO2FBQ1I7WUFDRCxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDaEQsSUFBSSxDQUFDLEVBQUM7Z0JBQ0osQ0FBQyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7YUFDcEI7WUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDekIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBQztnQkFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN2QztTQUNGO0lBQ0gsQ0FBQztJQUNELFdBQVcsQ0FBQyxDQUFDO1FBQ1gsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBQztZQUN4QixJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUM7Z0JBQzdILE9BQU87YUFDUjtZQUNELE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsRUFBQztnQkFDSixDQUFDLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQzthQUNwQjtZQUNELElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUN6QixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFDO2dCQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3pDO1NBQ0Y7SUFDSCxDQUFDO0lBQ0QsYUFBYSxDQUFDLENBQUM7UUFDYixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDbkIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBQztZQUN0RCxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzNDO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFpQjtRQUM3QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyw2REFBNkQ7SUFDdkYsQ0FBQzs7O1lBM2FGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZUFBZTtnQkFDekIsbzdGQUF5Qzs7YUFFMUM7OztZQVRPLHdCQUF3Qjs7OzBCQVc3QixNQUFNO3lCQUVOLE1BQU07b0JBRU4sS0FBSztvQkFFTCxLQUFLO2tCQUVMLEtBQUs7eUJBRUwsTUFBTTswQkFVTixTQUFTLFNBQUMsYUFBYTs0QkE4WXZCLFlBQVksU0FBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQge1RhYmxlQ2xhc3MsIFRhYmxlQ29sbENsYXNzfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL3RhYmxlLmNsYXNzJztcclxuaW1wb3J0IHtcclxuICBFbnVtVXRpbHMsIEZpbGVJY29ucyxcclxuICBJbnB1dFR5cGUsXHJcbiAgTWV0aG9kLCBQZXJtaXNzaW9uQWNjZXNzVHlwZUVudW0sXHJcbiAgUGVybWlzc2lvbklucHV0QWN0aW9uRW51bSxcclxuICBQZXJtaXNzaW9uSW5wdXRUeXBlRW51bSxcclxuICBQZXJtaXNzaW9uVHlwZUVudW0sXHJcbiAgVGFibGVDb2xsVHlwZSxcclxuICBUYWJsZU9wdGlvblR5cGUsIFRhYmxlUm93U3RhdHVzXHJcbn0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9lbnVtLmNsYXNzJztcclxuaW1wb3J0IHtJbnB1dENsYXNzfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm0uY2xhc3MnO1xyXG5pbXBvcnQge1JlcXVlc3RDbGFzc30gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9yZXF1ZXN0LmNsYXNzJztcclxuaW1wb3J0IHtIZWxwZXJDbGFzc30gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9oZWxwZXIuY2xhc3MnO1xyXG5pbXBvcnQge1BzVG9vbGtpdFVpQ29uZmlnU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgKiBhcyAkIGZyb20gJ2pxdWVyeSc7XHJcbmltcG9ydCB7UGVybWlzc2lvbkNsYXNzfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL3Blcm1pc3Npb24uY2xhc3MnO1xyXG5pbXBvcnQgJ2pxdWVyeS11aS1kaXN0L2pxdWVyeS11aSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi10YWJsZS1yb3cnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS5yb3cuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLnJvdy5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlUm93Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0e1xyXG4gIEBPdXRwdXQoKVxyXG4gIGNvbmZpcm1TaG93ID0gbmV3IEV2ZW50RW1pdHRlcjxvYmplY3Q+KCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgY2hhbmdlUm93cyA9IG5ldyBFdmVudEVtaXR0ZXI8b2JqZWN0PigpO1xyXG4gIEBJbnB1dCgpXHJcbiAgbGV2ZWw6IG51bWJlcjtcclxuICBASW5wdXQoKVxyXG4gIHRhYmxlOiBUYWJsZUNsYXNzO1xyXG4gIEBJbnB1dCgpXHJcbiAgcm93O1xyXG4gIEBPdXRwdXQoKVxyXG4gIGxvYWRQYXJlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBnZXQgdGFibGVSb3dTdGF0dXMoKTogdHlwZW9mIFRhYmxlUm93U3RhdHVzIHsgcmV0dXJuIFRhYmxlUm93U3RhdHVzOyB9XHJcbiAgZ2V0IHR5cGUoKTogdHlwZW9mIElucHV0VHlwZSB7IHJldHVybiBJbnB1dFR5cGU7IH1cclxuICBnZXQgdGFibGVPcHRpb25UeXBlKCk6IHR5cGVvZiBUYWJsZU9wdGlvblR5cGV7IHJldHVybiBUYWJsZU9wdGlvblR5cGU7IH1cclxuICBzaG93Q2hpbGRyZW46IElucHV0Q2xhc3MgPSBudWxsO1xyXG4gIGFkZENoaWxkcmVuOiBJbnB1dENsYXNzID0gbnVsbDtcclxuICBncm91cDogSW5wdXRDbGFzcyA9IG51bGw7XHJcbiAgY2hpbGRyZW46IGFueVtdID0gW107XHJcbiAgb3B0aW9uczogYW55W10gPSBbXTtcclxuICBAVmlld0NoaWxkKCdjaGlsZHJlbkRpdicpIGNoaWxkcmVuRGl2OiBFbGVtZW50UmVmO1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzZXJ2aWNlOiBQc1Rvb2xraXRVaUNvbmZpZ1NlcnZpY2UpIHtcclxuICB9XHJcbiAgbW91c2VPdXQoZSk6IHZvaWR7XHJcbiAgICAkKGUudGFyZ2V0KS5maW5kKCcub3B0aW9ucy1jb24nKS5yZW1vdmVDbGFzcygnc2hvdy1ncm91cCcpO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucm93LnN1YlRhYmxlID0gdGhpcy50YWJsZS5zdWJUYWJsZSAhPSBudWxsID8gSGVscGVyQ2xhc3MuY2xvbmUodGhpcy50YWJsZS5zdWJUYWJsZSkgOiBudWxsO1xyXG4gICAgdGhpcy5ncm91cCA9IG5ldyBJbnB1dENsYXNzKHRoaXMudGFibGUuZW52aXJvbm1lbnQsIHRoaXMudGFibGUubCwgJ1Nob3dPcHRpb25zJywgJ2ZhcyBmYS1lbGxpcHNpcy12ZXJ0aWNhbCcsIElucHV0VHlwZS5JY29uLCAnYmx1ZSBtLWgtNSBoLTI1IGQtaWIgdmEtbSBmLXUnKTtcclxuICAgIHRoaXMuZ3JvdXAub25Gb2N1c0luID0gKGUpID0+IHtcclxuICAgICAgJChlLnRhcmdldCkuY2xvc2VzdCgnLm9wdGlvbnMtY29uJykuYWRkQ2xhc3MoJ3Nob3ctZ3JvdXAnKTtcclxuICAgIH07XHJcbiAgICB0aGlzLmdyb3VwLm9uRm9jdXNPdXQgPSAoZSkgPT4ge1xyXG4gICAgICAvLyAkKGUudGFyZ2V0KS5jbG9zZXN0KCcub3B0aW9ucy1jb24nKS5yZW1vdmVDbGFzcygnc2hvdy1ncm91cCcpO1xyXG4gICAgfTtcclxuICAgIGlmICh0aGlzLnRhYmxlLmhhc0NoaWxkcmVuKXtcclxuICAgICAgaWYgKCF0aGlzLnRhYmxlLmNoaWxkcmVuQXV0b0xvYWQpe1xyXG4gICAgICAgIHRoaXMuY2hpbGRyZW4gPSB0aGlzLmdldENoaWxkcmVuKCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMudGFibGUucGVybWlzc2lvbnMuaGFzQWNjZXNzKFBlcm1pc3Npb25BY2Nlc3NUeXBlRW51bS5JbnNlcnQpKXtcclxuICAgICAgICB0aGlzLmFkZENoaWxkcmVuID0gbmV3IElucHV0Q2xhc3ModGhpcy50YWJsZS5lbnZpcm9ubWVudCwgdGhpcy50YWJsZS5sLCB0aGlzLnRhYmxlLm5hbWUgKyAnQWRkU3Vic2V0VGl0bGUnLFxyXG4gICAgICAgICAgJ2ZhZCBmYS1wbHVzIGZhLXJvdGF0ZS05MCcsIElucHV0VHlwZS5JY29uLFxyXG4gICAgICAgICAgJ2dyZWVuIG0taC01IGgtMjUgZC1pYiB2YS1tIGYtdScpO1xyXG4gICAgICAgIHRoaXMuYWRkQ2hpbGRyZW4ub25DbGljayA9ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMudGFibGUuZm9ybS5vblN1Y2Nlc3NCYXNlID0gKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlLm1vZGFsLmhpZGUoKTtcclxuICAgICAgICAgICAgdGhpcy5zaG93Q2hpbGRyZW4udHlwZSA9IElucHV0VHlwZS5JY29uO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRDaGlsZHJlbih0aGlzLnJvdy5EYXRhLklkKTtcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICB0aGlzLnRhYmxlLnNob3dJbnNlcnRNb2RhbCh0aGlzLnJvdy5EYXRhLklkLCB0aGlzLmxldmVsLCB0aGlzLnJvdy5EYXRhKTtcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy50YWJsZS5oYXNDaGlsZHJlbiB8fCB0aGlzLnJvdy5zdWJUYWJsZSAhPSBudWxsKXtcclxuICAgICAgdGhpcy5zaG93Q2hpbGRyZW4gPSBuZXcgSW5wdXRDbGFzcyh0aGlzLnRhYmxlLmVudmlyb25tZW50LCB0aGlzLnRhYmxlLmwsIHRoaXMudGFibGUubmFtZSArICdTdWJzZXRUaXRsZScsICdmYWQgZmEtYW5nbGUtbGVmdCBmLXMtMjInLFxyXG4gICAgICAgIHRoaXMucm93LkRhdGEuQ291bnRDaGlsZCA+IDAgfHwgKCF0aGlzLnRhYmxlLmNoaWxkcmVuQXV0b0xvYWQgJiYgdGhpcy5jaGlsZHJlbi5sZW5ndGggPiAwKSB8fCB0aGlzLnJvdy5zdWJUYWJsZSAhPSBudWxsID8gSW5wdXRUeXBlLkljb24gOiBJbnB1dFR5cGUuSGlkZGVuLCAnaC0yNSBtLWgtNSBkLWliIHZhLW0gZi11Jyk7XHJcbiAgICAgIHRoaXMuc2hvd0NoaWxkcmVuLm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgaWYgKCQodGhpcy5jaGlsZHJlbkRpdi5uYXRpdmVFbGVtZW50KS5pcygnOnZpc2libGUnKSl7XHJcbiAgICAgICAgICAkKHRoaXMuY2hpbGRyZW5EaXYubmF0aXZlRWxlbWVudCkuc2xpZGVVcCgpO1xyXG4gICAgICAgICAgdGhpcy5zaG93Q2hpbGRyZW4uaWNvbiA9ICdmYWQgZmEtYW5nbGUtbGVmdCBmLXMtMjInO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy50YWJsZS5oYXNDaGlsZHJlbiAmJiB0aGlzLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCl7XHJcbiAgICAgICAgICB0aGlzLmxvYWRDaGlsZHJlbih0aGlzLnJvdy5EYXRhLklkKTtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMucm93LnN1YlRhYmxlICE9IG51bGwgJiYgdGhpcy5yb3cuc3ViVGFibGUucGVybWlzc2lvbnMgPT0gbnVsbCl7XHJcbiAgICAgICAgICBjb25zdCBhY2MgPSB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLkFjY2Vzc2VzLmZpbmQoeCA9PiB4LkFjdGlvbiA9PT0gdGhpcy5yb3cuc3ViVGFibGUubmFtZSk7XHJcbiAgICAgICAgICBjb25zdCBwcyA9IG5ldyBQZXJtaXNzaW9uQ2xhc3MoKTtcclxuICAgICAgICAgIHBzLlJlbGF0ZWRJZCA9IHRoaXMucm93LkRhdGEuSWQ7XHJcbiAgICAgICAgICBwcy5BcmVhID0gYWNjLkFyZWE7XHJcbiAgICAgICAgICBwcy5Db250cm9sbGVyID0gYWNjLkNvbnRyb2xsZXI7XHJcbiAgICAgICAgICBwcy5BY3Rpb24gPSBhY2MuQWN0aW9uO1xyXG4gICAgICAgICAgcHMuQWNjZXNzZXMgPSB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLkFjY2Vzc2VzPy5maWx0ZXIoeCA9PiB4LlBhcmVudElkID09PSBhY2MuSWQpID8/IFtdO1xyXG4gICAgICAgICAgdGhpcy5yb3cuc3ViVGFibGUucGVybWlzc2lvbnMgPSBwcztcclxuICAgICAgICAgIHRoaXMucm93LnN1YlRhYmxlLnNldCgpO1xyXG4gICAgICAgICAgJCh0aGlzLmNoaWxkcmVuRGl2Lm5hdGl2ZUVsZW1lbnQpLnNsaWRlRG93bigpO1xyXG4gICAgICAgICAgdGhpcy5zaG93Q2hpbGRyZW4uaWNvbiA9ICdmYWQgZmEtYW5nbGUtZG93biBmLXMtMjInO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAkKHRoaXMuY2hpbGRyZW5EaXYubmF0aXZlRWxlbWVudCkuc2xpZGVEb3duKCk7XHJcbiAgICAgICAgICB0aGlzLnNob3dDaGlsZHJlbi5pY29uID0gJ2ZhZCBmYS1hbmdsZS1kb3duIGYtcy0yMic7XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMudGFibGUuc29ydGFibGUpe1xyXG4gICAgICB0aGlzLnNldFNvcnRSb3coKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0T3B0aW9ucygpO1xyXG4gIH1cclxuICBsb2FkQ2hpbGRyZW4ocCk6IHZvaWR7XHJcbiAgICBjb25zdCBkYXRhID0gdGhpcy50YWJsZS5zZWFyY2hEYXRhKCk7XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcclxuICAgIGRhdGFbJ1BhZ2UnXSA9IDE7XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcclxuICAgIGRhdGFbJ1BlclBhZ2UnXSA9IC0xO1xyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lXHJcbiAgICBkYXRhWydMZXZlbCddID0gdGhpcy5sZXZlbDtcclxuICAgIG5ldyBSZXF1ZXN0Q2xhc3ModGhpcy50YWJsZS5lbnZpcm9ubWVudCwgdGhpcy50YWJsZS5sKS5zZW5kKHRoaXMudGFibGUudXJsICsgYC8ke3B9YCwgTWV0aG9kLlBvc3QsXHJcbiAgICAgIGRhdGEsIHRoaXMuc2hvd0NoaWxkcmVuLCAocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgdGhpcy5jaGlsZHJlbiA9IHJlc3VsdC5MaXN0O1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgJCh0aGlzLmNoaWxkcmVuRGl2Lm5hdGl2ZUVsZW1lbnQpLnNsaWRlRG93bigpO1xyXG4gICAgICAgICAgdGhpcy5zaG93Q2hpbGRyZW4uaWNvbiA9ICdmYWQgZmEtYW5nbGUtZG93biBmLXMtMjInO1xyXG4gICAgICAgIH0sIDUwKTtcclxuICAgICAgfSwgKCkgPT4ge30pO1xyXG4gIH1cclxuICBjaGVjaygpOiB2b2lke1xyXG4gICAgdGhpcy5yb3cuY2hlY2tlZCA9ICF0aGlzLnJvdy5jaGVja2VkO1xyXG4gICAgaWYgKHRoaXMudGFibGUub25DaGFuZ2VDaGVjayl7XHJcbiAgICAgIHRoaXMudGFibGUub25DaGFuZ2VDaGVjayh0aGlzLnJvdyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uQ2hhbmdlUm93cyhlKTogdm9pZHtcclxuICAgIHJldHVybiB0aGlzLmNoYW5nZVJvd3MuZW1pdChlKTtcclxuICB9XHJcbiAgb25Db25maXJtU2hvdyhlKTogdm9pZHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpcm1TaG93LmVtaXQoZSk7XHJcbiAgfVxyXG4gIHNldFNvcnRSb3coKTogdm9pZHtcclxuICAgIGlmICh0aGlzLnRhYmxlLmhhc0NoaWxkcmVuKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAkKHRoaXMuY2hpbGRyZW5EaXYubmF0aXZlRWxlbWVudCkuc29ydGFibGUoe1xyXG4gICAgICAgICAgYXhpczogJ3knLFxyXG4gICAgICAgICAgaXRlbXM6ICcucm93JyxcclxuICAgICAgICAgIGhhbmRsZTogJz4gLmhhbmRsZS1jb24gPiAuaGFuZGxlLmhhbmRsZS1zb3J0YWJsZScsXHJcbiAgICAgICAgICB1cGRhdGU6ICgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IFtdO1xyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICQodGhpcy5jaGlsZHJlbkRpdi5uYXRpdmVFbGVtZW50KS5zb3J0YWJsZSgndG9BcnJheScsIHthdHRyaWJ1dGU6ICdkYXRhLWlkJ30pLmZvckVhY2goeCA9PiB7XHJcbiAgICAgICAgICAgICAgZGF0YS5wdXNoKHBhcnNlSW50KHgsIDEwKSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBjb25zdCBwID0gbmV3IFBlcm1pc3Npb25DbGFzcygpO1xyXG4gICAgICAgICAgICBwLkFyZWEgPSB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLkFyZWE7XHJcbiAgICAgICAgICAgIHAuQ29udHJvbGxlciA9IHRoaXMudGFibGUucGVybWlzc2lvbnMuQ29udHJvbGxlcjtcclxuICAgICAgICAgICAgcC5SZWxhdGVkSWQgPSB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLlJlbGF0ZWRJZDtcclxuICAgICAgICAgICAgcC5BY3Rpb24gPSB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLkFjdGlvbiA/IHRoaXMudGFibGUucGVybWlzc2lvbnMuQWN0aW9uICsgJy1zb3J0JyA6ICdzb3J0JztcclxuICAgICAgICAgICAgbmV3IFJlcXVlc3RDbGFzcyh0aGlzLnRhYmxlLmVudmlyb25tZW50LCB0aGlzLnRhYmxlLmwpLnNlbmQocC5nZXRVcmwoKS50b0xvd2VyQ2FzZSgpLCBNZXRob2QuUG9zdCwge0lkczogZGF0YX0sIG51bGwsICgpID0+IHtcclxuICAgICAgICAgICAgICBpZiAodGhpcy50YWJsZS5vblNvcnQpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZS5vblNvcnQoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sICgpID0+IHt9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KS5kaXNhYmxlU2VsZWN0aW9uKCk7XHJcbiAgICAgIH0sIDUwMCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNldE9wdGlvbnMoKTogdm9pZHtcclxuICAgIGNvbnN0IG9wdHMgPSBbXTtcclxuICAgIGZvciAoY29uc3Qgb3B0aW9uIG9mICh0aGlzLnJvdy5PcHRpb25zPy5maWx0ZXIoeCA9PiB4LlR5cGUgPT09IFBlcm1pc3Npb25UeXBlRW51bS5PcHRpb24gJiYgeC5JbnB1dEFjdGlvbiA9PT0gUGVybWlzc2lvbklucHV0QWN0aW9uRW51bS5JbnB1dCkgPz8gW10pKXtcclxuICAgICAgY29uc3QgaW5wID0gbmV3IElucHV0Q2xhc3ModGhpcy50YWJsZS5lbnZpcm9ubWVudCwgdGhpcy50YWJsZS5sLCBudWxsLCBudWxsLCBJbnB1dFR5cGUuQ2hlY2ssICdoLTI1IHdpdGhvdXQtYm9yZGVyIG0taC01IHAtMCB3LXUnLCB0aGlzLnJvdy5EYXRhW29wdGlvbi5BY3Rpb25dID09PSB0cnVlKTtcclxuICAgICAgaW5wLnJvdyA9IHRoaXMucm93O1xyXG4gICAgICBpbnAudG9vbHRpcCA9IG9wdGlvbi5OYW1lO1xyXG4gICAgICBpbnAub25DaGFuZ2UgPSAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yb3cuRGF0YVtvcHRpb24uQWN0aW9uXSA9ICFpbnAuZGF0YSgpO1xyXG4gICAgICAgIG5ldyBSZXF1ZXN0Q2xhc3ModGhpcy50YWJsZS5lbnZpcm9ubWVudCwgdGhpcy50YWJsZS5sKS5zZW5kKHRoaXMudGFibGUuZ2V0T3B0aW9uVXJsKG9wdGlvbi5VcmwsIHRoaXMudGFibGUucGVybWlzc2lvbnMuUmVsYXRlZElkLCB0aGlzLnJvdy5EYXRhLklkKSwgTWV0aG9kLlBvc3QsIG51bGwsIG51bGwsICgpID0+IHtcclxuICAgICAgICAgIHRoaXMudGFibGUubG9hZCgpO1xyXG4gICAgICAgIH0sICgpID0+IHtcclxuICAgICAgICAgIHRoaXMudGFibGUubG9hZCgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9O1xyXG4gICAgICBpbnAuZGlzcGxheUxhYmVsID0gZmFsc2U7XHJcbiAgICAgIG9wdHMucHVzaChpbnApO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuYWRkQ2hpbGRyZW4gIT09IG51bGwgJiYgKHRoaXMudGFibGUubGV2ZWwgPT09IG51bGwgfHwgdGhpcy50YWJsZS5sZXZlbCA+IHRoaXMubGV2ZWwpKXtcclxuICAgICAgb3B0cy5wdXNoKHRoaXMuYWRkQ2hpbGRyZW4pO1xyXG4gICAgfVxyXG4gICAgZm9yIChjb25zdCBvcHRpb24gb2YgKHRoaXMucm93Lk9wdGlvbnM/LmZpbHRlcih4ID0+IHguVHlwZSA9PT0gUGVybWlzc2lvblR5cGVFbnVtLk9wdGlvbiAmJiB4LklucHV0QWN0aW9uICE9PSBQZXJtaXNzaW9uSW5wdXRBY3Rpb25FbnVtLklucHV0KSA/PyBbXSkpe1xyXG4gICAgICBjb25zdCBvcHQgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLnRhYmxlLmVudmlyb25tZW50LCB0aGlzLnRhYmxlLmwsIG9wdGlvbi5OYW1lLCBvcHRpb24uSWNvbixcclxuICAgICAgICBvcHRpb24uSW5wdXRUeXBlID09PSBQZXJtaXNzaW9uSW5wdXRUeXBlRW51bS5JY29uID8gSW5wdXRUeXBlLkljb24gOiBJbnB1dFR5cGUuQnV0dG9uLCAnYmx1ZSBoLTI1IG0taC01IGQtaWIgdmEtbSBmLXUnKTtcclxuICAgICAgb3B0LnJvdyA9IHRoaXMucm93O1xyXG4gICAgICBpZiAob3B0aW9uLkFjY2Vzc1R5cGUgPT09IFBlcm1pc3Npb25BY2Nlc3NUeXBlRW51bS5VcGRhdGUpe1xyXG4gICAgICAgIGlmICh0aGlzLnRhYmxlLmZvcm0pe1xyXG4gICAgICAgICAgb3B0Lm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudGFibGUuZm9ybS51cmwgPSB0aGlzLnRhYmxlLmdldE9wdGlvblVybChvcHRpb24uVXJsLCB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLlJlbGF0ZWRJZCwgdGhpcy5yb3cuRGF0YS5JZCk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnRhYmxlLmhhc0NoaWxkcmVuICYmIHRoaXMucm93LkRhdGEuUGFyZW50SWQgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgIHRoaXMudGFibGUuZm9ybS5vblN1Y2Nlc3NCYXNlID0gKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZS5tb2RhbC5oaWRlKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50YWJsZS5jaGlsZHJlbkF1dG9Mb2FkKXtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkUGFyZW50LmVtaXQodGhpcy5yb3cuRGF0YS5QYXJlbnRJZCk7XHJcbiAgICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgICAgdGhpcy50YWJsZS5sb2FkKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnRhYmxlLmZvcm0ub25TdWNjZXNzQmFzZSA9ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy50YWJsZS5mb3JtLm9uVG9wKXtcclxuICAgICAgICAgICAgICAgICAgdGhpcy50YWJsZS5tb2RhbC5oaWRlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLmZvcm0uY2xlYXIodGhpcy50YWJsZS5pbnNlcnRBY2Nlc3MgIT0gbnVsbCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLmxvYWQoKTtcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuZWRpdChvcHQsIG9wdGlvbik7XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvcHQudXJsID0gdGhpcy50YWJsZS5nZXRPcHRpb25Vcmwob3B0aW9uLlVybCwgdGhpcy50YWJsZS5wZXJtaXNzaW9ucy5SZWxhdGVkSWQsIHRoaXMucm93LkRhdGEuSWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChvcHRpb24uQWNjZXNzVHlwZSA9PT0gUGVybWlzc2lvbkFjY2Vzc1R5cGVFbnVtLkRlbGV0ZSl7XHJcbiAgICAgICAgb3B0LmNsYXNzID0gb3B0LmNsYXNzLnJlcGxhY2UoJ2JsdWUnLCAncmVkJyk7XHJcbiAgICAgICAgb3B0Lm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy50YWJsZS5mb3JtKXtcclxuICAgICAgICAgICAgdGhpcy50YWJsZS5mb3JtLmNsZWFyKHRoaXMudGFibGUuaW5zZXJ0QWNjZXNzICE9IG51bGwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHRoaXMudGFibGUucGVybWlzc2lvbnMuVHlwZSA9PT0gUGVybWlzc2lvblR5cGVFbnVtLkZvcm0pe1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlLnJvd3MgPSB0aGlzLnRhYmxlLnJvd3MuZmlsdGVyKHggPT4geC5EYXRhLklkICE9PSB0aGlzLnJvdy5EYXRhLklkKTtcclxuICAgICAgICAgICAgaWYgKHRoaXMudGFibGUub25Mb2FkKXtcclxuICAgICAgICAgICAgICB0aGlzLnRhYmxlLm9uTG9hZCh0aGlzLnRhYmxlLnJvd3MpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlUm93cy5lbWl0KHRoaXMucm93LkRhdGEpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5jb25maXJtU2hvdy5lbWl0KHtcclxuICAgICAgICAgICAgICBhY3Rpb246IG9wdGlvbi5BY3Rpb24sXHJcbiAgICAgICAgICAgICAgZGF0YTogdGhpcy50YWJsZS5oYXNDaGlsZHJlbiA/IHtMZXZlbDogdGhpcy5sZXZlbH0gOiBudWxsLFxyXG4gICAgICAgICAgICAgIHVybDogdGhpcy50YWJsZS5nZXRPcHRpb25Vcmwob3B0aW9uLlVybCwgdGhpcy50YWJsZS5wZXJtaXNzaW9ucy5SZWxhdGVkSWQsIHRoaXMucm93LkRhdGEuSWQpLFxyXG4gICAgICAgICAgICAgIGFjY2VwdDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudGFibGUuaGFzQ2hpbGRyZW4gJiYgdGhpcy50YWJsZS5jaGlsZHJlbkF1dG9Mb2FkICYmIHRoaXMucm93LkRhdGEuUGFyZW50SWQgIT0gbnVsbCApe1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmxvYWRQYXJlbnQuZW1pdCh0aGlzLnJvdy5EYXRhLlBhcmVudElkKTtcclxuICAgICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLmxvYWQoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9fSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChvcHRpb24uQWNjZXNzVHlwZSA9PT0gUGVybWlzc2lvbkFjY2Vzc1R5cGVFbnVtLlJlcG9ydCl7XHJcbiAgICAgICAgb3B0LnVybCA9IHRoaXMudGFibGUuZ2V0T3B0aW9uVXJsKCcvcmVwb3J0JyArIG9wdGlvbi5VcmwsIHRoaXMudGFibGUucGVybWlzc2lvbnMuUmVsYXRlZElkLCB0aGlzLnJvdy5EYXRhLklkKTtcclxuICAgICAgICBvcHQucXVlcnlQYXJhbXMgPSB7cmVwb3J0SWQ6IEhlbHBlckNsYXNzLnJhbmRvbSgyMCl9O1xyXG4gICAgICAgIG9wdC51cmxOZXdUYWIgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKG9wdGlvbi5JbnB1dEFjdGlvbiA9PT0gUGVybWlzc2lvbklucHV0QWN0aW9uRW51bS5MaW5rIHx8IG9wdGlvbi5JbnB1dEFjdGlvbiA9PT0gUGVybWlzc2lvbklucHV0QWN0aW9uRW51bS5MaW5rTmV3VGFiKXtcclxuICAgICAgICBvcHQudXJsID0gb3B0aW9uLlVybC5yZXBsYWNlKCd7fScsIHRoaXMucm93LkRhdGEuSWQpO1xyXG4gICAgICAgIG9wdC51cmxOZXdUYWIgPSBvcHRpb24uSW5wdXRBY3Rpb24gPT09IFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0uTGlua05ld1RhYjtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChvcHRpb24uSW5wdXRBY3Rpb24gPT09IFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0uTW9kYWwpe1xyXG4gICAgICAgIG9wdC5tb2RhbCA9IHRoaXMudGFibGUub3B0aW9uc0FjdGlvbnMuZmluZCh4ID0+IHgubmFtZSA9PT0gb3B0aW9uLkFjdGlvbik7XHJcbiAgICAgICAgb3B0Lm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgICBpZiAob3B0Lm1vZGFsLnRhYmxlKXtcclxuICAgICAgICAgICAgY29uc3QgcCA9IG5ldyBQZXJtaXNzaW9uQ2xhc3MoKTtcclxuICAgICAgICAgICAgcC5SZWxhdGVkSWQgPSB0aGlzLnJvdy5EYXRhLklkO1xyXG4gICAgICAgICAgICBwLkFyZWEgPSB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLkFyZWE7XHJcbiAgICAgICAgICAgIHAuQ29udHJvbGxlciA9IHRoaXMudGFibGUucGVybWlzc2lvbnMuQ29udHJvbGxlcjtcclxuICAgICAgICAgICAgcC5BY3Rpb24gPSBvcHRpb24uQWN0aW9uO1xyXG4gICAgICAgICAgICBwLkFjY2Vzc2VzID0gdGhpcy5nZXRQZXJtaXNzaW9uKG9wdGlvbi5JZCwgdGhpcy5yb3cuT3B0aW9ucyk7XHJcbiAgICAgICAgICAgIG9wdC5tb2RhbC50YWJsZS5wZXJtaXNzaW9ucyA9IHA7XHJcbiAgICAgICAgICAgIGlmIChvcHQubW9kYWwudGFibGUuZm9ybSl7XHJcbiAgICAgICAgICAgICAgb3B0Lm1vZGFsLnRhYmxlLmZvcm0udXJsID0gb3B0aW9uLlVybC5yZXBsYWNlKCd7fScsIHRoaXMucm93LkRhdGEuSWQpICsgJy1pbnNlcnQnO1xyXG4gICAgICAgICAgICAgIG9wdC5tb2RhbC50YWJsZS5mb3JtLmJhc2VVcmwgPSBvcHRpb24uVXJsLnJlcGxhY2UoJ3t9JywgdGhpcy5yb3cuRGF0YS5JZCkgKyAnLWluc2VydCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgb3B0Lm1vZGFsLnRhYmxlLnJlbGF0ZWRSb3cgPSB0aGlzLnJvdy5EYXRhO1xyXG4gICAgICAgICAgICBvcHQubW9kYWwudGFibGUuc2V0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAob3B0Lm1vZGFsLmZvcm0pe1xyXG4gICAgICAgICAgICBvcHQubW9kYWwuZm9ybS5uYW1lID0gb3B0aW9uLk5hbWU7XHJcbiAgICAgICAgICAgIG9wdC5tb2RhbC5mb3JtLnVybCA9IG9wdGlvbi5VcmwucmVwbGFjZSgne30nLCB0aGlzLnJvdy5EYXRhLklkKSArICctdXBkYXRlJztcclxuICAgICAgICAgICAgb3B0Lm1vZGFsLmZvcm0ubG9hZERhdGEob3B0aW9uLlVybC5yZXBsYWNlKCd7fScsIHRoaXMucm93LkRhdGEuSWQpICsgJy1nZXQnKTtcclxuICAgICAgICAgICAgb3B0Lm1vZGFsLmZvcm0ub25TdWNjZXNzQmFzZSA9ICgpID0+IHtcclxuICAgICAgICAgICAgICBvcHQubW9kYWwuaGlkZSgpO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKG9wdC5tb2RhbC5hY2NvcmRpb24pe1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHIgb2Ygb3B0Lm1vZGFsLmFjY29yZGlvbi5yb3dzKXtcclxuICAgICAgICAgICAgICBpZiAoci50YWJsZSl7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnJvdy5PcHRpb25zID8/IFtdKSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCByb3dPcHRpb24gPSBvcHRpb25zLmZpbmQoeCA9PiB4LlBhcmVudElkID09PSBvcHRpb24uSWQgJiYgeC5BY3Rpb24gPT09IHIubmFtZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAocm93T3B0aW9uKXtcclxuICAgICAgICAgICAgICAgICAgY29uc3QgcCA9IG5ldyBQZXJtaXNzaW9uQ2xhc3MoKTtcclxuICAgICAgICAgICAgICAgICAgcC5SZWxhdGVkSWQgPSB0aGlzLnJvdy5EYXRhLklkO1xyXG4gICAgICAgICAgICAgICAgICBwLkFyZWEgPSB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLkFyZWE7XHJcbiAgICAgICAgICAgICAgICAgIHAuQ29udHJvbGxlciA9IG9wdGlvbi5Db250cm9sbGVyO1xyXG4gICAgICAgICAgICAgICAgICBwLkFjdGlvbiA9IHIubmFtZTtcclxuICAgICAgICAgICAgICAgICAgcC5BY2Nlc3NlcyA9IG9wdGlvbnMuZmlsdGVyKHggPT4geC5QYXJlbnRJZCA9PT0gcm93T3B0aW9uLklkKTtcclxuICAgICAgICAgICAgICAgICAgci50YWJsZS5wZXJtaXNzaW9ucyA9IHA7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChyLnRhYmxlLmZvcm0pe1xyXG4gICAgICAgICAgICAgICAgICAgIHIudGFibGUuZm9ybS51cmwgPSBvcHRpb24uVXJsICsgJ2luc2VydCc7XHJcbiAgICAgICAgICAgICAgICAgICAgci50YWJsZS5mb3JtLmJhc2VVcmwgPSBvcHRpb24uVXJsICsgJ2luc2VydCc7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgci50YWJsZS5zZXQoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKG9wdGlvbi5JbnB1dEFjdGlvbiA9PT0gUGVybWlzc2lvbklucHV0QWN0aW9uRW51bS5GaWxlKXtcclxuICAgICAgICBjb25zdCBwID0gbmV3IFBlcm1pc3Npb25DbGFzcygpO1xyXG4gICAgICAgIHAuUmVsYXRlZElkID0gdGhpcy50YWJsZS5wZXJtaXNzaW9ucy5SZWxhdGVkSWQ7XHJcbiAgICAgICAgcC5BcmVhID0gdGhpcy50YWJsZS5wZXJtaXNzaW9ucy5BcmVhO1xyXG4gICAgICAgIHAuQ29udHJvbGxlciA9IG9wdGlvbi5Db250cm9sbGVyO1xyXG4gICAgICAgIHAuQWN0aW9uID0gb3B0aW9uLkFjdGlvbjtcclxuICAgICAgICBvcHQudXJsID0gJy9maWxlJyArIHRoaXMudGFibGUuZ2V0T3B0aW9uVXJsKG9wdGlvbi5VcmwsIHRoaXMudGFibGUucGVybWlzc2lvbnMuUmVsYXRlZElkLCB0aGlzLnJvdy5EYXRhLklkKTtcclxuICAgICAgICBvcHQudXJsTmV3VGFiID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChvcHRpb24uSW5wdXRBY3Rpb24gPT09IFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0uQ29uZmlybSl7XHJcbiAgICAgICAgb3B0Lm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBwID0gbmV3IFBlcm1pc3Npb25DbGFzcygpO1xyXG4gICAgICAgICAgcC5SZWxhdGVkSWQgPSB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLlJlbGF0ZWRJZDtcclxuICAgICAgICAgIHAuQXJlYSA9IHRoaXMudGFibGUucGVybWlzc2lvbnMuQXJlYTtcclxuICAgICAgICAgIHAuQ29udHJvbGxlciA9IG9wdGlvbi5Db250cm9sbGVyO1xyXG4gICAgICAgICAgcC5BY3Rpb24gPSBvcHRpb24uQWN0aW9uO1xyXG4gICAgICAgICAgdGhpcy50YWJsZS5zaG93Q29uZmlybSh0aGlzLnRhYmxlLmwob3B0aW9uLkFjdGlvbiArICdDb25maXJtJyksIHRoaXMudGFibGUuZ2V0T3B0aW9uVXJsKG9wdGlvbi5VcmwsIHRoaXMudGFibGUucGVybWlzc2lvbnMuUmVsYXRlZElkLCB0aGlzLnJvdy5EYXRhLklkKSwgbnVsbCwgKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlLmxvYWQoKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAob3B0aW9uLklucHV0QWN0aW9uID09PSBQZXJtaXNzaW9uSW5wdXRBY3Rpb25FbnVtLk9uQ2xpY2spe1xyXG4gICAgICAgIG9wdC5vbkNsaWNrID0gKGJ0bikgPT4ge1xyXG4gICAgICAgICAgdGhpcy50YWJsZS5vcHRpb25zQWN0aW9ucy5maW5kKHggPT4geC5uYW1lID09PSBvcHRpb24uQWN0aW9uKS5vbkNsaWNrKGJ0bik7XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICBvcHRzLnB1c2gob3B0KTtcclxuICAgIH1cclxuICAgIHRoaXMub3B0aW9ucyA9IG9wdHM7XHJcbiAgICAvLyByZXR1cm4gKHRoaXMuYWRkQ2hpbGRyZW4gIT09IG51bGwgJiYgKHRoaXMudGFibGUubGV2ZWwgPT09IG51bGwgfHwgdGhpcy50YWJsZS5sZXZlbCA+IHRoaXMubGV2ZWwpID8gW3RoaXMuYWRkQ2hpbGRyZW5dIDogW10pXHJcbiAgICAvLyAgIC5jb25jYXQodGhpcy50YWJsZS5vcHRpb25zLmZpbHRlcih4ID0+IHguY29uZGl0aW9uID09IG51bGwgfHxcclxuICAgIC8vICAgICAoeC5jb25kaXRpb24uc3RhcnRzV2l0aCgnIScpID8gIXRoaXMucm93LkRhdGFbeC5jb25kaXRpb24uc3Vic3RyaW5nKDEpXSA6IHRoaXMucm93LkRhdGFbeC5jb25kaXRpb25dKSkubWFwKChvKSA9PiB7XHJcbiAgICAvLyAgICAgY29uc3QgaSA9IEhlbHBlckNsYXNzLmNsb25lKG8pO1xyXG4gICAgLy8gICAgIGlmIChpLnVybCl7XHJcbiAgICAvLyAgICAgICBpLnVybCA9IGkudXJsLnJlcGxhY2UoJ3t9JywgdGhpcy5yb3cuRGF0YS5JZCk7XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICAgIGkucm93ID0gdGhpcy5yb3cuRGF0YTtcclxuICAgIC8vICAgICBpLmNsYXNzID0gaS5jbGFzcyArICcgbS1oLTUgaC0yNSBkLWliIHZhLW0gZi11JztcclxuICAgIC8vICAgICByZXR1cm4gaTtcclxuICAgIC8vIH0pKS5jb25jYXQodGhpcy50YWJsZS5oYXNTdGF0dXMgPyBbdGhpcy5vcHRTdGF0dXNdIDogW10pXHJcbiAgICAvLyAgICAgLmNvbmNhdCh0aGlzLnRhYmxlLnBlcm1pc3Npb25zLmhhc0FjY2VzcygnVXBkYXRlJykgPyBbdGhpcy5vcHRFZGl0XSA6IFtdKVxyXG4gICAgLy8gICAgIC5jb25jYXQodGhpcy50YWJsZS5wZXJtaXNzaW9ucy5oYXNBY2Nlc3MoJ0RlbGV0ZScpID8gW3RoaXMub3B0RGVsZXRlXSA6IFtdKTtcclxuICB9XHJcbiAgZ2V0UGVybWlzc2lvbihwYXJlbnRJZCwgbGlzdCk6IGFueSB7XHJcbiAgICBjb25zdCBjaGlsZHJlbiA9IGxpc3QuZmlsdGVyKGl0ZW0gPT4gaXRlbS5QYXJlbnRJZCA9PT0gcGFyZW50SWQpO1xyXG4gICAgcmV0dXJuIGNoaWxkcmVuLnJlZHVjZSgoYWNjLCBjaGlsZCkgPT4ge1xyXG4gICAgICBhY2MucHVzaChjaGlsZCk7XHJcbiAgICAgIGFjYy5wdXNoKC4uLnRoaXMuZ2V0UGVybWlzc2lvbihjaGlsZC5JZCwgbGlzdCkpO1xyXG4gICAgICByZXR1cm4gYWNjO1xyXG4gICAgfSwgW10pO1xyXG4gIH1cclxuICBnZXRDZWxsKGNvbDogVGFibGVDb2xsQ2xhc3MpOiBhbnl7XHJcbiAgICByZXR1cm4gdGhpcy50YWJsZS5nZXRDZWxsKHRoaXMucm93LCBjb2wpO1xyXG4gIH1cclxuICBnZXRDb2wobik6IHN0cmluZ3tcclxuICAgIGxldCBjID0gdGhpcy5yb3cuRGF0YTtcclxuICAgIG4uc3BsaXQoJy4nKS5mb3JFYWNoKCh4KSA9PiB7XHJcbiAgICAgIGMgPSBjW3hdO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gYztcclxuICB9XHJcbiAgZWRpdChvcHQ6IElucHV0Q2xhc3MsIG9wdGlvbjogUGVybWlzc2lvbkNsYXNzKTogdm9pZHtcclxuICAgIHRoaXMudGFibGUuZm9ybS5pc0VkaXQgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMudGFibGUucGVybWlzc2lvbnMuVHlwZSA9PT0gUGVybWlzc2lvblR5cGVFbnVtLkZvcm0pe1xyXG4gICAgICB0aGlzLnRhYmxlLmZvcm0ubmFtZSA9IG9wdC5uYW1lO1xyXG4gICAgICB0aGlzLnRhYmxlLmZvcm0uc2V0RGF0YSh0aGlzLnJvdy5EYXRhKTtcclxuICAgICAgdGhpcy50YWJsZS5mb3JtLnNldEJ1dHRvbnModGhpcy50YWJsZS5mb3JtLm9uVG9wLCB0cnVlLCBmYWxzZSwgdHJ1ZSk7XHJcbiAgICAgIHRoaXMudGFibGUuZm9ybS5pbnB1dHMuZmlsdGVyKHggPT4geC5pbkVkaXREaXNhYmxlZCkuZm9yRWFjaCh4ID0+IHguZGlzYWJsZWQgPSB0cnVlKTtcclxuICAgICAgdGhpcy50YWJsZS5mb3JtLmlucHV0cy5maWx0ZXIoeCA9PiAheC5pbkVkaXRWaXNpYmxlKS5mb3JFYWNoKHggPT4geC52aXNpYmxlID0gZmFsc2UpO1xyXG4gICAgICB0aGlzLnRhYmxlLmZvcm0uaW5wdXRzLmZvckVhY2goeCA9PiB4LnJlcXVpcmVkID0geC5pbkVkaXRSZXF1aXJlZCk7XHJcbiAgICAgIGlmICh0aGlzLnRhYmxlLmZvcm0ub25Mb2FkKXtcclxuICAgICAgICB0aGlzLnRhYmxlLmZvcm0ub25Mb2FkKHRoaXMucm93LkRhdGEpO1xyXG4gICAgICB9XHJcbiAgICB9ZWxzZXtcclxuICAgICAgY29uc3QgZGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgICBpZiAodGhpcy50YWJsZS5oYXNDaGlsZHJlbil7XHJcbiAgICAgICAgZGF0YS5hcHBlbmQoJ0xldmVsJywgdGhpcy5sZXZlbC50b1N0cmluZygpKTtcclxuICAgICAgfVxyXG4gICAgICBuZXcgUmVxdWVzdENsYXNzKHRoaXMudGFibGUuZW52aXJvbm1lbnQsIHRoaXMudGFibGUubCkuc2VuZCh0aGlzLnRhYmxlLmdldE9wdGlvblVybChvcHRpb24uVXJsLnJlcGxhY2UoJ3VwZGF0ZScsICdnZXQnKSwgdGhpcy50YWJsZS5wZXJtaXNzaW9ucy5SZWxhdGVkSWQsIHRoaXMucm93LkRhdGEuSWQpLCBNZXRob2QuUG9zdCxcclxuICAgICAgICBkYXRhLCBvcHQsIChyZXN1bHQpID0+IHtcclxuICAgICAgICAgIHRoaXMudGFibGUuZm9ybS5uYW1lID0gb3B0Lm5hbWU7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlLmZvcm0uc2V0RGF0YShyZXN1bHQpO1xyXG4gICAgICAgICAgdGhpcy50YWJsZS5mb3JtLnNldEJ1dHRvbnModGhpcy50YWJsZS5mb3JtLm9uVG9wLCB0cnVlLCBmYWxzZSwgdHJ1ZSk7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlLmZvcm0uaW5wdXRzLmZpbHRlcih4ID0+IHguaW5FZGl0RGlzYWJsZWQpLmZvckVhY2goeCA9PiB4LmRpc2FibGVkID0gdHJ1ZSk7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlLmZvcm0uaW5wdXRzLmZpbHRlcih4ID0+ICF4LmluRWRpdFZpc2libGUpLmZvckVhY2goeCA9PiB4LnZpc2libGUgPSBmYWxzZSk7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlLmZvcm0uaW5wdXRzLmZvckVhY2goeCA9PiB4LnJlcXVpcmVkID0geC5pbkVkaXRSZXF1aXJlZCk7XHJcbiAgICAgICAgICBpZiAodGhpcy50YWJsZS5tb2RhbCl7XHJcbiAgICAgICAgICAgIHRoaXMudGFibGUubW9kYWwuc2hvdyh0aGlzLnJvdy5EYXRhKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh0aGlzLnRhYmxlLmZvcm0ub25Mb2FkKXtcclxuICAgICAgICAgICAgdGhpcy50YWJsZS5mb3JtLm9uTG9hZChyZXN1bHQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sICgpID0+IHt9KTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0Q2hpbGRyZW4oKTogYW55W117XHJcbiAgICByZXR1cm4gdGhpcy5yb3cuRGF0YS5JZCA/IHRoaXMudGFibGUucm93cy5maWx0ZXIoeCA9PiB4LkRhdGEuUGFyZW50SWQgPT09IHRoaXMucm93LkRhdGEuSWQpIDogW107XHJcbiAgfVxyXG4gIGdldFN0YXR1c2VzKCk6IHN0cmluZ3tcclxuICAgIHJldHVybiB0aGlzLnJvdy5TdGF0dXNlcyAmJiB0aGlzLnJvdy5TdGF0dXNlcy5pbmNsdWRlcyhUYWJsZVJvd1N0YXR1cy5VbnJlYWQpID8gJ3VucmVhZCAnIDogJyc7XHJcbiAgfVxyXG4gIHNlbGVjdFJvdyhlKTogdm9pZHtcclxuICAgIGlmICh0aGlzLnRhYmxlLndpdGhTZWxlY3Qpe1xyXG4gICAgICBpZiAoJChlLnRhcmdldCkuY2xvc2VzdCgnLmhhbmRsZS1jb24nKS5oYXNDbGFzcygnaGFuZGxlLWNvbicpIHx8ICQoZS50YXJnZXQpLmNsb3Nlc3QoJy5vcHRpb25zLWNlbGwnKS5oYXNDbGFzcygnb3B0aW9ucy1jZWxsJykpe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBzID0gdGhpcy50YWJsZS5yb3dzLmZpbmQoeCA9PiB4LnNlbGVjdGVkKTtcclxuICAgICAgaWYgKHMpe1xyXG4gICAgICAgIHMuc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnJvdy5zZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgIGlmICh0aGlzLnRhYmxlLm9uU2VsZWN0Um93KXtcclxuICAgICAgICB0aGlzLnRhYmxlLm9uU2VsZWN0Um93KHRoaXMucm93LkRhdGEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGRibGNsaWNrUm93KGUpOiB2b2lke1xyXG4gICAgaWYgKHRoaXMudGFibGUud2l0aFNlbGVjdCl7XHJcbiAgICAgIGlmICgkKGUudGFyZ2V0KS5jbG9zZXN0KCcuaGFuZGxlLWNvbicpLmhhc0NsYXNzKCdoYW5kbGUtY29uJykgfHwgJChlLnRhcmdldCkuY2xvc2VzdCgnLm9wdGlvbnMtY2VsbCcpLmhhc0NsYXNzKCdvcHRpb25zLWNlbGwnKSl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHMgPSB0aGlzLnRhYmxlLnJvd3MuZmluZCh4ID0+IHguc2VsZWN0ZWQpO1xyXG4gICAgICBpZiAocyl7XHJcbiAgICAgICAgcy5zZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucm93LnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgaWYgKHRoaXMudGFibGUub25EYmxDbGlja1Jvdyl7XHJcbiAgICAgICAgdGhpcy50YWJsZS5vbkRibENsaWNrUm93KHRoaXMucm93LkRhdGEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJpZ2h0Q2xpY2tSb3coZSk6IHZvaWR7XHJcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBpZiAodGhpcy50YWJsZS53aXRoU2VsZWN0ICYmIHRoaXMudGFibGUub25SaWdodENsaWNrUm93KXtcclxuICAgICAgdGhpcy50YWJsZS5vblJpZ2h0Q2xpY2tSb3codGhpcy5yb3cuRGF0YSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ2NvbnRleHRtZW51JywgWyckZXZlbnQnXSlcclxuICBvbkNvbnRleHRNZW51KGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOyAvLyBQcmV2ZW50cyB0aGUgZGVmYXVsdCBjb250ZXh0IG1lbnUgZm9yIHRoZSBlbnRpcmUgY29tcG9uZW50XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -2674,8 +2674,8 @@ class TableRowComponent {
|
|
|
2674
2674
|
return this.confirmShow.emit(e);
|
|
2675
2675
|
}
|
|
2676
2676
|
setSortRow() {
|
|
2677
|
-
|
|
2678
|
-
|
|
2677
|
+
if (this.table.hasChildren) {
|
|
2678
|
+
setTimeout(() => {
|
|
2679
2679
|
// @ts-ignore
|
|
2680
2680
|
$$1(this.childrenDiv.nativeElement).sortable({
|
|
2681
2681
|
axis: 'y',
|
|
@@ -2690,16 +2690,17 @@ class TableRowComponent {
|
|
|
2690
2690
|
const p = new PermissionClass();
|
|
2691
2691
|
p.Area = this.table.permissions.Area;
|
|
2692
2692
|
p.Controller = this.table.permissions.Controller;
|
|
2693
|
-
p.
|
|
2693
|
+
p.RelatedId = this.table.permissions.RelatedId;
|
|
2694
|
+
p.Action = this.table.permissions.Action ? this.table.permissions.Action + '-sort' : 'sort';
|
|
2694
2695
|
new RequestClass(this.table.environment, this.table.l).send(p.getUrl().toLowerCase(), Method.Post, { Ids: data }, null, () => {
|
|
2695
2696
|
if (this.table.onSort) {
|
|
2696
2697
|
this.table.onSort();
|
|
2697
2698
|
}
|
|
2698
2699
|
}, () => { });
|
|
2699
2700
|
}
|
|
2700
|
-
});
|
|
2701
|
-
}
|
|
2702
|
-
}
|
|
2701
|
+
}).disableSelection();
|
|
2702
|
+
}, 500);
|
|
2703
|
+
}
|
|
2703
2704
|
}
|
|
2704
2705
|
setOptions() {
|
|
2705
2706
|
var _a, _b, _c, _d;
|