@alfresco/adf-core 8.1.0-16346981764 → 8.1.0-16472253724

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 (62) hide show
  1. package/bundles/assets/adf-core/i18n/pl.json +1 -1
  2. package/esm2022/lib/app-config/app-config.module.mjs +1 -1
  3. package/esm2022/lib/app-config/provide-app-config.mjs +44 -0
  4. package/esm2022/lib/app-config/public-api.mjs +2 -1
  5. package/esm2022/lib/auth/basic-auth/basic-alfresco-auth.service.mjs +14 -1
  6. package/esm2022/lib/auth/guard/auth-guard-bpm.service.mjs +2 -2
  7. package/esm2022/lib/auth/interfaces/authentication-service.interface.mjs +1 -1
  8. package/esm2022/lib/auth/oidc/oidc-authentication.service.mjs +16 -14
  9. package/esm2022/lib/auth/services/authentication.service.mjs +17 -17
  10. package/esm2022/lib/auth/services/base-authentication.service.mjs +1 -5
  11. package/esm2022/lib/core.module.mjs +146 -164
  12. package/esm2022/lib/form/components/form-renderer.component.mjs +3 -3
  13. package/esm2022/lib/form/components/widgets/amount/amount.widget.mjs +3 -3
  14. package/esm2022/lib/form/components/widgets/base-viewer/base-viewer.widget.mjs +1 -1
  15. package/esm2022/lib/form/components/widgets/text/text-mask.component.mjs +8 -2
  16. package/esm2022/lib/form/form-base.module.mjs +3 -18
  17. package/esm2022/lib/landing-page/index.mjs +18 -0
  18. package/esm2022/lib/landing-page/provider.mjs +30 -0
  19. package/esm2022/lib/landing-page/public-api.mjs +18 -0
  20. package/esm2022/lib/testing/core.testing.module.mjs +2 -1
  21. package/esm2022/lib/testing/noop-translate.module.mjs +22 -8
  22. package/esm2022/lib/testing/unit-testing-utils.mjs +4 -1
  23. package/esm2022/lib/translation/provide-i18n.mjs +48 -0
  24. package/esm2022/lib/translation/public-api.mjs +2 -1
  25. package/esm2022/lib/translation/translate-loader.service.mjs +7 -2
  26. package/esm2022/lib/viewer/components/viewer.component.mjs +8 -8
  27. package/esm2022/public-api.mjs +2 -1
  28. package/esm2022/shell/index.mjs +2 -1
  29. package/esm2022/shell/lib/shell.module.mjs +8 -12
  30. package/esm2022/shell/lib/shell.routes.mjs +26 -1
  31. package/fesm2022/adf-core.mjs +323 -162
  32. package/fesm2022/adf-core.mjs.map +1 -1
  33. package/fesm2022/alfresco-adf-core-shell.mjs +32 -11
  34. package/fesm2022/alfresco-adf-core-shell.mjs.map +1 -1
  35. package/lib/app-config/app-config.module.d.ts +1 -0
  36. package/lib/app-config/provide-app-config.d.ts +23 -0
  37. package/lib/app-config/public-api.d.ts +1 -0
  38. package/lib/auth/basic-auth/basic-alfresco-auth.service.d.ts +13 -0
  39. package/lib/auth/interfaces/authentication-service.interface.d.ts +9 -4
  40. package/lib/auth/oidc/oidc-authentication.service.d.ts +15 -5
  41. package/lib/auth/services/authentication.service.d.ts +12 -2
  42. package/lib/auth/services/base-authentication.service.d.ts +5 -1
  43. package/lib/core.module.d.ts +124 -128
  44. package/lib/form/components/form-renderer.component.scss +4 -5
  45. package/lib/form/components/widgets/amount/amount.widget.scss +0 -8
  46. package/lib/form/components/widgets/text/text-mask.component.d.ts +1 -0
  47. package/lib/form/form-base.module.d.ts +1 -0
  48. package/lib/landing-page/index.d.ts +17 -0
  49. package/lib/landing-page/provider.d.ts +24 -0
  50. package/lib/landing-page/public-api.d.ts +17 -0
  51. package/lib/testing/core.testing.module.d.ts +1 -0
  52. package/lib/testing/noop-translate.module.d.ts +1 -2
  53. package/lib/testing/unit-testing-utils.d.ts +1 -0
  54. package/lib/translation/provide-i18n.d.ts +39 -0
  55. package/lib/translation/public-api.d.ts +1 -0
  56. package/lib/viewer/components/viewer.component.d.ts +3 -3
  57. package/package.json +3 -3
  58. package/public-api.d.ts +1 -0
  59. package/shell/README.md +10 -6
  60. package/shell/index.d.ts +1 -0
  61. package/shell/lib/shell.module.d.ts +4 -7
  62. package/shell/lib/shell.routes.d.ts +13 -1
@@ -453,7 +453,7 @@
453
453
  "RESET": "Resetuj",
454
454
  "THUMBNAILS": "Miniatura dokumentu",
455
455
  "THUMBNAILS_PANLEL_CLOSE": "Zamknij panel miniatur",
456
- "LOADING": "Document is loading"
456
+ "LOADING": "Wczytywanie dokumentu"
457
457
  },
458
458
  "PAGE_LABEL": {
459
459
  "SHOWING": "Wyświetlanie",
@@ -30,4 +30,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
30
30
  exports: [AppConfigPipe]
31
31
  }]
32
32
  }] });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWNvbmZpZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL2FwcC1jb25maWcvYXBwLWNvbmZpZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBTWxELHVGQUF1RjtBQUN2RixNQUFNLE9BQU8sZUFBZTsrR0FBZixlQUFlO2dIQUFmLGVBQWUsWUFKZCxhQUFhLGFBQ2IsYUFBYTtnSEFHZCxlQUFlOzs0RkFBZixlQUFlO2tCQUwzQixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztvQkFDeEIsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO2lCQUMzQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFwcENvbmZpZ1BpcGUgfSBmcm9tICcuL2FwcC1jb25maWcucGlwZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0FwcENvbmZpZ1BpcGVdLFxuICAgIGV4cG9ydHM6IFtBcHBDb25maWdQaXBlXVxufSlcbi8qKiBAZGVwcmVjYXRlZCBUaGlzIG1vZHVsZSBpcyBkZXByZWNhdGVkLCBjb25zaWRlciBpbXBvcnRpbmcgQXBwQ29uZmlnUGlwZSBkaXJlY3RseSAqL1xuZXhwb3J0IGNsYXNzIEFwcENvbmZpZ01vZHVsZSB7fVxuIl19
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWNvbmZpZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL2FwcC1jb25maWcvYXBwLWNvbmZpZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBRWxELHVGQUF1RjtBQUt2RixNQUFNLE9BQU8sZUFBZTsrR0FBZixlQUFlO2dIQUFmLGVBQWUsWUFIZCxhQUFhLGFBQ2IsYUFBYTtnSEFFZCxlQUFlOzs0RkFBZixlQUFlO2tCQUozQixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztvQkFDeEIsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO2lCQUMzQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFwcENvbmZpZ1BpcGUgfSBmcm9tICcuL2FwcC1jb25maWcucGlwZSc7XG5cbi8qKiBAZGVwcmVjYXRlZCBUaGlzIG1vZHVsZSBpcyBkZXByZWNhdGVkLCBjb25zaWRlciBpbXBvcnRpbmcgQXBwQ29uZmlnUGlwZSBkaXJlY3RseSAqL1xuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQXBwQ29uZmlnUGlwZV0sXG4gICAgZXhwb3J0czogW0FwcENvbmZpZ1BpcGVdXG59KVxuZXhwb3J0IGNsYXNzIEFwcENvbmZpZ01vZHVsZSB7fVxuIl19
@@ -0,0 +1,44 @@
1
+ /*!
2
+ * @license
3
+ * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { inject, APP_INITIALIZER } from '@angular/core';
18
+ import { StoragePrefixFactory } from './app-config-storage-prefix.factory';
19
+ import { loadAppConfig } from './app-config.loader';
20
+ import { AppConfigService } from './app-config.service';
21
+ import { StorageService } from '../common';
22
+ import { AdfHttpClient } from '@alfresco/adf-core/api';
23
+ /**
24
+ * Provides the application configuration for the application.
25
+ *
26
+ * @returns An array of providers to initialize the application configuration.
27
+ */
28
+ export function provideAppConfig() {
29
+ return [
30
+ StoragePrefixFactory,
31
+ {
32
+ provide: APP_INITIALIZER,
33
+ useFactory: () => {
34
+ const appConfigService = inject(AppConfigService);
35
+ const storageService = inject(StorageService);
36
+ const httpClient = inject(AdfHttpClient);
37
+ const prefixFactory = inject(StoragePrefixFactory);
38
+ return () => loadAppConfig(appConfigService, storageService, httpClient, prefixFactory)();
39
+ },
40
+ multi: true
41
+ }
42
+ ];
43
+ }
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1hcHAtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvc3JjL2xpYi9hcHAtY29uZmlnL3Byb3ZpZGUtYXBwLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFZLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxnQkFBZ0I7SUFDNUIsT0FBTztRQUNILG9CQUFvQjtRQUNwQjtZQUNJLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLFVBQVUsRUFBRSxHQUFHLEVBQUU7Z0JBQ2IsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztnQkFDbEQsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUM5QyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ3pDLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO2dCQUNuRCxPQUFPLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDOUYsQ0FBQztZQUNELEtBQUssRUFBRSxJQUFJO1NBQ2Q7S0FDSixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgaW5qZWN0LCBQcm92aWRlciwgQVBQX0lOSVRJQUxJWkVSIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yYWdlUHJlZml4RmFjdG9yeSB9IGZyb20gJy4vYXBwLWNvbmZpZy1zdG9yYWdlLXByZWZpeC5mYWN0b3J5JztcbmltcG9ydCB7IGxvYWRBcHBDb25maWcgfSBmcm9tICcuL2FwcC1jb25maWcubG9hZGVyJztcbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL2FwcC1jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbic7XG5pbXBvcnQgeyBBZGZIdHRwQ2xpZW50IH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlL2FwaSc7XG5cbi8qKlxuICogUHJvdmlkZXMgdGhlIGFwcGxpY2F0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBhcHBsaWNhdGlvbi5cbiAqXG4gKiBAcmV0dXJucyBBbiBhcnJheSBvZiBwcm92aWRlcnMgdG8gaW5pdGlhbGl6ZSB0aGUgYXBwbGljYXRpb24gY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVBcHBDb25maWcoKTogUHJvdmlkZXJbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgU3RvcmFnZVByZWZpeEZhY3RvcnksXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBhcHBDb25maWdTZXJ2aWNlID0gaW5qZWN0KEFwcENvbmZpZ1NlcnZpY2UpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0b3JhZ2VTZXJ2aWNlID0gaW5qZWN0KFN0b3JhZ2VTZXJ2aWNlKTtcbiAgICAgICAgICAgICAgICBjb25zdCBodHRwQ2xpZW50ID0gaW5qZWN0KEFkZkh0dHBDbGllbnQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHByZWZpeEZhY3RvcnkgPSBpbmplY3QoU3RvcmFnZVByZWZpeEZhY3RvcnkpO1xuICAgICAgICAgICAgICAgIHJldHVybiAoKSA9PiBsb2FkQXBwQ29uZmlnKGFwcENvbmZpZ1NlcnZpY2UsIHN0b3JhZ2VTZXJ2aWNlLCBodHRwQ2xpZW50LCBwcmVmaXhGYWN0b3J5KSgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdO1xufVxuIl19
@@ -19,4 +19,5 @@ export * from './debug-app-config.service';
19
19
  export * from './app-config.pipe';
20
20
  export * from './app-config-storage-prefix.factory';
21
21
  export * from './app-config.module';
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvYXBwLWNvbmZpZy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMscUNBQXFDLENBQUM7QUFFcEQsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9hcHAtY29uZmlnLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWJ1Zy1hcHAtY29uZmlnLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hcHAtY29uZmlnLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9hcHAtY29uZmlnLXN0b3JhZ2UtcHJlZml4LmZhY3RvcnknO1xuXG5leHBvcnQgKiBmcm9tICcuL2FwcC1jb25maWcubW9kdWxlJztcbiJdfQ==
22
+ export * from './provide-app-config';
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvYXBwLWNvbmZpZy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMscUNBQXFDLENBQUM7QUFFcEQsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2FwcC1jb25maWcuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2RlYnVnLWFwcC1jb25maWcuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwcC1jb25maWcucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwcC1jb25maWctc3RvcmFnZS1wcmVmaXguZmFjdG9yeSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vYXBwLWNvbmZpZy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm92aWRlLWFwcC1jb25maWcnO1xuIl19
@@ -276,12 +276,25 @@ export class BasicAlfrescoAuthService extends BaseAuthenticationService {
276
276
  hasSelectedProviderAll(provider) {
277
277
  return this.redirectUrl && (this.redirectUrl.provider === 'ALL' || provider === 'ALL');
278
278
  }
279
+ /**
280
+ * @deprecated use `getUsername()` instead
281
+ * @returns the username of the authenticated user
282
+ */
279
283
  getBpmUsername() {
280
284
  return this.processAuth.getUsername();
281
285
  }
286
+ /**
287
+ * @deprecated use `getUsername()` instead
288
+ * @returns the username of the authenticated user
289
+ */
282
290
  getEcmUsername() {
283
291
  return this.contentAuth.getUsername();
284
292
  }
293
+ /**
294
+ * Gets the username of the authenticated user.
295
+ *
296
+ * @returns the username of the authenticated user
297
+ */
285
298
  getUsername() {
286
299
  if (this.isBPMProvider()) {
287
300
  return this.processAuth.getUsername();
@@ -353,4 +366,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
353
366
  providedIn: 'root'
354
367
  }]
355
368
  }], ctorParameters: () => [{ type: i1.AppConfigService }, { type: i2.CookieService }, { type: i3.ContentAuth }, { type: i4.ProcessAuth }] });
356
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaWMtYWxmcmVzY28tYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvc3JjL2xpYi9hdXRoL2Jhc2ljLWF1dGgvYmFzaWMtYWxmcmVzY28tYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXhGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLElBQUksRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUV4QyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7O0FBR3BGLE1BQU0sc0JBQXNCLEdBQUcsc0JBQXNCLENBQUM7QUFDdEQsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO0FBS25ELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSx5QkFBeUI7SUFVbkUsWUFBWSxTQUEyQixFQUFFLE1BQXFCLEVBQVUsV0FBd0IsRUFBVSxXQUF3QjtRQUM5SCxLQUFLLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRDJDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFUeEgsZ0JBQVcsR0FBcUIsSUFBSSxDQUFDO1FB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QUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BJLENBQUM7SUFFTyx3QkFBd0I7UUFDNUIsT0FBTyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN4RCxDQUFDOytHQXpXUSx3QkFBd0I7bUhBQXhCLHdCQUF3QixjQUZyQixNQUFNOzs0RkFFVCx3QkFBd0I7a0JBSHBDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlLCBBcHBDb25maWdWYWx1ZXMgfSBmcm9tICcuLi8uLi9hcHAtY29uZmlnL2FwcC1jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvYXV0aGVudGljYXRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IENvb2tpZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21tb24vc2VydmljZXMvY29va2llLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29udGVudEF1dGggfSBmcm9tICcuL2NvbnRlbnQtYXV0aCc7XG5pbXBvcnQgeyBQcm9jZXNzQXV0aCB9IGZyb20gJy4vcHJvY2Vzcy1hdXRoJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGZyb20sIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJlZGlyZWN0aW9uTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvcmVkaXJlY3Rpb24ubW9kZWwnO1xuaW1wb3J0IHsgQmFzZUF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Jhc2UtYXV0aGVudGljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuY29uc3QgUkVNRU1CRVJfTUVfQ09PS0lFX0tFWSA9ICdBTEZSRVNDT19SRU1FTUJFUl9NRSc7XG5jb25zdCBSRU1FTUJFUl9NRV9VTlRJTCA9IDEwMDAgKiA2MCAqIDYwICogMjQgKiAzMDtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBCYXNpY0FsZnJlc2NvQXV0aFNlcnZpY2UgZXh0ZW5kcyBCYXNlQXV0aGVudGljYXRpb25TZXJ2aWNlIHtcbiAgICBwcm90ZWN0ZWQgcmVkaXJlY3RVcmw6IFJlZGlyZWN0aW9uTW9kZWwgPSBudWxsO1xuXG4gICAgYXV0aGVudGljYXRpb25zOiBBdXRoZW50aWNhdGlvbiA9IHtcbiAgICAgICAgYmFzaWNBdXRoOiB7XG4gICAgICAgICAgICB0aWNrZXQ6ICcnXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGU6ICdiYXNpYydcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IoYXBwQ29uZmlnOiBBcHBDb25maWdTZXJ2aWNlLCBjb29raWU6IENvb2tpZVNlcnZpY2UsIHByaXZhdGUgY29udGVudEF1dGg6IENvbnRlbnRBdXRoLCBwcml2YXRlIHByb2Nlc3NBdXRoOiBQcm9jZXNzQXV0aCkge1xuICAgICAgICBzdXBlcihhcHBDb25maWcsIGNvb2tpZSk7XG5cbiAgICAgICAgdGhpcy5hcHBDb25maWcub25Mb2FkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNPYXV0aCgpICYmIHRoaXMuaXNMb2dnZWRJbigpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXF1aXJlQWxmVGlja2V0KClcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkxvZ2luLm5leHQoJ2xvZ2dlZC1pbicpO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZW50QXV0aC5pbnZhbGlkYXRlU2Vzc2lvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkxvZ291dC5uZXh0KCdsb2dvdXQnKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY29udGVudEF1dGgub25Mb2dvdXQucGlwZShcbiAgICAgICAgICAgIG1hcCgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uTG9nb3V0Lm5leHQoZXZlbnQpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5jb250ZW50QXV0aC5vbkxvZ2luLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkxvZ2luLm5leHQoZXZlbnQpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5jb250ZW50QXV0aC5vbkVycm9yLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkVycm9yLm5leHQoZXZlbnQpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5wcm9jZXNzQXV0aC5vbkxvZ291dC5waXBlKFxuICAgICAgICAgICAgbWFwKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub25Mb2dvdXQubmV4dChldmVudCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnByb2Nlc3NBdXRoLm9uTG9naW4ucGlwZShcbiAgICAgICAgICAgIG1hcCgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uTG9naW4ubmV4dChldmVudCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnByb2Nlc3NBdXRoLm9uRXJyb3IucGlwZShcbiAgICAgICAgICAgIG1hcCgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uRXJyb3IubmV4dChldmVudCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIExvZ3MgdGhlIHVzZXIgaW4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXNlcm5hbWUgVXNlcm5hbWUgZm9yIHRoZSBsb2dpblxuICAgICAqIEBwYXJhbSBwYXNzd29yZCBQYXNzd29yZCBmb3IgdGhlIGxvZ2luXG4gICAgICogQHBhcmFtIHJlbWVtYmVyTWUgU3RvcmVzIHRoZSB1c2VyJ3MgbG9naW4gZGV0YWlscyBpZiB0cnVlXG4gICAgICogQHJldHVybnMgT2JqZWN0IHdpdGggYXV0aCB0eXBlIChcIkVDTVwiLCBcIkJQTVwiIG9yIFwiQUxMXCIpIGFuZCBhdXRoIHRpY2tldFxuICAgICAqL1xuICAgIGxvZ2luKHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcsIHJlbWVtYmVyTWU6IGJvb2xlYW4gPSBmYWxzZSk6IE9ic2VydmFibGU8eyB0eXBlOiBzdHJpbmc7IHRpY2tldDogYW55IH0+IHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy5leGVjdXRlTG9naW4odXNlcm5hbWUsIHBhc3N3b3JkKSkucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2F2ZVJlbWVtYmVyTWVDb29raWUocmVtZW1iZXJNZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkxvZ2luLm5leHQocmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IHRoaXMuYXBwQ29uZmlnLmdldChBcHBDb25maWdWYWx1ZXMuUFJPVklERVJTKSxcbiAgICAgICAgICAgICAgICAgICAgdGlja2V0OiByZXNwb25zZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnIpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGxvZ2luIEFsZnJlc2NvIEFQSVxuICAgICAqXG4gICAgICogQHBhcmFtIHVzZXJuYW1lIHVzZXJuYW1lIHRvIGxvZ2luXG4gICAgICogQHBhcmFtIHBhc3N3b3JkIHBhc3N3b3JkIHRvIGxvZ2luXG4gICAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmV0dXJucyB7bmV3IGF1dGhlbnRpY2F0aW9uIHRpY2tldH0gaWYgcmVzb2x2ZWQgYW5kIHtlcnJvcn0gaWYgcmVqZWN0ZWQuXG4gICAgICovXG4gICAgYXN5bmMgZXhlY3V0ZUxvZ2luKHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICBpZiAoIXRoaXMuaXNDcmVkZW50aWFsVmFsaWQodXNlcm5hbWUpIHx8ICF0aGlzLmlzQ3JlZGVudGlhbFZhbGlkKHBhc3N3b3JkKSkge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcignbWlzc2luZyB1c2VybmFtZSBvciBwYXNzd29yZCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh1c2VybmFtZSkge1xuICAgICAgICAgICAgdXNlcm5hbWUgPSB1c2VybmFtZS50cmltKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc0JQTVByb3ZpZGVyKCkpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvY2Vzc0F1dGgubG9naW4odXNlcm5hbWUsIHBhc3N3b3JkKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0VDTVByb3ZpZGVyKCkpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuY29udGVudEF1dGgubG9naW4odXNlcm5hbWUsIHBhc3N3b3JkKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0FMTFByb3ZpZGVyKCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvZ2luQlBNRUNNKHVzZXJuYW1lLCBwYXNzd29yZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKCdVbmtub3duIGNvbmZpZ3VyYXRpb24nKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGxvZ2luQlBNRUNNKHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICBjb25zdCBjb250ZW50UHJvbWlzZSA9IHRoaXMuY29udGVudEF1dGgubG9naW4odXNlcm5hbWUsIHBhc3N3b3JkKTtcbiAgICAgICAgY29uc3QgcHJvY2Vzc1Byb21pc2UgPSB0aGlzLnByb2Nlc3NBdXRoLmxvZ2luKHVzZXJuYW1lLCBwYXNzd29yZCk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIFByb21pc2UuYWxsKFtjb250ZW50UHJvbWlzZSwgcHJvY2Vzc1Byb21pc2VdKS50aGVuKFxuICAgICAgICAgICAgICAgIChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25Mb2dpbi5uZXh0KCdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoZGF0YSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZW50QXV0aC5pbnZhbGlkYXRlU2Vzc2lvbigpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NBdXRoLmludmFsaWRhdGVTZXNzaW9uKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRXJyb3IubmV4dCgndW5hdXRob3JpemVkJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkVycm9yLm5leHQoJ2Vycm9yJyk7XG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIFwicmVtZW1iZXIgbWVcIiBjb29raWUgd2FzIHNldCBvciBub3QuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBUcnVlIGlmIHNldCwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAgICovXG4gICAgaXNSZW1lbWJlck1lU2V0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb29raWUuZ2V0SXRlbShSRU1FTUJFUl9NRV9DT09LSUVfS0VZKSAhPT0gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTYXZlcyB0aGUgXCJyZW1lbWJlciBtZVwiIGNvb2tpZSBhcyBlaXRoZXIgYSBsb25nLWxpZmUgY29va2llIG9yIGEgc2Vzc2lvbiBjb29raWUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVtZW1iZXJNZSBFbmFibGVzIGEgbG9uZy1saWZlIGNvb2tpZVxuICAgICAqL1xuICAgIHNhdmVSZW1lbWJlck1lQ29va2llKHJlbWVtYmVyTWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgbGV0IGV4cGlyYXRpb24gPSBudWxsO1xuXG4gICAgICAgIGlmIChyZW1lbWJlck1lKSB7XG4gICAgICAgICAgICBleHBpcmF0aW9uID0gbmV3IERhdGUoKTtcbiAgICAgICAgICAgIGNvbnN0IHRpbWUgPSBleHBpcmF0aW9uLmdldFRpbWUoKTtcbiAgICAgICAgICAgIGNvbnN0IGV4cGlyZVRpbWUgPSB0aW1lICsgUkVNRU1CRVJfTUVfVU5USUw7XG4gICAgICAgICAgICBleHBpcmF0aW9uLnNldFRpbWUoZXhwaXJlVGltZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb29raWUuc2V0SXRlbShSRU1FTUJFUl9NRV9DT09LSUVfS0VZLCAnMScsIGV4cGlyYXRpb24sIG51bGwpO1xuICAgIH1cblxuICAgIGlzQ3JlZGVudGlhbFZhbGlkKGNyZWRlbnRpYWw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gY3JlZGVudGlhbCAhPT0gdW5kZWZpbmVkICYmIGNyZWRlbnRpYWwgIT09IG51bGwgJiYgY3JlZGVudGlhbCAhPT0gJyc7XG4gICAgfVxuXG4gICAgZ2V0VG9rZW4oKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuaXNCUE1Qcm92aWRlcigpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQXV0aC5nZXRUb2tlbigpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNFQ01Qcm92aWRlcigpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb250ZW50QXV0aC5nZXRUb2tlbigpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNBTExQcm92aWRlcigpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb250ZW50QXV0aC5nZXRUb2tlbigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKiBAcmV0dXJucyBjb250ZW50IGF1dGggdG9rZW5cbiAgICAgKi9cbiAgICBnZXRUaWNrZXRFY20oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGVudEF1dGguZ2V0VG9rZW4oKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqIEByZXR1cm5zIHByb2Nlc3MgYXV0aCB0b2tlblxuICAgICAqL1xuICAgIGdldFRpY2tldEJwbSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQXV0aC5nZXRUb2tlbigpO1xuICAgIH1cblxuICAgIGlzQnBtTG9nZ2VkSW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NBdXRoLmlzTG9nZ2VkSW4oKTtcbiAgICB9XG5cbiAgICBpc0VjbUxvZ2dlZEluKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZW50QXV0aC5pc0xvZ2dlZEluKCk7XG4gICAgfVxuXG4gICAgaXNMb2dnZWRJbigpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgYXV0aFdpdGhDcmVkZW50aWFscyA9IHRoaXMuaXNLZXJiZXJvc0VuYWJsZWQoKTtcblxuICAgICAgICBpZiAodGhpcy5pc0JQTVByb3ZpZGVyKCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NBdXRoLmlzTG9nZ2VkSW4oKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzRUNNUHJvdmlkZXIoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGF1dGhXaXRoQ3JlZGVudGlhbHMgPyB0cnVlIDogdGhpcy5jb250ZW50QXV0aC5pc0xvZ2dlZEluKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0FMTFByb3ZpZGVyKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBhdXRoV2l0aENyZWRlbnRpYWxzID8gdHJ1ZSA6IHRoaXMuY29udGVudEF1dGguaXNMb2dnZWRJbigpICYmIHRoaXMucHJvY2Vzc0F1dGguaXNMb2dnZWRJbigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogbG9nb3V0IEFsZnJlc2NvIEFQSVxuICAgICAqXG4gICAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmV0dXJucyB7bG9nb3V0fSBpZiByZXNvbHZlZCBhbmQge2Vycm9yfSBpZiByZWplY3RlZC5cbiAgICAgKi9cbiAgICBhc3luYyBsb2dvdXQoKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgaWYgKHRoaXMuaXNCUE1Qcm92aWRlcigpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQXV0aC5sb2dvdXQoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzRUNNUHJvdmlkZXIoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29udGVudEF1dGgubG9nb3V0KCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0FMTFByb3ZpZGVyKCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvZ291dEJQTUVDTSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxvZ291dEJQTUVDTSgpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICBjb25zdCBjb250ZW50UHJvbWlzZSA9IHRoaXMuY29udGVudEF1dGgubG9nb3V0KCk7XG4gICAgICAgIGNvbnN0IHByb2Nlc3NQcm9taXNlID0gdGhpcy5wcm9jZXNzQXV0aC5sb2dvdXQoKTtcblxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgUHJvbWlzZS5hbGwoW2NvbnRlbnRQcm9taXNlLCBwcm9jZXNzUHJvbWlzZV0pLnRoZW4oXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRBdXRoLnRpY2tldCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzQXV0aC50aWNrZXQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25Mb2dvdXQubmV4dCgnbG9nb3V0Jyk7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoJ2xvZ291dCcpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkVycm9yLm5leHQoJ3VuYXV0aG9yaXplZCcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25FcnJvci5uZXh0KCdlcnJvcicpO1xuICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJlc2V0KCk6IHZvaWQge1xuICAgICAgICAvLyBkbyBub3RoaW5nXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgVVJMIHRvIHJlZGlyZWN0IHRvIGFmdGVyIGxvZ2luLlxuICAgICAqXG4gICAgICogQHJldHVybnMgVGhlIHJlZGlyZWN0IFVSTFxuICAgICAqL1xuICAgIGdldFJlZGlyZWN0KCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHByb3ZpZGVyID0gdGhpcy5hcHBDb25maWcuZ2V0PHN0cmluZz4oQXBwQ29uZmlnVmFsdWVzLlBST1ZJREVSUyk7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc1ZhbGlkUmVkaXJlY3Rpb24ocHJvdmlkZXIpID8gdGhpcy5yZWRpcmVjdFVybC51cmwgOiBudWxsO1xuICAgIH1cblxuICAgIHNldFJlZGlyZWN0KHVybD86IFJlZGlyZWN0aW9uTW9kZWwpIHtcbiAgICAgICAgdGhpcy5yZWRpcmVjdFVybCA9IHVybDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhc1ZhbGlkUmVkaXJlY3Rpb24ocHJvdmlkZXI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWRpcmVjdFVybCAmJiAodGhpcy5yZWRpcmVjdFVybC5wcm92aWRlciA9PT0gcHJvdmlkZXIgfHwgdGhpcy5oYXNTZWxlY3RlZFByb3ZpZGVyQWxsKHByb3ZpZGVyKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYXNTZWxlY3RlZFByb3ZpZGVyQWxsKHByb3ZpZGVyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVkaXJlY3RVcmwgJiYgKHRoaXMucmVkaXJlY3RVcmwucHJvdmlkZXIgPT09ICdBTEwnIHx8IHByb3ZpZGVyID09PSAnQUxMJyk7XG4gICAgfVxuXG4gICAgZ2V0QnBtVXNlcm5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0F1dGguZ2V0VXNlcm5hbWUoKTtcbiAgICB9XG5cbiAgICBnZXRFY21Vc2VybmFtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZW50QXV0aC5nZXRVc2VybmFtZSgpO1xuICAgIH1cblxuICAgIGdldFVzZXJuYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLmlzQlBNUHJvdmlkZXIoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0F1dGguZ2V0VXNlcm5hbWUoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzRUNNUHJvdmlkZXIoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29udGVudEF1dGguZ2V0VXNlcm5hbWUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnRlbnRBdXRoLmdldFVzZXJuYW1lKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEb2VzIGtlcmJlcm9zIGVuYWJsZWQ/XG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBUcnVlIGlmIGVuYWJsZWQsIGZhbHNlIG90aGVyd2lzZVxuICAgICAqL1xuICAgIGlzS2VyYmVyb3NFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hcHBDb25maWcuZ2V0PGJvb2xlYW4+KEFwcENvbmZpZ1ZhbHVlcy5BVVRIX1dJVEhfQ1JFREVOVElBTFMsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBnZXRBdXRoSGVhZGVycyhyZXF1ZXN0VXJsOiBzdHJpbmcsIGhlYWRlcjogSHR0cEhlYWRlcnMpOiBIdHRwSGVhZGVycyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFkZEJhc2ljQXV0aChyZXF1ZXN0VXJsLCBoZWFkZXIpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkQmFzaWNBdXRoKHJlcXVlc3RVcmw6IHN0cmluZywgaGVhZGVyOiBIdHRwSGVhZGVycyk6IEh0dHBIZWFkZXJzIHtcbiAgICAgICAgaWYgKHRoaXMuaXNLZXJiZXJvc0VuYWJsZWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGhlYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRpY2tldCA9IHRoaXMuZ2V0VGlja2V0RWNtQmFzZTY0KHJlcXVlc3RVcmwpO1xuXG4gICAgICAgIGlmICghdGlja2V0KSB7XG4gICAgICAgICAgICByZXR1cm4gaGVhZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGhlYWRlci5zZXQoJ0F1dGhvcml6YXRpb24nLCB0aWNrZXQpO1xuICAgIH1cblxuICAgIGFzeW5jIHJlcXVpcmVBbGZUaWNrZXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRlbnRBdXRoLnJlcXVpcmVBbGZUaWNrZXQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBCUE0gdGlja2V0IGZyb20gdGhlIFN0b3JhZ2UgaW4gQmFzZSA2NCBmb3JtYXQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdFVybCB0aGUgcmVxdWVzdCB1cmxcbiAgICAgKiBAcmV0dXJucyBUaGUgdGlja2V0IG9yIGBudWxsYCBpZiBub25lIHdhcyBmb3VuZFxuICAgICAqL1xuICAgIGdldFRpY2tldEVjbUJhc2U2NChyZXF1ZXN0VXJsOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgbGV0IHRpY2tldCA9IG51bGw7XG5cbiAgICAgICAgY29uc3QgYnBtUm9vdCA9IGAvJHt0aGlzLmFwcENvbmZpZy5nZXQ8c3RyaW5nPihBcHBDb25maWdWYWx1ZXMuQ09OVEVYVFJPT1RCUE0pIHx8ICdhY3Rpdml0aS1hcHAnfS9gO1xuICAgICAgICBjb25zdCBlY21Sb290ID0gYC8ke3RoaXMuYXBwQ29uZmlnLmdldDxzdHJpbmc+KEFwcENvbmZpZ1ZhbHVlcy5DT05URVhUUk9PVEVDTSkgfHwgJ2FsZnJlc2NvJ30vYDtcblxuICAgICAgICBpZiAocmVxdWVzdFVybD8uaW5jbHVkZXMoZWNtUm9vdCkgJiYgIXJlcXVlc3RVcmwuaW5jbHVkZXMoYnBtUm9vdCkpIHtcbiAgICAgICAgICAgIHRpY2tldCA9IHRoaXMuZ2V0Q29udGVudFNlcnZpY2VzVGlja2V0KCk7XG4gICAgICAgIH0gZWxzZSBpZiAocmVxdWVzdFVybD8uaW5jbHVkZXMoYnBtUm9vdCkgJiYgIXJlcXVlc3RVcmwuaW5jbHVkZXMoZWNtUm9vdCkpIHtcbiAgICAgICAgICAgIHRpY2tldCA9IHRoaXMuZ2V0UHJvY2Vzc1NlcnZpY2VzVGlja2V0KCk7XG4gICAgICAgIH0gZWxzZSBpZiAocmVxdWVzdFVybD8uaW5jbHVkZXMoZWNtUm9vdCkgJiYgcmVxdWVzdFVybC5pbmNsdWRlcyhicG1Sb290KSkge1xuICAgICAgICAgICAgdGlja2V0ID0gcmVxdWVzdFVybC5pbmRleE9mKGVjbVJvb3QpIDwgcmVxdWVzdFVybC5pbmRleE9mKGJwbVJvb3QpID8gdGhpcy5nZXRDb250ZW50U2VydmljZXNUaWNrZXQoKSA6IHRoaXMuZ2V0UHJvY2Vzc1NlcnZpY2VzVGlja2V0KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRpY2tldDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFByb2Nlc3NTZXJ2aWNlc1RpY2tldCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQXV0aC5nZXRUb2tlbigpPy5zdGFydHNXaXRoKCdCYXNpYyAnKSA/IHRoaXMucHJvY2Vzc0F1dGguZ2V0VG9rZW4oKSA6ICdCYXNpYyAnICsgdGhpcy5wcm9jZXNzQXV0aC5nZXRUb2tlbigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q29udGVudFNlcnZpY2VzVGlja2V0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnQmFzaWMgJyArIGJ0b2EodGhpcy5jb250ZW50QXV0aC5nZXRUb2tlbigpKTtcbiAgICB9XG59XG4iXX0=
369
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaWMtYWxmcmVzY28tYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvc3JjL2xpYi9hdXRoL2Jhc2ljLWF1dGgvYmFzaWMtYWxmcmVzY28tYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXhGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLElBQUksRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUV4QyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7O0FBR3BGLE1BQU0sc0JBQXNCLEdBQUcsc0JBQXNCLENBQUM7QUFDdEQsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO0FBS25ELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSx5QkFBeUI7SUFVbkUsWUFBWSxTQUEyQixFQUFFLE1BQXFCLEVBQVUsV0FBd0IsRUFBVSxXQUF3QjtRQUM5SCxLQUFLLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRDJDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFUeEgsZ0JBQVcsR0FBcUIsSUFBSSxDQUFDO1FBRS9DLG9CQUFlLEdBQW1CO1lBQzlCLFNBQVMsRUFBRTtnQkFDUCxNQUFNLEVBQUUsRUFBRTthQUNiO1lBQ0QsSUFBSSxFQUFFLE9BQU87U0FDaEIsQ0FBQztRQUtFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO3FCQUNsQixJQUFJLENBQUMsR0FBRyxFQUFFO29CQUNQLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUNuQyxDQUFDLENBQUM7cUJBQ0QsS0FBSyxDQUFDLEdBQUcsRUFBRTtvQkFDUixJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixFQUFFLENBQUM7b0JBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNqQyxDQUFDLENBQUMsQ0FBQztZQUNYLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDMUIsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDVixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FDTCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUN6QixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNWLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUNMLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ3pCLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ1YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQ0wsQ0FBQztRQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDMUIsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDVixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FDTCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUN6QixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNWLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUNMLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ3pCLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ1YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsS0FBSyxDQUFDLFFBQWdCLEVBQUUsUUFBZ0IsRUFBRSxhQUFzQixLQUFLO1FBQ2pFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNuRCxHQUFHLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUNsQixJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDNUIsT0FBTztnQkFDSCxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQztnQkFDbkQsTUFBTSxFQUFFLFFBQVE7YUFDbkIsQ0FBQztRQUNOLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUM3QyxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxZQUFZLENBQUMsUUFBZ0IsRUFBRSxRQUFnQjtRQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDekUsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUMsQ0FBQztRQUNyRSxDQUFDO1FBRUQsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNYLFFBQVEsR0FBRyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDL0IsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDO2dCQUNELE9BQU8sTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDNUQsQ0FBQztZQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ1QsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdCLENBQUM7UUFDTCxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUM7Z0JBQ0QsT0FBTyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUM1RCxDQUFDO1lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDVCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0IsQ0FBQztRQUNMLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO1lBQzlCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDaEQsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO1FBQzlELENBQUM7SUFDTCxDQUFDO0lBRU8sV0FBVyxDQUFDLFFBQWdCLEVBQUUsUUFBZ0I7UUFDbEQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUVsRSxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ25DLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzlDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQzdCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsQixDQUFDLEVBQ0QsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDTixJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFFckMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO29CQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDdEMsQ0FBQztnQkFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDM0IsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xCLENBQUMsQ0FDSixDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGVBQWU7UUFDWCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLEtBQUssSUFBSSxDQUFDO0lBQ2hFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsb0JBQW9CLENBQUMsVUFBbUI7UUFDcEMsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBRXRCLElBQUksVUFBVSxFQUFFLENBQUM7WUFDYixVQUFVLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxHQUFHLGlCQUFpQixDQUFDO1lBQzVDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELGlCQUFpQixDQUFDLFVBQWtCO1FBQ2hDLE9BQU8sVUFBVSxLQUFLLFNBQVMsSUFBSSxVQUFVLEtBQUssSUFBSSxJQUFJLFVBQVUsS0FBSyxFQUFFLENBQUM7SUFDaEYsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN2QyxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztZQUM5QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdkMsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7WUFDOUIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3ZDLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxFQUFFLENBQUM7UUFDZCxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVk7UUFDUixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVk7UUFDUixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELGFBQWE7UUFDVCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVELGFBQWE7UUFDVCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVELFVBQVU7UUFDTixNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRXJELElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7WUFDdkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3pDLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO1lBQzlCLE9BQU8sbUJBQW1CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN0RSxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztZQUM5QixPQUFPLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN2RyxDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxNQUFNO1FBQ1IsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztZQUN2QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDckMsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7WUFDOUIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3JDLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO1lBQzlCLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQy9CLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU8sWUFBWTtRQUNoQixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2pELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFakQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNuQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUM5QyxHQUFHLEVBQUU7Z0JBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO2dCQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM3QixPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdEIsQ0FBQyxFQUNELENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ04sSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO29CQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDdEMsQ0FBQztnQkFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDM0IsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xCLENBQUMsQ0FDSixDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsS0FBSztRQUNELGFBQWE7SUFDakIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxXQUFXO1FBQ1AsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQVMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzVFLENBQUM7SUFFRCxXQUFXLENBQUMsR0FBc0I7UUFDOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUM7SUFDM0IsQ0FBQztJQUVPLG1CQUFtQixDQUFDLFFBQWdCO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNqSCxDQUFDO0lBRU8sc0JBQXNCLENBQUMsUUFBZ0I7UUFDM0MsT0FBTyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEtBQUssS0FBSyxJQUFJLFFBQVEsS0FBSyxLQUFLLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsY0FBYztRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsY0FBYztRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMxQyxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztZQUM5QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDMUMsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDMUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsaUJBQWlCO1FBQ2IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBVSxlQUFlLENBQUMscUJBQXFCLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVELGNBQWMsQ0FBQyxVQUFrQixFQUFFLE1BQW1CO1FBQ2xELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVPLFlBQVksQ0FBQyxVQUFrQixFQUFFLE1BQW1CO1FBQ3hELElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQztZQUMzQixPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRW5ELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNWLE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxLQUFLLENBQUMsZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGtCQUFrQixDQUFDLFVBQWtCO1FBQ2pDLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQztRQUVsQixNQUFNLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFTLGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxjQUFjLEdBQUcsQ0FBQztRQUNwRyxNQUFNLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFTLGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxVQUFVLEdBQUcsQ0FBQztRQUVoRyxJQUFJLFVBQVUsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDakUsTUFBTSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQzdDLENBQUM7YUFBTSxJQUFJLFVBQVUsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDeEUsTUFBTSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQzdDLENBQUM7YUFBTSxJQUFJLFVBQVUsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3ZFLE1BQU0sR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUMzSSxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVPLHdCQUF3QjtRQUM1QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNwSSxDQUFDO0lBRU8sd0JBQXdCO1FBQzVCLE9BQU8sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQzsrR0F0WFEsd0JBQXdCO21IQUF4Qix3QkFBd0IsY0FGckIsTUFBTTs7NEZBRVQsd0JBQXdCO2tCQUhwQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSwgQXBwQ29uZmlnVmFsdWVzIH0gZnJvbSAnLi4vLi4vYXBwLWNvbmZpZy9hcHAtY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXV0aGVudGljYXRpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL2F1dGhlbnRpY2F0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb29raWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3NlcnZpY2VzL2Nvb2tpZS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRlbnRBdXRoIH0gZnJvbSAnLi9jb250ZW50LWF1dGgnO1xuaW1wb3J0IHsgUHJvY2Vzc0F1dGggfSBmcm9tICcuL3Byb2Nlc3MtYXV0aCc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSZWRpcmVjdGlvbk1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL3JlZGlyZWN0aW9uLm1vZGVsJztcbmltcG9ydCB7IEJhc2VBdXRoZW50aWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9iYXNlLWF1dGhlbnRpY2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbmNvbnN0IFJFTUVNQkVSX01FX0NPT0tJRV9LRVkgPSAnQUxGUkVTQ09fUkVNRU1CRVJfTUUnO1xuY29uc3QgUkVNRU1CRVJfTUVfVU5USUwgPSAxMDAwICogNjAgKiA2MCAqIDI0ICogMzA7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQmFzaWNBbGZyZXNjb0F1dGhTZXJ2aWNlIGV4dGVuZHMgQmFzZUF1dGhlbnRpY2F0aW9uU2VydmljZSB7XG4gICAgcHJvdGVjdGVkIHJlZGlyZWN0VXJsOiBSZWRpcmVjdGlvbk1vZGVsID0gbnVsbDtcblxuICAgIGF1dGhlbnRpY2F0aW9uczogQXV0aGVudGljYXRpb24gPSB7XG4gICAgICAgIGJhc2ljQXV0aDoge1xuICAgICAgICAgICAgdGlja2V0OiAnJ1xuICAgICAgICB9LFxuICAgICAgICB0eXBlOiAnYmFzaWMnXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKGFwcENvbmZpZzogQXBwQ29uZmlnU2VydmljZSwgY29va2llOiBDb29raWVTZXJ2aWNlLCBwcml2YXRlIGNvbnRlbnRBdXRoOiBDb250ZW50QXV0aCwgcHJpdmF0ZSBwcm9jZXNzQXV0aDogUHJvY2Vzc0F1dGgpIHtcbiAgICAgICAgc3VwZXIoYXBwQ29uZmlnLCBjb29raWUpO1xuXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnLm9uTG9hZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmlzT2F1dGgoKSAmJiB0aGlzLmlzTG9nZ2VkSW4oKSkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVxdWlyZUFsZlRpY2tldCgpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25Mb2dpbi5uZXh0KCdsb2dnZWQtaW4nKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udGVudEF1dGguaW52YWxpZGF0ZVNlc3Npb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25Mb2dvdXQubmV4dCgnbG9nb3V0Jyk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmNvbnRlbnRBdXRoLm9uTG9nb3V0LnBpcGUoXG4gICAgICAgICAgICBtYXAoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkxvZ291dC5uZXh0KGV2ZW50KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuY29udGVudEF1dGgub25Mb2dpbi5waXBlKFxuICAgICAgICAgICAgbWFwKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub25Mb2dpbi5uZXh0KGV2ZW50KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuY29udGVudEF1dGgub25FcnJvci5waXBlKFxuICAgICAgICAgICAgbWFwKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub25FcnJvci5uZXh0KGV2ZW50KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMucHJvY2Vzc0F1dGgub25Mb2dvdXQucGlwZShcbiAgICAgICAgICAgIG1hcCgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uTG9nb3V0Lm5leHQoZXZlbnQpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5wcm9jZXNzQXV0aC5vbkxvZ2luLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkxvZ2luLm5leHQoZXZlbnQpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5wcm9jZXNzQXV0aC5vbkVycm9yLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkVycm9yLm5leHQoZXZlbnQpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBMb2dzIHRoZSB1c2VyIGluLlxuICAgICAqXG4gICAgICogQHBhcmFtIHVzZXJuYW1lIFVzZXJuYW1lIGZvciB0aGUgbG9naW5cbiAgICAgKiBAcGFyYW0gcGFzc3dvcmQgUGFzc3dvcmQgZm9yIHRoZSBsb2dpblxuICAgICAqIEBwYXJhbSByZW1lbWJlck1lIFN0b3JlcyB0aGUgdXNlcidzIGxvZ2luIGRldGFpbHMgaWYgdHJ1ZVxuICAgICAqIEByZXR1cm5zIE9iamVjdCB3aXRoIGF1dGggdHlwZSAoXCJFQ01cIiwgXCJCUE1cIiBvciBcIkFMTFwiKSBhbmQgYXV0aCB0aWNrZXRcbiAgICAgKi9cbiAgICBsb2dpbih1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nLCByZW1lbWJlck1lOiBib29sZWFuID0gZmFsc2UpOiBPYnNlcnZhYmxlPHsgdHlwZTogc3RyaW5nOyB0aWNrZXQ6IGFueSB9PiB7XG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMuZXhlY3V0ZUxvZ2luKHVzZXJuYW1lLCBwYXNzd29yZCkpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNhdmVSZW1lbWJlck1lQ29va2llKHJlbWVtYmVyTWUpO1xuICAgICAgICAgICAgICAgIHRoaXMub25Mb2dpbi5uZXh0KHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiB0aGlzLmFwcENvbmZpZy5nZXQoQXBwQ29uZmlnVmFsdWVzLlBST1ZJREVSUyksXG4gICAgICAgICAgICAgICAgICAgIHRpY2tldDogcmVzcG9uc2VcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBsb2dpbiBBbGZyZXNjbyBBUElcbiAgICAgKlxuICAgICAqIEBwYXJhbSB1c2VybmFtZSB1c2VybmFtZSB0byBsb2dpblxuICAgICAqIEBwYXJhbSBwYXNzd29yZCBwYXNzd29yZCB0byBsb2dpblxuICAgICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJldHVybnMge25ldyBhdXRoZW50aWNhdGlvbiB0aWNrZXR9IGlmIHJlc29sdmVkIGFuZCB7ZXJyb3J9IGlmIHJlamVjdGVkLlxuICAgICAqL1xuICAgIGFzeW5jIGV4ZWN1dGVMb2dpbih1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgaWYgKCF0aGlzLmlzQ3JlZGVudGlhbFZhbGlkKHVzZXJuYW1lKSB8fCAhdGhpcy5pc0NyZWRlbnRpYWxWYWxpZChwYXNzd29yZCkpIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoJ21pc3NpbmcgdXNlcm5hbWUgb3IgcGFzc3dvcmQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodXNlcm5hbWUpIHtcbiAgICAgICAgICAgIHVzZXJuYW1lID0gdXNlcm5hbWUudHJpbSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNCUE1Qcm92aWRlcigpKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2Nlc3NBdXRoLmxvZ2luKHVzZXJuYW1lLCBwYXNzd29yZCk7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNFQ01Qcm92aWRlcigpKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmNvbnRlbnRBdXRoLmxvZ2luKHVzZXJuYW1lLCBwYXNzd29yZCk7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNBTExQcm92aWRlcigpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2dpbkJQTUVDTSh1c2VybmFtZSwgcGFzc3dvcmQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcignVW5rbm93biBjb25maWd1cmF0aW9uJykpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2dpbkJQTUVDTSh1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3QgY29udGVudFByb21pc2UgPSB0aGlzLmNvbnRlbnRBdXRoLmxvZ2luKHVzZXJuYW1lLCBwYXNzd29yZCk7XG4gICAgICAgIGNvbnN0IHByb2Nlc3NQcm9taXNlID0gdGhpcy5wcm9jZXNzQXV0aC5sb2dpbih1c2VybmFtZSwgcGFzc3dvcmQpO1xuXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBQcm9taXNlLmFsbChbY29udGVudFByb21pc2UsIHByb2Nlc3NQcm9taXNlXSkudGhlbihcbiAgICAgICAgICAgICAgICAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uTG9naW4ubmV4dCgnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGRhdGEpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udGVudEF1dGguaW52YWxpZGF0ZVNlc3Npb24oKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzQXV0aC5pbnZhbGlkYXRlU2Vzc2lvbigpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkVycm9yLm5leHQoJ3VuYXV0aG9yaXplZCcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25FcnJvci5uZXh0KCdlcnJvcicpO1xuICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSBcInJlbWVtYmVyIG1lXCIgY29va2llIHdhcyBzZXQgb3Igbm90LlxuICAgICAqXG4gICAgICogQHJldHVybnMgVHJ1ZSBpZiBzZXQsIGZhbHNlIG90aGVyd2lzZVxuICAgICAqL1xuICAgIGlzUmVtZW1iZXJNZVNldCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29va2llLmdldEl0ZW0oUkVNRU1CRVJfTUVfQ09PS0lFX0tFWSkgIT09IG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2F2ZXMgdGhlIFwicmVtZW1iZXIgbWVcIiBjb29raWUgYXMgZWl0aGVyIGEgbG9uZy1saWZlIGNvb2tpZSBvciBhIHNlc3Npb24gY29va2llLlxuICAgICAqXG4gICAgICogQHBhcmFtIHJlbWVtYmVyTWUgRW5hYmxlcyBhIGxvbmctbGlmZSBjb29raWVcbiAgICAgKi9cbiAgICBzYXZlUmVtZW1iZXJNZUNvb2tpZShyZW1lbWJlck1lOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGxldCBleHBpcmF0aW9uID0gbnVsbDtcblxuICAgICAgICBpZiAocmVtZW1iZXJNZSkge1xuICAgICAgICAgICAgZXhwaXJhdGlvbiA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgICBjb25zdCB0aW1lID0gZXhwaXJhdGlvbi5nZXRUaW1lKCk7XG4gICAgICAgICAgICBjb25zdCBleHBpcmVUaW1lID0gdGltZSArIFJFTUVNQkVSX01FX1VOVElMO1xuICAgICAgICAgICAgZXhwaXJhdGlvbi5zZXRUaW1lKGV4cGlyZVRpbWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29va2llLnNldEl0ZW0oUkVNRU1CRVJfTUVfQ09PS0lFX0tFWSwgJzEnLCBleHBpcmF0aW9uLCBudWxsKTtcbiAgICB9XG5cbiAgICBpc0NyZWRlbnRpYWxWYWxpZChjcmVkZW50aWFsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGNyZWRlbnRpYWwgIT09IHVuZGVmaW5lZCAmJiBjcmVkZW50aWFsICE9PSBudWxsICYmIGNyZWRlbnRpYWwgIT09ICcnO1xuICAgIH1cblxuICAgIGdldFRva2VuKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLmlzQlBNUHJvdmlkZXIoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0F1dGguZ2V0VG9rZW4oKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzRUNNUHJvdmlkZXIoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29udGVudEF1dGguZ2V0VG9rZW4oKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzQUxMUHJvdmlkZXIoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29udGVudEF1dGguZ2V0VG9rZW4oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICogQHJldHVybnMgY29udGVudCBhdXRoIHRva2VuXG4gICAgICovXG4gICAgZ2V0VGlja2V0RWNtKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRlbnRBdXRoLmdldFRva2VuKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKiBAcmV0dXJucyBwcm9jZXNzIGF1dGggdG9rZW5cbiAgICAgKi9cbiAgICBnZXRUaWNrZXRCcG0oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0F1dGguZ2V0VG9rZW4oKTtcbiAgICB9XG5cbiAgICBpc0JwbUxvZ2dlZEluKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQXV0aC5pc0xvZ2dlZEluKCk7XG4gICAgfVxuXG4gICAgaXNFY21Mb2dnZWRJbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGVudEF1dGguaXNMb2dnZWRJbigpO1xuICAgIH1cblxuICAgIGlzTG9nZ2VkSW4oKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGF1dGhXaXRoQ3JlZGVudGlhbHMgPSB0aGlzLmlzS2VyYmVyb3NFbmFibGVkKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNCUE1Qcm92aWRlcigpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQXV0aC5pc0xvZ2dlZEluKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0VDTVByb3ZpZGVyKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBhdXRoV2l0aENyZWRlbnRpYWxzID8gdHJ1ZSA6IHRoaXMuY29udGVudEF1dGguaXNMb2dnZWRJbigpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNBTExQcm92aWRlcigpKSB7XG4gICAgICAgICAgICByZXR1cm4gYXV0aFdpdGhDcmVkZW50aWFscyA/IHRydWUgOiB0aGlzLmNvbnRlbnRBdXRoLmlzTG9nZ2VkSW4oKSAmJiB0aGlzLnByb2Nlc3NBdXRoLmlzTG9nZ2VkSW4oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGxvZ291dCBBbGZyZXNjbyBBUElcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJldHVybnMge2xvZ291dH0gaWYgcmVzb2x2ZWQgYW5kIHtlcnJvcn0gaWYgcmVqZWN0ZWQuXG4gICAgICovXG4gICAgYXN5bmMgbG9nb3V0KCk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGlmICh0aGlzLmlzQlBNUHJvdmlkZXIoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0F1dGgubG9nb3V0KCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0VDTVByb3ZpZGVyKCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnRlbnRBdXRoLmxvZ291dCgpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNBTExQcm92aWRlcigpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2dvdXRCUE1FQ00oKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2dvdXRCUE1FQ00oKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3QgY29udGVudFByb21pc2UgPSB0aGlzLmNvbnRlbnRBdXRoLmxvZ291dCgpO1xuICAgICAgICBjb25zdCBwcm9jZXNzUHJvbWlzZSA9IHRoaXMucHJvY2Vzc0F1dGgubG9nb3V0KCk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIFByb21pc2UuYWxsKFtjb250ZW50UHJvbWlzZSwgcHJvY2Vzc1Byb21pc2VdKS50aGVuKFxuICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZW50QXV0aC50aWNrZXQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc0F1dGgudGlja2V0ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uTG9nb3V0Lm5leHQoJ2xvZ291dCcpO1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCdsb2dvdXQnKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25FcnJvci5uZXh0KCd1bmF1dGhvcml6ZWQnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRXJyb3IubmV4dCgnZXJyb3InKTtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZXNldCgpOiB2b2lkIHtcbiAgICAgICAgLy8gZG8gbm90aGluZ1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIFVSTCB0byByZWRpcmVjdCB0byBhZnRlciBsb2dpbi5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIFRoZSByZWRpcmVjdCBVUkxcbiAgICAgKi9cbiAgICBnZXRSZWRpcmVjdCgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBwcm92aWRlciA9IHRoaXMuYXBwQ29uZmlnLmdldDxzdHJpbmc+KEFwcENvbmZpZ1ZhbHVlcy5QUk9WSURFUlMpO1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNWYWxpZFJlZGlyZWN0aW9uKHByb3ZpZGVyKSA/IHRoaXMucmVkaXJlY3RVcmwudXJsIDogbnVsbDtcbiAgICB9XG5cbiAgICBzZXRSZWRpcmVjdCh1cmw/OiBSZWRpcmVjdGlvbk1vZGVsKSB7XG4gICAgICAgIHRoaXMucmVkaXJlY3RVcmwgPSB1cmw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYXNWYWxpZFJlZGlyZWN0aW9uKHByb3ZpZGVyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVkaXJlY3RVcmwgJiYgKHRoaXMucmVkaXJlY3RVcmwucHJvdmlkZXIgPT09IHByb3ZpZGVyIHx8IHRoaXMuaGFzU2VsZWN0ZWRQcm92aWRlckFsbChwcm92aWRlcikpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFzU2VsZWN0ZWRQcm92aWRlckFsbChwcm92aWRlcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZGlyZWN0VXJsICYmICh0aGlzLnJlZGlyZWN0VXJsLnByb3ZpZGVyID09PSAnQUxMJyB8fCBwcm92aWRlciA9PT0gJ0FMTCcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBgZ2V0VXNlcm5hbWUoKWAgaW5zdGVhZFxuICAgICAqIEByZXR1cm5zIHRoZSB1c2VybmFtZSBvZiB0aGUgYXV0aGVudGljYXRlZCB1c2VyXG4gICAgICovXG4gICAgZ2V0QnBtVXNlcm5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0F1dGguZ2V0VXNlcm5hbWUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgYGdldFVzZXJuYW1lKClgIGluc3RlYWRcbiAgICAgKiBAcmV0dXJucyB0aGUgdXNlcm5hbWUgb2YgdGhlIGF1dGhlbnRpY2F0ZWQgdXNlclxuICAgICAqL1xuICAgIGdldEVjbVVzZXJuYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRlbnRBdXRoLmdldFVzZXJuYW1lKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgdXNlcm5hbWUgb2YgdGhlIGF1dGhlbnRpY2F0ZWQgdXNlci5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHRoZSB1c2VybmFtZSBvZiB0aGUgYXV0aGVudGljYXRlZCB1c2VyXG4gICAgICovXG4gICAgZ2V0VXNlcm5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuaXNCUE1Qcm92aWRlcigpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQXV0aC5nZXRVc2VybmFtZSgpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNFQ01Qcm92aWRlcigpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb250ZW50QXV0aC5nZXRVc2VybmFtZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29udGVudEF1dGguZ2V0VXNlcm5hbWUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERvZXMga2VyYmVyb3MgZW5hYmxlZD9cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIFRydWUgaWYgZW5hYmxlZCwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAgICovXG4gICAgaXNLZXJiZXJvc0VuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwcENvbmZpZy5nZXQ8Ym9vbGVhbj4oQXBwQ29uZmlnVmFsdWVzLkFVVEhfV0lUSF9DUkVERU5USUFMUywgZmFsc2UpO1xuICAgIH1cblxuICAgIGdldEF1dGhIZWFkZXJzKHJlcXVlc3RVcmw6IHN0cmluZywgaGVhZGVyOiBIdHRwSGVhZGVycyk6IEh0dHBIZWFkZXJzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkQmFzaWNBdXRoKHJlcXVlc3RVcmwsIGhlYWRlcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRCYXNpY0F1dGgocmVxdWVzdFVybDogc3RyaW5nLCBoZWFkZXI6IEh0dHBIZWFkZXJzKTogSHR0cEhlYWRlcnMge1xuICAgICAgICBpZiAodGhpcy5pc0tlcmJlcm9zRW5hYmxlZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gaGVhZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGlja2V0ID0gdGhpcy5nZXRUaWNrZXRFY21CYXNlNjQocmVxdWVzdFVybCk7XG5cbiAgICAgICAgaWYgKCF0aWNrZXQpIHtcbiAgICAgICAgICAgIHJldHVybiBoZWFkZXI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaGVhZGVyLnNldCgnQXV0aG9yaXphdGlvbicsIHRpY2tldCk7XG4gICAgfVxuXG4gICAgYXN5bmMgcmVxdWlyZUFsZlRpY2tldCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGVudEF1dGgucmVxdWlyZUFsZlRpY2tldCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIEJQTSB0aWNrZXQgZnJvbSB0aGUgU3RvcmFnZSBpbiBCYXNlIDY0IGZvcm1hdC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0VXJsIHRoZSByZXF1ZXN0IHVybFxuICAgICAqIEByZXR1cm5zIFRoZSB0aWNrZXQgb3IgYG51bGxgIGlmIG5vbmUgd2FzIGZvdW5kXG4gICAgICovXG4gICAgZ2V0VGlja2V0RWNtQmFzZTY0KHJlcXVlc3RVcmw6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBsZXQgdGlja2V0ID0gbnVsbDtcblxuICAgICAgICBjb25zdCBicG1Sb290ID0gYC8ke3RoaXMuYXBwQ29uZmlnLmdldDxzdHJpbmc+KEFwcENvbmZpZ1ZhbHVlcy5DT05URVhUUk9PVEJQTSkgfHwgJ2FjdGl2aXRpLWFwcCd9L2A7XG4gICAgICAgIGNvbnN0IGVjbVJvb3QgPSBgLyR7dGhpcy5hcHBDb25maWcuZ2V0PHN0cmluZz4oQXBwQ29uZmlnVmFsdWVzLkNPTlRFWFRST09URUNNKSB8fCAnYWxmcmVzY28nfS9gO1xuXG4gICAgICAgIGlmIChyZXF1ZXN0VXJsPy5pbmNsdWRlcyhlY21Sb290KSAmJiAhcmVxdWVzdFVybC5pbmNsdWRlcyhicG1Sb290KSkge1xuICAgICAgICAgICAgdGlja2V0ID0gdGhpcy5nZXRDb250ZW50U2VydmljZXNUaWNrZXQoKTtcbiAgICAgICAgfSBlbHNlIGlmIChyZXF1ZXN0VXJsPy5pbmNsdWRlcyhicG1Sb290KSAmJiAhcmVxdWVzdFVybC5pbmNsdWRlcyhlY21Sb290KSkge1xuICAgICAgICAgICAgdGlja2V0ID0gdGhpcy5nZXRQcm9jZXNzU2VydmljZXNUaWNrZXQoKTtcbiAgICAgICAgfSBlbHNlIGlmIChyZXF1ZXN0VXJsPy5pbmNsdWRlcyhlY21Sb290KSAmJiByZXF1ZXN0VXJsLmluY2x1ZGVzKGJwbVJvb3QpKSB7XG4gICAgICAgICAgICB0aWNrZXQgPSByZXF1ZXN0VXJsLmluZGV4T2YoZWNtUm9vdCkgPCByZXF1ZXN0VXJsLmluZGV4T2YoYnBtUm9vdCkgPyB0aGlzLmdldENvbnRlbnRTZXJ2aWNlc1RpY2tldCgpIDogdGhpcy5nZXRQcm9jZXNzU2VydmljZXNUaWNrZXQoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGlja2V0O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UHJvY2Vzc1NlcnZpY2VzVGlja2V0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NBdXRoLmdldFRva2VuKCk/LnN0YXJ0c1dpdGgoJ0Jhc2ljICcpID8gdGhpcy5wcm9jZXNzQXV0aC5nZXRUb2tlbigpIDogJ0Jhc2ljICcgKyB0aGlzLnByb2Nlc3NBdXRoLmdldFRva2VuKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb250ZW50U2VydmljZXNUaWNrZXQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICdCYXNpYyAnICsgYnRvYSh0aGlzLmNvbnRlbnRBdXRoLmdldFRva2VuKCkpO1xuICAgIH1cbn1cbiJdfQ==
@@ -23,9 +23,9 @@ export const AuthGuardBpm = async (_, state) => {
23
23
  if (authenticationService.isLoggedIn() && authenticationService.isOauth() && authGuardBaseService.isLoginFragmentPresent()) {
24
24
  return authGuardBaseService.redirectSSOSuccessURL();
25
25
  }
26
- if (authenticationService.isBpmLoggedIn() || authGuardBaseService.withCredentials) {
26
+ if (authenticationService.isLoggedIn() || authGuardBaseService.withCredentials) {
27
27
  return true;
28
28
  }
29
29
  return authGuardBaseService.redirectToUrl(state.url);
30
30
  };
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1ndWFyZC1icG0uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvYXV0aC9ndWFyZC9hdXRoLWd1YXJkLWJwbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFeEQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFrQixLQUFLLEVBQUUsQ0FBeUIsRUFBRSxLQUEwQixFQUFvQixFQUFFO0lBQ3pILE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDdEQsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUU1RCxJQUFJLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxJQUFJLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxJQUFJLG9CQUFvQixDQUFDLHNCQUFzQixFQUFFLEVBQUUsQ0FBQztRQUN6SCxPQUFPLG9CQUFvQixDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQUkscUJBQXFCLENBQUMsYUFBYSxFQUFFLElBQUksb0JBQW9CLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDaEYsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELE9BQU8sb0JBQW9CLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN6RCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGVGbiwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hdXRoZW50aWNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhHdWFyZFNlcnZpY2UgfSBmcm9tICcuL2F1dGgtZ3VhcmQuc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBBdXRoR3VhcmRCcG06IENhbkFjdGl2YXRlRm4gPSBhc3luYyAoXzogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICBjb25zdCBhdXRoR3VhcmRCYXNlU2VydmljZSA9IGluamVjdChBdXRoR3VhcmRTZXJ2aWNlKTtcbiAgICBjb25zdCBhdXRoZW50aWNhdGlvblNlcnZpY2UgPSBpbmplY3QoQXV0aGVudGljYXRpb25TZXJ2aWNlKTtcblxuICAgIGlmIChhdXRoZW50aWNhdGlvblNlcnZpY2UuaXNMb2dnZWRJbigpICYmIGF1dGhlbnRpY2F0aW9uU2VydmljZS5pc09hdXRoKCkgJiYgYXV0aEd1YXJkQmFzZVNlcnZpY2UuaXNMb2dpbkZyYWdtZW50UHJlc2VudCgpKSB7XG4gICAgICAgIHJldHVybiBhdXRoR3VhcmRCYXNlU2VydmljZS5yZWRpcmVjdFNTT1N1Y2Nlc3NVUkwoKTtcbiAgICB9XG5cbiAgICBpZiAoYXV0aGVudGljYXRpb25TZXJ2aWNlLmlzQnBtTG9nZ2VkSW4oKSB8fCBhdXRoR3VhcmRCYXNlU2VydmljZS53aXRoQ3JlZGVudGlhbHMpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGF1dGhHdWFyZEJhc2VTZXJ2aWNlLnJlZGlyZWN0VG9Vcmwoc3RhdGUudXJsKTtcbn07XG4iXX0=
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1ndWFyZC1icG0uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvYXV0aC9ndWFyZC9hdXRoLWd1YXJkLWJwbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFeEQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFrQixLQUFLLEVBQUUsQ0FBeUIsRUFBRSxLQUEwQixFQUFvQixFQUFFO0lBQ3pILE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDdEQsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUU1RCxJQUFJLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxJQUFJLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxJQUFJLG9CQUFvQixDQUFDLHNCQUFzQixFQUFFLEVBQUUsQ0FBQztRQUN6SCxPQUFPLG9CQUFvQixDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQUkscUJBQXFCLENBQUMsVUFBVSxFQUFFLElBQUksb0JBQW9CLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDN0UsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELE9BQU8sb0JBQW9CLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN6RCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGVGbiwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hdXRoZW50aWNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhHdWFyZFNlcnZpY2UgfSBmcm9tICcuL2F1dGgtZ3VhcmQuc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBBdXRoR3VhcmRCcG06IENhbkFjdGl2YXRlRm4gPSBhc3luYyAoXzogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICBjb25zdCBhdXRoR3VhcmRCYXNlU2VydmljZSA9IGluamVjdChBdXRoR3VhcmRTZXJ2aWNlKTtcbiAgICBjb25zdCBhdXRoZW50aWNhdGlvblNlcnZpY2UgPSBpbmplY3QoQXV0aGVudGljYXRpb25TZXJ2aWNlKTtcblxuICAgIGlmIChhdXRoZW50aWNhdGlvblNlcnZpY2UuaXNMb2dnZWRJbigpICYmIGF1dGhlbnRpY2F0aW9uU2VydmljZS5pc09hdXRoKCkgJiYgYXV0aEd1YXJkQmFzZVNlcnZpY2UuaXNMb2dpbkZyYWdtZW50UHJlc2VudCgpKSB7XG4gICAgICAgIHJldHVybiBhdXRoR3VhcmRCYXNlU2VydmljZS5yZWRpcmVjdFNTT1N1Y2Nlc3NVUkwoKTtcbiAgICB9XG5cbiAgICBpZiAoYXV0aGVudGljYXRpb25TZXJ2aWNlLmlzTG9nZ2VkSW4oKSB8fCBhdXRoR3VhcmRCYXNlU2VydmljZS53aXRoQ3JlZGVudGlhbHMpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGF1dGhHdWFyZEJhc2VTZXJ2aWNlLnJlZGlyZWN0VG9Vcmwoc3RhdGUudXJsKTtcbn07XG4iXX0=
@@ -15,4 +15,4 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  export {};
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24tc2VydmljZS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL2F1dGgvaW50ZXJmYWNlcy9hdXRoZW50aWNhdGlvbi1zZXJ2aWNlLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUciLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IGVlIGZyb20gJ2V2ZW50LWVtaXR0ZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhlbnRpY2F0aW9uU2VydmljZUludGVyZmFjZSB7XG5cbiAgICBvbkVycm9yOiBhbnk7XG4gICAgb25Mb2dpbjogYW55O1xuICAgIG9uTG9nb3V0OiBhbnk7XG5cbiAgICBvbjogZWUuRW1pdHRlck1ldGhvZDtcbiAgICBvZmY6IGVlLkVtaXR0ZXJNZXRob2Q7XG4gICAgb25jZTogZWUuRW1pdHRlck1ldGhvZDtcbiAgICBlbWl0OiAodHlwZTogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSkgPT4gdm9pZDtcblxuICAgIGdldFRva2VuKCk6IHN0cmluZztcblxuICAgIGlzTG9nZ2VkSW4oKTogYm9vbGVhbjtcblxuICAgIGlzT2F1dGgoKTogYm9vbGVhbjtcblxuICAgIGxvZ291dCgpOiBhbnk7XG5cbiAgICBpc0VjbUxvZ2dlZEluKCk6IGJvb2xlYW47XG5cbiAgICBpc0JwbUxvZ2dlZEluKCk6IGJvb2xlYW47XG5cbiAgICBpc0VDTVByb3ZpZGVyKCk6IGJvb2xlYW47XG5cbiAgICBpc0JQTVByb3ZpZGVyKCk6IGJvb2xlYW47XG5cbiAgICBpc0FMTFByb3ZpZGVyKCk6IGJvb2xlYW47XG5cbiAgICBnZXRFY21Vc2VybmFtZSgpOiBzdHJpbmc7XG5cbiAgICBnZXRCcG1Vc2VybmFtZSgpOiBzdHJpbmc7XG5cbiAgICBnZXRBdXRoSGVhZGVycyhyZXF1ZXN0VXJsOiBzdHJpbmcsIGhlYWRlcjogSHR0cEhlYWRlcnMpOiBIdHRwSGVhZGVycztcblxuICAgIGFkZFRva2VuVG9IZWFkZXIocmVxdWVzdFVybDogc3RyaW5nLCBoZWFkZXJzQXJnPzogSHR0cEhlYWRlcnMpOiBPYnNlcnZhYmxlPEh0dHBIZWFkZXJzPjtcblxuICAgIHJlc2V0KCk6IHZvaWQ7XG59XG4iXX0=
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24tc2VydmljZS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL2F1dGgvaW50ZXJmYWNlcy9hdXRoZW50aWNhdGlvbi1zZXJ2aWNlLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUciLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IGVlIGZyb20gJ2V2ZW50LWVtaXR0ZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhlbnRpY2F0aW9uU2VydmljZUludGVyZmFjZSB7XG4gICAgb25FcnJvcjogYW55O1xuICAgIG9uTG9naW46IGFueTtcbiAgICBvbkxvZ291dDogYW55O1xuXG4gICAgb246IGVlLkVtaXR0ZXJNZXRob2Q7XG4gICAgb2ZmOiBlZS5FbWl0dGVyTWV0aG9kO1xuICAgIG9uY2U6IGVlLkVtaXR0ZXJNZXRob2Q7XG4gICAgZW1pdDogKHR5cGU6IHN0cmluZywgLi4uYXJnczogYW55W10pID0+IHZvaWQ7XG5cbiAgICBnZXRUb2tlbigpOiBzdHJpbmc7XG4gICAgaXNMb2dnZWRJbigpOiBib29sZWFuO1xuICAgIGlzT2F1dGgoKTogYm9vbGVhbjtcbiAgICBsb2dvdXQoKTogYW55O1xuXG4gICAgaXNFQ01Qcm92aWRlcigpOiBib29sZWFuO1xuICAgIGlzQlBNUHJvdmlkZXIoKTogYm9vbGVhbjtcbiAgICBpc0FMTFByb3ZpZGVyKCk6IGJvb2xlYW47XG4gICAgZ2V0VXNlcm5hbWUoKTogc3RyaW5nO1xuXG4gICAgZ2V0QXV0aEhlYWRlcnMocmVxdWVzdFVybDogc3RyaW5nLCBoZWFkZXI6IEh0dHBIZWFkZXJzKTogSHR0cEhlYWRlcnM7XG4gICAgYWRkVG9rZW5Ub0hlYWRlcihyZXF1ZXN0VXJsOiBzdHJpbmcsIGhlYWRlcnNBcmc/OiBIdHRwSGVhZGVycyk6IE9ic2VydmFibGU8SHR0cEhlYWRlcnM+O1xuICAgIHJlc2V0KCk6IHZvaWQ7XG5cbiAgICAvKiogQGRlcHJlY2F0ZWQgdXNlIGBpc0xvZ2dlZEluYCBpbnN0ZWFkLCB1c2UgYGlzRUNNUHJvdmlkZXJgIGlmIHlvdSBuZWVkIHRvIGtub3cgdGhlIGF1dGggdHlwZSAqL1xuICAgIGlzRWNtTG9nZ2VkSW4oKTogYm9vbGVhbjtcbiAgICAvKiogQGRlcHJlY2F0ZWQgdXNlIGBpc0xvZ2dlZEluYCBpbnN0ZWFkLCB1c2UgYGlzQlBNUHJvdmlkZXJgIGlmIHlvdSBuZWVkIHRvIGtub3cgdGhlIGF1dGggdHlwZSAqL1xuICAgIGlzQnBtTG9nZ2VkSW4oKTogYm9vbGVhbjtcblxuICAgIC8qKiBAZGVwcmVjYXRlZCB1c2UgYGdldFVzZXJuYW1lYCBpbnN0ZWFkICovXG4gICAgZ2V0RWNtVXNlcm5hbWUoKTogc3RyaW5nO1xuICAgIC8qKiBAZGVwcmVjYXRlZCB1c2UgYGdldFVzZXJuYW1lYCBpbnN0ZWFkICovXG4gICAgZ2V0QnBtVXNlcm5hbWUoKTogc3RyaW5nO1xufVxuIl19
@@ -49,12 +49,20 @@ export class OidcAuthenticationService extends BaseAuthenticationService {
49
49
  */
50
50
  this.shouldPerformSsoLogin$ = combineLatest([this.auth.authenticated$, this.auth.isDiscoveryDocumentLoaded$]).pipe(map(([authenticated, isDiscoveryDocumentLoaded]) => !authenticated && isDiscoveryDocumentLoaded));
51
51
  }
52
+ /**
53
+ * @deprecated use `isLoggedIn` instead
54
+ * @returns true if the ECM provider is logged in
55
+ */
52
56
  isEcmLoggedIn() {
53
57
  if (this.isECMProvider() || this.isALLProvider()) {
54
58
  return this.isLoggedIn();
55
59
  }
56
60
  return false;
57
61
  }
62
+ /**
63
+ * @deprecated use `isLoggedIn` instead
64
+ * @returns true if the BPM provider is logged in
65
+ */
58
66
  isBpmLoggedIn() {
59
67
  if (this.isBPMProvider() || this.isALLProvider()) {
60
68
  return this.isLoggedIn();
@@ -70,14 +78,6 @@ export class OidcAuthenticationService extends BaseAuthenticationService {
70
78
  hasValidIdToken() {
71
79
  return this.oauthService.hasValidIdToken();
72
80
  }
73
- isImplicitFlow() {
74
- const oauth2 = Object.assign({}, this.appConfig.get(AppConfigValues.OAUTHCONFIG, null));
75
- return !!oauth2?.implicitFlow;
76
- }
77
- isAuthCodeFlow() {
78
- const oauth2 = Object.assign({}, this.appConfig.get(AppConfigValues.OAUTHCONFIG, null));
79
- return !!oauth2?.codeFlow;
80
- }
81
81
  login(username, password) {
82
82
  return this.auth.baseAuthLogin(username, password).pipe(map((response) => {
83
83
  this.onLogin.next(response);
@@ -106,18 +106,23 @@ export class OidcAuthenticationService extends BaseAuthenticationService {
106
106
  }
107
107
  });
108
108
  }
109
+ /**
110
+ * Gets the username of the authenticated user.
111
+ *
112
+ * @returns the logged username
113
+ */
109
114
  getUsername() {
110
115
  return this.jwtHelperService.getValueFromLocalToken(JwtHelperService.USER_PREFERRED_USERNAME);
111
116
  }
112
117
  /**
113
- * @deprecated
118
+ * @deprecated use `getUsername` instead
114
119
  * @returns the logged username
115
120
  */
116
121
  getEcmUsername() {
117
122
  return this.getUsername();
118
123
  }
119
124
  /**
120
- * @deprecated
125
+ * @deprecated use `getUsername` instead
121
126
  * @returns the logged username
122
127
  */
123
128
  getBpmUsername() {
@@ -126,9 +131,6 @@ export class OidcAuthenticationService extends BaseAuthenticationService {
126
131
  ssoLogin(redirectUrl) {
127
132
  this.auth.login(redirectUrl);
128
133
  }
129
- ssoCodeFlowLogin() {
130
- this.oauthService.initCodeFlow();
131
- }
132
134
  isRememberMeSet() {
133
135
  return true;
134
136
  }
@@ -199,4 +201,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
199
201
  providedIn: 'root'
200
202
  }]
201
203
  }], ctorParameters: () => [{ type: i1.AppConfigService }, { type: i2.CookieService }, { type: i3.JwtHelperService }, { type: i4.OAuthStorage }, { type: i4.OAuthService }, { type: i5.AuthConfigService }, { type: i6.AuthService }] });
202
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2lkYy1hdXRoZW50aWNhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvc3JjL2xpYi9hdXRoL29pZGMvb2lkYy1hdXRoZW50aWNhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRSxPQUFPLEVBQWMsS0FBSyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFeEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7Ozs7OztBQU10QyxNQUFNLE9BQU8seUJBQTBCLFNBQVEseUJBQXlCO0lBQ3BFLFlBQ0ksU0FBMkIsRUFDM0IsTUFBcUIsRUFDYixnQkFBa0MsRUFDbEMsV0FBeUIsRUFDekIsWUFBMEIsRUFDakIsVUFBNkIsRUFDN0IsSUFBaUI7UUFFbEMsS0FBSyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMs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V0FBVyxDQUFDO1lBQ3pDLEtBQUssZUFBZTtnQkFDaEIsT0FBTyxNQUFNLENBQUM7WUFDbEI7Z0JBQ0ksT0FBTyxTQUFTLENBQUM7UUFDekIsQ0FBQztJQUNMLENBQUM7K0dBbk1RLHlCQUF5QjttSEFBekIseUJBQXlCLGNBRnRCLE1BQU07OzRGQUVULHlCQUF5QjtrQkFIckMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9BdXRoU2VydmljZSwgT0F1dGhTdG9yYWdlIH0gZnJvbSAnYW5ndWxhci1vYXV0aDItb2lkYyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBkZWZlciwgRU1QVFksIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UsIEFwcENvbmZpZ1ZhbHVlcyB9IGZyb20gJy4uLy4uL2FwcC1jb25maWcvYXBwLWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IE9hdXRoQ29uZmlnTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvb2F1dGgtY29uZmlnLm1vZGVsJztcbmltcG9ydCB7IEJhc2VBdXRoZW50aWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9iYXNlLWF1dGhlbnRpY2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9zZXJ2aWNlcy9jb29raWUuc2VydmljZSc7XG5pbXBvcnQgeyBKd3RIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvand0LWhlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWluaW1hdGNoIH0gZnJvbSAnbWluaW1hdGNoJztcbmltcG9ydCB7IEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE9pZGNBdXRoZW50aWNhdGlvblNlcnZpY2UgZXh0ZW5kcyBCYXNlQXV0aGVudGljYXRpb25TZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgYXBwQ29uZmlnOiBBcHBDb25maWdTZXJ2aWNlLFxuICAgICAgICBjb29raWU6IENvb2tpZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgand0SGVscGVyU2VydmljZTogSnd0SGVscGVyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBhdXRoU3RvcmFnZTogT0F1dGhTdG9yYWdlLFxuICAgICAgICBwcml2YXRlIG9hdXRoU2VydmljZTogT0F1dGhTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGF1dGhDb25maWc6IEF1dGhDb25maWdTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGF1dGg6IEF1dGhTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGFwcENvbmZpZywgY29va2llKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPYnNlcnZhYmxlIHRoYXQgZGV0ZXJtaW5lcyB3aGV0aGVyIGFuIFNTTyBsb2dpbiBzaG91bGQgYmUgcGVyZm9ybWVkLlxuICAgICAqXG4gICAgICogVGhpcyBvYnNlcnZhYmxlIGNvbWJpbmVzIHRoZSBhdXRoZW50aWNhdGlvbiBzdGF0dXMgYW5kIHRoZSBkaXNjb3ZlcnkgZG9jdW1lbnQgbG9hZCBzdGF0dXNcbiAgICAgKiB0byBkZWNpZGUgaWYgYW4gU1NPIGxvZ2luIGlzIG5lY2Vzc2FyeS4gSXQgZW1pdHMgYHRydWVgIGlmIHRoZSB1c2VyIGlzIG5vdCBhdXRoZW50aWNhdGVkXG4gICAgICogYW5kIHRoZSBkaXNjb3ZlcnkgZG9jdW1lbnQgaXMgbG9hZGVkLCBvdGhlcndpc2UgaXQgZW1pdHMgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBzaG91bGRQZXJmb3JtU3NvTG9naW4kOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gY29tYmluZUxhdGVzdChbdGhpcy5hdXRoLmF1dGhlbnRpY2F0ZWQkLCB0aGlzLmF1dGguaXNEaXNjb3ZlcnlEb2N1bWVudExvYWRlZCRdKS5waXBlKFxuICAgICAgICBtYXAoKFthdXRoZW50aWNhdGVkLCBpc0Rpc2NvdmVyeURvY3VtZW50TG9hZGVkXSkgPT4gIWF1dGhlbnRpY2F0ZWQgJiYgaXNEaXNjb3ZlcnlEb2N1bWVudExvYWRlZClcbiAgICApO1xuXG4gICAgaXNFY21Mb2dnZWRJbigpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuaXNFQ01Qcm92aWRlcigpIHx8IHRoaXMuaXNBTExQcm92aWRlcigpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pc0xvZ2dlZEluKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlzQnBtTG9nZ2VkSW4oKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLmlzQlBNUHJvdmlkZXIoKSB8fCB0aGlzLmlzQUxMUHJvdmlkZXIoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNMb2dnZWRJbigpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpc0xvZ2dlZEluKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vYXV0aFNlcnZpY2UuaGFzVmFsaWRBY2Nlc3NUb2tlbigpICYmIHRoaXMub2F1dGhTZXJ2aWNlLmhhc1ZhbGlkSWRUb2tlbigpO1xuICAgIH1cblxuICAgIGhhc1ZhbGlkQWNjZXNzVG9rZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm9hdXRoU2VydmljZS5oYXNWYWxpZEFjY2Vzc1Rva2VuKCk7XG4gICAgfVxuXG4gICAgaGFzVmFsaWRJZFRva2VuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vYXV0aFNlcnZpY2UuaGFzVmFsaWRJZFRva2VuKCk7XG4gICAgfVxuXG4gICAgaXNJbXBsaWNpdEZsb3coKSB7XG4gICAgICAgIGNvbnN0IG9hdXRoMjogT2F1dGhDb25maWdNb2RlbCA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuYXBwQ29uZmlnLmdldDxPYXV0aENvbmZpZ01vZGVsPihBcHBDb25maWdWYWx1ZXMuT0FVVEhDT05GSUcsIG51bGwpKTtcbiAgICAgICAgcmV0dXJuICEhb2F1dGgyPy5pbXBsaWNpdEZsb3c7XG4gICAgfVxuXG4gICAgaXNBdXRoQ29kZUZsb3coKSB7XG4gICAgICAgIGNvbnN0IG9hdXRoMjogT2F1dGhDb25maWdNb2RlbCA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuYXBwQ29uZmlnLmdldDxPYXV0aENvbmZpZ01vZGVsPihBcHBDb25maWdWYWx1ZXMuT0FVVEhDT05GSUcsIG51bGwpKTtcbiAgICAgICAgcmV0dXJuICEhb2F1dGgyPy5jb2RlRmxvdztcbiAgICB9XG5cbiAgICBsb2dpbih1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx7IHR5cGU6IHN0cmluZzsgdGlja2V0OiBhbnkgfT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hdXRoLmJhc2VBdXRoTG9naW4odXNlcm5hbWUsIHBhc3N3b3JkKS5waXBlKFxuICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub25Mb2dpbi5uZXh0KHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiB0aGlzLmFwcENvbmZpZy5nZXQoQXBwQ29uZmlnVmFsdWVzLlBST1ZJREVSUyksXG4gICAgICAgICAgICAgICAgICAgIHRpY2tldDogcmVzcG9uc2VcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBsb2dpbldpdGhQYXNzd29yZCh1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx7IHR5cGU6IHN0cmluZzsgdGlja2V0OiBhbnkgfT4ge1xuICAgICAgICByZXR1cm4gZGVmZXIoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmF1dGhDb25maWcubG9hZENvbmZpZygpO1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMub2F1dGhTZXJ2aWNlLmxvYWREaXNjb3ZlcnlEb2N1bWVudCgpO1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMub2F1dGhTZXJ2aWNlLmZldGNoVG9rZW5Vc2luZ1Bhc3N3b3JkRmxvd0FuZExvYWRVc2VyUHJvZmlsZSh1c2VybmFtZSwgcGFzc3dvcmQpO1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMub2F1dGhTZXJ2aWNlLnJlZnJlc2hUb2tlbigpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gdGhpcy5vYXV0aFNlcnZpY2UuZ2V0QWNjZXNzVG9rZW4oKTtcbiAgICAgICAgICAgICAgICB0aGlzLm9uTG9naW4ubmV4dChhY2Nlc3NUb2tlbik7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiB0aGlzLmFwcENvbmZpZy5nZXQoQXBwQ29uZmlnVmFsdWVzLlBST1ZJREVSUykgYXMgc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICB0aWNrZXQ6IGFjY2Vzc1Rva2VuXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIHRocm93IHRoaXMuaGFuZGxlRXJyb3IoZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0VXNlcm5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmp3dEhlbHBlclNlcnZpY2UuZ2V0VmFsdWVGcm9tTG9jYWxUb2tlbjxzdHJpbmc+KEp3dEhlbHBlclNlcnZpY2UuVVNFUl9QUkVGRVJSRURfVVNFUk5BTUUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICogQHJldHVybnMgdGhlIGxvZ2dlZCB1c2VybmFtZVxuICAgICAqL1xuICAgIGdldEVjbVVzZXJuYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFVzZXJuYW1lKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKiBAcmV0dXJucyB0aGUgbG9nZ2VkIHVzZXJuYW1lXG4gICAgICovXG4gICAgZ2V0QnBtVXNlcm5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VXNlcm5hbWUoKTtcbiAgICB9XG5cbiAgICBzc29Mb2dpbihyZWRpcmVjdFVybD86IHN0cmluZykge1xuICAgICAgICB0aGlzLmF1dGgubG9naW4ocmVkaXJlY3RVcmwpO1xuICAgIH1cblxuICAgIHNzb0NvZGVGbG93TG9naW4oKSB7XG4gICAgICAgIHRoaXMub2F1dGhTZXJ2aWNlLmluaXRDb2RlRmxvdygpO1xuICAgIH1cblxuICAgIGlzUmVtZW1iZXJNZVNldCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgbG9nb3V0KCkge1xuICAgICAgICBjb25zdCBsb2dvdXRPcHRpb25zID0gdGhpcy5nZXRMb2dvdXRPcHRpb25zKCk7XG4gICAgICAgIHRoaXMub2F1dGhTZXJ2aWNlLmxvZ091dChsb2dvdXRPcHRpb25zKTtcbiAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgIH1cblxuICAgIGdldFRva2VuKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dGhTdG9yYWdlLmdldEl0ZW0oSnd0SGVscGVyU2VydmljZS5VU0VSX0FDQ0VTU19UT0tFTik7XG4gICAgfVxuXG4gICAgcmVzZXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuYXV0aENvbmZpZy5sb2FkQXBwQ29uZmlnKCk7XG4gICAgICAgIHRoaXMuYXV0aC51cGRhdGVJRFBDb25maWd1cmF0aW9uKGNvbmZpZyk7XG4gICAgfVxuXG4gICAgaXNQdWJsaWNVcmwoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IG9hdXRoMiA9IHRoaXMuYXBwQ29uZmlnLmdldDxPYXV0aENvbmZpZ01vZGVsPihBcHBDb25maWdWYWx1ZXMuT0FVVEhDT05GSUcsIG51bGwpO1xuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9hdXRoMi5wdWJsaWNVcmxzKSkge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICBvYXV0aDIucHVibGljVXJscy5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICAgICAgb2F1dGgyLnB1YmxpY1VybHMuc29tZSgodXJsUGF0dGVybjogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1pbmltYXRjaCA9IG5ldyBNaW5pbWF0Y2godXJsUGF0dGVybik7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBtaW5pbWF0Y2gubWF0Y2god2luZG93LmxvY2F0aW9uLmhyZWYpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBnZXRBdXRoSGVhZGVycyhfcmVxdWVzdFVybDogc3RyaW5nLCBoZWFkZXI6IEh0dHBIZWFkZXJzKTogSHR0cEhlYWRlcnMge1xuICAgICAgICByZXR1cm4gdGhpcy5hZGRCZWFyZXJUb2tlbihoZWFkZXIpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkQmVhcmVyVG9rZW4oaGVhZGVyOiBIdHRwSGVhZGVycyk6IEh0dHBIZWFkZXJzIHtcbiAgICAgICAgY29uc3QgdG9rZW46IHN0cmluZyA9IHRoaXMuZ2V0VG9rZW4oKTtcblxuICAgICAgICBpZiAoIXRva2VuKSB7XG4gICAgICAgICAgICByZXR1cm4gaGVhZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGhlYWRlci5zZXQoJ0F1dGhvcml6YXRpb24nLCAnYmVhcmVyICcgKyB0b2tlbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRMb2dvdXRPcHRpb25zKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IG9hdXRoMkNvbmZpZyA9IHRoaXMuYXBwQ29uZmlnLmdldDxPYXV0aENvbmZpZ01vZGVsPihBcHBDb25maWdWYWx1ZXMuT0FVVEhDT05GSUcsIG51bGwpO1xuICAgICAgICBjb25zdCBsb2dvdXRQYXJhbXNMaXN0ID0gb2F1dGgyQ29uZmlnPy5sb2dvdXRQYXJhbWV0ZXJzIHx8IFtdO1xuXG4gICAgICAgIHJldHVybiBsb2dvdXRQYXJhbXNMaXN0LnJlZHVjZSgob3B0aW9ucywgcGFyYW0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRMb2dvdXRQYXJhbVZhbHVlKHBhcmFtKTtcbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgb3B0aW9uc1twYXJhbV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBvcHRpb25zO1xuICAgICAgICB9LCB7fSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRMb2dvdXRQYXJhbVZhbHVlKHBhcmFtOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICBzd2l0Y2ggKHBhcmFtKSB7XG4gICAgICAgICAgICBjYXNlICdjbGllbnRfaWQnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm9hdXRoU2VydmljZS5jbGllbnRJZDtcbiAgICAgICAgICAgIGNhc2UgJ3JldHVyblRvJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5vYXV0aFNlcnZpY2UucmVkaXJlY3RVcmk7XG4gICAgICAgICAgICBjYXNlICdyZWRpcmVjdF91cmknOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm9hdXRoU2VydmljZS5yZWRpcmVjdFVyaTtcbiAgICAgICAgICAgIGNhc2UgJ3Jlc3BvbnNlX3R5cGUnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnY29kZSc7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2lkYy1hdXRoZW50aWNhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvc3JjL2xpYi9hdXRoL29pZGMvb2lkYy1hdXRoZW50aWNhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRSxPQUFPLEVBQWMsS0FBSyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFeEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7Ozs7OztBQU10QyxNQUFNLE9BQU8seUJBQTBCLFNBQVEseUJBQXlCO0lBQ3BFLFlBQ0ksU0FBMkIsRUFDM0IsTUFBcUIsRUFDYixnQkFBa0MsRUFDbEMsV0FBeUIsRUFDekIsWUFBMEIsRUFDakIsVUFBNkIsRUFDN0IsSUFBaUI7UUFFbEMsS0FBSyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMs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RUFBRSxnQkFBZ0IsSUFBSSxFQUFFLENBQUM7UUFFOUQsT0FBTyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDOUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlDLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUN0QixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQzNCLENBQUM7WUFDRCxPQUFPLE9BQU8sQ0FBQztRQUNuQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsS0FBYTtRQUNyQyxRQUFRLEtBQUssRUFBRSxDQUFDO1lBQ1osS0FBSyxXQUFXO2dCQUNaLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7WUFDdEMsS0FBSyxVQUFVO2dCQUNYLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUM7WUFDekMsS0FBSyxjQUFjO2dCQUNmLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUM7WUFDekMsS0FBSyxlQUFlO2dCQUNoQixPQUFPLE1BQU0sQ0FBQztZQUNsQjtnQkFDSSxPQUFPLFNBQVMsQ0FBQztRQUN6QixDQUFDO0lBQ0wsQ0FBQzsrR0FsTVEseUJBQXlCO21IQUF6Qix5QkFBeUIsY0FGdEIsTUFBTTs7NEZBRVQseUJBQXlCO2tCQUhyQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT0F1dGhTZXJ2aWNlLCBPQXV0aFN0b3JhZ2UgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGRlZmVyLCBFTVBUWSwgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSwgQXBwQ29uZmlnVmFsdWVzIH0gZnJvbSAnLi4vLi4vYXBwLWNvbmZpZy9hcHAtY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2F1dGhDb25maWdNb2RlbCB9IGZyb20gJy4uL21vZGVscy9vYXV0aC1jb25maWcubW9kZWwnO1xuaW1wb3J0IHsgQmFzZUF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Jhc2UtYXV0aGVudGljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBDb29raWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3NlcnZpY2VzL2Nvb2tpZS5zZXJ2aWNlJztcbmltcG9ydCB7IEp3dEhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9qd3QtaGVscGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXV0aENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL2F1dGgtY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBNaW5pbWF0Y2ggfSBmcm9tICdtaW5pbWF0Y2gnO1xuaW1wb3J0IHsgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgT2lkY0F1dGhlbnRpY2F0aW9uU2VydmljZSBleHRlbmRzIEJhc2VBdXRoZW50aWNhdGlvblNlcnZpY2Uge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBhcHBDb25maWc6IEFwcENvbmZpZ1NlcnZpY2UsXG4gICAgICAgIGNvb2tpZTogQ29va2llU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBqd3RIZWxwZXJTZXJ2aWNlOiBKd3RIZWxwZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGF1dGhTdG9yYWdlOiBPQXV0aFN0b3JhZ2UsXG4gICAgICAgIHByaXZhdGUgb2F1dGhTZXJ2aWNlOiBPQXV0aFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgYXV0aENvbmZpZzogQXV0aENvbmZpZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgYXV0aDogQXV0aFNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoYXBwQ29uZmlnLCBjb29raWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9ic2VydmFibGUgdGhhdCBkZXRlcm1pbmVzIHdoZXRoZXIgYW4gU1NPIGxvZ2luIHNob3VsZCBiZSBwZXJmb3JtZWQuXG4gICAgICpcbiAgICAgKiBUaGlzIG9ic2VydmFibGUgY29tYmluZXMgdGhlIGF1dGhlbnRpY2F0aW9uIHN0YXR1cyBhbmQgdGhlIGRpc2NvdmVyeSBkb2N1bWVudCBsb2FkIHN0YXR1c1xuICAgICAqIHRvIGRlY2lkZSBpZiBhbiBTU08gbG9naW4gaXMgbmVjZXNzYXJ5LiBJdCBlbWl0cyBgdHJ1ZWAgaWYgdGhlIHVzZXIgaXMgbm90IGF1dGhlbnRpY2F0ZWRcbiAgICAgKiBhbmQgdGhlIGRpc2NvdmVyeSBkb2N1bWVudCBpcyBsb2FkZWQsIG90aGVyd2lzZSBpdCBlbWl0cyBgZmFsc2VgLlxuICAgICAqL1xuICAgIHNob3VsZFBlcmZvcm1Tc29Mb2dpbiQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmF1dGguYXV0aGVudGljYXRlZCQsIHRoaXMuYXV0aC5pc0Rpc2NvdmVyeURvY3VtZW50TG9hZGVkJF0pLnBpcGUoXG4gICAgICAgIG1hcCgoW2F1dGhlbnRpY2F0ZWQsIGlzRGlzY292ZXJ5RG9jdW1lbnRMb2FkZWRdKSA9PiAhYXV0aGVudGljYXRlZCAmJiBpc0Rpc2NvdmVyeURvY3VtZW50TG9hZGVkKVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgYGlzTG9nZ2VkSW5gIGluc3RlYWRcbiAgICAgKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBFQ00gcHJvdmlkZXIgaXMgbG9nZ2VkIGluXG4gICAgICovXG4gICAgaXNFY21Mb2dnZWRJbigpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuaXNFQ01Qcm92aWRlcigpIHx8IHRoaXMuaXNBTExQcm92aWRlcigpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pc0xvZ2dlZEluKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBgaXNMb2dnZWRJbmAgaW5zdGVhZFxuICAgICAqIEByZXR1cm5zIHRydWUgaWYgdGhlIEJQTSBwcm92aWRlciBpcyBsb2dnZWQgaW5cbiAgICAgKi9cbiAgICBpc0JwbUxvZ2dlZEluKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5pc0JQTVByb3ZpZGVyKCkgfHwgdGhpcy5pc0FMTFByb3ZpZGVyKCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlzTG9nZ2VkSW4oKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaXNMb2dnZWRJbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub2F1dGhTZXJ2aWNlLmhhc1ZhbGlkQWNjZXNzVG9rZW4oKSAmJiB0aGlzLm9hdXRoU2VydmljZS5oYXNWYWxpZElkVG9rZW4oKTtcbiAgICB9XG5cbiAgICBoYXNWYWxpZEFjY2Vzc1Rva2VuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vYXV0aFNlcnZpY2UuaGFzVmFsaWRBY2Nlc3NUb2tlbigpO1xuICAgIH1cblxuICAgIGhhc1ZhbGlkSWRUb2tlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub2F1dGhTZXJ2aWNlLmhhc1ZhbGlkSWRUb2tlbigpO1xuICAgIH1cblxuICAgIGxvZ2luKHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHsgdHlwZTogc3RyaW5nOyB0aWNrZXQ6IGFueSB9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dGguYmFzZUF1dGhMb2dpbih1c2VybmFtZSwgcGFzc3dvcmQpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkxvZ2luLm5leHQocmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IHRoaXMuYXBwQ29uZmlnLmdldChBcHBDb25maWdWYWx1ZXMuUFJPVklERVJTKSxcbiAgICAgICAgICAgICAgICAgICAgdGlja2V0OiByZXNwb25zZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnIpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGxvZ2luV2l0aFBhc3N3b3JkKHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHsgdHlwZTogc3RyaW5nOyB0aWNrZXQ6IGFueSB9PiB7XG4gICAgICAgIHJldHVybiBkZWZlcihhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuYXV0aENvbmZpZy5sb2FkQ29uZmlnKCk7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5vYXV0aFNlcnZpY2UubG9hZERpc2NvdmVyeURvY3VtZW50KCk7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5vYXV0aFNlcnZpY2UuZmV0Y2hUb2tlblVzaW5nUGFzc3dvcmRGbG93QW5kTG9hZFVzZXJQcm9maWxlKHVzZXJuYW1lLCBwYXNzd29yZCk7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5vYXV0aFNlcnZpY2UucmVmcmVzaFRva2VuKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSB0aGlzLm9hdXRoU2VydmljZS5nZXRBY2Nlc3NUb2tlbigpO1xuICAgICAgICAgICAgICAgIHRoaXMub25Mb2dpbi5uZXh0KGFjY2Vzc1Rva2VuKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IHRoaXMuYXBwQ29uZmlnLmdldChBcHBDb25maWdWYWx1ZXMuUFJPVklERVJTKSBhcyBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgIHRpY2tldDogYWNjZXNzVG9rZW5cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgdGhpcy5oYW5kbGVFcnJvcihlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSB1c2VybmFtZSBvZiB0aGUgYXV0aGVudGljYXRlZCB1c2VyLlxuICAgICAqXG4gICAgICogQHJldHVybnMgdGhlIGxvZ2dlZCB1c2VybmFtZVxuICAgICAqL1xuICAgIGdldFVzZXJuYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5qd3RIZWxwZXJTZXJ2aWNlLmdldFZhbHVlRnJvbUxvY2FsVG9rZW48c3RyaW5nPihKd3RIZWxwZXJTZXJ2aWNlLlVTRVJfUFJFRkVSUkVEX1VTRVJOQU1FKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgYGdldFVzZXJuYW1lYCBpbnN0ZWFkXG4gICAgICogQHJldHVybnMgdGhlIGxvZ2dlZCB1c2VybmFtZVxuICAgICAqL1xuICAgIGdldEVjbVVzZXJuYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFVzZXJuYW1lKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGBnZXRVc2VybmFtZWAgaW5zdGVhZFxuICAgICAqIEByZXR1cm5zIHRoZSBsb2dnZWQgdXNlcm5hbWVcbiAgICAgKi9cbiAgICBnZXRCcG1Vc2VybmFtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRVc2VybmFtZSgpO1xuICAgIH1cblxuICAgIHNzb0xvZ2luKHJlZGlyZWN0VXJsPzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuYXV0aC5sb2dpbihyZWRpcmVjdFVybCk7XG4gICAgfVxuXG4gICAgaXNSZW1lbWJlck1lU2V0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBsb2dvdXQoKSB7XG4gICAgICAgIGNvbnN0IGxvZ291dE9wdGlvbnMgPSB0aGlzLmdldExvZ291dE9wdGlvbnMoKTtcbiAgICAgICAgdGhpcy5vYXV0aFNlcnZpY2UubG9nT3V0KGxvZ291dE9wdGlvbnMpO1xuICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgfVxuXG4gICAgZ2V0VG9rZW4oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0aFN0b3JhZ2UuZ2V0SXRlbShKd3RIZWxwZXJTZXJ2aWNlLlVTRVJfQUNDRVNTX1RPS0VOKTtcbiAgICB9XG5cbiAgICByZXNldCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5hdXRoQ29uZmlnLmxvYWRBcHBDb25maWcoKTtcbiAgICAgICAgdGhpcy5hdXRoLnVwZGF0ZUlEUENvbmZpZ3VyYXRpb24oY29uZmlnKTtcbiAgICB9XG5cbiAgICBpc1B1YmxpY1VybCgpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3Qgb2F1dGgyID0gdGhpcy5hcHBDb25maWcuZ2V0PE9hdXRoQ29uZmlnTW9kZWw+KEFwcENvbmZpZ1ZhbHVlcy5PQVVUSENPTkZJRywgbnVsbCk7XG5cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2F1dGgyLnB1YmxpY1VybHMpKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIG9hdXRoMi5wdWJsaWNVcmxzLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICAgICAgICBvYXV0aDIucHVibGljVXJscy5zb21lKCh1cmxQYXR0ZXJuOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWluaW1hdGNoID0gbmV3IE1pbmltYXRjaCh1cmxQYXR0ZXJuKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1pbmltYXRjaC5tYXRjaCh3aW5kb3cubG9jYXRpb24uaHJlZik7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGdldEF1dGhIZWFkZXJzKF9yZXF1ZXN0VXJsOiBzdHJpbmcsIGhlYWRlcjogSHR0cEhlYWRlcnMpOiBIdHRwSGVhZGVycyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFkZEJlYXJlclRva2VuKGhlYWRlcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRCZWFyZXJUb2tlbihoZWFkZXI6IEh0dHBIZWFkZXJzKTogSHR0cEhlYWRlcnMge1xuICAgICAgICBjb25zdCB0b2tlbjogc3RyaW5nID0gdGhpcy5nZXRUb2tlbigpO1xuXG4gICAgICAgIGlmICghdG9rZW4pIHtcbiAgICAgICAgICAgIHJldHVybiBoZWFkZXI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaGVhZGVyLnNldCgnQXV0aG9yaXphdGlvbicsICdiZWFyZXIgJyArIHRva2VuKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldExvZ291dE9wdGlvbnMoKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3Qgb2F1dGgyQ29uZmlnID0gdGhpcy5hcHBDb25maWcuZ2V0PE9hdXRoQ29uZmlnTW9kZWw+KEFwcENvbmZpZ1ZhbHVlcy5PQVVUSENPTkZJRywgbnVsbCk7XG4gICAgICAgIGNvbnN0IGxvZ291dFBhcmFtc0xpc3QgPSBvYXV0aDJDb25maWc/LmxvZ291dFBhcmFtZXRlcnMgfHwgW107XG5cbiAgICAgICAgcmV0dXJuIGxvZ291dFBhcmFtc0xpc3QucmVkdWNlKChvcHRpb25zLCBwYXJhbSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldExvZ291dFBhcmFtVmFsdWUocGFyYW0pO1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zW3BhcmFtXSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnM7XG4gICAgICAgIH0sIHt9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldExvZ291dFBhcmFtVmFsdWUocGFyYW06IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHN3aXRjaCAocGFyYW0pIHtcbiAgICAgICAgICAgIGNhc2UgJ2NsaWVudF9pZCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMub2F1dGhTZXJ2aWNlLmNsaWVudElkO1xuICAgICAgICAgICAgY2FzZSAncmV0dXJuVG8nOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm9hdXRoU2VydmljZS5yZWRpcmVjdFVyaTtcbiAgICAgICAgICAgIGNhc2UgJ3JlZGlyZWN0X3VyaSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMub2F1dGhTZXJ2aWNlLnJlZGlyZWN0VXJpO1xuICAgICAgICAgICAgY2FzZSAncmVzcG9uc2VfdHlwZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdjb2RlJztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==