@veloceapps/sdk 7.0.2-25 → 7.0.2-27

Sign up to get free protection for your applications and to get access to all the features.
@@ -68,6 +68,13 @@ export class RuntimeService {
68
68
  observable$ = observable$.pipe(map(() => this.deleteElement(operation)));
69
69
  break;
70
70
  }
71
+ case 'replace': {
72
+ observable$ = observable$.pipe(switchMap(() => {
73
+ this.deleteElement({ op: 'remove', path: operation.path });
74
+ return this.addElement$({ op: 'add', path: operation.path, value: operation.value });
75
+ }));
76
+ break;
77
+ }
71
78
  default:
72
79
  observable$ = of();
73
80
  }
@@ -104,4 +111,4 @@ RuntimeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", versi
104
111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: RuntimeService, decorators: [{
105
112
  type: Injectable
106
113
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.IntegrationState }]; } });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY21zL21vZHVsZXMvcnVudGltZS9zZXJ2aWNlcy9ydW50aW1lLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQStCLE1BQU0sZUFBZSxDQUFDO0FBRWxGLE9BQU8sRUFBUyxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFNUMsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0SCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFJcEQsTUFBTSxPQUFPLGNBQWM7SUFZekIsWUFBb0IsUUFBa0IsRUFBVSxnQkFBa0M7UUFBOUQsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFYM0UsZUFBVSxHQUE0QixFQUFFLENBQUM7UUFDekMsbUJBQWMsR0FBaUMsRUFBRSxDQUFDO1FBQ2xELG9CQUFlLEdBQXNCLEVBQUUsQ0FBQztRQUV4QyxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQy9CLHNCQUFpQixHQUFHLElBQUksZUFBZSxDQUFnQixJQUFJLENBQUMsQ0FBQztRQUM3RCwwQkFBcUIsR0FBRyxJQUFJLGVBQWUsQ0FBVyxFQUFFLENBQUMsQ0FBQztRQUsvRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUVyRSxJQUFJLENBQUMsZ0JBQWdCO2FBQ2xCLE9BQU8sQ0FBdUIsU0FBUyxDQUFDLFVBQVUsQ0FBQzthQUNuRCxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQy9CLG9CQUFvQixFQUFFLENBQ3ZCO2FBQ0EsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRWhFLElBQUksQ0FBQyxnQkFBZ0I7YUFDbEIsT0FBTyxDQUFtQixTQUFTLENBQUMsWUFBWSxDQUFDO2FBQ2pELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUM3QixTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDdkIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQztZQUN0RCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDdkMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsWUFBWSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7YUFDakU7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVMLElBQUksQ0FBQyxnQkFBZ0I7YUFDbEIsT0FBTyxDQUFtQixTQUFTLENBQUMsWUFBWSxDQUFDO2FBQ2pELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUM3QixTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDdkIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQztZQUN0RCxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNyRixDQUFDLENBQUMsQ0FBQztRQUVMLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNsSCxDQUFDO0lBRU0sV0FBVyxDQUFDLFlBQTJCLEVBQUUsTUFBeUI7UUFDdkUsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFFckIsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNqQixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNmO1FBRUQsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDNUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ1gsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxjQUFjLEdBQUc7Z0JBQ3BCLEdBQUcsSUFBSSxDQUFDLGNBQWM7Z0JBQ3RCLEdBQUcsTUFBTSxDQUFDLGNBQWM7YUFDekIsQ0FBQztZQUNGLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN2QyxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDekIsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzFDLENBQUM7SUFDSixDQUFDO0lBRU0sV0FBVyxDQUFDLEtBQVk7UUFDN0IsSUFBSSxXQUFXLEdBQXFCLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVsRCxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3hCLFFBQVEsU0FBUyxDQUFDLEVBQUUsRUFBRTtnQkFDcEIsS0FBSyxLQUFLLENBQUMsQ0FBQztvQkFDVixXQUFXLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzdFLE1BQU07aUJBQ1A7Z0JBQ0QsS0FBSyxRQUFRLENBQUMsQ0FBQztvQkFDYixXQUFXLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3pFLE1BQU07aUJBQ1A7Z0JBQ0Q7b0JBQ0UsV0FBVyxHQUFHLEVBQUUsRUFBRSxDQUFDO2FBQ3RCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxJQUFZO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ3ZCLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFDcEIsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFDeEQsb0JBQW9CLEVBQUUsQ0FDdkIsQ0FBQztJQUNKLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVPLFdBQVcsQ0FBQyxTQUF1QjtRQUN6QyxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDbEUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ1gsSUFBSSxDQUFDLGNBQWMsR0FBRztnQkFDcEIsR0FBRyxJQUFJLENBQUMsY0FBYztnQkFDdEIsR0FBRyxNQUFNLENBQUMsY0FBYzthQUN6QixDQUFDO1lBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsRUFBRSxHQUFHLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNsRixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVPLGFBQWEsQ0FBQyxTQUEwQjtRQUM5QyxVQUFVLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQzs7MkdBdEhVLGNBQWM7K0dBQWQsY0FBYzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE5nTW9kdWxlLCBOZ01vZHVsZVJlZiwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVUlEZWZpbml0aW9uIH0gZnJvbSAnQHZlbG9jZWFwcHMvc2RrL2NvcmUnO1xuaW1wb3J0IHsgUGF0Y2gsIGFwcGx5UGF0Y2ggfSBmcm9tICdyZmM2OTAyJztcbmltcG9ydCB7IEFkZE9wZXJhdGlvbiwgUmVtb3ZlT3BlcmF0aW9uIH0gZnJvbSAncmZjNjkwMi9kaWZmJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgb2YsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENtc0FjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2Ntcy5hY3Rpb25zJztcbmltcG9ydCB7IENNU1ByZXZpZXdDb25maWcgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL3ByZXZpZXcvcHJldmlldy50eXBlcyc7XG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tICcuLi8uLi8uLi9lbmdpbmUvbW9kZWxzL2VudGl0eSc7XG5pbXBvcnQgeyBJbnRlZ3JhdGlvblN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaW50ZWdyYXRpb24uc3RhdGUnO1xuaW1wb3J0IHsgRWxlbWVudE1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgZmluZEVsZW1lbnRCeVBhdGggfSBmcm9tICcuLi8uLi8uLi91dGlscy91aS1kZWZpbml0aW9uLnV0aWxzJztcbmltcG9ydCB7IENNU19DT01QSUxBVElPTl9TRVJWSUNFIH0gZnJvbSAnLi4vdG9rZW5zJztcbmltcG9ydCB0eXBlIHsgQ29tcGlsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9jb21waWxhdGlvbi5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJ1bnRpbWVTZXJ2aWNlIHtcbiAgcHVibGljIG1vZHVsZVJlZnM6IE5nTW9kdWxlUmVmPE5nTW9kdWxlPltdID0gW107XG4gIHB1YmxpYyBjb21wb25lbnRUeXBlczogUmVjb3JkPHN0cmluZywgVHlwZTxFbnRpdHk+PiA9IHt9O1xuICBwdWJsaWMgYXBwbGljYXRpb25UcmVlOiBFbGVtZW50TWV0YWRhdGFbXSA9IFtdO1xuICBwdWJsaWMgY29uZmlnPzogQ01TUHJldmlld0NvbmZpZztcbiAgcHVibGljIGlzSW5pdGlhbGl6ZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIHB1YmxpYyB1cGRhdGVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHB1YmxpYyBzZWxlY3RlZFBhZ2VOYW1lJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHB1YmxpYyBzZWxlY3RlZE92ZXJsYXlOYW1lcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZ1tdPihbXSk7XG5cbiAgcHJpdmF0ZSBjb21waWxhdGlvblNlcnZpY2U6IENvbXBpbGF0aW9uU2VydmljZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3RvciwgcHJpdmF0ZSBpbnRlZ3JhdGlvblN0YXRlOiBJbnRlZ3JhdGlvblN0YXRlKSB7XG4gICAgdGhpcy5jb21waWxhdGlvblNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChDTVNfQ09NUElMQVRJT05fU0VSVklDRSk7XG5cbiAgICB0aGlzLmludGVncmF0aW9uU3RhdGVcbiAgICAgIC5saXN0ZW4kPHsgcGFnZU5hbWU6IHN0cmluZyB9PihDbXNBY3Rpb24uR09fVE9fUEFHRSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHsgcGFnZU5hbWUgfSkgPT4gcGFnZU5hbWUpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShwYWdlTmFtZSA9PiB0aGlzLnNlbGVjdGVkUGFnZU5hbWUkLm5leHQocGFnZU5hbWUpKTtcblxuICAgIHRoaXMuaW50ZWdyYXRpb25TdGF0ZVxuICAgICAgLmxpc3RlbiQ8eyBuYW1lOiBzdHJpbmcgfT4oQ21zQWN0aW9uLlNIT1dfT1ZFUkxBWSlcbiAgICAgIC5waXBlKG1hcCgoeyBuYW1lIH0pID0+IG5hbWUpKVxuICAgICAgLnN1YnNjcmliZShvdmVybGF5TmFtZSA9PiB7XG4gICAgICAgIGNvbnN0IG92ZXJsYXlOYW1lcyA9IHRoaXMuc2VsZWN0ZWRPdmVybGF5TmFtZXMkLnZhbHVlO1xuICAgICAgICBpZiAoIW92ZXJsYXlOYW1lcy5pbmNsdWRlcyhvdmVybGF5TmFtZSkpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkT3ZlcmxheU5hbWVzJC5uZXh0KFsuLi5vdmVybGF5TmFtZXMsIG92ZXJsYXlOYW1lXSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy5pbnRlZ3JhdGlvblN0YXRlXG4gICAgICAubGlzdGVuJDx7IG5hbWU6IHN0cmluZyB9PihDbXNBY3Rpb24uSElERV9PVkVSTEFZKVxuICAgICAgLnBpcGUobWFwKCh7IG5hbWUgfSkgPT4gbmFtZSkpXG4gICAgICAuc3Vic2NyaWJlKG92ZXJsYXlOYW1lID0+IHtcbiAgICAgICAgY29uc3Qgb3ZlcmxheU5hbWVzID0gdGhpcy5zZWxlY3RlZE92ZXJsYXlOYW1lcyQudmFsdWU7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRPdmVybGF5TmFtZXMkLm5leHQob3ZlcmxheU5hbWVzLmZpbHRlcihuYW1lID0+IG5hbWUgIT09IG92ZXJsYXlOYW1lKSk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuaW50ZWdyYXRpb25TdGF0ZS5saXN0ZW4kKENtc0FjdGlvbi5ISURFX0FMTF9PVkVSTEFZUykuc3Vic2NyaWJlKCgpID0+IHRoaXMuc2VsZWN0ZWRPdmVybGF5TmFtZXMkLm5leHQoW10pKTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0aWFsaXplJCh1aURlZmluaXRpb24/OiBVSURlZmluaXRpb24sIGNvbmZpZz86IENNU1ByZXZpZXdDb25maWcpOiBPYnNlcnZhYmxlPEVsZW1lbnRNZXRhZGF0YVtdPiB7XG4gICAgdGhpcy5jb25maWcgPSBjb25maWc7XG5cbiAgICBpZiAoIXVpRGVmaW5pdGlvbikge1xuICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jb21waWxhdGlvblNlcnZpY2UuY29tcGlsZVVJRGVmaW5pdGlvbiQodWlEZWZpbml0aW9uLCBjb25maWcpLnBpcGUoXG4gICAgICBtYXAocmVzdWx0ID0+IHtcbiAgICAgICAgdGhpcy5hcHBsaWNhdGlvblRyZWUgPSByZXN1bHQuZWxlbWVudHM7XG4gICAgICAgIHRoaXMuY29tcG9uZW50VHlwZXMgPSB7XG4gICAgICAgICAgLi4udGhpcy5jb21wb25lbnRUeXBlcyxcbiAgICAgICAgICAuLi5yZXN1bHQuY29tcG9uZW50VHlwZXMsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMubW9kdWxlUmVmcy5wdXNoKHJlc3VsdC5tb2R1bGVSZWYpO1xuICAgICAgICByZXR1cm4gcmVzdWx0LmVsZW1lbnRzO1xuICAgICAgfSksXG4gICAgICB0YXAoKCkgPT4gdGhpcy5pc0luaXRpYWxpemVkJC5uZXh0KHRydWUpKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFwcGx5UGF0Y2gkKHBhdGNoOiBQYXRjaCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGxldCBvYnNlcnZhYmxlJDogT2JzZXJ2YWJsZTx2b2lkPiA9IG9mKHVuZGVmaW5lZCk7XG5cbiAgICBwYXRjaC5mb3JFYWNoKG9wZXJhdGlvbiA9PiB7XG4gICAgICBzd2l0Y2ggKG9wZXJhdGlvbi5vcCkge1xuICAgICAgICBjYXNlICdhZGQnOiB7XG4gICAgICAgICAgb2JzZXJ2YWJsZSQgPSBvYnNlcnZhYmxlJC5waXBlKHN3aXRjaE1hcCgoKSA9PiB0aGlzLmFkZEVsZW1lbnQkKG9wZXJhdGlvbikpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdyZW1vdmUnOiB7XG4gICAgICAgICAgb2JzZXJ2YWJsZSQgPSBvYnNlcnZhYmxlJC5waXBlKG1hcCgoKSA9PiB0aGlzLmRlbGV0ZUVsZW1lbnQob3BlcmF0aW9uKSkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgb2JzZXJ2YWJsZSQgPSBvZigpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG9ic2VydmFibGUkLnBpcGUodGFwKCgpID0+IHRoaXMudXBkYXRlZCQubmV4dCgpKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29tcGlsZWRFbGVtZW50JChwYXRoOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEVsZW1lbnRNZXRhZGF0YSB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZWQkLnBpcGUoXG4gICAgICBzdGFydFdpdGgodW5kZWZpbmVkKSxcbiAgICAgIG1hcCgoKSA9PiBmaW5kRWxlbWVudEJ5UGF0aCh0aGlzLmFwcGxpY2F0aW9uVHJlZSwgcGF0aCkpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMuY29tcGlsYXRpb25TZXJ2aWNlLmNsZWFyKCk7XG4gICAgdGhpcy5tb2R1bGVSZWZzLmZvckVhY2gobSA9PiBtLmRlc3Ryb3koKSk7XG4gICAgdGhpcy5tb2R1bGVSZWZzID0gW107XG4gICAgdGhpcy5hcHBsaWNhdGlvblRyZWUgPSBbXTtcbiAgICB0aGlzLmNvbXBvbmVudFR5cGVzID0ge307XG4gICAgdGhpcy5pc0luaXRpYWxpemVkJC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkRWxlbWVudCQob3BlcmF0aW9uOiBBZGRPcGVyYXRpb24pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5jb21waWxhdGlvblNlcnZpY2UuY29tcGlsZUVsZW1lbnQkKG9wZXJhdGlvbi52YWx1ZSkucGlwZShcbiAgICAgIG1hcChyZXN1bHQgPT4ge1xuICAgICAgICB0aGlzLmNvbXBvbmVudFR5cGVzID0ge1xuICAgICAgICAgIC4uLnRoaXMuY29tcG9uZW50VHlwZXMsXG4gICAgICAgICAgLi4ucmVzdWx0LmNvbXBvbmVudFR5cGVzLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLm1vZHVsZVJlZnMucHVzaChyZXN1bHQubW9kdWxlUmVmKTtcbiAgICAgICAgYXBwbHlQYXRjaCh0aGlzLmFwcGxpY2F0aW9uVHJlZSwgW3sgLi4ub3BlcmF0aW9uLCB2YWx1ZTogcmVzdWx0LmVsZW1lbnRzWzBdIH1dKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGRlbGV0ZUVsZW1lbnQob3BlcmF0aW9uOiBSZW1vdmVPcGVyYXRpb24pOiB2b2lkIHtcbiAgICBhcHBseVBhdGNoKHRoaXMuYXBwbGljYXRpb25UcmVlLCBbb3BlcmF0aW9uXSk7XG4gIH1cbn1cbiJdfQ==
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY21zL21vZHVsZXMvcnVudGltZS9zZXJ2aWNlcy9ydW50aW1lLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQStCLE1BQU0sZUFBZSxDQUFDO0FBRWxGLE9BQU8sRUFBUyxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFNUMsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0SCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFJcEQsTUFBTSxPQUFPLGNBQWM7SUFZekIsWUFBb0IsUUFBa0IsRUFBVSxnQkFBa0M7UUFBOUQsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFYM0UsZUFBVSxHQUE0QixFQUFFLENBQUM7UUFDekMsbUJBQWMsR0FBaUMsRUFBRSxDQUFDO1FBQ2xELG9CQUFlLEdBQXNCLEVBQUUsQ0FBQztRQUV4QyxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQy9CLHNCQUFpQixHQUFHLElBQUksZUFBZSxDQUFnQixJQUFJLENBQUMsQ0FBQztRQUM3RCwwQkFBcUIsR0FBRyxJ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RUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNsRixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVPLGFBQWEsQ0FBQyxTQUEwQjtRQUM5QyxVQUFVLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQzs7MkdBL0hVLGNBQWM7K0dBQWQsY0FBYzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE5nTW9kdWxlLCBOZ01vZHVsZVJlZiwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVUlEZWZpbml0aW9uIH0gZnJvbSAnQHZlbG9jZWFwcHMvc2RrL2NvcmUnO1xuaW1wb3J0IHsgUGF0Y2gsIGFwcGx5UGF0Y2ggfSBmcm9tICdyZmM2OTAyJztcbmltcG9ydCB7IEFkZE9wZXJhdGlvbiwgUmVtb3ZlT3BlcmF0aW9uIH0gZnJvbSAncmZjNjkwMi9kaWZmJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgb2YsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENtc0FjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2Ntcy5hY3Rpb25zJztcbmltcG9ydCB7IENNU1ByZXZpZXdDb25maWcgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL3ByZXZpZXcvcHJldmlldy50eXBlcyc7XG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tICcuLi8uLi8uLi9lbmdpbmUvbW9kZWxzL2VudGl0eSc7XG5pbXBvcnQgeyBJbnRlZ3JhdGlvblN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaW50ZWdyYXRpb24uc3RhdGUnO1xuaW1wb3J0IHsgRWxlbWVudE1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgZmluZEVsZW1lbnRCeVBhdGggfSBmcm9tICcuLi8uLi8uLi91dGlscy91aS1kZWZpbml0aW9uLnV0aWxzJztcbmltcG9ydCB7IENNU19DT01QSUxBVElPTl9TRVJWSUNFIH0gZnJvbSAnLi4vdG9rZW5zJztcbmltcG9ydCB0eXBlIHsgQ29tcGlsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9jb21waWxhdGlvbi5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJ1bnRpbWVTZXJ2aWNlIHtcbiAgcHVibGljIG1vZHVsZVJlZnM6IE5nTW9kdWxlUmVmPE5nTW9kdWxlPltdID0gW107XG4gIHB1YmxpYyBjb21wb25lbnRUeXBlczogUmVjb3JkPHN0cmluZywgVHlwZTxFbnRpdHk+PiA9IHt9O1xuICBwdWJsaWMgYXBwbGljYXRpb25UcmVlOiBFbGVtZW50TWV0YWRhdGFbXSA9IFtdO1xuICBwdWJsaWMgY29uZmlnPzogQ01TUHJldmlld0NvbmZpZztcbiAgcHVibGljIGlzSW5pdGlhbGl6ZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIHB1YmxpYyB1cGRhdGVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHB1YmxpYyBzZWxlY3RlZFBhZ2VOYW1lJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHB1YmxpYyBzZWxlY3RlZE92ZXJsYXlOYW1lcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZ1tdPihbXSk7XG5cbiAgcHJpdmF0ZSBjb21waWxhdGlvblNlcnZpY2U6IENvbXBpbGF0aW9uU2VydmljZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3RvciwgcHJpdmF0ZSBpbnRlZ3JhdGlvblN0YXRlOiBJbnRlZ3JhdGlvblN0YXRlKSB7XG4gICAgdGhpcy5jb21waWxhdGlvblNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChDTVNfQ09NUElMQVRJT05fU0VSVklDRSk7XG5cbiAgICB0aGlzLmludGVncmF0aW9uU3RhdGVcbiAgICAgIC5saXN0ZW4kPHsgcGFnZU5hbWU6IHN0cmluZyB9PihDbXNBY3Rpb24uR09fVE9fUEFHRSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHsgcGFnZU5hbWUgfSkgPT4gcGFnZU5hbWUpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShwYWdlTmFtZSA9PiB0aGlzLnNlbGVjdGVkUGFnZU5hbWUkLm5leHQocGFnZU5hbWUpKTtcblxuICAgIHRoaXMuaW50ZWdyYXRpb25TdGF0ZVxuICAgICAgLmxpc3RlbiQ8eyBuYW1lOiBzdHJpbmcgfT4oQ21zQWN0aW9uLlNIT1dfT1ZFUkxBWSlcbiAgICAgIC5waXBlKG1hcCgoeyBuYW1lIH0pID0+IG5hbWUpKVxuICAgICAgLnN1YnNjcmliZShvdmVybGF5TmFtZSA9PiB7XG4gICAgICAgIGNvbnN0IG92ZXJsYXlOYW1lcyA9IHRoaXMuc2VsZWN0ZWRPdmVybGF5TmFtZXMkLnZhbHVlO1xuICAgICAgICBpZiAoIW92ZXJsYXlOYW1lcy5pbmNsdWRlcyhvdmVybGF5TmFtZSkpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkT3ZlcmxheU5hbWVzJC5uZXh0KFsuLi5vdmVybGF5TmFtZXMsIG92ZXJsYXlOYW1lXSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy5pbnRlZ3JhdGlvblN0YXRlXG4gICAgICAubGlzdGVuJDx7IG5hbWU6IHN0cmluZyB9PihDbXNBY3Rpb24uSElERV9PVkVSTEFZKVxuICAgICAgLnBpcGUobWFwKCh7IG5hbWUgfSkgPT4gbmFtZSkpXG4gICAgICAuc3Vic2NyaWJlKG92ZXJsYXlOYW1lID0+IHtcbiAgICAgICAgY29uc3Qgb3ZlcmxheU5hbWVzID0gdGhpcy5zZWxlY3RlZE92ZXJsYXlOYW1lcyQudmFsdWU7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRPdmVybGF5TmFtZXMkLm5leHQob3ZlcmxheU5hbWVzLmZpbHRlcihuYW1lID0+IG5hbWUgIT09IG92ZXJsYXlOYW1lKSk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuaW50ZWdyYXRpb25TdGF0ZS5saXN0ZW4kKENtc0FjdGlvbi5ISURFX0FMTF9PVkVSTEFZUykuc3Vic2NyaWJlKCgpID0+IHRoaXMuc2VsZWN0ZWRPdmVybGF5TmFtZXMkLm5leHQoW10pKTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0aWFsaXplJCh1aURlZmluaXRpb24/OiBVSURlZmluaXRpb24sIGNvbmZpZz86IENNU1ByZXZpZXdDb25maWcpOiBPYnNlcnZhYmxlPEVsZW1lbnRNZXRhZGF0YVtdPiB7XG4gICAgdGhpcy5jb25maWcgPSBjb25maWc7XG5cbiAgICBpZiAoIXVpRGVmaW5pdGlvbikge1xuICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jb21waWxhdGlvblNlcnZpY2UuY29tcGlsZVVJRGVmaW5pdGlvbiQodWlEZWZpbml0aW9uLCBjb25maWcpLnBpcGUoXG4gICAgICBtYXAocmVzdWx0ID0+IHtcbiAgICAgICAgdGhpcy5hcHBsaWNhdGlvblRyZWUgPSByZXN1bHQuZWxlbWVudHM7XG4gICAgICAgIHRoaXMuY29tcG9uZW50VHlwZXMgPSB7XG4gICAgICAgICAgLi4udGhpcy5jb21wb25lbnRUeXBlcyxcbiAgICAgICAgICAuLi5yZXN1bHQuY29tcG9uZW50VHlwZXMsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMubW9kdWxlUmVmcy5wdXNoKHJlc3VsdC5tb2R1bGVSZWYpO1xuICAgICAgICByZXR1cm4gcmVzdWx0LmVsZW1lbnRzO1xuICAgICAgfSksXG4gICAgICB0YXAoKCkgPT4gdGhpcy5pc0luaXRpYWxpemVkJC5uZXh0KHRydWUpKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFwcGx5UGF0Y2gkKHBhdGNoOiBQYXRjaCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGxldCBvYnNlcnZhYmxlJDogT2JzZXJ2YWJsZTx2b2lkPiA9IG9mKHVuZGVmaW5lZCk7XG5cbiAgICBwYXRjaC5mb3JFYWNoKG9wZXJhdGlvbiA9PiB7XG4gICAgICBzd2l0Y2ggKG9wZXJhdGlvbi5vcCkge1xuICAgICAgICBjYXNlICdhZGQnOiB7XG4gICAgICAgICAgb2JzZXJ2YWJsZSQgPSBvYnNlcnZhYmxlJC5waXBlKHN3aXRjaE1hcCgoKSA9PiB0aGlzLmFkZEVsZW1lbnQkKG9wZXJhdGlvbikpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdyZW1vdmUnOiB7XG4gICAgICAgICAgb2JzZXJ2YWJsZSQgPSBvYnNlcnZhYmxlJC5waXBlKG1hcCgoKSA9PiB0aGlzLmRlbGV0ZUVsZW1lbnQob3BlcmF0aW9uKSkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3JlcGxhY2UnOiB7XG4gICAgICAgICAgb2JzZXJ2YWJsZSQgPSBvYnNlcnZhYmxlJC5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5kZWxldGVFbGVtZW50KHsgb3A6ICdyZW1vdmUnLCBwYXRoOiBvcGVyYXRpb24ucGF0aCB9KTtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWRkRWxlbWVudCQoeyBvcDogJ2FkZCcsIHBhdGg6IG9wZXJhdGlvbi5wYXRoLCB2YWx1ZTogb3BlcmF0aW9uLnZhbHVlIH0pO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIG9ic2VydmFibGUkID0gb2YoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBvYnNlcnZhYmxlJC5waXBlKHRhcCgoKSA9PiB0aGlzLnVwZGF0ZWQkLm5leHQoKSkpO1xuICB9XG5cbiAgcHVibGljIGdldENvbXBpbGVkRWxlbWVudCQocGF0aDogc3RyaW5nKTogT2JzZXJ2YWJsZTxFbGVtZW50TWV0YWRhdGEgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVkJC5waXBlKFxuICAgICAgc3RhcnRXaXRoKHVuZGVmaW5lZCksXG4gICAgICBtYXAoKCkgPT4gZmluZEVsZW1lbnRCeVBhdGgodGhpcy5hcHBsaWNhdGlvblRyZWUsIHBhdGgpKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBpbGF0aW9uU2VydmljZS5jbGVhcigpO1xuICAgIHRoaXMubW9kdWxlUmVmcy5mb3JFYWNoKG0gPT4gbS5kZXN0cm95KCkpO1xuICAgIHRoaXMubW9kdWxlUmVmcyA9IFtdO1xuICAgIHRoaXMuYXBwbGljYXRpb25UcmVlID0gW107XG4gICAgdGhpcy5jb21wb25lbnRUeXBlcyA9IHt9O1xuICAgIHRoaXMuaXNJbml0aWFsaXplZCQubmV4dChmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIGFkZEVsZW1lbnQkKG9wZXJhdGlvbjogQWRkT3BlcmF0aW9uKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY29tcGlsYXRpb25TZXJ2aWNlLmNvbXBpbGVFbGVtZW50JChvcGVyYXRpb24udmFsdWUpLnBpcGUoXG4gICAgICBtYXAocmVzdWx0ID0+IHtcbiAgICAgICAgdGhpcy5jb21wb25lbnRUeXBlcyA9IHtcbiAgICAgICAgICAuLi50aGlzLmNvbXBvbmVudFR5cGVzLFxuICAgICAgICAgIC4uLnJlc3VsdC5jb21wb25lbnRUeXBlcyxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5tb2R1bGVSZWZzLnB1c2gocmVzdWx0Lm1vZHVsZVJlZik7XG4gICAgICAgIGFwcGx5UGF0Y2godGhpcy5hcHBsaWNhdGlvblRyZWUsIFt7IC4uLm9wZXJhdGlvbiwgdmFsdWU6IHJlc3VsdC5lbGVtZW50c1swXSB9XSk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWxldGVFbGVtZW50KG9wZXJhdGlvbjogUmVtb3ZlT3BlcmF0aW9uKTogdm9pZCB7XG4gICAgYXBwbHlQYXRjaCh0aGlzLmFwcGxpY2F0aW9uVHJlZSwgW29wZXJhdGlvbl0pO1xuICB9XG59XG4iXX0=