@eo-sdk/client 9.1.0-rc.1 → 9.2.0-rc.2

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 (75) hide show
  1. package/app/eo-client/inbox-state/inbox-state/inbox.types.enum.d.ts +2 -2
  2. package/app/eo-framework/actions/action-menu/action-menu.component.d.ts +6 -2
  3. package/app/eo-framework/actions/action.module.d.ts +3 -1
  4. package/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.d.ts +2 -1
  5. package/app/eo-framework/actions/actions/add-subscription-action/add-subscription/add-subscription.component.d.ts +2 -1
  6. package/app/eo-framework/actions/actions/delete-action/delete/delete.component.d.ts +4 -2
  7. package/app/eo-framework/actions/actions/delete-content-action/delete-content/delete-content.component.d.ts +22 -0
  8. package/app/eo-framework/actions/actions/delete-content-action/delete-content-action.d.ts +6 -7
  9. package/app/eo-framework/actions/actions/finalize/finalize-action.d.ts +5 -5
  10. package/app/eo-framework/actions/actions/finalize/finalize-object-action/finalize-object-action.component.d.ts +14 -0
  11. package/app/eo-framework/actions/actions/open-context-action/open-context-action.d.ts +1 -0
  12. package/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.d.ts +5 -2
  13. package/app/eo-framework/form-elements/organization/organization.component.d.ts +3 -2
  14. package/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.d.ts +0 -1
  15. package/app/eo-framework/grid/extensions/filter/text/text-filter.component.d.ts +8 -4
  16. package/app/eo-framework/util/directive/prevent-double-click.directive.d.ts +1 -0
  17. package/assets/_default/i18n/de.json +12 -6
  18. package/assets/_default/i18n/en.json +12 -5
  19. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js +547 -515
  20. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js.map +1 -1
  21. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js +2 -3
  22. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js.map +1 -1
  23. package/bundles/eo-sdk-client.umd.js +432 -242
  24. package/bundles/eo-sdk-client.umd.js.map +1 -1
  25. package/bundles/eo-sdk-client.umd.min.js +1 -1
  26. package/bundles/eo-sdk-client.umd.min.js.map +1 -1
  27. package/eo-sdk-client.d.ts +66 -65
  28. package/eo-sdk-client.metadata.json +1 -1
  29. package/esm2015/app/eo-client/about-state/about-state.component.js +3 -3
  30. package/esm2015/app/eo-client/dashboard/dashboard.component.js +2 -4
  31. package/esm2015/app/eo-client/inbox-state/inbox-state/inbox-state.component.js +9 -7
  32. package/esm2015/app/eo-client/inbox-state/inbox-state/inbox.types.enum.js +3 -3
  33. package/esm2015/app/eo-client/object-state/object-state/object-state.component.js +2 -2
  34. package/esm2015/app/eo-framework/actions/action-menu/action-menu.component.js +40 -7
  35. package/esm2015/app/eo-framework/actions/action.module.js +7 -1
  36. package/esm2015/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.js +7 -3
  37. package/esm2015/app/eo-framework/actions/actions/add-subscription-action/add-subscription/add-subscription.component.js +8 -4
  38. package/esm2015/app/eo-framework/actions/actions/delete-action/delete/delete.component.js +11 -4
  39. package/esm2015/app/eo-framework/actions/actions/delete-content-action/delete-content/delete-content.component.js +60 -0
  40. package/esm2015/app/eo-framework/actions/actions/delete-content-action/delete-content-action.js +5 -17
  41. package/esm2015/app/eo-framework/actions/actions/finalize/finalize-action.js +12 -11
  42. package/esm2015/app/eo-framework/actions/actions/finalize/finalize-object-action/finalize-object-action.component.js +39 -0
  43. package/esm2015/app/eo-framework/actions/actions/open-context-action/open-context-action.js +6 -2
  44. package/esm2015/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.js +44 -17
  45. package/esm2015/app/eo-framework/app-shell/app-shell.module.js +1 -3
  46. package/esm2015/app/eo-framework/form-elements/organization/organization.component.js +5 -2
  47. package/esm2015/app/eo-framework/form-elements/string/string.component.js +2 -2
  48. package/esm2015/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.js +2 -4
  49. package/esm2015/app/eo-framework/grid/extensions/filter/text/text-filter.component.js +30 -17
  50. package/esm2015/app/eo-framework/grid/extensions/quick-filter/quick-filter.component.js +2 -2
  51. package/esm2015/app/eo-framework/grid/filters/codesystem-filter.component.js +2 -2
  52. package/esm2015/app/eo-framework/grid/filters/dynamic-list-filter.component.js +1 -2
  53. package/esm2015/app/eo-framework/grid/filters/list-filter.component.js +2 -3
  54. package/esm2015/app/eo-framework/grid/filters/organization-filter.component.js +3 -3
  55. package/esm2015/app/eo-framework/media/media.component.js +2 -2
  56. package/esm2015/app/eo-framework/result-list/result-list.module.js +2 -2
  57. package/esm2015/app/eo-framework/tree/tree.component.js +2 -2
  58. package/esm2015/app/eo-framework/ui/ui.module.js +6 -3
  59. package/esm2015/app/eo-framework/util/directive/prevent-double-click.directive.js +8 -2
  60. package/esm2015/eo-sdk-client.js +67 -66
  61. package/esm2015/projects/eo-sdk/core/lib/model/inbox-item.model.js +2 -2
  62. package/esm2015/projects/eo-sdk/core/lib/service/backend/backend.service.js +35 -9
  63. package/esm2015/projects/eo-sdk/core/lib/service/dms/dms.service.js +10 -11
  64. package/esm2015/projects/eo-sdk/core/lib/service/user/user.service.js +11 -1
  65. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js +54 -19
  66. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js.map +1 -1
  67. package/fesm2015/eo-sdk-client.js +353 -172
  68. package/fesm2015/eo-sdk-client.js.map +1 -1
  69. package/package.json +2 -2
  70. package/projects/eo-sdk/core/eo-sdk-client-projects-eo-sdk-core.metadata.json +1 -1
  71. package/projects/eo-sdk/core/lib/model/inbox-item.model.d.ts +2 -2
  72. package/projects/eo-sdk/core/lib/service/backend/backend.service.d.ts +1 -0
  73. package/projects/eo-sdk/core/lib/service/dms/dms.service.d.ts +3 -2
  74. package/projects/eo-sdk/core/lib/service/user/user.service.d.ts +5 -0
  75. package/projects/eo-sdk/core/package.json +1 -1
@@ -1,16 +1,17 @@
1
1
  import { take, takeUntil, filter, tap } from 'rxjs/operators';
2
- import { Component, ViewEncapsulation, ComponentFactoryResolver, ViewChild, ViewContainerRef } from '@angular/core';
2
+ import { Component, ViewEncapsulation, ComponentFactoryResolver, ViewChild, ViewContainerRef, ElementRef } from '@angular/core';
3
3
  import { Utils } from '@eo-sdk/core';
4
4
  import { ActionService } from '../action-service/action.service';
5
5
  import { ActionComponentAnchorDirective } from './action-component-anchor/action-component-anchor.directive';
6
6
  import { Router, NavigationStart } from '@angular/router';
7
7
  import { UnsubscribeOnDestroy } from '../../util/unsubscribe/unsubscribe.component';
8
8
  export class ActionMenuComponent extends UnsubscribeOnDestroy {
9
- constructor(actionService, router, viewContainerRef, componentFactoryResolver) {
9
+ constructor(actionService, router, viewContainerRef, elemRef, componentFactoryResolver) {
10
10
  super();
11
11
  this.actionService = actionService;
12
12
  this.router = router;
13
13
  this.viewContainerRef = viewContainerRef;
14
+ this.elemRef = elemRef;
14
15
  this.componentFactoryResolver = componentFactoryResolver;
15
16
  this.actionLists = {
16
17
  common: [], further: []
@@ -19,6 +20,7 @@ export class ActionMenuComponent extends UnsubscribeOnDestroy {
19
20
  this.showComponent = false;
20
21
  this.showMenu = false;
21
22
  this.loading = false;
23
+ this.activeActionIndex = 0;
22
24
  // subscribe for visibility observable indicating whether to show or hide the actions
23
25
  this.actionService
24
26
  .actionsShowing$.pipe(takeUntil(this.componentDestroyed$))
@@ -61,12 +63,39 @@ export class ActionMenuComponent extends UnsubscribeOnDestroy {
61
63
  event.preventDefault();
62
64
  this.actionDescription = i === this.actionDescription ? null : i;
63
65
  }
66
+ catchFocus() {
67
+ setTimeout(() => {
68
+ this.elemRef.nativeElement.querySelector('[tabindex="0"]').focus();
69
+ });
70
+ }
71
+ isArrowUpOrDownPressed(event) {
72
+ const key = event.key;
73
+ let length = this.actionLists.common.length + this.actionLists.further.length - 1;
74
+ if (key === 'ArrowUp') {
75
+ this.activeActionIndex = (this.activeActionIndex === 0) ? length : this.activeActionIndex - 1;
76
+ }
77
+ else if (key === 'ArrowDown') {
78
+ this.activeActionIndex = (this.activeActionIndex === length) ? 0 : this.activeActionIndex + 1;
79
+ }
80
+ else if (key === 'Enter') {
81
+ let clickedListEntry;
82
+ if (this.activeActionIndex < this.actionLists.common.length) {
83
+ clickedListEntry = this.actionLists.common[this.activeActionIndex];
84
+ }
85
+ else {
86
+ clickedListEntry = this.actionLists.further[this.activeActionIndex - this.actionLists.common.length];
87
+ }
88
+ this.onClick(clickedListEntry);
89
+ }
90
+ }
64
91
  showActionMenu() {
92
+ this.activeActionIndex = 0;
65
93
  this.getActions();
66
94
  if (this.target === 'DMS_OBJECT') {
67
95
  this.getMoreActions();
68
96
  }
69
97
  this.showMenu = true;
98
+ this.catchFocus();
70
99
  }
71
100
  hideActionMenu() {
72
101
  this.clear();
@@ -107,8 +136,10 @@ export class ActionMenuComponent extends UnsubscribeOnDestroy {
107
136
  this.showActionComponent(extComponentAction.extComponents, this.externalDialog, this.componentFactoryResolver, false);
108
137
  }
109
138
  else if (isWorkFlowAction) {
110
- const extComponentAction = actionListEntry.action;
111
- this.showActionComponent(extComponentAction.extComponents, this.externalDialog, this.componentFactoryResolver, false, { executableProcess: extComponentAction.executableProcess });
139
+ setTimeout(() => {
140
+ const extComponentAction = actionListEntry.action;
141
+ this.showActionComponent(extComponentAction.extComponents, this.externalDialog, this.componentFactoryResolver, false, { executableProcess: extComponentAction.executableProcess });
142
+ });
112
143
  }
113
144
  }
114
145
  showActionComponent(component, viewContRef, factoryResolver, showComponent, inputs) {
@@ -141,6 +172,7 @@ export class ActionMenuComponent extends UnsubscribeOnDestroy {
141
172
  }
142
173
  onCancel() {
143
174
  this.clear();
175
+ this.catchFocus();
144
176
  }
145
177
  onFinish() {
146
178
  this.hideActionMenu();
@@ -149,19 +181,20 @@ export class ActionMenuComponent extends UnsubscribeOnDestroy {
149
181
  ActionMenuComponent.decorators = [
150
182
  { type: Component, args: [{
151
183
  selector: 'eo-action-menu',
152
- template: "<div class=\"action-menu dark\" *ngIf=\"showMenu\" (eoOutsideClick)=\"hide()\">\n\n <div class=\"head\">\n <div class=\"left\">\n <div class=\"title\" translate>eo.actions.sticky.title</div>\n <div class=\"sub-title\" *ngIf=\"selection?.length > 1; else multi\" translate>eo.actions.sticky.title.sub.selection</div>\n <ng-template #multi>\n <div class=\"sub-title\" *ngIf=\"selection && selection.length\"><span translate>eo.actions.sticky.title.sub.for</span> '{{selection[0].title}}'</div>\n </ng-template>\n </div>\n <div class=\"right\">\n <span class=\"count\">{{subSelection?.length || selection?.length || ''}}</span>\n <eo-icon class=\"button\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"hide()\"></eo-icon>\n </div>\n </div>\n\n <div class=\"actions\" [hidden]=\"subActionsList || showComponent\">\n\n <ng-template #action let-entry let-id>\n\n <a *ngIf=\"isLinkAction(entry.action); else default\" class=\"link\"\n [routerLink]=\"entry.action.getLink(entry.availableSelection)\"\n [queryParams]=\"entry.action.getParams(entry.availableSelection, true)\">\n <ng-container *ngTemplateOutlet=\"default\"></ng-container>\n </a>\n\n <ng-template #default>\n <div>\n <eo-icon [iconSrc]=\"entry.action.iconSrc\" [iconId]=\"entry.action.iconId\"\n [badge]=\"entry.availableSelection?.length != selection?.length ? entry.availableSelection?.length : null\"></eo-icon>\n <div class=\"label\">{{entry.action.label}}</div>\n <!-- <div class=\"available-count\" *ngIf=\"entry.availableSelection?.length != selection?.length\">{{entry.availableSelection?.length}}</div> -->\n <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\" (click)=\"showActionDescription(id, $event)\"></eo-icon>\n </div>\n <div class=\"description\" [hidden]=\"id !== actionDescription\">{{entry.action.description}}</div>\n </ng-template>\n </ng-template>\n\n <div class=\"group\" *ngIf=\"actionLists?.common.length > 0\">\n <div class=\"group-title\" translate>eo.actions.group.common</div>\n <div class=\"action\" id=\"{{actionListEntry.id}}\" *ngFor=\"let actionListEntry of actionLists.common; index as i\" (click)=\"onClick(actionListEntry)\">\n\n <ng-container *ngTemplateOutlet=\"action; context: {$implicit: actionListEntry, id: +i}\"></ng-container>\n\n </div>\n </div>\n\n <div class=\"group\" *ngIf=\"!loading; else loader\">\n <div *ngIf=\"actionLists?.further.length > 0\">\n <div class=\"group-title\" translate>eo.actions.group.further_actions</div>\n <div class=\"action\" id=\"{{actionListEntry.id}}\" *ngFor=\"let actionListEntry of actionLists.further; index as i\" eoPreventDoubleClick (debounceClick)=\"onClick(actionListEntry)\">\n\n <ng-container *ngTemplateOutlet=\"action; context: {$implicit: actionListEntry, id: 'f'+i}\"></ng-container>\n\n </div>\n </div>\n </div>\n\n <div class=\"group\" *ngIf=\"!loading && !actionLists?.further.length && !actionLists?.common.length\" [style.textAlign]=\"'center'\">\n {{ 'eo.action.not.available' | translate}}\n </div>\n\n <ng-template #loader>\n <div class=\"loading-container\">\n <eo-loading-spinner [size]=\"'medium'\"></eo-loading-spinner>\n </div>\n </ng-template>\n </div>\n\n <!-- sub actions -->\n <div class=\"group sub\" *ngIf=\"subActionsList && !showComponent\">\n <div class=\"sub-actions\">\n <div class=\"group-title\">{{subActionsListHeader}}</div>\n <div class=\"action sub\" *ngFor=\"let actionListEntry of subActionsList; index as i\" (click)=\"onClick(actionListEntry)\">\n <ng-container *ngTemplateOutlet=\"action; context: {$implicit: actionListEntry, id: 's'+i}\"></ng-container>\n </div>\n </div>\n <div class=\"group-buttons\">\n <button (click)=\"onCancel()\" translate>eo.export.cancel</button>\n </div>\n </div>\n\n <div>\n <ng-template eoActionComponentAnchor></ng-template>\n </div>\n\n <div>\n <ng-template eoExtActionComponentAnchor></ng-template>\n </div>\n\n</div>\n",
184
+ template: "<div class=\"action-menu dark\" *ngIf=\"showMenu\" (eoOutsideClick)=\"hide()\">\n\n <div class=\"head\">\n <div class=\"left\">\n <div class=\"title\" translate>eo.actions.sticky.title</div>\n <div class=\"sub-title\" *ngIf=\"selection?.length > 1; else multi\" translate>eo.actions.sticky.title.sub.selection</div>\n <ng-template #multi>\n <div class=\"sub-title\" *ngIf=\"selection && selection.length\"><span translate>eo.actions.sticky.title.sub.for</span> '{{selection[0].title}}'</div>\n </ng-template>\n </div>\n <div class=\"right\">\n <span class=\"count\">{{subSelection?.length || selection?.length || ''}}</span>\n <eo-icon class=\"button\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"hide()\"></eo-icon>\n </div>\n </div>\n\n <div class=\"actions\" [hidden]=\"subActionsList || showComponent\">\n\n <ng-template #action let-entry let-id>\n\n <a *ngIf=\"isLinkAction(entry.action); else default\" class=\"link\"\n [routerLink]=\"entry.action.getLink(entry.availableSelection)\"\n [queryParams]=\"entry.action.getParams(entry.availableSelection, true)\">\n <ng-container *ngTemplateOutlet=\"default\"></ng-container>\n </a>\n\n <ng-template #default>\n <div tabindex=\"0\" (keydown)=\"isArrowUpOrDownPressed($event)\">\n <eo-icon [iconSrc]=\"entry.action.iconSrc\" [iconId]=\"entry.action.iconId\"\n [badge]=\"entry.availableSelection?.length != selection?.length ? entry.availableSelection?.length : null\"></eo-icon>\n <div class=\"label\">{{entry.action.label}}</div>\n <!-- <div class=\"available-count\" *ngIf=\"entry.availableSelection?.length != selection?.length\">{{entry.availableSelection?.length}}</div> -->\n <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\" (click)=\"showActionDescription(id, $event)\"></eo-icon>\n </div>\n <div class=\"description\" [hidden]=\"id !== actionDescription\">{{entry.action.description}}</div>\n </ng-template>\n </ng-template>\n\n <div class=\"group\" *ngIf=\"actionLists?.common.length > 0\">\n <div class=\"group-title\" translate>eo.actions.group.common</div>\n <div class=\"action\" id=\"{{actionListEntry.id}}\" *ngFor=\"let actionListEntry of actionLists.common; let i = index\"\n (click)=\"onClick(actionListEntry)\" [ngClass]=\"{active: activeActionIndex === i}\">\n\n <ng-container *ngTemplateOutlet=\"action; context: {$implicit: actionListEntry, id: +i}\"></ng-container>\n\n </div>\n </div>\n\n <div class=\"group\" *ngIf=\"!loading; else loader\">\n <div *ngIf=\"actionLists?.further.length > 0\">\n <div class=\"group-title\" translate>eo.actions.group.further_actions</div>\n <div class=\"action\" id=\"{{actionListEntry.id}}\" *ngFor=\"let actionListEntry of actionLists.further; index as i\"\n eoPreventDoubleClick [ngClass]=\"{active: activeActionIndex === i + actionLists?.common.length }\"\n (debounceClick)=\"onClick(actionListEntry)\">\n\n <ng-container *ngTemplateOutlet=\"action; context: {$implicit: actionListEntry, id: 'f'+i}\"></ng-container>\n\n </div>\n </div>\n </div>\n\n <div class=\"group\" *ngIf=\"!loading && !actionLists?.further.length && !actionLists?.common.length\" [style.textAlign]=\"'center'\">\n {{ 'eo.action.not.available' | translate}}\n </div>\n\n <ng-template #loader>\n <div class=\"loading-container\">\n <eo-loading-spinner [size]=\"'medium'\"></eo-loading-spinner>\n </div>\n </ng-template>\n </div>\n\n <!-- sub actions -->\n <div class=\"group sub\" *ngIf=\"subActionsList && !showComponent\">\n <div class=\"sub-actions\">\n <div class=\"group-title\">{{subActionsListHeader}}</div>\n <div class=\"action sub\" *ngFor=\"let actionListEntry of subActionsList; index as i\" (click)=\"onClick(actionListEntry)\">\n <ng-container *ngTemplateOutlet=\"action; context: {$implicit: actionListEntry, id: 's'+i}\"></ng-container>\n </div>\n </div>\n <div class=\"group-buttons\">\n <button (click)=\"onCancel()\" translate>eo.export.cancel</button>\n </div>\n </div>\n\n <div>\n <ng-template eoActionComponentAnchor></ng-template>\n </div>\n\n <div>\n <ng-template eoExtActionComponentAnchor></ng-template>\n </div>\n\n</div>\n",
153
185
  encapsulation: ViewEncapsulation.None,
154
- styles: [".action-menu{-webkit-animation:eoFadeInRight var(--app-default-transition-duration);animation:eoFadeInRight var(--app-default-transition-duration);background-color:rgba(var(--color-primary-rgb),.95);bottom:0;box-shadow:0 0 10px 0 rgba(var(--color-black-rgb),.3);color:var(--color-white);height:100vh;min-width:300px;overflow:hidden;position:absolute;right:0;top:0;width:25vw;z-index:100}.action-menu .head{display:flex;flex:0 0 auto;flex-flow:row nowrap;order:0;padding:var(--app-pane-padding)}.action-menu .head .left{flex:1 1 auto;order:0}.action-menu .head .left .title{font-size:var(--font-headline);font-weight:var(--font-weight-light)}.action-menu .head .left .sub-title{font-size:var(--font-body);font-weight:var(--font-weight-light)}.action-menu .head .right{display:flex;flex:0 0 auto;flex-flow:row nowrap;order:1}.action-menu .head .right .count{color:rgba(var(--color-white-rgb),.3);font-size:5em;font-weight:var(--font-weight-light);line-height:1em;padding-right:var(--app-pane-padding)}.action-menu .head .right .close{margin:0;z-index:10}.action-menu .actions{height:100%;overflow:scroll}.action-menu .actions .group:last-child{margin-bottom:100px}.action-menu .group{display:inline-block;min-width:200px;padding:var(--app-pane-padding);width:90%}.action-menu .group .group-title{-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;background:rgba(var(--color-white-rgb),.1);margin-bottom:calc(var(--app-pane-padding)/4);padding:calc(var(--app-pane-padding)/4) calc(var(--app-pane-padding)/2);transition:all var(--app-default-transition-duration) ease-in-out}.action-menu .group:not(.sub):hover .group-title{background:rgba(var(--color-white-rgb),.3)}.action-menu .action{border-bottom:1px solid rgba(var(--color-white-rgb),.2)}.action-menu .action a.link{color:inherit;display:block;opacity:1;text-decoration:none}.action-menu .action>a.link>div:first-child,.action-menu .action>div:first-child{-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;align-items:center;cursor:pointer;display:flex;padding:calc(var(--app-pane-padding)/2) var(--app-pane-padding) calc(var(--app-pane-padding)/2) 0;transition:all var(--app-default-transition-duration) ease-in-out}.action-menu .action.sub>div:first-child{padding-left:calc(var(--app-pane-padding)/2)}.action-menu .action .label{flex:1 1 auto}.action-menu .action .available-count{color:rgba(var(--color-white-rgb),.3)}.action-menu .action .available-count,.action-menu .action eo-icon{margin:0 calc(var(--app-pane-padding)/2)}.action-menu .action eo-icon.info-icon{border-radius:50%;box-sizing:border-box;color:rgba(var(--color-white-rgb),.3);margin:0;padding:3px}.action-menu .action eo-icon.info-icon:hover{background-color:var(--color-primary)}.action-menu .action .description{-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-border-radius:2px;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;border-radius:2px;color:rgba(var(--color-white-rgb),.54);font-style:italic;padding:calc(var(--app-pane-padding)/4) var(--app-pane-padding) calc(var(--app-pane-padding)/2) var(--app-pane-padding);transition:all var(--app-default-transition-duration) ease-in-out}.action-menu .action:last-child{border:0}.action-menu .action:focus,.action-menu .action:hover{background:rgba(var(--color-white-rgb),.1)}.action-menu .group-buttons{display:flex;justify-content:flex-end;padding-top:var(--app-pane-padding)}.action-menu .group-buttons button{background-color:transparent}.action-menu .group-buttons button:hover{background-color:rgba(var(--color-white-rgb),.1)}.action-menu .loading-container{align-items:center;display:flex;justify-content:center;margin:50% auto;padding:16px}"]
186
+ styles: [".action-menu{-webkit-animation:eoFadeInRight var(--app-default-transition-duration);animation:eoFadeInRight var(--app-default-transition-duration);background-color:rgba(var(--color-primary-rgb),.95);bottom:0;box-shadow:0 0 10px 0 rgba(var(--color-black-rgb),.3);color:var(--color-white);height:100vh;min-width:300px;overflow:hidden;position:absolute;right:0;top:0;width:25vw;z-index:100}.action-menu .head{display:flex;flex:0 0 auto;flex-flow:row nowrap;order:0;padding:var(--app-pane-padding)}.action-menu .head .left{flex:1 1 auto;order:0}.action-menu .head .left .title{font-size:var(--font-headline);font-weight:var(--font-weight-light)}.action-menu .head .left .sub-title{font-size:var(--font-body);font-weight:var(--font-weight-light)}.action-menu .head .right{display:flex;flex:0 0 auto;flex-flow:row nowrap;order:1}.action-menu .head .right .count{color:rgba(var(--color-white-rgb),.3);font-size:5em;font-weight:var(--font-weight-light);line-height:1em;padding-right:var(--app-pane-padding)}.action-menu .head .right .close{margin:0;z-index:10}.action-menu .actions{height:100%;overflow:scroll}.action-menu .actions .group:last-child{margin-bottom:100px}.action-menu .group{display:inline-block;min-width:200px;padding:var(--app-pane-padding);width:90%}.action-menu .group .group-title{-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;background:rgba(var(--color-white-rgb),.1);margin-bottom:calc(var(--app-pane-padding)/4);padding:calc(var(--app-pane-padding)/4) calc(var(--app-pane-padding)/2);transition:all var(--app-default-transition-duration) ease-in-out}.action-menu .group:not(.sub):hover .group-title{background:rgba(var(--color-white-rgb),.3)}.action-menu .action{border-bottom:1px solid rgba(var(--color-white-rgb),.2)}.action-menu .action a.link{color:inherit;display:block;opacity:1;text-decoration:none}.action-menu .action.active{background:rgba(var(--color-white-rgb),.1)}.action-menu .action>a.link>div:first-child,.action-menu .action>div:first-child{-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;align-items:center;cursor:pointer;display:flex;padding:calc(var(--app-pane-padding)/2) var(--app-pane-padding) calc(var(--app-pane-padding)/2) 0;transition:all var(--app-default-transition-duration) ease-in-out}.action-menu .action.sub>div:first-child{padding-left:calc(var(--app-pane-padding)/2)}.action-menu .action .label{flex:1 1 auto}.action-menu .action .available-count{color:rgba(var(--color-white-rgb),.3)}.action-menu .action .available-count,.action-menu .action eo-icon{margin:0 calc(var(--app-pane-padding)/2)}.action-menu .action eo-icon.info-icon{border-radius:50%;box-sizing:border-box;color:rgba(var(--color-white-rgb),.3);margin:0;padding:3px}.action-menu .action eo-icon.info-icon:hover{background-color:var(--color-primary)}.action-menu .action .description{-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-border-radius:2px;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;border-radius:2px;color:rgba(var(--color-white-rgb),.54);font-style:italic;padding:calc(var(--app-pane-padding)/4) var(--app-pane-padding) calc(var(--app-pane-padding)/2) var(--app-pane-padding);transition:all var(--app-default-transition-duration) ease-in-out}.action-menu .action:last-child{border:0}.action-menu .action:focus,.action-menu .action:hover{background:rgba(var(--color-white-rgb),.1)}.action-menu .group-buttons{display:flex;justify-content:flex-end;padding-top:var(--app-pane-padding)}.action-menu .group-buttons button{background-color:transparent}.action-menu .group-buttons button:hover{background-color:rgba(var(--color-white-rgb),.1)}.action-menu .loading-container{align-items:center;display:flex;justify-content:center;margin:50% auto;padding:16px}"]
155
187
  },] }
156
188
  ];
157
189
  ActionMenuComponent.ctorParameters = () => [
158
190
  { type: ActionService },
159
191
  { type: Router },
160
192
  { type: ViewContainerRef },
193
+ { type: ElementRef },
161
194
  { type: ComponentFactoryResolver }
162
195
  ];
163
196
  ActionMenuComponent.propDecorators = {
164
197
  eoActionComponentAnchor: [{ type: ViewChild, args: [ActionComponentAnchorDirective,] }],
165
198
  externalDialog: [{ type: ViewChild, args: [ActionComponentAnchorDirective,] }]
166
199
  };
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvYWN0aW9ucy9hY3Rpb24tbWVudS9hY3Rpb24tbWVudS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBQyxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDbkMsT0FBTyxFQUFDLGFBQWEsRUFBb0IsTUFBTSxrQ0FBa0MsQ0FBQztBQUlsRixPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSw2REFBNkQsQ0FBQztBQUMzRyxPQUFPLEVBQUMsTUFBTSxFQUFFLGVBQWUsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBV2xGLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxvQkFBb0I7SUFxQjNELFlBQW9CLGFBQTRCLEVBQzVCLE1BQWMsRUFDZixnQkFBa0MsRUFDakMsd0JBQWtEO1FBQ3BFLEtBQUssRUFBRSxDQUFDO1FBSlUsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNmLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDakMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQW5CdEUsZ0JBQVcsR0FHUDtZQUNGLE1BQU0sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUU7U0FDeEIsQ0FBQztRQUNGLHlCQUFvQixHQUFHLEVBQUUsQ0FBQztR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QUFDLDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7dGFrZSwgdGFrZVVudGlsLCBmaWx0ZXIsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1V0aWxzfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtBY3Rpb25TZXJ2aWNlLCBBY3Rpb25TaG93Q29tbWFuZH0gZnJvbSAnLi4vYWN0aW9uLXNlcnZpY2UvYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtFeHRlcm5hbFByb2Nlc3NDb21wb25lbnRBY3Rpb259IGZyb20gJy4uL2ludGVyZmFjZXMvYWN0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQge1R5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3Rpb25Db21wb25lbnR9IGZyb20gJy4uL2ludGVyZmFjZXMvYWN0aW9uLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtBY3Rpb25Db21wb25lbnRBbmNob3JEaXJlY3RpdmV9IGZyb20gJy4vYWN0aW9uLWNvbXBvbmVudC1hbmNob3IvYWN0aW9uLWNvbXBvbmVudC1hbmNob3IuZGlyZWN0aXZlJztcbmltcG9ydCB7Um91dGVyLCBOYXZpZ2F0aW9uU3RhcnR9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1Vuc3Vic2NyaWJlT25EZXN0cm95fSBmcm9tICcuLi8uLi91dGlsL3Vuc3Vic2NyaWJlL3Vuc3Vic2NyaWJlLmNvbXBvbmVudCc7XG5pbXBvcnQge0FjdGlvbkxpc3RFbnRyeX0gZnJvbSAnLi4vaW50ZXJmYWNlcy9hY3Rpb24tbGlzdC1lbnRyeSc7XG5pbXBvcnQge0NvbXBvbmVudEFjdGlvbiwgRXh0ZXJuYWxDb21wb25lbnRBY3Rpb24sIExpc3RBY3Rpb24sIFNpbXBsZUFjdGlvbn0gZnJvbSAnLi4vJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1hY3Rpb24tbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hY3Rpb24tbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FjdGlvbi1tZW51LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQWN0aW9uTWVudUNvbXBvbmVudCBleHRlbmRzIFVuc3Vic2NyaWJlT25EZXN0cm95IHtcblxuICBAVmlld0NoaWxkKEFjdGlvbkNvbXBvbmVudEFuY2hvckRpcmVjdGl2ZSkgZW9BY3Rpb25Db21wb25lbnRBbmNob3I6IEFjdGlvbkNvbXBvbmVudEFuY2hvckRpcmVjdGl2ZTtcbiAgQFZpZXdDaGlsZChBY3Rpb25Db21wb25lbnRBbmNob3JEaXJlY3RpdmUpIGV4dGVybmFsRGlhbG9nOiBBY3Rpb25Db21wb25lbnRBbmNob3JEaXJlY3RpdmU7XG5cbiAgYWN0aW9uTGlzdHM6IHtcbiAgICBjb21tb246IEFjdGlvbkxpc3RFbnRyeVtdLFxuICAgIGZ1cnRoZXI6IEFjdGlvbkxpc3RFbnRyeVtdXG4gIH0gPSB7XG4gICAgY29tbW9uOiBbXSwgZnVydGhlcjogW11cbiAgfTtcbiAgc3ViQWN0aW9uc0xpc3RIZWFkZXIgPSAnJztcbiAgc3ViQWN0aW9uc0xpc3Q6IEFjdGlvbkxpc3RFbnRyeVtdO1xuICBzZWxlY3Rpb246IGFueVtdO1xuICBzdWJTZWxlY3Rpb246IGFueVtdO1xuICB0YXJnZXQ6IHN0cmluZztcbiAgc2hvd0NvbXBvbmVudCA9IGZhbHNlO1xuICBhY3Rpb25EZXNjcmlwdGlvbjogc3RyaW5nO1xuICBzaG93TWVudSA9IGZhbHNlO1xuICBsb2FkaW5nID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhY3Rpb25TZXJ2aWNlOiBBY3Rpb25TZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgICBwdWJsaWMgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikge1xuICAgIHN1cGVyKCk7XG5cbiAgICAvLyBzdWJzY3JpYmUgZm9yIHZpc2liaWxpdHkgb2JzZXJ2YWJsZSBpbmRpY2F0aW5nIHdoZXRoZXIgdG8gc2hvdyBvciBoaWRlIHRoZSBhY3Rpb25zXG4gICAgdGhpcy5hY3Rpb25TZXJ2aWNlXG4gICAgICAuYWN0aW9uc1Nob3dpbmckLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKSlcbiAgICAgIC5zdWJzY3JpYmUoKGNtZDogQWN0aW9uU2hvd0NvbW1hbmQpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLnNob3dNZW51ICYmIGNtZC5zaG93KSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3Rpb24gPSBjbWQuc2VsZWN0aW9uO1xuICAgICAgICAgIHRoaXMudGFyZ2V0ID0gY21kLnRhcmdldDtcbiAgICAgICAgICB0aGlzLnNob3dBY3Rpb25NZW51KCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zaG93TWVudSAmJiAhY21kLnNob3cpIHtcbiAgICAgICAgICB0aGlzLmhpZGVBY3Rpb25NZW51KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkJCksXG4gICAgICAgIGZpbHRlcihldnQgPT4gZXZ0IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5oaWRlKCkpO1xuXG4gIH1cblxuICBwcml2YXRlIGdldEFjdGlvbnMoKSB7XG4gICAgdGhpcy5hY3Rpb25TZXJ2aWNlXG4gICAgICAuZ2V0QWN0aW9uc0xpc3QodGhpcy5zZWxlY3Rpb24sIHRoaXMudmlld0NvbnRhaW5lclJlZilcbiAgICAgIC5zdWJzY3JpYmUoYWN0aW9uc0xpc3QgPT4ge1xuICAgICAgICB0aGlzLmFjdGlvbkxpc3RzLmNvbW1vbiA9IGFjdGlvbnNMaXN0LmZpbHRlcihhY3Rpb25MaXN0RW50cnkgPT4gYWN0aW9uTGlzdEVudHJ5LmFjdGlvbi5ncm91cCA9PT0gJ2NvbW1vbicpO1xuICAgICAgICB0aGlzLmFjdGlvbkxpc3RzLmZ1cnRoZXIgPSBhY3Rpb25zTGlzdC5maWx0ZXIoYWN0aW9uTGlzdEVudHJ5ID0+IGFjdGlvbkxpc3RFbnRyeS5hY3Rpb24uZ3JvdXAgPT09ICdmdXJ0aGVyJyk7XG4gICAgICB9KTtcblxuICB9XG5cbiAgcHJpdmF0ZSBnZXRNb3JlQWN0aW9ucygpIHtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuYWN0aW9uU2VydmljZVxuICAgICAgLmdldE1vcmVBY3Rpb25zKHRoaXMuc2VsZWN0aW9uLCB0aGlzLnZpZXdDb250YWluZXJSZWYpXG4gICAgICAuc3Vic2NyaWJlKGFjdGlvbkxpc3QgPT4ge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5hY3Rpb25MaXN0cy5mdXJ0aGVyID0gdGhpcy5hY3Rpb25MaXN0cy5mdXJ0aGVyLmNvbmNhdChhY3Rpb25MaXN0KS5zb3J0KFV0aWxzLnNvcnRWYWx1ZXMoJ2FjdGlvbi5sYWJlbCcpKTtcbiAgICAgIH0sIFV0aWxzLnRocm93KCgpID0+IHRoaXMubG9hZGluZyA9IGZhbHNlKSk7XG4gIH1cblxuICBoaWRlKCkge1xuICAgIHRoaXMuYWN0aW9uU2VydmljZS5oaWRlQWN0aW9ucygpO1xuICB9XG5cbiAgc2hvd0FjdGlvbkRlc2NyaXB0aW9uKGksIGV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLmFjdGlvbkRlc2NyaXB0aW9uID0gaSA9PT0gdGhpcy5hY3Rpb25EZXNjcmlwdGlvbiA/IG51bGwgOiBpO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG93QWN0aW9uTWVudSgpIHtcbiAgICB0aGlzLmdldEFjdGlvbnMoKTtcbiAgICBpZiAodGhpcy50YXJnZXQgPT09ICdETVNfT0JKRUNUJykge1xuICAgICAgdGhpcy5nZXRNb3JlQWN0aW9ucygpO1xuICAgIH1cbiAgICB0aGlzLnNob3dNZW51ID0gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgaGlkZUFjdGlvbk1lbnUoKSB7XG4gICAgdGhpcy5jbGVhcigpO1xuICAgIHRoaXMuc2hvd01lbnUgPSBmYWxzZTtcbiAgICB0aGlzLmFjdGlvbkxpc3RzID0ge2NvbW1vbjogW10sIGZ1cnRoZXI6IFtdfTtcbiAgfVxuXG4gIG9uQ2xpY2soYWN0aW9uTGlzdEVudHJ5OiBBY3Rpb25MaXN0RW50cnkpIHtcbiAgICB0aGlzLnN1YlNlbGVjdGlvbiA9IGFjdGlvbkxpc3RFbnRyeS5hdmFpbGFibGVTZWxlY3Rpb247XG4gICAgLy8gSXQgaXMgcG9zc2libGUgdGhhdCBhY3Rpb25zIGltcGxlbWVudCBtb3JlIHRoYW4gb25lIGFjdGlvbiBpbnRlcmZhY2VcbiAgICAvLyBzbyB3ZSBzaG91bGQgYmUgYXdhcmUgb2YgcnVubmluZyBhbiBhY3Rpb24gYW5kIHRoZW4gb3BlbiBpdHMgc3ViIGFjdGlvbnNcblxuICAgIGNvbnN0IGlzU2ltcGxlQWN0aW9uID0gISFhY3Rpb25MaXN0RW50cnkuYWN0aW9uWydydW4nXTtcbiAgICBjb25zdCBpc0xpc3RBY3Rpb24gPSBhY3Rpb25MaXN0RW50cnkuYWN0aW9uLmhhc093blByb3BlcnR5KCdzdWJBY3Rpb25Db21wb25lbnRzJyk7XG4gICAgY29uc3QgaXNDb21wb25lbnRBY3Rpb24gPSBhY3Rpb25MaXN0RW50cnkuYWN0aW9uLmhhc093blByb3BlcnR5KCdjb21wb25lbnQnKTtcbiAgICBjb25zdCBpc0V4dGVybmFsQ29tcG9uZW50QWN0aW9uID0gYWN0aW9uTGlzdEVudHJ5LmFjdGlvbi5oYXNPd25Qcm9wZXJ0eSgnZXh0Q29tcG9uZW50cycpO1xuICAgIGNvbnN0IGlzV29ya0Zsb3dBY3Rpb24gPSBhY3Rpb25MaXN0RW50cnkuYWN0aW9uWydleGVjdXRhYmxlUHJvY2VzcyddICYmIGlzRXh0ZXJuYWxDb21wb25lbnRBY3Rpb247XG4gICAgY29uc3QgaXNTaW1wbGVBY3Rpb25Pbmx5ID0gaXNTaW1wbGVBY3Rpb24gJiYgIWlzTGlzdEFjdGlvbiAmJiAhaXNDb21wb25lbnRBY3Rpb24gJiYgIWlzRXh0ZXJuYWxDb21wb25lbnRBY3Rpb247XG5cbiAgICBpZiAoaXNTaW1wbGVBY3Rpb24pIHtcbiAgICAgIGNvbnN0IHNpbXBsZUFjdGlvbiA9IGFjdGlvbkxpc3RFbnRyeS5hY3Rpb24gYXMgU2ltcGxlQWN0aW9uO1xuICAgICAgc2ltcGxlQWN0aW9uLnJ1bihhY3Rpb25MaXN0RW50cnkuYXZhaWxhYmxlU2VsZWN0aW9uKTtcblxuICAgICAgLy8gaGlkZSBhY3Rpb24gbWVudSBpZiBub3RoaW5nIGVsc2UgaXMgdG8gYmUgc2hvd24vZG9uZVxuICAgICAgaWYgKGlzU2ltcGxlQWN0aW9uT25seSkge1xuICAgICAgICB0aGlzLmhpZGVBY3Rpb25NZW51KCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzTGlzdEFjdGlvbikge1xuICAgICAgY29uc3QgbGlzdEFjdGlvbiA9IGFjdGlvbkxpc3RFbnRyeS5hY3Rpb24gYXMgTGlzdEFjdGlvbjtcbiAgICAgIHRoaXMuc3ViQWN0aW9uc0xpc3RIZWFkZXIgPSBsaXN0QWN0aW9uLmhlYWRlcjtcbiAgICAgIHRoaXMuYWN0aW9uU2VydmljZVxuICAgICAgICAuZ2V0RXhlY3V0YWJsZUFjdGlvbnNMaXN0RnJvbUdpdmVuQWN0aW9ucyhsaXN0QWN0aW9uLnN1YkFjdGlvbkNvbXBvbmVudHMsIHRoaXMuc2VsZWN0aW9uLCB0aGlzLnZpZXdDb250YWluZXJSZWYpXG4gICAgICAgIC5zdWJzY3JpYmUoKGFjdGlvbnNMaXN0OiBBY3Rpb25MaXN0RW50cnlbXSkgPT4gdGhpcy5zdWJBY3Rpb25zTGlzdCA9IGFjdGlvbnNMaXN0KTtcbiAgICB9IGVsc2UgaWYgKGlzQ29tcG9uZW50QWN0aW9uKSB7XG4gICAgICBjb25zdCBjb21wb25lbnRBY3Rpb24gPSBhY3Rpb25MaXN0RW50cnkuYWN0aW9uIGFzIENvbXBvbmVudEFjdGlvbjtcbiAgICAgIHRoaXMuc2hvd0FjdGlvbkNvbXBvbmVudChjb21wb25lbnRBY3Rpb24uY29tcG9uZW50LCB0aGlzLmVvQWN0aW9uQ29tcG9uZW50QW5jaG9yLCB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgdHJ1ZSk7XG4gICAgfSBlbHNlIGlmIChpc0V4dGVybmFsQ29tcG9uZW50QWN0aW9uICYmICFpc1dvcmtGbG93QWN0aW9uKSB7XG4gICAgICBjb25zdCBleHRDb21wb25lbnRBY3Rpb24gPSBhY3Rpb25MaXN0RW50cnkuYWN0aW9uIGFzIEV4dGVybmFsQ29tcG9uZW50QWN0aW9uO1xuICAgICAgdGhpcy5zaG93QWN0aW9uQ29tcG9uZW50KGV4dENvbXBvbmVudEFjdGlvbi5leHRDb21wb25lbnRzLCB0aGlzLmV4dGVybmFsRGlhbG9nLCB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgZmFsc2UpO1xuICAgIH0gZWxzZSBpZiAoaXNXb3JrRmxvd0FjdGlvbikge1xuICAgICAgY29uc3QgZXh0Q29tcG9uZW50QWN0aW9uID0gYWN0aW9uTGlzdEVudHJ5LmFjdGlvbiBhcyBFeHRlcm5hbFByb2Nlc3NDb21wb25lbnRBY3Rpb247XG4gICAgICB0aGlzLnNob3dBY3Rpb25Db21wb25lbnQoZXh0Q29tcG9uZW50QWN0aW9uLmV4dENvbXBvbmVudHMsIHRoaXMuZXh0ZXJuYWxEaWFsb2csIHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICBmYWxzZSwge2V4ZWN1dGFibGVQcm9jZXNzOiBleHRDb21wb25lbnRBY3Rpb24uZXhlY3V0YWJsZVByb2Nlc3N9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNob3dBY3Rpb25Db21wb25lbnQoY29tcG9uZW50OiBUeXBlPGFueT4sIHZpZXdDb250UmVmLCBmYWN0b3J5UmVzb2x2ZXIsIHNob3dDb21wb25lbnQsIGlucHV0cz86IGFueSkge1xuICAgIHRoaXMuc2hvd0NvbXBvbmVudCA9IHNob3dDb21wb25lbnQ7XG4gICAgbGV0IGNvbXBvbmVudEZhY3RvcnkgPSBmYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50KTtcbiAgICBsZXQgYW5jaG9yVmlld0NvbnRhaW5lclJlZiA9IHZpZXdDb250UmVmLnZpZXdDb250YWluZXJSZWY7XG4gICAgYW5jaG9yVmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgIGxldCBjb21wb25lbnRSZWYgPSBhbmNob3JWaWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRGYWN0b3J5KTtcbiAgICAoPEFjdGlvbkNvbXBvbmVudD5jb21wb25lbnRSZWYuaW5zdGFuY2UpLnNlbGVjdGlvbiA9IHRoaXMuc3ViU2VsZWN0aW9uIHx8IHRoaXMuc2VsZWN0aW9uO1xuICAgICg8QWN0aW9uQ29tcG9uZW50PmNvbXBvbmVudFJlZi5pbnN0YW5jZSkuY2FuY2VsZWQucGlwZSh0YWtlKDEpLCB0YXAoKCkgPT4gKHRoaXMuc3ViU2VsZWN0aW9uID0gbnVsbCkpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkNhbmNlbCgpKTtcbiAgICAoPEFjdGlvbkNvbXBvbmVudD5jb21wb25lbnRSZWYuaW5zdGFuY2UpLmZpbmlzaGVkLnBpcGUodGFrZSgxKSwgdGFwKCgpID0+ICh0aGlzLnN1YlNlbGVjdGlvbiA9IG51bGwpKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMub25GaW5pc2goKSk7XG4gICAgaWYgKGlucHV0cykge1xuICAgICAgT2JqZWN0LmtleXMoaW5wdXRzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlW2tleV0gPSBpbnB1dHNba2V5XTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGlzTGlua0FjdGlvbihhY3Rpb24pIHtcbiAgICAvLyB1c2VkIGZyb20gd2l0aGluIHRlbXBsYXRlXG4gICAgcmV0dXJuICEhKGFjdGlvbiAmJiBhY3Rpb24uZ2V0TGluayAmJiBhY3Rpb24uZ2V0UGFyYW1zKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXIoKSB7XG4gICAgdGhpcy5zaG93Q29tcG9uZW50ID0gZmFsc2U7XG4gICAgdGhpcy5zdWJBY3Rpb25zTGlzdCA9IG51bGw7XG4gICAgdGhpcy5hY3Rpb25EZXNjcmlwdGlvbiA9IG51bGw7XG4gICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgaWYgKHRoaXMuZW9BY3Rpb25Db21wb25lbnRBbmNob3IpIHtcbiAgICAgIHRoaXMuZW9BY3Rpb25Db21wb25lbnRBbmNob3Iudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2FuY2VsKCkge1xuICAgIHRoaXMuY2xlYXIoKTtcbiAgfVxuXG4gIG9uRmluaXNoKCkge1xuICAgIHRoaXMuaGlkZUFjdGlvbk1lbnUoKTtcbiAgfVxufVxuIl19
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvYWN0aW9ucy9hY3Rpb24tbWVudS9hY3Rpb24tbWVudS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBQyxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM5SCxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ25DLE9BQU8sRUFBQyxhQUFhLEVBQW9CLE1BQU0sa0NBQWtDLENBQUM7QUFJbEYsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sNkRBQTZELENBQUM7QUFDM0csT0FBTyxFQUFDLE1BQU0sRUFBRSxlQUFlLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQVdsRixNQUFNLE9BQU8sbUJBQW9CLFNBQVEsb0JBQW9CO0lBcUIzRCxZQUFvQixhQUE0QixFQUM1QixNQUFjLEVBQ2YsZ0JBQWtDLEVBQ2pDLE9BQW1CLEVBQ25CLHdCQUFrRDtRQUNwRSxLQUFLLEVBQUUsQ0FBQztRQUxVLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2pDLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQXJCdEUsZ0JBQVcsR0FHUDtZQUNGLE1BQU0sRUFBRSxFQUFFLEVBQUUsT0FBTyxF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QkFBdUIsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUN2RDtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7OztZQWhORixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIseTFJQUEyQztnQkFFM0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7O2FBQ3RDOzs7WUFoQk8sYUFBYTtZQUtiLE1BQU07WUFQNkQsZ0JBQWdCO1lBQUUsVUFBVTtZQUFqRSx3QkFBd0I7OztzQ0FxQjNELFNBQVMsU0FBQyw4QkFBOEI7NkJBQ3hDLFNBQVMsU0FBQyw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3Rha2UsIHRha2VVbnRpbCwgZmlsdGVyLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Q29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYsIEVsZW1lbnRSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtVdGlsc30gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7QWN0aW9uU2VydmljZSwgQWN0aW9uU2hvd0NvbW1hbmR9IGZyb20gJy4uL2FjdGlvbi1zZXJ2aWNlL2FjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7RXh0ZXJuYWxQcm9jZXNzQ29tcG9uZW50QWN0aW9ufSBmcm9tICcuLi9pbnRlcmZhY2VzL2FjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHtUeXBlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aW9uQ29tcG9uZW50fSBmcm9tICcuLi9pbnRlcmZhY2VzL2FjdGlvbi1jb21wb25lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7QWN0aW9uQ29tcG9uZW50QW5jaG9yRGlyZWN0aXZlfSBmcm9tICcuL2FjdGlvbi1jb21wb25lbnQtYW5jaG9yL2FjdGlvbi1jb21wb25lbnQtYW5jaG9yLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1JvdXRlciwgTmF2aWdhdGlvblN0YXJ0fSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtVbnN1YnNjcmliZU9uRGVzdHJveX0gZnJvbSAnLi4vLi4vdXRpbC91bnN1YnNjcmliZS91bnN1YnNjcmliZS5jb21wb25lbnQnO1xuaW1wb3J0IHtBY3Rpb25MaXN0RW50cnl9IGZyb20gJy4uL2ludGVyZmFjZXMvYWN0aW9uLWxpc3QtZW50cnknO1xuaW1wb3J0IHtDb21wb25lbnRBY3Rpb24sIEV4dGVybmFsQ29tcG9uZW50QWN0aW9uLCBMaXN0QWN0aW9uLCBTaW1wbGVBY3Rpb259IGZyb20gJy4uLyc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tYWN0aW9uLW1lbnUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9uLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hY3Rpb24tbWVudS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEFjdGlvbk1lbnVDb21wb25lbnQgZXh0ZW5kcyBVbnN1YnNjcmliZU9uRGVzdHJveSB7XG5cbiAgQFZpZXdDaGlsZChBY3Rpb25Db21wb25lbnRBbmNob3JEaXJlY3RpdmUpIGVvQWN0aW9uQ29tcG9uZW50QW5jaG9yOiBBY3Rpb25Db21wb25lbnRBbmNob3JEaXJlY3RpdmU7XG4gIEBWaWV3Q2hpbGQoQWN0aW9uQ29tcG9uZW50QW5jaG9yRGlyZWN0aXZlKSBleHRlcm5hbERpYWxvZzogQWN0aW9uQ29tcG9uZW50QW5jaG9yRGlyZWN0aXZlO1xuICBhY3Rpb25MaXN0czoge1xuICAgIGNvbW1vbjogQWN0aW9uTGlzdEVudHJ5W10sXG4gICAgZnVydGhlcjogQWN0aW9uTGlzdEVudHJ5W11cbiAgfSA9IHtcbiAgICBjb21tb246IFtdLCBmdXJ0aGVyOiBbXVxuICB9O1xuICBzdWJBY3Rpb25zTGlzdEhlYWRlciA9ICcnO1xuICBzdWJBY3Rpb25zTGlzdDogQWN0aW9uTGlzdEVudHJ5W107XG4gIHNlbGVjdGlvbjogYW55W107XG4gIHN1YlNlbGVjdGlvbjogYW55W107XG4gIHRhcmdldDogc3RyaW5nO1xuICBzaG93Q29tcG9uZW50ID0gZmFsc2U7XG4gIGFjdGlvbkRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHNob3dNZW51ID0gZmFsc2U7XG4gIGxvYWRpbmcgPSBmYWxzZTtcbiAgYWN0aXZlQWN0aW9uSW5kZXggPSAwO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYWN0aW9uU2VydmljZTogQWN0aW9uU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgICAgICAgcHVibGljIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgICAgICAgIHByaXZhdGUgZWxlbVJlZjogRWxlbWVudFJlZixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikge1xuICAgIHN1cGVyKCk7XG5cbiAgICAvLyBzdWJzY3JpYmUgZm9yIHZpc2liaWxpdHkgb2JzZXJ2YWJsZSBpbmRpY2F0aW5nIHdoZXRoZXIgdG8gc2hvdyBvciBoaWRlIHRoZSBhY3Rpb25zXG4gICAgdGhpcy5hY3Rpb25TZXJ2aWNlXG4gICAgICAuYWN0aW9uc1Nob3dpbmckLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKSlcbiAgICAgIC5zdWJzY3JpYmUoKGNtZDogQWN0aW9uU2hvd0NvbW1hbmQpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLnNob3dNZW51ICYmIGNtZC5zaG93KSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3Rpb24gPSBjbWQuc2VsZWN0aW9uO1xuICAgICAgICAgIHRoaXMudGFyZ2V0ID0gY21kLnRhcmdldDtcbiAgICAgICAgICB0aGlzLnNob3dBY3Rpb25NZW51KCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zaG93TWVudSAmJiAhY21kLnNob3cpIHtcbiAgICAgICAgICB0aGlzLmhpZGVBY3Rpb25NZW51KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkJCksXG4gICAgICAgIGZpbHRlcihldnQgPT4gZXZ0IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5oaWRlKCkpO1xuXG4gIH1cblxuICBwcml2YXRlIGdldEFjdGlvbnMoKSB7XG4gICAgdGhpcy5hY3Rpb25TZXJ2aWNlXG4gICAgICAuZ2V0QWN0aW9uc0xpc3QodGhpcy5zZWxlY3Rpb24sIHRoaXMudmlld0NvbnRhaW5lclJlZilcbiAgICAgIC5zdWJzY3JpYmUoYWN0aW9uc0xpc3QgPT4ge1xuICAgICAgICB0aGlzLmFjdGlvbkxpc3RzLmNvbW1vbiA9IGFjdGlvbnNMaXN0LmZpbHRlcihhY3Rpb25MaXN0RW50cnkgPT4gYWN0aW9uTGlzdEVudHJ5LmFjdGlvbi5ncm91cCA9PT0gJ2NvbW1vbicpO1xuICAgICAgICB0aGlzLmFjdGlvbkxpc3RzLmZ1cnRoZXIgPSBhY3Rpb25zTGlzdC5maWx0ZXIoYWN0aW9uTGlzdEVudHJ5ID0+IGFjdGlvbkxpc3RFbnRyeS5hY3Rpb24uZ3JvdXAgPT09ICdmdXJ0aGVyJyk7XG4gICAgICB9KTtcblxuICB9XG5cbiAgcHJpdmF0ZSBnZXRNb3JlQWN0aW9ucygpIHtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuYWN0aW9uU2VydmljZVxuICAgICAgLmdldE1vcmVBY3Rpb25zKHRoaXMuc2VsZWN0aW9uLCB0aGlzLnZpZXdDb250YWluZXJSZWYpXG4gICAgICAuc3Vic2NyaWJlKGFjdGlvbkxpc3QgPT4ge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5hY3Rpb25MaXN0cy5mdXJ0aGVyID0gdGhpcy5hY3Rpb25MaXN0cy5mdXJ0aGVyLmNvbmNhdChhY3Rpb25MaXN0KS5zb3J0KFV0aWxzLnNvcnRWYWx1ZXMoJ2FjdGlvbi5sYWJlbCcpKTtcbiAgICAgIH0sIFV0aWxzLnRocm93KCgpID0+IHRoaXMubG9hZGluZyA9IGZhbHNlKSk7XG4gIH1cblxuICBoaWRlKCkge1xuICAgIHRoaXMuYWN0aW9uU2VydmljZS5oaWRlQWN0aW9ucygpO1xuICB9XG5cbiAgc2hvd0FjdGlvbkRlc2NyaXB0aW9uKGksIGV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLmFjdGlvbkRlc2NyaXB0aW9uID0gaSA9PT0gdGhpcy5hY3Rpb25EZXNjcmlwdGlvbiA/IG51bGwgOiBpO1xuICB9XG5cbiAgY2F0Y2hGb2N1cygpIHsgICAgXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmVsZW1SZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdbdGFiaW5kZXg9XCIwXCJdJykuZm9jdXMoKTtcbiAgICB9LCk7XG4gIH1cblxuICBpc0Fycm93VXBPckRvd25QcmVzc2VkKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgY29uc3Qga2V5ID0gZXZlbnQua2V5O1xuICAgIGxldCBsZW5ndGggPSB0aGlzLmFjdGlvbkxpc3RzLmNvbW1vbi5sZW5ndGggKyB0aGlzLmFjdGlvbkxpc3RzLmZ1cnRoZXIubGVuZ3RoIC0gMTtcbiAgICBpZiAoa2V5ID09PSAnQXJyb3dVcCcpIHtcbiAgICAgIHRoaXMuYWN0aXZlQWN0aW9uSW5kZXggPSAodGhpcy5hY3RpdmVBY3Rpb25JbmRleCA9PT0gMCkgPyBsZW5ndGggOiB0aGlzLmFjdGl2ZUFjdGlvbkluZGV4IC0gMTtcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgIHRoaXMuYWN0aXZlQWN0aW9uSW5kZXggPSAodGhpcy5hY3RpdmVBY3Rpb25JbmRleCA9PT0gbGVuZ3RoKSA/IDAgOiB0aGlzLmFjdGl2ZUFjdGlvbkluZGV4ICsgMTtcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ0VudGVyJykge1xuICAgICAgbGV0IGNsaWNrZWRMaXN0RW50cnk7XG4gICAgICBpZiAodGhpcy5hY3RpdmVBY3Rpb25JbmRleCA8IHRoaXMuYWN0aW9uTGlzdHMuY29tbW9uLmxlbmd0aCkge1xuICAgICAgICBjbGlja2VkTGlzdEVudHJ5ID0gdGhpcy5hY3Rpb25MaXN0cy5jb21tb25bdGhpcy5hY3RpdmVBY3Rpb25JbmRleF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbGlja2VkTGlzdEVudHJ5ID0gdGhpcy5hY3Rpb25MaXN0cy5mdXJ0aGVyW3RoaXMuYWN0aXZlQWN0aW9uSW5kZXggLSB0aGlzLmFjdGlvbkxpc3RzLmNvbW1vbi5sZW5ndGhdO1xuICAgICAgfVxuICAgICAgdGhpcy5vbkNsaWNrKGNsaWNrZWRMaXN0RW50cnkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2hvd0FjdGlvbk1lbnUoKSB7XG4gICAgdGhpcy5hY3RpdmVBY3Rpb25JbmRleCA9IDA7XG4gICAgdGhpcy5nZXRBY3Rpb25zKCk7XG4gICAgaWYgKHRoaXMudGFyZ2V0ID09PSAnRE1TX09CSkVDVCcpIHtcbiAgICAgIHRoaXMuZ2V0TW9yZUFjdGlvbnMoKTtcbiAgICB9XG4gICAgdGhpcy5zaG93TWVudSA9IHRydWU7XG4gICAgdGhpcy5jYXRjaEZvY3VzKCk7XG4gIH1cblxuICBwcml2YXRlIGhpZGVBY3Rpb25NZW51KCkge1xuICAgIHRoaXMuY2xlYXIoKTtcbiAgICB0aGlzLnNob3dNZW51ID0gZmFsc2U7XG4gICAgdGhpcy5hY3Rpb25MaXN0cyA9IHtjb21tb246IFtdLCBmdXJ0aGVyOiBbXX07XG4gIH1cblxuICBvbkNsaWNrKGFjdGlvbkxpc3RFbnRyeTogQWN0aW9uTGlzdEVudHJ5KSB7XG4gICAgdGhpcy5zdWJTZWxlY3Rpb24gPSBhY3Rpb25MaXN0RW50cnkuYXZhaWxhYmxlU2VsZWN0aW9uO1xuICAgIC8vIEl0IGlzIHBvc3NpYmxlIHRoYXQgYWN0aW9ucyBpbXBsZW1lbnQgbW9yZSB0aGFuIG9uZSBhY3Rpb24gaW50ZXJmYWNlXG4gICAgLy8gc28gd2Ugc2hvdWxkIGJlIGF3YXJlIG9mIHJ1bm5pbmcgYW4gYWN0aW9uIGFuZCB0aGVuIG9wZW4gaXRzIHN1YiBhY3Rpb25zXG5cbiAgICBjb25zdCBpc1NpbXBsZUFjdGlvbiA9ICEhYWN0aW9uTGlzdEVudHJ5LmFjdGlvblsncnVuJ107XG4gICAgY29uc3QgaXNMaXN0QWN0aW9uID0gYWN0aW9uTGlzdEVudHJ5LmFjdGlvbi5oYXNPd25Qcm9wZXJ0eSgnc3ViQWN0aW9uQ29tcG9uZW50cycpO1xuICAgIGNvbnN0IGlzQ29tcG9uZW50QWN0aW9uID0gYWN0aW9uTGlzdEVudHJ5LmFjdGlvbi5oYXNPd25Qcm9wZXJ0eSgnY29tcG9uZW50Jyk7XG4gICAgY29uc3QgaXNFeHRlcm5hbENvbXBvbmVudEFjdGlvbiA9IGFjdGlvbkxpc3RFbnRyeS5hY3Rpb24uaGFzT3duUHJvcGVydHkoJ2V4dENvbXBvbmVudHMnKTtcbiAgICBjb25zdCBpc1dvcmtGbG93QWN0aW9uID0gYWN0aW9uTGlzdEVudHJ5LmFjdGlvblsnZXhlY3V0YWJsZVByb2Nlc3MnXSAmJiBpc0V4dGVybmFsQ29tcG9uZW50QWN0aW9uO1xuICAgIGNvbnN0IGlzU2ltcGxlQWN0aW9uT25seSA9IGlzU2ltcGxlQWN0aW9uICYmICFpc0xpc3RBY3Rpb24gJiYgIWlzQ29tcG9uZW50QWN0aW9uICYmICFpc0V4dGVybmFsQ29tcG9uZW50QWN0aW9uO1xuXG4gICAgaWYgKGlzU2ltcGxlQWN0aW9uKSB7XG4gICAgICBjb25zdCBzaW1wbGVBY3Rpb24gPSBhY3Rpb25MaXN0RW50cnkuYWN0aW9uIGFzIFNpbXBsZUFjdGlvbjtcbiAgICAgIHNpbXBsZUFjdGlvbi5ydW4oYWN0aW9uTGlzdEVudHJ5LmF2YWlsYWJsZVNlbGVjdGlvbik7XG5cbiAgICAgIC8vIGhpZGUgYWN0aW9uIG1lbnUgaWYgbm90aGluZyBlbHNlIGlzIHRvIGJlIHNob3duL2RvbmVcbiAgICAgIGlmIChpc1NpbXBsZUFjdGlvbk9ubHkpIHtcbiAgICAgICAgdGhpcy5oaWRlQWN0aW9uTWVudSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpc0xpc3RBY3Rpb24pIHtcbiAgICAgIGNvbnN0IGxpc3RBY3Rpb24gPSBhY3Rpb25MaXN0RW50cnkuYWN0aW9uIGFzIExpc3RBY3Rpb247XG4gICAgICB0aGlzLnN1YkFjdGlvbnNMaXN0SGVhZGVyID0gbGlzdEFjdGlvbi5oZWFkZXI7XG4gICAgICB0aGlzLmFjdGlvblNlcnZpY2VcbiAgICAgICAgLmdldEV4ZWN1dGFibGVBY3Rpb25zTGlzdEZyb21HaXZlbkFjdGlvbnMobGlzdEFjdGlvbi5zdWJBY3Rpb25Db21wb25lbnRzLCB0aGlzLnNlbGVjdGlvbiwgdGhpcy52aWV3Q29udGFpbmVyUmVmKVxuICAgICAgICAuc3Vic2NyaWJlKChhY3Rpb25zTGlzdDogQWN0aW9uTGlzdEVudHJ5W10pID0+IHRoaXMuc3ViQWN0aW9uc0xpc3QgPSBhY3Rpb25zTGlzdCk7XG4gICAgfSBlbHNlIGlmIChpc0NvbXBvbmVudEFjdGlvbikge1xuICAgICAgY29uc3QgY29tcG9uZW50QWN0aW9uID0gYWN0aW9uTGlzdEVudHJ5LmFjdGlvbiBhcyBDb21wb25lbnRBY3Rpb247XG4gICAgICB0aGlzLnNob3dBY3Rpb25Db21wb25lbnQoY29tcG9uZW50QWN0aW9uLmNvbXBvbmVudCwgdGhpcy5lb0FjdGlvbkNvbXBvbmVudEFuY2hvciwgdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIHRydWUpO1xuICAgIH0gZWxzZSBpZiAoaXNFeHRlcm5hbENvbXBvbmVudEFjdGlvbiAmJiAhaXNXb3JrRmxvd0FjdGlvbikge1xuICAgICAgY29uc3QgZXh0Q29tcG9uZW50QWN0aW9uID0gYWN0aW9uTGlzdEVudHJ5LmFjdGlvbiBhcyBFeHRlcm5hbENvbXBvbmVudEFjdGlvbjtcbiAgICAgIHRoaXMuc2hvd0FjdGlvbkNvbXBvbmVudChleHRDb21wb25lbnRBY3Rpb24uZXh0Q29tcG9uZW50cywgdGhpcy5leHRlcm5hbERpYWxvZywgdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIGZhbHNlKTtcbiAgICB9IGVsc2UgaWYgKGlzV29ya0Zsb3dBY3Rpb24pIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBjb25zdCBleHRDb21wb25lbnRBY3Rpb24gPSBhY3Rpb25MaXN0RW50cnkuYWN0aW9uIGFzIEV4dGVybmFsUHJvY2Vzc0NvbXBvbmVudEFjdGlvbjtcbiAgICAgICAgdGhpcy5zaG93QWN0aW9uQ29tcG9uZW50KGV4dENvbXBvbmVudEFjdGlvbi5leHRDb21wb25lbnRzLCB0aGlzLmV4dGVybmFsRGlhbG9nLCB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgICBmYWxzZSwge2V4ZWN1dGFibGVQcm9jZXNzOiBleHRDb21wb25lbnRBY3Rpb24uZXhlY3V0YWJsZVByb2Nlc3N9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2hvd0FjdGlvbkNvbXBvbmVudChjb21wb25lbnQ6IFR5cGU8YW55Piwgdmlld0NvbnRSZWYsIGZhY3RvcnlSZXNvbHZlciwgc2hvd0NvbXBvbmVudCwgaW5wdXRzPzogYW55KSB7XG4gICAgdGhpcy5zaG93Q29tcG9uZW50ID0gc2hvd0NvbXBvbmVudDtcbiAgICBsZXQgY29tcG9uZW50RmFjdG9yeSA9IGZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnQpO1xuICAgIGxldCBhbmNob3JWaWV3Q29udGFpbmVyUmVmID0gdmlld0NvbnRSZWYudmlld0NvbnRhaW5lclJlZjtcbiAgICBhbmNob3JWaWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgbGV0IGNvbXBvbmVudFJlZiA9IGFuY2hvclZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudEZhY3RvcnkpO1xuICAgICg8QWN0aW9uQ29tcG9uZW50PmNvbXBvbmVudFJlZi5pbnN0YW5jZSkuc2VsZWN0aW9uID0gdGhpcy5zdWJTZWxlY3Rpb24gfHwgdGhpcy5zZWxlY3Rpb247XG4gICAgKDxBY3Rpb25Db21wb25lbnQ+Y29tcG9uZW50UmVmLmluc3RhbmNlKS5jYW5jZWxlZC5waXBlKHRha2UoMSksIHRhcCgoKSA9PiAodGhpcy5zdWJTZWxlY3Rpb24gPSBudWxsKSkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uQ2FuY2VsKCkpO1xuICAgICg8QWN0aW9uQ29tcG9uZW50PmNvbXBvbmVudFJlZi5pbnN0YW5jZSkuZmluaXNoZWQucGlwZSh0YWtlKDEpLCB0YXAoKCkgPT4gKHRoaXMuc3ViU2VsZWN0aW9uID0gbnVsbCkpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkZpbmlzaCgpKTtcbiAgICBpZiAoaW5wdXRzKSB7XG4gICAgICBPYmplY3Qua2V5cyhpbnB1dHMpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2Vba2V5XSA9IGlucHV0c1trZXldO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgaXNMaW5rQWN0aW9uKGFjdGlvbikge1xuICAgIC8vIHVzZWQgZnJvbSB3aXRoaW4gdGVtcGxhdGVcbiAgICByZXR1cm4gISEoYWN0aW9uICYmIGFjdGlvbi5nZXRMaW5rICYmIGFjdGlvbi5nZXRQYXJhbXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhcigpIHtcbiAgICB0aGlzLnNob3dDb21wb25lbnQgPSBmYWxzZTtcbiAgICB0aGlzLnN1YkFjdGlvbnNMaXN0ID0gbnVsbDtcbiAgICB0aGlzLmFjdGlvbkRlc2NyaXB0aW9uID0gbnVsbDtcbiAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcbiAgICBpZiAodGhpcy5lb0FjdGlvbkNvbXBvbmVudEFuY2hvcikge1xuICAgICAgdGhpcy5lb0FjdGlvbkNvbXBvbmVudEFuY2hvci52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgfVxuICB9XG5cbiAgb25DYW5jZWwoKSB7XG4gICAgdGhpcy5jbGVhcigpO1xuICAgIHRoaXMuY2F0Y2hGb2N1cygpO1xuICB9XG5cbiAgb25GaW5pc2goKSB7XG4gICAgdGhpcy5oaWRlQWN0aW9uTWVudSgpO1xuICB9XG59XG4iXX0=
@@ -49,6 +49,8 @@ import { DeleteContentActionComponent } from './actions/delete-content-action/de
49
49
  import { UnlockActionComponent } from './actions/unlock-action/unlock-action';
50
50
  import { SimpleWorkflowActionComponent } from './actions/workflow-action/simple-workflow-action.component';
51
51
  import { ProcessFormModule } from '../process-form/process-form.module';
52
+ import { FinalizeObjectActionComponent } from './actions/finalize/finalize-object-action/finalize-object-action.component';
53
+ import { DeleteContentComponent } from './actions/delete-content-action/delete-content/delete-content.component';
52
54
  export const entryComponents = [
53
55
  CopyActionComponent,
54
56
  OpenContextActionComponent,
@@ -83,7 +85,9 @@ export const entryComponents = [
83
85
  ShareObjectComponent,
84
86
  CutActionComponent,
85
87
  FinalizeActionComponent,
88
+ FinalizeObjectActionComponent,
86
89
  DefinalizeActionComponent,
90
+ DeleteContentComponent,
87
91
  DeleteContentActionComponent,
88
92
  UnlockActionComponent,
89
93
  SimpleWorkflowActionComponent
@@ -171,7 +175,9 @@ ActionModule.decorators = [
171
175
  ShareObjectComponent,
172
176
  CutActionComponent,
173
177
  FinalizeActionComponent,
178
+ FinalizeObjectActionComponent,
174
179
  DefinalizeActionComponent,
180
+ DeleteContentComponent,
175
181
  DeleteContentActionComponent,
176
182
  UnlockActionComponent,
177
183
  SimpleWorkflowActionComponent,
@@ -181,4 +187,4 @@ ActionModule.decorators = [
181
187
  },] }
182
188
  ];
183
189
  export { ɵ0 };
184
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL2FjdGlvbnMvYWN0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsNEJBQTRCLEVBQXVCLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUUxRixPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUM3RixPQUFPLEVBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLHlFQUF5RSxDQUFDO0FBQ3ZILE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQzdGLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQzdGLE9BQU8sRUFBQywrQkFBK0IsRUFBQyxNQUFNLDZEQUE2RCxDQUFDO0FBQzVHLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQ3BHLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBQ2hHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDhCQUE4QixDQUFD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QUUsT0FBTzt3QkFDaEIsUUFBUSxFQUFFLGVBQWU7cUJBQzFCLEVBQUU7d0JBQ0QsT0FBTyxFQUFFLGNBQWM7d0JBQ3ZCLFFBQVEsSUFBSTtxQkFDYixDQUFDO2dCQUNGLFlBQVksRUFBRTtvQkFDWixtQkFBbUI7b0JBQ25CLDhCQUE4QjtvQkFDOUIsbUJBQW1CO29CQUNuQiwwQkFBMEI7b0JBQzFCLHVCQUF1QjtvQkFDdkIsK0JBQStCO29CQUMvQiwwQkFBMEI7b0JBQzFCLDJCQUEyQjtvQkFDM0IscUJBQXFCO29CQUNyQixvQkFBb0I7b0JBQ3BCLHdCQUF3QjtvQkFDeEIsNEJBQTRCO29CQUM1Qix1QkFBdUI7b0JBQ3ZCLHdCQUF3QjtvQkFDeEIsNEJBQTRCO29CQUM1QixnQ0FBZ0M7b0JBQ2hDLDJCQUEyQjtvQkFDM0IsdUJBQXVCO29CQUN2QixxQkFBcUI7b0JBQ3JCLGVBQWU7b0JBQ2YsMkJBQTJCO29CQUMzQiw2QkFBNkI7b0JBQzdCLDZCQUE2QjtvQkFDN0IsOEJBQThCO29CQUM5Qix3QkFBd0I7b0JBQ3hCLDhCQUE4QjtvQkFDOUIsd0JBQXdCO29CQUN4QixpQ0FBaUM7b0JBQ2pDLHVCQUF1QjtvQkFDdkIsaUJBQWlCO29CQUNqQixzQkFBc0I7b0JBQ3RCLGlDQUFpQztvQkFDakMsMEJBQTBCO29CQUMxQixvQkFBb0I7b0JBQ3BCLGtCQUFrQjtvQkFDbEIsdUJBQXVCO29CQUN2Qix5QkFBeUI7b0JBQ3pCLDRCQUE0QjtvQkFDNUIscUJBQXFCO29CQUNyQiw2QkFBNkI7b0JBQzdCLDJCQUEyQjtpQkFDNUI7Z0JBQ0QsZUFBZTthQUNoQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QU5BTFlaRV9GT1JfRU5UUllfQ09NUE9ORU5UUywgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFb0ZyYW1ld29ya01vZHVsZX0gZnJvbSAnLi4vZW8tZnJhbWV3b3JrLm1vZHVsZSc7XG5pbXBvcnQge1ByZXZlbnREb3VibGVDbGlja0RpcmVjdGl2ZX0gZnJvbSAnLi4vdXRpbC9kaXJlY3RpdmUvcHJldmVudC1kb3VibGUtY2xpY2suZGlyZWN0aXZlJztcbmltcG9ydCB7QUNUSU9OUywgQ1VTVE9NX0FDVElPTlMsIEFjdGlvblNlcnZpY2V9IGZyb20gJy4vYWN0aW9uLXNlcnZpY2UvYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtBY3Rpb25NZW51Q29tcG9uZW50fSBmcm9tICcuL2FjdGlvbi1tZW51L2FjdGlvbi1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7VWlNb2R1bGV9IGZyb20gJy4uL3VpL3VpLm1vZHVsZSc7XG5pbXBvcnQge0FjdGlvbkNvbXBvbmVudEFuY2hvckRpcmVjdGl2ZX0gZnJvbSAnLi9hY3Rpb24tbWVudS9hY3Rpb24tY29tcG9uZW50LWFuY2hvci9hY3Rpb24tY29tcG9uZW50LWFuY2hvci5kaXJlY3RpdmUnO1xuaW1wb3J0IHtDb3B5QWN0aW9uQ29tcG9uZW50fSBmcm9tICcuL2FjdGlvbnMvY29weS1hY3Rpb24vY29weS1hY3Rpb24nO1xuaW1wb3J0IHtPcGVuQ29udGV4dEFjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9hY3Rpb25zL29wZW4tY29udGV4dC1hY3Rpb24vb3Blbi1jb250ZXh0LWFjdGlvbic7XG5pbXBvcnQge0Rvd25sb2FkUGRmQWN0aW9uQ29tcG9uZW50fSBmcm9tICcuL2FjdGlvbnMvZG93bmxvYWQtcGRmLWFjdGlvbi9kb3dubG9hZC1wZGYtYWN0aW9uJztcbmltcG9ydCB7RG93bmxvYWRPcmlnaW5hbEFjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9hY3Rpb25zL2Rvd25sb2FkLW9yaWdpbmFsLWFjdGlvbi9kb3dubG9hZC1vcmlnaW5hbC1hY3Rpb24nO1xuaW1wb3J0IHtEb3dubG9hZEFjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9hY3Rpb25zL2Rvd25sb2FkLWFjdGlvbi9kb3dubG9hZC1hY3Rpb24nO1xuaW1wb3J0IHtPcGVuRG9jdW1lbnRDb21wb25lbnR9IGZyb20gJy4vYWN0aW9ucy9vcGVuLWRvY3VtZW50LWFjdGlvbi9vcGVuLWRvY3VtZW50LWFjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtPcGVuRG9jdW1lbnRBY3Rpb25Db21wb25lbnR9IGZyb20gJy4vYWN0aW9ucy9vcGVuLWRvY3VtZW50LWFjdGlvbi9vcGVuLWRvY3VtZW50LWFjdGlvbic7XG5pbXBvcnQge09iamVjdEZvcm1Nb2R1bGV9IGZyb20gJy4uL29iamVjdC1mb3JtL29iamVjdC1mb3JtLm1vZHVsZSc7XG5pbXBvcnQge0VtYWlsQWN0aW9uQ29tcG9uZW50fSBmcm9tICcuL2FjdGlvbnMvZW1haWwvZW1haWwtYWN0aW9uJztcbmltcG9ydCB7RW1haWxMaW5rQWN0aW9uQ29tcG9uZW50fSBmcm9tICcuL2FjdGlvbnMvZW1haWwvZW1haWwtbGluay1hY3Rpb24nO1xuaW1wb3J0IHtFbWFpbE9yaWdpbmFsQWN0aW9uQ29tcG9uZW50fSBmcm9tICcuL2FjdGlvbnMvZW1haWwvZW1haWwtb3JpZ2luYWwtYWN0aW9uJztcbmltcG9ydCB7RW1haWxQZGZBY3Rpb25Db21wb25lbnR9IGZyb20gJy4vYWN0aW9ucy9lbWFpbC9lbWFpbC1wZGYtYWN0aW9uJztcbmltcG9ydCB7Q2xpcGJvYXJkTGlua0FjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9hY3Rpb25zL2NsaXBib2FyZC9jbGlwYm9hcmQtbGluay1hY3Rpb24nO1xuaW1wb3J0IHtDbGlwYm9hcmRBY3Rpb25Db21wb25lbnR9IGZyb20gJy4vYWN0aW9ucy9jbGlwYm9hcmQvY2xpcGJvYXJkLWFjdGlvbic7XG5pbXBvcnQge0NsaXBib2FyZE9yaWdpbmFsQWN0aW9uQ29tcG9uZW50fSBmcm9tICcuL2FjdGlvbnMvY2xpcGJvYXJkL2NsaXBib2FyZC1vcmlnaW5hbC1hY3Rpb24nO1xuaW1wb3J0IHtDbGlwYm9hcmRQZGZBY3Rpb25Db21wb25lbnR9IGZyb20gJy4vYWN0aW9ucy9jbGlwYm9hcmQvY2xpcGJvYXJkLXBkZi1hY3Rpb24nO1xuaW1wb3J0IHtGYXZvcml0ZUFjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9hY3Rpb25zL2Zhdm9yaXRlLWFjdGlvbi9mYXZvcml0ZS1hY3Rpb24nO1xuaW1wb3J0IHtEZWxldGVBY3Rpb25Db21wb25lbnR9IGZyb20gJy4vYWN0aW9ucy9kZWxldGUtYWN0aW9uL2RlbGV0ZS1hY3Rpb24nO1xuaW1wb3J0IHtEZWxldGVDb21wb25lbnR9IGZyb20gJy4vYWN0aW9ucy9kZWxldGUtYWN0aW9uL2RlbGV0ZS9kZWxldGUuY29tcG9uZW50JztcbmltcG9ydCB7T3BlblZlcnNpb25zQWN0aW9uQ29tcG9uZW50fSBmcm9tICcuL2FjdGlvbnMvb3Blbi12ZXJzaW9ucy1hY3Rpb24vb3Blbi12ZXJzaW9ucy1hY3Rpb24nO1xuaW1wb3J0IHtSZXN0b3JlVmVyc2lvbkFjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9hY3Rpb25zL3Jlc3RvcmUtdmVyc2lvbi1hY3Rpb24vcmVzdG9yZS12ZXJzaW9uLWFjdGlvbic7XG5pbXBvcnQge0RlbGV0ZVByZXBhcmVkQWN0aW9uQ29tcG9uZW50fSBmcm9tICcuL2FjdGlvbnMvZGVsZXRlLWFjdGlvbi9kZWxldGUtcHJlcGFyZWQtYWN0aW9uJztcbmltcG9ydCB7Um91dGVyTW9kdWxlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtBZGRTdWJzY3JpcHRpb25Db21wb25lbnR9IGZyb20gJy4vYWN0aW9ucy9hZGQtc3Vic2NyaXB0aW9uLWFjdGlvbi9hZGQtc3Vic2NyaXB0aW9uL2FkZC1zdWJzY3JpcHRpb24uY29tcG9uZW50JztcbmltcG9ydCB7QWRkU3Vic2NyaXB0aW9uQWN0aW9uQ29tcG9uZW50fSBmcm9tICcuL2FjdGlvbnMvYWRkLXN1YnNjcmlwdGlvbi1hY3Rpb24vYWRkLXN1YnNjcmlwdGlvbi1hY3Rpb24nO1xuaW1wb3J0IHtGb3JtRWxlbWVudHNNb2R1bGV9IGZyb20gJy4uL2Zvcm0tZWxlbWVudHMvZm9ybS1lbGVtZW50cy5tb2R1bGUnO1xuaW1wb3J0IHtGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtSZW1vdmVTdWJzY3JpcHRpb25BY3Rpb25Db21wb25lbnR9IGZyb20gJy4vYWN0aW9ucy9yZW1vdmUtc3Vic2NyaXB0aW9uLWFjdGlvbi9yZW1vdmUtc3Vic2NyaXB0aW9uLWFjdGlvbic7XG5pbXBvcnQge1dvcmtmbG93QWN0aW9uQ29tcG9uZW50fSBmcm9tICcuL2FjdGlvbnMvd29ya2Zsb3ctYWN0aW9uL3dvcmtmbG93LWFjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtXb3JrZmxvd0NvbXBvbmVudH0gZnJvbSAnLi9hY3Rpb25zL3dvcmtmbG93LWFjdGlvbi93b3JrZmxvdy93b3JrZmxvdy5jb21wb25lbnQnO1xuaW1wb3J0IHtDdXN0b21BY3Rpb25zQ29tcG9uZW50fSBmcm9tICcuL2FjdGlvbnMvY3VzdG9tLWFjdGlvbnMvY3VzdG9tLWFjdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7Q3RhTW9kdWxlfSBmcm9tICcuLi9jdGEvY3RhLm1vZHVsZSc7XG5pbXBvcnQge0FkZFJlc3VibWlzc2lvbkFjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9hY3Rpb25zL2FkZC1yZXN1Ym1pc3Npb24tYWN0aW9uL2FkZC1yZXN1Ym1pc3Npb24tYWN0aW9uJztcbmltcG9ydCB7QWRkUmVzdWJtaXNzaW9uQ29tcG9uZW50fSBmcm9tICcuL2FjdGlvbnMvYWRkLXJlc3VibWlzc2lvbi1hY3Rpb24vYWRkLXJlc3VibWlzc2lvbi9hZGQtcmVzdWJtaXNzaW9uLmNvbXBvbmVudCc7XG5pbXBvcnQge1VwZGF0ZVJlc3VibWlzc2lvbkFjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9hY3Rpb25zL3VwZGF0ZS1yZXN1Ym1pc3Npb24tYWN0aW9uL3VwZGF0ZS1yZXN1Ym1pc3Npb24tYWN0aW9uJztcbmltcG9ydCB7U2hhcmVPYmplY3RBY3Rpb25Db21wb25lbnR9IGZyb20gJy4vYWN0aW9ucy9zaGFyZS1vYmplY3QtYWN0aW9uL3NoYXJlLW9iamVjdC1hY3Rpb24nO1xuaW1wb3J0IHtTaGFyZU9iamVjdENvbXBvbmVudH0gZnJvbSAnLi9hY3Rpb25zL3NoYXJlLW9iamVjdC1hY3Rpb24vc2hhcmUtb2JqZWN0L3NoYXJlLW9iamVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHtDdXRBY3Rpb25Db21wb25lbnR9IGZyb20gJy4vYWN0aW9ucy9jdXQtYWN0aW9uL2N1dC1hY3Rpb24nO1xuaW1wb3J0IHtGaW5hbGl6ZUFjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9hY3Rpb25zL2ZpbmFsaXplL2ZpbmFsaXplLWFjdGlvbic7XG5pbXBvcnQge0RlZmluYWxpemVBY3Rpb25Db21wb25lbnR9IGZyb20gJy4vYWN0aW9ucy9maW5hbGl6ZS9kZWZpbmFsaXplLWFjdGlvbic7XG5pbXBvcnQge0RlbGV0ZUNvbnRlbnRBY3Rpb25Db21wb25lbnR9IGZyb20gJy4vYWN0aW9ucy9kZWxldGUtY29udGVudC1hY3Rpb24vZGVsZXRlLWNvbnRlbnQtYWN0aW9uJztcbmltcG9ydCB7VW5sb2NrQWN0aW9uQ29tcG9uZW50fSBmcm9tICcuL2FjdGlvbnMvdW5sb2NrLWFjdGlvbi91bmxvY2stYWN0aW9uJztcbmltcG9ydCB7U2ltcGxlV29ya2Zsb3dBY3Rpb25Db21wb25lbnR9IGZyb20gJy4vYWN0aW9ucy93b3JrZmxvdy1hY3Rpb24vc2ltcGxlLXdvcmtmbG93LWFjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtQcm9jZXNzRm9ybU1vZHVsZX0gZnJvbSAnLi4vcHJvY2Vzcy1mb3JtL3Byb2Nlc3MtZm9ybS5tb2R1bGUnO1xuXG5leHBvcnQgY29uc3QgZW50cnlDb21wb25lbnRzID0gW1xuICBDb3B5QWN0aW9uQ29tcG9uZW50LFxuICBPcGVuQ29udGV4dEFjdGlvbkNvbXBvbmVudCxcbiAgRG93bmxvYWRBY3Rpb25Db21wb25lbnQsXG4gIERvd25sb2FkT3JpZ2luYWxBY3Rpb25Db21wb25lbnQsXG4gIERvd25sb2FkUGRmQWN0aW9uQ29tcG9uZW50LFxuICBPcGVuRG9jdW1lbnRBY3Rpb25Db21wb25lbnQsXG4gIE9wZW5Eb2N1bWVudENvbXBvbmVudCxcbiAgRW1haWxBY3Rpb25Db21wb25lbnQsXG4gIEVtYWlsTGlua0FjdGlvbkNvbXBvbmVudCxcbiAgRW1haWxPcmlnaW5hbEFjdGlvbkNvbXBvbmVudCxcbiAgRW1haWxQZGZBY3Rpb25Db21wb25lbnQsXG4gIENsaXBib2FyZEFjdGlvbkNvbXBvbmVudCxcbiAgQ2xpcGJvYXJkTGlua0FjdGlvbkNvbXBvbmVudCxcbiAgQ2xpcGJvYXJkT3JpZ2luYWxBY3Rpb25Db21wb25lbnQsXG4gIENsaXBib2FyZFBkZkFjdGlvbkNvbXBvbmVudCxcbiAgRGVsZXRlQWN0aW9uQ29tcG9uZW50LFxuICBEZWxldGVDb21wb25lbnQsXG4gIE9wZW5WZXJzaW9uc0FjdGlvbkNvbXBvbmVudCxcbiAgUmVzdG9yZVZlcnNpb25BY3Rpb25Db21wb25lbnQsXG4gIERlbGV0ZVByZXBhcmVkQWN0aW9uQ29tcG9uZW50LFxuICBBZGRTdWJzY3JpcHRpb25BY3Rpb25Db21wb25lbnQsXG4gIEFkZFN1YnNjcmlwdGlvbkNvbXBvbmVudCxcbiAgUmVtb3ZlU3Vic2NyaXB0aW9uQWN0aW9uQ29tcG9uZW50LFxuICBXb3JrZmxvd0FjdGlvbkNvbXBvbmVudCxcbiAgV29ya2Zsb3dDb21wb25lbnQsXG4gIEN1c3RvbUFjdGlvbnNDb21wb25lbnQsXG4gIEFkZFJlc3VibWlzc2lvbkFjdGlvbkNvbXBvbmVudCxcbiAgQWRkUmVzdWJtaXNzaW9uQ29tcG9uZW50LFxuICBVcGRhdGVSZXN1Ym1pc3Npb25BY3Rpb25Db21wb25lbnQsXG4gIFNoYXJlT2JqZWN0QWN0aW9uQ29tcG9uZW50LFxuICBTaGFyZU9iamVjdENvbXBvbmVudCxcbiAgQ3V0QWN0aW9uQ29tcG9uZW50LFxuICBGaW5hbGl6ZUFjdGlvbkNvbXBvbmVudCxcbiAgRGVmaW5hbGl6ZUFjdGlvbkNvbXBvbmVudCxcbiAgRGVsZXRlQ29udGVudEFjdGlvbkNvbXBvbmVudCxcbiAgVW5sb2NrQWN0aW9uQ29tcG9uZW50LFxuICBTaW1wbGVXb3JrZmxvd0FjdGlvbkNvbXBvbmVudFxuXTtcblxuLyoqXG4gKiBAbW9kdWxlXG4gKiBAZGVzY3JpcHRpb25cbiAqIE1vZHVsZSBmb3IgdGhlIGFjdGlvbiBtZW51XG4gKi9cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVWlNb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIE9iamVjdEZvcm1Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBGb3JtRWxlbWVudHNNb2R1bGUsXG4gICAgT2JqZWN0Rm9ybU1vZHVsZSxcbiAgICBQcm9jZXNzRm9ybU1vZHVsZSxcbiAgICBDdGFNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW0FjdGlvbk1lbnVDb21wb25lbnQsIE9wZW5Eb2N1bWVudENvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW0FjdGlvblNlcnZpY2UsIHtcbiAgICBwcm92aWRlOiBBQ1RJT05TLFxuICAgIHVzZVZhbHVlOiBlbnRyeUNvbXBvbmVudHNcbiAgfSwge1xuICAgIHByb3ZpZGU6IENVU1RPTV9BQ1RJT05TLFxuICAgIHVzZVZhbHVlOiBbXVxuICB9XSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQWN0aW9uTWVudUNvbXBvbmVudCxcbiAgICBBY3Rpb25Db21wb25lbnRBbmNob3JEaXJlY3RpdmUsXG4gICAgQ29weUFjdGlvbkNvbXBvbmVudCxcbiAgICBPcGVuQ29udGV4dEFjdGlvbkNvbXBvbmVudCxcbiAgICBEb3dubG9hZEFjdGlvbkNvbXBvbmVudCxcbiAgICBEb3dubG9hZE9yaWdpbmFsQWN0aW9uQ29tcG9uZW50LFxuICAgIERvd25sb2FkUGRmQWN0aW9uQ29tcG9uZW50LFxuICAgIE9wZW5Eb2N1bWVudEFjdGlvbkNvbXBvbmVudCxcbiAgICBPcGVuRG9jdW1lbnRDb21wb25lbnQsXG4gICAgRW1haWxBY3Rpb25Db21wb25lbnQsXG4gICAgRW1haWxMaW5rQWN0aW9uQ29tcG9uZW50LFxuICAgIEVtYWlsT3JpZ2luYWxBY3Rpb25Db21wb25lbnQsXG4gICAgRW1haWxQZGZBY3Rpb25Db21wb25lbnQsXG4gICAgQ2xpcGJvYXJkQWN0aW9uQ29tcG9uZW50LFxuICAgIENsaXBib2FyZExpbmtBY3Rpb25Db21wb25lbnQsXG4gICAgQ2xpcGJvYXJkT3JpZ2luYWxBY3Rpb25Db21wb25lbnQsXG4gICAgQ2xpcGJvYXJkUGRmQWN0aW9uQ29tcG9uZW50LFxuICAgIEZhdm9yaXRlQWN0aW9uQ29tcG9uZW50LFxuICAgIERlbGV0ZUFjdGlvbkNvbXBvbmVudCxcbiAgICBEZWxldGVDb21wb25lbnQsXG4gICAgT3BlblZlcnNpb25zQWN0aW9uQ29tcG9uZW50LFxuICAgIFJlc3RvcmVWZXJzaW9uQWN0aW9uQ29tcG9uZW50LFxuICAgIERlbGV0ZVByZXBhcmVkQWN0aW9uQ29tcG9uZW50LFxuICAgIEFkZFN1YnNjcmlwdGlvbkFjdGlvbkNvbXBvbmVudCxcbiAgICBBZGRTdWJzY3JpcHRpb25Db21wb25lbnQsXG4gICAgQWRkUmVzdWJtaXNzaW9uQWN0aW9uQ29tcG9uZW50LFxuICAgIEFkZFJlc3VibWlzc2lvbkNvbXBvbmVudCxcbiAgICBSZW1vdmVTdWJzY3JpcHRpb25BY3Rpb25Db21wb25lbnQsXG4gICAgV29ya2Zsb3dBY3Rpb25Db21wb25lbnQsXG4gICAgV29ya2Zsb3dDb21wb25lbnQsXG4gICAgQ3VzdG9tQWN0aW9uc0NvbXBvbmVudCxcbiAgICBVcGRhdGVSZXN1Ym1pc3Npb25BY3Rpb25Db21wb25lbnQsXG4gICAgU2hhcmVPYmplY3RBY3Rpb25Db21wb25lbnQsXG4gICAgU2hhcmVPYmplY3RDb21wb25lbnQsXG4gICAgQ3V0QWN0aW9uQ29tcG9uZW50LFxuICAgIEZpbmFsaXplQWN0aW9uQ29tcG9uZW50LFxuICAgIERlZmluYWxpemVBY3Rpb25Db21wb25lbnQsXG4gICAgRGVsZXRlQ29udGVudEFjdGlvbkNvbXBvbmVudCxcbiAgICBVbmxvY2tBY3Rpb25Db21wb25lbnQsXG4gICAgU2ltcGxlV29ya2Zsb3dBY3Rpb25Db21wb25lbnQsXG4gICAgUHJldmVudERvdWJsZUNsaWNrRGlyZWN0aXZlXG4gIF0sXG4gIGVudHJ5Q29tcG9uZW50c1xufSlcbmV4cG9ydCBjbGFzcyBBY3Rpb25Nb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChjb21wb25lbnRzOiBhbnlbXSA9IFtdKTogTW9kdWxlV2l0aFByb3ZpZGVyczxBY3Rpb25Nb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEFjdGlvbk1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW3tcbiAgICAgICAgcHJvdmlkZTogQU5BTFlaRV9GT1JfRU5UUllfQ09NUE9ORU5UUyxcbiAgICAgICAgdXNlVmFsdWU6IGNvbXBvbmVudHMsXG4gICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgfSwge1xuICAgICAgICBwcm92aWRlOiBBQ1RJT05TLFxuICAgICAgICB1c2VWYWx1ZTogZW50cnlDb21wb25lbnRzXG4gICAgICB9LCB7XG4gICAgICAgIHByb3ZpZGU6IENVU1RPTV9BQ1RJT05TLFxuICAgICAgICB1c2VWYWx1ZTogY29tcG9uZW50c1xuICAgICAgfV1cbiAgICB9O1xuICB9XG59XG4iXX0=
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL2FjdGlvbnMvYWN0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsNEJBQTRCLEVBQXVCLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUUxRixPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUM3RixPQUFPLEVBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLHlFQUF5RSxDQUFDO0FBQ3ZILE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQzdGLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQzdGLE9BQU8sRUFBQywrQkFBK0IsRUFBQyxNQUFNLDZEQUE2RCxDQUFDO0FBQzVHLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQ3BHLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBQ2hHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDhCQUE4QixDQUFD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UywgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFb0ZyYW1ld29ya01vZHVsZX0gZnJvbSAnLi4vZW8tZnJhbWV3b3JrLm1vZHVsZSc7XG5pbXBvcnQge1ByZXZlbnREb3VibGVDbGlja0RpcmVjdGl2ZX0gZnJvbSAnLi4vdXRpbC9kaXJlY3RpdmUvcHJldmVudC1kb3VibGUtY2xpY2suZGlyZWN0aXZlJztcbmltcG9ydCB7QUNUSU9OUywgQ1VTVE9NX0FDVElPTlMsIEFjdGlvblNlcnZpY2V9IGZyb20gJy4vYWN0aW9uLXNlcnZpY2UvYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtBY3Rpb25NZW51Q29tcG9uZW50fSBmcm9tICcuL2FjdGlvbi1tZW51L2FjdGlvbi1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7VWlNb2R1bGV9IGZyb20gJy4uL3VpL3VpLm1vZHVsZSc7XG5pbXBvcnQge0FjdGlvbkNvbXBvbmVudEFuY2hvckRpcmVjdGl2ZX0gZnJvbSAnLi9hY3Rpb24tbWVudS9hY3Rpb24tY29tcG9uZW50LWFuY2hvci9hY3Rpb24tY29tcG9uZW50LWFuY2hvci5kaXJlY3RpdmUnO1xuaW1wb3J0IHtDb3B5QWN0aW9uQ29tcG9uZW50fSBmcm9tICcuL2FjdGlvbnMvY29weS1hY3Rpb24vY29weS1hY3Rpb24nO1xuaW1wb3J0IHtPcGVuQ29udGV4dEFjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9hY3Rpb25zL29wZW4tY29udGV4dC1hY3Rpb24vb3Blbi1jb250ZXh0LWFjdGlvbic7XG5pbXBvcnQge0Rvd25sb2FkUGRmQWN0aW9uQ29tcG9uZW50fSBmcm9tICcuL2FjdGlvbnMvZG93bmxvYWQtcGRmLWFjdGlvbi9kb3dubG9hZC1wZGYtYWN0aW9uJztcbmltcG9ydCB7RG93bmxvYWRPcmlnaW5hbEFjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9hY3Rpb25zL2Rvd25sb2FkLW9yaWdpbmFsLWFjdGlvbi9kb3dubG9hZC1vcmlnaW5hbC1hY3Rpb24nO1xuaW1wb3J0IHtEb3dubG9hZEFjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9hY3Rpb25zL2Rvd25sb2FkLWFjdGlvbi9kb3dubG9hZC1hY3Rpb24nO1xuaW1wb3J0IHtPcGVuRG9jdW1lbnRDb21wb25lbnR9IGZyb20gJy4vYWN0aW9ucy9vcGVuLWRvY3VtZW50LWFjdGlvbi9vcGVuLWRvY3VtZW50LWFjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtPcGVuRG9jdW1lbnRBY3Rpb25Db21wb25lbnR9IGZyb20gJy4vYWN0aW9ucy9vcGVuLWRvY3VtZW50LWFjdGlvbi9vcGVuLWRvY3VtZW50LWFjdGlvbic7XG5pbXBvcnQge09iamVjdEZvcm1Nb2R1bGV9IGZyb20gJy4uL29iamVjdC1mb3JtL29iamVjdC1mb3JtLm1vZHVsZSc7XG5pbXBvcnQge0VtYWlsQWN0aW9uQ29tcG9uZW50fSBmcm9tICcuL2FjdGlvbnMvZW1haWwvZW1haWwtYWN0aW9uJztcbmltcG9ydCB7RW1haWxMaW5rQWN0aW9uQ29tcG9uZW50fSBmcm9tICcuL2FjdGlvbnMvZW1haWwvZW1haWwtbGluay1hY3Rpb24nO1xuaW1wb3J0IHtFbWFpbE9yaWdpbmFsQWN0aW9uQ29tcG9uZW50fSBmcm9tICcuL2FjdGlvbnMvZW1haWwvZW1haWwtb3JpZ2luYWwtYWN0aW9uJztcbmltcG9ydCB7RW1haWxQZGZBY3Rpb25Db21wb25lbnR9IGZyb20gJy4vYWN0aW9ucy9lbWFpbC9lbWFpbC1wZGYtYWN0aW9uJztcbmltcG9ydCB7Q2xpcGJvYXJkTGlua0FjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9hY3Rpb25zL2NsaXBib2FyZC9jbGlwYm9hcmQtbGluay1hY3Rpb24nO1xuaW1wb3J0IHtDbGlwYm9hcmRBY3Rpb25Db21wb25lbnR9IGZyb20gJy4vYWN0aW9ucy9jbGlwYm9hcmQvY2xpcGJvYXJkLWFjdGlvbic7XG5pbXBvcnQge0NsaXBib2FyZE9yaWdpbmFsQWN0aW9uQ29tcG9uZW50fSBmcm9tICcuL2FjdGlvbnMvY2xpcGJvYXJkL2NsaXBib2FyZC1vcmlnaW5hbC1hY3Rpb24nO1xuaW1wb3J0IHtDbGlwYm9hcmRQZGZBY3Rpb25Db21wb25lbnR9IGZyb20gJy4vYWN0aW9ucy9jbGlwYm9hcmQvY2xpcGJvYXJkLXBkZi1hY3Rpb24nO1xuaW1wb3J0IHtGYXZvcml0ZUFjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9hY3Rpb25zL2Zhdm9yaXRlLWFjdGlvbi9mYXZvcml0ZS1hY3Rpb24nO1xuaW1wb3J0IHtEZWxldGVBY3Rpb25Db21wb25lbnR9IGZyb20gJy4vYWN0aW9ucy9kZWxldGUtYWN0aW9uL2RlbGV0ZS1hY3Rpb24nO1xuaW1wb3J0IHtEZWxldGVDb21wb25lbnR9IGZyb20gJy4vYWN0aW9ucy9kZWxldGUtYWN0aW9uL2RlbGV0ZS9kZWxldGUuY29tcG9uZW50JztcbmltcG9ydCB7T3BlblZlcnNpb25zQWN0aW9uQ29tcG9uZW50fSBmcm9tICcuL2FjdGlvbnMvb3Blbi12ZXJzaW9ucy1hY3Rpb24vb3Blbi12ZXJzaW9ucy1hY3Rpb24nO1xuaW1wb3J0IHtSZXN0b3JlVmVyc2lvbkFjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9hY3Rpb25zL3Jlc3RvcmUtdmVyc2lvbi1hY3Rpb24vcmVzdG9yZS12ZXJzaW9uLWFjdGlvbic7XG5pbXBvcnQge0RlbGV0ZVByZXBhcmVkQWN0aW9uQ29tcG9uZW50fSBmcm9tICcuL2FjdGlvbnMvZGVsZXRlLWFjdGlvbi9kZWxldGUtcHJlcGFyZWQtYWN0aW9uJztcbmltcG9ydCB7Um91dGVyTW9kdWxlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtBZGRTdWJzY3JpcHRpb25Db21wb25lbnR9IGZyb20gJy4vYWN0aW9ucy9hZGQtc3Vic2NyaXB0aW9uLWFjdGlvbi9hZGQtc3Vic2NyaXB0aW9uL2FkZC1zdWJzY3JpcHRpb24uY29tcG9uZW50JztcbmltcG9ydCB7QWRkU3Vic2NyaXB0aW9uQWN0aW9uQ29tcG9uZW50fSBmcm9tICcuL2FjdGlvbnMvYWRkLXN1YnNjcmlwdGlvbi1hY3Rpb24vYWRkLXN1YnNjcmlwdGlvbi1hY3Rpb24nO1xuaW1wb3J0IHtGb3JtRWxlbWVudHNNb2R1bGV9IGZyb20gJy4uL2Zvcm0tZWxlbWVudHMvZm9ybS1lbGVtZW50cy5tb2R1bGUnO1xuaW1wb3J0IHtGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtSZW1vdmVTdWJzY3JpcHRpb25BY3Rpb25Db21wb25lbnR9IGZyb20gJy4vYWN0aW9ucy9yZW1vdmUtc3Vic2NyaXB0aW9uLWFjdGlvbi9yZW1vdmUtc3Vic2NyaXB0aW9uLWFjdGlvbic7XG5pbXBvcnQge1dvcmtmbG93QWN0aW9uQ29tcG9uZW50fSBmcm9tICcuL2FjdGlvbnMvd29ya2Zsb3ctYWN0aW9uL3dvcmtmbG93LWFjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtXb3JrZmxvd0NvbXBvbmVudH0gZnJvbSAnLi9hY3Rpb25zL3dvcmtmbG93LWFjdGlvbi93b3JrZmxvdy93b3JrZmxvdy5jb21wb25lbnQnO1xuaW1wb3J0IHtDdXN0b21BY3Rpb25zQ29tcG9uZW50fSBmcm9tICcuL2FjdGlvbnMvY3VzdG9tLWFjdGlvbnMvY3VzdG9tLWFjdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7Q3RhTW9kdWxlfSBmcm9tICcuLi9jdGEvY3RhLm1vZHVsZSc7XG5pbXBvcnQge0FkZFJlc3VibWlzc2lvbkFjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9hY3Rpb25zL2FkZC1yZXN1Ym1pc3Npb24tYWN0aW9uL2FkZC1yZXN1Ym1pc3Npb24tYWN0aW9uJztcbmltcG9ydCB7QWRkUmVzdWJtaXNzaW9uQ29tcG9uZW50fSBmcm9tICcuL2FjdGlvbnMvYWRkLXJlc3VibWlzc2lvbi1hY3Rpb24vYWRkLXJlc3VibWlzc2lvbi9hZGQtcmVzdWJtaXNzaW9uLmNvbXBvbmVudCc7XG5pbXBvcnQge1VwZGF0ZVJlc3VibWlzc2lvbkFjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9hY3Rpb25zL3VwZGF0ZS1yZXN1Ym1pc3Npb24tYWN0aW9uL3VwZGF0ZS1yZXN1Ym1pc3Npb24tYWN0aW9uJztcbmltcG9ydCB7U2hhcmVPYmplY3RBY3Rpb25Db21wb25lbnR9IGZyb20gJy4vYWN0aW9ucy9zaGFyZS1vYmplY3QtYWN0aW9uL3NoYXJlLW9iamVjdC1hY3Rpb24nO1xuaW1wb3J0IHtTaGFyZU9iamVjdENvbXBvbmVudH0gZnJvbSAnLi9hY3Rpb25zL3NoYXJlLW9iamVjdC1hY3Rpb24vc2hhcmUtb2JqZWN0L3NoYXJlLW9iamVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHtDdXRBY3Rpb25Db21wb25lbnR9IGZyb20gJy4vYWN0aW9ucy9jdXQtYWN0aW9uL2N1dC1hY3Rpb24nO1xuaW1wb3J0IHtGaW5hbGl6ZUFjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9hY3Rpb25zL2ZpbmFsaXplL2ZpbmFsaXplLWFjdGlvbic7XG5pbXBvcnQge0RlZmluYWxpemVBY3Rpb25Db21wb25lbnR9IGZyb20gJy4vYWN0aW9ucy9maW5hbGl6ZS9kZWZpbmFsaXplLWFjdGlvbic7XG5pbXBvcnQge0RlbGV0ZUNvbnRlbnRBY3Rpb25Db21wb25lbnR9IGZyb20gJy4vYWN0aW9ucy9kZWxldGUtY29udGVudC1hY3Rpb24vZGVsZXRlLWNvbnRlbnQtYWN0aW9uJztcbmltcG9ydCB7VW5sb2NrQWN0aW9uQ29tcG9uZW50fSBmcm9tICcuL2FjdGlvbnMvdW5sb2NrLWFjdGlvbi91bmxvY2stYWN0aW9uJztcbmltcG9ydCB7U2ltcGxlV29ya2Zsb3dBY3Rpb25Db21wb25lbnR9IGZyb20gJy4vYWN0aW9ucy93b3JrZmxvdy1hY3Rpb24vc2ltcGxlLXdvcmtmbG93LWFjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtQcm9jZXNzRm9ybU1vZHVsZX0gZnJvbSAnLi4vcHJvY2Vzcy1mb3JtL3Byb2Nlc3MtZm9ybS5tb2R1bGUnO1xuaW1wb3J0IHsgRmluYWxpemVPYmplY3RBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2FjdGlvbnMvZmluYWxpemUvZmluYWxpemUtb2JqZWN0LWFjdGlvbi9maW5hbGl6ZS1vYmplY3QtYWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQge0RlbGV0ZUNvbnRlbnRDb21wb25lbnR9IGZyb20gJy4vYWN0aW9ucy9kZWxldGUtY29udGVudC1hY3Rpb24vZGVsZXRlLWNvbnRlbnQvZGVsZXRlLWNvbnRlbnQuY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IGVudHJ5Q29tcG9uZW50cyA9IFtcbiAgQ29weUFjdGlvbkNvbXBvbmVudCxcbiAgT3BlbkNvbnRleHRBY3Rpb25Db21wb25lbnQsXG4gIERvd25sb2FkQWN0aW9uQ29tcG9uZW50LFxuICBEb3dubG9hZE9yaWdpbmFsQWN0aW9uQ29tcG9uZW50LFxuICBEb3dubG9hZFBkZkFjdGlvbkNvbXBvbmVudCxcbiAgT3BlbkRvY3VtZW50QWN0aW9uQ29tcG9uZW50LFxuICBPcGVuRG9jdW1lbnRDb21wb25lbnQsXG4gIEVtYWlsQWN0aW9uQ29tcG9uZW50LFxuICBFbWFpbExpbmtBY3Rpb25Db21wb25lbnQsXG4gIEVtYWlsT3JpZ2luYWxBY3Rpb25Db21wb25lbnQsXG4gIEVtYWlsUGRmQWN0aW9uQ29tcG9uZW50LFxuICBDbGlwYm9hcmRBY3Rpb25Db21wb25lbnQsXG4gIENsaXBib2FyZExpbmtBY3Rpb25Db21wb25lbnQsXG4gIENsaXBib2FyZE9yaWdpbmFsQWN0aW9uQ29tcG9uZW50LFxuICBDbGlwYm9hcmRQZGZBY3Rpb25Db21wb25lbnQsXG4gIERlbGV0ZUFjdGlvbkNvbXBvbmVudCxcbiAgRGVsZXRlQ29tcG9uZW50LFxuICBPcGVuVmVyc2lvbnNBY3Rpb25Db21wb25lbnQsXG4gIFJlc3RvcmVWZXJzaW9uQWN0aW9uQ29tcG9uZW50LFxuICBEZWxldGVQcmVwYXJlZEFjdGlvbkNvbXBvbmVudCxcbiAgQWRkU3Vic2NyaXB0aW9uQWN0aW9uQ29tcG9uZW50LFxuICBBZGRTdWJzY3JpcHRpb25Db21wb25lbnQsXG4gIFJlbW92ZVN1YnNjcmlwdGlvbkFjdGlvbkNvbXBvbmVudCxcbiAgV29ya2Zsb3dBY3Rpb25Db21wb25lbnQsXG4gIFdvcmtmbG93Q29tcG9uZW50LFxuICBDdXN0b21BY3Rpb25zQ29tcG9uZW50LFxuICBBZGRSZXN1Ym1pc3Npb25BY3Rpb25Db21wb25lbnQsXG4gIEFkZFJlc3VibWlzc2lvbkNvbXBvbmVudCxcbiAgVXBkYXRlUmVzdWJtaXNzaW9uQWN0aW9uQ29tcG9uZW50LFxuICBTaGFyZU9iamVjdEFjdGlvbkNvbXBvbmVudCxcbiAgU2hhcmVPYmplY3RDb21wb25lbnQsXG4gIEN1dEFjdGlvbkNvbXBvbmVudCxcbiAgRmluYWxpemVBY3Rpb25Db21wb25lbnQsXG4gIEZpbmFsaXplT2JqZWN0QWN0aW9uQ29tcG9uZW50LFxuICBEZWZpbmFsaXplQWN0aW9uQ29tcG9uZW50LFxuICBEZWxldGVDb250ZW50Q29tcG9uZW50LFxuICBEZWxldGVDb250ZW50QWN0aW9uQ29tcG9uZW50LFxuICBVbmxvY2tBY3Rpb25Db21wb25lbnQsXG4gIFNpbXBsZVdvcmtmbG93QWN0aW9uQ29tcG9uZW50XG5dO1xuXG4vKipcbiAqIEBtb2R1bGVcbiAqIEBkZXNjcmlwdGlvblxuICogTW9kdWxlIGZvciB0aGUgYWN0aW9uIG1lbnVcbiAqL1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBVaU1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgT2JqZWN0Rm9ybU1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEZvcm1FbGVtZW50c01vZHVsZSxcbiAgICBPYmplY3RGb3JtTW9kdWxlLFxuICAgIFByb2Nlc3NGb3JtTW9kdWxlLFxuICAgIEN0YU1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbQWN0aW9uTWVudUNvbXBvbmVudCwgT3BlbkRvY3VtZW50Q29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbQWN0aW9uU2VydmljZSwge1xuICAgIHByb3ZpZGU6IEFDVElPTlMsXG4gICAgdXNlVmFsdWU6IGVudHJ5Q29tcG9uZW50c1xuICB9LCB7XG4gICAgcHJvdmlkZTogQ1VTVE9NX0FDVElPTlMsXG4gICAgdXNlVmFsdWU6IFtdXG4gIH1dLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBBY3Rpb25NZW51Q29tcG9uZW50LFxuICAgIEFjdGlvbkNvbXBvbmVudEFuY2hvckRpcmVjdGl2ZSxcbiAgICBDb3B5QWN0aW9uQ29tcG9uZW50LFxuICAgIE9wZW5Db250ZXh0QWN0aW9uQ29tcG9uZW50LFxuICAgIERvd25sb2FkQWN0aW9uQ29tcG9uZW50LFxuICAgIERvd25sb2FkT3JpZ2luYWxBY3Rpb25Db21wb25lbnQsXG4gICAgRG93bmxvYWRQZGZBY3Rpb25Db21wb25lbnQsXG4gICAgT3BlbkRvY3VtZW50QWN0aW9uQ29tcG9uZW50LFxuICAgIE9wZW5Eb2N1bWVudENvbXBvbmVudCxcbiAgICBFbWFpbEFjdGlvbkNvbXBvbmVudCxcbiAgICBFbWFpbExpbmtBY3Rpb25Db21wb25lbnQsXG4gICAgRW1haWxPcmlnaW5hbEFjdGlvbkNvbXBvbmVudCxcbiAgICBFbWFpbFBkZkFjdGlvbkNvbXBvbmVudCxcbiAgICBDbGlwYm9hcmRBY3Rpb25Db21wb25lbnQsXG4gICAgQ2xpcGJvYXJkTGlua0FjdGlvbkNvbXBvbmVudCxcbiAgICBDbGlwYm9hcmRPcmlnaW5hbEFjdGlvbkNvbXBvbmVudCxcbiAgICBDbGlwYm9hcmRQZGZBY3Rpb25Db21wb25lbnQsXG4gICAgRmF2b3JpdGVBY3Rpb25Db21wb25lbnQsXG4gICAgRGVsZXRlQWN0aW9uQ29tcG9uZW50LFxuICAgIERlbGV0ZUNvbXBvbmVudCxcbiAgICBPcGVuVmVyc2lvbnNBY3Rpb25Db21wb25lbnQsXG4gICAgUmVzdG9yZVZlcnNpb25BY3Rpb25Db21wb25lbnQsXG4gICAgRGVsZXRlUHJlcGFyZWRBY3Rpb25Db21wb25lbnQsXG4gICAgQWRkU3Vic2NyaXB0aW9uQWN0aW9uQ29tcG9uZW50LFxuICAgIEFkZFN1YnNjcmlwdGlvbkNvbXBvbmVudCxcbiAgICBBZGRSZXN1Ym1pc3Npb25BY3Rpb25Db21wb25lbnQsXG4gICAgQWRkUmVzdWJtaXNzaW9uQ29tcG9uZW50LFxuICAgIFJlbW92ZVN1YnNjcmlwdGlvbkFjdGlvbkNvbXBvbmVudCxcbiAgICBXb3JrZmxvd0FjdGlvbkNvbXBvbmVudCxcbiAgICBXb3JrZmxvd0NvbXBvbmVudCxcbiAgICBDdXN0b21BY3Rpb25zQ29tcG9uZW50LFxuICAgIFVwZGF0ZVJlc3VibWlzc2lvbkFjdGlvbkNvbXBvbmVudCxcbiAgICBTaGFyZU9iamVjdEFjdGlvbkNvbXBvbmVudCxcbiAgICBTaGFyZU9iamVjdENvbXBvbmVudCxcbiAgICBDdXRBY3Rpb25Db21wb25lbnQsXG4gICAgRmluYWxpemVBY3Rpb25Db21wb25lbnQsXG4gICAgRmluYWxpemVPYmplY3RBY3Rpb25Db21wb25lbnQsXG4gICAgRGVmaW5hbGl6ZUFjdGlvbkNvbXBvbmVudCxcbiAgICBEZWxldGVDb250ZW50Q29tcG9uZW50LFxuICAgIERlbGV0ZUNvbnRlbnRBY3Rpb25Db21wb25lbnQsXG4gICAgVW5sb2NrQWN0aW9uQ29tcG9uZW50LFxuICAgIFNpbXBsZVdvcmtmbG93QWN0aW9uQ29tcG9uZW50LFxuICAgIFByZXZlbnREb3VibGVDbGlja0RpcmVjdGl2ZVxuICBdLFxuICBlbnRyeUNvbXBvbmVudHNcbn0pXG5leHBvcnQgY2xhc3MgQWN0aW9uTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoY29tcG9uZW50czogYW55W10gPSBbXSk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QWN0aW9uTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBBY3Rpb25Nb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFt7XG4gICAgICAgIHByb3ZpZGU6IEFOQUxZWkVfRk9SX0VOVFJZX0NPTVBPTkVOVFMsXG4gICAgICAgIHVzZVZhbHVlOiBjb21wb25lbnRzLFxuICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIH0sIHtcbiAgICAgICAgcHJvdmlkZTogQUNUSU9OUyxcbiAgICAgICAgdXNlVmFsdWU6IGVudHJ5Q29tcG9uZW50c1xuICAgICAgfSwge1xuICAgICAgICBwcm92aWRlOiBDVVNUT01fQUNUSU9OUyxcbiAgICAgICAgdXNlVmFsdWU6IGNvbXBvbmVudHNcbiAgICAgIH1dXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -1,5 +1,5 @@
1
1
  import { forkJoin, of } from 'rxjs';
2
- import { Component, EventEmitter } from '@angular/core';
2
+ import { Component, EventEmitter, ViewChild } from '@angular/core';
3
3
  import { Input, Output } from '@angular/core';
4
4
  import { Validators, FormBuilder } from '@angular/forms';
5
5
  import { TranslateService, UserService, DmsService } from '@eo-sdk/core';
@@ -164,12 +164,15 @@ export class AddResubmissionComponent {
164
164
  this.inboxCbLabel = this.translate.instant('eo.resubmission.field.notification.inbox');
165
165
  this.emailCbLabel = this.translate.instant('eo.resubmission.field.notification.email');
166
166
  this.createResubmissionForm();
167
+ setTimeout(() => {
168
+ this.titleField.nativeElement.getElementsByTagName('input')[0].select();
169
+ });
167
170
  }
168
171
  }
169
172
  AddResubmissionComponent.decorators = [
170
173
  { type: Component, args: [{
171
174
  selector: 'eo-add-resubmission',
172
- template: "<div class=\"eo-resubmission\">\n <h2>{{header}}</h2>\n <form [formGroup]=\"addResubmissionForm\">\n <eo-form-input [skipToggle]=\"true\" [label]=\"dueFieldLabel\">\n <eo-datetime [withTime]=\"true\" [onlyFutureDates]=\"true\" formControlName=\"dueFieldFCN\"></eo-datetime>\n </eo-form-input>\n <eo-form-input [skipToggle]=\"true\" [label]=\"titleFieldLabel\" [required]=\"true\" [invalid]=\"titleValidity\" *ngIf=\"selection.length === 1\">\n <eo-string formControlName=\"titleFieldFCN\"></eo-string>\n </eo-form-input>\n <div class=\"err-msg\" *ngIf=\"titleValidity\">\n <div translate>eo.form.property.required</div>\n </div>\n <eo-form-input [skipToggle]=\"true\" [label]=\"inboxCbLabel\">\n <eo-checkbox formControlName=\"inboxCbFCN\" [tristate]=\"false\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [skipToggle]=\"true\" [label]=\"emailCbLabel\">\n <eo-checkbox formControlName=\"emailCbFCN\" [tristate]=\"false\" [readonly]=\"!hasEmail\"></eo-checkbox>\n </eo-form-input>\n </form>\n\n <!-- error/validation messages -->\n <div class=\"errors\">\n <div class=\"err-msg\" *ngIf=\"notificationMethodValidation\" translate>eo.resubmission.error.msg</div>\n <div class=\"err-msg\" *ngIf=\"dateValidation\" translate>eo.resubmission.error.msg.date</div>\n </div>\n\n <div class=\"form-buttons\" *ngIf=\"!processing; else indicator\">\n <button class=\"secondary\" (click)=\"cancel()\" translate>eo.resubmission.cancel</button>\n <button class=\"secondary\" *ngIf=\"selection[0].resubmissions.length\" (click)=\"removeResubmission()\" translate>eo.resubmission.delete</button>\n <button class=\"primary\" [disabled]=\"addResubmissionForm.errors || titleValidity\" *ngIf=\"selection[0].resubmissions.length\" (click)=\"updateResubmission()\" translate>eo.resubmission.apply</button>\n <button class=\"primary\" [disabled]=\"addResubmissionForm.errors || titleValidity\" *ngIf=\"!selection[0].resubmissions.length\" (click)=\"createResubmission()\" translate>eo.resubmission.add</button>\n </div>\n\n <ng-template #indicator>\n <div class=\"process-indicator\"><eo-icon [iconSrc]=\"'ic_kitt-loader.svg'\"></eo-icon></div>\n </ng-template>\n</div>\n\n",
175
+ template: "<div class=\"eo-resubmission\" eoTrapFocus>\n <h2>{{header}}</h2>\n <form #titleField [formGroup]=\"addResubmissionForm\">\n <eo-form-input [skipToggle]=\"true\" [label]=\"dueFieldLabel\">\n <eo-datetime [withTime]=\"true\" [onlyFutureDates]=\"true\" formControlName=\"dueFieldFCN\"></eo-datetime>\n </eo-form-input>\n <eo-form-input [skipToggle]=\"true\" [label]=\"titleFieldLabel\" [required]=\"true\" [invalid]=\"titleValidity\" *ngIf=\"selection.length === 1\">\n <eo-string formControlName=\"titleFieldFCN\"></eo-string>\n </eo-form-input>\n <div class=\"err-msg\" *ngIf=\"titleValidity\">\n <div translate>eo.form.property.required</div>\n </div>\n <eo-form-input [skipToggle]=\"true\" [label]=\"inboxCbLabel\">\n <eo-checkbox formControlName=\"inboxCbFCN\" [tristate]=\"false\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [skipToggle]=\"true\" [label]=\"emailCbLabel\">\n <eo-checkbox formControlName=\"emailCbFCN\" [tristate]=\"false\" [readonly]=\"!hasEmail\"></eo-checkbox>\n </eo-form-input>\n </form>\n\n <!-- error/validation messages -->\n <div class=\"errors\">\n <div class=\"err-msg\" *ngIf=\"notificationMethodValidation\" translate>eo.resubmission.error.msg</div>\n <div class=\"err-msg\" *ngIf=\"dateValidation\" translate>eo.resubmission.error.msg.date</div>\n </div>\n\n <div class=\"form-buttons\" *ngIf=\"!processing; else indicator\">\n <button class=\"secondary\" (click)=\"cancel()\" translate>eo.resubmission.cancel</button>\n <button class=\"secondary\" *ngIf=\"selection[0].resubmissions.length\" (click)=\"removeResubmission()\" translate>eo.resubmission.delete</button>\n <button class=\"primary\" [disabled]=\"addResubmissionForm.errors || titleValidity\" *ngIf=\"selection[0].resubmissions.length\" (click)=\"updateResubmission()\" translate>eo.resubmission.apply</button>\n <button class=\"primary\" [disabled]=\"addResubmissionForm.errors || titleValidity\" *ngIf=\"!selection[0].resubmissions.length\" (click)=\"createResubmission()\" translate>eo.resubmission.add</button>\n </div>\n\n <ng-template #indicator>\n <div class=\"process-indicator\"><eo-icon [iconSrc]=\"'ic_kitt-loader.svg'\"></eo-icon></div>\n </ng-template>\n</div>\n\n",
173
176
  styles: [".eo-resubmission{display:flex;flex-flow:column;justify-content:center;margin:var(--app-pane-padding)}.eo-resubmission h2{font-size:var(--font-subhead);font-weight:var(--font-weight-light)}.eo-resubmission .form-buttons{padding:5px 0;text-align:right}.eo-resubmission .form-buttons button:nth-child(2n):not(:last-child){margin:0 calc(var(--app-pane-padding)/2)}.eo-resubmission .form-buttons button:nth-child(2n):last-child{margin-left:calc(var(--app-pane-padding)/2);margin-right:0}.eo-resubmission .process-indicator{display:flex;justify-content:flex-end}.eo-resubmission .err-msg{background-color:var(--color-error);border:0;border-radius:2px;color:var(--color-white);margin:calc(var(--app-pane-padding)/4) 0;padding:calc(var(--app-pane-padding)/4)}.eo-resubmission .errors .err-msg:before{content:\"!\";padding:0 calc(var(--app-pane-padding)/4)}"]
174
177
  },] }
175
178
  ];
@@ -181,7 +184,8 @@ AddResubmissionComponent.ctorParameters = () => [
181
184
  ];
182
185
  AddResubmissionComponent.propDecorators = {
183
186
  selection: [{ type: Input }],
187
+ titleField: [{ type: ViewChild, args: ['titleField', { static: true },] }],
184
188
  finished: [{ type: Output }],
185
189
  canceled: [{ type: Output }]
186
190
  };
187
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXJlc3VibWlzc2lvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9hY3Rpb25zL2FjdGlvbnMvYWRkLXJlc3VibWlzc2lvbi1hY3Rpb24vYWRkLXJlc3VibWlzc2lvbi9hZGQtcmVzdWJtaXNzaW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFFLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUMsU0FBUyxFQUFVLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUMsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQVksVUFBVSxFQUFFLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBYSxXQUFXLEVBQUUsVUFBVSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQztBQUVsQyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUM7QUFPdkIsTUFBTSxPQUFPLHdCQUF3QjtJQW1CbkMsWUFBb0IsU0FBMkIsRUFDM0IsR0FBZSxFQUNmLFdBQXdCLEVBQ3hCLEVBQWU7UUFIZixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixRQUFHLEdBQUgsR0FBRyxDQUFZO1FBQ2YsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQWR6QixhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDdEQsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBY2hFLENBQUM7SUFuQkQsSUFBSSxRQUFR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Q04sSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7UUFDdkYsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1FBRXZGLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7OztZQXBNRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtnQkFDL0IsOHNFQUFnRDs7YUFFakQ7OztZQVZPLGdCQUFnQjtZQUEwQixVQUFVO1lBQXZCLFdBQVc7WUFEakIsV0FBVzs7O3dCQWN2QyxLQUFLO3VCQU1MLE1BQU07dUJBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Zm9ya0pvaW4sIG9mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q29tcG9uZW50LCBPbkluaXQsIEV2ZW50RW1pdHRlcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9hY3Rpb24tY29tcG9uZW50LmludGVyZmFjZSc7XG5pbXBvcnQge0lucHV0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtR3JvdXAsIFZhbGlkYXRvcnMsIEZvcm1CdWlsZGVyfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2UsIERtc09iamVjdCwgVXNlclNlcnZpY2UsIERtc1NlcnZpY2V9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge2NhdGNoRXJyb3J9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSAnbW9tZW50JztcblxuY29uc3QgbW9tZW50ID0gbW9tZW50XztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tYWRkLXJlc3VibWlzc2lvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtcmVzdWJtaXNzaW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWRkLXJlc3VibWlzc2lvbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEFkZFJlc3VibWlzc2lvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWN0aW9uQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBzZWxlY3Rpb246IERtc09iamVjdFtdO1xuXG4gIGdldCBoYXNFbWFpbCgpIHtcbiAgICByZXR1cm4gdGhpcy51c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpLmVtYWlsICYmIHRoaXMudXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXIoKS5lbWFpbC5sZW5ndGg7XG4gIH1cblxuICBAT3V0cHV0KCkgZmluaXNoZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBjYW5jZWxlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBoZWFkZXI6IHN0cmluZztcbiAgYWRkUmVzdWJtaXNzaW9uRm9ybTogRm9ybUdyb3VwO1xuICBkdWVGaWVsZExhYmVsOiBzdHJpbmc7XG4gIHRpdGxlRmllbGRMYWJlbDogc3RyaW5nO1xuICBpbmJveENiTGFiZWw6IHN0cmluZztcbiAgZW1haWxDYkxhYmVsOiBzdHJpbmc7XG4gIHByb2Nlc3Npbmc6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgZG1zOiBEbXNTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHtcbiAgfVxuXG4gIGNyZWF0ZVJlc3VibWlzc2lvbkZvcm0oKSB7XG4gICAgdGhpcy5hZGRSZXN1Ym1pc3Npb25Gb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICB0aXRsZUZpZWxkRkNOOiBbdGhpcy5jcmVhdGVUaXRsZSh0aGlzLnNlbGVjdGlvblswXSldLFxuICAgICAgZHVlRmllbGRGQ046IFttb21lbnQoKS5hZGQoMiwgJ3dlZWtzJyldLFxuICAgICAgaW5ib3hDYkZDTjogW3RydWVdLFxuICAgICAgZW1haWxDYkZDTjogW2ZhbHNlXSxcbiAgICB9LCB7XG4gICAgICB2YWxpZGF0b3I6IFZhbGlkYXRvcnMuY29tcG9zZShbXG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uTWV0aG9kVmFsaWRhdG9yKCdpbmJveENiRkNOJywgJ2VtYWlsQ2JGQ04nKSxcbiAgICAgICAgdGhpcy5kdWVEYXRlVmFsaWRhdG9yKCdkdWVGaWVsZEZDTicpXG4gICAgICBdKVxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uLmxlbmd0aCA9PT0gMSkge1xuICAgICAgdGhpcy5hZGRSZXN1Ym1pc3Npb25Gb3JtLmNvbnRyb2xzWyd0aXRsZUZpZWxkRkNOJ10uc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldEZvcm1WYWx1ZXModGhpcy5hZGRSZXN1Ym1pc3Npb25Gb3JtLmNvbnRyb2xzLCB0aGlzLnNlbGVjdGlvblswXSk7XG4gIH1cblxuICBzZXRGb3JtVmFsdWVzKGNvbnRyb2xzLCBzZWxlY3Rpb246IERtc09iamVjdCkge1xuICAgIGlmIChzZWxlY3Rpb24ucmVzdWJtaXNzaW9ucy5sZW5ndGgpIHtcbiAgICAgIC8vIGlmIHJlc3VibWlzc2lvbnMgYXJyYXkgaXNuJ3QgZW1wdHksIGl0J3MgYW4gdXBkYXRlXG4gICAgICBjb25zdCB7aW5mbywgZHVlLCBvbmx5ZW1haWwsIGVtYWlsfSA9IHNlbGVjdGlvbi5yZXN1Ym1pc3Npb25zWzBdO1xuICAgICAgdGhpcy5oZWFkZXIgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5vYmplY3QuaW5saW5lbWVudS5lZGl0cmVzdWJtaXNzaW9uJyk7XG4gICAgICB0aGlzLnBhdGNoRm9ybShpbmZvLCBuZXcgRGF0ZShgJHtkdWV9YCksICFvbmx5ZW1haWwsIGVtYWlsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oZWFkZXIgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5vYmplY3QuaW5saW5lbWVudS5hZGRyZXN1Ym1pc3Npb24nKTtcbiAgICB9XG4gIH1cblxuICBwYXRjaEZvcm0odGl0bGVGaWVsZEZDTiwgZHVlRmllbGRGQ04sIGluYm94Q2JGQ04sIGVtYWlsQ2JGQ04gPSBmYWxzZSkge1xuICAgIHRoaXMuYWRkUmVzdWJtaXNzaW9uRm9ybS5zZXRWYWx1ZSh7dGl0bGVGaWVsZEZDTiwgZHVlRmllbGRGQ04sIGluYm94Q2JGQ04sIGVtYWlsQ2JGQ059KTtcbiAgfVxuXG4gIGdldCB0aXRsZVZhbGlkaXR5KCkge1xuICAgIHJldHVybiB0aGlzLmFkZFJlc3VibWlzc2lvbkZvcm0uZ2V0KCd0aXRsZUZpZWxkRkNOJykuaW52YWxpZDtcbiAgfVxuXG4gIHByaXZhdGUgZHVlRGF0ZVZhbGlkYXRvcihkdWVEYXRlKSB7XG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgICByZXR1cm4gKGdyb3VwOiBGb3JtR3JvdXApID0+IHtcbiAgICAgIGlmIChncm91cC5jb250cm9sc1tkdWVEYXRlXS52YWx1ZSA+IG5vdykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7J2R1ZURhdGUnOiB0cnVlfVxuICAgIH1cbiAgfVxuXG4gIGdldCBkYXRlVmFsaWRhdGlvbigpOiBib29sZWFuIHtcbiAgICBjb25zdCB7ZXJyb3JzLCBjb250cm9sc30gPSB0aGlzLmFkZFJlc3VibWlzc2lvbkZvcm07XG4gICAgbGV0IGRhdGVWYWxpZGF0aW9uRXJyb3IgPSBmYWxzZTtcbiAgICBpZiAoZXJyb3JzKSB7XG4gICAgICBkYXRlVmFsaWRhdGlvbkVycm9yID0gKGNvbnRyb2xzLmR1ZUZpZWxkRkNOLnRvdWNoZWQgfHwgY29udHJvbHMuZHVlRmllbGRGQ04uZGlydHkpICYmIGVycm9ycy5kdWVEYXRlO1xuICAgIH1cbiAgICByZXR1cm4gZGF0ZVZhbGlkYXRpb25FcnJvcjtcbiAgfVxuXG4gIHByaXZhdGUgbm90aWZpY2F0aW9uTWV0aG9kVmFsaWRhdG9yKGluYm94Q2JGQ04sIGVtYWlsQ2JGQ04pIHtcbiAgICByZXR1cm4gKGdyb3VwOiBGb3JtR3JvdXApID0+IHtcbiAgICAgIGlmIChncm91cC5jb250cm9sc1tpbmJveENiRkNOXS52YWx1ZSB8fCBncm91cC5jb250cm9sc1tlbWFpbENiRkNOXS52YWx1ZSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7J25vdGlmaWNhdGlvbk1ldGhvZCc6IHRydWV9XG4gICAgfVxuICB9XG5cbiAgZ2V0IG5vdGlmaWNhdGlvbk1ldGhvZFZhbGlkYXRpb24oKTogYm9vbGVhbiB7XG4gICAgY29uc3Qge2Vycm9yc30gPSB0aGlzLmFkZFJlc3VibWlzc2lvbkZvcm07XG4gICAgbGV0IG5vdGlmaWNhdGlvbk1ldGhvZFZhbGlkYXRpb25FcnJvciA9IGZhbHNlO1xuICAgIGlmIChlcnJvcnMpIHtcbiAgICAgIG5vdGlmaWNhdGlvbk1ldGhvZFZhbGlkYXRpb25FcnJvciA9IGVycm9ycy5ub3RpZmljYXRpb25NZXRob2Q7XG4gICAgfVxuICAgIHJldHVybiBub3RpZmljYXRpb25NZXRob2RWYWxpZGF0aW9uRXJyb3I7XG4gIH1cblxuICBjcmVhdGVSZXN1Ym1pc3Npb24oKSB7XG4gICAgY29uc3Qge3RpdGxlRmllbGRGQ04sIGR1ZUZpZWxkRkNOLCBpbmJveENiRkNOLCBlbWFpbENiRkNOOiBzZW5kRW1haWx9ID0gdGhpcy5hZGRSZXN1Ym1pc3Npb25Gb3JtLnZhbHVlO1xuICAgIGNvbnN0IG9ubHlFbWFpbCA9IHRoaXMuaGFzRW1haWwgPyBzZW5kRW1haWwgJiYgIWluYm94Q2JGQ04gOiBmYWxzZTtcblxuICAgIHRoaXMucHJvY2Vzc2luZyA9IHRydWU7XG4gICAgY29uc3QgY3JlYXRlVGFza3MgPSBbXTtcbiAgICB0aGlzLnNlbGVjdGlvbi5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgY29uc3QgdGl0bGUgPSB0aGlzLnNlbGVjdGlvbi5sZW5ndGggPT09IDEgPyB0aXRsZUZpZWxkRkNOIDogdGhpcy5jcmVhdGVUaXRsZShpdGVtKTtcbiAgICAgIGNyZWF0ZVRhc2tzLnB1c2godGhpcy5kbXMuY3JlYXRlUmVzdWJtaXNzaW9uKGl0ZW0sIHRpdGxlLCBkdWVGaWVsZEZDTiwgdW5kZWZpbmVkLCBzZW5kRW1haWwsIG9ubHlFbWFpbClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgLy8gZXZlbiBpbiBjYXNlIG9pZiBhbiBlcnJvciByZXR1cm4gc29tZXRoaW5nIGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSB3aG9sZSBmb3JrSm9pbiB3aWxsIGZhaWxcbiAgICAgICAgICAvLyB0b2RvOiBtYXliZSBhZGQgc29tZSBlcnJvciBub3RpZmljYXRpb24gdGhhdCBzb21ldGhpbmcgd2VudCB3cm9uZ1xuICAgICAgICAgIGNhdGNoRXJyb3IoZSA9PiBvZihudWxsKVxuICAgICAgICAgIClcbiAgICAgICAgKSk7XG4gICAgfSk7XG4gICAgaWYgKGNyZWF0ZVRhc2tzLmxlbmd0aCkge1xuICAgICAgZm9ya0pvaW4oY3JlYXRlVGFza3MpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5wcm9jZXNzaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5maW5pc2hlZC5lbWl0KCk7XG4gICAgICAgIH1cbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcm9jZXNzaW5nID0gZmFsc2U7XG4gICAgICB0aGlzLmZpbmlzaGVkLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVSZXN1Ym1pc3Npb24oKSB7XG4gICAgY29uc3Qge3RpdGxlRmllbGRGQ04sIGR1ZUZpZWxkRkNOLCBpbmJveENiRkNOLCBlbWFpbENiRkNOOiBzZW5kRW1haWx9ID0gdGhpcy5hZGRSZXN1Ym1pc3Npb25Gb3JtLnZhbHVlO1xuICAgIGNvbnN0IG9ubHlFbWFpbCA9IHRoaXMuaGFzRW1haWwgPyBzZW5kRW1haWwgJiYgIWluYm94Q2JGQ04gOiBmYWxzZTtcblxuICAgIHRoaXMucHJvY2Vzc2luZyA9IHRydWU7XG4gICAgY29uc3QgdXBkYXRlVGFza3MgPSBbXTtcbiAgICB0aGlzLnNlbGVjdGlvbi5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgY29uc3QgdGl0bGUgPSB0aGlzLnNlbGVjdGlvbi5sZW5ndGggPT09IDEgPyB0aXRsZUZpZWxkRkNOIDogdGhpcy5jcmVhdGVUaXRsZShpdGVtKTtcbiAgICAgIHVwZGF0ZVRhc2tzLnB1c2godGhpcy5kbXMudXBkYXRlUmVzdWJtaXNzaW9uKGl0ZW0sIHRpdGxlLCBkdWVGaWVsZEZDTiwgdW5kZWZpbmVkLCBzZW5kRW1haWwsIG9ubHlFbWFpbCkucGlwZShcbiAgICAgICAgLy8gZXZlbiBpbiBjYXNlIG9pZiBhbiBlcnJvciByZXR1cm4gc29tZXRoaW5nIGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSB3aG9sZSBmb3JrSm9pbiB3aWxsIGZhaWxcbiAgICAgICAgLy8gdG9kbzogbWF5YmUgYWRkIHNvbWUgZXJyb3Igbm90aWZpY2F0aW9uIHRoYXQgc29tZXRoaW5nIHdlbnQgd3JvbmdcbiAgICAgICAgY2F0Y2hFcnJvcihlID0+IG9mKG51bGwpKVxuICAgICAgKSk7XG4gICAgfSk7XG4gICAgaWYgKHVwZGF0ZVRhc2tzLmxlbmd0aCkge1xuICAgICAgZm9ya0pvaW4odXBkYXRlVGFza3MpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5wcm9jZXNzaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5maW5pc2hlZC5lbWl0KCk7XG4gICAgICAgIH1cbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcm9jZXNzaW5nID0gZmFsc2U7XG4gICAgICB0aGlzLmZpbmlzaGVkLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICByZW1vdmVSZXN1Ym1pc3Npb24oKSB7XG4gICAgdGhpcy5wcm9jZXNzaW5nID0gdHJ1ZTtcbiAgICBjb25zdCByZW1vdmVUYXNrcyA9IFtdO1xuICAgIHRoaXMuc2VsZWN0aW9uLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICByZW1vdmVUYXNrcy5wdXNoKHRoaXMuZG1zLnJlbW92ZVJlc3VibWlzc2lvbnNCeUlkKGl0ZW0uaWQsIGl0ZW0pXG4gICAgICAvLyBldmVuIGluIGNhc2Ugb2lmIGFuIGVycm9yIHJldHVybiBzb21ldGhpbmcgYmVjYXVzZSBvdGhlcndpc2UgdGhlIHdob2xlIGZvcmtKb2luIHdpbGwgZmFpbFxuICAgICAgLy8gdG9kbzogbWF5YmUgYWRkIHNvbWUgZXJyb3Igbm90aWZpY2F0aW9uIHRoYXQgc29tZXRoaW5nIHdlbnQgd3JvbmdcbiAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcihlID0+IG9mKG51bGwpKSkpO1xuICAgIH0pO1xuICAgIGlmIChyZW1vdmVUYXNrcy5sZW5ndGgpIHtcbiAgICAgIGZvcmtKb2luKHJlbW92ZVRhc2tzKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucHJvY2Vzc2luZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZmluaXNoZWQuZW1pdCgpO1xuICAgICAgICB9XG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJvY2Vzc2luZyA9IGZhbHNlO1xuICAgICAgdGhpcy5maW5pc2hlZC5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVUaXRsZShpdGVtOiBEbXNPYmplY3QpIHtcbiAgICByZXR1cm4gaXRlbS5pc0NvbnRleHRGb2xkZXIgJiYgaXRlbS5jb250ZXh0Rm9sZGVyID8gYCR7aXRlbS5jb250ZXh0Rm9sZGVyLnRpdGxlfSA+ICR7aXRlbS50aXRsZX1gIDogaXRlbS50aXRsZTtcbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLmNhbmNlbGVkLmVtaXQoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZHVlRmllbGRMYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnJlc3VibWlzc2lvbi5maWVsZC5kdWUnKTtcbiAgICB0aGlzLnRpdGxlRmllbGRMYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnJlc3VibWlzc2lvbi5maWVsZC5pbmZvJyk7XG4gICAgdGhpcy5pbmJveENiTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5yZXN1Ym1pc3Npb24uZmllbGQubm90aWZpY2F0aW9uLmluYm94Jyk7XG4gICAgdGhpcy5lbWFpbENiTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5yZXN1Ym1pc3Npb24uZmllbGQubm90aWZpY2F0aW9uLmVtYWlsJyk7XG5cbiAgICB0aGlzLmNyZWF0ZVJlc3VibWlzc2lvbkZvcm0oKTtcbiAgfVxuXG59XG4iXX0=
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXJlc3VibWlzc2lvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9hY3Rpb25zL2FjdGlvbnMvYWRkLXJlc3VibWlzc2lvbi1hY3Rpb24vYWRkLXJlc3VibWlzc2lvbi9hZGQtcmVzdWJtaXNzaW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFFLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUMsU0FBUyxFQUFVLFlBQVksRUFBRSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFckYsT0FBTyxFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFZLFVBQVUsRUFBRSxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQWEsV0FBVyxFQUFFLFVBQVUsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUNsRixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7QUFFbEMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDO0FBT3ZCLE1BQU0sT0FBTyx3QkFBd0I7SUFvQm5DLFlBQW9CLFNBQTJCLEVBQzNCLEdBQWUsRUFDZixXQUF3QixFQUN4QixFQUFlO1FBSGYsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQUNmLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLE9BQUUsR0FBRixFQUFFLENBQWE7UUFkekIsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3RELGFBQVEsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQWNoRSxDQUFDO0lBbkJE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RUQsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1FBQ3ZGLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsMENBQTBDLENBQUMsQ0FBQztRQUV2RixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUM5QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDMUUsQ0FBQyxDQUFFLENBQUM7SUFDTixDQUFDOzs7WUF4TUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxxQkFBcUI7Z0JBQy9CLHN1RUFBZ0Q7O2FBRWpEOzs7WUFWTyxnQkFBZ0I7WUFBMEIsVUFBVTtZQUF2QixXQUFXO1lBRGpCLFdBQVc7Ozt3QkFjdkMsS0FBSzt5QkFDTCxTQUFTLFNBQUMsWUFBWSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQzt1QkFNdEMsTUFBTTt1QkFDTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtmb3JrSm9pbiwgb2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3Rpb25Db21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvYWN0aW9uLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtJbnB1dCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBGb3JtQnVpbGRlcn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlLCBEbXNPYmplY3QsIFVzZXJTZXJ2aWNlLCBEbXNTZXJ2aWNlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtjYXRjaEVycm9yfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudCc7XG5cbmNvbnN0IG1vbWVudCA9IG1vbWVudF87XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLWFkZC1yZXN1Ym1pc3Npb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vYWRkLXJlc3VibWlzc2lvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FkZC1yZXN1Ym1pc3Npb24uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBZGRSZXN1Ym1pc3Npb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFjdGlvbkNvbXBvbmVudCB7XG5cbiAgQElucHV0KCkgc2VsZWN0aW9uOiBEbXNPYmplY3RbXTtcbiAgQFZpZXdDaGlsZCgndGl0bGVGaWVsZCcsIHtzdGF0aWM6IHRydWV9KSB0aXRsZUZpZWxkIDogRWxlbWVudFJlZjxhbnk+O1xuXG4gIGdldCBoYXNFbWFpbCgpIHtcbiAgICByZXR1cm4gdGhpcy51c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpLmVtYWlsICYmIHRoaXMudXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXIoKS5lbWFpbC5sZW5ndGg7XG4gIH1cblxuICBAT3V0cHV0KCkgZmluaXNoZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBjYW5jZWxlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBoZWFkZXI6IHN0cmluZztcbiAgYWRkUmVzdWJtaXNzaW9uRm9ybTogRm9ybUdyb3VwO1xuICBkdWVGaWVsZExhYmVsOiBzdHJpbmc7XG4gIHRpdGxlRmllbGRMYWJlbDogc3RyaW5nO1xuICBpbmJveENiTGFiZWw6IHN0cmluZztcbiAgZW1haWxDYkxhYmVsOiBzdHJpbmc7XG4gIHByb2Nlc3Npbmc6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgZG1zOiBEbXNTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHtcbiAgfVxuXG4gIGNyZWF0ZVJlc3VibWlzc2lvbkZvcm0oKSB7XG4gICAgdGhpcy5hZGRSZXN1Ym1pc3Npb25Gb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICB0aXRsZUZpZWxkRkNOOiBbdGhpcy5jcmVhdGVUaXRsZSh0aGlzLnNlbGVjdGlvblswXSldLFxuICAgICAgZHVlRmllbGRGQ046IFttb21lbnQoKS5hZGQoMiwgJ3dlZWtzJyldLFxuICAgICAgaW5ib3hDYkZDTjogW3RydWVdLFxuICAgICAgZW1haWxDYkZDTjogW2ZhbHNlXSxcbiAgICB9LCB7XG4gICAgICB2YWxpZGF0b3I6IFZhbGlkYXRvcnMuY29tcG9zZShbXG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uTWV0aG9kVmFsaWRhdG9yKCdpbmJveENiRkNOJywgJ2VtYWlsQ2JGQ04nKSxcbiAgICAgICAgdGhpcy5kdWVEYXRlVmFsaWRhdG9yKCdkdWVGaWVsZEZDTicpXG4gICAgICBdKVxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uLmxlbmd0aCA9PT0gMSkge1xuICAgICAgdGhpcy5hZGRSZXN1Ym1pc3Npb25Gb3JtLmNvbnRyb2xzWyd0aXRsZUZpZWxkRkNOJ10uc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldEZvcm1WYWx1ZXModGhpcy5hZGRSZXN1Ym1pc3Npb25Gb3JtLmNvbnRyb2xzLCB0aGlzLnNlbGVjdGlvblswXSk7XG4gIH1cblxuICBzZXRGb3JtVmFsdWVzKGNvbnRyb2xzLCBzZWxlY3Rpb246IERtc09iamVjdCkge1xuICAgIGlmIChzZWxlY3Rpb24ucmVzdWJtaXNzaW9ucy5sZW5ndGgpIHtcbiAgICAgIC8vIGlmIHJlc3VibWlzc2lvbnMgYXJyYXkgaXNuJ3QgZW1wdHksIGl0J3MgYW4gdXBkYXRlXG4gICAgICBjb25zdCB7aW5mbywgZHVlLCBvbmx5ZW1haWwsIGVtYWlsfSA9IHNlbGVjdGlvbi5yZXN1Ym1pc3Npb25zWzBdO1xuICAgICAgdGhpcy5oZWFkZXIgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5vYmplY3QuaW5saW5lbWVudS5lZGl0cmVzdWJtaXNzaW9uJyk7XG4gICAgICB0aGlzLnBhdGNoRm9ybShpbmZvLCBuZXcgRGF0ZShgJHtkdWV9YCksICFvbmx5ZW1haWwsIGVtYWlsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oZWFkZXIgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5vYmplY3QuaW5saW5lbWVudS5hZGRyZXN1Ym1pc3Npb24nKTtcbiAgICB9XG4gIH1cblxuICBwYXRjaEZvcm0odGl0bGVGaWVsZEZDTiwgZHVlRmllbGRGQ04sIGluYm94Q2JGQ04sIGVtYWlsQ2JGQ04gPSBmYWxzZSkge1xuICAgIHRoaXMuYWRkUmVzdWJtaXNzaW9uRm9ybS5zZXRWYWx1ZSh7dGl0bGVGaWVsZEZDTiwgZHVlRmllbGRGQ04sIGluYm94Q2JGQ04sIGVtYWlsQ2JGQ059KTtcbiAgfVxuXG4gIGdldCB0aXRsZVZhbGlkaXR5KCkge1xuICAgIHJldHVybiB0aGlzLmFkZFJlc3VibWlzc2lvbkZvcm0uZ2V0KCd0aXRsZUZpZWxkRkNOJykuaW52YWxpZDtcbiAgfVxuXG4gIHByaXZhdGUgZHVlRGF0ZVZhbGlkYXRvcihkdWVEYXRlKSB7XG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgICByZXR1cm4gKGdyb3VwOiBGb3JtR3JvdXApID0+IHtcbiAgICAgIGlmIChncm91cC5jb250cm9sc1tkdWVEYXRlXS52YWx1ZSA+IG5vdykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7J2R1ZURhdGUnOiB0cnVlfVxuICAgIH1cbiAgfVxuXG4gIGdldCBkYXRlVmFsaWRhdGlvbigpOiBib29sZWFuIHtcbiAgICBjb25zdCB7ZXJyb3JzLCBjb250cm9sc30gPSB0aGlzLmFkZFJlc3VibWlzc2lvbkZvcm07XG4gICAgbGV0IGRhdGVWYWxpZGF0aW9uRXJyb3IgPSBmYWxzZTtcbiAgICBpZiAoZXJyb3JzKSB7XG4gICAgICBkYXRlVmFsaWRhdGlvbkVycm9yID0gKGNvbnRyb2xzLmR1ZUZpZWxkRkNOLnRvdWNoZWQgfHwgY29udHJvbHMuZHVlRmllbGRGQ04uZGlydHkpICYmIGVycm9ycy5kdWVEYXRlO1xuICAgIH1cbiAgICByZXR1cm4gZGF0ZVZhbGlkYXRpb25FcnJvcjtcbiAgfVxuXG4gIHByaXZhdGUgbm90aWZpY2F0aW9uTWV0aG9kVmFsaWRhdG9yKGluYm94Q2JGQ04sIGVtYWlsQ2JGQ04pIHtcbiAgICByZXR1cm4gKGdyb3VwOiBGb3JtR3JvdXApID0+IHtcbiAgICAgIGlmIChncm91cC5jb250cm9sc1tpbmJveENiRkNOXS52YWx1ZSB8fCBncm91cC5jb250cm9sc1tlbWFpbENiRkNOXS52YWx1ZSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7J25vdGlmaWNhdGlvbk1ldGhvZCc6IHRydWV9XG4gICAgfVxuICB9XG5cbiAgZ2V0IG5vdGlmaWNhdGlvbk1ldGhvZFZhbGlkYXRpb24oKTogYm9vbGVhbiB7XG4gICAgY29uc3Qge2Vycm9yc30gPSB0aGlzLmFkZFJlc3VibWlzc2lvbkZvcm07XG4gICAgbGV0IG5vdGlmaWNhdGlvbk1ldGhvZFZhbGlkYXRpb25FcnJvciA9IGZhbHNlO1xuICAgIGlmIChlcnJvcnMpIHtcbiAgICAgIG5vdGlmaWNhdGlvbk1ldGhvZFZhbGlkYXRpb25FcnJvciA9IGVycm9ycy5ub3RpZmljYXRpb25NZXRob2Q7XG4gICAgfVxuICAgIHJldHVybiBub3RpZmljYXRpb25NZXRob2RWYWxpZGF0aW9uRXJyb3I7XG4gIH1cblxuICBjcmVhdGVSZXN1Ym1pc3Npb24oKSB7XG4gICAgY29uc3Qge3RpdGxlRmllbGRGQ04sIGR1ZUZpZWxkRkNOLCBpbmJveENiRkNOLCBlbWFpbENiRkNOOiBzZW5kRW1haWx9ID0gdGhpcy5hZGRSZXN1Ym1pc3Npb25Gb3JtLnZhbHVlO1xuICAgIGNvbnN0IG9ubHlFbWFpbCA9IHRoaXMuaGFzRW1haWwgPyBzZW5kRW1haWwgJiYgIWluYm94Q2JGQ04gOiBmYWxzZTtcblxuICAgIHRoaXMucHJvY2Vzc2luZyA9IHRydWU7XG4gICAgY29uc3QgY3JlYXRlVGFza3MgPSBbXTtcbiAgICB0aGlzLnNlbGVjdGlvbi5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgY29uc3QgdGl0bGUgPSB0aGlzLnNlbGVjdGlvbi5sZW5ndGggPT09IDEgPyB0aXRsZUZpZWxkRkNOIDogdGhpcy5jcmVhdGVUaXRsZShpdGVtKTtcbiAgICAgIGNyZWF0ZVRhc2tzLnB1c2godGhpcy5kbXMuY3JlYXRlUmVzdWJtaXNzaW9uKGl0ZW0sIHRpdGxlLCBkdWVGaWVsZEZDTiwgdW5kZWZpbmVkLCBzZW5kRW1haWwsIG9ubHlFbWFpbClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgLy8gZXZlbiBpbiBjYXNlIG9pZiBhbiBlcnJvciByZXR1cm4gc29tZXRoaW5nIGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSB3aG9sZSBmb3JrSm9pbiB3aWxsIGZhaWxcbiAgICAgICAgICAvLyB0b2RvOiBtYXliZSBhZGQgc29tZSBlcnJvciBub3RpZmljYXRpb24gdGhhdCBzb21ldGhpbmcgd2VudCB3cm9uZ1xuICAgICAgICAgIGNhdGNoRXJyb3IoZSA9PiBvZihudWxsKVxuICAgICAgICAgIClcbiAgICAgICAgKSk7XG4gICAgfSk7XG4gICAgaWYgKGNyZWF0ZVRhc2tzLmxlbmd0aCkge1xuICAgICAgZm9ya0pvaW4oY3JlYXRlVGFza3MpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5wcm9jZXNzaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5maW5pc2hlZC5lbWl0KCk7XG4gICAgICAgIH1cbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcm9jZXNzaW5nID0gZmFsc2U7XG4gICAgICB0aGlzLmZpbmlzaGVkLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVSZXN1Ym1pc3Npb24oKSB7XG4gICAgY29uc3Qge3RpdGxlRmllbGRGQ04sIGR1ZUZpZWxkRkNOLCBpbmJveENiRkNOLCBlbWFpbENiRkNOOiBzZW5kRW1haWx9ID0gdGhpcy5hZGRSZXN1Ym1pc3Npb25Gb3JtLnZhbHVlO1xuICAgIGNvbnN0IG9ubHlFbWFpbCA9IHRoaXMuaGFzRW1haWwgPyBzZW5kRW1haWwgJiYgIWluYm94Q2JGQ04gOiBmYWxzZTtcblxuICAgIHRoaXMucHJvY2Vzc2luZyA9IHRydWU7XG4gICAgY29uc3QgdXBkYXRlVGFza3MgPSBbXTtcbiAgICB0aGlzLnNlbGVjdGlvbi5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgY29uc3QgdGl0bGUgPSB0aGlzLnNlbGVjdGlvbi5sZW5ndGggPT09IDEgPyB0aXRsZUZpZWxkRkNOIDogdGhpcy5jcmVhdGVUaXRsZShpdGVtKTtcbiAgICAgIHVwZGF0ZVRhc2tzLnB1c2godGhpcy5kbXMudXBkYXRlUmVzdWJtaXNzaW9uKGl0ZW0sIHRpdGxlLCBkdWVGaWVsZEZDTiwgdW5kZWZpbmVkLCBzZW5kRW1haWwsIG9ubHlFbWFpbCkucGlwZShcbiAgICAgICAgLy8gZXZlbiBpbiBjYXNlIG9pZiBhbiBlcnJvciByZXR1cm4gc29tZXRoaW5nIGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSB3aG9sZSBmb3JrSm9pbiB3aWxsIGZhaWxcbiAgICAgICAgLy8gdG9kbzogbWF5YmUgYWRkIHNvbWUgZXJyb3Igbm90aWZpY2F0aW9uIHRoYXQgc29tZXRoaW5nIHdlbnQgd3JvbmdcbiAgICAgICAgY2F0Y2hFcnJvcihlID0+IG9mKG51bGwpKVxuICAgICAgKSk7XG4gICAgfSk7XG4gICAgaWYgKHVwZGF0ZVRhc2tzLmxlbmd0aCkge1xuICAgICAgZm9ya0pvaW4odXBkYXRlVGFza3MpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5wcm9jZXNzaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5maW5pc2hlZC5lbWl0KCk7XG4gICAgICAgIH1cbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcm9jZXNzaW5nID0gZmFsc2U7XG4gICAgICB0aGlzLmZpbmlzaGVkLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICByZW1vdmVSZXN1Ym1pc3Npb24oKSB7XG4gICAgdGhpcy5wcm9jZXNzaW5nID0gdHJ1ZTtcbiAgICBjb25zdCByZW1vdmVUYXNrcyA9IFtdO1xuICAgIHRoaXMuc2VsZWN0aW9uLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICByZW1vdmVUYXNrcy5wdXNoKHRoaXMuZG1zLnJlbW92ZVJlc3VibWlzc2lvbnNCeUlkKGl0ZW0uaWQsIGl0ZW0pXG4gICAgICAvLyBldmVuIGluIGNhc2Ugb2lmIGFuIGVycm9yIHJldHVybiBzb21ldGhpbmcgYmVjYXVzZSBvdGhlcndpc2UgdGhlIHdob2xlIGZvcmtKb2luIHdpbGwgZmFpbFxuICAgICAgLy8gdG9kbzogbWF5YmUgYWRkIHNvbWUgZXJyb3Igbm90aWZpY2F0aW9uIHRoYXQgc29tZXRoaW5nIHdlbnQgd3JvbmdcbiAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcihlID0+IG9mKG51bGwpKSkpO1xuICAgIH0pO1xuICAgIGlmIChyZW1vdmVUYXNrcy5sZW5ndGgpIHtcbiAgICAgIGZvcmtKb2luKHJlbW92ZVRhc2tzKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucHJvY2Vzc2luZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZmluaXNoZWQuZW1pdCgpO1xuICAgICAgICB9XG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJvY2Vzc2luZyA9IGZhbHNlO1xuICAgICAgdGhpcy5maW5pc2hlZC5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVUaXRsZShpdGVtOiBEbXNPYmplY3QpIHtcbiAgICByZXR1cm4gaXRlbS5pc0NvbnRleHRGb2xkZXIgJiYgaXRlbS5jb250ZXh0Rm9sZGVyID8gYCR7aXRlbS5jb250ZXh0Rm9sZGVyLnRpdGxlfSA+ICR7aXRlbS50aXRsZX1gIDogaXRlbS50aXRsZTtcbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLmNhbmNlbGVkLmVtaXQoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZHVlRmllbGRMYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnJlc3VibWlzc2lvbi5maWVsZC5kdWUnKTtcbiAgICB0aGlzLnRpdGxlRmllbGRMYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnJlc3VibWlzc2lvbi5maWVsZC5pbmZvJyk7XG4gICAgdGhpcy5pbmJveENiTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5yZXN1Ym1pc3Npb24uZmllbGQubm90aWZpY2F0aW9uLmluYm94Jyk7XG4gICAgdGhpcy5lbWFpbENiTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5yZXN1Ym1pc3Npb24uZmllbGQubm90aWZpY2F0aW9uLmVtYWlsJyk7XG5cbiAgICB0aGlzLmNyZWF0ZVJlc3VibWlzc2lvbkZvcm0oKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMudGl0bGVGaWVsZC5uYXRpdmVFbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpbnB1dCcpWzBdLnNlbGVjdCgpO1xuICAgIH0sKTtcbiAgfVxuXG59XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import { forkJoin, of } from 'rxjs';
2
- import { Component, EventEmitter } from '@angular/core';
2
+ import { Component, EventEmitter, ViewChild } from '@angular/core';
3
3
  import { Input, Output } from '@angular/core';
4
4
  import { Validators, FormBuilder } from '@angular/forms';
5
5
  import { TranslateService, DmsService, UserService, SubscriptionMode } from '@eo-sdk/core';
@@ -58,6 +58,9 @@ export class AddSubscriptionComponent {
58
58
  ]
59
59
  };
60
60
  }
61
+ setTimeout(() => {
62
+ this.titleField.nativeElement.getElementsByTagName('input')[0].select();
63
+ });
61
64
  }
62
65
  get titleValidity() {
63
66
  return this.addSubscriptionForm.get('titleFieldFCN').invalid;
@@ -105,7 +108,7 @@ export class AddSubscriptionComponent {
105
108
  AddSubscriptionComponent.decorators = [
106
109
  { type: Component, args: [{
107
110
  selector: 'eo-add-subscription',
108
- template: "<div class=\"eo-subscription\">\n <h2>{{header}}</h2>\n <form [formGroup]=\"addSubscriptionForm\">\n <eo-form-input [skipToggle]=\"true\" [label]=\"titleFieldLabel\" [required]=\"true\" [invalid]=\"titleValidity\" *ngIf=\"selection.length === 1\">\n <eo-string formControlName=\"titleFieldFCN\"></eo-string>\n </eo-form-input>\n <div class=\"err-msg\" *ngIf=\"titleValidity\">\n <div translate>eo.form.property.required</div>\n </div>\n <eo-form-input [skipToggle]=\"true\" [label]=\"inboxCbLabel\">\n <eo-checkbox formControlName=\"inboxCbFCN\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [skipToggle]=\"true\" [label]=\"emailCbLabel\">\n <eo-checkbox formControlName=\"emailCbFCN\" [readonly]=\"!hasEmail\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [skipToggle]=\"true\" [label]=\"'eo.subscription.field.mode.label' | translate\">\n <eo-codesystem formControlName=\"modeFieldFCN\" [codesystem]=\"subscriptionModeCodesystem\" [pickerTitle]=\"'eo.subscription.field.mode.label' | translate\"></eo-codesystem>\n </eo-form-input>\n </form>\n\n <!-- error/validation messages -->\n <div class=\"errors\">\n <div class=\"err-msg\" *ngIf=\"addSubscriptionForm.errors?.addSubscriptionForm\" translate>eo.subscription.error.msg</div>\n </div>\n\n <div class=\"form-buttons\" *ngIf=\"!processing; else indicator\">\n <button class=\"secondary\" (click)=\"cancel()\"translate>eo.subscription.cancel</button>\n <button class=\"primary\" [disabled]=\"addSubscriptionForm.errors || titleValidity\" (click)=\"createSubscription()\"translate>eo.subscription.add</button>\n </div>\n\n <ng-template #indicator>\n <div class=\"process-indicator\"><eo-icon [iconSrc]=\"'assets/_default/svg/ic_kitt-loader.svg'\"></eo-icon></div>\n </ng-template>\n</div>\n\n",
111
+ template: "<div class=\"eo-subscription\" eoTrapFocus>\n <h2>{{header}}</h2>\n <form #titleField [formGroup]=\"addSubscriptionForm\">\n <eo-form-input [skipToggle]=\"true\" [label]=\"titleFieldLabel\" [required]=\"true\" [invalid]=\"titleValidity\" *ngIf=\"selection.length === 1\">\n <eo-string formControlName=\"titleFieldFCN\"></eo-string>\n </eo-form-input>\n <div class=\"err-msg\" *ngIf=\"titleValidity\">\n <div translate>eo.form.property.required</div>\n </div>\n <eo-form-input [skipToggle]=\"true\" [label]=\"inboxCbLabel\">\n <eo-checkbox formControlName=\"inboxCbFCN\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [skipToggle]=\"true\" [label]=\"emailCbLabel\">\n <eo-checkbox formControlName=\"emailCbFCN\" [readonly]=\"!hasEmail\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [skipToggle]=\"true\" [label]=\"'eo.subscription.field.mode.label' | translate\">\n <eo-codesystem formControlName=\"modeFieldFCN\" [codesystem]=\"subscriptionModeCodesystem\" [pickerTitle]=\"'eo.subscription.field.mode.label' | translate\"></eo-codesystem>\n </eo-form-input>\n </form>\n\n <!-- error/validation messages -->\n <div class=\"errors\">\n <div class=\"err-msg\" *ngIf=\"addSubscriptionForm.errors?.addSubscriptionForm\" translate>eo.subscription.error.msg</div>\n </div>\n\n <div class=\"form-buttons\" *ngIf=\"!processing; else indicator\">\n <button class=\"secondary\" (click)=\"cancel()\"translate>eo.subscription.cancel</button>\n <button class=\"primary\" [disabled]=\"addSubscriptionForm.errors || titleValidity\" (click)=\"createSubscription()\"translate>eo.subscription.add</button>\n </div>\n\n <ng-template #indicator>\n <div class=\"process-indicator\"><eo-icon [iconSrc]=\"'assets/_default/svg/ic_kitt-loader.svg'\"></eo-icon></div>\n </ng-template>\n</div>\n\n",
109
112
  styles: [".eo-subscription{display:flex;flex-flow:column;justify-content:center;margin:var(--app-pane-padding)}.eo-subscription h2{font-size:var(--font-subhead);font-weight:var(--font-weight-light)}.eo-subscription .form-buttons{padding:5px 0;text-align:right}.eo-subscription .form-buttons button:nth-child(2n):not(:last-child){margin:0 calc(var(--app-pane-padding)/2)}.eo-subscription .form-buttons button:nth-child(2n):last-child{margin-left:calc(var(--app-pane-padding)/2);margin-right:0}.eo-subscription .process-indicator{display:flex;justify-content:flex-end}.eo-subscription .err-msg{background-color:var(--color-error);border:0;border-radius:2px;color:var(--color-white);margin:calc(var(--app-pane-padding)/4) 0;padding:calc(var(--app-pane-padding)/4)}.eo-subscription .errors .err-msg:before{content:\"!\";padding:0 calc(var(--app-pane-padding)/4)}"]
110
113
  },] }
111
114
  ];
@@ -118,6 +121,7 @@ AddSubscriptionComponent.ctorParameters = () => [
118
121
  AddSubscriptionComponent.propDecorators = {
119
122
  selection: [{ type: Input }],
120
123
  finished: [{ type: Output }],
121
- canceled: [{ type: Output }]
124
+ canceled: [{ type: Output }],
125
+ titleField: [{ type: ViewChild, args: ['titleField', { static: true },] }]
122
126
  };
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXN1YnNjcmlwdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9hY3Rpb25zL2FjdGlvbnMvYWRkLXN1YnNjcmlwdGlvbi1hY3Rpb24vYWRkLXN1YnNjcmlwdGlvbi9hZGQtc3Vic2NyaXB0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFFLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUMsU0FBUyxFQUFVLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUMsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQXlCLFVBQVUsRUFBRSxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBYSxnQkFBZ0IsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUNwRyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFPMUMsTUFBTSxPQUFPLHdCQUF3QjtJQW9CbkMsWUFBb0IsU0FBMkIsRUFDM0IsR0FBZSxFQUNmLFdBQXdCLEVBQ3hCLEVBQWU7UUFIZixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixRQUFHLEdBQUgsR0FBRyxDQUFZO1FBQ2YsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQWJ6QixhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDdEQsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBYWhFLENBQUM7SUFsQkQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDLEtBQUssSUFB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LEtBQUssQ0FBQztJQUNqSCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQzs7O1lBNUhGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUscUJBQXFCO2dCQUMvQixvekRBQWdEOzthQUVqRDs7O1lBUE8sZ0JBQWdCO1lBQUUsVUFBVTtZQUFFLFdBQVc7WUFETCxXQUFXOzs7d0JBYXBELEtBQUs7dUJBTUwsTUFBTTt1QkFDTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtmb3JrSm9pbiwgb2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdCwgRXZlbnRFbWl0dGVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aW9uQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2FjdGlvbi1jb21wb25lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7SW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMsIEZvcm1CdWlsZGVyfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2UsIERtc1NlcnZpY2UsIFVzZXJTZXJ2aWNlLCBEbXNPYmplY3QsIFN1YnNjcmlwdGlvbk1vZGV9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge2NhdGNoRXJyb3J9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tYWRkLXN1YnNjcmlwdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtc3Vic2NyaXB0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWRkLXN1YnNjcmlwdGlvbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEFkZFN1YnNjcmlwdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWN0aW9uQ29tcG9uZW50IHtcblxuICBzdWJzY3JpcHRpb25Nb2RlQ29kZXN5c3RlbTtcblxuICBASW5wdXQoKSBzZWxlY3Rpb246IERtc09iamVjdFtdO1xuXG4gIGdldCBoYXNFbWFpbCgpIHtcbiAgICByZXR1cm4gdGhpcy51c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpLmVtYWlsICYmIHRoaXMudXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXIoKS5lbWFpbC5sZW5ndGg7XG4gIH1cblxuICBAT3V0cHV0KCkgZmluaXNoZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBjYW5jZWxlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBoZWFkZXI6IHN0cmluZztcbiAgYWRkU3Vic2NyaXB0aW9uRm9ybTogRm9ybUdyb3VwO1xuICB0aXRsZUZpZWxkTGFiZWw6IHN0cmluZztcbiAgaW5ib3hDYkxhYmVsOiBzdHJpbmc7XG4gIGVtYWlsQ2JMYWJlbDogc3RyaW5nO1xuICBwcm9jZXNzaW5nOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGRtczogRG1zU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmhlYWRlciA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLm9iamVjdC5pbmxpbmVtZW51LmFkZHN1YnNjcmlwdGlvbicpO1xuICAgIHRoaXMudGl0bGVGaWVsZExhYmVsID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc3Vic2NyaXB0aW9uLmZpZWxkLmluZm8nKTtcbiAgICB0aGlzLmluYm94Q2JMYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnN1YnNjcmlwdGlvbi5maWVsZC5ub3RpZmljYXRpb24uaW5ib3gnKTtcbiAgICB0aGlzLmVtYWlsQ2JMYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnN1YnNjcmlwdGlvbi5maWVsZC5ub3RpZmljYXRpb24uZW1haWwnKTtcblxuICAgIGNvbnN0IGluY2x1ZGVzRm9sZGVycyA9IHRoaXMuc2VsZWN0aW9uLmZpbmQoaXRlbSA9PiBpdGVtLmlzRm9sZGVyKTtcbiAgICBjb25zdCBpbmNsdWRlc0RvY3VtZW50cyA9IHRoaXMuc2VsZWN0aW9uLmZpbmQoaXRlbSA9PiAhaXRlbS5pc0ZvbGRlcik7XG5cbiAgICB0aGlzLmFkZFN1YnNjcmlwdGlvbkZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIHRpdGxlRmllbGRGQ046IFsnJ10sXG4gICAgICBpbmJveENiRkNOOiBbdHJ1ZV0sXG4gICAgICBlbWFpbENiRkNOOiBbZmFsc2VdLFxuICAgICAgbW9kZUZpZWxkRkNOOiBbaW5jbHVkZXNGb2xkZXJzID8gU3Vic2NyaXB0aW9uTW9kZS5PTkxZX0lOREVYX0RBVEFfQ0hBTkdFRCA6IFN1YnNjcmlwdGlvbk1vZGUuRE1TX09CSkVDVF9DSEFOR0VEXVxuICAgIH0sIHt2YWxpZGF0b3I6IHRoaXMudmFsaWRhdG9yfSk7XG5cbiAgICBpZiAodGhpcy5zZWxlY3Rpb24ubGVuZ3RoID09PSAxKSB7XG4gICAgICBjb25zdCB0aXRsZUZpZWxkQ29udHJvbCA9IHRoaXMuYWRkU3Vic2NyaXB0aW9uRm9ybS5jb250cm9sc1sndGl0bGVGaWVsZEZDTiddO1xuICAgICAgdGl0bGVGaWVsZENvbnRyb2wuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgIHRpdGxlRmllbGRDb250cm9sLnNldFZhbHVlKHRoaXMuY3JlYXRlVGl0bGUodGhpcy5zZWxlY3Rpb25bMF0pKTtcbiAgICB9XG5cbiAgICBpZihpbmNsdWRlc0ZvbGRlcnMgJiYgaW5jbHVkZXNEb2N1bWVudHMpe1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25Nb2RlQ29kZXN5c3RlbSA9IHtcbiAgICAgICAgZW50cmllczogW1xuICAgICAgICAgIHtpZDogMCwgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zdWJzY3JpcHRpb24uZmllbGQubW9kZS5lbnRyaWVzLm1ldGEubGFiZWwnKSwgZGF0YTogU3Vic2NyaXB0aW9uTW9kZS5PTkxZX0lOREVYX0RBVEFfQ0hBTkdFRH0sXG4gICAgICAgICAge2lkOiAyLCBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnN1YnNjcmlwdGlvbi5maWVsZC5tb2RlLmVudHJpZXMuYm90aC5sYWJlbCcpLCBkYXRhOiBTdWJzY3JpcHRpb25Nb2RlLkRNU19PQkpFQ1RfQ0hBTkdFRH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIH0gZWxzZSBpZihpbmNsdWRlc0ZvbGRlcnMgJiYgIWluY2x1ZGVzRG9jdW1lbnRzKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbk1vZGVDb2Rlc3lzdGVtID0ge1xuICAgICAgICBlbnRyaWVzOiBbXG4gICAgICAgICAge2lkOiAwLCBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnN1YnNjcmlwdGlvbi5maWVsZC5tb2RlLmVudHJpZXMubWV0YS5sYWJlbCcpLCBkYXRhOiBTdWJzY3JpcHRpb25Nb2RlLk9OTFlfSU5ERVhfREFUQV9DSEFOR0VEfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uTW9kZUNvZGVzeXN0ZW0gPSB7XG4gICAgICAgIGVudHJpZXM6IFtcbiAgICAgICAgICB7aWQ6IDAsIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc3Vic2NyaXB0aW9uLmZpZWxkLm1vZGUuZW50cmllcy5tZXRhLmxhYmVsJyksIGRhdGE6IFN1YnNjcmlwdGlvbk1vZGUuT05MWV9JTkRFWF9EQVRBX0NIQU5HRUR9LFxuICAgICAgICAgIHtpZDogMSwgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zdWJzY3JpcHRpb24uZmllbGQubW9kZS5lbnRyaWVzLmNvbnRlbnQubGFiZWwnKSwgZGF0YTogU3Vic2NyaXB0aW9uTW9kZS5PTkxZX0RPQ1VNRU5UX0NPTlRFTlRfQ0hBTkdFRH0sXG4gICAgICAgICAge2lkOiAyLCBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnN1YnNjcmlwdGlvbi5maWVsZC5tb2RlLmVudHJpZXMuYm90aC5sYWJlbCcpLCBkYXRhOiBTdWJzY3JpcHRpb25Nb2RlLkRNU19PQkpFQ1RfQ0hBTkdFRH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG5cbiAgZ2V0IHRpdGxlVmFsaWRpdHkoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkU3Vic2NyaXB0aW9uRm9ybS5nZXQoJ3RpdGxlRmllbGRGQ04nKS5pbnZhbGlkO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0b3IoY29udHJvbDogRm9ybUNvbnRyb2wpIHtcbiAgICBpZiAoY29udHJvbC52YWx1ZS5pbmJveENiRkNOIHx8IGNvbnRyb2wudmFsdWUuZW1haWxDYkZDTikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFkZFN1YnNjcmlwdGlvbkZvcm06IHtcbiAgICAgICAgICB2YWxpZDogZmFsc2VcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBjcmVhdGVTdWJzY3JpcHRpb24oKSB7XG4gICAgY29uc3Qge3RpdGxlRmllbGRGQ04sIGluYm94Q2JGQ04sIGVtYWlsQ2JGQ046IHNlbmRFbWFpbCwgbW9kZUZpZWxkRkNOfSA9IHRoaXMuYWRkU3Vic2NyaXB0aW9uRm9ybS52YWx1ZTtcbiAgICBjb25zdCBvbmx5RW1haWwgPSB0aGlzLmhhc0VtYWlsID8gc2VuZEVtYWlsICYmICFpbmJveENiRkNOIDogZmFsc2U7XG5cbiAgICB0aGlzLnByb2Nlc3NpbmcgPSB0cnVlO1xuICAgIGNvbnN0IGNyZWF0ZVRhc2tzID0gW107XG4gICAgdGhpcy5zZWxlY3Rpb24uZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGNvbnN0IHRpdGxlID0gdGhpcy5zZWxlY3Rpb24ubGVuZ3RoID09PSAxID8gdGl0bGVGaWVsZEZDTiA6IHRoaXMuY3JlYXRlVGl0bGUoaXRlbSk7XG4gICAgICBjcmVhdGVUYXNrcy5wdXNoKHRoaXMuZG1zLmNyZWF0ZVN1YnNjcmlwdGlvbihpdGVtLCB0aXRsZSwgdW5kZWZpbmVkLCBzZW5kRW1haWwsIG9ubHlFbWFpbCwgbW9kZUZpZWxkRkNOKVxuICAgICAgICAucGlwZShjYXRjaEVycm9yKGUgPT4gb2YobnVsbCkpKSk7XG4gICAgfSk7XG5cbiAgICBpZiAoY3JlYXRlVGFza3MubGVuZ3RoKSB7XG4gICAgICBmb3JrSm9pbihjcmVhdGVUYXNrcykuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnByb2Nlc3NpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmZpbmlzaGVkLmVtaXQoKTtcbiAgICAgICAgfVxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnByb2Nlc3NpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuZmluaXNoZWQuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVGl0bGUoaXRlbSkge1xuICAgIHJldHVybiBpdGVtLmlzQ29udGV4dEZvbGRlciAmJiBpdGVtLmNvbnRleHRGb2xkZXIgPyBpdGVtLmNvbnRleHRGb2xkZXIudGl0bGUgKyAnID4gJyArIGl0ZW0udGl0bGUgOiBpdGVtLnRpdGxlO1xuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIHRoaXMuY2FuY2VsZWQuZW1pdCgpO1xuICB9XG5cbn1cbiJdfQ==
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXN1YnNjcmlwdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9hY3Rpb25zL2FjdGlvbnMvYWRkLXN1YnNjcmlwdGlvbi1hY3Rpb24vYWRkLXN1YnNjcmlwdGlvbi9hZGQtc3Vic2NyaXB0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFFLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUMsU0FBUyxFQUFVLFlBQVksRUFBYyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFckYsT0FBTyxFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUF5QixVQUFVLEVBQUUsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFDLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQWEsZ0JBQWdCLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDcEcsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBTzFDLE1BQU0sT0FBTyx3QkFBd0I7SUFxQm5DLFlBQW9CLFNBQTJCLEVBQzNCLEdBQWUsRUFDZixXQUF3QixFQUN4QixFQUFlO1FBSGYsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQUNmLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLE9BQUUsR0FBRixFQUFFLENBQWE7UUFkekIsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3RELGFBQVEsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQWNoRSxDQUFDO0lBbkJELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FB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QUMsSUFBSTtRQUN0QixPQUFPLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDakgsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7OztZQWhJRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtnQkFDL0IsNDBEQUFnRDs7YUFFakQ7OztZQVBPLGdCQUFnQjtZQUFFLFVBQVU7WUFBRSxXQUFXO1lBREwsV0FBVzs7O3dCQWFwRCxLQUFLO3VCQU1MLE1BQU07dUJBQ04sTUFBTTt5QkFDTixTQUFTLFNBQUMsWUFBWSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Zm9ya0pvaW4sIG9mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q29tcG9uZW50LCBPbkluaXQsIEV2ZW50RW1pdHRlciwgRWxlbWVudFJlZiwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aW9uQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2FjdGlvbi1jb21wb25lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7SW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMsIEZvcm1CdWlsZGVyfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2UsIERtc1NlcnZpY2UsIFVzZXJTZXJ2aWNlLCBEbXNPYmplY3QsIFN1YnNjcmlwdGlvbk1vZGV9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge2NhdGNoRXJyb3J9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tYWRkLXN1YnNjcmlwdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtc3Vic2NyaXB0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWRkLXN1YnNjcmlwdGlvbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEFkZFN1YnNjcmlwdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWN0aW9uQ29tcG9uZW50IHtcblxuICBzdWJzY3JpcHRpb25Nb2RlQ29kZXN5c3RlbTtcblxuICBASW5wdXQoKSBzZWxlY3Rpb246IERtc09iamVjdFtdO1xuXG4gIGdldCBoYXNFbWFpbCgpIHtcbiAgICByZXR1cm4gdGhpcy51c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpLmVtYWlsICYmIHRoaXMudXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXIoKS5lbWFpbC5sZW5ndGg7XG4gIH1cblxuICBAT3V0cHV0KCkgZmluaXNoZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBjYW5jZWxlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQFZpZXdDaGlsZCgndGl0bGVGaWVsZCcsIHtzdGF0aWM6IHRydWV9KSB0aXRsZUZpZWxkIDogRWxlbWVudFJlZjxhbnk+O1xuXG4gIGhlYWRlcjogc3RyaW5nO1xuICBhZGRTdWJzY3JpcHRpb25Gb3JtOiBGb3JtR3JvdXA7XG4gIHRpdGxlRmllbGRMYWJlbDogc3RyaW5nO1xuICBpbmJveENiTGFiZWw6IHN0cmluZztcbiAgZW1haWxDYkxhYmVsOiBzdHJpbmc7XG4gIHByb2Nlc3Npbmc6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgZG1zOiBEbXNTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaGVhZGVyID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ub2JqZWN0LmlubGluZW1lbnUuYWRkc3Vic2NyaXB0aW9uJyk7XG4gICAgdGhpcy50aXRsZUZpZWxkTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zdWJzY3JpcHRpb24uZmllbGQuaW5mbycpO1xuICAgIHRoaXMuaW5ib3hDYkxhYmVsID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc3Vic2NyaXB0aW9uLmZpZWxkLm5vdGlmaWNhdGlvbi5pbmJveCcpO1xuICAgIHRoaXMuZW1haWxDYkxhYmVsID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc3Vic2NyaXB0aW9uLmZpZWxkLm5vdGlmaWNhdGlvbi5lbWFpbCcpO1xuXG4gICAgY29uc3QgaW5jbHVkZXNGb2xkZXJzID0gdGhpcy5zZWxlY3Rpb24uZmluZChpdGVtID0+IGl0ZW0uaXNGb2xkZXIpO1xuICAgIGNvbnN0IGluY2x1ZGVzRG9jdW1lbnRzID0gdGhpcy5zZWxlY3Rpb24uZmluZChpdGVtID0+ICFpdGVtLmlzRm9sZGVyKTtcblxuICAgIHRoaXMuYWRkU3Vic2NyaXB0aW9uRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgdGl0bGVGaWVsZEZDTjogWycnXSxcbiAgICAgIGluYm94Q2JGQ046IFt0cnVlXSxcbiAgICAgIGVtYWlsQ2JGQ046IFtmYWxzZV0sXG4gICAgICBtb2RlRmllbGRGQ046IFtpbmNsdWRlc0ZvbGRlcnMgPyBTdWJzY3JpcHRpb25Nb2RlLk9OTFlfSU5ERVhfREFUQV9DSEFOR0VEIDogU3Vic2NyaXB0aW9uTW9kZS5ETVNfT0JKRUNUX0NIQU5HRURdXG4gICAgfSwge3ZhbGlkYXRvcjogdGhpcy52YWxpZGF0b3J9KTtcblxuICAgIGlmICh0aGlzLnNlbGVjdGlvbi5sZW5ndGggPT09IDEpIHtcbiAgICAgIGNvbnN0IHRpdGxlRmllbGRDb250cm9sID0gdGhpcy5hZGRTdWJzY3JpcHRpb25Gb3JtLmNvbnRyb2xzWyd0aXRsZUZpZWxkRkNOJ107XG4gICAgICB0aXRsZUZpZWxkQ29udHJvbC5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgdGl0bGVGaWVsZENvbnRyb2wuc2V0VmFsdWUodGhpcy5jcmVhdGVUaXRsZSh0aGlzLnNlbGVjdGlvblswXSkpO1xuICAgIH1cblxuICAgIGlmKGluY2x1ZGVzRm9sZGVycyAmJiBpbmNsdWRlc0RvY3VtZW50cyl7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbk1vZGVDb2Rlc3lzdGVtID0ge1xuICAgICAgICBlbnRyaWVzOiBbXG4gICAgICAgICAge2lkOiAwLCBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnN1YnNjcmlwdGlvbi5maWVsZC5tb2RlLmVudHJpZXMubWV0YS5sYWJlbCcpLCBkYXRhOiBTdWJzY3JpcHRpb25Nb2RlLk9OTFlfSU5ERVhfREFUQV9DSEFOR0VEfSxcbiAgICAgICAgICB7aWQ6IDIsIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc3Vic2NyaXB0aW9uLmZpZWxkLm1vZGUuZW50cmllcy5ib3RoLmxhYmVsJyksIGRhdGE6IFN1YnNjcmlwdGlvbk1vZGUuRE1TX09CSkVDVF9DSEFOR0VEfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgfSBlbHNlIGlmKGluY2x1ZGVzRm9sZGVycyAmJiAhaW5jbHVkZXNEb2N1bWVudHMpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uTW9kZUNvZGVzeXN0ZW0gPSB7XG4gICAgICAgIGVudHJpZXM6IFtcbiAgICAgICAgICB7aWQ6IDAsIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc3Vic2NyaXB0aW9uLmZpZWxkLm1vZGUuZW50cmllcy5tZXRhLmxhYmVsJyksIGRhdGE6IFN1YnNjcmlwdGlvbk1vZGUuT05MWV9JTkRFWF9EQVRBX0NIQU5HRUR9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25Nb2RlQ29kZXN5c3RlbSA9IHtcbiAgICAgICAgZW50cmllczogW1xuICAgICAgICAgIHtpZDogMCwgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zdWJzY3JpcHRpb24uZmllbGQubW9kZS5lbnRyaWVzLm1ldGEubGFiZWwnKSwgZGF0YTogU3Vic2NyaXB0aW9uTW9kZS5PTkxZX0lOREVYX0RBVEFfQ0hBTkdFRH0sXG4gICAgICAgICAge2lkOiAxLCBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnN1YnNjcmlwdGlvbi5maWVsZC5tb2RlLmVudHJpZXMuY29udGVudC5sYWJlbCcpLCBkYXRhOiBTdWJzY3JpcHRpb25Nb2RlLk9OTFlfRE9DVU1FTlRfQ09OVEVOVF9DSEFOR0VEfSxcbiAgICAgICAgICB7aWQ6IDIsIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc3Vic2NyaXB0aW9uLmZpZWxkLm1vZGUuZW50cmllcy5ib3RoLmxhYmVsJyksIGRhdGE6IFN1YnNjcmlwdGlvbk1vZGUuRE1TX09CSkVDVF9DSEFOR0VEfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgfVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy50aXRsZUZpZWxkLm5hdGl2ZUVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lucHV0JylbMF0uc2VsZWN0KCk7XG4gICAgfSwpO1xuICB9XG5cblxuICBnZXQgdGl0bGVWYWxpZGl0eSgpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRTdWJzY3JpcHRpb25Gb3JtLmdldCgndGl0bGVGaWVsZEZDTicpLmludmFsaWQ7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRvcihjb250cm9sOiBGb3JtQ29udHJvbCkge1xuICAgIGlmIChjb250cm9sLnZhbHVlLmluYm94Q2JGQ04gfHwgY29udHJvbC52YWx1ZS5lbWFpbENiRkNOKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYWRkU3Vic2NyaXB0aW9uRm9ybToge1xuICAgICAgICAgIHZhbGlkOiBmYWxzZVxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIGNyZWF0ZVN1YnNjcmlwdGlvbigpIHtcbiAgICBjb25zdCB7dGl0bGVGaWVsZEZDTiwgaW5ib3hDYkZDTiwgZW1haWxDYkZDTjogc2VuZEVtYWlsLCBtb2RlRmllbGRGQ059ID0gdGhpcy5hZGRTdWJzY3JpcHRpb25Gb3JtLnZhbHVlO1xuICAgIGNvbnN0IG9ubHlFbWFpbCA9IHRoaXMuaGFzRW1haWwgPyBzZW5kRW1haWwgJiYgIWluYm94Q2JGQ04gOiBmYWxzZTtcblxuICAgIHRoaXMucHJvY2Vzc2luZyA9IHRydWU7XG4gICAgY29uc3QgY3JlYXRlVGFza3MgPSBbXTtcbiAgICB0aGlzLnNlbGVjdGlvbi5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgY29uc3QgdGl0bGUgPSB0aGlzLnNlbGVjdGlvbi5sZW5ndGggPT09IDEgPyB0aXRsZUZpZWxkRkNOIDogdGhpcy5jcmVhdGVUaXRsZShpdGVtKTtcbiAgICAgIGNyZWF0ZVRhc2tzLnB1c2godGhpcy5kbXMuY3JlYXRlU3Vic2NyaXB0aW9uKGl0ZW0sIHRpdGxlLCB1bmRlZmluZWQsIHNlbmRFbWFpbCwgb25seUVtYWlsLCBtb2RlRmllbGRGQ04pXG4gICAgICAgIC5waXBlKGNhdGNoRXJyb3IoZSA9PiBvZihudWxsKSkpKTtcbiAgICB9KTtcblxuICAgIGlmIChjcmVhdGVUYXNrcy5sZW5ndGgpIHtcbiAgICAgIGZvcmtKb2luKGNyZWF0ZVRhc2tzKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucHJvY2Vzc2luZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZmluaXNoZWQuZW1pdCgpO1xuICAgICAgICB9XG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJvY2Vzc2luZyA9IGZhbHNlO1xuICAgICAgdGhpcy5maW5pc2hlZC5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVUaXRsZShpdGVtKSB7XG4gICAgcmV0dXJuIGl0ZW0uaXNDb250ZXh0Rm9sZGVyICYmIGl0ZW0uY29udGV4dEZvbGRlciA/IGl0ZW0uY29udGV4dEZvbGRlci50aXRsZSArICcgPiAnICsgaXRlbS50aXRsZSA6IGl0ZW0udGl0bGU7XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgdGhpcy5jYW5jZWxlZC5lbWl0KCk7XG4gIH1cblxufSJdfQ==