@trudb/tru-common-lib 0.0.506 → 0.0.511

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.
@@ -9,16 +9,16 @@ export class TruDataChangeParser {
9
9
  dataChanged(change) {
10
10
  this.dataChanged$.next(change);
11
11
  }
12
- constructor(connection, dataContext, entity, tableName, getLatestResults, getLatestQuery, contextFilters, expandPaths, isLoaded, modelPropertyLookup) {
12
+ constructor(connection, dataContext, globalDataContext, entity, tableName, getLatestResults, getLatestQuery, contextFilters, expandPaths, isLoaded, modelPropertyLookup) {
13
13
  this.waitingEntities = [];
14
14
  this.dataChanged$ = new Subject();
15
15
  this.findEntityInCache = (change) => {
16
- var entityAccessor = this.dataContext.entityAccess(change.tableName);
16
+ var entityAccessor = this.dataContext.entityAccess();
17
17
  return entityAccessor.searchByRefCacheOnly(this.entity, parseInt(change.tableRef, 10), true);
18
18
  };
19
19
  this.findEntityInGlobalCache = (change) => {
20
- var entityAccessor = this.globalDataContext.entityAccess(change.tableName);
21
- return entityAccessor.getByRefCacheOnly(parseInt(change.tableRef, 10), true);
20
+ var entityAccessor = this.globalDataContext.entityAccess();
21
+ return entityAccessor.searchByRefCacheOnly(this.entity, parseInt(change.tableRef, 10), true);
22
22
  };
23
23
  this.checkIfDateTime = (newValue, currentValue, typeName) => {
24
24
  if (typeName === 'date-time' || typeName === 'date') {
@@ -98,17 +98,17 @@ export class TruDataChangeParser {
98
98
  });
99
99
  };
100
100
  this.entityFoundByQuery = (change) => {
101
- var entityAccessor = this.dataContext.entityAccess(this.tableName);
102
- var entities = entityAccessor.subsearch(this.getLatestQuery(), [change.tableRef]);
103
- if (!entities.length) {
104
- var entityAccessor = this.globalDataContext.entityAccess(this.tableName);
105
- entities = entityAccessor.subsearch(this.getLatestQuery(), [change.tableRef]);
101
+ var entityAccessor = this.dataContext.entityAccess();
102
+ var entities = entityAccessor.searchByRefArrayCacheOnly(this.entity, this.getLatestQuery(), [change.tableRef]);
103
+ if (entities !== null && !entities.length) {
104
+ var entityAccessor = this.globalDataContext.entityAccess();
105
+ entities = entityAccessor.searchByRefArrayCacheOnly(this.entity, this.getLatestQuery(), [change.tableRef]);
106
106
  }
107
- return entities.length;
107
+ return entities === null ? 0 : entities.length;
108
108
  };
109
109
  this.getEntityFromServer = (change) => {
110
- var entityAccessor = this.dataContext.entityAccess(this.tableName);
111
- var entitiy = entityAccessor.customSearchByRef(this.getLatestQuery(), change.tableRef);
110
+ var entityAccessor = this.dataContext.entityAccess();
111
+ var entitiy = entityAccessor.searchByRefWithQuery(this.entity, this.getLatestQuery(), change.tableRef);
112
112
  return entitiy;
113
113
  };
114
114
  this.getEntityFromResults = (results, change) => {
@@ -170,8 +170,9 @@ export class TruDataChangeParser {
170
170
  var entityAlreadyInResults = this.getEntityFromResults(results, change);
171
171
  if (this.entityFoundByQuery(change) && !entityAlreadyInResults.length && this.isLoaded()) {
172
172
  if (!localEntity) {
173
- var newEntity = this.dataContext.entityAccess(change.tableName).add(this.contextFilters);
174
- newEntity[change.tableName + 'Ref'] = change.tableRef;
173
+ var newEntity = this.dataContext.entityAccess().add(this.entity, this.contextFilters);
174
+ const pkeyName = change.tableName + 'Ref';
175
+ newEntity[pkeyName] = change.tableRef;
175
176
  this.applyPropertyChanges(change, newEntity);
176
177
  if (this.isLoaded()) {
177
178
  var results = this.getLatestResults();
@@ -195,8 +196,9 @@ export class TruDataChangeParser {
195
196
  }
196
197
  }
197
198
  else if (!globalEntity) {
198
- var newEntity = this.globalDataContext.entityAccess(change.tableName).add(this.contextFilters);
199
- newEntity[change.tableName + 'Ref'] = change.tableRef;
199
+ var newEntity = this.globalDataContext.entityAccess().add(this.entity, this.contextFilters);
200
+ const pkeyName = change.tableName + 'Ref';
201
+ newEntity[pkeyName] = change.tableRef;
200
202
  this.applyPropertyChanges(change, newEntity);
201
203
  reloadResults = true;
202
204
  }
@@ -211,7 +213,7 @@ export class TruDataChangeParser {
211
213
  });
212
214
  }
213
215
  else if (change.changeOperation === 'U' && change.tableName === this.tableName) {
214
- await this.getEntityFromServer(change).then((entity) => {
216
+ await this.getEntityFromServer(change).subscribe((entity) => {
215
217
  if (entity) {
216
218
  this.applyPropertyChanges(change, entity);
217
219
  var results = this.getLatestResults();
@@ -224,11 +226,13 @@ export class TruDataChangeParser {
224
226
  }
225
227
  else {
226
228
  if (change.changeOperation === 'I' && change.tableName === this.tableName) {
227
- var newEntity = this.globalDataContext.entityAccess(change.tableName).add(this.contextFilters);
228
- newEntity[change.tableName + 'Ref'] = change.tableRef;
229
+ var newEntity = this.globalDataContext.entityAccess().add(this.entity, this.contextFilters);
230
+ const pkeyName1 = change.tableName + 'Ref';
231
+ newEntity[pkeyName1] = change.tableRef;
229
232
  this.applyPropertyChanges(change, newEntity);
230
- newEntity = this.dataContext.entityAccess(change.tableName).add(this.contextFilters);
231
- newEntity[this.tableName + 'Ref'] = change.tableRef;
233
+ newEntity = this.dataContext.entityAccess().add(this.entity, this.contextFilters);
234
+ const pkeyName2 = change.tableName + 'Ref';
235
+ newEntity[pkeyName2] = change.tableRef;
232
236
  this.applyPropertyChanges(change, newEntity);
233
237
  if (this.entityFoundByQuery(change) && this.isLoaded()) {
234
238
  var results = this.getLatestResults();
@@ -237,11 +241,13 @@ export class TruDataChangeParser {
237
241
  }
238
242
  }
239
243
  else if (change.changeOperation === 'I') {
240
- var newEntity = this.globalDataContext.entityAccess(change.tableName).add(this.contextFilters);
241
- newEntity[change.tableName + 'Ref'] = change.tableRef;
244
+ var newEntity = this.globalDataContext.entityAccess().add(this.entity, this.contextFilters);
245
+ const pkeyName1 = change.tableName + 'Ref';
246
+ newEntity[pkeyName1] = change.tableRef;
242
247
  this.applyPropertyChanges(change, newEntity);
243
- newEntity = this.dataContext.entityAccess(change.tableName).add(this.contextFilters);
244
- newEntity[change.tableName + 'Ref'] = change.tableRef;
248
+ newEntity = this.dataContext.entityAccess().add(this.entity, this.contextFilters);
249
+ const pkeyName2 = change.tableName + 'Ref';
250
+ newEntity[pkeyName2] = change.tableRef;
245
251
  this.applyPropertyChanges(change, newEntity);
246
252
  }
247
253
  }
@@ -254,6 +260,7 @@ export class TruDataChangeParser {
254
260
  this.dataChanged(dataChangeArgs);
255
261
  };
256
262
  this.dataContext = dataContext;
263
+ this.globalDataContext = globalDataContext;
257
264
  this.entity = entity;
258
265
  this.tableName = tableName;
259
266
  this.getLatestResults = getLatestResults;
@@ -267,4 +274,4 @@ export class TruDataChangeParser {
267
274
  });
268
275
  }
269
276
  }
270
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWRhdGEtY2hhbmdlLXBhcnNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY2xhc3Nlcy90cnUtZGF0YS1jaGFuZ2UtcGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUVqRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUdsRCxNQUFNLE9BQU8sbUJBQW1CO0lBZ0I5QixhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBcUI7UUFDL0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELFlBQ0UsVUFBZSxFQUNmLFdBQTJCLEVBQzNCLE1BQTRCLEVBQzVCLFNBQWlCLEVBQ2pCLGdCQUFxQixFQUNyQixjQUFtQixFQUNuQixjQUFrQixFQUNsQixXQUEwQixFQUMxQixRQUF1QixFQUN2QixtQkFBMkM7UUF0QnJDLG9CQUFlLEdBQXlCLEVBQUUsQ0FBQztRQUUzQyxpQkFBWSxHQUEyQixJQUFJLE9BQU8sRUFBaUIsQ0FBQztRQXFDcEUsc0JBQWlCLEdBQUcsQ0FBQyxNQUFXLEVBQUUsRUFBRTtZQUMxQyxJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDckUsT0FBTyxjQUFjLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMs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SUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7b0JBQ2xHLGFBQWEsR0FBRyxJQUFJLENBQUM7WUFDekIsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLGNBQWMsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ3pDLGNBQWMsQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDO1lBQ3JDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFBO1FBOVFDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUN6QyxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLG1CQUFtQixDQUFDLE1BQU0sQ0FBQztRQUV4QyxVQUFVLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQVksRUFBRSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBa1FGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJ1RW50aXR5QmFzZSB9IGZyb20gXCIuLi9iYXNlLWNsYXNzZXMvdHJ1LWVudGl0eS1iYXNlXCI7XHJcbmltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xyXG5pbXBvcnQgeyBUcnVQcm9wZXJ0eUNvbmZpZ0Jhc2UgfSBmcm9tIFwiLi4vYmFzZS1jbGFzc2VzL3RydS1wcm9wZXJ0eS1jb25maWctYmFzZVwiO1xyXG5pbXBvcnQgeyBUcnVNb2RlbFByb3BlcnR5TG9va3VwIH0gZnJvbSBcIi4uL3NlcnZpY2VzL3RydS1tb2RlbC1wcm9wZXJ0eS1sb29rdXBcIjtcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IFRydURhdGFDaGFuZ2UgfSBmcm9tIFwiLi90cnUtZGF0YS1jaGFuZ2VcIjtcclxuaW1wb3J0IHsgVHJ1RGF0YUNvbnRleHQgfSBmcm9tIFwiLi4vc2VydmljZXMvdHJ1LWRhdGEtY29udGV4dFwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIFRydURhdGFDaGFuZ2VQYXJzZXIge1xyXG4gIHByaXZhdGUgZGF0YUNvbnRleHQ6IGFueTtcclxuICBwcml2YXRlIGVudGl0eTogYW55O1xyXG4gIHByaXZhdGUgdGFibGVOYW1lOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBnZXRMYXRlc3RSZXN1bHRzOiBhbnk7XHJcbiAgcHJpdmF0ZSBnZXRMYXRlc3RRdWVyeTogYW55O1xyXG4gIHByaXZhdGUgY29udGV4dEZpbHRlcnM6IFtdO1xyXG4gIHByaXZhdGUgZXhwYW5kUGF0aHM6IEFycmF5PHN0cmluZz47XHJcbiAgcHJpdmF0ZSBpc0xvYWRlZDogKCkgPT4gYm9vbGVhbjtcclxuICBwcml2YXRlIHR5cGVzOiBNYXA8c3RyaW5nLCBUcnVQcm9wZXJ0eUNvbmZpZ0Jhc2U+O1xyXG5cclxuICBwcml2YXRlIGdsb2JhbERhdGFDb250ZXh0OiBhbnk7XHJcbiAgcHJpdmF0ZSB3YWl0aW5nRW50aXRpZXM6IEFycmF5PFRydUVudGl0eUJhc2U+ID0gW107XHJcblxyXG4gIHByaXZhdGUgZGF0YUNoYW5nZWQkOiBTdWJqZWN0PFRydURhdGFDaGFuZ2U+ID0gbmV3IFN1YmplY3Q8VHJ1RGF0YUNoYW5nZT4oKTtcclxuXHJcbiAgb25EYXRhQ2hhbmdlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFDaGFuZ2VkJDtcclxuICB9XHJcblxyXG4gIGRhdGFDaGFuZ2VkKGNoYW5nZTogVHJ1RGF0YUNoYW5nZSkge1xyXG4gICAgdGhpcy5kYXRhQ2hhbmdlZCQubmV4dChjaGFuZ2UpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBjb25uZWN0aW9uOiBhbnksXHJcbiAgICBkYXRhQ29udGV4dDogVHJ1RGF0YUNvbnRleHQsXHJcbiAgICBlbnRpdHk6IHR5cGVvZiBUcnVFbnRpdHlCYXNlLFxyXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXHJcbiAgICBnZXRMYXRlc3RSZXN1bHRzOiBhbnksXHJcbiAgICBnZXRMYXRlc3RRdWVyeTogYW55LFxyXG4gICAgY29udGV4dEZpbHRlcnM6IFtdLFxyXG4gICAgZXhwYW5kUGF0aHM6IEFycmF5PHN0cmluZz4sXHJcbiAgICBpc0xvYWRlZDogKCkgPT4gYm9vbGVhbixcclxuICAgIG1vZGVsUHJvcGVydHlMb29rdXA6IFRydU1vZGVsUHJvcGVydHlMb29rdXBcclxuICApIHtcclxuICAgIHRoaXMuZGF0YUNvbnRleHQgPSBkYXRhQ29udGV4dDtcclxuICAgIHRoaXMuZW50aXR5ID0gZW50aXR5O1xyXG4gICAgdGhpcy50YWJsZU5hbWUgPSB0YWJsZU5hbWU7XHJcbiAgICB0aGlzLmdldExhdGVzdFJlc3VsdHMgPSBnZXRMYXRlc3RSZXN1bHRzO1xyXG4gICAgdGhpcy5nZXRMYXRlc3RRdWVyeSA9IGdldExhdGVzdFF1ZXJ5O1xyXG4gICAgdGhpcy5jb250ZXh0RmlsdGVycyA9IGNvbnRleHRGaWx0ZXJzO1xyXG4gICAgdGhpcy5leHBhbmRQYXRocyA9IGV4cGFuZFBhdGhzO1xyXG4gICAgdGhpcy5pc0xvYWRlZCA9IGlzTG9hZGVkO1xyXG4gICAgdGhpcy50eXBlcyA9IG1vZGVsUHJvcGVydHlMb29rdXAubG9va3VwO1xyXG5cclxuICAgIGNvbm5lY3Rpb24ub24oXCJjaGFuZ2VcIiwgKHBheWxvYWQ6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnVwZGF0ZShwYXlsb2FkKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaW5kRW50aXR5SW5DYWNoZSA9IChjaGFuZ2U6IGFueSkgPT4ge1xyXG4gICAgdmFyIGVudGl0eUFjY2Vzc29yID0gdGhpcy5kYXRhQ29udGV4dC5lbnRpdHlBY2Nlc3MoY2hhbmdlLnRhYmxlTmFtZSk7XHJcbiAgICByZXR1cm4gZW50aXR5QWNjZXNzb3Iuc2VhcmNoQnlSZWZDYWNoZU9ubHkodGhpcy5lbnRpdHksIHBhcnNlSW50KGNoYW5nZS50YWJsZVJlZiwgMTApLCB0cnVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmluZEVudGl0eUluR2xvYmFsQ2FjaGUgPSAoY2hhbmdlOiBhbnkpID0+IHtcclxuICAgIHZhciBlbnRpdHlBY2Nlc3NvciA9IHRoaXMuZ2xvYmFsRGF0YUNvbnRleHQuZW50aXR5QWNjZXNzKGNoYW5nZS50YWJsZU5hbWUpO1xyXG4gICAgcmV0dXJuIGVudGl0eUFjY2Vzc29yLmdldEJ5UmVmQ2FjaGVPbmx5KHBhcnNlSW50KGNoYW5nZS50YWJsZVJlZiwgMTApLCB0cnVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2hlY2tJZkRhdGVUaW1lID0gKG5ld1ZhbHVlOiBhbnksIGN1cnJlbnRWYWx1ZTogYW55LCB0eXBlTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkKSA9PiB7XHJcbiAgICBpZiAodHlwZU5hbWUgPT09ICdkYXRlLXRpbWUnIHx8IHR5cGVOYW1lID09PSAnZGF0ZScpIHtcclxuICAgICAgaWYgKG1vbWVudChuZXdWYWx1ZSwgXCJZWVlZLU1NLUREIEhIOm1tOnNzLnNzc3Nzc3NcIiwgdHJ1ZSkuaXNWYWxpZCgpKVxyXG4gICAgICAgIHJldHVybiBtb21lbnQobW9tZW50LnV0YyhuZXdWYWx1ZSkudG9EYXRlKCkpLmZvcm1hdCgnTU0vREQvWVlZWSBoaDptbSBBJyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3VmFsdWVcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFzUHJvcGVydHlBbHJlYWR5QmVlbk1vZGlmaWVkID0gKHByb3BlcnR5TmFtZTogc3RyaW5nLCBlbnRpdHk6IGFueSkgPT4ge1xyXG4gICAgcmV0dXJuIGVudGl0eS5lbnRpdHlBc3BlY3Qub3JpZ2luYWxWYWx1ZXMuaGFzT3duUHJvcGVydHkocHJvcGVydHlOYW1lKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXBwbHlQcm9wZXJ0eUNoYW5nZXMgPSAoY2hhbmdlOiBhbnksIGVudGl0eTogYW55KSA9PiB7XHJcbiAgICB2YXIgc3RhdGVCZWZvcmVQcm9wZXJ0eUNoYW5nZSA9IGVudGl0eS5lbnRpdHlBc3BlY3QuZW50aXR5U3RhdGU7XHJcbiAgICB2YXIgb3JpZ2luYWxWYWx1ZXMgPSBlbnRpdHkuZW50aXR5QXNwZWN0Lm9yaWdpbmFsVmFsdWVzO1xyXG5cclxuICAgIGVudGl0eVsnRGF0YV9Ob3RpZmljYXRpb24nXSA9IHRydWU7XHJcblxyXG4gICAgT2JqZWN0LmtleXMoY2hhbmdlLnByb3BlcnRpZXMpLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgICB2YXIgZW50aXR5VHlwZSA9IHRoaXMudHlwZXMuZ2V0KGNoYW5nZS50YWJsZU5hbWUgKyAnLicgKyBrZXkpO1xyXG4gICAgICBpZiAoIWVudGl0eVR5cGUpIHtcclxuICAgICAgICBlbnRpdHlUeXBlID0gbmV3IFRydVByb3BlcnR5Q29uZmlnQmFzZSgpO1xyXG4gICAgICAgIGVudGl0eVR5cGUudHlwZU5hbWUgPSAndGV4dC1ib3VuZGVkJztcclxuICAgICAgfVxyXG4gICAgICB2YXIgcHJvcGVydHlNb2RpZmllZCA9IHRoaXMuaGFzUHJvcGVydHlBbHJlYWR5QmVlbk1vZGlmaWVkKGtleSwgZW50aXR5KVxyXG4gICAgICBpZiAoa2V5ID09PSAnVXBkYXRlZCcgfHwga2V5ID09PSAnVXBkYXRlZFJlZicpIHtcclxuICAgICAgICBlbnRpdHlba2V5XSA9IHRoaXMuY2hlY2tJZkRhdGVUaW1lKGNoYW5nZS5wcm9wZXJ0aWVzW2tleV0sIGVudGl0eVtrZXldLCBlbnRpdHlUeXBlLnR5cGVOYW1lKTtcclxuICAgICAgICBpZiAob3JpZ2luYWxWYWx1ZXMuaGFzT3duUHJvcGVydHkoa2V5KSlcclxuICAgICAgICAgIGRlbGV0ZSBvcmlnaW5hbFZhbHVlc1trZXldO1xyXG4gICAgICB9IGVsc2UgaWYgKGVudGl0eVtrZXldICE9PSB0aGlzLmNoZWNrSWZEYXRlVGltZShjaGFuZ2UucHJvcGVydGllc1trZXldLCBlbnRpdHlba2V5XSwgZW50aXR5VHlwZS50eXBlTmFtZSkpIHtcclxuICAgICAgICBpZiAoIXByb3BlcnR5TW9kaWZpZWQpIHtcclxuICAgICAgICAgIGVudGl0eVtrZXldID0gdGhpcy5jaGVja0lmRGF0ZVRpbWUoY2hhbmdlLnByb3BlcnRpZXNba2V5XSwgZW50aXR5W2tleV0sIGVudGl0eVR5cGUudHlwZU5hbWUpO1xyXG4gICAgICAgICAgZGVsZXRlIG9yaWdpbmFsVmFsdWVzW2tleV07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHZhciBtZXJnZURhdGEgPSBKU09OLnBhcnNlKGVudGl0eS5NZXJnZV9EYXRhKTtcclxuICAgICAgICAgIGlmIChtZXJnZURhdGEpIHtcclxuICAgICAgICAgICAgbWVyZ2VEYXRhW2tleV0gPSB7XHJcbiAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiB0aGlzLmNoZWNrSWZEYXRlVGltZShjaGFuZ2UucHJvcGVydGllc1trZXldLCBlbnRpdHlba2V5XSwgZW50aXR5VHlwZS50eXBlTmFtZSksXHJcbiAgICAgICAgICAgICAgXCJtb2RpZmllZEJ5XCI6IGNoYW5nZS5tb2RpZmllZEJ5LFxyXG4gICAgICAgICAgICAgIFwiaGlkXCI6IGNoYW5nZS5wcm9wZXJ0aWVzW2tleSArICdISUQnXVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbWVyZ2VEYXRhID0ge307XHJcbiAgICAgICAgICAgIG1lcmdlRGF0YVtrZXldID0ge1xyXG4gICAgICAgICAgICAgIFwidmFsdWVcIjogdGhpcy5jaGVja0lmRGF0ZVRpbWUoY2hhbmdlLnByb3BlcnRpZXNba2V5XSwgZW50aXR5W2tleV0sIGVudGl0eVR5cGUudHlwZU5hbWUpLFxyXG4gICAgICAgICAgICAgIFwibW9kaWZpZWRCeVwiOiBjaGFuZ2UubW9kaWZpZWRCeSxcclxuICAgICAgICAgICAgICBcImhpZFwiOiBjaGFuZ2UucHJvcGVydGllc1trZXkgKyAnSElEJ11cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVudGl0eS5NZXJnZV9EYXRhID0gSlNPTi5zdHJpbmdpZnkobWVyZ2VEYXRhKTtcclxuICAgICAgICAgIGVudGl0eS5lbnRpdHlBc3BlY3QudmFsaWRhdGVQcm9wZXJ0eShrZXkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiAob3JpZ2luYWxWYWx1ZXNba2V5XSkgIT09ICd1bmRlZmluZWQnKVxyXG4gICAgICAgICAgb3JpZ2luYWxWYWx1ZXNba2V5XSA9IHRoaXMuY2hlY2tJZkRhdGVUaW1lKGNoYW5nZS5wcm9wZXJ0aWVzW2tleV0sIGVudGl0eVtrZXldLCBlbnRpdHlUeXBlLnR5cGVOYW1lKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAob3JpZ2luYWxWYWx1ZXMuaGFzT3duUHJvcGVydHkoa2V5KSlcclxuICAgICAgICAgIGRlbGV0ZSBvcmlnaW5hbFZhbHVlc1trZXldO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBlbnRpdHlbJ3Jvd3ZlciddID0gY2hhbmdlLnJvd3ZlcjtcclxuICAgIGRlbGV0ZSBvcmlnaW5hbFZhbHVlc1sncm93dmVyJ107XHJcblxyXG4gICAgaWYgKHN0YXRlQmVmb3JlUHJvcGVydHlDaGFuZ2UubmFtZSAhPT0gXCJNb2RpZmllZFwiIHx8IChPYmplY3Qua2V5cyhvcmlnaW5hbFZhbHVlcykubGVuZ3RoID09PSAwICYmIG9yaWdpbmFsVmFsdWVzLmNvbnN0cnVjdG9yID09PSBPYmplY3QpKSB7XHJcbiAgICAgIGlmICghZW50aXR5LmVudGl0eUFzcGVjdC5pc0JlaW5nU2F2ZWQpIHtcclxuICAgICAgICBlbnRpdHkuZW50aXR5QXNwZWN0LnNldFVuY2hhbmdlZCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMud2FpdGluZ0VudGl0aWVzLnB1c2goZW50aXR5KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGRlbGV0ZSBlbnRpdHlbJ0RhdGFfTm90aWZpY2F0aW9uJ107XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFdhaXRpbmdFbnRpdGllc1RvVW5jaGFuZ2VkID0gKCkgPT4ge1xyXG4gICAgdGhpcy53YWl0aW5nRW50aXRpZXMuZm9yRWFjaCgoZW50aXR5OiBhbnkpID0+IHtcclxuICAgICAgaWYgKGVudGl0eSAmJiBlbnRpdHkuZW50aXR5QXNwZWN0KVxyXG4gICAgICAgIGVudGl0eS5lbnRpdHlBc3BlY3Quc2V0VW5jaGFuZ2VkKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZW50aXR5Rm91bmRCeVF1ZXJ5ID0gKGNoYW5nZTogYW55KSA9PiB7XHJcbiAgICB2YXIgZW50aXR5QWNjZXNzb3IgPSB0aGlzLmRhdGFDb250ZXh0LmVudGl0eUFjY2Vzcyh0aGlzLnRhYmxlTmFtZSk7XHJcbiAgICB2YXIgZW50aXRpZXMgPSBlbnRpdHlBY2Nlc3Nvci5zdWJzZWFyY2godGhpcy5nZXRMYXRlc3RRdWVyeSgpLCBbY2hhbmdlLnRhYmxlUmVmXSk7XHJcblxyXG4gICAgaWYgKCFlbnRpdGllcy5sZW5ndGgpIHtcclxuICAgICAgdmFyIGVudGl0eUFjY2Vzc29yID0gdGhpcy5nbG9iYWxEYXRhQ29udGV4dC5lbnRpdHlBY2Nlc3ModGhpcy50YWJsZU5hbWUpO1xyXG4gICAgICBlbnRpdGllcyA9IGVudGl0eUFjY2Vzc29yLnN1YnNlYXJjaCh0aGlzLmdldExhdGVzdFF1ZXJ5KCksIFtjaGFuZ2UudGFibGVSZWZdKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZW50aXRpZXMubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRFbnRpdHlGcm9tU2VydmVyID0gKGNoYW5nZTogYW55KSA9PiB7XHJcbiAgICB2YXIgZW50aXR5QWNjZXNzb3IgPSB0aGlzLmRhdGFDb250ZXh0LmVudGl0eUFjY2Vzcyh0aGlzLnRhYmxlTmFtZSk7XHJcbiAgICB2YXIgZW50aXRpeSA9IGVudGl0eUFjY2Vzc29yLmN1c3RvbVNlYXJjaEJ5UmVmKHRoaXMuZ2V0TGF0ZXN0UXVlcnkoKSwgY2hhbmdlLnRhYmxlUmVmKTtcclxuICAgIHJldHVybiBlbnRpdGl5O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRFbnRpdHlGcm9tUmVzdWx0cyA9IChyZXN1bHRzOiBhbnksIGNoYW5nZTogYW55KSA9PiB7XHJcbiAgICByZXR1cm4gcmVzdWx0cy5maWx0ZXIoKGU6IGFueSkgPT4geyByZXR1cm4gZS5SZWYgPT09IGNoYW5nZS50YWJsZVJlZiB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNTYXZpbmcgPSBhc3luYyAoKSA9PiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICB2YXIgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgLy9pZiAoISRyb290U2NvcGVbJ2lzU2F2aW5nJ10pIHtcclxuICAgICAgICAvLyAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7XHJcbiAgICAgICAgLy8gIHJlc29sdmUoKTtcclxuICAgICAgICAvL31cclxuICAgICAgfSwgMTAwMClcclxuICAgIH0pXHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGUgPSBhc3luYyAocGF5bG9hZDogYW55KSA9PiB7XHJcbiAgICAvL2F3YWl0IHRoaXMuaXNTYXZpbmcoKTtcclxuXHJcbiAgICB2YXIgcmVsb2FkUmVzdWx0cyA9IGZhbHNlO1xyXG4gICAgcGF5bG9hZC5jaGFuZ2VzLmZvckVhY2goYXN5bmMgKGNoYW5nZTogYW55KSA9PiB7XHJcbiAgICAgIHZhciBmb3VuZEVudGl0aWVzID0gW107XHJcbiAgICAgIHZhciBsb2NhbEVudGl0eSA9IHRoaXMuZmluZEVudGl0eUluQ2FjaGUoY2hhbmdlKTtcclxuICAgICAgdmFyIGdsb2JhbEVudGl0eSA9IHRoaXMuZmluZEVudGl0eUluR2xvYmFsQ2FjaGUoY2hhbmdlKTtcclxuICAgICAgaWYgKGxvY2FsRW50aXR5KVxyXG4gICAgICAgIGZvdW5kRW50aXRpZXMucHVzaChsb2NhbEVudGl0eSk7XHJcbiAgICAgIGlmIChnbG9iYWxFbnRpdHkpXHJcbiAgICAgICAgZm91bmRFbnRpdGllcy5wdXNoKGdsb2JhbEVudGl0eSk7XHJcblxyXG4gICAgICBpZiAoZm91bmRFbnRpdGllcy5sZW5ndGgpIHtcclxuICAgICAgICBmb3VuZEVudGl0aWVzLmZvckVhY2goYXN5bmMgKGVudGl0eTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoY2hhbmdlLnRhYmxlTmFtZSA9PT0gdGhpcy50YWJsZU5hbWUpIHtcclxuXHJcbiAgICAgICAgICAgIGlmIChjaGFuZ2UuY2hhbmdlT3BlcmF0aW9uID09PSAnVScpIHtcclxuICAgICAgICAgICAgICB0aGlzLmFwcGx5UHJvcGVydHlDaGFuZ2VzKGNoYW5nZSwgZW50aXR5KTtcclxuXHJcbiAgICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSB0aGlzLmdldExhdGVzdFJlc3VsdHMoKTtcclxuICAgICAgICAgICAgICBpZiAodGhpcy5lbnRpdHlGb3VuZEJ5UXVlcnkoY2hhbmdlKSkge1xyXG4gICAgICAgICAgICAgICAgdmFyIGVudGl0eUFscmVhZHlJblJlc3VsdHMgPSB0aGlzLmdldEVudGl0eUZyb21SZXN1bHRzKHJlc3VsdHMsIGNoYW5nZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWVudGl0eUFscmVhZHlJblJlc3VsdHMubGVuZ3RoICYmIHRoaXMuaXNMb2FkZWQoKSkge1xyXG4gICAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2goZW50aXR5KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJlbG9hZFJlc3VsdHMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgZW50aXR5VG9SZW1vdmUgPSB0aGlzLmdldEVudGl0eUZyb21SZXN1bHRzKHJlc3VsdHMsIGNoYW5nZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoZW50aXR5VG9SZW1vdmUubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgIHJlc3VsdHMuc3BsaWNlKHJlc3VsdHMuaW5kZXhPZihlbnRpdHlUb1JlbW92ZVswXSksIDEpO1xyXG4gICAgICAgICAgICAgICAgICByZWxvYWRSZXN1bHRzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlLmNoYW5nZU9wZXJhdGlvbiA9PT0gJ0QnKSB7XHJcbiAgICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSB0aGlzLmdldExhdGVzdFJlc3VsdHMoKTtcclxuICAgICAgICAgICAgICB2YXIgZW50aXR5VG9EZWxldGUgPSB0aGlzLmdldEVudGl0eUZyb21SZXN1bHRzKHJlc3VsdHMsIGNoYW5nZSk7XHJcbiAgICAgICAgICAgICAgaWYgKGVudGl0eVRvRGVsZXRlLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgZW50aXR5VG9EZWxldGVbMF0uZW50aXR5QXNwZWN0LnNldERldGFjaGVkKCk7XHJcbiAgICAgICAgICAgICAgICByZXN1bHRzLnNwbGljZShyZXN1bHRzLmluZGV4T2YoZW50aXR5VG9EZWxldGVbMF0pLCAxKTtcclxuICAgICAgICAgICAgICAgIHJlbG9hZFJlc3VsdHMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2UuY2hhbmdlT3BlcmF0aW9uID09PSAnSScpIHtcclxuICAgICAgICAgICAgICB2YXIgcmVzdWx0cyA9IHRoaXMuZ2V0TGF0ZXN0UmVzdWx0cygpO1xyXG4gICAgICAgICAgICAgIHZhciBlbnRpdHlBbHJlYWR5SW5SZXN1bHRzID0gdGhpcy5nZXRFbnRpdHlGcm9tUmVzdWx0cyhyZXN1bHRzLCBjaGFuZ2UpO1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLmVudGl0eUZvdW5kQnlRdWVyeShjaGFuZ2UpICYmICFlbnRpdHlBbHJlYWR5SW5SZXN1bHRzLmxlbmd0aCAmJiB0aGlzLmlzTG9hZGVkKCkpIHtcclxuICAgICAgICAgICAgICAgIGlmICghbG9jYWxFbnRpdHkpIHtcclxuICAgICAgICAgICAgICAgICAgdmFyIG5ld0VudGl0eSA9IHRoaXMuZGF0YUNvbnRleHQuZW50aXR5QWNjZXNzKGNoYW5nZS50YWJsZU5hbWUpLmFkZCh0aGlzLmNvbnRleHRGaWx0ZXJzKTtcclxuICAgICAgICAgICAgICAgICAgbmV3RW50aXR5W2NoYW5nZS50YWJsZU5hbWUgKyAnUmVmJ10gPSBjaGFuZ2UudGFibGVSZWY7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuYXBwbHlQcm9wZXJ0eUNoYW5nZXMoY2hhbmdlLCBuZXdFbnRpdHkpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNMb2FkZWQoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciByZXN1bHRzID0gdGhpcy5nZXRMYXRlc3RSZXN1bHRzKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKG5ld0VudGl0eSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVsb2FkUmVzdWx0cyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZW50aXR5ID09PSBsb2NhbEVudGl0eSkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmFwcGx5UHJvcGVydHlDaGFuZ2VzKGNoYW5nZSwgZW50aXR5KTtcclxuICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSB0aGlzLmdldExhdGVzdFJlc3VsdHMoKTtcclxuICAgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKGVudGl0eSk7XHJcbiAgICAgICAgICAgICAgICAgIHJlbG9hZFJlc3VsdHMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuZW50aXR5Rm91bmRCeVF1ZXJ5KGNoYW5nZSkgJiYgZW50aXR5QWxyZWFkeUluUmVzdWx0cy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIHZhciByZXN1bHRzID0gdGhpcy5nZXRMYXRlc3RSZXN1bHRzKCk7XHJcbiAgICAgICAgICAgICAgICB2YXIgZW50aXR5VG9EZWxldGUgPSB0aGlzLmdldEVudGl0eUZyb21SZXN1bHRzKHJlc3VsdHMsIGNoYW5nZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoZW50aXR5VG9EZWxldGUubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgIHJlc3VsdHMuc3BsaWNlKHJlc3VsdHMuaW5kZXhPZihlbnRpdHlBbHJlYWR5SW5SZXN1bHRzWzBdKSwgMSk7XHJcbiAgICAgICAgICAgICAgICAgIHJlbG9hZFJlc3VsdHMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoIWdsb2JhbEVudGl0eSkge1xyXG4gICAgICAgICAgICAgICAgdmFyIG5ld0VudGl0eSA9IHRoaXMuZ2xvYmFsRGF0YUNvbnRleHQuZW50aXR5QWNjZXNzKGNoYW5nZS50YWJsZU5hbWUpLmFkZCh0aGlzLmNvbnRleHRGaWx0ZXJzKTtcclxuICAgICAgICAgICAgICAgIG5ld0VudGl0eVtjaGFuZ2UudGFibGVOYW1lICsgJ1JlZiddID0gY2hhbmdlLnRhYmxlUmVmO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hcHBseVByb3BlcnR5Q2hhbmdlcyhjaGFuZ2UsIG5ld0VudGl0eSk7XHJcblxyXG4gICAgICAgICAgICAgICAgcmVsb2FkUmVzdWx0cyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJlbG9hZFJlc3VsdHMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2UuY2hhbmdlT3BlcmF0aW9uICE9PSAnRCcpIHtcclxuICAgICAgICAgICAgdGhpcy5hcHBseVByb3BlcnR5Q2hhbmdlcyhjaGFuZ2UsIGVudGl0eSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoY2hhbmdlLmNoYW5nZU9wZXJhdGlvbiA9PT0gJ1UnICYmIGNoYW5nZS50YWJsZU5hbWUgPT09IHRoaXMudGFibGVOYW1lKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5nZXRFbnRpdHlGcm9tU2VydmVyKGNoYW5nZSkudGhlbigoZW50aXR5OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChlbnRpdHkpIHtcclxuICAgICAgICAgICAgdGhpcy5hcHBseVByb3BlcnR5Q2hhbmdlcyhjaGFuZ2UsIGVudGl0eSk7XHJcblxyXG4gICAgICAgICAgICB2YXIgcmVzdWx0cyA9IHRoaXMuZ2V0TGF0ZXN0UmVzdWx0cygpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5lbnRpdHlGb3VuZEJ5UXVlcnkoY2hhbmdlKSAmJiB0aGlzLmlzTG9hZGVkKCkpIHtcclxuICAgICAgICAgICAgICByZXN1bHRzLnB1c2goZW50aXR5KTtcclxuICAgICAgICAgICAgICByZWxvYWRSZXN1bHRzID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChjaGFuZ2UuY2hhbmdlT3BlcmF0aW9uID09PSAnSScgJiYgY2hhbmdlLnRhYmxlTmFtZSA9PT0gdGhpcy50YWJsZU5hbWUpIHtcclxuICAgICAgICAgIHZhciBuZXdFbnRpdHkgPSB0aGlzLmdsb2JhbERhdGFDb250ZXh0LmVudGl0eUFjY2VzcyhjaGFuZ2UudGFibGVOYW1lKS5hZGQodGhpcy5jb250ZXh0RmlsdGVycyk7XHJcbiAgICAgICAgICBuZXdFbnRpdHlbY2hhbmdlLnRhYmxlTmFtZSArICdSZWYnXSA9IGNoYW5nZS50YWJsZVJlZjtcclxuICAgICAgICAgIHRoaXMuYXBwbHlQcm9wZXJ0eUNoYW5nZXMoY2hhbmdlLCBuZXdFbnRpdHkpO1xyXG5cclxuICAgICAgICAgIG5ld0VudGl0eSA9IHRoaXMuZGF0YUNvbnRleHQuZW50aXR5QWNjZXNzKGNoYW5nZS50YWJsZU5hbWUpLmFkZCh0aGlzLmNvbnRleHRGaWx0ZXJzKTtcclxuICAgICAgICAgIG5ld0VudGl0eVt0aGlzLnRhYmxlTmFtZSArICdSZWYnXSA9IGNoYW5nZS50YWJsZVJlZjtcclxuICAgICAgICAgIHRoaXMuYXBwbHlQcm9wZXJ0eUNoYW5nZXMoY2hhbmdlLCBuZXdFbnRpdHkpO1xyXG5cclxuICAgICAgICAgIGlmICh0aGlzLmVudGl0eUZvdW5kQnlRdWVyeShjaGFuZ2UpICYmIHRoaXMuaXNMb2FkZWQoKSkge1xyXG4gICAgICAgICAgICB2YXIgcmVzdWx0cyA9IHRoaXMuZ2V0TGF0ZXN0UmVzdWx0cygpO1xyXG4gICAgICAgICAgICByZXN1bHRzLnB1c2gobmV3RW50aXR5KTtcclxuICAgICAgICAgICAgcmVsb2FkUmVzdWx0cyA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlLmNoYW5nZU9wZXJhdGlvbiA9PT0gJ0knKSB7XHJcbiAgICAgICAgICB2YXIgbmV3RW50aXR5ID0gdGhpcy5nbG9iYWxEYXRhQ29udGV4dC5lbnRpdHlBY2Nlc3MoY2hhbmdlLnRhYmxlTmFtZSkuYWRkKHRoaXMuY29udGV4dEZpbHRlcnMpO1xyXG4gICAgICAgICAgbmV3RW50aXR5W2NoYW5nZS50YWJsZU5hbWUgKyAnUmVmJ10gPSBjaGFuZ2UudGFibGVSZWY7XHJcbiAgICAgICAgICB0aGlzLmFwcGx5UHJvcGVydHlDaGFuZ2VzKGNoYW5nZSwgbmV3RW50aXR5KTtcclxuXHJcbiAgICAgICAgICBuZXdFbnRpdHkgPSB0aGlzLmRhdGFDb250ZXh0LmVudGl0eUFjY2VzcyhjaGFuZ2UudGFibGVOYW1lKS5hZGQodGhpcy5jb250ZXh0RmlsdGVycyk7XHJcbiAgICAgICAgICBuZXdFbnRpdHlbY2hhbmdlLnRhYmxlTmFtZSArICdSZWYnXSA9IGNoYW5nZS50YWJsZVJlZjtcclxuICAgICAgICAgIHRoaXMuYXBwbHlQcm9wZXJ0eUNoYW5nZXMoY2hhbmdlLCBuZXdFbnRpdHkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMuZXhwYW5kUGF0aHMgJiYgdGhpcy5leHBhbmRQYXRocy5sZW5ndGggJiYgdGhpcy5leHBhbmRQYXRocy5pbmNsdWRlcygnbycgKyBjaGFuZ2UudGFibGVOYW1lKSlcclxuICAgICAgICByZWxvYWRSZXN1bHRzID0gdHJ1ZTtcclxuICAgIH0pO1xyXG5cclxuICAgIGxldCBkYXRhQ2hhbmdlQXJncyA9IG5ldyBUcnVEYXRhQ2hhbmdlKCk7XHJcbiAgICBkYXRhQ2hhbmdlQXJncy5kYXRhQ2hhbmdlcyA9IHBheWxvYWQ7XHJcbiAgICBkYXRhQ2hhbmdlQXJncy5yZWxvYWQgPSByZWxvYWRSZXN1bHRzO1xyXG4gICAgdGhpcy5kYXRhQ2hhbmdlZChkYXRhQ2hhbmdlQXJncyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
277
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWRhdGEtY2hhbmdlLXBhcnNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY2xhc3Nlcy90cnUtZGF0YS1jaGFuZ2UtcGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUVqRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVsRCxNQUFNLE9BQU8sbUJBQW1CO0lBZ0I5QixhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBcUI7UUFDL0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELFlBQ0UsVUFBZSxFQUNmLFdBQTJCLEVBQzNCLGlCQUF3QyxFQUN4QyxNQUE0QixFQUM1QixTQUFpQixFQUNqQixnQkFBcUIsRUFDckIsY0FBbUIsRUFDbkIsY0FBa0IsRUFDbEIsV0FBMEIsRUFDMUIsUUFBdUIsRUFDdkIsbUJBQTJDO1FBdkJyQyxvQkFBZSxHQUF5QixFQUFFLENBQUM7UUFFM0MsaUJBQVksR0FBMkIsSUFBSSxPQUFPLEVBQWlCLENBQUM7UUF1Q3BFLHNCQUFpQixHQUFHLENBQUMsTUFBVyxFQUFFLEVBQUU7WUFDMUMsSUFBSSxjQUFjLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNyRCxPQUFPLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElB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bUJBQW1CLENBQUMsTUFBTSxDQUFDO1FBRXhDLFVBQVUsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBWSxFQUFFLEVBQUU7WUFDdkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0E4UUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcnVFbnRpdHlCYXNlIH0gZnJvbSBcIi4uL2Jhc2UtY2xhc3Nlcy90cnUtZW50aXR5LWJhc2VcIjtcclxuaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XHJcbmltcG9ydCB7IFRydVByb3BlcnR5Q29uZmlnQmFzZSB9IGZyb20gXCIuLi9iYXNlLWNsYXNzZXMvdHJ1LXByb3BlcnR5LWNvbmZpZy1iYXNlXCI7XHJcbmltcG9ydCB7IFRydU1vZGVsUHJvcGVydHlMb29rdXAgfSBmcm9tIFwiLi4vc2VydmljZXMvdHJ1LW1vZGVsLXByb3BlcnR5LWxvb2t1cFwiO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgVHJ1RGF0YUNvbnRleHQgfSBmcm9tIFwiLi4vc2VydmljZXMvdHJ1LWRhdGEtY29udGV4dFwiO1xyXG5pbXBvcnQgeyBUcnVEYXRhQ2hhbmdlIH0gZnJvbSBcIi4vdHJ1LWRhdGEtY2hhbmdlXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgVHJ1RGF0YUNoYW5nZVBhcnNlciB7XHJcbiAgcHJpdmF0ZSBkYXRhQ29udGV4dDogVHJ1RGF0YUNvbnRleHQ7XHJcbiAgcHJpdmF0ZSBlbnRpdHk6IGFueTtcclxuICBwcml2YXRlIHRhYmxlTmFtZTogc3RyaW5nO1xyXG4gIHByaXZhdGUgZ2V0TGF0ZXN0UmVzdWx0czogYW55O1xyXG4gIHByaXZhdGUgZ2V0TGF0ZXN0UXVlcnk6IGFueTtcclxuICBwcml2YXRlIGNvbnRleHRGaWx0ZXJzOiBbXTtcclxuICBwcml2YXRlIGV4cGFuZFBhdGhzOiBBcnJheTxzdHJpbmc+O1xyXG4gIHByaXZhdGUgaXNMb2FkZWQ6ICgpID0+IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSB0eXBlczogTWFwPHN0cmluZywgVHJ1UHJvcGVydHlDb25maWdCYXNlPjtcclxuXHJcbiAgcHJpdmF0ZSBnbG9iYWxEYXRhQ29udGV4dDogVHJ1RGF0YUNvbnRleHQgfCBudWxsO1xyXG4gIHByaXZhdGUgd2FpdGluZ0VudGl0aWVzOiBBcnJheTxUcnVFbnRpdHlCYXNlPiA9IFtdO1xyXG5cclxuICBwcml2YXRlIGRhdGFDaGFuZ2VkJDogU3ViamVjdDxUcnVEYXRhQ2hhbmdlPiA9IG5ldyBTdWJqZWN0PFRydURhdGFDaGFuZ2U+KCk7XHJcblxyXG4gIG9uRGF0YUNoYW5nZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhQ2hhbmdlZCQ7XHJcbiAgfVxyXG5cclxuICBkYXRhQ2hhbmdlZChjaGFuZ2U6IFRydURhdGFDaGFuZ2UpIHtcclxuICAgIHRoaXMuZGF0YUNoYW5nZWQkLm5leHQoY2hhbmdlKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgY29ubmVjdGlvbjogYW55LFxyXG4gICAgZGF0YUNvbnRleHQ6IFRydURhdGFDb250ZXh0LFxyXG4gICAgZ2xvYmFsRGF0YUNvbnRleHQ6IFRydURhdGFDb250ZXh0IHwgbnVsbCxcclxuICAgIGVudGl0eTogdHlwZW9mIFRydUVudGl0eUJhc2UsXHJcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcclxuICAgIGdldExhdGVzdFJlc3VsdHM6IGFueSxcclxuICAgIGdldExhdGVzdFF1ZXJ5OiBhbnksXHJcbiAgICBjb250ZXh0RmlsdGVyczogW10sXHJcbiAgICBleHBhbmRQYXRoczogQXJyYXk8c3RyaW5nPixcclxuICAgIGlzTG9hZGVkOiAoKSA9PiBib29sZWFuLFxyXG4gICAgbW9kZWxQcm9wZXJ0eUxvb2t1cDogVHJ1TW9kZWxQcm9wZXJ0eUxvb2t1cFxyXG4gICkge1xyXG4gICAgdGhpcy5kYXRhQ29udGV4dCA9IGRhdGFDb250ZXh0O1xyXG4gICAgdGhpcy5nbG9iYWxEYXRhQ29udGV4dCA9IGdsb2JhbERhdGFDb250ZXh0O1xyXG4gICAgdGhpcy5lbnRpdHkgPSBlbnRpdHk7XHJcbiAgICB0aGlzLnRhYmxlTmFtZSA9IHRhYmxlTmFtZTtcclxuICAgIHRoaXMuZ2V0TGF0ZXN0UmVzdWx0cyA9IGdldExhdGVzdFJlc3VsdHM7XHJcbiAgICB0aGlzLmdldExhdGVzdFF1ZXJ5ID0gZ2V0TGF0ZXN0UXVlcnk7XHJcbiAgICB0aGlzLmNvbnRleHRGaWx0ZXJzID0gY29udGV4dEZpbHRlcnM7XHJcbiAgICB0aGlzLmV4cGFuZFBhdGhzID0gZXhwYW5kUGF0aHM7XHJcbiAgICB0aGlzLmlzTG9hZGVkID0gaXNMb2FkZWQ7XHJcbiAgICB0aGlzLnR5cGVzID0gbW9kZWxQcm9wZXJ0eUxvb2t1cC5sb29rdXA7XHJcblxyXG4gICAgY29ubmVjdGlvbi5vbihcImNoYW5nZVwiLCAocGF5bG9hZDogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMudXBkYXRlKHBheWxvYWQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmRFbnRpdHlJbkNhY2hlID0gKGNoYW5nZTogYW55KSA9PiB7XHJcbiAgICB2YXIgZW50aXR5QWNjZXNzb3IgPSB0aGlzLmRhdGFDb250ZXh0LmVudGl0eUFjY2VzcygpO1xyXG4gICAgcmV0dXJuIGVudGl0eUFjY2Vzc29yLnNlYXJjaEJ5UmVmQ2FjaGVPbmx5KHRoaXMuZW50aXR5LCBwYXJzZUludChjaGFuZ2UudGFibGVSZWYsIDEwKSwgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmRFbnRpdHlJbkdsb2JhbENhY2hlID0gKGNoYW5nZTogYW55KSA9PiB7XHJcbiAgICB2YXIgZW50aXR5QWNjZXNzb3IgPSB0aGlzLmdsb2JhbERhdGFDb250ZXh0IS5lbnRpdHlBY2Nlc3MoKTtcclxuICAgIHJldHVybiBlbnRpdHlBY2Nlc3Nvci5zZWFyY2hCeVJlZkNhY2hlT25seSh0aGlzLmVudGl0eSwgcGFyc2VJbnQoY2hhbmdlLnRhYmxlUmVmLCAxMCksIHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja0lmRGF0ZVRpbWUgPSAobmV3VmFsdWU6IGFueSwgY3VycmVudFZhbHVlOiBhbnksIHR5cGVOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQpID0+IHtcclxuICAgIGlmICh0eXBlTmFtZSA9PT0gJ2RhdGUtdGltZScgfHwgdHlwZU5hbWUgPT09ICdkYXRlJykge1xyXG4gICAgICBpZiAobW9tZW50KG5ld1ZhbHVlLCBcIllZWVktTU0tREQgSEg6bW06c3Muc3Nzc3Nzc1wiLCB0cnVlKS5pc1ZhbGlkKCkpXHJcbiAgICAgICAgcmV0dXJuIG1vbWVudChtb21lbnQudXRjKG5ld1ZhbHVlKS50b0RhdGUoKSkuZm9ybWF0KCdNTS9ERC9ZWVlZIGhoOm1tIEEnKTtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXdWYWx1ZVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYXNQcm9wZXJ0eUFscmVhZHlCZWVuTW9kaWZpZWQgPSAocHJvcGVydHlOYW1lOiBzdHJpbmcsIGVudGl0eTogYW55KSA9PiB7XHJcbiAgICByZXR1cm4gZW50aXR5LmVudGl0eUFzcGVjdC5vcmlnaW5hbFZhbHVlcy5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eU5hbWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhcHBseVByb3BlcnR5Q2hhbmdlcyA9IChjaGFuZ2U6IGFueSwgZW50aXR5OiBhbnkpID0+IHtcclxuICAgIHZhciBzdGF0ZUJlZm9yZVByb3BlcnR5Q2hhbmdlID0gZW50aXR5LmVudGl0eUFzcGVjdC5lbnRpdHlTdGF0ZTtcclxuICAgIHZhciBvcmlnaW5hbFZhbHVlcyA9IGVudGl0eS5lbnRpdHlBc3BlY3Qub3JpZ2luYWxWYWx1ZXM7XHJcblxyXG4gICAgZW50aXR5WydEYXRhX05vdGlmaWNhdGlvbiddID0gdHJ1ZTtcclxuXHJcbiAgICBPYmplY3Qua2V5cyhjaGFuZ2UucHJvcGVydGllcykuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgIHZhciBlbnRpdHlUeXBlID0gdGhpcy50eXBlcy5nZXQoY2hhbmdlLnRhYmxlTmFtZSArICcuJyArIGtleSk7XHJcbiAgICAgIGlmICghZW50aXR5VHlwZSkge1xyXG4gICAgICAgIGVudGl0eVR5cGUgPSBuZXcgVHJ1UHJvcGVydHlDb25maWdCYXNlKCk7XHJcbiAgICAgICAgZW50aXR5VHlwZS50eXBlTmFtZSA9ICd0ZXh0LWJvdW5kZWQnO1xyXG4gICAgICB9XHJcbiAgICAgIHZhciBwcm9wZXJ0eU1vZGlmaWVkID0gdGhpcy5oYXNQcm9wZXJ0eUFscmVhZHlCZWVuTW9kaWZpZWQoa2V5LCBlbnRpdHkpXHJcbiAgICAgIGlmIChrZXkgPT09ICdVcGRhdGVkJyB8fCBrZXkgPT09ICdVcGRhdGVkUmVmJykge1xyXG4gICAgICAgIGVudGl0eVtrZXldID0gdGhpcy5jaGVja0lmRGF0ZVRpbWUoY2hhbmdlLnByb3BlcnRpZXNba2V5XSwgZW50aXR5W2tleV0sIGVudGl0eVR5cGUudHlwZU5hbWUpO1xyXG4gICAgICAgIGlmIChvcmlnaW5hbFZhbHVlcy5oYXNPd25Qcm9wZXJ0eShrZXkpKVxyXG4gICAgICAgICAgZGVsZXRlIG9yaWdpbmFsVmFsdWVzW2tleV07XHJcbiAgICAgIH0gZWxzZSBpZiAoZW50aXR5W2tleV0gIT09IHRoaXMuY2hlY2tJZkRhdGVUaW1lKGNoYW5nZS5wcm9wZXJ0aWVzW2tleV0sIGVudGl0eVtrZXldLCBlbnRpdHlUeXBlLnR5cGVOYW1lKSkge1xyXG4gICAgICAgIGlmICghcHJvcGVydHlNb2RpZmllZCkge1xyXG4gICAgICAgICAgZW50aXR5W2tleV0gPSB0aGlzLmNoZWNrSWZEYXRlVGltZShjaGFuZ2UucHJvcGVydGllc1trZXldLCBlbnRpdHlba2V5XSwgZW50aXR5VHlwZS50eXBlTmFtZSk7XHJcbiAgICAgICAgICBkZWxldGUgb3JpZ2luYWxWYWx1ZXNba2V5XTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdmFyIG1lcmdlRGF0YSA9IEpTT04ucGFyc2UoZW50aXR5Lk1lcmdlX0RhdGEpO1xyXG4gICAgICAgICAgaWYgKG1lcmdlRGF0YSkge1xyXG4gICAgICAgICAgICBtZXJnZURhdGFba2V5XSA9IHtcclxuICAgICAgICAgICAgICBcInZhbHVlXCI6IHRoaXMuY2hlY2tJZkRhdGVUaW1lKGNoYW5nZS5wcm9wZXJ0aWVzW2tleV0sIGVudGl0eVtrZXldLCBlbnRpdHlUeXBlLnR5cGVOYW1lKSxcclxuICAgICAgICAgICAgICBcIm1vZGlmaWVkQnlcIjogY2hhbmdlLm1vZGlmaWVkQnksXHJcbiAgICAgICAgICAgICAgXCJoaWRcIjogY2hhbmdlLnByb3BlcnRpZXNba2V5ICsgJ0hJRCddXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBtZXJnZURhdGEgPSB7fTtcclxuICAgICAgICAgICAgbWVyZ2VEYXRhW2tleV0gPSB7XHJcbiAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiB0aGlzLmNoZWNrSWZEYXRlVGltZShjaGFuZ2UucHJvcGVydGllc1trZXldLCBlbnRpdHlba2V5XSwgZW50aXR5VHlwZS50eXBlTmFtZSksXHJcbiAgICAgICAgICAgICAgXCJtb2RpZmllZEJ5XCI6IGNoYW5nZS5tb2RpZmllZEJ5LFxyXG4gICAgICAgICAgICAgIFwiaGlkXCI6IGNoYW5nZS5wcm9wZXJ0aWVzW2tleSArICdISUQnXVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZW50aXR5Lk1lcmdlX0RhdGEgPSBKU09OLnN0cmluZ2lmeShtZXJnZURhdGEpO1xyXG4gICAgICAgICAgZW50aXR5LmVudGl0eUFzcGVjdC52YWxpZGF0ZVByb3BlcnR5KGtleSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodHlwZW9mIChvcmlnaW5hbFZhbHVlc1trZXldKSAhPT0gJ3VuZGVmaW5lZCcpXHJcbiAgICAgICAgICBvcmlnaW5hbFZhbHVlc1trZXldID0gdGhpcy5jaGVja0lmRGF0ZVRpbWUoY2hhbmdlLnByb3BlcnRpZXNba2V5XSwgZW50aXR5W2tleV0sIGVudGl0eVR5cGUudHlwZU5hbWUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChvcmlnaW5hbFZhbHVlcy5oYXNPd25Qcm9wZXJ0eShrZXkpKVxyXG4gICAgICAgICAgZGVsZXRlIG9yaWdpbmFsVmFsdWVzW2tleV07XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGVudGl0eVsncm93dmVyJ10gPSBjaGFuZ2Uucm93dmVyO1xyXG4gICAgZGVsZXRlIG9yaWdpbmFsVmFsdWVzWydyb3d2ZXInXTtcclxuXHJcbiAgICBpZiAoc3RhdGVCZWZvcmVQcm9wZXJ0eUNoYW5nZS5uYW1lICE9PSBcIk1vZGlmaWVkXCIgfHwgKE9iamVjdC5rZXlzKG9yaWdpbmFsVmFsdWVzKS5sZW5ndGggPT09IDAgJiYgb3JpZ2luYWxWYWx1ZXMuY29uc3RydWN0b3IgPT09IE9iamVjdCkpIHtcclxuICAgICAgaWYgKCFlbnRpdHkuZW50aXR5QXNwZWN0LmlzQmVpbmdTYXZlZCkge1xyXG4gICAgICAgIGVudGl0eS5lbnRpdHlBc3BlY3Quc2V0VW5jaGFuZ2VkKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy53YWl0aW5nRW50aXRpZXMucHVzaChlbnRpdHkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZGVsZXRlIGVudGl0eVsnRGF0YV9Ob3RpZmljYXRpb24nXTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0V2FpdGluZ0VudGl0aWVzVG9VbmNoYW5nZWQgPSAoKSA9PiB7XHJcbiAgICB0aGlzLndhaXRpbmdFbnRpdGllcy5mb3JFYWNoKChlbnRpdHk6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoZW50aXR5ICYmIGVudGl0eS5lbnRpdHlBc3BlY3QpXHJcbiAgICAgICAgZW50aXR5LmVudGl0eUFzcGVjdC5zZXRVbmNoYW5nZWQoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBlbnRpdHlGb3VuZEJ5UXVlcnkgPSAoY2hhbmdlOiBhbnkpID0+IHtcclxuICAgIHZhciBlbnRpdHlBY2Nlc3NvciA9IHRoaXMuZGF0YUNvbnRleHQuZW50aXR5QWNjZXNzKCk7XHJcbiAgICB2YXIgZW50aXRpZXMgPSBlbnRpdHlBY2Nlc3Nvci5zZWFyY2hCeVJlZkFycmF5Q2FjaGVPbmx5KHRoaXMuZW50aXR5LCB0aGlzLmdldExhdGVzdFF1ZXJ5KCksIFtjaGFuZ2UudGFibGVSZWZdKTtcclxuXHJcbiAgICBpZiAoZW50aXRpZXMgIT09IG51bGwgJiYgIWVudGl0aWVzLmxlbmd0aCkge1xyXG4gICAgICB2YXIgZW50aXR5QWNjZXNzb3IgPSB0aGlzLmdsb2JhbERhdGFDb250ZXh0IS5lbnRpdHlBY2Nlc3MoKTtcclxuICAgICAgZW50aXRpZXMgPSBlbnRpdHlBY2Nlc3Nvci5zZWFyY2hCeVJlZkFycmF5Q2FjaGVPbmx5KHRoaXMuZW50aXR5LCB0aGlzLmdldExhdGVzdFF1ZXJ5KCksIFtjaGFuZ2UudGFibGVSZWZdKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZW50aXRpZXMgPT09IG51bGwgPyAwIDogZW50aXRpZXMubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRFbnRpdHlGcm9tU2VydmVyID0gKGNoYW5nZTogYW55KSA9PiB7XHJcbiAgICB2YXIgZW50aXR5QWNjZXNzb3IgPSB0aGlzLmRhdGFDb250ZXh0LmVudGl0eUFjY2VzcygpO1xyXG4gICAgdmFyIGVudGl0aXkgPSBlbnRpdHlBY2Nlc3Nvci5zZWFyY2hCeVJlZldpdGhRdWVyeSh0aGlzLmVudGl0eSwgdGhpcy5nZXRMYXRlc3RRdWVyeSgpLCBjaGFuZ2UudGFibGVSZWYpO1xyXG4gICAgcmV0dXJuIGVudGl0aXk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEVudGl0eUZyb21SZXN1bHRzID0gKHJlc3VsdHM6IGFueSwgY2hhbmdlOiBhbnkpID0+IHtcclxuICAgIHJldHVybiByZXN1bHRzLmZpbHRlcigoZTogYW55KSA9PiB7IHJldHVybiBlLlJlZiA9PT0gY2hhbmdlLnRhYmxlUmVmIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc1NhdmluZyA9IGFzeW5jICgpID0+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIHZhciBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICAvL2lmICghJHJvb3RTY29wZVsnaXNTYXZpbmcnXSkge1xyXG4gICAgICAgIC8vICBjbGVhckludGVydmFsKGludGVydmFsKTtcclxuICAgICAgICAvLyAgcmVzb2x2ZSgpO1xyXG4gICAgICAgIC8vfVxyXG4gICAgICB9LCAxMDAwKVxyXG4gICAgfSlcclxuICB9O1xyXG5cclxuICBwcml2YXRlIHVwZGF0ZSA9IGFzeW5jIChwYXlsb2FkOiBhbnkpID0+IHtcclxuICAgIC8vYXdhaXQgdGhpcy5pc1NhdmluZygpO1xyXG5cclxuICAgIHZhciByZWxvYWRSZXN1bHRzID0gZmFsc2U7XHJcbiAgICBwYXlsb2FkLmNoYW5nZXMuZm9yRWFjaChhc3luYyAoY2hhbmdlOiBhbnkpID0+IHtcclxuICAgICAgdmFyIGZvdW5kRW50aXRpZXMgPSBbXTtcclxuICAgICAgdmFyIGxvY2FsRW50aXR5ID0gdGhpcy5maW5kRW50aXR5SW5DYWNoZShjaGFuZ2UpO1xyXG4gICAgICB2YXIgZ2xvYmFsRW50aXR5ID0gdGhpcy5maW5kRW50aXR5SW5HbG9iYWxDYWNoZShjaGFuZ2UpO1xyXG4gICAgICBpZiAobG9jYWxFbnRpdHkpXHJcbiAgICAgICAgZm91bmRFbnRpdGllcy5wdXNoKGxvY2FsRW50aXR5KTtcclxuICAgICAgaWYgKGdsb2JhbEVudGl0eSlcclxuICAgICAgICBmb3VuZEVudGl0aWVzLnB1c2goZ2xvYmFsRW50aXR5KTtcclxuXHJcbiAgICAgIGlmIChmb3VuZEVudGl0aWVzLmxlbmd0aCkge1xyXG4gICAgICAgIGZvdW5kRW50aXRpZXMuZm9yRWFjaChhc3luYyAoZW50aXR5OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChjaGFuZ2UudGFibGVOYW1lID09PSB0aGlzLnRhYmxlTmFtZSkge1xyXG5cclxuICAgICAgICAgICAgaWYgKGNoYW5nZS5jaGFuZ2VPcGVyYXRpb24gPT09ICdVJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuYXBwbHlQcm9wZXJ0eUNoYW5nZXMoY2hhbmdlLCBlbnRpdHkpO1xyXG5cclxuICAgICAgICAgICAgICB2YXIgcmVzdWx0cyA9IHRoaXMuZ2V0TGF0ZXN0UmVzdWx0cygpO1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLmVudGl0eUZvdW5kQnlRdWVyeShjaGFuZ2UpKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgZW50aXR5QWxyZWFkeUluUmVzdWx0cyA9IHRoaXMuZ2V0RW50aXR5RnJvbVJlc3VsdHMocmVzdWx0cywgY2hhbmdlKTtcclxuICAgICAgICAgICAgICAgIGlmICghZW50aXR5QWxyZWFkeUluUmVzdWx0cy5sZW5ndGggJiYgdGhpcy5pc0xvYWRlZCgpKSB7XHJcbiAgICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaChlbnRpdHkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmVsb2FkUmVzdWx0cyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHZhciBlbnRpdHlUb1JlbW92ZSA9IHRoaXMuZ2V0RW50aXR5RnJvbVJlc3VsdHMocmVzdWx0cywgY2hhbmdlKTtcclxuICAgICAgICAgICAgICAgIGlmIChlbnRpdHlUb1JlbW92ZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgcmVzdWx0cy5zcGxpY2UocmVzdWx0cy5pbmRleE9mKGVudGl0eVRvUmVtb3ZlWzBdKSwgMSk7XHJcbiAgICAgICAgICAgICAgICAgIHJlbG9hZFJlc3VsdHMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2UuY2hhbmdlT3BlcmF0aW9uID09PSAnRCcpIHtcclxuICAgICAgICAgICAgICB2YXIgcmVzdWx0cyA9IHRoaXMuZ2V0TGF0ZXN0UmVzdWx0cygpO1xyXG4gICAgICAgICAgICAgIHZhciBlbnRpdHlUb0RlbGV0ZSA9IHRoaXMuZ2V0RW50aXR5RnJvbVJlc3VsdHMocmVzdWx0cywgY2hhbmdlKTtcclxuICAgICAgICAgICAgICBpZiAoZW50aXR5VG9EZWxldGUubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICBlbnRpdHlUb0RlbGV0ZVswXS5lbnRpdHlBc3BlY3Quc2V0RGV0YWNoZWQoKTtcclxuICAgICAgICAgICAgICAgIHJlc3VsdHMuc3BsaWNlKHJlc3VsdHMuaW5kZXhPZihlbnRpdHlUb0RlbGV0ZVswXSksIDEpO1xyXG4gICAgICAgICAgICAgICAgcmVsb2FkUmVzdWx0cyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNoYW5nZS5jaGFuZ2VPcGVyYXRpb24gPT09ICdJJykge1xyXG4gICAgICAgICAgICAgIHZhciByZXN1bHRzID0gdGhpcy5nZXRMYXRlc3RSZXN1bHRzKCk7XHJcbiAgICAgICAgICAgICAgdmFyIGVudGl0eUFscmVhZHlJblJlc3VsdHMgPSB0aGlzLmdldEVudGl0eUZyb21SZXN1bHRzKHJlc3VsdHMsIGNoYW5nZSk7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuZW50aXR5Rm91bmRCeVF1ZXJ5KGNoYW5nZSkgJiYgIWVudGl0eUFscmVhZHlJblJlc3VsdHMubGVuZ3RoICYmIHRoaXMuaXNMb2FkZWQoKSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFsb2NhbEVudGl0eSkge1xyXG4gICAgICAgICAgICAgICAgICB2YXIgbmV3RW50aXR5ID0gdGhpcy5kYXRhQ29udGV4dC5lbnRpdHlBY2Nlc3MoKS5hZGQodGhpcy5lbnRpdHksIHRoaXMuY29udGV4dEZpbHRlcnMpO1xyXG4gICAgICAgICAgICAgICAgICB0eXBlIE9iamVjdEtleSA9IGtleW9mIHR5cGVvZiBuZXdFbnRpdHk7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHBrZXlOYW1lID0gY2hhbmdlLnRhYmxlTmFtZSArICdSZWYnIGFzIE9iamVjdEtleTtcclxuICAgICAgICAgICAgICAgICAgbmV3RW50aXR5W3BrZXlOYW1lXSA9IGNoYW5nZS50YWJsZVJlZjtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5hcHBseVByb3BlcnR5Q2hhbmdlcyhjaGFuZ2UsIG5ld0VudGl0eSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0xvYWRlZCgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSB0aGlzLmdldExhdGVzdFJlc3VsdHMoKTtcclxuICAgICAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2gobmV3RW50aXR5KTtcclxuICAgICAgICAgICAgICAgICAgICByZWxvYWRSZXN1bHRzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChlbnRpdHkgPT09IGxvY2FsRW50aXR5KSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuYXBwbHlQcm9wZXJ0eUNoYW5nZXMoY2hhbmdlLCBlbnRpdHkpO1xyXG4gICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0cyA9IHRoaXMuZ2V0TGF0ZXN0UmVzdWx0cygpO1xyXG4gICAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2goZW50aXR5KTtcclxuICAgICAgICAgICAgICAgICAgcmVsb2FkUmVzdWx0cyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICghdGhpcy5lbnRpdHlGb3VuZEJ5UXVlcnkoY2hhbmdlKSAmJiBlbnRpdHlBbHJlYWR5SW5SZXN1bHRzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSB0aGlzLmdldExhdGVzdFJlc3VsdHMoKTtcclxuICAgICAgICAgICAgICAgIHZhciBlbnRpdHlUb0RlbGV0ZSA9IHRoaXMuZ2V0RW50aXR5RnJvbVJlc3VsdHMocmVzdWx0cywgY2hhbmdlKTtcclxuICAgICAgICAgICAgICAgIGlmIChlbnRpdHlUb0RlbGV0ZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgcmVzdWx0cy5zcGxpY2UocmVzdWx0cy5pbmRleE9mKGVudGl0eUFscmVhZHlJblJlc3VsdHNbMF0pLCAxKTtcclxuICAgICAgICAgICAgICAgICAgcmVsb2FkUmVzdWx0cyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICghZ2xvYmFsRW50aXR5KSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgbmV3RW50aXR5ID0gdGhpcy5nbG9iYWxEYXRhQ29udGV4dCEuZW50aXR5QWNjZXNzKCkuYWRkKHRoaXMuZW50aXR5LCB0aGlzLmNvbnRleHRGaWx0ZXJzKTtcclxuICAgICAgICAgICAgICAgIHR5cGUgT2JqZWN0S2V5ID0ga2V5b2YgdHlwZW9mIG5ld0VudGl0eTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHBrZXlOYW1lID0gY2hhbmdlLnRhYmxlTmFtZSArICdSZWYnIGFzIE9iamVjdEtleTtcclxuICAgICAgICAgICAgICAgIG5ld0VudGl0eVtwa2V5TmFtZV0gPSBjaGFuZ2UudGFibGVSZWY7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFwcGx5UHJvcGVydHlDaGFuZ2VzKGNoYW5nZSwgbmV3RW50aXR5KTtcclxuXHJcbiAgICAgICAgICAgICAgICByZWxvYWRSZXN1bHRzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmVsb2FkUmVzdWx0cyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGNoYW5nZS5jaGFuZ2VPcGVyYXRpb24gIT09ICdEJykge1xyXG4gICAgICAgICAgICB0aGlzLmFwcGx5UHJvcGVydHlDaGFuZ2VzKGNoYW5nZSwgZW50aXR5KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChjaGFuZ2UuY2hhbmdlT3BlcmF0aW9uID09PSAnVScgJiYgY2hhbmdlLnRhYmxlTmFtZSA9PT0gdGhpcy50YWJsZU5hbWUpIHtcclxuICAgICAgICBhd2FpdCB0aGlzLmdldEVudGl0eUZyb21TZXJ2ZXIoY2hhbmdlKS5zdWJzY3JpYmUoKGVudGl0eTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZW50aXR5KSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXBwbHlQcm9wZXJ0eUNoYW5nZXMoY2hhbmdlLCBlbnRpdHkpO1xyXG5cclxuICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSB0aGlzLmdldExhdGVzdFJlc3VsdHMoKTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZW50aXR5Rm91bmRCeVF1ZXJ5KGNoYW5nZSkgJiYgdGhpcy5pc0xvYWRlZCgpKSB7XHJcbiAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKGVudGl0eSk7XHJcbiAgICAgICAgICAgICAgcmVsb2FkUmVzdWx0cyA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoY2hhbmdlLmNoYW5nZU9wZXJhdGlvbiA9PT0gJ0knICYmIGNoYW5nZS50YWJsZU5hbWUgPT09IHRoaXMudGFibGVOYW1lKSB7XHJcbiAgICAgICAgICB2YXIgbmV3RW50aXR5ID0gdGhpcy5nbG9iYWxEYXRhQ29udGV4dCEuZW50aXR5QWNjZXNzKCkuYWRkKHRoaXMuZW50aXR5LCB0aGlzLmNvbnRleHRGaWx0ZXJzKTtcclxuICAgICAgICAgIHR5cGUgT2JqZWN0S2V5ID0ga2V5b2YgdHlwZW9mIG5ld0VudGl0eTtcclxuICAgICAgICAgIGNvbnN0IHBrZXlOYW1lMSA9IGNoYW5nZS50YWJsZU5hbWUgKyAnUmVmJyBhcyBPYmplY3RLZXk7XHJcbiAgICAgICAgICBuZXdFbnRpdHlbcGtleU5hbWUxXSA9IGNoYW5nZS50YWJsZVJlZjtcclxuICAgICAgICAgIHRoaXMuYXBwbHlQcm9wZXJ0eUNoYW5nZXMoY2hhbmdlLCBuZXdFbnRpdHkpO1xyXG5cclxuICAgICAgICAgIG5ld0VudGl0eSA9IHRoaXMuZGF0YUNvbnRleHQuZW50aXR5QWNjZXNzKCkuYWRkKHRoaXMuZW50aXR5LCB0aGlzLmNvbnRleHRGaWx0ZXJzKTtcclxuICAgICAgICAgIHR5cGUgT2JqZWN0S2V5MiA9IGtleW9mIHR5cGVvZiBuZXdFbnRpdHk7XHJcbiAgICAgICAgICBjb25zdCBwa2V5TmFtZTIgPSBjaGFuZ2UudGFibGVOYW1lICsgJ1JlZicgYXMgT2JqZWN0S2V5MjtcclxuICAgICAgICAgIG5ld0VudGl0eVtwa2V5TmFtZTJdID0gY2hhbmdlLnRhYmxlUmVmO1xyXG4gICAgICAgICAgdGhpcy5hcHBseVByb3BlcnR5Q2hhbmdlcyhjaGFuZ2UsIG5ld0VudGl0eSk7XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuZW50aXR5Rm91bmRCeVF1ZXJ5KGNoYW5nZSkgJiYgdGhpcy5pc0xvYWRlZCgpKSB7XHJcbiAgICAgICAgICAgIHZhciByZXN1bHRzID0gdGhpcy5nZXRMYXRlc3RSZXN1bHRzKCk7XHJcbiAgICAgICAgICAgIHJlc3VsdHMucHVzaChuZXdFbnRpdHkpO1xyXG4gICAgICAgICAgICByZWxvYWRSZXN1bHRzID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2UuY2hhbmdlT3BlcmF0aW9uID09PSAnSScpIHtcclxuICAgICAgICAgIHZhciBuZXdFbnRpdHkgPSB0aGlzLmdsb2JhbERhdGFDb250ZXh0IS5lbnRpdHlBY2Nlc3MoKS5hZGQodGhpcy5lbnRpdHksIHRoaXMuY29udGV4dEZpbHRlcnMpO1xyXG4gICAgICAgICAgdHlwZSBPYmplY3RLZXkgPSBrZXlvZiB0eXBlb2YgbmV3RW50aXR5O1xyXG4gICAgICAgICAgY29uc3QgcGtleU5hbWUxID0gY2hhbmdlLnRhYmxlTmFtZSArICdSZWYnIGFzIE9iamVjdEtleTtcclxuICAgICAgICAgIG5ld0VudGl0eVtwa2V5TmFtZTFdID0gY2hhbmdlLnRhYmxlUmVmO1xyXG4gICAgICAgICAgdGhpcy5hcHBseVByb3BlcnR5Q2hhbmdlcyhjaGFuZ2UsIG5ld0VudGl0eSk7XHJcblxyXG4gICAgICAgICAgbmV3RW50aXR5ID0gdGhpcy5kYXRhQ29udGV4dC5lbnRpdHlBY2Nlc3MoKS5hZGQodGhpcy5lbnRpdHksIHRoaXMuY29udGV4dEZpbHRlcnMpO1xyXG4gICAgICAgICAgdHlwZSBPYmplY3RLZXkyID0ga2V5b2YgdHlwZW9mIG5ld0VudGl0eTtcclxuICAgICAgICAgIGNvbnN0IHBrZXlOYW1lMiA9IGNoYW5nZS50YWJsZU5hbWUgKyAnUmVmJyBhcyBPYmplY3RLZXkyO1xyXG4gICAgICAgICAgbmV3RW50aXR5W3BrZXlOYW1lMl0gPSBjaGFuZ2UudGFibGVSZWY7XHJcbiAgICAgICAgICB0aGlzLmFwcGx5UHJvcGVydHlDaGFuZ2VzKGNoYW5nZSwgbmV3RW50aXR5KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLmV4cGFuZFBhdGhzICYmIHRoaXMuZXhwYW5kUGF0aHMubGVuZ3RoICYmIHRoaXMuZXhwYW5kUGF0aHMuaW5jbHVkZXMoJ28nICsgY2hhbmdlLnRhYmxlTmFtZSkpXHJcbiAgICAgICAgcmVsb2FkUmVzdWx0cyA9IHRydWU7XHJcbiAgICB9KTtcclxuXHJcbiAgICBsZXQgZGF0YUNoYW5nZUFyZ3MgPSBuZXcgVHJ1RGF0YUNoYW5nZSgpO1xyXG4gICAgZGF0YUNoYW5nZUFyZ3MuZGF0YUNoYW5nZXMgPSBwYXlsb2FkO1xyXG4gICAgZGF0YUNoYW5nZUFyZ3MucmVsb2FkID0gcmVsb2FkUmVzdWx0cztcclxuICAgIHRoaXMuZGF0YUNoYW5nZWQoZGF0YUNoYW5nZUFyZ3MpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -8,6 +8,7 @@ export class TruAppEnvironment {
8
8
  this._saveComplete = new BehaviorSubject(null);
9
9
  this._revertComplete = new BehaviorSubject(null);
10
10
  this._deleteComplete = new BehaviorSubject(null);
11
+ this._globalDataContext = null;
11
12
  this.onSavingChanged$ = this._isSaving.asObservable();
12
13
  this.onSaveComplete$ = this._saveComplete.asObservable();
13
14
  this.onRevertComplete$ = this._revertComplete.asObservable();
@@ -70,6 +71,12 @@ export class TruAppEnvironment {
70
71
  set maxRecordCount(maxRecordCount) {
71
72
  this._maxRecordCount = maxRecordCount;
72
73
  }
74
+ get globalDataContext() {
75
+ return this._globalDataContext;
76
+ }
77
+ set globalDataContext(context) {
78
+ this._globalDataContext = context;
79
+ }
73
80
  get isMac() {
74
81
  return navigator.platform.toUpperCase().indexOf('MAC') >= 0;
75
82
  }
@@ -79,4 +86,4 @@ TruAppEnvironment.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", ve
79
86
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruAppEnvironment, decorators: [{
80
87
  type: Injectable
81
88
  }], ctorParameters: function () { return []; } });
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWFwcC1lbnZpcm9ubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvc2VydmljZXMvdHJ1LWFwcC1lbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7O0FBUW5ELE1BQU0sT0FBTyxpQkFBaUI7SUE4QjVCO1FBM0JRLG1CQUFjLEdBQTRCLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLGNBQVMsR0FBNkIsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDMUUsa0JBQWEsR0FBaUQsSUFBSSxlQUFlLENBQThCLElBQUksQ0FBQyxDQUFDO1FBQ3JILG9CQUFlLEdBQWlELElBQUksZUFBZSxDQUE4QixJQUFJLENBQUMsQ0FBQztRQUN2SCxvQkFBZSxHQUFpRCxJQUFJLGVBQWUsQ0FBOEIsSUFBSSxDQUFDLENBQUM7UUFrQnhILHFCQUFnQixHQUF3QixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RFLG9CQUFlLEdBQTRDLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDN0Ysc0JBQWlCLEdBQTRDLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDakcsc0JBQWlCLEdBQTRDLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7UUEyRHhHLGlCQUFZLEdBQUcsQ0FBQyxLQUEyQixFQUFRLEVBQUU7WUFDbkQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFBO1FBRUQsbUJBQWMsR0FBRyxDQUFDLEtBQTJCLEVBQVEsRUFBRTtZQUNyRCxJQUFJ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QUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUQsQ0FBQzs7OEdBckZVLGlCQUFpQjtrSEFBakIsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSBcImJyZWV6ZS1jbGllbnRcIjtcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uRXZlbnRDb21wbGV0ZWQge1xyXG4gIHN1Y2Nlc3NmdWw6IGJvb2xlYW47XHJcbiAgZW50aXRpZXM/OiBBcnJheTxFbnRpdHk+O1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBUcnVBcHBFbnZpcm9ubWVudCB7XHJcbiAgcHJpdmF0ZSBfYXBwVXJpOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfbWF4UmVjb3JkQ291bnQ6IG51bWJlcjtcclxuICBwcml2YXRlIF9hY3RpdmVVc2VyUmVmOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigzKTtcclxuICBwcml2YXRlIF9pc1NhdmluZzogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcbiAgcHJpdmF0ZSBfc2F2ZUNvbXBsZXRlOiBCZWhhdmlvclN1YmplY3Q8QWN0aW9uRXZlbnRDb21wbGV0ZWQgfCBudWxsPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QWN0aW9uRXZlbnRDb21wbGV0ZWQgfCBudWxsPihudWxsKTtcclxuICBwcml2YXRlIF9yZXZlcnRDb21wbGV0ZTogQmVoYXZpb3JTdWJqZWN0PEFjdGlvbkV2ZW50Q29tcGxldGVkIHwgbnVsbD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFjdGlvbkV2ZW50Q29tcGxldGVkIHwgbnVsbD4obnVsbCk7XHJcbiAgcHJpdmF0ZSBfZGVsZXRlQ29tcGxldGU6IEJlaGF2aW9yU3ViamVjdDxBY3Rpb25FdmVudENvbXBsZXRlZCB8IG51bGw+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBY3Rpb25FdmVudENvbXBsZXRlZCB8IG51bGw+KG51bGwpO1xyXG5cclxuICByZWFkb25seSBtc2dNb2RpZmllcktleUxhYmVsOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgbXNnQ29uZmlybUV4aXRXaXRoQ2hhbmdlc1BlbmRpbmc6IHN0cmluZztcclxuICByZWFkb25seSBtc2dEZWxldGVTdWNjZXNzZnVsOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgbXNnU2F2ZVN1Y2Nlc3NmdWw6IHN0cmluZztcclxuICByZWFkb25seSBtc2dOb0NoYW5nZXNUb1NhdmU6IHN0cmluZztcclxuICByZWFkb25seSBtc2dTYXZlSW5Qcm9ncmVzczogc3RyaW5nO1xyXG4gIHJlYWRvbmx5IG1zZ0ludmFsaWREYXRhOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgbXNnRGlydHlQcmV2ZW50c1JlYWRPbmx5OiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgbXNnRGlydHlQcmV2ZW50c05hdmlnYXRlOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgbXNnRGlydHlQcmV2ZW50c0Nsb3NlOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgbXNnRGlydHlQcmV2ZW50c0RlbGV0ZUV4aXN0aW5nUmVjb3JkOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgbXNnTm9EZWxldGVBY2Nlc3M6IHN0cmluZztcclxuICByZWFkb25seSBtc2dDYW5ub3REZWxldGVOZXdBbmRFeGlzdGluZ1JlY29yZHM6IHN0cmluZztcclxuICByZWFkb25seSBtc2dEZWxldGVSZWZlcmVuY2luZ1JlY29yZHNGaXJzdDogc3RyaW5nO1xyXG4gIHJlYWRvbmx5IG1zZ05vUmVjb3Jkc1NlbGVjdGVkOiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyBvblNhdmluZ0NoYW5nZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5faXNTYXZpbmcuYXNPYnNlcnZhYmxlKCk7XHJcbiAgcHVibGljIG9uU2F2ZUNvbXBsZXRlJDogT2JzZXJ2YWJsZTxBY3Rpb25FdmVudENvbXBsZXRlZCB8IG51bGw+ID0gdGhpcy5fc2F2ZUNvbXBsZXRlLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIHB1YmxpYyBvblJldmVydENvbXBsZXRlJDogT2JzZXJ2YWJsZTxBY3Rpb25FdmVudENvbXBsZXRlZCB8IG51bGw+ID0gdGhpcy5fcmV2ZXJ0Q29tcGxldGUuYXNPYnNlcnZhYmxlKCk7XHJcbiAgcHVibGljIG9uRGVsZXRlQ29tcGxldGUkOiBPYnNlcnZhYmxlPEFjdGlvbkV2ZW50Q29tcGxldGVkIHwgbnVsbD4gPSB0aGlzLl9kZWxldGVDb21wbGV0ZS5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLl9hcHBVcmkgPSAnJztcclxuICAgIHRoaXMuX21heFJlY29yZENvdW50ID0gMDtcclxuICAgIFxyXG4gICAgdGhpcy5tc2dNb2RpZmllcktleUxhYmVsID0gdGhpcy5pc01hYyA/ICdDbWQnIDogJ0N0cmwnO1xyXG4gICAgdGhpcy5tc2dDb25maXJtRXhpdFdpdGhDaGFuZ2VzUGVuZGluZyA9ICdZb3UgaGF2ZSB1bnNhdmVkIGNoYW5nZXMgdGhhdCB3aWxsIGJlIGxvc3QuJztcclxuICAgIHRoaXMubXNnRGVsZXRlU3VjY2Vzc2Z1bCA9ICdEZWxldGUgc3VjY2VlZGVkJztcclxuICAgIHRoaXMubXNnU2F2ZVN1Y2Nlc3NmdWwgPSAnU2F2ZSBzdWNjZWVkZWQnO1xyXG4gICAgdGhpcy5tc2dOb0NoYW5nZXNUb1NhdmUgPSAnTm8gY2hhbmdlcyB0byBzYXZlJztcclxuICAgIHRoaXMubXNnU2F2ZUluUHJvZ3Jlc3MgPSAnU2F2ZSBpbiBwcm9ncmVzcyc7XHJcbiAgICB0aGlzLm1zZ0ludmFsaWREYXRhID0gJ0ludmFsaWQgZGF0YSc7XHJcbiAgICB0aGlzLm1zZ0RpcnR5UHJldmVudHNSZWFkT25seSA9ICdTYXZlIG9yIHJldmVydCBiZWZvcmUgZGlzYWJsaW5nIGVkaXRpbmcnO1xyXG4gICAgdGhpcy5tc2dEaXJ0eVByZXZlbnRzTmF2aWdhdGUgPSAnU2F2ZSBvciByZXZlcnQgYmVmb3JlIG5hdmlnYXRpbmcnO1xyXG4gICAgdGhpcy5tc2dEaXJ0eVByZXZlbnRzQ2xvc2UgPSAnU2F2ZSBvciByZXZlcnQgYmVmb3JlIGNsb3Npbmcgd2luZG93JztcclxuICAgIHRoaXMubXNnRGlydHlQcmV2ZW50c0RlbGV0ZUV4aXN0aW5nUmVjb3JkID0gJ1NhdmUgb3IgcmV2ZXJ0IGJlZm9yZSBkZWxldGluZyc7XHJcbiAgICB0aGlzLm1zZ05vRGVsZXRlQWNjZXNzID0gJ0NvbnRhY3QgYWRtaW5pc3RyYXRvciBhYm91dCBkZWxldGUgYWNjZXNzJztcclxuICAgIHRoaXMubXNnQ2Fubm90RGVsZXRlTmV3QW5kRXhpc3RpbmdSZWNvcmRzID0gJ0RlbGV0ZSBuZXcgb3IgZXhpc3RpbmcgcmVjb3JkcyAtIGJ1dCBub3QgYm90aCc7XHJcbiAgICB0aGlzLm1zZ0RlbGV0ZVJlZmVyZW5jaW5nUmVjb3Jkc0ZpcnN0ID0gJ0RlbGV0ZSBhbGwgcmVmZXJlbmNpbmcgcmVjb3JkcyBmaXJzdCc7XHJcbiAgICB0aGlzLm1zZ05vUmVjb3Jkc1NlbGVjdGVkID0gJ05vIFJlY29yZHMgc2VsZWN0ZWQnO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFwcFVyaSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FwcFVyaTtcclxuICB9XHJcblxyXG4gIHNldCBhcHBVcmkodXJpOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2FwcFVyaSA9IHVyaTtcclxuICB9XHJcblxyXG4gIGdldCBhY3RpdmVVc2VyUmVmKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlVXNlclJlZi5nZXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0IGFjdGl2ZVVzZXJSZWYocmVmOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX2FjdGl2ZVVzZXJSZWYubmV4dChyZWYpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzU2F2aW5nKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzU2F2aW5nLmdldFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBzZXQgaXNTYXZpbmcoaXNTYXZpbmc6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2lzU2F2aW5nLm5leHQoaXNTYXZpbmcpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1heFJlY29yZENvdW50KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWF4UmVjb3JkQ291bnQ7XHJcbiAgfVxyXG5cclxuICBzZXQgbWF4UmVjb3JkQ291bnQobWF4UmVjb3JkQ291bnQ6IG51bWJlcikge1xyXG4gICAgdGhpcy5fbWF4UmVjb3JkQ291bnQgPSBtYXhSZWNvcmRDb3VudDtcclxuICB9XHJcblxyXG4gIGdldCBpc01hYygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBuYXZpZ2F0b3IucGxhdGZvcm0udG9VcHBlckNhc2UoKS5pbmRleE9mKCdNQUMnKSA+PSAwO1xyXG4gIH1cclxuXHJcbiAgc2F2ZUNvbXBsZXRlID0gKGV2ZW50OiBBY3Rpb25FdmVudENvbXBsZXRlZCk6IHZvaWQgPT4ge1xyXG4gICAgdGhpcy5fc2F2ZUNvbXBsZXRlLm5leHQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcmV2ZXJ0Q29tcGxldGUgPSAoZXZlbnQ6IEFjdGlvbkV2ZW50Q29tcGxldGVkKTogdm9pZCA9PiB7XHJcbiAgICB0aGlzLl9yZXZlcnRDb21wbGV0ZS5uZXh0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUNvbXBsZXRlID0gKGV2ZW50OiBBY3Rpb25FdmVudENvbXBsZXRlZCk6IHZvaWQgPT4ge1xyXG4gICAgdGhpcy5fZGVsZXRlQ29tcGxldGUubmV4dChldmVudCk7XHJcbiAgfVxyXG5cclxuICBmb3JtYXREZWxldGVDb25maXJtYXRpb25NZXNzYWdlID0gKHRhYmxlTmFtZTogc3RyaW5nLCB0YWJsZVBsdXJhbExhYmVsOiBzdHJpbmcsIGNvdW50OiBudW1iZXIgfCBudWxsKTogc3RyaW5nID0+IHtcclxuICAgIGlmIChjb3VudCA9PT0gbnVsbClcclxuICAgICAgcmV0dXJuICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgJyArIHRhYmxlTmFtZSArICc/JztcclxuICAgIGlmIChjb3VudCA9PT0gMSlcclxuICAgICAgcmV0dXJuICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIDEgJyArIHRhYmxlTmFtZSArICc/JztcclxuICAgIHJldHVybiAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSAnICsgY291bnQgKyAnICcgKyB0YWJsZVBsdXJhbExhYmVsICsgJz8nO1xyXG4gIH1cclxufVxyXG4iXX0=
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWFwcC1lbnZpcm9ubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvc2VydmljZXMvdHJ1LWFwcC1lbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7O0FBU25ELE1BQU0sT0FBTyxpQkFBaUI7SUErQjVCO1FBNUJRLG1CQUFjLEdBQTRCLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLGNBQVMsR0FBNkIsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDMUUsa0JBQWEsR0FBaUQsSUFBSSxlQUFlLENBQThCLElBQUksQ0FBQyxDQUFDO1FBQ3JILG9CQUFlLEdBQWlELElBQUksZUFBZSxDQUE4QixJQUFJLENBQUMsQ0FBQztRQUN2SCxvQkFBZSxHQUFpRCxJQUFJLGVBQWUsQ0FBOEIsSUFBSSxDQUFDLENBQUM7UUFDdkgsdUJBQWtCLEdBQTBCLElBQUksQ0FBQztRQWtCbEQscUJBQWdCLEdBQXdCLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEUsb0JBQWUsR0FBNEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM3RixzQkFBaUIsR0FBNEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNqRyxzQkFBaUIsR0FBNEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQW1FeEcsaUJBQVksR0FBRyxDQUFDLEtBQTJCLEVBQVEsRUFBRTtZQUNuRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUE7UUFFRCxtQkFBYyxHQUFHLENB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LElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxpQkFBaUIsQ0FBQyxPQUE4QjtRQUNsRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsT0FBTyxDQUFFO0lBQ3JDLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLFNBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5RCxDQUFDOzs4R0E5RlUsaUJBQWlCO2tIQUFqQixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tIFwiYnJlZXplLWNsaWVudFwiO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBUcnVEYXRhQ29udGV4dCB9IGZyb20gXCIuL3RydS1kYXRhLWNvbnRleHRcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uRXZlbnRDb21wbGV0ZWQge1xyXG4gIHN1Y2Nlc3NmdWw6IGJvb2xlYW47XHJcbiAgZW50aXRpZXM/OiBBcnJheTxFbnRpdHk+O1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBUcnVBcHBFbnZpcm9ubWVudCB7XHJcbiAgcHJpdmF0ZSBfYXBwVXJpOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfbWF4UmVjb3JkQ291bnQ6IG51bWJlcjtcclxuICBwcml2YXRlIF9hY3RpdmVVc2VyUmVmOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigzKTtcclxuICBwcml2YXRlIF9pc1NhdmluZzogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcbiAgcHJpdmF0ZSBfc2F2ZUNvbXBsZXRlOiBCZWhhdmlvclN1YmplY3Q8QWN0aW9uRXZlbnRDb21wbGV0ZWQgfCBudWxsPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QWN0aW9uRXZlbnRDb21wbGV0ZWQgfCBudWxsPihudWxsKTtcclxuICBwcml2YXRlIF9yZXZlcnRDb21wbGV0ZTogQmVoYXZpb3JTdWJqZWN0PEFjdGlvbkV2ZW50Q29tcGxldGVkIHwgbnVsbD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFjdGlvbkV2ZW50Q29tcGxldGVkIHwgbnVsbD4obnVsbCk7XHJcbiAgcHJpdmF0ZSBfZGVsZXRlQ29tcGxldGU6IEJlaGF2aW9yU3ViamVjdDxBY3Rpb25FdmVudENvbXBsZXRlZCB8IG51bGw+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBY3Rpb25FdmVudENvbXBsZXRlZCB8IG51bGw+KG51bGwpO1xyXG4gIHByaXZhdGUgX2dsb2JhbERhdGFDb250ZXh0OiBUcnVEYXRhQ29udGV4dCB8IG51bGwgPSBudWxsO1xyXG5cclxuICByZWFkb25seSBtc2dNb2RpZmllcktleUxhYmVsOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgbXNnQ29uZmlybUV4aXRXaXRoQ2hhbmdlc1BlbmRpbmc6IHN0cmluZztcclxuICByZWFkb25seSBtc2dEZWxldGVTdWNjZXNzZnVsOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgbXNnU2F2ZVN1Y2Nlc3NmdWw6IHN0cmluZztcclxuICByZWFkb25seSBtc2dOb0NoYW5nZXNUb1NhdmU6IHN0cmluZztcclxuICByZWFkb25seSBtc2dTYXZlSW5Qcm9ncmVzczogc3RyaW5nO1xyXG4gIHJlYWRvbmx5IG1zZ0ludmFsaWREYXRhOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgbXNnRGlydHlQcmV2ZW50c1JlYWRPbmx5OiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgbXNnRGlydHlQcmV2ZW50c05hdmlnYXRlOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgbXNnRGlydHlQcmV2ZW50c0Nsb3NlOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgbXNnRGlydHlQcmV2ZW50c0RlbGV0ZUV4aXN0aW5nUmVjb3JkOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgbXNnTm9EZWxldGVBY2Nlc3M6IHN0cmluZztcclxuICByZWFkb25seSBtc2dDYW5ub3REZWxldGVOZXdBbmRFeGlzdGluZ1JlY29yZHM6IHN0cmluZztcclxuICByZWFkb25seSBtc2dEZWxldGVSZWZlcmVuY2luZ1JlY29yZHNGaXJzdDogc3RyaW5nO1xyXG4gIHJlYWRvbmx5IG1zZ05vUmVjb3Jkc1NlbGVjdGVkOiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyBvblNhdmluZ0NoYW5nZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5faXNTYXZpbmcuYXNPYnNlcnZhYmxlKCk7XHJcbiAgcHVibGljIG9uU2F2ZUNvbXBsZXRlJDogT2JzZXJ2YWJsZTxBY3Rpb25FdmVudENvbXBsZXRlZCB8IG51bGw+ID0gdGhpcy5fc2F2ZUNvbXBsZXRlLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIHB1YmxpYyBvblJldmVydENvbXBsZXRlJDogT2JzZXJ2YWJsZTxBY3Rpb25FdmVudENvbXBsZXRlZCB8IG51bGw+ID0gdGhpcy5fcmV2ZXJ0Q29tcGxldGUuYXNPYnNlcnZhYmxlKCk7XHJcbiAgcHVibGljIG9uRGVsZXRlQ29tcGxldGUkOiBPYnNlcnZhYmxlPEFjdGlvbkV2ZW50Q29tcGxldGVkIHwgbnVsbD4gPSB0aGlzLl9kZWxldGVDb21wbGV0ZS5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLl9hcHBVcmkgPSAnJztcclxuICAgIHRoaXMuX21heFJlY29yZENvdW50ID0gMDtcclxuICAgIFxyXG4gICAgdGhpcy5tc2dNb2RpZmllcktleUxhYmVsID0gdGhpcy5pc01hYyA/ICdDbWQnIDogJ0N0cmwnO1xyXG4gICAgdGhpcy5tc2dDb25maXJtRXhpdFdpdGhDaGFuZ2VzUGVuZGluZyA9ICdZb3UgaGF2ZSB1bnNhdmVkIGNoYW5nZXMgdGhhdCB3aWxsIGJlIGxvc3QuJztcclxuICAgIHRoaXMubXNnRGVsZXRlU3VjY2Vzc2Z1bCA9ICdEZWxldGUgc3VjY2VlZGVkJztcclxuICAgIHRoaXMubXNnU2F2ZVN1Y2Nlc3NmdWwgPSAnU2F2ZSBzdWNjZWVkZWQnO1xyXG4gICAgdGhpcy5tc2dOb0NoYW5nZXNUb1NhdmUgPSAnTm8gY2hhbmdlcyB0byBzYXZlJztcclxuICAgIHRoaXMubXNnU2F2ZUluUHJvZ3Jlc3MgPSAnU2F2ZSBpbiBwcm9ncmVzcyc7XHJcbiAgICB0aGlzLm1zZ0ludmFsaWREYXRhID0gJ0ludmFsaWQgZGF0YSc7XHJcbiAgICB0aGlzLm1zZ0RpcnR5UHJldmVudHNSZWFkT25seSA9ICdTYXZlIG9yIHJldmVydCBiZWZvcmUgZGlzYWJsaW5nIGVkaXRpbmcnO1xyXG4gICAgdGhpcy5tc2dEaXJ0eVByZXZlbnRzTmF2aWdhdGUgPSAnU2F2ZSBvciByZXZlcnQgYmVmb3JlIG5hdmlnYXRpbmcnO1xyXG4gICAgdGhpcy5tc2dEaXJ0eVByZXZlbnRzQ2xvc2UgPSAnU2F2ZSBvciByZXZlcnQgYmVmb3JlIGNsb3Npbmcgd2luZG93JztcclxuICAgIHRoaXMubXNnRGlydHlQcmV2ZW50c0RlbGV0ZUV4aXN0aW5nUmVjb3JkID0gJ1NhdmUgb3IgcmV2ZXJ0IGJlZm9yZSBkZWxldGluZyc7XHJcbiAgICB0aGlzLm1zZ05vRGVsZXRlQWNjZXNzID0gJ0NvbnRhY3QgYWRtaW5pc3RyYXRvciBhYm91dCBkZWxldGUgYWNjZXNzJztcclxuICAgIHRoaXMubXNnQ2Fubm90RGVsZXRlTmV3QW5kRXhpc3RpbmdSZWNvcmRzID0gJ0RlbGV0ZSBuZXcgb3IgZXhpc3RpbmcgcmVjb3JkcyAtIGJ1dCBub3QgYm90aCc7XHJcbiAgICB0aGlzLm1zZ0RlbGV0ZVJlZmVyZW5jaW5nUmVjb3Jkc0ZpcnN0ID0gJ0RlbGV0ZSBhbGwgcmVmZXJlbmNpbmcgcmVjb3JkcyBmaXJzdCc7XHJcbiAgICB0aGlzLm1zZ05vUmVjb3Jkc1NlbGVjdGVkID0gJ05vIFJlY29yZHMgc2VsZWN0ZWQnO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFwcFVyaSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FwcFVyaTtcclxuICB9XHJcblxyXG4gIHNldCBhcHBVcmkodXJpOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2FwcFVyaSA9IHVyaTtcclxuICB9XHJcblxyXG4gIGdldCBhY3RpdmVVc2VyUmVmKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlVXNlclJlZi5nZXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0IGFjdGl2ZVVzZXJSZWYocmVmOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX2FjdGl2ZVVzZXJSZWYubmV4dChyZWYpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzU2F2aW5nKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzU2F2aW5nLmdldFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBzZXQgaXNTYXZpbmcoaXNTYXZpbmc6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2lzU2F2aW5nLm5leHQoaXNTYXZpbmcpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1heFJlY29yZENvdW50KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWF4UmVjb3JkQ291bnQ7XHJcbiAgfVxyXG5cclxuICBzZXQgbWF4UmVjb3JkQ291bnQobWF4UmVjb3JkQ291bnQ6IG51bWJlcikge1xyXG4gICAgdGhpcy5fbWF4UmVjb3JkQ291bnQgPSBtYXhSZWNvcmRDb3VudDtcclxuICB9XHJcblxyXG4gIGdldCBnbG9iYWxEYXRhQ29udGV4dCgpOiBUcnVEYXRhQ29udGV4dCB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuX2dsb2JhbERhdGFDb250ZXh0O1xyXG4gIH1cclxuXHJcbiAgc2V0IGdsb2JhbERhdGFDb250ZXh0KGNvbnRleHQ6IFRydURhdGFDb250ZXh0IHwgbnVsbCkge1xyXG4gICAgdGhpcy5fZ2xvYmFsRGF0YUNvbnRleHQgPSBjb250ZXh0IDtcclxuICB9XHJcblxyXG4gIGdldCBpc01hYygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBuYXZpZ2F0b3IucGxhdGZvcm0udG9VcHBlckNhc2UoKS5pbmRleE9mKCdNQUMnKSA+PSAwO1xyXG4gIH1cclxuXHJcbiAgc2F2ZUNvbXBsZXRlID0gKGV2ZW50OiBBY3Rpb25FdmVudENvbXBsZXRlZCk6IHZvaWQgPT4ge1xyXG4gICAgdGhpcy5fc2F2ZUNvbXBsZXRlLm5leHQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcmV2ZXJ0Q29tcGxldGUgPSAoZXZlbnQ6IEFjdGlvbkV2ZW50Q29tcGxldGVkKTogdm9pZCA9PiB7XHJcbiAgICB0aGlzLl9yZXZlcnRDb21wbGV0ZS5uZXh0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUNvbXBsZXRlID0gKGV2ZW50OiBBY3Rpb25FdmVudENvbXBsZXRlZCk6IHZvaWQgPT4ge1xyXG4gICAgdGhpcy5fZGVsZXRlQ29tcGxldGUubmV4dChldmVudCk7XHJcbiAgfVxyXG5cclxuICBmb3JtYXREZWxldGVDb25maXJtYXRpb25NZXNzYWdlID0gKHRhYmxlTmFtZTogc3RyaW5nLCB0YWJsZVBsdXJhbExhYmVsOiBzdHJpbmcsIGNvdW50OiBudW1iZXIgfCBudWxsKTogc3RyaW5nID0+IHtcclxuICAgIGlmIChjb3VudCA9PT0gbnVsbClcclxuICAgICAgcmV0dXJuICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgJyArIHRhYmxlTmFtZSArICc/JztcclxuICAgIGlmIChjb3VudCA9PT0gMSlcclxuICAgICAgcmV0dXJuICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIDEgJyArIHRhYmxlTmFtZSArICc/JztcclxuICAgIHJldHVybiAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSAnICsgY291bnQgKyAnICcgKyB0YWJsZVBsdXJhbExhYmVsICsgJz8nO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { DataService as BreezeDataService, EntityManager, EntityQuery, MetadataStore } from 'breeze-client';
2
+ import { DataService as BreezeDataService, EntityManager, EntityQuery, MetadataStore, Predicate } from 'breeze-client';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "./tru-breeze-metadata-provider";
5
5
  import * as i2 from "./tru-app-environment";
@@ -68,9 +68,12 @@ export class TruBreezeContext {
68
68
  return (x) => { return new EntityQuery(x); };
69
69
  }
70
70
  ;
71
+ get createPredicate() {
72
+ return (...args) => { return new Predicate(args); };
73
+ }
71
74
  get entityManager() {
72
75
  return this._entityManager;
73
76
  }
74
77
  ;
75
78
  }
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWJyZWV6ZS1jb250ZXh0LWZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL3NlcnZpY2VzL3RydS1icmVlemUtY29udGV4dC1mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsSUFBSSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQU81RyxNQUFNLE9BQU8sdUJBQXVCO0lBU2xDLFlBQ1Usc0JBQWlELEVBQ2pELFdBQThCO1FBRDlCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBMkI7UUFDakQsZ0JBQVcsR0FBWCxXQUFXLENBQW1CO1FBVHhDOzs7VUFHRTtRQUNNLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLGtCQUFhLEdBQWtCLElBQUksYUFBYSxFQUFFLENBQUM7UUFlM0Qsa0JBQWEsR0FBRyxDQUFDLFFBQWdCLEVBQWlCLEVBQUU7WUFDbEQsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRTtnQkFDOUIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNyRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDNUIsQ0FBQyxDQUFBO1FBRUQ7OztVQUdFO1FBQ0Ysa0JBQWEsR0FBRyxDQUFDLFlBQTJCLElBQUksRUFBb0IsRUFBRTtZQUNwRSxJQUFJLGFBQWEsR0FBRyxJQUFJLGFBQWEsQ0FBQztnQkFDcEMsV0FBVyxFQUFFLElBQUksQ0FBQyxpQkFBaUI7Z0JBQ25DLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTthQUNsQyxDQUFDLENBQUM7WUFDSCxJQUFJLGFBQWEsR0FBRyxJQUFJLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBRXhEOzs7Ozs7ZUFNRztZQUNILElBQUksc0JBQXNCLENBQUM7WUFDM0IsSUFBSSxzQkFBc0IsRUFBRTtnQkFDMUIsYUFBYSxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO2FBQ3REO1lBQ0QsT0FBTyxhQUFhLENBQUM7UUFDdkIsQ0FBQyxDQUFDO1FBdkNBLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUM7UUFDckQ7O1VBRUU7UUFDRixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQztZQUM3QyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsaUJBQWlCLEVBQUUsS0FBSztTQUN6QixDQUFDLENBQUM7SUFDTCxDQUFDOztvSEFwQlUsdUJBQXVCO3dIQUF2Qix1QkFBdUIsY0FGdEIsTUFBTTsyRkFFUCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COztBQXVERCxNQUFNLE9BQU8sZ0JBQWdCO0lBRzNCLFlBQ1UsT0FBc0I7UUFBdEIsWUFBTyxHQUFQLE9BQU8sQ0FBZTtRQUU5QixJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxDQUFDLENBQU0sRUFBZSxFQUFFLEdBQUcsT0FBTyxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBQUEsQ0FBQztJQUVGLElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBQUEsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZSBhcyBCcmVlemVEYXRhU2VydmljZSwgRW50aXR5TWFuYWdlciwgRW50aXR5UXVlcnksIE1ldGFkYXRhU3RvcmUgfSBmcm9tICdicmVlemUtY2xpZW50JztcclxuaW1wb3J0IHsgVHJ1QXBwRW52aXJvbm1lbnQgfSBmcm9tICcuL3RydS1hcHAtZW52aXJvbm1lbnQnO1xyXG5pbXBvcnQgeyBUcnVCcmVlemVNZXRhZGF0YVByb3ZpZGVyIH0gZnJvbSAnLi90cnUtYnJlZXplLW1ldGFkYXRhLXByb3ZpZGVyJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcnVCcmVlemVDb250ZXh0RmFjdG9yeSB7XHJcblxyXG4gIC8qKlxyXG4gICogTWF4aW11bSBudW1iZXIgb2YgcmVjb3JkcyB0byByZXR1cm4gZnJvbSBhIHF1ZXJ5LlxyXG4gICogQHJldHVybiB7bnVtYmVyfVxyXG4gICovXHJcbiAgcHJpdmF0ZSBzZXJ2aWNlUGF0aDogc3RyaW5nID0gJyc7XHJcbiAgcHJpdmF0ZSBtZXRhZGF0YVN0b3JlOiBNZXRhZGF0YVN0b3JlID0gbmV3IE1ldGFkYXRhU3RvcmUoKTtcclxuICBwcml2YXRlIGJyZWV6ZURhdGFTZXJ2aWNlOiBCcmVlemVEYXRhU2VydmljZTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYnJlZXplTWV0YWRhdGFQcm92aWRlcjogVHJ1QnJlZXplTWV0YWRhdGFQcm92aWRlcixcclxuICAgIHByaXZhdGUgZW52aXJvbm1lbnQ6IFRydUFwcEVudmlyb25tZW50KSB7XHJcbiAgICB0aGlzLnNlcnZpY2VQYXRoID0gZW52aXJvbm1lbnQuYXBwVXJpICsgJy9hcGkvVHJ1REInO1xyXG4gICAgLyoqXHJcbiAgICAqIE5vdGU6IGhhc1NlcnZlck1ldGFkYXRhIGlzIGZhbHNlIHRvIHByZXZlbnQgdGhlIGF1dG9tYXRpYyBxdWVyeSBvZiB0aGUgbWV0YWRhdGEgZnJvbSB0aGUgc2VydmVyLlxyXG4gICAgKi9cclxuICAgIHRoaXMuYnJlZXplRGF0YVNlcnZpY2UgPSBuZXcgQnJlZXplRGF0YVNlcnZpY2Uoe1xyXG4gICAgICBzZXJ2aWNlTmFtZTogdGhpcy5zZXJ2aWNlUGF0aCxcclxuICAgICAgaGFzU2VydmVyTWV0YWRhdGE6IGZhbHNlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldFVwTWV0YWRhdGEgPSAobWV0YWRhdGE6IG9iamVjdCk6IE1ldGFkYXRhU3RvcmUgPT4ge1xyXG4gICAgaWYgKHRoaXMubWV0YWRhdGFTdG9yZS5pc0VtcHR5KCkpIFxyXG4gICAgICByZXR1cm4gdGhpcy5tZXRhZGF0YVN0b3JlLmltcG9ydE1ldGFkYXRhKG1ldGFkYXRhKTtcclxuICAgIHJldHVybiB0aGlzLm1ldGFkYXRhU3RvcmU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAqIFJldHVybnMgYSBuZXcgZGF0YSBjb250ZXh0IG9iamVjdC5cclxuICAqIEByZXR1cm4ge29iamVjdH0gLSBCcmVlemUgTWFuYWdlclxyXG4gICovXHJcbiAgY3JlYXRlQ29udGV4dCA9ICh0YWJsZU5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsKTogVHJ1QnJlZXplQ29udGV4dCA9PiB7XHJcbiAgICBsZXQgZW50aXR5TWFuYWdlciA9IG5ldyBFbnRpdHlNYW5hZ2VyKHtcclxuICAgICAgZGF0YVNlcnZpY2U6IHRoaXMuYnJlZXplRGF0YVNlcnZpY2UsXHJcbiAgICAgIG1ldGFkYXRhU3RvcmU6IHRoaXMubWV0YWRhdGFTdG9yZVxyXG4gICAgfSk7XHJcbiAgICBsZXQgYnJlZXplQ29udGV4dCA9IG5ldyBUcnVCcmVlemVDb250ZXh0KGVudGl0eU1hbmFnZXIpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FjaGUgdGhlIGFjdGl2ZSB1c2VyJ3MgdXNlciByZWNvcmQgc2luY2UgaXQgaXMgcmVxdWlyZWQgdG8gYmUgaW4gdGhlIGNhY2hlIFxyXG4gICAgICogZm9yIHNvbWUgc2l0dWF0aW9ucyBzdWNoIGFzIHdoZW4gY3JlYXRlIG5ldyByZWNvcmQgYW5kIHRoZSB2aWV3IGRpc3BsYXlzIHRoZSBcclxuICAgICAqIGNyZWF0ZWQgdXNlciBhdWRpdCBwcm9wZXJ0eS4gIElmIGl0IGZhaWxzLCB0aGUgbmV4dCBjb250ZXh0IHdpbGwgdHJ5IGFnYWluLlxyXG4gICAgICogT2YgY291cnNlLCB0aGUgYWxyZWFkeSBleGlzdGluZyBjb250ZXh0KHMpIHdvbid0IGhhdmUgdGhlIHJlY29yZCBjYWNoZWQsIGJ1dFxyXG4gICAgICogaXQncyBhIHJhdGhlciB1bmxpa2VseSBzaXR1YXRpb24gYW5kIGl0J3Mgbm9uLWZhdGFsLCBzbyBqdXN0IGxldCBpdCBmYWlsLlxyXG4gICAgICovXHJcbiAgICB2YXIgYWN0aXZlVXNlclJlY29yZEV4cG9ydDtcclxuICAgIGlmIChhY3RpdmVVc2VyUmVjb3JkRXhwb3J0KSB7XHJcbiAgICAgIGVudGl0eU1hbmFnZXIuaW1wb3J0RW50aXRpZXMoYWN0aXZlVXNlclJlY29yZEV4cG9ydCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYnJlZXplQ29udGV4dDtcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVHJ1QnJlZXplQ29udGV4dCB7XHJcbiAgcHJpdmF0ZSBfZW50aXR5TWFuYWdlcjogRW50aXR5TWFuYWdlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG1hbmFnZXI6IEVudGl0eU1hbmFnZXIpIHtcclxuXHJcbiAgICB0aGlzLl9lbnRpdHlNYW5hZ2VyID0gbWFuYWdlcjtcclxuICB9XHJcblxyXG4gIGdldCBjcmVhdGVRdWVyeSgpIHtcclxuICAgIHJldHVybiAoeDogYW55KTogRW50aXR5UXVlcnkgPT4geyByZXR1cm4gbmV3IEVudGl0eVF1ZXJ5KHgpOyB9O1xyXG4gIH07XHJcblxyXG4gIGdldCBlbnRpdHlNYW5hZ2VyKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2VudGl0eU1hbmFnZXI7XHJcbiAgfTtcclxufVxyXG4iXX0=
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWJyZWV6ZS1jb250ZXh0LWZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL3NlcnZpY2VzL3RydS1icmVlemUtY29udGV4dC1mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsSUFBSSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFPdkgsTUFBTSxPQUFPLHVCQUF1QjtJQVNsQyxZQUNVLHNCQUFpRCxFQUNqRCxXQUE4QjtRQUQ5QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQTJCO1FBQ2pELGdCQUFXLEdBQVgsV0FBVyxDQUFtQjtRQVR4Qzs7O1VBR0U7UUFDTSxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6QixrQkFBYSxHQUFrQixJQUFJLGFBQWEsRUFBRSxDQUFDO1FBZTNELGtCQUFhLEdBQUcsQ0FBQyxRQUFnQixFQUFpQixFQUFFO1lBQ2xELElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUU7Z0JBQzlCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDckQsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQzVCLENBQUMsQ0FBQTtRQUVEOzs7VUFHRTtRQUNGLGtCQUFhLEdBQUcsQ0FBQyxZQUEyQixJQUFJLEVBQW9CLEVBQUU7WUFDcEUsSUFBSSxhQUFhLEdBQUcsSUFBSSxhQUFhLENBQUM7Z0JBQ3BDLFdBQVcsRUFBRSxJQUFJLENBQUMsaUJBQWlCO2dCQUNuQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7YUFDbEMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxhQUFhLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUV4RDs7Ozs7O2VBTUc7WUFDSCxJQUFJLHNCQUFzQixDQUFDO1lBQzNCLElBQUksc0JBQXNCLEVBQUU7Z0JBQzFCLGFBQWEsQ0FBQyxjQUFjLENBQUMsc0JBQXNCLENBQUMsQ0FBQzthQUN0RDtZQUNELE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQztRQXZDQSxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDO1FBQ3JEOztVQUVFO1FBQ0YsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksaUJBQWlCLENBQUM7WUFDN0MsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLGlCQUFpQixFQUFFLEtBQUs7U0FDekIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7b0hBcEJVLHVCQUF1Qjt3SEFBdkIsdUJBQXVCLGNBRnRCLE1BQU07MkZBRVAsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7QUF1REQsTUFBTSxPQUFPLGdCQUFnQjtJQUczQixZQUNVLE9BQXNCO1FBQXRCLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFFOUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sQ0FBQyxDQUFNLEVBQWUsRUFBRSxHQUFHLE9BQU8sSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUFBLENBQUM7SUFFRixJQUFJLGVBQWU7UUFDakIsT0FBTyxDQUFDLEdBQUcsSUFBVyxFQUFhLEVBQUUsR0FBRyxPQUFPLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3ZFLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUFBLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2UgYXMgQnJlZXplRGF0YVNlcnZpY2UsIEVudGl0eU1hbmFnZXIsIEVudGl0eVF1ZXJ5LCBNZXRhZGF0YVN0b3JlLCBQcmVkaWNhdGUgfSBmcm9tICdicmVlemUtY2xpZW50JztcclxuaW1wb3J0IHsgVHJ1QXBwRW52aXJvbm1lbnQgfSBmcm9tICcuL3RydS1hcHAtZW52aXJvbm1lbnQnO1xyXG5pbXBvcnQgeyBUcnVCcmVlemVNZXRhZGF0YVByb3ZpZGVyIH0gZnJvbSAnLi90cnUtYnJlZXplLW1ldGFkYXRhLXByb3ZpZGVyJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcnVCcmVlemVDb250ZXh0RmFjdG9yeSB7XHJcblxyXG4gIC8qKlxyXG4gICogTWF4aW11bSBudW1iZXIgb2YgcmVjb3JkcyB0byByZXR1cm4gZnJvbSBhIHF1ZXJ5LlxyXG4gICogQHJldHVybiB7bnVtYmVyfVxyXG4gICovXHJcbiAgcHJpdmF0ZSBzZXJ2aWNlUGF0aDogc3RyaW5nID0gJyc7XHJcbiAgcHJpdmF0ZSBtZXRhZGF0YVN0b3JlOiBNZXRhZGF0YVN0b3JlID0gbmV3IE1ldGFkYXRhU3RvcmUoKTtcclxuICBwcml2YXRlIGJyZWV6ZURhdGFTZXJ2aWNlOiBCcmVlemVEYXRhU2VydmljZTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYnJlZXplTWV0YWRhdGFQcm92aWRlcjogVHJ1QnJlZXplTWV0YWRhdGFQcm92aWRlcixcclxuICAgIHByaXZhdGUgZW52aXJvbm1lbnQ6IFRydUFwcEVudmlyb25tZW50KSB7XHJcbiAgICB0aGlzLnNlcnZpY2VQYXRoID0gZW52aXJvbm1lbnQuYXBwVXJpICsgJy9hcGkvVHJ1REInO1xyXG4gICAgLyoqXHJcbiAgICAqIE5vdGU6IGhhc1NlcnZlck1ldGFkYXRhIGlzIGZhbHNlIHRvIHByZXZlbnQgdGhlIGF1dG9tYXRpYyBxdWVyeSBvZiB0aGUgbWV0YWRhdGEgZnJvbSB0aGUgc2VydmVyLlxyXG4gICAgKi9cclxuICAgIHRoaXMuYnJlZXplRGF0YVNlcnZpY2UgPSBuZXcgQnJlZXplRGF0YVNlcnZpY2Uoe1xyXG4gICAgICBzZXJ2aWNlTmFtZTogdGhpcy5zZXJ2aWNlUGF0aCxcclxuICAgICAgaGFzU2VydmVyTWV0YWRhdGE6IGZhbHNlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldFVwTWV0YWRhdGEgPSAobWV0YWRhdGE6IG9iamVjdCk6IE1ldGFkYXRhU3RvcmUgPT4ge1xyXG4gICAgaWYgKHRoaXMubWV0YWRhdGFTdG9yZS5pc0VtcHR5KCkpIFxyXG4gICAgICByZXR1cm4gdGhpcy5tZXRhZGF0YVN0b3JlLmltcG9ydE1ldGFkYXRhKG1ldGFkYXRhKTtcclxuICAgIHJldHVybiB0aGlzLm1ldGFkYXRhU3RvcmU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAqIFJldHVybnMgYSBuZXcgZGF0YSBjb250ZXh0IG9iamVjdC5cclxuICAqIEByZXR1cm4ge29iamVjdH0gLSBCcmVlemUgTWFuYWdlclxyXG4gICovXHJcbiAgY3JlYXRlQ29udGV4dCA9ICh0YWJsZU5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsKTogVHJ1QnJlZXplQ29udGV4dCA9PiB7XHJcbiAgICBsZXQgZW50aXR5TWFuYWdlciA9IG5ldyBFbnRpdHlNYW5hZ2VyKHtcclxuICAgICAgZGF0YVNlcnZpY2U6IHRoaXMuYnJlZXplRGF0YVNlcnZpY2UsXHJcbiAgICAgIG1ldGFkYXRhU3RvcmU6IHRoaXMubWV0YWRhdGFTdG9yZVxyXG4gICAgfSk7XHJcbiAgICBsZXQgYnJlZXplQ29udGV4dCA9IG5ldyBUcnVCcmVlemVDb250ZXh0KGVudGl0eU1hbmFnZXIpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FjaGUgdGhlIGFjdGl2ZSB1c2VyJ3MgdXNlciByZWNvcmQgc2luY2UgaXQgaXMgcmVxdWlyZWQgdG8gYmUgaW4gdGhlIGNhY2hlIFxyXG4gICAgICogZm9yIHNvbWUgc2l0dWF0aW9ucyBzdWNoIGFzIHdoZW4gY3JlYXRlIG5ldyByZWNvcmQgYW5kIHRoZSB2aWV3IGRpc3BsYXlzIHRoZSBcclxuICAgICAqIGNyZWF0ZWQgdXNlciBhdWRpdCBwcm9wZXJ0eS4gIElmIGl0IGZhaWxzLCB0aGUgbmV4dCBjb250ZXh0IHdpbGwgdHJ5IGFnYWluLlxyXG4gICAgICogT2YgY291cnNlLCB0aGUgYWxyZWFkeSBleGlzdGluZyBjb250ZXh0KHMpIHdvbid0IGhhdmUgdGhlIHJlY29yZCBjYWNoZWQsIGJ1dFxyXG4gICAgICogaXQncyBhIHJhdGhlciB1bmxpa2VseSBzaXR1YXRpb24gYW5kIGl0J3Mgbm9uLWZhdGFsLCBzbyBqdXN0IGxldCBpdCBmYWlsLlxyXG4gICAgICovXHJcbiAgICB2YXIgYWN0aXZlVXNlclJlY29yZEV4cG9ydDtcclxuICAgIGlmIChhY3RpdmVVc2VyUmVjb3JkRXhwb3J0KSB7XHJcbiAgICAgIGVudGl0eU1hbmFnZXIuaW1wb3J0RW50aXRpZXMoYWN0aXZlVXNlclJlY29yZEV4cG9ydCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYnJlZXplQ29udGV4dDtcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVHJ1QnJlZXplQ29udGV4dCB7XHJcbiAgcHJpdmF0ZSBfZW50aXR5TWFuYWdlcjogRW50aXR5TWFuYWdlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG1hbmFnZXI6IEVudGl0eU1hbmFnZXIpIHtcclxuXHJcbiAgICB0aGlzLl9lbnRpdHlNYW5hZ2VyID0gbWFuYWdlcjtcclxuICB9XHJcblxyXG4gIGdldCBjcmVhdGVRdWVyeSgpIHtcclxuICAgIHJldHVybiAoeDogYW55KTogRW50aXR5UXVlcnkgPT4geyByZXR1cm4gbmV3IEVudGl0eVF1ZXJ5KHgpOyB9O1xyXG4gIH07XHJcblxyXG4gIGdldCBjcmVhdGVQcmVkaWNhdGUoKSB7XHJcbiAgICByZXR1cm4gKC4uLmFyZ3M6IGFueVtdKTogUHJlZGljYXRlID0+IHsgcmV0dXJuIG5ldyBQcmVkaWNhdGUoYXJncyk7IH1cclxuICB9XHJcblxyXG4gIGdldCBlbnRpdHlNYW5hZ2VyKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2VudGl0eU1hbmFnZXI7XHJcbiAgfTtcclxufVxyXG4iXX0=
@@ -26,7 +26,7 @@ export class TruConnectionHub {
26
26
  }
27
27
  };
28
28
  this.subscribe = (dataContext, entity, tableName, getLatestResults, getLatestQuery, contextFilters, expandPaths, isLoaded) => {
29
- return new TruDataChangeParser(this.connection, dataContext, entity, tableName, getLatestResults, getLatestQuery, contextFilters, expandPaths, isLoaded, this.modelPropertyLookup).onDataChanged();
29
+ return new TruDataChangeParser(this.connection, dataContext, this.appEnvironment.globalDataContext, entity, tableName, getLatestResults, getLatestQuery, contextFilters, expandPaths, isLoaded, this.modelPropertyLookup).onDataChanged();
30
30
  };
31
31
  this.connection = new signalR.HubConnectionBuilder()
32
32
  .withUrl(`${this.appEnvironment.appUri}/notificationhub`, {
@@ -43,4 +43,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
43
43
  providedIn: 'root',
44
44
  }]
45
45
  }], ctorParameters: function () { return [{ type: i1.TruAppEnvironment }, { type: i2.TruModelPropertyLookup }]; } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWNvbm5lY3Rpb24taHViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy90cnUtY29ubmVjdGlvbi1odWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEtBQUssT0FBTyxNQUFNLG9CQUFvQixDQUFBO0FBSTdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7O0FBUXhFLE1BQU0sT0FBTyxnQkFBZ0I7SUFHM0IsWUFBb0IsY0FBaUMsRUFBVSxtQkFBMkM7UUFBdEYsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQVUsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUF3QjtRQVExRyxVQUFLLEdBQUcsR0FBRyxFQUFFO1lBQ1gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBYSxFQUFFLEVBQUU7Z0JBQzVDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSTtnQkFDRixNQUFNLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDeEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO29CQUNoQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQzt5QkFDdEMsSUFBSSxDQUFDLENBQUMsWUFBb0IsRUFBRSxFQUFFO3dCQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLDZDQUE2QyxZQUFZLEVBQUUsQ0FBQyxDQUFDO29CQUMzRSxDQUFDLENBQUMsQ0FBQTtnQkFDTixDQUFDLENBQUMsQ0FBQzthQUNKO1lBQUMsT0FBTyxLQUFLLEVBQUU7Z0JBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsS0FBSyxFQUFFLENBQUMsQ0FBQzthQUNuRDtRQUNILENBQUMsQ0FBQTtRQUVELGNBQVMsR0FBRyxDQUNWLFdBQTJCLEVBQzNCLE1BQTRCLEVBQzVCLFNBQWlCLEVBQ2pCLGdCQUEyQixFQUMzQixjQUF5QixFQUN6QixjQUFrQixFQUNsQixXQUEwQixFQUMxQixRQUF1QixFQUEwQixFQUFFO1lBQ25ELE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyTSxDQUFDLENBQUE7UUFuQ0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRTthQUNqRCxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sa0JBQWtCLEVBQUU7WUFDeEQsZUFBZSxFQUFFLElBQUk7WUFDckIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVO1NBQ2hELENBQUMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3hDLENBQUM7OzZHQVRVLGdCQUFnQjtpSEFBaEIsZ0JBQWdCLGNBRmYsTUFBTTsyRkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBzaWduYWxSIGZyb20gXCJAbWljcm9zb2Z0L3NpZ25hbHJcIlxyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRydUVudGl0eUJhc2UgfSBmcm9tICcuLi9iYXNlLWNsYXNzZXMvdHJ1LWVudGl0eS1iYXNlJztcclxuaW1wb3J0IHsgVHJ1RGF0YUNoYW5nZSB9IGZyb20gJy4uL2NsYXNzZXMvdHJ1LWRhdGEtY2hhbmdlJztcclxuaW1wb3J0IHsgVHJ1RGF0YUNoYW5nZVBhcnNlciB9IGZyb20gJy4uL2NsYXNzZXMvdHJ1LWRhdGEtY2hhbmdlLXBhcnNlcic7XHJcbmltcG9ydCB7IFRydUFwcEVudmlyb25tZW50IH0gZnJvbSAnLi90cnUtYXBwLWVudmlyb25tZW50JztcclxuaW1wb3J0IHsgVHJ1RGF0YUNvbnRleHQgfSBmcm9tICcuL3RydS1kYXRhLWNvbnRleHQnO1xyXG5pbXBvcnQgeyBUcnVNb2RlbFByb3BlcnR5TG9va3VwIH0gZnJvbSAnLi90cnUtbW9kZWwtcHJvcGVydHktbG9va3VwJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcnVDb25uZWN0aW9uSHViIHtcclxuICBwcml2YXRlIGNvbm5lY3Rpb246IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhcHBFbnZpcm9ubWVudDogVHJ1QXBwRW52aXJvbm1lbnQsIHByaXZhdGUgbW9kZWxQcm9wZXJ0eUxvb2t1cDogVHJ1TW9kZWxQcm9wZXJ0eUxvb2t1cCkge1xyXG4gICAgdGhpcy5jb25uZWN0aW9uID0gbmV3IHNpZ25hbFIuSHViQ29ubmVjdGlvbkJ1aWxkZXIoKVxyXG4gICAgICAud2l0aFVybChgJHt0aGlzLmFwcEVudmlyb25tZW50LmFwcFVyaX0vbm90aWZpY2F0aW9uaHViYCwge1xyXG4gICAgICAgIHNraXBOZWdvdGlhdGlvbjogdHJ1ZSxcclxuICAgICAgICB0cmFuc3BvcnQ6IHNpZ25hbFIuSHR0cFRyYW5zcG9ydFR5cGUuV2ViU29ja2V0cyxcclxuICAgICAgfSkud2l0aEF1dG9tYXRpY1JlY29ubmVjdCgpLmJ1aWxkKCk7XHJcbiAgfVxyXG5cclxuICBzdGFydCA9ICgpID0+IHtcclxuICAgIHRoaXMuY29ubmVjdGlvbi5vbihcImVycm9yXCIsICh2YWx1ZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKEpTT04ucGFyc2UodmFsdWUpKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXZWJTb2NrZXQsICdPUEVOJywgeyB2YWx1ZTogMSwgfSk7XHJcbiAgICAgIHRoaXMuY29ubmVjdGlvbi5zdGFydCgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY29ubmVjdGlvbi5pbnZva2UoJ2dldENvbm5lY3Rpb25JZCcpXHJcbiAgICAgICAgICAudGhlbigoY29ubmVjdGlvbklkOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coYFNpZ25hbFIgY29ubmVjdGlvbiBzdWNjZXNzISBjb25uZWN0aW9uSWQ6ICR7Y29ubmVjdGlvbklkfWApO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zb2xlLmxvZyhgU2lnbmFsUiBjb25uZWN0aW9uIGVycm9yOiAke2Vycm9yfWApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3Vic2NyaWJlID0gKFxyXG4gICAgZGF0YUNvbnRleHQ6IFRydURhdGFDb250ZXh0LFxyXG4gICAgZW50aXR5OiB0eXBlb2YgVHJ1RW50aXR5QmFzZSxcclxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxyXG4gICAgZ2V0TGF0ZXN0UmVzdWx0czogKCkgPT4gYW55LFxyXG4gICAgZ2V0TGF0ZXN0UXVlcnk6ICgpID0+IGFueSxcclxuICAgIGNvbnRleHRGaWx0ZXJzOiBbXSxcclxuICAgIGV4cGFuZFBhdGhzOiBBcnJheTxzdHJpbmc+LFxyXG4gICAgaXNMb2FkZWQ6ICgpID0+IGJvb2xlYW4pOiBTdWJqZWN0PFRydURhdGFDaGFuZ2U+ID0+IHtcclxuICAgIHJldHVybiBuZXcgVHJ1RGF0YUNoYW5nZVBhcnNlcih0aGlzLmNvbm5lY3Rpb24sIGRhdGFDb250ZXh0LCBlbnRpdHksIHRhYmxlTmFtZSwgZ2V0TGF0ZXN0UmVzdWx0cywgZ2V0TGF0ZXN0UXVlcnksIGNvbnRleHRGaWx0ZXJzLCBleHBhbmRQYXRocywgaXNMb2FkZWQsIHRoaXMubW9kZWxQcm9wZXJ0eUxvb2t1cCkub25EYXRhQ2hhbmdlZCgpO1xyXG4gIH1cclxufVxyXG4iXX0=
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWNvbm5lY3Rpb24taHViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy90cnUtY29ubmVjdGlvbi1odWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEtBQUssT0FBTyxNQUFNLG9CQUFvQixDQUFBO0FBSTdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7O0FBUXhFLE1BQU0sT0FBTyxnQkFBZ0I7SUFHM0IsWUFDVSxjQUFpQyxFQUNqQyxtQkFBMkM7UUFEM0MsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBd0I7UUFRckQsVUFBSyxHQUFHLEdBQUcsRUFBRTtZQUNYLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQWEsRUFBRSxFQUFFO2dCQUM1QyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNqQyxDQUFDLENBQUMsQ0FBQztZQUVILElBQUk7Z0JBQ0YsTUFBTSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3hELElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtvQkFDaEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUM7eUJBQ3RDLElBQUksQ0FBQyxDQUFDLFlBQW9CLEVBQUUsRUFBRTt3QkFDN0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2Q0FBNkMsWUFBWSxFQUFFLENBQUMsQ0FBQztvQkFDM0UsQ0FBQyxDQUFDLENBQUE7Z0JBQ04sQ0FBQyxDQUFDLENBQUM7YUFDSjtZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLEtBQUssRUFBRSxDQUFDLENBQUM7YUFDbkQ7UUFDSCxDQUFDLENBQUE7UUFFRCxjQUFTLEdBQUcsQ0FDVixXQUEyQixFQUMzQixNQUE0QixFQUM1QixTQUFpQixFQUNqQixnQkFBMkIsRUFDM0IsY0FBeUIsRUFDekIsY0FBa0IsRUFDbEIsV0FBMEIsRUFDMUIsUUFBdUIsRUFBMEIsRUFBRTtZQUNuRCxPQUFPLElBQUksbUJBQW1CLENBQzVCLElBQUksQ0FBQyxVQUFVLEVBQ2YsV0FBVyxFQUNYLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLEVBQ3JDLE1BQU0sRUFBRSxTQUFTLEVBQ2pCLGdCQUFnQixFQUNoQixjQUFjLEVBQ2QsY0FBYyxFQUNkLFdBQVcsRUFDWCxRQUFRLEVBQ1IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDOUMsQ0FBQyxDQUFBO1FBN0NDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxPQUFPLENBQUMsb0JBQW9CLEVBQUU7YUFDakQsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLGtCQUFrQixFQUFFO1lBQ3hELGVBQWUsRUFBRSxJQUFJO1lBQ3JCLFNBQVMsRUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUMsVUFBVTtTQUNoRCxDQUFDLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN4QyxDQUFDOzs2R0FYVSxnQkFBZ0I7aUhBQWhCLGdCQUFnQixjQUZmLE1BQU07MkZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgc2lnbmFsUiBmcm9tIFwiQG1pY3Jvc29mdC9zaWduYWxyXCJcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUcnVFbnRpdHlCYXNlIH0gZnJvbSAnLi4vYmFzZS1jbGFzc2VzL3RydS1lbnRpdHktYmFzZSc7XHJcbmltcG9ydCB7IFRydURhdGFDaGFuZ2UgfSBmcm9tICcuLi9jbGFzc2VzL3RydS1kYXRhLWNoYW5nZSc7XHJcbmltcG9ydCB7IFRydURhdGFDaGFuZ2VQYXJzZXIgfSBmcm9tICcuLi9jbGFzc2VzL3RydS1kYXRhLWNoYW5nZS1wYXJzZXInO1xyXG5pbXBvcnQgeyBUcnVBcHBFbnZpcm9ubWVudCB9IGZyb20gJy4vdHJ1LWFwcC1lbnZpcm9ubWVudCc7XHJcbmltcG9ydCB7IFRydURhdGFDb250ZXh0IH0gZnJvbSAnLi90cnUtZGF0YS1jb250ZXh0JztcclxuaW1wb3J0IHsgVHJ1TW9kZWxQcm9wZXJ0eUxvb2t1cCB9IGZyb20gJy4vdHJ1LW1vZGVsLXByb3BlcnR5LWxvb2t1cCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJ1Q29ubmVjdGlvbkh1YiB7XHJcbiAgcHJpdmF0ZSBjb25uZWN0aW9uOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhcHBFbnZpcm9ubWVudDogVHJ1QXBwRW52aXJvbm1lbnQsXHJcbiAgICBwcml2YXRlIG1vZGVsUHJvcGVydHlMb29rdXA6IFRydU1vZGVsUHJvcGVydHlMb29rdXApIHtcclxuICAgIHRoaXMuY29ubmVjdGlvbiA9IG5ldyBzaWduYWxSLkh1YkNvbm5lY3Rpb25CdWlsZGVyKClcclxuICAgICAgLndpdGhVcmwoYCR7dGhpcy5hcHBFbnZpcm9ubWVudC5hcHBVcml9L25vdGlmaWNhdGlvbmh1YmAsIHtcclxuICAgICAgICBza2lwTmVnb3RpYXRpb246IHRydWUsXHJcbiAgICAgICAgdHJhbnNwb3J0OiBzaWduYWxSLkh0dHBUcmFuc3BvcnRUeXBlLldlYlNvY2tldHMsXHJcbiAgICAgIH0pLndpdGhBdXRvbWF0aWNSZWNvbm5lY3QoKS5idWlsZCgpO1xyXG4gIH1cclxuXHJcbiAgc3RhcnQgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmNvbm5lY3Rpb24ub24oXCJlcnJvclwiLCAodmFsdWU6IHN0cmluZykgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhKU09OLnBhcnNlKHZhbHVlKSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoV2ViU29ja2V0LCAnT1BFTicsIHsgdmFsdWU6IDEsIH0pO1xyXG4gICAgICB0aGlzLmNvbm5lY3Rpb24uc3RhcnQoKS50aGVuKCgpID0+IHtcclxuICAgICAgICB0aGlzLmNvbm5lY3Rpb24uaW52b2tlKCdnZXRDb25uZWN0aW9uSWQnKVxyXG4gICAgICAgICAgLnRoZW4oKGNvbm5lY3Rpb25JZDogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBTaWduYWxSIGNvbm5lY3Rpb24gc3VjY2VzcyEgY29ubmVjdGlvbklkOiAke2Nvbm5lY3Rpb25JZH1gKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgIH0pO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5sb2coYFNpZ25hbFIgY29ubmVjdGlvbiBlcnJvcjogJHtlcnJvcn1gKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN1YnNjcmliZSA9IChcclxuICAgIGRhdGFDb250ZXh0OiBUcnVEYXRhQ29udGV4dCxcclxuICAgIGVudGl0eTogdHlwZW9mIFRydUVudGl0eUJhc2UsXHJcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcclxuICAgIGdldExhdGVzdFJlc3VsdHM6ICgpID0+IGFueSxcclxuICAgIGdldExhdGVzdFF1ZXJ5OiAoKSA9PiBhbnksXHJcbiAgICBjb250ZXh0RmlsdGVyczogW10sXHJcbiAgICBleHBhbmRQYXRoczogQXJyYXk8c3RyaW5nPixcclxuICAgIGlzTG9hZGVkOiAoKSA9PiBib29sZWFuKTogU3ViamVjdDxUcnVEYXRhQ2hhbmdlPiA9PiB7XHJcbiAgICByZXR1cm4gbmV3IFRydURhdGFDaGFuZ2VQYXJzZXIoXHJcbiAgICAgIHRoaXMuY29ubmVjdGlvbixcclxuICAgICAgZGF0YUNvbnRleHQsXHJcbiAgICAgIHRoaXMuYXBwRW52aXJvbm1lbnQuZ2xvYmFsRGF0YUNvbnRleHQsXHJcbiAgICAgIGVudGl0eSwgdGFibGVOYW1lLFxyXG4gICAgICBnZXRMYXRlc3RSZXN1bHRzLFxyXG4gICAgICBnZXRMYXRlc3RRdWVyeSxcclxuICAgICAgY29udGV4dEZpbHRlcnMsXHJcbiAgICAgIGV4cGFuZFBhdGhzLFxyXG4gICAgICBpc0xvYWRlZCxcclxuICAgICAgdGhpcy5tb2RlbFByb3BlcnR5TG9va3VwKS5vbkRhdGFDaGFuZ2VkKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==