@alfresco/aca-shared 5.3.0-12867197852 → 5.3.0-12911331339

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 (48) hide show
  1. package/esm2022/lib/adf-extensions/extensions-data-loader.guard.mjs +1 -1
  2. package/esm2022/lib/components/document-base-page/document-base-page.component.mjs +5 -6
  3. package/esm2022/lib/components/generic-error/generic-error.component.mjs +5 -6
  4. package/esm2022/lib/components/info-drawer/info-drawer.component.mjs +7 -9
  5. package/esm2022/lib/components/locked-by/locked-by.component.mjs +5 -6
  6. package/esm2022/lib/components/open-in-app/open-in-app.component.mjs +7 -8
  7. package/esm2022/lib/components/page-layout/page-layout-content.component.mjs +7 -8
  8. package/esm2022/lib/components/page-layout/page-layout-error.component.mjs +7 -8
  9. package/esm2022/lib/components/page-layout/page-layout-header.component.mjs +7 -8
  10. package/esm2022/lib/components/page-layout/page-layout.component.mjs +7 -8
  11. package/esm2022/lib/components/page-layout/page-layout.module.mjs +6 -7
  12. package/esm2022/lib/components/toolbar/toolbar-action/toolbar-action.component.mjs +7 -8
  13. package/esm2022/lib/components/toolbar/toolbar-button/toolbar-button.component.mjs +6 -7
  14. package/esm2022/lib/components/toolbar/toolbar-menu/toolbar-menu.component.mjs +5 -6
  15. package/esm2022/lib/components/toolbar/toolbar-menu-item/toolbar-menu-item.component.mjs +6 -7
  16. package/esm2022/lib/components/toolbar/toolbar.component.mjs +6 -8
  17. package/esm2022/lib/deprecated/shared-toolbar.module.mjs +6 -7
  18. package/esm2022/lib/deprecated/shared.module.mjs +6 -7
  19. package/esm2022/lib/directives/contextmenu/contextmenu.directive.mjs +6 -7
  20. package/esm2022/lib/directives/pagination.directive.mjs +6 -7
  21. package/esm2022/lib/routing/plugin-enabled.guard.mjs +1 -1
  22. package/esm2022/lib/services/aca-mobile-app-switcher.service.mjs +5 -6
  23. package/esm2022/lib/services/app-hook.service.mjs +5 -6
  24. package/esm2022/lib/services/app-settings.service.mjs +5 -6
  25. package/esm2022/lib/services/app.extension.service.mjs +6 -7
  26. package/esm2022/lib/services/app.service.mjs +9 -12
  27. package/esm2022/lib/services/auto-download.service.mjs +5 -6
  28. package/esm2022/lib/services/content-api.service.mjs +6 -7
  29. package/esm2022/lib/services/navigation-history.service.mjs +6 -7
  30. package/esm2022/lib/services/node-permission.service.mjs +5 -6
  31. package/esm2022/lib/services/router.extension.service.mjs +6 -7
  32. package/esm2022/lib/services/user-profile.service.mjs +5 -6
  33. package/esm2022/lib/testing/lib-testing-module.mjs +10 -12
  34. package/esm2022/lib/utils/node.utils.mjs +1 -1
  35. package/esm2022/rules/app.rules.mjs +1 -1
  36. package/esm2022/store/actions/node.actions.mjs +1 -9
  37. package/esm2022/store/effects/router.effects.mjs +5 -6
  38. package/esm2022/store/effects/snackbar.effects.mjs +5 -6
  39. package/fesm2022/alfresco-aca-shared-rules.mjs.map +1 -1
  40. package/fesm2022/alfresco-aca-shared-store.mjs +7 -15
  41. package/fesm2022/alfresco-aca-shared-store.mjs.map +1 -1
  42. package/fesm2022/alfresco-aca-shared.mjs +123 -127
  43. package/fesm2022/alfresco-aca-shared.mjs.map +1 -1
  44. package/lib/components/info-drawer/info-drawer.component.d.ts +1 -1
  45. package/lib/components/toolbar/toolbar.component.d.ts +1 -1
  46. package/lib/services/app.service.d.ts +3 -4
  47. package/package.json +2 -1
  48. package/store/actions/node.actions.d.ts +0 -6
@@ -38,7 +38,7 @@ import * as i3 from "@alfresco/adf-extensions";
38
38
  import * as i4 from "../services/node-permission.service";
39
39
  import * as i5 from "@angular/material/icon";
40
40
  import * as i6 from "@angular/platform-browser";
41
- class AppExtensionService {
41
+ export class AppExtensionService {
42
42
  auth;
43
43
  store;
44
44
  loader;
@@ -468,14 +468,13 @@ class AppExtensionService {
468
468
  bulkActionExecuted() {
469
469
  this.bulkActionExecuted$.next();
470
470
  }
471
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AppExtensionService, deps: [{ token: i1.AuthenticationService }, { token: i2.Store }, { token: i3.ExtensionLoaderService }, { token: i3.ExtensionService }, { token: i4.NodePermissionService }, { token: i1.AppConfigService }, { token: i5.MatIconRegistry }, { token: i6.DomSanitizer }, { token: i1.LogService }], target: i0.ɵɵFactoryTarget.Injectable });
472
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AppExtensionService, providedIn: 'root' });
471
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AppExtensionService, deps: [{ token: i1.AuthenticationService }, { token: i2.Store }, { token: i3.ExtensionLoaderService }, { token: i3.ExtensionService }, { token: i4.NodePermissionService }, { token: i1.AppConfigService }, { token: i5.MatIconRegistry }, { token: i6.DomSanitizer }, { token: i1.LogService }], target: i0.ɵɵFactoryTarget.Injectable });
472
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AppExtensionService, providedIn: 'root' });
473
473
  }
474
- export { AppExtensionService };
475
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AppExtensionService, decorators: [{
474
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AppExtensionService, decorators: [{
476
475
  type: Injectable,
477
476
  args: [{
478
477
  providedIn: 'root'
479
478
  }]
480
- }], ctorParameters: function () { return [{ type: i1.AuthenticationService }, { type: i2.Store }, { type: i3.ExtensionLoaderService }, { type: i3.ExtensionService }, { type: i4.NodePermissionService }, { type: i1.AppConfigService }, { type: i5.MatIconRegistry }, { type: i6.DomSanitizer }, { type: i1.LogService }]; } });
481
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmV4dGVuc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLXNoYXJlZC9zcmMvbGliL3NlcnZpY2VzL2FwcC5leHRlbnNpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBWSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBRUwsaUJBQWlCLEVBR2pCLHNCQUFzQixFQUV0QixnQkFBZ0IsRUFFaEIsV0FBVyxFQUNYLFlBQVksRUFJWixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBS2hCLFdBQVcsRUFDWixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxxQkFBcUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUk1RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBR3JDLE1BR2EsbUJBQW1CO0lBdURyQjtJQUNHO0lBQ0E7SUFDQTtJQUNIO0lBQ0E7SUFDRztJQUNBO0lBQ0E7SUE5REosV0FBVyxHQUFHLElBQUksZUFBZSxDQUFpQixFQUFFLENBQUMsQ0FBQztJQUM5RCxtQkFBbUIsR0FBRyxJQUFJLE9B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QUM7YUFDZDtTQUNGO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsdUJBQXVCLENBQUMsSUFBZTtRQUNyQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBRS9CLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDNUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3JFLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQ25CLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7U0FDRjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEMsQ0FBQzt1R0FsZ0JVLG1CQUFtQjsyR0FBbkIsbUJBQW1CLGNBRmxCLE1BQU07O1NBRVAsbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgTWF0SWNvblJlZ2lzdHJ5IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEFwcFN0b3JlLCBnZXRSdWxlQ29udGV4dCB9IGZyb20gJ0BhbGZyZXNjby9hY2Etc2hhcmVkL3N0b3JlJztcbmltcG9ydCB7XG4gIENvbnRlbnRBY3Rpb25SZWYsXG4gIENvbnRlbnRBY3Rpb25UeXBlLFxuICBEb2N1bWVudExpc3RQcmVzZXRSZWYsXG4gIEV4dGVuc2lvbkNvbmZpZyxcbiAgRXh0ZW5zaW9uTG9hZGVyU2VydmljZSxcbiAgRXh0ZW5zaW9uUmVmLFxuICBFeHRlbnNpb25TZXJ2aWNlLFxuICBJY29uUmVmLFxuICBtZXJnZUFycmF5cyxcbiAgbWVyZ2VPYmplY3RzLFxuICBOYXZCYXJHcm91cFJlZixcbiAgTmF2aWdhdGlvblN0YXRlLFxuICBQcm9maWxlU3RhdGUsXG4gIHJlZHVjZUVtcHR5TWVudXMsXG4gIHJlZHVjZVNlcGFyYXRvcnMsXG4gIFJ1bGVDb250ZXh0LFxuICBSdWxlRXZhbHVhdG9yLFxuICBTZWxlY3Rpb25TdGF0ZSxcbiAgU2lkZWJhclRhYlJlZixcbiAgc29ydEJ5T3JkZXJcbn0gZnJvbSAnQGFsZnJlc2NvL2FkZi1leHRlbnNpb25zJztcbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UsIEF1dGhlbnRpY2F0aW9uU2VydmljZSwgTG9nU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5vZGVFbnRyeSwgUmVwb3NpdG9yeUluZm8gfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IFZpZXdlclJ1bGVzIH0gZnJvbSAnLi4vbW9kZWxzL3ZpZXdlci5ydWxlcyc7XG5pbXBvcnQgeyBCYWRnZSB9IGZyb20gJy4uL21vZGVscy90eXBlcyc7XG5pbXBvcnQgeyBOb2RlUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9ub2RlLXBlcm1pc3Npb24uc2VydmljZSc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTZWFyY2hDYXRlZ29yeSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29udGVudC1zZXJ2aWNlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFwcEV4dGVuc2lvblNlcnZpY2UgaW1wbGVtZW50cyBSdWxlQ29udGV4dCB7XG4gIHByaXZhdGUgX3JlZmVyZW5jZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEV4dGVuc2lvblJlZltdPihbXSk7XG4gIGJ1bGtBY3Rpb25FeGVjdXRlZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIG5hdmJhcjogQXJyYXk8TmF2QmFyR3JvdXBSZWY+ID0gW107XG4gIHNpZGViYXJUYWJzOiBBcnJheTxTaWRlYmFyVGFiUmVmPiA9IFtdO1xuICBjb250ZW50TWV0YWRhdGE6IGFueTtcbiAgc2VhcmNoOiBhbnk7XG4gIHZpZXdlclJ1bGVzOiBWaWV3ZXJSdWxlcyA9IHt9O1xuXG4gIHByaXZhdGUgX2hlYWRlckFjdGlvbnMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFycmF5PENvbnRlbnRBY3Rpb25SZWY+PihbXSk7XG4gIHByaXZhdGUgX3Rvb2xiYXJBY3Rpb25zID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTxDb250ZW50QWN0aW9uUmVmPj4oW10pO1xuICBwcml2YXRlIF92aWV3ZXJUb29sYmFyQWN0aW9ucyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJyYXk8Q29udGVudEFjdGlvblJlZj4+KFtdKTtcbiAgcHJpdmF0ZSBfc2hhcmVkTGlua1ZpZXdlclRvb2xiYXJBY3Rpb25zID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTxDb250ZW50QWN0aW9uUmVmPj4oW10pO1xuICBwcml2YXRlIF9jb250ZXh0TWVudUFjdGlvbnMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFycmF5PENvbnRlbnRBY3Rpb25SZWY+PihbXSk7XG4gIHByaXZhdGUgX29wZW5XaXRoQWN0aW9ucyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJyYXk8Q29udGVudEFjdGlvblJlZj4+KFtdKTtcbiAgcHJpdmF0ZSBfY3JlYXRlQWN0aW9ucyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJyYXk8Q29udGVudEFjdGlvblJlZj4+KFtdKTtcbiAgcHJpdmF0ZSBfc2lkZWJhckFjdGlvbnMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFycmF5PENvbnRlbnRBY3Rpb25SZWY+PihbXSk7XG4gIHByaXZhdGUgX2JhZGdlcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJyYXk8QmFkZ2U+PihbXSk7XG4gIHByaXZhdGUgX2ZpbGVzRG9jdW1lbnRMaXN0UHJlc2V0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTxEb2N1bWVudExpc3RQcmVzZXRSZWY+PihbXSk7XG4gIHByaXZhdGUgX2N1c3RvbU1ldGFkYXRhUGFuZWxzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTxDb250ZW50QWN0aW9uUmVmPj4oW10pO1xuICBwcml2YXRlIF9idWxrQWN0aW9ucyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJyYXk8Q29udGVudEFjdGlvblJlZj4+KFtdKTtcblxuICBkb2N1bWVudExpc3RQcmVzZXRzOiB7XG4gICAgbGlicmFyaWVzOiBBcnJheTxEb2N1bWVudExpc3RQcmVzZXRSZWY+O1xuICAgIGZhdm9yaXRlTGlicmFyaWVzOiBBcnJheTxEb2N1bWVudExpc3RQcmVzZXRSZWY+O1xuICAgIHNoYXJlZDogQXJyYXk8RG9jdW1lbnRMaXN0UHJlc2V0UmVmPjtcbiAgICByZWNlbnQ6IEFycmF5PERvY3VtZW50TGlzdFByZXNldFJlZj47XG4gICAgZmF2b3JpdGVzOiBBcnJheTxEb2N1bWVudExpc3RQcmVzZXRSZWY+O1xuICAgIHRyYXNoY2FuOiBBcnJheTxEb2N1bWVudExpc3RQcmVzZXRSZWY+O1xuICAgIHNlYXJjaExpYnJhcmllczogQXJyYXk8RG9jdW1lbnRMaXN0UHJlc2V0UmVmPjtcbiAgICBzZWFyY2hSZXN1bHRzOiBBcnJheTxEb2N1bWVudExpc3RQcmVzZXRSZWY+O1xuICB9ID0ge1xuICAgIGxpYnJhcmllczogW10sXG4gICAgZmF2b3JpdGVMaWJyYXJpZXM6IFtdLFxuICAgIHNoYXJlZDogW10sXG4gICAgcmVjZW50OiBbXSxcbiAgICBmYXZvcml0ZXM6IFtdLFxuICAgIHRyYXNoY2FuOiBbXSxcbiAgICBzZWFyY2hMaWJyYXJpZXM6IFtdLFxuICAgIHNlYXJjaFJlc3VsdHM6IFtdXG4gIH07XG5cbiAgc2VsZWN0aW9uOiBTZWxlY3Rpb25TdGF0ZTtcbiAgbmF2aWdhdGlvbjogTmF2aWdhdGlvblN0YXRlO1xuICBwcm9maWxlOiBQcm9maWxlU3RhdGU7XG4gIHJlcG9zaXRvcnk6IFJlcG9zaXRvcnlJbmZvO1xuICB3aXRoQ3JlZGVudGlhbHM6IGJvb2xlYW47XG5cbiAgcmVmZXJlbmNlcyQ6IE9ic2VydmFibGU8RXh0ZW5zaW9uUmVmW10+O1xuICBmaWxlc0RvY3VtZW50TGlzdFByZXNldCQ6IE9ic2VydmFibGU8RG9jdW1lbnRMaXN0UHJlc2V0UmVmW10+ID0gdGhpcy5fZmlsZXNEb2N1bWVudExpc3RQcmVzZXQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgY29uZmlnOiBFeHRlbnNpb25Db25maWc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGF1dGg6IEF1dGhlbnRpY2F0aW9uU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgc3RvcmU6IFN0b3JlPEFwcFN0b3JlPixcbiAgICBwcm90ZWN0ZWQgbG9hZGVyOiBFeHRlbnNpb25Mb2FkZXJTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBleHRlbnNpb25zOiBFeHRlbnNpb25TZXJ2aWNlLFxuICAgIHB1YmxpYyBwZXJtaXNzaW9uczogTm9kZVBlcm1pc3Npb25TZXJ2aWNlLFxuICAgIHB1YmxpYyBhcHBDb25maWc6IEFwcENvbmZpZ1NlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG1hdEljb25SZWdpc3RyeTogTWF0SWNvblJlZ2lzdHJ5LFxuICAgIHByb3RlY3RlZCBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICBwcm90ZWN0ZWQgbG9nZ2VyOiBMb2dTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMucmVmZXJlbmNlcyQgPSB0aGlzLl9yZWZlcmVuY2VzLmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgdGhpcy5zdG9yZS5zZWxlY3QoZ2V0UnVsZUNvbnRleHQpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICB0aGlzLnNlbGVjdGlvbiA9IHJlc3VsdC5zZWxlY3Rpb247XG4gICAgICB0aGlzLm5hdmlnYXRpb24gPSByZXN1bHQubmF2aWdhdGlvbjtcbiAgICAgIHRoaXMucHJvZmlsZSA9IHJlc3VsdC5wcm9maWxlO1xuICAgICAgdGhpcy5yZXBvc2l0b3J5ID0gcmVzdWx0LnJlcG9zaXRvcnk7XG5cbiAgICAgIGlmICh0aGlzLmNvbmZpZykge1xuICAgICAgICB0aGlzLnNldHVwKHRoaXMuY29uZmlnKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGxvYWQoKSB7XG4gICAgdGhpcy5jb25maWcgPSBhd2FpdCB0aGlzLmV4dGVuc2lvbnMubG9hZCgpO1xuICAgIHRoaXMuc2V0dXAodGhpcy5jb25maWcpO1xuICB9XG5cbiAgc2V0dXAoY29uZmlnOiBFeHRlbnNpb25Db25maWcpIHtcbiAgICBpZiAoIWNvbmZpZykge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoJ0V4dGVuc2lvbiBjb25maWd1cmF0aW9uIG5vdCBmb3VuZCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2hlYWRlckFjdGlvbnMubmV4dCh0aGlzLmxvYWRlci5nZXRDb250ZW50QWN0aW9ucyhjb25maWcsICdmZWF0dXJlcy5oZWFkZXInKSk7XG4gICAgdGhpcy5fc2lkZWJhckFjdGlvbnMubmV4dCh0aGlzLmxvYWRlci5nZXRDb250ZW50QWN0aW9ucyhjb25maWcsICdmZWF0dXJlcy5zaWRlYmFyLnRvb2xiYXInKSk7XG4gICAgdGhpcy5fdG9vbGJhckFjdGlvbnMubmV4dCh0aGlzLmxvYWRlci5nZXRDb250ZW50QWN0aW9ucyhjb25maWcsICdmZWF0dXJlcy50b29sYmFyJykpO1xuICAgIHRoaXMuX3ZpZXdlclRvb2xiYXJBY3Rpb25zLm5leHQodGhpcy5sb2FkZXIuZ2V0Q29udGVudEFjdGlvbnMoY29uZmlnLCAnZmVhdHVyZXMudmlld2VyLnRvb2xiYXJBY3Rpb25zJykpO1xuICAgIHRoaXMuX3NoYXJlZExpbmtWaWV3ZXJUb29sYmFyQWN0aW9ucy5uZXh0KHRoaXMubG9hZGVyLmdldENvbnRlbnRBY3Rpb25zKGNvbmZpZywgJ2ZlYXR1cmVzLnZpZXdlci5zaGFyZWQudG9vbGJhckFjdGlvbnMnKSk7XG4gICAgdGhpcy5fY29udGV4dE1lbnVBY3Rpb25zLm5leHQodGhpcy5sb2FkZXIuZ2V0Q29udGVudEFjdGlvbnMoY29uZmlnLCAnZmVhdHVyZXMuY29udGV4dE1lbnUnKSk7XG4gICAgdGhpcy5fb3BlbldpdGhBY3Rpb25zLm5leHQodGhpcy5sb2FkZXIuZ2V0Q29udGVudEFjdGlvbnMoY29uZmlnLCAnZmVhdHVyZXMudmlld2VyLm9wZW5XaXRoJykpO1xuICAgIHRoaXMuX2NyZWF0ZUFjdGlvbnMubmV4dCh0aGlzLmxvYWRlci5nZXRFbGVtZW50czxDb250ZW50QWN0aW9uUmVmPihjb25maWcsICdmZWF0dXJlcy5jcmVhdGUnKSk7XG4gICAgdGhpcy5fYmFkZ2VzLm5leHQodGhpcy5sb2FkZXIuZ2V0RWxlbWVudHM8QmFkZ2U+KGNvbmZpZywgJ2ZlYXR1cmVzLmJhZGdlcycpKTtcbiAgICB0aGlzLl9maWxlc0RvY3VtZW50TGlzdFByZXNldC5uZXh0KHRoaXMuZ2V0RG9jdW1lbnRMaXN0UHJlc2V0KGNvbmZpZywgJ2ZpbGVzJykpO1xuICAgIHRoaXMuX2N1c3RvbU1ldGFkYXRhUGFuZWxzLm5leHQodGhpcy5sb2FkZXIuZ2V0RWxlbWVudHM8Q29udGVudEFjdGlvblJlZj4oY29uZmlnLCAnZmVhdHVyZXMuY3VzdG9tTWV0YWRhdGFQYW5lbHMnKSk7XG4gICAgdGhpcy5fYnVsa0FjdGlvbnMubmV4dCh0aGlzLmxvYWRlci5nZXRFbGVtZW50czxDb250ZW50QWN0aW9uUmVmPihjb25maWcsICdmZWF0dXJlcy5idWxrLWFjdGlvbnMnKSk7XG5cbiAgICB0aGlzLm5hdmJhciA9IHRoaXMubG9hZE5hdkJhcihjb25maWcpO1xuICAgIHRoaXMuc2lkZWJhclRhYnMgPSB0aGlzLmxvYWRlci5nZXRFbGVtZW50czxTaWRlYmFyVGFiUmVmPihjb25maWcsICdmZWF0dXJlcy5zaWRlYmFyLnRhYnMnKTtcbiAgICB0aGlzLmNvbnRlbnRNZXRhZGF0YSA9IHRoaXMubG9hZENvbnRlbnRNZXRhZGF0YShjb25maWcpO1xuICAgIHRoaXMuc2VhcmNoID0gdGhpcy5sb2FkU2VhcmNoRm9ybXMoY29uZmlnKTtcbiAgICB0aGlzLnNlYXJjaD8uZm9yRWFjaCgoc2VhcmNoU2V0KSA9PiB7XG4gICAgICBzZWFyY2hTZXQuY2F0ZWdvcmllcyA9IHNlYXJjaFNldC5jYXRlZ29yaWVzPy5maWx0ZXIoKGNhdGVnb3J5KSA9PiB0aGlzLmZpbHRlclZpc2libGUoY2F0ZWdvcnkpKTtcbiAgICB9KTtcblxuICAgIHRoaXMuZG9jdW1lbnRMaXN0UHJlc2V0cyA9IHtcbiAgICAgIGxpYnJhcmllczogdGhpcy5nZXREb2N1bWVudExpc3RQcmVzZXQoY29uZmlnLCAnbGlicmFyaWVzJyksXG4gICAgICBmYXZvcml0ZUxpYnJhcmllczogdGhpcy5nZXREb2N1bWVudExpc3RQcmVzZXQoY29uZmlnLCAnZmF2b3JpdGVMaWJyYXJpZXMnKSxcbiAgICAgIHNoYXJlZDogdGhpcy5nZXREb2N1bWVudExpc3RQcmVzZXQoY29uZmlnLCAnc2hhcmVkJyksXG4gICAgICByZWNlbnQ6IHRoaXMuZ2V0RG9jdW1lbnRMaXN0UHJlc2V0KGNvbmZpZywgJ3JlY2VudCcpLFxuICAgICAgZmF2b3JpdGVzOiB0aGlzLmdldERvY3VtZW50TGlzdFByZXNldChjb25maWcsICdmYXZvcml0ZXMnKSxcbiAgICAgIHRyYXNoY2FuOiB0aGlzLmdldERvY3VtZW50TGlzdFByZXNldChjb25maWcsICd0cmFzaGNhbicpLFxuICAgICAgc2VhcmNoTGlicmFyaWVzOiB0aGlzLmdldERvY3VtZW50TGlzdFByZXNldChjb25maWcsICdzZWFyY2gtbGlicmFyaWVzJyksXG4gICAgICBzZWFyY2hSZXN1bHRzOiB0aGlzLmdldERvY3VtZW50TGlzdFByZXNldChjb25maWcsICdzZWFyY2gtcmVzdWx0cycpXG4gICAgfTtcblxuICAgIHRoaXMud2l0aENyZWRlbnRpYWxzID0gdGhpcy5hcHBDb25maWcuZ2V0PGJvb2xlYW4+KCdhdXRoLndpdGhDcmVkZW50aWFscycsIGZhbHNlKTtcblxuICAgIGlmIChjb25maWcuZmVhdHVyZXM/LnZpZXdlcikge1xuICAgICAgdGhpcy52aWV3ZXJSdWxlcyA9IChjb25maWcuZmVhdHVyZXMudmlld2VyWydydWxlcyddIGFzIFZpZXdlclJ1bGVzKSB8fCB7fTtcbiAgICB9XG5cbiAgICB0aGlzLnJlZ2lzdGVySWNvbnMoY29uZmlnKTtcblxuICAgIGNvbnN0IHJlZmVyZW5jZXMgPSAoY29uZmlnLiRyZWZlcmVuY2VzIHx8IFtdKS5maWx0ZXIoKGVudHJ5KSA9PiB0eXBlb2YgZW50cnkgPT09ICdvYmplY3QnKS5tYXAoKGVudHJ5KSA9PiBlbnRyeSBhcyBFeHRlbnNpb25SZWYpO1xuICAgIHRoaXMuX3JlZmVyZW5jZXMubmV4dChyZWZlcmVuY2VzKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWdpc3Rlckljb25zKGNvbmZpZzogRXh0ZW5zaW9uQ29uZmlnKSB7XG4gICAgY29uc3QgaWNvbnM6IEFycmF5PEljb25SZWY+ID0gdGhpcy5sb2FkZXIuZ2V0RWxlbWVudHM8SWNvblJlZj4oY29uZmlnLCAnZmVhdHVyZXMuaWNvbnMnKS5maWx0ZXIoKGVudHJ5KSA9PiAhZW50cnkuZGlzYWJsZWQpO1xuXG4gICAgZm9yIChjb25zdCBpY29uIG9mIGljb25zKSB7XG4gICAgICBjb25zdCBbbnMsIGlkXSA9IGljb24uaWQuc3BsaXQoJzonKTtcbiAgICAgIGNvbnN0IHZhbHVlID0gaWNvbi52YWx1ZTtcblxuICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICB0aGlzLmxvZ2dlci53YXJuKGBNaXNzaW5nIGljb24gdmFsdWUgZm9yIFwiJHtpY29uLmlkfVwiLmApO1xuICAgICAgfSBlbHNlIGlmICghbnMgfHwgIWlkKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLndhcm4oYEluY29ycmVjdCBpY29uIGlkIGZvcm1hdC5gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubWF0SWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25Jbk5hbWVzcGFjZShucywgaWQsIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh2YWx1ZSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBsb2FkTmF2QmFyKGNvbmZpZzogRXh0ZW5zaW9uQ29uZmlnKTogQXJyYXk8TmF2QmFyR3JvdXBSZWY+IHtcbiAgICByZXR1cm4gdGhpcy5sb2FkZXIuZ2V0RWxlbWVudHM8TmF2QmFyR3JvdXBSZWY+KGNvbmZpZywgJ2ZlYXR1cmVzLm5hdmJhcicpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldERvY3VtZW50TGlzdFByZXNldChjb25maWc6IEV4dGVuc2lvbkNvbmZpZywga2V5OiBzdHJpbmcpOiBEb2N1bWVudExpc3RQcmVzZXRSZWZbXSB7XG4gICAgcmV0dXJuIHRoaXMubG9hZGVyXG4gICAgICAuZ2V0RWxlbWVudHM8RG9jdW1lbnRMaXN0UHJlc2V0UmVmPihjb25maWcsIGBmZWF0dXJlcy5kb2N1bWVudExpc3QuJHtrZXl9YClcbiAgICAgIC5maWx0ZXIoKGdyb3VwKSA9PiB0aGlzLmZpbHRlclZpc2libGUoZ3JvdXApKVxuICAgICAgLmZpbHRlcigoZW50cnkpID0+ICFlbnRyeS5kaXNhYmxlZClcbiAgICAgIC5tYXAoKGVudHJ5KSA9PiB7XG4gICAgICAgIGVudHJ5LnJlc2l6YWJsZSA9IGVudHJ5LnJlc2l6YWJsZSA/PyB0cnVlO1xuICAgICAgICByZXR1cm4gZW50cnk7XG4gICAgICB9KVxuICAgICAgLnNvcnQoc29ydEJ5T3JkZXIpO1xuICB9XG5cbiAgZ2V0QXBwbGljYXRpb25OYXZpZ2F0aW9uKGVsZW1lbnRzKTogQXJyYXk8TmF2QmFyR3JvdXBSZWY+IHtcbiAgICByZXR1cm4gZWxlbWVudHNcbiAgICAgIC5maWx0ZXIoKGdyb3VwKSA9PiB0aGlzLmZpbHRlclZpc2libGUoZ3JvdXApKVxuICAgICAgLm1hcCgoZ3JvdXApID0+ICh7XG4gICAgICAgIC4uLmdyb3VwLFxuICAgICAgICBpdGVtczogKGdyb3VwLml0ZW1zIHx8IFtdKVxuICAgICAgICAgIC5maWx0ZXIoKGVudHJ5KSA9PiAhZW50cnkuZGlzYWJsZWQpXG4gICAgICAgICAgLmZpbHRlcigoaXRlbSkgPT4gdGhpcy5maWx0ZXJWaXNpYmxlKGl0ZW0pKVxuICAgICAgICAgIC5zb3J0KHNvcnRCeU9yZGVyKVxuICAgICAgICAgIC5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGlmIChpdGVtLmNoaWxkcmVuICYmIGl0ZW0uY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICBpdGVtLmNoaWxkcmVuID0gaXRlbS5jaGlsZHJlblxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGVudHJ5KSA9PiAhZW50cnkuZGlzYWJsZWQpXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoY2hpbGQpID0+IHRoaXMuZmlsdGVyVmlzaWJsZShjaGlsZCkpXG4gICAgICAgICAgICAgICAgLnNvcnQoc29ydEJ5T3JkZXIpXG4gICAgICAgICAgICAgICAgLm1hcCgoY2hpbGQpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChjaGlsZC5jb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAuLi5jaGlsZFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICBpZiAoIWNoaWxkLmNsaWNrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkUm91dGVSZWYgPSB0aGlzLmV4dGVuc2lvbnMuZ2V0Um91dGVCeUlkKGNoaWxkLnJvdXRlKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hpbGRVcmwgPSBgLyR7Y2hpbGRSb3V0ZVJlZiA/IGNoaWxkUm91dGVSZWYucGF0aCA6IGNoaWxkLnJvdXRlfWA7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgLi4uY2hpbGQsXG4gICAgICAgICAgICAgICAgICAgICAgdXJsOiBjaGlsZFVybFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5jaGlsZCxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiBjaGlsZC5jbGlja1xuICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLml0ZW1cbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGl0ZW0uY29tcG9uZW50KSB7XG4gICAgICAgICAgICAgIHJldHVybiB7IC4uLml0ZW0gfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFpdGVtLmNsaWNrKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHJvdXRlUmVmID0gdGhpcy5leHRlbnNpb25zLmdldFJvdXRlQnlJZChpdGVtLnJvdXRlKTtcbiAgICAgICAgICAgICAgY29uc3QgdXJsID0gYC8ke3JvdXRlUmVmID8gcm91dGVSZWYucGF0aCA6IGl0ZW0ucm91dGV9YDtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgICAgIHVybFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgICBhY3Rpb246IGl0ZW0uY2xpY2tcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSlcbiAgICAgICAgICAucmVkdWNlKHJlZHVjZUVtcHR5TWVudXMsIFtdKVxuICAgICAgfSkpO1xuICB9XG5cbiAgbG9hZENvbnRlbnRNZXRhZGF0YShjb25maWc6IEV4dGVuc2lvbkNvbmZpZyk6IGFueSB7XG4gICAgY29uc3QgZWxlbWVudHMgPSB0aGlzLmxvYWRlci5nZXRFbGVtZW50czxhbnk+KGNvbmZpZywgJ2ZlYXR1cmVzLmNvbnRlbnQtbWV0YWRhdGEtcHJlc2V0cycpO1xuICAgIGlmICghZWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBsZXQgcHJlc2V0cyA9IHt9O1xuICAgIHByZXNldHMgPSB0aGlzLmZpbHRlckRpc2FibGVkKG1lcmdlT2JqZWN0cyhwcmVzZXRzLCAuLi5lbGVtZW50cykpO1xuXG4gICAgY29uc3QgbWV0YWRhdGEgPSB0aGlzLmFwcENvbmZpZy5jb25maWdbJ2NvbnRlbnQtbWV0YWRhdGEnXSB8fCB7fTtcbiAgICBtZXRhZGF0YS5wcmVzZXRzID0gcHJlc2V0cztcblxuICAgIHRoaXMuYXBwQ29uZmlnLmNvbmZpZ1snY29udGVudC1tZXRhZGF0YSddID0gbWV0YWRhdGE7XG4gICAgcmV0dXJuIHsgcHJlc2V0cyB9O1xuICB9XG5cbiAgbG9hZFNlYXJjaEZvcm1zKGNvbmZpZzogRXh0ZW5zaW9uQ29uZmlnKTogYW55IHtcbiAgICBjb25zdCBlbGVtZW50cyA9IHRoaXMubG9hZGVyLmdldEVsZW1lbnRzPGFueT4oY29uZmlnLCAnZmVhdHVyZXMuc2VhcmNoJyk7XG4gICAgaWYgKCFlbGVtZW50cy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHNlYXJjaCA9IG1lcmdlQXJyYXlzKFtdLCBlbGVtZW50cylcbiAgICAgIC5maWx0ZXIoKGVudHJ5KSA9PiAhZW50cnkuZGlzYWJsZWQpXG4gICAgICAuZmlsdGVyKChlbnRyeSkgPT4gdGhpcy5maWx0ZXJWaXNpYmxlKGVudHJ5KSlcbiAgICAgIC5zb3J0KHNvcnRCeU9yZGVyKTtcblxuICAgIHRoaXMuYXBwQ29uZmlnLmNvbmZpZ1snc2VhcmNoJ10gPSBzZWFyY2g7XG4gICAgcmV0dXJuIHNlYXJjaDtcbiAgfVxuXG4gIGZpbHRlckRpc2FibGVkKG9iamVjdDogQXJyYXk8eyBkaXNhYmxlZDogYm9vbGVhbiB9PiB8IHsgZGlzYWJsZWQ6IGJvb2xlYW4gfSkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KG9iamVjdCkpIHtcbiAgICAgIHJldHVybiBvYmplY3QuZmlsdGVyKChpdGVtKSA9PiAhaXRlbS5kaXNhYmxlZCkubWFwKChpdGVtKSA9PiB0aGlzLmZpbHRlckRpc2FibGVkKGl0ZW0pKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBvYmplY3QgPT09ICdvYmplY3QnKSB7XG4gICAgICBpZiAoIW9iamVjdC5kaXNhYmxlZCkge1xuICAgICAgICBPYmplY3Qua2V5cyhvYmplY3QpLmZvckVhY2goKHByb3ApID0+IHtcbiAgICAgICAgICBvYmplY3RbcHJvcF0gPSB0aGlzLmZpbHRlckRpc2FibGVkKG9iamVjdFtwcm9wXSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH1cbiAgfVxuXG4gIGdldFNpZGViYXJUYWJzKCk6IEFycmF5PFNpZGViYXJUYWJSZWY+IHtcbiAgICByZXR1cm4gdGhpcy5zaWRlYmFyVGFicy5maWx0ZXIoKGFjdGlvbikgPT4gdGhpcy5maWx0ZXJWaXNpYmxlKGFjdGlvbikpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRBY3Rpb25EaXNhYmxlZEZyb21SdWxlKGFjdGlvbjogQ29udGVudEFjdGlvblJlZikge1xuICAgIGxldCBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgaWYgKGFjdGlvbj8ucnVsZXM/LmVuYWJsZWQpIHtcbiAgICAgIGRpc2FibGVkID0gIXRoaXMuZXh0ZW5zaW9ucy5ldmFsdWF0ZVJ1bGUoYWN0aW9uLnJ1bGVzLmVuYWJsZWQsIHRoaXMpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5hY3Rpb24sXG4gICAgICBkaXNhYmxlZFxuICAgIH07XG4gIH1cblxuICB1cGRhdGVTaWRlYmFyQWN0aW9ucygpIHtcbiAgICB0aGlzLl9zaWRlYmFyQWN0aW9ucy5uZXh0KHRoaXMubG9hZGVyLmdldENvbnRlbnRBY3Rpb25zKHRoaXMuY29uZmlnLCAnZmVhdHVyZXMuc2lkZWJhci50b29sYmFyJykpO1xuICB9XG5cbiAgZ2V0Q3JlYXRlQWN0aW9ucygpOiBPYnNlcnZhYmxlPEFycmF5PENvbnRlbnRBY3Rpb25SZWY+PiB7XG4gICAgcmV0dXJuIHRoaXMuX2NyZWF0ZUFjdGlvbnMucGlwZShcbiAgICAgIG1hcCgoY3JlYXRlQWN0aW9ucykgPT5cbiAgICAgICAgY3JlYXRlQWN0aW9uc1xuICAgICAgICAgIC5maWx0ZXIoKGFjdGlvbikgPT4gdGhpcy5maWx0ZXJWaXNpYmxlKGFjdGlvbikpXG4gICAgICAgICAgLm1hcCgoYWN0aW9uKSA9PiB0aGlzLmNvcHlBY3Rpb24oYWN0aW9uKSlcbiAgICAgICAgICAubWFwKChhY3Rpb24pID0+IHRoaXMuYnVpbGRNZW51KGFjdGlvbikpXG4gICAgICAgICAgLm1hcCgoYWN0aW9uKSA9PiB0aGlzLnNldEFjdGlvbkRpc2FibGVkRnJvbVJ1bGUoYWN0aW9uKSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgZ2V0QmFkZ2VzKG5vZGU6IE5vZGVFbnRyeSk6IE9ic2VydmFibGU8QXJyYXk8QmFkZ2U+PiB7XG4gICAgcmV0dXJuIHRoaXMuX2JhZGdlcy5waXBlKG1hcCgoYmFkZ2VzKSA9PiBiYWRnZXMuZmlsdGVyKChiYWRnZSkgPT4gdGhpcy5ldmFsdWF0ZVJ1bGUoYmFkZ2UucnVsZXMudmlzaWJsZSwgbm9kZSkpKSk7XG4gIH1cblxuICBnZXRDdXN0b21NZXRhZGF0YVBhbmVscyhub2RlOiBOb2RlRW50cnkpOiBPYnNlcnZhYmxlPEFycmF5PENvbnRlbnRBY3Rpb25SZWY+PiB7XG4gICAgcmV0dXJuIHRoaXMuX2N1c3RvbU1ldGFkYXRhUGFuZWxzLnBpcGUobWFwKChwYW5lbHMpID0+IHBhbmVscy5maWx0ZXIoKHBhbmVsKSA9PiB0aGlzLmV2YWx1YXRlUnVsZShwYW5lbC5ydWxlcy52aXNpYmxlLCBub2RlKSkpKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRNZW51KGFjdGlvblJlZjogQ29udGVudEFjdGlvblJlZik6IENvbnRlbnRBY3Rpb25SZWYge1xuICAgIGlmIChhY3Rpb25SZWYudHlwZSA9PT0gQ29udGVudEFjdGlvblR5cGUubWVudSAmJiBhY3Rpb25SZWYuY2hpbGRyZW4gJiYgYWN0aW9uUmVmLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGNoaWxkcmVuID0gYWN0aW9uUmVmLmNoaWxkcmVuLmZpbHRlcigoYWN0aW9uKSA9PiB0aGlzLmZpbHRlclZpc2libGUoYWN0aW9uKSkubWFwKChhY3Rpb24pID0+IHRoaXMuYnVpbGRNZW51KGFjdGlvbikpO1xuXG4gICAgICBhY3Rpb25SZWYuY2hpbGRyZW4gPSBjaGlsZHJlblxuICAgICAgICAubWFwKChhY3Rpb24pID0+IHRoaXMuc2V0QWN0aW9uRGlzYWJsZWRGcm9tUnVsZShhY3Rpb24pKVxuICAgICAgICAuc29ydChzb3J0QnlPcmRlcilcbiAgICAgICAgLnJlZHVjZShyZWR1Y2VFbXB0eU1lbnVzLCBbXSlcbiAgICAgICAgLnJlZHVjZShyZWR1Y2VTZXBhcmF0b3JzLCBbXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjdGlvblJlZjtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWxsb3dlZEFjdGlvbnMoYWN0aW9uczogQ29udGVudEFjdGlvblJlZltdKTogQ29udGVudEFjdGlvblJlZltdIHtcbiAgICByZXR1cm4gKGFjdGlvbnMgfHwgW10pXG4gICAgICAuZmlsdGVyKChhY3Rpb24pID0+IHRoaXMuZmlsdGVyVmlzaWJsZShhY3Rpb24pKVxuICAgICAgLm1hcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgIGlmIChhY3Rpb24udHlwZSA9PT0gQ29udGVudEFjdGlvblR5cGUubWVudSkge1xuICAgICAgICAgIGNvbnN0IGNvcHkgPSB0aGlzLmNvcHlBY3Rpb24oYWN0aW9uKTtcbiAgICAgICAgICBpZiAoY29weS5jaGlsZHJlbiAmJiBjb3B5LmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvcHkuY2hpbGRyZW4gPSBjb3B5LmNoaWxkcmVuXG4gICAgICAgICAgICAgIC5maWx0ZXIoKGVudHJ5KSA9PiAhZW50cnkuZGlzYWJsZWQpXG4gICAgICAgICAgICAgIC5maWx0ZXIoKGNoaWxkQWN0aW9uKSA9PiB0aGlzLmZpbHRlclZpc2libGUoY2hpbGRBY3Rpb24pKVxuICAgICAgICAgICAgICAuc29ydChzb3J0QnlPcmRlcilcbiAgICAgICAgICAgICAgLnJlZHVjZShyZWR1Y2VTZXBhcmF0b3JzLCBbXSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBjb3B5O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY3Rpb247XG4gICAgICB9KVxuICAgICAgLm1hcCgoYWN0aW9uKSA9PiB0aGlzLnNldEFjdGlvbkRpc2FibGVkRnJvbVJ1bGUoYWN0aW9uKSlcbiAgICAgIC5yZWR1Y2UocmVkdWNlRW1wdHlNZW51cywgW10pXG4gICAgICAucmVkdWNlKHJlZHVjZVNlcGFyYXRvcnMsIFtdKTtcbiAgfVxuXG4gIGdldEFsbG93ZWRTaWRlYmFyQWN0aW9ucygpOiBPYnNlcnZhYmxlPEFycmF5PENvbnRlbnRBY3Rpb25SZWY+PiB7XG4gICAgcmV0dXJuIHRoaXMuX3NpZGViYXJBY3Rpb25zLnBpcGUobWFwKChzaWRlYmFyQWN0aW9ucykgPT4gdGhpcy5nZXRBbGxvd2VkQWN0aW9ucyhzaWRlYmFyQWN0aW9ucykpKTtcbiAgfVxuXG4gIGdldEFsbG93ZWRUb29sYmFyQWN0aW9ucygpOiBPYnNlcnZhYmxlPEFycmF5PENvbnRlbnRBY3Rpb25SZWY+PiB7XG4gICAgcmV0dXJuIHRoaXMuX3Rvb2xiYXJBY3Rpb25zLnBpcGUobWFwKCh0b29sYmFyQWN0aW9ucykgPT4gdGhpcy5nZXRBbGxvd2VkQWN0aW9ucyh0b29sYmFyQWN0aW9ucykpKTtcbiAgfVxuXG4gIGdldFZpZXdlclRvb2xiYXJBY3Rpb25zKCk6IE9ic2VydmFibGU8QXJyYXk8Q29udGVudEFjdGlvblJlZj4+IHtcbiAgICByZXR1cm4gdGhpcy5fdmlld2VyVG9vbGJhckFjdGlvbnMucGlwZShtYXAoKHZpZXdlclRvb2xiYXJBY3Rpb25zKSA9PiB0aGlzLmdldEFsbG93ZWRBY3Rpb25zKHZpZXdlclRvb2xiYXJBY3Rpb25zKSkpO1xuICB9XG5cbiAgZ2V0QnVsa0FjdGlvbnMoKTogT2JzZXJ2YWJsZTxBcnJheTxDb250ZW50QWN0aW9uUmVmPj4ge1xuICAgIHJldHVybiB0aGlzLl9idWxrQWN0aW9ucy5waXBlKG1hcCgoYnVsa0FjdGlvbnMpID0+IHRoaXMuZ2V0QWxsb3dlZEFjdGlvbnMoYnVsa0FjdGlvbnMpKSk7XG4gIH1cblxuICBnZXRPcGVuV2l0aEFjdGlvbnMoKTogT2JzZXJ2YWJsZTxBcnJheTxDb250ZW50QWN0aW9uUmVmPj4ge1xuICAgIHJldHVybiB0aGlzLl9vcGVuV2l0aEFjdGlvbnMucGlwZShtYXAoKG9wZW5XaXRoQWN0aW9ucykgPT4gdGhpcy5nZXRBbGxvd2VkQWN0aW9ucyhvcGVuV2l0aEFjdGlvbnMpKSk7XG4gIH1cblxuICBnZXRTaGFyZWRMaW5rVmlld2VyVG9vbGJhckFjdGlvbnMoKTogT2JzZXJ2YWJsZTxBcnJheTxDb250ZW50QWN0aW9uUmVmPj4ge1xuICAgIHJldHVybiB0aGlzLl9zaGFyZWRMaW5rVmlld2VyVG9vbGJhckFjdGlvbnMucGlwZShcbiAgICAgIG1hcCgoc2hhcmVkTGlua1ZpZXdlclRvb2xiYXJBY3Rpb25zKSA9PiAoIXRoaXMuc2VsZWN0aW9uLmlzRW1wdHkgPyB0aGlzLmdldEFsbG93ZWRBY3Rpb25zKHNoYXJlZExpbmtWaWV3ZXJUb29sYmFyQWN0aW9ucykgOiBbXSkpXG4gICAgKTtcbiAgfVxuXG4gIGdldEhlYWRlckFjdGlvbnMoKTogT2JzZXJ2YWJsZTxBcnJheTxDb250ZW50QWN0aW9uUmVmPj4ge1xuICAgIHJldHVybiB0aGlzLl9oZWFkZXJBY3Rpb25zLnBpcGUoXG4gICAgICBtYXAoKGhlYWRlckFjdGlvbnMpID0+XG4gICAgICAgIGhlYWRlckFjdGlvbnNcbiAgICAgICAgICAuZmlsdGVyKChhY3Rpb24pID0+IHRoaXMuZmlsdGVyVmlzaWJsZShhY3Rpb24pKVxuICAgICAgICAgIC5tYXAoKGFjdGlvbikgPT4ge1xuICAgICAgICAgICAgaWYgKGFjdGlvbi50eXBlID09PSBDb250ZW50QWN0aW9uVHlwZS5tZW51KSB7XG4gICAgICAgICAgICAgIGNvbnN0IGNvcHkgPSB0aGlzLmNvcHlBY3Rpb24oYWN0aW9uKTtcbiAgICAgICAgICAgICAgaWYgKGNvcHkuY2hpbGRyZW4gJiYgY29weS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgY29weS5jaGlsZHJlbiA9IGNvcHkuY2hpbGRyZW5cbiAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKGNoaWxkQWN0aW9uKSA9PiB0aGlzLmZpbHRlclZpc2libGUoY2hpbGRBY3Rpb24pKVxuICAgICAgICAgICAgICAgICAgLnNvcnQoc29ydEJ5T3JkZXIpXG4gICAgICAgICAgICAgICAgICAucmVkdWNlKHJlZHVjZUVtcHR5TWVudXMsIFtdKVxuICAgICAgICAgICAgICAgICAgLnJlZHVjZShyZWR1Y2VTZXBhcmF0b3JzLCBbXSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIGNvcHk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBhY3Rpb247XG4gICAgICAgICAgfSlcbiAgICAgICAgICAubWFwKChhY3Rpb24pID0+IHRoaXMuc2V0QWN0aW9uRGlzYWJsZWRGcm9tUnVsZShhY3Rpb24pKVxuICAgICAgICAgIC5zb3J0KHNvcnRCeU9yZGVyKVxuICAgICAgICAgIC5yZWR1Y2UocmVkdWNlRW1wdHlNZW51cywgW10pXG4gICAgICAgICAgLnJlZHVjZShyZWR1Y2VTZXBhcmF0b3JzLCBbXSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgZ2V0QWxsb3dlZENvbnRleHRNZW51QWN0aW9ucygpOiBPYnNlcnZhYmxlPEFycmF5PENvbnRlbnRBY3Rpb25SZWY+PiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRleHRNZW51QWN0aW9ucy5waXBlKG1hcCgoY29udGV4dE1lbnVBY3Rpb25zKSA9PiAoIXRoaXMuc2VsZWN0aW9uLmlzRW1wdHkgPyB0aGlzLmdldEFsbG93ZWRBY3Rpb25zKGNvbnRleHRNZW51QWN0aW9ucykgOiBbXSkpKTtcbiAgfVxuXG4gIGNvcHlBY3Rpb24oYWN0aW9uOiBDb250ZW50QWN0aW9uUmVmKTogQ29udGVudEFjdGlvblJlZiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmFjdGlvbixcbiAgICAgIGNoaWxkcmVuOiAoYWN0aW9uLmNoaWxkcmVuIHx8IFtdKS5tYXAoKGNoaWxkKSA9PiB0aGlzLmNvcHlBY3Rpb24oY2hpbGQpKVxuICAgIH07XG4gIH1cblxuICBmaWx0ZXJWaXNpYmxlKGFjdGlvbjogQ29udGVudEFjdGlvblJlZiB8IFNpZGViYXJUYWJSZWYgfCBEb2N1bWVudExpc3RQcmVzZXRSZWYgfCBTZWFyY2hDYXRlZ29yeSk6IGJvb2xlYW4ge1xuICAgIGlmIChhY3Rpb24/LnJ1bGVzPy52aXNpYmxlKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShhY3Rpb24ucnVsZXMudmlzaWJsZSkpIHtcbiAgICAgICAgcmV0dXJuIGFjdGlvbi5ydWxlcy52aXNpYmxlLmV2ZXJ5KChydWxlKSA9PiB0aGlzLmV4dGVuc2lvbnMuZXZhbHVhdGVSdWxlKHJ1bGUsIHRoaXMpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmV4dGVuc2lvbnMuZXZhbHVhdGVSdWxlKGFjdGlvbi5ydWxlcy52aXNpYmxlLCB0aGlzKTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpc1ZpZXdlckV4dGVuc2lvbkRpc2FibGVkKGV4dGVuc2lvbjogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKGV4dGVuc2lvbikge1xuICAgICAgaWYgKGV4dGVuc2lvbi5kaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGV4dGVuc2lvbi5ydWxlcz8uZGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXh0ZW5zaW9ucy5ldmFsdWF0ZVJ1bGUoZXh0ZW5zaW9uLnJ1bGVzLmRpc2FibGVkLCB0aGlzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBydW5BY3Rpb25CeUlkKGlkOiBzdHJpbmcsIGFkZGl0aW9uYWxQYXlsb2FkPzogYW55KSB7XG4gICAgY29uc3QgYWN0aW9uID0gdGhpcy5leHRlbnNpb25zLmdldEFjdGlvbkJ5SWQoaWQpO1xuICAgIGlmIChhY3Rpb24pIHtcbiAgICAgIGNvbnN0IHsgdHlwZSwgcGF5bG9hZCB9ID0gYWN0aW9uO1xuICAgICAgY29uc3QgY29udGV4dCA9IHtcbiAgICAgICAgc2VsZWN0aW9uOiB0aGlzLnNlbGVjdGlvblxuICAgICAgfTtcbiAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSB0aGlzLmV4dGVuc2lvbnMucnVuRXhwcmVzc2lvbihwYXlsb2FkLCBjb250ZXh0KTtcblxuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaCh7XG4gICAgICAgIHR5cGUsXG4gICAgICAgIHBheWxvYWQ6IGV4cHJlc3Npb24sXG4gICAgICAgIGNvbmZpZ3VyYXRpb246IGFkZGl0aW9uYWxQYXlsb2FkXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaCh7XG4gICAgICAgIHR5cGU6IGlkLFxuICAgICAgICBjb25maWd1cmF0aW9uOiBhZGRpdGlvbmFsUGF5bG9hZFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gdG9kbzogbW92ZSB0byBBREYvUnVsZVNlcnZpY2VcbiAgaXNSdWxlRGVmaW5lZChydWxlSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIShydWxlSWQgJiYgdGhpcy5nZXRFdmFsdWF0b3IocnVsZUlkKSk7XG4gIH1cblxuICAvLyB0b2RvOiBtb3ZlIHRvIEFERi9SdWxlU2VydmljZVxuICBldmFsdWF0ZVJ1bGUocnVsZUlkOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZXZhbHVhdG9yID0gdGhpcy5nZXRFdmFsdWF0b3IocnVsZUlkKTtcblxuICAgIGlmIChldmFsdWF0b3IpIHtcbiAgICAgIHJldHVybiBldmFsdWF0b3IodGhpcywgLi4uYXJncyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZ2V0RXZhbHVhdG9yKGtleTogc3RyaW5nKTogUnVsZUV2YWx1YXRvciB7XG4gICAgcmV0dXJuIHRoaXMuZXh0ZW5zaW9ucy5nZXRFdmFsdWF0b3Ioa2V5KTtcbiAgfVxuXG4gIGNhblByZXZpZXdOb2RlKG5vZGU6IE5vZGVFbnRyeSkge1xuICAgIGNvbnN0IHJ1bGVzID0gdGhpcy52aWV3ZXJSdWxlcztcblxuICAgIGlmICh0aGlzLmlzUnVsZURlZmluZWQocnVsZXMuY2FuUHJldmlldykpIHtcbiAgICAgIGNvbnN0IGNhblByZXZpZXcgPSB0aGlzLmV2YWx1YXRlUnVsZShydWxlcy5jYW5QcmV2aWV3LCBub2RlKTtcblxuICAgICAgaWYgKCFjYW5QcmV2aWV3KSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGNhblNob3dWaWV3ZXJOYXZpZ2F0aW9uKG5vZGU6IE5vZGVFbnRyeSkge1xuICAgIGNvbnN0IHJ1bGVzID0gdGhpcy52aWV3ZXJSdWxlcztcblxuICAgIGlmICh0aGlzLmlzUnVsZURlZmluZWQocnVsZXMuc2hvd05hdmlnYXRpb24pKSB7XG4gICAgICBjb25zdCBzaG93TmF2aWdhdGlvbiA9IHRoaXMuZXZhbHVhdGVSdWxlKHJ1bGVzLnNob3dOYXZpZ2F0aW9uLCBub2RlKTtcbiAgICAgIGlmICghc2hvd05hdmlnYXRpb24pIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgYnVsa0FjdGlvbkV4ZWN1dGVkKCk6IHZvaWQge1xuICAgIHRoaXMuYnVsa0FjdGlvbkV4ZWN1dGVkJC5uZXh0KCk7XG4gIH1cbn1cbiJdfQ==
479
+ }], ctorParameters: () => [{ type: i1.AuthenticationService }, { type: i2.Store }, { type: i3.ExtensionLoaderService }, { type: i3.ExtensionService }, { type: i4.NodePermissionService }, { type: i1.AppConfigService }, { type: i5.MatIconRegistry }, { type: i6.DomSanitizer }, { type: i1.LogService }] });
480
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmV4dGVuc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLXNoYXJlZC9zcmMvbGliL3NlcnZpY2VzL2FwcC5leHRlbnNpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBWSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBRUwsaUJBQWlCLEVBR2pCLHNCQUFzQixFQUV0QixnQkFBZ0IsRUFFaEIsV0FBVyxFQUNYLFlBQVksRUFJWixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBS2hCLFdBQVcsRUFDWixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxxQkFBcUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUk1RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBTXJDLE1BQU0sT0FBTyxtQkFBbUI7SUF1RHJCO0lBQ0c7SUFDQTtJQUNBO0lBQ0g7SUFDQTtJQUNHO0lBQ0E7SUFDQTtJQTlESixXQUFXLEdBQUcsSUFBSSxlQUFlLENBQWlCLEVBQUUsQ0FBQyxDQUFDO0lBQzlELG1CQUFtQixHQUFHLElB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wqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgTWF0SWNvblJlZ2lzdHJ5IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEFwcFN0b3JlLCBnZXRSdWxlQ29udGV4dCB9IGZyb20gJ0BhbGZyZXNjby9hY2Etc2hhcmVkL3N0b3JlJztcbmltcG9ydCB7XG4gIENvbnRlbnRBY3Rpb25SZWYsXG4gIENvbnRlbnRBY3Rpb25UeXBlLFxuICBEb2N1bWVudExpc3RQcmVzZXRSZWYsXG4gIEV4dGVuc2lvbkNvbmZpZyxcbiAgRXh0ZW5zaW9uTG9hZGVyU2VydmljZSxcbiAgRXh0ZW5zaW9uUmVmLFxuICBFeHRlbnNpb25TZXJ2aWNlLFxuICBJY29uUmVmLFxuICBtZXJnZUFycmF5cyxcbiAgbWVyZ2VPYmplY3RzLFxuICBOYXZCYXJHcm91cFJlZixcbiAgTmF2aWdhdGlvblN0YXRlLFxuICBQcm9maWxlU3RhdGUsXG4gIHJlZHVjZUVtcHR5TWVudXMsXG4gIHJlZHVjZVNlcGFyYXRvcnMsXG4gIFJ1bGVDb250ZXh0LFxuICBSdWxlRXZhbHVhdG9yLFxuICBTZWxlY3Rpb25TdGF0ZSxcbiAgU2lkZWJhclRhYlJlZixcbiAgc29ydEJ5T3JkZXJcbn0gZnJvbSAnQGFsZnJlc2NvL2FkZi1leHRlbnNpb25zJztcbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UsIEF1dGhlbnRpY2F0aW9uU2VydmljZSwgTG9nU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5vZGVFbnRyeSwgUmVwb3NpdG9yeUluZm8gfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IFZpZXdlclJ1bGVzIH0gZnJvbSAnLi4vbW9kZWxzL3ZpZXdlci5ydWxlcyc7XG5pbXBvcnQgeyBCYWRnZSB9IGZyb20gJy4uL21vZGVscy90eXBlcyc7XG5pbXBvcnQgeyBOb2RlUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9ub2RlLXBlcm1pc3Npb24uc2VydmljZSc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTZWFyY2hDYXRlZ29yeSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29udGVudC1zZXJ2aWNlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFwcEV4dGVuc2lvblNlcnZpY2UgaW1wbGVtZW50cyBSdWxlQ29udGV4dCB7XG4gIHByaXZhdGUgX3JlZmVyZW5jZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEV4dGVuc2lvblJlZltdPihbXSk7XG4gIGJ1bGtBY3Rpb25FeGVjdXRlZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIG5hdmJhcjogQXJyYXk8TmF2QmFyR3JvdXBSZWY+ID0gW107XG4gIHNpZGViYXJUYWJzOiBBcnJheTxTaWRlYmFyVGFiUmVmPiA9IFtdO1xuICBjb250ZW50TWV0YWRhdGE6IGFueTtcbiAgc2VhcmNoOiBhbnk7XG4gIHZpZXdlclJ1bGVzOiBWaWV3ZXJSdWxlcyA9IHt9O1xuXG4gIHByaXZhdGUgX2hlYWRlckFjdGlvbnMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFycmF5PENvbnRlbnRBY3Rpb25SZWY+PihbXSk7XG4gIHByaXZhdGUgX3Rvb2xiYXJBY3Rpb25zID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTxDb250ZW50QWN0aW9uUmVmPj4oW10pO1xuICBwcml2YXRlIF92aWV3ZXJUb29sYmFyQWN0aW9ucyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJyYXk8Q29udGVudEFjdGlvblJlZj4+KFtdKTtcbiAgcHJpdmF0ZSBfc2hhcmVkTGlua1ZpZXdlclRvb2xiYXJBY3Rpb25zID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTxDb250ZW50QWN0aW9uUmVmPj4oW10pO1xuICBwcml2YXRlIF9jb250ZXh0TWVudUFjdGlvbnMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFycmF5PENvbnRlbnRBY3Rpb25SZWY+PihbXSk7XG4gIHByaXZhdGUgX29wZW5XaXRoQWN0aW9ucyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJyYXk8Q29udGVudEFjdGlvblJlZj4+KFtdKTtcbiAgcHJpdmF0ZSBfY3JlYXRlQWN0aW9ucyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJyYXk8Q29udGVudEFjdGlvblJlZj4+KFtdKTtcbiAgcHJpdmF0ZSBfc2lkZWJhckFjdGlvbnMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFycmF5PENvbnRlbnRBY3Rpb25SZWY+PihbXSk7XG4gIHByaXZhdGUgX2JhZGdlcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJyYXk8QmFkZ2U+PihbXSk7XG4gIHByaXZhdGUgX2ZpbGVzRG9jdW1lbnRMaXN0UHJlc2V0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTxEb2N1bWVudExpc3RQcmVzZXRSZWY+PihbXSk7XG4gIHByaXZhdGUgX2N1c3RvbU1ldGFkYXRhUGFuZWxzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTxDb250ZW50QWN0aW9uUmVmPj4oW10pO1xuICBwcml2YXRlIF9idWxrQWN0aW9ucyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJyYXk8Q29udGVudEFjdGlvblJlZj4+KFtdKTtcblxuICBkb2N1bWVudExpc3RQcmVzZXRzOiB7XG4gICAgbGlicmFyaWVzOiBBcnJheTxEb2N1bWVudExpc3RQcmVzZXRSZWY+O1xuICAgIGZhdm9yaXRlTGlicmFyaWVzOiBBcnJheTxEb2N1bWVudExpc3RQcmVzZXRSZWY+O1xuICAgIHNoYXJlZDogQXJyYXk8RG9jdW1lbnRMaXN0UHJlc2V0UmVmPjtcbiAgICByZWNlbnQ6IEFycmF5PERvY3VtZW50TGlzdFByZXNldFJlZj47XG4gICAgZmF2b3JpdGVzOiBBcnJheTxEb2N1bWVudExpc3RQcmVzZXRSZWY+O1xuICAgIHRyYXNoY2FuOiBBcnJheTxEb2N1bWVudExpc3RQcmVzZXRSZWY+O1xuICAgIHNlYXJjaExpYnJhcmllczogQXJyYXk8RG9jdW1lbnRMaXN0UHJlc2V0UmVmPjtcbiAgICBzZWFyY2hSZXN1bHRzOiBBcnJheTxEb2N1bWVudExpc3RQcmVzZXRSZWY+O1xuICB9ID0ge1xuICAgIGxpYnJhcmllczogW10sXG4gICAgZmF2b3JpdGVMaWJyYXJpZXM6IFtdLFxuICAgIHNoYXJlZDogW10sXG4gICAgcmVjZW50OiBbXSxcbiAgICBmYXZvcml0ZXM6IFtdLFxuICAgIHRyYXNoY2FuOiBbXSxcbiAgICBzZWFyY2hMaWJyYXJpZXM6IFtdLFxuICAgIHNlYXJjaFJlc3VsdHM6IFtdXG4gIH07XG5cbiAgc2VsZWN0aW9uOiBTZWxlY3Rpb25TdGF0ZTtcbiAgbmF2aWdhdGlvbjogTmF2aWdhdGlvblN0YXRlO1xuICBwcm9maWxlOiBQcm9maWxlU3RhdGU7XG4gIHJlcG9zaXRvcnk6IFJlcG9zaXRvcnlJbmZvO1xuICB3aXRoQ3JlZGVudGlhbHM6IGJvb2xlYW47XG5cbiAgcmVmZXJlbmNlcyQ6IE9ic2VydmFibGU8RXh0ZW5zaW9uUmVmW10+O1xuICBmaWxlc0RvY3VtZW50TGlzdFByZXNldCQ6IE9ic2VydmFibGU8RG9jdW1lbnRMaXN0UHJlc2V0UmVmW10+ID0gdGhpcy5fZmlsZXNEb2N1bWVudExpc3RQcmVzZXQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgY29uZmlnOiBFeHRlbnNpb25Db25maWc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGF1dGg6IEF1dGhlbnRpY2F0aW9uU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgc3RvcmU6IFN0b3JlPEFwcFN0b3JlPixcbiAgICBwcm90ZWN0ZWQgbG9hZGVyOiBFeHRlbnNpb25Mb2FkZXJTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBleHRlbnNpb25zOiBFeHRlbnNpb25TZXJ2aWNlLFxuICAgIHB1YmxpYyBwZXJtaXNzaW9uczogTm9kZVBlcm1pc3Npb25TZXJ2aWNlLFxuICAgIHB1YmxpYyBhcHBDb25maWc6IEFwcENvbmZpZ1NlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG1hdEljb25SZWdpc3RyeTogTWF0SWNvblJlZ2lzdHJ5LFxuICAgIHByb3RlY3RlZCBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICBwcm90ZWN0ZWQgbG9nZ2VyOiBMb2dTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMucmVmZXJlbmNlcyQgPSB0aGlzLl9yZWZlcmVuY2VzLmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgdGhpcy5zdG9yZS5zZWxlY3QoZ2V0UnVsZUNvbnRleHQpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICB0aGlzLnNlbGVjdGlvbiA9IHJlc3VsdC5zZWxlY3Rpb247XG4gICAgICB0aGlzLm5hdmlnYXRpb24gPSByZXN1bHQubmF2aWdhdGlvbjtcbiAgICAgIHRoaXMucHJvZmlsZSA9IHJlc3VsdC5wcm9maWxlO1xuICAgICAgdGhpcy5yZXBvc2l0b3J5ID0gcmVzdWx0LnJlcG9zaXRvcnk7XG5cbiAgICAgIGlmICh0aGlzLmNvbmZpZykge1xuICAgICAgICB0aGlzLnNldHVwKHRoaXMuY29uZmlnKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGxvYWQoKSB7XG4gICAgdGhpcy5jb25maWcgPSBhd2FpdCB0aGlzLmV4dGVuc2lvbnMubG9hZCgpO1xuICAgIHRoaXMuc2V0dXAodGhpcy5jb25maWcpO1xuICB9XG5cbiAgc2V0dXAoY29uZmlnOiBFeHRlbnNpb25Db25maWcpIHtcbiAgICBpZiAoIWNvbmZpZykge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoJ0V4dGVuc2lvbiBjb25maWd1cmF0aW9uIG5vdCBmb3VuZCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2hlYWRlckFjdGlvbnMubmV4dCh0aGlzLmxvYWRlci5nZXRDb250ZW50QWN0aW9ucyhjb25maWcsICdmZWF0dXJlcy5oZWFkZXInKSk7XG4gICAgdGhpcy5fc2lkZWJhckFjdGlvbnMubmV4dCh0aGlzLmxvYWRlci5nZXRDb250ZW50QWN0aW9ucyhjb25maWcsICdmZWF0dXJlcy5zaWRlYmFyLnRvb2xiYXInKSk7XG4gICAgdGhpcy5fdG9vbGJhckFjdGlvbnMubmV4dCh0aGlzLmxvYWRlci5nZXRDb250ZW50QWN0aW9ucyhjb25maWcsICdmZWF0dXJlcy50b29sYmFyJykpO1xuICAgIHRoaXMuX3ZpZXdlclRvb2xiYXJBY3Rpb25zLm5leHQodGhpcy5sb2FkZXIuZ2V0Q29udGVudEFjdGlvbnMoY29uZmlnLCAnZmVhdHVyZXMudmlld2VyLnRvb2xiYXJBY3Rpb25zJykpO1xuICAgIHRoaXMuX3NoYXJlZExpbmtWaWV3ZXJUb29sYmFyQWN0aW9ucy5uZXh0KHRoaXMubG9hZGVyLmdldENvbnRlbnRBY3Rpb25zKGNvbmZpZywgJ2ZlYXR1cmVzLnZpZXdlci5zaGFyZWQudG9vbGJhckFjdGlvbnMnKSk7XG4gICAgdGhpcy5fY29udGV4dE1lbnVBY3Rpb25zLm5leHQodGhpcy5sb2FkZXIuZ2V0Q29udGVudEFjdGlvbnMoY29uZmlnLCAnZmVhdHVyZXMuY29udGV4dE1lbnUnKSk7XG4gICAgdGhpcy5fb3BlbldpdGhBY3Rpb25zLm5leHQodGhpcy5sb2FkZXIuZ2V0Q29udGVudEFjdGlvbnMoY29uZmlnLCAnZmVhdHVyZXMudmlld2VyLm9wZW5XaXRoJykpO1xuICAgIHRoaXMuX2NyZWF0ZUFjdGlvbnMubmV4dCh0aGlzLmxvYWRlci5nZXRFbGVtZW50czxDb250ZW50QWN0aW9uUmVmPihjb25maWcsICdmZWF0dXJlcy5jcmVhdGUnKSk7XG4gICAgdGhpcy5fYmFkZ2VzLm5leHQodGhpcy5sb2FkZXIuZ2V0RWxlbWVudHM8QmFkZ2U+KGNvbmZpZywgJ2ZlYXR1cmVzLmJhZGdlcycpKTtcbiAgICB0aGlzLl9maWxlc0RvY3VtZW50TGlzdFByZXNldC5uZXh0KHRoaXMuZ2V0RG9jdW1lbnRMaXN0UHJlc2V0KGNvbmZpZywgJ2ZpbGVzJykpO1xuICAgIHRoaXMuX2N1c3RvbU1ldGFkYXRhUGFuZWxzLm5leHQodGhpcy5sb2FkZXIuZ2V0RWxlbWVudHM8Q29udGVudEFjdGlvblJlZj4oY29uZmlnLCAnZmVhdHVyZXMuY3VzdG9tTWV0YWRhdGFQYW5lbHMnKSk7XG4gICAgdGhpcy5fYnVsa0FjdGlvbnMubmV4dCh0aGlzLmxvYWRlci5nZXRFbGVtZW50czxDb250ZW50QWN0aW9uUmVmPihjb25maWcsICdmZWF0dXJlcy5idWxrLWFjdGlvbnMnKSk7XG5cbiAgICB0aGlzLm5hdmJhciA9IHRoaXMubG9hZE5hdkJhcihjb25maWcpO1xuICAgIHRoaXMuc2lkZWJhclRhYnMgPSB0aGlzLmxvYWRlci5nZXRFbGVtZW50czxTaWRlYmFyVGFiUmVmPihjb25maWcsICdmZWF0dXJlcy5zaWRlYmFyLnRhYnMnKTtcbiAgICB0aGlzLmNvbnRlbnRNZXRhZGF0YSA9IHRoaXMubG9hZENvbnRlbnRNZXRhZGF0YShjb25maWcpO1xuICAgIHRoaXMuc2VhcmNoID0gdGhpcy5sb2FkU2VhcmNoRm9ybXMoY29uZmlnKTtcbiAgICB0aGlzLnNlYXJjaD8uZm9yRWFjaCgoc2VhcmNoU2V0KSA9PiB7XG4gICAgICBzZWFyY2hTZXQuY2F0ZWdvcmllcyA9IHNlYXJjaFNldC5jYXRlZ29yaWVzPy5maWx0ZXIoKGNhdGVnb3J5KSA9PiB0aGlzLmZpbHRlclZpc2libGUoY2F0ZWdvcnkpKTtcbiAgICB9KTtcblxuICAgIHRoaXMuZG9jdW1lbnRMaXN0UHJlc2V0cyA9IHtcbiAgICAgIGxpYnJhcmllczogdGhpcy5nZXREb2N1bWVudExpc3RQcmVzZXQoY29uZmlnLCAnbGlicmFyaWVzJyksXG4gICAgICBmYXZvcml0ZUxpYnJhcmllczogdGhpcy5nZXREb2N1bWVudExpc3RQcmVzZXQoY29uZmlnLCAnZmF2b3JpdGVMaWJyYXJpZXMnKSxcbiAgICAgIHNoYXJlZDogdGhpcy5nZXREb2N1bWVudExpc3RQcmVzZXQoY29uZmlnLCAnc2hhcmVkJyksXG4gICAgICByZWNlbnQ6IHRoaXMuZ2V0RG9jdW1lbnRMaXN0UHJlc2V0KGNvbmZpZywgJ3JlY2VudCcpLFxuICAgICAgZmF2b3JpdGVzOiB0aGlzLmdldERvY3VtZW50TGlzdFByZXNldChjb25maWcsICdmYXZvcml0ZXMnKSxcbiAgICAgIHRyYXNoY2FuOiB0aGlzLmdldERvY3VtZW50TGlzdFByZXNldChjb25maWcsICd0cmFzaGNhbicpLFxuICAgICAgc2VhcmNoTGlicmFyaWVzOiB0aGlzLmdldERvY3VtZW50TGlzdFByZXNldChjb25maWcsICdzZWFyY2gtbGlicmFyaWVzJyksXG4gICAgICBzZWFyY2hSZXN1bHRzOiB0aGlzLmdldERvY3VtZW50TGlzdFByZXNldChjb25maWcsICdzZWFyY2gtcmVzdWx0cycpXG4gICAgfTtcblxuICAgIHRoaXMud2l0aENyZWRlbnRpYWxzID0gdGhpcy5hcHBDb25maWcuZ2V0PGJvb2xlYW4+KCdhdXRoLndpdGhDcmVkZW50aWFscycsIGZhbHNlKTtcblxuICAgIGlmIChjb25maWcuZmVhdHVyZXM/LnZpZXdlcikge1xuICAgICAgdGhpcy52aWV3ZXJSdWxlcyA9IChjb25maWcuZmVhdHVyZXMudmlld2VyWydydWxlcyddIGFzIFZpZXdlclJ1bGVzKSB8fCB7fTtcbiAgICB9XG5cbiAgICB0aGlzLnJlZ2lzdGVySWNvbnMoY29uZmlnKTtcblxuICAgIGNvbnN0IHJlZmVyZW5jZXMgPSAoY29uZmlnLiRyZWZlcmVuY2VzIHx8IFtdKS5maWx0ZXIoKGVudHJ5KSA9PiB0eXBlb2YgZW50cnkgPT09ICdvYmplY3QnKS5tYXAoKGVudHJ5KSA9PiBlbnRyeSBhcyBFeHRlbnNpb25SZWYpO1xuICAgIHRoaXMuX3JlZmVyZW5jZXMubmV4dChyZWZlcmVuY2VzKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWdpc3Rlckljb25zKGNvbmZpZzogRXh0ZW5zaW9uQ29uZmlnKSB7XG4gICAgY29uc3QgaWNvbnM6IEFycmF5PEljb25SZWY+ID0gdGhpcy5sb2FkZXIuZ2V0RWxlbWVudHM8SWNvblJlZj4oY29uZmlnLCAnZmVhdHVyZXMuaWNvbnMnKS5maWx0ZXIoKGVudHJ5KSA9PiAhZW50cnkuZGlzYWJsZWQpO1xuXG4gICAgZm9yIChjb25zdCBpY29uIG9mIGljb25zKSB7XG4gICAgICBjb25zdCBbbnMsIGlkXSA9IGljb24uaWQuc3BsaXQoJzonKTtcbiAgICAgIGNvbnN0IHZhbHVlID0gaWNvbi52YWx1ZTtcblxuICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICB0aGlzLmxvZ2dlci53YXJuKGBNaXNzaW5nIGljb24gdmFsdWUgZm9yIFwiJHtpY29uLmlkfVwiLmApO1xuICAgICAgfSBlbHNlIGlmICghbnMgfHwgIWlkKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLndhcm4oYEluY29ycmVjdCBpY29uIGlkIGZvcm1hdC5gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubWF0SWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25Jbk5hbWVzcGFjZShucywgaWQsIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh2YWx1ZSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBsb2FkTmF2QmFyKGNvbmZpZzogRXh0ZW5zaW9uQ29uZmlnKTogQXJyYXk8TmF2QmFyR3JvdXBSZWY+IHtcbiAgICByZXR1cm4gdGhpcy5sb2FkZXIuZ2V0RWxlbWVudHM8TmF2QmFyR3JvdXBSZWY+KGNvbmZpZywgJ2ZlYXR1cmVzLm5hdmJhcicpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldERvY3VtZW50TGlzdFByZXNldChjb25maWc6IEV4dGVuc2lvbkNvbmZpZywga2V5OiBzdHJpbmcpOiBEb2N1bWVudExpc3RQcmVzZXRSZWZbXSB7XG4gICAgcmV0dXJuIHRoaXMubG9hZGVyXG4gICAgICAuZ2V0RWxlbWVudHM8RG9jdW1lbnRMaXN0UHJlc2V0UmVmPihjb25maWcsIGBmZWF0dXJlcy5kb2N1bWVudExpc3QuJHtrZXl9YClcbiAgICAgIC5maWx0ZXIoKGdyb3VwKSA9PiB0aGlzLmZpbHRlclZpc2libGUoZ3JvdXApKVxuICAgICAgLmZpbHRlcigoZW50cnkpID0+ICFlbnRyeS5kaXNhYmxlZClcbiAgICAgIC5tYXAoKGVudHJ5KSA9PiB7XG4gICAgICAgIGVudHJ5LnJlc2l6YWJsZSA9IGVudHJ5LnJlc2l6YWJsZSA/PyB0cnVlO1xuICAgICAgICByZXR1cm4gZW50cnk7XG4gICAgICB9KVxuICAgICAgLnNvcnQoc29ydEJ5T3JkZXIpO1xuICB9XG5cbiAgZ2V0QXBwbGljYXRpb25OYXZpZ2F0aW9uKGVsZW1lbnRzKTogQXJyYXk8TmF2QmFyR3JvdXBSZWY+IHtcbiAgICByZXR1cm4gZWxlbWVudHNcbiAgICAgIC5maWx0ZXIoKGdyb3VwKSA9PiB0aGlzLmZpbHRlclZpc2libGUoZ3JvdXApKVxuICAgICAgLm1hcCgoZ3JvdXApID0+ICh7XG4gICAgICAgIC4uLmdyb3VwLFxuICAgICAgICBpdGVtczogKGdyb3VwLml0ZW1zIHx8IFtdKVxuICAgICAgICAgIC5maWx0ZXIoKGVudHJ5KSA9PiAhZW50cnkuZGlzYWJsZWQpXG4gICAgICAgICAgLmZpbHRlcigoaXRlbSkgPT4gdGhpcy5maWx0ZXJWaXNpYmxlKGl0ZW0pKVxuICAgICAgICAgIC5zb3J0KHNvcnRCeU9yZGVyKVxuICAgICAgICAgIC5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGlmIChpdGVtLmNoaWxkcmVuICYmIGl0ZW0uY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICBpdGVtLmNoaWxkcmVuID0gaXRlbS5jaGlsZHJlblxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGVudHJ5KSA9PiAhZW50cnkuZGlzYWJsZWQpXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoY2hpbGQpID0+IHRoaXMuZmlsdGVyVmlzaWJsZShjaGlsZCkpXG4gICAgICAgICAgICAgICAgLnNvcnQoc29ydEJ5T3JkZXIpXG4gICAgICAgICAgICAgICAgLm1hcCgoY2hpbGQpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChjaGlsZC5jb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAuLi5jaGlsZFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICBpZiAoIWNoaWxkLmNsaWNrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkUm91dGVSZWYgPSB0aGlzLmV4dGVuc2lvbnMuZ2V0Um91dGVCeUlkKGNoaWxkLnJvdXRlKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hpbGRVcmwgPSBgLyR7Y2hpbGRSb3V0ZVJlZiA/IGNoaWxkUm91dGVSZWYucGF0aCA6IGNoaWxkLnJvdXRlfWA7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgLi4uY2hpbGQsXG4gICAgICAgICAgICAgICAgICAgICAgdXJsOiBjaGlsZFVybFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5jaGlsZCxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiBjaGlsZC5jbGlja1xuICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLml0ZW1cbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGl0ZW0uY29tcG9uZW50KSB7XG4gICAgICAgICAgICAgIHJldHVybiB7IC4uLml0ZW0gfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFpdGVtLmNsaWNrKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHJvdXRlUmVmID0gdGhpcy5leHRlbnNpb25zLmdldFJvdXRlQnlJZChpdGVtLnJvdXRlKTtcbiAgICAgICAgICAgICAgY29uc3QgdXJsID0gYC8ke3JvdXRlUmVmID8gcm91dGVSZWYucGF0aCA6IGl0ZW0ucm91dGV9YDtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgICAgIHVybFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgICBhY3Rpb246IGl0ZW0uY2xpY2tcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSlcbiAgICAgICAgICAucmVkdWNlKHJlZHVjZUVtcHR5TWVudXMsIFtdKVxuICAgICAgfSkpO1xuICB9XG5cbiAgbG9hZENvbnRlbnRNZXRhZGF0YShjb25maWc6IEV4dGVuc2lvbkNvbmZpZyk6IGFueSB7XG4gICAgY29uc3QgZWxlbWVudHMgPSB0aGlzLmxvYWRlci5nZXRFbGVtZW50czxhbnk+KGNvbmZpZywgJ2ZlYXR1cmVzLmNvbnRlbnQtbWV0YWRhdGEtcHJlc2V0cycpO1xuICAgIGlmICghZWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBsZXQgcHJlc2V0cyA9IHt9O1xuICAgIHByZXNldHMgPSB0aGlzLmZpbHRlckRpc2FibGVkKG1lcmdlT2JqZWN0cyhwcmVzZXRzLCAuLi5lbGVtZW50cykpO1xuXG4gICAgY29uc3QgbWV0YWRhdGEgPSB0aGlzLmFwcENvbmZpZy5jb25maWdbJ2NvbnRlbnQtbWV0YWRhdGEnXSB8fCB7fTtcbiAgICBtZXRhZGF0YS5wcmVzZXRzID0gcHJlc2V0cztcblxuICAgIHRoaXMuYXBwQ29uZmlnLmNvbmZpZ1snY29udGVudC1tZXRhZGF0YSddID0gbWV0YWRhdGE7XG4gICAgcmV0dXJuIHsgcHJlc2V0cyB9O1xuICB9XG5cbiAgbG9hZFNlYXJjaEZvcm1zKGNvbmZpZzogRXh0ZW5zaW9uQ29uZmlnKTogYW55IHtcbiAgICBjb25zdCBlbGVtZW50cyA9IHRoaXMubG9hZGVyLmdldEVsZW1lbnRzPGFueT4oY29uZmlnLCAnZmVhdHVyZXMuc2VhcmNoJyk7XG4gICAgaWYgKCFlbGVtZW50cy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHNlYXJjaCA9IG1lcmdlQXJyYXlzKFtdLCBlbGVtZW50cylcbiAgICAgIC5maWx0ZXIoKGVudHJ5KSA9PiAhZW50cnkuZGlzYWJsZWQpXG4gICAgICAuZmlsdGVyKChlbnRyeSkgPT4gdGhpcy5maWx0ZXJWaXNpYmxlKGVudHJ5KSlcbiAgICAgIC5zb3J0KHNvcnRCeU9yZGVyKTtcblxuICAgIHRoaXMuYXBwQ29uZmlnLmNvbmZpZ1snc2VhcmNoJ10gPSBzZWFyY2g7XG4gICAgcmV0dXJuIHNlYXJjaDtcbiAgfVxuXG4gIGZpbHRlckRpc2FibGVkKG9iamVjdDogQXJyYXk8eyBkaXNhYmxlZDogYm9vbGVhbiB9PiB8IHsgZGlzYWJsZWQ6IGJvb2xlYW4gfSkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KG9iamVjdCkpIHtcbiAgICAgIHJldHVybiBvYmplY3QuZmlsdGVyKChpdGVtKSA9PiAhaXRlbS5kaXNhYmxlZCkubWFwKChpdGVtKSA9PiB0aGlzLmZpbHRlckRpc2FibGVkKGl0ZW0pKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBvYmplY3QgPT09ICdvYmplY3QnKSB7XG4gICAgICBpZiAoIW9iamVjdC5kaXNhYmxlZCkge1xuICAgICAgICBPYmplY3Qua2V5cyhvYmplY3QpLmZvckVhY2goKHByb3ApID0+IHtcbiAgICAgICAgICBvYmplY3RbcHJvcF0gPSB0aGlzLmZpbHRlckRpc2FibGVkKG9iamVjdFtwcm9wXSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH1cbiAgfVxuXG4gIGdldFNpZGViYXJUYWJzKCk6IEFycmF5PFNpZGViYXJUYWJSZWY+IHtcbiAgICByZXR1cm4gdGhpcy5zaWRlYmFyVGFicy5maWx0ZXIoKGFjdGlvbikgPT4gdGhpcy5maWx0ZXJWaXNpYmxlKGFjdGlvbikpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRBY3Rpb25EaXNhYmxlZEZyb21SdWxlKGFjdGlvbjogQ29udGVudEFjdGlvblJlZikge1xuICAgIGxldCBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgaWYgKGFjdGlvbj8ucnVsZXM/LmVuYWJsZWQpIHtcbiAgICAgIGRpc2FibGVkID0gIXRoaXMuZXh0ZW5zaW9ucy5ldmFsdWF0ZVJ1bGUoYWN0aW9uLnJ1bGVzLmVuYWJsZWQsIHRoaXMpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5hY3Rpb24sXG4gICAgICBkaXNhYmxlZFxuICAgIH07XG4gIH1cblxuICB1cGRhdGVTaWRlYmFyQWN0aW9ucygpIHtcbiAgICB0aGlzLl9zaWRlYmFyQWN0aW9ucy5uZXh0KHRoaXMubG9hZGVyLmdldENvbnRlbnRBY3Rpb25zKHRoaXMuY29uZmlnLCAnZmVhdHVyZXMuc2lkZWJhci50b29sYmFyJykpO1xuICB9XG5cbiAgZ2V0Q3JlYXRlQWN0aW9ucygpOiBPYnNlcnZhYmxlPEFycmF5PENvbnRlbnRBY3Rpb25SZWY+PiB7XG4gICAgcmV0dXJuIHRoaXMuX2NyZWF0ZUFjdGlvbnMucGlwZShcbiAgICAgIG1hcCgoY3JlYXRlQWN0aW9ucykgPT5cbiAgICAgICAgY3JlYXRlQWN0aW9uc1xuICAgICAgICAgIC5maWx0ZXIoKGFjdGlvbikgPT4gdGhpcy5maWx0ZXJWaXNpYmxlKGFjdGlvbikpXG4gICAgICAgICAgLm1hcCgoYWN0aW9uKSA9PiB0aGlzLmNvcHlBY3Rpb24oYWN0aW9uKSlcbiAgICAgICAgICAubWFwKChhY3Rpb24pID0+IHRoaXMuYnVpbGRNZW51KGFjdGlvbikpXG4gICAgICAgICAgLm1hcCgoYWN0aW9uKSA9PiB0aGlzLnNldEFjdGlvbkRpc2FibGVkRnJvbVJ1bGUoYWN0aW9uKSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgZ2V0QmFkZ2VzKG5vZGU6IE5vZGVFbnRyeSk6IE9ic2VydmFibGU8QXJyYXk8QmFkZ2U+PiB7XG4gICAgcmV0dXJuIHRoaXMuX2JhZGdlcy5waXBlKG1hcCgoYmFkZ2VzKSA9PiBiYWRnZXMuZmlsdGVyKChiYWRnZSkgPT4gdGhpcy5ldmFsdWF0ZVJ1bGUoYmFkZ2UucnVsZXMudmlzaWJsZSwgbm9kZSkpKSk7XG4gIH1cblxuICBnZXRDdXN0b21NZXRhZGF0YVBhbmVscyhub2RlOiBOb2RlRW50cnkpOiBPYnNlcnZhYmxlPEFycmF5PENvbnRlbnRBY3Rpb25SZWY+PiB7XG4gICAgcmV0dXJuIHRoaXMuX2N1c3RvbU1ldGFkYXRhUGFuZWxzLnBpcGUobWFwKChwYW5lbHMpID0+IHBhbmVscy5maWx0ZXIoKHBhbmVsKSA9PiB0aGlzLmV2YWx1YXRlUnVsZShwYW5lbC5ydWxlcy52aXNpYmxlLCBub2RlKSkpKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRNZW51KGFjdGlvblJlZjogQ29udGVudEFjdGlvblJlZik6IENvbnRlbnRBY3Rpb25SZWYge1xuICAgIGlmIChhY3Rpb25SZWYudHlwZSA9PT0gQ29udGVudEFjdGlvblR5cGUubWVudSAmJiBhY3Rpb25SZWYuY2hpbGRyZW4gJiYgYWN0aW9uUmVmLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGNoaWxkcmVuID0gYWN0aW9uUmVmLmNoaWxkcmVuLmZpbHRlcigoYWN0aW9uKSA9PiB0aGlzLmZpbHRlclZpc2libGUoYWN0aW9uKSkubWFwKChhY3Rpb24pID0+IHRoaXMuYnVpbGRNZW51KGFjdGlvbikpO1xuXG4gICAgICBhY3Rpb25SZWYuY2hpbGRyZW4gPSBjaGlsZHJlblxuICAgICAgICAubWFwKChhY3Rpb24pID0+IHRoaXMuc2V0QWN0aW9uRGlzYWJsZWRGcm9tUnVsZShhY3Rpb24pKVxuICAgICAgICAuc29ydChzb3J0QnlPcmRlcilcbiAgICAgICAgLnJlZHVjZShyZWR1Y2VFbXB0eU1lbnVzLCBbXSlcbiAgICAgICAgLnJlZHVjZShyZWR1Y2VTZXBhcmF0b3JzLCBbXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjdGlvblJlZjtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWxsb3dlZEFjdGlvbnMoYWN0aW9uczogQ29udGVudEFjdGlvblJlZltdKTogQ29udGVudEFjdGlvblJlZltdIHtcbiAgICByZXR1cm4gKGFjdGlvbnMgfHwgW10pXG4gICAgICAuZmlsdGVyKChhY3Rpb24pID0+IHRoaXMuZmlsdGVyVmlzaWJsZShhY3Rpb24pKVxuICAgICAgLm1hcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgIGlmIChhY3Rpb24udHlwZSA9PT0gQ29udGVudEFjdGlvblR5cGUubWVudSkge1xuICAgICAgICAgIGNvbnN0IGNvcHkgPSB0aGlzLmNvcHlBY3Rpb24oYWN0aW9uKTtcbiAgICAgICAgICBpZiAoY29weS5jaGlsZHJlbiAmJiBjb3B5LmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvcHkuY2hpbGRyZW4gPSBjb3B5LmNoaWxkcmVuXG4gICAgICAgICAgICAgIC5maWx0ZXIoKGVudHJ5KSA9PiAhZW50cnkuZGlzYWJsZWQpXG4gICAgICAgICAgICAgIC5maWx0ZXIoKGNoaWxkQWN0aW9uKSA9PiB0aGlzLmZpbHRlclZpc2libGUoY2hpbGRBY3Rpb24pKVxuICAgICAgICAgICAgICAuc29ydChzb3J0QnlPcmRlcilcbiAgICAgICAgICAgICAgLnJlZHVjZShyZWR1Y2VTZXBhcmF0b3JzLCBbXSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBjb3B5O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY3Rpb247XG4gICAgICB9KVxuICAgICAgLm1hcCgoYWN0aW9uKSA9PiB0aGlzLnNldEFjdGlvbkRpc2FibGVkRnJvbVJ1bGUoYWN0aW9uKSlcbiAgICAgIC5yZWR1Y2UocmVkdWNlRW1wdHlNZW51cywgW10pXG4gICAgICAucmVkdWNlKHJlZHVjZVNlcGFyYXRvcnMsIFtdKTtcbiAgfVxuXG4gIGdldEFsbG93ZWRTaWRlYmFyQWN0aW9ucygpOiBPYnNlcnZhYmxlPEFycmF5PENvbnRlbnRBY3Rpb25SZWY+PiB7XG4gICAgcmV0dXJuIHRoaXMuX3NpZGViYXJBY3Rpb25zLnBpcGUobWFwKChzaWRlYmFyQWN0aW9ucykgPT4gdGhpcy5nZXRBbGxvd2VkQWN0aW9ucyhzaWRlYmFyQWN0aW9ucykpKTtcbiAgfVxuXG4gIGdldEFsbG93ZWRUb29sYmFyQWN0aW9ucygpOiBPYnNlcnZhYmxlPEFycmF5PENvbnRlbnRBY3Rpb25SZWY+PiB7XG4gICAgcmV0dXJuIHRoaXMuX3Rvb2xiYXJBY3Rpb25zLnBpcGUobWFwKCh0b29sYmFyQWN0aW9ucykgPT4gdGhpcy5nZXRBbGxvd2VkQWN0aW9ucyh0b29sYmFyQWN0aW9ucykpKTtcbiAgfVxuXG4gIGdldFZpZXdlclRvb2xiYXJBY3Rpb25zKCk6IE9ic2VydmFibGU8QXJyYXk8Q29udGVudEFjdGlvblJlZj4+IHtcbiAgICByZXR1cm4gdGhpcy5fdmlld2VyVG9vbGJhckFjdGlvbnMucGlwZShtYXAoKHZpZXdlclRvb2xiYXJBY3Rpb25zKSA9PiB0aGlzLmdldEFsbG93ZWRBY3Rpb25zKHZpZXdlclRvb2xiYXJBY3Rpb25zKSkpO1xuICB9XG5cbiAgZ2V0QnVsa0FjdGlvbnMoKTogT2JzZXJ2YWJsZTxBcnJheTxDb250ZW50QWN0aW9uUmVmPj4ge1xuICAgIHJldHVybiB0aGlzLl9idWxrQWN0aW9ucy5waXBlKG1hcCgoYnVsa0FjdGlvbnMpID0+IHRoaXMuZ2V0QWxsb3dlZEFjdGlvbnMoYnVsa0FjdGlvbnMpKSk7XG4gIH1cblxuICBnZXRPcGVuV2l0aEFjdGlvbnMoKTogT2JzZXJ2YWJsZTxBcnJheTxDb250ZW50QWN0aW9uUmVmPj4ge1xuICAgIHJldHVybiB0aGlzLl9vcGVuV2l0aEFjdGlvbnMucGlwZShtYXAoKG9wZW5XaXRoQWN0aW9ucykgPT4gdGhpcy5nZXRBbGxvd2VkQWN0aW9ucyhvcGVuV2l0aEFjdGlvbnMpKSk7XG4gIH1cblxuICBnZXRTaGFyZWRMaW5rVmlld2VyVG9vbGJhckFjdGlvbnMoKTogT2JzZXJ2YWJsZTxBcnJheTxDb250ZW50QWN0aW9uUmVmPj4ge1xuICAgIHJldHVybiB0aGlzLl9zaGFyZWRMaW5rVmlld2VyVG9vbGJhckFjdGlvbnMucGlwZShcbiAgICAgIG1hcCgoc2hhcmVkTGlua1ZpZXdlclRvb2xiYXJBY3Rpb25zKSA9PiAoIXRoaXMuc2VsZWN0aW9uLmlzRW1wdHkgPyB0aGlzLmdldEFsbG93ZWRBY3Rpb25zKHNoYXJlZExpbmtWaWV3ZXJUb29sYmFyQWN0aW9ucykgOiBbXSkpXG4gICAgKTtcbiAgfVxuXG4gIGdldEhlYWRlckFjdGlvbnMoKTogT2JzZXJ2YWJsZTxBcnJheTxDb250ZW50QWN0aW9uUmVmPj4ge1xuICAgIHJldHVybiB0aGlzLl9oZWFkZXJBY3Rpb25zLnBpcGUoXG4gICAgICBtYXAoKGhlYWRlckFjdGlvbnMpID0+XG4gICAgICAgIGhlYWRlckFjdGlvbnNcbiAgICAgICAgICAuZmlsdGVyKChhY3Rpb24pID0+IHRoaXMuZmlsdGVyVmlzaWJsZShhY3Rpb24pKVxuICAgICAgICAgIC5tYXAoKGFjdGlvbikgPT4ge1xuICAgICAgICAgICAgaWYgKGFjdGlvbi50eXBlID09PSBDb250ZW50QWN0aW9uVHlwZS5tZW51KSB7XG4gICAgICAgICAgICAgIGNvbnN0IGNvcHkgPSB0aGlzLmNvcHlBY3Rpb24oYWN0aW9uKTtcbiAgICAgICAgICAgICAgaWYgKGNvcHkuY2hpbGRyZW4gJiYgY29weS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgY29weS5jaGlsZHJlbiA9IGNvcHkuY2hpbGRyZW5cbiAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKGNoaWxkQWN0aW9uKSA9PiB0aGlzLmZpbHRlclZpc2libGUoY2hpbGRBY3Rpb24pKVxuICAgICAgICAgICAgICAgICAgLnNvcnQoc29ydEJ5T3JkZXIpXG4gICAgICAgICAgICAgICAgICAucmVkdWNlKHJlZHVjZUVtcHR5TWVudXMsIFtdKVxuICAgICAgICAgICAgICAgICAgLnJlZHVjZShyZWR1Y2VTZXBhcmF0b3JzLCBbXSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIGNvcHk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBhY3Rpb247XG4gICAgICAgICAgfSlcbiAgICAgICAgICAubWFwKChhY3Rpb24pID0+IHRoaXMuc2V0QWN0aW9uRGlzYWJsZWRGcm9tUnVsZShhY3Rpb24pKVxuICAgICAgICAgIC5zb3J0KHNvcnRCeU9yZGVyKVxuICAgICAgICAgIC5yZWR1Y2UocmVkdWNlRW1wdHlNZW51cywgW10pXG4gICAgICAgICAgLnJlZHVjZShyZWR1Y2VTZXBhcmF0b3JzLCBbXSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgZ2V0QWxsb3dlZENvbnRleHRNZW51QWN0aW9ucygpOiBPYnNlcnZhYmxlPEFycmF5PENvbnRlbnRBY3Rpb25SZWY+PiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRleHRNZW51QWN0aW9ucy5waXBlKG1hcCgoY29udGV4dE1lbnVBY3Rpb25zKSA9PiAoIXRoaXMuc2VsZWN0aW9uLmlzRW1wdHkgPyB0aGlzLmdldEFsbG93ZWRBY3Rpb25zKGNvbnRleHRNZW51QWN0aW9ucykgOiBbXSkpKTtcbiAgfVxuXG4gIGNvcHlBY3Rpb24oYWN0aW9uOiBDb250ZW50QWN0aW9uUmVmKTogQ29udGVudEFjdGlvblJlZiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmFjdGlvbixcbiAgICAgIGNoaWxkcmVuOiAoYWN0aW9uLmNoaWxkcmVuIHx8IFtdKS5tYXAoKGNoaWxkKSA9PiB0aGlzLmNvcHlBY3Rpb24oY2hpbGQpKVxuICAgIH07XG4gIH1cblxuICBmaWx0ZXJWaXNpYmxlKGFjdGlvbjogQ29udGVudEFjdGlvblJlZiB8IFNpZGViYXJUYWJSZWYgfCBEb2N1bWVudExpc3RQcmVzZXRSZWYgfCBTZWFyY2hDYXRlZ29yeSk6IGJvb2xlYW4ge1xuICAgIGlmIChhY3Rpb24/LnJ1bGVzPy52aXNpYmxlKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShhY3Rpb24ucnVsZXMudmlzaWJsZSkpIHtcbiAgICAgICAgcmV0dXJuIGFjdGlvbi5ydWxlcy52aXNpYmxlLmV2ZXJ5KChydWxlKSA9PiB0aGlzLmV4dGVuc2lvbnMuZXZhbHVhdGVSdWxlKHJ1bGUsIHRoaXMpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmV4dGVuc2lvbnMuZXZhbHVhdGVSdWxlKGFjdGlvbi5ydWxlcy52aXNpYmxlLCB0aGlzKTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpc1ZpZXdlckV4dGVuc2lvbkRpc2FibGVkKGV4dGVuc2lvbjogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKGV4dGVuc2lvbikge1xuICAgICAgaWYgKGV4dGVuc2lvbi5kaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGV4dGVuc2lvbi5ydWxlcz8uZGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXh0ZW5zaW9ucy5ldmFsdWF0ZVJ1bGUoZXh0ZW5zaW9uLnJ1bGVzLmRpc2FibGVkLCB0aGlzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBydW5BY3Rpb25CeUlkKGlkOiBzdHJpbmcsIGFkZGl0aW9uYWxQYXlsb2FkPzogYW55KSB7XG4gICAgY29uc3QgYWN0aW9uID0gdGhpcy5leHRlbnNpb25zLmdldEFjdGlvbkJ5SWQoaWQpO1xuICAgIGlmIChhY3Rpb24pIHtcbiAgICAgIGNvbnN0IHsgdHlwZSwgcGF5bG9hZCB9ID0gYWN0aW9uO1xuICAgICAgY29uc3QgY29udGV4dCA9IHtcbiAgICAgICAgc2VsZWN0aW9uOiB0aGlzLnNlbGVjdGlvblxuICAgICAgfTtcbiAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSB0aGlzLmV4dGVuc2lvbnMucnVuRXhwcmVzc2lvbihwYXlsb2FkLCBjb250ZXh0KTtcblxuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaCh7XG4gICAgICAgIHR5cGUsXG4gICAgICAgIHBheWxvYWQ6IGV4cHJlc3Npb24sXG4gICAgICAgIGNvbmZpZ3VyYXRpb246IGFkZGl0aW9uYWxQYXlsb2FkXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaCh7XG4gICAgICAgIHR5cGU6IGlkLFxuICAgICAgICBjb25maWd1cmF0aW9uOiBhZGRpdGlvbmFsUGF5bG9hZFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gdG9kbzogbW92ZSB0byBBREYvUnVsZVNlcnZpY2VcbiAgaXNSdWxlRGVmaW5lZChydWxlSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIShydWxlSWQgJiYgdGhpcy5nZXRFdmFsdWF0b3IocnVsZUlkKSk7XG4gIH1cblxuICAvLyB0b2RvOiBtb3ZlIHRvIEFERi9SdWxlU2VydmljZVxuICBldmFsdWF0ZVJ1bGUocnVsZUlkOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZXZhbHVhdG9yID0gdGhpcy5nZXRFdmFsdWF0b3IocnVsZUlkKTtcblxuICAgIGlmIChldmFsdWF0b3IpIHtcbiAgICAgIHJldHVybiBldmFsdWF0b3IodGhpcywgLi4uYXJncyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZ2V0RXZhbHVhdG9yKGtleTogc3RyaW5nKTogUnVsZUV2YWx1YXRvciB7XG4gICAgcmV0dXJuIHRoaXMuZXh0ZW5zaW9ucy5nZXRFdmFsdWF0b3Ioa2V5KTtcbiAgfVxuXG4gIGNhblByZXZpZXdOb2RlKG5vZGU6IE5vZGVFbnRyeSkge1xuICAgIGNvbnN0IHJ1bGVzID0gdGhpcy52aWV3ZXJSdWxlcztcblxuICAgIGlmICh0aGlzLmlzUnVsZURlZmluZWQocnVsZXMuY2FuUHJldmlldykpIHtcbiAgICAgIGNvbnN0IGNhblByZXZpZXcgPSB0aGlzLmV2YWx1YXRlUnVsZShydWxlcy5jYW5QcmV2aWV3LCBub2RlKTtcblxuICAgICAgaWYgKCFjYW5QcmV2aWV3KSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGNhblNob3dWaWV3ZXJOYXZpZ2F0aW9uKG5vZGU6IE5vZGVFbnRyeSkge1xuICAgIGNvbnN0IHJ1bGVzID0gdGhpcy52aWV3ZXJSdWxlcztcblxuICAgIGlmICh0aGlzLmlzUnVsZURlZmluZWQocnVsZXMuc2hvd05hdmlnYXRpb24pKSB7XG4gICAgICBjb25zdCBzaG93TmF2aWdhdGlvbiA9IHRoaXMuZXZhbHVhdGVSdWxlKHJ1bGVzLnNob3dOYXZpZ2F0aW9uLCBub2RlKTtcbiAgICAgIGlmICghc2hvd05hdmlnYXRpb24pIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgYnVsa0FjdGlvbkV4ZWN1dGVkKCk6IHZvaWQge1xuICAgIHRoaXMuYnVsa0FjdGlvbkV4ZWN1dGVkJC5uZXh0KCk7XG4gIH1cbn1cbiJdfQ==
@@ -22,7 +22,7 @@
22
22
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
23
23
  */
24
24
  import { inject, Injectable } from '@angular/core';
25
- import { AuthenticationService, AppConfigService, PageTitleService, UserPreferencesService, NotificationService, StorageService } from '@alfresco/adf-core';
25
+ import { AppConfigService, AuthenticationService, NotificationService, PageTitleService, UserPreferencesService } from '@alfresco/adf-core';
26
26
  import { BehaviorSubject, Subject } from 'rxjs';
27
27
  import { AlfrescoApiService, SearchQueryBuilderService, SharedLinksApiService, UploadService } from '@alfresco/adf-content-services';
28
28
  import { OverlayContainer } from '@angular/cdk/overlay';
@@ -47,7 +47,8 @@ import * as i7 from "@angular/cdk/overlay";
47
47
  import * as i8 from "./aca-mobile-app-switcher.service";
48
48
  import * as i9 from "./app-settings.service";
49
49
  import * as i10 from "./user-profile.service";
50
- class AppService {
50
+ // After moving shell to ADF to core, AppService will implement ShellAppService
51
+ export class AppService {
51
52
  preferencesService;
52
53
  authenticationService;
53
54
  store;
@@ -64,7 +65,6 @@ class AppService {
64
65
  acaMobileAppSwitcherService;
65
66
  appSettingsService;
66
67
  userProfileService;
67
- storage;
68
68
  notificationService = inject(NotificationService);
69
69
  matDialog = inject(MatDialog);
70
70
  ready;
@@ -83,7 +83,7 @@ class AppService {
83
83
  get withCredentials() {
84
84
  return this.config.get('auth.withCredentials', false);
85
85
  }
86
- constructor(preferencesService, authenticationService, store, router, activatedRoute, config, pageTitle, alfrescoApiService, uploadService, routerExtensionService, contentApi, sharedLinksApiService, overlayContainer, searchQueryBuilderService, acaMobileAppSwitcherService, appSettingsService, userProfileService, storage) {
86
+ constructor(preferencesService, authenticationService, store, router, activatedRoute, config, pageTitle, alfrescoApiService, uploadService, routerExtensionService, contentApi, sharedLinksApiService, overlayContainer, searchQueryBuilderService, acaMobileAppSwitcherService, appSettingsService, userProfileService) {
87
87
  this.preferencesService = preferencesService;
88
88
  this.authenticationService = authenticationService;
89
89
  this.store = store;
@@ -100,7 +100,6 @@ class AppService {
100
100
  this.acaMobileAppSwitcherService = acaMobileAppSwitcherService;
101
101
  this.appSettingsService = appSettingsService;
102
102
  this.userProfileService = userProfileService;
103
- this.storage = storage;
104
103
  this.ready = new BehaviorSubject(this.authenticationService.isLoggedIn() || this.withCredentials);
105
104
  this.ready$ = this.ready.asObservable();
106
105
  this.authenticationService.onLogin.subscribe(() => {
@@ -108,7 +107,6 @@ class AppService {
108
107
  this.preferencesService.setStoragePrefix(this.authenticationService.getUsername());
109
108
  });
110
109
  this.authenticationService.onLogout.subscribe(() => {
111
- this.storage.removeItem(this.preferencesService.getPropertyKey('expandedSidenav'));
112
110
  searchQueryBuilderService.resetToDefaults();
113
111
  acaMobileAppSwitcherService.clearSessionExpireTime();
114
112
  acaMobileAppSwitcherService.closeDialog();
@@ -224,14 +222,13 @@ class AppService {
224
222
  this.acaMobileAppSwitcherService.clearSessionExpireTime();
225
223
  }
226
224
  }
227
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AppService, deps: [{ token: i1.UserPreferencesService }, { token: i1.AuthenticationService }, { token: i2.Store }, { token: i3.Router }, { token: i3.ActivatedRoute }, { token: i1.AppConfigService }, { token: i1.PageTitleService }, { token: i4.AlfrescoApiService }, { token: i4.UploadService }, { token: i5.RouterExtensionService }, { token: i6.ContentApiService }, { token: i4.SharedLinksApiService }, { token: i7.OverlayContainer }, { token: i4.SearchQueryBuilderService }, { token: i8.AcaMobileAppSwitcherService }, { token: i9.AppSettingsService }, { token: i10.UserProfileService }, { token: i1.StorageService }], target: i0.ɵɵFactoryTarget.Injectable });
228
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AppService, providedIn: 'root' });
225
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AppService, deps: [{ token: i1.UserPreferencesService }, { token: i1.AuthenticationService }, { token: i2.Store }, { token: i3.Router }, { token: i3.ActivatedRoute }, { token: i1.AppConfigService }, { token: i1.PageTitleService }, { token: i4.AlfrescoApiService }, { token: i4.UploadService }, { token: i5.RouterExtensionService }, { token: i6.ContentApiService }, { token: i4.SharedLinksApiService }, { token: i7.OverlayContainer }, { token: i4.SearchQueryBuilderService }, { token: i8.AcaMobileAppSwitcherService }, { token: i9.AppSettingsService }, { token: i10.UserProfileService }], target: i0.ɵɵFactoryTarget.Injectable });
226
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AppService, providedIn: 'root' });
229
227
  }
230
- export { AppService };
231
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AppService, decorators: [{
228
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AppService, decorators: [{
232
229
  type: Injectable,
233
230
  args: [{
234
231
  providedIn: 'root'
235
232
  }]
236
- }], ctorParameters: function () { return [{ type: i1.UserPreferencesService }, { type: i1.AuthenticationService }, { type: i2.Store }, { type: i3.Router }, { type: i3.ActivatedRoute }, { type: i1.AppConfigService }, { type: i1.PageTitleService }, { type: i4.AlfrescoApiService }, { type: i4.UploadService }, { type: i5.RouterExtensionService }, { type: i6.ContentApiService }, { type: i4.SharedLinksApiService }, { type: i7.OverlayContainer }, { type: i4.SearchQueryBuilderService }, { type: i8.AcaMobileAppSwitcherService }, { type: i9.AppSettingsService }, { type: i10.UserProfileService }, { type: i1.StorageService }]; } });
237
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2Etc2hhcmVkL3NyYy9saWIvc2VydmljZXMvYXBwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUNuQixjQUFjLEVBQ2YsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQWMsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQ0wsa0JBQWtCLEVBRWxCLHlCQUF5QixFQUN6QixxQkFBcUIsRUFDckIsYUFBYSxFQUNkLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFZLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEosT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxt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QztTQUM3RDthQUFNO1lBQ0wsSUFBSSxDQUFDLDJCQUEyQixDQUFDLHNCQUFzQixFQUFFLENBQUM7U0FDM0Q7SUFDSCxDQUFDO3VHQXRNVSxVQUFVOzJHQUFWLFVBQVUsY0FIVCxNQUFNOztTQUdQLFVBQVU7MkZBQVYsVUFBVTtrQkFKdEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjQgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBdXRoZW50aWNhdGlvblNlcnZpY2UsXG4gIEFwcENvbmZpZ1NlcnZpY2UsXG4gIFBhZ2VUaXRsZVNlcnZpY2UsXG4gIFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UsXG4gIE5vdGlmaWNhdGlvblNlcnZpY2UsXG4gIFN0b3JhZ2VTZXJ2aWNlXG59IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIEFsZnJlc2NvQXBpU2VydmljZSxcbiAgRmlsZVVwbG9hZEVycm9yRXZlbnQsXG4gIFNlYXJjaFF1ZXJ5QnVpbGRlclNlcnZpY2UsXG4gIFNoYXJlZExpbmtzQXBpU2VydmljZSxcbiAgVXBsb2FkU2VydmljZVxufSBmcm9tICdAYWxmcmVzY28vYWRmLWNvbnRlbnQtc2VydmljZXMnO1xuaW1wb3J0IHsgT3ZlcmxheUNvbnRhaW5lciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBBY3RpdmF0aW9uRW5kLCBOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFwcFN0b3JlLCBSZXNldFNlbGVjdGlvbkFjdGlvbiwgU2V0Q3VycmVudFVybEFjdGlvbiwgU2V0UmVwb3NpdG9yeUluZm9BY3Rpb24sIFNldFVzZXJQcm9maWxlQWN0aW9uIH0gZnJvbSAnQGFsZnJlc2NvL2FjYS1zaGFyZWQvc3RvcmUnO1xuaW1wb3J0IHsgQ29udGVudEFwaVNlcnZpY2UgfSBmcm9tICcuL2NvbnRlbnQtYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgUm91dGVyRXh0ZW5zaW9uU2VydmljZSB9IGZyb20gJy4vcm91dGVyLmV4dGVuc2lvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgRGlzY292ZXJ5RW50cnkgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IEFjYU1vYmlsZUFwcFN3aXRjaGVyU2VydmljZSB9IGZyb20gJy4vYWNhLW1vYmlsZS1hcHAtc3dpdGNoZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTaGVsbEFwcFNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUvc2hlbGwnO1xuaW1wb3J0IHsgQXBwU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi9hcHAtc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyUHJvZmlsZVNlcnZpY2UgfSBmcm9tICcuL3VzZXItcHJvZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuLy8gQWZ0ZXIgbW92aW5nIHNoZWxsIHRvIEFERiB0byBjb3JlLCBBcHBTZXJ2aWNlIHdpbGwgaW1wbGVtZW50IFNoZWxsQXBwU2VydmljZVxuZXhwb3J0IGNsYXNzIEFwcFNlcnZpY2UgaW1wbGVtZW50cyBTaGVsbEFwcFNlcnZpY2Uge1xuICBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2UgPSBpbmplY3QoTm90aWZpY2F0aW9uU2VydmljZSk7XG4gIHByaXZhdGUgbWF0RGlhbG9nID0gaW5qZWN0KE1hdERpYWxvZyk7XG4gIHByaXZhdGUgcmVhZHk6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcblxuICByZWFkeSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgcHJpdmF0ZSBwYWdlSGVhZGluZyA9IG5ldyBCZWhhdmlvclN1YmplY3QoJycpO1xuICAvKiogQGRlcHJlY2F0ZWQgcGFnZSB0aXRsZSBpcyB1cGRhdGVkIGF1dG9tYXRpY2FsbHkgKi9cbiAgcGFnZUhlYWRpbmckID0gdGhpcy5wYWdlSGVhZGluZy5hc09ic2VydmFibGUoKTtcblxuICBhcHBOYXZOYXJNb2RlJDogU3ViamVjdDwnY29sbGFwc2VkJyB8ICdleHBhbmRlZCc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnZXhwYW5kZWQnKTtcbiAgdG9nZ2xlQXBwTmF2QmFyJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgaGlkZVNpZGVuYXZDb25kaXRpb25zID0gWycvcHJldmlldy8nXTtcbiAgbWluaW1pemVTaWRlbmF2Q29uZGl0aW9ucyA9IFsnL3NlYXJjaCddO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGB3aXRoQ3JlZGVudGlhbHNgIG1vZGUgaXMgZW5hYmxlZC5cbiAgICogVXN1YWxseSBtZWFucyB0aGF0IGBLZXJiZXJvc2AgbW9kZSBpcyB1c2VkLlxuICAgKi9cbiAgZ2V0IHdpdGhDcmVkZW50aWFscygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcuZ2V0PGJvb2xlYW4+KCdhdXRoLndpdGhDcmVkZW50aWFscycsIGZhbHNlKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBwcmVmZXJlbmNlc1NlcnZpY2U6IFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdXRoZW50aWNhdGlvblNlcnZpY2U6IEF1dGhlbnRpY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxBcHBTdG9yZT4sXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIGNvbmZpZzogQXBwQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIHBhZ2VUaXRsZTogUGFnZVRpdGxlU2VydmljZSxcbiAgICBwcml2YXRlIGFsZnJlc2NvQXBpU2VydmljZTogQWxmcmVzY29BcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXBsb2FkU2VydmljZTogVXBsb2FkU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlckV4dGVuc2lvblNlcnZpY2U6IFJvdXRlckV4dGVuc2lvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250ZW50QXBpOiBDb250ZW50QXBpU2VydmljZSxcbiAgICBwcml2YXRlIHNoYXJlZExpbmtzQXBpU2VydmljZTogU2hhcmVkTGlua3NBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgb3ZlcmxheUNvbnRhaW5lcjogT3ZlcmxheUNvbnRhaW5lcixcbiAgICBzZWFyY2hRdWVyeUJ1aWxkZXJTZXJ2aWNlOiBTZWFyY2hRdWVyeUJ1aWxkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWNhTW9iaWxlQXBwU3dpdGNoZXJTZXJ2aWNlOiBBY2FNb2JpbGVBcHBTd2l0Y2hlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcHBTZXR0aW5nc1NlcnZpY2U6IEFwcFNldHRpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJQcm9maWxlU2VydmljZTogVXNlclByb2ZpbGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZTogU3RvcmFnZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5yZWFkeSA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UuaXNMb2dnZWRJbigpIHx8IHRoaXMud2l0aENyZWRlbnRpYWxzKTtcbiAgICB0aGlzLnJlYWR5JCA9IHRoaXMucmVhZHkuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5vbkxvZ2luLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnJlYWR5Lm5leHQodHJ1ZSk7XG4gICAgICB0aGlzLnByZWZlcmVuY2VzU2VydmljZS5zZXRTdG9yYWdlUHJlZml4KHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLmdldFVzZXJuYW1lKCkpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2Uub25Mb2dvdXQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuc3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMucHJlZmVyZW5jZXNTZXJ2aWNlLmdldFByb3BlcnR5S2V5KCdleHBhbmRlZFNpZGVuYXYnKSk7XG4gICAgICBzZWFyY2hRdWVyeUJ1aWxkZXJTZXJ2aWNlLnJlc2V0VG9EZWZhdWx0cygpO1xuICAgICAgYWNhTW9iaWxlQXBwU3dpdGNoZXJTZXJ2aWNlLmNsZWFyU2Vzc2lvbkV4cGlyZVRpbWUoKTtcbiAgICAgIGFjYU1vYmlsZUFwcFN3aXRjaGVyU2VydmljZS5jbG9zZURpYWxvZygpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBBY3RpdmF0aW9uRW5kICYmIGV2ZW50LnNuYXBzaG90LmNoaWxkcmVuLmxlbmd0aCA9PT0gMCksXG4gICAgICAgIG1hcCgoZXZlbnQ6IEFjdGl2YXRpb25FbmQpID0+IGV2ZW50LnNuYXBzaG90Py5kYXRhPy50aXRsZSA/PyAnJylcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHRpdGxlKSA9PiB7XG4gICAgICAgIHRoaXMucGFnZUhlYWRpbmcubmV4dCh0aXRsZSk7XG4gICAgICAgIHRoaXMucGFnZVRpdGxlLnNldFRpdGxlKHRpdGxlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgaW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmFsZnJlc2NvQXBpU2VydmljZS5nZXRJbnN0YW5jZSgpLm9uKCdlcnJvcicsIChlcnJvcjogeyBzdGF0dXM6IG51bWJlcjsgcmVzcG9uc2U6IGFueSB9KSA9PiB7XG4gICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MDEgJiYgIXRoaXMuYWxmcmVzY29BcGlTZXJ2aWNlLmlzRXhjbHVkZWRFcnJvckxpc3RlbmVyKGVycm9yPy5yZXNwb25zZT8ucmVxPy51cmwpKSB7XG4gICAgICAgIGlmICghdGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UuaXNMb2dnZWRJbigpKSB7XG4gICAgICAgICAgdGhpcy5tYXREaWFsb2cuY2xvc2VBbGwoKTtcblxuICAgICAgICAgIGxldCByZWRpcmVjdFVybCA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbJ3JlZGlyZWN0VXJsJ107XG4gICAgICAgICAgaWYgKCFyZWRpcmVjdFVybCkge1xuICAgICAgICAgICAgcmVkaXJlY3RVcmwgPSB0aGlzLnJvdXRlci51cmw7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbG9naW4nXSwge1xuICAgICAgICAgICAgcXVlcnlQYXJhbXM6IHsgcmVkaXJlY3RVcmwgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmxvYWRDdXN0b21Dc3MoKTtcbiAgICB0aGlzLmxvYWRDdXN0b21XZWJGb250KCk7XG5cbiAgICBjb25zdCB7IHJvdXRlciB9ID0gdGhpcztcblxuICAgIHRoaXMucm91dGVyLmV2ZW50cy5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgQWN0aXZhdGlvbkVuZCAmJiBldmVudC5zbmFwc2hvdC5jaGlsZHJlbi5sZW5ndGggPT09IDApKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU2V0Q3VycmVudFVybEFjdGlvbihyb3V0ZXIudXJsKSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnJvdXRlci5ldmVudHMucGlwZShmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBSZXNldFNlbGVjdGlvbkFjdGlvbigpKTtcbiAgICB9KTtcblxuICAgIHRoaXMucm91dGVyRXh0ZW5zaW9uU2VydmljZS5tYXBFeHRlbnNpb25Sb3V0ZXMoKTtcblxuICAgIHRoaXMudXBsb2FkU2VydmljZS5maWxlVXBsb2FkRXJyb3Iuc3Vic2NyaWJlKChlcnJvcikgPT4gdGhpcy5vbkZpbGVVcGxvYWRlZEVycm9yKGVycm9yKSk7XG5cbiAgICB0aGlzLnNoYXJlZExpbmtzQXBpU2VydmljZS5lcnJvci5zdWJzY3JpYmUoKGVycjogeyBtZXNzYWdlOiBzdHJpbmcgfSkgPT4ge1xuICAgICAgaWYgKGVycj8ubWVzc2FnZSkge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd0Vycm9yKGVyci5tZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMucmVhZHkkLnN1YnNjcmliZSgoaXNSZWFkeSkgPT4ge1xuICAgICAgaWYgKGlzUmVhZHkpIHtcbiAgICAgICAgdGhpcy5sb2FkUmVwb3NpdG9yeVN0YXR1cygpO1xuICAgICAgICB0aGlzLmxvYWRVc2VyUHJvZmlsZSgpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLm9wZW5Nb2JpbGVBcHBEaWFsb2coKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLm92ZXJsYXlDb250YWluZXIuZ2V0Q29udGFpbmVyRWxlbWVudCgpLnNldEF0dHJpYnV0ZSgncm9sZScsICdyZWdpb24nKTtcbiAgfVxuXG4gIHNldEFwcE5hdmJhck1vZGUobW9kZTogJ2V4cGFuZGVkJyB8ICdjb2xsYXBzZWQnKTogdm9pZCB7XG4gICAgdGhpcy5hcHBOYXZOYXJNb2RlJC5uZXh0KG1vZGUpO1xuICAgIHRoaXMucHJlZmVyZW5jZXNTZXJ2aWNlLnNldCgnZXhwYW5kZWRTaWRlbmF2JywgbW9kZSA9PT0gJ2V4cGFuZGVkJyk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRSZXBvc2l0b3J5U3RhdHVzKCkge1xuICAgIHRoaXMuY29udGVudEFwaS5nZXRSZXBvc2l0b3J5SW5mb3JtYXRpb24oKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBEaXNjb3ZlcnlFbnRyeSkgPT4ge1xuICAgICAgaWYgKHJlc3BvbnNlPy5lbnRyeT8ucmVwb3NpdG9yeSkge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBTZXRSZXBvc2l0b3J5SW5mb0FjdGlvbihyZXNwb25zZS5lbnRyeS5yZXBvc2l0b3J5KSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvYWRVc2VyUHJvZmlsZSgpIHtcbiAgICBjb25zdCBwcm9maWxlID0gYXdhaXQgdGhpcy51c2VyUHJvZmlsZVNlcnZpY2UubG9hZFVzZXJQcm9maWxlKCk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU2V0VXNlclByb2ZpbGVBY3Rpb24ocHJvZmlsZSkpO1xuICB9XG5cbiAgb25GaWxlVXBsb2FkZWRFcnJvcihlcnJvcjogRmlsZVVwbG9hZEVycm9yRXZlbnQpIHtcbiAgICBsZXQgbWVzc2FnZSA9ICdBUFAuTUVTU0FHRVMuVVBMT0FELkVSUk9SLkdFTkVSSUMnO1xuXG4gICAgaWYgKGVycm9yPy5lcnJvcj8uc3RhdHVzID09PSA0MDMpIHtcbiAgICAgIG1lc3NhZ2UgPSAnQVBQLk1FU1NBR0VTLlVQTE9BRC5FUlJPUi40MDMnO1xuICAgIH1cblxuICAgIGlmIChlcnJvcj8uZXJyb3I/LnN0YXR1cyA9PT0gNDA0KSB7XG4gICAgICBtZXNzYWdlID0gJ0FQUC5NRVNTQUdFUy5VUExPQUQuRVJST1IuNDA0JztcbiAgICB9XG5cbiAgICBpZiAoZXJyb3I/LmVycm9yPy5zdGF0dXMgPT09IDQwOSkge1xuICAgICAgbWVzc2FnZSA9ICdBUFAuTUVTU0FHRVMuVVBMT0FELkVSUk9SLkNPTkZMSUNUJztcbiAgICB9XG5cbiAgICBpZiAoZXJyb3I/LmVycm9yPy5zdGF0dXMgPT09IDUwMCkge1xuICAgICAgbWVzc2FnZSA9ICdBUFAuTUVTU0FHRVMuVVBMT0FELkVSUk9SLjUwMCc7XG4gICAgfVxuXG4gICAgaWYgKGVycm9yPy5lcnJvcj8uc3RhdHVzID09PSA1MDQpIHtcbiAgICAgIG1lc3NhZ2UgPSAnQVBQLk1FU1NBR0VTLlVQTE9BRC5FUlJPUi41MDQnO1xuICAgIH1cblxuICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zaG93RXJyb3IobWVzc2FnZSk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRDdXN0b21Dc3MoKTogdm9pZCB7XG4gICAgY29uc3QgY3VzdG9tQ3NzUGF0aCA9IHRoaXMuYXBwU2V0dGluZ3NTZXJ2aWNlLmN1c3RvbUNzc1BhdGg7XG4gICAgaWYgKGN1c3RvbUNzc1BhdGgpIHtcbiAgICAgIHRoaXMuY3JlYXRlTGluayhjdXN0b21Dc3NQYXRoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWRDdXN0b21XZWJGb250KCk6IHZvaWQge1xuICAgIGNvbnN0IHdlYkZvbnRQYXRoID0gdGhpcy5hcHBTZXR0aW5nc1NlcnZpY2Uud2ViRm9udFBhdGg7XG4gICAgaWYgKHdlYkZvbnRQYXRoKSB7XG4gICAgICB0aGlzLmNyZWF0ZUxpbmsod2ViRm9udFBhdGgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlTGluayh1cmw6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGNzc0xpbmtFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpO1xuICAgIGNzc0xpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgncmVsJywgJ3N0eWxlc2hlZXQnKTtcbiAgICBjc3NMaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dC9jc3MnKTtcbiAgICBjc3NMaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCB1cmwpO1xuICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoY3NzTGlua0VsZW1lbnQpO1xuICB9XG5cbiAgcHVibGljIG9wZW5Nb2JpbGVBcHBEaWFsb2coKTogdm9pZCB7XG4gICAgY29uc3QgaXNNb2JpbGVTd2l0Y2hFbmFibGVkOiBib29sZWFuID0gdGhpcy5jb25maWcuZ2V0PGJvb2xlYW4+KCdtb2JpbGVBcHBTd2l0Y2guZW5hYmxlZCcsIGZhbHNlKTtcbiAgICBpZiAoaXNNb2JpbGVTd2l0Y2hFbmFibGVkKSB7XG4gICAgICB0aGlzLmFjYU1vYmlsZUFwcFN3aXRjaGVyU2VydmljZS5yZXNvbHZlRXhpc3RlbmNlT2ZEaWFsb2coKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hY2FNb2JpbGVBcHBTd2l0Y2hlclNlcnZpY2UuY2xlYXJTZXNzaW9uRXhwaXJlVGltZSgpO1xuICAgIH1cbiAgfVxufVxuIl19
233
+ }], ctorParameters: () => [{ type: i1.UserPreferencesService }, { type: i1.AuthenticationService }, { type: i2.Store }, { type: i3.Router }, { type: i3.ActivatedRoute }, { type: i1.AppConfigService }, { type: i1.PageTitleService }, { type: i4.AlfrescoApiService }, { type: i4.UploadService }, { type: i5.RouterExtensionService }, { type: i6.ContentApiService }, { type: i4.SharedLinksApiService }, { type: i7.OverlayContainer }, { type: i4.SearchQueryBuilderService }, { type: i8.AcaMobileAppSwitcherService }, { type: i9.AppSettingsService }, { type: i10.UserProfileService }] });
234
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2Etc2hhcmVkL3NyYy9saWIvc2VydmljZXMvYXBwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM1SSxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQ0wsa0JBQWtCLEVBRWxCLHlCQUF5QixFQUN6QixxQkFBcUIsRUFDckIsYUFBYSxFQUNkLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFZLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEosT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVo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RSxDQUFDO1FBQzlELENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLDJCQUEyQixDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDNUQsQ0FBQztJQUNILENBQUM7dUdBcE1VLFVBQVU7MkdBQVYsVUFBVSxjQUhULE1BQU07OzJGQUdQLFVBQVU7a0JBSnRCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSwgQXV0aGVudGljYXRpb25TZXJ2aWNlLCBOb3RpZmljYXRpb25TZXJ2aWNlLCBQYWdlVGl0bGVTZXJ2aWNlLCBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQWxmcmVzY29BcGlTZXJ2aWNlLFxuICBGaWxlVXBsb2FkRXJyb3JFdmVudCxcbiAgU2VhcmNoUXVlcnlCdWlsZGVyU2VydmljZSxcbiAgU2hhcmVkTGlua3NBcGlTZXJ2aWNlLFxuICBVcGxvYWRTZXJ2aWNlXG59IGZyb20gJ0BhbGZyZXNjby9hZGYtY29udGVudC1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBPdmVybGF5Q29udGFpbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIEFjdGl2YXRpb25FbmQsIE5hdmlnYXRpb25TdGFydCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQXBwU3RvcmUsIFJlc2V0U2VsZWN0aW9uQWN0aW9uLCBTZXRDdXJyZW50VXJsQWN0aW9uLCBTZXRSZXBvc2l0b3J5SW5mb0FjdGlvbiwgU2V0VXNlclByb2ZpbGVBY3Rpb24gfSBmcm9tICdAYWxmcmVzY28vYWNhLXNoYXJlZC9zdG9yZSc7XG5pbXBvcnQgeyBDb250ZW50QXBpU2VydmljZSB9IGZyb20gJy4vY29udGVudC1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBSb3V0ZXJFeHRlbnNpb25TZXJ2aWNlIH0gZnJvbSAnLi9yb3V0ZXIuZXh0ZW5zaW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBEaXNjb3ZlcnlFbnRyeSB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgQWNhTW9iaWxlQXBwU3dpdGNoZXJTZXJ2aWNlIH0gZnJvbSAnLi9hY2EtbW9iaWxlLWFwcC1zd2l0Y2hlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNoZWxsQXBwU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZS9zaGVsbCc7XG5pbXBvcnQgeyBBcHBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuL2FwcC1zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJQcm9maWxlU2VydmljZSB9IGZyb20gJy4vdXNlci1wcm9maWxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG4vLyBBZnRlciBtb3Zpbmcgc2hlbGwgdG8gQURGIHRvIGNvcmUsIEFwcFNlcnZpY2Ugd2lsbCBpbXBsZW1lbnQgU2hlbGxBcHBTZXJ2aWNlXG5leHBvcnQgY2xhc3MgQXBwU2VydmljZSBpbXBsZW1lbnRzIFNoZWxsQXBwU2VydmljZSB7XG4gIHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZSA9IGluamVjdChOb3RpZmljYXRpb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBtYXREaWFsb2cgPSBpbmplY3QoTWF0RGlhbG9nKTtcbiAgcHJpdmF0ZSByZWFkeTogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xuXG4gIHJlYWR5JDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBwcml2YXRlIHBhZ2VIZWFkaW5nID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJyk7XG4gIC8qKiBAZGVwcmVjYXRlZCBwYWdlIHRpdGxlIGlzIHVwZGF0ZWQgYXV0b21hdGljYWxseSAqL1xuICBwYWdlSGVhZGluZyQgPSB0aGlzLnBhZ2VIZWFkaW5nLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGFwcE5hdk5hck1vZGUkOiBTdWJqZWN0PCdjb2xsYXBzZWQnIHwgJ2V4cGFuZGVkJz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KCdleHBhbmRlZCcpO1xuICB0b2dnbGVBcHBOYXZCYXIkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBoaWRlU2lkZW5hdkNvbmRpdGlvbnMgPSBbJy9wcmV2aWV3LyddO1xuICBtaW5pbWl6ZVNpZGVuYXZDb25kaXRpb25zID0gWycvc2VhcmNoJ107XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYHdpdGhDcmVkZW50aWFsc2AgbW9kZSBpcyBlbmFibGVkLlxuICAgKiBVc3VhbGx5IG1lYW5zIHRoYXQgYEtlcmJlcm9zYCBtb2RlIGlzIHVzZWQuXG4gICAqL1xuICBnZXQgd2l0aENyZWRlbnRpYWxzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5nZXQ8Ym9vbGVhbj4oJ2F1dGgud2l0aENyZWRlbnRpYWxzJywgZmFsc2UpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHByZWZlcmVuY2VzU2VydmljZTogVXNlclByZWZlcmVuY2VzU2VydmljZSxcbiAgICBwcml2YXRlIGF1dGhlbnRpY2F0aW9uU2VydmljZTogQXV0aGVudGljYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPEFwcFN0b3JlPixcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgY29uZmlnOiBBcHBDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGFnZVRpdGxlOiBQYWdlVGl0bGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxmcmVzY29BcGlTZXJ2aWNlOiBBbGZyZXNjb0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1cGxvYWRTZXJ2aWNlOiBVcGxvYWRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyRXh0ZW5zaW9uU2VydmljZTogUm91dGVyRXh0ZW5zaW9uU2VydmljZSxcbiAgICBwcml2YXRlIGNvbnRlbnRBcGk6IENvbnRlbnRBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2hhcmVkTGlua3NBcGlTZXJ2aWNlOiBTaGFyZWRMaW5rc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBvdmVybGF5Q29udGFpbmVyOiBPdmVybGF5Q29udGFpbmVyLFxuICAgIHNlYXJjaFF1ZXJ5QnVpbGRlclNlcnZpY2U6IFNlYXJjaFF1ZXJ5QnVpbGRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhY2FNb2JpbGVBcHBTd2l0Y2hlclNlcnZpY2U6IEFjYU1vYmlsZUFwcFN3aXRjaGVyU2VydmljZSxcbiAgICBwcml2YXRlIGFwcFNldHRpbmdzU2VydmljZTogQXBwU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclByb2ZpbGVTZXJ2aWNlOiBVc2VyUHJvZmlsZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5yZWFkeSA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UuaXNMb2dnZWRJbigpIHx8IHRoaXMud2l0aENyZWRlbnRpYWxzKTtcbiAgICB0aGlzLnJlYWR5JCA9IHRoaXMucmVhZHkuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5vbkxvZ2luLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnJlYWR5Lm5leHQodHJ1ZSk7XG4gICAgICB0aGlzLnByZWZlcmVuY2VzU2VydmljZS5zZXRTdG9yYWdlUHJlZml4KHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLmdldFVzZXJuYW1lKCkpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2Uub25Mb2dvdXQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHNlYXJjaFF1ZXJ5QnVpbGRlclNlcnZpY2UucmVzZXRUb0RlZmF1bHRzKCk7XG4gICAgICBhY2FNb2JpbGVBcHBTd2l0Y2hlclNlcnZpY2UuY2xlYXJTZXNzaW9uRXhwaXJlVGltZSgpO1xuICAgICAgYWNhTW9iaWxlQXBwU3dpdGNoZXJTZXJ2aWNlLmNsb3NlRGlhbG9nKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIEFjdGl2YXRpb25FbmQgJiYgZXZlbnQuc25hcHNob3QuY2hpbGRyZW4ubGVuZ3RoID09PSAwKSxcbiAgICAgICAgbWFwKChldmVudDogQWN0aXZhdGlvbkVuZCkgPT4gZXZlbnQuc25hcHNob3Q/LmRhdGE/LnRpdGxlID8/ICcnKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgodGl0bGUpID0+IHtcbiAgICAgICAgdGhpcy5wYWdlSGVhZGluZy5uZXh0KHRpdGxlKTtcbiAgICAgICAgdGhpcy5wYWdlVGl0bGUuc2V0VGl0bGUodGl0bGUpO1xuICAgICAgfSk7XG4gIH1cblxuICBpbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYWxmcmVzY29BcGlTZXJ2aWNlLmdldEluc3RhbmNlKCkub24oJ2Vycm9yJywgKGVycm9yOiB7IHN0YXR1czogbnVtYmVyOyByZXNwb25zZTogYW55IH0pID0+IHtcbiAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwMSAmJiAhdGhpcy5hbGZyZXNjb0FwaVNlcnZpY2UuaXNFeGNsdWRlZEVycm9yTGlzdGVuZXIoZXJyb3I/LnJlc3BvbnNlPy5yZXE/LnVybCkpIHtcbiAgICAgICAgaWYgKCF0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5pc0xvZ2dlZEluKCkpIHtcbiAgICAgICAgICB0aGlzLm1hdERpYWxvZy5jbG9zZUFsbCgpO1xuXG4gICAgICAgICAgbGV0IHJlZGlyZWN0VXJsID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1sncmVkaXJlY3RVcmwnXTtcbiAgICAgICAgICBpZiAoIXJlZGlyZWN0VXJsKSB7XG4gICAgICAgICAgICByZWRpcmVjdFVybCA9IHRoaXMucm91dGVyLnVybDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9sb2dpbiddLCB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtczogeyByZWRpcmVjdFVybCB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMubG9hZEN1c3RvbUNzcygpO1xuICAgIHRoaXMubG9hZEN1c3RvbVdlYkZvbnQoKTtcblxuICAgIGNvbnN0IHsgcm91dGVyIH0gPSB0aGlzO1xuXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBBY3RpdmF0aW9uRW5kICYmIGV2ZW50LnNuYXBzaG90LmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBTZXRDdXJyZW50VXJsQWN0aW9uKHJvdXRlci51cmwpKTtcbiAgICB9KTtcblxuICAgIHRoaXMucm91dGVyLmV2ZW50cy5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFJlc2V0U2VsZWN0aW9uQWN0aW9uKCkpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5yb3V0ZXJFeHRlbnNpb25TZXJ2aWNlLm1hcEV4dGVuc2lvblJvdXRlcygpO1xuXG4gICAgdGhpcy51cGxvYWRTZXJ2aWNlLmZpbGVVcGxvYWRFcnJvci5zdWJzY3JpYmUoKGVycm9yKSA9PiB0aGlzLm9uRmlsZVVwbG9hZGVkRXJyb3IoZXJyb3IpKTtcblxuICAgIHRoaXMuc2hhcmVkTGlua3NBcGlTZXJ2aWNlLmVycm9yLnN1YnNjcmliZSgoZXJyOiB7IG1lc3NhZ2U6IHN0cmluZyB9KSA9PiB7XG4gICAgICBpZiAoZXJyPy5tZXNzYWdlKSB7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zaG93RXJyb3IoZXJyLm1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5yZWFkeSQuc3Vic2NyaWJlKChpc1JlYWR5KSA9PiB7XG4gICAgICBpZiAoaXNSZWFkeSkge1xuICAgICAgICB0aGlzLmxvYWRSZXBvc2l0b3J5U3RhdHVzKCk7XG4gICAgICAgIHRoaXMubG9hZFVzZXJQcm9maWxlKCk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMub3Blbk1vYmlsZUFwcERpYWxvZygpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMub3ZlcmxheUNvbnRhaW5lci5nZXRDb250YWluZXJFbGVtZW50KCkuc2V0QXR0cmlidXRlKCdyb2xlJywgJ3JlZ2lvbicpO1xuICB9XG5cbiAgc2V0QXBwTmF2YmFyTW9kZShtb2RlOiAnZXhwYW5kZWQnIHwgJ2NvbGxhcHNlZCcpOiB2b2lkIHtcbiAgICB0aGlzLmFwcE5hdk5hck1vZGUkLm5leHQobW9kZSk7XG4gICAgdGhpcy5wcmVmZXJlbmNlc1NlcnZpY2Uuc2V0KCdleHBhbmRlZFNpZGVuYXYnLCBtb2RlID09PSAnZXhwYW5kZWQnKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZFJlcG9zaXRvcnlTdGF0dXMoKSB7XG4gICAgdGhpcy5jb250ZW50QXBpLmdldFJlcG9zaXRvcnlJbmZvcm1hdGlvbigpLnN1YnNjcmliZSgocmVzcG9uc2U6IERpc2NvdmVyeUVudHJ5KSA9PiB7XG4gICAgICBpZiAocmVzcG9uc2U/LmVudHJ5Py5yZXBvc2l0b3J5KSB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFNldFJlcG9zaXRvcnlJbmZvQWN0aW9uKHJlc3BvbnNlLmVudHJ5LnJlcG9zaXRvcnkpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZFVzZXJQcm9maWxlKCkge1xuICAgIGNvbnN0IHByb2ZpbGUgPSBhd2FpdCB0aGlzLnVzZXJQcm9maWxlU2VydmljZS5sb2FkVXNlclByb2ZpbGUoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBTZXRVc2VyUHJvZmlsZUFjdGlvbihwcm9maWxlKSk7XG4gIH1cblxuICBvbkZpbGVVcGxvYWRlZEVycm9yKGVycm9yOiBGaWxlVXBsb2FkRXJyb3JFdmVudCkge1xuICAgIGxldCBtZXNzYWdlID0gJ0FQUC5NRVNTQUdFUy5VUExPQUQuRVJST1IuR0VORVJJQyc7XG5cbiAgICBpZiAoZXJyb3I/LmVycm9yPy5zdGF0dXMgPT09IDQwMykge1xuICAgICAgbWVzc2FnZSA9ICdBUFAuTUVTU0FHRVMuVVBMT0FELkVSUk9SLjQwMyc7XG4gICAgfVxuXG4gICAgaWYgKGVycm9yPy5lcnJvcj8uc3RhdHVzID09PSA0MDQpIHtcbiAgICAgIG1lc3NhZ2UgPSAnQVBQLk1FU1NBR0VTLlVQTE9BRC5FUlJPUi40MDQnO1xuICAgIH1cblxuICAgIGlmIChlcnJvcj8uZXJyb3I/LnN0YXR1cyA9PT0gNDA5KSB7XG4gICAgICBtZXNzYWdlID0gJ0FQUC5NRVNTQUdFUy5VUExPQUQuRVJST1IuQ09ORkxJQ1QnO1xuICAgIH1cblxuICAgIGlmIChlcnJvcj8uZXJyb3I/LnN0YXR1cyA9PT0gNTAwKSB7XG4gICAgICBtZXNzYWdlID0gJ0FQUC5NRVNTQUdFUy5VUExPQUQuRVJST1IuNTAwJztcbiAgICB9XG5cbiAgICBpZiAoZXJyb3I/LmVycm9yPy5zdGF0dXMgPT09IDUwNCkge1xuICAgICAgbWVzc2FnZSA9ICdBUFAuTUVTU0FHRVMuVVBMT0FELkVSUk9SLjUwNCc7XG4gICAgfVxuXG4gICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnNob3dFcnJvcihtZXNzYWdlKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZEN1c3RvbUNzcygpOiB2b2lkIHtcbiAgICBjb25zdCBjdXN0b21Dc3NQYXRoID0gdGhpcy5hcHBTZXR0aW5nc1NlcnZpY2UuY3VzdG9tQ3NzUGF0aDtcbiAgICBpZiAoY3VzdG9tQ3NzUGF0aCkge1xuICAgICAgdGhpcy5jcmVhdGVMaW5rKGN1c3RvbUNzc1BhdGgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbG9hZEN1c3RvbVdlYkZvbnQoKTogdm9pZCB7XG4gICAgY29uc3Qgd2ViRm9udFBhdGggPSB0aGlzLmFwcFNldHRpbmdzU2VydmljZS53ZWJGb250UGF0aDtcbiAgICBpZiAod2ViRm9udFBhdGgpIHtcbiAgICAgIHRoaXMuY3JlYXRlTGluayh3ZWJGb250UGF0aCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVMaW5rKHVybDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgY3NzTGlua0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgY3NzTGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCdyZWwnLCAnc3R5bGVzaGVldCcpO1xuICAgIGNzc0xpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgndHlwZScsICd0ZXh0L2NzcycpO1xuICAgIGNzc0xpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgnaHJlZicsIHVybCk7XG4gICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChjc3NMaW5rRWxlbWVudCk7XG4gIH1cblxuICBwdWJsaWMgb3Blbk1vYmlsZUFwcERpYWxvZygpOiB2b2lkIHtcbiAgICBjb25zdCBpc01vYmlsZVN3aXRjaEVuYWJsZWQ6IGJvb2xlYW4gPSB0aGlzLmNvbmZpZy5nZXQ8Ym9vbGVhbj4oJ21vYmlsZUFwcFN3aXRjaC5lbmFibGVkJywgZmFsc2UpO1xuICAgIGlmIChpc01vYmlsZVN3aXRjaEVuYWJsZWQpIHtcbiAgICAgIHRoaXMuYWNhTW9iaWxlQXBwU3dpdGNoZXJTZXJ2aWNlLnJlc29sdmVFeGlzdGVuY2VPZkRpYWxvZygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFjYU1vYmlsZUFwcFN3aXRjaGVyU2VydmljZS5jbGVhclNlc3Npb25FeHBpcmVUaW1lKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -26,7 +26,7 @@ import { MatDialog } from '@angular/material/dialog';
26
26
  import { FileAutoDownloadComponent } from '@alfresco/adf-content-services';
27
27
  import * as i0 from "@angular/core";
28
28
  const BYTES_TO_MB_CONVERSION_VALUE = 1048576;
29
- class AutoDownloadService {
29
+ export class AutoDownloadService {
30
30
  dialog = inject(MatDialog);
31
31
  shouldDownload(node, threshold) {
32
32
  const fileSizeInBytes = node?.entry?.content?.sizeInBytes || 0;
@@ -46,14 +46,13 @@ class AutoDownloadService {
46
46
  }
47
47
  return false;
48
48
  }
49
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AutoDownloadService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
50
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AutoDownloadService, providedIn: 'root' });
49
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AutoDownloadService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
50
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AutoDownloadService, providedIn: 'root' });
51
51
  }
52
- export { AutoDownloadService };
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AutoDownloadService, decorators: [{
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AutoDownloadService, decorators: [{
54
53
  type: Injectable,
55
54
  args: [{
56
55
  providedIn: 'root'
57
56
  }]
58
57
  }] });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1kb3dubG9hZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLXNoYXJlZC9zcmMvbGliL3NlcnZpY2VzL2F1dG8tZG93bmxvYWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFFM0UsTUFBTSw0QkFBNEIsR0FBRyxPQUFPLENBQUM7QUFFN0MsTUFHYSxtQkFBbUI7SUFDdEIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUUzQixjQUFjLENBQUMsSUFBZSxFQUFFLFNBQWlCO1FBQ3ZELE1BQU0sZUFBZSxHQUFHLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFdBQVcsSUFBSSxDQUFDLENBQUM7UUFDL0QsTUFBTSxRQUFRLEdBQUcsZUFBZSxHQUFHLDRCQUE0QixDQUFDO1FBRWhFLE9BQU8sUUFBUSxJQUFJLFFBQVEsR0FBRyxTQUFTLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFDLElBQWUsRUFBRSxTQUFpQjtRQUM1QyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNoRixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO3VHQXZCVSxtQkFBbUI7MkdBQW5CLG1CQUFtQixjQUZsQixNQUFNOztTQUVQLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNCBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvblxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24uXG4gKiBJZiB0aGUgc29mdHdhcmUgd2FzIHB1cmNoYXNlZCB1bmRlciBhIHBhaWQgQWxmcmVzY28gbGljZW5zZSwgdGhlIHRlcm1zIG9mXG4gKiB0aGUgcGFpZCBsaWNlbnNlIGFncmVlbWVudCB3aWxsIHByZXZhaWwuIE90aGVyd2lzZSwgdGhlIHNvZnR3YXJlIGlzXG4gKiBwcm92aWRlZCB1bmRlciB0aGUgZm9sbG93aW5nIG9wZW4gc291cmNlIGxpY2Vuc2UgdGVybXM6XG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogZnJvbSBIeWxhbmQgU29mdHdhcmUuIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBOb2RlRW50cnkgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IEZpbGVBdXRvRG93bmxvYWRDb21wb25lbnQgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvbnRlbnQtc2VydmljZXMnO1xuXG5jb25zdCBCWVRFU19UT19NQl9DT05WRVJTSU9OX1ZBTFVFID0gMTA0ODU3NjtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXV0b0Rvd25sb2FkU2VydmljZSB7XG4gIHByaXZhdGUgZGlhbG9nID0gaW5qZWN0KE1hdERpYWxvZyk7XG5cbiAgcHJpdmF0ZSBzaG91bGREb3dubG9hZChub2RlOiBOb2RlRW50cnksIHRocmVzaG9sZDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZmlsZVNpemVJbkJ5dGVzID0gbm9kZT8uZW50cnk/LmNvbnRlbnQ/LnNpemVJbkJ5dGVzIHx8IDA7XG4gICAgY29uc3Qgc2l6ZUluTUIgPSBmaWxlU2l6ZUluQnl0ZXMgLyBCWVRFU19UT19NQl9DT05WRVJTSU9OX1ZBTFVFO1xuXG4gICAgcmV0dXJuIHNpemVJbk1CICYmIHNpemVJbk1CID4gdGhyZXNob2xkO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIHRoZSBkaWFsb2cgdG8gZG93bmxvYWQgdGhlIG5vZGUgY29udGVudC5cbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIG5vZGUgY29udGVudCBzaG91bGQgYmUgYXV0byBkb3dubG9hZGVkIGJhc2VkIG9uIHRoZSBmaWxlIHNpemUgYW5kIHRoZSBjb25maWd1cmVkIHRocmVzaG9sZC5cbiAgICogQHBhcmFtIG5vZGUgbm9kZSBlbnRyeVxuICAgKiBAcGFyYW0gdGhyZXNob2xkIGZpbGUgc2l6ZSB0aHJlc2hvbGQgaW4gTUJcbiAgICovXG4gIHRyeURvd25sb2FkKG5vZGU6IE5vZGVFbnRyeSwgdGhyZXNob2xkOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5zaG91bGREb3dubG9hZChub2RlLCB0aHJlc2hvbGQpKSB7XG4gICAgICB0aGlzLmRpYWxvZy5vcGVuKEZpbGVBdXRvRG93bmxvYWRDb21wb25lbnQsIHsgZGlzYWJsZUNsb3NlOiB0cnVlLCBkYXRhOiBub2RlIH0pO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iXX0=
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1kb3dubG9hZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLXNoYXJlZC9zcmMvbGliL3NlcnZpY2VzL2F1dG8tZG93bmxvYWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFFM0UsTUFBTSw0QkFBNEIsR0FBRyxPQUFPLENBQUM7QUFLN0MsTUFBTSxPQUFPLG1CQUFtQjtJQUN0QixNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRTNCLGNBQWMsQ0FBQyxJQUFlLEVBQUUsU0FBaUI7UUFDdkQsTUFBTSxlQUFlLEdBQUcsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsV0FBVyxJQUFJLENBQUMsQ0FBQztRQUMvRCxNQUFNLFFBQVEsR0FBRyxlQUFlLEdBQUcsNEJBQTRCLENBQUM7UUFFaEUsT0FBTyxRQUFRLElBQUksUUFBUSxHQUFHLFNBQVMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLENBQUMsSUFBZSxFQUFFLFNBQWlCO1FBQzVDLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDaEYsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO3VHQXZCVSxtQkFBbUI7MkdBQW5CLG1CQUFtQixjQUZsQixNQUFNOzsyRkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE5vZGVFbnRyeSB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgRmlsZUF1dG9Eb3dubG9hZENvbXBvbmVudCB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29udGVudC1zZXJ2aWNlcyc7XG5cbmNvbnN0IEJZVEVTX1RPX01CX0NPTlZFUlNJT05fVkFMVUUgPSAxMDQ4NTc2O1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBdXRvRG93bmxvYWRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBkaWFsb2cgPSBpbmplY3QoTWF0RGlhbG9nKTtcblxuICBwcml2YXRlIHNob3VsZERvd25sb2FkKG5vZGU6IE5vZGVFbnRyeSwgdGhyZXNob2xkOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBjb25zdCBmaWxlU2l6ZUluQnl0ZXMgPSBub2RlPy5lbnRyeT8uY29udGVudD8uc2l6ZUluQnl0ZXMgfHwgMDtcbiAgICBjb25zdCBzaXplSW5NQiA9IGZpbGVTaXplSW5CeXRlcyAvIEJZVEVTX1RPX01CX0NPTlZFUlNJT05fVkFMVUU7XG5cbiAgICByZXR1cm4gc2l6ZUluTUIgJiYgc2l6ZUluTUIgPiB0aHJlc2hvbGQ7XG4gIH1cblxuICAvKipcbiAgICogT3BlbnMgdGhlIGRpYWxvZyB0byBkb3dubG9hZCB0aGUgbm9kZSBjb250ZW50LlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgbm9kZSBjb250ZW50IHNob3VsZCBiZSBhdXRvIGRvd25sb2FkZWQgYmFzZWQgb24gdGhlIGZpbGUgc2l6ZSBhbmQgdGhlIGNvbmZpZ3VyZWQgdGhyZXNob2xkLlxuICAgKiBAcGFyYW0gbm9kZSBub2RlIGVudHJ5XG4gICAqIEBwYXJhbSB0aHJlc2hvbGQgZmlsZSBzaXplIHRocmVzaG9sZCBpbiBNQlxuICAgKi9cbiAgdHJ5RG93bmxvYWQobm9kZTogTm9kZUVudHJ5LCB0aHJlc2hvbGQ6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLnNob3VsZERvd25sb2FkKG5vZGUsIHRocmVzaG9sZCkpIHtcbiAgICAgIHRoaXMuZGlhbG9nLm9wZW4oRmlsZUF1dG9Eb3dubG9hZENvbXBvbmVudCwgeyBkaXNhYmxlQ2xvc2U6IHRydWUsIGRhdGE6IG5vZGUgfSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==