@tiba-spark/client-shared-lib 25.3.0-103 → 25.3.0-107

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 (43) hide show
  1. package/esm2022/libraries/guards/sub-module-guard.mjs +21 -10
  2. package/esm2022/libraries/modules/auth/auth.service.mjs +1 -1
  3. package/esm2022/libraries/modules/auth/session.actions.mjs +13 -3
  4. package/esm2022/libraries/modules/auth/session.state.mjs +43 -13
  5. package/esm2022/libraries/modules/login/login.actions.mjs +8 -1
  6. package/esm2022/libraries/modules/login/login.state.mjs +47 -10
  7. package/esm2022/libraries/modules/smartparks/smartpark.actions.mjs +27 -1
  8. package/esm2022/libraries/modules/smartparks/smartpark.state.mjs +42 -6
  9. package/esm2022/libraries/resolvers/mobile-command-center-module.resolver.mjs +17 -19
  10. package/esm2022/libraries/service-proxy/cloud-service-proxies.mjs +1342 -386
  11. package/esm2022/libraries/service-proxy/identity-service-proxies.mjs +100 -1
  12. package/esm2022/libraries/service-proxy/service-proxy.module.mjs +8 -4
  13. package/esm2022/libraries/services/auth-token.service.mjs +19 -3
  14. package/esm2022/libraries/services/tenant.service.mjs +12 -6
  15. package/fesm2022/tiba-spark-client-shared-lib.mjs +1617 -385
  16. package/fesm2022/tiba-spark-client-shared-lib.mjs.map +1 -1
  17. package/libraries/guards/sub-module-guard.d.ts +3 -1
  18. package/libraries/guards/sub-module-guard.d.ts.map +1 -1
  19. package/libraries/modules/auth/auth.service.d.ts.map +1 -1
  20. package/libraries/modules/auth/session.actions.d.ts +11 -2
  21. package/libraries/modules/auth/session.actions.d.ts.map +1 -1
  22. package/libraries/modules/auth/session.state.d.ts +7 -3
  23. package/libraries/modules/auth/session.state.d.ts.map +1 -1
  24. package/libraries/modules/login/login.actions.d.ts +6 -0
  25. package/libraries/modules/login/login.actions.d.ts.map +1 -1
  26. package/libraries/modules/login/login.state.d.ts +8 -5
  27. package/libraries/modules/login/login.state.d.ts.map +1 -1
  28. package/libraries/modules/smartparks/smartpark.actions.d.ts +19 -0
  29. package/libraries/modules/smartparks/smartpark.actions.d.ts.map +1 -1
  30. package/libraries/modules/smartparks/smartpark.state.d.ts +7 -3
  31. package/libraries/modules/smartparks/smartpark.state.d.ts.map +1 -1
  32. package/libraries/resolvers/mobile-command-center-module.resolver.d.ts +3 -5
  33. package/libraries/resolvers/mobile-command-center-module.resolver.d.ts.map +1 -1
  34. package/libraries/service-proxy/cloud-service-proxies.d.ts +140 -40
  35. package/libraries/service-proxy/cloud-service-proxies.d.ts.map +1 -1
  36. package/libraries/service-proxy/identity-service-proxies.d.ts +15 -0
  37. package/libraries/service-proxy/identity-service-proxies.d.ts.map +1 -1
  38. package/libraries/service-proxy/service-proxy.module.d.ts.map +1 -1
  39. package/libraries/services/auth-token.service.d.ts +4 -2
  40. package/libraries/services/auth-token.service.d.ts.map +1 -1
  41. package/libraries/services/tenant.service.d.ts +4 -1
  42. package/libraries/services/tenant.service.d.ts.map +1 -1
  43. package/package.json +1 -1
@@ -1,17 +1,21 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { Injectable } from '@angular/core';
3
3
  import { Dispatch } from '@ngxs-labs/dispatch-decorator';
4
+ import { AppType } from '../enums/app-type.enum';
4
5
  import { SessionState } from '../modules/auth/session.state';
6
+ import { ClearFacilityDictionaryAction } from '../modules/facility/facility.actions';
5
7
  import { MenuAppModuleLoadAction, MenuSubModuleLoadAction } from '../modules/sidenav/sidenav.actions';
6
- import { SidenavState } from '../modules/sidenav/sidenav.state';
8
+ import { LoadMobileSmartparksBasicAction } from '../modules/smartparks/smartpark.actions';
7
9
  import { navigateToForbiddenAccessPage } from '../utils/route.util';
8
10
  import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/router";
10
- import * as i2 from "@ngxs/store";
11
- import * as i3 from "../services/smartpark.service";
12
- import * as i4 from "@angular/common";
11
+ import * as i1 from "../services/app-config.service";
12
+ import * as i2 from "@angular/router";
13
+ import * as i3 from "@ngxs/store";
14
+ import * as i4 from "../services/smartpark.service";
15
+ import * as i5 from "@angular/common";
13
16
  export class SubModuleGuard {
14
- constructor(router, store, smartparkService, location) {
17
+ constructor(appConfig, router, store, smartparkService, location) {
18
+ this.appConfig = appConfig;
15
19
  this.router = router;
16
20
  this.store = store;
17
21
  this.smartparkService = smartparkService;
@@ -42,10 +46,17 @@ export class SubModuleGuard {
42
46
  this.setAppModule(route.data.module);
43
47
  this.setSubModule(route.data.subModule);
44
48
  if (route.data.getSmartparkBasicAll !== false) {
45
- this.smartparkService.getSmartparkBasicAll(this.store.selectSnapshot(SidenavState.appModule)).subscribe();
49
+ const isMobileAppMode = this.appConfig.getConfig().appType === AppType.Mobile;
50
+ if (isMobileAppMode) {
51
+ this.store.dispatch(new ClearFacilityDictionaryAction());
52
+ this.store.dispatch(new LoadMobileSmartparksBasicAction(route.data.module, route.data.subModule));
53
+ }
54
+ else {
55
+ this.smartparkService.getSmartparkBasicAll(route.data.module).subscribe();
56
+ }
46
57
  }
47
58
  }
48
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubModuleGuard, deps: [{ token: i1.Router }, { token: i2.Store }, { token: i3.SmartparkService }, { token: i4.Location }], target: i0.ɵɵFactoryTarget.Injectable }); }
59
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubModuleGuard, deps: [{ token: i1.AppConfigService }, { token: i2.Router }, { token: i3.Store }, { token: i4.SmartparkService }, { token: i5.Location }], target: i0.ɵɵFactoryTarget.Injectable }); }
49
60
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubModuleGuard }); }
50
61
  }
51
62
  __decorate([
@@ -56,5 +67,5 @@ __decorate([
56
67
  ], SubModuleGuard.prototype, "setAppModule", void 0);
57
68
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubModuleGuard, decorators: [{
58
69
  type: Injectable
59
- }], ctorParameters: () => [{ type: i1.Router }, { type: i2.Store }, { type: i3.SmartparkService }, { type: i4.Location }], propDecorators: { setSubModule: [], setAppModule: [] } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLW1vZHVsZS1ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvZ3VhcmRzL3N1Yi1tb2R1bGUtZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBSXpELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN0RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFHaEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7OztBQUdwRSxNQUFNLE9BQU8sY0FBYztJQUV6QixZQUNVLE1BQWMsRUFDZCxLQUFZLEVBQ1osZ0JBQWtDLEVBQ2xDLFFBQWtCO1FBSGxCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQ1oscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBa0NoQixpQkFBWSxHQUFHLENBQUMsU0FBb0IsRUFBRSxFQUFFLENBQUMsSUFBSSx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRixpQkFBWSxHQUFHLENBQUMsU0FBb0IsRUFBRSxFQUFFLENBQUMsSUFBSSx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQWpDNUYsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUE2QixFQUFFLEtBQTBCO1FBQ25FLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN0QixNQUFNLElBQUksR0FBYSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEUsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNULE1BQU0sVUFBVSxHQUFnQixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ2hILElBQUksQ0FBQyxDQUFDLFVBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUMvRCxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbkMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUNuQixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxLQUEwQjtRQUN0RCxNQUFNLFVBQVUsR0FBZSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEYsNkJBQTZCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRU8sc0JBQXNCLENBQUMsS0FBNkI7UUFDMUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV4QyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDOUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzVHLENBQUM7SUFDSCxDQUFDOytHQXRDVSxjQUFjO21IQUFkLGNBQWM7O0FBd0NiO0lBQVgsUUFBUSxFQUFFO29EQUFpRjtBQUNoRjtJQUFYLFFBQVEsRUFBRTtvREFBaUY7NEZBekNqRixjQUFjO2tCQUQxQixVQUFVO3FKQXlDRyxZQUFZLE1BQ1osWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlciwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBEaXNwYXRjaCB9IGZyb20gJ0BuZ3hzLWxhYnMvZGlzcGF0Y2gtZGVjb3JhdG9yJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgVGVuYW50SW5mbyB9IGZyb20gJy4uL21vZHVsZXMvYXV0aC9tb2RlbC90ZW5hbnQtaW5mby5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVXNlckluZm8gfSBmcm9tICcuLi9tb2R1bGVzL2F1dGgvbW9kZWwvdXNlci1pbmZvLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTZXNzaW9uU3RhdGUgfSBmcm9tICcuLi9tb2R1bGVzL2F1dGgvc2Vzc2lvbi5zdGF0ZSc7XG5pbXBvcnQgeyBNZW51QXBwTW9kdWxlTG9hZEFjdGlvbiwgTWVudVN1Yk1vZHVsZUxvYWRBY3Rpb24gfSBmcm9tICcuLi9tb2R1bGVzL3NpZGVuYXYvc2lkZW5hdi5hY3Rpb25zJztcbmltcG9ydCB7IFNpZGVuYXZTdGF0ZSB9IGZyb20gJy4uL21vZHVsZXMvc2lkZW5hdi9zaWRlbmF2LnN0YXRlJztcbmltcG9ydCB7IEFwcE1vZHVsZSwgU3ViTW9kdWxlIH0gZnJvbSAnLi4vc2VydmljZS1wcm94eS9jbG91ZC1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgU21hcnRwYXJrU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3NtYXJ0cGFyay5zZXJ2aWNlJztcbmltcG9ydCB7IG5hdmlnYXRlVG9Gb3JiaWRkZW5BY2Nlc3NQYWdlIH0gZnJvbSAnLi4vdXRpbHMvcm91dGUudXRpbCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTdWJNb2R1bGVHdWFyZCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZSxcbiAgICBwcml2YXRlIHNtYXJ0cGFya1NlcnZpY2U6IFNtYXJ0cGFya1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXG4gICkge1xuICB9XG5cbiAgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogYm9vbGVhbiB7XG4gICAgbGV0IGlzQWxsb3dlZCA9IGZhbHNlO1xuICAgIGNvbnN0IHVzZXI6IFVzZXJJbmZvID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChTZXNzaW9uU3RhdGUudXNlckluZm8pO1xuICAgIGlmICh1c2VyKSB7XG4gICAgICBjb25zdCBzdWJNb2R1bGVzOiBTdWJNb2R1bGVbXSA9IHVzZXIucGVybWlzc2lvbkluZm8ubW9kdWxlcy5maW5kKG0gPT4gcm91dGUuZGF0YS5tb2R1bGUgPT09IG0ubW9kdWxlKS5zdWJNb2R1bGU7XG4gICAgICBpZiAoISFzdWJNb2R1bGVzICYmICFzdWJNb2R1bGVzLmluY2x1ZGVzKHJvdXRlLmRhdGEuc3ViTW9kdWxlKSkge1xuICAgICAgICB0aGlzLmhhbmRsZUZvcmJpZGRlbkFjY2VzcyhzdGF0ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmhhbmRsZVN1Yk1vZHVsZUxvYWRpbmcocm91dGUpO1xuICAgICAgICBpc0FsbG93ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBpc0FsbG93ZWQ7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUZvcmJpZGRlbkFjY2VzcyhzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IHZvaWQge1xuICAgIGNvbnN0IHRlbmFudEluZm86IFRlbmFudEluZm8gPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KFNlc3Npb25TdGF0ZS50ZW5hbnRJbmZvKTtcbiAgICBuYXZpZ2F0ZVRvRm9yYmlkZGVuQWNjZXNzUGFnZSh0aGlzLnJvdXRlciwgdGhpcy5sb2NhdGlvbiwgc3RhdGUsIHRlbmFudEluZm8pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTdWJNb2R1bGVMb2FkaW5nKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogdm9pZCB7XG4gICAgdGhpcy5zZXRBcHBNb2R1bGUocm91dGUuZGF0YS5tb2R1bGUpO1xuICAgIHRoaXMuc2V0U3ViTW9kdWxlKHJvdXRlLmRhdGEuc3ViTW9kdWxlKTtcblxuICAgIGlmIChyb3V0ZS5kYXRhLmdldFNtYXJ0cGFya0Jhc2ljQWxsICE9PSBmYWxzZSkge1xuICAgICAgdGhpcy5zbWFydHBhcmtTZXJ2aWNlLmdldFNtYXJ0cGFya0Jhc2ljQWxsKHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoU2lkZW5hdlN0YXRlLmFwcE1vZHVsZSkpLnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIEBEaXNwYXRjaCgpIHNldFN1Yk1vZHVsZSA9IChzdWJNb2R1bGU6IFN1Yk1vZHVsZSkgPT4gbmV3IE1lbnVTdWJNb2R1bGVMb2FkQWN0aW9uKHN1Yk1vZHVsZSk7XG4gIEBEaXNwYXRjaCgpIHNldEFwcE1vZHVsZSA9IChhcHBNb2R1bGU6IEFwcE1vZHVsZSkgPT4gbmV3IE1lbnVBcHBNb2R1bGVMb2FkQWN0aW9uKGFwcE1vZHVsZSk7XG59XG4iXX0=
70
+ }], ctorParameters: () => [{ type: i1.AppConfigService }, { type: i2.Router }, { type: i3.Store }, { type: i4.SmartparkService }, { type: i5.Location }], propDecorators: { setSubModule: [], setAppModule: [] } });
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLW1vZHVsZS1ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvZ3VhcmRzL3N1Yi1tb2R1bGUtZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRXpELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUdqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDckYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdEcsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFJMUYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7QUFHcEUsTUFBTSxPQUFPLGNBQWM7SUFFekIsWUFDVSxTQUEyQixFQUMzQixNQUFjLEVBQ2QsS0FBWSxFQUNaLGdCQUFrQyxFQUNsQyxRQUFrQjtRQUpsQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUNaLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQXdDaEIsaUJBQVksR0FBRyxDQUFDLFNBQW9CLEVBQUUsRUFBRSxDQUFDLElBQUksdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEYsaUJBQVksR0FBRyxDQUFDLFNBQW9CLEVBQUUsRUFBRSxDQUFDLElBQUksdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUM7SUF2QzVGLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBNkIsRUFBRSxLQUEwQjtRQUNuRSxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdEIsTUFBTSxJQUFJLEdBQWEsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hFLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxNQUFNLFVBQVUsR0FBZ0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNoSCxJQUFJLENBQUMsQ0FBQyxVQUFVLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDL0QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25DLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDbkIsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU8scUJBQXFCLENBQUMsS0FBMEI7UUFDdEQsTUFBTSxVQUFVLEdBQWUsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xGLDZCQUE2QixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVPLHNCQUFzQixDQUFDLEtBQTZCO1FBQzFELElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFeEMsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixLQUFLLEtBQUssRUFBRSxDQUFDO1lBQzlDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUMsT0FBTyxLQUFLLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDOUUsSUFBSSxlQUFlLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSw2QkFBNkIsRUFBRSxDQUFDLENBQUM7Z0JBQ3pELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksK0JBQStCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ3BHLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM1RSxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7K0dBN0NVLGNBQWM7bUhBQWQsY0FBYzs7QUErQ2I7SUFBWCxRQUFRLEVBQUU7b0RBQWlGO0FBQ2hGO0lBQVgsUUFBUSxFQUFFO29EQUFpRjs0RkFoRGpGLGNBQWM7a0JBRDFCLFVBQVU7b0xBZ0RHLFlBQVksTUFDWixZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUm91dGVyLCBSb3V0ZXJTdGF0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IERpc3BhdGNoIH0gZnJvbSAnQG5neHMtbGFicy9kaXNwYXRjaC1kZWNvcmF0b3InO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBBcHBUeXBlIH0gZnJvbSAnLi4vZW51bXMvYXBwLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBUZW5hbnRJbmZvIH0gZnJvbSAnLi4vbW9kdWxlcy9hdXRoL21vZGVsL3RlbmFudC1pbmZvLmludGVyZmFjZSc7XG5pbXBvcnQgeyBVc2VySW5mbyB9IGZyb20gJy4uL21vZHVsZXMvYXV0aC9tb2RlbC91c2VyLWluZm8uaW50ZXJmYWNlJztcbmltcG9ydCB7IFNlc3Npb25TdGF0ZSB9IGZyb20gJy4uL21vZHVsZXMvYXV0aC9zZXNzaW9uLnN0YXRlJztcbmltcG9ydCB7IENsZWFyRmFjaWxpdHlEaWN0aW9uYXJ5QWN0aW9uIH0gZnJvbSAnLi4vbW9kdWxlcy9mYWNpbGl0eS9mYWNpbGl0eS5hY3Rpb25zJztcbmltcG9ydCB7IE1lbnVBcHBNb2R1bGVMb2FkQWN0aW9uLCBNZW51U3ViTW9kdWxlTG9hZEFjdGlvbiB9IGZyb20gJy4uL21vZHVsZXMvc2lkZW5hdi9zaWRlbmF2LmFjdGlvbnMnO1xuaW1wb3J0IHsgTG9hZE1vYmlsZVNtYXJ0cGFya3NCYXNpY0FjdGlvbiB9IGZyb20gJy4uL21vZHVsZXMvc21hcnRwYXJrcy9zbWFydHBhcmsuYWN0aW9ucyc7XG5pbXBvcnQgeyBBcHBNb2R1bGUsIFN1Yk1vZHVsZSB9IGZyb20gJy4uL3NlcnZpY2UtcHJveHkvY2xvdWQtc2VydmljZS1wcm94aWVzJztcbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hcHAtY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgU21hcnRwYXJrU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3NtYXJ0cGFyay5zZXJ2aWNlJztcbmltcG9ydCB7IG5hdmlnYXRlVG9Gb3JiaWRkZW5BY2Nlc3NQYWdlIH0gZnJvbSAnLi4vdXRpbHMvcm91dGUudXRpbCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTdWJNb2R1bGVHdWFyZCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhcHBDb25maWc6IEFwcENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZSxcbiAgICBwcml2YXRlIHNtYXJ0cGFya1NlcnZpY2U6IFNtYXJ0cGFya1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXG4gICkge1xuICB9XG5cbiAgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogYm9vbGVhbiB7XG4gICAgbGV0IGlzQWxsb3dlZCA9IGZhbHNlO1xuICAgIGNvbnN0IHVzZXI6IFVzZXJJbmZvID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChTZXNzaW9uU3RhdGUudXNlckluZm8pO1xuICAgIGlmICh1c2VyKSB7XG4gICAgICBjb25zdCBzdWJNb2R1bGVzOiBTdWJNb2R1bGVbXSA9IHVzZXIucGVybWlzc2lvbkluZm8ubW9kdWxlcy5maW5kKG0gPT4gcm91dGUuZGF0YS5tb2R1bGUgPT09IG0ubW9kdWxlKS5zdWJNb2R1bGU7XG4gICAgICBpZiAoISFzdWJNb2R1bGVzICYmICFzdWJNb2R1bGVzLmluY2x1ZGVzKHJvdXRlLmRhdGEuc3ViTW9kdWxlKSkge1xuICAgICAgICB0aGlzLmhhbmRsZUZvcmJpZGRlbkFjY2VzcyhzdGF0ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmhhbmRsZVN1Yk1vZHVsZUxvYWRpbmcocm91dGUpO1xuICAgICAgICBpc0FsbG93ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBpc0FsbG93ZWQ7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUZvcmJpZGRlbkFjY2VzcyhzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IHZvaWQge1xuICAgIGNvbnN0IHRlbmFudEluZm86IFRlbmFudEluZm8gPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KFNlc3Npb25TdGF0ZS50ZW5hbnRJbmZvKTtcbiAgICBuYXZpZ2F0ZVRvRm9yYmlkZGVuQWNjZXNzUGFnZSh0aGlzLnJvdXRlciwgdGhpcy5sb2NhdGlvbiwgc3RhdGUsIHRlbmFudEluZm8pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTdWJNb2R1bGVMb2FkaW5nKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogdm9pZCB7XG4gICAgdGhpcy5zZXRBcHBNb2R1bGUocm91dGUuZGF0YS5tb2R1bGUpO1xuICAgIHRoaXMuc2V0U3ViTW9kdWxlKHJvdXRlLmRhdGEuc3ViTW9kdWxlKTtcblxuICAgIGlmIChyb3V0ZS5kYXRhLmdldFNtYXJ0cGFya0Jhc2ljQWxsICE9PSBmYWxzZSkge1xuICAgICAgY29uc3QgaXNNb2JpbGVBcHBNb2RlID0gdGhpcy5hcHBDb25maWcuZ2V0Q29uZmlnKCkuYXBwVHlwZSA9PT0gQXBwVHlwZS5Nb2JpbGU7XG4gICAgICBpZiAoaXNNb2JpbGVBcHBNb2RlKSB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IENsZWFyRmFjaWxpdHlEaWN0aW9uYXJ5QWN0aW9uKCkpO1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBMb2FkTW9iaWxlU21hcnRwYXJrc0Jhc2ljQWN0aW9uKHJvdXRlLmRhdGEubW9kdWxlLCByb3V0ZS5kYXRhLnN1Yk1vZHVsZSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zbWFydHBhcmtTZXJ2aWNlLmdldFNtYXJ0cGFya0Jhc2ljQWxsKHJvdXRlLmRhdGEubW9kdWxlKS5zdWJzY3JpYmUoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBARGlzcGF0Y2goKSBzZXRTdWJNb2R1bGUgPSAoc3ViTW9kdWxlOiBTdWJNb2R1bGUpID0+IG5ldyBNZW51U3ViTW9kdWxlTG9hZEFjdGlvbihzdWJNb2R1bGUpO1xuICBARGlzcGF0Y2goKSBzZXRBcHBNb2R1bGUgPSAoYXBwTW9kdWxlOiBBcHBNb2R1bGUpID0+IG5ldyBNZW51QXBwTW9kdWxlTG9hZEFjdGlvbihhcHBNb2R1bGUpO1xufVxuIl19
@@ -74,4 +74,4 @@ export class AuthService {
74
74
  __decorate([
75
75
  Dispatch()
76
76
  ], AuthService.prototype, "setTenant", void 0);
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9tb2R1bGVzL2F1dGgvYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHbkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFLL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHckQsTUFBTSxPQUFnQixXQUFXO0lBSS9CLFlBQVksUUFBa0I7UUEyRWxCLGNBQVMsR0FBRyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQTFFdkUsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUEwQjtRQUM5QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsWUFB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QyxDQUFDLENBQUM7UUFDNUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzNELENBQUM7Q0FHRjtBQURhO0lBQVgsUUFBUSxFQUFFOzhDQUE4RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEaXNwYXRjaCB9IGZyb20gJ0BuZ3hzLWxhYnMvZGlzcGF0Y2gtZGVjb3JhdG9yJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTE9HR0VEX1RFTkFOVF9LRVkgfSBmcm9tICcuLi8uLi9jb25zdGFudHMva2V5cy1jb25zdGFudHMnO1xuaW1wb3J0IHsgU3BhcmtTZXNzaW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zcGFyay1zZXNzaW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGVSZXNwb25zZUR0bywgQXV0aGVudGljYXRlUmVzcG9uc2VEdG9IdHRwUmVzcG9uc2VEYXRhIH0gZnJvbSAnLi4vLi4vc2VydmljZS1wcm94eS9pZGVudGl0eS1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2Vzc2lvbi1zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9naW5SZXF1ZXN0IH0gZnJvbSAnLi9tb2RlbC9sb2dpbi1yZXF1ZXN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZWZyZXNoSW5mbyB9IGZyb20gJy4vbW9kZWwvcmVmcmVzaC1pbmZvLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUZW5hbnRJbmZvIH0gZnJvbSAnLi9tb2RlbC90ZW5hbnQtaW5mby5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVXNlckluZm8gfSBmcm9tICcuL21vZGVsL3VzZXItaW5mby5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGVuYW50TG9hZEFjdGlvbiB9IGZyb20gJy4vc2Vzc2lvbi5hY3Rpb25zJztcblxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQXV0aFNlcnZpY2Uge1xuICBwcm90ZWN0ZWQgc3RvcmU6IFN0b3JlO1xuICBwcm90ZWN0ZWQgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2U7XG5cbiAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgdGhpcy5zdG9yZSA9IGluamVjdG9yLmdldChTdG9yZSk7XG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlKTtcbiAgfVxuXG4gIGxvZ2luKGxvZ2luUmVxdWVzdDogTG9naW5SZXF1ZXN0KTogT2JzZXJ2YWJsZTxTcGFya1Nlc3Npb24+IHtcbiAgICByZXR1cm4gdGhpcy5kb0xvZ2luKGxvZ2luUmVxdWVzdCkucGlwZShtYXAoKHJlcykgPT4gdGhpcy5wcm9jZXNzQXV0aGVudGljYXRlKHJlcy5kYXRhLCBsb2dpblJlcXVlc3Qua2VlcE1lTG9nZ2VkSW4pKSk7XG4gIH1cblxuICBsb2dvdXQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gb2Yoe30pLnBpcGUodGFwKCgpID0+IHRoaXMuZG9Mb2dvdXQoKSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGRvTG9naW4obG9naW5SZXF1ZXN0OiBMb2dpblJlcXVlc3QpOiBPYnNlcnZhYmxlPEF1dGhlbnRpY2F0ZVJlc3BvbnNlRHRvSHR0cFJlc3BvbnNlRGF0YT47XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBkb0xvZ291dCgpOiBPYnNlcnZhYmxlPGFueT47XG5cbiAgcHJvdGVjdGVkIGdlbmVyYXRlUmVmcmVzaEluZm8ocmVzOiBBdXRoZW50aWNhdGVSZXNwb25zZUR0bykge1xuICAgIGNvbnN0IHJlZnJlc2hJbmZvOiBSZWZyZXNoSW5mbyA9IHtcbiAgICAgIHJlZnJlc2hUb2tlbjogcmVzLnJlZnJlc2hUb2tlbixcbiAgICAgIGV4cGlyYXRpb246IHJlcy5leHBpcmF0aW9uLFxuICAgICAgcmVmcmVzaEludGVydmFsOiByZXMucmVmcmVzaEludGVydmFsLFxuICAgIH07XG5cbiAgICB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5hdXRoID0gcmVmcmVzaEluZm87XG4gICAgcmV0dXJuIHJlZnJlc2hJbmZvO1xuICB9XG5cbiAgcHVibGljIHByb2Nlc3NBdXRoZW50aWNhdGUoYXV0aFJlc3BvbnNlOiBBdXRoZW50aWNhdGVSZXNwb25zZUR0bywga2VlcE1lTG9nZ2VkSW4gPSBmYWxzZSk6IFNwYXJrU2Vzc2lvbiB7XG4gICAgY29uc3QgYXQgPSBhdXRoUmVzcG9uc2UuYWNjZXNzVG9rZW47XG4gICAgY29uc3QgcmVmcmVzaEluZm8gPSB0aGlzLmdlbmVyYXRlUmVmcmVzaEluZm8oYXV0aFJlc3BvbnNlKTtcbiAgICB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5hY2Nlc3NUb2tlbiA9IGF0O1xuICAgIGNvbnN0IHVzZXI6IFVzZXJJbmZvID0ge1xuICAgICAgdXNlcklkOiBhdXRoUmVzcG9uc2UudXNlcklkLFxuICAgICAgdXNlcm5hbWU6IGF1dGhSZXNwb25zZS51c2VybmFtZSxcbiAgICAgIHN0YXR1czogYXV0aFJlc3BvbnNlLnVzZXJTdGF0dXMsXG4gICAgICBkaXNwbGF5TmFtZTogYCR7YXV0aFJlc3BvbnNlLmZpcnN0TmFtZX0gJHthdXRoUmVzcG9uc2UubGFzdE5hbWV9YCxcbiAgICAgIHBhc3N3b3JkRXhwaXJhdGlvbjogYXV0aFJlc3BvbnNlLnBhc3N3b3JkRXhwaXJhdGlvbixcbiAgICAgIHBlcm1pc3Npb25JbmZvOiB7IG1vZHVsZXM6IGF1dGhSZXNwb25zZS5tb2R1bGVzLCBkZWZhdWx0TW9kdWxlOiBhdXRoUmVzcG9uc2UuZGVmYXVsdE1vZHVsZSB9LFxuICAgICAgc2V0dGluZ3M6IGF1dGhSZXNwb25zZS5zZXR0aW5ncyxcbiAgICAgIHBhc3N3b3JkRXhwaXJhdGlvblN0YXRlOiBhdXRoUmVzcG9uc2UucGFzc3dvcmRFeHBpcmF0aW9uU3RhdGUsXG4gICAgICBkYXlzVG9FeHBpcmU6IGF1dGhSZXNwb25zZS5kYXlzVG9FeHBpcmUsXG4gICAgICBlbmFibGVkMkZBOiBhdXRoUmVzcG9uc2UudHdvRmFjdG9yQXV0aGVudGljYXRpb24sXG4gICAgICBhdXRoZW50aWNhdGVkMkZBOiBmYWxzZSxcbiAgICAgIHR3b0ZhY3RvckF1dGhlbnRpY2F0aW9uOiBhdXRoUmVzcG9uc2UudHdvRmFjdG9yQXV0aGVudGljYXRpb25EdG8sXG4gICAgICBzc29BdXRoZW50aWNhdGVkOiBhdXRoUmVzcG9uc2Uuc2luZ2xlU2lnbk9uQXV0aGVudGljYXRpb25EdG8/LmlzQXV0aGVudGljYXRlZCxcbiAgICAgIGtlZXBNZUxvZ2dlZEluLFxuICAgIH07XG5cbiAgICBjb25zdCBzcGFya1Nlc3Npb246IFNwYXJrU2Vzc2lvbiA9IHtcbiAgICAgIHVzZXIsXG4gICAgICBhdXRoVG9rZW46IGF0LFxuICAgICAgdGhpcmRQYXJ0eVRva2VuOiBhdXRoUmVzcG9uc2UudGhpcmRQYXJ0eVRva2VuLFxuICAgICAgcmVmcmVzaDogcmVmcmVzaEluZm8sXG4gICAgICB0ZW5hbnQ6IG51bGxcbiAgICB9O1xuXG4gICAgaWYgKGF1dGhSZXNwb25zZS50ZW5hbnQpIHtcbiAgICAgIGNvbnN0IHRlbmFudEluZm86IFRlbmFudEluZm8gPSB7XG4gICAgICAgIHRlbmFudE5hbWU6IGF1dGhSZXNwb25zZS50ZW5hbnQubmFtZS50b0xvd2VyQ2FzZSgpLCAvLyBETyBOT1QgRVZFUiBSRU1PVkUgVEhJUyBMT1dFUiBDQVNFIChNYXRhbiBCKVxuICAgICAgICBkaXNwbGF5TmFtZTogYXV0aFJlc3BvbnNlLnRlbmFudD8uZGlzcGxheU5hbWUsXG4gICAgICAgIGlkOiBhdXRoUmVzcG9uc2UudGVuYW50Py5pZCxcbiAgICAgICAgcHJvcHM6IGF1dGhSZXNwb25zZS50ZW5hbnQ/LnByb3BzLFxuICAgICAgICB0cmVlSWQ6IGF1dGhSZXNwb25zZS50ZW5hbnQ/LnRyZWVJZCxcbiAgICAgIH07XG4gICAgICB0aGlzLnNldFRlbmFudCh0ZW5hbnRJbmZvKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3BhcmtTZXNzaW9uO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNsZWFyU3RvcmFnZSgpIHtcbiAgICB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5zZXRJdGVtKHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudCwgSlNPTi5zdHJpbmdpZnkoeyBhdDogJycsIGF1dGg6IHt9IH0pKTtcbiAgICB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKExPR0dFRF9URU5BTlRfS0VZKTtcbiAgfVxuXG4gIEBEaXNwYXRjaCgpIHNldFRlbmFudCA9ICh0ZW5hbnRJbmZvKSA9PiBuZXcgVGVuYW50TG9hZEFjdGlvbih0ZW5hbnRJbmZvKTtcbn1cbiJdfQ==
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9tb2R1bGVzL2F1dGgvYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHbkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFLL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFckQsTUFBTSxPQUFnQixXQUFXO0lBSS9CLFlBQVksUUFBa0I7UUEyRWxCLGNBQVMsR0FBRyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQTFFdkUsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUEwQjtRQUM5QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4SCxDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBS1MsbUJBQW1CLENBQUMsR0FBNEI7UUFDeEQsTUFBTSxXQUFXLEdBQWdCO1lBQy9CLFlBQVksRUFBRSxHQUFHLENBQUMsWUFBWTtZQUM5QixVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVU7WUFDMUIsZUFBZSxFQUFFLEdBQUcsQ0FBQyxlQUFlO1NBQ3JDLENBQUM7UUFFRixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQztRQUM5QyxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRU0sbUJBQW1CLENBQUMsWUFBcUMsRUFBRSxjQUFjLEdBQUcsS0FBSztRQUN0RixNQUFNLEVBQUUsR0FBRyxZQUFZLENBQUMsV0FBVyxDQUFDO1FBQ3BDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMscUJBQXFCLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUM1QyxNQUFNLElBQUksR0FBYTtZQUNyQixNQUFNLEVBQUUsWUFBWSxDQUFDLE1BQU07WUFDM0IsUUFBUSxFQUFFLFlBQVksQ0FBQyxRQUFRO1lBQy9CLE1BQU0sRUFBRSxZQUFZLENBQUMsVUFBVTtZQUMvQixXQUFXLEVBQUUsR0FBRyxZQUFZLENBQUMsU0FBUyxJQUFJLFlBQVksQ0FBQyxRQUFRLEVBQUU7WUFDakUsa0JBQWtCLEVBQUUsWUFBWSxDQUFDLGtCQUFrQjtZQUNuRCxjQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsWUFBWSxDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUFDLGFBQWEsRUFBRTtZQUM1RixRQUFRLEVBQUUsWUFBWSxDQUFDLFFBQVE7WUFDL0IsdUJBQXVCLEVBQUUsWUFBWSxDQUFDLHVCQUF1QjtZQUM3RCxZQUFZLEVBQUUsWUFBWSxDQUFDLFlBQVk7WUFDdkMsVUFBVSxFQUFFLFlBQVksQ0FBQyx1QkFBdUI7WUFDaEQsZ0JBQWdCLEVBQUUsS0FBSztZQUN2Qix1QkFBdUIsRUFBRSxZQUFZLENBQUMsMEJBQTBCO1lBQ2hFLGdCQUFnQixFQUFFLFlBQVksQ0FBQyw2QkFBNkIsRUFBRSxlQUFlO1lBQzdFLGNBQWM7U0FDZixDQUFDO1FBRUYsTUFBTSxZQUFZLEdBQWlCO1lBQ2pDLElBQUk7WUFDSixTQUFTLEVBQUUsRUFBRTtZQUNiLGVBQWUsRUFBRSxZQUFZLENBQUMsZUFBZTtZQUM3QyxPQUFPLEVBQUUsV0FBVztZQUNwQixNQUFNLEVBQUUsSUFBSTtTQUNiLENBQUM7UUFFRixJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN4QixNQUFNLFVBQVUsR0FBZTtnQkFDN0IsVUFBVSxFQUFFLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLCtDQUErQztnQkFDbkcsV0FBVyxFQUFFLFlBQVksQ0FBQyxNQUFNLEVBQUUsV0FBVztnQkFDN0MsRUFBRSxFQUFFLFlBQVksQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDM0IsS0FBSyxFQUFFLFlBQVksQ0FBQyxNQUFNLEVBQUUsS0FBSztnQkFDakMsTUFBTSxFQUFFLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTTthQUNwQyxDQUFDO1lBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBRUQsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVTLFlBQVk7UUFDcEIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDNUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzNELENBQUM7Q0FHRjtBQURhO0lBQVgsUUFBUSxFQUFFOzhDQUE4RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEaXNwYXRjaCB9IGZyb20gJ0BuZ3hzLWxhYnMvZGlzcGF0Y2gtZGVjb3JhdG9yJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTE9HR0VEX1RFTkFOVF9LRVkgfSBmcm9tICcuLi8uLi9jb25zdGFudHMva2V5cy1jb25zdGFudHMnO1xuaW1wb3J0IHsgU3BhcmtTZXNzaW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zcGFyay1zZXNzaW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGVSZXNwb25zZUR0bywgQXV0aGVudGljYXRlUmVzcG9uc2VEdG9IdHRwUmVzcG9uc2VEYXRhIH0gZnJvbSAnLi4vLi4vc2VydmljZS1wcm94eS9pZGVudGl0eS1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2Vzc2lvbi1zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9naW5SZXF1ZXN0IH0gZnJvbSAnLi9tb2RlbC9sb2dpbi1yZXF1ZXN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZWZyZXNoSW5mbyB9IGZyb20gJy4vbW9kZWwvcmVmcmVzaC1pbmZvLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUZW5hbnRJbmZvIH0gZnJvbSAnLi9tb2RlbC90ZW5hbnQtaW5mby5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVXNlckluZm8gfSBmcm9tICcuL21vZGVsL3VzZXItaW5mby5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGVuYW50TG9hZEFjdGlvbiB9IGZyb20gJy4vc2Vzc2lvbi5hY3Rpb25zJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEF1dGhTZXJ2aWNlIHtcbiAgcHJvdGVjdGVkIHN0b3JlOiBTdG9yZTtcbiAgcHJvdGVjdGVkIHNlc3Npb25TdG9yYWdlU2VydmljZTogU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlO1xuXG4gIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgIHRoaXMuc3RvcmUgPSBpbmplY3Rvci5nZXQoU3RvcmUpO1xuICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFNlc3Npb25TdG9yYWdlU2VydmljZSk7XG4gIH1cblxuICBsb2dpbihsb2dpblJlcXVlc3Q6IExvZ2luUmVxdWVzdCk6IE9ic2VydmFibGU8U3BhcmtTZXNzaW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuZG9Mb2dpbihsb2dpblJlcXVlc3QpLnBpcGUobWFwKChyZXMpID0+IHRoaXMucHJvY2Vzc0F1dGhlbnRpY2F0ZShyZXMuZGF0YSwgbG9naW5SZXF1ZXN0LmtlZXBNZUxvZ2dlZEluKSkpO1xuICB9XG5cbiAgbG9nb3V0KCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIG9mKHt9KS5waXBlKHRhcCgoKSA9PiB0aGlzLmRvTG9nb3V0KCkpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBkb0xvZ2luKGxvZ2luUmVxdWVzdDogTG9naW5SZXF1ZXN0KTogT2JzZXJ2YWJsZTxBdXRoZW50aWNhdGVSZXNwb25zZUR0b0h0dHBSZXNwb25zZURhdGE+O1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZG9Mb2dvdXQoKTogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gIHByb3RlY3RlZCBnZW5lcmF0ZVJlZnJlc2hJbmZvKHJlczogQXV0aGVudGljYXRlUmVzcG9uc2VEdG8pIHtcbiAgICBjb25zdCByZWZyZXNoSW5mbzogUmVmcmVzaEluZm8gPSB7XG4gICAgICByZWZyZXNoVG9rZW46IHJlcy5yZWZyZXNoVG9rZW4sXG4gICAgICBleHBpcmF0aW9uOiByZXMuZXhwaXJhdGlvbixcbiAgICAgIHJlZnJlc2hJbnRlcnZhbDogcmVzLnJlZnJlc2hJbnRlcnZhbCxcbiAgICB9O1xuXG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuYXV0aCA9IHJlZnJlc2hJbmZvO1xuICAgIHJldHVybiByZWZyZXNoSW5mbztcbiAgfVxuXG4gIHB1YmxpYyBwcm9jZXNzQXV0aGVudGljYXRlKGF1dGhSZXNwb25zZTogQXV0aGVudGljYXRlUmVzcG9uc2VEdG8sIGtlZXBNZUxvZ2dlZEluID0gZmFsc2UpOiBTcGFya1Nlc3Npb24ge1xuICAgIGNvbnN0IGF0ID0gYXV0aFJlc3BvbnNlLmFjY2Vzc1Rva2VuO1xuICAgIGNvbnN0IHJlZnJlc2hJbmZvID0gdGhpcy5nZW5lcmF0ZVJlZnJlc2hJbmZvKGF1dGhSZXNwb25zZSk7XG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuYWNjZXNzVG9rZW4gPSBhdDtcbiAgICBjb25zdCB1c2VyOiBVc2VySW5mbyA9IHtcbiAgICAgIHVzZXJJZDogYXV0aFJlc3BvbnNlLnVzZXJJZCxcbiAgICAgIHVzZXJuYW1lOiBhdXRoUmVzcG9uc2UudXNlcm5hbWUsXG4gICAgICBzdGF0dXM6IGF1dGhSZXNwb25zZS51c2VyU3RhdHVzLFxuICAgICAgZGlzcGxheU5hbWU6IGAke2F1dGhSZXNwb25zZS5maXJzdE5hbWV9ICR7YXV0aFJlc3BvbnNlLmxhc3ROYW1lfWAsXG4gICAgICBwYXNzd29yZEV4cGlyYXRpb246IGF1dGhSZXNwb25zZS5wYXNzd29yZEV4cGlyYXRpb24sXG4gICAgICBwZXJtaXNzaW9uSW5mbzogeyBtb2R1bGVzOiBhdXRoUmVzcG9uc2UubW9kdWxlcywgZGVmYXVsdE1vZHVsZTogYXV0aFJlc3BvbnNlLmRlZmF1bHRNb2R1bGUgfSxcbiAgICAgIHNldHRpbmdzOiBhdXRoUmVzcG9uc2Uuc2V0dGluZ3MsXG4gICAgICBwYXNzd29yZEV4cGlyYXRpb25TdGF0ZTogYXV0aFJlc3BvbnNlLnBhc3N3b3JkRXhwaXJhdGlvblN0YXRlLFxuICAgICAgZGF5c1RvRXhwaXJlOiBhdXRoUmVzcG9uc2UuZGF5c1RvRXhwaXJlLFxuICAgICAgZW5hYmxlZDJGQTogYXV0aFJlc3BvbnNlLnR3b0ZhY3RvckF1dGhlbnRpY2F0aW9uLFxuICAgICAgYXV0aGVudGljYXRlZDJGQTogZmFsc2UsXG4gICAgICB0d29GYWN0b3JBdXRoZW50aWNhdGlvbjogYXV0aFJlc3BvbnNlLnR3b0ZhY3RvckF1dGhlbnRpY2F0aW9uRHRvLFxuICAgICAgc3NvQXV0aGVudGljYXRlZDogYXV0aFJlc3BvbnNlLnNpbmdsZVNpZ25PbkF1dGhlbnRpY2F0aW9uRHRvPy5pc0F1dGhlbnRpY2F0ZWQsXG4gICAgICBrZWVwTWVMb2dnZWRJbixcbiAgICB9O1xuXG4gICAgY29uc3Qgc3BhcmtTZXNzaW9uOiBTcGFya1Nlc3Npb24gPSB7XG4gICAgICB1c2VyLFxuICAgICAgYXV0aFRva2VuOiBhdCxcbiAgICAgIHRoaXJkUGFydHlUb2tlbjogYXV0aFJlc3BvbnNlLnRoaXJkUGFydHlUb2tlbixcbiAgICAgIHJlZnJlc2g6IHJlZnJlc2hJbmZvLFxuICAgICAgdGVuYW50OiBudWxsXG4gICAgfTtcblxuICAgIGlmIChhdXRoUmVzcG9uc2UudGVuYW50KSB7XG4gICAgICBjb25zdCB0ZW5hbnRJbmZvOiBUZW5hbnRJbmZvID0ge1xuICAgICAgICB0ZW5hbnROYW1lOiBhdXRoUmVzcG9uc2UudGVuYW50Lm5hbWUudG9Mb3dlckNhc2UoKSwgLy8gRE8gTk9UIEVWRVIgUkVNT1ZFIFRISVMgTE9XRVIgQ0FTRSAoTWF0YW4gQilcbiAgICAgICAgZGlzcGxheU5hbWU6IGF1dGhSZXNwb25zZS50ZW5hbnQ/LmRpc3BsYXlOYW1lLFxuICAgICAgICBpZDogYXV0aFJlc3BvbnNlLnRlbmFudD8uaWQsXG4gICAgICAgIHByb3BzOiBhdXRoUmVzcG9uc2UudGVuYW50Py5wcm9wcyxcbiAgICAgICAgdHJlZUlkOiBhdXRoUmVzcG9uc2UudGVuYW50Py50cmVlSWQsXG4gICAgICB9O1xuICAgICAgdGhpcy5zZXRUZW5hbnQodGVuYW50SW5mbyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNwYXJrU2Vzc2lvbjtcbiAgfVxuXG4gIHByb3RlY3RlZCBjbGVhclN0b3JhZ2UoKSB7XG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSh0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnQsIEpTT04uc3RyaW5naWZ5KHsgYXQ6ICcnLCBhdXRoOiB7fSB9KSk7XG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbShMT0dHRURfVEVOQU5UX0tFWSk7XG4gIH1cblxuICBARGlzcGF0Y2goKSBzZXRUZW5hbnQgPSAodGVuYW50SW5mbykgPT4gbmV3IFRlbmFudExvYWRBY3Rpb24odGVuYW50SW5mbyk7XG59XG4iXX0=
@@ -14,8 +14,9 @@ export class SetkeepMeLoggedInAction {
14
14
  }
15
15
  export class LogoutAction {
16
16
  static { this.type = '[Session] Logout'; }
17
- constructor(logoutAudit = true) {
17
+ constructor(logoutAudit = true, logoutBackofficeAudit = false) {
18
18
  this.logoutAudit = logoutAudit;
19
+ this.logoutBackofficeAudit = logoutBackofficeAudit;
19
20
  }
20
21
  }
21
22
  export class MobileLogoutAction {
@@ -30,7 +31,12 @@ export class LogoutMobileAction {
30
31
  }
31
32
  }
32
33
  export class AuditLogoutAction {
33
- static { this.type = '[Session] Audit Logout'; }
34
+ static { this.type = '[Session] AuditLogout'; }
35
+ constructor() {
36
+ }
37
+ }
38
+ export class AuditBackofficeAction {
39
+ static { this.type = '[Session] AuditBackoffice'; }
34
40
  constructor() {
35
41
  }
36
42
  }
@@ -106,6 +112,10 @@ export class LoadAppConfigurationAction {
106
112
  static { this.type = '[Session] App Configuration Load'; }
107
113
  constructor() { }
108
114
  }
115
+ export class LoadBackofficeAppConfigurationAction {
116
+ static { this.type = '[Session] Backoffice App Configuration Load'; }
117
+ constructor() { }
118
+ }
109
119
  export class LoadAppConfigurationMobileAction {
110
120
  static { this.type = '[Session] App Configuration Mobile Load'; }
111
121
  constructor() { }
@@ -114,4 +124,4 @@ export class Authenticate2FAforUser {
114
124
  static { this.type = '[Session] Authenticate2FAforUser'; }
115
125
  constructor() { }
116
126
  }
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9tb2R1bGVzL2F1dGgvc2Vzc2lvbi5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE1BQU0sT0FBTyxrQkFBa0I7YUFDTixTQUFJLEdBQUcsaUJBQWlCLENBQUM7SUFFaEQsWUFBbUIsUUFBZ0IsRUFBUyxRQUFnQixFQUFTLGlCQUEwQixLQUFLO1FBQWpGLGFBQVEsR0FBUixRQUFRLENBQVE7UUFBUyxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQVMsbUJBQWMsR0FBZCxjQUFjLENBQWlCO0lBQ3BHLENBQUM7O0FBR0gsTUFBTSxPQUFPLHVCQUF1QjthQUNYLFNBQUksR0FBRywwQkFBMEIsQ0FBQztJQUV6RCxZQUFtQixjQUF1QjtRQUF2QixtQkFBYyxHQUFkLGNBQWMsQ0FBUztJQUMxQyxDQUFDOztBQUdILE1BQU0sT0FBTyxZQUFZO2FBQ0EsU0FBSSxHQUFHLGtCQUFrQixDQUFDO0lBRWpELFlBQW1CLGNBQXVCLElBQUk7UUFBM0IsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO0lBQzlDLENBQUM7O0FBRUgsTUFBTSxPQUFPLGtCQUFrQjthQUNOLFNBQUksR0FBRyx3QkFBd0IsQ0FBQztJQUV2RCxZQUFtQixjQUF1QixJQUFJO1FBQTNCLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtJQUM5QyxDQUFDOztBQUdILE1BQU0sT0FBTyxrQkFBa0I7YUFDTixTQUFJLEdBQUcsd0JBQXdCLENBQUM7SUFDdkQ7SUFDQSxDQUFDOztBQUdILE1BQU0sT0FBTyxpQkFBaUI7YUFDTCxTQUFJLEdBQUcsd0JBQXdCLENBQUM7SUFFdkQ7SUFDQSxDQUFDOztBQUdILE1BQU0sT0FBTyx1QkFBdUI7YUFDWCxTQUFJLEdBQUcsNkJBQTZCLENBQUM7SUFFNUQ7SUFDQSxDQUFDOztBQUdILE1BQU0sT0FBTyxpQ0FBaUM7YUFDckIsU0FBSSxHQUFHLHFDQUFxQyxDQUFDO0lBRXBFO0lBQ0EsQ0FBQzs7QUFHSCxNQUFNLE9BQU8sY0FBYzthQUNGLFNBQUksR0FBRyxxQkFBcUIsQ0FBQztJQUVwRCxZQUFtQixTQUFpQixFQUFTLE9BQW9CO1FBQTlDLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFBUyxZQUFPLEdBQVAsT0FBTyxDQUFhO0lBQ2pFLENBQUM7O0FBR0gsTUFBTSxPQUFPLHFCQUFxQjthQUNULFNBQUksR0FBRyw2QkFBNkIsQ0FBQztJQUU1RCxZQUFtQixTQUFpQjtRQUFqQixjQUFTLEdBQVQsU0FBUyxDQUFRO0lBQ3BDLENBQUM7O0FBR0gsTUFBTSxPQUFPLGlCQUFpQjthQUNMLFNBQUksR0FBRyx1QkFBdUIsQ0FBQztJQUV0RCxZQUFtQixRQUFnQjtRQUFoQixhQUFRLEdBQVIsUUFBUSxDQUFRO0lBQ25DLENBQUM7O0FBR0gsTUFBTSxPQUFPLFlBQVk7YUFDQSxTQUFJLEdBQUcseUJBQXlCLENBQUM7SUFFeEQ7SUFDQSxDQUFDOztBQUdILE1BQU0sT0FBTyxnQkFBZ0I7YUFDSixTQUFJLEdBQUcsd0JBQXdCLENBQUM7SUFFdkQsWUFBbUIsTUFBa0I7UUFBbEIsV0FBTSxHQUFOLE1BQU0sQ0FBWTtJQUNyQyxDQUFDOztBQUdILE1BQU0sT0FBTyxpQkFBaUI7YUFDTCxTQUFJLEdBQUcseUJBQXlCLENBQUM7SUFFeEQ7SUFDQSxDQUFDOztBQUdILE1BQU0sT0FBTyxZQUFZO2FBQ0EsU0FBSSxHQUFHLHVCQUF1QixDQUFDO0lBRXREO0lBQ0EsQ0FBQzs7QUFHSCxNQUFNLE9BQU8saUNBQWlDO2FBQ3JCLFNBQUksR0FBRywrQkFBK0IsQ0FBQztJQUU5RCxZQUFtQixZQUFnQztRQUFoQyxpQkFBWSxHQUFaLFlBQVksQ0FBb0I7SUFDbkQsQ0FBQzs7QUFHSCxNQUFNLE9BQU8scUJBQXFCO2FBQ1QsU0FBSSxHQUFHLG9DQUFvQyxDQUFDO0lBRW5FLFlBQW1CLEtBQVU7UUFBVixVQUFLLEdBQUwsS0FBSyxDQUFLO0lBQzdCLENBQUM7O0FBR0gsTUFBTSxPQUFPLG1CQUFtQjthQUNQLFNBQUksR0FBRywyQkFBMkIsQ0FBQztJQUUxRCxZQUFtQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztJQUFJLENBQUM7O0FBR3BELE1BQU0sT0FBTywwQkFBMEI7YUFDZCxTQUFJLEdBQUcsa0NBQWtDLENBQUM7SUFFakUsZ0JBQWdCLENBQUM7O0FBR25CLE1BQU0sT0FBTyxnQ0FBZ0M7YUFDcEIsU0FBSSxHQUFHLHlDQUF5QyxDQUFDO0lBRXhFLGdCQUFnQixDQUFDOztBQUduQixNQUFNLE9BQU8sc0JBQXNCO2FBQ1YsU0FBSSxHQUFHLGtDQUFrQyxDQUFDO0lBRWpFLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3BhcmtTZXNzaW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zcGFyay1zZXNzaW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTcGFya1NldHRpbmdzRHRvIH0gZnJvbSAnLi4vLi4vc2VydmljZS1wcm94eS9jbG91ZC1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgTG9naW5SZXF1ZXN0IH0gZnJvbSAnLi9tb2RlbC9sb2dpbi1yZXF1ZXN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZWZyZXNoSW5mbyB9IGZyb20gJy4vbW9kZWwvcmVmcmVzaC1pbmZvLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUZW5hbnRJbmZvIH0gZnJvbSAnLi9tb2RlbC90ZW5hbnQtaW5mby5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY2xhc3MgTG9naW5SZXF1ZXN0QWN0aW9uIGltcGxlbWVudHMgTG9naW5SZXF1ZXN0IHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tTZXNzaW9uXSBMb2dpbic7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHVzZXJuYW1lOiBzdHJpbmcsIHB1YmxpYyBwYXNzd29yZDogc3RyaW5nLCBwdWJsaWMga2VlcE1lTG9nZ2VkSW46IGJvb2xlYW4gPSBmYWxzZSkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTZXRrZWVwTWVMb2dnZWRJbkFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbU2Vzc2lvbl0ga2VlcE1lTG9nZ2VkSW4nO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBrZWVwTWVMb2dnZWRJbjogYm9vbGVhbikge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMb2dvdXRBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1Nlc3Npb25dIExvZ291dCc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGxvZ291dEF1ZGl0OiBib29sZWFuID0gdHJ1ZSkge1xuICB9XG59XG5leHBvcnQgY2xhc3MgTW9iaWxlTG9nb3V0QWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tTZXNzaW9uXSBNb2JpbGVMb2dvdXQnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBsb2dvdXRBdWRpdDogYm9vbGVhbiA9IHRydWUpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTG9nb3V0TW9iaWxlQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tTZXNzaW9uXSBMb2dvdXRNb2JpbGUnO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQXVkaXRMb2dvdXRBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1Nlc3Npb25dIEF1ZGl0IExvZ291dCc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEF1ZGl0TG9nb3V0TW9iaWxlQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tTZXNzaW9uXSBBdWRpdExvZ291dE1vYmlsZSc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEluaXRTZXNzaW9uRnJvbUxvY2FsU3RvcmFnZUFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbU2Vzc2lvbl0gTG9hZCBTZXNzaW9uIEZyb20gU3RvcmFnZSc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNldFN0YXRlQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tTZXNzaW9uXSBTZXQgU3RhdGUnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBhdXRoVG9rZW46IHN0cmluZywgcHVibGljIHJlZnJlc2g6IFJlZnJlc2hJbmZvKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFVwZGF0ZUF1dGhUb2tlbkFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbU2Vzc2lvbl0gVXBkYXRlIEF1dGggVG9rZW4nO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBhdXRoVG9rZW46IHN0cmluZykge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTZXRVc2VyTmFtZUFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbU2Vzc2lvbl0gU2V0VXNlck5hbWUnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1c2VyTmFtZTogc3RyaW5nKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIExvZ2luU3VjY2VzcyB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbU2Vzc2lvbl0gTG9naW4gU3VjY2Vzcyc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRlbmFudExvYWRBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1Nlc3Npb25dIFRlbmFudCBMb2FkICc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHRlbmFudDogVGVuYW50SW5mbykge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUZW5hbnRDbGVhckFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbU2Vzc2lvbl0gVGVuYW50IENsZWFyICc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEhlYWx0aEFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbU2Vzc2lvbl0gSGVhbHRoIExvYWQnO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVVc2VyU2V0dGluZ3NJblNlc3Npb25BY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1Nlc3Npb25dIFVwZGF0ZSBVc2VyIFNldHRpbmcnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1c2VyU2V0dGluZ3M6IFNwYXJrU2V0dGluZ3NEdG9bXSkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVUZW5hbnRJbmZvUHJvcHMge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1Nlc3Npb25dIFVwZGF0ZSBUZW5hbnQgSW5mbyBQcm9wcyc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHByb3BzOiBhbnkpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2V0VGVuYW50VXNlckFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbU2Vzc2lvbl0gU2V0IFRlbmFudCBVc2VyJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc3BhcmtTZXNzaW9uOiBTcGFya1Nlc3Npb24pIHsgfVxufVxuXG5leHBvcnQgY2xhc3MgTG9hZEFwcENvbmZpZ3VyYXRpb25BY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1Nlc3Npb25dIEFwcCBDb25maWd1cmF0aW9uIExvYWQnO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG59XG5cbmV4cG9ydCBjbGFzcyBMb2FkQXBwQ29uZmlndXJhdGlvbk1vYmlsZUFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbU2Vzc2lvbl0gQXBwIENvbmZpZ3VyYXRpb24gTW9iaWxlIExvYWQnO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG59XG5cbmV4cG9ydCBjbGFzcyBBdXRoZW50aWNhdGUyRkFmb3JVc2VyIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tTZXNzaW9uXSBBdXRoZW50aWNhdGUyRkFmb3JVc2VyJztcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxufVxuIl19
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9tb2R1bGVzL2F1dGgvc2Vzc2lvbi5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE1BQU0sT0FBTyxrQkFBa0I7YUFDTixTQUFJLEdBQUcsaUJBQWlCLENBQUM7SUFFaEQsWUFBbUIsUUFBZ0IsRUFBUyxRQUFnQixFQUFTLGlCQUEwQixLQUFLO1FBQWpGLGFBQVEsR0FBUixRQUFRLENBQVE7UUFBUyxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQVMsbUJBQWMsR0FBZCxjQUFjLENBQWlCO0lBQ3BHLENBQUM7O0FBR0gsTUFBTSxPQUFPLHVCQUF1QjthQUNYLFNBQUksR0FBRywwQkFBMEIsQ0FBQztJQUV6RCxZQUFtQixjQUF1QjtRQUF2QixtQkFBYyxHQUFkLGNBQWMsQ0FBUztJQUMxQyxDQUFDOztBQUdILE1BQU0sT0FBTyxZQUFZO2FBQ0EsU0FBSSxHQUFHLGtCQUFrQixDQUFDO0lBRWpELFlBQW1CLGNBQXVCLElBQUksRUFBUyx3QkFBaUMsS0FBSztRQUExRSxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFBUywwQkFBcUIsR0FBckIscUJBQXFCLENBQWlCO0lBQzdGLENBQUM7O0FBR0gsTUFBTSxPQUFPLGtCQUFrQjthQUNOLFNBQUksR0FBRyx3QkFBd0IsQ0FBQztJQUV2RCxZQUFtQixjQUF1QixJQUFJO1FBQTNCLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtJQUM5QyxDQUFDOztBQUdILE1BQU0sT0FBTyxrQkFBa0I7YUFDTixTQUFJLEdBQUcsd0JBQXdCLENBQUM7SUFDdkQ7SUFDQSxDQUFDOztBQUdILE1BQU0sT0FBTyxpQkFBaUI7YUFDTCxTQUFJLEdBQUcsdUJBQXVCLENBQUM7SUFFdEQ7SUFDQSxDQUFDOztBQUdILE1BQU0sT0FBTyxxQkFBcUI7YUFDVCxTQUFJLEdBQUcsMkJBQTJCLENBQUM7SUFFMUQ7SUFDQSxDQUFDOztBQUdILE1BQU0sT0FBTyx1QkFBdUI7YUFDWCxTQUFJLEdBQUcsNkJBQTZCLENBQUM7SUFFNUQ7SUFDQSxDQUFDOztBQUdILE1BQU0sT0FBTyxpQ0FBaUM7YUFDckIsU0FBSSxHQUFHLHFDQUFxQyxDQUFDO0lBRXBFO0lBQ0EsQ0FBQzs7QUFHSCxNQUFNLE9BQU8sY0FBYzthQUNGLFNBQUksR0FBRyxxQkFBcUIsQ0FBQztJQUVwRCxZQUFtQixTQUFpQixFQUFTLE9BQW9CO1FBQTlDLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFBUyxZQUFPLEdBQVAsT0FBTyxDQUFhO0lBQ2pFLENBQUM7O0FBR0gsTUFBTSxPQUFPLHFCQUFxQjthQUNULFNBQUksR0FBRyw2QkFBNkIsQ0FBQztJQUU1RCxZQUFtQixTQUFpQjtRQUFqQixjQUFTLEdBQVQsU0FBUyxDQUFRO0lBQ3BDLENBQUM7O0FBR0gsTUFBTSxPQUFPLGlCQUFpQjthQUNMLFNBQUksR0FBRyx1QkFBdUIsQ0FBQztJQUV0RCxZQUFtQixRQUFnQjtRQUFoQixhQUFRLEdBQVIsUUFBUSxDQUFRO0lBQ25DLENBQUM7O0FBR0gsTUFBTSxPQUFPLFlBQVk7YUFDQSxTQUFJLEdBQUcseUJBQXlCLENBQUM7SUFFeEQ7SUFDQSxDQUFDOztBQUdILE1BQU0sT0FBTyxnQkFBZ0I7YUFDSixTQUFJLEdBQUcsd0JBQXdCLENBQUM7SUFFdkQsWUFBbUIsTUFBa0I7UUFBbEIsV0FBTSxHQUFOLE1BQU0sQ0FBWTtJQUNyQyxDQUFDOztBQUdILE1BQU0sT0FBTyxpQkFBaUI7YUFDTCxTQUFJLEdBQUcseUJBQXlCLENBQUM7SUFFeEQ7SUFDQSxDQUFDOztBQUdILE1BQU0sT0FBTyxZQUFZO2FBQ0EsU0FBSSxHQUFHLHVCQUF1QixDQUFDO0lBRXREO0lBQ0EsQ0FBQzs7QUFHSCxNQUFNLE9BQU8saUNBQWlDO2FBQ3JCLFNBQUksR0FBRywrQkFBK0IsQ0FBQztJQUU5RCxZQUFtQixZQUFnQztRQUFoQyxpQkFBWSxHQUFaLFlBQVksQ0FBb0I7SUFDbkQsQ0FBQzs7QUFHSCxNQUFNLE9BQU8scUJBQXFCO2FBQ1QsU0FBSSxHQUFHLG9DQUFvQyxDQUFDO0lBRW5FLFlBQW1CLEtBQVU7UUFBVixVQUFLLEdBQUwsS0FBSyxDQUFLO0lBQzdCLENBQUM7O0FBR0gsTUFBTSxPQUFPLG1CQUFtQjthQUNQLFNBQUksR0FBRywyQkFBMkIsQ0FBQztJQUUxRCxZQUFtQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztJQUFJLENBQUM7O0FBR3BELE1BQU0sT0FBTywwQkFBMEI7YUFDZCxTQUFJLEdBQUcsa0NBQWtDLENBQUM7SUFFakUsZ0JBQWdCLENBQUM7O0FBR25CLE1BQU0sT0FBTyxvQ0FBb0M7YUFDeEIsU0FBSSxHQUFHLDZDQUE2QyxDQUFDO0lBRTVFLGdCQUFnQixDQUFDOztBQUduQixNQUFNLE9BQU8sZ0NBQWdDO2FBQ3BCLFNBQUksR0FBRyx5Q0FBeUMsQ0FBQztJQUV4RSxnQkFBZ0IsQ0FBQzs7QUFHbkIsTUFBTSxPQUFPLHNCQUFzQjthQUNWLFNBQUksR0FBRyxrQ0FBa0MsQ0FBQztJQUVqRSxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNwYXJrU2Vzc2lvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvc3Bhcmstc2Vzc2lvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU3BhcmtTZXR0aW5nc0R0byB9IGZyb20gJy4uLy4uL3NlcnZpY2UtcHJveHkvY2xvdWQtc2VydmljZS1wcm94aWVzJztcbmltcG9ydCB7IExvZ2luUmVxdWVzdCB9IGZyb20gJy4vbW9kZWwvbG9naW4tcmVxdWVzdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUmVmcmVzaEluZm8gfSBmcm9tICcuL21vZGVsL3JlZnJlc2gtaW5mby5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGVuYW50SW5mbyB9IGZyb20gJy4vbW9kZWwvdGVuYW50LWluZm8uaW50ZXJmYWNlJztcblxuZXhwb3J0IGNsYXNzIExvZ2luUmVxdWVzdEFjdGlvbiBpbXBsZW1lbnRzIExvZ2luUmVxdWVzdCB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbU2Vzc2lvbl0gTG9naW4nO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1c2VybmFtZTogc3RyaW5nLCBwdWJsaWMgcGFzc3dvcmQ6IHN0cmluZywgcHVibGljIGtlZXBNZUxvZ2dlZEluOiBib29sZWFuID0gZmFsc2UpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2V0a2VlcE1lTG9nZ2VkSW5BY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1Nlc3Npb25dIGtlZXBNZUxvZ2dlZEluJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMga2VlcE1lTG9nZ2VkSW46IGJvb2xlYW4pIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTG9nb3V0QWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tTZXNzaW9uXSBMb2dvdXQnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBsb2dvdXRBdWRpdDogYm9vbGVhbiA9IHRydWUsIHB1YmxpYyBsb2dvdXRCYWNrb2ZmaWNlQXVkaXQ6IGJvb2xlYW4gPSBmYWxzZSkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNb2JpbGVMb2dvdXRBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1Nlc3Npb25dIE1vYmlsZUxvZ291dCc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGxvZ291dEF1ZGl0OiBib29sZWFuID0gdHJ1ZSkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMb2dvdXRNb2JpbGVBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1Nlc3Npb25dIExvZ291dE1vYmlsZSc7XG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBdWRpdExvZ291dEFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbU2Vzc2lvbl0gQXVkaXRMb2dvdXQnO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBdWRpdEJhY2tvZmZpY2VBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1Nlc3Npb25dIEF1ZGl0QmFja29mZmljZSc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEF1ZGl0TG9nb3V0TW9iaWxlQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tTZXNzaW9uXSBBdWRpdExvZ291dE1vYmlsZSc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEluaXRTZXNzaW9uRnJvbUxvY2FsU3RvcmFnZUFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbU2Vzc2lvbl0gTG9hZCBTZXNzaW9uIEZyb20gU3RvcmFnZSc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNldFN0YXRlQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tTZXNzaW9uXSBTZXQgU3RhdGUnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBhdXRoVG9rZW46IHN0cmluZywgcHVibGljIHJlZnJlc2g6IFJlZnJlc2hJbmZvKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFVwZGF0ZUF1dGhUb2tlbkFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbU2Vzc2lvbl0gVXBkYXRlIEF1dGggVG9rZW4nO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBhdXRoVG9rZW46IHN0cmluZykge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTZXRVc2VyTmFtZUFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbU2Vzc2lvbl0gU2V0VXNlck5hbWUnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1c2VyTmFtZTogc3RyaW5nKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIExvZ2luU3VjY2VzcyB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbU2Vzc2lvbl0gTG9naW4gU3VjY2Vzcyc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRlbmFudExvYWRBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1Nlc3Npb25dIFRlbmFudCBMb2FkICc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHRlbmFudDogVGVuYW50SW5mbykge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUZW5hbnRDbGVhckFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbU2Vzc2lvbl0gVGVuYW50IENsZWFyICc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEhlYWx0aEFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbU2Vzc2lvbl0gSGVhbHRoIExvYWQnO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVVc2VyU2V0dGluZ3NJblNlc3Npb25BY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1Nlc3Npb25dIFVwZGF0ZSBVc2VyIFNldHRpbmcnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1c2VyU2V0dGluZ3M6IFNwYXJrU2V0dGluZ3NEdG9bXSkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVUZW5hbnRJbmZvUHJvcHMge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1Nlc3Npb25dIFVwZGF0ZSBUZW5hbnQgSW5mbyBQcm9wcyc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHByb3BzOiBhbnkpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2V0VGVuYW50VXNlckFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbU2Vzc2lvbl0gU2V0IFRlbmFudCBVc2VyJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc3BhcmtTZXNzaW9uOiBTcGFya1Nlc3Npb24pIHsgfVxufVxuXG5leHBvcnQgY2xhc3MgTG9hZEFwcENvbmZpZ3VyYXRpb25BY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1Nlc3Npb25dIEFwcCBDb25maWd1cmF0aW9uIExvYWQnO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG59XG5cbmV4cG9ydCBjbGFzcyBMb2FkQmFja29mZmljZUFwcENvbmZpZ3VyYXRpb25BY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1Nlc3Npb25dIEJhY2tvZmZpY2UgQXBwIENvbmZpZ3VyYXRpb24gTG9hZCc7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cbn1cblxuZXhwb3J0IGNsYXNzIExvYWRBcHBDb25maWd1cmF0aW9uTW9iaWxlQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tTZXNzaW9uXSBBcHAgQ29uZmlndXJhdGlvbiBNb2JpbGUgTG9hZCc7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cbn1cblxuZXhwb3J0IGNsYXNzIEF1dGhlbnRpY2F0ZTJGQWZvclVzZXIge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1Nlc3Npb25dIEF1dGhlbnRpY2F0ZTJGQWZvclVzZXInO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG59XG4iXX0=
@@ -14,32 +14,34 @@ import { SingleSignOnProvider, SparkSettingsDto } from '../../service-proxy/clou
14
14
  import { parseApiErrorMessage } from '../../utils/api-helper.util';
15
15
  import { getNavigationRoute } from '../../utils/route.util';
16
16
  import { UnloadParkingLotAction } from '../facility/facility.actions';
17
- import { AuditLogoutAction, AuditLogoutMobileAction, Authenticate2FAforUser, HealthAction, InitSessionFromLocalStorageAction, LoadAppConfigurationAction, LoadAppConfigurationMobileAction, LoginRequestAction, LogoutAction, LogoutMobileAction, MobileLogoutAction, SetStateAction, SetTenantUserAction, SetUserNameAction, TenantClearAction, TenantLoadAction, UpdateAuthTokenAction, UpdateTenantInfoProps, UpdateUserSettingsInSessionAction } from './session.actions';
17
+ import { AuditBackofficeAction, AuditLogoutAction, AuditLogoutMobileAction, Authenticate2FAforUser, HealthAction, InitSessionFromLocalStorageAction, LoadAppConfigurationAction, LoadAppConfigurationMobileAction, LoadBackofficeAppConfigurationAction, LoginRequestAction, LogoutAction, LogoutMobileAction, MobileLogoutAction, SetStateAction, SetTenantUserAction, SetUserNameAction, TenantClearAction, TenantLoadAction, UpdateAuthTokenAction, UpdateTenantInfoProps, UpdateUserSettingsInSessionAction } from './session.actions';
18
18
  import * as i0 from "@angular/core";
19
19
  import * as i1 from "../../services/session-storage.service";
20
20
  import * as i2 from "../../services/local-storage.service";
21
21
  import * as i3 from "../../services/app-config.service";
22
22
  import * as i4 from "./auth.service";
23
23
  import * as i5 from "../../service-proxy/cloud-service-proxies";
24
- import * as i6 from "@angular/router";
25
- import * as i7 from "../../services/http-cancel.service";
26
- import * as i8 from "@ngx-translate/core";
27
- import * as i9 from "@azure/msal-angular";
28
- import * as i10 from "../../services/openid-auth.service";
29
- import * as i11 from "../../components/message-bar/message-bar.service";
30
- import * as i12 from "../../service-proxy/identity-service-proxies";
24
+ import * as i6 from "./../../service-proxy/cloud-service-proxies";
25
+ import * as i7 from "@angular/router";
26
+ import * as i8 from "../../services/http-cancel.service";
27
+ import * as i9 from "@ngx-translate/core";
28
+ import * as i10 from "@azure/msal-angular";
29
+ import * as i11 from "../../services/openid-auth.service";
30
+ import * as i12 from "../../components/message-bar/message-bar.service";
31
+ import * as i13 from "../../service-proxy/identity-service-proxies";
31
32
  const defaultSessionState = {
32
33
  sparkSessions: {},
33
34
  application: { version: null, releaseDate: null, features: {} },
34
35
  };
35
36
  let SessionState = class SessionState {
36
37
  static { SessionState_1 = this; }
37
- constructor(sessionStorageService, localStorageService, appConfigService, authService, configurationServiceProxy, router, httpCancelService, translateService, msalService, usersServiceProxy, openIdAuthService, messageBarService, mobileServiceProxy, mobileServiceProxyIdentity) {
38
+ constructor(sessionStorageService, localStorageService, appConfigService, authService, configurationServiceProxy, backofficeServiceProxy, router, httpCancelService, translateService, msalService, usersServiceProxy, openIdAuthService, messageBarService, mobileServiceProxy, mobileServiceProxyIdentity) {
38
39
  this.sessionStorageService = sessionStorageService;
39
40
  this.localStorageService = localStorageService;
40
41
  this.appConfigService = appConfigService;
41
42
  this.authService = authService;
42
43
  this.configurationServiceProxy = configurationServiceProxy;
44
+ this.backofficeServiceProxy = backofficeServiceProxy;
43
45
  this.router = router;
44
46
  this.httpCancelService = httpCancelService;
45
47
  this.translateService = translateService;
@@ -174,6 +176,15 @@ let SessionState = class SessionState {
174
176
  }
175
177
  return this.usersServiceProxy.auditLogout().pipe(tap(() => { }));
176
178
  }
179
+ onAuditBackofficeAction(ctx, action) {
180
+ const sparkSessions = this.getSparkSessions();
181
+ const tenantName = sessionStorage.getItem(TENANT_KEY);
182
+ const tenantInfo = ctx.getState().sparkSessions[tenantName].tenant;
183
+ if (this.isTenantUndefined(tenantInfo, sparkSessions[tenantName])) {
184
+ return of(null); // Handle the case where tenant or sparkSessions are undefined
185
+ }
186
+ return this.backofficeServiceProxy.backofficeAuditLogout().pipe(tap(() => { }));
187
+ }
177
188
  AuditLogoutMobileAction(ctx, action) {
178
189
  const sparkSessions = this.getSparkSessions();
179
190
  const tenantName = sessionStorage.getItem(TENANT_KEY);
@@ -222,7 +233,7 @@ let SessionState = class SessionState {
222
233
  }));
223
234
  }));
224
235
  }
225
- onLogout(ctx, { logoutAudit }) {
236
+ onLogout(ctx, { logoutAudit, logoutBackofficeAudit }) {
226
237
  const appType = this.appConfigService.getConfig().appType;
227
238
  this.httpCancelService.cancelPendingRequests();
228
239
  if (appType === AppType.Mobile) {
@@ -235,6 +246,9 @@ let SessionState = class SessionState {
235
246
  if (logoutAudit) {
236
247
  ctx.dispatch(new AuditLogoutAction());
237
248
  }
249
+ if (logoutBackofficeAudit) {
250
+ ctx.dispatch(new AuditBackofficeAction());
251
+ }
238
252
  return this.router.events.pipe(// observe all route events
239
253
  filter(e => e instanceof NavigationEnd && e.url.includes('/account/login')), // filter only NavigationEnd events
240
254
  distinctUntilChanged(), first(), switchMap(() => {
@@ -332,6 +346,16 @@ let SessionState = class SessionState {
332
346
  this.sessionStorageService.setAuthSession(sparkSession?.authToken, sparkSession?.refresh);
333
347
  }
334
348
  }
349
+ onBackofficeAppConfigurationAction(ctx) {
350
+ const appConfiguration$ = this.backofficeServiceProxy.getBackofficeAppConfiguration();
351
+ return appConfiguration$.pipe(tap(appConfiguration => {
352
+ const sparkSessions = this.getSparkSessions();
353
+ if (this.sessionStorageService.tenant) {
354
+ sparkSessions[this.sessionStorageService.tenant].appConfiguration = appConfiguration.data;
355
+ this.setSparkSessions(ctx, sparkSessions);
356
+ }
357
+ }));
358
+ }
335
359
  onAppConfigurationAction(ctx) {
336
360
  const appConfiguration$ = this.configurationServiceProxy.getAppConfiguration();
337
361
  return appConfiguration$.pipe(tap(appConfiguration => {
@@ -352,7 +376,7 @@ let SessionState = class SessionState {
352
376
  }
353
377
  }));
354
378
  }
355
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SessionState, deps: [{ token: i1.SessionStorageService }, { token: i2.LocalStorageService }, { token: i3.AppConfigService }, { token: i4.AuthService }, { token: i5.ConfigurationServiceProxy }, { token: i6.Router }, { token: i7.HttpCancelService }, { token: i8.TranslateService }, { token: i9.MsalService }, { token: i5.UsersServiceProxy }, { token: i10.OpenIdAuthService }, { token: i11.MessageBarService }, { token: i5.MobileServiceProxy }, { token: i12.MobileServiceProxyIdentity }], target: i0.ɵɵFactoryTarget.Injectable }); }
379
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SessionState, deps: [{ token: i1.SessionStorageService }, { token: i2.LocalStorageService }, { token: i3.AppConfigService }, { token: i4.AuthService }, { token: i5.ConfigurationServiceProxy }, { token: i6.BackofficeServiceProxy }, { token: i7.Router }, { token: i8.HttpCancelService }, { token: i9.TranslateService }, { token: i10.MsalService }, { token: i5.UsersServiceProxy }, { token: i11.OpenIdAuthService }, { token: i12.MessageBarService }, { token: i5.MobileServiceProxy }, { token: i13.MobileServiceProxyIdentity }], target: i0.ɵɵFactoryTarget.Injectable }); }
356
380
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SessionState }); }
357
381
  };
358
382
  __decorate([
@@ -373,6 +397,9 @@ __decorate([
373
397
  __decorate([
374
398
  Action(AuditLogoutAction)
375
399
  ], SessionState.prototype, "AuditLogoutAction", null);
400
+ __decorate([
401
+ Action(AuditBackofficeAction)
402
+ ], SessionState.prototype, "onAuditBackofficeAction", null);
376
403
  __decorate([
377
404
  Action(AuditLogoutMobileAction)
378
405
  ], SessionState.prototype, "AuditLogoutMobileAction", null);
@@ -403,6 +430,9 @@ __decorate([
403
430
  __decorate([
404
431
  Action(InitSessionFromLocalStorageAction)
405
432
  ], SessionState.prototype, "onLoadSessionFromLocalStorageAction", null);
433
+ __decorate([
434
+ Action(LoadBackofficeAppConfigurationAction)
435
+ ], SessionState.prototype, "onBackofficeAppConfigurationAction", null);
406
436
  __decorate([
407
437
  Action(LoadAppConfigurationAction)
408
438
  ], SessionState.prototype, "onAppConfigurationAction", null);
@@ -454,5 +484,5 @@ SessionState = SessionState_1 = __decorate([
454
484
  export { SessionState };
455
485
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SessionState, decorators: [{
456
486
  type: Injectable
457
- }], ctorParameters: () => [{ type: i1.SessionStorageService }, { type: i2.LocalStorageService }, { type: i3.AppConfigService }, { type: i4.AuthService }, { type: i5.ConfigurationServiceProxy }, { type: i6.Router }, { type: i7.HttpCancelService }, { type: i8.TranslateService }, { type: i9.MsalService }, { type: i5.UsersServiceProxy }, { type: i10.OpenIdAuthService }, { type: i11.MessageBarService }, { type: i5.MobileServiceProxy }, { type: i12.MobileServiceProxyIdentity }], propDecorators: { onLogin: [], onSetTenantUserAction: [], onUpdateAuthTokenAction: [], setSessionState: [], SetUserNameAction: [], AuditLogoutAction: [], AuditLogoutMobileAction: [], onMobileLogoutAction: [], onLogout: [], onTenantLoadAction: [], onTenantClearAction: [], onHealthActionAction: [], onUpdateUserSettings: [], onUpdateTenantInfoProps: [], onAuthenticate2FAforUser: [], onLoadSessionFromLocalStorageAction: [], onAppConfigurationAction: [], onLoadAppConfigurationMobileAction: [] } });
458
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvbW9kdWxlcy9hdXRoL3Nlc3Npb24uc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUl4RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFnQixNQUFNLGFBQWEsQ0FBQztBQUNwRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUU1RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXBELE9BQU8sRUFBbUUsb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQXFCLE1BQU0sMkNBQTJDLENBQUM7QUFPdkwsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOEJB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SVY7QUFHYTtJQURiLFFBQVEsRUFBRTtvREFJVjtBQUdhO0lBRGIsUUFBUSxFQUFFOytDQUdWO0FBR2E7SUFEYixRQUFRLEVBQUU7a0NBSVY7QUFHYTtJQURiLFFBQVEsRUFBRTt3Q0FJVjtBQUdhO0lBRGIsUUFBUSxFQUFFO29DQUlWO0FBR2E7SUFEYixRQUFRLEVBQUU7eUNBSVY7QUFHYTtJQURiLFFBQVEsRUFBRTswQ0FJVjtBQUdhO0lBRGIsUUFBUSxFQUFFO3NDQUlWO0FBR2E7SUFEYixRQUFRLEVBQUU7NENBVVY7QUFHYTtJQURiLFFBQVEsRUFBRTswQ0FJVjtBQUdhO0lBRGIsUUFBUSxFQUFFO3dDQUlWO0FBN0ZVLFlBQVk7SUFMeEIsS0FBSyxDQUFvQjtRQUN4QixJQUFJLEVBQUUsU0FBUztRQUNmLFFBQVEsRUFBRSxtQkFBbUI7S0FDOUIsQ0FBQztHQUVXLFlBQVksQ0FzWnhCOzs0RkF0WlksWUFBWTtrQkFEeEIsVUFBVTt3ZkFpR0YsT0FBTyxNQWFQLHFCQUFxQixNQTJCckIsdUJBQXVCLE1BTXZCLGVBQWUsTUFlZixpQkFBaUIsTUFRakIsaUJBQWlCLE1BWWpCLHVCQUF1QixNQVl2QixvQkFBb0IsTUE4Q3BCLFFBQVEsTUE2RFIsa0JBQWtCLE1BYWxCLG1CQUFtQixNQWdCbkIsb0JBQW9CLE1BU3BCLG9CQUFvQixNQU9wQix1QkFBdUIsTUFPdkIsd0JBQXdCLE1BU3hCLG1DQUFtQyxNQWlCbkMsd0JBQXdCLE1BWXhCLGtDQUFrQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBNc2FsU2VydmljZSB9IGZyb20gJ0BhenVyZS9tc2FsLWFuZ3VsYXInO1xuaW1wb3J0IHsgQ2xlYXJDYWNoZVJlcXVlc3QgfSBmcm9tICdAYXp1cmUvbXNhbC1icm93c2VyJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRlIH0gZnJvbSAnQG5neHMvcm91dGVyLXBsdWdpbic7XG5pbXBvcnQgeyBBY3Rpb24sIFNlbGVjdG9yLCBTdGF0ZSwgU3RhdGVDb250ZXh0IH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgZmlyc3QsIG9mLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWVzc2FnZUJhclBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9tZXNzYWdlLWJhci9tZXNzYWdlLWJhci1wb3NpdGlvbi5lbnVtJztcbmltcG9ydCB7IE1lc3NhZ2VCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9tZXNzYWdlLWJhci9tZXNzYWdlLWJhci5zZXJ2aWNlJztcbmltcG9ydCB7IExPQ0FMX0VOR0xJU0hfTEFOR1VBR0UgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvZ2xvYmFsLWNvbnN0YW50cyc7XG5pbXBvcnQgeyBFTlZJUk9OTUVOVCwgTE9HR0VEX1RFTkFOVF9LRVksIFNFU1NJT04sIFRFTkFOVF9LRVkgfSBmcm9tICcuLi8uLi9jb25zdGFudHMva2V5cy1jb25zdGFudHMnO1xuaW1wb3J0IHsgVkVSU0lPTl9WMSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy92ZXJzaW9uLWNvbnN0YW50cyc7XG5pbXBvcnQgeyBBcHBUeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMvYXBwLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBTcGFya1Nlc3Npb24gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3NwYXJrLXNlc3Npb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25TZXJ2aWNlUHJveHksIE1vYmlsZVNlcnZpY2VQcm94eSwgU2V0dGluZ3NDYXRlZ29yeSwgU2luZ2xlU2lnbk9uUHJvdmlkZXIsIFNwYXJrU2V0dGluZ3NEdG8sIFVzZXJzU2VydmljZVByb3h5IH0gZnJvbSAnLi4vLi4vc2VydmljZS1wcm94eS9jbG91ZC1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgTW9iaWxlU2VydmljZVByb3h5SWRlbnRpdHkgfSBmcm9tICcuLi8uLi9zZXJ2aWNlLXByb3h5L2lkZW50aXR5LXNlcnZpY2UtcHJveGllcyc7XG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXBwLWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IEh0dHBDYW5jZWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaHR0cC1jYW5jZWwuc2VydmljZSc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IE9wZW5JZEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvb3BlbmlkLWF1dGguc2VydmljZSc7XG5pbXBvcnQgeyBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zZXNzaW9uLXN0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBwYXJzZUFwaUVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uL3V0aWxzL2FwaS1oZWxwZXIudXRpbCc7XG5pbXBvcnQgeyBTdHJpbmdNYXAgfSBmcm9tICcuLi8uLi91dGlscy9sYW5nLnV0aWwnO1xuaW1wb3J0IHsgZ2V0TmF2aWdhdGlvblJvdXRlIH0gZnJvbSAnLi4vLi4vdXRpbHMvcm91dGUudXRpbCc7XG5pbXBvcnQgeyBVbmxvYWRQYXJraW5nTG90QWN0aW9uIH0gZnJvbSAnLi4vZmFjaWxpdHkvZmFjaWxpdHkuYWN0aW9ucyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uSW5mbyB9IGZyb20gJy4vbW9kZWwvYXBwbGljYXRpb24taW5mby5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGVuYW50SW5mbyB9IGZyb20gJy4vbW9kZWwvdGVuYW50LWluZm8uaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIEF1ZGl0TG9nb3V0QWN0aW9uLCBBdWRpdExvZ291dE1vYmlsZUFjdGlvbiwgQXV0aGVudGljYXRlMkZBZm9yVXNlciwgSGVhbHRoQWN0aW9uLCBJbml0U2Vzc2lvbkZyb21Mb2NhbFN0b3JhZ2VBY3Rpb24sIExvYWRBcHBDb25maWd1cmF0aW9uQWN0aW9uLFxuICBMb2FkQXBwQ29uZmlndXJhdGlvbk1vYmlsZUFjdGlvbixcbiAgTG9naW5SZXF1ZXN0QWN0aW9uLCBMb2dvdXRBY3Rpb24sIExvZ291dE1vYmlsZUFjdGlvbiwgTW9iaWxlTG9nb3V0QWN0aW9uLCBTZXRTdGF0ZUFjdGlvbiwgU2V0VGVuYW50VXNlckFjdGlvbiwgU2V0VXNlck5hbWVBY3Rpb24sXG4gIFRlbmFudENsZWFyQWN0aW9uLCBUZW5hbnRMb2FkQWN0aW9uLCBVcGRhdGVBdXRoVG9rZW5BY3Rpb24sIFVwZGF0ZVRlbmFudEluZm9Qcm9wcywgVXBkYXRlVXNlclNldHRpbmdzSW5TZXNzaW9uQWN0aW9uXG59IGZyb20gJy4vc2Vzc2lvbi5hY3Rpb25zJztcblxuZXhwb3J0IGludGVyZmFjZSBTZXNzaW9uU3RhdGVNb2RlbCB7XG4gIHNwYXJrU2Vzc2lvbnM6IFN0cmluZ01hcDxTcGFya1Nlc3Npb24+O1xuICBhcHBsaWNhdGlvbj86IEFwcGxpY2F0aW9uSW5mbztcbiAgc2VydmVyRW52aXJvbm1lbnRNb2RlPzogc3RyaW5nO1xufVxuXG5jb25zdCBkZWZhdWx0U2Vzc2lvblN0YXRlID0ge1xuICBzcGFya1Nlc3Npb25zOiB7fSxcbiAgYXBwbGljYXRpb246IHsgdmVyc2lvbjogbnVsbCwgcmVsZWFzZURhdGU6IG51bGwsIGZlYXR1cmVzOiB7fSB9LFxufTtcblxuQFN0YXRlPFNlc3Npb25TdGF0ZU1vZGVsPih7XG4gIG5hbWU6ICdzZXNzaW9uJyxcbiAgZGVmYXVsdHM6IGRlZmF1bHRTZXNzaW9uU3RhdGUsXG59KVxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNlc3Npb25TdGF0ZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBzZXNzaW9uU3RvcmFnZVNlcnZpY2U6IFNlc3Npb25TdG9yYWdlU2VydmljZSxcbiAgICBwcml2YXRlIGxvY2FsU3RvcmFnZVNlcnZpY2U6IExvY2FsU3RvcmFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcHBDb25maWdTZXJ2aWNlOiBBcHBDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlndXJhdGlvblNlcnZpY2VQcm94eTogQ29uZmlndXJhdGlvblNlcnZpY2VQcm94eSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgaHR0cENhbmNlbFNlcnZpY2U6IEh0dHBDYW5jZWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIG1zYWxTZXJ2aWNlOiBNc2FsU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJzU2VydmljZVByb3h5OiBVc2Vyc1NlcnZpY2VQcm94eSxcbiAgICBwcml2YXRlIG9wZW5JZEF1dGhTZXJ2aWNlOiBPcGVuSWRBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIG1lc3NhZ2VCYXJTZXJ2aWNlOiBNZXNzYWdlQmFyU2VydmljZSxcbiAgICBwcml2YXRlIG1vYmlsZVNlcnZpY2VQcm94eTogTW9iaWxlU2VydmljZVByb3h5LFxuICAgIHByaXZhdGUgbW9iaWxlU2VydmljZVByb3h5SWRlbnRpdHk6IE1vYmlsZVNlcnZpY2VQcm94eUlkZW50aXR5KSB7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGlzVXNlckF1dGhlbnRpY2F0ZWRXaXRoU1NPKHN0YXRlOiBTZXNzaW9uU3RhdGVNb2RlbCkge1xuICAgIGNvbnN0IHRlbmFudE5hbWUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFRFTkFOVF9LRVkpO1xuICAgIHJldHVybiBzdGF0ZS5zcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdPy51c2VyPy5zc29BdXRoZW50aWNhdGVkO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBpc1VzZXJBdXRoZW50aWNhdGVkV2l0aDJGQShzdGF0ZTogU2Vzc2lvblN0YXRlTW9kZWwpIHtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShURU5BTlRfS0VZKTtcbiAgICByZXR1cm4gc3RhdGUuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXT8udXNlci5hdXRoZW50aWNhdGVkMkZBO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBzZXJ2ZXJFbnZpcm9ubWVudE1vZGUoc3RhdGU6IFNlc3Npb25TdGF0ZU1vZGVsKSB7XG4gICAgcmV0dXJuIHN0YXRlLnNlcnZlckVudmlyb25tZW50TW9kZTtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgdXNlckluZm8oc3RhdGU6IFNlc3Npb25TdGF0ZU1vZGVsKSB7XG4gICAgY29uc3QgdGVuYW50TmFtZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oVEVOQU5UX0tFWSk7XG4gICAgcmV0dXJuIHN0YXRlLnNwYXJrU2Vzc2lvbnNbdGVuYW50TmFtZV0/LnVzZXI7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGxvZ2dlZFVzZXJJbmZvKHN0YXRlOiBTZXNzaW9uU3RhdGVNb2RlbCkge1xuICAgIGNvbnN0IHRlbmFudE5hbWUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKExPR0dFRF9URU5BTlRfS0VZKTtcbiAgICByZXR1cm4gc3RhdGUuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXT8udXNlcjtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgdGVuYW50SW5mbyhzdGF0ZTogU2Vzc2lvblN0YXRlTW9kZWwpIHtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShURU5BTlRfS0VZKTtcbiAgICByZXR1cm4gc3RhdGUuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXT8udGVuYW50O1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyB0aGlyZFBhcnR5VG9rZW4oc3RhdGU6IFNlc3Npb25TdGF0ZU1vZGVsKSB7XG4gICAgY29uc3QgdGVuYW50TmFtZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oVEVOQU5UX0tFWSk7XG4gICAgcmV0dXJuIHN0YXRlLnNwYXJrU2Vzc2lvbnNbdGVuYW50TmFtZV0/LnRoaXJkUGFydHlUb2tlbjtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgbG9nZ2VkVGVuYW50SW5mbyhzdGF0ZTogU2Vzc2lvblN0YXRlTW9kZWwpIHtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShMT0dHRURfVEVOQU5UX0tFWSk7XG4gICAgcmV0dXJuIHN0YXRlLnNwYXJrU2Vzc2lvbnNbdGVuYW50TmFtZV0/LnRlbmFudDtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgdXNlclNldHRpbmdzKHN0YXRlOiBTZXNzaW9uU3RhdGVNb2RlbCk6IFNwYXJrU2V0dGluZ3NEdG9bXSB7XG4gICAgY29uc3QgdGVuYW50TmFtZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oVEVOQU5UX0tFWSk7XG4gICAgcmV0dXJuIHN0YXRlLnNwYXJrU2Vzc2lvbnNbdGVuYW50TmFtZV0/LnVzZXIuc2V0dGluZ3MgYXMgU3BhcmtTZXR0aW5nc0R0b1tdO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBtYXBwZWRVc2VyU2V0dGluZ3Moc3RhdGU6IFNlc3Npb25TdGF0ZU1vZGVsKSB7XG4gICAgY29uc3QgdGVuYW50TmFtZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oVEVOQU5UX0tFWSk7XG4gICAgcmV0dXJuIHN0YXRlLnNwYXJrU2Vzc2lvbnNbdGVuYW50TmFtZV0/LnVzZXIuc2V0dGluZ3MucmVkdWNlKChzZXR0aW5nc01hcCwgdXNlclNldHRpbmcpID0+XG4gICAgICBzZXR0aW5nc01hcC5zZXQoXG4gICAgICAgIHVzZXJTZXR0aW5nLmNhdGVnb3J5LFxuICAgICAgICB0eXBlb2YgdXNlclNldHRpbmcuc2V0dGluZ3NKc29uID09PSAnc3RyaW5nJ1xuICAgICAgICAgID8gSlNPTi5wYXJzZSh1c2VyU2V0dGluZy5zZXR0aW5nc0pzb24pXG4gICAgICAgICAgOiB1c2VyU2V0dGluZy5zZXR0aW5nc0pzb25cbiAgICAgICksIG5ldyBNYXA8U2V0dGluZ3NDYXRlZ29yeSwgYW55PigpKTtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgYXBwQ29uZmlndXJhdGlvbihzdGF0ZTogU2Vzc2lvblN0YXRlTW9kZWwpIHtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShMT0dHRURfVEVOQU5UX0tFWSk7XG4gICAgcmV0dXJuIHN0YXRlLnNwYXJrU2Vzc2lvbnNbdGVuYW50TmFtZV0/LmFwcENvbmZpZ3VyYXRpb247XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGtlZXBNZUxvZ2dlZEluKHN0YXRlOiBTZXNzaW9uU3RhdGVNb2RlbCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHRlbmFudE5hbWUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFRFTkFOVF9LRVkpO1xuICAgIHJldHVybiBzdGF0ZS5zcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdPy51c2VyLmtlZXBNZUxvZ2dlZEluID8/IGZhbHNlO1xuICB9XG5cbiAgQEFjdGlvbihMb2dpblJlcXVlc3RBY3Rpb24pXG4gIHB1YmxpYyBvbkxvZ2luKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPiwgYWN0aW9uOiBMb2dpblJlcXVlc3RBY3Rpb24pIHtcbiAgICByZXR1cm4gdGhpcy5hdXRoU2VydmljZS5sb2dpbihhY3Rpb24pLnBpcGUodGFwKHtcbiAgICAgIG5leHQ6IHNwYXJrU2Vzc2lvbiA9PiB7XG4gICAgICAgIHRoaXMuU2V0VGVuYW50VXNlckFjdGlvbihjdHgsIHNwYXJrU2Vzc2lvbik7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IGUgPT4ge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gcGFyc2VBcGlFcnJvck1lc3NhZ2UoZSk7XG4gICAgICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2UuZXJyb3IodGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQobWVzc2FnZSksIHsgcG9zaXRpb246IE1lc3NhZ2VCYXJQb3NpdGlvbi5TdGF0aWMgfSk7XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihTZXRUZW5hbnRVc2VyQWN0aW9uKVxuICBwdWJsaWMgb25TZXRUZW5hbnRVc2VyQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPiwgeyBzcGFya1Nlc3Npb24gfTogU2V0VGVuYW50VXNlckFjdGlvbikge1xuICAgIHRoaXMuU2V0VGVuYW50VXNlckFjdGlvbihjdHgsIHNwYXJrU2Vzc2lvbik7XG4gIH1cblxuICBwcml2YXRlIFNldFRlbmFudFVzZXJBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCBzcGFya1Nlc3Npb246IFNwYXJrU2Vzc2lvbikge1xuICAgIGNvbnN0IHNwYXJrU2Vzc2lvbnMgPSB0aGlzLmdldFNwYXJrU2Vzc2lvbnMoKTtcbiAgICBjb25zdCB7IHVzZXIsIGF1dGhUb2tlbiwgcmVmcmVzaCwgdGhpcmRQYXJ0eVRva2VuIH0gPSBzcGFya1Nlc3Npb247XG4gICAgdXNlci5zZXR0aW5ncyA9IHVzZXIuc2V0dGluZ3MubWFwKHMgPT4ge1xuICAgICAgcmV0dXJuIG5ldyBTcGFya1NldHRpbmdzRHRvKHtcbiAgICAgICAgY2F0ZWdvcnk6IHMuY2F0ZWdvcnksXG4gICAgICAgIHNldHRpbmdzSnNvbjogSlNPTi5wYXJzZShzLnNldHRpbmdzSnNvbilcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaWYgKCFzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0pIHtcbiAgICAgIHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XSA9IHsgdXNlciwgYXV0aFRva2VuLCByZWZyZXNoLCB0ZW5hbnQ6IG51bGwsIHRoaXJkUGFydHlUb2tlbiB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0udXNlciA9IHVzZXI7XG4gICAgICBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0uYXV0aFRva2VuID0gYXV0aFRva2VuO1xuICAgICAgc3BhcmtTZXNzaW9uc1t0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnRdLnJlZnJlc2ggPSByZWZyZXNoO1xuICAgICAgc3BhcmtTZXNzaW9uc1t0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnRdLnRoaXJkUGFydHlUb2tlbiA9IHRoaXJkUGFydHlUb2tlbjtcbiAgICB9XG5cbiAgICB0aGlzLnNldFNwYXJrU2Vzc2lvbnMoY3R4LCBzcGFya1Nlc3Npb25zKTtcbiAgfVxuXG4gIEBBY3Rpb24oVXBkYXRlQXV0aFRva2VuQWN0aW9uKVxuICBwdWJsaWMgb25VcGRhdGVBdXRoVG9rZW5BY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCBhY3Rpb246IFVwZGF0ZUF1dGhUb2tlbkFjdGlvbikge1xuICAgIGNvbnN0IHNwYXJrU2Vzc2lvbnMgPSB0aGlzLmdldFNwYXJrU2Vzc2lvbnMoKTtcbiAgICBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0uYXV0aFRva2VuID0gYWN0aW9uLmF1dGhUb2tlbjtcbiAgfVxuXG4gIEBBY3Rpb24oU2V0U3RhdGVBY3Rpb24pXG4gIHB1YmxpYyBzZXRTZXNzaW9uU3RhdGUoY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCBhY3Rpb246IFNldFN0YXRlQWN0aW9uKSB7XG4gICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgIHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XS5hdXRoVG9rZW4gPSBhY3Rpb24uYXV0aFRva2VuO1xuICAgIHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XS5yZWZyZXNoID0gYWN0aW9uLnJlZnJlc2g7XG5cbiAgICBjb25zdCBhcHBsaWNhdGlvbjogQXBwbGljYXRpb25JbmZvID0ge1xuICAgICAgdmVyc2lvbjogdGhpcy5hcHBDb25maWdTZXJ2aWNlLmdldENvbmZpZygpLnBhY2thZ2VJbmZvLnZlcnNpb24sXG4gICAgICByZWxlYXNlRGF0ZTogbnVsbCxcbiAgICAgIGZlYXR1cmVzOiB7fSxcbiAgICB9O1xuICAgIGN0eC5wYXRjaFN0YXRlKHsgYXBwbGljYXRpb24gfSk7XG4gICAgdGhpcy5zZXRTcGFya1Nlc3Npb25zKGN0eCwgc3BhcmtTZXNzaW9ucyk7XG4gIH1cblxuICBAQWN0aW9uKFNldFVzZXJOYW1lQWN0aW9uKVxuICBwdWJsaWMgU2V0VXNlck5hbWVBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCBhY3Rpb246IFNldFVzZXJOYW1lQWN0aW9uKSB7XG4gICAgY29uc3QgdGVuYW50TmFtZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oVEVOQU5UX0tFWSk7XG4gICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgIHNwYXJrU2Vzc2lvbnNbdGVuYW50TmFtZV0udXNlci5kaXNwbGF5TmFtZSA9IGFjdGlvbi51c2VyTmFtZTtcbiAgICB0aGlzLnNldFNwYXJrU2Vzc2lvbnMoY3R4LCBzcGFya1Nlc3Npb25zKTtcbiAgfVxuXG4gIEBBY3Rpb24oQXVkaXRMb2dvdXRBY3Rpb24pXG4gIHB1YmxpYyBBdWRpdExvZ291dEFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIGFjdGlvbjogQXVkaXRMb2dvdXRBY3Rpb24pIHtcbiAgICBjb25zdCBzcGFya1Nlc3Npb25zID0gdGhpcy5nZXRTcGFya1Nlc3Npb25zKCk7XG4gICAgY29uc3QgdGVuYW50TmFtZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oVEVOQU5UX0tFWSk7XG4gICAgY29uc3QgdGVuYW50SW5mbyA9IGN0eC5nZXRTdGF0ZSgpLnNwYXJrU2Vzc2lvbnNbdGVuYW50TmFtZV0udGVuYW50O1xuICAgIGlmICh0aGlzLmlzVGVuYW50VW5kZWZpbmVkKHRlbmFudEluZm8sIHNwYXJrU2Vzc2lvbnNbdGVuYW50TmFtZV0pKSB7XG4gICAgICByZXR1cm4gb2YobnVsbCk7IC8vIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0ZW5hbnQgb3Igc3BhcmtTZXNzaW9ucyBhcmUgdW5kZWZpbmVkXG4gICAgfVxuICAgIHJldHVybiB0aGlzLnVzZXJzU2VydmljZVByb3h5LmF1ZGl0TG9nb3V0KCkucGlwZShcbiAgICAgIHRhcCgoKSA9PiB7IH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oQXVkaXRMb2dvdXRNb2JpbGVBY3Rpb24pXG4gIHB1YmxpYyBBdWRpdExvZ291dE1vYmlsZUFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIGFjdGlvbjogQXVkaXRMb2dvdXRNb2JpbGVBY3Rpb24pIHtcbiAgICBjb25zdCBzcGFya1Nlc3Npb25zID0gdGhpcy5nZXRTcGFya1Nlc3Npb25zKCk7XG4gICAgY29uc3QgdGVuYW50TmFtZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oVEVOQU5UX0tFWSk7XG4gICAgY29uc3QgdGVuYW50SW5mbyA9IGN0eC5nZXRTdGF0ZSgpLnNwYXJrU2Vzc2lvbnNbdGVuYW50TmFtZV0udGVuYW50O1xuICAgIGlmICh0aGlzLmlzVGVuYW50VW5kZWZpbmVkKHRlbmFudEluZm8sIHNwYXJrU2Vzc2lvbnNbdGVuYW50TmFtZV0pKSB7XG4gICAgICByZXR1cm4gb2YobnVsbCk7IC8vIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0ZW5hbnQgb3Igc3BhcmtTZXNzaW9ucyBhcmUgdW5kZWZpbmVkXG4gICAgfVxuICAgIHJldHVybiB0aGlzLm1vYmlsZVNlcnZpY2VQcm94eS5tb2JpbGVBdWRpdExvZ291dChWRVJTSU9OX1YxKS5waXBlKFxuICAgICAgdGFwKCgpID0+IHsgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihNb2JpbGVMb2dvdXRBY3Rpb24pXG4gIHB1YmxpYyBvbk1vYmlsZUxvZ291dEFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIHsgbG9nb3V0QXVkaXQgfTogTW9iaWxlTG9nb3V0QWN0aW9uKSB7XG4gICAgY29uc3QgYXBwVHlwZSA9IHRoaXMuYXBwQ29uZmlnU2VydmljZS5nZXRDb25maWcoKS5hcHBUeXBlO1xuICAgIHRoaXMuaHR0cENhbmNlbFNlcnZpY2UuY2FuY2VsUGVuZGluZ1JlcXVlc3RzKCk7XG5cbiAgICBpZiAoYXBwVHlwZSA9PT0gQXBwVHlwZS5Nb2JpbGUpIHtcbiAgICAgIGN0eC5kaXNwYXRjaChuZXcgTG9nb3V0TW9iaWxlQWN0aW9uKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBwYXRoID0gZ2V0TmF2aWdhdGlvblJvdXRlKFNlc3Npb25TdGF0ZS50ZW5hbnRJbmZvKGN0eC5nZXRTdGF0ZSgpKSwgYXBwVHlwZSwgWydhY2NvdW50JywgJ2xvZ2luJ10pO1xuICAgICAgY3R4LmRpc3BhdGNoKG5ldyBOYXZpZ2F0ZShwYXRoKSk7XG4gICAgfVxuXG4gICAgaWYgKGxvZ291dEF1ZGl0KSB7XG4gICAgICBjdHguZGlzcGF0Y2gobmV3IEF1ZGl0TG9nb3V0TW9iaWxlQWN0aW9uKCkpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnJvdXRlci5ldmVudHMucGlwZSggLy8gb2JzZXJ2ZSBhbGwgcm91dGUgZXZlbnRzXG4gICAgICBmaWx0ZXIoZSA9PiBlIGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCAmJiBlLnVybC5pbmNsdWRlcygnL2FjY291bnQvbG9naW4nKSksIC8vIGZpbHRlciBvbmx5IE5hdmlnYXRpb25FbmQgZXZlbnRzXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgZmlyc3QoKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dGhTZXJ2aWNlLmxvZ291dCgpLnBpcGUoXG4gICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNwYXJrU2Vzc2lvbnMgPSB0aGlzLmdldFNwYXJrU2Vzc2lvbnMoKTtcbiAgICAgICAgICAgIGNvbnN0IHRlbmFudCA9IHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XTtcbiAgICAgICAgICAgIGNvbnN0IHNzb0VuYWJsZWQgPSB0ZW5hbnQ/LnVzZXI/LnNzb0F1dGhlbnRpY2F0ZWQ7XG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudXNlKExPQ0FMX0VOR0xJU0hfTEFOR1VBR0UpO1xuICAgICAgICAgICAgY3R4LmRpc3BhdGNoKG5ldyBUZW5hbnRDbGVhckFjdGlvbigpKTtcbiAgICAgICAgICAgIGN0eC5kaXNwYXRjaChuZXcgVW5sb2FkUGFya2luZ0xvdEFjdGlvbigpKTtcbiAgICAgICAgICAgIGlmIChzc29FbmFibGVkKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHRlbmFudE5hbWUgPSB0ZW5hbnQ/LnRlbmFudD8udGVuYW50TmFtZTtcbiAgICAgICAgICAgICAgY29uc3QgcHJvdmlkZXIgPSB0ZW5hbnQ/LnRlbmFudC5wcm9wcz8uc3NvPy5wcm92aWRlcjtcbiAgICAgICAgICAgICAgaWYgKHByb3ZpZGVyID09IFNpbmdsZVNpZ25PblByb3ZpZGVyLk1pY3Jvc29mdCkge1xuICAgICAgICAgICAgICAgIHRoaXMubXNhbFNlcnZpY2UubG9nb3V0UmVkaXJlY3Qoe1xuICAgICAgICAgICAgICAgICAgcG9zdExvZ291dFJlZGlyZWN0VXJpOiBgLyR7dGVuYW50TmFtZX1gXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgZWxzZSBpZiAocHJvdmlkZXIgPT0gU2luZ2xlU2lnbk9uUHJvdmlkZXIuUGluZ0ZlZGVyYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuSWRBdXRoU2VydmljZS5zaWduT3V0KCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLy90aGlzLnNpbGVudExvZ091dE1zbChjdHgsIGFwcFR5cGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pKTtcbiAgICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9nb3V0QWN0aW9uKVxuICBwdWJsaWMgb25Mb2dvdXQoY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCB7IGxvZ291dEF1ZGl0IH06IExvZ291dEFjdGlvbikge1xuICAgIGNvbnN0IGFwcFR5cGUgPSB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCkuYXBwVHlwZTtcbiAgICB0aGlzLmh0dHBDYW5jZWxTZXJ2aWNlLmNhbmNlbFBlbmRpbmdSZXF1ZXN0cygpO1xuXG4gICAgaWYgKGFwcFR5cGUgPT09IEFwcFR5cGUuTW9iaWxlKSB7XG4gICAgICBjdHguZGlzcGF0Y2gobmV3IExvZ291dE1vYmlsZUFjdGlvbigpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcGF0aCA9IGdldE5hdmlnYXRpb25Sb3V0ZShTZXNzaW9uU3RhdGUudGVuYW50SW5mbyhjdHguZ2V0U3RhdGUoKSksIGFwcFR5cGUsIFsnYWNjb3VudCcsICdsb2dpbiddKTtcbiAgICAgIGN0eC5kaXNwYXRjaChuZXcgTmF2aWdhdGUocGF0aCkpO1xuICAgIH1cblxuICAgIGlmIChsb2dvdXRBdWRpdCkge1xuICAgICAgY3R4LmRpc3BhdGNoKG5ldyBBdWRpdExvZ291dEFjdGlvbigpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoIC8vIG9ic2VydmUgYWxsIHJvdXRlIGV2ZW50c1xuICAgICAgZmlsdGVyKGUgPT4gZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQgJiYgZS51cmwuaW5jbHVkZXMoJy9hY2NvdW50L2xvZ2luJykpLCAvLyBmaWx0ZXIgb25seSBOYXZpZ2F0aW9uRW5kIGV2ZW50c1xuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIGZpcnN0KCksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hdXRoU2VydmljZS5sb2dvdXQoKS5waXBlKFxuICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzcGFya1Nlc3Npb25zID0gdGhpcy5nZXRTcGFya1Nlc3Npb25zKCk7XG4gICAgICAgICAgICBjb25zdCB0ZW5hbnQgPSBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF07XG4gICAgICAgICAgICBjb25zdCBzc29FbmFibGVkID0gdGVuYW50Py51c2VyPy5zc29BdXRoZW50aWNhdGVkO1xuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnVzZShMT0NBTF9FTkdMSVNIX0xBTkdVQUdFKTtcbiAgICAgICAgICAgIGN0eC5kaXNwYXRjaChuZXcgVGVuYW50Q2xlYXJBY3Rpb24oKSk7XG4gICAgICAgICAgICBjdHguZGlzcGF0Y2gobmV3IFVubG9hZFBhcmtpbmdMb3RBY3Rpb24oKSk7XG4gICAgICAgICAgICBpZiAoc3NvRW5hYmxlZCkge1xuICAgICAgICAgICAgICBjb25zdCB0ZW5hbnROYW1lID0gdGVuYW50Py50ZW5hbnQ/LnRlbmFudE5hbWU7XG4gICAgICAgICAgICAgIGNvbnN0IHByb3ZpZGVyID0gdGVuYW50Py50ZW5hbnQucHJvcHM/LnNzbz8ucHJvdmlkZXI7XG4gICAgICAgICAgICAgIGlmIChwcm92aWRlciA9PSBTaW5nbGVTaWduT25Qcm92aWRlci5NaWNyb3NvZnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1zYWxTZXJ2aWNlLmxvZ291dFJlZGlyZWN0KHtcbiAgICAgICAgICAgICAgICAgIHBvc3RMb2dvdXRSZWRpcmVjdFVyaTogYC8ke3RlbmFudE5hbWV9YFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGVsc2UgaWYgKHByb3ZpZGVyID09IFNpbmdsZVNpZ25PblByb3ZpZGVyLlBpbmdGZWRlcmF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMub3BlbklkQXV0aFNlcnZpY2Uuc2lnbk91dCgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC8vdGhpcy5zaWxlbnRMb2dPdXRNc2woY3R4LCBhcHBUeXBlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSk7XG4gICAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIGlzVGVuYW50VW5kZWZpbmVkID0gKHRlbmFudDogVGVuYW50SW5mbywgc2Vzc2lvbjogU3BhcmtTZXNzaW9uKSA9PiAhdGVuYW50IHx8ICFzZXNzaW9uO1xuXG4gIHNpbGVudExvZ091dE1zbChjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIGFwcFR5cGU6IEFwcFR5cGUpIHtcbiAgICBjb25zdCBjbGVhckNhY2hlUmVxdWVzdDogQ2xlYXJDYWNoZVJlcXVlc3QgPSB7XG4gICAgICBhY2NvdW50OiB0aGlzLm1zYWxTZXJ2aWNlLmluc3RhbmNlLmdldEFsbEFjY291bnRzKClbMF0sXG4gICAgfTtcblxuICAgIHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2UuY2xlYXJDYWNoZShjbGVhckNhY2hlUmVxdWVzdCk7XG4gICAgbG9jYWxTdG9yYWdlLmNsZWFyKCk7XG4gICAgc2Vzc2lvblN0b3JhZ2UuY2xlYXIoKTtcblxuICAgIGNvbnN0IHBhdGggPSBnZXROYXZpZ2F0aW9uUm91dGUoU2Vzc2lvblN0YXRlLnRlbmFudEluZm8oY3R4LmdldFN0YXRlKCkpLCBhcHBUeXBlLCBbJ2FjY291bnQnLCAnbG9naW4nXSk7XG4gICAgY3R4LmRpc3BhdGNoKG5ldyBOYXZpZ2F0ZShwYXRoKSk7XG4gIH1cblxuICBAQWN0aW9uKFRlbmFudExvYWRBY3Rpb24pXG4gIHB1YmxpYyBvblRlbmFudExvYWRBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCBhY3Rpb246IFRlbmFudExvYWRBY3Rpb24pIHtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gYWN0aW9uLnRlbmFudD8udGVuYW50TmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IHNwYXJrU2Vzc2lvbnMgPSB0aGlzLmdldFNwYXJrU2Vzc2lvbnMoKTtcbiAgICBpZiAoIXNwYXJrU2Vzc2lvbnNbdGVuYW50TmFtZV0pIHtcbiAgICAgIHNwYXJrU2Vzc2lvbnNbdGVuYW50TmFtZV0gPSB7IHVzZXI6IG51bGwsIGF1dGhUb2tlbjogbnVsbCwgcmVmcmVzaDogbnVsbCwgdGVuYW50OiBhY3Rpb24udGVuYW50IH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHNwYXJrU2Vzc2lvbnNbdGVuYW50TmFtZV0udGVuYW50ID0gYWN0aW9uLnRlbmFudDtcbiAgICB9XG5cbiAgICB0aGlzLnNldFNwYXJrU2Vzc2lvbnMoY3R4LCBzcGFya1Nlc3Npb25zKTtcbiAgfVxuXG4gIEBBY3Rpb24oVGVuYW50Q2xlYXJBY3Rpb24pXG4gIHB1YmxpYyBvblRlbmFudENsZWFyQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPiwgXzogVGVuYW50Q2xlYXJBY3Rpb24pIHtcbiAgICBjb25zdCBzcGFya1Nlc3Npb25zID0gdGhpcy5nZXRTcGFya1Nlc3Npb25zKCk7XG4gICAgY29uc3Qgc3BhcmtTZXNzaW9uID0gc3BhcmtTZXNzaW9uc1t0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnRdO1xuICAgIGlmIChzcGFya1Nlc3Npb24pIHtcbiAgICAgIHNwYXJrU2Vzc2lvbi51c2VyID0gbnVsbDtcbiAgICAgIHNwYXJrU2Vzc2lvbi5yZWZyZXNoID0gbnVsbDtcbiAgICAgIHNwYXJrU2Vzc2lvbi5hdXRoVG9rZW4gPSBudWxsO1xuICAgICAgaWYgKHNwYXJrU2Vzc2lvbi5hcHBDb25maWd1cmF0aW9uKSB7XG4gICAgICAgIHNwYXJrU2Vzc2lvbi5hcHBDb25maWd1cmF0aW9uLmFuYWx5dGljc1Rva2VuID0gJyc7XG4gICAgICAgIHNwYXJrU2Vzc2lvbi5hcHBDb25maWd1cmF0aW9uLmZlZWRiYWNrVG9rZW4gPSAnJztcbiAgICAgIH1cbiAgICAgIHRoaXMuc2V0U3BhcmtTZXNzaW9ucyhjdHgsIHNwYXJrU2Vzc2lvbnMpO1xuICAgIH1cbiAgfVxuXG4gIEBBY3Rpb24oSGVhbHRoQWN0aW9uKVxuICBwdWJsaWMgb25IZWFsdGhBY3Rpb25BY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+KSB7XG4gICAgY29uc3QgZW52aXJvbm1lbnRWYXJpYWJsZSQgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlUHJveHkuZ2V0SGVhbHRoKCk7XG4gICAgcmV0dXJuIGVudmlyb25tZW50VmFyaWFibGUkLnBpcGUodGFwKGVudmlyb25tZW50VmFyaWFibGUgPT4ge1xuICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2Uuc2V0SXRlbShFTlZJUk9OTUVOVCwgSlNPTi5zdHJpbmdpZnkoZW52aXJvbm1lbnRWYXJpYWJsZS5kYXRhLmVudmlyb25tZW50KSk7XG4gICAgICBjdHgucGF0Y2hTdGF0ZSh7IHNlcnZlckVudmlyb25tZW50TW9kZTogZW52aXJvbm1lbnRWYXJpYWJsZS5kYXRhLmVudmlyb25tZW50IH0pO1xuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oVXBkYXRlVXNlclNldHRpbmdzSW5TZXNzaW9uQWN0aW9uKVxuICBwdWJsaWMgb25VcGRhdGVVc2VyU2V0dGluZ3MoY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCB7IHVzZXJTZXR0aW5ncyB9KSB7XG4gICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgIHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XS51c2VyLnNldHRpbmdzID0gdXNlclNldHRpbmdzO1xuICAgIHRoaXMuc2V0U3BhcmtTZXNzaW9ucyhjdHgsIHNwYXJrU2Vzc2lvbnMpO1xuICB9XG5cbiAgQEFjdGlvbihVcGRhdGVUZW5hbnRJbmZvUHJvcHMpXG4gIHB1YmxpYyBvblVwZGF0ZVRlbmFudEluZm9Qcm9wcyhjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIHsgcHJvcHMgfSkge1xuICAgIGNvbnN0IHNwYXJrU2Vzc2lvbnMgPSB0aGlzLmdldFNwYXJrU2Vzc2lvbnMoKTtcbiAgICBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0udGVuYW50LnByb3BzID0gcHJvcHM7XG4gICAgdGhpcy5zZXRTcGFya1Nlc3Npb25zKGN0eCwgc3BhcmtTZXNzaW9ucyk7XG4gIH1cblxuICBAQWN0aW9uKEF1dGhlbnRpY2F0ZTJGQWZvclVzZXIpXG4gIHB1YmxpYyBvbkF1dGhlbnRpY2F0ZTJGQWZvclVzZXIoY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCB7IH0pIHtcbiAgICBjb25zdCBzcGFya1Nlc3Npb25zID0gdGhpcy5nZXRTcGFya1Nlc3Npb25zKCk7XG4gICAgaWYgKHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XT8udXNlcikge1xuICAgICAgc3BhcmtTZXNzaW9uc1t0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnRdLnVzZXIuYXV0aGVudGljYXRlZDJGQSA9IHRydWU7XG4gICAgICB0aGlzLnNldFNwYXJrU2Vzc2lvbnMoY3R4LCBzcGFya1Nlc3Npb25zKTtcbiAgICB9XG4gIH1cblxuICBAQWN0aW9uKEluaXRTZXNzaW9uRnJvbUxvY2FsU3RvcmFnZUFjdGlvbilcbiAgcHVibGljIG9uTG9hZFNlc3Npb25Gcm9tTG9jYWxTdG9yYWdlQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPiwgXzogSW5pdFNlc3Npb25Gcm9tTG9jYWxTdG9yYWdlQWN0aW9uKSB7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5nZXRJdGVtKFNFU1NJT04pO1xuICAgIGNvbnN0IHNlc3Npb246IHtcbiAgICAgIGFwcGxpY2F0aW9uOiBBcHBsaWNhdGlvbkluZm8sXG4gICAgICBzcGFya1Nlc3Npb25zOiBTdHJpbmdNYXA8U3BhcmtTZXNzaW9uPixcbiAgICB9ID0gZGF0YSA/IEpTT04ucGFyc2UoZGF0YSkgOiBkZWZhdWx0U2Vzc2lvblN0YXRlO1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIGFwcGxpY2F0aW9uOiBzZXNzaW9uLmFwcGxpY2F0aW9uLFxuICAgICAgc3BhcmtTZXNzaW9uczogc2Vzc2lvbi5zcGFya1Nlc3Npb25zXG4gICAgfSk7XG4gICAgaWYgKHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudCkge1xuICAgICAgY29uc3Qgc3BhcmtTZXNzaW9uID0gc2Vzc2lvbi5zcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF07XG4gICAgICB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5zZXRBdXRoU2Vzc2lvbihzcGFya1Nlc3Npb24/LmF1dGhUb2tlbiwgc3BhcmtTZXNzaW9uPy5yZWZyZXNoKTtcbiAgICB9XG4gIH1cblxuICBAQWN0aW9uKExvYWRBcHBDb25maWd1cmF0aW9uQWN0aW9uKVxuICBwdWJsaWMgb25BcHBDb25maWd1cmF0aW9uQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPikge1xuICAgIGNvbnN0IGFwcENvbmZpZ3VyYXRpb24kID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZVByb3h5LmdldEFwcENvbmZpZ3VyYXRpb24oKTtcbiAgICByZXR1cm4gYXBwQ29uZmlndXJhdGlvbiQucGlwZSh0YXAoYXBwQ29uZmlndXJhdGlvbiA9PiB7XG4gICAgICBjb25zdCBzcGFya1Nlc3Npb25zID0gdGhpcy5nZXRTcGFya1Nlc3Npb25zKCk7XG4gICAgICBpZiAodGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50KSB7XG4gICAgICAgIHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XS5hcHBDb25maWd1cmF0aW9uID0gYXBwQ29uZmlndXJhdGlvbi5kYXRhO1xuICAgICAgICB0aGlzLnNldFNwYXJrU2Vzc2lvbnMoY3R4LCBzcGFya1Nlc3Npb25zKTtcbiAgICAgIH1cbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKExvYWRBcHBDb25maWd1cmF0aW9uTW9iaWxlQWN0aW9uKVxuICBwdWJsaWMgb25Mb2FkQXBwQ29uZmlndXJhdGlvbk1vYmlsZUFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4pIHtcbiAgICBjb25zdCBhcHBDb25maWd1cmF0aW9uJCA9IHRoaXMubW9iaWxlU2VydmljZVByb3h5SWRlbnRpdHkuZ2V0QXBwQ29uZmlndXJhdGlvbk1vYmlsZShWRVJTSU9OX1YxKTtcbiAgICByZXR1cm4gYXBwQ29uZmlndXJhdGlvbiQucGlwZSh0YXAoYXBwQ29uZmlndXJhdGlvbiA9PiB7XG4gICAgICBjb25zdCBzcGFya1Nlc3Npb25zID0gdGhpcy5nZXRTcGFya1Nlc3Npb25zKCk7XG4gICAgICBpZiAodGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50KSB7XG4gICAgICAgIHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XS5hcHBDb25maWd1cmF0aW9uID0gYXBwQ29uZmlndXJhdGlvbi5kYXRhO1xuICAgICAgICB0aGlzLnNldFNwYXJrU2Vzc2lvbnMoY3R4LCBzcGFya1Nlc3Npb25zKTtcbiAgICAgIH1cbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIGdldFNwYXJrU2Vzc2lvbnMgPSAoKTogU3RyaW5nTWFwPFNwYXJrU2Vzc2lvbj4gPT4gSlNPTi5wYXJzZSh0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbShTRVNTSU9OKSk/LnNwYXJrU2Vzc2lvbnMgPz8ge307XG4gIHByaXZhdGUgc2V0U3BhcmtTZXNzaW9ucyA9IChjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIHNwYXJrU2Vzc2lvbnM6IFN0cmluZ01hcDxTcGFya1Nlc3Npb24+KTogdm9pZCA9PiB7XG4gICAgY29uc3QgYXBwbGljYXRpb24gPSBjdHguZ2V0U3RhdGUoKS5hcHBsaWNhdGlvbjtcbiAgICB0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2Uuc2V0SXRlbShTRVNTSU9OLCBKU09OLnN0cmluZ2lmeSh7XG4gICAgICBhcHBsaWNhdGlvbixcbiAgICAgIHNwYXJrU2Vzc2lvbnM6IHNwYXJrU2Vzc2lvbnNcbiAgICB9KSk7XG4gICAgY3R4LnBhdGNoU3RhdGUoeyBzcGFya1Nlc3Npb25zIH0pO1xuICB9O1xufVxuIl19
487
+ }], ctorParameters: () => [{ type: i1.SessionStorageService }, { type: i2.LocalStorageService }, { type: i3.AppConfigService }, { type: i4.AuthService }, { type: i5.ConfigurationServiceProxy }, { type: i6.BackofficeServiceProxy }, { type: i7.Router }, { type: i8.HttpCancelService }, { type: i9.TranslateService }, { type: i10.MsalService }, { type: i5.UsersServiceProxy }, { type: i11.OpenIdAuthService }, { type: i12.MessageBarService }, { type: i5.MobileServiceProxy }, { type: i13.MobileServiceProxyIdentity }], propDecorators: { onLogin: [], onSetTenantUserAction: [], onUpdateAuthTokenAction: [], setSessionState: [], SetUserNameAction: [], AuditLogoutAction: [], onAuditBackofficeAction: [], AuditLogoutMobileAction: [], onMobileLogoutAction: [], onLogout: [], onTenantLoadAction: [], onTenantClearAction: [], onHealthActionAction: [], onUpdateUserSettings: [], onUpdateTenantInfoProps: [], onAuthenticate2FAforUser: [], onLoadSessionFromLocalStorageAction: [], onBackofficeAppConfigurationAction: [], onAppConfigurationAction: [], onLoadAppConfigurationMobileAction: [] } });
488
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvbW9kdWxlcy9hdXRoL3Nlc3Npb24uc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUl4RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFnQixNQUFNLGFBQWEsQ0FBQztBQUNwRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUU1RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXBELE9BQU8sRUFBbUUsb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQXFCLE1BQU0sMkNBQTJDLENBQUM7QUFPdkwsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOEJB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TUFZbEMsd0JBQXdCLE1BWXhCLGtDQUFrQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBNc2FsU2VydmljZSB9IGZyb20gJ0BhenVyZS9tc2FsLWFuZ3VsYXInO1xuaW1wb3J0IHsgQ2xlYXJDYWNoZVJlcXVlc3QgfSBmcm9tICdAYXp1cmUvbXNhbC1icm93c2VyJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRlIH0gZnJvbSAnQG5neHMvcm91dGVyLXBsdWdpbic7XG5pbXBvcnQgeyBBY3Rpb24sIFNlbGVjdG9yLCBTdGF0ZSwgU3RhdGVDb250ZXh0IH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgZmlyc3QsIG9mLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWVzc2FnZUJhclBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9tZXNzYWdlLWJhci9tZXNzYWdlLWJhci1wb3NpdGlvbi5lbnVtJztcbmltcG9ydCB7IE1lc3NhZ2VCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9tZXNzYWdlLWJhci9tZXNzYWdlLWJhci5zZXJ2aWNlJztcbmltcG9ydCB7IExPQ0FMX0VOR0xJU0hfTEFOR1VBR0UgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvZ2xvYmFsLWNvbnN0YW50cyc7XG5pbXBvcnQgeyBFTlZJUk9OTUVOVCwgTE9HR0VEX1RFTkFOVF9LRVksIFNFU1NJT04sIFRFTkFOVF9LRVkgfSBmcm9tICcuLi8uLi9jb25zdGFudHMva2V5cy1jb25zdGFudHMnO1xuaW1wb3J0IHsgVkVSU0lPTl9WMSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy92ZXJzaW9uLWNvbnN0YW50cyc7XG5pbXBvcnQgeyBBcHBUeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMvYXBwLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBTcGFya1Nlc3Npb24gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3NwYXJrLXNlc3Npb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25TZXJ2aWNlUHJveHksIE1vYmlsZVNlcnZpY2VQcm94eSwgU2V0dGluZ3NDYXRlZ29yeSwgU2luZ2xlU2lnbk9uUHJvdmlkZXIsIFNwYXJrU2V0dGluZ3NEdG8sIFVzZXJzU2VydmljZVByb3h5IH0gZnJvbSAnLi4vLi4vc2VydmljZS1wcm94eS9jbG91ZC1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgTW9iaWxlU2VydmljZVByb3h5SWRlbnRpdHkgfSBmcm9tICcuLi8uLi9zZXJ2aWNlLXByb3h5L2lkZW50aXR5LXNlcnZpY2UtcHJveGllcyc7XG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXBwLWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IEh0dHBDYW5jZWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaHR0cC1jYW5jZWwuc2VydmljZSc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IE9wZW5JZEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvb3BlbmlkLWF1dGguc2VydmljZSc7XG5pbXBvcnQgeyBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zZXNzaW9uLXN0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBwYXJzZUFwaUVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uL3V0aWxzL2FwaS1oZWxwZXIudXRpbCc7XG5pbXBvcnQgeyBTdHJpbmdNYXAgfSBmcm9tICcuLi8uLi91dGlscy9sYW5nLnV0aWwnO1xuaW1wb3J0IHsgZ2V0TmF2aWdhdGlvblJvdXRlIH0gZnJvbSAnLi4vLi4vdXRpbHMvcm91dGUudXRpbCc7XG5pbXBvcnQgeyBVbmxvYWRQYXJraW5nTG90QWN0aW9uIH0gZnJvbSAnLi4vZmFjaWxpdHkvZmFjaWxpdHkuYWN0aW9ucyc7XG5pbXBvcnQgeyBCYWNrb2ZmaWNlU2VydmljZVByb3h5IH0gZnJvbSAnLi8uLi8uLi9zZXJ2aWNlLXByb3h5L2Nsb3VkLXNlcnZpY2UtcHJveGllcyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uSW5mbyB9IGZyb20gJy4vbW9kZWwvYXBwbGljYXRpb24taW5mby5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGVuYW50SW5mbyB9IGZyb20gJy4vbW9kZWwvdGVuYW50LWluZm8uaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIEF1ZGl0QmFja29mZmljZUFjdGlvbixcbiAgQXVkaXRMb2dvdXRBY3Rpb24sIEF1ZGl0TG9nb3V0TW9iaWxlQWN0aW9uLCBBdXRoZW50aWNhdGUyRkFmb3JVc2VyLFxuICBIZWFsdGhBY3Rpb24sIEluaXRTZXNzaW9uRnJvbUxvY2FsU3RvcmFnZUFjdGlvbiwgTG9hZEFwcENvbmZpZ3VyYXRpb25BY3Rpb24sXG4gIExvYWRBcHBDb25maWd1cmF0aW9uTW9iaWxlQWN0aW9uLFxuICBMb2FkQmFja29mZmljZUFwcENvbmZpZ3VyYXRpb25BY3Rpb24sXG4gIExvZ2luUmVxdWVzdEFjdGlvbiwgTG9nb3V0QWN0aW9uLCBMb2dvdXRNb2JpbGVBY3Rpb24sIE1vYmlsZUxvZ291dEFjdGlvbiwgU2V0U3RhdGVBY3Rpb24sIFNldFRlbmFudFVzZXJBY3Rpb24sIFNldFVzZXJOYW1lQWN0aW9uLFxuICBUZW5hbnRDbGVhckFjdGlvbiwgVGVuYW50TG9hZEFjdGlvbiwgVXBkYXRlQXV0aFRva2VuQWN0aW9uLCBVcGRhdGVUZW5hbnRJbmZvUHJvcHMsIFVwZGF0ZVVzZXJTZXR0aW5nc0luU2Vzc2lvbkFjdGlvblxufSBmcm9tICcuL3Nlc3Npb24uYWN0aW9ucyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2Vzc2lvblN0YXRlTW9kZWwge1xuICBzcGFya1Nlc3Npb25zOiBTdHJpbmdNYXA8U3BhcmtTZXNzaW9uPjtcbiAgYXBwbGljYXRpb24/OiBBcHBsaWNhdGlvbkluZm87XG4gIHNlcnZlckVudmlyb25tZW50TW9kZT86IHN0cmluZztcbn1cblxuY29uc3QgZGVmYXVsdFNlc3Npb25TdGF0ZSA9IHtcbiAgc3BhcmtTZXNzaW9uczoge30sXG4gIGFwcGxpY2F0aW9uOiB7IHZlcnNpb246IG51bGwsIHJlbGVhc2VEYXRlOiBudWxsLCBmZWF0dXJlczoge30gfSxcbn07XG5cbkBTdGF0ZTxTZXNzaW9uU3RhdGVNb2RlbD4oe1xuICBuYW1lOiAnc2Vzc2lvbicsXG4gIGRlZmF1bHRzOiBkZWZhdWx0U2Vzc2lvblN0YXRlLFxufSlcbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTZXNzaW9uU3RhdGUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsb2NhbFN0b3JhZ2VTZXJ2aWNlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXBwQ29uZmlnU2VydmljZTogQXBwQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpZ3VyYXRpb25TZXJ2aWNlUHJveHk6IENvbmZpZ3VyYXRpb25TZXJ2aWNlUHJveHksXG4gICAgcHJpdmF0ZSBiYWNrb2ZmaWNlU2VydmljZVByb3h5OiBCYWNrb2ZmaWNlU2VydmljZVByb3h5LFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBodHRwQ2FuY2VsU2VydmljZTogSHR0cENhbmNlbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgbXNhbFNlcnZpY2U6IE1zYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlcnNTZXJ2aWNlUHJveHk6IFVzZXJzU2VydmljZVByb3h5LFxuICAgIHByaXZhdGUgb3BlbklkQXV0aFNlcnZpY2U6IE9wZW5JZEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWVzc2FnZUJhclNlcnZpY2U6IE1lc3NhZ2VCYXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgbW9iaWxlU2VydmljZVByb3h5OiBNb2JpbGVTZXJ2aWNlUHJveHksXG4gICAgcHJpdmF0ZSBtb2JpbGVTZXJ2aWNlUHJveHlJZGVudGl0eTogTW9iaWxlU2VydmljZVByb3h5SWRlbnRpdHkpIHtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgaXNVc2VyQXV0aGVudGljYXRlZFdpdGhTU08oc3RhdGU6IFNlc3Npb25TdGF0ZU1vZGVsKSB7XG4gICAgY29uc3QgdGVuYW50TmFtZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oVEVOQU5UX0tFWSk7XG4gICAgcmV0dXJuIHN0YXRlLnNwYXJrU2Vzc2lvbnNbdGVuYW50TmFtZV0/LnVzZXI/LnNzb0F1dGhlbnRpY2F0ZWQ7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGlzVXNlckF1dGhlbnRpY2F0ZWRXaXRoMkZBKHN0YXRlOiBTZXNzaW9uU3RhdGVNb2RlbCkge1xuICAgIGNvbnN0IHRlbmFudE5hbWUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFRFTkFOVF9LRVkpO1xuICAgIHJldHVybiBzdGF0ZS5zcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdPy51c2VyLmF1dGhlbnRpY2F0ZWQyRkE7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHNlcnZlckVudmlyb25tZW50TW9kZShzdGF0ZTogU2Vzc2lvblN0YXRlTW9kZWwpIHtcbiAgICByZXR1cm4gc3RhdGUuc2VydmVyRW52aXJvbm1lbnRNb2RlO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyB1c2VySW5mbyhzdGF0ZTogU2Vzc2lvblN0YXRlTW9kZWwpIHtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShURU5BTlRfS0VZKTtcbiAgICByZXR1cm4gc3RhdGUuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXT8udXNlcjtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgbG9nZ2VkVXNlckluZm8oc3RhdGU6IFNlc3Npb25TdGF0ZU1vZGVsKSB7XG4gICAgY29uc3QgdGVuYW50TmFtZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oTE9HR0VEX1RFTkFOVF9LRVkpO1xuICAgIHJldHVybiBzdGF0ZS5zcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdPy51c2VyO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyB0ZW5hbnRJbmZvKHN0YXRlOiBTZXNzaW9uU3RhdGVNb2RlbCkge1xuICAgIGNvbnN0IHRlbmFudE5hbWUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFRFTkFOVF9LRVkpO1xuICAgIHJldHVybiBzdGF0ZS5zcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdPy50ZW5hbnQ7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHRoaXJkUGFydHlUb2tlbihzdGF0ZTogU2Vzc2lvblN0YXRlTW9kZWwpIHtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShURU5BTlRfS0VZKTtcbiAgICByZXR1cm4gc3RhdGUuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXT8udGhpcmRQYXJ0eVRva2VuO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBsb2dnZWRUZW5hbnRJbmZvKHN0YXRlOiBTZXNzaW9uU3RhdGVNb2RlbCkge1xuICAgIGNvbnN0IHRlbmFudE5hbWUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKExPR0dFRF9URU5BTlRfS0VZKTtcbiAgICByZXR1cm4gc3RhdGUuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXT8udGVuYW50O1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyB1c2VyU2V0dGluZ3Moc3RhdGU6IFNlc3Npb25TdGF0ZU1vZGVsKTogU3BhcmtTZXR0aW5nc0R0b1tdIHtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShURU5BTlRfS0VZKTtcbiAgICByZXR1cm4gc3RhdGUuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXT8udXNlci5zZXR0aW5ncyBhcyBTcGFya1NldHRpbmdzRHRvW107XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIG1hcHBlZFVzZXJTZXR0aW5ncyhzdGF0ZTogU2Vzc2lvblN0YXRlTW9kZWwpIHtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShURU5BTlRfS0VZKTtcbiAgICByZXR1cm4gc3RhdGUuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXT8udXNlci5zZXR0aW5ncy5yZWR1Y2UoKHNldHRpbmdzTWFwLCB1c2VyU2V0dGluZykgPT5cbiAgICAgIHNldHRpbmdzTWFwLnNldChcbiAgICAgICAgdXNlclNldHRpbmcuY2F0ZWdvcnksXG4gICAgICAgIHR5cGVvZiB1c2VyU2V0dGluZy5zZXR0aW5nc0pzb24gPT09ICdzdHJpbmcnXG4gICAgICAgICAgPyBKU09OLnBhcnNlKHVzZXJTZXR0aW5nLnNldHRpbmdzSnNvbilcbiAgICAgICAgICA6IHVzZXJTZXR0aW5nLnNldHRpbmdzSnNvblxuICAgICAgKSwgbmV3IE1hcDxTZXR0aW5nc0NhdGVnb3J5LCBhbnk+KCkpO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBhcHBDb25maWd1cmF0aW9uKHN0YXRlOiBTZXNzaW9uU3RhdGVNb2RlbCkge1xuICAgIGNvbnN0IHRlbmFudE5hbWUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKExPR0dFRF9URU5BTlRfS0VZKTtcbiAgICByZXR1cm4gc3RhdGUuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXT8uYXBwQ29uZmlndXJhdGlvbjtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMga2VlcE1lTG9nZ2VkSW4oc3RhdGU6IFNlc3Npb25TdGF0ZU1vZGVsKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdGVuYW50TmFtZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oVEVOQU5UX0tFWSk7XG4gICAgcmV0dXJuIHN0YXRlLnNwYXJrU2Vzc2lvbnNbdGVuYW50TmFtZV0/LnVzZXIua2VlcE1lTG9nZ2VkSW4gPz8gZmFsc2U7XG4gIH1cblxuICBAQWN0aW9uKExvZ2luUmVxdWVzdEFjdGlvbilcbiAgcHVibGljIG9uTG9naW4oY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCBhY3Rpb246IExvZ2luUmVxdWVzdEFjdGlvbikge1xuICAgIHJldHVybiB0aGlzLmF1dGhTZXJ2aWNlLmxvZ2luKGFjdGlvbikucGlwZSh0YXAoe1xuICAgICAgbmV4dDogc3BhcmtTZXNzaW9uID0+IHtcbiAgICAgICAgdGhpcy5TZXRUZW5hbnRVc2VyQWN0aW9uKGN0eCwgc3BhcmtTZXNzaW9uKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogZSA9PiB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBwYXJzZUFwaUVycm9yTWVzc2FnZShlKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcih0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChtZXNzYWdlKSwgeyBwb3NpdGlvbjogTWVzc2FnZUJhclBvc2l0aW9uLlN0YXRpYyB9KTtcbiAgICAgIH1cbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKFNldFRlbmFudFVzZXJBY3Rpb24pXG4gIHB1YmxpYyBvblNldFRlbmFudFVzZXJBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCB7IHNwYXJrU2Vzc2lvbiB9OiBTZXRUZW5hbnRVc2VyQWN0aW9uKSB7XG4gICAgdGhpcy5TZXRUZW5hbnRVc2VyQWN0aW9uKGN0eCwgc3BhcmtTZXNzaW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgU2V0VGVuYW50VXNlckFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIHNwYXJrU2Vzc2lvbjogU3BhcmtTZXNzaW9uKSB7XG4gICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgIGNvbnN0IHsgdXNlciwgYXV0aFRva2VuLCByZWZyZXNoLCB0aGlyZFBhcnR5VG9rZW4gfSA9IHNwYXJrU2Vzc2lvbjtcbiAgICB1c2VyLnNldHRpbmdzID0gdXNlci5zZXR0aW5ncy5tYXAocyA9PiB7XG4gICAgICByZXR1cm4gbmV3IFNwYXJrU2V0dGluZ3NEdG8oe1xuICAgICAgICBjYXRlZ29yeTogcy5jYXRlZ29yeSxcbiAgICAgICAgc2V0dGluZ3NKc29uOiBKU09OLnBhcnNlKHMuc2V0dGluZ3NKc29uKVxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpZiAoIXNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XSkge1xuICAgICAgc3BhcmtTZXNzaW9uc1t0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnRdID0geyB1c2VyLCBhdXRoVG9rZW4sIHJlZnJlc2gsIHRlbmFudDogbnVsbCwgdGhpcmRQYXJ0eVRva2VuIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XS51c2VyID0gdXNlcjtcbiAgICAgIHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XS5hdXRoVG9rZW4gPSBhdXRoVG9rZW47XG4gICAgICBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0ucmVmcmVzaCA9IHJlZnJlc2g7XG4gICAgICBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0udGhpcmRQYXJ0eVRva2VuID0gdGhpcmRQYXJ0eVRva2VuO1xuICAgIH1cblxuICAgIHRoaXMuc2V0U3BhcmtTZXNzaW9ucyhjdHgsIHNwYXJrU2Vzc2lvbnMpO1xuICB9XG5cbiAgQEFjdGlvbihVcGRhdGVBdXRoVG9rZW5BY3Rpb24pXG4gIHB1YmxpYyBvblVwZGF0ZUF1dGhUb2tlbkFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIGFjdGlvbjogVXBkYXRlQXV0aFRva2VuQWN0aW9uKSB7XG4gICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgIHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XS5hdXRoVG9rZW4gPSBhY3Rpb24uYXV0aFRva2VuO1xuICB9XG5cbiAgQEFjdGlvbihTZXRTdGF0ZUFjdGlvbilcbiAgcHVibGljIHNldFNlc3Npb25TdGF0ZShjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIGFjdGlvbjogU2V0U3RhdGVBY3Rpb24pIHtcbiAgICBjb25zdCBzcGFya1Nlc3Npb25zID0gdGhpcy5nZXRTcGFya1Nlc3Npb25zKCk7XG4gICAgc3BhcmtTZXNzaW9uc1t0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnRdLmF1dGhUb2tlbiA9IGFjdGlvbi5hdXRoVG9rZW47XG4gICAgc3BhcmtTZXNzaW9uc1t0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnRdLnJlZnJlc2ggPSBhY3Rpb24ucmVmcmVzaDtcblxuICAgIGNvbnN0IGFwcGxpY2F0aW9uOiBBcHBsaWNhdGlvbkluZm8gPSB7XG4gICAgICB2ZXJzaW9uOiB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCkucGFja2FnZUluZm8udmVyc2lvbixcbiAgICAgIHJlbGVhc2VEYXRlOiBudWxsLFxuICAgICAgZmVhdHVyZXM6IHt9LFxuICAgIH07XG4gICAgY3R4LnBhdGNoU3RhdGUoeyBhcHBsaWNhdGlvbiB9KTtcbiAgICB0aGlzLnNldFNwYXJrU2Vzc2lvbnMoY3R4LCBzcGFya1Nlc3Npb25zKTtcbiAgfVxuXG4gIEBBY3Rpb24oU2V0VXNlck5hbWVBY3Rpb24pXG4gIHB1YmxpYyBTZXRVc2VyTmFtZUFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIGFjdGlvbjogU2V0VXNlck5hbWVBY3Rpb24pIHtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShURU5BTlRfS0VZKTtcbiAgICBjb25zdCBzcGFya1Nlc3Npb25zID0gdGhpcy5nZXRTcGFya1Nlc3Npb25zKCk7XG4gICAgc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXS51c2VyLmRpc3BsYXlOYW1lID0gYWN0aW9uLnVzZXJOYW1lO1xuICAgIHRoaXMuc2V0U3BhcmtTZXNzaW9ucyhjdHgsIHNwYXJrU2Vzc2lvbnMpO1xuICB9XG5cbiAgQEFjdGlvbihBdWRpdExvZ291dEFjdGlvbilcbiAgcHVibGljIEF1ZGl0TG9nb3V0QWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPiwgYWN0aW9uOiBBdWRpdExvZ291dEFjdGlvbikge1xuICAgIGNvbnN0IHNwYXJrU2Vzc2lvbnMgPSB0aGlzLmdldFNwYXJrU2Vzc2lvbnMoKTtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShURU5BTlRfS0VZKTtcbiAgICBjb25zdCB0ZW5hbnRJbmZvID0gY3R4LmdldFN0YXRlKCkuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXS50ZW5hbnQ7XG4gICAgaWYgKHRoaXMuaXNUZW5hbnRVbmRlZmluZWQodGVuYW50SW5mbywgc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXSkpIHtcbiAgICAgIHJldHVybiBvZihudWxsKTsgLy8gSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHRlbmFudCBvciBzcGFya1Nlc3Npb25zIGFyZSB1bmRlZmluZWRcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudXNlcnNTZXJ2aWNlUHJveHkuYXVkaXRMb2dvdXQoKS5waXBlKFxuICAgICAgdGFwKCgpID0+IHsgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihBdWRpdEJhY2tvZmZpY2VBY3Rpb24pXG4gIHB1YmxpYyBvbkF1ZGl0QmFja29mZmljZUFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIGFjdGlvbjogQXVkaXRCYWNrb2ZmaWNlQWN0aW9uKSB7XG4gICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgIGNvbnN0IHRlbmFudE5hbWUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFRFTkFOVF9LRVkpO1xuICAgIGNvbnN0IHRlbmFudEluZm8gPSBjdHguZ2V0U3RhdGUoKS5zcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdLnRlbmFudDtcbiAgICBpZiAodGhpcy5pc1RlbmFudFVuZGVmaW5lZCh0ZW5hbnRJbmZvLCBzcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdKSkge1xuICAgICAgcmV0dXJuIG9mKG51bGwpOyAvLyBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGVuYW50IG9yIHNwYXJrU2Vzc2lvbnMgYXJlIHVuZGVmaW5lZFxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5iYWNrb2ZmaWNlU2VydmljZVByb3h5LmJhY2tvZmZpY2VBdWRpdExvZ291dCgpLnBpcGUoXG4gICAgICB0YXAoKCkgPT4geyB9KSk7XG4gIH1cblxuICBAQWN0aW9uKEF1ZGl0TG9nb3V0TW9iaWxlQWN0aW9uKVxuICBwdWJsaWMgQXVkaXRMb2dvdXRNb2JpbGVBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCBhY3Rpb246IEF1ZGl0TG9nb3V0TW9iaWxlQWN0aW9uKSB7XG4gICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgIGNvbnN0IHRlbmFudE5hbWUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFRFTkFOVF9LRVkpO1xuICAgIGNvbnN0IHRlbmFudEluZm8gPSBjdHguZ2V0U3RhdGUoKS5zcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdLnRlbmFudDtcbiAgICBpZiAodGhpcy5pc1RlbmFudFVuZGVmaW5lZCh0ZW5hbnRJbmZvLCBzcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdKSkge1xuICAgICAgcmV0dXJuIG9mKG51bGwpOyAvLyBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGVuYW50IG9yIHNwYXJrU2Vzc2lvbnMgYXJlIHVuZGVmaW5lZFxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5tb2JpbGVTZXJ2aWNlUHJveHkubW9iaWxlQXVkaXRMb2dvdXQoVkVSU0lPTl9WMSkucGlwZShcbiAgICAgIHRhcCgoKSA9PiB7IH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oTW9iaWxlTG9nb3V0QWN0aW9uKVxuICBwdWJsaWMgb25Nb2JpbGVMb2dvdXRBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCB7IGxvZ291dEF1ZGl0IH06IE1vYmlsZUxvZ291dEFjdGlvbikge1xuICAgIGNvbnN0IGFwcFR5cGUgPSB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCkuYXBwVHlwZTtcbiAgICB0aGlzLmh0dHBDYW5jZWxTZXJ2aWNlLmNhbmNlbFBlbmRpbmdSZXF1ZXN0cygpO1xuXG4gICAgaWYgKGFwcFR5cGUgPT09IEFwcFR5cGUuTW9iaWxlKSB7XG4gICAgICBjdHguZGlzcGF0Y2gobmV3IExvZ291dE1vYmlsZUFjdGlvbigpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcGF0aCA9IGdldE5hdmlnYXRpb25Sb3V0ZShTZXNzaW9uU3RhdGUudGVuYW50SW5mbyhjdHguZ2V0U3RhdGUoKSksIGFwcFR5cGUsIFsnYWNjb3VudCcsICdsb2dpbiddKTtcbiAgICAgIGN0eC5kaXNwYXRjaChuZXcgTmF2aWdhdGUocGF0aCkpO1xuICAgIH1cblxuICAgIGlmIChsb2dvdXRBdWRpdCkge1xuICAgICAgY3R4LmRpc3BhdGNoKG5ldyBBdWRpdExvZ291dE1vYmlsZUFjdGlvbigpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoIC8vIG9ic2VydmUgYWxsIHJvdXRlIGV2ZW50c1xuICAgICAgZmlsdGVyKGUgPT4gZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQgJiYgZS51cmwuaW5jbHVkZXMoJy9hY2NvdW50L2xvZ2luJykpLCAvLyBmaWx0ZXIgb25seSBOYXZpZ2F0aW9uRW5kIGV2ZW50c1xuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIGZpcnN0KCksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hdXRoU2VydmljZS5sb2dvdXQoKS5waXBlKFxuICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzcGFya1Nlc3Npb25zID0gdGhpcy5nZXRTcGFya1Nlc3Npb25zKCk7XG4gICAgICAgICAgICBjb25zdCB0ZW5hbnQgPSBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF07XG4gICAgICAgICAgICBjb25zdCBzc29FbmFibGVkID0gdGVuYW50Py51c2VyPy5zc29BdXRoZW50aWNhdGVkO1xuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnVzZShMT0NBTF9FTkdMSVNIX0xBTkdVQUdFKTtcbiAgICAgICAgICAgIGN0eC5kaXNwYXRjaChuZXcgVGVuYW50Q2xlYXJBY3Rpb24oKSk7XG4gICAgICAgICAgICBjdHguZGlzcGF0Y2gobmV3IFVubG9hZFBhcmtpbmdMb3RBY3Rpb24oKSk7XG4gICAgICAgICAgICBpZiAoc3NvRW5hYmxlZCkge1xuICAgICAgICAgICAgICBjb25zdCB0ZW5hbnROYW1lID0gdGVuYW50Py50ZW5hbnQ/LnRlbmFudE5hbWU7XG4gICAgICAgICAgICAgIGNvbnN0IHByb3ZpZGVyID0gdGVuYW50Py50ZW5hbnQucHJvcHM/LnNzbz8ucHJvdmlkZXI7XG4gICAgICAgICAgICAgIGlmIChwcm92aWRlciA9PSBTaW5nbGVTaWduT25Qcm92aWRlci5NaWNyb3NvZnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1zYWxTZXJ2aWNlLmxvZ291dFJlZGlyZWN0KHtcbiAgICAgICAgICAgICAgICAgIHBvc3RMb2dvdXRSZWRpcmVjdFVyaTogYC8ke3RlbmFudE5hbWV9YFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGVsc2UgaWYgKHByb3ZpZGVyID09IFNpbmdsZVNpZ25PblByb3ZpZGVyLlBpbmdGZWRlcmF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMub3BlbklkQXV0aFNlcnZpY2Uuc2lnbk91dCgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC8vdGhpcy5zaWxlbnRMb2dPdXRNc2woY3R4LCBhcHBUeXBlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSk7XG4gICAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKExvZ291dEFjdGlvbilcbiAgcHVibGljIG9uTG9nb3V0KGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPiwgeyBsb2dvdXRBdWRpdCwgbG9nb3V0QmFja29mZmljZUF1ZGl0IH06IExvZ291dEFjdGlvbikge1xuICAgIGNvbnN0IGFwcFR5cGUgPSB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCkuYXBwVHlwZTtcbiAgICB0aGlzLmh0dHBDYW5jZWxTZXJ2aWNlLmNhbmNlbFBlbmRpbmdSZXF1ZXN0cygpO1xuXG4gICAgaWYgKGFwcFR5cGUgPT09IEFwcFR5cGUuTW9iaWxlKSB7XG4gICAgICBjdHguZGlzcGF0Y2gobmV3IExvZ291dE1vYmlsZUFjdGlvbigpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcGF0aCA9IGdldE5hdmlnYXRpb25Sb3V0ZShTZXNzaW9uU3RhdGUudGVuYW50SW5mbyhjdHguZ2V0U3RhdGUoKSksIGFwcFR5cGUsIFsnYWNjb3VudCcsICdsb2dpbiddKTtcbiAgICAgIGN0eC5kaXNwYXRjaChuZXcgTmF2aWdhdGUocGF0aCkpO1xuICAgIH1cblxuICAgIGlmIChsb2dvdXRBdWRpdCkge1xuICAgICAgY3R4LmRpc3BhdGNoKG5ldyBBdWRpdExvZ291dEFjdGlvbigpKTtcbiAgICB9XG4gICAgaWYgKGxvZ291dEJhY2tvZmZpY2VBdWRpdCkge1xuICAgICAgY3R4LmRpc3BhdGNoKG5ldyBBdWRpdEJhY2tvZmZpY2VBY3Rpb24oKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucm91dGVyLmV2ZW50cy5waXBlKCAvLyBvYnNlcnZlIGFsbCByb3V0ZSBldmVudHNcbiAgICAgIGZpbHRlcihlID0+IGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kICYmIGUudXJsLmluY2x1ZGVzKCcvYWNjb3VudC9sb2dpbicpKSwgLy8gZmlsdGVyIG9ubHkgTmF2aWdhdGlvbkVuZCBldmVudHNcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBmaXJzdCgpLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0aFNlcnZpY2UubG9nb3V0KCkucGlwZShcbiAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgICAgICAgICAgY29uc3QgdGVuYW50ID0gc3BhcmtTZXNzaW9uc1t0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnRdO1xuICAgICAgICAgICAgY29uc3Qgc3NvRW5hYmxlZCA9IHRlbmFudD8udXNlcj8uc3NvQXV0aGVudGljYXRlZDtcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS51c2UoTE9DQUxfRU5HTElTSF9MQU5HVUFHRSk7XG4gICAgICAgICAgICBjdHguZGlzcGF0Y2gobmV3IFRlbmFudENsZWFyQWN0aW9uKCkpO1xuICAgICAgICAgICAgY3R4LmRpc3BhdGNoKG5ldyBVbmxvYWRQYXJraW5nTG90QWN0aW9uKCkpO1xuICAgICAgICAgICAgaWYgKHNzb0VuYWJsZWQpIHtcbiAgICAgICAgICAgICAgY29uc3QgdGVuYW50TmFtZSA9IHRlbmFudD8udGVuYW50Py50ZW5hbnROYW1lO1xuICAgICAgICAgICAgICBjb25zdCBwcm92aWRlciA9IHRlbmFudD8udGVuYW50LnByb3BzPy5zc28/LnByb3ZpZGVyO1xuICAgICAgICAgICAgICBpZiAocHJvdmlkZXIgPT0gU2luZ2xlU2lnbk9uUHJvdmlkZXIuTWljcm9zb2Z0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tc2FsU2VydmljZS5sb2dvdXRSZWRpcmVjdCh7XG4gICAgICAgICAgICAgICAgICBwb3N0TG9nb3V0UmVkaXJlY3RVcmk6IGAvJHt0ZW5hbnROYW1lfWBcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBlbHNlIGlmIChwcm92aWRlciA9PSBTaW5nbGVTaWduT25Qcm92aWRlci5QaW5nRmVkZXJhdGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5JZEF1dGhTZXJ2aWNlLnNpZ25PdXQoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAvL3RoaXMuc2lsZW50TG9nT3V0TXNsKGN0eCwgYXBwVHlwZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSkpO1xuICAgICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1RlbmFudFVuZGVmaW5lZCA9ICh0ZW5hbnQ6IFRlbmFudEluZm8sIHNlc3Npb246IFNwYXJrU2Vzc2lvbikgPT4gIXRlbmFudCB8fCAhc2Vzc2lvbjtcblxuICBzaWxlbnRMb2dPdXRNc2woY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCBhcHBUeXBlOiBBcHBUeXBlKSB7XG4gICAgY29uc3QgY2xlYXJDYWNoZVJlcXVlc3Q6IENsZWFyQ2FjaGVSZXF1ZXN0ID0ge1xuICAgICAgYWNjb3VudDogdGhpcy5tc2FsU2VydmljZS5pbnN0YW5jZS5nZXRBbGxBY2NvdW50cygpWzBdLFxuICAgIH07XG5cbiAgICB0aGlzLm1zYWxTZXJ2aWNlLmluc3RhbmNlLmNsZWFyQ2FjaGUoY2xlYXJDYWNoZVJlcXVlc3QpO1xuICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpO1xuICAgIHNlc3Npb25TdG9yYWdlLmNsZWFyKCk7XG5cbiAgICBjb25zdCBwYXRoID0gZ2V0TmF2aWdhdGlvblJvdXRlKFNlc3Npb25TdGF0ZS50ZW5hbnRJbmZvKGN0eC5nZXRTdGF0ZSgpKSwgYXBwVHlwZSwgWydhY2NvdW50JywgJ2xvZ2luJ10pO1xuICAgIGN0eC5kaXNwYXRjaChuZXcgTmF2aWdhdGUocGF0aCkpO1xuICB9XG5cbiAgQEFjdGlvbihUZW5hbnRMb2FkQWN0aW9uKVxuICBwdWJsaWMgb25UZW5hbnRMb2FkQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPiwgYWN0aW9uOiBUZW5hbnRMb2FkQWN0aW9uKSB7XG4gICAgY29uc3QgdGVuYW50TmFtZSA9IGFjdGlvbi50ZW5hbnQ/LnRlbmFudE5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBzcGFya1Nlc3Npb25zID0gdGhpcy5nZXRTcGFya1Nlc3Npb25zKCk7XG4gICAgaWYgKCFzcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdKSB7XG4gICAgICBzcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdID0geyB1c2VyOiBudWxsLCBhdXRoVG9rZW46IG51bGwsIHJlZnJlc2g6IG51bGwsIHRlbmFudDogYWN0aW9uLnRlbmFudCB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBzcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdLnRlbmFudCA9IGFjdGlvbi50ZW5hbnQ7XG4gICAgfVxuXG4gICAgdGhpcy5zZXRTcGFya1Nlc3Npb25zKGN0eCwgc3BhcmtTZXNzaW9ucyk7XG4gIH1cblxuICBAQWN0aW9uKFRlbmFudENsZWFyQWN0aW9uKVxuICBwdWJsaWMgb25UZW5hbnRDbGVhckFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIF86IFRlbmFudENsZWFyQWN0aW9uKSB7XG4gICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgIGNvbnN0IHNwYXJrU2Vzc2lvbiA9IHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XTtcbiAgICBpZiAoc3BhcmtTZXNzaW9uKSB7XG4gICAgICBzcGFya1Nlc3Npb24udXNlciA9IG51bGw7XG4gICAgICBzcGFya1Nlc3Npb24ucmVmcmVzaCA9IG51bGw7XG4gICAgICBzcGFya1Nlc3Npb24uYXV0aFRva2VuID0gbnVsbDtcbiAgICAgIGlmIChzcGFya1Nlc3Npb24uYXBwQ29uZmlndXJhdGlvbikge1xuICAgICAgICBzcGFya1Nlc3Npb24uYXBwQ29uZmlndXJhdGlvbi5hbmFseXRpY3NUb2tlbiA9ICcnO1xuICAgICAgICBzcGFya1Nlc3Npb24uYXBwQ29uZmlndXJhdGlvbi5mZWVkYmFja1Rva2VuID0gJyc7XG4gICAgICB9XG4gICAgICB0aGlzLnNldFNwYXJrU2Vzc2lvbnMoY3R4LCBzcGFya1Nlc3Npb25zKTtcbiAgICB9XG4gIH1cblxuICBAQWN0aW9uKEhlYWx0aEFjdGlvbilcbiAgcHVibGljIG9uSGVhbHRoQWN0aW9uQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPikge1xuICAgIGNvbnN0IGVudmlyb25tZW50VmFyaWFibGUkID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZVByb3h5LmdldEhlYWx0aCgpO1xuICAgIHJldHVybiBlbnZpcm9ubWVudFZhcmlhYmxlJC5waXBlKHRhcChlbnZpcm9ubWVudFZhcmlhYmxlID0+IHtcbiAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oRU5WSVJPTk1FTlQsIEpTT04uc3RyaW5naWZ5KGVudmlyb25tZW50VmFyaWFibGUuZGF0YS5lbnZpcm9ubWVudCkpO1xuICAgICAgY3R4LnBhdGNoU3RhdGUoeyBzZXJ2ZXJFbnZpcm9ubWVudE1vZGU6IGVudmlyb25tZW50VmFyaWFibGUuZGF0YS5lbnZpcm9ubWVudCB9KTtcbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKFVwZGF0ZVVzZXJTZXR0aW5nc0luU2Vzc2lvbkFjdGlvbilcbiAgcHVibGljIG9uVXBkYXRlVXNlclNldHRpbmdzKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPiwgeyB1c2VyU2V0dGluZ3MgfSkge1xuICAgIGNvbnN0IHNwYXJrU2Vzc2lvbnMgPSB0aGlzLmdldFNwYXJrU2Vzc2lvbnMoKTtcbiAgICBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0udXNlci5zZXR0aW5ncyA9IHVzZXJTZXR0aW5ncztcbiAgICB0aGlzLnNldFNwYXJrU2Vzc2lvbnMoY3R4LCBzcGFya1Nlc3Npb25zKTtcbiAgfVxuXG4gIEBBY3Rpb24oVXBkYXRlVGVuYW50SW5mb1Byb3BzKVxuICBwdWJsaWMgb25VcGRhdGVUZW5hbnRJbmZvUHJvcHMoY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCB7IHByb3BzIH0pIHtcbiAgICBjb25zdCBzcGFya1Nlc3Npb25zID0gdGhpcy5nZXRTcGFya1Nlc3Npb25zKCk7XG4gICAgc3BhcmtTZXNzaW9uc1t0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnRdLnRlbmFudC5wcm9wcyA9IHByb3BzO1xuICAgIHRoaXMuc2V0U3BhcmtTZXNzaW9ucyhjdHgsIHNwYXJrU2Vzc2lvbnMpO1xuICB9XG5cbiAgQEFjdGlvbihBdXRoZW50aWNhdGUyRkFmb3JVc2VyKVxuICBwdWJsaWMgb25BdXRoZW50aWNhdGUyRkFmb3JVc2VyKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPiwgeyB9KSB7XG4gICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgIGlmIChzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0/LnVzZXIpIHtcbiAgICAgIHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XS51c2VyLmF1dGhlbnRpY2F0ZWQyRkEgPSB0cnVlO1xuICAgICAgdGhpcy5zZXRTcGFya1Nlc3Npb25zKGN0eCwgc3BhcmtTZXNzaW9ucyk7XG4gICAgfVxuICB9XG5cbiAgQEFjdGlvbihJbml0U2Vzc2lvbkZyb21Mb2NhbFN0b3JhZ2VBY3Rpb24pXG4gIHB1YmxpYyBvbkxvYWRTZXNzaW9uRnJvbUxvY2FsU3RvcmFnZUFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIF86IEluaXRTZXNzaW9uRnJvbUxvY2FsU3RvcmFnZUFjdGlvbikge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbShTRVNTSU9OKTtcbiAgICBjb25zdCBzZXNzaW9uOiB7XG4gICAgICBhcHBsaWNhdGlvbjogQXBwbGljYXRpb25JbmZvLFxuICAgICAgc3BhcmtTZXNzaW9uczogU3RyaW5nTWFwPFNwYXJrU2Vzc2lvbj4sXG4gICAgfSA9IGRhdGEgPyBKU09OLnBhcnNlKGRhdGEpIDogZGVmYXVsdFNlc3Npb25TdGF0ZTtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBhcHBsaWNhdGlvbjogc2Vzc2lvbi5hcHBsaWNhdGlvbixcbiAgICAgIHNwYXJrU2Vzc2lvbnM6IHNlc3Npb24uc3BhcmtTZXNzaW9uc1xuICAgIH0pO1xuICAgIGlmICh0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnQpIHtcbiAgICAgIGNvbnN0IHNwYXJrU2Vzc2lvbiA9IHNlc3Npb24uc3BhcmtTZXNzaW9uc1t0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnRdO1xuICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2Uuc2V0QXV0aFNlc3Npb24oc3BhcmtTZXNzaW9uPy5hdXRoVG9rZW4sIHNwYXJrU2Vzc2lvbj8ucmVmcmVzaCk7XG4gICAgfVxuICB9XG5cbiAgQEFjdGlvbihMb2FkQmFja29mZmljZUFwcENvbmZpZ3VyYXRpb25BY3Rpb24pXG4gIHB1YmxpYyBvbkJhY2tvZmZpY2VBcHBDb25maWd1cmF0aW9uQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPikge1xuICAgIGNvbnN0IGFwcENvbmZpZ3VyYXRpb24kID0gdGhpcy5iYWNrb2ZmaWNlU2VydmljZVByb3h5LmdldEJhY2tvZmZpY2VBcHBDb25maWd1cmF0aW9uKCk7XG4gICAgcmV0dXJuIGFwcENvbmZpZ3VyYXRpb24kLnBpcGUodGFwKGFwcENvbmZpZ3VyYXRpb24gPT4ge1xuICAgICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgICAgaWYgKHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudCkge1xuICAgICAgICBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0uYXBwQ29uZmlndXJhdGlvbiA9IGFwcENvbmZpZ3VyYXRpb24uZGF0YTtcbiAgICAgICAgdGhpcy5zZXRTcGFya1Nlc3Npb25zKGN0eCwgc3BhcmtTZXNzaW9ucyk7XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihMb2FkQXBwQ29uZmlndXJhdGlvbkFjdGlvbilcbiAgcHVibGljIG9uQXBwQ29uZmlndXJhdGlvbkFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4pIHtcbiAgICBjb25zdCBhcHBDb25maWd1cmF0aW9uJCA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2VQcm94eS5nZXRBcHBDb25maWd1cmF0aW9uKCk7XG4gICAgcmV0dXJuIGFwcENvbmZpZ3VyYXRpb24kLnBpcGUodGFwKGFwcENvbmZpZ3VyYXRpb24gPT4ge1xuICAgICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgICAgaWYgKHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudCkge1xuICAgICAgICBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0uYXBwQ29uZmlndXJhdGlvbiA9IGFwcENvbmZpZ3VyYXRpb24uZGF0YTtcbiAgICAgICAgdGhpcy5zZXRTcGFya1Nlc3Npb25zKGN0eCwgc3BhcmtTZXNzaW9ucyk7XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihMb2FkQXBwQ29uZmlndXJhdGlvbk1vYmlsZUFjdGlvbilcbiAgcHVibGljIG9uTG9hZEFwcENvbmZpZ3VyYXRpb25Nb2JpbGVBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+KSB7XG4gICAgY29uc3QgYXBwQ29uZmlndXJhdGlvbiQgPSB0aGlzLm1vYmlsZVNlcnZpY2VQcm94eUlkZW50aXR5LmdldEFwcENvbmZpZ3VyYXRpb25Nb2JpbGUoVkVSU0lPTl9WMSk7XG4gICAgcmV0dXJuIGFwcENvbmZpZ3VyYXRpb24kLnBpcGUodGFwKGFwcENvbmZpZ3VyYXRpb24gPT4ge1xuICAgICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgICAgaWYgKHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudCkge1xuICAgICAgICBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0uYXBwQ29uZmlndXJhdGlvbiA9IGFwcENvbmZpZ3VyYXRpb24uZGF0YTtcbiAgICAgICAgdGhpcy5zZXRTcGFya1Nlc3Npb25zKGN0eCwgc3BhcmtTZXNzaW9ucyk7XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTcGFya1Nlc3Npb25zID0gKCk6IFN0cmluZ01hcDxTcGFya1Nlc3Npb24+ID0+IEpTT04ucGFyc2UodGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oU0VTU0lPTikpPy5zcGFya1Nlc3Npb25zID8/IHt9O1xuICBwcml2YXRlIHNldFNwYXJrU2Vzc2lvbnMgPSAoY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCBzcGFya1Nlc3Npb25zOiBTdHJpbmdNYXA8U3BhcmtTZXNzaW9uPik6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGFwcGxpY2F0aW9uID0gY3R4LmdldFN0YXRlKCkuYXBwbGljYXRpb247XG4gICAgdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oU0VTU0lPTiwgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgYXBwbGljYXRpb24sXG4gICAgICBzcGFya1Nlc3Npb25zOiBzcGFya1Nlc3Npb25zXG4gICAgfSkpO1xuICAgIGN0eC5wYXRjaFN0YXRlKHsgc3BhcmtTZXNzaW9ucyB9KTtcbiAgfTtcbn1cbiJdfQ==