@falcon-ng/tailwind 0.0.9 → 0.0.11

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.
Files changed (38) hide show
  1. package/esm2022/lib/base-control.mjs +2 -2
  2. package/esm2022/lib/component/auto-complete/auto-complete.component.mjs +3 -3
  3. package/esm2022/lib/component/bottom-sheet/bottom-sheet.component.mjs +3 -3
  4. package/esm2022/lib/component/button/button.component.mjs +3 -3
  5. package/esm2022/lib/component/button-toggle/button-toggle.component.mjs +3 -3
  6. package/esm2022/lib/component/checkbox/checkbox.component.mjs +3 -3
  7. package/esm2022/lib/component/chips/chip.component.mjs +3 -3
  8. package/esm2022/lib/component/date-picker/date-picker.component.mjs +3 -3
  9. package/esm2022/lib/component/dialog/dialog.component.mjs +3 -3
  10. package/esm2022/lib/component/pagination/pagination.component.mjs +3 -3
  11. package/esm2022/lib/component/progress-bar/progress-bar.component.mjs +3 -3
  12. package/esm2022/lib/component/progress-spinner/progress-spinner.component.mjs +3 -3
  13. package/esm2022/lib/component/radio/radio.component.mjs +3 -3
  14. package/esm2022/lib/component/rich-text-editor/rich-text-editor.component.mjs +3 -3
  15. package/esm2022/lib/component/select/select.component.mjs +3 -3
  16. package/esm2022/lib/component/slide-toggle/slide-toggle.component.mjs +3 -3
  17. package/esm2022/lib/component/slider/slider.component.mjs +3 -3
  18. package/esm2022/lib/component/snack-bar/snack-bar.component.mjs +3 -3
  19. package/esm2022/lib/component/table/table.component.mjs +5 -5
  20. package/esm2022/lib/component/textarea/textarea.component.mjs +3 -3
  21. package/esm2022/lib/component/textbox/textbox.component.mjs +3 -3
  22. package/esm2022/lib/control-builder/control-builder.component.mjs +3 -3
  23. package/esm2022/lib/falcon-core.module.mjs +4 -4
  24. package/esm2022/lib/model/environments.mjs +1 -1
  25. package/esm2022/lib/module/angularmaterial.module.mjs +4 -4
  26. package/esm2022/lib/reactive-field.directive.mjs +3 -3
  27. package/esm2022/lib/service/appsetting.service.mjs +3 -3
  28. package/esm2022/lib/service/http/generic-http-client.mjs +9 -9
  29. package/esm2022/lib/service/http/igeneric-http-client.mjs +3 -3
  30. package/esm2022/lib/service/logger.service.mjs +3 -3
  31. package/esm2022/lib/service/open-id/TokenHelperService.mjs +3 -3
  32. package/esm2022/lib/service/open-id/auth-guard.service.mjs +3 -3
  33. package/esm2022/lib/service/open-id/auth.service.mjs +24 -37
  34. package/fesm2022/falcon-ng-tailwind.mjs +122 -135
  35. package/fesm2022/falcon-ng-tailwind.mjs.map +1 -1
  36. package/lib/base-control.d.ts +3 -2
  37. package/lib/service/open-id/auth.service.d.ts +7 -8
  38. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { HttpRequest, HttpEventType } from '@angular/common/http';
1
+ import { HttpRequest, HttpEventType, HttpStatusCode } from '@angular/common/http';
2
2
  import { Observable } from 'rxjs';
3
3
  import { Injectable } from '@angular/core';
4
4
  import * as i0 from "@angular/core";
@@ -152,23 +152,23 @@ export class GenericHttpClient {
152
152
  }
153
153
  }, (error) => {
154
154
  switch (error.status) {
155
- case 403 /* HttpStatusCode.Forbidden */:
155
+ case HttpStatusCode.Forbidden:
156
156
  // observer.complete();
157
157
  this.snackBarViewModel.messageText = 'Access to the requested resource is forbidden.';
158
158
  this.snackBarViewModel.actionText = 'Forbidden';
159
159
  this.isHttpError = true;
160
160
  break;
161
- case 400 /* HttpStatusCode.BadRequest */:
161
+ case HttpStatusCode.BadRequest:
162
162
  this.snackBarViewModel.messageText = 'Server cannot or will not process the request.';
163
163
  this.snackBarViewModel.actionText = 'Bad Request';
164
164
  this.isHttpError = true;
165
165
  break;
166
- case 401 /* HttpStatusCode.Unauthorized */:
166
+ case HttpStatusCode.Unauthorized:
167
167
  this.snackBarViewModel.messageText = 'Request has not been applied because it lacks valid authentication credentials.';
168
168
  this.snackBarViewModel.actionText = 'Unauthorized';
169
169
  this.isHttpError = true;
170
170
  break;
171
- case 500 /* HttpStatusCode.InternalServerError */:
171
+ case HttpStatusCode.InternalServerError:
172
172
  this.snackBarViewModel.messageText = 'Server encountered an unexpected condition.';
173
173
  this.snackBarViewModel.actionText = 'Internal server error';
174
174
  this.isHttpError = true;
@@ -185,13 +185,13 @@ export class GenericHttpClient {
185
185
  });
186
186
  });
187
187
  }
188
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: GenericHttpClient, deps: [{ token: i1.HttpClient }, { token: i2.EnvironmentViewModel }, { token: i3.MatSnackBar }, { token: i4.LoggerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
189
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: GenericHttpClient, providedIn: 'root' }); }
188
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: GenericHttpClient, deps: [{ token: i1.HttpClient }, { token: i2.EnvironmentViewModel }, { token: i3.MatSnackBar }, { token: i4.LoggerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
189
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: GenericHttpClient, providedIn: 'root' }); }
190
190
  }
191
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: GenericHttpClient, decorators: [{
191
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: GenericHttpClient, decorators: [{
192
192
  type: Injectable,
193
193
  args: [{
194
194
  providedIn: 'root'
195
195
  }]
196
196
  }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.EnvironmentViewModel }, { type: i3.MatSnackBar }, { type: i4.LoggerService }] });
197
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1odHRwLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZhbGNvbi1uZy90YWlsd2luZC9zcmMvbGliL3NlcnZpY2UvaHR0cC9nZW5lcmljLWh0dHAtY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxXQUFXLEVBQ1gsYUFBYSxFQUdkLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFVBQVUsRUFBUSxNQUFNLE1BQU0sQ0FBQztBQUV4QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFTM0MsTUFBTSxPQUFPLGlCQUFpQjtJQUk1QixZQUFvQixVQUFzQixFQUFVLFdBQWlDLEVBQzNFLFNBQXNCLEVBQVUsTUFBcUI7UUFEM0MsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFzQjtRQUMzRSxjQUFTLEdBQVQsU0FBUyxDQUFhO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUp2RCxzQkFBaUIsR0FBa0IsRUFBbUIsQ0FBQztRQUN2RCxnQkFBVyxHQUFZLEtBQUssQ0FBQztJQUc4QixDQUFDO0lBR3BFOzs7Ozs7Ozs7Ozs7Ozs7SUFlQTtJQUNPLEdBQUcsQ0FBQyxjQUFzQixFQUFFLE9BQStCO1FBQ2hFLE9BQU8sSUFBSSxDQUFDLE9BQU8sNkJBQW9CLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7TUFnQkU7SUFDSyxJQUFJLENBQUMsY0FBc0IsRUFBRSxPQUErQjtRQUNqRSxPQUFPLElBQUksQ0FBQyxPQUFPLCtCQUFxQixjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7O01BZ0JFO0lBQ0ssR0FBRyxDQUFDLGNBQXNCLEVBQUUsT0FBK0I7UUFDaEUsT0FBTyxJ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QyxpQkFBaUIsQ0FBQyxVQUFVLEdBQUcsY0FBYyxDQUFDO3dCQUNuRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQzt3QkFDeEIsTUFBTTtvQkFDUjt3QkFDRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxHQUFHLDZDQUE2QyxDQUFDO3dCQUNuRixJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxHQUFHLHVCQUF1QixDQUFDO3dCQUM1RCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQzt3QkFDeEIsTUFBTTtvQkFDUixLQUFLLENBQUM7d0JBQ0osSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsR0FBRywrQkFBK0IsQ0FBQzt3QkFDckUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsR0FBRyx1QkFBdUIsQ0FBQzt3QkFDNUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7d0JBQ3hCLE1BQU07aUJBQ1Q7Z0JBQ0QsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxJQUFJLFNBQVMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXO29CQUN2RyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMvRixDQUFDLENBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0F6TFUsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FGaEIsTUFBTTs7MkZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEh0dHBDbGllbnQsXG4gIEh0dHBSZXF1ZXN0LFxuICBIdHRwRXZlbnRUeXBlLFxuICBIdHRwRXZlbnQsXG4gIEh0dHBTdGF0dXNDb2RlXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElHZW5lcmljSHR0cENsaWVudCB9IGZyb20gJy4vaWdlbmVyaWMtaHR0cC1jbGllbnQnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtJUmVxdWVzdE9wdGlvbnMsIFNuYWNrYmFyTW9kZWx9IGZyb20gJy4uLy4uL21vZGVsL2ludGVyZmFjZSc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtFbnZpcm9ubWVudFZpZXdNb2RlbH0gZnJvbSBcIi4uLy4uL21vZGVsL2Vudmlyb25tZW50c1wiO1xuaW1wb3J0IHtIdHRwTWV0aG9kfSBmcm9tIFwiLi4vLi4vbW9kZWwvZW51bVwiO1xuaW1wb3J0IHtNYXRTbmFja0Jhcn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhclwiO1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgR2VuZXJpY0h0dHBDbGllbnQ8VD4gaW1wbGVtZW50cyBJR2VuZXJpY0h0dHBDbGllbnQ8VD57XG4gIHByaXZhdGUgc25hY2tCYXJWaWV3TW9kZWw6IFNuYWNrYmFyTW9kZWwgPSB7fSBhcyBTbmFja2Jhck1vZGVsO1xuICBwcml2YXRlIGlzSHR0cEVycm9yOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LCBwcml2YXRlIGVudmlyb25tZW50OiBFbnZpcm9ubWVudFZpZXdNb2RlbCxcbiAgICBwcml2YXRlIF9zbmFja0JhcjogTWF0U25hY2tCYXIsIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlKSB7IH1cblxuXG4gIC8qKlxuICAqIEBkZXNjcmlwdGlvblxuICAqIEdlbmVyaWMgSHR0cCBHRVQgbWV0aG9kIHRvIEdldCB0aGUgcmVzcG9uc2UgYW5kIGJpbmQgdG8gdGhlIHZpZXcgbW9kZWxcbiAgKiBAcGFyYW0ge3N0cmluZ30gZGVzdGluYXRpb25VcmwgZW5kUG9pbnQgaXQgZG9lc24ndCBuZWVkIC8gaW4gZnJvbnQgb2YgdGhlIGVuZCBwb2ludC5cbiAgKiBAcGFyYW0ge0lSZXF1ZXN0T3B0aW9uc30gb3B0aW9ucyBvcHRpb25zIG9mIHRoZSByZXF1ZXN0IGxpa2UgaGVhZGVycywgYm9keSwgZXRjLlxuICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPFQ+fVxuICAqIEB1c2FnZU5vdGVzXG4gICogVGhlIGZvbGxvd2luZyBzbmlwcGV0IHNob3dzIGhvdyB0byB1c2UgdGhpcyBtZXRob2RcbiAgKiBgYGB0c1xuICAqICAgIHRoaXMuZ2VuZXJpY0h0dHBTZXJ2aWNlLkdldChcImdldF91cmxcIikuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAqICAgICAgICBjb25zb2xlLmxvZygnc3VjY2VzcycpO1xuICAqICAgICAgfSwgZXJyb3IgPT4ge1xuICAqICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAqICAgICAgfSk7XG4gICogYGBgXG4qL1xuICBwdWJsaWMgZ2V0KGRlc3RpbmF0aW9uVXJsOiBzdHJpbmcsIG9wdGlvbnM/OiBJUmVxdWVzdE9wdGlvbnMgfCBhbnkpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0PFQ+KEh0dHBNZXRob2QuR2V0LCBkZXN0aW5hdGlvblVybCwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICAqIEBkZXNjcmlwdGlvblxuICAgICogR2VuZXJpYyBIdHRwIHBvc3QgbWV0aG9kIHRvIHBvc3QgdGhlIHZpZXcgbW9kZWwgYW5kIGJpbmQgdGhlIHJldHVybiB2aWV3IG1vZGVsXG4gICAgKiBAcGFyYW0ge3N0cmluZ30gZGVzdGluYXRpb25VcmwgZW5kUG9pbnQgaXQgZG9lc24ndCBuZWVkIC8gaW4gZnJvbnQgb2YgdGhlIGVuZCBwb2ludC5cbiAgICAqIEBwYXJhbSB7SVJlcXVlc3RPcHRpb25zfSBvcHRpb25zIG9wdGlvbnMgb2YgdGhlIHJlcXVlc3QgbGlrZSBoZWFkZXJzLCBib2R5LCBldGMuXG4gICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxUPn1cbiAgICAqIEB1c2FnZU5vdGVzXG4gICAgKiBUaGUgZm9sbG93aW5nIHNuaXBwZXQgc2hvd3MgaG93IHRvIHVzZSB0aGlzIG1ldGhvZFxuICAgICogYGBgdHNcbiAgICAqICAgIHRoaXMuZ2VuZXJpY0h0dHBDbGllbnRTZXJ2aWNlLlBvc3QocG9zdC11cmwscG9zdC12aWV3LW1vZGVsKS5zdWJzY3JpYmUoaXRlbSA9PiB7XG4gICAgKiAgICAgICAgY29uc29sZS5sb2coaXRlbSk7XG4gICAgKiAgICAgIH0sXG4gICAgKiAgICAgIGVyciA9PiB7XG4gICAgKiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAqICAgICAgfSk7XG4gICAgKiBgYGBcbiAgKi9cbiAgcHVibGljIHBvc3QoZGVzdGluYXRpb25Vcmw6IHN0cmluZywgb3B0aW9ucz86IElSZXF1ZXN0T3B0aW9ucyB8IGFueSk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3Q8VD4oSHR0cE1ldGhvZC5Qb3N0LCBkZXN0aW5hdGlvblVybCwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICAqIEBkZXNjcmlwdGlvblxuICAgICogR2VuZXJpYyBIdHRwIFB1dCBtZXRob2QgdG8gcG9zdCB0aGUgdmlldyBtb2RlbCBhbmQgYmluZCB0aGUgcmV0dXJuIHZpZXcgbW9kZWxcbiAgICAqIEBwYXJhbSB7c3RyaW5nfSBkZXN0aW5hdGlvblVybCBlbmRQb2ludCBpdCBkb2Vzbid0IG5lZWQgLyBpbiBmcm9udCBvZiB0aGUgZW5kIHBvaW50LlxuICAgICogQHBhcmFtIHtJUmVxdWVzdE9wdGlvbnN9IG9wdGlvbnMgb3B0aW9ucyBvZiB0aGUgcmVxdWVzdCBsaWtlIGhlYWRlcnMsIGJvZHksIGV0Yy5cbiAgICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPFQ+fVxuICAgICogQHVzYWdlTm90ZXNcbiAgICAqIFRoZSBmb2xsb3dpbmcgc25pcHBldCBzaG93cyBob3cgdG8gdXNlIHRoaXMgbWV0aG9kXG4gICAgKiBgYGB0c1xuICAgICogICAgdGhpcy5nZW5lcmljSHR0cENsaWVudFNlcnZpY2UuUHV0KHBvc3QtdXJsLCBwb3N0LXZpZXctbW9kZWwpLnN1YnNjcmliZShpdGVtID0+IHtcbiAgICAqICAgICAgICBjb25zb2xlLmxvZyhpdGVtKTtcbiAgICAqICAgICAgfSxcbiAgICAqICAgICAgZXJyID0+IHtcbiAgICAqICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICogICAgICB9KTtcbiAgICAqIGBgYFxuICAqL1xuICBwdWJsaWMgcHV0KGRlc3RpbmF0aW9uVXJsOiBzdHJpbmcsIG9wdGlvbnM/OiBJUmVxdWVzdE9wdGlvbnMgfCBhbnkpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0PFQ+KEh0dHBNZXRob2QuUHV0LCBkZXN0aW5hdGlvblVybCwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICAgICogQGRlc2NyaXB0aW9uXG4gICAgICAqIEdlbmVyaWMgSHR0cCBwb3N0IG1ldGhvZCB0byBwb3N0IHRoZSB2aWV3IG1vZGVsIGFuZCBiaW5kIHRoZSByZXR1cm4gdmlldyBtb2RlbFxuICAgICAgKiBAcGFyYW0ge3N0cmluZ30gZGVzdGluYXRpb25VcmwgZW5kUG9pbnQgaXQgZG9lc24ndCBuZWVkIC8gaW4gZnJvbnQgb2YgdGhlIGVuZCBwb2ludC5cbiAgICAgICogQHBhcmFtIHtJUmVxdWVzdE9wdGlvbnN9IG9wdGlvbnMgb3B0aW9ucyBvZiB0aGUgcmVxdWVzdCBsaWtlIGhlYWRlcnMsIGJvZHksIGV0Yy5cbiAgICAgICogQHJldHVybnMge09ic2VydmFibGU8VD59XG4gICAgICAqIEB1c2FnZU5vdGVzXG4gICAgICAqIFRoZSBmb2xsb3dpbmcgc25pcHBldCBzaG93cyBob3cgdG8gdXNlIHRoaXMgbWV0aG9kXG4gICAgICAqIGBgYHRzXG4gICAgICAqICAgIHRoaXMuZ2VuZXJpY0h0dHBDbGllbnRTZXJ2aWNlLlBvc3QocG9zdC11cmwscG9zdC12aWV3LW1vZGVsKS5zdWJzY3JpYmUoaXRlbSA9PiB7XG4gICAgICAqICAgICAgICBjb25zb2xlLmxvZyhpdGVtKTtcbiAgICAgICogICAgICB9LFxuICAgICAgKiAgICAgIGVyciA9PiB7XG4gICAgICAqICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgKiAgICAgIH0pO1xuICAgICAgKiBgYGBcbiAgICAqL1xuICBwdWJsaWMgcGF0Y2goZGVzdGluYXRpb25Vcmw6IHN0cmluZywgb3B0aW9ucz86IElSZXF1ZXN0T3B0aW9ucyB8IGFueSk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3Q8VD4oSHR0cE1ldGhvZC5QYXRjaCwgZGVzdGluYXRpb25VcmwsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAgKiBAZGVzY3JpcHRpb25cbiAgICAqIEdlbmVyaWMgSHR0cCBEZWxldGUgbWV0aG9kIHRvIERlbGV0ZSB0aGUgaXRlbSBhbmQgYmluZCB0aGUgcmV0dXJuIHZpZXcgbW9kZWxcbiAgICAqIEBwYXJhbSB7c3RyaW5nfSBkZXN0aW5hdGlvblVybCBlbmRQb2ludCBpdCBkb2Vzbid0IG5lZWQgLyBpbiBmcm9udCBvZiB0aGUgZW5kIHBvaW50LlxuICAgICogQHBhcmFtIHtJUmVxdWVzdE9wdGlvbnN9IG9wdGlvbnMgb3B0aW9ucyBvZiB0aGUgcmVxdWVzdCBsaWtlIGhlYWRlcnMsIGJvZHksIGV0Yy5cbiAgICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPFQ+fVxuICAgICogQHVzYWdlTm90ZXNcbiAgICAqIFRoZSBmb2xsb3dpbmcgc25pcHBldCBzaG93cyBob3cgdG8gdXNlIHRoaXMgbWV0aG9kXG4gICAgKiBgYGB0c1xuICAgICogICAgdGhpcy5nZW5lcmljSHR0cENsaWVudFNlcnZpY2UuRGVsZXRlKHRoaXMuZGVsZXRlVXNlclVybCkuc3Vic2NyaWJlKGl0ZW0gPT4ge1xuICAgICogICAgICAgICBjb25zb2xlLmxvZygnc3VjY2VzcycpO1xuICAgICogICAgICB9LCBlcnJvciA9PiB7XG4gICAgKiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICogICAgICB9KTtcbiAgICAqIGBgYFxuICAqL1xuICBwdWJsaWMgZGVsZXRlKGRlc3RpbmF0aW9uVXJsOiBzdHJpbmcsIG9wdGlvbnM/OiBJUmVxdWVzdE9wdGlvbnMgfCBhbnkpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0PFQ+KEh0dHBNZXRob2QuRGVsZXRlLCBkZXN0aW5hdGlvblVybCwgb3B0aW9ucyk7XG4gIH1cbiAgXG4gIC8qKlxuICAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgICogSHR0cCByZXF1ZXN0IG1ldGhvZCB0byBhY2NlcHQgZGlmZmVyZW50IG1ldGhvZCB0eXBlIGFuZCBwYXJhbXNcbiAgICAgICogQHBhcmFtIHtzdHJpbmd9IG1ldGhvZCBIdHRwIG1ldGhvZHMgLSBHRVQsIFBPU1QsIFBVVCwgREVMRVRFLlxuICAgICAgKiBAcGFyYW0ge3N0cmluZ30gZGVzdGluYXRpb25VcmwgZW5kUG9pbnQgaXQgZG9lc24ndCBuZWVkIC8gaW4gZnJvbnQgb2YgdGhlIGVuZCBwb2ludC5cbiAgICAgICogQHBhcmFtIHtJUmVxdWVzdE9wdGlvbnN9IG9wdGlvbnMgb3B0aW9ucyBvZiB0aGUgcmVxdWVzdCBsaWtlIGhlYWRlcnMsIGJvZHksIGV0Yy5cbiAgICAgICogQHJldHVybnMge09ic2VydmFibGU8VD59XG4gICAgICAqIEB1c2FnZU5vdGVzXG4gICAgICAqIFRoZSBmb2xsb3dpbmcgc25pcHBldCBzaG93cyBob3cgdG8gdXNlIHRoaXMgbWV0aG9kXG4gICAgICAqIGBgYHRzXG4gICAgICAqICAgIHRoaXMucmVxdWVzdDxUPihIdHRwTWV0aG9kLkRlbGV0ZSwgZGVzdGluYXRpb25VcmwsIG9wdGlvbnMpO1xuICAgICAgKiBgYGBcbiAgICAqL1xuICBwcml2YXRlIHJlcXVlc3Q8VD4obWV0aG9kOiBzdHJpbmcsIHVybDogc3RyaW5nLCBvcHRpb25zPzogSVJlcXVlc3RPcHRpb25zKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIE9ic2VydmFibGUuY3JlYXRlKChvYnNlcnZlcjogYW55KSA9PiB7XG4gICAgICBsZXQgZGVzdGluYXRpb25VcmwgPSAnJztcbiAgICAgIGlmICh0aGlzLmVudmlyb25tZW50LmJhc2VVcmwgIT0gdW5kZWZpbmVkKVxuICAgICAgICBkZXN0aW5hdGlvblVybCA9ICh0aGlzLmVudmlyb25tZW50LmJhc2VVcmwpICsgdXJsXG4gICAgICBlbHNlXG4gICAgICAgIGRlc3RpbmF0aW9uVXJsID0gdXJsXG4gICAgICB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxUPihuZXcgSHR0cFJlcXVlc3QobWV0aG9kLCBkZXN0aW5hdGlvblVybCwgb3B0aW9ucykpLnN1YnNjcmliZShcbiAgICAgICAgKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zdCByZXNwb25zVHllID0gcmVzcG9uc2UgYXMgSHR0cEV2ZW50PGFueT5cbiAgICAgICAgICBzd2l0Y2ggKHJlc3BvbnNUeWUudHlwZSkge1xuICAgICAgICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlNlbnQ6XG4gICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmluZm8oJ0h0dHAgQ2xpZW50IDogU2VudCAtPicsICdSZXF1ZXN0IHNlbnQhJyk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlSGVhZGVyOlxuICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKCdIdHRwIENsaWVudCA6IFJlc3BvbnNlSGVhZGVyIC0+JywgJ1Jlc3BvbnNlIGhlYWRlciByZWNlaXZlZCEnKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEh0dHBFdmVudFR5cGUuRG93bmxvYWRQcm9ncmVzczpcbiAgICAgICAgICAgICAgY29uc3Qga2JMb2FkZWQgPSBNYXRoLnJvdW5kKHJlc3BvbnNUeWUubG9hZGVkIC8gMTAyNCk7XG4gICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmluZm8oJ0h0dHAgQ2xpZW50IDogRG93bmxvYWRQcm9ncmVzcyAtPicsIGBEb3dubG9hZCBpbiBwcm9ncmVzcyEgJHtrYkxvYWRlZH1LYiBsb2FkZWRgKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEh0dHBFdmVudFR5cGUuUmVzcG9uc2U6XG4gICAgICAgICAgICAgIG9ic2VydmVyLm5leHQocmVzcG9uc2UuYm9keSk7XG4gICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmluZm8oJ0h0dHAgQ2xpZW50IDogUmVzcG9uc2UgLT4g8J+YuiBEb25lIScsIHJlc3BvbnNUeWUuYm9keSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICBzd2l0Y2ggKGVycm9yLnN0YXR1cykge1xuICAgICAgICAgICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Gb3JiaWRkZW46XG4gICAgICAgICAgICAgIC8vIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgIHRoaXMuc25hY2tCYXJWaWV3TW9kZWwubWVzc2FnZVRleHQgPSAnQWNjZXNzIHRvIHRoZSByZXF1ZXN0ZWQgcmVzb3VyY2UgaXMgZm9yYmlkZGVuLic7XG4gICAgICAgICAgICAgIHRoaXMuc25hY2tCYXJWaWV3TW9kZWwuYWN0aW9uVGV4dCA9ICdGb3JiaWRkZW4nO1xuICAgICAgICAgICAgICB0aGlzLmlzSHR0cEVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkJhZFJlcXVlc3Q6XG4gICAgICAgICAgICAgIHRoaXMuc25hY2tCYXJWaWV3TW9kZWwubWVzc2FnZVRleHQgPSAnU2VydmVyIGNhbm5vdCBvciB3aWxsIG5vdCBwcm9jZXNzIHRoZSByZXF1ZXN0Lic7XG4gICAgICAgICAgICAgIHRoaXMuc25hY2tCYXJWaWV3TW9kZWwuYWN0aW9uVGV4dCA9ICdCYWQgUmVxdWVzdCc7XG4gICAgICAgICAgICAgIHRoaXMuaXNIdHRwRXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuVW5hdXRob3JpemVkOlxuICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyVmlld01vZGVsLm1lc3NhZ2VUZXh0ID0gJ1JlcXVlc3QgaGFzIG5vdCBiZWVuIGFwcGxpZWQgYmVjYXVzZSBpdCBsYWNrcyB2YWxpZCBhdXRoZW50aWNhdGlvbiBjcmVkZW50aWFscy4nO1xuICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyVmlld01vZGVsLmFjdGlvblRleHQgPSAnVW5hdXRob3JpemVkJztcbiAgICAgICAgICAgICAgdGhpcy5pc0h0dHBFcnJvciA9IHRydWU7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5JbnRlcm5hbFNlcnZlckVycm9yOlxuICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyVmlld01vZGVsLm1lc3NhZ2VUZXh0ID0gJ1NlcnZlciBlbmNvdW50ZXJlZCBhbiB1bmV4cGVjdGVkIGNvbmRpdGlvbi4nO1xuICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyVmlld01vZGVsLmFjdGlvblRleHQgPSAnSW50ZXJuYWwgc2VydmVyIGVycm9yJztcbiAgICAgICAgICAgICAgdGhpcy5pc0h0dHBFcnJvciA9IHRydWU7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyVmlld01vZGVsLm1lc3NhZ2VUZXh0ID0gJ05vdCBjb25uZWN0ZWQgdG8gdGhlIHNlcnZpY2UuJztcbiAgICAgICAgICAgICAgdGhpcy5zbmFja0JhclZpZXdNb2RlbC5hY3Rpb25UZXh0ID0gJ1NlcnZpY2Ugbm90IGF2YWlsYWJsZSc7XG4gICAgICAgICAgICAgIHRoaXMuaXNIdHRwRXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgIGlmICgodGhpcy5lbnZpcm9ubWVudC5zbmFja0JhckVuYWJsZSAhPSB1bmRlZmluZWQgJiYgdGhpcy5lbnZpcm9ubWVudC5zbmFja0JhckVuYWJsZSkgJiYgdGhpcy5pc0h0dHBFcnJvcilcbiAgICAgICAgICAgIHRoaXMuX3NuYWNrQmFyLm9wZW4odGhpcy5zbmFja0JhclZpZXdNb2RlbC5tZXNzYWdlVGV4dCwgdGhpcy5zbmFja0JhclZpZXdNb2RlbC5hY3Rpb25UZXh0KTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1odHRwLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZhbGNvbi1uZy90YWlsd2luZC9zcmMvbGliL3NlcnZpY2UvaHR0cC9nZW5lcmljLWh0dHAtY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxXQUFXLEVBQ1gsYUFBYSxFQUViLGNBQWMsRUFDZixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxVQUFVLEVBQVEsTUFBTSxNQUFNLENBQUM7QUFFeEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBUzNDLE1BQU0sT0FBTyxpQkFBaUI7SUFJNUIsWUFBb0IsVUFBc0IsRUFBVSxXQUFpQyxFQUMzRSxTQUFzQixFQUFVLE1BQXFCO1FBRDNDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBc0I7UUFDM0UsY0FBUyxHQUFULFNBQVMsQ0FBYTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQWU7UUFKdkQsc0JBQWlCLEdBQWtCLEVBQW1CLENBQUM7UUFDdkQsZ0JBQVcsR0FBWSxLQUFLLENBQUM7SUFHOEIsQ0FBQztJQUdwRTs7Ozs7Ozs7Ozs7Ozs7O0lBZUE7SUFDTyxHQUFHLENBQUMsY0FBc0IsRUFBRSxPQUErQjtRQUNoRSxPQUFPLElBQUksQ0FBQyxPQUFPLDZCQUFvQixjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7O01BZ0JFO0lBQ0ssSUFBSSxDQUFDLGNBQXNCLEVBQUUsT0FBK0I7UUFDakUsT0FBTyxJQUFJLENBQUMsT0FBTywrQkFBcUIsY0FBYyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7OztNQWdCRTtJQUNLLEdBQUcsQ0FBQyxjQUFzQixFQUFFLE9BQStCO1FB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QUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEh0dHBDbGllbnQsXG4gIEh0dHBSZXF1ZXN0LFxuICBIdHRwRXZlbnRUeXBlLFxuICBIdHRwRXZlbnQsXG4gIEh0dHBTdGF0dXNDb2RlXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElHZW5lcmljSHR0cENsaWVudCB9IGZyb20gJy4vaWdlbmVyaWMtaHR0cC1jbGllbnQnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtJUmVxdWVzdE9wdGlvbnMsIFNuYWNrYmFyTW9kZWx9IGZyb20gJy4uLy4uL21vZGVsL2ludGVyZmFjZSc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtFbnZpcm9ubWVudFZpZXdNb2RlbH0gZnJvbSBcIi4uLy4uL21vZGVsL2Vudmlyb25tZW50c1wiO1xuaW1wb3J0IHtIdHRwTWV0aG9kfSBmcm9tIFwiLi4vLi4vbW9kZWwvZW51bVwiO1xuaW1wb3J0IHtNYXRTbmFja0Jhcn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhclwiO1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgR2VuZXJpY0h0dHBDbGllbnQ8VD4gaW1wbGVtZW50cyBJR2VuZXJpY0h0dHBDbGllbnQ8VD57XG4gIHByaXZhdGUgc25hY2tCYXJWaWV3TW9kZWw6IFNuYWNrYmFyTW9kZWwgPSB7fSBhcyBTbmFja2Jhck1vZGVsO1xuICBwcml2YXRlIGlzSHR0cEVycm9yOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LCBwcml2YXRlIGVudmlyb25tZW50OiBFbnZpcm9ubWVudFZpZXdNb2RlbCxcbiAgICBwcml2YXRlIF9zbmFja0JhcjogTWF0U25hY2tCYXIsIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlKSB7IH1cblxuXG4gIC8qKlxuICAqIEBkZXNjcmlwdGlvblxuICAqIEdlbmVyaWMgSHR0cCBHRVQgbWV0aG9kIHRvIEdldCB0aGUgcmVzcG9uc2UgYW5kIGJpbmQgdG8gdGhlIHZpZXcgbW9kZWxcbiAgKiBAcGFyYW0ge3N0cmluZ30gZGVzdGluYXRpb25VcmwgZW5kUG9pbnQgaXQgZG9lc24ndCBuZWVkIC8gaW4gZnJvbnQgb2YgdGhlIGVuZCBwb2ludC5cbiAgKiBAcGFyYW0ge0lSZXF1ZXN0T3B0aW9uc30gb3B0aW9ucyBvcHRpb25zIG9mIHRoZSByZXF1ZXN0IGxpa2UgaGVhZGVycywgYm9keSwgZXRjLlxuICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPFQ+fVxuICAqIEB1c2FnZU5vdGVzXG4gICogVGhlIGZvbGxvd2luZyBzbmlwcGV0IHNob3dzIGhvdyB0byB1c2UgdGhpcyBtZXRob2RcbiAgKiBgYGB0c1xuICAqICAgIHRoaXMuZ2VuZXJpY0h0dHBTZXJ2aWNlLkdldChcImdldF91cmxcIikuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAqICAgICAgICBjb25zb2xlLmxvZygnc3VjY2VzcycpO1xuICAqICAgICAgfSwgZXJyb3IgPT4ge1xuICAqICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAqICAgICAgfSk7XG4gICogYGBgXG4qL1xuICBwdWJsaWMgZ2V0KGRlc3RpbmF0aW9uVXJsOiBzdHJpbmcsIG9wdGlvbnM/OiBJUmVxdWVzdE9wdGlvbnMgfCBhbnkpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0PFQ+KEh0dHBNZXRob2QuR2V0LCBkZXN0aW5hdGlvblVybCwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICAqIEBkZXNjcmlwdGlvblxuICAgICogR2VuZXJpYyBIdHRwIHBvc3QgbWV0aG9kIHRvIHBvc3QgdGhlIHZpZXcgbW9kZWwgYW5kIGJpbmQgdGhlIHJldHVybiB2aWV3IG1vZGVsXG4gICAgKiBAcGFyYW0ge3N0cmluZ30gZGVzdGluYXRpb25VcmwgZW5kUG9pbnQgaXQgZG9lc24ndCBuZWVkIC8gaW4gZnJvbnQgb2YgdGhlIGVuZCBwb2ludC5cbiAgICAqIEBwYXJhbSB7SVJlcXVlc3RPcHRpb25zfSBvcHRpb25zIG9wdGlvbnMgb2YgdGhlIHJlcXVlc3QgbGlrZSBoZWFkZXJzLCBib2R5LCBldGMuXG4gICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxUPn1cbiAgICAqIEB1c2FnZU5vdGVzXG4gICAgKiBUaGUgZm9sbG93aW5nIHNuaXBwZXQgc2hvd3MgaG93IHRvIHVzZSB0aGlzIG1ldGhvZFxuICAgICogYGBgdHNcbiAgICAqICAgIHRoaXMuZ2VuZXJpY0h0dHBDbGllbnRTZXJ2aWNlLlBvc3QocG9zdC11cmwscG9zdC12aWV3LW1vZGVsKS5zdWJzY3JpYmUoaXRlbSA9PiB7XG4gICAgKiAgICAgICAgY29uc29sZS5sb2coaXRlbSk7XG4gICAgKiAgICAgIH0sXG4gICAgKiAgICAgIGVyciA9PiB7XG4gICAgKiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAqICAgICAgfSk7XG4gICAgKiBgYGBcbiAgKi9cbiAgcHVibGljIHBvc3QoZGVzdGluYXRpb25Vcmw6IHN0cmluZywgb3B0aW9ucz86IElSZXF1ZXN0T3B0aW9ucyB8IGFueSk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3Q8VD4oSHR0cE1ldGhvZC5Qb3N0LCBkZXN0aW5hdGlvblVybCwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICAqIEBkZXNjcmlwdGlvblxuICAgICogR2VuZXJpYyBIdHRwIFB1dCBtZXRob2QgdG8gcG9zdCB0aGUgdmlldyBtb2RlbCBhbmQgYmluZCB0aGUgcmV0dXJuIHZpZXcgbW9kZWxcbiAgICAqIEBwYXJhbSB7c3RyaW5nfSBkZXN0aW5hdGlvblVybCBlbmRQb2ludCBpdCBkb2Vzbid0IG5lZWQgLyBpbiBmcm9udCBvZiB0aGUgZW5kIHBvaW50LlxuICAgICogQHBhcmFtIHtJUmVxdWVzdE9wdGlvbnN9IG9wdGlvbnMgb3B0aW9ucyBvZiB0aGUgcmVxdWVzdCBsaWtlIGhlYWRlcnMsIGJvZHksIGV0Yy5cbiAgICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPFQ+fVxuICAgICogQHVzYWdlTm90ZXNcbiAgICAqIFRoZSBmb2xsb3dpbmcgc25pcHBldCBzaG93cyBob3cgdG8gdXNlIHRoaXMgbWV0aG9kXG4gICAgKiBgYGB0c1xuICAgICogICAgdGhpcy5nZW5lcmljSHR0cENsaWVudFNlcnZpY2UuUHV0KHBvc3QtdXJsLCBwb3N0LXZpZXctbW9kZWwpLnN1YnNjcmliZShpdGVtID0+IHtcbiAgICAqICAgICAgICBjb25zb2xlLmxvZyhpdGVtKTtcbiAgICAqICAgICAgfSxcbiAgICAqICAgICAgZXJyID0+IHtcbiAgICAqICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICogICAgICB9KTtcbiAgICAqIGBgYFxuICAqL1xuICBwdWJsaWMgcHV0KGRlc3RpbmF0aW9uVXJsOiBzdHJpbmcsIG9wdGlvbnM/OiBJUmVxdWVzdE9wdGlvbnMgfCBhbnkpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0PFQ+KEh0dHBNZXRob2QuUHV0LCBkZXN0aW5hdGlvblVybCwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICAgICogQGRlc2NyaXB0aW9uXG4gICAgICAqIEdlbmVyaWMgSHR0cCBwb3N0IG1ldGhvZCB0byBwb3N0IHRoZSB2aWV3IG1vZGVsIGFuZCBiaW5kIHRoZSByZXR1cm4gdmlldyBtb2RlbFxuICAgICAgKiBAcGFyYW0ge3N0cmluZ30gZGVzdGluYXRpb25VcmwgZW5kUG9pbnQgaXQgZG9lc24ndCBuZWVkIC8gaW4gZnJvbnQgb2YgdGhlIGVuZCBwb2ludC5cbiAgICAgICogQHBhcmFtIHtJUmVxdWVzdE9wdGlvbnN9IG9wdGlvbnMgb3B0aW9ucyBvZiB0aGUgcmVxdWVzdCBsaWtlIGhlYWRlcnMsIGJvZHksIGV0Yy5cbiAgICAgICogQHJldHVybnMge09ic2VydmFibGU8VD59XG4gICAgICAqIEB1c2FnZU5vdGVzXG4gICAgICAqIFRoZSBmb2xsb3dpbmcgc25pcHBldCBzaG93cyBob3cgdG8gdXNlIHRoaXMgbWV0aG9kXG4gICAgICAqIGBgYHRzXG4gICAgICAqICAgIHRoaXMuZ2VuZXJpY0h0dHBDbGllbnRTZXJ2aWNlLlBvc3QocG9zdC11cmwscG9zdC12aWV3LW1vZGVsKS5zdWJzY3JpYmUoaXRlbSA9PiB7XG4gICAgICAqICAgICAgICBjb25zb2xlLmxvZyhpdGVtKTtcbiAgICAgICogICAgICB9LFxuICAgICAgKiAgICAgIGVyciA9PiB7XG4gICAgICAqICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgKiAgICAgIH0pO1xuICAgICAgKiBgYGBcbiAgICAqL1xuICBwdWJsaWMgcGF0Y2goZGVzdGluYXRpb25Vcmw6IHN0cmluZywgb3B0aW9ucz86IElSZXF1ZXN0T3B0aW9ucyB8IGFueSk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3Q8VD4oSHR0cE1ldGhvZC5QYXRjaCwgZGVzdGluYXRpb25VcmwsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAgKiBAZGVzY3JpcHRpb25cbiAgICAqIEdlbmVyaWMgSHR0cCBEZWxldGUgbWV0aG9kIHRvIERlbGV0ZSB0aGUgaXRlbSBhbmQgYmluZCB0aGUgcmV0dXJuIHZpZXcgbW9kZWxcbiAgICAqIEBwYXJhbSB7c3RyaW5nfSBkZXN0aW5hdGlvblVybCBlbmRQb2ludCBpdCBkb2Vzbid0IG5lZWQgLyBpbiBmcm9udCBvZiB0aGUgZW5kIHBvaW50LlxuICAgICogQHBhcmFtIHtJUmVxdWVzdE9wdGlvbnN9IG9wdGlvbnMgb3B0aW9ucyBvZiB0aGUgcmVxdWVzdCBsaWtlIGhlYWRlcnMsIGJvZHksIGV0Yy5cbiAgICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPFQ+fVxuICAgICogQHVzYWdlTm90ZXNcbiAgICAqIFRoZSBmb2xsb3dpbmcgc25pcHBldCBzaG93cyBob3cgdG8gdXNlIHRoaXMgbWV0aG9kXG4gICAgKiBgYGB0c1xuICAgICogICAgdGhpcy5nZW5lcmljSHR0cENsaWVudFNlcnZpY2UuRGVsZXRlKHRoaXMuZGVsZXRlVXNlclVybCkuc3Vic2NyaWJlKGl0ZW0gPT4ge1xuICAgICogICAgICAgICBjb25zb2xlLmxvZygnc3VjY2VzcycpO1xuICAgICogICAgICB9LCBlcnJvciA9PiB7XG4gICAgKiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICogICAgICB9KTtcbiAgICAqIGBgYFxuICAqL1xuICBwdWJsaWMgZGVsZXRlKGRlc3RpbmF0aW9uVXJsOiBzdHJpbmcsIG9wdGlvbnM/OiBJUmVxdWVzdE9wdGlvbnMgfCBhbnkpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0PFQ+KEh0dHBNZXRob2QuRGVsZXRlLCBkZXN0aW5hdGlvblVybCwgb3B0aW9ucyk7XG4gIH1cbiAgXG4gIC8qKlxuICAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgICogSHR0cCByZXF1ZXN0IG1ldGhvZCB0byBhY2NlcHQgZGlmZmVyZW50IG1ldGhvZCB0eXBlIGFuZCBwYXJhbXNcbiAgICAgICogQHBhcmFtIHtzdHJpbmd9IG1ldGhvZCBIdHRwIG1ldGhvZHMgLSBHRVQsIFBPU1QsIFBVVCwgREVMRVRFLlxuICAgICAgKiBAcGFyYW0ge3N0cmluZ30gZGVzdGluYXRpb25VcmwgZW5kUG9pbnQgaXQgZG9lc24ndCBuZWVkIC8gaW4gZnJvbnQgb2YgdGhlIGVuZCBwb2ludC5cbiAgICAgICogQHBhcmFtIHtJUmVxdWVzdE9wdGlvbnN9IG9wdGlvbnMgb3B0aW9ucyBvZiB0aGUgcmVxdWVzdCBsaWtlIGhlYWRlcnMsIGJvZHksIGV0Yy5cbiAgICAgICogQHJldHVybnMge09ic2VydmFibGU8VD59XG4gICAgICAqIEB1c2FnZU5vdGVzXG4gICAgICAqIFRoZSBmb2xsb3dpbmcgc25pcHBldCBzaG93cyBob3cgdG8gdXNlIHRoaXMgbWV0aG9kXG4gICAgICAqIGBgYHRzXG4gICAgICAqICAgIHRoaXMucmVxdWVzdDxUPihIdHRwTWV0aG9kLkRlbGV0ZSwgZGVzdGluYXRpb25VcmwsIG9wdGlvbnMpO1xuICAgICAgKiBgYGBcbiAgICAqL1xuICBwcml2YXRlIHJlcXVlc3Q8VD4obWV0aG9kOiBzdHJpbmcsIHVybDogc3RyaW5nLCBvcHRpb25zPzogSVJlcXVlc3RPcHRpb25zKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIE9ic2VydmFibGUuY3JlYXRlKChvYnNlcnZlcjogYW55KSA9PiB7XG4gICAgICBsZXQgZGVzdGluYXRpb25VcmwgPSAnJztcbiAgICAgIGlmICh0aGlzLmVudmlyb25tZW50LmJhc2VVcmwgIT0gdW5kZWZpbmVkKVxuICAgICAgICBkZXN0aW5hdGlvblVybCA9ICh0aGlzLmVudmlyb25tZW50LmJhc2VVcmwpICsgdXJsXG4gICAgICBlbHNlXG4gICAgICAgIGRlc3RpbmF0aW9uVXJsID0gdXJsXG4gICAgICB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxUPihuZXcgSHR0cFJlcXVlc3QobWV0aG9kLCBkZXN0aW5hdGlvblVybCwgb3B0aW9ucykpLnN1YnNjcmliZShcbiAgICAgICAgKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zdCByZXNwb25zVHllID0gcmVzcG9uc2UgYXMgSHR0cEV2ZW50PGFueT5cbiAgICAgICAgICBzd2l0Y2ggKHJlc3BvbnNUeWUudHlwZSkge1xuICAgICAgICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlNlbnQ6XG4gICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmluZm8oJ0h0dHAgQ2xpZW50IDogU2VudCAtPicsICdSZXF1ZXN0IHNlbnQhJyk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlSGVhZGVyOlxuICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKCdIdHRwIENsaWVudCA6IFJlc3BvbnNlSGVhZGVyIC0+JywgJ1Jlc3BvbnNlIGhlYWRlciByZWNlaXZlZCEnKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEh0dHBFdmVudFR5cGUuRG93bmxvYWRQcm9ncmVzczpcbiAgICAgICAgICAgICAgY29uc3Qga2JMb2FkZWQgPSBNYXRoLnJvdW5kKHJlc3BvbnNUeWUubG9hZGVkIC8gMTAyNCk7XG4gICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmluZm8oJ0h0dHAgQ2xpZW50IDogRG93bmxvYWRQcm9ncmVzcyAtPicsIGBEb3dubG9hZCBpbiBwcm9ncmVzcyEgJHtrYkxvYWRlZH1LYiBsb2FkZWRgKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEh0dHBFdmVudFR5cGUuUmVzcG9uc2U6XG4gICAgICAgICAgICAgIG9ic2VydmVyLm5leHQocmVzcG9uc2UuYm9keSk7XG4gICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmluZm8oJ0h0dHAgQ2xpZW50IDogUmVzcG9uc2UgLT4g8J+YuiBEb25lIScsIHJlc3BvbnNUeWUuYm9keSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICBzd2l0Y2ggKGVycm9yLnN0YXR1cykge1xuICAgICAgICAgICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Gb3JiaWRkZW46XG4gICAgICAgICAgICAgIC8vIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgIHRoaXMuc25hY2tCYXJWaWV3TW9kZWwubWVzc2FnZVRleHQgPSAnQWNjZXNzIHRvIHRoZSByZXF1ZXN0ZWQgcmVzb3VyY2UgaXMgZm9yYmlkZGVuLic7XG4gICAgICAgICAgICAgIHRoaXMuc25hY2tCYXJWaWV3TW9kZWwuYWN0aW9uVGV4dCA9ICdGb3JiaWRkZW4nO1xuICAgICAgICAgICAgICB0aGlzLmlzSHR0cEVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkJhZFJlcXVlc3Q6XG4gICAgICAgICAgICAgIHRoaXMuc25hY2tCYXJWaWV3TW9kZWwubWVzc2FnZVRleHQgPSAnU2VydmVyIGNhbm5vdCBvciB3aWxsIG5vdCBwcm9jZXNzIHRoZSByZXF1ZXN0Lic7XG4gICAgICAgICAgICAgIHRoaXMuc25hY2tCYXJWaWV3TW9kZWwuYWN0aW9uVGV4dCA9ICdCYWQgUmVxdWVzdCc7XG4gICAgICAgICAgICAgIHRoaXMuaXNIdHRwRXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuVW5hdXRob3JpemVkOlxuICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyVmlld01vZGVsLm1lc3NhZ2VUZXh0ID0gJ1JlcXVlc3QgaGFzIG5vdCBiZWVuIGFwcGxpZWQgYmVjYXVzZSBpdCBsYWNrcyB2YWxpZCBhdXRoZW50aWNhdGlvbiBjcmVkZW50aWFscy4nO1xuICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyVmlld01vZGVsLmFjdGlvblRleHQgPSAnVW5hdXRob3JpemVkJztcbiAgICAgICAgICAgICAgdGhpcy5pc0h0dHBFcnJvciA9IHRydWU7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5JbnRlcm5hbFNlcnZlckVycm9yOlxuICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyVmlld01vZGVsLm1lc3NhZ2VUZXh0ID0gJ1NlcnZlciBlbmNvdW50ZXJlZCBhbiB1bmV4cGVjdGVkIGNvbmRpdGlvbi4nO1xuICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyVmlld01vZGVsLmFjdGlvblRleHQgPSAnSW50ZXJuYWwgc2VydmVyIGVycm9yJztcbiAgICAgICAgICAgICAgdGhpcy5pc0h0dHBFcnJvciA9IHRydWU7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyVmlld01vZGVsLm1lc3NhZ2VUZXh0ID0gJ05vdCBjb25uZWN0ZWQgdG8gdGhlIHNlcnZpY2UuJztcbiAgICAgICAgICAgICAgdGhpcy5zbmFja0JhclZpZXdNb2RlbC5hY3Rpb25UZXh0ID0gJ1NlcnZpY2Ugbm90IGF2YWlsYWJsZSc7XG4gICAgICAgICAgICAgIHRoaXMuaXNIdHRwRXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgIGlmICgodGhpcy5lbnZpcm9ubWVudC5zbmFja0JhckVuYWJsZSAhPSB1bmRlZmluZWQgJiYgdGhpcy5lbnZpcm9ubWVudC5zbmFja0JhckVuYWJsZSkgJiYgdGhpcy5pc0h0dHBFcnJvcilcbiAgICAgICAgICAgIHRoaXMuX3NuYWNrQmFyLm9wZW4odGhpcy5zbmFja0JhclZpZXdNb2RlbC5tZXNzYWdlVGV4dCwgdGhpcy5zbmFja0JhclZpZXdNb2RlbC5hY3Rpb25UZXh0KTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,10 +1,10 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class IGenericHttpClient {
4
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IGenericHttpClient, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IGenericHttpClient }); }
4
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: IGenericHttpClient, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: IGenericHttpClient }); }
6
6
  }
7
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: IGenericHttpClient, decorators: [{
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: IGenericHttpClient, decorators: [{
8
8
  type: Injectable
9
9
  }] });
10
10
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWdlbmVyaWMtaHR0cC1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mYWxjb24tbmcvdGFpbHdpbmQvc3JjL2xpYi9zZXJ2aWNlL2h0dHAvaWdlbmVyaWMtaHR0cC1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHM0MsTUFBTSxPQUFnQixrQkFBa0I7OEdBQWxCLGtCQUFrQjtrSEFBbEIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUR2QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSVJlcXVlc3RPcHRpb25zIH0gZnJvbSAnLi4vLi4vbW9kZWwvaW50ZXJmYWNlJztcbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBJR2VuZXJpY0h0dHBDbGllbnQ8VD4ge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEdlbmVyaWMgSHR0cCBHRVQgbWV0aG9kIHRvIEdldCB0aGUgcmVzcG9uc2UgYW5kIGJpbmQgdG8gdGhlIHZpZXcgbW9kZWxcbiAgICogQHBhcmFtIHtzdHJpbmd9IGRlc3RpbmF0aW9uVXJsIGVuZFBvaW50IGl0IGRvZXNuJ3QgbmVlZCAvIGluIGZyb250IG9mIHRoZSBlbmQgcG9pbnQuXG4gICAqIEBwYXJhbSB7SVJlcXVlc3RPcHRpb25zfSBvcHRpb25zIG9wdGlvbnMgb2YgdGhlIHJlcXVlc3QgbGlrZSBoZWFkZXJzLCBib2R5LCBldGMuXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPFQ+fVxuICAgKiBAdXNhZ2VOb3Rlc1xuICAgKiBUaGUgZm9sbG93aW5nIHNuaXBwZXQgc2hvd3MgaG93IHRvIHVzZSB0aGlzIG1ldGhvZFxuICAgKiBgYGB0c1xuICAgKiAgICB0aGlzLmdlbmVyaWNIdHRwU2VydmljZS5IdHRwR2V0KFwiZ2V0X3VybFwiKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAqICAgICAgICBjb25zb2xlLmxvZygnc3VjY2VzcycpO1xuICAgKiAgICAgIH0sIGVycm9yID0+IHtcbiAgICogICAgICBjb25zb2xlLmxvZyhlcnJvcik7XG4gICAqICAgICAgfSk7XG4gICAqIGBgYFxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0KFxuICAgIGRlc3RpbmF0aW9uVXJsOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IElSZXF1ZXN0T3B0aW9ucyB8IGFueVxuICApOiBPYnNlcnZhYmxlPFQ+O1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogR2VuZXJpYyBIdHRwIHBvc3QgbWV0aG9kIHRvIHBvc3QgdGhlIHZpZXcgbW9kZWwgYW5kIGJpbmQgdGhlIHJldHVybiB2aWV3IG1vZGVsXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkZXN0aW5hdGlvblVybCBlbmRQb2ludCBpdCBkb2Vzbid0IG5lZWQgLyBpbiBmcm9udCBvZiB0aGUgZW5kIHBvaW50LlxuICAgKiBAcGFyYW0ge0lSZXF1ZXN0T3B0aW9uc30gb3B0aW9ucyBvcHRpb25zIG9mIHRoZSByZXF1ZXN0IGxpa2UgaGVhZGVycywgYm9keSwgZXRjLlxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxUPn1cbiAgICogQHVzYWdlTm90ZXNcbiAgICogVGhlIGZvbGxvd2luZyBzbmlwcGV0IHNob3dzIGhvdyB0byB1c2UgdGhpcyBtZXRob2RcbiAgICogYGBgdHNcbiAgICogICAgdGhpcy5nZW5lcmljSHR0cFNlcnZpY2UuUG9zdChwb3N0X3VybCxwb3N0LXZpZXctbW9kZWxcIikuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgKiAgICAgICAgY29uc29sZS5sb2coJ2RhdGEgaXMgbm90IHN1Y2Nlc3MnKTtcbiAgICogICAgICB9LCBlcnJvciA9PiB7XG4gICAqICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgKiAgICAgIH0pO1xuICAgKiBgYGBcbiAgICovXG4gIGFic3RyYWN0IHBvc3QoXG4gICAgZGVzdGluYXRpb25Vcmw6IHN0cmluZyxcbiAgICBvcHRpb25zPzogSVJlcXVlc3RPcHRpb25zIHwgYW55XG4gICk6IE9ic2VydmFibGU8VD47XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBHZW5lcmljIEh0dHAgcHV0IG1ldGhvZCB0byBwb3N0IHRoZSB2aWV3IG1vZGVsIGFuZCBiaW5kIHRoZSByZXR1cm4gdmlldyBtb2RlbFxuICAgKiBAcGFyYW0ge3N0cmluZ30gZGVzdGluYXRpb25VcmwgZW5kUG9pbnQgaXQgZG9lc24ndCBuZWVkIC8gaW4gZnJvbnQgb2YgdGhlIGVuZCBwb2ludC5cbiAgICogQHBhcmFtIHtJUmVxdWVzdE9wdGlvbnN9IG9wdGlvbnMgb3B0aW9ucyBvZiB0aGUgcmVxdWVzdCBsaWtlIGhlYWRlcnMsIGJvZHksIGV0Yy5cbiAgICogQHJldHVybnMge09ic2VydmFibGU8VD59XG4gICAqIEB1c2FnZU5vdGVzXG4gICAqIFRoZSBmb2xsb3dpbmcgc25pcHBldCBzaG93cyBob3cgdG8gdXNlIHRoaXMgbWV0aG9kXG4gICAqIGBgYHRzXG4gICAqICAgIHRoaXMuZ2VuZXJpY0h0dHBTZXJ2aWNlLlB1dChwdXRfdXJsLHBvc3Qtdmlldy1tb2RlbCkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgKiAgICAgICAgY29uc29sZS5sb2coJ2RhdGEgaXMgbm90IHN1Y2Nlc3MnKTtcbiAgICogICAgICB9LCBlcnJvciA9PiB7XG4gICAqICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgKiAgICAgIH0pO1xuICAgKiBgYGBcbiAgICovXG4gIGFic3RyYWN0IHB1dChcbiAgICBkZXN0aW5hdGlvblVybDogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBJUmVxdWVzdE9wdGlvbnMgfCBhbnlcbiAgKTogT2JzZXJ2YWJsZTxUPjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEdlbmVyaWMgSHR0cCBwYXRjaCBtZXRob2QgdG8gcGF0Y2ggdGhlIHZpZXcgbW9kZWwgYW5kIGJpbmQgdGhlIHJldHVybiB2aWV3IG1vZGVsXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkZXN0aW5hdGlvblVybCBlbmRQb2ludCBpdCBkb2Vzbid0IG5lZWQgLyBpbiBmcm9udCBvZiB0aGUgZW5kIHBvaW50LlxuICAgKiBAcGFyYW0ge0lSZXF1ZXN0T3B0aW9uc30gb3B0aW9ucyBvcHRpb25zIG9mIHRoZSByZXF1ZXN0IGxpa2UgaGVhZGVycywgYm9keSwgZXRjLlxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxUPn1cbiAgICogQHVzYWdlTm90ZXNcbiAgICogVGhlIGZvbGxvd2luZyBzbmlwcGV0IHNob3dzIGhvdyB0byB1c2UgdGhpcyBtZXRob2RcbiAgICogYGBgdHNcbiAgICogICAgdGhpcy5nZW5lcmljSHR0cFNlcnZpY2UuUGF0Y2gocHV0X3VybCxwb3N0LXZpZXctbW9kZWwpLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICogICAgICAgIGNvbnNvbGUubG9nKCdkYXRhIGlzIG5vdCBzdWNjZXNzJyk7XG4gICAqICAgICAgfSwgZXJyb3IgPT4ge1xuICAgKiAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICogICAgICB9KTtcbiAgICogYGBgXG4gICAqL1xuICBhYnN0cmFjdCBwYXRjaChcbiAgICBkZXN0aW5hdGlvblVybDogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBJUmVxdWVzdE9wdGlvbnMgfCBhbnlcbiAgKTogT2JzZXJ2YWJsZTxUPjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEdlbmVyaWMgSHR0cCBEZWxldGUgbWV0aG9kIHRvIERlbGV0ZSB0aGUgaXRlbSBhbmQgYmluZCB0aGUgcmV0dXJuIHZpZXcgbW9kZWxcbiAgICogQHBhcmFtIHtzdHJpbmd9IGRlc3RpbmF0aW9uVXJsIGVuZFBvaW50IGl0IGRvZXNuJ3QgbmVlZCAvIGluIGZyb250IG9mIHRoZSBlbmQgcG9pbnQuXG4gICAqIEBwYXJhbSB7SVJlcXVlc3RPcHRpb25zfSBvcHRpb25zIG9wdGlvbnMgb2YgdGhlIHJlcXVlc3QgbGlrZSBoZWFkZXJzLCBib2R5LCBldGMuXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPFQ+fVxuICAgKiBAdXNhZ2VOb3Rlc1xuICAgKiBUaGUgZm9sbG93aW5nIHNuaXBwZXQgc2hvd3MgaG93IHRvIHVzZSB0aGlzIG1ldGhvZFxuICAgKiBgYGB0c1xuICAgKiAgICB0aGlzLmdlbmVyaWNIdHRwQ2xpZW50U2VydmljZS5EZWxldGUodGhpcy5kZWxldGVVc2VyVXJsKS5zdWJzY3JpYmUoaXRlbSA9PiB7XG4gICAqICAgICAgICAgY29uc29sZS5sb2coJ3N1Y2Nlc3MnKTtcbiAgICogICAgICB9LCBlcnJvciA9PiB7XG4gICAqICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XG4gICAqICAgICAgfSk7XG4gICAqIGBgYFxuICAgKi9cbiAgYWJzdHJhY3QgZGVsZXRlKFxuICAgIGRlc3RpbmF0aW9uVXJsOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IElSZXF1ZXN0T3B0aW9ucyB8IGFueVxuICApOiBPYnNlcnZhYmxlPFQ+O1xufVxuIl19
@@ -57,10 +57,10 @@ export class LoggerService {
57
57
  verbose(message, ...optionalParams) {
58
58
  this.log(message, "Verbose" /* LoggingLevel.Verbose */, optionalParams);
59
59
  }
60
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: LoggerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
61
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: LoggerService, providedIn: 'root' }); }
60
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: LoggerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
61
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: LoggerService, providedIn: 'root' }); }
62
62
  }
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: LoggerService, decorators: [{
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: LoggerService, decorators: [{
64
64
  type: Injectable,
65
65
  args: [{
66
66
  providedIn: 'root'
@@ -59,10 +59,10 @@ export class TokenHelperService {
59
59
  }
60
60
  return window.atob(output);
61
61
  }
62
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: TokenHelperService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
63
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: TokenHelperService, providedIn: 'root' }); }
62
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: TokenHelperService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
63
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: TokenHelperService, providedIn: 'root' }); }
64
64
  }
65
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: TokenHelperService, decorators: [{
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: TokenHelperService, decorators: [{
66
66
  type: Injectable,
67
67
  args: [{
68
68
  providedIn: 'root'
@@ -18,10 +18,10 @@ export class AuthGuardService {
18
18
  });
19
19
  });
20
20
  }
21
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: AuthGuardService, deps: [{ token: i1.AuthService }], target: i0.ɵɵFactoryTarget.Injectable }); }
22
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: AuthGuardService, providedIn: 'root' }); }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: AuthGuardService, deps: [{ token: i1.AuthService }], target: i0.ɵɵFactoryTarget.Injectable }); }
22
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: AuthGuardService, providedIn: 'root' }); }
23
23
  }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: AuthGuardService, decorators: [{
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: AuthGuardService, decorators: [{
25
25
  type: Injectable,
26
26
  args: [{
27
27
  providedIn: 'root'
@@ -1,11 +1,11 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { UserManager } from 'oidc-client';
2
+ import { UserManager, } from 'oidc-client-ts';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "../logger.service";
5
5
  import * as i2 from "./TokenHelperService";
6
6
  export class AuthService {
7
- static { this.USER_LOADED_EVENT = "USER_LOADED"; }
8
- static { this.USER_UNLOADED_EVENT = "USER_UNLOADED"; }
7
+ static { this.USER_LOADED_EVENT = 'USER_LOADED'; }
8
+ static { this.USER_UNLOADED_EVENT = 'USER_UNLOADED'; }
9
9
  constructor(logger, tokenHelperService) {
10
10
  this.logger = logger;
11
11
  this.tokenHelperService = tokenHelperService;
@@ -21,29 +21,29 @@ export class AuthService {
21
21
  this.user = user;
22
22
  });
23
23
  this.userManager.events.addAccessTokenExpiring(() => {
24
- this.logger.info("IdSvr token expiring " + new Date().toLocaleString());
24
+ this.logger.info('IdSvr token expiring ' + new Date().toLocaleString());
25
25
  });
26
26
  this.userManager.events.addAccessTokenExpired(() => {
27
- this.logger.info("IdSvr token expired " + new Date().toLocaleString());
27
+ this.logger.info('IdSvr token expired ' + new Date().toLocaleString());
28
28
  this.logout(false);
29
29
  });
30
30
  this.userManager.events.addSilentRenewError(e => {
31
- this.logger.error("IdSvr silent renew error " + e.message + new Date().toLocaleString());
31
+ this.logger.error('IdSvr silent renew error ' + e.message + new Date().toLocaleString());
32
32
  this.logout(false);
33
33
  });
34
34
  this.userManager.events.addUserLoaded(user => {
35
- this.logger.info("IdSvr user session is ready " + new Date().toLocaleString());
35
+ this.logger.info('IdSvr user session is ready ' + new Date().toLocaleString());
36
36
  this.accessToken = this.tokenHelperService.getPayloadFromToken(user.access_token, false);
37
37
  this.user = user;
38
38
  });
39
39
  this.userManager.events.addUserUnloaded(() => {
40
- this.logger.info("IdSvr user session has ended " + new Date().toLocaleString());
40
+ this.logger.info('IdSvr user session has ended ' + new Date().toLocaleString());
41
41
  if (!this.signingOut) {
42
42
  this.startAuthentication(window.location.pathname + window.location.search);
43
43
  }
44
44
  });
45
45
  this.userManager.events.addUserSignedOut(() => {
46
- this.logger.info("IdSvr user signed out " + new Date().toLocaleString());
46
+ this.logger.info('IdSvr user signed out ' + new Date().toLocaleString());
47
47
  this.logout(false);
48
48
  });
49
49
  this.user = await this.userManager.getUser();
@@ -67,29 +67,17 @@ export class AuthService {
67
67
  return '';
68
68
  }
69
69
  getAccessToken() {
70
- return this.accessToken || this.tokenHelperService.getPayloadFromToken(this.user.access_token, false);
71
- ;
70
+ return (this.accessToken ||
71
+ this.tokenHelperService.getPayloadFromToken(this.user.access_token, false));
72
72
  }
73
73
  async startAuthentication(returnUrl) {
74
- this.logger.info("[AuthService] startAuthentication", returnUrl);
74
+ this.logger.info('[AuthService] startAuthentication', returnUrl);
75
75
  await this.userManager.clearStaleState();
76
- await this.userManager.signinRedirect({ data: { returnUrl: returnUrl } }).catch(err => {
77
- //this.$log.debug("IdSvr sign in failed", err);
76
+ await this.userManager.signinRedirect().catch(err => {
77
+ //this.log.debug("IdSvr sign in failed", err);
78
78
  return err;
79
79
  });
80
80
  }
81
- async completeAuthentication() {
82
- this.logger.info("[AuthService] completeAuthentication");
83
- let user = await new Promise((resolve, reject) => {
84
- this.userManager.signinRedirectCallback().then(user => {
85
- resolve(user);
86
- }).catch(error => {
87
- reject(error);
88
- });
89
- });
90
- this.user = user;
91
- return this.user;
92
- }
93
81
  login() {
94
82
  return this.userManager.signinRedirect();
95
83
  }
@@ -116,30 +104,30 @@ export class AuthService {
116
104
  monitorSession: true,
117
105
  silent_redirect_uri: environment?.openID?.silent_redirect_uri,
118
106
  automaticSilentRenew: environment?.openID?.automaticSilentRenew,
119
- accessTokenExpiringNotificationTime: 20,
120
- checkSessionInterval: 2000,
121
- silentRequestTimeout: 20000,
107
+ accessTokenExpiringNotificationTimeInSeconds: 2,
108
+ checkSessionIntervalInSeconds: 2,
109
+ silentRequestTimeoutInSeconds: 2,
122
110
  };
123
111
  }
124
112
  async isServiceReady() {
125
113
  return new Promise(async (resolve, reject) => {
126
114
  if (this.initialized) {
127
- this.logger.info("[AuthService] isServiceReady", true);
115
+ this.logger.info('[AuthService] isServiceReady', true);
128
116
  resolve(true);
129
117
  }
130
118
  else {
131
- this.logger.info("[AuthService] isServiceReady", false);
119
+ this.logger.info('[AuthService] isServiceReady', false);
132
120
  reject(false);
133
121
  }
134
122
  });
135
123
  }
136
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: AuthService, deps: [{ token: i1.LoggerService }, { token: i2.TokenHelperService }], target: i0.ɵɵFactoryTarget.Injectable }); }
137
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: AuthService, providedIn: 'root' }); }
124
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: AuthService, deps: [{ token: i1.LoggerService }, { token: i2.TokenHelperService }], target: i0.ɵɵFactoryTarget.Injectable }); }
125
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: AuthService, providedIn: 'root' }); }
138
126
  }
139
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: AuthService, decorators: [{
127
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: AuthService, decorators: [{
140
128
  type: Injectable,
141
129
  args: [{
142
- providedIn: 'root'
130
+ providedIn: 'root',
143
131
  }]
144
132
  }], ctorParameters: () => [{ type: i1.LoggerService }, { type: i2.TokenHelperService }] });
145
133
  export function authServiceFactory(authService, appSettings, environment) {
@@ -150,5 +138,4 @@ export function authServiceFactory(authService, appSettings, environment) {
150
138
  });
151
139
  };
152
140
  }
153
- ;
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFsY29uLW5nL3RhaWx3aW5kL3NyYy9saWIvc2VydmljZS9vcGVuLWlkL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBZ0IsV0FBVyxFQUFzQixNQUFNLGFBQWEsQ0FBQzs7OztBQVM1RSxNQUFNLE9BQU8sV0FBVzthQUNmLHNCQUFpQixHQUFHLGFBQWEsQUFBaEIsQ0FBaUI7YUFDbEMsd0JBQW1CLEdBQUcsZUFBZSxBQUFsQixDQUFtQjtJQVU3QyxZQUFvQixNQUFxQixFQUFVLGtCQUFzQztRQUFyRSxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQVUsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQVJqRixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQU03QixlQUFVLEdBQVksS0FBSyxDQUFDO0lBSXBDLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLFdBQWlDO1FBQ2hELElBQUksSUFBSSxDQUFDLFdBQVc7WUFBRSxPQUFPO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMzQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztRQUdILElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsRUFBRTtZQUNsRCxJQUFJLENBQUMsTUFBTSxD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LEVBQUU7WUFDdkMsb0JBQW9CLEVBQUUsSUFBSTtZQUMxQixvQkFBb0IsRUFBRSxLQUFLO1NBQzVCLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWM7UUFDbEIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQzNDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsOEJBQThCLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3ZELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNmO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDhCQUE4QixFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUN4RCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDZjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0E5SlUsV0FBVztrSEFBWCxXQUFXLGNBRlYsTUFBTTs7MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7O0FBa0tELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxXQUF3QixFQUFFLFdBQThCLEVBQUUsV0FBaUM7SUFDNUgsT0FBTyxLQUFLLElBQUksRUFBRTtRQUNoQixXQUFXLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMxQyxJQUFJLElBQUk7Z0JBQ04sV0FBVyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQTtBQUNILENBQUM7QUFBQSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UHJvZmlsZSwgVXNlciwgVXNlck1hbmFnZXIsIFVzZXJNYW5hZ2VyU2V0dGluZ3N9IGZyb20gJ29pZGMtY2xpZW50JztcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtUb2tlbkhlbHBlclNlcnZpY2V9IGZyb20gJy4vVG9rZW5IZWxwZXJTZXJ2aWNlJztcbmltcG9ydCB7RW52aXJvbm1lbnRWaWV3TW9kZWx9IGZyb20gXCIuLi8uLi9tb2RlbC9lbnZpcm9ubWVudHNcIjtcbmltcG9ydCB7QXBwU2V0dGluZ1NlcnZpY2V9IGZyb20gXCIuLi9hcHBzZXR0aW5nLnNlcnZpY2VcIjtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXV0aFNlcnZpY2Uge1xuICBzdGF0aWMgVVNFUl9MT0FERURfRVZFTlQgPSBcIlVTRVJfTE9BREVEXCI7XG4gIHN0YXRpYyBVU0VSX1VOTE9BREVEX0VWRU5UID0gXCJVU0VSX1VOTE9BREVEXCI7XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIHVzZXJNYW5hZ2VyITogVXNlck1hbmFnZXI7XG4gIHByaXZhdGUgdXNlcjogYW55O1xuICBwdWJsaWMgc2V0dGluZ3MhOiBVc2VyTWFuYWdlclNldHRpbmdzO1xuXG4gIHByaXZhdGUgYWNjZXNzVG9rZW4hOiBPYmplY3Q7XG4gIHByaXZhdGUgc2lnbmluZ091dDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLCBwcml2YXRlIHRva2VuSGVscGVyU2VydmljZTogVG9rZW5IZWxwZXJTZXJ2aWNlKSB7XG5cbiAgfVxuXG4gIGFzeW5jIGluaXRpYWxpemUoZW52aXJvbm1lbnQ6IEVudmlyb25tZW50Vmlld01vZGVsKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHJldHVybjtcbiAgICB0aGlzLnNldHRpbmdzID0gdGhpcy5nZXRDbGllbnRTZXR0aW5ncyhlbnZpcm9ubWVudCk7XG4gICAgdGhpcy51c2VyTWFuYWdlciA9IG5ldyBVc2VyTWFuYWdlcih0aGlzLnNldHRpbmdzKTtcbiAgICB0aGlzLnVzZXJNYW5hZ2VyLmV2ZW50cy5hZGRVc2VyTG9hZGVkKHVzZXIgPT4ge1xuICAgICAgdGhpcy51c2VyID0gdXNlcjtcbiAgICB9KTtcblxuXG4gICAgdGhpcy51c2VyTWFuYWdlci5ldmVudHMuYWRkQWNjZXNzVG9rZW5FeHBpcmluZygoKSA9PiB7XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKFwiSWRTdnIgdG9rZW4gZXhwaXJpbmcgXCIgKyBuZXcgRGF0ZSgpLnRvTG9jYWxlU3RyaW5nKCkpO1xuICAgIH0pO1xuXG4gICAgdGhpcy51c2VyTWFuYWdlci5ldmVudHMuYWRkQWNjZXNzVG9rZW5FeHBpcmVkKCgpID0+IHtcbiAgICAgIHRoaXMubG9nZ2VyLmluZm8oXCJJZFN2ciB0b2tlbiBleHBpcmVkIFwiICsgbmV3IERhdGUoKS50b0xvY2FsZVN0cmluZygpKTtcbiAgICAgIHRoaXMubG9nb3V0KGZhbHNlKTtcbiAgICB9KTtcblxuICAgIHRoaXMudXNlck1hbmFnZXIuZXZlbnRzLmFkZFNpbGVudFJlbmV3RXJyb3IoZSA9PiB7XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihcIklkU3ZyIHNpbGVudCByZW5ldyBlcnJvciBcIiArIGUubWVzc2FnZSArIG5ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoKSk7XG4gICAgICB0aGlzLmxvZ291dChmYWxzZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnVzZXJNYW5hZ2VyLmV2ZW50cy5hZGRVc2VyTG9hZGVkKHVzZXIgPT4ge1xuICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcIklkU3ZyIHVzZXIgc2Vzc2lvbiBpcyByZWFkeSBcIiArIG5ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoKSk7XG4gICAgICB0aGlzLmFjY2Vzc1Rva2VuID0gdGhpcy50b2tlbkhlbHBlclNlcnZpY2UuZ2V0UGF5bG9hZEZyb21Ub2tlbih1c2VyLmFjY2Vzc190b2tlbiwgZmFsc2UpO1xuICAgICAgdGhpcy51c2VyID0gdXNlcjtcbiAgICB9KTtcblxuICAgIHRoaXMudXNlck1hbmFnZXIuZXZlbnRzLmFkZFVzZXJVbmxvYWRlZCgoKSA9PiB7XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKFwiSWRTdnIgdXNlciBzZXNzaW9uIGhhcyBlbmRlZCBcIiArIG5ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoKSk7XG5cbiAgICAgIGlmICghdGhpcy5zaWduaW5nT3V0KSB7XG4gICAgICAgIHRoaXMuc3RhcnRBdXRoZW50aWNhdGlvbih3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgKyB3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMudXNlck1hbmFnZXIuZXZlbnRzLmFkZFVzZXJTaWduZWRPdXQoKCkgPT4ge1xuICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcIklkU3ZyIHVzZXIgc2lnbmVkIG91dCBcIiArIG5ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoKSk7XG4gICAgICB0aGlzLmxvZ291dChmYWxzZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnVzZXIgPSBhd2FpdCB0aGlzLnVzZXJNYW5hZ2VyLmdldFVzZXIoKTtcbiAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBpc0xvZ2dlZEluKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnVzZXIgIT0gbnVsbCAmJiAhdGhpcy51c2VyLmV4cGlyZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0VXNlcigpOiBQcm9taXNlPFVzZXIgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMudXNlck1hbmFnZXIuZ2V0VXNlcigpO1xuICB9XG5cbiAgcHVibGljIGdldFByb2ZpbGUoKTogUHJvZmlsZSB7XG4gICAgcmV0dXJuIHRoaXMudXNlci5wcm9maWxlO1xuICB9XG5cbiAgcHVibGljIGdldENsYWltcygpOiBQcm9maWxlIHtcbiAgICByZXR1cm4gdGhpcy51c2VyLnByb2ZpbGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0QXV0aG9yaXphdGlvbkhlYWRlclZhbHVlKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMudXNlciAhPSBudWxsKVxuICAgICAgcmV0dXJuIGAke3RoaXMudXNlci50b2tlbl90eXBlfSAke3RoaXMudXNlci5hY2Nlc3NfdG9rZW59YDtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBnZXRBY2Nlc3NUb2tlbigpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmFjY2Vzc1Rva2VuIHx8IHRoaXMudG9rZW5IZWxwZXJTZXJ2aWNlLmdldFBheWxvYWRGcm9tVG9rZW4odGhpcy51c2VyLmFjY2Vzc190b2tlbiwgZmFsc2UpO1xuICAgIDtcbiAgfVxuXG4gIGFzeW5jIHN0YXJ0QXV0aGVudGljYXRpb24ocmV0dXJuVXJsOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmxvZ2dlci5pbmZvKFwiW0F1dGhTZXJ2aWNlXSBzdGFydEF1dGhlbnRpY2F0aW9uXCIsIHJldHVyblVybCk7XG4gICAgYXdhaXQgdGhpcy51c2VyTWFuYWdlci5jbGVhclN0YWxlU3RhdGUoKTtcbiAgICBhd2FpdCB0aGlzLnVzZXJNYW5hZ2VyLnNpZ25pblJlZGlyZWN0KHtkYXRhOiB7cmV0dXJuVXJsOiByZXR1cm5Vcmx9fSkuY2F0Y2goZXJyID0+IHtcbiAgICAgIC8vdGhpcy4kbG9nLmRlYnVnKFwiSWRTdnIgc2lnbiBpbiBmYWlsZWRcIiwgZXJyKTtcbiAgICAgIHJldHVybiBlcnI7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBjb21wbGV0ZUF1dGhlbnRpY2F0aW9uKCk6IFByb21pc2U8T2lkYy5Vc2VyPiB7XG4gICAgdGhpcy5sb2dnZXIuaW5mbyhcIltBdXRoU2VydmljZV0gY29tcGxldGVBdXRoZW50aWNhdGlvblwiKTtcbiAgICBsZXQgdXNlciA9IGF3YWl0IG5ldyBQcm9taXNlPE9pZGMuVXNlcj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy51c2VyTWFuYWdlci5zaWduaW5SZWRpcmVjdENhbGxiYWNrKCkudGhlbih1c2VyID0+IHtcbiAgICAgICAgcmVzb2x2ZSh1c2VyKVxuICAgICAgfSkuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gICAgdGhpcy51c2VyID0gdXNlcjtcbiAgICByZXR1cm4gdGhpcy51c2VyO1xuICB9XG5cbiAgcHVibGljIGxvZ2luKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLnVzZXJNYW5hZ2VyLnNpZ25pblJlZGlyZWN0KCk7XG4gIH1cblxuICBwdWJsaWMgcmVuZXdUb2tlbigpOiBQcm9taXNlPFVzZXI+IHtcbiAgICByZXR1cm4gdGhpcy51c2VyTWFuYWdlci5zaWduaW5TaWxlbnQoKTtcbiAgfVxuXG4gIHB1YmxpYyBsb2dvdXQoc2lnbm91dFJlZGlyZWN0PzogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuXG4gICAgaWYgKHNpZ25vdXRSZWRpcmVjdCA9PT0gdW5kZWZpbmVkIHx8IHNpZ25vdXRSZWRpcmVjdCAhPT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuc2lnbmluZ091dCA9IHRydWU7XG4gICAgICBzaWdub3V0UmVkaXJlY3QgPSB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnVzZXJNYW5hZ2VyLnNpZ25vdXRSZWRpcmVjdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDbGllbnRTZXR0aW5ncyhlbnZpcm9ubWVudDogRW52aXJvbm1lbnRWaWV3TW9kZWwpOiBVc2VyTWFuYWdlclNldHRpbmdzIHtcbiAgICByZXR1cm4ge1xuICAgICAgYXV0aG9yaXR5OiBlbnZpcm9ubWVudD8ub3BlbklEPy5hdXRob3JpdHksXG4gICAgICBjbGllbnRfaWQ6IGVudmlyb25tZW50Py5vcGVuSUQ/LmNsaWVudF9pZCxcbiAgICAgIHJlZGlyZWN0X3VyaTogZW52aXJvbm1lbnQ/Lm9wZW5JRD8ucmVkaXJlY3RfdXJpLFxuICAgICAgcG9zdF9sb2dvdXRfcmVkaXJlY3RfdXJpOiBlbnZpcm9ubWVudD8ub3BlbklEPy5wb3N0X2xvZ291dF9yZWRpcmVjdF91cmksXG4gICAgICByZXNwb25zZV90eXBlOiBlbnZpcm9ubWVudD8ub3BlbklEPy5yZXNwb25zZV90eXBlLFxuICAgICAgc2NvcGU6IGVudmlyb25tZW50Py5vcGVuSUQ/LnNjb3BlLFxuICAgICAgZmlsdGVyUHJvdG9jb2xDbGFpbXM6IGVudmlyb25tZW50Py5vcGVuSUQ/LmZpbHRlclByb3RvY29sQ2xhaW1zLFxuICAgICAgbG9hZFVzZXJJbmZvOiB0cnVlLFxuICAgICAgbW9uaXRvclNlc3Npb246IHRydWUsXG4gICAgICBzaWxlbnRfcmVkaXJlY3RfdXJpOiBlbnZpcm9ubWVudD8ub3BlbklEPy5zaWxlbnRfcmVkaXJlY3RfdXJpLFxuICAgICAgYXV0b21hdGljU2lsZW50UmVuZXc6IGVudmlyb25tZW50Py5vcGVuSUQ/LmF1dG9tYXRpY1NpbGVudFJlbmV3LFxuICAgICAgYWNjZXNzVG9rZW5FeHBpcmluZ05vdGlmaWNhdGlvblRpbWU6IDIwLCAvL2RlZmF1bHQgNjBcbiAgICAgIGNoZWNrU2Vzc2lvbkludGVydmFsOiAyMDAwLCAvL2RlZmF1bHQgMjAwMFxuICAgICAgc2lsZW50UmVxdWVzdFRpbWVvdXQ6IDIwMDAwLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBpc1NlcnZpY2VSZWFkeSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcIltBdXRoU2VydmljZV0gaXNTZXJ2aWNlUmVhZHlcIiwgdHJ1ZSk7XG4gICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFwiW0F1dGhTZXJ2aWNlXSBpc1NlcnZpY2VSZWFkeVwiLCBmYWxzZSk7XG4gICAgICAgIHJlamVjdChmYWxzZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGF1dGhTZXJ2aWNlRmFjdG9yeShhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsIGFwcFNldHRpbmdzOiBBcHBTZXR0aW5nU2VydmljZSwgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50Vmlld01vZGVsKSB7XG4gIHJldHVybiBhc3luYyAoKSA9PiB7XG4gICAgYXBwU2V0dGluZ3MuaXNTZXJ2aWNlUmVhZHkuc3Vic2NyaWJlKGl0ZW0gPT4ge1xuICAgICAgaWYgKGl0ZW0pXG4gICAgICAgIGF1dGhTZXJ2aWNlLmluaXRpYWxpemUoZW52aXJvbm1lbnQpO1xuICAgIH0pO1xuICB9XG59OyJdfQ==
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFsY29uLW5nL3RhaWx3aW5kL3NyYy9saWIvc2VydmljZS9vcGVuLWlkL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSzNDLE9BQU8sRUFFTCxXQUFXLEdBR1osTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUt4QixNQUFNLE9BQU8sV0FBVzthQUNmLHNCQUFpQixHQUFHLGFBQWEsQUFBaEIsQ0FBaUI7YUFDbEMsd0JBQW1CLEdBQUcsZUFBZSxBQUFsQixDQUFtQjtJQVU3QyxZQUNVLE1BQXFCLEVBQ3JCLGtCQUFzQztRQUR0QyxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFWeEMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFNN0IsZUFBVSxHQUFZLEtBQUssQ0FBQztJQUtqQyxDQUFDO0lBRUosS0FBSyxDQUFDLFVBQVUsQ0FBQyxXQUFpQztRQUNoRCxJQUFJLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDM0MsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLEVBQUU7WUFDbEQsSUFBSSxDQUFDLE1BQU0s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QUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COztBQW1LRCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLFdBQXdCLEVBQ3hCLFdBQThCLEVBQzlCLFdBQWlDO0lBRWpDLE9BQU8sS0FBSyxJQUFJLEVBQUU7UUFDaEIsV0FBVyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDMUMsSUFBSSxJQUFJO2dCQUFFLFdBQVcsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7IFRva2VuSGVscGVyU2VydmljZSB9IGZyb20gJy4vVG9rZW5IZWxwZXJTZXJ2aWNlJztcbmltcG9ydCB7IEVudmlyb25tZW50Vmlld01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWwvZW52aXJvbm1lbnRzJztcbmltcG9ydCB7IEFwcFNldHRpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vYXBwc2V0dGluZy5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIFVzZXIsXG4gIFVzZXJNYW5hZ2VyLFxuICBVc2VyTWFuYWdlclNldHRpbmdzLFxuICBVc2VyUHJvZmlsZSxcbn0gZnJvbSAnb2lkYy1jbGllbnQtdHMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQXV0aFNlcnZpY2Uge1xuICBzdGF0aWMgVVNFUl9MT0FERURfRVZFTlQgPSAnVVNFUl9MT0FERUQnO1xuICBzdGF0aWMgVVNFUl9VTkxPQURFRF9FVkVOVCA9ICdVU0VSX1VOTE9BREVEJztcblxuICBwcml2YXRlIGluaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyB1c2VyTWFuYWdlciE6IFVzZXJNYW5hZ2VyO1xuICBwcml2YXRlIHVzZXI6IGFueTtcbiAgcHVibGljIHNldHRpbmdzITogVXNlck1hbmFnZXJTZXR0aW5ncztcblxuICBwcml2YXRlIGFjY2Vzc1Rva2VuITogT2JqZWN0O1xuICBwcml2YXRlIHNpZ25pbmdPdXQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyU2VydmljZSxcbiAgICBwcml2YXRlIHRva2VuSGVscGVyU2VydmljZTogVG9rZW5IZWxwZXJTZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBpbml0aWFsaXplKGVudmlyb25tZW50OiBFbnZpcm9ubWVudFZpZXdNb2RlbCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSByZXR1cm47XG4gICAgdGhpcy5zZXR0aW5ncyA9IHRoaXMuZ2V0Q2xpZW50U2V0dGluZ3MoZW52aXJvbm1lbnQpO1xuICAgIHRoaXMudXNlck1hbmFnZXIgPSBuZXcgVXNlck1hbmFnZXIodGhpcy5zZXR0aW5ncyk7XG4gICAgdGhpcy51c2VyTWFuYWdlci5ldmVudHMuYWRkVXNlckxvYWRlZCh1c2VyID0+IHtcbiAgICAgIHRoaXMudXNlciA9IHVzZXI7XG4gICAgfSk7XG5cbiAgICB0aGlzLnVzZXJNYW5hZ2VyLmV2ZW50cy5hZGRBY2Nlc3NUb2tlbkV4cGlyaW5nKCgpID0+IHtcbiAgICAgIHRoaXMubG9nZ2VyLmluZm8oJ0lkU3ZyIHRva2VuIGV4cGlyaW5nICcgKyBuZXcgRGF0ZSgpLnRvTG9jYWxlU3RyaW5nKCkpO1xuICAgIH0pO1xuXG4gICAgdGhpcy51c2VyTWFuYWdlci5ldmVudHMuYWRkQWNjZXNzVG9rZW5FeHBpcmVkKCgpID0+IHtcbiAgICAgIHRoaXMubG9nZ2VyLmluZm8oJ0lkU3ZyIHRva2VuIGV4cGlyZWQgJyArIG5ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoKSk7XG4gICAgICB0aGlzLmxvZ291dChmYWxzZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnVzZXJNYW5hZ2VyLmV2ZW50cy5hZGRTaWxlbnRSZW5ld0Vycm9yKGUgPT4ge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgICdJZFN2ciBzaWxlbnQgcmVuZXcgZXJyb3IgJyArIGUubWVzc2FnZSArIG5ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoKVxuICAgICAgKTtcbiAgICAgIHRoaXMubG9nb3V0KGZhbHNlKTtcbiAgICB9KTtcblxuICAgIHRoaXMudXNlck1hbmFnZXIuZXZlbnRzLmFkZFVzZXJMb2FkZWQodXNlciA9PiB7XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICAnSWRTdnIgdXNlciBzZXNzaW9uIGlzIHJlYWR5ICcgKyBuZXcgRGF0ZSgpLnRvTG9jYWxlU3RyaW5nKClcbiAgICAgICk7XG4gICAgICB0aGlzLmFjY2Vzc1Rva2VuID0gdGhpcy50b2tlbkhlbHBlclNlcnZpY2UuZ2V0UGF5bG9hZEZyb21Ub2tlbihcbiAgICAgICAgdXNlci5hY2Nlc3NfdG9rZW4sXG4gICAgICAgIGZhbHNlXG4gICAgICApO1xuICAgICAgdGhpcy51c2VyID0gdXNlcjtcbiAgICB9KTtcblxuICAgIHRoaXMudXNlck1hbmFnZXIuZXZlbnRzLmFkZFVzZXJVbmxvYWRlZCgoKSA9PiB7XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICAnSWRTdnIgdXNlciBzZXNzaW9uIGhhcyBlbmRlZCAnICsgbmV3IERhdGUoKS50b0xvY2FsZVN0cmluZygpXG4gICAgICApO1xuXG4gICAgICBpZiAoIXRoaXMuc2lnbmluZ091dCkge1xuICAgICAgICB0aGlzLnN0YXJ0QXV0aGVudGljYXRpb24oXG4gICAgICAgICAgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lICsgd2luZG93LmxvY2F0aW9uLnNlYXJjaFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy51c2VyTWFuYWdlci5ldmVudHMuYWRkVXNlclNpZ25lZE91dCgoKSA9PiB7XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKCdJZFN2ciB1c2VyIHNpZ25lZCBvdXQgJyArIG5ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoKSk7XG4gICAgICB0aGlzLmxvZ291dChmYWxzZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnVzZXIgPSBhd2FpdCB0aGlzLnVzZXJNYW5hZ2VyLmdldFVzZXIoKTtcbiAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBpc0xvZ2dlZEluKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnVzZXIgIT0gbnVsbCAmJiAhdGhpcy51c2VyLmV4cGlyZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0VXNlcigpOiBQcm9taXNlPFVzZXIgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMudXNlck1hbmFnZXIuZ2V0VXNlcigpO1xuICB9XG5cbiAgcHVibGljIGdldFByb2ZpbGUoKTogVXNlclByb2ZpbGUge1xuICAgIHJldHVybiB0aGlzLnVzZXIucHJvZmlsZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDbGFpbXMoKTogVXNlclByb2ZpbGUge1xuICAgIHJldHVybiB0aGlzLnVzZXIucHJvZmlsZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRBdXRob3JpemF0aW9uSGVhZGVyVmFsdWUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy51c2VyICE9IG51bGwpXG4gICAgICByZXR1cm4gYCR7dGhpcy51c2VyLnRva2VuX3R5cGV9ICR7dGhpcy51c2VyLmFjY2Vzc190b2tlbn1gO1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGdldEFjY2Vzc1Rva2VuKCk6IGFueSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuYWNjZXNzVG9rZW4gfHxcbiAgICAgIHRoaXMudG9rZW5IZWxwZXJTZXJ2aWNlLmdldFBheWxvYWRGcm9tVG9rZW4odGhpcy51c2VyLmFjY2Vzc190b2tlbiwgZmFsc2UpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHN0YXJ0QXV0aGVudGljYXRpb24ocmV0dXJuVXJsOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmxvZ2dlci5pbmZvKCdbQXV0aFNlcnZpY2VdIHN0YXJ0QXV0aGVudGljYXRpb24nLCByZXR1cm5VcmwpO1xuICAgIGF3YWl0IHRoaXMudXNlck1hbmFnZXIuY2xlYXJTdGFsZVN0YXRlKCk7XG4gICAgYXdhaXQgdGhpcy51c2VyTWFuYWdlci5zaWduaW5SZWRpcmVjdCgpLmNhdGNoKGVyciA9PiB7XG4gICAgICAvL3RoaXMubG9nLmRlYnVnKFwiSWRTdnIgc2lnbiBpbiBmYWlsZWRcIiwgZXJyKTtcbiAgICAgIHJldHVybiBlcnI7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbG9naW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMudXNlck1hbmFnZXIuc2lnbmluUmVkaXJlY3QoKTtcbiAgfVxuXG4gIHB1YmxpYyByZW5ld1Rva2VuKCk6IFByb21pc2U8VXNlciB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy51c2VyTWFuYWdlci5zaWduaW5TaWxlbnQoKTtcbiAgfVxuXG4gIHB1YmxpYyBsb2dvdXQoc2lnbm91dFJlZGlyZWN0PzogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChzaWdub3V0UmVkaXJlY3QgPT09IHVuZGVmaW5lZCB8fCBzaWdub3V0UmVkaXJlY3QgIT09IGZhbHNlKSB7XG4gICAgICB0aGlzLnNpZ25pbmdPdXQgPSB0cnVlO1xuICAgICAgc2lnbm91dFJlZGlyZWN0ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy51c2VyTWFuYWdlci5zaWdub3V0UmVkaXJlY3QoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2xpZW50U2V0dGluZ3MoXG4gICAgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50Vmlld01vZGVsXG4gICk6IFVzZXJNYW5hZ2VyU2V0dGluZ3Mge1xuICAgIHJldHVybiB7XG4gICAgICBhdXRob3JpdHk6IGVudmlyb25tZW50Py5vcGVuSUQ/LmF1dGhvcml0eSBhcyBzdHJpbmcsXG4gICAgICBjbGllbnRfaWQ6IGVudmlyb25tZW50Py5vcGVuSUQ/LmNsaWVudF9pZCBhcyBzdHJpbmcsXG4gICAgICByZWRpcmVjdF91cmk6IGVudmlyb25tZW50Py5vcGVuSUQ/LnJlZGlyZWN0X3VyaSBhcyBzdHJpbmcsXG4gICAgICBwb3N0X2xvZ291dF9yZWRpcmVjdF91cmk6IGVudmlyb25tZW50Py5vcGVuSUQ/LnBvc3RfbG9nb3V0X3JlZGlyZWN0X3VyaSxcbiAgICAgIHJlc3BvbnNlX3R5cGU6IGVudmlyb25tZW50Py5vcGVuSUQ/LnJlc3BvbnNlX3R5cGUsXG4gICAgICBzY29wZTogZW52aXJvbm1lbnQ/Lm9wZW5JRD8uc2NvcGUsXG4gICAgICBmaWx0ZXJQcm90b2NvbENsYWltczogZW52aXJvbm1lbnQ/Lm9wZW5JRD8uZmlsdGVyUHJvdG9jb2xDbGFpbXMsXG4gICAgICBsb2FkVXNlckluZm86IHRydWUsXG4gICAgICBtb25pdG9yU2Vzc2lvbjogdHJ1ZSxcbiAgICAgIHNpbGVudF9yZWRpcmVjdF91cmk6IGVudmlyb25tZW50Py5vcGVuSUQ/LnNpbGVudF9yZWRpcmVjdF91cmksXG4gICAgICBhdXRvbWF0aWNTaWxlbnRSZW5ldzogZW52aXJvbm1lbnQ/Lm9wZW5JRD8uYXV0b21hdGljU2lsZW50UmVuZXcsXG4gICAgICBhY2Nlc3NUb2tlbkV4cGlyaW5nTm90aWZpY2F0aW9uVGltZUluU2Vjb25kczogMixcbiAgICAgIGNoZWNrU2Vzc2lvbkludGVydmFsSW5TZWNvbmRzOiAyLFxuICAgICAgc2lsZW50UmVxdWVzdFRpbWVvdXRJblNlY29uZHM6IDIsXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGlzU2VydmljZVJlYWR5KCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKCdbQXV0aFNlcnZpY2VdIGlzU2VydmljZVJlYWR5JywgdHJ1ZSk7XG4gICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKCdbQXV0aFNlcnZpY2VdIGlzU2VydmljZVJlYWR5JywgZmFsc2UpO1xuICAgICAgICByZWplY3QoZmFsc2UpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhdXRoU2VydmljZUZhY3RvcnkoXG4gIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcbiAgYXBwU2V0dGluZ3M6IEFwcFNldHRpbmdTZXJ2aWNlLFxuICBlbnZpcm9ubWVudDogRW52aXJvbm1lbnRWaWV3TW9kZWxcbikge1xuICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgIGFwcFNldHRpbmdzLmlzU2VydmljZVJlYWR5LnN1YnNjcmliZShpdGVtID0+IHtcbiAgICAgIGlmIChpdGVtKSBhdXRoU2VydmljZS5pbml0aWFsaXplKGVudmlyb25tZW50KTtcbiAgICB9KTtcbiAgfTtcbn1cbiJdfQ==