ngx-sfc-common 0.0.30 → 0.0.32

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.
@@ -147,7 +147,7 @@ export class LoadContainerComponent {
147
147
  })), loader$ = this.pagination ? pagination$ : more$;
148
148
  return loader$.pipe(map(() => ({ params: params, page: this.page })));
149
149
  }));
150
- return combineLatest([this.sortingService.sorting$.pipe(startWith(this.model.sorting)), parameters$]).pipe(tap(() => this.loading = true), map(([sorting, parameters]) => ({ params: parameters.params, page: parameters.page, sorting: sorting })));
150
+ return combineLatest([this.sortingService.sorting$.pipe(startWith(this.model.sorting)), parameters$]).pipe(tap(() => this.loading = true), map(([sorting, parameters]) => ({ params: parameters.params, page: parameters.page, size: this.model.pagination?.size, sorting: sorting })));
151
151
  }
152
152
  buildDynamic(parameters$, loader) {
153
153
  return parameters$.pipe(switchMap((parameters) => loader(parameters)), map((model) => ({ ...model, reset: this.reset, page: this.page })));
@@ -159,7 +159,7 @@ export class LoadContainerComponent {
159
159
  if (this.source == LoadContainerChangesSource.Data
160
160
  && parameters.page != LoadMoreService.START_PAGE) {
161
161
  this.resetParameters();
162
- parameters = { params: parameters.params, page: this.page, sorting: parameters.sorting };
162
+ parameters = { params: parameters.params, page: this.page, size: this.model.pagination?.size, sorting: parameters.sorting };
163
163
  }
164
164
  const filtered = model.filter ? model.filter(items, parameters) : items, sorted = parameters.sorting ? sortBy([...filtered], parameters.sorting.id, parameters.sorting.direction) : filtered, data = sorted ? {
165
165
  items: this.model.pagination ? skip(sorted, parameters.page, this.model.pagination?.size) : sorted,
@@ -231,4 +231,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
231
231
  type: HostBinding,
232
232
  args: [`class.${UIClass.Loading}`]
233
233
  }] } });
234
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi9jb21wb25lbnRzL2xvYWQtY29udGFpbmVyL2xvYWQtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZmMtY29tbW9uL3NyYy9saWIvY29tcG9uZW50cy9sb2FkLWNvbnRhaW5lci9sb2FkLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEgsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWdCLEVBQUUsRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUcsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRS9ELE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDOUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQWtCLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDeEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFF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QkFBc0I7dUdBQXRCLHNCQUFzQixnbEJBRnRCLENBQUMsZUFBZSxFQUFFLGlCQUFpQixFQUFFLGFBQWEsQ0FBQyxnSUNwQmhFLHcvQkFnQk07MkZETU8sc0JBQXNCO2tCQU5sQyxTQUFTOytCQUNFLG9CQUFvQixhQUduQixDQUFDLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLENBQUM7Mk5BUzlELEVBQUU7c0JBREQsS0FBSztnQkFLTixJQUFJO3NCQUZILEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsT0FBTztnQkFLcEIsSUFBSTtzQkFGSCxLQUFLOztzQkFDTCxXQUFXO3VCQUFDLFNBQVMsT0FBTyxDQUFDLElBQUksRUFBRTtnQkFLcEMsUUFBUTtzQkFEUCxLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlGLEtBQUs7c0JBRFIsS0FBSztnQkFXTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sZUFBZTtzQkFEZCxLQUFLO2dCQUlOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixXQUFXO3NCQURWLE1BQU07Z0JBSVAsYUFBYTtzQkFEWixNQUFNO2dCQUlQLGFBQWE7c0JBRFosTUFBTTtnQkFJQyxTQUFTO3NCQURoQixTQUFTO3VCQUFDLFNBQVM7Z0JBa0JULE9BQU87c0JBRGpCLFdBQVc7dUJBQUMsU0FBUyxPQUFPLENBQUMsS0FBSyxFQUFFO2dCQVE3QixRQUFRO3NCQURmLFdBQVc7dUJBQUMsU0FBUyxPQUFPLENBQUMsT0FBTyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBtYXAsIHRhcCwgc3dpdGNoTWFwLCBzdGFydFdpdGgsIEVNUFRZLCBTdWJzY3JpcHRpb24sIG9mLCBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbXBvbmVudFNpemUsIFBvc2l0aW9uLCBVSUNsYXNzIH0gZnJvbSAnLi4vLi4vZW51bXMnO1xyXG5pbXBvcnQgeyBJTG9hZENvbnRhaW5lckxvYWRlclJlc3VsdE1vZGVsLCBJTG9hZENvbnRhaW5lclJlc3VsdE1vZGVsIH0gZnJvbSAnLi9tb2RlbHMvbG9hZC1jb250YWluZXItcmVzdWx0Lm1vZGVsJztcclxuaW1wb3J0IHsgYW55LCBpc0RlZmluZWQsIHNraXAsIHNvcnRCeSB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuaW1wb3J0IHsgTG9hZGVyU2VydmljZSB9IGZyb20gJy4uL2xvYWRlci9zZXJ2aWNlL2xvYWRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSUxvYWRDb250YWluZXJQYXJhbWV0ZXJzIH0gZnJvbSAnLi9tb2RlbHMvbG9hZC1jb250YWluZXItcGFyYW1ldGVycy5tb2RlbCc7XHJcbmltcG9ydCB7IElMb2FkQ29udGFpbmVyTW9kZWwsIExvYWRlckZ1bmN0aW9uIH0gZnJvbSAnLi9tb2RlbHMvbG9hZC1jb250YWluZXIubW9kZWwnO1xyXG5pbXBvcnQgeyBMb2FkQ29udGFpbmVyTG9hZFR5cGUgfSBmcm9tICcuL2VudW1zL2xvYWQtY29udGFpbmVyLWxvYWQtdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgTG9hZENvbnRhaW5lckNvbnN0YW50cyB9IGZyb20gJy4vbG9hZC1jb250YWluZXIuY29uc3RhbnRzJztcclxuaW1wb3J0IHsgSUxvYWRDb250YWluZXJQcmVkaWNhdGVQYXJhbWV0ZXJzIH0gZnJvbSAnLi9tb2RlbHMvbG9hZC1jb250YWluZXItcHJlZGljYXRlLXBhcmFtZXRlcnMubW9kZWwnO1xyXG5pbXBvcnQgeyBMb2FkTW9yZVNlcnZpY2UsIFBhZ2luYXRpb25TZXJ2aWNlLCBSZWxvYWRTZXJ2aWNlLCBTb3J0aW5nU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgTG9hZENvbnRhaW5lckNoYW5nZXNTb3VyY2UgfSBmcm9tICcuL2VudW1zL2xvYWQtY29udGFpbmVyLWNoYW5nZXMtc291cmNlLmVudW0nO1xyXG5pbXBvcnQgeyBMb2FkQ29udGFpbmVyVHlwZSB9IGZyb20gJy4vZW51bXMvbG9hZC1jb250YWluZXItdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgUGFnaW5hdGlvbkNvbnN0YW50cyB9IGZyb20gJy4uL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb25zdGFudHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzZmMtbG9hZC1jb250YWluZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9sb2FkLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbG9hZC1jb250YWluZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtMb2FkTW9yZVNlcnZpY2UsIFBhZ2luYXRpb25TZXJ2aWNlLCBSZWxvYWRTZXJ2aWNlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9hZENvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcblxyXG4gIENvbXBvbmVudFNpemUgPSBDb21wb25lbnRTaXplO1xyXG4gIFBvc2l0aW9uID0gUG9zaXRpb247XHJcblxyXG4gIC8vIGxvYWRlciBpZGVudGlmaWNhdG9yXHJcbiAgQElucHV0KClcclxuICBpZCE6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcclxuICB0eXBlOiBMb2FkQ29udGFpbmVyVHlwZSA9IExvYWRDb250YWluZXJUeXBlLkRyb3Bkb3duO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIEBIb3N0QmluZGluZyhgY2xhc3MuJHtVSUNsYXNzLk9wZW59YClcclxuICBvcGVuOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8vIG91dGVyIGZsYWcgdG8gYWxsb3cgbG9hZCBtb3JlIG9yIG5vdFxyXG4gIEBJbnB1dCgpXHJcbiAgbG9hZE1vcmU6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGxvYWRNb3JlTGFiZWw6IHN0cmluZyA9IExvYWRDb250YWluZXJDb25zdGFudHMuREVGQVVMVF9TSE9XX01PUkVfTEFCRUw7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd0VtcHR5OiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBlbXB0eUxhYmVsOiBzdHJpbmcgPSBMb2FkQ29udGFpbmVyQ29uc3RhbnRzLkRFRkFVTFRfRU1QVFlfTEFCRUw7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IG1vZGVsKHZhbHVlOiBJTG9hZENvbnRhaW5lck1vZGVsKSB7XHJcbiAgICB0aGlzLl9tb2RlbCA9IHZhbHVlO1xyXG4gICAgdGhpcy5zdWJzY3JpYmUoKTtcclxuICB9XHJcbiAgZ2V0IG1vZGVsKCk6IElMb2FkQ29udGFpbmVyTW9kZWwge1xyXG4gICAgcmV0dXJuIHRoaXMuX21vZGVsO1xyXG4gIH1cclxuICBfbW9kZWwhOiBJTG9hZENvbnRhaW5lck1vZGVsO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNjcm9sbFRhcmdldCE6IEhUTUxFbGVtZW50O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHBhZ2luYXRpb25Db3VudDogbnVtYmVyID0gUGFnaW5hdGlvbkNvbnN0YW50cy5ERUZBVUxUX0NPVU5UO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHBhZ2luYXRpb25MaW1pdHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBzaG93TG9hZGluZzogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGhhbmRsZUVycm9yOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBoYW5kbGVTdWNjZXNzOiBFdmVudEVtaXR0ZXI8SUxvYWRDb250YWluZXJSZXN1bHRNb2RlbDxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXI8SUxvYWRDb250YWluZXJSZXN1bHRNb2RlbDxhbnk+PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBoYW5kbGVMb2FkaW5nOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnQnKVxyXG4gIHByaXZhdGUgY29udGVudEVsITogRWxlbWVudFJlZjtcclxuXHJcbiAgcHVibGljIGdldCBzY3JvbGxQb3NpdGlvbigpOiBQb3NpdGlvbltdIHtcclxuICAgIHJldHVybiAhdGhpcy5hbGxvd0xvYWRNb3JlIHx8IHRoaXMuc2hvd0xvYWRNb3JlQnV0dG9uID8gW10gOiBbUG9zaXRpb24uQm90dG9tXTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgYWxsb3dMb2FkTW9yZSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMubmV4dCAmJiB0aGlzLmxvYWRNb3JlOyB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaGlkZUxvYWRNb3JlQnV0dG9uKCk6IGJvb2xlYW4geyByZXR1cm4gISh0aGlzLmFsbG93TG9hZE1vcmUgJiYgdGhpcy5zaG93TG9hZE1vcmVCdXR0b24pOyB9XHJcblxyXG4gIHB1YmxpYyBuZXh0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBlbXB0eTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgdG90YWw6IG51bWJlciA9IExvYWRDb250YWluZXJDb25zdGFudHMuREVGQVVMVF9UT1RBTDtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKGBjbGFzcy4ke1VJQ2xhc3MuRW1wdHl9YClcclxuICBwdWJsaWMgZ2V0IGlzRW1wdHkoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLmVtcHR5ICYmIHRoaXMuc2hvd0VtcHR5OyB9XHJcblxyXG4gIHB1YmxpYyBnZXQgcGFnZSgpOiBudW1iZXIgeyByZXR1cm4gdGhpcy5wYWdpbmF0aW9uID8gdGhpcy5wYWdpbmF0aW9uU2VydmljZS5wYWdlVmFsdWUgOiB0aGlzLmxvYWRNb3JlU2VydmljZS5wYWdlVmFsdWU7IH1cclxuXHJcbiAgcHVibGljIGdldCBzaG93UGFnaW5hdGlvbigpOiBib29sZWFuIHsgcmV0dXJuIEJvb2xlYW4odGhpcy50b3RhbCkgJiYgIXRoaXMuZW1wdHkgJiYgdGhpcy5wYWdpbmF0aW9uOyB9XHJcblxyXG4gIEBIb3N0QmluZGluZyhgY2xhc3MuJHtVSUNsYXNzLkxvYWRpbmd9YClcclxuICBwcml2YXRlIF9sb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBzZXQgbG9hZGluZyh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fbG9hZGluZyA9IHZhbHVlO1xyXG4gICAgaWYgKHZhbHVlKVxyXG4gICAgICB0aGlzLmxvYWRlclNlcnZpY2Uuc2hvdyh0aGlzLmlkLCB0cnVlKTtcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5sb2FkZXJTZXJ2aWNlLmhpZGUodGhpcy5pZCk7XHJcblxyXG4gICAgdGhpcy5oYW5kbGVMb2FkaW5nLmVtaXQodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQgc2hvd0xvYWRNb3JlQnV0dG9uKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMubW9kZWwubG9hZFR5cGUgPT0gTG9hZENvbnRhaW5lckxvYWRUeXBlLkJ1dHRvbjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0IHJlc2V0KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc291cmNlID09IExvYWRDb250YWluZXJDaGFuZ2VzU291cmNlLlByZWRpY2F0ZSB8fFxyXG4gICAgICB0aGlzLnNvdXJjZSA9PSBMb2FkQ29udGFpbmVyQ2hhbmdlc1NvdXJjZS5QYWdlIHx8XHJcbiAgICAgIHRoaXMuc291cmNlID09IExvYWRDb250YWluZXJDaGFuZ2VzU291cmNlLkRhdGE7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldCBwYWdpbmF0aW9uKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5tb2RlbC5sb2FkVHlwZSA9PSBMb2FkQ29udGFpbmVyTG9hZFR5cGUuUGFnaW5hdGlvbiAmJiBpc0RlZmluZWQodGhpcy5tb2RlbC5wYWdpbmF0aW9uKTsgfVxyXG5cclxuICBwcml2YXRlIF9zdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIC8vIGRlZmluZSB3aGF0IHNvdXJjZSBlbWl0IGNoYW5nZXMgZm9yIGRhdGFcclxuICBwcml2YXRlIHNvdXJjZTogTG9hZENvbnRhaW5lckNoYW5nZXNTb3VyY2UgPSBMb2FkQ29udGFpbmVyQ2hhbmdlc1NvdXJjZS5Jbml0aWFsO1xyXG5cclxuICBwcml2YXRlIHByZWRpY2F0ZUNoYW5nZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGxvYWRlclNlcnZpY2U6IExvYWRlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGxvYWRNb3JlU2VydmljZTogTG9hZE1vcmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBwYWdpbmF0aW9uU2VydmljZTogUGFnaW5hdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNvcnRpbmdTZXJ2aWNlOiBTb3J0aW5nU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVsb2FkU2VydmljZTogUmVsb2FkU2VydmljZSkgeyB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX3N1YnNjcmlwdGlvbilcclxuICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbW9yZShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIHRoaXMubG9hZE1vcmVTZXJ2aWNlLm1vcmUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblNjcm9sbCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmFsbG93TG9hZE1vcmUpXHJcbiAgICAgIHRoaXMubG9hZE1vcmVTZXJ2aWNlLm1vcmUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3VjY2VzcyhyZXN1bHQ6IElMb2FkQ29udGFpbmVyUmVzdWx0TW9kZWw8YW55Pik6IHZvaWQge1xyXG4gICAgdGhpcy5uZXh0ID0gcmVzdWx0Lm5leHQ7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgIHRoaXMuZW1wdHkgPSAhYW55KHJlc3VsdC5pdGVtcyk7XHJcbiAgICB0aGlzLnRvdGFsID0gcmVzdWx0LnRvdGFsITtcclxuICAgIHRoaXMubG9hZE1vcmUgPSB0cnVlO1xyXG4gICAgdGhpcy5oYW5kbGVTdWNjZXNzLmVtaXQocmVzdWx0KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZXJyb3IoZXJyb3I6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICB0aGlzLmVtcHR5ID0gZmFsc2U7XHJcbiAgICB0aGlzLnRvdGFsID0gMDtcclxuICAgIHRoaXMuaGFuZGxlRXJyb3IuZW1pdChlcnJvcik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN1YnNjcmliZSgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5tb2RlbCkgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMucGFnaW5hdGlvblNlcnZpY2UucGFnZVZhbHVlID0gdGhpcy5tb2RlbC5wYWdpbmF0aW9uPy5wYWdlIHx8IFBhZ2luYXRpb25Db25zdGFudHMuREVGQVVMVF9QQUdJTkFUSU9OLnBhZ2U7XHJcblxyXG4gICAgaWYgKCF0aGlzLm1vZGVsLnByZWRpY2F0ZSQpIHtcclxuICAgICAgdGhpcy5tb2RlbC5wcmVkaWNhdGUkID0gRU1QVFkucGlwZShzdGFydFdpdGgobnVsbCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHByZWRpY2F0ZSQ6IE9ic2VydmFibGU8SUxvYWRDb250YWluZXJQcmVkaWNhdGVQYXJhbWV0ZXJzIHwgbnVsbD4gPSBjb21iaW5lTGF0ZXN0KFtcclxuICAgICAgdGhpcy5tb2RlbC5wcmVkaWNhdGUkLFxyXG4gICAgICB0aGlzLnJlbG9hZFNlcnZpY2UucmVsb2FkJC5waXBlKHN0YXJ0V2l0aChudWxsKSlcclxuICAgIF0pLnBpcGUobWFwKChbbW9kZWwsIF9dKSA9PiBtb2RlbCkpLFxyXG4gICAgICBwYXJhbWV0ZXJzJCA9IHRoaXMuYnVpbGRQYXJhbWV0ZXJzKHByZWRpY2F0ZSQpLFxyXG4gICAgICBkYXRhJDogT2JzZXJ2YWJsZTxJTG9hZENvbnRhaW5lclJlc3VsdE1vZGVsPGFueT4+ID0gaXNEZWZpbmVkKHRoaXMubW9kZWwubG9hZGVyKVxyXG4gICAgICAgID8gdGhpcy5idWlsZER5bmFtaWMocGFyYW1ldGVycyQsIHRoaXMubW9kZWwubG9hZGVyIGFzIExvYWRlckZ1bmN0aW9uKVxyXG4gICAgICAgIDogdGhpcy5idWlsZFN0YXRpYyhwYXJhbWV0ZXJzJCwgdGhpcy5tb2RlbCk7XHJcblxyXG4gICAgaWYgKGlzRGVmaW5lZCh0aGlzLl9zdWJzY3JpcHRpb24pKVxyXG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24gPSBkYXRhJC5zdWJzY3JpYmUoXHJcbiAgICAgIHtcclxuICAgICAgICBuZXh0OiAocmVzdWx0OiBJTG9hZENvbnRhaW5lclJlc3VsdE1vZGVsPGFueT4pID0+IHRoaXMuc3VjY2VzcyhyZXN1bHQpLFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHRoaXMuZXJyb3IoZXJyb3IpXHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkUGFyYW1ldGVycyhwcmVkaWNhdGUkOiBPYnNlcnZhYmxlPElMb2FkQ29udGFpbmVyUHJlZGljYXRlUGFyYW1ldGVycyB8IG51bGw+KVxyXG4gICAgOiBPYnNlcnZhYmxlPElMb2FkQ29udGFpbmVyUGFyYW1ldGVycz4ge1xyXG4gICAgY29uc3QgcGFyYW1ldGVycyQgPSBwcmVkaWNhdGUkLnBpcGUoXHJcbiAgICAgIHRhcCgocGFyYW1zOiBJTG9hZENvbnRhaW5lclByZWRpY2F0ZVBhcmFtZXRlcnMgfCBudWxsKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuc291cmNlICE9IExvYWRDb250YWluZXJDaGFuZ2VzU291cmNlLkluaXRpYWwgJiYgIXBhcmFtcz8ucmVsb2FkKVxyXG4gICAgICAgICAgdGhpcy5yZXNldFBhcmFtZXRlcnMoKTtcclxuXHJcbiAgICAgICAgdGhpcy5zb3VyY2UgPSBMb2FkQ29udGFpbmVyQ2hhbmdlc1NvdXJjZS5QcmVkaWNhdGU7XHJcbiAgICAgICAgdGhpcy5wcmVkaWNhdGVDaGFuZ2VkID0gdHJ1ZTtcclxuICAgICAgfSksXHJcbiAgICAgIHN3aXRjaE1hcCgocGFyYW1zOiBJTG9hZENvbnRhaW5lclByZWRpY2F0ZVBhcmFtZXRlcnMgfCBudWxsKSA9PiB7XHJcbiAgICAgICAgY29uc3QgbW9yZSQgPSB0aGlzLmxvYWRNb3JlU2VydmljZS5tb3JlJC5waXBlKFxyXG4gICAgICAgICAgc3RhcnRXaXRoKFBhZ2luYXRpb25Db25zdGFudHMuREVGQVVMVF9QQUdFKSxcclxuICAgICAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5wcmVkaWNhdGVDaGFuZ2VkKVxyXG4gICAgICAgICAgICAgIHRoaXMuc291cmNlID0gTG9hZENvbnRhaW5lckNoYW5nZXNTb3VyY2UuTW9yZTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMubG9hZE1vcmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5wcmVkaWNhdGVDaGFuZ2VkID0gZmFsc2U7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICksXHJcbiAgICAgICAgICBwYWdpbmF0aW9uJCA9IHRoaXMucGFnaW5hdGlvblNlcnZpY2UucGFnZSQucGlwZShcclxuICAgICAgICAgICAgc3RhcnRXaXRoKHRoaXMubW9kZWwucGFnaW5hdGlvbj8ucGFnZSB8fCBQYWdpbmF0aW9uQ29uc3RhbnRzLkRFRkFVTFRfUEFHRSksXHJcbiAgICAgICAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKCF0aGlzLnByZWRpY2F0ZUNoYW5nZWQpXHJcbiAgICAgICAgICAgICAgICB0aGlzLnNvdXJjZSA9IExvYWRDb250YWluZXJDaGFuZ2VzU291cmNlLlBhZ2U7XHJcblxyXG4gICAgICAgICAgICAgIHRoaXMucHJlZGljYXRlQ2hhbmdlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKSxcclxuICAgICAgICAgIGxvYWRlciQgPSB0aGlzLnBhZ2luYXRpb24gPyBwYWdpbmF0aW9uJCA6IG1vcmUkO1xyXG5cclxuICAgICAgICByZXR1cm4gbG9hZGVyJC5waXBlKFxyXG4gICAgICAgICAgbWFwKCgpID0+ICh7IHBhcmFtczogcGFyYW1zISwgcGFnZTogdGhpcy5wYWdlIH0pKVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG5cclxuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFt0aGlzLnNvcnRpbmdTZXJ2aWNlLnNvcnRpbmckLnBpcGUoc3RhcnRXaXRoKHRoaXMubW9kZWwuc29ydGluZykpLCBwYXJhbWV0ZXJzJF0pLnBpcGUoXHJcbiAgICAgIHRhcCgoKSA9PiB0aGlzLmxvYWRpbmcgPSB0cnVlKSxcclxuICAgICAgbWFwKChbc29ydGluZywgcGFyYW1ldGVyc10pID0+ICh7IHBhcmFtczogcGFyYW1ldGVycy5wYXJhbXMhLCBwYWdlOiBwYXJhbWV0ZXJzLnBhZ2UsIHNvcnRpbmc6IHNvcnRpbmcgfSkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZER5bmFtaWMocGFyYW1ldGVycyQ6IE9ic2VydmFibGU8SUxvYWRDb250YWluZXJQYXJhbWV0ZXJzPiwgbG9hZGVyOiBMb2FkZXJGdW5jdGlvbilcclxuICAgIDogT2JzZXJ2YWJsZTxJTG9hZENvbnRhaW5lclJlc3VsdE1vZGVsPGFueT4+IHtcclxuICAgIHJldHVybiBwYXJhbWV0ZXJzJC5waXBlKFxyXG4gICAgICBzd2l0Y2hNYXAoKHBhcmFtZXRlcnM6IElMb2FkQ29udGFpbmVyUGFyYW1ldGVycykgPT4gbG9hZGVyKHBhcmFtZXRlcnMpKSxcclxuICAgICAgbWFwKChtb2RlbDogSUxvYWRDb250YWluZXJMb2FkZXJSZXN1bHRNb2RlbDxhbnk+KSA9PiAoeyAuLi5tb2RlbCwgcmVzZXQ6IHRoaXMucmVzZXQsIHBhZ2U6IHRoaXMucGFnZSB9KSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkU3RhdGljKHBhcmFtZXRlcnMkOiBPYnNlcnZhYmxlPElMb2FkQ29udGFpbmVyUGFyYW1ldGVycz4sIG1vZGVsOiBJTG9hZENvbnRhaW5lck1vZGVsKVxyXG4gICAgOiBPYnNlcnZhYmxlPElMb2FkQ29udGFpbmVyUmVzdWx0TW9kZWw8YW55Pj4ge1xyXG4gICAgY29uc3QgZGF0YSQgPSAobW9kZWwuZGF0YSQgfHwgb2YoW10pKS5waXBlKFxyXG4gICAgICBtYXAoKGRhdGEsIGluZGV4KSA9PiAoeyBkYXRhLCBpbmRleCB9KSksXHJcbiAgICAgIHRhcChtb2RlbCA9PiB0aGlzLnNvdXJjZSA9IG1vZGVsLmluZGV4ID8gTG9hZENvbnRhaW5lckNoYW5nZXNTb3VyY2UuRGF0YSA6IHRoaXMuc291cmNlKSxcclxuICAgICAgbWFwKG1vZGVsID0+IG1vZGVsLmRhdGEpXHJcbiAgICApO1xyXG5cclxuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtwYXJhbWV0ZXJzJCwgZGF0YSRdKS5waXBlKFxyXG4gICAgICBtYXAoKFtwYXJhbWV0ZXJzLCBpdGVtc10pID0+IHtcclxuICAgICAgICAvLyBpZiBkYXRhIGNoYW5nZWQgbmVlZCB0byBzdGFydCBmcm9tIHN0YXJ0IChwYWdpbmF0aW9uKVxyXG4gICAgICAgIGlmICh0aGlzLnNvdXJjZSA9PSBMb2FkQ29udGFpbmVyQ2hhbmdlc1NvdXJjZS5EYXRhXHJcbiAgICAgICAgICAmJiBwYXJhbWV0ZXJzLnBhZ2UgIT0gTG9hZE1vcmVTZXJ2aWNlLlNUQVJUX1BBR0UpIHtcclxuICAgICAgICAgIHRoaXMucmVzZXRQYXJhbWV0ZXJzKCk7XHJcbiAgICAgICAgICBwYXJhbWV0ZXJzID0geyBwYXJhbXM6IHBhcmFtZXRlcnMucGFyYW1zLCBwYWdlOiB0aGlzLnBhZ2UsIHNvcnRpbmc6IHBhcmFtZXRlcnMuc29ydGluZyB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZmlsdGVyZWQgPSBtb2RlbC5maWx0ZXIgPyBtb2RlbC5maWx0ZXIoaXRlbXMsIHBhcmFtZXRlcnMpIDogaXRlbXMsXHJcbiAgICAgICAgICBzb3J0ZWQgPSBwYXJhbWV0ZXJzLnNvcnRpbmcgPyBzb3J0QnkoWy4uLmZpbHRlcmVkXSwgcGFyYW1ldGVycy5zb3J0aW5nLmlkLCBwYXJhbWV0ZXJzLnNvcnRpbmcuZGlyZWN0aW9uKSA6IGZpbHRlcmVkLFxyXG4gICAgICAgICAgZGF0YTogSUxvYWRDb250YWluZXJSZXN1bHRNb2RlbDxhbnk+ID0gc29ydGVkID8ge1xyXG4gICAgICAgICAgICBpdGVtczogdGhpcy5tb2RlbC5wYWdpbmF0aW9uID8gc2tpcChzb3J0ZWQsIHBhcmFtZXRlcnMucGFnZSwgdGhpcy5tb2RlbC5wYWdpbmF0aW9uPy5zaXplISkgOiBzb3J0ZWQsXHJcbiAgICAgICAgICAgIG5leHQ6IHRoaXMubW9kZWwucGFnaW5hdGlvbiA/IHBhcmFtZXRlcnMucGFnZSA8IE1hdGguY2VpbChzb3J0ZWQubGVuZ3RoIC8gdGhpcy5tb2RlbC5wYWdpbmF0aW9uPy5zaXplISkgOiBmYWxzZSxcclxuICAgICAgICAgICAgcmVzZXQ6IHRoaXMucmVzZXQsXHJcbiAgICAgICAgICAgIHRvdGFsOiBzb3J0ZWQubGVuZ3RoLFxyXG4gICAgICAgICAgICBwYWdlOiBwYXJhbWV0ZXJzLnBhZ2VcclxuICAgICAgICAgIH0gOiB7IGl0ZW1zOiBbXSwgbmV4dDogZmFsc2UsIHJlc2V0OiB0aGlzLnJlc2V0LCB0b3RhbDogaXRlbXMubGVuZ3RoLCBwYWdlOiBwYXJhbWV0ZXJzLnBhZ2UgfTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGRhdGE7XHJcbiAgICAgIH0pKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVzZXRQYXJhbWV0ZXJzKCk6IHZvaWQge1xyXG4gICAgaWYgKGlzRGVmaW5lZCh0aGlzLmNvbnRlbnRFbCkpXHJcbiAgICAgIHRoaXMuY29udGVudEVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID0gMDtcclxuXHJcbiAgICBpZiAodGhpcy5wYWdpbmF0aW9uKVxyXG4gICAgICB0aGlzLnBhZ2luYXRpb25TZXJ2aWNlLnJlc2V0KCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMubG9hZE1vcmVTZXJ2aWNlLnJlc2V0KCk7XHJcbiAgfVxyXG59IiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gICAgPHNmYy1ib3VuY2UtbG9hZGVyICpuZ0lmPVwic2hvd0xvYWRpbmdcIiBbaWRdPVwiaWRcIiBbc2ZjQ29tcG9uZW50U2l6ZV09XCJDb21wb25lbnRTaXplLlNtYWxsXCI+PC9zZmMtYm91bmNlLWxvYWRlcj5cclxuICAgIDxkaXYgI2NvbnRlbnQgY2xhc3M9XCJjb250ZW50XCIgW3NmY1Njcm9sbEludG9WaWV3XT1cInNjcm9sbFRhcmdldFwiIChzZmNTY3JvbGxUcmFja2VyKT1cIm9uU2Nyb2xsKClcIlxyXG4gICAgICAgIFtwb3NpdGlvbnNdPVwic2Nyb2xsUG9zaXRpb25cIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbXNcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCIgKHNmY01vdXNlRG93bik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiPlxyXG4gICAgICAgICAgICA8c2ZjLWxvYWQtbW9yZS1idXR0b24gW2hpZGRlbl09XCJoaWRlTG9hZE1vcmVCdXR0b25cIiAobW9yZSk9XCJtb3JlKCRldmVudClcIiBbbGFiZWxdPVwibG9hZE1vcmVMYWJlbFwiPlxyXG4gICAgICAgICAgICA8L3NmYy1sb2FkLW1vcmUtYnV0dG9uPlxyXG4gICAgICAgICAgICA8c2ZjLXBhZ2luYXRpb24gKm5nSWY9XCJzaG93UGFnaW5hdGlvblwiIFtsaW1pdHNdPVwicGFnaW5hdGlvbkxpbWl0c1wiIFtjb3VudF09XCJwYWdpbmF0aW9uQ291bnRcIiBbZnVsbF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICBbdG90YWxdPVwidG90YWxcIiBbc2l6ZV09XCJtb2RlbC5wYWdpbmF0aW9uPy5zaXplIVwiIFtwYWdlXT1cInBhZ2VcIj5cclxuICAgICAgICAgICAgPC9zZmMtcGFnaW5hdGlvbj5cclxuICAgICAgICAgICAgPHNmYy1kZWxpbWV0ZXIgKm5nSWY9XCJpc0VtcHR5XCIgW2xhYmVsXT1cImVtcHR5TGFiZWxcIj48L3NmYy1kZWxpbWV0ZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
234
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi9jb21wb25lbnRzL2xvYWQtY29udGFpbmVyL2xvYWQtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZmMtY29tbW9uL3NyYy9saWIvY29tcG9uZW50cy9sb2FkLWNvbnRhaW5lci9sb2FkLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEgsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWdCLEVBQUUsRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUcsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRS9ELE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDOUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQWtCLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDeEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFF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LElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQzs7WUFFL0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNqQyxDQUFDOzttSEFsUlUsc0JBQXNCO3VHQUF0QixzQkFBc0IsZ2xCQUZ0QixDQUFDLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLENBQUMsZ0lDcEJoRSx3L0JBZ0JNOzJGRE1PLHNCQUFzQjtrQkFObEMsU0FBUzsrQkFDRSxvQkFBb0IsYUFHbkIsQ0FBQyxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxDQUFDOzJOQVM5RCxFQUFFO3NCQURELEtBQUs7Z0JBS04sSUFBSTtzQkFGSCxLQUFLOztzQkFDTCxXQUFXO3VCQUFDLE9BQU87Z0JBS3BCLElBQUk7c0JBRkgsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxTQUFTLE9BQU8sQ0FBQyxJQUFJLEVBQUU7Z0JBS3BDLFFBQVE7c0JBRFAsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSztnQkFJRixLQUFLO3NCQURSLEtBQUs7Z0JBV04sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLGVBQWU7c0JBRGQsS0FBSztnQkFJTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixNQUFNO2dCQUlQLGFBQWE7c0JBRFosTUFBTTtnQkFJUCxhQUFhO3NCQURaLE1BQU07Z0JBSUMsU0FBUztzQkFEaEIsU0FBUzt1QkFBQyxTQUFTO2dCQWtCVCxPQUFPO3NCQURqQixXQUFXO3VCQUFDLFNBQVMsT0FBTyxDQUFDLEtBQUssRUFBRTtnQkFRN0IsUUFBUTtzQkFEZixXQUFXO3VCQUFDLFNBQVMsT0FBTyxDQUFDLE9BQU8sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgbWFwLCB0YXAsIHN3aXRjaE1hcCwgc3RhcnRXaXRoLCBFTVBUWSwgU3Vic2NyaXB0aW9uLCBvZiwgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRTaXplLCBQb3NpdGlvbiwgVUlDbGFzcyB9IGZyb20gJy4uLy4uL2VudW1zJztcclxuaW1wb3J0IHsgSUxvYWRDb250YWluZXJMb2FkZXJSZXN1bHRNb2RlbCwgSUxvYWRDb250YWluZXJSZXN1bHRNb2RlbCB9IGZyb20gJy4vbW9kZWxzL2xvYWQtY29udGFpbmVyLXJlc3VsdC5tb2RlbCc7XHJcbmltcG9ydCB7IGFueSwgaXNEZWZpbmVkLCBza2lwLCBzb3J0QnkgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IExvYWRlclNlcnZpY2UgfSBmcm9tICcuLi9sb2FkZXIvc2VydmljZS9sb2FkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IElMb2FkQ29udGFpbmVyUGFyYW1ldGVycyB9IGZyb20gJy4vbW9kZWxzL2xvYWQtY29udGFpbmVyLXBhcmFtZXRlcnMubW9kZWwnO1xyXG5pbXBvcnQgeyBJTG9hZENvbnRhaW5lck1vZGVsLCBMb2FkZXJGdW5jdGlvbiB9IGZyb20gJy4vbW9kZWxzL2xvYWQtY29udGFpbmVyLm1vZGVsJztcclxuaW1wb3J0IHsgTG9hZENvbnRhaW5lckxvYWRUeXBlIH0gZnJvbSAnLi9lbnVtcy9sb2FkLWNvbnRhaW5lci1sb2FkLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IExvYWRDb250YWluZXJDb25zdGFudHMgfSBmcm9tICcuL2xvYWQtY29udGFpbmVyLmNvbnN0YW50cyc7XHJcbmltcG9ydCB7IElMb2FkQ29udGFpbmVyUHJlZGljYXRlUGFyYW1ldGVycyB9IGZyb20gJy4vbW9kZWxzL2xvYWQtY29udGFpbmVyLXByZWRpY2F0ZS1wYXJhbWV0ZXJzLm1vZGVsJztcclxuaW1wb3J0IHsgTG9hZE1vcmVTZXJ2aWNlLCBQYWdpbmF0aW9uU2VydmljZSwgUmVsb2FkU2VydmljZSwgU29ydGluZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IExvYWRDb250YWluZXJDaGFuZ2VzU291cmNlIH0gZnJvbSAnLi9lbnVtcy9sb2FkLWNvbnRhaW5lci1jaGFuZ2VzLXNvdXJjZS5lbnVtJztcclxuaW1wb3J0IHsgTG9hZENvbnRhaW5lclR5cGUgfSBmcm9tICcuL2VudW1zL2xvYWQtY29udGFpbmVyLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IFBhZ2luYXRpb25Db25zdGFudHMgfSBmcm9tICcuLi9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29uc3RhbnRzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ZjLWxvYWQtY29udGFpbmVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbG9hZC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2xvYWQtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbTG9hZE1vcmVTZXJ2aWNlLCBQYWdpbmF0aW9uU2VydmljZSwgUmVsb2FkU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIExvYWRDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBDb21wb25lbnRTaXplID0gQ29tcG9uZW50U2l6ZTtcclxuICBQb3NpdGlvbiA9IFBvc2l0aW9uO1xyXG5cclxuICAvLyBsb2FkZXIgaWRlbnRpZmljYXRvclxyXG4gIEBJbnB1dCgpXHJcbiAgaWQhOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXHJcbiAgdHlwZTogTG9hZENvbnRhaW5lclR5cGUgPSBMb2FkQ29udGFpbmVyVHlwZS5Ecm9wZG93bjtcclxuXHJcbiAgQElucHV0KClcclxuICBASG9zdEJpbmRpbmcoYGNsYXNzLiR7VUlDbGFzcy5PcGVufWApXHJcbiAgb3BlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvLyBvdXRlciBmbGFnIHRvIGFsbG93IGxvYWQgbW9yZSBvciBub3RcclxuICBASW5wdXQoKVxyXG4gIGxvYWRNb3JlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBsb2FkTW9yZUxhYmVsOiBzdHJpbmcgPSBMb2FkQ29udGFpbmVyQ29uc3RhbnRzLkRFRkFVTFRfU0hPV19NT1JFX0xBQkVMO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNob3dFbXB0eTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZW1wdHlMYWJlbDogc3RyaW5nID0gTG9hZENvbnRhaW5lckNvbnN0YW50cy5ERUZBVUxUX0VNUFRZX0xBQkVMO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBtb2RlbCh2YWx1ZTogSUxvYWRDb250YWluZXJNb2RlbCkge1xyXG4gICAgdGhpcy5fbW9kZWwgPSB2YWx1ZTtcclxuICAgIHRoaXMuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG4gIGdldCBtb2RlbCgpOiBJTG9hZENvbnRhaW5lck1vZGVsIHtcclxuICAgIHJldHVybiB0aGlzLl9tb2RlbDtcclxuICB9XHJcbiAgX21vZGVsITogSUxvYWRDb250YWluZXJNb2RlbDtcclxuXHJcbiAgQElucHV0KClcclxuICBzY3JvbGxUYXJnZXQhOiBIVE1MRWxlbWVudDtcclxuXHJcbiAgQElucHV0KClcclxuICBwYWdpbmF0aW9uQ291bnQ6IG51bWJlciA9IFBhZ2luYXRpb25Db25zdGFudHMuREVGQVVMVF9DT1VOVDtcclxuXHJcbiAgQElucHV0KClcclxuICBwYWdpbmF0aW9uTGltaXRzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd0xvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBoYW5kbGVFcnJvcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgaGFuZGxlU3VjY2VzczogRXZlbnRFbWl0dGVyPElMb2FkQ29udGFpbmVyUmVzdWx0TW9kZWw8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyPElMb2FkQ29udGFpbmVyUmVzdWx0TW9kZWw8YW55Pj4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgaGFuZGxlTG9hZGluZzogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBAVmlld0NoaWxkKCdjb250ZW50JylcclxuICBwcml2YXRlIGNvbnRlbnRFbCE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIHB1YmxpYyBnZXQgc2Nyb2xsUG9zaXRpb24oKTogUG9zaXRpb25bXSB7XHJcbiAgICByZXR1cm4gIXRoaXMuYWxsb3dMb2FkTW9yZSB8fCB0aGlzLnNob3dMb2FkTW9yZUJ1dHRvbiA/IFtdIDogW1Bvc2l0aW9uLkJvdHRvbV07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGFsbG93TG9hZE1vcmUoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLm5leHQgJiYgdGhpcy5sb2FkTW9yZTsgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGhpZGVMb2FkTW9yZUJ1dHRvbigpOiBib29sZWFuIHsgcmV0dXJuICEodGhpcy5hbGxvd0xvYWRNb3JlICYmIHRoaXMuc2hvd0xvYWRNb3JlQnV0dG9uKTsgfVxyXG5cclxuICBwdWJsaWMgbmV4dDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgZW1wdHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIHRvdGFsOiBudW1iZXIgPSBMb2FkQ29udGFpbmVyQ29uc3RhbnRzLkRFRkFVTFRfVE9UQUw7XHJcblxyXG4gIEBIb3N0QmluZGluZyhgY2xhc3MuJHtVSUNsYXNzLkVtcHR5fWApXHJcbiAgcHVibGljIGdldCBpc0VtcHR5KCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5lbXB0eSAmJiB0aGlzLnNob3dFbXB0eTsgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHBhZ2UoKTogbnVtYmVyIHsgcmV0dXJuIHRoaXMucGFnaW5hdGlvbiA/IHRoaXMucGFnaW5hdGlvblNlcnZpY2UucGFnZVZhbHVlIDogdGhpcy5sb2FkTW9yZVNlcnZpY2UucGFnZVZhbHVlOyB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2hvd1BhZ2luYXRpb24oKTogYm9vbGVhbiB7IHJldHVybiBCb29sZWFuKHRoaXMudG90YWwpICYmICF0aGlzLmVtcHR5ICYmIHRoaXMucGFnaW5hdGlvbjsgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoYGNsYXNzLiR7VUlDbGFzcy5Mb2FkaW5nfWApXHJcbiAgcHJpdmF0ZSBfbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgc2V0IGxvYWRpbmcodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2xvYWRpbmcgPSB2YWx1ZTtcclxuICAgIGlmICh2YWx1ZSlcclxuICAgICAgdGhpcy5sb2FkZXJTZXJ2aWNlLnNob3codGhpcy5pZCwgdHJ1ZSk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMubG9hZGVyU2VydmljZS5oaWRlKHRoaXMuaWQpO1xyXG5cclxuICAgIHRoaXMuaGFuZGxlTG9hZGluZy5lbWl0KHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0IHNob3dMb2FkTW9yZUJ1dHRvbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLm1vZGVsLmxvYWRUeXBlID09IExvYWRDb250YWluZXJMb2FkVHlwZS5CdXR0b247XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldCByZXNldCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNvdXJjZSA9PSBMb2FkQ29udGFpbmVyQ2hhbmdlc1NvdXJjZS5QcmVkaWNhdGUgfHxcclxuICAgICAgdGhpcy5zb3VyY2UgPT0gTG9hZENvbnRhaW5lckNoYW5nZXNTb3VyY2UuUGFnZSB8fFxyXG4gICAgICB0aGlzLnNvdXJjZSA9PSBMb2FkQ29udGFpbmVyQ2hhbmdlc1NvdXJjZS5EYXRhO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQgcGFnaW5hdGlvbigpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMubW9kZWwubG9hZFR5cGUgPT0gTG9hZENvbnRhaW5lckxvYWRUeXBlLlBhZ2luYXRpb24gJiYgaXNEZWZpbmVkKHRoaXMubW9kZWwucGFnaW5hdGlvbik7IH1cclxuXHJcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAvLyBkZWZpbmUgd2hhdCBzb3VyY2UgZW1pdCBjaGFuZ2VzIGZvciBkYXRhXHJcbiAgcHJpdmF0ZSBzb3VyY2U6IExvYWRDb250YWluZXJDaGFuZ2VzU291cmNlID0gTG9hZENvbnRhaW5lckNoYW5nZXNTb3VyY2UuSW5pdGlhbDtcclxuXHJcbiAgcHJpdmF0ZSBwcmVkaWNhdGVDaGFuZ2VkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBsb2FkZXJTZXJ2aWNlOiBMb2FkZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsb2FkTW9yZVNlcnZpY2U6IExvYWRNb3JlU2VydmljZSxcclxuICAgIHByaXZhdGUgcGFnaW5hdGlvblNlcnZpY2U6IFBhZ2luYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzb3J0aW5nU2VydmljZTogU29ydGluZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlbG9hZFNlcnZpY2U6IFJlbG9hZFNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9zdWJzY3JpcHRpb24pXHJcbiAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG1vcmUoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB0aGlzLmxvYWRNb3JlU2VydmljZS5tb3JlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25TY3JvbGwoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5hbGxvd0xvYWRNb3JlKVxyXG4gICAgICB0aGlzLmxvYWRNb3JlU2VydmljZS5tb3JlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN1Y2Nlc3MocmVzdWx0OiBJTG9hZENvbnRhaW5lclJlc3VsdE1vZGVsPGFueT4pOiB2b2lkIHtcclxuICAgIHRoaXMubmV4dCA9IHJlc3VsdC5uZXh0O1xyXG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICB0aGlzLmVtcHR5ID0gIWFueShyZXN1bHQuaXRlbXMpO1xyXG4gICAgdGhpcy50b3RhbCA9IHJlc3VsdC50b3RhbCE7XHJcbiAgICB0aGlzLmxvYWRNb3JlID0gdHJ1ZTtcclxuICAgIHRoaXMuaGFuZGxlU3VjY2Vzcy5lbWl0KHJlc3VsdCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGVycm9yKGVycm9yOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgdGhpcy5lbXB0eSA9IGZhbHNlO1xyXG4gICAgdGhpcy50b3RhbCA9IDA7XHJcbiAgICB0aGlzLmhhbmRsZUVycm9yLmVtaXQoZXJyb3IpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdWJzY3JpYmUoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMubW9kZWwpIHJldHVybjtcclxuXHJcbiAgICB0aGlzLnBhZ2luYXRpb25TZXJ2aWNlLnBhZ2VWYWx1ZSA9IHRoaXMubW9kZWwucGFnaW5hdGlvbj8ucGFnZSB8fCBQYWdpbmF0aW9uQ29uc3RhbnRzLkRFRkFVTFRfUEFHSU5BVElPTi5wYWdlO1xyXG5cclxuICAgIGlmICghdGhpcy5tb2RlbC5wcmVkaWNhdGUkKSB7XHJcbiAgICAgIHRoaXMubW9kZWwucHJlZGljYXRlJCA9IEVNUFRZLnBpcGUoc3RhcnRXaXRoKG51bGwpKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwcmVkaWNhdGUkOiBPYnNlcnZhYmxlPElMb2FkQ29udGFpbmVyUHJlZGljYXRlUGFyYW1ldGVycyB8IG51bGw+ID0gY29tYmluZUxhdGVzdChbXHJcbiAgICAgIHRoaXMubW9kZWwucHJlZGljYXRlJCxcclxuICAgICAgdGhpcy5yZWxvYWRTZXJ2aWNlLnJlbG9hZCQucGlwZShzdGFydFdpdGgobnVsbCkpXHJcbiAgICBdKS5waXBlKG1hcCgoW21vZGVsLCBfXSkgPT4gbW9kZWwpKSxcclxuICAgICAgcGFyYW1ldGVycyQgPSB0aGlzLmJ1aWxkUGFyYW1ldGVycyhwcmVkaWNhdGUkKSxcclxuICAgICAgZGF0YSQ6IE9ic2VydmFibGU8SUxvYWRDb250YWluZXJSZXN1bHRNb2RlbDxhbnk+PiA9IGlzRGVmaW5lZCh0aGlzLm1vZGVsLmxvYWRlcilcclxuICAgICAgICA/IHRoaXMuYnVpbGREeW5hbWljKHBhcmFtZXRlcnMkLCB0aGlzLm1vZGVsLmxvYWRlciBhcyBMb2FkZXJGdW5jdGlvbilcclxuICAgICAgICA6IHRoaXMuYnVpbGRTdGF0aWMocGFyYW1ldGVycyQsIHRoaXMubW9kZWwpO1xyXG5cclxuICAgIGlmIChpc0RlZmluZWQodGhpcy5fc3Vic2NyaXB0aW9uKSlcclxuICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcblxyXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gZGF0YSQuc3Vic2NyaWJlKFxyXG4gICAgICB7XHJcbiAgICAgICAgbmV4dDogKHJlc3VsdDogSUxvYWRDb250YWluZXJSZXN1bHRNb2RlbDxhbnk+KSA9PiB0aGlzLnN1Y2Nlc3MocmVzdWx0KSxcclxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB0aGlzLmVycm9yKGVycm9yKVxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZFBhcmFtZXRlcnMocHJlZGljYXRlJDogT2JzZXJ2YWJsZTxJTG9hZENvbnRhaW5lclByZWRpY2F0ZVBhcmFtZXRlcnMgfCBudWxsPilcclxuICAgIDogT2JzZXJ2YWJsZTxJTG9hZENvbnRhaW5lclBhcmFtZXRlcnM+IHtcclxuICAgIGNvbnN0IHBhcmFtZXRlcnMkID0gcHJlZGljYXRlJC5waXBlKFxyXG4gICAgICB0YXAoKHBhcmFtczogSUxvYWRDb250YWluZXJQcmVkaWNhdGVQYXJhbWV0ZXJzIHwgbnVsbCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLnNvdXJjZSAhPSBMb2FkQ29udGFpbmVyQ2hhbmdlc1NvdXJjZS5Jbml0aWFsICYmICFwYXJhbXM/LnJlbG9hZClcclxuICAgICAgICAgIHRoaXMucmVzZXRQYXJhbWV0ZXJzKCk7XHJcblxyXG4gICAgICAgIHRoaXMuc291cmNlID0gTG9hZENvbnRhaW5lckNoYW5nZXNTb3VyY2UuUHJlZGljYXRlO1xyXG4gICAgICAgIHRoaXMucHJlZGljYXRlQ2hhbmdlZCA9IHRydWU7XHJcbiAgICAgIH0pLFxyXG4gICAgICBzd2l0Y2hNYXAoKHBhcmFtczogSUxvYWRDb250YWluZXJQcmVkaWNhdGVQYXJhbWV0ZXJzIHwgbnVsbCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG1vcmUkID0gdGhpcy5sb2FkTW9yZVNlcnZpY2UubW9yZSQucGlwZShcclxuICAgICAgICAgIHN0YXJ0V2l0aChQYWdpbmF0aW9uQ29uc3RhbnRzLkRFRkFVTFRfUEFHRSksXHJcbiAgICAgICAgICB0YXAoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMucHJlZGljYXRlQ2hhbmdlZClcclxuICAgICAgICAgICAgICB0aGlzLnNvdXJjZSA9IExvYWRDb250YWluZXJDaGFuZ2VzU291cmNlLk1vcmU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmxvYWRNb3JlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMucHJlZGljYXRlQ2hhbmdlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApLFxyXG4gICAgICAgICAgcGFnaW5hdGlvbiQgPSB0aGlzLnBhZ2luYXRpb25TZXJ2aWNlLnBhZ2UkLnBpcGUoXHJcbiAgICAgICAgICAgIHN0YXJ0V2l0aCh0aGlzLm1vZGVsLnBhZ2luYXRpb24/LnBhZ2UgfHwgUGFnaW5hdGlvbkNvbnN0YW50cy5ERUZBVUxUX1BBR0UpLFxyXG4gICAgICAgICAgICB0YXAoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmICghdGhpcy5wcmVkaWNhdGVDaGFuZ2VkKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5zb3VyY2UgPSBMb2FkQ29udGFpbmVyQ2hhbmdlc1NvdXJjZS5QYWdlO1xyXG5cclxuICAgICAgICAgICAgICB0aGlzLnByZWRpY2F0ZUNoYW5nZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICksXHJcbiAgICAgICAgICBsb2FkZXIkID0gdGhpcy5wYWdpbmF0aW9uID8gcGFnaW5hdGlvbiQgOiBtb3JlJDtcclxuXHJcbiAgICAgICAgcmV0dXJuIGxvYWRlciQucGlwZShcclxuICAgICAgICAgIG1hcCgoKSA9PiAoeyBwYXJhbXM6IHBhcmFtcyEsIHBhZ2U6IHRoaXMucGFnZSB9KSlcclxuICAgICAgICApO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbdGhpcy5zb3J0aW5nU2VydmljZS5zb3J0aW5nJC5waXBlKHN0YXJ0V2l0aCh0aGlzLm1vZGVsLnNvcnRpbmcpKSwgcGFyYW1ldGVycyRdKS5waXBlKFxyXG4gICAgICB0YXAoKCkgPT4gdGhpcy5sb2FkaW5nID0gdHJ1ZSksXHJcbiAgICAgIG1hcCgoW3NvcnRpbmcsIHBhcmFtZXRlcnNdKSA9PiAoeyBwYXJhbXM6IHBhcmFtZXRlcnMucGFyYW1zISwgcGFnZTogcGFyYW1ldGVycy5wYWdlLCBzaXplOiB0aGlzLm1vZGVsLnBhZ2luYXRpb24/LnNpemUhLCBzb3J0aW5nOiBzb3J0aW5nIH0pKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGREeW5hbWljKHBhcmFtZXRlcnMkOiBPYnNlcnZhYmxlPElMb2FkQ29udGFpbmVyUGFyYW1ldGVycz4sIGxvYWRlcjogTG9hZGVyRnVuY3Rpb24pXHJcbiAgICA6IE9ic2VydmFibGU8SUxvYWRDb250YWluZXJSZXN1bHRNb2RlbDxhbnk+PiB7XHJcbiAgICByZXR1cm4gcGFyYW1ldGVycyQucGlwZShcclxuICAgICAgc3dpdGNoTWFwKChwYXJhbWV0ZXJzOiBJTG9hZENvbnRhaW5lclBhcmFtZXRlcnMpID0+IGxvYWRlcihwYXJhbWV0ZXJzKSksXHJcbiAgICAgIG1hcCgobW9kZWw6IElMb2FkQ29udGFpbmVyTG9hZGVyUmVzdWx0TW9kZWw8YW55PikgPT4gKHsgLi4ubW9kZWwsIHJlc2V0OiB0aGlzLnJlc2V0LCBwYWdlOiB0aGlzLnBhZ2UgfSkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZFN0YXRpYyhwYXJhbWV0ZXJzJDogT2JzZXJ2YWJsZTxJTG9hZENvbnRhaW5lclBhcmFtZXRlcnM+LCBtb2RlbDogSUxvYWRDb250YWluZXJNb2RlbClcclxuICAgIDogT2JzZXJ2YWJsZTxJTG9hZENvbnRhaW5lclJlc3VsdE1vZGVsPGFueT4+IHtcclxuICAgIGNvbnN0IGRhdGEkID0gKG1vZGVsLmRhdGEkIHx8IG9mKFtdKSkucGlwZShcclxuICAgICAgbWFwKChkYXRhLCBpbmRleCkgPT4gKHsgZGF0YSwgaW5kZXggfSkpLFxyXG4gICAgICB0YXAobW9kZWwgPT4gdGhpcy5zb3VyY2UgPSBtb2RlbC5pbmRleCA/IExvYWRDb250YWluZXJDaGFuZ2VzU291cmNlLkRhdGEgOiB0aGlzLnNvdXJjZSksXHJcbiAgICAgIG1hcChtb2RlbCA9PiBtb2RlbC5kYXRhKVxyXG4gICAgKTtcclxuXHJcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbcGFyYW1ldGVycyQsIGRhdGEkXSkucGlwZShcclxuICAgICAgbWFwKChbcGFyYW1ldGVycywgaXRlbXNdKSA9PiB7XHJcbiAgICAgICAgLy8gaWYgZGF0YSBjaGFuZ2VkIG5lZWQgdG8gc3RhcnQgZnJvbSBzdGFydCAocGFnaW5hdGlvbilcclxuICAgICAgICBpZiAodGhpcy5zb3VyY2UgPT0gTG9hZENvbnRhaW5lckNoYW5nZXNTb3VyY2UuRGF0YVxyXG4gICAgICAgICAgJiYgcGFyYW1ldGVycy5wYWdlICE9IExvYWRNb3JlU2VydmljZS5TVEFSVF9QQUdFKSB7XHJcbiAgICAgICAgICB0aGlzLnJlc2V0UGFyYW1ldGVycygpO1xyXG4gICAgICAgICAgcGFyYW1ldGVycyA9IHsgcGFyYW1zOiBwYXJhbWV0ZXJzLnBhcmFtcywgcGFnZTogdGhpcy5wYWdlLCBzaXplOiB0aGlzLm1vZGVsLnBhZ2luYXRpb24/LnNpemUhLCBzb3J0aW5nOiBwYXJhbWV0ZXJzLnNvcnRpbmcgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGZpbHRlcmVkID0gbW9kZWwuZmlsdGVyID8gbW9kZWwuZmlsdGVyKGl0ZW1zLCBwYXJhbWV0ZXJzKSA6IGl0ZW1zLFxyXG4gICAgICAgICAgc29ydGVkID0gcGFyYW1ldGVycy5zb3J0aW5nID8gc29ydEJ5KFsuLi5maWx0ZXJlZF0sIHBhcmFtZXRlcnMuc29ydGluZy5pZCwgcGFyYW1ldGVycy5zb3J0aW5nLmRpcmVjdGlvbikgOiBmaWx0ZXJlZCxcclxuICAgICAgICAgIGRhdGE6IElMb2FkQ29udGFpbmVyUmVzdWx0TW9kZWw8YW55PiA9IHNvcnRlZCA/IHtcclxuICAgICAgICAgICAgaXRlbXM6IHRoaXMubW9kZWwucGFnaW5hdGlvbiA/IHNraXAoc29ydGVkLCBwYXJhbWV0ZXJzLnBhZ2UsIHRoaXMubW9kZWwucGFnaW5hdGlvbj8uc2l6ZSEpIDogc29ydGVkLFxyXG4gICAgICAgICAgICBuZXh0OiB0aGlzLm1vZGVsLnBhZ2luYXRpb24gPyBwYXJhbWV0ZXJzLnBhZ2UgPCBNYXRoLmNlaWwoc29ydGVkLmxlbmd0aCAvIHRoaXMubW9kZWwucGFnaW5hdGlvbj8uc2l6ZSEpIDogZmFsc2UsXHJcbiAgICAgICAgICAgIHJlc2V0OiB0aGlzLnJlc2V0LFxyXG4gICAgICAgICAgICB0b3RhbDogc29ydGVkLmxlbmd0aCxcclxuICAgICAgICAgICAgcGFnZTogcGFyYW1ldGVycy5wYWdlXHJcbiAgICAgICAgICB9IDogeyBpdGVtczogW10sIG5leHQ6IGZhbHNlLCByZXNldDogdGhpcy5yZXNldCwgdG90YWw6IGl0ZW1zLmxlbmd0aCwgcGFnZTogcGFyYW1ldGVycy5wYWdlIH07XHJcblxyXG4gICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc2V0UGFyYW1ldGVycygpOiB2b2lkIHtcclxuICAgIGlmIChpc0RlZmluZWQodGhpcy5jb250ZW50RWwpKVxyXG4gICAgICB0aGlzLmNvbnRlbnRFbC5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9IDA7XHJcblxyXG4gICAgaWYgKHRoaXMucGFnaW5hdGlvbilcclxuICAgICAgdGhpcy5wYWdpbmF0aW9uU2VydmljZS5yZXNldCgpO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLmxvYWRNb3JlU2VydmljZS5yZXNldCgpO1xyXG4gIH1cclxufSIsIjxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuICAgIDxzZmMtYm91bmNlLWxvYWRlciAqbmdJZj1cInNob3dMb2FkaW5nXCIgW2lkXT1cImlkXCIgW3NmY0NvbXBvbmVudFNpemVdPVwiQ29tcG9uZW50U2l6ZS5TbWFsbFwiPjwvc2ZjLWJvdW5jZS1sb2FkZXI+XHJcbiAgICA8ZGl2ICNjb250ZW50IGNsYXNzPVwiY29udGVudFwiIFtzZmNTY3JvbGxJbnRvVmlld109XCJzY3JvbGxUYXJnZXRcIiAoc2ZjU2Nyb2xsVHJhY2tlcik9XCJvblNjcm9sbCgpXCJcclxuICAgICAgICBbcG9zaXRpb25zXT1cInNjcm9sbFBvc2l0aW9uXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW1zXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiIChzZmNNb3VzZURvd24pPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIj5cclxuICAgICAgICAgICAgPHNmYy1sb2FkLW1vcmUtYnV0dG9uIFtoaWRkZW5dPVwiaGlkZUxvYWRNb3JlQnV0dG9uXCIgKG1vcmUpPVwibW9yZSgkZXZlbnQpXCIgW2xhYmVsXT1cImxvYWRNb3JlTGFiZWxcIj5cclxuICAgICAgICAgICAgPC9zZmMtbG9hZC1tb3JlLWJ1dHRvbj5cclxuICAgICAgICAgICAgPHNmYy1wYWdpbmF0aW9uICpuZ0lmPVwic2hvd1BhZ2luYXRpb25cIiBbbGltaXRzXT1cInBhZ2luYXRpb25MaW1pdHNcIiBbY291bnRdPVwicGFnaW5hdGlvbkNvdW50XCIgW2Z1bGxdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgW3RvdGFsXT1cInRvdGFsXCIgW3NpemVdPVwibW9kZWwucGFnaW5hdGlvbj8uc2l6ZSFcIiBbcGFnZV09XCJwYWdlXCI+XHJcbiAgICAgICAgICAgIDwvc2ZjLXBhZ2luYXRpb24+XHJcbiAgICAgICAgICAgIDxzZmMtZGVsaW1ldGVyICpuZ0lmPVwiaXNFbXB0eVwiIFtsYWJlbF09XCJlbXB0eUxhYmVsXCI+PC9zZmMtZGVsaW1ldGVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1jb250YWluZXItcGFyYW1ldGVycy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZmMtY29tbW9uL3NyYy9saWIvY29tcG9uZW50cy9sb2FkLWNvbnRhaW5lci9tb2RlbHMvbG9hZC1jb250YWluZXItcGFyYW1ldGVycy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVNvcnRpbmdNb2RlbCB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlc1wiO1xyXG5pbXBvcnQgeyBlbXB0eSB9IGZyb20gXCIuLi8uLi8uLi90eXBlc1wiO1xyXG5pbXBvcnQgeyBJTG9hZENvbnRhaW5lclByZWRpY2F0ZVBhcmFtZXRlcnMgfSBmcm9tIFwiLi9sb2FkLWNvbnRhaW5lci1wcmVkaWNhdGUtcGFyYW1ldGVycy5tb2RlbFwiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJTG9hZENvbnRhaW5lclBhcmFtZXRlcnMge1xyXG4gICAgcGFyYW1zOiBJTG9hZENvbnRhaW5lclByZWRpY2F0ZVBhcmFtZXRlcnMsXHJcbiAgICBwYWdlOiBudW1iZXJcclxuICAgIHNvcnRpbmc/OiBJU29ydGluZ01vZGVsIHwgZW1wdHk7XHJcbn0iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1jb250YWluZXItcGFyYW1ldGVycy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZmMtY29tbW9uL3NyYy9saWIvY29tcG9uZW50cy9sb2FkLWNvbnRhaW5lci9tb2RlbHMvbG9hZC1jb250YWluZXItcGFyYW1ldGVycy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVNvcnRpbmdNb2RlbCB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlc1wiO1xyXG5pbXBvcnQgeyBlbXB0eSB9IGZyb20gXCIuLi8uLi8uLi90eXBlc1wiO1xyXG5pbXBvcnQgeyBJTG9hZENvbnRhaW5lclByZWRpY2F0ZVBhcmFtZXRlcnMgfSBmcm9tIFwiLi9sb2FkLWNvbnRhaW5lci1wcmVkaWNhdGUtcGFyYW1ldGVycy5tb2RlbFwiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJTG9hZENvbnRhaW5lclBhcmFtZXRlcnMge1xyXG4gICAgcGFyYW1zOiBJTG9hZENvbnRhaW5lclByZWRpY2F0ZVBhcmFtZXRlcnM7XHJcbiAgICBwYWdlOiBudW1iZXI7XHJcbiAgICBzaXplOiBudW1iZXI7XHJcbiAgICBzb3J0aW5nPzogSVNvcnRpbmdNb2RlbCB8IGVtcHR5O1xyXG59Il19
@@ -1,4 +1,4 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
1
+ import { Component, EventEmitter, HostListener, Input, Output } from '@angular/core';
2
2
  import { CommonConstants } from '../../constants';
3
3
  import { TagConstants } from './tag.constants';
4
4
  import * as i0 from "@angular/core";
@@ -7,27 +7,33 @@ import * as i2 from "../close/close.component";
7
7
  import * as i3 from "../icon/icon.component";
8
8
  export class TagComponent {
9
9
  constructor() {
10
- this.close = false;
10
+ this.remove = false;
11
11
  this.model = {
12
12
  key: CommonConstants.DEFAULT_KEY_VALUE,
13
13
  label: TagConstants.DEFAULT_LABEL
14
14
  };
15
- this.remove = new EventEmitter();
15
+ this.removeAction = new EventEmitter();
16
16
  }
17
+ _onClick() { if (this.model.click)
18
+ this.model.click(this.model); }
17
19
  onRemove() {
18
- this.remove.emit(this.model);
20
+ this.removeAction.emit(this.model);
19
21
  }
20
22
  }
21
23
  TagComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TagComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
22
- TagComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TagComponent, selector: "sfc-tag1", inputs: { close: "close", model: "model" }, outputs: { remove: "remove" }, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"content\">\r\n <sfc-icon *ngIf=\"model.icon || model.imageSrc\" [icon]=\"model.icon\" [imageSrc]=\"model.imageSrc\"></sfc-icon>\r\n <span>{{model.label}}</span>\r\n <sfc-close *ngIf=\"close\" (click)=\"onRemove()\"></sfc-close>\r\n </div>\r\n</div>", styles: [":host{display:inline-block}:host .container .content{display:flex;align-items:center;text-align:center;padding:.3em .8em;display:inline-flex;border-radius:1em;font-weight:700;-webkit-user-select:none;user-select:none;transition:color .5s ease;transition:background-color .5s ease;transition:color .5s ease,background-color .5s ease;border:.125em solid transparent}:host .container .content,:host-context(.sfc-default-theme) :host .container .content{color:#fff}:host-context(.sfc-dark-theme) :host .container .content{color:#545e61}:host .container .content,:host-context(.sfc-default-theme) :host .container .content{background-color:#545e61}:host-context(.sfc-dark-theme) :host .container .content{background-color:#fff}:host .container .content sfc-icon{margin-right:.2em}:host .container .content sfc-icon ::ng-deep .container img{max-width:1em;max-height:1em}:host .container .content sfc-close{margin-left:.4em;color:#ed5565;font-size:.8em}:host:hover .container .content{background-color:#ffce54;color:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.CloseComponent, selector: "sfc-close" }, { kind: "component", type: i3.IconComponent, selector: "sfc-icon", inputs: ["icon", "imageSrc"] }] });
24
+ TagComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TagComponent, selector: "sfc-tag", inputs: { remove: "remove", model: "model" }, outputs: { removeAction: "remove" }, host: { listeners: { "click": "_onClick()" } }, ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"content\">\r\n <sfc-icon *ngIf=\"model.icon || model.imageSrc\" [icon]=\"model.icon\" [imageSrc]=\"model.imageSrc\"></sfc-icon>\r\n <span>{{model.label}}</span>\r\n <sfc-close *ngIf=\"model.remove\" (click)=\"onRemove()\"></sfc-close>\r\n </div>\r\n</div>", styles: [":host{display:inline-block}:host .container .content{display:flex;align-items:center;text-align:center;padding:.3em .8em;display:inline-flex;border-radius:1em;font-weight:700;-webkit-user-select:none;user-select:none;transition:color .5s ease;transition:background-color .5s ease;transition:color .5s ease,background-color .5s ease,border-color .5s ease;border:.125em solid transparent}:host .container .content,:host-context(.sfc-default-theme) :host .container .content{color:#fff}:host-context(.sfc-dark-theme) :host .container .content{color:#545e61}:host .container .content,:host-context(.sfc-default-theme) :host .container .content{background-color:#545e61}:host-context(.sfc-dark-theme) :host .container .content{background-color:#fff}:host .container .content sfc-icon{margin-right:.2em}:host .container .content sfc-icon ::ng-deep .container img{max-width:1em;max-height:1em}:host .container .content sfc-close{margin-left:.6em;color:#ed5565;font-size:.8em}:host:hover .container .content{background-color:#ffce54;color:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.CloseComponent, selector: "sfc-close" }, { kind: "component", type: i3.IconComponent, selector: "sfc-icon", inputs: ["icon", "imageSrc"] }] });
23
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TagComponent, decorators: [{
24
26
  type: Component,
25
- args: [{ selector: 'sfc-tag1', template: "<div class=\"container\">\r\n <div class=\"content\">\r\n <sfc-icon *ngIf=\"model.icon || model.imageSrc\" [icon]=\"model.icon\" [imageSrc]=\"model.imageSrc\"></sfc-icon>\r\n <span>{{model.label}}</span>\r\n <sfc-close *ngIf=\"close\" (click)=\"onRemove()\"></sfc-close>\r\n </div>\r\n</div>", styles: [":host{display:inline-block}:host .container .content{display:flex;align-items:center;text-align:center;padding:.3em .8em;display:inline-flex;border-radius:1em;font-weight:700;-webkit-user-select:none;user-select:none;transition:color .5s ease;transition:background-color .5s ease;transition:color .5s ease,background-color .5s ease;border:.125em solid transparent}:host .container .content,:host-context(.sfc-default-theme) :host .container .content{color:#fff}:host-context(.sfc-dark-theme) :host .container .content{color:#545e61}:host .container .content,:host-context(.sfc-default-theme) :host .container .content{background-color:#545e61}:host-context(.sfc-dark-theme) :host .container .content{background-color:#fff}:host .container .content sfc-icon{margin-right:.2em}:host .container .content sfc-icon ::ng-deep .container img{max-width:1em;max-height:1em}:host .container .content sfc-close{margin-left:.4em;color:#ed5565;font-size:.8em}:host:hover .container .content{background-color:#ffce54;color:#fff}\n"] }]
26
- }], propDecorators: { close: [{
27
+ args: [{ selector: 'sfc-tag', template: "<div class=\"container\">\r\n <div class=\"content\">\r\n <sfc-icon *ngIf=\"model.icon || model.imageSrc\" [icon]=\"model.icon\" [imageSrc]=\"model.imageSrc\"></sfc-icon>\r\n <span>{{model.label}}</span>\r\n <sfc-close *ngIf=\"model.remove\" (click)=\"onRemove()\"></sfc-close>\r\n </div>\r\n</div>", styles: [":host{display:inline-block}:host .container .content{display:flex;align-items:center;text-align:center;padding:.3em .8em;display:inline-flex;border-radius:1em;font-weight:700;-webkit-user-select:none;user-select:none;transition:color .5s ease;transition:background-color .5s ease;transition:color .5s ease,background-color .5s ease,border-color .5s ease;border:.125em solid transparent}:host .container .content,:host-context(.sfc-default-theme) :host .container .content{color:#fff}:host-context(.sfc-dark-theme) :host .container .content{color:#545e61}:host .container .content,:host-context(.sfc-default-theme) :host .container .content{background-color:#545e61}:host-context(.sfc-dark-theme) :host .container .content{background-color:#fff}:host .container .content sfc-icon{margin-right:.2em}:host .container .content sfc-icon ::ng-deep .container img{max-width:1em;max-height:1em}:host .container .content sfc-close{margin-left:.6em;color:#ed5565;font-size:.8em}:host:hover .container .content{background-color:#ffce54;color:#fff}\n"] }]
28
+ }], propDecorators: { remove: [{
27
29
  type: Input
28
30
  }], model: [{
29
31
  type: Input
30
- }], remove: [{
31
- type: Output
32
+ }], removeAction: [{
33
+ type: Output,
34
+ args: ['remove']
35
+ }], _onClick: [{
36
+ type: HostListener,
37
+ args: ['click']
32
38
  }] } });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZmMtY29tbW9uL3NyYy9saWIvY29tcG9uZW50cy90YWcvdGFnLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZmMtY29tbW9uL3NyYy9saWIvY29tcG9uZW50cy90YWcvdGFnLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7QUFRL0MsTUFBTSxPQUFPLFlBQVk7SUFMekI7UUFRRSxVQUFLLEdBQVksS0FBSyxDQUFDO1FBR3ZCLFVBQUssR0FBYztZQUNqQixHQUFHLEVBQUUsZUFBZSxDQUFDLGlCQUFpQjtZQUN0QyxLQUFLLEVBQUUsWUFBWSxDQUFDLGFBQWE7U0FDbEMsQ0FBQztRQUdGLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBYSxDQUFDO0tBS3hDO0lBSFEsUUFBUTtRQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDOzt5R0FoQlUsWUFBWTs2RkFBWixZQUFZLDJIQ1Z6QixnVUFNTTsyRkRJTyxZQUFZO2tCQUx4QixTQUFTOytCQUNFLFVBQVU7OEJBT3BCLEtBQUs7c0JBREosS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBT04sTUFBTTtzQkFETCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcclxuaW1wb3J0IHsgVGFnQ29uc3RhbnRzIH0gZnJvbSAnLi90YWcuY29uc3RhbnRzJztcclxuaW1wb3J0IHsgSVRhZ01vZGVsIH0gZnJvbSAnLi90YWcubW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzZmMtdGFnMScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGFnLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRhZ0NvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgY2xvc2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBtb2RlbDogSVRhZ01vZGVsID0ge1xyXG4gICAga2V5OiBDb21tb25Db25zdGFudHMuREVGQVVMVF9LRVlfVkFMVUUsXHJcbiAgICBsYWJlbDogVGFnQ29uc3RhbnRzLkRFRkFVTFRfTEFCRUxcclxuICB9O1xyXG5cclxuICBAT3V0cHV0KClcclxuICByZW1vdmUgPSBuZXcgRXZlbnRFbWl0dGVyPElUYWdNb2RlbD4oKTtcclxuXHJcbiAgcHVibGljIG9uUmVtb3ZlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZW1vdmUuZW1pdCh0aGlzLm1vZGVsKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cclxuICAgICAgICA8c2ZjLWljb24gKm5nSWY9XCJtb2RlbC5pY29uIHx8IG1vZGVsLmltYWdlU3JjXCIgW2ljb25dPVwibW9kZWwuaWNvblwiIFtpbWFnZVNyY109XCJtb2RlbC5pbWFnZVNyY1wiPjwvc2ZjLWljb24+XHJcbiAgICAgICAgPHNwYW4+e3ttb2RlbC5sYWJlbH19PC9zcGFuPlxyXG4gICAgICAgIDxzZmMtY2xvc2UgKm5nSWY9XCJjbG9zZVwiIChjbGljayk9XCJvblJlbW92ZSgpXCI+PC9zZmMtY2xvc2U+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZmMtY29tbW9uL3NyYy9saWIvY29tcG9uZW50cy90YWcvdGFnLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZmMtY29tbW9uL3NyYy9saWIvY29tcG9uZW50cy90YWcvdGFnLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBUS9DLE1BQU0sT0FBTyxZQUFZO0lBTHpCO1FBUUUsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUd4QixVQUFLLEdBQWM7WUFDakIsR0FBRyxFQUFFLGVBQWUsQ0FBQyxpQkFBaUI7WUFDdEMsS0FBSyxFQUFFLFlBQVksQ0FBQyxhQUFhO1NBQ2xDLENBQUM7UUFHRixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFhLENBQUM7S0FROUM7SUFMUyxRQUFRLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUs7UUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRW5FLFFBQVE7UUFDYixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQzs7eUdBbkJVLFlBQVk7NkZBQVosWUFBWSxrTENWekIsdVVBTU07MkZESU8sWUFBWTtrQkFMeEIsU0FBUzsrQkFDRSxTQUFTOzhCQU9uQixNQUFNO3NCQURMLEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQU9OLFlBQVk7c0JBRFgsTUFBTTt1QkFBQyxRQUFRO2dCQUlSLFFBQVE7c0JBRGYsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Db25zdGFudHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBUYWdDb25zdGFudHMgfSBmcm9tICcuL3RhZy5jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBJVGFnTW9kZWwgfSBmcm9tICcuL3RhZy5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NmYy10YWcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RhZy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWdDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHJlbW92ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIG1vZGVsOiBJVGFnTW9kZWwgPSB7XHJcbiAgICBrZXk6IENvbW1vbkNvbnN0YW50cy5ERUZBVUxUX0tFWV9WQUxVRSxcclxuICAgIGxhYmVsOiBUYWdDb25zdGFudHMuREVGQVVMVF9MQUJFTFxyXG4gIH07XHJcblxyXG4gIEBPdXRwdXQoJ3JlbW92ZScpXHJcbiAgcmVtb3ZlQWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxJVGFnTW9kZWw+KCk7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcclxuICBwcml2YXRlIF9vbkNsaWNrKCkgeyBpZiAodGhpcy5tb2RlbC5jbGljaykgdGhpcy5tb2RlbC5jbGljayh0aGlzLm1vZGVsKTsgfVxyXG5cclxuICBwdWJsaWMgb25SZW1vdmUoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlbW92ZUFjdGlvbi5lbWl0KHRoaXMubW9kZWwpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxyXG4gICAgICAgIDxzZmMtaWNvbiAqbmdJZj1cIm1vZGVsLmljb24gfHwgbW9kZWwuaW1hZ2VTcmNcIiBbaWNvbl09XCJtb2RlbC5pY29uXCIgW2ltYWdlU3JjXT1cIm1vZGVsLmltYWdlU3JjXCI+PC9zZmMtaWNvbj5cclxuICAgICAgICA8c3Bhbj57e21vZGVsLmxhYmVsfX08L3NwYW4+XHJcbiAgICAgICAgPHNmYy1jbG9zZSAqbmdJZj1cIm1vZGVsLnJlbW92ZVwiIChjbGljayk9XCJvblJlbW92ZSgpXCI+PC9zZmMtY2xvc2U+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi9jb21wb25lbnRzL3RhZy90YWcubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVtcHR5IH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xyXG5pbXBvcnQgeyBJY29uRGVmaW5pdGlvbiB9IGZyb20gXCJAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnNcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVRhZ01vZGVsIHtcclxuICAgIGtleTogYW55O1xyXG4gICAgbGFiZWw6IHN0cmluZztcclxuICAgIGljb24/OiBJY29uRGVmaW5pdGlvbiB8IGVtcHR5O1xyXG4gICAgaW1hZ2VTcmM/OiBzdHJpbmcgfCBlbXB0eTtcclxufSJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi9jb21wb25lbnRzL3RhZy90YWcubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVtcHR5IH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xyXG5pbXBvcnQgeyBJY29uRGVmaW5pdGlvbiB9IGZyb20gXCJAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnNcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVRhZ01vZGVsIHtcclxuICAgIGxhYmVsOiBzdHJpbmc7XHJcbiAgICBrZXk/OiBhbnkgfCBlbXB0eTtcclxuICAgIGFyZ3M/OiBhbnk7XHJcbiAgICBpY29uPzogSWNvbkRlZmluaXRpb24gfCBlbXB0eTtcclxuICAgIGltYWdlU3JjPzogc3RyaW5nIHwgZW1wdHk7XHJcbiAgICByZW1vdmU/OiBib29sZWFuO1xyXG4gICAgY2xpY2s/OiAobW9kZWw6IElUYWdNb2RlbCkgPT4gdm9pZCB8IGVtcHR5O1xyXG59Il19
@@ -1,4 +1,5 @@
1
1
  import { Observable } from 'rxjs';
2
+ import { addItem, hasItem, removeItem } from './collections.utils';
2
3
  import { isEqualDateTimes } from './date-time.utils';
3
4
  /**
4
5
  * Return true if value defined
@@ -223,4 +224,82 @@ export function stopAndPreventPropagation(event) {
223
224
  event.preventDefault();
224
225
  event.stopPropagation();
225
226
  }
226
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi91dGlscy9jb21tb24udXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVyRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBSSxLQUEyQjtJQUN0RCxPQUFVLEtBQUssS0FBSyxTQUFTLElBQU8sS0FBSyxLQUFLLElBQUksQ0FBQztBQUNyRCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBVTtJQUNqQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVE7V0FDaEQsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztXQUNyQixDQUFDLENBQUMsS0FBSyxZQUFZLElBQUksSUFBSSxLQUFLLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBUztJQUNuQyxPQUFPLElBQUksWUFBWSxVQUFVLENBQUM7QUFDcEMsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxHQUFRLEVBQUUsUUFBZ0IsRUFBRSxRQUFhLElBQUk7SUFDL0UsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ3hELElBQUksTUFBTSxHQUFRLEVBQUUsQ0FBQztRQUNyQixNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLEdBQUcsR0FBRyxFQUFF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LEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3pGLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUFhO0lBQ3hDLElBQUk7UUFDRixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9CLE9BQU8sQ0FBQyxPQUFPLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQztLQUNuQztJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxLQUFLLENBQUM7S0FDZDtBQUNILENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUseUJBQXlCLENBQUMsS0FBWTtJQUNwRCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0FBQzFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGlzRXF1YWxEYXRlVGltZXMgfSBmcm9tICcuL2RhdGUtdGltZS51dGlscyc7XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRydWUgaWYgdmFsdWUgZGVmaW5lZFxyXG4gKiBAcGFyYW0gdmFsdWUgVmFsdWUgdG8gY2hlY2tcclxuICogQHJldHVybnMgVHJ1ZSBpZiB2YWx1ZSBpcyBub3QgbnVsbCBhbmQgZGVmaW5lZFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzRGVmaW5lZDxUPih2YWx1ZTogVCB8IHVuZGVmaW5lZCB8IG51bGwpOiBib29sZWFuIHtcclxuICByZXR1cm4gPFQ+dmFsdWUgIT09IHVuZGVmaW5lZCAmJiA8VD52YWx1ZSAhPT0gbnVsbDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIHZhbHVlIGlzIG9iamVjdFxyXG4gKiBAcGFyYW0gdmFsdWUgVmFsdWUgdG8gY2hlY2tcclxuICogQHJldHVybnMgVHJ1ZSBpZiB2YWx1ZSBpcyBvYmplY3RcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc09iamVjdCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIChpc0RlZmluZWQodmFsdWUpICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCdcclxuICAgICYmICFBcnJheS5pc0FycmF5KHZhbHVlKVxyXG4gICAgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIERhdGUgfHwgdmFsdWUgaW5zdGFuY2VvZiBGaWxlKSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiBkYXRhIGlzIG9ic2VydmFibGVcclxuICogQHBhcmFtIGRhdGEgT2JqZWN0IHRvIGNoZWNrXHJcbiAqIEByZXR1cm5zIFRydWUgaWYgZGF0YSBpcyBvYnNlcnZhYmxlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNBc3luY0RhdGEoZGF0YTogYW55KSB7XHJcbiAgcmV0dXJuIGRhdGEgaW5zdGFuY2VvZiBPYnNlcnZhYmxlO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIGV4dGVuZGVkIG9iamVjdCB3aXRoIG5ldyBwcm9wZXJ0eVxyXG4gKiBAcGFyYW0gb2JqIE9iamVjdCB0byBleHRlbmQgYnkgcHJvcGVydHlcclxuICogQHBhcmFtIHByb3BlcnR5IE5ldyBwcm9wZXJ0eSBuYW1lIFxyXG4gKiBAcGFyYW0gdmFsdWUgVmFsdWUgZm9yIG5ldyBwcm9wZXJ0eVxyXG4gKiBAcmV0dXJucyBFeHRlbmRlZCBvYmplY3Qgd2l0aCBuZXcgcHJvcGVydHlcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRQcm9wZXJ0eVRvT2JqZWN0KG9iajogYW55LCBwcm9wZXJ0eTogc3RyaW5nLCB2YWx1ZTogYW55ID0gbnVsbCk6IGFueSB7XHJcbiAgaWYgKGlzRGVmaW5lZChwcm9wZXJ0eSkgJiYgIW9iai5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eSkpIHtcclxuICAgIGxldCBuZXdPYmo6IGFueSA9IHt9O1xyXG4gICAgbmV3T2JqW3Byb3BlcnR5XSA9IHZhbHVlO1xyXG4gICAgb2JqID0geyAuLi5vYmosIC4uLm5ld09iaiB9O1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIG9iajtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlbW92ZSBwcm9wZXJ0eSBmcm9tIG9iamVjdFxyXG4gKiBAcGFyYW0gb2JqIE9iamVjdCBmb3IgcmVtb3ZpbmcgcHJvcGVydHlcclxuICogQHBhcmFtIHByb3BlcnR5IFByb3BlcnR5IG5hbWUgdG8gcmVtb3ZlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlUHJvcGVydHlGcm9tT2JqZWN0KG9iajogYW55LCBwcm9wZXJ0eTogc3RyaW5nKTogdm9pZCB7XHJcbiAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eSkpIHtcclxuICAgIGRlbGV0ZSBvYmpbcHJvcGVydHldO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIERlZXAgbWVyZ2Ugb2JqZWN0IHdpdGggb3RoZXJzXHJcbiAqIEBwYXJhbSB0YXJnZXQgIE9iamVjdCB0byBtZXJnZVxyXG4gKiBAcGFyYW0gc291cmNlcyBPYmplY3RzIHRvIGJlIG1lcmdlZCB3aXRoIHRhcmdldFxyXG4gKiBAcmV0dXJucyBNZXJnZWQgb2JqZWN0XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VEZWVwKHRhcmdldDogYW55LCAuLi5zb3VyY2VzOiBhbnlbXSk6IGFueSB7XHJcbiAgaWYgKCFzb3VyY2VzLmxlbmd0aClcclxuICAgIHJldHVybiB0YXJnZXQ7XHJcblxyXG4gIGNvbnN0IHNvdXJjZSA9IHNvdXJjZXMuc2hpZnQoKTtcclxuXHJcbiAgaWYgKGlzT2JqZWN0KHRhcmdldCkgJiYgaXNPYmplY3Qoc291cmNlKSkge1xyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gc291cmNlKSB7XHJcbiAgICAgIGlmIChpc09iamVjdChzb3VyY2Vba2V5XSkpIHtcclxuICAgICAgICBpZiAoIXRhcmdldFtrZXldKSBPYmplY3QuYXNzaWduKHRhcmdldCwgeyBba2V5XToge30gfSk7XHJcbiAgICAgICAgbWVyZ2VEZWVwKHRhcmdldFtrZXldLCBzb3VyY2Vba2V5XSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0YXJnZXQsIHsgW2tleV06IHNvdXJjZVtrZXldIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gbWVyZ2VEZWVwKHRhcmdldCwgLi4uc291cmNlcyk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXQgdHlwZSdzIHByb3BlcnR5IG5hbWUgc2FmZXR5XHJcbiAqIEBwYXJhbSBuYW1lIEtleU9mIHByb3BlcnR5XHJcbiAqIEByZXR1cm5zIFR5cGUncyBwcm9wZXJ0eSBuYW1lXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgbmFtZW9mID0gPFQ+KG5hbWU6IGtleW9mIFQpID0+IG5hbWU7XHJcblxyXG4vKipcclxuICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBpbnB1dCBpcyBhIE51bWJlciBvciBzb21ldGhpbmcgdGhhdCBjYW4gYmUgY29lcmNlZCB0byBhIE51bWJlclxyXG4gICAqIEBwYXJhbSBudW1iZXIgVGhlIGlucHV0IHRvIGJlIHRlc3RlZFxyXG4gICAqIEByZXR1cm5zIC0gQW4gaW5kaWNhdGlvbiBpZiB0aGUgaW5wdXQgaXMgYSBOdW1iZXIgb3IgY2FuIGJlIGNvZXJjZWQgdG8gYSBOdW1iZXJcclxuICAgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzTnVtZXJpYyhudW1iZXI6IGFueSk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiAhaXNOYU4ocGFyc2VGbG9hdChudW1iZXIpKTtcclxufVxyXG5cclxuLyoqXHJcbiAqICBEZXRlcm1pbmVzIGlmIHRoZSBpbnB1dCBpcyBhIHN0cmluZ1xyXG4gKiBAcGFyYW0gdmFsdWUgVGhlIGlucHV0IHRvIGJlIHRlc3RlZFxyXG4gKiBAcmV0dXJucyBBbiBpbmRpY2F0aW9uIGlmIHRoZSBpbnB1dCBpcyBhIHN0cmluZ1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzU3RyaW5nKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJztcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIGN1cnJlbnQgYnJvd3NlciBpcyBDaHJvbWVcclxuICogQHJldHVybnMgSWYgY3VycmVudCBicm93c2VyIGlzIENocm9tZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzQ2hyb21lQnJvd3NlcigpOiBib29sZWFuIHtcclxuICByZXR1cm4gL0Nocm9tZS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSAmJiAvR29vZ2xlIEluYy8udGVzdChuYXZpZ2F0b3IudmVuZG9yKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIHZhbHVlIGlzIHZhbGlkIGVtYWlsIGFkZHJlc3NcclxuICogQHJldHVybnMgVHJ1ZSBpZiBpdCdzIHZhbGlkIGVtYWlsIGFkZHJlc3NcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0VtYWlsKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICByZXR1cm4gaXNEZWZpbmVkKHZhbHVlLm1hdGNoKFxyXG4gICAgL14oKFtePD4oKVtcXF1cXFxcLiw7Olxcc0BcXFwiXSsoXFwuW148PigpW1xcXVxcXFwuLDs6XFxzQFxcXCJdKykqKXwoXFxcIi4rXFxcIikpQCgoXFxbWzAtOV17MSwzfVxcLlswLTldezEsM31cXC5bMC05XXsxLDN9XFwuWzAtOV17MSwzfVxcXSl8KChbYS16QS1aXFwtMC05XStcXC4pK1thLXpBLVpdezIsfSkpJC9cclxuICApKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIHN0cmluZyBpcyBcInRydWVcIlxyXG4gKiBAcmV0dXJucyBwYXJzZWQgc3RyaW5nIGFzIGJvb2xlYW5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUJvb2xlYW4odmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiAvXnRydWUkL2kudGVzdCh2YWx1ZSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiB2YWx1ZXMgZXF1YWxcclxuICogQHBhcmFtIG9iajEgRmlyc3QgdmFsdWUgdG8gY29tcGFyZVxyXG4gKiBAcGFyYW0gb2JqMiBTZWNvbmQgdmFsdWUgdG8gY29tcGFyZVxyXG4gKiBAcmV0dXJucyBUcnVlIGlmIGVxdWFsXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNFcXVhbChvYmoxOiBhbnksIG9iajI6IGFueSkge1xyXG4gIC8qKlxyXG4gICAqIE1vcmUgYWNjdXJhdGVseSBjaGVjayB0aGUgdHlwZSBvZiBhIEphdmFTY3JpcHQgb2JqZWN0XHJcbiAgICogQHBhcmFtICB7T2JqZWN0fSBvYmogVGhlIG9iamVjdFxyXG4gICAqIEByZXR1cm4ge1N0cmluZ30gICAgIFRoZSBvYmplY3QgdHlwZVxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIGdldFR5cGUob2JqOiBhbnkpIHtcclxuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKS5zbGljZSg4LCAtMSkudG9Mb3dlckNhc2UoKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFyZUFycmF5c0VxdWFsKCkge1xyXG5cclxuICAgIC8vIENoZWNrIGxlbmd0aFxyXG4gICAgaWYgKG9iajEubGVuZ3RoICE9PSBvYmoyLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIC8vIENoZWNrIGVhY2ggaXRlbSBpbiB0aGUgYXJyYXlcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb2JqMS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoIWlzRXF1YWwob2JqMVtpXSwgb2JqMltpXSkpIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBJZiBubyBlcnJvcnMsIHJldHVybiB0cnVlXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuXHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhcmVPYmplY3RzRXF1YWwoKSB7XHJcblxyXG4gICAgaWYgKE9iamVjdC5rZXlzKG9iajEpLmxlbmd0aCAhPT0gT2JqZWN0LmtleXMob2JqMikubGVuZ3RoKSByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgLy8gQ2hlY2sgZWFjaCBpdGVtIGluIHRoZSBvYmplY3RcclxuICAgIGZvciAobGV0IGtleSBpbiBvYmoxKSB7XHJcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqMSwga2V5KSkge1xyXG4gICAgICAgIGlmICghaXNFcXVhbChvYmoxW2tleV0sIG9iajJba2V5XSkpIHtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBJZiBubyBlcnJvcnMsIHJldHVybiB0cnVlXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFyZUZpbGVzRXF1YWwoKSB7XHJcbiAgICByZXR1cm4gb2JqMS5sYXN0TW9kaWZpZWQgPT09IG9iajIubGFzdE1vZGlmaWVkXHJcbiAgICAgICYmIG9iajEuc2l6ZSA9PT0gb2JqMi5zaXplXHJcbiAgICAgICYmIG9iajEudHlwZSA9PT0gb2JqMi50eXBlO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYXJlRnVuY3Rpb25zRXF1YWwoKSB7XHJcbiAgICByZXR1cm4gb2JqMS50b1N0cmluZygpID09PSBvYmoyLnRvU3RyaW5nKCk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhcmVQcmltYXRpdmVzRXF1YWwoKSB7XHJcbiAgICByZXR1cm4gb2JqMSA9PT0gb2JqMjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFyZURhdGVzRXF1YWwoKSB7XHJcbiAgICByZXR1cm4gaXNFcXVhbERhdGVUaW1lcyhvYmoxLCBvYmoyKTtcclxuICB9XHJcblxyXG4gIC8vIEdldCB0aGUgb2JqZWN0IHR5cGVcclxuICBsZXQgdHlwZSA9IGdldFR5cGUob2JqMSk7XHJcblxyXG4gIC8vIElmIHRoZSB0d28gaXRlbXMgYXJlIG5vdCB0aGUgc2FtZSB0eXBlLCByZXR1cm4gZmFsc2VcclxuICBpZiAodHlwZSAhPT0gZ2V0VHlwZShvYmoyKSkgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAvLyBDb21wYXJlIGJhc2VkIG9uIHR5cGVcclxuICBpZiAodHlwZSA9PT0gJ2FycmF5JykgcmV0dXJuIGFyZUFycmF5c0VxdWFsKCk7XHJcblxyXG4gIGlmICh0eXBlID09PSAnZGF0ZScpIHJldHVybiBhcmVEYXRlc0VxdWFsKCk7XHJcblxyXG4gIGlmICh0eXBlID09PSAnZmlsZScpIHJldHVybiBhcmVGaWxlc0VxdWFsKCk7XHJcblxyXG4gIGlmICh0eXBlID09PSAnb2JqZWN0JykgcmV0dXJuIGFyZU9iamVjdHNFcXVhbCgpO1xyXG5cclxuICBpZiAodHlwZSA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIGFyZUZ1bmN0aW9uc0VxdWFsKCk7XHJcblxyXG4gIHJldHVybiBhcmVQcmltYXRpdmVzRXF1YWwoKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXRlIHVuaXF1ZSBpZGVudGlmaWNhdG9yXHJcbiAqIEByZXR1cm5zIFJhbmRvbSBHVUlEXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVHdWlkKCk6IHN0cmluZyB7XHJcbiAgbGV0IFM0ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuICgoKDEgKyBNYXRoLnJhbmRvbSgpKSAqIDB4MTAwMDApIHwgMCkudG9TdHJpbmcoMTYpLnN1YnN0cmluZygxKTtcclxuICB9O1xyXG4gIHJldHVybiAoUzQoKSArIFM0KCkgKyBcIi1cIiArIFM0KCkgKyBcIi1cIiArIFM0KCkgKyBcIi1cIiArIFM0KCkgKyBcIi1cIiArIFM0KCkgKyBTNCgpICsgUzQoKSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVjayBpZiB2YWx1ZSBpcyBKc29uIHBhcnNhYmxlIHN0cmluZ1xyXG4gKiBAcGFyYW0gdmFsdWUgc3RyaW5nIHZhbHVlXHJcbiAqIEByZXR1cm5zIFRydWUgaWYgc3RyaW5nIGNhbiBiZSBKU09OIHBhcnNlZFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzSnNvblN0cmluZyh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IGpzb24gPSBKU09OLnBhcnNlKHZhbHVlKTtcclxuICAgIHJldHVybiAodHlwZW9mIGpzb24gPT09ICdvYmplY3QnKTtcclxuICB9IGNhdGNoIChlKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogU3RvcCBwcm9wYWdhdGlvbiBhbmQgcHJldmVudCBkZWZhdWx0XHJcbiAqIEBwYXJhbSBldmVudCBFdmVudCBvYmplY3RcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzdG9wQW5kUHJldmVudFByb3BhZ2F0aW9uKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbn0iXX0=
227
+ /**
228
+ * Update property in object by key
229
+ * @param obj Object to change
230
+ * @param propertyKey Property to change
231
+ * @param newPropertyValue New property value
232
+ * @param oldPropertyValue Old property value
233
+ * @returns Updated object
234
+ */
235
+ export function updatePropertyByKey(obj, propertyKey, newPropertyValue, oldPropertyValue) {
236
+ if (Array.isArray(obj)) {
237
+ return obj.map(item => {
238
+ return isObject(item) && item !== null
239
+ ? updatePropertyByKey(item, propertyKey, newPropertyValue, oldPropertyValue)
240
+ : item;
241
+ });
242
+ }
243
+ else if (isObject(obj) && obj !== null) {
244
+ const updatedObj = {};
245
+ for (const key in obj) {
246
+ if (key === propertyKey) {
247
+ if (Array.isArray(obj[key])) {
248
+ if (hasItem(obj[key], oldPropertyValue)) {
249
+ removeItem(obj[key], oldPropertyValue);
250
+ }
251
+ else {
252
+ addItem(obj[key], oldPropertyValue);
253
+ }
254
+ updatedObj[key] = obj[key];
255
+ }
256
+ else {
257
+ updatedObj[key] = newPropertyValue;
258
+ }
259
+ }
260
+ else {
261
+ updatedObj[key] = updatePropertyByKey(obj[key], propertyKey, newPropertyValue, oldPropertyValue);
262
+ }
263
+ }
264
+ return updatedObj;
265
+ }
266
+ return obj;
267
+ }
268
+ /**
269
+ * Get changed property path
270
+ * @param previous Previous value
271
+ * @param current Currency value
272
+ * @param parentKey Parent object key name
273
+ * @returns Path of property that was changed
274
+ */
275
+ export function findChangedPropertyPath(previous, current, parentKey = '') {
276
+ for (const key of Object.keys(current)) {
277
+ const fullKey = parentKey ? `${parentKey}.${key}` : key;
278
+ if (isObject(current[key]) && current[key] !== null && previous[key]) {
279
+ const nestedChange = findChangedPropertyPath(previous[key], current[key], fullKey);
280
+ if (nestedChange) {
281
+ return nestedChange;
282
+ }
283
+ }
284
+ else {
285
+ if (previous[key] !== current[key]) {
286
+ return fullKey;
287
+ }
288
+ }
289
+ }
290
+ return null;
291
+ }
292
+ /**
293
+ * Get changed property key
294
+ * @param previous Previous value
295
+ * @param current Currency value
296
+ * @returns Key of property that was changed
297
+ */
298
+ export function findChangedPropertyKey(previous, current) {
299
+ const path = findChangedPropertyPath(previous, current), parts = path?.split('.');
300
+ return parts && parts.length ? parts[parts.length - 1] : undefined;
301
+ }
302
+ export function deepClone(value) {
303
+ return JSON.parse(JSON.stringify(value));
304
+ }
305
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi91dGlscy9jb21tb24udXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVsQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVyRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBSSxLQUEyQjtJQUN0RCxPQUFVLEtBQUssS0FBSyxTQUFTLElBQU8sS0FBSyxLQUFLLElBQUksQ0FBQztBQUNyRCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBVTtJQUNqQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVE7V0FDaEQsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztXQUNyQixDQUFDLENBQUMsS0FBSyxZQUFZLElBQUksSUFBSSxLQUFLLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBUztJQUNuQyxPQUFPLElBQUksWUFBWSxVQUFVLENBQUM7QUFDcEMsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxHQUFRLEVBQUUsUUFBZ0IsRUFBRSxRQUFhLElBQUk7SUFDL0UsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ3hELElBQUksTUFBTSxHQUFRLEVBQUUsQ0FBQztRQUNyQixNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7S0FDN0I7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHdCQUF3QixDQUFDLEdBQVEsRUFBRSxRQUFnQjtJQUNqRSxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDaEMsT0FBTyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7S0FDdEI7QUFDSCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUFDLE1BQVcsRUFBRSxHQUFHLE9BQWM7SUFDdEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNO1FBQ2pCLE9BQU8sTUFBTSxDQUFDO0lBRWhCLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUUvQixJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDeEMsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLEVBQUU7WUFDeEIsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO29CQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN2RCxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ3JDO2lCQUFNO2dCQUNMLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQy9DO1NBQ0Y7S0FDRjtJQUVELE9BQU8sU0FBUyxDQUFDLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZDLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLENBQUksSUFBYSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUM7QUFFakQ7Ozs7S0FJSztBQUNMLE1BQU0sVUFBVSxTQUFTLENBQUMsTUFBVztJQUNuQyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFFBQVEsQ0FBQyxLQUFVO0lBQ2pDLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDO0FBQ25DLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsZUFBZTtJQUM3QixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ25GLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsT0FBTyxDQUFDLEtBQWE7SUFDbkMsT0FBTyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FDMUIsMkpBQTJKLENBQzVKLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLEtBQWE7SUFDeEMsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQy9CLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxPQUFPLENBQUMsSUFBUyxFQUFFLElBQVM7SUFDMUM7Ozs7T0FJRztJQUNILFNBQVMsT0FBTyxDQUFDLEdBQVE7UUFDdkIsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hFLENBQUM7SUFFRCxTQUFTLGNBQWM7UUFFckIsZUFBZTtRQUNmLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBRTlDLCtCQUErQjtRQUMvQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUUsT0FBTyxLQUFLLENBQUM7U0FDOUM7UUFFRCw0QkFBNEI7UUFDNUIsT0FBTyxJQUFJLENBQUM7SUFFZCxDQUFDO0lBRUQsU0FBUyxlQUFlO1FBRXRCLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFFeEUsZ0NBQWdDO1FBQ2hDLEtBQUssSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFO1lBQ3BCLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDbkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7b0JBQ2xDLE9BQU8sS0FBSyxDQUFDO2lCQUNkO2FBQ0Y7U0FDRjtRQUVELDRCQUE0QjtRQUM1QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxTQUFTLGFBQWE7UUFDcEIsT0FBTyxJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksQ0FBQyxZQUFZO2VBQ3pDLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUk7ZUFDdkIsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQy9CLENBQUM7SUFFRCxTQUFTLGlCQUFpQjtRQUN4QixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVELFNBQVMsa0JBQWtCO1FBQ3pCLE9BQU8sSUFBSSxLQUFLLElBQUksQ0FBQztJQUN2QixDQUFDO0lBRUQsU0FBUyxhQUFhO1FBQ3BCLE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxzQkFBc0I7SUFDdEIsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXpCLHVEQUF1RDtJQUN2RCxJQUFJLElBQUksS0FBSyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFFekMsd0JBQXdCO0lBQ3hCLElBQUksSUFBSSxLQUFLLE9BQU87UUFBRSxPQUFPLGNBQWMsRUFBRSxDQUFDO0lBRTlDLElBQUksSUFBSSxLQUFLLE1BQU07UUFBRSxPQUFPLGFBQWEsRUFBRSxDQUFDO0lBRTVDLElBQUksSUFBSSxLQUFLLE1BQU07UUFBRSxPQUFPLGFBQWEsRUFBRSxDQUFDO0lBRTVDLElBQUksSUFBSSxLQUFLLFFBQVE7UUFBRSxPQUFPLGVBQWUsRUFBRSxDQUFDO0lBRWhELElBQUksSUFBSSxLQUFLLFVBQVU7UUFBRSxPQUFPLGlCQUFpQixFQUFFLENBQUM7SUFFcEQsT0FBTyxrQkFBa0IsRUFBRSxDQUFDO0FBQzlCLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsWUFBWTtJQUMxQixJQUFJLEVBQUUsR0FBRztRQUNQLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekUsQ0FBQyxDQUFDO0lBQ0YsT0FBTyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3pGLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUFhO0lBQ3hDLElBQUk7UUFDRixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9CLE9BQU8sQ0FBQyxPQUFPLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQztLQUNuQztJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxLQUFLLENBQUM7S0FDZDtBQUNILENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUseUJBQXlCLENBQUMsS0FBWTtJQUNwRCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0FBQzFCLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxHQUFRLEVBQ1IsV0FBbUIsRUFDbkIsZ0JBQXFCLEVBQ3JCLGdCQUFxQjtJQUVyQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDdEIsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3BCLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksS0FBSyxJQUFJO2dCQUNwQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQztnQkFDNUUsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUFDO0tBQ0o7U0FBTSxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFO1FBQ3hDLE1BQU0sVUFBVSxHQUFRLEVBQUUsQ0FBQztRQUMzQixLQUFLLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRTtZQUNyQixJQUFJLEdBQUcsS0FBSyxXQUFXLEVBQUU7Z0JBQ3ZCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtvQkFDM0IsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLEVBQUU7d0JBQ3ZDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztxQkFDeEM7eUJBQU07d0JBQ0wsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO3FCQUNyQztvQkFFRCxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUM1QjtxQkFBTTtvQkFDTCxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsZ0JBQWdCLENBQUM7aUJBQ3BDO2FBQ0Y7aUJBQU07Z0JBQ0wsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQzthQUNsRztTQUNGO1FBRUQsT0FBTyxVQUFVLENBQUM7S0FDbkI7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsUUFBYSxFQUFFLE9BQVksRUFBRSxTQUFTLEdBQUcsRUFBRTtJQUNqRixLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDdEMsTUFBTSxPQUFPLEdBQVcsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBRWhFLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3BFLE1BQU0sWUFBWSxHQUFHLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFFbkYsSUFBSSxZQUFZLEVBQUU7Z0JBQ2hCLE9BQU8sWUFBWSxDQUFDO2FBQ3JCO1NBQ0Y7YUFBTTtZQUNMLElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDbEMsT0FBTyxPQUFPLENBQUM7YUFDaEI7U0FDRjtLQUNGO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsUUFBYSxFQUFFLE9BQVk7SUFDaEUsTUFBTSxJQUFJLEdBQW1CLHVCQUF1QixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsRUFDckUsS0FBSyxHQUFHLElBQUksRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFM0IsT0FBTyxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUNyRSxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxLQUFVO0lBQ2xDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZW1wdHkgfSBmcm9tICcuLi90eXBlcyc7XHJcbmltcG9ydCB7IGFkZEl0ZW0sIGhhc0l0ZW0sIHJlbW92ZUl0ZW0gfSBmcm9tICcuL2NvbGxlY3Rpb25zLnV0aWxzJztcclxuaW1wb3J0IHsgaXNFcXVhbERhdGVUaW1lcyB9IGZyb20gJy4vZGF0ZS10aW1lLnV0aWxzJztcclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiB2YWx1ZSBkZWZpbmVkXHJcbiAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSB0byBjaGVja1xyXG4gKiBAcmV0dXJucyBUcnVlIGlmIHZhbHVlIGlzIG5vdCBudWxsIGFuZCBkZWZpbmVkXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNEZWZpbmVkPFQ+KHZhbHVlOiBUIHwgdW5kZWZpbmVkIHwgbnVsbCk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiA8VD52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIDxUPnZhbHVlICE9PSBudWxsO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRydWUgaWYgdmFsdWUgaXMgb2JqZWN0XHJcbiAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSB0byBjaGVja1xyXG4gKiBAcmV0dXJucyBUcnVlIGlmIHZhbHVlIGlzIG9iamVjdFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuICByZXR1cm4gKGlzRGVmaW5lZCh2YWx1ZSkgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0J1xyXG4gICAgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpXHJcbiAgICAmJiAhKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSB8fCB2YWx1ZSBpbnN0YW5jZW9mIEZpbGUpKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIGRhdGEgaXMgb2JzZXJ2YWJsZVxyXG4gKiBAcGFyYW0gZGF0YSBPYmplY3QgdG8gY2hlY2tcclxuICogQHJldHVybnMgVHJ1ZSBpZiBkYXRhIGlzIG9ic2VydmFibGVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0FzeW5jRGF0YShkYXRhOiBhbnkpIHtcclxuICByZXR1cm4gZGF0YSBpbnN0YW5jZW9mIE9ic2VydmFibGU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gZXh0ZW5kZWQgb2JqZWN0IHdpdGggbmV3IHByb3BlcnR5XHJcbiAqIEBwYXJhbSBvYmogT2JqZWN0IHRvIGV4dGVuZCBieSBwcm9wZXJ0eVxyXG4gKiBAcGFyYW0gcHJvcGVydHkgTmV3IHByb3BlcnR5IG5hbWUgXHJcbiAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSBmb3IgbmV3IHByb3BlcnR5XHJcbiAqIEByZXR1cm5zIEV4dGVuZGVkIG9iamVjdCB3aXRoIG5ldyBwcm9wZXJ0eVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZFByb3BlcnR5VG9PYmplY3Qob2JqOiBhbnksIHByb3BlcnR5OiBzdHJpbmcsIHZhbHVlOiBhbnkgPSBudWxsKTogYW55IHtcclxuICBpZiAoaXNEZWZpbmVkKHByb3BlcnR5KSAmJiAhb2JqLmhhc093blByb3BlcnR5KHByb3BlcnR5KSkge1xyXG4gICAgbGV0IG5ld09iajogYW55ID0ge307XHJcbiAgICBuZXdPYmpbcHJvcGVydHldID0gdmFsdWU7XHJcbiAgICBvYmogPSB7IC4uLm9iaiwgLi4ubmV3T2JqIH07XHJcbiAgfVxyXG5cclxuICByZXR1cm4gb2JqO1xyXG59XHJcblxyXG4vKipcclxuICogUmVtb3ZlIHByb3BlcnR5IGZyb20gb2JqZWN0XHJcbiAqIEBwYXJhbSBvYmogT2JqZWN0IGZvciByZW1vdmluZyBwcm9wZXJ0eVxyXG4gKiBAcGFyYW0gcHJvcGVydHkgUHJvcGVydHkgbmFtZSB0byByZW1vdmVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVQcm9wZXJ0eUZyb21PYmplY3Qob2JqOiBhbnksIHByb3BlcnR5OiBzdHJpbmcpOiB2b2lkIHtcclxuICBpZiAob2JqLmhhc093blByb3BlcnR5KHByb3BlcnR5KSkge1xyXG4gICAgZGVsZXRlIG9ialtwcm9wZXJ0eV07XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogRGVlcCBtZXJnZSBvYmplY3Qgd2l0aCBvdGhlcnNcclxuICogQHBhcmFtIHRhcmdldCAgT2JqZWN0IHRvIG1lcmdlXHJcbiAqIEBwYXJhbSBzb3VyY2VzIE9iamVjdHMgdG8gYmUgbWVyZ2VkIHdpdGggdGFyZ2V0XHJcbiAqIEByZXR1cm5zIE1lcmdlZCBvYmplY3RcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBtZXJnZURlZXAodGFyZ2V0OiBhbnksIC4uLnNvdXJjZXM6IGFueVtdKTogYW55IHtcclxuICBpZiAoIXNvdXJjZXMubGVuZ3RoKVxyXG4gICAgcmV0dXJuIHRhcmdldDtcclxuXHJcbiAgY29uc3Qgc291cmNlID0gc291cmNlcy5zaGlmdCgpO1xyXG5cclxuICBpZiAoaXNPYmplY3QodGFyZ2V0KSAmJiBpc09iamVjdChzb3VyY2UpKSB7XHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBzb3VyY2UpIHtcclxuICAgICAgaWYgKGlzT2JqZWN0KHNvdXJjZVtrZXldKSkge1xyXG4gICAgICAgIGlmICghdGFyZ2V0W2tleV0pIE9iamVjdC5hc3NpZ24odGFyZ2V0LCB7IFtrZXldOiB7fSB9KTtcclxuICAgICAgICBtZXJnZURlZXAodGFyZ2V0W2tleV0sIHNvdXJjZVtrZXldKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBPYmplY3QuYXNzaWduKHRhcmdldCwgeyBba2V5XTogc291cmNlW2tleV0gfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBtZXJnZURlZXAodGFyZ2V0LCAuLi5zb3VyY2VzKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdldCB0eXBlJ3MgcHJvcGVydHkgbmFtZSBzYWZldHlcclxuICogQHBhcmFtIG5hbWUgS2V5T2YgcHJvcGVydHlcclxuICogQHJldHVybnMgVHlwZSdzIHByb3BlcnR5IG5hbWVcclxuICovXHJcbmV4cG9ydCBjb25zdCBuYW1lb2YgPSA8VD4obmFtZToga2V5b2YgVCkgPT4gbmFtZTtcclxuXHJcbi8qKlxyXG4gICAqIERldGVybWluZXMgaWYgdGhlIGlucHV0IGlzIGEgTnVtYmVyIG9yIHNvbWV0aGluZyB0aGF0IGNhbiBiZSBjb2VyY2VkIHRvIGEgTnVtYmVyXHJcbiAgICogQHBhcmFtIG51bWJlciBUaGUgaW5wdXQgdG8gYmUgdGVzdGVkXHJcbiAgICogQHJldHVybnMgLSBBbiBpbmRpY2F0aW9uIGlmIHRoZSBpbnB1dCBpcyBhIE51bWJlciBvciBjYW4gYmUgY29lcmNlZCB0byBhIE51bWJlclxyXG4gICAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNOdW1lcmljKG51bWJlcjogYW55KTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuICFpc05hTihwYXJzZUZsb2F0KG51bWJlcikpO1xyXG59XHJcblxyXG4vKipcclxuICogIERldGVybWluZXMgaWYgdGhlIGlucHV0IGlzIGEgc3RyaW5nXHJcbiAqIEBwYXJhbSB2YWx1ZSBUaGUgaW5wdXQgdG8gYmUgdGVzdGVkXHJcbiAqIEByZXR1cm5zIEFuIGluZGljYXRpb24gaWYgdGhlIGlucHV0IGlzIGEgc3RyaW5nXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNTdHJpbmcodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRydWUgaWYgY3VycmVudCBicm93c2VyIGlzIENocm9tZVxyXG4gKiBAcmV0dXJucyBJZiBjdXJyZW50IGJyb3dzZXIgaXMgQ2hyb21lXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNDaHJvbWVCcm93c2VyKCk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiAvQ2hyb21lLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpICYmIC9Hb29nbGUgSW5jLy50ZXN0KG5hdmlnYXRvci52ZW5kb3IpO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRydWUgaWYgdmFsdWUgaXMgdmFsaWQgZW1haWwgYWRkcmVzc1xyXG4gKiBAcmV0dXJucyBUcnVlIGlmIGl0J3MgdmFsaWQgZW1haWwgYWRkcmVzc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzRW1haWwodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiBpc0RlZmluZWQodmFsdWUubWF0Y2goXHJcbiAgICAvXigoW148PigpW1xcXVxcXFwuLDs6XFxzQFxcXCJdKyhcXC5bXjw+KClbXFxdXFxcXC4sOzpcXHNAXFxcIl0rKSopfChcXFwiLitcXFwiKSlAKChcXFtbMC05XXsxLDN9XFwuWzAtOV17MSwzfVxcLlswLTldezEsM31cXC5bMC05XXsxLDN9XFxdKXwoKFthLXpBLVpcXC0wLTldK1xcLikrW2EtekEtWl17Mix9KSkkL1xyXG4gICkpO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRydWUgaWYgc3RyaW5nIGlzIFwidHJ1ZVwiXHJcbiAqIEByZXR1cm5zIHBhcnNlZCBzdHJpbmcgYXMgYm9vbGVhblxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQm9vbGVhbih2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIC9edHJ1ZSQvaS50ZXN0KHZhbHVlKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIHZhbHVlcyBlcXVhbFxyXG4gKiBAcGFyYW0gb2JqMSBGaXJzdCB2YWx1ZSB0byBjb21wYXJlXHJcbiAqIEBwYXJhbSBvYmoyIFNlY29uZCB2YWx1ZSB0byBjb21wYXJlXHJcbiAqIEByZXR1cm5zIFRydWUgaWYgZXF1YWxcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0VxdWFsKG9iajE6IGFueSwgb2JqMjogYW55KSB7XHJcbiAgLyoqXHJcbiAgICogTW9yZSBhY2N1cmF0ZWx5IGNoZWNrIHRoZSB0eXBlIG9mIGEgSmF2YVNjcmlwdCBvYmplY3RcclxuICAgKiBAcGFyYW0gIHtPYmplY3R9IG9iaiBUaGUgb2JqZWN0XHJcbiAgICogQHJldHVybiB7U3RyaW5nfSAgICAgVGhlIG9iamVjdCB0eXBlXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gZ2V0VHlwZShvYmo6IGFueSkge1xyXG4gICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmopLnNsaWNlKDgsIC0xKS50b0xvd2VyQ2FzZSgpO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYXJlQXJyYXlzRXF1YWwoKSB7XHJcblxyXG4gICAgLy8gQ2hlY2sgbGVuZ3RoXHJcbiAgICBpZiAob2JqMS5sZW5ndGggIT09IG9iajIubGVuZ3RoKSByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgLy8gQ2hlY2sgZWFjaCBpdGVtIGluIHRoZSBhcnJheVxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvYmoxLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmICghaXNFcXVhbChvYmoxW2ldLCBvYmoyW2ldKSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIElmIG5vIGVycm9ycywgcmV0dXJuIHRydWVcclxuICAgIHJldHVybiB0cnVlO1xyXG5cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFyZU9iamVjdHNFcXVhbCgpIHtcclxuXHJcbiAgICBpZiAoT2JqZWN0LmtleXMob2JqMSkubGVuZ3RoICE9PSBPYmplY3Qua2V5cyhvYmoyKS5sZW5ndGgpIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICAvLyBDaGVjayBlYWNoIGl0ZW0gaW4gdGhlIG9iamVjdFxyXG4gICAgZm9yIChsZXQga2V5IGluIG9iajEpIHtcclxuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmoxLCBrZXkpKSB7XHJcbiAgICAgICAgaWYgKCFpc0VxdWFsKG9iajFba2V5XSwgb2JqMltrZXldKSkge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIElmIG5vIGVycm9ycywgcmV0dXJuIHRydWVcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYXJlRmlsZXNFcXVhbCgpIHtcclxuICAgIHJldHVybiBvYmoxLmxhc3RNb2RpZmllZCA9PT0gb2JqMi5sYXN0TW9kaWZpZWRcclxuICAgICAgJiYgb2JqMS5zaXplID09PSBvYmoyLnNpemVcclxuICAgICAgJiYgb2JqMS50eXBlID09PSBvYmoyLnR5cGU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhcmVGdW5jdGlvbnNFcXVhbCgpIHtcclxuICAgIHJldHVybiBvYmoxLnRvU3RyaW5nKCkgPT09IG9iajIudG9TdHJpbmcoKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFyZVByaW1hdGl2ZXNFcXVhbCgpIHtcclxuICAgIHJldHVybiBvYmoxID09PSBvYmoyO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYXJlRGF0ZXNFcXVhbCgpIHtcclxuICAgIHJldHVybiBpc0VxdWFsRGF0ZVRpbWVzKG9iajEsIG9iajIpO1xyXG4gIH1cclxuXHJcbiAgLy8gR2V0IHRoZSBvYmplY3QgdHlwZVxyXG4gIGxldCB0eXBlID0gZ2V0VHlwZShvYmoxKTtcclxuXHJcbiAgLy8gSWYgdGhlIHR3byBpdGVtcyBhcmUgbm90IHRoZSBzYW1lIHR5cGUsIHJldHVybiBmYWxzZVxyXG4gIGlmICh0eXBlICE9PSBnZXRUeXBlKG9iajIpKSByZXR1cm4gZmFsc2U7XHJcblxyXG4gIC8vIENvbXBhcmUgYmFzZWQgb24gdHlwZVxyXG4gIGlmICh0eXBlID09PSAnYXJyYXknKSByZXR1cm4gYXJlQXJyYXlzRXF1YWwoKTtcclxuXHJcbiAgaWYgKHR5cGUgPT09ICdkYXRlJykgcmV0dXJuIGFyZURhdGVzRXF1YWwoKTtcclxuXHJcbiAgaWYgKHR5cGUgPT09ICdmaWxlJykgcmV0dXJuIGFyZUZpbGVzRXF1YWwoKTtcclxuXHJcbiAgaWYgKHR5cGUgPT09ICdvYmplY3QnKSByZXR1cm4gYXJlT2JqZWN0c0VxdWFsKCk7XHJcblxyXG4gIGlmICh0eXBlID09PSAnZnVuY3Rpb24nKSByZXR1cm4gYXJlRnVuY3Rpb25zRXF1YWwoKTtcclxuXHJcbiAgcmV0dXJuIGFyZVByaW1hdGl2ZXNFcXVhbCgpO1xyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhdGUgdW5pcXVlIGlkZW50aWZpY2F0b3JcclxuICogQHJldHVybnMgUmFuZG9tIEdVSURcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUd1aWQoKTogc3RyaW5nIHtcclxuICBsZXQgUzQgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICByZXR1cm4gKCgoMSArIE1hdGgucmFuZG9tKCkpICogMHgxMDAwMCkgfCAwKS50b1N0cmluZygxNikuc3Vic3RyaW5nKDEpO1xyXG4gIH07XHJcbiAgcmV0dXJuIChTNCgpICsgUzQoKSArIFwiLVwiICsgUzQoKSArIFwiLVwiICsgUzQoKSArIFwiLVwiICsgUzQoKSArIFwiLVwiICsgUzQoKSArIFM0KCkgKyBTNCgpKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrIGlmIHZhbHVlIGlzIEpzb24gcGFyc2FibGUgc3RyaW5nXHJcbiAqIEBwYXJhbSB2YWx1ZSBzdHJpbmcgdmFsdWVcclxuICogQHJldHVybnMgVHJ1ZSBpZiBzdHJpbmcgY2FuIGJlIEpTT04gcGFyc2VkXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNKc29uU3RyaW5nKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICB0cnkge1xyXG4gICAgY29uc3QganNvbiA9IEpTT04ucGFyc2UodmFsdWUpO1xyXG4gICAgcmV0dXJuICh0eXBlb2YganNvbiA9PT0gJ29iamVjdCcpO1xyXG4gIH0gY2F0Y2ggKGUpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTdG9wIHByb3BhZ2F0aW9uIGFuZCBwcmV2ZW50IGRlZmF1bHRcclxuICogQHBhcmFtIGV2ZW50IEV2ZW50IG9iamVjdFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHN0b3BBbmRQcmV2ZW50UHJvcGFnYXRpb24oZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFVwZGF0ZSBwcm9wZXJ0eSBpbiBvYmplY3QgYnkga2V5XHJcbiAqIEBwYXJhbSBvYmogT2JqZWN0IHRvIGNoYW5nZVxyXG4gKiBAcGFyYW0gcHJvcGVydHlLZXkgUHJvcGVydHkgdG8gY2hhbmdlXHJcbiAqIEBwYXJhbSBuZXdQcm9wZXJ0eVZhbHVlIE5ldyBwcm9wZXJ0eSB2YWx1ZVxyXG4gKiBAcGFyYW0gb2xkUHJvcGVydHlWYWx1ZSBPbGQgcHJvcGVydHkgdmFsdWVcclxuICogQHJldHVybnMgVXBkYXRlZCBvYmplY3RcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVQcm9wZXJ0eUJ5S2V5KFxyXG4gIG9iajogYW55LFxyXG4gIHByb3BlcnR5S2V5OiBzdHJpbmcsXHJcbiAgbmV3UHJvcGVydHlWYWx1ZTogYW55LFxyXG4gIG9sZFByb3BlcnR5VmFsdWU6IGFueVxyXG4pOiBhbnkge1xyXG4gIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcclxuICAgIHJldHVybiBvYmoubWFwKGl0ZW0gPT4ge1xyXG4gICAgICByZXR1cm4gaXNPYmplY3QoaXRlbSkgJiYgaXRlbSAhPT0gbnVsbFxyXG4gICAgICAgID8gdXBkYXRlUHJvcGVydHlCeUtleShpdGVtLCBwcm9wZXJ0eUtleSwgbmV3UHJvcGVydHlWYWx1ZSwgb2xkUHJvcGVydHlWYWx1ZSlcclxuICAgICAgICA6IGl0ZW07XHJcbiAgICB9KTtcclxuICB9IGVsc2UgaWYgKGlzT2JqZWN0KG9iaikgJiYgb2JqICE9PSBudWxsKSB7XHJcbiAgICBjb25zdCB1cGRhdGVkT2JqOiBhbnkgPSB7fTtcclxuICAgIGZvciAoY29uc3Qga2V5IGluIG9iaikge1xyXG4gICAgICBpZiAoa2V5ID09PSBwcm9wZXJ0eUtleSkge1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9ialtrZXldKSkge1xyXG4gICAgICAgICAgaWYgKGhhc0l0ZW0ob2JqW2tleV0sIG9sZFByb3BlcnR5VmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHJlbW92ZUl0ZW0ob2JqW2tleV0sIG9sZFByb3BlcnR5VmFsdWUpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgYWRkSXRlbShvYmpba2V5XSwgb2xkUHJvcGVydHlWYWx1ZSk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgdXBkYXRlZE9ialtrZXldID0gb2JqW2tleV07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHVwZGF0ZWRPYmpba2V5XSA9IG5ld1Byb3BlcnR5VmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHVwZGF0ZWRPYmpba2V5XSA9IHVwZGF0ZVByb3BlcnR5QnlLZXkob2JqW2tleV0sIHByb3BlcnR5S2V5LCBuZXdQcm9wZXJ0eVZhbHVlLCBvbGRQcm9wZXJ0eVZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB1cGRhdGVkT2JqO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIG9iajtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdldCBjaGFuZ2VkIHByb3BlcnR5IHBhdGhcclxuICogQHBhcmFtIHByZXZpb3VzIFByZXZpb3VzIHZhbHVlIFxyXG4gKiBAcGFyYW0gY3VycmVudCBDdXJyZW5jeSB2YWx1ZVxyXG4gKiBAcGFyYW0gcGFyZW50S2V5IFBhcmVudCBvYmplY3Qga2V5IG5hbWVcclxuICogQHJldHVybnMgUGF0aCBvZiBwcm9wZXJ0eSB0aGF0IHdhcyBjaGFuZ2VkXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZmluZENoYW5nZWRQcm9wZXJ0eVBhdGgocHJldmlvdXM6IGFueSwgY3VycmVudDogYW55LCBwYXJlbnRLZXkgPSAnJyk6IHN0cmluZyB8IGVtcHR5IHtcclxuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhjdXJyZW50KSkge1xyXG4gICAgY29uc3QgZnVsbEtleTogc3RyaW5nID0gcGFyZW50S2V5ID8gYCR7cGFyZW50S2V5fS4ke2tleX1gIDoga2V5O1xyXG5cclxuICAgIGlmIChpc09iamVjdChjdXJyZW50W2tleV0pICYmIGN1cnJlbnRba2V5XSAhPT0gbnVsbCAmJiBwcmV2aW91c1trZXldKSB7XHJcbiAgICAgIGNvbnN0IG5lc3RlZENoYW5nZSA9IGZpbmRDaGFuZ2VkUHJvcGVydHlQYXRoKHByZXZpb3VzW2tleV0sIGN1cnJlbnRba2V5XSwgZnVsbEtleSk7XHJcblxyXG4gICAgICBpZiAobmVzdGVkQ2hhbmdlKSB7XHJcbiAgICAgICAgcmV0dXJuIG5lc3RlZENoYW5nZTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHByZXZpb3VzW2tleV0gIT09IGN1cnJlbnRba2V5XSkge1xyXG4gICAgICAgIHJldHVybiBmdWxsS2V5O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gbnVsbDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdldCBjaGFuZ2VkIHByb3BlcnR5IGtleVxyXG4gKiBAcGFyYW0gcHJldmlvdXMgUHJldmlvdXMgdmFsdWVcclxuICogQHBhcmFtIGN1cnJlbnQgQ3VycmVuY3kgdmFsdWVcclxuICogQHJldHVybnMgS2V5IG9mIHByb3BlcnR5IHRoYXQgd2FzIGNoYW5nZWRcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBmaW5kQ2hhbmdlZFByb3BlcnR5S2V5KHByZXZpb3VzOiBhbnksIGN1cnJlbnQ6IGFueSk6IHN0cmluZyB8IGVtcHR5IHtcclxuICBjb25zdCBwYXRoOiBzdHJpbmcgfCBlbXB0eSA9IGZpbmRDaGFuZ2VkUHJvcGVydHlQYXRoKHByZXZpb3VzLCBjdXJyZW50KSxcclxuICAgIHBhcnRzID0gcGF0aD8uc3BsaXQoJy4nKTtcclxuXHJcbiAgcmV0dXJuIHBhcnRzICYmIHBhcnRzLmxlbmd0aCA/IHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdIDogdW5kZWZpbmVkO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZGVlcENsb25lKHZhbHVlOiBhbnkpOiBhbnkge1xyXG4gIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XHJcbn0iXX0=
@@ -1,8 +1,8 @@
1
- export { isDefined, isObject, isAsyncData, addPropertyToObject, removePropertyFromObject, mergeDeep, nameof, isNumeric, isString, isChromeBrowser, isEmail, parseBoolean, isEqual, generateGuid, isJsonString, stopAndPreventPropagation } from './common.utils';
1
+ export { isDefined, isObject, isAsyncData, addPropertyToObject, removePropertyFromObject, mergeDeep, nameof, isNumeric, isString, isChromeBrowser, isEmail, parseBoolean, isEqual, generateGuid, isJsonString, stopAndPreventPropagation, updatePropertyByKey, findChangedPropertyPath, findChangedPropertyKey, deepClone } from './common.utils';
2
2
  export { isNullOrEmptyString, contains, trim } from './string.utils';
3
3
  export { setMinutes, setHours, setDay, setYear, setSeconds, setMilliseconds, setDefaultSecondsAndMiliseconds, getNextDate, getPreviousDate, getNextMonth, getPreviousMonth, getNextYear, getPreviousYear, getFirstDayOfMonth, getLastDayOfMonth, getFirstDayOfYear, getLastDayOfYear, getFirstDayOfMonthByYearAndMonth, getLastDayOfMonthByYearAndMonth, getWeeksNumberInMonth, isEqualDates, isEqualDateTimes, isDateGreat, isDateGreatOrEqual, isDateTimeGreat, isDateTimeGreatOrEqual, isDateTimeLessOrEqual, isTimeGreatOrEqual, isTimeLessOrEqual, convertUTCDateToLocalDate, convertTimestampToDate, convertDateToTimestamp, getAge } from './date-time.utils';
4
4
  export { parseFileSize, getFileExtension, readAsDataURL, isImage, convertToBase64String, convertFromBase64String } from './file.utils';
5
5
  export { getCssLikeValue, getValueFromCssLikeValue, getCalcValue, getRotateValue, addClasses, removeClasses, rgbToHex, hexToRgb, replaceRgbOpacity } from './ui.utils';
6
6
  export { any, hasItem, hasItemBy, hasObjectItem, hasAnyItem, firstOrDefault, firstItem, lastItem, all, where, skip, sort, sortBy, sortByPath, distinct, sum, max, remove, addItem, removeItem, removeItemBy, updateItemBy, getCollectionOrEmpty, count, isArraysEquals } from './collections.utils';
7
7
  export { buildHttpParams } from './http.utils';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbW1vbi9zcmMvbGliL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsd0JBQXdCLEVBQ3hCLFNBQVMsRUFDVCxNQUFNLEVBQ04sU0FBUyxFQUNULFFBQVEsRUFDUixlQUFlLEVBQ2YsT0FBTyxFQUNQLFlBQVksRUFDWixPQUFPLEVBQ1AsWUFBWSxFQUNaLFlBQVksRUFDWix5QkFBeUIsRUFDNUIsTUFBTSxnQkFBZ0IsQ0FBQTtBQUV2QixPQUFPLEVBQ0gsbUJBQW1CLEVBQ25CLFFBQVEsRUFDUixJQUFJLEVBQ1AsTUFBTSxnQkFBZ0IsQ0FBQTtBQUV2QixPQUFPLEVBQ0gsVUFBVSxFQUNWLFFBQVEsRUFDUixNQUFNLEVBQ04sT0FBTyxFQUNQLFVBQVUsRUFDVixlQUFlLEVBQ2YsK0JBQStCLEVBQy9CLFdBQVcsRUFDWCxlQUFlLEVBQ2YsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixnQ0FBZ0MsRUFDaEMsK0JBQStCLEVBQy9CLHFCQUFxQixFQUNyQixZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWCxrQkFBa0IsRUFDbEIsZUFBZSxFQUNmLHNCQUFzQixFQUN0QixxQkFBcUIsRUFDckIsa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNqQix5QkFBeUIsRUFDekIsc0JBQXNCLEVBQ3RCLHNCQUFzQixFQUN0QixNQUFNLEVBQ1QsTUFBTSxtQkFBbUIsQ0FBQTtBQUUxQixPQUFPLEVBQ0gsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsT0FBTyxFQUNQLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDMUIsTUFBTSxjQUFjLENBQUE7QUFFckIsT0FBTyxFQUNILGVBQWUsRUFDZix3QkFBd0IsRUFDeEIsWUFBWSxFQUNaLGNBQWMsRUFDZCxVQUFVLEVBQ1YsYUFBYSxFQUNiLFFBQVEsRUFDUixRQUFRLEVBQ1IsaUJBQWlCLEVBQ3BCLE1BQU0sWUFBWSxDQUFBO0FBRW5CLE9BQU8sRUFDSCxHQUFHLEVBQ0gsT0FBTyxFQUNQLFNBQVMsRUFDVCxhQUFhLEVBQ2IsVUFBVSxFQUNWLGNBQWMsRUFDZCxTQUFTLEVBQ1QsUUFBUSxFQUNSLEdBQUcsRUFDSCxLQUFLLEVBQ0wsSUFBSSxFQUNKLElBQUksRUFDSixNQUFNLEVBQ04sVUFBVSxFQUNWLFFBQVEsRUFDUixHQUFHLEVBQ0gsR0FBRyxFQUNILE1BQU0sRUFDTixPQUFPLEVBQ1AsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLEtBQUssRUFDTCxjQUFjLEVBQ2pCLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7XHJcbiAgICBpc0RlZmluZWQsXHJcbiAgICBpc09iamVjdCxcclxuICAgIGlzQXN5bmNEYXRhLFxyXG4gICAgYWRkUHJvcGVydHlUb09iamVjdCxcclxuICAgIHJlbW92ZVByb3BlcnR5RnJvbU9iamVjdCxcclxuICAgIG1lcmdlRGVlcCxcclxuICAgIG5hbWVvZixcclxuICAgIGlzTnVtZXJpYyxcclxuICAgIGlzU3RyaW5nLFxyXG4gICAgaXNDaHJvbWVCcm93c2VyLFxyXG4gICAgaXNFbWFpbCxcclxuICAgIHBhcnNlQm9vbGVhbixcclxuICAgIGlzRXF1YWwsXHJcbiAgICBnZW5lcmF0ZUd1aWQsXHJcbiAgICBpc0pzb25TdHJpbmcsXHJcbiAgICBzdG9wQW5kUHJldmVudFByb3BhZ2F0aW9uXHJcbn0gZnJvbSAnLi9jb21tb24udXRpbHMnXHJcblxyXG5leHBvcnQge1xyXG4gICAgaXNOdWxsT3JFbXB0eVN0cmluZyxcclxuICAgIGNvbnRhaW5zLFxyXG4gICAgdHJpbVxyXG59IGZyb20gJy4vc3RyaW5nLnV0aWxzJ1xyXG5cclxuZXhwb3J0IHtcclxuICAgIHNldE1pbnV0ZXMsXHJcbiAgICBzZXRIb3VycyxcclxuICAgIHNldERheSxcclxuICAgIHNldFllYXIsXHJcbiAgICBzZXRTZWNvbmRzLFxyXG4gICAgc2V0TWlsbGlzZWNvbmRzLFxyXG4gICAgc2V0RGVmYXVsdFNlY29uZHNBbmRNaWxpc2Vjb25kcyxcclxuICAgIGdldE5leHREYXRlLFxyXG4gICAgZ2V0UHJldmlvdXNEYXRlLFxyXG4gICAgZ2V0TmV4dE1vbnRoLFxyXG4gICAgZ2V0UHJldmlvdXNNb250aCxcclxuICAgIGdldE5leHRZZWFyLFxyXG4gICAgZ2V0UHJldmlvdXNZZWFyLFxyXG4gICAgZ2V0Rmlyc3REYXlPZk1vbnRoLFxyXG4gICAgZ2V0TGFzdERheU9mTW9udGgsXHJcbiAgICBnZXRGaXJzdERheU9mWWVhcixcclxuICAgIGdldExhc3REYXlPZlllYXIsXHJcbiAgICBnZXRGaXJzdERheU9mTW9udGhCeVllYXJBbmRNb250aCxcclxuICAgIGdldExhc3REYXlPZk1vbnRoQnlZZWFyQW5kTW9udGgsXHJcbiAgICBnZXRXZWVrc051bWJlckluTW9udGgsXHJcbiAgICBpc0VxdWFsRGF0ZXMsXHJcbiAgICBpc0VxdWFsRGF0ZVRpbWVzLFxyXG4gICAgaXNEYXRlR3JlYXQsXHJcbiAgICBpc0RhdGVHcmVhdE9yRXF1YWwsXHJcbiAgICBpc0RhdGVUaW1lR3JlYXQsXHJcbiAgICBpc0RhdGVUaW1lR3JlYXRPckVxdWFsLFxyXG4gICAgaXNEYXRlVGltZUxlc3NPckVxdWFsLFxyXG4gICAgaXNUaW1lR3JlYXRPckVxdWFsLFxyXG4gICAgaXNUaW1lTGVzc09yRXF1YWwsXHJcbiAgICBjb252ZXJ0VVRDRGF0ZVRvTG9jYWxEYXRlLFxyXG4gICAgY29udmVydFRpbWVzdGFtcFRvRGF0ZSxcclxuICAgIGNvbnZlcnREYXRlVG9UaW1lc3RhbXAsXHJcbiAgICBnZXRBZ2VcclxufSBmcm9tICcuL2RhdGUtdGltZS51dGlscydcclxuXHJcbmV4cG9ydCB7XHJcbiAgICBwYXJzZUZpbGVTaXplLFxyXG4gICAgZ2V0RmlsZUV4dGVuc2lvbixcclxuICAgIHJlYWRBc0RhdGFVUkwsXHJcbiAgICBpc0ltYWdlLFxyXG4gICAgY29udmVydFRvQmFzZTY0U3RyaW5nLFxyXG4gICAgY29udmVydEZyb21CYXNlNjRTdHJpbmdcclxufSBmcm9tICcuL2ZpbGUudXRpbHMnXHJcblxyXG5leHBvcnQge1xyXG4gICAgZ2V0Q3NzTGlrZVZhbHVlLFxyXG4gICAgZ2V0VmFsdWVGcm9tQ3NzTGlrZVZhbHVlLFxyXG4gICAgZ2V0Q2FsY1ZhbHVlLFxyXG4gICAgZ2V0Um90YXRlVmFsdWUsXHJcbiAgICBhZGRDbGFzc2VzLFxyXG4gICAgcmVtb3ZlQ2xhc3NlcyxcclxuICAgIHJnYlRvSGV4LFxyXG4gICAgaGV4VG9SZ2IsXHJcbiAgICByZXBsYWNlUmdiT3BhY2l0eVxyXG59IGZyb20gJy4vdWkudXRpbHMnXHJcblxyXG5leHBvcnQge1xyXG4gICAgYW55LFxyXG4gICAgaGFzSXRlbSxcclxuICAgIGhhc0l0ZW1CeSxcclxuICAgIGhhc09iamVjdEl0ZW0sXHJcbiAgICBoYXNBbnlJdGVtLFxyXG4gICAgZmlyc3RPckRlZmF1bHQsXHJcbiAgICBmaXJzdEl0ZW0sXHJcbiAgICBsYXN0SXRlbSxcclxuICAgIGFsbCxcclxuICAgIHdoZXJlLFxyXG4gICAgc2tpcCxcclxuICAgIHNvcnQsXHJcbiAgICBzb3J0QnksXHJcbiAgICBzb3J0QnlQYXRoLFxyXG4gICAgZGlzdGluY3QsXHJcbiAgICBzdW0sXHJcbiAgICBtYXgsXHJcbiAgICByZW1vdmUsXHJcbiAgICBhZGRJdGVtLFxyXG4gICAgcmVtb3ZlSXRlbSxcclxuICAgIHJlbW92ZUl0ZW1CeSxcclxuICAgIHVwZGF0ZUl0ZW1CeSxcclxuICAgIGdldENvbGxlY3Rpb25PckVtcHR5LFxyXG4gICAgY291bnQsXHJcbiAgICBpc0FycmF5c0VxdWFsc1xyXG59IGZyb20gJy4vY29sbGVjdGlvbnMudXRpbHMnO1xyXG5cclxuZXhwb3J0IHsgYnVpbGRIdHRwUGFyYW1zIH0gZnJvbSAnLi9odHRwLnV0aWxzJzsiXX0=
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbW1vbi9zcmMvbGliL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsd0JBQXdCLEVBQ3hCLFNBQVMsRUFDVCxNQUFNLEVBQ04sU0FBUyxFQUNULFFBQVEsRUFDUixlQUFlLEVBQ2YsT0FBTyxFQUNQLFlBQVksRUFDWixPQUFPLEVBQ1AsWUFBWSxFQUNaLFlBQVksRUFDWix5QkFBeUIsRUFDekIsbUJBQW1CLEVBQ25CLHVCQUF1QixFQUN2QixzQkFBc0IsRUFDdEIsU0FBUyxFQUNaLE1BQU0sZ0JBQWdCLENBQUE7QUFFdkIsT0FBTyxFQUNILG1CQUFtQixFQUNuQixRQUFRLEVBQ1IsSUFBSSxFQUNQLE1BQU0sZ0JBQWdCLENBQUE7QUFFdkIsT0FBTyxFQUNILFVBQVUsRUFDVixRQUFRLEVBQ1IsTUFBTSxFQUNOLE9BQU8sRUFDUCxVQUFVLEVBQ1YsZUFBZSxFQUNmLCtCQUErQixFQUMvQixXQUFXLEVBQ1gsZUFBZSxFQUNmLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsV0FBVyxFQUNYLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsZ0NBQWdDLEVBQ2hDLCtCQUErQixFQUMvQixxQkFBcUIsRUFDckIsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIseUJBQXlCLEVBQ3pCLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIsTUFBTSxFQUNULE1BQU0sbUJBQW1CLENBQUE7QUFFMUIsT0FBTyxFQUNILGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLE9BQU8sRUFDUCxxQkFBcUIsRUFDckIsdUJBQXVCLEVBQzFCLE1BQU0sY0FBYyxDQUFBO0FBRXJCLE9BQU8sRUFDSCxlQUFlLEVBQ2Ysd0JBQXdCLEVBQ3hCLFlBQVksRUFDWixjQUFjLEVBQ2QsVUFBVSxFQUNWLGFBQWEsRUFDYixRQUFRLEVBQ1IsUUFBUSxFQUNSLGlCQUFpQixFQUNwQixNQUFNLFlBQVksQ0FBQTtBQUVuQixPQUFPLEVBQ0gsR0FBRyxFQUNILE9BQU8sRUFDUCxTQUFTLEVBQ1QsYUFBYSxFQUNiLFVBQVUsRUFDVixjQUFjLEVBQ2QsU0FBUyxFQUNULFFBQVEsRUFDUixHQUFHLEVBQ0gsS0FBSyxFQUNMLElBQUksRUFDSixJQUFJLEVBQ0osTUFBTSxFQUNOLFVBQVUsRUFDVixRQUFRLEVBQ1IsR0FBRyxFQUNILEdBQUcsRUFDSCxNQUFNLEVBQ04sT0FBTyxFQUNQLFVBQVUsRUFDVixZQUFZLEVBQ1osWUFBWSxFQUNaLG9CQUFvQixFQUNwQixLQUFLLEVBQ0wsY0FBYyxFQUNqQixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xyXG4gICAgaXNEZWZpbmVkLFxyXG4gICAgaXNPYmplY3QsXHJcbiAgICBpc0FzeW5jRGF0YSxcclxuICAgIGFkZFByb3BlcnR5VG9PYmplY3QsXHJcbiAgICByZW1vdmVQcm9wZXJ0eUZyb21PYmplY3QsXHJcbiAgICBtZXJnZURlZXAsXHJcbiAgICBuYW1lb2YsXHJcbiAgICBpc051bWVyaWMsXHJcbiAgICBpc1N0cmluZyxcclxuICAgIGlzQ2hyb21lQnJvd3NlcixcclxuICAgIGlzRW1haWwsXHJcbiAgICBwYXJzZUJvb2xlYW4sXHJcbiAgICBpc0VxdWFsLFxyXG4gICAgZ2VuZXJhdGVHdWlkLFxyXG4gICAgaXNKc29uU3RyaW5nLFxyXG4gICAgc3RvcEFuZFByZXZlbnRQcm9wYWdhdGlvbixcclxuICAgIHVwZGF0ZVByb3BlcnR5QnlLZXksXHJcbiAgICBmaW5kQ2hhbmdlZFByb3BlcnR5UGF0aCxcclxuICAgIGZpbmRDaGFuZ2VkUHJvcGVydHlLZXksXHJcbiAgICBkZWVwQ2xvbmVcclxufSBmcm9tICcuL2NvbW1vbi51dGlscydcclxuXHJcbmV4cG9ydCB7XHJcbiAgICBpc051bGxPckVtcHR5U3RyaW5nLFxyXG4gICAgY29udGFpbnMsXHJcbiAgICB0cmltXHJcbn0gZnJvbSAnLi9zdHJpbmcudXRpbHMnXHJcblxyXG5leHBvcnQge1xyXG4gICAgc2V0TWludXRlcyxcclxuICAgIHNldEhvdXJzLFxyXG4gICAgc2V0RGF5LFxyXG4gICAgc2V0WWVhcixcclxuICAgIHNldFNlY29uZHMsXHJcbiAgICBzZXRNaWxsaXNlY29uZHMsXHJcbiAgICBzZXREZWZhdWx0U2Vjb25kc0FuZE1pbGlzZWNvbmRzLFxyXG4gICAgZ2V0TmV4dERhdGUsXHJcbiAgICBnZXRQcmV2aW91c0RhdGUsXHJcbiAgICBnZXROZXh0TW9udGgsXHJcbiAgICBnZXRQcmV2aW91c01vbnRoLFxyXG4gICAgZ2V0TmV4dFllYXIsXHJcbiAgICBnZXRQcmV2aW91c1llYXIsXHJcbiAgICBnZXRGaXJzdERheU9mTW9udGgsXHJcbiAgICBnZXRMYXN0RGF5T2ZNb250aCxcclxuICAgIGdldEZpcnN0RGF5T2ZZZWFyLFxyXG4gICAgZ2V0TGFzdERheU9mWWVhcixcclxuICAgIGdldEZpcnN0RGF5T2ZNb250aEJ5WWVhckFuZE1vbnRoLFxyXG4gICAgZ2V0TGFzdERheU9mTW9udGhCeVllYXJBbmRNb250aCxcclxuICAgIGdldFdlZWtzTnVtYmVySW5Nb250aCxcclxuICAgIGlzRXF1YWxEYXRlcyxcclxuICAgIGlzRXF1YWxEYXRlVGltZXMsXHJcbiAgICBpc0RhdGVHcmVhdCxcclxuICAgIGlzRGF0ZUdyZWF0T3JFcXVhbCxcclxuICAgIGlzRGF0ZVRpbWVHcmVhdCxcclxuICAgIGlzRGF0ZVRpbWVHcmVhdE9yRXF1YWwsXHJcbiAgICBpc0RhdGVUaW1lTGVzc09yRXF1YWwsXHJcbiAgICBpc1RpbWVHcmVhdE9yRXF1YWwsXHJcbiAgICBpc1RpbWVMZXNzT3JFcXVhbCxcclxuICAgIGNvbnZlcnRVVENEYXRlVG9Mb2NhbERhdGUsXHJcbiAgICBjb252ZXJ0VGltZXN0YW1wVG9EYXRlLFxyXG4gICAgY29udmVydERhdGVUb1RpbWVzdGFtcCxcclxuICAgIGdldEFnZVxyXG59IGZyb20gJy4vZGF0ZS10aW1lLnV0aWxzJ1xyXG5cclxuZXhwb3J0IHtcclxuICAgIHBhcnNlRmlsZVNpemUsXHJcbiAgICBnZXRGaWxlRXh0ZW5zaW9uLFxyXG4gICAgcmVhZEFzRGF0YVVSTCxcclxuICAgIGlzSW1hZ2UsXHJcbiAgICBjb252ZXJ0VG9CYXNlNjRTdHJpbmcsXHJcbiAgICBjb252ZXJ0RnJvbUJhc2U2NFN0cmluZ1xyXG59IGZyb20gJy4vZmlsZS51dGlscydcclxuXHJcbmV4cG9ydCB7XHJcbiAgICBnZXRDc3NMaWtlVmFsdWUsXHJcbiAgICBnZXRWYWx1ZUZyb21Dc3NMaWtlVmFsdWUsXHJcbiAgICBnZXRDYWxjVmFsdWUsXHJcbiAgICBnZXRSb3RhdGVWYWx1ZSxcclxuICAgIGFkZENsYXNzZXMsXHJcbiAgICByZW1vdmVDbGFzc2VzLFxyXG4gICAgcmdiVG9IZXgsXHJcbiAgICBoZXhUb1JnYixcclxuICAgIHJlcGxhY2VSZ2JPcGFjaXR5XHJcbn0gZnJvbSAnLi91aS51dGlscydcclxuXHJcbmV4cG9ydCB7XHJcbiAgICBhbnksXHJcbiAgICBoYXNJdGVtLFxyXG4gICAgaGFzSXRlbUJ5LFxyXG4gICAgaGFzT2JqZWN0SXRlbSxcclxuICAgIGhhc0FueUl0ZW0sXHJcbiAgICBmaXJzdE9yRGVmYXVsdCxcclxuICAgIGZpcnN0SXRlbSxcclxuICAgIGxhc3RJdGVtLFxyXG4gICAgYWxsLFxyXG4gICAgd2hlcmUsXHJcbiAgICBza2lwLFxyXG4gICAgc29ydCxcclxuICAgIHNvcnRCeSxcclxuICAgIHNvcnRCeVBhdGgsXHJcbiAgICBkaXN0aW5jdCxcclxuICAgIHN1bSxcclxuICAgIG1heCxcclxuICAgIHJlbW92ZSxcclxuICAgIGFkZEl0ZW0sXHJcbiAgICByZW1vdmVJdGVtLFxyXG4gICAgcmVtb3ZlSXRlbUJ5LFxyXG4gICAgdXBkYXRlSXRlbUJ5LFxyXG4gICAgZ2V0Q29sbGVjdGlvbk9yRW1wdHksXHJcbiAgICBjb3VudCxcclxuICAgIGlzQXJyYXlzRXF1YWxzXHJcbn0gZnJvbSAnLi9jb2xsZWN0aW9ucy51dGlscyc7XHJcblxyXG5leHBvcnQgeyBidWlsZEh0dHBQYXJhbXMgfSBmcm9tICcuL2h0dHAudXRpbHMnOyJdfQ==