@esfaenza/core 15.2.55 → 15.2.56
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/esm2020/lib/app.component.mjs +2 -2
- package/esm2020/services/classes/app.state.mjs +2 -2
- package/fesm2015/esfaenza-core-services.mjs +1 -1
- package/fesm2015/esfaenza-core-services.mjs.map +1 -1
- package/fesm2015/esfaenza-core.mjs +2 -2
- package/fesm2015/esfaenza-core.mjs.map +1 -1
- package/fesm2020/esfaenza-core-services.mjs +1 -1
- package/fesm2020/esfaenza-core-services.mjs.map +1 -1
- package/fesm2020/esfaenza-core.mjs +2 -2
- package/fesm2020/esfaenza-core.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -221,7 +221,7 @@ export class AppState {
|
|
|
221
221
|
this.allJobs.splice(0, 0, job);
|
|
222
222
|
}
|
|
223
223
|
this.jobWithIdsCache[ev.instance].percentage = this.roundToTwo(ev.progress);
|
|
224
|
-
this.notifyDataChanged("app.progressJob", { description:
|
|
224
|
+
this.notifyDataChanged("app.progressJob", { description: ev.description, progress: ev.progress });
|
|
225
225
|
break;
|
|
226
226
|
case "Completed":
|
|
227
227
|
if (!this.jobWithIdsCache[ev.instance]) {
|
|
@@ -281,4 +281,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
281
281
|
type: Injectable,
|
|
282
282
|
args: [{ providedIn: "root" }]
|
|
283
283
|
}], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i2.TokenService }, { type: i3.NotificationsService }, { type: i3.BaseMessageService }, { type: i4.InterComService }, { type: i5.Router }, { type: i4.MessageService }, { type: i4.AppEmbeddingExtensions }]; } });
|
|
284
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zZXJ2aWNlcy9zcmMvY2xhc3Nlcy9hcHAuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQW9ELE1BQU0sc0JBQXNCLENBQUM7QUFDN0csT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQVNqRSxrQ0FBa0M7QUFDbEMsT0FBTyxLQUFLLGlCQUFpQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sS0FBSyxjQUFjLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxLQUFLLGFBQWEsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEtBQUssU0FBUyxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sS0FBSyxRQUFRLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxLQUFLLE1BQU0sTUFBTSxxQkFBcUIsQ0FBQztBQUM5QyxPQUFPLEtBQUssR0FBRyxNQUFNLGtCQUFrQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFLL0IsTUFBTSxPQUFPLFFBQVE7SUF3QmpCLElBQVcsT0FBTyxDQUFDLE9BQTJCO1FBQzFDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUNELElBQVcsT0FBTyxLQUF5QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBRWxFLFlBQW9CLEVBQXVCLEVBQVUsR0FBaUIsRUFBVSxhQUFtQyxFQUFVLFVBQThCLEVBQVUsUUFBeUIsRUFBVSxNQUFjLEVBQ2xNLFVBQTBCLEVBQVUsR0FBMkI7UUFEL0QsT0FBRSxHQUFGLEVBQUUsQ0FBcUI7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFjO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBb0I7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDbE0sZUFBVSxHQUFWLFVBQVUsQ0FBZ0I7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUF3QjtRQTNCNUUsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBQ3BDLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBQy9CLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBQy9CLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBSS9CLG1CQUFjLEdBQVcsQ0FBQyxDQUFDO1FBQzNCLFlBQU8sR0FBcUIsRUFBRSxDQUFDO1FBQzlCLG9CQUFlLEdBQXdDLEVBQUUsQ0FBQztRQUMzRCwwQkFBcUIsR0FBWSxJQUFJLENBQUM7UUFFckMsVUFBSyxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFDOUIsaUJBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXpDLG1CQUFjLEdBQWlDLElBQUksR0FBRyxFQUEyQixDQUFDO1FBRW5GLHlCQUFvQixHQUEwQyxFQUFFLENBQUM7UUFZcEUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBRWhDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFM0Qsa0NBQWtDO1FBQ2xDLElBQUksS0FBSyxHQUFHLEtBQUssRUFBRSxDQUFDO1FBQ3BCLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzlELElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLEdBQUcsVUFBVSxJQUFJLEtBQUssR0FBRyxVQUFVLENBQUM7UUFFOUQsc0NBQXNDO1FBQ3RDLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzlELElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxHQUFHLFVBQVUsSUFBSSxLQUFLLEdBQUcsVUFBVSxDQUFDO1FBRTlELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQWtCLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFRCxrQkFBa0I7UUFDZCxNQUFNLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBbUIsRUFBRSxFQUFFO1lBQ3ZDLGdGQUFnRjtZQUNoRixJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksTUFBTSxJQUFJLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLFlBQVk7Z0JBQzNELE9BQU87WUFFWCxJQUFJLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLE9BQU8sRUFBRTtnQkFDOUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQ0FBb0MsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLGNBQWMsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUVwRyxRQUFRLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFO29CQUN4QixLQUFLLFNBQVM7d0JBQ1YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQzt3QkFDaEQsTUFBTTtvQkFDVixLQUFLLFNBQVM7d0JBQ1YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQzt3QkFDaEQsTUFBTTtvQkFDVixLQUFLLE9BQU87d0JBQ1IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQzt3QkFDOUMsTUFBTTtpQkFDYjthQUNKO2lCQUNJLElBQUksS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksVUFBVSxFQUFFO2dCQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7Z0JBRWhFLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO2FBQzNDO2lCQUNJLElBQUksS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksVUFBVSxFQUFFO2dCQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7Z0JBRWhFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQzVDO2lCQUNJLElBQUksS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksWUFBWSxFQUFFO2dCQUN4QyxPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxLQUFLLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBRTNILElBQUksS0FBSyxFQUFFLElBQUksRUFBRSxrQkFBa0I7b0JBQy9CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyw0QkFBNEIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDOztvQkFFekUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHlCQUF5QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDN0U7aUJBQ0ksSUFBSSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxZQUFZLEVBQUU7Z0JBQ3hDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFnQixDQUFDO2dCQUN2RixJQUFJLGFBQWEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3JELE1BQU0sa0JBQWtCLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO2dCQUNwRixNQUFNLG1CQUFtQixHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztnQkFFdEYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtREFBbUQsS0FBSyxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO2dCQUU5RixJQUFJLFNBQVMsR0FBVyxHQUFHLENBQUMsQ0FBQyxpRkFBaUY7Z0JBQzlHLElBQUksVUFBVSxHQUFXLG1CQUFtQixDQUFDLENBQUMsd0dBQXdHO2dCQUN0SixJQUFJLFNBQVMsR0FBVyxJQUFJLENBQUMsWUFBWSxHQUFHLGtCQUFrQixDQUFDO2dCQUUvRCxJQUFJLFlBQVksR0FBRywyRUFBMkUsQ0FBQztnQkFFL0YsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztnQkFFN0QsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDMUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxvQkFBb0IsQ0FBQztnQkFDckMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsWUFBWSxHQUFHLFdBQVcsU0FBUyxrQ0FBa0MsU0FBUyxjQUFjLFNBQVMsSUFBSSxDQUFDO2dCQUM5SCxHQUFHLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQztnQkFFZixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMzQyxJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDO2dCQUN2QyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxZQUFZLEdBQUcsZ0NBQWdDLFNBQVMsS0FBSyxDQUFDO2dCQUNuRixJQUFJLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQztnQkFFakIsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDNUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxzQkFBc0IsQ0FBQztnQkFDekMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsWUFBWSxHQUFHLHVCQUF1QixTQUFTLGFBQWEsU0FBUyx3QkFBd0IsVUFBVSxLQUFLLENBQUM7Z0JBQ25JLEtBQUssQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDO2dCQUVuQixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDL0IsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2hDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3BDO2lCQUNJLElBQUksS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksYUFBYSxFQUFFO2dCQUN6QyxPQUFPLENBQUMsR0FBRyxDQUFDLDhCQUE4QixDQUFDLENBQUM7Z0JBRTVDLElBQUksT0FBTyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFnQixDQUFDO2dCQUNyRixPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFFekMsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDM0MsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDN0MsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFFL0MsSUFBSSxHQUFHO29CQUNILFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNuQyxJQUFJLElBQUk7b0JBQ0osUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3BDLElBQUksS0FBSztvQkFDTCxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN4QztRQUNMLENBQUMsQ0FBQztRQUVGLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxFQUFFO1lBQ3BDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFnQixDQUFDO1lBQ3ZGLElBQUksYUFBYSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNyRCxNQUFNLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztZQUNwRixJQUFJLFNBQVMsR0FBVyxJQUFJLENBQUMsWUFBWSxHQUFHLGtCQUFrQixDQUFDO1lBRS9ELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0MsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUUzQyxJQUFJLEdBQUcsRUFBRTtnQkFDTCxHQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztnQkFDbEQsR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLGVBQWUsU0FBUyxLQUFLLENBQUMsQ0FBQzthQUNqRTtZQUVELElBQUksSUFBSTtnQkFDSixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsU0FBUyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQzFELENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVE7WUFDakIsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELDhCQUE4QixDQUFDLEtBQThCO1FBQ3pELElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEMsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO1FBRS9DLHlHQUF5RztRQUN6RyxJQUFHLENBQUMsS0FBSztZQUFFLE9BQU87UUFFbEI7Ozs7V0FJRztRQUNILElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUM7UUFDaEQsSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUU1RCxJQUFJLENBQUMsTUFBTTtZQUNQLE9BQU8sQ0FBQyxLQUFLLENBQUMsdUlBQXVJLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRXZQLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDLENBQUMsQ0FBQyx5QkFBeUIsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlILENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxDQUFrQjtRQUNuQyxRQUFRLENBQUMsQ0FBQyxJQUFJLEVBQUU7WUFDWixLQUFLLG1CQUFtQixDQUFDLFVBQVU7Z0JBQy9CO29CQUNJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFDLHlCQUF5QixFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQ3ZILElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxDQUFDLENBQUM7aUJBQ3RGO1NBQ1I7SUFDTCxDQUFDO0lBRUQsVUFBVTtRQUNOLEtBQUssQ0FBQyxNQUFNLENBQU8saUJBQWtCLENBQUMsT0FBTyxJQUFJLGlCQUFpQixDQUFDLENBQUM7UUFDcEUsS0FBSyxDQUFDLE1BQU0sQ0FBTyxNQUFPLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxDQUFDO1FBQzlDLEtBQUssQ0FBQyxNQUFNLENBQU8sU0FBVSxDQUFDLE9BQU8sSUFBSSxTQUFTLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsTUFBTSxDQUFPLGNBQWUsQ0FBQyxPQUFPLElBQUksY0FBYyxDQUFDLENBQUM7UUFDOUQsS0FBSyxDQUFDLE1BQU0sQ0FBTyxhQUFjLENBQUMsT0FBTyxJQUFJLGFBQWEsQ0FBQyxDQUFDO1FBQzVELEtBQUssQ0FBQyxNQUFNLENBQU8sUUFBUyxDQUFDLE9BQU8sSUFBSSxRQUFRLENBQUMsQ0FBQztRQUNsRCxLQUFLLENBQUMsTUFBTSxDQUFPLEdBQUksQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLENBQUM7UUFFeEMseURBQXlEO1FBQ3pELE1BQU0sQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BHLENBQUM7SUFFRCx3QkFBd0I7UUFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQWtCLEVBQUUsRUFBRTtZQUNwRyxJQUFJLElBQUksR0FBRyxFQUFFLENBQUMsV0FBVyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztZQUNqRCxJQUFJLEdBQUcsR0FBbUI7Z0JBQ3RCLEVBQUUsRUFBRSxFQUFFLENBQUMsUUFBUTtnQkFDZixXQUFXLEVBQUUsSUFBSTtnQkFDakIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSTtnQkFDekUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFDeEMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksV0FBVztnQkFDakMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxVQUFVO2dCQUNyQixRQUFRLEVBQUUsRUFBRSxDQUFDLFlBQVk7Z0JBQ3pCLFVBQVUsRUFBRSxFQUFFLENBQUMsa0JBQWtCO2dCQUNqQyxlQUFlLEVBQUUsRUFBRSxDQUFDLG1CQUFtQjthQUMxQyxDQUFDO1lBRUYsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFO2dCQUNiLEtBQUssU0FBUztvQkFDVixJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFO3dCQUNuQyxPQUFPLENBQUMsSUFBSSxDQUFDLGtEQUFrRCxDQUFDLENBQUM7d0JBQ2pFLE9BQU87cUJBQ1Y7b0JBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDO29CQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO29CQUMvQixJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUNsRSxNQUFNO2dCQUNWLEtBQUssVUFBVTtvQkFDWCx1R0FBdUc7b0JBQ3ZHLCtDQUErQztvQkFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFO3dCQUNwQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUM7d0JBQ3hDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7cUJBQ2xDO29CQUNELElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDNUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixFQUFFLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO29CQUN0SCxNQUFNO2dCQUNWLEtBQUssV0FBVztvQkFDWixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUU7d0JBQ3BDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQzt3QkFDeEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztxQkFDbEM7b0JBQ0QsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ3BELFdBQVcsQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO29CQUM3QixXQUFXLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUM7b0JBQ25DLFdBQVcsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkMsV0FBVyxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUM7b0JBQy9DLFdBQVcsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO29CQUU3QixJQUFJLElBQUksQ0FBQyxxQkFBcUI7d0JBQzFCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBRXhFLE1BQU07YUFDYjtZQUVELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDeEUsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQUc7UUFDVixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUN2QyxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksSUFBSSxDQUFDLFlBQVk7WUFDakIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQzdCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMvQyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQUssRUFBRSxLQUFLO1FBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQ1osS0FBSyxFQUFFLEtBQUs7WUFDWixJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7U0FDMUIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFhLEVBQUUsUUFBa0I7UUFDdkMsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZELFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxRQUFRLENBQUMsSUFBUztRQUNkLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUUvRCxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDN0IsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sZUFBZSxDQUFDLEtBQWE7UUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVNLGVBQWUsQ0FBQyxNQUFjO1FBQ2pDLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDO0lBQy9CLENBQUM7O3FHQXRUUSxRQUFRO3lHQUFSLFFBQVEsY0FESyxNQUFNOzJGQUNuQixRQUFRO2tCQURwQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8vIENvbmZpZ3VyYXppb25pXHJcbmltcG9ydCB7IEJhc2VNZXNzYWdlU2VydmljZSwgTm90aWZpY2F0aW9uc1NlcnZpY2UsIEpvYlByb2dyZXNzRHRvIH0gZnJvbSBcIkBlc2ZhZW56YS9zaWduYWxyLW5vdGlmaWNhdGlvbnNcIjtcclxuaW1wb3J0IHsgSW5ib3VuZE1lc3NhZ2VUeXBlcywgSW50ZXJDb21NZXNzYWdlLCBJbnRlckNvbVNlcnZpY2UsIE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9leHRlbnNpb25zXCI7XHJcbmltcG9ydCB7IEFkbU1lc3NhZ2VUeXBlcywgTUtfQURNIH0gZnJvbSBcIkBlc2ZhZW56YS9hZG1pbi1tb2R1bGVcIjtcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5pbXBvcnQgeyBUb2tlblNlcnZpY2UgfSBmcm9tIFwiLi9hcHAuYWNjZXNzdG9rZW5cIjtcclxuXHJcbmltcG9ydCB7IEFwcEVtYmVkZGluZ0V4dGVuc2lvbnMgfSBmcm9tIFwiQGVzZmFlbnphL2V4dGVuc2lvbnNcIjtcclxuXHJcbi8vIENvcmVcclxuaW1wb3J0IHsgQWN0aXZlTW9kdWxlVmlldywgQXBwbGljYXRpb25Kb2IsIEphY2VJZGVudGl0eSB9IGZyb20gXCJAZXNmYWVuemEvY29yZS9kb21haW5cIjtcclxuXHJcbi8vIERpcmV0dGl2ZSwgQ29tcG9uZW50aSwgTGlicmVyaWVcclxuaW1wb3J0ICogYXMgY3VzdG9tUGFyc2VGb3JtYXQgZnJvbSAnZGF5anMvcGx1Z2luL2N1c3RvbVBhcnNlRm9ybWF0JztcclxuaW1wb3J0ICogYXMgaXNTYW1lT3JCZWZvcmUgZnJvbSAnZGF5anMvcGx1Z2luL2lzU2FtZU9yQmVmb3JlJztcclxuaW1wb3J0ICogYXMgaXNTYW1lT3JBZnRlciBmcm9tICdkYXlqcy9wbHVnaW4vaXNTYW1lT3JBZnRlcic7XHJcbmltcG9ydCAqIGFzIGlzQmV0d2VlbiBmcm9tICdkYXlqcy9wbHVnaW4vaXNCZXR3ZWVuJztcclxuaW1wb3J0ICogYXMgZHVyYXRpb24gZnJvbSAnZGF5anMvcGx1Z2luL2R1cmF0aW9uJztcclxuaW1wb3J0ICogYXMgbWluTWF4IGZyb20gJ2RheWpzL3BsdWdpbi9taW5NYXgnO1xyXG5pbXBvcnQgKiBhcyB1dGMgZnJvbSAnZGF5anMvcGx1Z2luL3V0Yyc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuZGVjbGFyZSB2YXIgZGF5anM6IGFueTtcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogXCJyb290XCIgfSlcclxuZXhwb3J0IGNsYXNzIEFwcFN0YXRlIHtcclxuXHJcbiAgICBwdWJsaWMgc2lkZWJhcldpZHRoOiBudW1iZXI7XHJcbiAgICBwdWJsaWMgaGVhZGVySGVpZ2h0OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgcmVkaXJlY3RpbmdUb0xvZ2luOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgaGFuZGxpbmdFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGNocmlzdG1hc1RpbWU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBoYWxsb3dlZW5UaW1lOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgcHJpdmF0ZSBKYWNlSWRlbnRpdHk6IEphY2VJZGVudGl0eTtcclxuXHJcbiAgICBwdWJsaWMgam9ic0luUHJvZ3Jlc3M6IG51bWJlciA9IDA7XHJcbiAgICBwdWJsaWMgYWxsSm9iczogQXBwbGljYXRpb25Kb2JbXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBqb2JXaXRoSWRzQ2FjaGU6IHsgW2luZGV4OiBzdHJpbmddOiBBcHBsaWNhdGlvbkpvYiB9ID0ge307XHJcbiAgICBwdWJsaWMgbm90aWZ5T25Db21wbGV0ZWRKb2JzOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBwcml2YXRlIF9kYXRhID0gbmV3IFN1YmplY3Q8T2JqZWN0PigpO1xyXG4gICAgcHJpdmF0ZSBfZGF0YVN0cmVhbSQgPSB0aGlzLl9kYXRhLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbnM6IE1hcDxzdHJpbmcsIEFycmF5PEZ1bmN0aW9uPj4gPSBuZXcgTWFwPHN0cmluZywgQXJyYXk8RnVuY3Rpb24+PigpO1xyXG5cclxuICAgIHB1YmxpYyBNb2R1bGVzTG9jYWxpemF0aW9uczogeyBbaWQ6IHN0cmluZ106IExvY2FsaXphdGlvblNlcnZpY2UgfSA9IHt9O1xyXG5cclxuICAgIHByaXZhdGUgX21vZHVsZXM6IEFjdGl2ZU1vZHVsZVZpZXdbXTtcclxuICAgIHB1YmxpYyBzZXQgTW9kdWxlcyhtb2R1bGVzOiBBY3RpdmVNb2R1bGVWaWV3W10pIHtcclxuICAgICAgICB0aGlzLl9tb2R1bGVzID0gbW9kdWxlcztcclxuICAgICAgICB0aGlzLm5vdGlmeURhdGFDaGFuZ2VkKFwibW9kdWxlcy5SZXRyaWV2ZWRcIiwgdGhpcy5fbW9kdWxlcyk7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgZ2V0IE1vZHVsZXMoKTogQWN0aXZlTW9kdWxlVmlld1tdIHsgcmV0dXJuIHRoaXMuX21vZHVsZXM7IH1cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxjOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCBwcml2YXRlIGJ0czogVG9rZW5TZXJ2aWNlLCBwcml2YXRlIG5vdGlmaWNhdGlvbnM6IE5vdGlmaWNhdGlvbnNTZXJ2aWNlLCBwcml2YXRlIE1lc3NhZ2VEZWY6IEJhc2VNZXNzYWdlU2VydmljZSwgcHJpdmF0ZSBpbnRlcmNvbTogSW50ZXJDb21TZXJ2aWNlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBtc2dTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSwgcHJpdmF0ZSBlbWI6IEFwcEVtYmVkZGluZ0V4dGVuc2lvbnMpIHtcclxuXHJcbiAgICAgICAgdGhpcy5zZXR1cEVtYmVkZGFiaWxpdHkoKTtcclxuICAgICAgICB0aGlzLnNldHVwRGF5anMoKTtcclxuICAgICAgICB0aGlzLnNldHVwU2lnbmFsUkpvYkxpc3RlbmluZygpO1xyXG5cclxuICAgICAgICB0aGlzLkphY2VJZGVudGl0eSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5fZGF0YVN0cmVhbSQuc3Vic2NyaWJlKChkYXRhKSA9PiB0aGlzLl9vbkV2ZW50KGRhdGEpKTtcclxuXHJcbiAgICAgICAgLy9EZWNpZGUgc2Ugc2lhbW8gYXR0b3JubyBhIG5hdGFsZVxyXG4gICAgICAgIHZhciB0b2RheSA9IGRheWpzKCk7XHJcbiAgICAgICAgdmFyIGxvd2VyQm91bmQgPSBkYXlqcyhcIjE4LzEyL1wiICsgdG9kYXkueWVhcigpLCBcIkREL01NL1lZWVlcIik7XHJcbiAgICAgICAgdmFyIHVwcGVyQm91bmQgPSBkYXlqcyhcIjA3LzAxL1wiICsgKHRvZGF5LnllYXIoKSArIDEpLCBcIkREL01NL1lZWVlcIik7XHJcbiAgICAgICAgdGhpcy5jaHJpc3RtYXNUaW1lID0gdG9kYXkgPiBsb3dlckJvdW5kICYmIHRvZGF5IDwgdXBwZXJCb3VuZDtcclxuXHJcbiAgICAgICAgLy9EZWNpZGUgc2Ugc2lhbW8gYXR0b3JubyBhZCBoYWxsb3dlZW5cclxuICAgICAgICB2YXIgbG93ZXJCb3VuZCA9IGRheWpzKFwiMjgvMTAvXCIgKyB0b2RheS55ZWFyKCksIFwiREQvTU0vWVlZWVwiKTtcclxuICAgICAgICB2YXIgdXBwZXJCb3VuZCA9IGRheWpzKFwiMDUvMTEvXCIgKyB0b2RheS55ZWFyKCksIFwiREQvTU0vWVlZWVwiKTtcclxuICAgICAgICB0aGlzLmhhbGxvd2VlblRpbWUgPSB0b2RheSA+IGxvd2VyQm91bmQgJiYgdG9kYXkgPCB1cHBlckJvdW5kO1xyXG5cclxuICAgICAgICB0aGlzLmludGVyY29tLmluYm91bmRzLnN1YnNjcmliZSgodDogSW50ZXJDb21NZXNzYWdlKSA9PiB7IHRoaXMuaGFuZGxlSW5ib3VuZE1lc3NhZ2UodCk7IH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNldHVwRW1iZWRkYWJpbGl0eSgpIHtcclxuICAgICAgICB3aW5kb3cub25tZXNzYWdlID0gKGV2ZW50OiBNZXNzYWdlRXZlbnQpID0+IHtcclxuICAgICAgICAgICAgLy8gSWdub3JvIGkgbWllaSBtZXNzYWdnaSBkYXRvIGNoZSBtaSBpbnRlcmVzc2FubyBzb2xvIHF1ZWxsaSBkZWdsaSBhbHRyaSBpZnJhbWVcclxuICAgICAgICAgICAgaWYgKGV2ZW50LnNvdXJjZSA9PSB3aW5kb3cgJiYgZXZlbnQ/LmRhdGE/LnR5cGUgIT0gXCJtb2RhbC1vcGVuXCIpXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICAgICAgICBpZiAoZXZlbnQ/LmRhdGE/LnR5cGUgPT0gXCJhbGVydFwiKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgV2luZG93IG1lc3NhZ2UgLSBhbGVydCAtPiBMZXZlbDogJHtldmVudD8uZGF0YT8ubGV2ZWx9LCBNZXNzYWdlOiAke2V2ZW50Py5kYXRhPy5tc2d9YCk7XHJcblxyXG4gICAgICAgICAgICAgICAgc3dpdGNoIChldmVudD8uZGF0YT8ubGV2ZWwpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIFwic3VjY2Vzc1wiOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1zZ1NlcnZpY2Uuc2ltcGxlU3VjY2VzcyhldmVudD8uZGF0YT8ubXNnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcIndhcm5pbmdcIjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tc2dTZXJ2aWNlLnNpbXBsZVdhcm5pbmcoZXZlbnQ/LmRhdGE/Lm1zZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJlcnJvclwiOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1zZ1NlcnZpY2Uuc2ltcGxlRXJyb3IoZXZlbnQ/LmRhdGE/Lm1zZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGV2ZW50Py5kYXRhPy50eXBlID09IFwicmVkaXJlY3RcIikge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYFdpbmRvdyBtZXNzYWdlIC0gcmVkaXJlY3QgLT4gJHtldmVudD8uZGF0YT8udXJsfWApO1xyXG4gICAgICAgXHJcbiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGV2ZW50Py5kYXRhPy51cmw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoZXZlbnQ/LmRhdGE/LnR5cGUgPT0gXCJuYXZpZ2F0ZVwiKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgV2luZG93IG1lc3NhZ2UgLSBuYXZpZ2F0ZSAtPiAke2V2ZW50Py5kYXRhPy51cmx9YCk7XHJcbiAgICBcclxuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtldmVudD8uZGF0YT8udXJsXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoZXZlbnQ/LmRhdGE/LnR5cGUgPT0gXCJuYXZpZ2F0aW9uXCIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBXaW5kb3cgbWVzc2FnZSAtIE5hdmlnYXRpb24gLT4gJHtldmVudD8uZGF0YT8uaW50ZXJuYWxOYXZpZ2F0aW9uID8gXCJbaW50ZXJuYWxdXCIgOiBcIlwifSAke2V2ZW50Py5kYXRhPy50aXRsZX1gKTtcclxuICAgIFxyXG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50Py5kYXRhPy5pbnRlcm5hbE5hdmlnYXRpb24pXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZnlEYXRhQ2hhbmdlZChcIm1lbnUuYWRqdXN0U3ViTmF2aWdhdGlvblRvXCIsIGV2ZW50Py5kYXRhPy50aXRsZSk7XHJcbiAgICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZnlEYXRhQ2hhbmdlZChcIm1lbnUuYWRqdXN0TmF2aWdhdGlvblRvXCIsIGV2ZW50Py5kYXRhPy50aXRsZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoZXZlbnQ/LmRhdGE/LnR5cGUgPT0gXCJtb2RhbC1vcGVuXCIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHdyYXBwZXIgPSBkb2N1bWVudC5ib2R5LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoXCJtYWluLXdyYXBwZXJcIilbMF0gYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgICAgICAgICBsZXQgd3JhcHBlclN0eWxlcyA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHdyYXBwZXIpO1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgd3JhcHBlclBhZGRpbmdMZWZ0ID0gcGFyc2VJbnQod3JhcHBlclN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKFwicGFkZGluZy1sZWZ0XCIpKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHdyYXBwZXJQYWRkaW5nUmlnaHQgPSBwYXJzZUludCh3cmFwcGVyU3R5bGVzLmdldFByb3BlcnR5VmFsdWUoXCJwYWRkaW5nLXJpZ2h0XCIpKTtcclxuICAgIFxyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYFdpbmRvdyBtZXNzYWdlIC0gTW9kYWwgT3BlbiAtPiBCYWNrZHJvcCBIZWlnaHQ6ICR7ZXZlbnQ/LmRhdGE/LmJhY2tkcm9wSGVpZ2h0fWApO1xyXG4gICAgXHJcbiAgICAgICAgICAgICAgICB2YXIgdG9wSGVpZ2h0OiBudW1iZXIgPSAxMTY7IC8vIHZhbG9yZSBmaXNzbywgZGlzdGFuemEgZnJhIGlsIHRvcCBlIGwnaW5pemlvIGRlbGwnaWZyYW1lLCBub24gc2Fyw6AgbWFpIGRpdmVyc29cclxuICAgICAgICAgICAgICAgIHZhciByaWdodFNwYWNlOiBudW1iZXIgPSB3cmFwcGVyUGFkZGluZ1JpZ2h0OyAvLyB2YWxvcmUgZmlzc28sIGRpc3RhbnphIGZyYSBsYSBmaW5lIGRlbGwnaWZyYW1lIGUgaWwgbGF0byBzaW5pc3RybyBkZWxsbyBzY2hlcm1vLCBub24gc2Fyw6AgbWFpIGRpdmVyc29cclxuICAgICAgICAgICAgICAgIHZhciBsZWZ0U3BhY2U6IG51bWJlciA9IHRoaXMuc2lkZWJhcldpZHRoICsgd3JhcHBlclBhZGRpbmdMZWZ0O1xyXG4gICAgXHJcbiAgICAgICAgICAgICAgICBsZXQgY29tbW9uU3R5bGVzID0gXCJwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5kZXg6IDk5OTk7IGJhY2tncm91bmQtY29sb3I6ICMwMDA7IG9wYWNpdHk6IDAuNTsgXCI7XHJcbiAgICBcclxuICAgICAgICAgICAgICAgIHdyYXBwZXIuc3R5bGUuc2V0UHJvcGVydHkoXCJvdmVyZmxvd1wiLCBcImhpZGRlblwiLCBcImltcG9ydGFudFwiKTtcclxuICAgIFxyXG4gICAgICAgICAgICAgICAgY29uc3QgdG9wID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcclxuICAgICAgICAgICAgICAgIHRvcC5jbGFzc05hbWUgPSBcImVtYmVkZGVkLW1vZGFsLXRvcFwiO1xyXG4gICAgICAgICAgICAgICAgdG9wLnN0eWxlLmNzc1RleHQgPSBjb21tb25TdHlsZXMgKyBgaGVpZ2h0OiAke3RvcEhlaWdodH1weDsgdG9wOiAwOyB3aWR0aDogY2FsYygxMDAlIC0gJHtsZWZ0U3BhY2V9cHgpOyBsZWZ0OiAke2xlZnRTcGFjZX1weGA7XHJcbiAgICAgICAgICAgICAgICB0b3AuaWQgPSBcInRvcFwiO1xyXG4gICAgXHJcbiAgICAgICAgICAgICAgICBjb25zdCBsZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcclxuICAgICAgICAgICAgICAgIGxlZnQuY2xhc3NOYW1lID0gXCJlbWJlZGRlZC1tb2RhbC1sZWZ0XCI7XHJcbiAgICAgICAgICAgICAgICBsZWZ0LnN0eWxlLmNzc1RleHQgPSBjb21tb25TdHlsZXMgKyBgaGVpZ2h0OiAxMDAlOyB0b3A6IDA7IHdpZHRoOiAke2xlZnRTcGFjZX1weDtgO1xyXG4gICAgICAgICAgICAgICAgbGVmdC5pZCA9IFwibGVmdFwiO1xyXG4gICAgXHJcbiAgICAgICAgICAgICAgICBjb25zdCByaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XHJcbiAgICAgICAgICAgICAgICByaWdodC5jbGFzc05hbWUgPSBcImVtYmVkZGVkLW1vZGFsLXJpZ2h0XCI7XHJcbiAgICAgICAgICAgICAgICByaWdodC5zdHlsZS5jc3NUZXh0ID0gY29tbW9uU3R5bGVzICsgYGhlaWdodDogY2FsYygxMDAlIC0gJHt0b3BIZWlnaHR9cHgpOyB0b3A6ICR7dG9wSGVpZ2h0fXB4OyByaWdodDogMDsgd2lkdGg6ICR7cmlnaHRTcGFjZX1weDtgO1xyXG4gICAgICAgICAgICAgICAgcmlnaHQuaWQgPSBcInJpZ2h0XCI7XHJcbiAgICBcclxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodG9wKTtcclxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGVmdCk7XHJcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJpZ2h0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChldmVudD8uZGF0YT8udHlwZSA9PSBcIm1vZGFsLWNsb3NlXCIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBXaW5kb3cgbWVzc2FnZSAtIE1vZGFsIENsb3NlYCk7XHJcbiAgICBcclxuICAgICAgICAgICAgICAgIGxldCB3cmFwcGVyID0gZG9jdW1lbnQuYm9keS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwibWFpbi13cmFwcGVyXCIpWzBdIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgICAgICAgICAgd3JhcHBlci5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcIm92ZXJmbG93XCIpO1xyXG4gICAgXHJcbiAgICAgICAgICAgICAgICBjb25zdCB0b3AgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInRvcFwiKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGxlZnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImxlZnRcIik7XHJcbiAgICAgICAgICAgICAgICBjb25zdCByaWdodCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwicmlnaHRcIik7XHJcbiAgICBcclxuICAgICAgICAgICAgICAgIGlmICh0b3ApXHJcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0b3ApO1xyXG4gICAgICAgICAgICAgICAgaWYgKGxlZnQpXHJcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsZWZ0KTtcclxuICAgICAgICAgICAgICAgIGlmIChyaWdodClcclxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHJpZ2h0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICBcclxuICAgICAgICB0aGlzLnN1YnNjcmliZShcIm1lbnUuaXNDb2xsYXBzZWRcIiwgKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB3cmFwcGVyID0gZG9jdW1lbnQuYm9keS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwibWFpbi13cmFwcGVyXCIpWzBdIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgICAgICBsZXQgd3JhcHBlclN0eWxlcyA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHdyYXBwZXIpO1xyXG4gICAgICAgICAgICBjb25zdCB3cmFwcGVyUGFkZGluZ0xlZnQgPSBwYXJzZUludCh3cmFwcGVyU3R5bGVzLmdldFByb3BlcnR5VmFsdWUoXCJwYWRkaW5nLWxlZnRcIikpO1xyXG4gICAgICAgICAgICB2YXIgbGVmdFNwYWNlOiBudW1iZXIgPSB0aGlzLnNpZGViYXJXaWR0aCArIHdyYXBwZXJQYWRkaW5nTGVmdDtcclxuICAgIFxyXG4gICAgICAgICAgICBjb25zdCBsZWZ0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJsZWZ0XCIpO1xyXG4gICAgICAgICAgICBjb25zdCB0b3AgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInRvcFwiKTtcclxuICAgIFxyXG4gICAgICAgICAgICBpZiAodG9wKSB7XHJcbiAgICAgICAgICAgICAgICB0b3Auc3R5bGUuc2V0UHJvcGVydHkoXCJsZWZ0XCIsIChsZWZ0U3BhY2UpICsgXCJweFwiKTtcclxuICAgICAgICAgICAgICAgIHRvcC5zdHlsZS5zZXRQcm9wZXJ0eShcIndpZHRoXCIsIGBjYWxjKDEwMCUgLSAke2xlZnRTcGFjZX1weClgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgXHJcbiAgICAgICAgICAgIGlmIChsZWZ0KVxyXG4gICAgICAgICAgICAgICAgbGVmdC5zdHlsZS5zZXRQcm9wZXJ0eShcIndpZHRoXCIsIGxlZnRTcGFjZSArIFwicHhcIik7XHJcbiAgICAgICAgfSk7XHJcbiAgICBcclxuICAgICAgICBpZiAodGhpcy5lbWIuRW1iZWRkZWQpXHJcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoXCJvdmVyZmxvdy15XCIsIFwiYXV0b1wiLCBcImltcG9ydGFudFwiKTtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck5hdmlnYXRpb25JZk1lYW5pbmdmdWwocm91dGU/OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KSB7XHJcbiAgICAgICAgbGV0IHRpdGxlID0gcm91dGUuZGF0YVtcInRpdGxlXCJdO1xyXG4gICAgICAgIGxldCBpbnRlcm5hbCA9IHJvdXRlLmRhdGFbXCJpbnRlcm5hbE5hdmlnYXRpb25cIl1cclxuXHJcbiAgICAgICAgLy8gUGVybWV0dGUgZGkgY2hpYW1hcmUgc3RvIHJlZ2lzdGVyTmF2aWdhdGlvbiBhIHByZXNjaW5kZXJlIGUgZmFyZSBvcHQgb3V0IHNlIG5vbiDDqCB1bmEgcm91dGUgbmF2aWdhYmlsZVxyXG4gICAgICAgIGlmKCF0aXRsZSkgcmV0dXJuO1xyXG5cclxuICAgICAgICAvKlxyXG4gICAgICAgICAqICBQYXJlbnQgKHt1cmw6IFt7cGF0aDogXCJ7bW9kdWxlfVwifV19KVxyXG4gICAgICAgICAqICAgICAgUGFyZW50ICh7dXJsOiBbe3BhdGg6IFwiXCJ9XX0pIChSb290IGRlbCBtb2R1bG8gbGF6eSlcclxuICAgICAgICAgKiAgICAgICAgICAtPiBOYXZpZ2F6aW9uZSBhdHR1YWxlIDwtXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgbGV0IG1vZHVsZSA9IHJvdXRlLnBhcmVudD8ucGFyZW50Py51cmxbMF0/LnBhdGg7XHJcbiAgICAgICAgbGV0IGxvYyA9IG1vZHVsZSA/IHRoaXMuTW9kdWxlc0xvY2FsaXphdGlvbnNbbW9kdWxlXSA6IG51bGw7XHJcblxyXG4gICAgICAgIGlmICghbW9kdWxlKVxyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiSW1wb3NzaWJpbGUgZXN0cmFwb2xhcmUgaWwgbW9kdWxvIGRhbGxhIG5hdmlnYXppb25lIChBdHRlc28gTW9kdWxvIGFsIHNlY29uZG8gbGl2ZWxsbyBkaSBwYXJlbnRlbGEgcGFydGVuZG8gZGFsIGNvbXBvbmVudGUgYXR0dWFsZSk6IFwiICsgcm91dGUucGF0aEZyb21Sb290Lm1hcCh2ID0+IHYudXJsLm1hcChzZWdtZW50ID0+IHNlZ21lbnQudG9TdHJpbmcoKSkuam9pbignLycpKS5qb2luKCcvJykpO1xyXG5cclxuICAgICAgICB0aGlzLm5vdGlmeURhdGFDaGFuZ2VkKGludGVybmFsID8gXCJtZW51LmFkanVzdFN1Yk5hdmlnYXRpb25Ub1wiIDogXCJtZW51LmFkanVzdE5hdmlnYXRpb25Ub1wiLCBsb2MgPyBsb2MubG9jKHRpdGxlKSA6IHRpdGxlKTtcclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVJbmJvdW5kTWVzc2FnZSh0OiBJbnRlckNvbU1lc3NhZ2UpIHtcclxuICAgICAgICBzd2l0Y2ggKHQudHlwZSkge1xyXG4gICAgICAgICAgICBjYXNlIEluYm91bmRNZXNzYWdlVHlwZXMuTmF2aWdhdGlvbjpcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmeURhdGFDaGFuZ2VkKHQubWVzc2FnZS5zdWIgPyBcIm1lbnUuYWRqdXN0U3ViTmF2aWdhdGlvblRvXCIgOiBcIm1lbnUuYWRqdXN0TmF2aWdhdGlvblRvXCIsIHQubWVzc2FnZS5yb3V0ZVRpdGxlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmludGVyY29tLnNlbmQoQWRtTWVzc2FnZVR5cGVzLk1lc3NhZ2UsIFwiTmF2aWdhdGlvbiBNZXNzYWdlIFJlY2VpdmVkXCIsIE1LX0FETSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNldHVwRGF5anMoKSB7XHJcbiAgICAgICAgZGF5anMuZXh0ZW5kKCg8YW55PmN1c3RvbVBhcnNlRm9ybWF0KS5kZWZhdWx0IHx8IGN1c3RvbVBhcnNlRm9ybWF0KTtcclxuICAgICAgICBkYXlqcy5leHRlbmQoKDxhbnk+bWluTWF4KS5kZWZhdWx0IHx8IG1pbk1heCk7XHJcbiAgICAgICAgZGF5anMuZXh0ZW5kKCg8YW55PmlzQmV0d2VlbikuZGVmYXVsdCB8fCBpc0JldHdlZW4pO1xyXG4gICAgICAgIGRheWpzLmV4dGVuZCgoPGFueT5pc1NhbWVPckJlZm9yZSkuZGVmYXVsdCB8fCBpc1NhbWVPckJlZm9yZSk7XHJcbiAgICAgICAgZGF5anMuZXh0ZW5kKCg8YW55PmlzU2FtZU9yQWZ0ZXIpLmRlZmF1bHQgfHwgaXNTYW1lT3JBZnRlcik7XHJcbiAgICAgICAgZGF5anMuZXh0ZW5kKCg8YW55PmR1cmF0aW9uKS5kZWZhdWx0IHx8IGR1cmF0aW9uKTtcclxuICAgICAgICBkYXlqcy5leHRlbmQoKDxhbnk+dXRjKS5kZWZhdWx0IHx8IHV0Yyk7XHJcblxyXG4gICAgICAgIC8vIFJlcXVpcmUgZSBjb2xsZWdhbWVudG8gY29uIGxhIGxvY2FsaXp6YXppb25lIHBlciBkYXlqc1xyXG4gICAgICAgIGltcG9ydChcImRheWpzL2xvY2FsZS9cIiArIHRoaXMubGMuU21hbGxMb2NhbGUgKyBcIi5qc1wiKS50aGVuKGxvY2FsZSA9PiB7IGRheWpzLmxvY2FsZShsb2NhbGUpOyB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzZXR1cFNpZ25hbFJKb2JMaXN0ZW5pbmcoKSB7XHJcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zLm9ic2VydmUodGhpcy5NZXNzYWdlRGVmLklOX0pvYlByb2dyZXNzTm90aWZpY2F0aW9uKS5zdWJzY3JpYmUoKGV2OiBKb2JQcm9ncmVzc0R0bykgPT4ge1xyXG4gICAgICAgICAgICB2YXIgZGVzYyA9IGV2LmRlc2NyaXB0aW9uICsgXCIgKFwiICsgZXYudXNlciArIFwiKVwiO1xyXG4gICAgICAgICAgICBsZXQgam9iOiBBcHBsaWNhdGlvbkpvYiA9IHtcclxuICAgICAgICAgICAgICAgIGlkOiBldi5pbnN0YW5jZSxcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBkZXNjLFxyXG4gICAgICAgICAgICAgICAgc21hbGxkZXNjcmlwdGlvbjogZGVzYy5sZW5ndGggPiAzNSA/IGRlc2Muc3Vic3RyaW5nKDAsIDMwKSArIFwiLi4uXCIgOiBkZXNjLFxyXG4gICAgICAgICAgICAgICAgcGVyY2VudGFnZTogdGhpcy5yb3VuZFRvVHdvKGV2LnByb2dyZXNzKSxcclxuICAgICAgICAgICAgICAgIGNvbXBsZXRlZDogZXYudHlwZSA9PSAnQ29tcGxldGVkJyxcclxuICAgICAgICAgICAgICAgIGZpbGVpZDogZXYucmVzdWx0ZmlsZSxcclxuICAgICAgICAgICAgICAgIHJlcG9ydGlkOiBldi5yZXN1bHRyZXBvcnQsXHJcbiAgICAgICAgICAgICAgICByZXBvcnRwYXJzOiBldi5yZXN1bHRyZXBvcnRwYXJhbXMsXHJcbiAgICAgICAgICAgICAgICBjb21wbGV4cmVwb3J0aWQ6IGV2LnJlc3VsdGNvbXBsZXhyZXBvcnRcclxuICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgIHN3aXRjaCAoZXYudHlwZSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSBcIlN0YXJ0ZWRcIjpcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5qb2JXaXRoSWRzQ2FjaGVbZXYuaW5zdGFuY2VdKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIkpvYiBhbHJlYWR5IHJlZ2lzdGVyZWQgb24gdGhlICdTdGFydGVkJyBjYWxsYmFja1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmpvYldpdGhJZHNDYWNoZVtldi5pbnN0YW5jZV0gPSBqb2I7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGxKb2JzLnNwbGljZSgwLCAwLCBqb2IpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZ5RGF0YUNoYW5nZWQoXCJhcHAuc3RhcnRlZEpvYlwiLCBqb2JUb1VwZGF0ZS5kZXNjcmlwdGlvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwiUHJvZ3Jlc3NcIjpcclxuICAgICAgICAgICAgICAgICAgICAvLyBTZSBtaSBhcnJpdmEgdW4gcHJvZ3Jlc3MgZGkgdW4gam9iIGNoZSBub24gaG8gc2lnbmlmaWNhIGNoZSBtaSBzb25vIGxvZ2dhdG8gb3JhIGNvbiBkZWkgSm9iIGluIGNvcnNvXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gcXVpbmRpIHBlciBwcmltYSBjb3NhIGRldm8gbWV0dGVybG8gaW4gbGlzdGFcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuam9iV2l0aElkc0NhY2hlW2V2Lmluc3RhbmNlXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmpvYldpdGhJZHNDYWNoZVtldi5pbnN0YW5jZV0gPSBqb2I7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWxsSm9icy5zcGxpY2UoMCwgMCwgam9iKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5qb2JXaXRoSWRzQ2FjaGVbZXYuaW5zdGFuY2VdLnBlcmNlbnRhZ2UgPSB0aGlzLnJvdW5kVG9Ud28oZXYucHJvZ3Jlc3MpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZ5RGF0YUNoYW5nZWQoXCJhcHAucHJvZ3Jlc3NKb2JcIiwgeyBkZXNjcmlwdGlvbjogam9iVG9VcGRhdGUuZGVzY3JpcHRpb24sIHByb2dyZXNzOiBqb2JUb1VwZGF0ZS5wZXJjZW50YWdlIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBcIkNvbXBsZXRlZFwiOlxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5qb2JXaXRoSWRzQ2FjaGVbZXYuaW5zdGFuY2VdKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuam9iV2l0aElkc0NhY2hlW2V2Lmluc3RhbmNlXSA9IGpvYjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGxKb2JzLnNwbGljZSgwLCAwLCBqb2IpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB2YXIgam9iVG9VcGRhdGUgPSB0aGlzLmpvYldpdGhJZHNDYWNoZVtldi5pbnN0YW5jZV07XHJcbiAgICAgICAgICAgICAgICAgICAgam9iVG9VcGRhdGUucGVyY2VudGFnZSA9IDEwMDtcclxuICAgICAgICAgICAgICAgICAgICBqb2JUb1VwZGF0ZS5maWxlaWQgPSBldi5yZXN1bHRmaWxlO1xyXG4gICAgICAgICAgICAgICAgICAgIGpvYlRvVXBkYXRlLnJlcG9ydGlkID0gZXYucmVzdWx0cmVwb3J0O1xyXG4gICAgICAgICAgICAgICAgICAgIGpvYlRvVXBkYXRlLnJlcG9ydHBhcnMgPSBldi5yZXN1bHRyZXBvcnRwYXJhbXM7XHJcbiAgICAgICAgICAgICAgICAgICAgam9iVG9VcGRhdGUuY29tcGxldGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubm90aWZ5T25Db21wbGV0ZWRKb2JzKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmeURhdGFDaGFuZ2VkKFwiYXBwLmNvbXBsZXRlZEpvYlwiLCBqb2JUb1VwZGF0ZS5kZXNjcmlwdGlvbik7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmpvYnNJblByb2dyZXNzID0gdGhpcy5hbGxKb2JzLmZpbHRlcih0ID0+ICF0LmNvbXBsZXRlZCkubGVuZ3RoO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJvdW5kVG9Ud28obnVtKSB7XHJcbiAgICAgICAgcmV0dXJuIE1hdGgucm91bmQobnVtICogMTAwKSAvIDEwMDtcclxuICAgIH1cclxuXHJcbiAgICBnZXRKYWNlSURlbnRpdHkoKTogSmFjZUlkZW50aXR5IHtcclxuICAgICAgICBpZiAodGhpcy5KYWNlSWRlbnRpdHkpXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLkphY2VJZGVudGl0eTtcclxuICAgICAgICB0aGlzLkphY2VJZGVudGl0eSA9IHRoaXMuYnRzLmdldEphY2VJZGVudGl0eSgpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLkphY2VJZGVudGl0eTtcclxuICAgIH1cclxuXHJcbiAgICBub3RpZnlEYXRhQ2hhbmdlZChldmVudCwgdmFsdWUpIHtcclxuICAgICAgICB0aGlzLl9kYXRhW2V2ZW50XSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuX2RhdGEubmV4dCh7XHJcbiAgICAgICAgICAgIGV2ZW50OiBldmVudCxcclxuICAgICAgICAgICAgZGF0YTogdGhpcy5fZGF0YVtldmVudF1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzdWJzY3JpYmUoZXZlbnQ6IHN0cmluZywgY2FsbGJhY2s6IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgdmFyIHN1YnNjcmliZXJzID0gdGhpcy5fc3Vic2NyaXB0aW9ucy5nZXQoZXZlbnQpIHx8IFtdO1xyXG4gICAgICAgIHN1YnNjcmliZXJzLnB1c2goY2FsbGJhY2spO1xyXG5cclxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnNldChldmVudCwgc3Vic2NyaWJlcnMpO1xyXG4gICAgfVxyXG5cclxuICAgIF9vbkV2ZW50KGRhdGE6IGFueSkge1xyXG4gICAgICAgIHZhciBzdWJzY3JpYmVycyA9IHRoaXMuX3N1YnNjcmlwdGlvbnMuZ2V0KGRhdGFbXCJldmVudFwiXSkgfHwgW107XHJcblxyXG4gICAgICAgIHN1YnNjcmliZXJzLmZvckVhY2goKGNhbGxiYWNrKSA9PiB7XHJcbiAgICAgICAgICAgIGNhbGxiYWNrLmNhbGwobnVsbCwgZGF0YVtcImRhdGFcIl0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRTaWRlYmFyV2lkdGgod2lkdGg6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuc2lkZWJhcldpZHRoID0gd2lkdGg7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldEhlYWRlckhlaWdodChoZWlnaHQ6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuaGVhZGVySGVpZ2h0ID0gaGVpZ2h0O1xyXG4gICAgfVxyXG59Il19
|
|
284
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zZXJ2aWNlcy9zcmMvY2xhc3Nlcy9hcHAuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQW9ELE1BQU0sc0JBQXNCLENBQUM7QUFDN0csT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQVNqRSxrQ0FBa0M7QUFDbEMsT0FBTyxLQUFLLGlCQUFpQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sS0FBSyxjQUFjLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxLQUFLLGFBQWEsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEtBQUssU0FBUyxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sS0FBSyxRQUFRLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxLQUFLLE1BQU0sTUFBTSxxQkFBcUIsQ0FBQztBQUM5QyxPQUFPLEtBQUssR0FBRyxNQUFNLGtCQUFrQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFLL0IsTUFBTSxPQUFPLFFBQVE7SUF3QmpCLElBQVcsT0FBTyxDQUFDLE9BQTJCO1FBQzFDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUNELElBQVcsT0FBTyxLQUF5QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBRWxFLFlBQW9CLEVBQXVCLEVBQVUsR0FBaUIsRUFBVSxhQUFtQyxFQUFVLFVBQThCLEVBQVUsUUFBeUIsRUFB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LEVBQUU7WUFDN0IsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sZUFBZSxDQUFDLEtBQWE7UUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVNLGVBQWUsQ0FBQyxNQUFjO1FBQ2pDLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDO0lBQy9CLENBQUM7O3FHQXRUUSxRQUFRO3lHQUFSLFFBQVEsY0FESyxNQUFNOzJGQUNuQixRQUFRO2tCQURwQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8vIENvbmZpZ3VyYXppb25pXHJcbmltcG9ydCB7IEJhc2VNZXNzYWdlU2VydmljZSwgTm90aWZpY2F0aW9uc1NlcnZpY2UsIEpvYlByb2dyZXNzRHRvIH0gZnJvbSBcIkBlc2ZhZW56YS9zaWduYWxyLW5vdGlmaWNhdGlvbnNcIjtcclxuaW1wb3J0IHsgSW5ib3VuZE1lc3NhZ2VUeXBlcywgSW50ZXJDb21NZXNzYWdlLCBJbnRlckNvbVNlcnZpY2UsIE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9leHRlbnNpb25zXCI7XHJcbmltcG9ydCB7IEFkbU1lc3NhZ2VUeXBlcywgTUtfQURNIH0gZnJvbSBcIkBlc2ZhZW56YS9hZG1pbi1tb2R1bGVcIjtcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5pbXBvcnQgeyBUb2tlblNlcnZpY2UgfSBmcm9tIFwiLi9hcHAuYWNjZXNzdG9rZW5cIjtcclxuXHJcbmltcG9ydCB7IEFwcEVtYmVkZGluZ0V4dGVuc2lvbnMgfSBmcm9tIFwiQGVzZmFlbnphL2V4dGVuc2lvbnNcIjtcclxuXHJcbi8vIENvcmVcclxuaW1wb3J0IHsgQWN0aXZlTW9kdWxlVmlldywgQXBwbGljYXRpb25Kb2IsIEphY2VJZGVudGl0eSB9IGZyb20gXCJAZXNmYWVuemEvY29yZS9kb21haW5cIjtcclxuXHJcbi8vIERpcmV0dGl2ZSwgQ29tcG9uZW50aSwgTGlicmVyaWVcclxuaW1wb3J0ICogYXMgY3VzdG9tUGFyc2VGb3JtYXQgZnJvbSAnZGF5anMvcGx1Z2luL2N1c3RvbVBhcnNlRm9ybWF0JztcclxuaW1wb3J0ICogYXMgaXNTYW1lT3JCZWZvcmUgZnJvbSAnZGF5anMvcGx1Z2luL2lzU2FtZU9yQmVmb3JlJztcclxuaW1wb3J0ICogYXMgaXNTYW1lT3JBZnRlciBmcm9tICdkYXlqcy9wbHVnaW4vaXNTYW1lT3JBZnRlcic7XHJcbmltcG9ydCAqIGFzIGlzQmV0d2VlbiBmcm9tICdkYXlqcy9wbHVnaW4vaXNCZXR3ZWVuJztcclxuaW1wb3J0ICogYXMgZHVyYXRpb24gZnJvbSAnZGF5anMvcGx1Z2luL2R1cmF0aW9uJztcclxuaW1wb3J0ICogYXMgbWluTWF4IGZyb20gJ2RheWpzL3BsdWdpbi9taW5NYXgnO1xyXG5pbXBvcnQgKiBhcyB1dGMgZnJvbSAnZGF5anMvcGx1Z2luL3V0Yyc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuZGVjbGFyZSB2YXIgZGF5anM6IGFueTtcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogXCJyb290XCIgfSlcclxuZXhwb3J0IGNsYXNzIEFwcFN0YXRlIHtcclxuXHJcbiAgICBwdWJsaWMgc2lkZWJhcldpZHRoOiBudW1iZXI7XHJcbiAgICBwdWJsaWMgaGVhZGVySGVpZ2h0OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgcmVkaXJlY3RpbmdUb0xvZ2luOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgaGFuZGxpbmdFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGNocmlzdG1hc1RpbWU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBoYWxsb3dlZW5UaW1lOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgcHJpdmF0ZSBKYWNlSWRlbnRpdHk6IEphY2VJZGVudGl0eTtcclxuXHJcbiAgICBwdWJsaWMgam9ic0luUHJvZ3Jlc3M6IG51bWJlciA9IDA7XHJcbiAgICBwdWJsaWMgYWxsSm9iczogQXBwbGljYXRpb25Kb2JbXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBqb2JXaXRoSWRzQ2FjaGU6IHsgW2luZGV4OiBzdHJpbmddOiBBcHBsaWNhdGlvbkpvYiB9ID0ge307XHJcbiAgICBwdWJsaWMgbm90aWZ5T25Db21wbGV0ZWRKb2JzOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBwcml2YXRlIF9kYXRhID0gbmV3IFN1YmplY3Q8T2JqZWN0PigpO1xyXG4gICAgcHJpdmF0ZSBfZGF0YVN0cmVhbSQgPSB0aGlzLl9kYXRhLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbnM6IE1hcDxzdHJpbmcsIEFycmF5PEZ1bmN0aW9uPj4gPSBuZXcgTWFwPHN0cmluZywgQXJyYXk8RnVuY3Rpb24+PigpO1xyXG5cclxuICAgIHB1YmxpYyBNb2R1bGVzTG9jYWxpemF0aW9uczogeyBbaWQ6IHN0cmluZ106IExvY2FsaXphdGlvblNlcnZpY2UgfSA9IHt9O1xyXG5cclxuICAgIHByaXZhdGUgX21vZHVsZXM6IEFjdGl2ZU1vZHVsZVZpZXdbXTtcclxuICAgIHB1YmxpYyBzZXQgTW9kdWxlcyhtb2R1bGVzOiBBY3RpdmVNb2R1bGVWaWV3W10pIHtcclxuICAgICAgICB0aGlzLl9tb2R1bGVzID0gbW9kdWxlcztcclxuICAgICAgICB0aGlzLm5vdGlmeURhdGFDaGFuZ2VkKFwibW9kdWxlcy5SZXRyaWV2ZWRcIiwgdGhpcy5fbW9kdWxlcyk7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgZ2V0IE1vZHVsZXMoKTogQWN0aXZlTW9kdWxlVmlld1tdIHsgcmV0dXJuIHRoaXMuX21vZHVsZXM7IH1cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxjOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCBwcml2YXRlIGJ0czogVG9rZW5TZXJ2aWNlLCBwcml2YXRlIG5vdGlmaWNhdGlvbnM6IE5vdGlmaWNhdGlvbnNTZXJ2aWNlLCBwcml2YXRlIE1lc3NhZ2VEZWY6IEJhc2VNZXNzYWdlU2VydmljZSwgcHJpdmF0ZSBpbnRlcmNvbTogSW50ZXJDb21TZXJ2aWNlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBtc2dTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSwgcHJpdmF0ZSBlbWI6IEFwcEVtYmVkZGluZ0V4dGVuc2lvbnMpIHtcclxuXHJcbiAgICAgICAgdGhpcy5zZXR1cEVtYmVkZGFiaWxpdHkoKTtcclxuICAgICAgICB0aGlzLnNldHVwRGF5anMoKTtcclxuICAgICAgICB0aGlzLnNldHVwU2lnbmFsUkpvYkxpc3RlbmluZygpO1xyXG5cclxuICAgICAgICB0aGlzLkphY2VJZGVudGl0eSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5fZGF0YVN0cmVhbSQuc3Vic2NyaWJlKChkYXRhKSA9PiB0aGlzLl9vbkV2ZW50KGRhdGEpKTtcclxuXHJcbiAgICAgICAgLy9EZWNpZGUgc2Ugc2lhbW8gYXR0b3JubyBhIG5hdGFsZVxyXG4gICAgICAgIHZhciB0b2RheSA9IGRheWpzKCk7XHJcbiAgICAgICAgdmFyIGxvd2VyQm91bmQgPSBkYXlqcyhcIjE4LzEyL1wiICsgdG9kYXkueWVhcigpLCBcIkREL01NL1lZWVlcIik7XHJcbiAgICAgICAgdmFyIHVwcGVyQm91bmQgPSBkYXlqcyhcIjA3LzAxL1wiICsgKHRvZGF5LnllYXIoKSArIDEpLCBcIkREL01NL1lZWVlcIik7XHJcbiAgICAgICAgdGhpcy5jaHJpc3RtYXNUaW1lID0gdG9kYXkgPiBsb3dlckJvdW5kICYmIHRvZGF5IDwgdXBwZXJCb3VuZDtcclxuXHJcbiAgICAgICAgLy9EZWNpZGUgc2Ugc2lhbW8gYXR0b3JubyBhZCBoYWxsb3dlZW5cclxuICAgICAgICB2YXIgbG93ZXJCb3VuZCA9IGRheWpzKFwiMjgvMTAvXCIgKyB0b2RheS55ZWFyKCksIFwiREQvTU0vWVlZWVwiKTtcclxuICAgICAgICB2YXIgdXBwZXJCb3VuZCA9IGRheWpzKFwiMDUvMTEvXCIgKyB0b2RheS55ZWFyKCksIFwiREQvTU0vWVlZWVwiKTtcclxuICAgICAgICB0aGlzLmhhbGxvd2VlblRpbWUgPSB0b2RheSA+IGxvd2VyQm91bmQgJiYgdG9kYXkgPCB1cHBlckJvdW5kO1xyXG5cclxuICAgICAgICB0aGlzLmludGVyY29tLmluYm91bmRzLnN1YnNjcmliZSgodDogSW50ZXJDb21NZXNzYWdlKSA9PiB7IHRoaXMuaGFuZGxlSW5ib3VuZE1lc3NhZ2UodCk7IH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNldHVwRW1iZWRkYWJpbGl0eSgpIHtcclxuICAgICAgICB3aW5kb3cub25tZXNzYWdlID0gKGV2ZW50OiBNZXNzYWdlRXZlbnQpID0+IHtcclxuICAgICAgICAgICAgLy8gSWdub3JvIGkgbWllaSBtZXNzYWdnaSBkYXRvIGNoZSBtaSBpbnRlcmVzc2FubyBzb2xvIHF1ZWxsaSBkZWdsaSBhbHRyaSBpZnJhbWVcclxuICAgICAgICAgICAgaWYgKGV2ZW50LnNvdXJjZSA9PSB3aW5kb3cgJiYgZXZlbnQ/LmRhdGE/LnR5cGUgIT0gXCJtb2RhbC1vcGVuXCIpXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICAgICAgICBpZiAoZXZlbnQ/LmRhdGE/LnR5cGUgPT0gXCJhbGVydFwiKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgV2luZG93IG1lc3NhZ2UgLSBhbGVydCAtPiBMZXZlbDogJHtldmVudD8uZGF0YT8ubGV2ZWx9LCBNZXNzYWdlOiAke2V2ZW50Py5kYXRhPy5tc2d9YCk7XHJcblxyXG4gICAgICAgICAgICAgICAgc3dpdGNoIChldmVudD8uZGF0YT8ubGV2ZWwpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIFwic3VjY2Vzc1wiOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1zZ1NlcnZpY2Uuc2ltcGxlU3VjY2VzcyhldmVudD8uZGF0YT8ubXNnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcIndhcm5pbmdcIjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tc2dTZXJ2aWNlLnNpbXBsZVdhcm5pbmcoZXZlbnQ/LmRhdGE/Lm1zZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJlcnJvclwiOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1zZ1NlcnZpY2Uuc2ltcGxlRXJyb3IoZXZlbnQ/LmRhdGE/Lm1zZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGV2ZW50Py5kYXRhPy50eXBlID09IFwicmVkaXJlY3RcIikge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYFdpbmRvdyBtZXNzYWdlIC0gcmVkaXJlY3QgLT4gJHtldmVudD8uZGF0YT8udXJsfWApO1xyXG4gICAgICAgXHJcbiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGV2ZW50Py5kYXRhPy51cmw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoZXZlbnQ/LmRhdGE/LnR5cGUgPT0gXCJuYXZpZ2F0ZVwiKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgV2luZG93IG1lc3NhZ2UgLSBuYXZpZ2F0ZSAtPiAke2V2ZW50Py5kYXRhPy51cmx9YCk7XHJcbiAgICBcclxuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtldmVudD8uZGF0YT8udXJsXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoZXZlbnQ/LmRhdGE/LnR5cGUgPT0gXCJuYXZpZ2F0aW9uXCIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBXaW5kb3cgbWVzc2FnZSAtIE5hdmlnYXRpb24gLT4gJHtldmVudD8uZGF0YT8uaW50ZXJuYWxOYXZpZ2F0aW9uID8gXCJbaW50ZXJuYWxdXCIgOiBcIlwifSAke2V2ZW50Py5kYXRhPy50aXRsZX1gKTtcclxuICAgIFxyXG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50Py5kYXRhPy5pbnRlcm5hbE5hdmlnYXRpb24pXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZnlEYXRhQ2hhbmdlZChcIm1lbnUuYWRqdXN0U3ViTmF2aWdhdGlvblRvXCIsIGV2ZW50Py5kYXRhPy50aXRsZSk7XHJcbiAgICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZnlEYXRhQ2hhbmdlZChcIm1lbnUuYWRqdXN0TmF2aWdhdGlvblRvXCIsIGV2ZW50Py5kYXRhPy50aXRsZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoZXZlbnQ/LmRhdGE/LnR5cGUgPT0gXCJtb2RhbC1vcGVuXCIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHdyYXBwZXIgPSBkb2N1bWVudC5ib2R5LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoXCJtYWluLXdyYXBwZXJcIilbMF0gYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgICAgICAgICBsZXQgd3JhcHBlclN0eWxlcyA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHdyYXBwZXIpO1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgd3JhcHBlclBhZGRpbmdMZWZ0ID0gcGFyc2VJbnQod3JhcHBlclN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKFwicGFkZGluZy1sZWZ0XCIpKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHdyYXBwZXJQYWRkaW5nUmlnaHQgPSBwYXJzZUludCh3cmFwcGVyU3R5bGVzLmdldFByb3BlcnR5VmFsdWUoXCJwYWRkaW5nLXJpZ2h0XCIpKTtcclxuICAgIFxyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYFdpbmRvdyBtZXNzYWdlIC0gTW9kYWwgT3BlbiAtPiBCYWNrZHJvcCBIZWlnaHQ6ICR7ZXZlbnQ/LmRhdGE/LmJhY2tkcm9wSGVpZ2h0fWApO1xyXG4gICAgXHJcbiAgICAgICAgICAgICAgICB2YXIgdG9wSGVpZ2h0OiBudW1iZXIgPSAxMTY7IC8vIHZhbG9yZSBmaXNzbywgZGlzdGFuemEgZnJhIGlsIHRvcCBlIGwnaW5pemlvIGRlbGwnaWZyYW1lLCBub24gc2Fyw6AgbWFpIGRpdmVyc29cclxuICAgICAgICAgICAgICAgIHZhciByaWdodFNwYWNlOiBudW1iZXIgPSB3cmFwcGVyUGFkZGluZ1JpZ2h0OyAvLyB2YWxvcmUgZmlzc28sIGRpc3RhbnphIGZyYSBsYSBmaW5lIGRlbGwnaWZyYW1lIGUgaWwgbGF0byBzaW5pc3RybyBkZWxsbyBzY2hlcm1vLCBub24gc2Fyw6AgbWFpIGRpdmVyc29cclxuICAgICAgICAgICAgICAgIHZhciBsZWZ0U3BhY2U6IG51bWJlciA9IHRoaXMuc2lkZWJhcldpZHRoICsgd3JhcHBlclBhZGRpbmdMZWZ0O1xyXG4gICAgXHJcbiAgICAgICAgICAgICAgICBsZXQgY29tbW9uU3R5bGVzID0gXCJwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5kZXg6IDk5OTk7IGJhY2tncm91bmQtY29sb3I6ICMwMDA7IG9wYWNpdHk6IDAuNTsgXCI7XHJcbiAgICBcclxuICAgICAgICAgICAgICAgIHdyYXBwZXIuc3R5bGUuc2V0UHJvcGVydHkoXCJvdmVyZmxvd1wiLCBcImhpZGRlblwiLCBcImltcG9ydGFudFwiKTtcclxuICAgIFxyXG4gICAgICAgICAgICAgICAgY29uc3QgdG9wID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcclxuICAgICAgICAgICAgICAgIHRvcC5jbGFzc05hbWUgPSBcImVtYmVkZGVkLW1vZGFsLXRvcFwiO1xyXG4gICAgICAgICAgICAgICAgdG9wLnN0eWxlLmNzc1RleHQgPSBjb21tb25TdHlsZXMgKyBgaGVpZ2h0OiAke3RvcEhlaWdodH1weDsgdG9wOiAwOyB3aWR0aDogY2FsYygxMDAlIC0gJHtsZWZ0U3BhY2V9cHgpOyBsZWZ0OiAke2xlZnRTcGFjZX1weGA7XHJcbiAgICAgICAgICAgICAgICB0b3AuaWQgPSBcInRvcFwiO1xyXG4gICAgXHJcbiAgICAgICAgICAgICAgICBjb25zdCBsZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcclxuICAgICAgICAgICAgICAgIGxlZnQuY2xhc3NOYW1lID0gXCJlbWJlZGRlZC1tb2RhbC1sZWZ0XCI7XHJcbiAgICAgICAgICAgICAgICBsZWZ0LnN0eWxlLmNzc1RleHQgPSBjb21tb25TdHlsZXMgKyBgaGVpZ2h0OiAxMDAlOyB0b3A6IDA7IHdpZHRoOiAke2xlZnRTcGFjZX1weDtgO1xyXG4gICAgICAgICAgICAgICAgbGVmdC5pZCA9IFwibGVmdFwiO1xyXG4gICAgXHJcbiAgICAgICAgICAgICAgICBjb25zdCByaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XHJcbiAgICAgICAgICAgICAgICByaWdodC5jbGFzc05hbWUgPSBcImVtYmVkZGVkLW1vZGFsLXJpZ2h0XCI7XHJcbiAgICAgICAgICAgICAgICByaWdodC5zdHlsZS5jc3NUZXh0ID0gY29tbW9uU3R5bGVzICsgYGhlaWdodDogY2FsYygxMDAlIC0gJHt0b3BIZWlnaHR9cHgpOyB0b3A6ICR7dG9wSGVpZ2h0fXB4OyByaWdodDogMDsgd2lkdGg6ICR7cmlnaHRTcGFjZX1weDtgO1xyXG4gICAgICAgICAgICAgICAgcmlnaHQuaWQgPSBcInJpZ2h0XCI7XHJcbiAgICBcclxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodG9wKTtcclxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGVmdCk7XHJcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJpZ2h0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChldmVudD8uZGF0YT8udHlwZSA9PSBcIm1vZGFsLWNsb3NlXCIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBXaW5kb3cgbWVzc2FnZSAtIE1vZGFsIENsb3NlYCk7XHJcbiAgICBcclxuICAgICAgICAgICAgICAgIGxldCB3cmFwcGVyID0gZG9jdW1lbnQuYm9keS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwibWFpbi13cmFwcGVyXCIpWzBdIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgICAgICAgICAgd3JhcHBlci5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcIm92ZXJmbG93XCIpO1xyXG4gICAgXHJcbiAgICAgICAgICAgICAgICBjb25zdCB0b3AgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInRvcFwiKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGxlZnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImxlZnRcIik7XHJcbiAgICAgICAgICAgICAgICBjb25zdCByaWdodCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwicmlnaHRcIik7XHJcbiAgICBcclxuICAgICAgICAgICAgICAgIGlmICh0b3ApXHJcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0b3ApO1xyXG4gICAgICAgICAgICAgICAgaWYgKGxlZnQpXHJcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsZWZ0KTtcclxuICAgICAgICAgICAgICAgIGlmIChyaWdodClcclxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHJpZ2h0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICBcclxuICAgICAgICB0aGlzLnN1YnNjcmliZShcIm1lbnUuaXNDb2xsYXBzZWRcIiwgKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB3cmFwcGVyID0gZG9jdW1lbnQuYm9keS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwibWFpbi13cmFwcGVyXCIpWzBdIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgICAgICBsZXQgd3JhcHBlclN0eWxlcyA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHdyYXBwZXIpO1xyXG4gICAgICAgICAgICBjb25zdCB3cmFwcGVyUGFkZGluZ0xlZnQgPSBwYXJzZUludCh3cmFwcGVyU3R5bGVzLmdldFByb3BlcnR5VmFsdWUoXCJwYWRkaW5nLWxlZnRcIikpO1xyXG4gICAgICAgICAgICB2YXIgbGVmdFNwYWNlOiBudW1iZXIgPSB0aGlzLnNpZGViYXJXaWR0aCArIHdyYXBwZXJQYWRkaW5nTGVmdDtcclxuICAgIFxyXG4gICAgICAgICAgICBjb25zdCBsZWZ0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJsZWZ0XCIpO1xyXG4gICAgICAgICAgICBjb25zdCB0b3AgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInRvcFwiKTtcclxuICAgIFxyXG4gICAgICAgICAgICBpZiAodG9wKSB7XHJcbiAgICAgICAgICAgICAgICB0b3Auc3R5bGUuc2V0UHJvcGVydHkoXCJsZWZ0XCIsIChsZWZ0U3BhY2UpICsgXCJweFwiKTtcclxuICAgICAgICAgICAgICAgIHRvcC5zdHlsZS5zZXRQcm9wZXJ0eShcIndpZHRoXCIsIGBjYWxjKDEwMCUgLSAke2xlZnRTcGFjZX1weClgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgXHJcbiAgICAgICAgICAgIGlmIChsZWZ0KVxyXG4gICAgICAgICAgICAgICAgbGVmdC5zdHlsZS5zZXRQcm9wZXJ0eShcIndpZHRoXCIsIGxlZnRTcGFjZSArIFwicHhcIik7XHJcbiAgICAgICAgfSk7XHJcbiAgICBcclxuICAgICAgICBpZiAodGhpcy5lbWIuRW1iZWRkZWQpXHJcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoXCJvdmVyZmxvdy15XCIsIFwiYXV0b1wiLCBcImltcG9ydGFudFwiKTtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck5hdmlnYXRpb25JZk1lYW5pbmdmdWwocm91dGU/OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KSB7XHJcbiAgICAgICAgbGV0IHRpdGxlID0gcm91dGUuZGF0YVtcInRpdGxlXCJdO1xyXG4gICAgICAgIGxldCBpbnRlcm5hbCA9IHJvdXRlLmRhdGFbXCJpbnRlcm5hbE5hdmlnYXRpb25cIl1cclxuXHJcbiAgICAgICAgLy8gUGVybWV0dGUgZGkgY2hpYW1hcmUgc3RvIHJlZ2lzdGVyTmF2aWdhdGlvbiBhIHByZXNjaW5kZXJlIGUgZmFyZSBvcHQgb3V0IHNlIG5vbiDDqCB1bmEgcm91dGUgbmF2aWdhYmlsZVxyXG4gICAgICAgIGlmKCF0aXRsZSkgcmV0dXJuO1xyXG5cclxuICAgICAgICAvKlxyXG4gICAgICAgICAqICBQYXJlbnQgKHt1cmw6IFt7cGF0aDogXCJ7bW9kdWxlfVwifV19KVxyXG4gICAgICAgICAqICAgICAgUGFyZW50ICh7dXJsOiBbe3BhdGg6IFwiXCJ9XX0pIChSb290IGRlbCBtb2R1bG8gbGF6eSlcclxuICAgICAgICAgKiAgICAgICAgICAtPiBOYXZpZ2F6aW9uZSBhdHR1YWxlIDwtXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgbGV0IG1vZHVsZSA9IHJvdXRlLnBhcmVudD8ucGFyZW50Py51cmxbMF0/LnBhdGg7XHJcbiAgICAgICAgbGV0IGxvYyA9IG1vZHVsZSA/IHRoaXMuTW9kdWxlc0xvY2FsaXphdGlvbnNbbW9kdWxlXSA6IG51bGw7XHJcblxyXG4gICAgICAgIGlmICghbW9kdWxlKVxyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiSW1wb3NzaWJpbGUgZXN0cmFwb2xhcmUgaWwgbW9kdWxvIGRhbGxhIG5hdmlnYXppb25lIChBdHRlc28gTW9kdWxvIGFsIHNlY29uZG8gbGl2ZWxsbyBkaSBwYXJlbnRlbGEgcGFydGVuZG8gZGFsIGNvbXBvbmVudGUgYXR0dWFsZSk6IFwiICsgcm91dGUucGF0aEZyb21Sb290Lm1hcCh2ID0+IHYudXJsLm1hcChzZWdtZW50ID0+IHNlZ21lbnQudG9TdHJpbmcoKSkuam9pbignLycpKS5qb2luKCcvJykpO1xyXG5cclxuICAgICAgICB0aGlzLm5vdGlmeURhdGFDaGFuZ2VkKGludGVybmFsID8gXCJtZW51LmFkanVzdFN1Yk5hdmlnYXRpb25Ub1wiIDogXCJtZW51LmFkanVzdE5hdmlnYXRpb25Ub1wiLCBsb2MgPyBsb2MubG9jKHRpdGxlKSA6IHRpdGxlKTtcclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVJbmJvdW5kTWVzc2FnZSh0OiBJbnRlckNvbU1lc3NhZ2UpIHtcclxuICAgICAgICBzd2l0Y2ggKHQudHlwZSkge1xyXG4gICAgICAgICAgICBjYXNlIEluYm91bmRNZXNzYWdlVHlwZXMuTmF2aWdhdGlvbjpcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmeURhdGFDaGFuZ2VkKHQubWVzc2FnZS5zdWIgPyBcIm1lbnUuYWRqdXN0U3ViTmF2aWdhdGlvblRvXCIgOiBcIm1lbnUuYWRqdXN0TmF2aWdhdGlvblRvXCIsIHQubWVzc2FnZS5yb3V0ZVRpdGxlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmludGVyY29tLnNlbmQoQWRtTWVzc2FnZVR5cGVzLk1lc3NhZ2UsIFwiTmF2aWdhdGlvbiBNZXNzYWdlIFJlY2VpdmVkXCIsIE1LX0FETSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNldHVwRGF5anMoKSB7XHJcbiAgICAgICAgZGF5anMuZXh0ZW5kKCg8YW55PmN1c3RvbVBhcnNlRm9ybWF0KS5kZWZhdWx0IHx8IGN1c3RvbVBhcnNlRm9ybWF0KTtcclxuICAgICAgICBkYXlqcy5leHRlbmQoKDxhbnk+bWluTWF4KS5kZWZhdWx0IHx8IG1pbk1heCk7XHJcbiAgICAgICAgZGF5anMuZXh0ZW5kKCg8YW55PmlzQmV0d2VlbikuZGVmYXVsdCB8fCBpc0JldHdlZW4pO1xyXG4gICAgICAgIGRheWpzLmV4dGVuZCgoPGFueT5pc1NhbWVPckJlZm9yZSkuZGVmYXVsdCB8fCBpc1NhbWVPckJlZm9yZSk7XHJcbiAgICAgICAgZGF5anMuZXh0ZW5kKCg8YW55PmlzU2FtZU9yQWZ0ZXIpLmRlZmF1bHQgfHwgaXNTYW1lT3JBZnRlcik7XHJcbiAgICAgICAgZGF5anMuZXh0ZW5kKCg8YW55PmR1cmF0aW9uKS5kZWZhdWx0IHx8IGR1cmF0aW9uKTtcclxuICAgICAgICBkYXlqcy5leHRlbmQoKDxhbnk+dXRjKS5kZWZhdWx0IHx8IHV0Yyk7XHJcblxyXG4gICAgICAgIC8vIFJlcXVpcmUgZSBjb2xsZWdhbWVudG8gY29uIGxhIGxvY2FsaXp6YXppb25lIHBlciBkYXlqc1xyXG4gICAgICAgIGltcG9ydChcImRheWpzL2xvY2FsZS9cIiArIHRoaXMubGMuU21hbGxMb2NhbGUgKyBcIi5qc1wiKS50aGVuKGxvY2FsZSA9PiB7IGRheWpzLmxvY2FsZShsb2NhbGUpOyB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzZXR1cFNpZ25hbFJKb2JMaXN0ZW5pbmcoKSB7XHJcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zLm9ic2VydmUodGhpcy5NZXNzYWdlRGVmLklOX0pvYlByb2dyZXNzTm90aWZpY2F0aW9uKS5zdWJzY3JpYmUoKGV2OiBKb2JQcm9ncmVzc0R0bykgPT4ge1xyXG4gICAgICAgICAgICB2YXIgZGVzYyA9IGV2LmRlc2NyaXB0aW9uICsgXCIgKFwiICsgZXYudXNlciArIFwiKVwiO1xyXG4gICAgICAgICAgICBsZXQgam9iOiBBcHBsaWNhdGlvbkpvYiA9IHtcclxuICAgICAgICAgICAgICAgIGlkOiBldi5pbnN0YW5jZSxcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBkZXNjLFxyXG4gICAgICAgICAgICAgICAgc21hbGxkZXNjcmlwdGlvbjogZGVzYy5sZW5ndGggPiAzNSA/IGRlc2Muc3Vic3RyaW5nKDAsIDMwKSArIFwiLi4uXCIgOiBkZXNjLFxyXG4gICAgICAgICAgICAgICAgcGVyY2VudGFnZTogdGhpcy5yb3VuZFRvVHdvKGV2LnByb2dyZXNzKSxcclxuICAgICAgICAgICAgICAgIGNvbXBsZXRlZDogZXYudHlwZSA9PSAnQ29tcGxldGVkJyxcclxuICAgICAgICAgICAgICAgIGZpbGVpZDogZXYucmVzdWx0ZmlsZSxcclxuICAgICAgICAgICAgICAgIHJlcG9ydGlkOiBldi5yZXN1bHRyZXBvcnQsXHJcbiAgICAgICAgICAgICAgICByZXBvcnRwYXJzOiBldi5yZXN1bHRyZXBvcnRwYXJhbXMsXHJcbiAgICAgICAgICAgICAgICBjb21wbGV4cmVwb3J0aWQ6IGV2LnJlc3VsdGNvbXBsZXhyZXBvcnRcclxuICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgIHN3aXRjaCAoZXYudHlwZSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSBcIlN0YXJ0ZWRcIjpcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5qb2JXaXRoSWRzQ2FjaGVbZXYuaW5zdGFuY2VdKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIkpvYiBhbHJlYWR5IHJlZ2lzdGVyZWQgb24gdGhlICdTdGFydGVkJyBjYWxsYmFja1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmpvYldpdGhJZHNDYWNoZVtldi5pbnN0YW5jZV0gPSBqb2I7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGxKb2JzLnNwbGljZSgwLCAwLCBqb2IpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZ5RGF0YUNoYW5nZWQoXCJhcHAuc3RhcnRlZEpvYlwiLCBqb2JUb1VwZGF0ZS5kZXNjcmlwdGlvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwiUHJvZ3Jlc3NcIjpcclxuICAgICAgICAgICAgICAgICAgICAvLyBTZSBtaSBhcnJpdmEgdW4gcHJvZ3Jlc3MgZGkgdW4gam9iIGNoZSBub24gaG8gc2lnbmlmaWNhIGNoZSBtaSBzb25vIGxvZ2dhdG8gb3JhIGNvbiBkZWkgSm9iIGluIGNvcnNvXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gcXVpbmRpIHBlciBwcmltYSBjb3NhIGRldm8gbWV0dGVybG8gaW4gbGlzdGFcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuam9iV2l0aElkc0NhY2hlW2V2Lmluc3RhbmNlXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmpvYldpdGhJZHNDYWNoZVtldi5pbnN0YW5jZV0gPSBqb2I7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWxsSm9icy5zcGxpY2UoMCwgMCwgam9iKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5qb2JXaXRoSWRzQ2FjaGVbZXYuaW5zdGFuY2VdLnBlcmNlbnRhZ2UgPSB0aGlzLnJvdW5kVG9Ud28oZXYucHJvZ3Jlc3MpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZ5RGF0YUNoYW5nZWQoXCJhcHAucHJvZ3Jlc3NKb2JcIiwgeyBkZXNjcmlwdGlvbjogZXYuZGVzY3JpcHRpb24sIHByb2dyZXNzOiBldi5wcm9ncmVzcyB9KTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJDb21wbGV0ZWRcIjpcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuam9iV2l0aElkc0NhY2hlW2V2Lmluc3RhbmNlXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmpvYldpdGhJZHNDYWNoZVtldi5pbnN0YW5jZV0gPSBqb2I7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWxsSm9icy5zcGxpY2UoMCwgMCwgam9iKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGpvYlRvVXBkYXRlID0gdGhpcy5qb2JXaXRoSWRzQ2FjaGVbZXYuaW5zdGFuY2VdO1xyXG4gICAgICAgICAgICAgICAgICAgIGpvYlRvVXBkYXRlLnBlcmNlbnRhZ2UgPSAxMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgam9iVG9VcGRhdGUuZmlsZWlkID0gZXYucmVzdWx0ZmlsZTtcclxuICAgICAgICAgICAgICAgICAgICBqb2JUb1VwZGF0ZS5yZXBvcnRpZCA9IGV2LnJlc3VsdHJlcG9ydDtcclxuICAgICAgICAgICAgICAgICAgICBqb2JUb1VwZGF0ZS5yZXBvcnRwYXJzID0gZXYucmVzdWx0cmVwb3J0cGFyYW1zO1xyXG4gICAgICAgICAgICAgICAgICAgIGpvYlRvVXBkYXRlLmNvbXBsZXRlZCA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm5vdGlmeU9uQ29tcGxldGVkSm9icylcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZnlEYXRhQ2hhbmdlZChcImFwcC5jb21wbGV0ZWRKb2JcIiwgam9iVG9VcGRhdGUuZGVzY3JpcHRpb24pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5qb2JzSW5Qcm9ncmVzcyA9IHRoaXMuYWxsSm9icy5maWx0ZXIodCA9PiAhdC5jb21wbGV0ZWQpLmxlbmd0aDtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByb3VuZFRvVHdvKG51bSkge1xyXG4gICAgICAgIHJldHVybiBNYXRoLnJvdW5kKG51bSAqIDEwMCkgLyAxMDA7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SmFjZUlEZW50aXR5KCk6IEphY2VJZGVudGl0eSB7XHJcbiAgICAgICAgaWYgKHRoaXMuSmFjZUlkZW50aXR5KVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5KYWNlSWRlbnRpdHk7XHJcbiAgICAgICAgdGhpcy5KYWNlSWRlbnRpdHkgPSB0aGlzLmJ0cy5nZXRKYWNlSWRlbnRpdHkoKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5KYWNlSWRlbnRpdHk7XHJcbiAgICB9XHJcblxyXG4gICAgbm90aWZ5RGF0YUNoYW5nZWQoZXZlbnQsIHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5fZGF0YVtldmVudF0gPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLl9kYXRhLm5leHQoe1xyXG4gICAgICAgICAgICBldmVudDogZXZlbnQsXHJcbiAgICAgICAgICAgIGRhdGE6IHRoaXMuX2RhdGFbZXZlbnRdXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3Vic2NyaWJlKGV2ZW50OiBzdHJpbmcsIGNhbGxiYWNrOiBGdW5jdGlvbikge1xyXG4gICAgICAgIHZhciBzdWJzY3JpYmVycyA9IHRoaXMuX3N1YnNjcmlwdGlvbnMuZ2V0KGV2ZW50KSB8fCBbXTtcclxuICAgICAgICBzdWJzY3JpYmVycy5wdXNoKGNhbGxiYWNrKTtcclxuXHJcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5zZXQoZXZlbnQsIHN1YnNjcmliZXJzKTtcclxuICAgIH1cclxuXHJcbiAgICBfb25FdmVudChkYXRhOiBhbnkpIHtcclxuICAgICAgICB2YXIgc3Vic2NyaWJlcnMgPSB0aGlzLl9zdWJzY3JpcHRpb25zLmdldChkYXRhW1wiZXZlbnRcIl0pIHx8IFtdO1xyXG5cclxuICAgICAgICBzdWJzY3JpYmVycy5mb3JFYWNoKChjYWxsYmFjaykgPT4ge1xyXG4gICAgICAgICAgICBjYWxsYmFjay5jYWxsKG51bGwsIGRhdGFbXCJkYXRhXCJdKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0U2lkZWJhcldpZHRoKHdpZHRoOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLnNpZGViYXJXaWR0aCA9IHdpZHRoO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRIZWFkZXJIZWlnaHQoaGVpZ2h0OiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLmhlYWRlckhlaWdodCA9IGhlaWdodDtcclxuICAgIH1cclxufSJdfQ==
|
|
@@ -1364,7 +1364,7 @@ class AppState {
|
|
|
1364
1364
|
this.allJobs.splice(0, 0, job);
|
|
1365
1365
|
}
|
|
1366
1366
|
this.jobWithIdsCache[ev.instance].percentage = this.roundToTwo(ev.progress);
|
|
1367
|
-
this.notifyDataChanged("app.progressJob", { description:
|
|
1367
|
+
this.notifyDataChanged("app.progressJob", { description: ev.description, progress: ev.progress });
|
|
1368
1368
|
break;
|
|
1369
1369
|
case "Completed":
|
|
1370
1370
|
if (!this.jobWithIdsCache[ev.instance]) {
|