@bravobit/bb-foundation 0.23.6 → 0.24.0

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 (209) hide show
  1. package/auth/lib/auth.module.d.ts +2 -3
  2. package/auth/lib/auth.session.d.ts +5 -0
  3. package/auth/lib/interfaces/config.interface.d.ts +0 -4
  4. package/auth/public_api.d.ts +0 -5
  5. package/esm2020/auth/lib/auth.interceptor.mjs +4 -4
  6. package/esm2020/auth/lib/auth.module.mjs +7 -16
  7. package/esm2020/auth/lib/auth.service.mjs +6 -6
  8. package/esm2020/auth/lib/auth.session.mjs +8 -1
  9. package/esm2020/auth/lib/directives/authenticated.directive.mjs +4 -4
  10. package/esm2020/auth/lib/guards/anonymous.guard.mjs +4 -4
  11. package/esm2020/auth/lib/guards/authenticated.guard.mjs +4 -4
  12. package/esm2020/auth/lib/interfaces/config.interface.mjs +1 -1
  13. package/esm2020/auth/public_api.mjs +1 -6
  14. package/esm2020/collections/lib/collections.module.mjs +5 -5
  15. package/esm2020/collections/lib/components/collections-pager/collections-pager.component.mjs +4 -4
  16. package/esm2020/collections/lib/components/collections-viewer/collections-viewer.component.mjs +4 -4
  17. package/esm2020/collections/lib/components/collections.directive.mjs +13 -13
  18. package/esm2020/controls/lib/checkbox/checkbox/checkbox.component.mjs +4 -4
  19. package/esm2020/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +4 -4
  20. package/esm2020/controls/lib/checkbox/checkbox.module.mjs +5 -5
  21. package/esm2020/controls/lib/control-error/control-error/control-error.component.mjs +4 -4
  22. package/esm2020/controls/lib/control-error/control-error-submit.directive.mjs +4 -4
  23. package/esm2020/controls/lib/control-error/control-error.module.mjs +5 -5
  24. package/esm2020/controls/lib/controls.module.mjs +5 -5
  25. package/esm2020/controls/lib/form-control/form-control/form-control.component.mjs +4 -4
  26. package/esm2020/controls/lib/form-control/form-control-addon/form-control-addon.component.mjs +4 -4
  27. package/esm2020/controls/lib/form-control/form-control-input.directive.mjs +4 -4
  28. package/esm2020/controls/lib/form-control/form-control.module.mjs +5 -5
  29. package/esm2020/controls/lib/radio/radio-button/radio-button.component.mjs +4 -4
  30. package/esm2020/controls/lib/radio/radio-group/radio-group.component.mjs +4 -4
  31. package/esm2020/controls/lib/radio/radio.module.mjs +5 -5
  32. package/esm2020/controls/lib/toggle/toggle/toggle.component.mjs +4 -4
  33. package/esm2020/controls/lib/toggle/toggle-group/toggle-group.component.mjs +4 -4
  34. package/esm2020/controls/lib/toggle/toggle.module.mjs +5 -5
  35. package/esm2020/dashboard/lib/dashboard/dashboard.component.mjs +4 -4
  36. package/esm2020/dashboard/lib/dashboard-header/dashboard-header.component.mjs +4 -4
  37. package/esm2020/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +4 -4
  38. package/esm2020/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +4 -4
  39. package/esm2020/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +4 -4
  40. package/esm2020/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +4 -4
  41. package/esm2020/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +4 -4
  42. package/esm2020/dashboard/lib/dashboard.module.mjs +5 -5
  43. package/esm2020/dialog/lib/dialog-actions/dialog-actions.component.mjs +4 -4
  44. package/esm2020/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +4 -4
  45. package/esm2020/dialog/lib/dialog-container/dialog-container.component.mjs +4 -4
  46. package/esm2020/dialog/lib/dialog-header/dialog-header.component.mjs +4 -4
  47. package/esm2020/dialog/lib/dialog-link/dialog-link.component.mjs +4 -4
  48. package/esm2020/dialog/lib/dialog-modal/dialog-modal.component.mjs +4 -4
  49. package/esm2020/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +4 -4
  50. package/esm2020/dialog/lib/dialog.insertion.mjs +4 -4
  51. package/esm2020/dialog/lib/dialog.module.mjs +5 -5
  52. package/esm2020/dialog/lib/dialog.service.mjs +4 -4
  53. package/esm2020/elements/lib/avatar/avatar.component.mjs +4 -4
  54. package/esm2020/elements/lib/button/button.component.mjs +7 -7
  55. package/esm2020/elements/lib/checkbox/checkbox.component.mjs +4 -4
  56. package/esm2020/elements/lib/date-picker/date-picker.component.mjs +4 -4
  57. package/esm2020/elements/lib/directives/addon.directive.mjs +7 -7
  58. package/esm2020/elements/lib/directives/form-submit.directive.mjs +4 -4
  59. package/esm2020/elements/lib/directives/form-submitter.directive.mjs +4 -4
  60. package/esm2020/elements/lib/directives/input.directive.mjs +7 -7
  61. package/esm2020/elements/lib/dropdown/dropdown.component.mjs +7 -7
  62. package/esm2020/elements/lib/elements.module.mjs +5 -5
  63. package/esm2020/elements/lib/file-picker/file-picker.component.mjs +4 -4
  64. package/esm2020/elements/lib/form-control/form-control.component.mjs +4 -4
  65. package/esm2020/elements/lib/form-error/form-error.component.mjs +4 -4
  66. package/esm2020/elements/lib/form-group/form-group.component.mjs +4 -4
  67. package/esm2020/elements/lib/icon/icon.component.mjs +4 -4
  68. package/esm2020/elements/lib/image-picker/image-picker.component.mjs +4 -4
  69. package/esm2020/elements/lib/pipes/file-image.pipe.mjs +4 -4
  70. package/esm2020/elements/lib/pipes/file-size.pipe.mjs +4 -4
  71. package/esm2020/elements/lib/pipes/relative-time.pipe.mjs +4 -4
  72. package/esm2020/elements/lib/spinner/spinner.component.mjs +4 -4
  73. package/esm2020/elements/lib/tag/tag.component.mjs +4 -4
  74. package/esm2020/http/lib/http.module.mjs +5 -5
  75. package/esm2020/http/lib/interceptors/base-url.interceptor.mjs +4 -4
  76. package/esm2020/http/lib/interceptors/error.interceptor.mjs +4 -4
  77. package/esm2020/lib/core/services/clipboard.service.mjs +4 -4
  78. package/esm2020/lib/core/services/exif.service.mjs +4 -4
  79. package/esm2020/lib/core/services/file-loader.service.mjs +4 -4
  80. package/esm2020/lib/core/services/image-converter.service.mjs +4 -4
  81. package/esm2020/lib/core/services/languages.service.mjs +4 -4
  82. package/esm2020/lib/core/services/network.service.mjs +4 -4
  83. package/esm2020/lib/core/services/patch.service.mjs +4 -4
  84. package/esm2020/localize/lib/localize.module.mjs +5 -5
  85. package/esm2020/localize/lib/localize.pipe.mjs +4 -4
  86. package/esm2020/localize/lib/localize.service.mjs +4 -4
  87. package/esm2020/localize/lib/views/localize-string/localize-string.component.mjs +4 -4
  88. package/esm2020/localize/lib/views/localize-template.directive.mjs +4 -4
  89. package/esm2020/masking/lib/directives/currency-mask.directive.mjs +4 -4
  90. package/esm2020/masking/lib/directives/date-mask.directive.mjs +4 -4
  91. package/esm2020/masking/lib/directives/input-mask.directive.mjs +4 -4
  92. package/esm2020/masking/lib/masking.module.mjs +5 -5
  93. package/esm2020/masking/lib/masking.service.mjs +4 -4
  94. package/esm2020/notifications/lib/notifications-item/notifications-item.component.mjs +4 -4
  95. package/esm2020/notifications/lib/notifications-list/notifications-list.component.mjs +4 -4
  96. package/esm2020/notifications/lib/notifications.module.mjs +5 -5
  97. package/esm2020/notifications/lib/notifications.service.mjs +4 -4
  98. package/esm2020/permissions/bravobit-bb-foundation-permissions.mjs +5 -0
  99. package/esm2020/permissions/lib/directives/permission.directive.mjs +88 -0
  100. package/esm2020/permissions/lib/guards/permission.guard.mjs +57 -0
  101. package/esm2020/permissions/lib/handlers/abstract.handler.mjs +3 -0
  102. package/esm2020/permissions/lib/handlers/role.handler.mjs +27 -0
  103. package/esm2020/permissions/lib/permissions.interface.mjs +3 -0
  104. package/esm2020/permissions/lib/permissions.module.mjs +39 -0
  105. package/esm2020/permissions/lib/permissions.service.mjs +86 -0
  106. package/esm2020/permissions/public_api.mjs +8 -0
  107. package/esm2020/recaptcha/lib/recaptcha/recaptcha.component.mjs +4 -4
  108. package/esm2020/recaptcha/lib/recaptcha-loader.service.mjs +4 -4
  109. package/esm2020/recaptcha/lib/recaptcha.module.mjs +5 -5
  110. package/esm2020/storage/lib/storage.service.mjs +4 -4
  111. package/esm2020/table/lib/components/table/table.component.mjs +10 -10
  112. package/esm2020/table/lib/components/table-cell/table-cell.component.mjs +4 -4
  113. package/esm2020/table/lib/components/table-header-cell/table-header-cell.component.mjs +4 -4
  114. package/esm2020/table/lib/components/table-pager/table-pager.component.mjs +4 -4
  115. package/esm2020/table/lib/table.module.mjs +5 -5
  116. package/esm2020/theming/lib/theming.directive.mjs +4 -4
  117. package/esm2020/theming/lib/theming.module.mjs +5 -5
  118. package/esm2020/utils/lib/directives/autosize.directive.mjs +4 -4
  119. package/esm2020/utils/lib/directives/focus-trap.directive.mjs +4 -4
  120. package/esm2020/utils/lib/directives/focus.directive.mjs +4 -4
  121. package/esm2020/utils/lib/directives/template.directive.mjs +4 -4
  122. package/esm2020/utils/lib/utils.module.mjs +5 -5
  123. package/fesm2015/bravobit-bb-foundation-auth.mjs +40 -254
  124. package/fesm2015/bravobit-bb-foundation-auth.mjs.map +1 -1
  125. package/fesm2015/bravobit-bb-foundation-collections.mjs +22 -22
  126. package/fesm2015/bravobit-bb-foundation-collections.mjs.map +1 -1
  127. package/fesm2015/bravobit-bb-foundation-controls.mjs +57 -57
  128. package/fesm2015/bravobit-bb-foundation-controls.mjs.map +1 -1
  129. package/fesm2015/bravobit-bb-foundation-dashboard.mjs +25 -25
  130. package/fesm2015/bravobit-bb-foundation-dashboard.mjs.map +1 -1
  131. package/fesm2015/bravobit-bb-foundation-dialog.mjs +31 -31
  132. package/fesm2015/bravobit-bb-foundation-dialog.mjs.map +1 -1
  133. package/fesm2015/bravobit-bb-foundation-elements.mjs +76 -76
  134. package/fesm2015/bravobit-bb-foundation-elements.mjs.map +1 -1
  135. package/fesm2015/bravobit-bb-foundation-http.mjs +10 -10
  136. package/fesm2015/bravobit-bb-foundation-http.mjs.map +1 -1
  137. package/fesm2015/bravobit-bb-foundation-localize.mjs +16 -16
  138. package/fesm2015/bravobit-bb-foundation-localize.mjs.map +1 -1
  139. package/fesm2015/bravobit-bb-foundation-masking.mjs +16 -16
  140. package/fesm2015/bravobit-bb-foundation-masking.mjs.map +1 -1
  141. package/fesm2015/bravobit-bb-foundation-notifications.mjs +13 -13
  142. package/fesm2015/bravobit-bb-foundation-notifications.mjs.map +1 -1
  143. package/fesm2015/bravobit-bb-foundation-permissions.mjs +301 -0
  144. package/fesm2015/bravobit-bb-foundation-permissions.mjs.map +1 -0
  145. package/fesm2015/bravobit-bb-foundation-recaptcha.mjs +10 -10
  146. package/fesm2015/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
  147. package/fesm2015/bravobit-bb-foundation-storage.mjs +3 -3
  148. package/fesm2015/bravobit-bb-foundation-storage.mjs.map +1 -1
  149. package/fesm2015/bravobit-bb-foundation-table.mjs +22 -22
  150. package/fesm2015/bravobit-bb-foundation-table.mjs.map +1 -1
  151. package/fesm2015/bravobit-bb-foundation-theming.mjs +7 -7
  152. package/fesm2015/bravobit-bb-foundation-theming.mjs.map +1 -1
  153. package/fesm2015/bravobit-bb-foundation-utils.mjs +16 -16
  154. package/fesm2015/bravobit-bb-foundation-utils.mjs.map +1 -1
  155. package/fesm2015/bravobit-bb-foundation.mjs +21 -21
  156. package/fesm2015/bravobit-bb-foundation.mjs.map +1 -1
  157. package/fesm2020/bravobit-bb-foundation-auth.mjs +33 -231
  158. package/fesm2020/bravobit-bb-foundation-auth.mjs.map +1 -1
  159. package/fesm2020/bravobit-bb-foundation-collections.mjs +22 -22
  160. package/fesm2020/bravobit-bb-foundation-collections.mjs.map +1 -1
  161. package/fesm2020/bravobit-bb-foundation-controls.mjs +57 -57
  162. package/fesm2020/bravobit-bb-foundation-controls.mjs.map +1 -1
  163. package/fesm2020/bravobit-bb-foundation-dashboard.mjs +25 -25
  164. package/fesm2020/bravobit-bb-foundation-dashboard.mjs.map +1 -1
  165. package/fesm2020/bravobit-bb-foundation-dialog.mjs +31 -31
  166. package/fesm2020/bravobit-bb-foundation-dialog.mjs.map +1 -1
  167. package/fesm2020/bravobit-bb-foundation-elements.mjs +76 -76
  168. package/fesm2020/bravobit-bb-foundation-elements.mjs.map +1 -1
  169. package/fesm2020/bravobit-bb-foundation-http.mjs +10 -10
  170. package/fesm2020/bravobit-bb-foundation-http.mjs.map +1 -1
  171. package/fesm2020/bravobit-bb-foundation-localize.mjs +16 -16
  172. package/fesm2020/bravobit-bb-foundation-localize.mjs.map +1 -1
  173. package/fesm2020/bravobit-bb-foundation-masking.mjs +16 -16
  174. package/fesm2020/bravobit-bb-foundation-masking.mjs.map +1 -1
  175. package/fesm2020/bravobit-bb-foundation-notifications.mjs +13 -13
  176. package/fesm2020/bravobit-bb-foundation-notifications.mjs.map +1 -1
  177. package/fesm2020/bravobit-bb-foundation-permissions.mjs +289 -0
  178. package/fesm2020/bravobit-bb-foundation-permissions.mjs.map +1 -0
  179. package/fesm2020/bravobit-bb-foundation-recaptcha.mjs +10 -10
  180. package/fesm2020/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
  181. package/fesm2020/bravobit-bb-foundation-storage.mjs +3 -3
  182. package/fesm2020/bravobit-bb-foundation-storage.mjs.map +1 -1
  183. package/fesm2020/bravobit-bb-foundation-table.mjs +22 -22
  184. package/fesm2020/bravobit-bb-foundation-table.mjs.map +1 -1
  185. package/fesm2020/bravobit-bb-foundation-theming.mjs +7 -7
  186. package/fesm2020/bravobit-bb-foundation-theming.mjs.map +1 -1
  187. package/fesm2020/bravobit-bb-foundation-utils.mjs +16 -16
  188. package/fesm2020/bravobit-bb-foundation-utils.mjs.map +1 -1
  189. package/fesm2020/bravobit-bb-foundation.mjs +21 -21
  190. package/fesm2020/bravobit-bb-foundation.mjs.map +1 -1
  191. package/package.json +13 -5
  192. package/permissions/index.d.ts +5 -0
  193. package/{auth → permissions}/lib/directives/permission.directive.d.ts +9 -4
  194. package/{auth → permissions}/lib/guards/permission.guard.d.ts +4 -5
  195. package/permissions/lib/handlers/abstract.handler.d.ts +4 -0
  196. package/permissions/lib/handlers/role.handler.d.ts +9 -0
  197. package/permissions/lib/permissions.interface.d.ts +11 -0
  198. package/permissions/lib/permissions.module.d.ts +10 -0
  199. package/permissions/lib/permissions.service.d.ts +22 -0
  200. package/permissions/public_api.d.ts +7 -0
  201. package/README.md +0 -47
  202. package/auth/lib/interfaces/permission.interface.d.ts +0 -6
  203. package/auth/lib/permissions/permissions.handler.d.ts +0 -9
  204. package/auth/lib/permissions/permissions.service.d.ts +0 -16
  205. package/esm2020/auth/lib/directives/permission.directive.mjs +0 -58
  206. package/esm2020/auth/lib/guards/permission.guard.mjs +0 -63
  207. package/esm2020/auth/lib/interfaces/permission.interface.mjs +0 -2
  208. package/esm2020/auth/lib/permissions/permissions.handler.mjs +0 -33
  209. package/esm2020/auth/lib/permissions/permissions.service.mjs +0 -64
@@ -3,12 +3,11 @@ import { AuthConfig } from './interfaces/config.interface';
3
3
  import { Auth } from './auth.service';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "./directives/authenticated.directive";
6
- import * as i2 from "./directives/permission.directive";
7
- import * as i3 from "@angular/common/http";
6
+ import * as i2 from "@angular/common/http";
8
7
  export declare class AuthModule {
9
8
  static forRoot(config: AuthConfig): ModuleWithProviders<AuthModule>;
10
9
  static ɵfac: i0.ɵɵFactoryDeclaration<AuthModule, never>;
11
- static ɵmod: i0.ɵɵNgModuleDeclaration<AuthModule, [typeof i1.BbAuthenticated, typeof i2.BbPermission], [typeof i3.HttpClientModule], [typeof i1.BbAuthenticated, typeof i2.BbPermission]>;
10
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AuthModule, [typeof i1.BbAuthenticated], [typeof i2.HttpClientModule], [typeof i1.BbAuthenticated]>;
12
11
  static ɵinj: i0.ɵɵInjectorDeclaration<AuthModule>;
13
12
  }
14
13
  export declare function initializeAuth(auth: Auth): () => Promise<void>;
@@ -16,6 +16,11 @@ export declare class AuthSession {
16
16
  id?: string;
17
17
  storage?: StorageStrategy;
18
18
  });
19
+ get snapshot(): {
20
+ user: any;
21
+ accessToken: string;
22
+ refreshToken: string;
23
+ };
19
24
  get accessToken(): string;
20
25
  get refreshToken(): string;
21
26
  get accessTokenPayload(): AuthToken;
@@ -1,5 +1,4 @@
1
1
  import { ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree } from '@angular/router';
2
- import { AppPermissions } from '../permissions/permissions.handler';
3
2
  import { InjectionToken } from '@angular/core';
4
3
  export declare class AuthConfig {
5
4
  applicationId: string;
@@ -10,17 +9,14 @@ export declare class AuthConfig {
10
9
  redirects?: {
11
10
  authenticated?: string | string[];
12
11
  unauthenticated?: string | string[];
13
- permissionDenied?: string | string[];
14
12
  };
15
13
  setRedirectOnFailedAuth?: boolean;
16
14
  bootstrap?: boolean;
17
15
  providers?: string[];
18
16
  autoRefresh?: boolean;
19
- permissions?: AppPermissions<any, any>;
20
17
  }
21
18
  export declare const AUTH_REDIRECT_HANDLER: InjectionToken<AuthRedirectHandler>;
22
19
  export interface AuthRedirectHandler {
23
20
  onFailedAuthenticated(snapshot?: ActivatedRouteSnapshot, state?: RouterStateSnapshot): boolean | UrlTree;
24
21
  onFailedAnonymous(snapshot?: ActivatedRouteSnapshot, state?: RouterStateSnapshot): boolean | UrlTree;
25
- onPermissionDenied(snapshot?: ActivatedRouteSnapshot, state?: RouterStateSnapshot): boolean | UrlTree;
26
22
  }
@@ -1,16 +1,11 @@
1
1
  export * from './lib/interfaces/token.interface';
2
2
  export * from './lib/interfaces/config.interface';
3
3
  export * from './lib/interfaces/provider.interface';
4
- export * from './lib/interfaces/permission.interface';
5
4
  export * from './lib/tokens/use-authorization.token';
6
5
  export * from './lib/helpers/jwt.helper';
7
6
  export * from './lib/directives/authenticated.directive';
8
- export * from './lib/directives/permission.directive';
9
- export * from './lib/permissions/permissions.handler';
10
- export * from './lib/permissions/permissions.service';
11
7
  export * from './lib/guards/anonymous.guard';
12
8
  export * from './lib/guards/authenticated.guard';
13
- export * from './lib/guards/permission.guard';
14
9
  export * from './lib/providers/email.provider';
15
10
  export * from './lib/providers/verify.provider';
16
11
  export * from './lib/auth.session';
@@ -80,11 +80,11 @@ export class AuthInterceptor {
80
80
  return of(null);
81
81
  }
82
82
  }
83
- AuthInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AuthInterceptor, deps: [{ token: i1.Auth }, { token: i2.AuthConfig, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
84
- AuthInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AuthInterceptor });
85
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AuthInterceptor, decorators: [{
83
+ AuthInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: AuthInterceptor, deps: [{ token: i1.Auth }, { token: i2.AuthConfig, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
84
+ AuthInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: AuthInterceptor });
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: AuthInterceptor, decorators: [{
86
86
  type: Injectable
87
87
  }], ctorParameters: function () { return [{ type: i1.Auth }, { type: i2.AuthConfig, decorators: [{
88
88
  type: Optional
89
89
  }] }]; } });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vYXV0aC9zcmMvbGliL2F1dGguaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUE0QyxNQUFNLHNCQUFzQixDQUFDO0FBQ2xHLE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFFbkUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxlQUFlLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUMsVUFBVSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7OztBQUluRCxNQUFNLE9BQU8sZUFBZTtJQVV4QixZQUFvQixLQUFXLEVBQ0MsT0FBbUI7UUFEL0IsVUFBSyxHQUFMLEtBQUssQ0FBTTtRQUNDLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFUbkQsaUJBQWlCO1FBQ0Esc0JBQWlCLEdBQVcsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxJQUFJLGVBQWUsQ0FBQztRQUMxRSxnQkFBVyxHQUFXLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sSUFBSSxRQUFRLENBQUM7UUFFOUUsUUFBUTtRQUNSLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLDJCQUFzQixHQUFHLElBQUksZUFBZSxDQUFnQixJQUFJLENBQUMsQ0FBQztRQWtFMUQsbUJBQWMsR0FBRyxDQUFDLE9BQTZCLEVBQUUsRUFBRTtZQUN2RCxpQ0FBaUM7WUFDakMsSUFBSSxPQUFPLENB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Q2pCLE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUMsQ0FBQzthQUN6RTtZQUVELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDakQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUM3RSxDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQ25DLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxDQUM1QyxDQUFDO0lBQ04sQ0FBQztJQUVPLFVBQVU7UUFDZCw0QkFBNEI7UUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRTlCLHVCQUF1QjtRQUN2QixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQixDQUFDOzs0R0F4RVEsZUFBZTtnSEFBZixlQUFlOzJGQUFmLGVBQWU7a0JBRDNCLFVBQVU7OzBCQVlNLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBFcnJvclJlc3BvbnNlLCBIdHRwSGFuZGxlciwgSHR0cEludGVyY2VwdG9yLCBIdHRwUmVxdWVzdH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBmaWx0ZXIsIGZpbmFsaXplLCBzd2l0Y2hNYXAsIHRha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7VVNFX0FVVEhPUklaQVRJT059IGZyb20gJy4vdG9rZW5zL3VzZS1hdXRob3JpemF0aW9uLnRva2VuJztcbmltcG9ydCB7QXV0aENvbmZpZ30gZnJvbSAnLi9pbnRlcmZhY2VzL2NvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHtIdHRwRXJyb3J9IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uL2h0dHAnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIG9mLCB0aHJvd0Vycm9yfSBmcm9tICdyeGpzJztcbmltcG9ydCB7SW5qZWN0YWJsZSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBdXRofSBmcm9tICcuL2F1dGguc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBdXRoSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xuXG4gICAgLy8gUmVhZG9ubHkgZGF0YS5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9hdXRoSGVhZGVyU3RyaW5nOiBzdHJpbmcgPSB0aGlzLl9jb25maWc/Lmh0dHA/LmhlYWRlciA/PyAnQXV0aG9yaXphdGlvbic7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfYXV0aFNjaGVtZTogc3RyaW5nID0gdGhpcy5fY29uZmlnPy5odHRwPy5zY2hlbWUgPz8gJ0JlYXJlcic7XG5cbiAgICAvLyBEYXRhLlxuICAgIGlzUmVmcmVzaGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHJlZnJlc2hpbmdBY2Nlc3NUb2tlbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IG51bGw+KG51bGwpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfYXV0aDogQXV0aCxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9jb25maWc6IEF1dGhDb25maWcpIHtcbiAgICB9XG5cbiAgICBpbnRlcmNlcHQocmVxdWVzdDogSHR0cFJlcXVlc3Q8dW5rbm93bj4sIG5leHQ6IEh0dHBIYW5kbGVyKSB7XG4gICAgICAgIC8vIDEuIENoZWNrIGlmIHRoZSB1c2VyIHdhbnRzIHRvIHVzZSB0aGUgYXV0aG9yaXphdGlvbiBmb3IgdGhpcyByZXF1ZXN0LlxuICAgICAgICBpZiAoIXJlcXVlc3QuY29udGV4dC5nZXQoVVNFX0FVVEhPUklaQVRJT04pKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyAyLiBDb21wb3NlIHRoZSBuZXcgcmVxdWVzdC5cbiAgICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSB0aGlzLmdldEFjY2Vzc1Rva2VuKHJlcXVlc3QpO1xuICAgICAgICBjb25zdCBuZXdSZXF1ZXN0ID0gdGhpcy5hZGRBdXRob3JpemF0aW9uSGVhZGVyKHJlcXVlc3QsIGFjY2Vzc1Rva2VuKTtcblxuICAgICAgICAvLyAzLiBIYW5kbGUgYWxsIGVycm9ycy5cbiAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKG5ld1JlcXVlc3QpLnBpcGUoXG4gICAgICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICAgICAgICAvLyBIYW5kbGUgdGhlIEhUVFA0MDEgZXJyb3IuXG4gICAgICAgICAgICAgICAgaWYgKChlcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlIHx8IGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yKSAmJiBlcnJvcj8uc3RhdHVzID09PSA0MDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlNDAxRXJyb3IocmVxdWVzdCwgbmV4dCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gSnVzdCByZS10aHJvdyB0aGUgcGFyc2VkIGVycm9yLlxuICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGU0MDFFcnJvcihyZXF1ZXN0OiBIdHRwUmVxdWVzdDx1bmtub3duPiwgbmV4dDogSHR0cEhhbmRsZXIpIHtcbiAgICAgICAgLy8gSWYgYWxyZWFkeSByZWZyZXNoaW5nIHdhaXQgZm9yIHRoZSByZWZyZXNoIHRva2VuIHRvIGNvbXBsZXRlLlxuICAgICAgICBpZiAodGhpcy5pc1JlZnJlc2hpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJlZnJlc2hpbmdBY2Nlc3NUb2tlbiQucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoYWNjZXNzVG9rZW4gPT4gYWNjZXNzVG9rZW4gIT09IG51bGwpLFxuICAgICAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKGFjY2Vzc1Rva2VuID0+IG5leHQuaGFuZGxlKHRoaXMuYWRkQXV0aG9yaXphdGlvbkhlYWRlcihyZXF1ZXN0LCBhY2Nlc3NUb2tlbikpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNldCB0aGUgcmVmcmVzaGluZyB0byB0cnVlLlxuICAgICAgICB0aGlzLmlzUmVmcmVzaGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMucmVmcmVzaGluZ0FjY2Vzc1Rva2VuJC5uZXh0KG51bGwpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLl9hdXRoLnJlZnJlc2goKS5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKG5ld0FjY2Vzc1Rva2VuID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIW5ld0FjY2Vzc1Rva2VuKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcignTm8gcmVmcmVzaCB0b2tlbiB3YXMgYXZhaWxhYmxlLicpKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hpbmdBY2Nlc3NUb2tlbiQubmV4dChuZXdBY2Nlc3NUb2tlbik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHRoaXMuYWRkQXV0aG9yaXphdGlvbkhlYWRlcihyZXF1ZXN0LCBuZXdBY2Nlc3NUb2tlbikpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IHRoaXMubG9nb3V0VXNlcigpKSxcbiAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuaXNSZWZyZXNoaW5nID0gZmFsc2UpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2dvdXRVc2VyKCkge1xuICAgICAgICAvLyBIYW5kbGUgdGhlIHJlZnJlc2ggZXJyb3IuXG4gICAgICAgIHRoaXMuX2F1dGguY2xlYXJBbmRSZWRpcmVjdCgpO1xuXG4gICAgICAgIC8vIFJldHVybiBudWxsIGFzIGRhdGEuXG4gICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEFjY2Vzc1Rva2VuID0gKHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PHVua25vd24+KSA9PiB7XG4gICAgICAgIC8vIEdldCB0aGUgdG9rZW4gYmFzZWQgb24gaGVhZGVyLlxuICAgICAgICBpZiAocmVxdWVzdC5oZWFkZXJzLmhhcyh0aGlzLl9hdXRoSGVhZGVyU3RyaW5nKSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QuaGVhZGVycy5nZXQodGhpcy5fYXV0aEhlYWRlclN0cmluZyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZXR1cm4gdGhlIGRlZmF1bHQgYWNjZXNzIHRva2VuLlxuICAgICAgICByZXR1cm4gdGhpcy5fYXV0aC5zZXNzaW9uLmFjY2Vzc1Rva2VuO1xuICAgIH07XG5cbiAgICBwcml2YXRlIGFkZEF1dGhvcml6YXRpb25IZWFkZXIgPSAocmVxdWVzdDogSHR0cFJlcXVlc3Q8dW5rbm93bj4sIGFjY2Vzc1Rva2VuOiBzdHJpbmcgfCBudWxsID0gbnVsbCkgPT4ge1xuICAgICAgICAvLyBSZW1vdmUgYXV0aCBoZWFkZXIgd2hlbiB3ZSBkbyBub3QgaGF2ZVxuICAgICAgICAvLyBhbiBhY2Nlc3MgdG9rZW4uXG4gICAgICAgIGlmICghYWNjZXNzVG9rZW4pIHtcbiAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LmNsb25lKHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiByZXF1ZXN0LmhlYWRlcnMuZGVsZXRlKHRoaXMuX2F1dGhIZWFkZXJTdHJpbmcpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFkZCB0aGUgYXV0aCBoZWFkZXIgdG8gdGhlIHJlcXVlc3QuXG4gICAgICAgIHJldHVybiByZXF1ZXN0LmNsb25lKHtcbiAgICAgICAgICAgIHNldEhlYWRlcnM6IHtbdGhpcy5fYXV0aEhlYWRlclN0cmluZ106IGAke3RoaXMuX2F1dGhTY2hlbWV9ICR7YWNjZXNzVG9rZW59YH1cbiAgICAgICAgfSk7XG4gICAgfTtcblxufVxuIl19
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vYXV0aC9zcmMvbGliL2F1dGguaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUE0QyxNQUFNLHNCQUFzQixDQUFDO0FBQ2xHLE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFFbkUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxlQUFlLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUMsVUFBVSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7OztBQUluRCxNQUFNLE9BQU8sZUFBZTtJQVV4QixZQUFvQixLQUFXLEVBQ0MsT0FBbUI7UUFEL0IsVUFBSyxHQUFMLEtBQUssQ0FBTTtRQUNDLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFUbkQsaUJBQWlCO1FBQ0Esc0JBQWlCLEdBQVcsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxJQUFJLGVBQWUsQ0FBQztRQUMxRSxnQkFBVyxHQUFXLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sSUFBSSxRQUFRLENBQUM7UUFFOUUsUUFBUTtRQUNSLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLDJCQUFzQixHQUFHLElBQUksZUFBZSxDQUFnQixJQUFJLENBQUMsQ0FBQztRQWtFMUQsbUJBQWMsR0FBRyxDQUFDLE9BQTZCLEVBQUUsRUFBRTtZQUN2RCxpQ0FBaUM7WUFDakMsSUFBSSxPQUFPLENB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Q2pCLE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUMsQ0FBQzthQUN6RTtZQUVELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDakQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUM3RSxDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQ25DLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxDQUM1QyxDQUFDO0lBQ04sQ0FBQztJQUVPLFVBQVU7UUFDZCw0QkFBNEI7UUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRTlCLHVCQUF1QjtRQUN2QixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQixDQUFDOzs2R0F4RVEsZUFBZTtpSEFBZixlQUFlOzRGQUFmLGVBQWU7a0JBRDNCLFVBQVU7OzBCQVlNLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBFcnJvclJlc3BvbnNlLCBIdHRwSGFuZGxlciwgSHR0cEludGVyY2VwdG9yLCBIdHRwUmVxdWVzdH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBmaWx0ZXIsIGZpbmFsaXplLCBzd2l0Y2hNYXAsIHRha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7VVNFX0FVVEhPUklaQVRJT059IGZyb20gJy4vdG9rZW5zL3VzZS1hdXRob3JpemF0aW9uLnRva2VuJztcbmltcG9ydCB7QXV0aENvbmZpZ30gZnJvbSAnLi9pbnRlcmZhY2VzL2NvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHtIdHRwRXJyb3J9IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uL2h0dHAnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIG9mLCB0aHJvd0Vycm9yfSBmcm9tICdyeGpzJztcbmltcG9ydCB7SW5qZWN0YWJsZSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBdXRofSBmcm9tICcuL2F1dGguc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBdXRoSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xuXG4gICAgLy8gUmVhZG9ubHkgZGF0YS5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9hdXRoSGVhZGVyU3RyaW5nOiBzdHJpbmcgPSB0aGlzLl9jb25maWc/Lmh0dHA/LmhlYWRlciA/PyAnQXV0aG9yaXphdGlvbic7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfYXV0aFNjaGVtZTogc3RyaW5nID0gdGhpcy5fY29uZmlnPy5odHRwPy5zY2hlbWUgPz8gJ0JlYXJlcic7XG5cbiAgICAvLyBEYXRhLlxuICAgIGlzUmVmcmVzaGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHJlZnJlc2hpbmdBY2Nlc3NUb2tlbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IG51bGw+KG51bGwpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfYXV0aDogQXV0aCxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9jb25maWc6IEF1dGhDb25maWcpIHtcbiAgICB9XG5cbiAgICBpbnRlcmNlcHQocmVxdWVzdDogSHR0cFJlcXVlc3Q8dW5rbm93bj4sIG5leHQ6IEh0dHBIYW5kbGVyKSB7XG4gICAgICAgIC8vIDEuIENoZWNrIGlmIHRoZSB1c2VyIHdhbnRzIHRvIHVzZSB0aGUgYXV0aG9yaXphdGlvbiBmb3IgdGhpcyByZXF1ZXN0LlxuICAgICAgICBpZiAoIXJlcXVlc3QuY29udGV4dC5nZXQoVVNFX0FVVEhPUklaQVRJT04pKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyAyLiBDb21wb3NlIHRoZSBuZXcgcmVxdWVzdC5cbiAgICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSB0aGlzLmdldEFjY2Vzc1Rva2VuKHJlcXVlc3QpO1xuICAgICAgICBjb25zdCBuZXdSZXF1ZXN0ID0gdGhpcy5hZGRBdXRob3JpemF0aW9uSGVhZGVyKHJlcXVlc3QsIGFjY2Vzc1Rva2VuKTtcblxuICAgICAgICAvLyAzLiBIYW5kbGUgYWxsIGVycm9ycy5cbiAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKG5ld1JlcXVlc3QpLnBpcGUoXG4gICAgICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICAgICAgICAvLyBIYW5kbGUgdGhlIEhUVFA0MDEgZXJyb3IuXG4gICAgICAgICAgICAgICAgaWYgKChlcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlIHx8IGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yKSAmJiBlcnJvcj8uc3RhdHVzID09PSA0MDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlNDAxRXJyb3IocmVxdWVzdCwgbmV4dCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gSnVzdCByZS10aHJvdyB0aGUgcGFyc2VkIGVycm9yLlxuICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGU0MDFFcnJvcihyZXF1ZXN0OiBIdHRwUmVxdWVzdDx1bmtub3duPiwgbmV4dDogSHR0cEhhbmRsZXIpIHtcbiAgICAgICAgLy8gSWYgYWxyZWFkeSByZWZyZXNoaW5nIHdhaXQgZm9yIHRoZSByZWZyZXNoIHRva2VuIHRvIGNvbXBsZXRlLlxuICAgICAgICBpZiAodGhpcy5pc1JlZnJlc2hpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJlZnJlc2hpbmdBY2Nlc3NUb2tlbiQucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoYWNjZXNzVG9rZW4gPT4gYWNjZXNzVG9rZW4gIT09IG51bGwpLFxuICAgICAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKGFjY2Vzc1Rva2VuID0+IG5leHQuaGFuZGxlKHRoaXMuYWRkQXV0aG9yaXphdGlvbkhlYWRlcihyZXF1ZXN0LCBhY2Nlc3NUb2tlbikpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNldCB0aGUgcmVmcmVzaGluZyB0byB0cnVlLlxuICAgICAgICB0aGlzLmlzUmVmcmVzaGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMucmVmcmVzaGluZ0FjY2Vzc1Rva2VuJC5uZXh0KG51bGwpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLl9hdXRoLnJlZnJlc2goKS5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKG5ld0FjY2Vzc1Rva2VuID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIW5ld0FjY2Vzc1Rva2VuKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcignTm8gcmVmcmVzaCB0b2tlbiB3YXMgYXZhaWxhYmxlLicpKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hpbmdBY2Nlc3NUb2tlbiQubmV4dChuZXdBY2Nlc3NUb2tlbik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHRoaXMuYWRkQXV0aG9yaXphdGlvbkhlYWRlcihyZXF1ZXN0LCBuZXdBY2Nlc3NUb2tlbikpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IHRoaXMubG9nb3V0VXNlcigpKSxcbiAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuaXNSZWZyZXNoaW5nID0gZmFsc2UpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2dvdXRVc2VyKCkge1xuICAgICAgICAvLyBIYW5kbGUgdGhlIHJlZnJlc2ggZXJyb3IuXG4gICAgICAgIHRoaXMuX2F1dGguY2xlYXJBbmRSZWRpcmVjdCgpO1xuXG4gICAgICAgIC8vIFJldHVybiBudWxsIGFzIGRhdGEuXG4gICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEFjY2Vzc1Rva2VuID0gKHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PHVua25vd24+KSA9PiB7XG4gICAgICAgIC8vIEdldCB0aGUgdG9rZW4gYmFzZWQgb24gaGVhZGVyLlxuICAgICAgICBpZiAocmVxdWVzdC5oZWFkZXJzLmhhcyh0aGlzLl9hdXRoSGVhZGVyU3RyaW5nKSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QuaGVhZGVycy5nZXQodGhpcy5fYXV0aEhlYWRlclN0cmluZyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZXR1cm4gdGhlIGRlZmF1bHQgYWNjZXNzIHRva2VuLlxuICAgICAgICByZXR1cm4gdGhpcy5fYXV0aC5zZXNzaW9uLmFjY2Vzc1Rva2VuO1xuICAgIH07XG5cbiAgICBwcml2YXRlIGFkZEF1dGhvcml6YXRpb25IZWFkZXIgPSAocmVxdWVzdDogSHR0cFJlcXVlc3Q8dW5rbm93bj4sIGFjY2Vzc1Rva2VuOiBzdHJpbmcgfCBudWxsID0gbnVsbCkgPT4ge1xuICAgICAgICAvLyBSZW1vdmUgYXV0aCBoZWFkZXIgd2hlbiB3ZSBkbyBub3QgaGF2ZVxuICAgICAgICAvLyBhbiBhY2Nlc3MgdG9rZW4uXG4gICAgICAgIGlmICghYWNjZXNzVG9rZW4pIHtcbiAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LmNsb25lKHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiByZXF1ZXN0LmhlYWRlcnMuZGVsZXRlKHRoaXMuX2F1dGhIZWFkZXJTdHJpbmcpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFkZCB0aGUgYXV0aCBoZWFkZXIgdG8gdGhlIHJlcXVlc3QuXG4gICAgICAgIHJldHVybiByZXF1ZXN0LmNsb25lKHtcbiAgICAgICAgICAgIHNldEhlYWRlcnM6IHtbdGhpcy5fYXV0aEhlYWRlclN0cmluZ106IGAke3RoaXMuX2F1dGhTY2hlbWV9ICR7YWNjZXNzVG9rZW59YH1cbiAgICAgICAgfSk7XG4gICAgfTtcblxufVxuIl19
@@ -1,23 +1,16 @@
1
1
  import { APP_INITIALIZER, NgModule } from '@angular/core';
2
2
  import { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
3
3
  import { BbAuthenticated } from './directives/authenticated.directive';
4
- import { BbPermission } from './directives/permission.directive';
5
- import { Permissions } from './permissions/permissions.service';
6
4
  import { AuthConfig } from './interfaces/config.interface';
7
5
  import { AuthInterceptor } from './auth.interceptor';
8
6
  import { Auth } from './auth.service';
9
7
  import * as i0 from "@angular/core";
10
- const DECLARATIONS_EXPORTS = [
11
- BbAuthenticated,
12
- BbPermission
13
- ];
14
8
  export class AuthModule {
15
9
  static forRoot(config) {
16
10
  return {
17
11
  ngModule: AuthModule,
18
12
  providers: [
19
13
  Auth,
20
- Permissions,
21
14
  { provide: AuthConfig, useValue: config },
22
15
  { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true },
23
16
  { useFactory: initializeAuth, provide: APP_INITIALIZER, deps: [Auth], multi: true }
@@ -25,20 +18,18 @@ export class AuthModule {
25
18
  };
26
19
  }
27
20
  }
28
- AuthModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
29
- AuthModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.2", ngImport: i0, type: AuthModule, declarations: [BbAuthenticated,
30
- BbPermission], imports: [HttpClientModule], exports: [BbAuthenticated,
31
- BbPermission] });
32
- AuthModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AuthModule, imports: [HttpClientModule] });
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AuthModule, decorators: [{
21
+ AuthModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: AuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
22
+ AuthModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.10", ngImport: i0, type: AuthModule, declarations: [BbAuthenticated], imports: [HttpClientModule], exports: [BbAuthenticated] });
23
+ AuthModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: AuthModule, imports: [HttpClientModule] });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: AuthModule, decorators: [{
34
25
  type: NgModule,
35
26
  args: [{
36
27
  imports: [HttpClientModule],
37
- declarations: [...DECLARATIONS_EXPORTS],
38
- exports: [...DECLARATIONS_EXPORTS]
28
+ declarations: [BbAuthenticated],
29
+ exports: [BbAuthenticated]
39
30
  }]
40
31
  }] });
41
32
  export function initializeAuth(auth) {
42
33
  return auth.initialize();
43
34
  }
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2F1dGgvc3JjL2xpYi9hdXRoLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZUFBZSxFQUF1QixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFDLGlCQUFpQixFQUFFLGdCQUFnQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDekUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDOUQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7O0FBRXBDLE1BQU0sb0JBQW9CLEdBQUc7SUFDekIsZUFBZTtJQUNmLFlBQVk7Q0FDZixDQUFDO0FBT0YsTUFBTSxPQUFPLFVBQVU7SUFFbkIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFrQjtRQUM3QixPQUFPO1lBQ0gsUUFBUSxFQUFFLFVBQVU7WUFDcEIsU0FBUyxFQUFFO2dCQUNQLElBQUk7Z0JBQ0osV0FBVztnQkFDWCxFQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBQztnQkFDdkMsRUFBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDO2dCQUNwRSxFQUFDLFVBQVUsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDO2FBQ3BGO1NBQ0osQ0FBQztJQUNOLENBQUM7O3VHQWJRLFVBQVU7d0dBQVYsVUFBVSxpQkFUbkIsZUFBZTtRQUNmLFlBQVksYUFJRixnQkFBZ0IsYUFMMUIsZUFBZTtRQUNmLFlBQVk7d0dBUUgsVUFBVSxZQUpULGdCQUFnQjsyRkFJakIsVUFBVTtrQkFMdEIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDM0IsWUFBWSxFQUFFLENBQUMsR0FBRyxvQkFBb0IsQ0FBQztvQkFDdkMsT0FBTyxFQUFFLENBQUMsR0FBRyxvQkFBb0IsQ0FBQztpQkFDckM7O0FBa0JELE1BQU0sVUFBVSxjQUFjLENBQUMsSUFBVTtJQUNyQyxPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztBQUM3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBUFBfSU5JVElBTElaRVIsIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SFRUUF9JTlRFUkNFUFRPUlMsIEh0dHBDbGllbnRNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7QmJBdXRoZW50aWNhdGVkfSBmcm9tICcuL2RpcmVjdGl2ZXMvYXV0aGVudGljYXRlZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtCYlBlcm1pc3Npb259IGZyb20gJy4vZGlyZWN0aXZlcy9wZXJtaXNzaW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1Blcm1pc3Npb25zfSBmcm9tICcuL3Blcm1pc3Npb25zL3Blcm1pc3Npb25zLnNlcnZpY2UnO1xuaW1wb3J0IHtBdXRoQ29uZmlnfSBmcm9tICcuL2ludGVyZmFjZXMvY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQge0F1dGhJbnRlcmNlcHRvcn0gZnJvbSAnLi9hdXRoLmludGVyY2VwdG9yJztcbmltcG9ydCB7QXV0aH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuXG5jb25zdCBERUNMQVJBVElPTlNfRVhQT1JUUyA9IFtcbiAgICBCYkF1dGhlbnRpY2F0ZWQsXG4gICAgQmJQZXJtaXNzaW9uXG5dO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtIdHRwQ2xpZW50TW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFsuLi5ERUNMQVJBVElPTlNfRVhQT1JUU10sXG4gICAgZXhwb3J0czogWy4uLkRFQ0xBUkFUSU9OU19FWFBPUlRTXVxufSlcbmV4cG9ydCBjbGFzcyBBdXRoTW9kdWxlIHtcblxuICAgIHN0YXRpYyBmb3JSb290KGNvbmZpZzogQXV0aENvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QXV0aE1vZHVsZT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IEF1dGhNb2R1bGUsXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgICAgICBBdXRoLFxuICAgICAgICAgICAgICAgIFBlcm1pc3Npb25zLFxuICAgICAgICAgICAgICAgIHtwcm92aWRlOiBBdXRoQ29uZmlnLCB1c2VWYWx1ZTogY29uZmlnfSxcbiAgICAgICAgICAgICAgICB7cHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsIHVzZUNsYXNzOiBBdXRoSW50ZXJjZXB0b3IsIG11bHRpOiB0cnVlfSxcbiAgICAgICAgICAgICAgICB7dXNlRmFjdG9yeTogaW5pdGlhbGl6ZUF1dGgsIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUiwgZGVwczogW0F1dGhdLCBtdWx0aTogdHJ1ZX1cbiAgICAgICAgICAgIF1cbiAgICAgICAgfTtcbiAgICB9XG5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRpYWxpemVBdXRoKGF1dGg6IEF1dGgpIHtcbiAgICByZXR1cm4gYXV0aC5pbml0aWFsaXplKCk7XG59XG4iXX0=
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2F1dGgvc3JjL2xpYi9hdXRoLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZUFBZSxFQUF1QixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFDLGlCQUFpQixFQUFFLGdCQUFnQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDekUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDOztBQU9wQyxNQUFNLE9BQU8sVUFBVTtJQUVuQixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQWtCO1FBQzdCLE9BQU87WUFDSCxRQUFRLEVBQUUsVUFBVTtZQUNwQixTQUFTLEVBQUU7Z0JBQ1AsSUFBSTtnQkFDSixFQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBQztnQkFDdkMsRUFBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDO2dCQUNwRSxFQUFDLFVBQVUsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDO2FBQ3BGO1NBQ0osQ0FBQztJQUNOLENBQUM7O3dHQVpRLFVBQVU7eUdBQVYsVUFBVSxpQkFISixlQUFlLGFBRHBCLGdCQUFnQixhQUVoQixlQUFlO3lHQUVoQixVQUFVLFlBSlQsZ0JBQWdCOzRGQUlqQixVQUFVO2tCQUx0QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUMzQixZQUFZLEVBQUUsQ0FBQyxlQUFlLENBQUM7b0JBQy9CLE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQztpQkFDN0I7O0FBaUJELE1BQU0sVUFBVSxjQUFjLENBQUMsSUFBVTtJQUNyQyxPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztBQUM3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBUFBfSU5JVElBTElaRVIsIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SFRUUF9JTlRFUkNFUFRPUlMsIEh0dHBDbGllbnRNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7QmJBdXRoZW50aWNhdGVkfSBmcm9tICcuL2RpcmVjdGl2ZXMvYXV0aGVudGljYXRlZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtBdXRoQ29uZmlnfSBmcm9tICcuL2ludGVyZmFjZXMvY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQge0F1dGhJbnRlcmNlcHRvcn0gZnJvbSAnLi9hdXRoLmludGVyY2VwdG9yJztcbmltcG9ydCB7QXV0aH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtIdHRwQ2xpZW50TW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtCYkF1dGhlbnRpY2F0ZWRdLFxuICAgIGV4cG9ydHM6IFtCYkF1dGhlbnRpY2F0ZWRdXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhNb2R1bGUge1xuXG4gICAgc3RhdGljIGZvclJvb3QoY29uZmlnOiBBdXRoQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxBdXRoTW9kdWxlPiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuZ01vZHVsZTogQXV0aE1vZHVsZSxcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgIEF1dGgsXG4gICAgICAgICAgICAgICAge3Byb3ZpZGU6IEF1dGhDb25maWcsIHVzZVZhbHVlOiBjb25maWd9LFxuICAgICAgICAgICAgICAgIHtwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUywgdXNlQ2xhc3M6IEF1dGhJbnRlcmNlcHRvciwgbXVsdGk6IHRydWV9LFxuICAgICAgICAgICAgICAgIHt1c2VGYWN0b3J5OiBpbml0aWFsaXplQXV0aCwgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLCBkZXBzOiBbQXV0aF0sIG11bHRpOiB0cnVlfVxuICAgICAgICAgICAgXVxuICAgICAgICB9O1xuICAgIH1cblxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5pdGlhbGl6ZUF1dGgoYXV0aDogQXV0aCkge1xuICAgIHJldHVybiBhdXRoLmluaXRpYWxpemUoKTtcbn1cbiJdfQ==
@@ -77,7 +77,7 @@ export class Auth {
77
77
  async signIn(provider, as) {
78
78
  const { accessToken, refreshToken, user, ...result } = await provider.authenticate(this._httpClient);
79
79
  // Check if the role matches.
80
- const role = this._config?.permissions?.getRole?.(user) ?? user?.role ?? null;
80
+ const role = user?.role ?? null;
81
81
  if (as && !as.includes(role)) {
82
82
  throw new Error('Invalid role.');
83
83
  }
@@ -225,7 +225,7 @@ export class Auth {
225
225
  clearTimeout?.(this._refreshHandler);
226
226
  this._refreshHandler = null;
227
227
  }
228
- this._refreshHandler = setTimeout?.(() => this.autoRefresh(), cappedTiming);
228
+ this._refreshHandler = window?.setTimeout?.(() => this.autoRefresh(), cappedTiming);
229
229
  }
230
230
  catch {
231
231
  // Just ignore it.
@@ -251,9 +251,9 @@ export class Auth {
251
251
  .join('/');
252
252
  }
253
253
  }
254
- Auth.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: Auth, deps: [{ token: i1.Storage }, { token: i0.Injector }, { token: i2.Platform }, { token: i3.HttpClient }, { token: i4.AuthConfig, optional: true }, { token: i5.TransferState, optional: true }, { token: i6.HttpConfig, optional: true }, { token: AUTH_REDIRECT_HANDLER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
255
- Auth.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: Auth });
256
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: Auth, decorators: [{
254
+ Auth.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: Auth, deps: [{ token: i1.Storage }, { token: i0.Injector }, { token: i2.Platform }, { token: i3.HttpClient }, { token: i4.AuthConfig, optional: true }, { token: i5.TransferState, optional: true }, { token: i6.HttpConfig, optional: true }, { token: AUTH_REDIRECT_HANDLER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
255
+ Auth.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: Auth });
256
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: Auth, decorators: [{
257
257
  type: Injectable
258
258
  }], ctorParameters: function () { return [{ type: i1.Storage }, { type: i0.Injector }, { type: i2.Platform }, { type: i3.HttpClient }, { type: i4.AuthConfig, decorators: [{
259
259
  type: Optional
@@ -267,4 +267,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImpor
267
267
  type: Inject,
268
268
  args: [AUTH_REDIRECT_HANDLER]
269
269
  }] }]; } });
270
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9hdXRoL3NyYy9saWIvYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxxQkFBcUIsRUFBa0MsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRyxPQUFPLEVBQWEsV0FBVyxFQUEwQixNQUFNLHNCQUFzQixDQUFDO0FBRXRGLE9BQU8sRUFBQyxZQUFZLEVBQTBCLE1BQU0sMkJBQTJCLENBQUM7QUFFaEYsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQVksUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRTdELE9BQU8sRUFBQyxjQUFjLEVBQWMsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXBELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7QUFHdkMsTUFBTSxPQUFPLElBQUk7SUFXYixZQUFvQixRQUFpQixFQUNqQixTQUFtQixFQUNuQixTQUFtQixFQUNuQixXQUF1QixFQUNYLE9BQW9CLEVBQ3BCLE1BQXNCLEVBQ3RCLFdBQXdCLEVBQ08sUUFBOEI7UUFQekUsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsZ0JBQVcsR0FBWCxX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QkFDUixRQUFROzswQkFBSSxNQUFNOzJCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QVVUSF9SRURJUkVDVF9IQU5ETEVSLCBBdXRoQ29uZmlnLCBBdXRoUmVkaXJlY3RIYW5kbGVyfSBmcm9tICcuL2ludGVyZmFjZXMvY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQge0h0dHBDbGllbnQsIEh0dHBDb250ZXh0LCBIdHRwSGVhZGVycywgSHR0cFBhcmFtc30gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtBdXRoUHJvdmlkZXIsIEF1dGhTaWduSW5SZXNwb25zZX0gZnJvbSAnLi9pbnRlcmZhY2VzL3Byb3ZpZGVyLmludGVyZmFjZSc7XG5pbXBvcnQge21ha2VTdGF0ZUtleSwgU3RhdGVLZXksIFRyYW5zZmVyU3RhdGV9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHtTdG9yYWdlLCBTdG9yYWdlT3B0aW9ufSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbi9zdG9yYWdlJztcbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtVU0VfQVVUSE9SSVpBVElPTn0gZnJvbSAnLi90b2tlbnMvdXNlLWF1dGhvcml6YXRpb24udG9rZW4nO1xuaW1wb3J0IHtBdXRoVmVyaWZ5UHJvdmlkZXJ9IGZyb20gJy4vcHJvdmlkZXJzL3ZlcmlmeS5wcm92aWRlcic7XG5pbXBvcnQge0F1dGhFbWFpbFByb3ZpZGVyfSBmcm9tICcuL3Byb3ZpZGVycy9lbWFpbC5wcm92aWRlcic7XG5pbXBvcnQge0h0dHBDb25maWd9IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uL2h0dHAnO1xuaW1wb3J0IHtmaXJzdFZhbHVlRnJvbSwgT2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtQbGF0Zm9ybX0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BsYXRmb3JtJztcbmltcG9ydCB7QXV0aFNlc3Npb259IGZyb20gJy4vYXV0aC5zZXNzaW9uJztcbmltcG9ydCB7bWFwLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Um91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQXV0aCB7XG5cbiAgICAvLyBSZWFkb25seSBkYXRhLlxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2F1dGhTdGF0ZUtleTogU3RhdGVLZXk8YW55IHwgbnVsbD4gPSBtYWtlU3RhdGVLZXkoYGJiQXV0aFN0YXRlS2V5YCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfaHR0cEFsaWFzOiBzdHJpbmcgfCBudWxsID0gdGhpcy5faHR0cENvbmZpZz8uZGVmYXVsdEFsaWFzID8/IG51bGw7XG5cbiAgICByZWFkb25seSBzZXNzaW9uOiBBdXRoU2Vzc2lvbjtcbiAgICByZWFkb25seSB1c2VyOiBPYnNlcnZhYmxlPGFueSB8IG51bGw+O1xuXG4gICAgcHJpdmF0ZSBfcmVmcmVzaEhhbmRsZXI6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfc3RvcmFnZTogU3RvcmFnZSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfcGxhdGZvcm06IFBsYXRmb3JtLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2h0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfY29uZmlnPzogQXV0aENvbmZpZyxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9zdGF0ZT86IFRyYW5zZmVyU3RhdGUsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfaHR0cENvbmZpZz86IEh0dHBDb25maWcsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChBVVRIX1JFRElSRUNUX0hBTkRMRVIpIHByaXZhdGUgX2hhbmRsZXI/OiBBdXRoUmVkaXJlY3RIYW5kbGVyKSB7XG4gICAgICAgIC8vIFdlIHNlbGVjdCBhIHN0b3JhZ2Ugc3RyYXRlZ3kgYmFzZWQgb24gdGhlIHNlcnZlci9icm93c2VyLlxuICAgICAgICAvLyBPbmx5IGNvb2tpZXMgQ0FOIHdvcmsgb24gdGhlIHNlcnZlci5cbiAgICAgICAgY29uc3Qgc3RvcmFnZVN0cmF0ZWd5ID0gdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyXG4gICAgICAgICAgICA/IHRoaXMuX3N0b3JhZ2Uuc2VsZWN0KFtTdG9yYWdlT3B0aW9uLkNvb2tpZSwgU3RvcmFnZU9wdGlvbi5Mb2NhbF0pXG4gICAgICAgICAgICA6IHRoaXMuX3N0b3JhZ2UuY29va2llO1xuXG4gICAgICAgIC8vIFN0YXJ0aW5nIHRoZSBuZXcgc2Vzc2lvbi5cbiAgICAgICAgdGhpcy5zZXNzaW9uID0gbmV3IEF1dGhTZXNzaW9uKHtcbiAgICAgICAgICAgIGlkOiB0aGlzLl9jb25maWc/LmFwcGxpY2F0aW9uSWQsXG4gICAgICAgICAgICBzdG9yYWdlOiBzdG9yYWdlU3RyYXRlZ3lcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMudXNlciA9IHRoaXMuc2Vzc2lvbi51c2VyO1xuICAgIH1cblxuICAgIGluaXRpYWxpemUoKSB7XG4gICAgICAgIHJldHVybiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgYXBwIHNob3VsZCBib290c3RyYXAgdGhlIGF1dGhlbnRpY2F0aW9uLlxuICAgICAgICAgICAgY29uc3Qgc2hvdWxkQm9vdHN0cmFwID0gdGhpcy5fY29uZmlnPy5ib290c3RyYXAgPz8gdHJ1ZTtcbiAgICAgICAgICAgIGlmICghc2hvdWxkQm9vdHN0cmFwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlQXV0b1JlZnJlc2hpbmcoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gT25seSByZXRyaWV2ZSBmcm9tIHRoZSBzZXJ2ZXIgd2hlbiB3ZSBhcmUgYWN0dWFsbHkgYXV0aGVudGljYXRlZC5cbiAgICAgICAgICAgIGlmICghdGhpcy5zZXNzaW9uLmF1dGhlbnRpY2F0ZWQoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gR2V0IHRoZSBrZXkgZnJvbSB0aGUgc2VydmVyIHN0YXRlLlxuICAgICAgICAgICAgaWYgKHRoaXMuX3N0YXRlICYmIHRoaXMuX3N0YXRlPy5oYXNLZXkodGhpcy5fYXV0aFN0YXRlS2V5KSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHVzZXIgPSB0aGlzLl9zdGF0ZT8uZ2V0KHRoaXMuX2F1dGhTdGF0ZUtleSwgbnVsbCkgPz8gbnVsbDtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zZXNzaW9uLnNldFVzZXIodXNlcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFRyeSB0byBmZXRjaCB0aGUgdXNlciBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAgICAgICAgICBjb25zdCB1c2VyJCA9IHRoaXMubWUoKTtcbiAgICAgICAgICAgIGNvbnN0IHVzZXIgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh1c2VyJCwge2RlZmF1bHRWYWx1ZTogbnVsbH0pO1xuXG4gICAgICAgICAgICAvLyBTZXQgdGhlIHN0YXRlIGlmIGV4aXN0cy5cbiAgICAgICAgICAgIGlmICh0aGlzLl9zdGF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlPy5zZXQ8YW55Pih0aGlzLl9hdXRoU3RhdGVLZXksIHVzZXIgPz8gbnVsbCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFNhdmUgdGhlIHVzZXIgaW4gdGhlIHN0b3JhZ2UgYW5kIGhhbmRsZSBhdXRvIHJlZnJlc2hpbmcuXG4gICAgICAgICAgICB0aGlzLnNlc3Npb24uc2V0VXNlcih1c2VyKTtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlQXV0b1JlZnJlc2hpbmcoKTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBtZTxUID0gYW55PigpIHtcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5nZXRVcmwoJ2F1dGgvbWUnKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBDbGllbnQuZ2V0PFQ+KHVybCk7XG4gICAgfVxuXG4gICAgYXN5bmMgc2lnbkluKHByb3ZpZGVyOiBBdXRoUHJvdmlkZXIsIGFzPzogc3RyaW5nW10pIHtcbiAgICAgICAgY29uc3Qge2FjY2Vzc1Rva2VuLCByZWZyZXNoVG9rZW4sIHVzZXIsIC4uLnJlc3VsdH0gPSBhd2FpdCBwcm92aWRlci5hdXRoZW50aWNhdGUodGhpcy5faHR0cENsaWVudCk7XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIHJvbGUgbWF0Y2hlcy5cbiAgICAgICAgY29uc3Qgcm9sZSA9IHRoaXMuX2NvbmZpZz8ucGVybWlzc2lvbnM/LmdldFJvbGU/Lih1c2VyKSA/PyB1c2VyPy5yb2xlID8/IG51bGw7XG4gICAgICAgIGlmIChhcyAmJiAhYXMuaW5jbHVkZXMocm9sZSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCByb2xlLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVmFsaWRhdGUgaWYgdGhlIHByb3ZpZGVyIGlzIG9uZSBvZiB0aGUgYXZhaWxhYmxlXG4gICAgICAgIC8vIHByb3ZpZGVycyB0aGVuIHJldHVybiB0aGUgdXNlciBvYmplY3QgYW5kIHRoZSBwcm92aWRlci5cbiAgICAgICAgY29uc3QgYXBpUHJvdmlkZXIgPSByZXN1bHQ/LnByb3ZpZGVyID8/IG51bGw7XG4gICAgICAgIGNvbnN0IGFwaVZlcmlmeVRva2VuID0gcmVzdWx0Py52ZXJpZnlUb2tlbiA/PyBudWxsO1xuICAgICAgICBjb25zdCBhdmFpbGFibGVQcm92aWRlcnMgPSB0aGlzLl9jb25maWc/LnByb3ZpZGVycyA/PyBbJ2VtYWlsJywgJ3NtcycsICd0b3RwJ107XG4gICAgICAgIGlmIChhdmFpbGFibGVQcm92aWRlcnMuaW5jbHVkZXMoYXBpUHJvdmlkZXIpKSB7XG4gICAgICAgICAgICByZXR1cm4gPEF1dGhTaWduSW5SZXNwb25zZT57dXNlciwgcHJvdmlkZXI6IGFwaVByb3ZpZGVyLCB2ZXJpZnlUb2tlbjogYXBpVmVyaWZ5VG9rZW59O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2V0IHRoZSB0b2tlbnMgaW4gc3RvcmFnZS5cbiAgICAgICAgdGhpcy5zZXRUb2tlbnMoYWNjZXNzVG9rZW4sIHJlZnJlc2hUb2tlbik7XG5cbiAgICAgICAgLy8gU2V0IHRoZSB1c2VyIGluIHN0b3JhZ2UuXG4gICAgICAgIHRoaXMuc2Vzc2lvbi5zZXRVc2VyKHVzZXIpO1xuXG4gICAgICAgIC8vIFJldHVybiB0aGUgdXNlci5cbiAgICAgICAgcmV0dXJuIDxBdXRoU2lnbkluUmVzcG9uc2U+e3VzZXJ9O1xuICAgIH1cblxuICAgIGFzeW5jIHNpZ25JbldpdGhFbWFpbChlbWFpbDogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nLCBhcz86IHN0cmluZ1tdKSB7XG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuZ2V0VXJsKCdhdXRoL2xvZ2luJyk7XG4gICAgICAgIHJldHVybiB0aGlzLnNpZ25JbihuZXcgQXV0aEVtYWlsUHJvdmlkZXIoZW1haWwsIHBhc3N3b3JkLCB1cmwpLCBhcyk7XG4gICAgfVxuXG4gICAgYXN5bmMgc2lnbkluV2l0aFZlcmlmeUNvZGUoY29kZTogc3RyaW5nLCB2ZXJpZnlUb2tlbjogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuZ2V0VXJsKCdhdXRoL3ZlcmlmeScpO1xuICAgICAgICByZXR1cm4gdGhpcy5zaWduSW4obmV3IEF1dGhWZXJpZnlQcm92aWRlcihjb2RlLCB2ZXJpZnlUb2tlbiwgdXJsKSk7XG4gICAgfVxuXG4gICAgYXN5bmMgcmVzZW5kVmVyaWZ5Q29kZSh2ZXJpZnlUb2tlbjogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuZ2V0VXJsKCdhdXRoL3Jlc2VuZCcpO1xuICAgICAgICBjb25zdCByZXN1bHQkID0gdGhpcy5faHR0cENsaWVudC5wb3N0KHVybCwge1xuICAgICAgICAgICAgdmVyaWZ5X3Rva2VuOiB2ZXJpZnlUb2tlblxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20ocmVzdWx0JCk7XG4gICAgfVxuXG4gICAgYXN5bmMgcmVnaXN0ZXI8VCA9IGFueT4oZGF0YTogYW55LCBvcHRpb25zPzoge1xuICAgICAgICBoZWFkZXJzPzogSHR0cEhlYWRlcnMgfCB7XG4gICAgICAgICAgICBbaGVhZGVyOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgICAgICAgfTtcbiAgICAgICAgcGFyYW1zPzogSHR0cFBhcmFtcyB8IHtcbiAgICAgICAgICAgIFtwYXJhbTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IFJlYWRvbmx5QXJyYXk8c3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbj47XG4gICAgICAgIH07XG4gICAgfSkge1xuICAgICAgICAvLyBFeGVjdXRlIEFQSSBjYWxsLlxuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLmdldFVybCgnYXV0aC9yZWdpc3RlcicpO1xuICAgICAgICBjb25zdCByZXN1bHQkID0gdGhpcy5faHR0cENsaWVudC5wb3N0PHsgdG9rZW46IHN0cmluZywgcmVmcmVzaF90b2tlbjogc3RyaW5nLCB1c2VyOiBhbnkgfT4odXJsLCBkYXRhLCBvcHRpb25zKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20ocmVzdWx0JCk7XG5cbiAgICAgICAgLy8gU2V0IHRoZSB0b2tlbnMgaW4gc3RvcmFnZS5cbiAgICAgICAgdGhpcy5zZXRUb2tlbnMocmVzdWx0Py50b2tlbiwgcmVzdWx0Py5yZWZyZXNoX3Rva2VuKTtcblxuICAgICAgICAvLyBTZXQgdGhlIHVzZXIgaW4gc3RvcmFnZS5cbiAgICAgICAgY29uc3QgdXNlciA9IHJlc3VsdD8udXNlcjtcbiAgICAgICAgdGhpcy5zZXNzaW9uLnNldFVzZXIodXNlcik7XG5cbiAgICAgICAgLy8gUmV0dXJuIHRoZSB1c2VyLlxuICAgICAgICByZXR1cm4gPFQ+dXNlcjtcbiAgICB9XG5cbiAgICBsb2dvdXQoKSB7XG4gICAgICAgIC8vIElmIHdlIGRvbid0IGhhdmUgYSByZWZyZXNoIHRva2VuIGp1c3QgY2xlYXIgdGhlIHNlc3Npb24uXG4gICAgICAgIC8vIE5vdGU6IFdlIGRvIHRoaXMgYmVjYXVzZSBlbHNlIHdlIHRyeSB0byBpbnZhbGlkYXRlXG4gICAgICAgIC8vIGFuIFwidW5kZWZpbmVkXCIgcmVmcmVzaCB0b2tlbi5cbiAgICAgICAgY29uc3QgcmVmcmVzaFRva2VuID0gdGhpcy5zZXNzaW9uLnJlZnJlc2hUb2tlbjtcbiAgICAgICAgaWYgKCFyZWZyZXNoVG9rZW4pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNlc3Npb24uY2xlYXIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFdlIGRvIGhhdmUgYSByZWZyZXNoIHRva2VuLCBzbyB0cnkgdG9cbiAgICAgICAgLy8gaW52YWxpZGF0ZSBpdCBpbiB0aGUgYmFja2VuZC5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHVybCA9IHRoaXMuZ2V0VXJsKCdhdXRoL2xvZ291dCcpO1xuICAgICAgICAgICAgY29uc3QgaGVhZGVyTmFtZSA9IHRoaXMuX2NvbmZpZz8uaHR0cD8uaGVhZGVyID8/ICdBdXRob3JpemF0aW9uJztcbiAgICAgICAgICAgIGNvbnN0IG9ic2VydmFibGUkID0gdGhpcy5faHR0cENsaWVudC5nZXQodXJsLCB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1toZWFkZXJOYW1lXTogcmVmcmVzaFRva2VufVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBmaXJzdFZhbHVlRnJvbShvYnNlcnZhYmxlJCkudGhlbihfID0+IF8pLmNhdGNoKF8gPT4gXyk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgLy8gRG8gbm90aGluZyBiZWNhdXNlIHRoZSB0b2tlbnMgd2lsbCBiZSBkZWxldGVkIGFueXdheXMgZnJvbSB0aGUgc2Vzc2lvbi5cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERlbGV0ZSB0aGUgdG9rZW5zIGZyb20gdGhlIHNlc3Npb24uXG4gICAgICAgIHJldHVybiB0aGlzLnNlc3Npb24uY2xlYXIoKTtcbiAgICB9XG5cbiAgICByZWZyZXNoKCkge1xuICAgICAgICAvLyBJZiB0aGUgcmVmcmVzaCB0b2tlbiBkb2VzXG4gICAgICAgIC8vIG5vdCBleGlzdCBqdXN0IHJldHVybiBhbiBvYnNlcnZhYmxlIG9mIG51bGwuXG4gICAgICAgIGNvbnN0IHJlZnJlc2hUb2tlbiA9IHRoaXMuc2Vzc2lvbi5yZWZyZXNoVG9rZW47XG4gICAgICAgIGlmICghcmVmcmVzaFRva2VuKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBQZXJmb3JtIHRoZSByZWZyZXNoIGNhbGwuXG4gICAgICAgIGNvbnN0IGhlYWRlck5hbWUgPSB0aGlzLl9jb25maWc/Lmh0dHA/LmhlYWRlciA/PyAnQXV0aG9yaXphdGlvbic7XG4gICAgICAgIGNvbnN0IHNjaGVtZSA9IHRoaXMuX2NvbmZpZz8uaHR0cD8uc2NoZW1lID8/ICdCZWFyZXInO1xuXG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuZ2V0VXJsKCdhdXRoL3JlZnJlc2gnKTtcbiAgICAgICAgY29uc3QgY29udGV4dCA9IG5ldyBIdHRwQ29udGV4dCgpLnNldChVU0VfQVVUSE9SSVpBVElPTiwgZmFsc2UpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwQ2xpZW50LmdldDx7IHRva2VuOiBzdHJpbmcsIHJlZnJlc2hfdG9rZW46IHN0cmluZyB9Pih1cmwsIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHtbaGVhZGVyTmFtZV06IGAke3NjaGVtZX0gJHtyZWZyZXNoVG9rZW59YH0sXG4gICAgICAgICAgICBjb250ZXh0OiBjb250ZXh0XG4gICAgICAgIH0pLnBpcGUoXG4gICAgICAgICAgICB0YXAoKHt0b2tlbiwgcmVmcmVzaF90b2tlbn0pID0+IHRoaXMuc2V0VG9rZW5zKHRva2VuLCByZWZyZXNoX3Rva2VuKSksXG4gICAgICAgICAgICBtYXAoKHt0b2tlbn0pID0+IHRva2VuKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGFzeW5jIHJlcXVlc3RQYXNzd29yZChlbWFpbDogc3RyaW5nLCBleHRyYVBhcmFtczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9KSB7XG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuZ2V0VXJsKCdhdXRoL3Jlc2V0Jyk7XG4gICAgICAgIGNvbnN0IG9ic2VydmFibGUkID0gdGhpcy5faHR0cENsaWVudC5wb3N0KHVybCwgey4uLmV4dHJhUGFyYW1zLCBlbWFpbH0pO1xuICAgICAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20ob2JzZXJ2YWJsZSQpO1xuICAgIH1cblxuICAgIGFzeW5jIHJlc2V0UGFzc3dvcmQodG9rZW46IHN0cmluZywgbmV3UGFzc3dvcmQ6IHN0cmluZywgZXh0cmFQYXJhbXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fSkge1xuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLmdldFVybCgnYXV0aC9yZXNldC1wYXNzd29yZCcpO1xuICAgICAgICBjb25zdCBvYnNlcnZhYmxlJCA9IHRoaXMuX2h0dHBDbGllbnQucG9zdCh1cmwsIHsuLi5leHRyYVBhcmFtcywgdG9rZW4sIHBhc3N3b3JkOiBuZXdQYXNzd29yZH0pO1xuICAgICAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20ob2JzZXJ2YWJsZSQpO1xuICAgIH1cblxuICAgIGNsZWFyQW5kUmVkaXJlY3QoKSB7XG4gICAgICAgIC8vIDEuIERlbGV0ZSB0aGUgdG9rZW5zIGZyb20gdGhlIHNlc3Npb24uXG4gICAgICAgIHRoaXMuc2Vzc2lvbi5jbGVhcigpO1xuXG4gICAgICAgIGlmICh0aGlzLl9oYW5kbGVyKSB7XG4gICAgICAgICAgICBjb25zdCB1cmxUcmVlID0gdGhpcy5faGFuZGxlci5vbkZhaWxlZEF1dGhlbnRpY2F0ZWQoKTtcbiAgICAgICAgICAgIGlmICghdXJsVHJlZSB8fCB1cmxUcmVlID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHVybFRyZWUpLnRoZW4oXyA9PiBfKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIDIuIENvbXBvc2UgdGhlIHJvdXRlIHVybC5cbiAgICAgICAgY29uc3QgcmVkaXJlY3RVcmwgPSB0aGlzLl9jb25maWc/LnJlZGlyZWN0cy51bmF1dGhlbnRpY2F0ZWQgPz8gbnVsbDtcblxuICAgICAgICAvLyAzLiBSb3V0ZSBiYWNrIGlmIHRoZSB1c2VyIHByb3ZpZGVkIGEgcmVkaXJlY3QgdXJsLlxuICAgICAgICBpZiAodGhpcy5yb3V0ZXIgJiYgcmVkaXJlY3RVcmwpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbW1hbmRzID0gQXJyYXkuaXNBcnJheShyZWRpcmVjdFVybCkgPyByZWRpcmVjdFVybCA6IFtyZWRpcmVjdFVybF07XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShjb21tYW5kcykudGhlbihfID0+IF8pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRUb2tlbnMoYWNjZXNzVG9rZW46IHN0cmluZywgcmVmcmVzaFRva2VuOiBzdHJpbmcpIHtcbiAgICAgICAgLy8gU2V0IHRoZSB0b2tlbnMgaW4gb3VyIHNlc3Npb24uXG4gICAgICAgIHRoaXMuc2Vzc2lvbi5zZXRUb2tlbnMoYWNjZXNzVG9rZW4sIHJlZnJlc2hUb2tlbik7XG5cbiAgICAgICAgLy8gV2UgbmVlZCB0byB1cGRhdGUgdGhlIGF1dG8gcmVmcmVzaCBvZiB0aGUgcmVmcmVzaCB0b2tlbi5cbiAgICAgICAgdGhpcy5oYW5kbGVBdXRvUmVmcmVzaGluZygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlQXV0b1JlZnJlc2hpbmcoKSB7XG4gICAgICAgIGNvbnN0IHNob3VsZEF1dG9SZWZyZXNoID0gdGhpcy5fY29uZmlnPy5hdXRvUmVmcmVzaCA/PyBmYWxzZTtcbiAgICAgICAgaWYgKCFzaG91bGRBdXRvUmVmcmVzaCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZXhwaXJlc0F0ID0gdGhpcy5zZXNzaW9uLnJlZnJlc2hUb2tlblBheWxvYWQ/LmV4cGlyZXNBdCA/PyBudWxsO1xuICAgICAgICBpZiAoZXhwaXJlc0F0ID09PSBudWxsIHx8ICF0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRpZmZlcmVuY2VJbk1pbGxpc2Vjb25kcyA9IGV4cGlyZXNBdC5nZXRUaW1lKCkgLSBEYXRlLm5vdygpO1xuICAgICAgICBjb25zdCBvZmZzZXRJbk1pbGxpc2Vjb25kcyA9IDEwXzAwMDsgLy8gMTAgc2Vjb25kcy5cblxuICAgICAgICAvLyBXZSB3YW50IHRvIHN0YXJ0IHRoZSByZWZyZXNoIDEwIHNlY29uZHMgYmVmb3JlIGl0IGV4cGlyZXMuXG4gICAgICAgIGNvbnN0IGFjdHVhbFRpbWluZyA9IGRpZmZlcmVuY2VJbk1pbGxpc2Vjb25kcyAtIG9mZnNldEluTWlsbGlzZWNvbmRzO1xuICAgICAgICBpZiAoYWN0dWFsVGltaW5nIDw9IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFdlIG5lZWQgdG8gY2FwIHRoZSB0aW1pbmdzIGJlY2F1c2UgaWZcbiAgICAgICAgLy8gd2UgZ2V0IGxhcmdlIG51bWJlcnMgaXQgbWlnaHQgY2F1c2UgdW53YW50ZWQgcmVzdWx0cy5cbiAgICAgICAgY29uc3QgbWF4VGltaW5nID0gMTAwMCAqIDYwICogNjAgKiAyNDsgLy8gMjQgaG91cnMuXG4gICAgICAgIGNvbnN0IGNhcHBlZFRpbWluZyA9IE1hdGgubWF4KDEsIE1hdGgubWluKGFjdHVhbFRpbWluZywgbWF4VGltaW5nKSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fcmVmcmVzaEhhbmRsZXIgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQ/Lih0aGlzLl9yZWZyZXNoSGFuZGxlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVmcmVzaEhhbmRsZXIgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fcmVmcmVzaEhhbmRsZXIgPSBzZXRUaW1lb3V0Py4oKCkgPT4gdGhpcy5hdXRvUmVmcmVzaCgpLCBjYXBwZWRUaW1pbmcpO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIC8vIEp1c3QgaWdub3JlIGl0LlxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBhdXRvUmVmcmVzaCgpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIFdlIGp1c3QgbmVlZCB0byB3YWl0IGZvciBpdCB0byByZWZyZXNoLlxuICAgICAgICAgICAgY29uc3QgcmVmcmVzaCQgPSB0aGlzLnJlZnJlc2goKTtcbiAgICAgICAgICAgIGF3YWl0IGZpcnN0VmFsdWVGcm9tKHJlZnJlc2gkKTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAvLyBTb21ldGhpbmcgd2VudCB3cm9uZyByZWZyZXNoaW5nLCB3ZSBuZWVkIHRvIGNsZWFyLlxuICAgICAgICAgICAgdGhpcy5jbGVhckFuZFJlZGlyZWN0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCByb3V0ZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbmplY3Rvci5nZXQoUm91dGVyKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFVybChlbmRwb2ludDogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBbdGhpcy5faHR0cEFsaWFzLCBlbmRwb2ludF1cbiAgICAgICAgICAgIC5maWx0ZXIoaXRlbSA9PiAhIWl0ZW0pXG4gICAgICAgICAgICAuam9pbignLycpO1xuICAgIH1cblxufVxuIl19
270
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9hdXRoL3NyYy9saWIvYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxxQkFBcUIsRUFBa0MsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRyxPQUFPLEVBQWEsV0FBVyxFQUEwQixNQUFNLHNCQUFzQixDQUFDO0FBRXRGLE9BQU8sRUFBQyxZQUFZLEVBQTBCLE1BQU0sMkJBQTJCLENBQUM7QUFFaEYsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQVksUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRTdELE9BQU8sRUFBQyxjQUFjLEVBQWMsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXBELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7QUFHdkMsTUFBTSxPQUFPLElBQUk7SUFXYixZQUFvQixRQUFpQixFQUNqQixTQUFtQixFQUNuQixTQUFtQixFQUNuQixXQUF1QixFQUNYLE9BQW9CLEVBQ3BCLE1BQXNCLEVBQ3RCLFdBQXdCLEVBQ08sUUFBOEI7UUFQekUsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDWCxZQUFPLEdBQVAsT0FBTyxDQUFhO1FBQ3BCLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ08sYUFBUSxHQUFSLFFBQVEsQ0FBc0I7UUFoQjdGLGlCQUFpQjtRQUNBLGtCQUFhLEdBQXlCLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3JFLGVBQVUsR0FBa0IsSUFBSSxDQUFDLFdBQVcsRUFBRSxZQUFZLElBQUksSUFBSSxDQUFDO1FBSzVFLG9CQUFlLEdBQWtCLElBQUksQ0FBQztRQVUxQyw0REFBNEQ7UUFDNUQsdUNBQXVDO1FBQ3ZDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUztZQUM1QyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsd0VBQTJDLENBQUM7WUFDbkUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBRTNCLDRCQUE0QjtRQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksV0FBVyxDQUFDO1lBQzNCLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLGFBQWE7WUFDL0IsT0FBTyxFQUFFLGVBQWU7U0FDM0IsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztJQUNsQyxDQUFDO0lBRUQsVUFBVTtRQUNOLE9BQU8sS0FBSyxJQUFJLEVBQUU7WUFDZCx3REFBd0Q7WUFDeEQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLElBQUksSUFBSSxDQUFDO1lBQ3hELElBQUksQ0FBQyxlQUFlLEVBQUU7Z0JBQ2xCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7YUFDdEM7WUFFRCxvRUFBb0U7WUFDcEUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUU7Z0JBQy9CLE9BQU87YUFDVjtZQUVELHFDQUFxQztZQUNyQyxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFO2dCQUN4RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQztnQkFDaEUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNyQztZQUVELHlDQUF5QztZQUN6QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDeEIsTUFBTSxJQUFJLEdBQUcsTUFBTSxjQUFjLENBQUMsS0FBSyxFQUFFLEVBQUMsWUFBWSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7WUFFL0QsMkJBQTJCO1lBQzNCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDYixJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBTSxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQzthQUMzRDtZQUVELDJEQUEyRDtZQUMzRCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNoQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsRUFBRTtRQUNFLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBSSxHQUFHLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFzQixFQUFFLEVBQWE7UUFDOUMsTUFBTSxFQUFDLFdBQVcsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxFQUFDLEdBQUcsTUFBTSxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVuRyw2QkFBNkI7UUFDN0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxFQUFFLElBQUksSUFBSSxJQUFJLENBQUM7UUFDaEMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDcEM7UUFFRCxtREFBbUQ7UUFDbkQsMERBQTBEO1FBQzFELE1BQU0sV0FBVyxHQUFHLE1BQU0sRUFBRSxRQUFRLElBQUksSUFBSSxDQUFDO1FBQzdDLE1BQU0sY0FBYyxHQUFHLE1BQU0sRUFBRSxXQUFXLElBQUksSUFBSSxDQUFDO1FBQ25ELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQy9FLElBQUksa0JBQWtCLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQzFDLE9BQTJCLEVBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBQyxDQUFDO1NBQ3pGO1FBRUQsNkJBQTZCO1FBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRTFDLDJCQUEyQjtRQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUzQixtQkFBbUI7UUFDbkIsT0FBMkIsRUFBQyxJQUFJLEVBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsS0FBSyxDQUFDLGVBQWUsQ0FBQyxLQUFhLEVBQUUsUUFBZ0IsRUFBRSxFQUFhO1FBQ2hFLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksaUJBQWlCLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsS0FBSyxDQUFDLG9CQUFvQixDQUFDLElBQVksRUFBRSxXQUFtQjtRQUN4RCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLGtCQUFrQixDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFdBQW1CO1FBQ3RDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ3ZDLFlBQVksRUFBRSxXQUFXO1NBQzVCLENBQUMsQ0FBQztRQUVILE9BQU8sY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUSxDQUFVLElBQVMsRUFBRSxPQU9sQztRQUNHLG9CQUFvQjtRQUNwQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFzRCxHQUFHLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQy9HLE1BQU0sTUFBTSxHQUFHLE1BQU0sY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTdDLDZCQUE2QjtRQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBRXJELDJCQUEyQjtRQUMzQixNQUFNLElBQUksR0FBRyxNQUFNLEVBQUUsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTNCLG1CQUFtQjtRQUNuQixPQUFVLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsTUFBTTtRQUNGLDJEQUEyRDtRQUMzRCxxREFBcUQ7UUFDckQsZ0NBQWdDO1FBQ2hDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO1FBQy9DLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDL0I7UUFFRCx3Q0FBd0M7UUFDeEMsZ0NBQWdDO1FBQ2hDLElBQUk7WUFDQSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3ZDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sSUFBSSxlQUFlLENBQUM7WUFDakUsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUMxQyxPQUFPLEVBQUUsRUFBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFLFlBQVksRUFBQzthQUN4QyxDQUFDLENBQUM7WUFDSCxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDMUQ7UUFBQyxNQUFNO1lBQ0osMEVBQTBFO1NBQzdFO1FBRUQsc0NBQXNDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsT0FBTztRQUNILDRCQUE0QjtRQUM1QiwrQ0FBK0M7UUFDL0MsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFDL0MsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNmLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ25CO1FBRUQsNEJBQTRCO1FBQzVCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sSUFBSSxlQUFlLENBQUM7UUFDakUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxJQUFJLFFBQVEsQ0FBQztRQUV0RCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRWhFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQTJDLEdBQUcsRUFBRTtZQUN2RSxPQUFPLEVBQUUsRUFBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEdBQUcsTUFBTSxJQUFJLFlBQVksRUFBRSxFQUFDO1lBQ3BELE9BQU8sRUFBRSxPQUFPO1NBQ25CLENBQUMsQ0FBQyxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUUsYUFBYSxFQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDLEVBQ3JFLEdBQUcsQ0FBQyxDQUFDLEVBQUMsS0FBSyxFQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUMxQixDQUFDO0lBQ04sQ0FBQztJQUVELEtBQUssQ0FBQyxlQUFlLENBQUMsS0FBYSxFQUFFLGNBQXNDLEVBQUU7UUFDekUsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN0QyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBQyxHQUFHLFdBQVcsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO1FBQ3hFLE9BQU8sY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQWEsRUFBRSxXQUFtQixFQUFFLGNBQXNDLEVBQUU7UUFDNUYsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQy9DLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFDLEdBQUcsV0FBVyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFDLENBQUMsQ0FBQztRQUMvRixPQUFPLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsZ0JBQWdCO1FBQ1oseUNBQXlDO1FBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFckIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ3RELElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxLQUFLLElBQUksRUFBRTtnQkFDOUIsT0FBTzthQUNWO1lBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEQsT0FBTztTQUNWO1FBRUQsNEJBQTRCO1FBQzVCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUM7UUFFcEUscURBQXFEO1FBQ3JELElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxXQUFXLEVBQUU7WUFDNUIsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzFFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQy9DO0lBQ0wsQ0FBQztJQUVPLFNBQVMsQ0FBQyxXQUFtQixFQUFFLFlBQW9CO1FBQ3ZELGlDQUFpQztRQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFFbEQsMkRBQTJEO1FBQzNELElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTyxvQkFBb0I7UUFDeEIsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLFdBQVcsSUFBSSxLQUFLLENBQUM7UUFDN0QsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ3BCLE9BQU87U0FDVjtRQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLEVBQUUsU0FBUyxJQUFJLElBQUksQ0FBQztRQUN0RSxJQUFJLFNBQVMsS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRTtZQUNqRCxPQUFPO1NBQ1Y7UUFFRCxNQUFNLHdCQUF3QixHQUFHLFNBQVMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDbEUsTUFBTSxvQkFBb0IsR0FBRyxLQUFNLENBQUMsQ0FBQyxjQUFjO1FBRW5ELDZEQUE2RDtRQUM3RCxNQUFNLFlBQVksR0FBRyx3QkFBd0IsR0FBRyxvQkFBb0IsQ0FBQztRQUNyRSxJQUFJLFlBQVksSUFBSSxDQUFDLEVBQUU7WUFDbkIsT0FBTztTQUNWO1FBRUQsd0NBQXdDO1FBQ3hDLHdEQUF3RDtRQUN4RCxNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxZQUFZO1FBQ25ELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDcEUsSUFBSTtZQUNBLElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxJQUFJLEVBQUU7Z0JBQy9CLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFDckMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7YUFDL0I7WUFDRCxJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sRUFBRSxVQUFVLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUM7U0FDdkY7UUFBQyxNQUFNO1lBQ0osa0JBQWtCO1NBQ3JCO0lBQ0wsQ0FBQztJQUVPLEtBQUssQ0FBQyxXQUFXO1FBQ3JCLElBQUk7WUFDQSwwQ0FBMEM7WUFDMUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2hDLE1BQU0sY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ2xDO1FBQUMsTUFBTTtZQUNKLHFEQUFxRDtZQUNyRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztTQUMzQjtJQUNMLENBQUM7SUFFRCxJQUFZLE1BQU07UUFDZCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTyxNQUFNLENBQUMsUUFBZ0I7UUFDM0IsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDO2FBQzdCLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7YUFDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLENBQUM7O2tHQW5TUSxJQUFJLG9QQWtCbUIscUJBQXFCO3NHQWxCNUMsSUFBSTs0RkFBSixJQUFJO2tCQURoQixVQUFVOzswQkFnQk0sUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FVVEhfUkVESVJFQ1RfSEFORExFUiwgQXV0aENvbmZpZywgQXV0aFJlZGlyZWN0SGFuZGxlcn0gZnJvbSAnLi9pbnRlcmZhY2VzL2NvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwQ29udGV4dCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXN9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7QXV0aFByb3ZpZGVyLCBBdXRoU2lnbkluUmVzcG9uc2V9IGZyb20gJy4vaW50ZXJmYWNlcy9wcm92aWRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHttYWtlU3RhdGVLZXksIFN0YXRlS2V5LCBUcmFuc2ZlclN0YXRlfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7U3RvcmFnZSwgU3RvcmFnZU9wdGlvbn0gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24vc3RvcmFnZSc7XG5pbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VVNFX0FVVEhPUklaQVRJT059IGZyb20gJy4vdG9rZW5zL3VzZS1hdXRob3JpemF0aW9uLnRva2VuJztcbmltcG9ydCB7QXV0aFZlcmlmeVByb3ZpZGVyfSBmcm9tICcuL3Byb3ZpZGVycy92ZXJpZnkucHJvdmlkZXInO1xuaW1wb3J0IHtBdXRoRW1haWxQcm92aWRlcn0gZnJvbSAnLi9wcm92aWRlcnMvZW1haWwucHJvdmlkZXInO1xuaW1wb3J0IHtIdHRwQ29uZmlnfSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbi9odHRwJztcbmltcG9ydCB7Zmlyc3RWYWx1ZUZyb20sIE9ic2VydmFibGUsIG9mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7UGxhdGZvcm19IGZyb20gJ0Bhbmd1bGFyL2Nkay9wbGF0Zm9ybSc7XG5pbXBvcnQge0F1dGhTZXNzaW9ufSBmcm9tICcuL2F1dGguc2Vzc2lvbic7XG5pbXBvcnQge21hcCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1JvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEF1dGgge1xuXG4gICAgLy8gUmVhZG9ubHkgZGF0YS5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9hdXRoU3RhdGVLZXk6IFN0YXRlS2V5PGFueSB8IG51bGw+ID0gbWFrZVN0YXRlS2V5KGBiYkF1dGhTdGF0ZUtleWApO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2h0dHBBbGlhczogc3RyaW5nIHwgbnVsbCA9IHRoaXMuX2h0dHBDb25maWc/LmRlZmF1bHRBbGlhcyA/PyBudWxsO1xuXG4gICAgcmVhZG9ubHkgc2Vzc2lvbjogQXV0aFNlc3Npb247XG4gICAgcmVhZG9ubHkgdXNlcjogT2JzZXJ2YWJsZTxhbnkgfCBudWxsPjtcblxuICAgIHByaXZhdGUgX3JlZnJlc2hIYW5kbGVyOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX3N0b3JhZ2U6IFN0b3JhZ2UsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX3BsYXRmb3JtOiBQbGF0Zm9ybSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9odHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2NvbmZpZz86IEF1dGhDb25maWcsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfc3RhdGU/OiBUcmFuc2ZlclN0YXRlLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2h0dHBDb25maWc/OiBIdHRwQ29uZmlnLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQVVUSF9SRURJUkVDVF9IQU5ETEVSKSBwcml2YXRlIF9oYW5kbGVyPzogQXV0aFJlZGlyZWN0SGFuZGxlcikge1xuICAgICAgICAvLyBXZSBzZWxlY3QgYSBzdG9yYWdlIHN0cmF0ZWd5IGJhc2VkIG9uIHRoZSBzZXJ2ZXIvYnJvd3Nlci5cbiAgICAgICAgLy8gT25seSBjb29raWVzIENBTiB3b3JrIG9uIHRoZSBzZXJ2ZXIuXG4gICAgICAgIGNvbnN0IHN0b3JhZ2VTdHJhdGVneSA9IHRoaXMuX3BsYXRmb3JtLmlzQnJvd3NlclxuICAgICAgICAgICAgPyB0aGlzLl9zdG9yYWdlLnNlbGVjdChbU3RvcmFnZU9wdGlvbi5Db29raWUsIFN0b3JhZ2VPcHRpb24uTG9jYWxdKVxuICAgICAgICAgICAgOiB0aGlzLl9zdG9yYWdlLmNvb2tpZTtcblxuICAgICAgICAvLyBTdGFydGluZyB0aGUgbmV3IHNlc3Npb24uXG4gICAgICAgIHRoaXMuc2Vzc2lvbiA9IG5ldyBBdXRoU2Vzc2lvbih7XG4gICAgICAgICAgICBpZDogdGhpcy5fY29uZmlnPy5hcHBsaWNhdGlvbklkLFxuICAgICAgICAgICAgc3RvcmFnZTogc3RvcmFnZVN0cmF0ZWd5XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnVzZXIgPSB0aGlzLnNlc3Npb24udXNlcjtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplKCkge1xuICAgICAgICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGFwcCBzaG91bGQgYm9vdHN0cmFwIHRoZSBhdXRoZW50aWNhdGlvbi5cbiAgICAgICAgICAgIGNvbnN0IHNob3VsZEJvb3RzdHJhcCA9IHRoaXMuX2NvbmZpZz8uYm9vdHN0cmFwID8/IHRydWU7XG4gICAgICAgICAgICBpZiAoIXNob3VsZEJvb3RzdHJhcCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZUF1dG9SZWZyZXNoaW5nKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIE9ubHkgcmV0cmlldmUgZnJvbSB0aGUgc2VydmVyIHdoZW4gd2UgYXJlIGFjdHVhbGx5IGF1dGhlbnRpY2F0ZWQuXG4gICAgICAgICAgICBpZiAoIXRoaXMuc2Vzc2lvbi5hdXRoZW50aWNhdGVkKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEdldCB0aGUga2V5IGZyb20gdGhlIHNlcnZlciBzdGF0ZS5cbiAgICAgICAgICAgIGlmICh0aGlzLl9zdGF0ZSAmJiB0aGlzLl9zdGF0ZT8uaGFzS2V5KHRoaXMuX2F1dGhTdGF0ZUtleSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB1c2VyID0gdGhpcy5fc3RhdGU/LmdldCh0aGlzLl9hdXRoU3RhdGVLZXksIG51bGwpID8/IG51bGw7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2Vzc2lvbi5zZXRVc2VyKHVzZXIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBUcnkgdG8gZmV0Y2ggdGhlIHVzZXIgZnJvbSB0aGUgc2VydmVyLlxuICAgICAgICAgICAgY29uc3QgdXNlciQgPSB0aGlzLm1lKCk7XG4gICAgICAgICAgICBjb25zdCB1c2VyID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odXNlciQsIHtkZWZhdWx0VmFsdWU6IG51bGx9KTtcblxuICAgICAgICAgICAgLy8gU2V0IHRoZSBzdGF0ZSBpZiBleGlzdHMuXG4gICAgICAgICAgICBpZiAodGhpcy5fc3RhdGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZT8uc2V0PGFueT4odGhpcy5fYXV0aFN0YXRlS2V5LCB1c2VyID8/IG51bGwpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBTYXZlIHRoZSB1c2VyIGluIHRoZSBzdG9yYWdlIGFuZCBoYW5kbGUgYXV0byByZWZyZXNoaW5nLlxuICAgICAgICAgICAgdGhpcy5zZXNzaW9uLnNldFVzZXIodXNlcik7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUF1dG9SZWZyZXNoaW5nKCk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgbWU8VCA9IGFueT4oKSB7XG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuZ2V0VXJsKCdhdXRoL21lJyk7XG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwQ2xpZW50LmdldDxUPih1cmwpO1xuICAgIH1cblxuICAgIGFzeW5jIHNpZ25Jbihwcm92aWRlcjogQXV0aFByb3ZpZGVyLCBhcz86IHN0cmluZ1tdKSB7XG4gICAgICAgIGNvbnN0IHthY2Nlc3NUb2tlbiwgcmVmcmVzaFRva2VuLCB1c2VyLCAuLi5yZXN1bHR9ID0gYXdhaXQgcHJvdmlkZXIuYXV0aGVudGljYXRlKHRoaXMuX2h0dHBDbGllbnQpO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSByb2xlIG1hdGNoZXMuXG4gICAgICAgIGNvbnN0IHJvbGUgPSB1c2VyPy5yb2xlID8/IG51bGw7XG4gICAgICAgIGlmIChhcyAmJiAhYXMuaW5jbHVkZXMocm9sZSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCByb2xlLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVmFsaWRhdGUgaWYgdGhlIHByb3ZpZGVyIGlzIG9uZSBvZiB0aGUgYXZhaWxhYmxlXG4gICAgICAgIC8vIHByb3ZpZGVycyB0aGVuIHJldHVybiB0aGUgdXNlciBvYmplY3QgYW5kIHRoZSBwcm92aWRlci5cbiAgICAgICAgY29uc3QgYXBpUHJvdmlkZXIgPSByZXN1bHQ/LnByb3ZpZGVyID8/IG51bGw7XG4gICAgICAgIGNvbnN0IGFwaVZlcmlmeVRva2VuID0gcmVzdWx0Py52ZXJpZnlUb2tlbiA/PyBudWxsO1xuICAgICAgICBjb25zdCBhdmFpbGFibGVQcm92aWRlcnMgPSB0aGlzLl9jb25maWc/LnByb3ZpZGVycyA/PyBbJ2VtYWlsJywgJ3NtcycsICd0b3RwJ107XG4gICAgICAgIGlmIChhdmFpbGFibGVQcm92aWRlcnMuaW5jbHVkZXMoYXBpUHJvdmlkZXIpKSB7XG4gICAgICAgICAgICByZXR1cm4gPEF1dGhTaWduSW5SZXNwb25zZT57dXNlciwgcHJvdmlkZXI6IGFwaVByb3ZpZGVyLCB2ZXJpZnlUb2tlbjogYXBpVmVyaWZ5VG9rZW59O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2V0IHRoZSB0b2tlbnMgaW4gc3RvcmFnZS5cbiAgICAgICAgdGhpcy5zZXRUb2tlbnMoYWNjZXNzVG9rZW4sIHJlZnJlc2hUb2tlbik7XG5cbiAgICAgICAgLy8gU2V0IHRoZSB1c2VyIGluIHN0b3JhZ2UuXG4gICAgICAgIHRoaXMuc2Vzc2lvbi5zZXRVc2VyKHVzZXIpO1xuXG4gICAgICAgIC8vIFJldHVybiB0aGUgdXNlci5cbiAgICAgICAgcmV0dXJuIDxBdXRoU2lnbkluUmVzcG9uc2U+e3VzZXJ9O1xuICAgIH1cblxuICAgIGFzeW5jIHNpZ25JbldpdGhFbWFpbChlbWFpbDogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nLCBhcz86IHN0cmluZ1tdKSB7XG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuZ2V0VXJsKCdhdXRoL2xvZ2luJyk7XG4gICAgICAgIHJldHVybiB0aGlzLnNpZ25JbihuZXcgQXV0aEVtYWlsUHJvdmlkZXIoZW1haWwsIHBhc3N3b3JkLCB1cmwpLCBhcyk7XG4gICAgfVxuXG4gICAgYXN5bmMgc2lnbkluV2l0aFZlcmlmeUNvZGUoY29kZTogc3RyaW5nLCB2ZXJpZnlUb2tlbjogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuZ2V0VXJsKCdhdXRoL3ZlcmlmeScpO1xuICAgICAgICByZXR1cm4gdGhpcy5zaWduSW4obmV3IEF1dGhWZXJpZnlQcm92aWRlcihjb2RlLCB2ZXJpZnlUb2tlbiwgdXJsKSk7XG4gICAgfVxuXG4gICAgYXN5bmMgcmVzZW5kVmVyaWZ5Q29kZSh2ZXJpZnlUb2tlbjogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuZ2V0VXJsKCdhdXRoL3Jlc2VuZCcpO1xuICAgICAgICBjb25zdCByZXN1bHQkID0gdGhpcy5faHR0cENsaWVudC5wb3N0KHVybCwge1xuICAgICAgICAgICAgdmVyaWZ5X3Rva2VuOiB2ZXJpZnlUb2tlblxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20ocmVzdWx0JCk7XG4gICAgfVxuXG4gICAgYXN5bmMgcmVnaXN0ZXI8VCA9IGFueT4oZGF0YTogYW55LCBvcHRpb25zPzoge1xuICAgICAgICBoZWFkZXJzPzogSHR0cEhlYWRlcnMgfCB7XG4gICAgICAgICAgICBbaGVhZGVyOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgICAgICAgfTtcbiAgICAgICAgcGFyYW1zPzogSHR0cFBhcmFtcyB8IHtcbiAgICAgICAgICAgIFtwYXJhbTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IFJlYWRvbmx5QXJyYXk8c3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbj47XG4gICAgICAgIH07XG4gICAgfSkge1xuICAgICAgICAvLyBFeGVjdXRlIEFQSSBjYWxsLlxuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLmdldFVybCgnYXV0aC9yZWdpc3RlcicpO1xuICAgICAgICBjb25zdCByZXN1bHQkID0gdGhpcy5faHR0cENsaWVudC5wb3N0PHsgdG9rZW46IHN0cmluZywgcmVmcmVzaF90b2tlbjogc3RyaW5nLCB1c2VyOiBhbnkgfT4odXJsLCBkYXRhLCBvcHRpb25zKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20ocmVzdWx0JCk7XG5cbiAgICAgICAgLy8gU2V0IHRoZSB0b2tlbnMgaW4gc3RvcmFnZS5cbiAgICAgICAgdGhpcy5zZXRUb2tlbnMocmVzdWx0Py50b2tlbiwgcmVzdWx0Py5yZWZyZXNoX3Rva2VuKTtcblxuICAgICAgICAvLyBTZXQgdGhlIHVzZXIgaW4gc3RvcmFnZS5cbiAgICAgICAgY29uc3QgdXNlciA9IHJlc3VsdD8udXNlcjtcbiAgICAgICAgdGhpcy5zZXNzaW9uLnNldFVzZXIodXNlcik7XG5cbiAgICAgICAgLy8gUmV0dXJuIHRoZSB1c2VyLlxuICAgICAgICByZXR1cm4gPFQ+dXNlcjtcbiAgICB9XG5cbiAgICBsb2dvdXQoKSB7XG4gICAgICAgIC8vIElmIHdlIGRvbid0IGhhdmUgYSByZWZyZXNoIHRva2VuIGp1c3QgY2xlYXIgdGhlIHNlc3Npb24uXG4gICAgICAgIC8vIE5vdGU6IFdlIGRvIHRoaXMgYmVjYXVzZSBlbHNlIHdlIHRyeSB0byBpbnZhbGlkYXRlXG4gICAgICAgIC8vIGFuIFwidW5kZWZpbmVkXCIgcmVmcmVzaCB0b2tlbi5cbiAgICAgICAgY29uc3QgcmVmcmVzaFRva2VuID0gdGhpcy5zZXNzaW9uLnJlZnJlc2hUb2tlbjtcbiAgICAgICAgaWYgKCFyZWZyZXNoVG9rZW4pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNlc3Npb24uY2xlYXIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFdlIGRvIGhhdmUgYSByZWZyZXNoIHRva2VuLCBzbyB0cnkgdG9cbiAgICAgICAgLy8gaW52YWxpZGF0ZSBpdCBpbiB0aGUgYmFja2VuZC5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHVybCA9IHRoaXMuZ2V0VXJsKCdhdXRoL2xvZ291dCcpO1xuICAgICAgICAgICAgY29uc3QgaGVhZGVyTmFtZSA9IHRoaXMuX2NvbmZpZz8uaHR0cD8uaGVhZGVyID8/ICdBdXRob3JpemF0aW9uJztcbiAgICAgICAgICAgIGNvbnN0IG9ic2VydmFibGUkID0gdGhpcy5faHR0cENsaWVudC5nZXQodXJsLCB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1toZWFkZXJOYW1lXTogcmVmcmVzaFRva2VufVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBmaXJzdFZhbHVlRnJvbShvYnNlcnZhYmxlJCkudGhlbihfID0+IF8pLmNhdGNoKF8gPT4gXyk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgLy8gRG8gbm90aGluZyBiZWNhdXNlIHRoZSB0b2tlbnMgd2lsbCBiZSBkZWxldGVkIGFueXdheXMgZnJvbSB0aGUgc2Vzc2lvbi5cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERlbGV0ZSB0aGUgdG9rZW5zIGZyb20gdGhlIHNlc3Npb24uXG4gICAgICAgIHJldHVybiB0aGlzLnNlc3Npb24uY2xlYXIoKTtcbiAgICB9XG5cbiAgICByZWZyZXNoKCkge1xuICAgICAgICAvLyBJZiB0aGUgcmVmcmVzaCB0b2tlbiBkb2VzXG4gICAgICAgIC8vIG5vdCBleGlzdCBqdXN0IHJldHVybiBhbiBvYnNlcnZhYmxlIG9mIG51bGwuXG4gICAgICAgIGNvbnN0IHJlZnJlc2hUb2tlbiA9IHRoaXMuc2Vzc2lvbi5yZWZyZXNoVG9rZW47XG4gICAgICAgIGlmICghcmVmcmVzaFRva2VuKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBQZXJmb3JtIHRoZSByZWZyZXNoIGNhbGwuXG4gICAgICAgIGNvbnN0IGhlYWRlck5hbWUgPSB0aGlzLl9jb25maWc/Lmh0dHA/LmhlYWRlciA/PyAnQXV0aG9yaXphdGlvbic7XG4gICAgICAgIGNvbnN0IHNjaGVtZSA9IHRoaXMuX2NvbmZpZz8uaHR0cD8uc2NoZW1lID8/ICdCZWFyZXInO1xuXG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuZ2V0VXJsKCdhdXRoL3JlZnJlc2gnKTtcbiAgICAgICAgY29uc3QgY29udGV4dCA9IG5ldyBIdHRwQ29udGV4dCgpLnNldChVU0VfQVVUSE9SSVpBVElPTiwgZmFsc2UpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwQ2xpZW50LmdldDx7IHRva2VuOiBzdHJpbmcsIHJlZnJlc2hfdG9rZW46IHN0cmluZyB9Pih1cmwsIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHtbaGVhZGVyTmFtZV06IGAke3NjaGVtZX0gJHtyZWZyZXNoVG9rZW59YH0sXG4gICAgICAgICAgICBjb250ZXh0OiBjb250ZXh0XG4gICAgICAgIH0pLnBpcGUoXG4gICAgICAgICAgICB0YXAoKHt0b2tlbiwgcmVmcmVzaF90b2tlbn0pID0+IHRoaXMuc2V0VG9rZW5zKHRva2VuLCByZWZyZXNoX3Rva2VuKSksXG4gICAgICAgICAgICBtYXAoKHt0b2tlbn0pID0+IHRva2VuKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGFzeW5jIHJlcXVlc3RQYXNzd29yZChlbWFpbDogc3RyaW5nLCBleHRyYVBhcmFtczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9KSB7XG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuZ2V0VXJsKCdhdXRoL3Jlc2V0Jyk7XG4gICAgICAgIGNvbnN0IG9ic2VydmFibGUkID0gdGhpcy5faHR0cENsaWVudC5wb3N0KHVybCwgey4uLmV4dHJhUGFyYW1zLCBlbWFpbH0pO1xuICAgICAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20ob2JzZXJ2YWJsZSQpO1xuICAgIH1cblxuICAgIGFzeW5jIHJlc2V0UGFzc3dvcmQodG9rZW46IHN0cmluZywgbmV3UGFzc3dvcmQ6IHN0cmluZywgZXh0cmFQYXJhbXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fSkge1xuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLmdldFVybCgnYXV0aC9yZXNldC1wYXNzd29yZCcpO1xuICAgICAgICBjb25zdCBvYnNlcnZhYmxlJCA9IHRoaXMuX2h0dHBDbGllbnQucG9zdCh1cmwsIHsuLi5leHRyYVBhcmFtcywgdG9rZW4sIHBhc3N3b3JkOiBuZXdQYXNzd29yZH0pO1xuICAgICAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20ob2JzZXJ2YWJsZSQpO1xuICAgIH1cblxuICAgIGNsZWFyQW5kUmVkaXJlY3QoKSB7XG4gICAgICAgIC8vIDEuIERlbGV0ZSB0aGUgdG9rZW5zIGZyb20gdGhlIHNlc3Npb24uXG4gICAgICAgIHRoaXMuc2Vzc2lvbi5jbGVhcigpO1xuXG4gICAgICAgIGlmICh0aGlzLl9oYW5kbGVyKSB7XG4gICAgICAgICAgICBjb25zdCB1cmxUcmVlID0gdGhpcy5faGFuZGxlci5vbkZhaWxlZEF1dGhlbnRpY2F0ZWQoKTtcbiAgICAgICAgICAgIGlmICghdXJsVHJlZSB8fCB1cmxUcmVlID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHVybFRyZWUpLnRoZW4oXyA9PiBfKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIDIuIENvbXBvc2UgdGhlIHJvdXRlIHVybC5cbiAgICAgICAgY29uc3QgcmVkaXJlY3RVcmwgPSB0aGlzLl9jb25maWc/LnJlZGlyZWN0cy51bmF1dGhlbnRpY2F0ZWQgPz8gbnVsbDtcblxuICAgICAgICAvLyAzLiBSb3V0ZSBiYWNrIGlmIHRoZSB1c2VyIHByb3ZpZGVkIGEgcmVkaXJlY3QgdXJsLlxuICAgICAgICBpZiAodGhpcy5yb3V0ZXIgJiYgcmVkaXJlY3RVcmwpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbW1hbmRzID0gQXJyYXkuaXNBcnJheShyZWRpcmVjdFVybCkgPyByZWRpcmVjdFVybCA6IFtyZWRpcmVjdFVybF07XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShjb21tYW5kcykudGhlbihfID0+IF8pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRUb2tlbnMoYWNjZXNzVG9rZW46IHN0cmluZywgcmVmcmVzaFRva2VuOiBzdHJpbmcpIHtcbiAgICAgICAgLy8gU2V0IHRoZSB0b2tlbnMgaW4gb3VyIHNlc3Npb24uXG4gICAgICAgIHRoaXMuc2Vzc2lvbi5zZXRUb2tlbnMoYWNjZXNzVG9rZW4sIHJlZnJlc2hUb2tlbik7XG5cbiAgICAgICAgLy8gV2UgbmVlZCB0byB1cGRhdGUgdGhlIGF1dG8gcmVmcmVzaCBvZiB0aGUgcmVmcmVzaCB0b2tlbi5cbiAgICAgICAgdGhpcy5oYW5kbGVBdXRvUmVmcmVzaGluZygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlQXV0b1JlZnJlc2hpbmcoKSB7XG4gICAgICAgIGNvbnN0IHNob3VsZEF1dG9SZWZyZXNoID0gdGhpcy5fY29uZmlnPy5hdXRvUmVmcmVzaCA/PyBmYWxzZTtcbiAgICAgICAgaWYgKCFzaG91bGRBdXRvUmVmcmVzaCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZXhwaXJlc0F0ID0gdGhpcy5zZXNzaW9uLnJlZnJlc2hUb2tlblBheWxvYWQ/LmV4cGlyZXNBdCA/PyBudWxsO1xuICAgICAgICBpZiAoZXhwaXJlc0F0ID09PSBudWxsIHx8ICF0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRpZmZlcmVuY2VJbk1pbGxpc2Vjb25kcyA9IGV4cGlyZXNBdC5nZXRUaW1lKCkgLSBEYXRlLm5vdygpO1xuICAgICAgICBjb25zdCBvZmZzZXRJbk1pbGxpc2Vjb25kcyA9IDEwXzAwMDsgLy8gMTAgc2Vjb25kcy5cblxuICAgICAgICAvLyBXZSB3YW50IHRvIHN0YXJ0IHRoZSByZWZyZXNoIDEwIHNlY29uZHMgYmVmb3JlIGl0IGV4cGlyZXMuXG4gICAgICAgIGNvbnN0IGFjdHVhbFRpbWluZyA9IGRpZmZlcmVuY2VJbk1pbGxpc2Vjb25kcyAtIG9mZnNldEluTWlsbGlzZWNvbmRzO1xuICAgICAgICBpZiAoYWN0dWFsVGltaW5nIDw9IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFdlIG5lZWQgdG8gY2FwIHRoZSB0aW1pbmdzIGJlY2F1c2UgaWZcbiAgICAgICAgLy8gd2UgZ2V0IGxhcmdlIG51bWJlcnMgaXQgbWlnaHQgY2F1c2UgdW53YW50ZWQgcmVzdWx0cy5cbiAgICAgICAgY29uc3QgbWF4VGltaW5nID0gMTAwMCAqIDYwICogNjAgKiAyNDsgLy8gMjQgaG91cnMuXG4gICAgICAgIGNvbnN0IGNhcHBlZFRpbWluZyA9IE1hdGgubWF4KDEsIE1hdGgubWluKGFjdHVhbFRpbWluZywgbWF4VGltaW5nKSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fcmVmcmVzaEhhbmRsZXIgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQ/Lih0aGlzLl9yZWZyZXNoSGFuZGxlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVmcmVzaEhhbmRsZXIgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fcmVmcmVzaEhhbmRsZXIgPSB3aW5kb3c/LnNldFRpbWVvdXQ/LigoKSA9PiB0aGlzLmF1dG9SZWZyZXNoKCksIGNhcHBlZFRpbWluZyk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgLy8gSnVzdCBpZ25vcmUgaXQuXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGF1dG9SZWZyZXNoKCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gV2UganVzdCBuZWVkIHRvIHdhaXQgZm9yIGl0IHRvIHJlZnJlc2guXG4gICAgICAgICAgICBjb25zdCByZWZyZXNoJCA9IHRoaXMucmVmcmVzaCgpO1xuICAgICAgICAgICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20ocmVmcmVzaCQpO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIC8vIFNvbWV0aGluZyB3ZW50IHdyb25nIHJlZnJlc2hpbmcsIHdlIG5lZWQgdG8gY2xlYXIuXG4gICAgICAgICAgICB0aGlzLmNsZWFyQW5kUmVkaXJlY3QoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IHJvdXRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luamVjdG9yLmdldChSb3V0ZXIpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VXJsKGVuZHBvaW50OiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIFt0aGlzLl9odHRwQWxpYXMsIGVuZHBvaW50XVxuICAgICAgICAgICAgLmZpbHRlcihpdGVtID0+ICEhaXRlbSlcbiAgICAgICAgICAgIC5qb2luKCcvJyk7XG4gICAgfVxuXG59XG4iXX0=
@@ -34,6 +34,13 @@ export class AuthSession {
34
34
  // Init methods.
35
35
  this.restoreFromStorage();
36
36
  }
37
+ get snapshot() {
38
+ return {
39
+ user: this._user$.getValue(),
40
+ accessToken: this.accessToken,
41
+ refreshToken: this.refreshToken
42
+ };
43
+ }
37
44
  get accessToken() {
38
45
  return this.isTokenValid(this._accessTokenPayload)
39
46
  ? this._accessTokenString
@@ -128,4 +135,4 @@ export class AuthSession {
128
135
  this._refreshTokenPayload = this._jwt.decode(this._refreshTokenString);
129
136
  }
130
137
  }
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXNzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9hdXRoL3NyYy9saWIvYXV0aC5zZXNzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVyQyxNQUFNLE9BQU8sV0FBVztJQXlCcEIsWUFBWSxPQUFvRDtRQXZCaEUsaUJBQWlCO1FBQ0EsU0FBSSxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7UUFNeEMsaUJBQWlCO1FBQ1QsdUJBQWtCLEdBQWtCLElBQUksQ0FBQztRQUN6Qyx3QkFBbUIsR0FBa0IsSUFBSSxDQUFDO1FBRWxELGtCQUFrQjtRQUNWLHdCQUFtQixHQUFxQixJQUFJLENBQUM7UUFDN0MseUJBQW9CLEdBQXFCLElBQUksQ0FBQztRQUV0RCxxQkFBcUI7UUFDYixXQUFNLEdBQUcsSUFBSSxlQUFlLENBQWEsSUFBSSxDQUFDLENBQUM7UUFFdkQsb0JBQW9CO1FBQ3BCLFNBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDbkIsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNqQixDQUFDO1FBZ0lNLGdCQUFXLEdBQUcsQ0FBQyxhQUFxQixFQUFFLEdBQVcsRUFBRSxFQUFFO1lBQ3pELE9BQU8sQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQztRQUVNLGlCQUFZLEdBQUcsQ0FBQyxLQUFnQixFQUFFLEVBQUU7WUFDeEMsSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDUixPQUFPLEtBQUssQ0FBQzthQUNoQjtZQUVELE9BQU8sS0FBSyxFQUFF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QUM7UUFDcEMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQ3JEO1FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBVSxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksRUFBRTtZQUNuRCxPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ3BDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxjQUFjLENBQUMsS0FBb0I7UUFDdkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssSUFBSSxJQUFJLENBQUM7UUFDeEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFTyxlQUFlLENBQUMsS0FBb0I7UUFDeEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssSUFBSSxJQUFJLENBQUM7UUFDekMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzNFLENBQUM7Q0FjSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U3RvcmFnZVN0cmF0ZWd5fSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbi9zdG9yYWdlJztcbmltcG9ydCB7QXV0aFRva2VufSBmcm9tICcuL2ludGVyZmFjZXMvdG9rZW4uaW50ZXJmYWNlJztcbmltcG9ydCB7Snd0SGVscGVyfSBmcm9tICcuL2hlbHBlcnMvand0LmhlbHBlcic7XG5pbXBvcnQge3NoYXJlUmVwbGF5fSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjbGFzcyBBdXRoU2Vzc2lvbiB7XG5cbiAgICAvLyBSZWFkb25seSBkYXRhLlxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2p3dCA9IG5ldyBKd3RIZWxwZXIoKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yYWdlOiBTdG9yYWdlU3RyYXRlZ3kgfCBudWxsO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2FjY2Vzc1Rva2VuU3RvcmFnZUtleTogc3RyaW5nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3JlZnJlc2hUb2tlblN0b3JhZ2VLZXk6IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IF91c2VyU3RvcmFnZUtleTogc3RyaW5nO1xuXG4gICAgLy8gVG9rZW4gc3RyaW5ncy5cbiAgICBwcml2YXRlIF9hY2Nlc3NUb2tlblN0cmluZzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSBfcmVmcmVzaFRva2VuU3RyaW5nOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIC8vIFRva2VuIHBheWxvYWRzLlxuICAgIHByaXZhdGUgX2FjY2Vzc1Rva2VuUGF5bG9hZDogQXV0aFRva2VuIHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSBfcmVmcmVzaFRva2VuUGF5bG9hZDogQXV0aFRva2VuIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvLyBQcml2YXRlIHVzZXIgZGF0YS5cbiAgICBwcml2YXRlIF91c2VyJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55IHwgbnVsbD4obnVsbCk7XG5cbiAgICAvLyBQdWJsaWMgdXNlciBkYXRhLlxuICAgIHVzZXIgPSB0aGlzLl91c2VyJC5waXBlKFxuICAgICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zPzogeyBpZD86IHN0cmluZywgc3RvcmFnZT86IFN0b3JhZ2VTdHJhdGVneSB9KSB7XG4gICAgICAgIGNvbnN0IGFwcGxpY2F0aW9uSWQgPSBvcHRpb25zPy5pZCA/PyAnbmcnO1xuXG4gICAgICAgIC8vIFNldHRpbmcgdXAgdGhlIHJlYWRvbmx5IHN0b3JhZ2Uga2V5cy5cbiAgICAgICAgdGhpcy5fYWNjZXNzVG9rZW5TdG9yYWdlS2V5ID0gdGhpcy5nZW5lcmF0ZUtleShhcHBsaWNhdGlvbklkLCAnYXVfYWN0Jyk7XG4gICAgICAgIHRoaXMuX3JlZnJlc2hUb2tlblN0b3JhZ2VLZXkgPSB0aGlzLmdlbmVyYXRlS2V5KGFwcGxpY2F0aW9uSWQsICdhdV9yZnQnKTtcbiAgICAgICAgdGhpcy5fdXNlclN0b3JhZ2VLZXkgPSB0aGlzLmdlbmVyYXRlS2V5KGFwcGxpY2F0aW9uSWQsICdhdV91c3InKTtcblxuICAgICAgICAvLyBTZXR0aW5nIHVwIHRoZSBzdG9yYWdlLlxuICAgICAgICB0aGlzLl9zdG9yYWdlID0gb3B0aW9ucz8uc3RvcmFnZSA/PyBudWxsO1xuXG4gICAgICAgIC8vIEluaXQgbWV0aG9kcy5cbiAgICAgICAgdGhpcy5yZXN0b3JlRnJvbVN0b3JhZ2UoKTtcbiAgICB9XG5cbiAgICBnZXQgYWNjZXNzVG9rZW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVG9rZW5WYWxpZCh0aGlzLl9hY2Nlc3NUb2tlblBheWxvYWQpXG4gICAgICAgICAgICA/IHRoaXMuX2FjY2Vzc1Rva2VuU3RyaW5nXG4gICAgICAgICAgICA6IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IHJlZnJlc2hUb2tlbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNUb2tlblZhbGlkKHRoaXMucmVmcmVzaFRva2VuUGF5bG9hZClcbiAgICAgICAgICAgID8gdGhpcy5fcmVmcmVzaFRva2VuU3RyaW5nXG4gICAgICAgICAgICA6IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGFjY2Vzc1Rva2VuUGF5bG9hZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjY2Vzc1Rva2VuUGF5bG9hZCA/PyBudWxsO1xuICAgIH1cblxuICAgIGdldCByZWZyZXNoVG9rZW5QYXlsb2FkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVmcmVzaFRva2VuUGF5bG9hZCA/PyBudWxsO1xuICAgIH1cblxuICAgIGF1dGhlbnRpY2F0ZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVG9rZW5WYWxpZCh0aGlzLl9hY2Nlc3NUb2tlblBheWxvYWQpIHx8IHRoaXMuaXNUb2tlblZhbGlkKHRoaXMuX3JlZnJlc2hUb2tlblBheWxvYWQpO1xuICAgIH1cblxuICAgIHNldFRva2VucyhhY2Nlc3NUb2tlbjogc3RyaW5nIHwgbnVsbCwgcmVmcmVzaFRva2VuOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgICAgIHRoaXMuc2V0QWNjZXNzVG9rZW4oYWNjZXNzVG9rZW4pO1xuICAgICAgICB0aGlzLnNldFJlZnJlc2hUb2tlbihyZWZyZXNoVG9rZW4pO1xuICAgICAgICB0aGlzLnN5bmNUb2tlbnNJblN0b3JhZ2UoKTtcbiAgICB9XG5cbiAgICBzZXRVc2VyKHVzZXI6IHVua25vd24pIHtcbiAgICAgICAgdGhpcy5fdXNlciQubmV4dCh1c2VyID8/IG51bGwpO1xuICAgICAgICB0aGlzLnN5bmNVc2VySW5TdG9yYWdlKCk7XG4gICAgfVxuXG4gICAgY2xlYXIoKSB7XG4gICAgICAgIHRoaXMuc2V0VG9rZW5zKG51bGwsIG51bGwpO1xuICAgICAgICB0aGlzLnNldFVzZXIobnVsbCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXN0b3JlRnJvbVN0b3JhZ2UoKSB7XG4gICAgICAgIGlmICghdGhpcy5fc3RvcmFnZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2V0IHRoZSBhY2Nlc3MgdG9rZW4uXG4gICAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gdGhpcy5fc3RvcmFnZS5nZXQ8c3RyaW5nPih0aGlzLl9hY2Nlc3NUb2tlblN0b3JhZ2VLZXkpO1xuICAgICAgICB0aGlzLnNldEFjY2Vzc1Rva2VuKGFjY2Vzc1Rva2VuKTtcblxuICAgICAgICAvLyBTZXQgdGhlIHJlZnJlc2ggdG9rZW4uXG4gICAgICAgIGNvbnN0IHJlZnJlc2hUb2tlbiA9IHRoaXMuX3N0b3JhZ2UuZ2V0PHN0cmluZz4odGhpcy5fcmVmcmVzaFRva2VuU3RvcmFnZUtleSk7XG4gICAgICAgIHRoaXMuc2V0UmVmcmVzaFRva2VuKHJlZnJlc2hUb2tlbik7XG5cbiAgICAgICAgLy8gU2V0IHRoZSB1c2VyIGlmIHdlIGhhdmUgYW55IGNvcnJlY3QgdG9rZW4gcGF5bG9hZHMuXG4gICAgICAgIGlmICh0aGlzLl9hY2Nlc3NUb2tlblBheWxvYWQgfHwgdGhpcy5fcmVmcmVzaFRva2VuUGF5bG9hZCkge1xuICAgICAgICAgICAgY29uc3QgdXNlciA9IHRoaXMuX3N0b3JhZ2UuZ2V0PHVua25vd24+KHRoaXMuX3VzZXJTdG9yYWdlS2V5KTtcbiAgICAgICAgICAgIHRoaXMuX3VzZXIkLm5leHQodXNlciA/PyBudWxsKTsgLy8gTm90ZToganVzdCBzZXR0aW5ncyBoZXJlIGluc3RlYWQgb2Ygc2V0VXNlcigpIGJlY2F1c2Ugb2Ygc3luY2luZyB0byB0aGUgc3RvcmFnZS5cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc3luY1Rva2Vuc0luU3RvcmFnZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9zdG9yYWdlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXQgdGhlIGFjY2VzcyB0b2tlbiBpZiBjb21wbGV0ZWx5IHZhbGlkLlxuICAgICAgICBpZiAoISF0aGlzLmFjY2Vzc1Rva2VuKSB7XG4gICAgICAgICAgICB0aGlzLl9zdG9yYWdlLnNldDxzdHJpbmc+KHRoaXMuX2FjY2Vzc1Rva2VuU3RvcmFnZUtleSwgdGhpcy5fYWNjZXNzVG9rZW5TdHJpbmcsIHtcbiAgICAgICAgICAgICAgICBleHBpcmVzOiB0aGlzLl9hY2Nlc3NUb2tlblBheWxvYWQ/LmV4cGlyZXNBdFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9zdG9yYWdlLnJlbW92ZSh0aGlzLl9hY2Nlc3NUb2tlblN0b3JhZ2VLZXkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2V0IHRoZSByZWZyZXNoIHRva2VuIGlmIGNvbXBsZXRlbHkgdmFsaWQuXG4gICAgICAgIGlmICghIXRoaXMucmVmcmVzaFRva2VuKSB7XG4gICAgICAgICAgICB0aGlzLl9zdG9yYWdlLnNldDxzdHJpbmc+KHRoaXMuX3JlZnJlc2hUb2tlblN0b3JhZ2VLZXksIHRoaXMuX3JlZnJlc2hUb2tlblN0cmluZywge1xuICAgICAgICAgICAgICAgIGV4cGlyZXM6IHRoaXMuX3JlZnJlc2hUb2tlblBheWxvYWQ/LmV4cGlyZXNBdFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9zdG9yYWdlLnJlbW92ZSh0aGlzLl9yZWZyZXNoVG9rZW5TdG9yYWdlS2V5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc3luY1VzZXJJblN0b3JhZ2UoKSB7XG4gICAgICAgIGlmICghdGhpcy5fc3RvcmFnZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdXNlciA9IHRoaXMuX3VzZXIkLmdldFZhbHVlKCk7XG4gICAgICAgIGlmICghdXNlcikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3N0b3JhZ2UucmVtb3ZlKHRoaXMuX3VzZXJTdG9yYWdlS2V5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICBkYXRlLnNldEZ1bGxZZWFyKGRhdGUuZ2V0RnVsbFllYXIoKSArIDEpO1xuICAgICAgICB0aGlzLl9zdG9yYWdlLnNldDx1bmtub3duPih0aGlzLl91c2VyU3RvcmFnZUtleSwgdXNlciwge1xuICAgICAgICAgICAgZXhwaXJlczogbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkpXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0QWNjZXNzVG9rZW4odmFsdWU6IHN0cmluZyB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5fYWNjZXNzVG9rZW5TdHJpbmcgPSB2YWx1ZSA/PyBudWxsO1xuICAgICAgICB0aGlzLl9hY2Nlc3NUb2tlblBheWxvYWQgPSB0aGlzLl9qd3QuZGVjb2RlKHRoaXMuX2FjY2Vzc1Rva2VuU3RyaW5nKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFJlZnJlc2hUb2tlbih2YWx1ZTogc3RyaW5nIHwgbnVsbCkge1xuICAgICAgICB0aGlzLl9yZWZyZXNoVG9rZW5TdHJpbmcgPSB2YWx1ZSA/PyBudWxsO1xuICAgICAgICB0aGlzLl9yZWZyZXNoVG9rZW5QYXlsb2FkID0gdGhpcy5fand0LmRlY29kZSh0aGlzLl9yZWZyZXNoVG9rZW5TdHJpbmcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2VuZXJhdGVLZXkgPSAoYXBwbGljYXRpb25JZDogc3RyaW5nLCBrZXk6IHN0cmluZykgPT4ge1xuICAgICAgICByZXR1cm4gW2FwcGxpY2F0aW9uSWQsIGtleV0uam9pbignXycpO1xuICAgIH07XG5cbiAgICBwcml2YXRlIGlzVG9rZW5WYWxpZCA9ICh0b2tlbjogQXV0aFRva2VuKSA9PiB7XG4gICAgICAgIGlmICghdG9rZW4pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0b2tlbj8uZXhwaXJlc0F0Py5nZXRUaW1lKCkgPiBEYXRlLm5vdygpO1xuICAgIH07XG5cbn1cbiJdfQ==
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXNzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9hdXRoL3NyYy9saWIvYXV0aC5zZXNzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVyQyxNQUFNLE9BQU8sV0FBVztJQXlCcEIsWUFBWSxPQUFvRDtRQXZCaEUsaUJBQWlCO1FBQ0EsU0FBSSxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7UUFNeEMsaUJBQWlCO1FBQ1QsdUJBQWtCLEdBQWtCLElBQUksQ0FBQztRQUN6Qyx3QkFBbUIsR0FBa0IsSUFBSSxDQUFDO1FBRWxELGtCQUFrQjtRQUNWLHdCQUFtQixHQUFxQixJQUFJLENBQUM7UUFDN0MseUJBQW9CLEdBQXFCLElBQUksQ0FBQztRQUV0RCxxQkFBcUI7UUFDYixXQUFNLEdBQUcsSUFBSSxlQUFlLENBQWEsSUFBSSxDQUFDLENBQUM7UUFFdkQsb0JBQW9CO1FBQ3BCLFNBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDbkIsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNqQixDQUFDO1FBd0lNLGdCQUFXLEdBQUcsQ0FBQyxhQUFxQixFQUFFLEdBQVcsRUFBRSxFQUFFO1lBQ3pELE9BQU8sQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQztRQUVNLGlCQUFZLEdBQUcsQ0FBQyxLQUFnQixFQUFFLEVBQUU7WUFDeEMsSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDUixPQUFPLEtBQUssQ0FBQzthQUNoQjtZQUVELE9BQU8sS0FBSyxFQUFF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aXQvYmItZm91bmRhdGlvbi9zdG9yYWdlJztcbmltcG9ydCB7QXV0aFRva2VufSBmcm9tICcuL2ludGVyZmFjZXMvdG9rZW4uaW50ZXJmYWNlJztcbmltcG9ydCB7Snd0SGVscGVyfSBmcm9tICcuL2hlbHBlcnMvand0LmhlbHBlcic7XG5pbXBvcnQge3NoYXJlUmVwbGF5fSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjbGFzcyBBdXRoU2Vzc2lvbiB7XG5cbiAgICAvLyBSZWFkb25seSBkYXRhLlxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2p3dCA9IG5ldyBKd3RIZWxwZXIoKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yYWdlOiBTdG9yYWdlU3RyYXRlZ3kgfCBudWxsO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2FjY2Vzc1Rva2VuU3RvcmFnZUtleTogc3RyaW5nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3JlZnJlc2hUb2tlblN0b3JhZ2VLZXk6IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IF91c2VyU3RvcmFnZUtleTogc3RyaW5nO1xuXG4gICAgLy8gVG9rZW4gc3RyaW5ncy5cbiAgICBwcml2YXRlIF9hY2Nlc3NUb2tlblN0cmluZzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSBfcmVmcmVzaFRva2VuU3RyaW5nOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIC8vIFRva2VuIHBheWxvYWRzLlxuICAgIHByaXZhdGUgX2FjY2Vzc1Rva2VuUGF5bG9hZDogQXV0aFRva2VuIHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSBfcmVmcmVzaFRva2VuUGF5bG9hZDogQXV0aFRva2VuIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvLyBQcml2YXRlIHVzZXIgZGF0YS5cbiAgICBwcml2YXRlIF91c2VyJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55IHwgbnVsbD4obnVsbCk7XG5cbiAgICAvLyBQdWJsaWMgdXNlciBkYXRhLlxuICAgIHVzZXIgPSB0aGlzLl91c2VyJC5waXBlKFxuICAgICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zPzogeyBpZD86IHN0cmluZywgc3RvcmFnZT86IFN0b3JhZ2VTdHJhdGVneSB9KSB7XG4gICAgICAgIGNvbnN0IGFwcGxpY2F0aW9uSWQgPSBvcHRpb25zPy5pZCA/PyAnbmcnO1xuXG4gICAgICAgIC8vIFNldHRpbmcgdXAgdGhlIHJlYWRvbmx5IHN0b3JhZ2Uga2V5cy5cbiAgICAgICAgdGhpcy5fYWNjZXNzVG9rZW5TdG9yYWdlS2V5ID0gdGhpcy5nZW5lcmF0ZUtleShhcHBsaWNhdGlvbklkLCAnYXVfYWN0Jyk7XG4gICAgICAgIHRoaXMuX3JlZnJlc2hUb2tlblN0b3JhZ2VLZXkgPSB0aGlzLmdlbmVyYXRlS2V5KGFwcGxpY2F0aW9uSWQsICdhdV9yZnQnKTtcbiAgICAgICAgdGhpcy5fdXNlclN0b3JhZ2VLZXkgPSB0aGlzLmdlbmVyYXRlS2V5KGFwcGxpY2F0aW9uSWQsICdhdV91c3InKTtcblxuICAgICAgICAvLyBTZXR0aW5nIHVwIHRoZSBzdG9yYWdlLlxuICAgICAgICB0aGlzLl9zdG9yYWdlID0gb3B0aW9ucz8uc3RvcmFnZSA/PyBudWxsO1xuXG4gICAgICAgIC8vIEluaXQgbWV0aG9kcy5cbiAgICAgICAgdGhpcy5yZXN0b3JlRnJvbVN0b3JhZ2UoKTtcbiAgICB9XG5cbiAgICBnZXQgc25hcHNob3QoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB1c2VyOiB0aGlzLl91c2VyJC5nZXRWYWx1ZSgpLFxuICAgICAgICAgICAgYWNjZXNzVG9rZW46IHRoaXMuYWNjZXNzVG9rZW4sXG4gICAgICAgICAgICByZWZyZXNoVG9rZW46IHRoaXMucmVmcmVzaFRva2VuXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZ2V0IGFjY2Vzc1Rva2VuKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1Rva2VuVmFsaWQodGhpcy5fYWNjZXNzVG9rZW5QYXlsb2FkKVxuICAgICAgICAgICAgPyB0aGlzLl9hY2Nlc3NUb2tlblN0cmluZ1xuICAgICAgICAgICAgOiBudWxsO1xuICAgIH1cblxuICAgIGdldCByZWZyZXNoVG9rZW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVG9rZW5WYWxpZCh0aGlzLnJlZnJlc2hUb2tlblBheWxvYWQpXG4gICAgICAgICAgICA/IHRoaXMuX3JlZnJlc2hUb2tlblN0cmluZ1xuICAgICAgICAgICAgOiBudWxsO1xuICAgIH1cblxuICAgIGdldCBhY2Nlc3NUb2tlblBheWxvYWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hY2Nlc3NUb2tlblBheWxvYWQgPz8gbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgcmVmcmVzaFRva2VuUGF5bG9hZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlZnJlc2hUb2tlblBheWxvYWQgPz8gbnVsbDtcbiAgICB9XG5cbiAgICBhdXRoZW50aWNhdGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1Rva2VuVmFsaWQodGhpcy5fYWNjZXNzVG9rZW5QYXlsb2FkKSB8fCB0aGlzLmlzVG9rZW5WYWxpZCh0aGlzLl9yZWZyZXNoVG9rZW5QYXlsb2FkKTtcbiAgICB9XG5cbiAgICBzZXRUb2tlbnMoYWNjZXNzVG9rZW46IHN0cmluZyB8IG51bGwsIHJlZnJlc2hUb2tlbjogc3RyaW5nIHwgbnVsbCkge1xuICAgICAgICB0aGlzLnNldEFjY2Vzc1Rva2VuKGFjY2Vzc1Rva2VuKTtcbiAgICAgICAgdGhpcy5zZXRSZWZyZXNoVG9rZW4ocmVmcmVzaFRva2VuKTtcbiAgICAgICAgdGhpcy5zeW5jVG9rZW5zSW5TdG9yYWdlKCk7XG4gICAgfVxuXG4gICAgc2V0VXNlcih1c2VyOiB1bmtub3duKSB7XG4gICAgICAgIHRoaXMuX3VzZXIkLm5leHQodXNlciA/PyBudWxsKTtcbiAgICAgICAgdGhpcy5zeW5jVXNlckluU3RvcmFnZSgpO1xuICAgIH1cblxuICAgIGNsZWFyKCkge1xuICAgICAgICB0aGlzLnNldFRva2VucyhudWxsLCBudWxsKTtcbiAgICAgICAgdGhpcy5zZXRVc2VyKG51bGwpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzdG9yZUZyb21TdG9yYWdlKCkge1xuICAgICAgICBpZiAoIXRoaXMuX3N0b3JhZ2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNldCB0aGUgYWNjZXNzIHRva2VuLlxuICAgICAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IHRoaXMuX3N0b3JhZ2UuZ2V0PHN0cmluZz4odGhpcy5fYWNjZXNzVG9rZW5TdG9yYWdlS2V5KTtcbiAgICAgICAgdGhpcy5zZXRBY2Nlc3NUb2tlbihhY2Nlc3NUb2tlbik7XG5cbiAgICAgICAgLy8gU2V0IHRoZSByZWZyZXNoIHRva2VuLlxuICAgICAgICBjb25zdCByZWZyZXNoVG9rZW4gPSB0aGlzLl9zdG9yYWdlLmdldDxzdHJpbmc+KHRoaXMuX3JlZnJlc2hUb2tlblN0b3JhZ2VLZXkpO1xuICAgICAgICB0aGlzLnNldFJlZnJlc2hUb2tlbihyZWZyZXNoVG9rZW4pO1xuXG4gICAgICAgIC8vIFNldCB0aGUgdXNlciBpZiB3ZSBoYXZlIGFueSBjb3JyZWN0IHRva2VuIHBheWxvYWRzLlxuICAgICAgICBpZiAodGhpcy5fYWNjZXNzVG9rZW5QYXlsb2FkIHx8IHRoaXMuX3JlZnJlc2hUb2tlblBheWxvYWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHVzZXIgPSB0aGlzLl9zdG9yYWdlLmdldDx1bmtub3duPih0aGlzLl91c2VyU3RvcmFnZUtleSk7XG4gICAgICAgICAgICB0aGlzLl91c2VyJC5uZXh0KHVzZXIgPz8gbnVsbCk7IC8vIE5vdGU6IGp1c3Qgc2V0dGluZ3MgaGVyZSBpbnN0ZWFkIG9mIHNldFVzZXIoKSBiZWNhdXNlIG9mIHN5bmNpbmcgdG8gdGhlIHN0b3JhZ2UuXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHN5bmNUb2tlbnNJblN0b3JhZ2UoKSB7XG4gICAgICAgIGlmICghdGhpcy5fc3RvcmFnZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2V0IHRoZSBhY2Nlc3MgdG9rZW4gaWYgY29tcGxldGVseSB2YWxpZC5cbiAgICAgICAgaWYgKCEhdGhpcy5hY2Nlc3NUb2tlbikge1xuICAgICAgICAgICAgdGhpcy5fc3RvcmFnZS5zZXQ8c3RyaW5nPih0aGlzLl9hY2Nlc3NUb2tlblN0b3JhZ2VLZXksIHRoaXMuX2FjY2Vzc1Rva2VuU3RyaW5nLCB7XG4gICAgICAgICAgICAgICAgZXhwaXJlczogdGhpcy5fYWNjZXNzVG9rZW5QYXlsb2FkPy5leHBpcmVzQXRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fc3RvcmFnZS5yZW1vdmUodGhpcy5fYWNjZXNzVG9rZW5TdG9yYWdlS2V5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNldCB0aGUgcmVmcmVzaCB0b2tlbiBpZiBjb21wbGV0ZWx5IHZhbGlkLlxuICAgICAgICBpZiAoISF0aGlzLnJlZnJlc2hUb2tlbikge1xuICAgICAgICAgICAgdGhpcy5fc3RvcmFnZS5zZXQ8c3RyaW5nPih0aGlzLl9yZWZyZXNoVG9rZW5TdG9yYWdlS2V5LCB0aGlzLl9yZWZyZXNoVG9rZW5TdHJpbmcsIHtcbiAgICAgICAgICAgICAgICBleHBpcmVzOiB0aGlzLl9yZWZyZXNoVG9rZW5QYXlsb2FkPy5leHBpcmVzQXRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fc3RvcmFnZS5yZW1vdmUodGhpcy5fcmVmcmVzaFRva2VuU3RvcmFnZUtleSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHN5bmNVc2VySW5TdG9yYWdlKCkge1xuICAgICAgICBpZiAoIXRoaXMuX3N0b3JhZ2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHVzZXIgPSB0aGlzLl91c2VyJC5nZXRWYWx1ZSgpO1xuICAgICAgICBpZiAoIXVzZXIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9zdG9yYWdlLnJlbW92ZSh0aGlzLl91c2VyU3RvcmFnZUtleSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoKTtcbiAgICAgICAgZGF0ZS5zZXRGdWxsWWVhcihkYXRlLmdldEZ1bGxZZWFyKCkgKyAxKTtcbiAgICAgICAgdGhpcy5fc3RvcmFnZS5zZXQ8dW5rbm93bj4odGhpcy5fdXNlclN0b3JhZ2VLZXksIHVzZXIsIHtcbiAgICAgICAgICAgIGV4cGlyZXM6IG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEFjY2Vzc1Rva2VuKHZhbHVlOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgICAgIHRoaXMuX2FjY2Vzc1Rva2VuU3RyaW5nID0gdmFsdWUgPz8gbnVsbDtcbiAgICAgICAgdGhpcy5fYWNjZXNzVG9rZW5QYXlsb2FkID0gdGhpcy5fand0LmRlY29kZSh0aGlzLl9hY2Nlc3NUb2tlblN0cmluZyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRSZWZyZXNoVG9rZW4odmFsdWU6IHN0cmluZyB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5fcmVmcmVzaFRva2VuU3RyaW5nID0gdmFsdWUgPz8gbnVsbDtcbiAgICAgICAgdGhpcy5fcmVmcmVzaFRva2VuUGF5bG9hZCA9IHRoaXMuX2p3dC5kZWNvZGUodGhpcy5fcmVmcmVzaFRva2VuU3RyaW5nKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdlbmVyYXRlS2V5ID0gKGFwcGxpY2F0aW9uSWQ6IHN0cmluZywga2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgcmV0dXJuIFthcHBsaWNhdGlvbklkLCBrZXldLmpvaW4oJ18nKTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBpc1Rva2VuVmFsaWQgPSAodG9rZW46IEF1dGhUb2tlbikgPT4ge1xuICAgICAgICBpZiAoIXRva2VuKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdG9rZW4/LmV4cGlyZXNBdD8uZ2V0VGltZSgpID4gRGF0ZS5ub3coKTtcbiAgICB9O1xuXG59XG4iXX0=
@@ -29,9 +29,9 @@ export class BbAuthenticated extends AbstractAuthDirective {
29
29
  this._subscription?.unsubscribe();
30
30
  }
31
31
  }
32
- BbAuthenticated.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbAuthenticated, deps: [{ token: i1.Auth }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
33
- BbAuthenticated.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.2", type: BbAuthenticated, selector: "[bbAuthenticated]", inputs: { bbAuthenticatedElse: "bbAuthenticatedElse" }, usesInheritance: true, ngImport: i0 });
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbAuthenticated, decorators: [{
32
+ BbAuthenticated.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: BbAuthenticated, deps: [{ token: i1.Auth }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
33
+ BbAuthenticated.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.10", type: BbAuthenticated, selector: "[bbAuthenticated]", inputs: { bbAuthenticatedElse: "bbAuthenticatedElse" }, usesInheritance: true, ngImport: i0 });
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: BbAuthenticated, decorators: [{
35
35
  type: Directive,
36
36
  args: [{
37
37
  selector: '[bbAuthenticated]'
@@ -39,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImpor
39
39
  }], ctorParameters: function () { return [{ type: i1.Auth }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; }, propDecorators: { bbAuthenticatedElse: [{
40
40
  type: Input
41
41
  }] } });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRlZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2F1dGgvc3JjL2xpYi9kaXJlY3RpdmVzL2F1dGhlbnRpY2F0ZWQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFtRCxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQzs7O0FBS2xDLE1BQU0sT0FBTyxlQUFnQixTQUFRLHFCQUFxQjtJQVl0RCxZQUFvQixLQUFXLEVBQ1gsWUFBOEIsRUFDOUIsaUJBQW1DO1FBQ25ELEtBQUssQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUh2QixVQUFLLEdBQUwsS0FBSyxDQUFNO1FBQ1gsaUJBQVksR0FBWixZQUFZLENBQWtCO1FBQzlCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFadkQsaUJBQWlCO1FBQ1Qsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBYTNDLENBQUM7SUFYRCxJQUNJLG1CQUFtQixDQUFDLFdBQTZCO1FBQ2pELElBQUksQ0FBQyxjQUFjLENBQUMscUJBQXFCLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxXQUFXLENBQUM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFRRCxRQUFRO1FBQ0osTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNyQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQ25CLG9CQUFvQixFQUFFLENBQ3pCLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUN0QyxDQUFDOzs0R0EvQlEsZUFBZTtnR0FBZixlQUFlOzJGQUFmLGVBQWU7a0JBSDNCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtpQkFDaEM7b0pBT08sbUJBQW1CO3NCQUR0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdEF1dGhEaXJlY3RpdmV9IGZyb20gJy4vYWJzdHJhY3QuZGlyZWN0aXZlJztcbmltcG9ydCB7ZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtBdXRofSBmcm9tICcuLi9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tiYkF1dGhlbnRpY2F0ZWRdJ1xufSlcbmV4cG9ydCBjbGFzcyBCYkF1dGhlbnRpY2F0ZWQgZXh0ZW5kcyBBYnN0cmFjdEF1dGhEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICAvLyBTdWJzY3JpcHRpb25zLlxuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGJiQXV0aGVudGljYXRlZEVsc2UodGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICAgICAgdGhpcy5hc3NlcnRUZW1wbGF0ZSgnYmJBdXRoZW50aWNhdGVkRWxzZScsIHRlbXBsYXRlUmVmKTtcbiAgICAgICAgdGhpcy5lbHNlVGVtcGxhdGVSZWYgPSB0ZW1wbGF0ZVJlZjtcbiAgICAgICAgdGhpcy51cGRhdGVWaWV3KCk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfYXV0aDogQXV0aCxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF90ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICAgICAgICAgICAgICBwcml2YXRlIF92aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgICAgIHN1cGVyKF90ZW1wbGF0ZVJlZiwgX3ZpZXdDb250YWluZXJSZWYpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB0aGlzLl9hdXRoLnVzZXIucGlwZShcbiAgICAgICAgICAgIG1hcCh1c2VyID0+ICEhdXNlciksXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICAgICkuc3Vic2NyaWJlKHZhbGlkID0+IHtcbiAgICAgICAgICAgIHRoaXMudmFsaWQgPSB2YWxpZDtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmlldygpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChzdWJzY3JpcHRpb24pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2JiQXV0aGVudGljYXRlZEVsc2U6IFRlbXBsYXRlUmVmPGFueT47XG5cbn1cbiJdfQ==
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRlZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2F1dGgvc3JjL2xpYi9kaXJlY3RpdmVzL2F1dGhlbnRpY2F0ZWQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFtRCxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQzs7O0FBS2xDLE1BQU0sT0FBTyxlQUFnQixTQUFRLHFCQUFxQjtJQVl0RCxZQUFvQixLQUFXLEVBQ1gsWUFBOEIsRUFDOUIsaUJBQW1DO1FBQ25ELEtBQUssQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUh2QixVQUFLLEdBQUwsS0FBSyxDQUFNO1FBQ1gsaUJBQVksR0FBWixZQUFZLENBQWtCO1FBQzlCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFadkQsaUJBQWlCO1FBQ1Qsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBYTNDLENBQUM7SUFYRCxJQUNJLG1CQUFtQixDQUFDLFdBQTZCO1FBQ2pELElBQUksQ0FBQyxjQUFjLENBQUMscUJBQXFCLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxXQUFXLENBQUM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFRRCxRQUFRO1FBQ0osTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNyQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQ25CLG9CQUFvQixFQUFFLENBQ3pCLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUN0QyxDQUFDOzs2R0EvQlEsZUFBZTtpR0FBZixlQUFlOzRGQUFmLGVBQWU7a0JBSDNCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtpQkFDaEM7b0pBT08sbUJBQW1CO3NCQUR0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdEF1dGhEaXJlY3RpdmV9IGZyb20gJy4vYWJzdHJhY3QuZGlyZWN0aXZlJztcbmltcG9ydCB7ZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtBdXRofSBmcm9tICcuLi9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tiYkF1dGhlbnRpY2F0ZWRdJ1xufSlcbmV4cG9ydCBjbGFzcyBCYkF1dGhlbnRpY2F0ZWQgZXh0ZW5kcyBBYnN0cmFjdEF1dGhEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICAvLyBTdWJzY3JpcHRpb25zLlxuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGJiQXV0aGVudGljYXRlZEVsc2UodGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICAgICAgdGhpcy5hc3NlcnRUZW1wbGF0ZSgnYmJBdXRoZW50aWNhdGVkRWxzZScsIHRlbXBsYXRlUmVmKTtcbiAgICAgICAgdGhpcy5lbHNlVGVtcGxhdGVSZWYgPSB0ZW1wbGF0ZVJlZjtcbiAgICAgICAgdGhpcy51cGRhdGVWaWV3KCk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfYXV0aDogQXV0aCxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF90ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICAgICAgICAgICAgICBwcml2YXRlIF92aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgICAgIHN1cGVyKF90ZW1wbGF0ZVJlZiwgX3ZpZXdDb250YWluZXJSZWYpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB0aGlzLl9hdXRoLnVzZXIucGlwZShcbiAgICAgICAgICAgIG1hcCh1c2VyID0+ICEhdXNlciksXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICAgICkuc3Vic2NyaWJlKHZhbGlkID0+IHtcbiAgICAgICAgICAgIHRoaXMudmFsaWQgPSB2YWxpZDtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmlldygpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChzdWJzY3JpcHRpb24pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2JiQXV0aGVudGljYXRlZEVsc2U6IFRlbXBsYXRlUmVmPGFueT47XG5cbn1cbiJdfQ==
@@ -35,9 +35,9 @@ export class BbAnonymousGuard {
35
35
  return this.canActivate(childRoute, state);
36
36
  }
37
37
  }
38
- BbAnonymousGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbAnonymousGuard, deps: [{ token: i1.Auth }, { token: i2.Router }, { token: i3.AuthConfig, optional: true }, { token: AUTH_REDIRECT_HANDLER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
39
- BbAnonymousGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbAnonymousGuard, providedIn: 'root' });
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbAnonymousGuard, decorators: [{
38
+ BbAnonymousGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: BbAnonymousGuard, deps: [{ token: i1.Auth }, { token: i2.Router }, { token: i3.AuthConfig, optional: true }, { token: AUTH_REDIRECT_HANDLER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
39
+ BbAnonymousGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: BbAnonymousGuard, providedIn: 'root' });
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: BbAnonymousGuard, decorators: [{
41
41
  type: Injectable,
42
42
  args: [{
43
43
  providedIn: 'root'
@@ -50,4 +50,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImpor
50
50
  type: Inject,
51
51
  args: [AUTH_REDIRECT_HANDLER]
52
52
  }] }]; } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5vbnltb3VzLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9hdXRoL3NyYy9saWIvZ3VhcmRzL2Fub255bW91cy5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMscUJBQXFCLEVBQWtDLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEcsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTNELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuQyxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7OztBQUszQixNQUFNLE9BQU8sZ0JBQWdCO0lBRXpCLFlBQW9CLEtBQVcsRUFDWCxPQUFlLEVBQ0gsT0FBb0IsRUFDVyxRQUE4QjtRQUh6RSxVQUFLLEdBQUwsS0FBSyxDQUFNO1FBQ1gsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNILFlBQU8sR0FBUCxPQUFPLENBQWE7UUFDVyxhQUFRLEdBQVIsUUFBUSxDQUFzQjtJQUM3RixDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQWdDLEVBQUUsS0FBMEI7UUFDcEUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ3ZCLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFDbkIsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxlQUFlLEVBQUU7Z0JBQ2xCLE9BQU8sSUFBSSxDQUFDO2FBQ2Y7WUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQzthQUMzRDtZQUVELGtEQUFrRDtZQUNsRCw0REFBNEQ7WUFDNUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsYUFBYSxJQUFJLElBQUksQ0FBQztZQUMvRCxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNWLE9BQU8sS0FBSyxDQUFDO2FBQ2hCO1lBRUQsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzlELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLEVBQ0YsS0FBSyxFQUFFLENBQ1YsQ0FBQztJQUNOLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFrQyxFQUFFLEtBQTBCO1FBQzNFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDL0MsQ0FBQzs7NkdBcENRLGdCQUFnQixzR0FLTyxxQkFBcUI7aUhBTDVDLGdCQUFnQixjQUZiLE1BQU07MkZBRVQsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBS2dCLFFBQVE7OzBCQUNSLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBDYW5BY3RpdmF0ZSwgQ2FuQWN0aXZhdGVDaGlsZCwgUm91dGVyLCBSb3V0ZXJTdGF0ZVNuYXBzaG90fSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtBVVRIX1JFRElSRUNUX0hBTkRMRVIsIEF1dGhDb25maWcsIEF1dGhSZWRpcmVjdEhhbmRsZXJ9IGZyb20gJy4uL2ludGVyZmFjZXMvY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBdXRofSBmcm9tICcuLi9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Zmlyc3R9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJiQW5vbnltb3VzR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSwgQ2FuQWN0aXZhdGVDaGlsZCB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9hdXRoOiBBdXRoLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2NvbmZpZz86IEF1dGhDb25maWcsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChBVVRIX1JFRElSRUNUX0hBTkRMRVIpIHByaXZhdGUgX2hhbmRsZXI/OiBBdXRoUmVkaXJlY3RIYW5kbGVyKSB7XG4gICAgfVxuXG4gICAgY2FuQWN0aXZhdGUoc25hcHNob3Q6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hdXRoLnVzZXIucGlwZShcbiAgICAgICAgICAgIG1hcCh1c2VyID0+ICEhdXNlciksXG4gICAgICAgICAgICBtYXAoaXNBdXRoZW50aWNhdGVkID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWlzQXV0aGVudGljYXRlZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5faGFuZGxlcikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5faGFuZGxlci5vbkZhaWxlZEFub255bW91cyhzbmFwc2hvdCwgc3RhdGUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIElmIHdlIGRvbid0IGhhdmUgYSBVUkwgdG8gZ28gdG8gd2UgY2FuIGp1c3Qgc2F5XG4gICAgICAgICAgICAgICAgLy8gdGhlIHVzZXIgaXMgbm90IGFsbG93ZWQgaW4gdGhpcyByb3V0ZSBieSByZXR1cm5pbmcgZmFsc2UuXG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dFVybCA9IHRoaXMuX2NvbmZpZz8ucmVkaXJlY3RzPy5hdXRoZW50aWNhdGVkID8/IG51bGw7XG4gICAgICAgICAgICAgICAgaWYgKCFuZXh0VXJsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBjb21tYW5kcyA9IEFycmF5LmlzQXJyYXkobmV4dFVybCkgPyBuZXh0VXJsIDogW25leHRVcmxdO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9yb3V0ZXIuY3JlYXRlVXJsVHJlZShjb21tYW5kcyk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGZpcnN0KClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjYW5BY3RpdmF0ZUNoaWxkKGNoaWxkUm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbkFjdGl2YXRlKGNoaWxkUm91dGUsIHN0YXRlKTtcbiAgICB9XG5cbn1cbiJdfQ==
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5vbnltb3VzLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9hdXRoL3NyYy9saWIvZ3VhcmRzL2Fub255bW91cy5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMscUJBQXFCLEVBQWtDLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEcsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTNELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuQyxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7OztBQUszQixNQUFNLE9BQU8sZ0JBQWdCO0lBRXpCLFlBQW9CLEtBQVcsRUFDWCxPQUFlLEVBQ0gsT0FBb0IsRUFDVyxRQUE4QjtRQUh6RSxVQUFLLEdBQUwsS0FBSyxDQUFNO1FBQ1gsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNILFlBQU8sR0FBUCxPQUFPLENBQWE7UUFDVyxhQUFRLEdBQVIsUUFBUSxDQUFzQjtJQUM3RixDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQWdDLEVBQUUsS0FBMEI7UUFDcEUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ3ZCLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFDbkIsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxlQUFlLEVBQUU7Z0JBQ2xCLE9BQU8sSUFBSSxDQUFDO2FBQ2Y7WUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQzthQUMzRDtZQUVELGtEQUFrRDtZQUNsRCw0REFBNEQ7WUFDNUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsYUFBYSxJQUFJLElBQUksQ0FBQztZQUMvRCxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNWLE9BQU8sS0FBSyxDQUFDO2FBQ2hCO1lBRUQsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzlELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLEVBQ0YsS0FBSyxFQUFFLENBQ1YsQ0FBQztJQUNOLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFrQyxFQUFFLEtBQTBCO1FBQzNFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDL0MsQ0FBQzs7OEdBcENRLGdCQUFnQixzR0FLTyxxQkFBcUI7a0hBTDVDLGdCQUFnQixjQUZiLE1BQU07NEZBRVQsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBS2dCLFFBQVE7OzBCQUNSLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBDYW5BY3RpdmF0ZSwgQ2FuQWN0aXZhdGVDaGlsZCwgUm91dGVyLCBSb3V0ZXJTdGF0ZVNuYXBzaG90fSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtBVVRIX1JFRElSRUNUX0hBTkRMRVIsIEF1dGhDb25maWcsIEF1dGhSZWRpcmVjdEhhbmRsZXJ9IGZyb20gJy4uL2ludGVyZmFjZXMvY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBdXRofSBmcm9tICcuLi9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Zmlyc3R9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJiQW5vbnltb3VzR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSwgQ2FuQWN0aXZhdGVDaGlsZCB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9hdXRoOiBBdXRoLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2NvbmZpZz86IEF1dGhDb25maWcsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChBVVRIX1JFRElSRUNUX0hBTkRMRVIpIHByaXZhdGUgX2hhbmRsZXI/OiBBdXRoUmVkaXJlY3RIYW5kbGVyKSB7XG4gICAgfVxuXG4gICAgY2FuQWN0aXZhdGUoc25hcHNob3Q6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hdXRoLnVzZXIucGlwZShcbiAgICAgICAgICAgIG1hcCh1c2VyID0+ICEhdXNlciksXG4gICAgICAgICAgICBtYXAoaXNBdXRoZW50aWNhdGVkID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWlzQXV0aGVudGljYXRlZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5faGFuZGxlcikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5faGFuZGxlci5vbkZhaWxlZEFub255bW91cyhzbmFwc2hvdCwgc3RhdGUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIElmIHdlIGRvbid0IGhhdmUgYSBVUkwgdG8gZ28gdG8gd2UgY2FuIGp1c3Qgc2F5XG4gICAgICAgICAgICAgICAgLy8gdGhlIHVzZXIgaXMgbm90IGFsbG93ZWQgaW4gdGhpcyByb3V0ZSBieSByZXR1cm5pbmcgZmFsc2UuXG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dFVybCA9IHRoaXMuX2NvbmZpZz8ucmVkaXJlY3RzPy5hdXRoZW50aWNhdGVkID8/IG51bGw7XG4gICAgICAgICAgICAgICAgaWYgKCFuZXh0VXJsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBjb21tYW5kcyA9IEFycmF5LmlzQXJyYXkobmV4dFVybCkgPyBuZXh0VXJsIDogW25leHRVcmxdO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9yb3V0ZXIuY3JlYXRlVXJsVHJlZShjb21tYW5kcyk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGZpcnN0KClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjYW5BY3RpdmF0ZUNoaWxkKGNoaWxkUm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbkFjdGl2YXRlKGNoaWxkUm91dGUsIHN0YXRlKTtcbiAgICB9XG5cbn1cbiJdfQ==
@@ -38,9 +38,9 @@ export class BbAuthenticatedGuard {
38
38
  return this.canActivate(childRoute, state);
39
39
  }
40
40
  }
41
- BbAuthenticatedGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbAuthenticatedGuard, deps: [{ token: i1.Auth }, { token: i2.Router }, { token: i3.AuthConfig, optional: true }, { token: AUTH_REDIRECT_HANDLER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
42
- BbAuthenticatedGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbAuthenticatedGuard, providedIn: 'root' });
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BbAuthenticatedGuard, decorators: [{
41
+ BbAuthenticatedGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: BbAuthenticatedGuard, deps: [{ token: i1.Auth }, { token: i2.Router }, { token: i3.AuthConfig, optional: true }, { token: AUTH_REDIRECT_HANDLER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
42
+ BbAuthenticatedGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: BbAuthenticatedGuard, providedIn: 'root' });
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: BbAuthenticatedGuard, decorators: [{
44
44
  type: Injectable,
45
45
  args: [{
46
46
  providedIn: 'root'
@@ -53,4 +53,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImpor
53
53
  type: Inject,
54
54
  args: [AUTH_REDIRECT_HANDLER]
55
55
  }] }]; } });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRlZC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vYXV0aC9zcmMvbGliL2d1YXJkcy9hdXRoZW50aWNhdGVkLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxxQkFBcUIsRUFBa0MsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RyxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFM0QsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25DLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7O0FBSzNCLE1BQU0sT0FBTyxvQkFBb0I7SUFFN0IsWUFBb0IsS0FBVyxFQUNYLE9BQWUsRUFDSCxPQUFvQixFQUNXLFFBQThCO1FBSHpFLFVBQUssR0FBTCxLQUFLLENBQU07UUFDWCxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ0gsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQUNXLGFBQVEsR0FBUixRQUFRLENBQXNCO0lBQzdGLENBQUM7SUFFRCxXQUFXLENBQUMsUUFBZ0MsRUFBRSxLQUEwQjtRQUNwRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDdkIsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUNuQixHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUU7WUFDbEIsSUFBSSxlQUFlLEVBQUU7Z0JBQ2pCLE9BQU8sSUFBSSxDQUFDO2FBQ2Y7WUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQzthQUMvRDtZQUVELGtEQUFrRDtZQUNsRCw0REFBNEQ7WUFDNUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxJQUFJLElBQUksQ0FBQztZQUNqRSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNWLE9BQU8sS0FBSyxDQUFDO2FBQ2hCO1lBRUQsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLHVCQUF1QixJQUFJLElBQUksQ0FBQztZQUM5RSxNQUFNLFdBQVcsR0FBRyxLQUFLLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQztZQUN2QyxNQUFNLFdBQVcsR0FBRyx1QkFBdUIsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUMsV0FBVyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNoRixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDOUQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsRUFBQyxXQUFXLEVBQUMsQ0FBQyxDQUFDO1FBQy9ELENBQUMsQ0FBQyxFQUNGLEtBQUssRUFBRSxDQUNWLENBQUM7SUFDTixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBa0MsRUFBRSxLQUEwQjtRQUMzRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7O2lIQXZDUSxvQkFBb0Isc0dBS0cscUJBQXFCO3FIQUw1QyxvQkFBb0IsY0FGakIsTUFBTTsyRkFFVCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFLZ0IsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FjdGl2YXRlZFJvdXRlU25hcHNob3QsIENhbkFjdGl2YXRlLCBDYW5BY3RpdmF0ZUNoaWxkLCBSb3V0ZXIsIFJvdXRlclN0YXRlU25hcHNob3R9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0FVVEhfUkVESVJFQ1RfSEFORExFUiwgQXV0aENvbmZpZywgQXV0aFJlZGlyZWN0SGFuZGxlcn0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0F1dGh9IGZyb20gJy4uL2F1dGguc2VydmljZSc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtmaXJzdH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQmJBdXRoZW50aWNhdGVkR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSwgQ2FuQWN0aXZhdGVDaGlsZCB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9hdXRoOiBBdXRoLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2NvbmZpZz86IEF1dGhDb25maWcsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChBVVRIX1JFRElSRUNUX0hBTkRMRVIpIHByaXZhdGUgX2hhbmRsZXI/OiBBdXRoUmVkaXJlY3RIYW5kbGVyKSB7XG4gICAgfVxuXG4gICAgY2FuQWN0aXZhdGUoc25hcHNob3Q6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hdXRoLnVzZXIucGlwZShcbiAgICAgICAgICAgIG1hcCh1c2VyID0+ICEhdXNlciksXG4gICAgICAgICAgICBtYXAoaXNBdXRoZW50aWNhdGVkID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXNBdXRoZW50aWNhdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9oYW5kbGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9oYW5kbGVyLm9uRmFpbGVkQXV0aGVudGljYXRlZChzbmFwc2hvdCwgc3RhdGUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIElmIHdlIGRvbid0IGhhdmUgYSBVUkwgdG8gZ28gdG8gd2UgY2FuIGp1c3Qgc2F5XG4gICAgICAgICAgICAgICAgLy8gdGhlIHVzZXIgaXMgbm90IGFsbG93ZWQgaW4gdGhpcyByb3V0ZSBieSByZXR1cm5pbmcgZmFsc2UuXG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dFVybCA9IHRoaXMuX2NvbmZpZz8ucmVkaXJlY3RzPy51bmF1dGhlbnRpY2F0ZWQgPz8gbnVsbDtcbiAgICAgICAgICAgICAgICBpZiAoIW5leHRVcmwpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IHNldFJlZGlyZWN0T25GYWlsZWRBdXRoID0gdGhpcy5fY29uZmlnPy5zZXRSZWRpcmVjdE9uRmFpbGVkQXV0aCA/PyB0cnVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZGlyZWN0VXJsID0gc3RhdGU/LnVybCA/PyBudWxsO1xuICAgICAgICAgICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gc2V0UmVkaXJlY3RPbkZhaWxlZEF1dGggJiYgcmVkaXJlY3RVcmwgPyB7cmVkaXJlY3RVcmx9IDoge307XG4gICAgICAgICAgICAgICAgY29uc3QgY29tbWFuZHMgPSBBcnJheS5pc0FycmF5KG5leHRVcmwpID8gbmV4dFVybCA6IFtuZXh0VXJsXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fcm91dGVyLmNyZWF0ZVVybFRyZWUoY29tbWFuZHMsIHtxdWVyeVBhcmFtc30pO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBmaXJzdCgpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgY2FuQWN0aXZhdGVDaGlsZChjaGlsZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jYW5BY3RpdmF0ZShjaGlsZFJvdXRlLCBzdGF0ZSk7XG4gICAgfVxuXG59XG4iXX0=
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRlZC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vYXV0aC9zcmMvbGliL2d1YXJkcy9hdXRoZW50aWNhdGVkLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxxQkFBcUIsRUFBa0MsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RyxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFM0QsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25DLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7O0FBSzNCLE1BQU0sT0FBTyxvQkFBb0I7SUFFN0IsWUFBb0IsS0FBVyxFQUNYLE9BQWUsRUFDSCxPQUFvQixFQUNXLFFBQThCO1FBSHpFLFVBQUssR0FBTCxLQUFLLENBQU07UUFDWCxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ0gsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQUNXLGFBQVEsR0FBUixRQUFRLENBQXNCO0lBQzdGLENBQUM7SUFFRCxXQUFXLENBQUMsUUFBZ0MsRUFBRSxLQUEwQjtRQUNwRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDdkIsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUNuQixHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUU7WUFDbEIsSUFBSSxlQUFlLEVBQUU7Z0JBQ2pCLE9BQU8sSUFBSSxDQUFDO2FBQ2Y7WUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQzthQUMvRDtZQUVELGtEQUFrRDtZQUNsRCw0REFBNEQ7WUFDNUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxJQUFJLElBQUksQ0FBQztZQUNqRSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNWLE9BQU8sS0FBSyxDQUFDO2FBQ2hCO1lBRUQsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLHVCQUF1QixJQUFJLElBQUksQ0FBQztZQUM5RSxNQUFNLFdBQVcsR0FBRyxLQUFLLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQztZQUN2QyxNQUFNLFdBQVcsR0FBRyx1QkFBdUIsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUMsV0FBVyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNoRixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDOUQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsRUFBQyxXQUFXLEVBQUMsQ0FBQyxDQUFDO1FBQy9ELENBQUMsQ0FBQyxFQUNGLEtBQUssRUFBRSxDQUNWLENBQUM7SUFDTixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBa0MsRUFBRSxLQUEwQjtRQUMzRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7O2tIQXZDUSxvQkFBb0Isc0dBS0cscUJBQXFCO3NIQUw1QyxvQkFBb0IsY0FGakIsTUFBTTs0RkFFVCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFLZ0IsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FjdGl2YXRlZFJvdXRlU25hcHNob3QsIENhbkFjdGl2YXRlLCBDYW5BY3RpdmF0ZUNoaWxkLCBSb3V0ZXIsIFJvdXRlclN0YXRlU25hcHNob3R9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0FVVEhfUkVESVJFQ1RfSEFORExFUiwgQXV0aENvbmZpZywgQXV0aFJlZGlyZWN0SGFuZGxlcn0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0F1dGh9IGZyb20gJy4uL2F1dGguc2VydmljZSc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtmaXJzdH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQmJBdXRoZW50aWNhdGVkR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSwgQ2FuQWN0aXZhdGVDaGlsZCB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9hdXRoOiBBdXRoLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2NvbmZpZz86IEF1dGhDb25maWcsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChBVVRIX1JFRElSRUNUX0hBTkRMRVIpIHByaXZhdGUgX2hhbmRsZXI/OiBBdXRoUmVkaXJlY3RIYW5kbGVyKSB7XG4gICAgfVxuXG4gICAgY2FuQWN0aXZhdGUoc25hcHNob3Q6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hdXRoLnVzZXIucGlwZShcbiAgICAgICAgICAgIG1hcCh1c2VyID0+ICEhdXNlciksXG4gICAgICAgICAgICBtYXAoaXNBdXRoZW50aWNhdGVkID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXNBdXRoZW50aWNhdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9oYW5kbGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9oYW5kbGVyLm9uRmFpbGVkQXV0aGVudGljYXRlZChzbmFwc2hvdCwgc3RhdGUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIElmIHdlIGRvbid0IGhhdmUgYSBVUkwgdG8gZ28gdG8gd2UgY2FuIGp1c3Qgc2F5XG4gICAgICAgICAgICAgICAgLy8gdGhlIHVzZXIgaXMgbm90IGFsbG93ZWQgaW4gdGhpcyByb3V0ZSBieSByZXR1cm5pbmcgZmFsc2UuXG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dFVybCA9IHRoaXMuX2NvbmZpZz8ucmVkaXJlY3RzPy51bmF1dGhlbnRpY2F0ZWQgPz8gbnVsbDtcbiAgICAgICAgICAgICAgICBpZiAoIW5leHRVcmwpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IHNldFJlZGlyZWN0T25GYWlsZWRBdXRoID0gdGhpcy5fY29uZmlnPy5zZXRSZWRpcmVjdE9uRmFpbGVkQXV0aCA/PyB0cnVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZGlyZWN0VXJsID0gc3RhdGU/LnVybCA/PyBudWxsO1xuICAgICAgICAgICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gc2V0UmVkaXJlY3RPbkZhaWxlZEF1dGggJiYgcmVkaXJlY3RVcmwgPyB7cmVkaXJlY3RVcmx9IDoge307XG4gICAgICAgICAgICAgICAgY29uc3QgY29tbWFuZHMgPSBBcnJheS5pc0FycmF5KG5leHRVcmwpID8gbmV4dFVybCA6IFtuZXh0VXJsXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fcm91dGVyLmNyZWF0ZVVybFRyZWUoY29tbWFuZHMsIHtxdWVyeVBhcmFtc30pO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBmaXJzdCgpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgY2FuQWN0aXZhdGVDaGlsZChjaGlsZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jYW5BY3RpdmF0ZShjaGlsZFJvdXRlLCBzdGF0ZSk7XG4gICAgfVxuXG59XG4iXX0=
@@ -2,4 +2,4 @@ import { InjectionToken } from '@angular/core';
2
2
  export class AuthConfig {
3
3
  }
4
4
  export const AUTH_REDIRECT_HANDLER = new InjectionToken('auth redirect handler');
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vYXV0aC9zcmMvbGliL2ludGVyZmFjZXMvY29uZmlnLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTdDLE1BQU0sT0FBTyxVQUFVO0NBbUJ0QjtBQUVELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksY0FBYyxDQUFzQix1QkFBdUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSb3V0ZXJTdGF0ZVNuYXBzaG90LCBVcmxUcmVlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtBcHBQZXJtaXNzaW9uc30gZnJvbSAnLi4vcGVybWlzc2lvbnMvcGVybWlzc2lvbnMuaGFuZGxlcic7XG5pbXBvcnQge0luamVjdGlvblRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNsYXNzIEF1dGhDb25maWcge1xuICAgIGFwcGxpY2F0aW9uSWQ6IHN0cmluZztcblxuICAgIGh0dHA/OiB7XG4gICAgICAgIHNjaGVtZT86IHN0cmluZyxcbiAgICAgICAgaGVhZGVyPzogc3RyaW5nXG4gICAgfTtcblxuICAgIHJlZGlyZWN0cz86IHtcbiAgICAgICAgYXV0aGVudGljYXRlZD86IHN0cmluZyB8IHN0cmluZ1tdO1xuICAgICAgICB1bmF1dGhlbnRpY2F0ZWQ/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgICAgICAgcGVybWlzc2lvbkRlbmllZD86IHN0cmluZyB8IHN0cmluZ1tdO1xuICAgIH07XG4gICAgc2V0UmVkaXJlY3RPbkZhaWxlZEF1dGg/OiBib29sZWFuO1xuXG4gICAgYm9vdHN0cmFwPzogYm9vbGVhbjtcbiAgICBwcm92aWRlcnM/OiBzdHJpbmdbXTtcbiAgICBhdXRvUmVmcmVzaD86IGJvb2xlYW47XG4gICAgcGVybWlzc2lvbnM/OiBBcHBQZXJtaXNzaW9uczxhbnksIGFueT47XG59XG5cbmV4cG9ydCBjb25zdCBBVVRIX1JFRElSRUNUX0hBTkRMRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48QXV0aFJlZGlyZWN0SGFuZGxlcj4oJ2F1dGggcmVkaXJlY3QgaGFuZGxlcicpO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhSZWRpcmVjdEhhbmRsZXIge1xuXG4gICAgb25GYWlsZWRBdXRoZW50aWNhdGVkKHNuYXBzaG90PzogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU/OiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogYm9vbGVhbiB8IFVybFRyZWU7XG4gICAgb25GYWlsZWRBbm9ueW1vdXMoc25hcHNob3Q/OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZT86IFJvdXRlclN0YXRlU25hcHNob3QpOiBib29sZWFuIHwgVXJsVHJlZTtcbiAgICBvblBlcm1pc3Npb25EZW5pZWQoc25hcHNob3Q/OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZT86IFJvdXRlclN0YXRlU25hcHNob3QpOiBib29sZWFuIHwgVXJsVHJlZTtcblxufVxuIl19
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vYXV0aC9zcmMvbGliL2ludGVyZmFjZXMvY29uZmlnLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTdDLE1BQU0sT0FBTyxVQUFVO0NBaUJ0QjtBQUVELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksY0FBYyxDQUFzQix1QkFBdUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSb3V0ZXJTdGF0ZVNuYXBzaG90LCBVcmxUcmVlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtJbmplY3Rpb25Ub2tlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBBdXRoQ29uZmlnIHtcbiAgICBhcHBsaWNhdGlvbklkOiBzdHJpbmc7XG5cbiAgICBodHRwPzoge1xuICAgICAgICBzY2hlbWU/OiBzdHJpbmcsXG4gICAgICAgIGhlYWRlcj86IHN0cmluZ1xuICAgIH07XG5cbiAgICByZWRpcmVjdHM/OiB7XG4gICAgICAgIGF1dGhlbnRpY2F0ZWQ/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgICAgICAgdW5hdXRoZW50aWNhdGVkPzogc3RyaW5nIHwgc3RyaW5nW107XG4gICAgfTtcbiAgICBzZXRSZWRpcmVjdE9uRmFpbGVkQXV0aD86IGJvb2xlYW47XG5cbiAgICBib290c3RyYXA/OiBib29sZWFuO1xuICAgIHByb3ZpZGVycz86IHN0cmluZ1tdO1xuICAgIGF1dG9SZWZyZXNoPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IEFVVEhfUkVESVJFQ1RfSEFORExFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBdXRoUmVkaXJlY3RIYW5kbGVyPignYXV0aCByZWRpcmVjdCBoYW5kbGVyJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aFJlZGlyZWN0SGFuZGxlciB7XG5cbiAgICBvbkZhaWxlZEF1dGhlbnRpY2F0ZWQoc25hcHNob3Q/OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZT86IFJvdXRlclN0YXRlU25hcHNob3QpOiBib29sZWFuIHwgVXJsVHJlZTtcbiAgICBvbkZhaWxlZEFub255bW91cyhzbmFwc2hvdD86IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlPzogUm91dGVyU3RhdGVTbmFwc2hvdCk6IGJvb2xlYW4gfCBVcmxUcmVlO1xuXG59XG4iXX0=