@alfresco/adf-process-services 8.1.0-14701637708 → 8.1.0-14711395239

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 (100) hide show
  1. package/esm2022/lib/app-list/apps-list.component.mjs +4 -4
  2. package/esm2022/lib/app-list/select-apps-dialog/select-apps-dialog.component.mjs +4 -4
  3. package/esm2022/lib/attachment/create-process-attachment/create-process-attachment.component.mjs +4 -4
  4. package/esm2022/lib/attachment/create-task-attachment/create-task-attachment.component.mjs +4 -4
  5. package/esm2022/lib/attachment/process-attachment-list/process-attachment-list.component.mjs +4 -4
  6. package/esm2022/lib/attachment/task-attachment-list/task-attachment-list.component.mjs +4 -4
  7. package/esm2022/lib/form/form-custom-outcomes.component.mjs +4 -4
  8. package/esm2022/lib/form/form-list/form-list.component.mjs +4 -4
  9. package/esm2022/lib/form/form.component.mjs +4 -4
  10. package/esm2022/lib/form/process-form-rendering.service.mjs +4 -4
  11. package/esm2022/lib/form/services/activiti-alfresco.service.mjs +4 -4
  12. package/esm2022/lib/form/services/ecm-model.service.mjs +4 -4
  13. package/esm2022/lib/form/services/editor.service.mjs +4 -4
  14. package/esm2022/lib/form/services/external-alfresco-api.service.mjs +4 -4
  15. package/esm2022/lib/form/services/model.service.mjs +4 -4
  16. package/esm2022/lib/form/services/process-content.service.mjs +4 -4
  17. package/esm2022/lib/form/services/process-definition.service.mjs +4 -4
  18. package/esm2022/lib/form/services/task-form.service.mjs +4 -4
  19. package/esm2022/lib/form/services/task.service.mjs +4 -4
  20. package/esm2022/lib/form/start-form/start-form.component.mjs +4 -4
  21. package/esm2022/lib/form/widgets/content-widget/attach-file-widget-dialog.component.mjs +4 -4
  22. package/esm2022/lib/form/widgets/content-widget/attach-file-widget-dialog.service.mjs +4 -4
  23. package/esm2022/lib/form/widgets/content-widget/attach-file-widget.component.mjs +4 -4
  24. package/esm2022/lib/form/widgets/content-widget/attach-folder-widget.component.mjs +4 -4
  25. package/esm2022/lib/form/widgets/document/content.widget.mjs +4 -4
  26. package/esm2022/lib/form/widgets/document/document.widget.mjs +4 -4
  27. package/esm2022/lib/form/widgets/dropdown/dropdown.widget.mjs +4 -4
  28. package/esm2022/lib/form/widgets/dynamic-table/dynamic-table.widget.mjs +4 -4
  29. package/esm2022/lib/form/widgets/dynamic-table/editors/amount/amount.editor.mjs +4 -4
  30. package/esm2022/lib/form/widgets/dynamic-table/editors/boolean/boolean.editor.mjs +4 -4
  31. package/esm2022/lib/form/widgets/dynamic-table/editors/date/date.editor.mjs +4 -4
  32. package/esm2022/lib/form/widgets/dynamic-table/editors/datetime/datetime.editor.mjs +4 -4
  33. package/esm2022/lib/form/widgets/dynamic-table/editors/dropdown/dropdown.editor.mjs +4 -4
  34. package/esm2022/lib/form/widgets/dynamic-table/editors/row-editor/row.editor.mjs +4 -4
  35. package/esm2022/lib/form/widgets/dynamic-table/editors/text/text.editor.mjs +4 -4
  36. package/esm2022/lib/form/widgets/file-viewer/file-viewer.widget.mjs +4 -4
  37. package/esm2022/lib/form/widgets/functional-group/functional-group.widget.mjs +4 -4
  38. package/esm2022/lib/form/widgets/people/people.widget.mjs +4 -4
  39. package/esm2022/lib/form/widgets/radio-buttons/radio-buttons.widget.mjs +4 -4
  40. package/esm2022/lib/form/widgets/typeahead/typeahead.widget.mjs +4 -4
  41. package/esm2022/lib/form/widgets/upload/upload.widget.mjs +4 -4
  42. package/esm2022/lib/people/components/people/people.component.mjs +4 -4
  43. package/esm2022/lib/people/components/people-list/people-list.component.mjs +4 -4
  44. package/esm2022/lib/people/components/people-search/people-search.component.mjs +4 -4
  45. package/esm2022/lib/people/components/people-search-field/people-search-field.component.mjs +4 -4
  46. package/esm2022/lib/people/components/people-selector/people-selector.component.mjs +4 -4
  47. package/esm2022/lib/process-comments/process-comments.component.mjs +4 -4
  48. package/esm2022/lib/process-comments/services/comment-process.service.mjs +4 -4
  49. package/esm2022/lib/process-list/components/process-audit/process-audit.directive.mjs +4 -4
  50. package/esm2022/lib/process-list/components/process-filters/process-filters.component.mjs +4 -4
  51. package/esm2022/lib/process-list/components/process-instance-details/process-instance-details.component.mjs +4 -4
  52. package/esm2022/lib/process-list/components/process-instance-header/process-instance-header.component.mjs +4 -4
  53. package/esm2022/lib/process-list/components/process-instance-tasks/process-instance-tasks.component.mjs +4 -4
  54. package/esm2022/lib/process-list/components/process-list/process-list.component.mjs +4 -4
  55. package/esm2022/lib/process-list/components/start-process/start-process.component.mjs +5 -5
  56. package/esm2022/lib/process-list/services/process-filter.service.mjs +4 -4
  57. package/esm2022/lib/process-list/services/process.service.mjs +4 -4
  58. package/esm2022/lib/process.module.mjs +5 -5
  59. package/esm2022/lib/services/apps-process.service.mjs +4 -4
  60. package/esm2022/lib/services/people-process.service.mjs +4 -4
  61. package/esm2022/lib/services/task-comments.service.mjs +4 -4
  62. package/esm2022/lib/task-comments/task-comments.component.mjs +4 -4
  63. package/esm2022/lib/task-list/components/attach-form/attach-form.component.mjs +4 -4
  64. package/esm2022/lib/task-list/components/checklist/checklist.component.mjs +4 -4
  65. package/esm2022/lib/task-list/components/start-task/start-task.component.mjs +4 -4
  66. package/esm2022/lib/task-list/components/task-details/task-details.component.mjs +4 -4
  67. package/esm2022/lib/task-list/components/task-filters/task-filters.component.mjs +4 -4
  68. package/esm2022/lib/task-list/components/task-form/claim-task.directive.mjs +4 -4
  69. package/esm2022/lib/task-list/components/task-form/task-form.component.mjs +4 -4
  70. package/esm2022/lib/task-list/components/task-form/unclaim-task.directive.mjs +4 -4
  71. package/esm2022/lib/task-list/components/task-header/task-header.component.mjs +4 -4
  72. package/esm2022/lib/task-list/components/task-list/task-list.component.mjs +4 -4
  73. package/esm2022/lib/task-list/components/task-standalone/task-standalone.component.mjs +4 -4
  74. package/esm2022/lib/task-list/services/process-upload.service.mjs +4 -4
  75. package/esm2022/lib/task-list/services/task-filter.service.mjs +4 -4
  76. package/esm2022/lib/task-list/services/task-upload.service.mjs +4 -4
  77. package/esm2022/lib/task-list/services/tasklist.service.mjs +4 -4
  78. package/fesm2022/adf-process-services.mjs +237 -237
  79. package/fesm2022/adf-process-services.mjs.map +1 -1
  80. package/lib/app-list/apps-list.component.scss +51 -23
  81. package/lib/attachment/process-attachment-list/process-attachment-list.component.scss +2 -2
  82. package/lib/attachment/task-attachment-list/task-attachment-list.component.scss +3 -3
  83. package/lib/form/start-form/start-form.component.scss +59 -60
  84. package/lib/form/widgets/content-widget/attach-file-widget-dialog.component.scss +3 -4
  85. package/lib/form/widgets/content-widget/attach-folder-widget.component.scss +3 -3
  86. package/lib/form/widgets/dropdown/dropdown.widget.scss +2 -2
  87. package/lib/form/widgets/people/people.widget.scss +2 -2
  88. package/lib/form/widgets/upload/upload.widget.scss +2 -2
  89. package/lib/people/components/people/people.component.scss +2 -2
  90. package/lib/process-list/components/start-process/start-process.component.scss +12 -12
  91. package/lib/styles/flex.scss +81 -0
  92. package/lib/styles/mat-selectors.scss +25 -0
  93. package/lib/task-list/components/attach-form/attach-form.component.scss +2 -2
  94. package/lib/task-list/components/checklist/checklist.component.scss +2 -2
  95. package/lib/task-list/components/start-task/start-task.component.scss +11 -11
  96. package/lib/task-list/components/task-details/task-details.component.scss +5 -5
  97. package/lib/task-list/components/task-form/task-form.component.scss +3 -3
  98. package/lib/task-list/components/task-header/task-header.component.scss +2 -2
  99. package/lib/task-list/components/task-standalone/task-standalone.component.scss +2 -2
  100. package/package.json +4 -4
@@ -115,10 +115,10 @@ export class StartFormComponent extends FormComponent {
115
115
  completeTaskForm(outcome) {
116
116
  this.outcomeClick.emit(outcome);
117
117
  }
118
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StartFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
119
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: StartFormComponent, isStandalone: true, selector: "adf-start-form", inputs: { processDefinitionId: "processDefinitionId", processId: "processId", showOutcomeButtons: "showOutcomeButtons", showRefreshButton: "showRefreshButton", readOnlyForm: "readOnlyForm" }, outputs: { outcomeClick: "outcomeClick", formContentClicked: "formContentClicked" }, viewQueries: [{ propertyName: "outcomesContainer", first: true, predicate: ["outcomesContainer"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"adf-start-form-container\" *ngIf=\"hasForm()\">\n <mat-card class=\"adf-start-form-card\">\n <mat-card-header class=\"adf-start-form-header\">\n <mat-card-title>\n <h2 *ngIf=\"isTitleEnabled()\" class=\"mdl-card__title-text\">{{form.taskName}}</h2>\n </mat-card-title>\n </mat-card-header>\n <mat-card-content class=\"adf-start-form-content\">\n <adf-form-renderer [formDefinition]=\"form\" />\n </mat-card-content>\n <mat-card-content class=\"adf-start-form-actions\" *ngIf=\"showOutcomeButtons && form.hasOutcomes()\"\n #outcomesContainer>\n <ng-content select=\"[adf-form-custom-button], [form-custom-button]\" />\n\n <button *ngFor=\"let outcome of form.outcomes\"\n mat-button\n class=\"adf-start-form-actions-button\"\n [attr.data-automation-id]=\"'adf-form-' + outcome.name | lowercase\"\n [disabled]=\"!isOutcomeButtonEnabled(outcome)\"\n [class.mdl-button--colored]=\"!outcome.isSystem\"\n [class.adf-form-hide-button]=\"!isOutcomeButtonVisible(outcome, form.readOnly)\"\n (click)=\"onOutcomeClicked(outcome)\">\n {{ outcome.name | uppercase | translate | uppercase }}\n </button>\n </mat-card-content>\n <mat-card-actions *ngIf=\"showRefreshButton\">\n <button mat-button\n (click)=\"onRefreshClicked()\">\n <mat-icon>refresh</mat-icon>\n </button>\n </mat-card-actions>\n </mat-card>\n</div>\n", styles: [".adf-form-container{max-width:100%;max-height:100%}.adf-form-container .mat-mdc-card{padding:16px 24px;overflow:hidden}.adf-form-container .mat-mdc-card-header-text{margin:0}.adf-form-container .mat-mdc-tab-body-content{overflow:hidden}.adf-form-container .mdc-tab__text-label{font-size:var(--theme-subheading-2-font-size);line-height:var(--theme-headline-line-height);letter-spacing:-.4px;text-align:left;color:var(--adf-theme-foreground-text-color-054);text-transform:uppercase}.adf-form-container .mdc-tab-indicator{height:4px}.adf-form-container .mat-mdc-text-field-wrapper{margin:0 12px 0 0}.adf-form-container-card .adf-form-title{font-size:var(--theme-title-font-size)}.adf-form-container-card .adf-form-debug-container{padding:10px}.adf-form-container-card .adf-form-debug-container .adf-debug-toggle-text{padding-left:15px;cursor:pointer}.adf-form-container-card .adf-form-debug-container .adf-debug-toggle-text:hover{font-weight:700}.adf-form-container-card .adf-form-reload-button{position:absolute;right:12px;top:30px}.adf-form-container-card .adf-form-validation-button{position:absolute;right:50px;top:39px;color:var(--theme-accent-color)}.adf-form-container-card .adf-form-validation-button .adf-invalid-color{color:var(--theme-warn-color)}.adf-form-container-card .adf-form-hide-button{display:none}.adf-form-container-card .adf-task-title{text-align:center}.adf-form-container-card .adf-label{width:32px;height:16px;font-size:var(--theme-caption-font-size);line-height:var(--theme-headline-line-height);text-align:left;white-space:nowrap}.adf-form-container-card .adf-form-mat-card-actions{float:right;padding-bottom:25px;padding-right:25px}.adf-form-container-card .adf-form-mat-card-actions .mat-mdc-button{height:36px;border-radius:5px}.adf-form-container-card .adf-form-mat-card-actions .mdc-button__label{width:58px;height:20px;opacity:.54;font-size:var(--theme-body-2-font-size);font-weight:700}form-field{width:100%}form-field .mat-mdc-input-element{font-size:var(--theme-body-2-font-size);padding-top:8px;line-height:normal}[dir=rtl] .adf-form-validation-button{left:50px;right:unset}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i1.LowerCasePipe, name: "lowercase" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i4.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i4.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: FormRendererComponent, selector: "adf-form-renderer", inputs: ["showDebugButton", "formDefinition", "readOnly"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], encapsulation: i0.ViewEncapsulation.None }); }
118
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: StartFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
119
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: StartFormComponent, isStandalone: true, selector: "adf-start-form", inputs: { processDefinitionId: "processDefinitionId", processId: "processId", showOutcomeButtons: "showOutcomeButtons", showRefreshButton: "showRefreshButton", readOnlyForm: "readOnlyForm" }, outputs: { outcomeClick: "outcomeClick", formContentClicked: "formContentClicked" }, viewQueries: [{ propertyName: "outcomesContainer", first: true, predicate: ["outcomesContainer"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"adf-start-form-container\" *ngIf=\"hasForm()\">\n <mat-card class=\"adf-start-form-card\">\n <mat-card-header class=\"adf-start-form-header\">\n <mat-card-title>\n <h2 *ngIf=\"isTitleEnabled()\" class=\"mdl-card__title-text\">{{form.taskName}}</h2>\n </mat-card-title>\n </mat-card-header>\n <mat-card-content class=\"adf-start-form-content\">\n <adf-form-renderer [formDefinition]=\"form\" />\n </mat-card-content>\n <mat-card-content class=\"adf-start-form-actions\" *ngIf=\"showOutcomeButtons && form.hasOutcomes()\"\n #outcomesContainer>\n <ng-content select=\"[adf-form-custom-button], [form-custom-button]\" />\n\n <button *ngFor=\"let outcome of form.outcomes\"\n mat-button\n class=\"adf-start-form-actions-button\"\n [attr.data-automation-id]=\"'adf-form-' + outcome.name | lowercase\"\n [disabled]=\"!isOutcomeButtonEnabled(outcome)\"\n [class.mdl-button--colored]=\"!outcome.isSystem\"\n [class.adf-form-hide-button]=\"!isOutcomeButtonVisible(outcome, form.readOnly)\"\n (click)=\"onOutcomeClicked(outcome)\">\n {{ outcome.name | uppercase | translate | uppercase }}\n </button>\n </mat-card-content>\n <mat-card-actions *ngIf=\"showRefreshButton\">\n <button mat-button\n (click)=\"onRefreshClicked()\">\n <mat-icon>refresh</mat-icon>\n </button>\n </mat-card-actions>\n </mat-card>\n</div>\n", styles: [".adf-form-container{max-width:100%;max-height:100%}.adf-form-container .mat-mdc-card{padding:16px 24px;overflow:hidden}.adf-form-container .mat-mdc-card-header-text{margin:0}.adf-form-container .mat-mdc-tab-body-content{overflow:hidden}.adf-form-container .mdc-tab__text-label{font-size:var(--theme-subheading-2-font-size);line-height:var(--theme-headline-line-height);letter-spacing:-.4px;text-align:left;color:var(--adf-theme-foreground-text-color-054);text-transform:uppercase}.adf-form-container .mdc-tab-indicator{height:4px}.adf-form-container .mat-mdc-text-field-wrapper{margin:0 12px 0 0}.adf-form-container-card .adf-form-title{font-size:var(--theme-title-font-size)}.adf-form-container-card .adf-form-debug-container{padding:10px}.adf-form-container-card .adf-form-debug-container .adf-debug-toggle-text{padding-left:15px;cursor:pointer}.adf-form-container-card .adf-form-debug-container .adf-debug-toggle-text:hover{font-weight:700}.adf-form-container-card .adf-form-reload-button{position:absolute;right:12px;top:30px}.adf-form-container-card .adf-form-validation-button{position:absolute;right:50px;top:39px;color:var(--theme-accent-color)}.adf-form-container-card .adf-form-validation-button .adf-invalid-color{color:var(--theme-warn-color)}.adf-form-container-card .adf-form-hide-button{display:none}.adf-form-container-card .adf-task-title{text-align:center}.adf-form-container-card .adf-label{width:32px;height:16px;font-size:var(--theme-caption-font-size);line-height:var(--theme-headline-line-height);text-align:left;white-space:nowrap}.adf-form-container-card .adf-form-mat-card-actions{float:right;padding-bottom:25px;padding-right:25px}.adf-form-container-card .adf-form-mat-card-actions .mat-mdc-button{height:36px;border-radius:5px}.adf-form-container-card .adf-form-mat-card-actions .mdc-button__label{width:58px;height:20px;opacity:.54;font-size:var(--theme-body-2-font-size);font-weight:700}form-field{width:100%}form-field .mat-mdc-input-element{font-size:var(--theme-body-2-font-size);padding-top:8px;line-height:normal}[dir=rtl] .adf-form-validation-button{left:50px;right:unset}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i1.LowerCasePipe, name: "lowercase" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i4.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i4.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: FormRendererComponent, selector: "adf-form-renderer", inputs: ["showDebugButton", "formDefinition", "readOnly"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], encapsulation: i0.ViewEncapsulation.None }); }
120
120
  }
121
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StartFormComponent, decorators: [{
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: StartFormComponent, decorators: [{
122
122
  type: Component,
123
123
  args: [{ selector: 'adf-start-form', standalone: true, imports: [CommonModule, TranslateModule, MatButtonModule, MatCardModule, FormRendererComponent, MatIconModule], encapsulation: ViewEncapsulation.None, template: "<div class=\"adf-start-form-container\" *ngIf=\"hasForm()\">\n <mat-card class=\"adf-start-form-card\">\n <mat-card-header class=\"adf-start-form-header\">\n <mat-card-title>\n <h2 *ngIf=\"isTitleEnabled()\" class=\"mdl-card__title-text\">{{form.taskName}}</h2>\n </mat-card-title>\n </mat-card-header>\n <mat-card-content class=\"adf-start-form-content\">\n <adf-form-renderer [formDefinition]=\"form\" />\n </mat-card-content>\n <mat-card-content class=\"adf-start-form-actions\" *ngIf=\"showOutcomeButtons && form.hasOutcomes()\"\n #outcomesContainer>\n <ng-content select=\"[adf-form-custom-button], [form-custom-button]\" />\n\n <button *ngFor=\"let outcome of form.outcomes\"\n mat-button\n class=\"adf-start-form-actions-button\"\n [attr.data-automation-id]=\"'adf-form-' + outcome.name | lowercase\"\n [disabled]=\"!isOutcomeButtonEnabled(outcome)\"\n [class.mdl-button--colored]=\"!outcome.isSystem\"\n [class.adf-form-hide-button]=\"!isOutcomeButtonVisible(outcome, form.readOnly)\"\n (click)=\"onOutcomeClicked(outcome)\">\n {{ outcome.name | uppercase | translate | uppercase }}\n </button>\n </mat-card-content>\n <mat-card-actions *ngIf=\"showRefreshButton\">\n <button mat-button\n (click)=\"onRefreshClicked()\">\n <mat-icon>refresh</mat-icon>\n </button>\n </mat-card-actions>\n </mat-card>\n</div>\n", styles: [".adf-form-container{max-width:100%;max-height:100%}.adf-form-container .mat-mdc-card{padding:16px 24px;overflow:hidden}.adf-form-container .mat-mdc-card-header-text{margin:0}.adf-form-container .mat-mdc-tab-body-content{overflow:hidden}.adf-form-container .mdc-tab__text-label{font-size:var(--theme-subheading-2-font-size);line-height:var(--theme-headline-line-height);letter-spacing:-.4px;text-align:left;color:var(--adf-theme-foreground-text-color-054);text-transform:uppercase}.adf-form-container .mdc-tab-indicator{height:4px}.adf-form-container .mat-mdc-text-field-wrapper{margin:0 12px 0 0}.adf-form-container-card .adf-form-title{font-size:var(--theme-title-font-size)}.adf-form-container-card .adf-form-debug-container{padding:10px}.adf-form-container-card .adf-form-debug-container .adf-debug-toggle-text{padding-left:15px;cursor:pointer}.adf-form-container-card .adf-form-debug-container .adf-debug-toggle-text:hover{font-weight:700}.adf-form-container-card .adf-form-reload-button{position:absolute;right:12px;top:30px}.adf-form-container-card .adf-form-validation-button{position:absolute;right:50px;top:39px;color:var(--theme-accent-color)}.adf-form-container-card .adf-form-validation-button .adf-invalid-color{color:var(--theme-warn-color)}.adf-form-container-card .adf-form-hide-button{display:none}.adf-form-container-card .adf-task-title{text-align:center}.adf-form-container-card .adf-label{width:32px;height:16px;font-size:var(--theme-caption-font-size);line-height:var(--theme-headline-line-height);text-align:left;white-space:nowrap}.adf-form-container-card .adf-form-mat-card-actions{float:right;padding-bottom:25px;padding-right:25px}.adf-form-container-card .adf-form-mat-card-actions .mat-mdc-button{height:36px;border-radius:5px}.adf-form-container-card .adf-form-mat-card-actions .mdc-button__label{width:58px;height:20px;opacity:.54;font-size:var(--theme-body-2-font-size);font-weight:700}form-field{width:100%}form-field .mat-mdc-input-element{font-size:var(--theme-body-2-font-size);padding-top:8px;line-height:normal}[dir=rtl] .adf-form-validation-button{left:50px;right:unset}\n"] }]
124
124
  }], ctorParameters: () => [], propDecorators: { processDefinitionId: [{
@@ -139,4 +139,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
139
139
  type: ViewChild,
140
140
  args: ['outcomesContainer']
141
141
  }] } });
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy9zcmMvbGliL2Zvcm0vc3RhcnQtZm9ybS9zdGFydC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzL3NyYy9saWIvZm9ybS9zdGFydC1mb3JtL3N0YXJ0LWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUNILFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBb0IsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7OztBQVV2RCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsYUFBYTtJQWtDakQ7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQWxDTCxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQVUvQyw0Q0FBNEM7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dkMsQ0FBQztJQUNMLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxPQUFnQjtRQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDOytHQXhIUSxrQkFBa0I7bUdBQWxCLGtCQUFrQixtZ0JDL0MvQiw0cERBaUNBLHduRURTYyxZQUFZLHlYQUFFLGVBQWUsMkZBQUUsZUFBZSwyTkFBRSxhQUFhLGtoQkFBRSxxQkFBcUIsd0hBQUUsYUFBYTs7NEZBS3BHLGtCQUFrQjtrQkFSOUIsU0FBUzsrQkFDSSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUscUJBQXFCLEVBQUUsYUFBYSxDQUFDLGlCQUcvRixpQkFBaUIsQ0FBQyxJQUFJO3dEQU9yQyxtQkFBbUI7c0JBRGxCLEtBQUs7Z0JBS04sU0FBUztzQkFEUixLQUFLO2dCQUtOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFLTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBS04sWUFBWTtzQkFEWCxLQUFLO2dCQUtOLFlBQVk7c0JBRFgsTUFBTTtnQkFLUCxrQkFBa0I7c0JBRGpCLE1BQU07Z0JBSVAsaUJBQWlCO3NCQURoQixTQUFTO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IENvbnRlbnRMaW5rTW9kZWwsIEZvcm1PdXRjb21lTW9kZWwsIEZvcm1SZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBQcm9jZXNzU2VydmljZSB9IGZyb20gJy4uLy4uL3Byb2Nlc3MtbGlzdC9zZXJ2aWNlcy9wcm9jZXNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdENhcmRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jYXJkJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtc3RhcnQtZm9ybScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0Q2FyZE1vZHVsZSwgRm9ybVJlbmRlcmVyQ29tcG9uZW50LCBNYXRJY29uTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc3RhcnQtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3RhcnQtZm9ybS5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgU3RhcnRGb3JtQ29tcG9uZW50IGV4dGVuZHMgRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0IHtcbiAgICBwdWJsaWMgcHJvY2Vzc1NlcnZpY2UgPSBpbmplY3QoUHJvY2Vzc1NlcnZpY2UpO1xuXG4gICAgLyoqIERlZmluaXRpb24gSUQgb2YgdGhlIHByb2Nlc3MgdG8gc3RhcnQsIHRoaXMgcGFyYW1ldGVyIGNhbiBub3QgYmUgdXNlIGluIGNvbWJpbmF0aW9uIHdpdGggcHJvY2Vzc0lkICovXG4gICAgQElucHV0KClcbiAgICBwcm9jZXNzRGVmaW5pdGlvbklkOiBzdHJpbmc7XG5cbiAgICAvKiogUHJvY2VzcyBJRCBvZiB0aGUgcHJvY2VzcyB0byBzdGFydCwgdGhpcyBwYXJhbWV0ZXIgY2FuIG5vdCBiZSB1c2UgaW4gY29tYmluYXRpb24gd2l0aCBwcm9jZXNzRGVmaW5pdGlvbklkICovXG4gICAgQElucHV0KClcbiAgICBwcm9jZXNzSWQ6IHN0cmluZztcblxuICAgIC8qKiBTaG91bGQgZm9ybSBvdXRjb21lIGJ1dHRvbnMgYmUgc2hvd24/ICovXG4gICAgQElucHV0KClcbiAgICBzaG93T3V0Y29tZUJ1dHRvbnM6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqIFNob3VsZCB0aGUgcmVmcmVzaCBidXR0b24gYmUgc2hvd24/ICovXG4gICAgQElucHV0KClcbiAgICBzaG93UmVmcmVzaEJ1dHRvbjogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKiogSXMgdGhlIGZvcm0gcmVhZC1vbmx5IChpZSwgY2FuJ3QgYmUgZWRpdGVkKT8gKi9cbiAgICBASW5wdXQoKVxuICAgIHJlYWRPbmx5Rm9ybTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgdXNlciBjbGlja3Mgb25lIG9mIHRoZSBvdXRjb21lIGJ1dHRvbnMgdGhhdCBjb21wbGV0ZXMgdGhlIGZvcm0uICovXG4gICAgQE91dHB1dCgpXG4gICAgb3V0Y29tZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIGEgZmllbGQgb2YgdGhlIGZvcm0gaXMgY2xpY2tlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtQ29udGVudENsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPENvbnRlbnRMaW5rTW9kZWw+KCk7XG5cbiAgICBAVmlld0NoaWxkKCdvdXRjb21lc0NvbnRhaW5lcicpXG4gICAgb3V0Y29tZXNDb250YWluZXI6IEVsZW1lbnRSZWYgPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2hvd1RpdGxlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBjb25zdCBwcm9jZXNzRGVmaW5pdGlvbklkID0gY2hhbmdlc1sncHJvY2Vzc0RlZmluaXRpb25JZCddO1xuICAgICAgICBpZiAocHJvY2Vzc0RlZmluaXRpb25JZD8uY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NEZWZpbml0aW9uSWQgPSBwcm9jZXNzRGVmaW5pdGlvbklkLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgIHRoaXMudmlzaWJpbGl0eVNlcnZpY2UuY2xlYW5Qcm9jZXNzVmFyaWFibGUoKTtcbiAgICAgICAgICAgIHRoaXMuZ2V0U3RhcnRGb3JtRGVmaW5pdGlvbih0aGlzLnByb2Nlc3NEZWZpbml0aW9uSWQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGF0YSA9IGNoYW5nZXNbJ2RhdGEnXTtcbiAgICAgICAgaWYgKGRhdGE/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5wYXJzZVJlZnJlc2hWaXNpYmlsaXR5VmFsaWRhdGVGb3JtKHRoaXMuZm9ybS5qc29uKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHByb2Nlc3NJZCA9IGNoYW5nZXNbJ3Byb2Nlc3NJZCddO1xuICAgICAgICBpZiAocHJvY2Vzc0lkPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudmlzaWJpbGl0eVNlcnZpY2UuY2xlYW5Qcm9jZXNzVmFyaWFibGUoKTtcbiAgICAgICAgICAgIHRoaXMubG9hZFN0YXJ0Rm9ybShwcm9jZXNzSWQuY3VycmVudFZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxvYWRTdGFydEZvcm0ocHJvY2Vzc0lkOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5wcm9jZXNzU2VydmljZS5nZXRQcm9jZXNzKHByb2Nlc3NJZCkuc3Vic2NyaWJlKChpbnN0YW5jZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzU2VydmljZS5nZXRTdGFydEZvcm1JbnN0YW5jZShwcm9jZXNzSWQpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAoZm9ybSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1OYW1lID0gZm9ybS5uYW1lO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5zdGFuY2UudmFyaWFibGVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtLnByb2Nlc3NWYXJpYWJsZXMgPSBpbnN0YW5jZS52YXJpYWJsZXM7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXJzZVJlZnJlc2hWaXNpYmlsaXR5VmFsaWRhdGVGb3JtKGZvcm0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKGVycm9yKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycm9yKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0U3RhcnRGb3JtRGVmaW5pdGlvbihwcm9jZXNzSWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnByb2Nlc3NTZXJ2aWNlLmdldFN0YXJ0Rm9ybURlZmluaXRpb24ocHJvY2Vzc0lkKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAoZm9ybSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybU5hbWUgPSBmb3JtLnByb2Nlc3NEZWZpbml0aW9uTmFtZTtcbiAgICAgICAgICAgICAgICB0aGlzLnBhcnNlUmVmcmVzaFZpc2liaWxpdHlWYWxpZGF0ZUZvcm0oZm9ybSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycm9yKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycm9yKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHBhcnNlUmVmcmVzaFZpc2liaWxpdHlWYWxpZGF0ZUZvcm0oZm9ybSkge1xuICAgICAgICB0aGlzLmZvcm0gPSB0aGlzLnBhcnNlRm9ybShmb3JtKTtcbiAgICAgICAgdGhpcy52aXNpYmlsaXR5U2VydmljZS5yZWZyZXNoVmlzaWJpbGl0eSh0aGlzLmZvcm0pO1xuICAgICAgICB0aGlzLmZvcm0udmFsaWRhdGVGb3JtKCk7XG4gICAgICAgIHRoaXMuZm9ybS5yZWFkT25seSA9IHRoaXMucmVhZE9ubHlGb3JtO1xuICAgICAgICB0aGlzLm9uRm9ybUxvYWRlZCh0aGlzLmZvcm0pO1xuICAgIH1cblxuICAgIGlzT3V0Y29tZUJ1dHRvblZpc2libGUob3V0Y29tZTogRm9ybU91dGNvbWVNb2RlbCwgaXNGb3JtUmVhZE9ubHk6IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICAgICAgaWYgKG91dGNvbWU/LmlzU3lzdGVtICYmIChvdXRjb21lLm5hbWUgPT09IEZvcm1PdXRjb21lTW9kZWwuU0FWRV9BQ1RJT04gfHwgb3V0Y29tZS5uYW1lID09PSBGb3JtT3V0Y29tZU1vZGVsLkNPTVBMRVRFX0FDVElPTikpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSBlbHNlIGlmIChvdXRjb21lPy5uYW1lID09PSBGb3JtT3V0Y29tZU1vZGVsLlNUQVJUX1BST0NFU1NfQUNUSU9OKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3VwZXIuaXNPdXRjb21lQnV0dG9uVmlzaWJsZShvdXRjb21lLCBpc0Zvcm1SZWFkT25seSk7XG4gICAgfVxuXG4gICAgc2F2ZVRhc2tGb3JtKCkge1xuICAgICAgICAvLyBkbyBub3RoaW5nXG4gICAgfVxuXG4gICAgb25SZWZyZXNoQ2xpY2tlZCgpIHtcbiAgICAgICAgaWYgKHRoaXMucHJvY2Vzc0RlZmluaXRpb25JZCkge1xuICAgICAgICAgICAgdGhpcy52aXNpYmlsaXR5U2VydmljZS5jbGVhblByb2Nlc3NWYXJpYWJsZSgpO1xuICAgICAgICAgICAgdGhpcy5nZXRTdGFydEZvcm1EZWZpbml0aW9uKHRoaXMucHJvY2Vzc0RlZmluaXRpb25JZCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5wcm9jZXNzSWQpIHtcbiAgICAgICAgICAgIHRoaXMudmlzaWJpbGl0eVNlcnZpY2UuY2xlYW5Qcm9jZXNzVmFyaWFibGUoKTtcbiAgICAgICAgICAgIHRoaXMubG9hZFN0YXJ0Rm9ybSh0aGlzLnByb2Nlc3NJZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wbGV0ZVRhc2tGb3JtKG91dGNvbWU/OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5vdXRjb21lQ2xpY2suZW1pdChvdXRjb21lKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYWRmLXN0YXJ0LWZvcm0tY29udGFpbmVyXCIgKm5nSWY9XCJoYXNGb3JtKClcIj5cbiAgICA8bWF0LWNhcmQgY2xhc3M9XCJhZGYtc3RhcnQtZm9ybS1jYXJkXCI+XG4gICAgICAgIDxtYXQtY2FyZC1oZWFkZXIgY2xhc3M9XCJhZGYtc3RhcnQtZm9ybS1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxtYXQtY2FyZC10aXRsZT5cbiAgICAgICAgICAgICAgICA8aDIgKm5nSWY9XCJpc1RpdGxlRW5hYmxlZCgpXCIgY2xhc3M9XCJtZGwtY2FyZF9fdGl0bGUtdGV4dFwiPnt7Zm9ybS50YXNrTmFtZX19PC9oMj5cbiAgICAgICAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XG4gICAgICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxuICAgICAgICA8bWF0LWNhcmQtY29udGVudCBjbGFzcz1cImFkZi1zdGFydC1mb3JtLWNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxhZGYtZm9ybS1yZW5kZXJlciBbZm9ybURlZmluaXRpb25dPVwiZm9ybVwiIC8+XG4gICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQgY2xhc3M9XCJhZGYtc3RhcnQtZm9ybS1hY3Rpb25zXCIgKm5nSWY9XCJzaG93T3V0Y29tZUJ1dHRvbnMgJiYgZm9ybS5oYXNPdXRjb21lcygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgI291dGNvbWVzQ29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2FkZi1mb3JtLWN1c3RvbS1idXR0b25dLCBbZm9ybS1jdXN0b20tYnV0dG9uXVwiIC8+XG5cbiAgICAgICAgICAgIDxidXR0b24gKm5nRm9yPVwibGV0IG91dGNvbWUgb2YgZm9ybS5vdXRjb21lc1wiXG4gICAgICAgICAgICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtc3RhcnQtZm9ybS1hY3Rpb25zLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCInYWRmLWZvcm0tJyArIG91dGNvbWUubmFtZSAgfCBsb3dlcmNhc2VcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWlzT3V0Y29tZUJ1dHRvbkVuYWJsZWQob3V0Y29tZSlcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MubWRsLWJ1dHRvbi0tY29sb3JlZF09XCIhb3V0Y29tZS5pc1N5c3RlbVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hZGYtZm9ybS1oaWRlLWJ1dHRvbl09XCIhaXNPdXRjb21lQnV0dG9uVmlzaWJsZShvdXRjb21lLCBmb3JtLnJlYWRPbmx5KVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk91dGNvbWVDbGlja2VkKG91dGNvbWUpXCI+XG4gICAgICAgICAgICAgICAge3sgb3V0Y29tZS5uYW1lIHwgdXBwZXJjYXNlIHwgdHJhbnNsYXRlIHwgdXBwZXJjYXNlIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgICA8bWF0LWNhcmQtYWN0aW9ucyAqbmdJZj1cInNob3dSZWZyZXNoQnV0dG9uXCI+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUmVmcmVzaENsaWNrZWQoKVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5yZWZyZXNoPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L21hdC1jYXJkLWFjdGlvbnM+XG4gICAgPC9tYXQtY2FyZD5cbjwvZGl2PlxuIl19
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy9zcmMvbGliL2Zvcm0vc3RhcnQtZm9ybS9zdGFydC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzL3NyYy9saWIvZm9ybS9zdGFydC1mb3JtL3N0YXJ0LWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUNILFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBb0IsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7OztBQVV2RCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsYUFBYTtJQWtDakQ7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQWxDTCxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQVUvQyw0Q0FBNEM7UUFFNUMsdUJBQWtCLEdBQVksSUFBSSxDQUFDO1FBRW5DLDBDQUEwQztRQUUxQyxzQkFBaUIsR0FBWSxJQUFJLENBQUM7UUFFbEMsbURBQW1EO1FBRW5ELGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRTlCLHVGQUF1RjtRQUV2RixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFdkMsbURBQW1EO1FBRW5ELHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO1FBRzFELHNCQUFpQixHQUFlLElBQUksQ0FBQztRQUlqQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDM0QsSUFBSSxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUMsWUFBWSxDQUFDO1lBQzVELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUN0RCxPQUFPO1FBQ1gsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QixJQUFJLElBQUksRUFBRSxZQUFZLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsa0NBQWtDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN4RCxPQUFPO1FBQ1gsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN2QyxJQUFJLFNBQVMsRUFBRSxZQUFZLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsaUJBQWlCLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUM5QyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMzQyxPQUFPO1FBQ1gsQ0FBQztJQUNMLENBQUM7SUFFRCxhQUFhLENBQUMsU0FBaUI7UUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDN0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQ3pELENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ0wsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUMxQixJQUFJLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztvQkFDckIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUM7Z0JBQy9DLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xELENBQUMsRUFDRCxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FDckMsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELHNCQUFzQixDQUFDLFNBQWlCO1FBQ3BDLElBQUksQ0FBQyxjQUFjLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxDQUMzRCxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ0wsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUM7WUFDM0MsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xELENBQUMsRUFDRCxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FDckMsQ0FBQztJQUNOLENBQUM7SUFFRCxrQ0FBa0MsQ0FBQyxJQUFJO1FBQ25DLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUN2QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsc0JBQXNCLENBQUMsT0FBeUIsRUFBRSxjQUF1QjtRQUNyRSxJQUFJLE9BQU8sRUFBRSxRQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLGdCQUFnQixDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDNUgsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQzthQUFNLElBQUksT0FBTyxFQUFFLElBQUksS0FBSyxnQkFBZ0IsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQ2pFLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELFlBQVk7UUFDUixhQUFhO0lBQ2pCLENBQUM7SUFFRCxnQkFBZ0I7UUFDWixJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMxRCxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDOUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkMsQ0FBQztJQUNMLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxPQUFnQjtRQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDOzhHQXhIUSxrQkFBa0I7a0dBQWxCLGtCQUFrQixtZ0JDL0MvQiw0cERBaUNBLHduRURTYyxZQUFZLHlYQUFFLGVBQWUsMkZBQUUsZUFBZSwyTkFBRSxhQUFhLGtoQkFBRSxxQkFBcUIsd0hBQUUsYUFBYTs7MkZBS3BHLGtCQUFrQjtrQkFSOUIsU0FBUzsrQkFDSSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUscUJBQXFCLEVBQUUsYUFBYSxDQUFDLGlCQUcvRixpQkFBaUIsQ0FBQyxJQUFJO3dEQU9yQyxtQkFBbUI7c0JBRGxCLEtBQUs7Z0JBS04sU0FBUztzQkFEUixLQUFLO2dCQUtOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFLTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBS04sWUFBWTtzQkFEWCxLQUFLO2dCQUtOLFlBQVk7c0JBRFgsTUFBTTtnQkFLUCxrQkFBa0I7c0JBRGpCLE1BQU07Z0JBSVAsaUJBQWlCO3NCQURoQixTQUFTO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IENvbnRlbnRMaW5rTW9kZWwsIEZvcm1PdXRjb21lTW9kZWwsIEZvcm1SZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBQcm9jZXNzU2VydmljZSB9IGZyb20gJy4uLy4uL3Byb2Nlc3MtbGlzdC9zZXJ2aWNlcy9wcm9jZXNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdENhcmRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jYXJkJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtc3RhcnQtZm9ybScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0Q2FyZE1vZHVsZSwgRm9ybVJlbmRlcmVyQ29tcG9uZW50LCBNYXRJY29uTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc3RhcnQtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3RhcnQtZm9ybS5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgU3RhcnRGb3JtQ29tcG9uZW50IGV4dGVuZHMgRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0IHtcbiAgICBwdWJsaWMgcHJvY2Vzc1NlcnZpY2UgPSBpbmplY3QoUHJvY2Vzc1NlcnZpY2UpO1xuXG4gICAgLyoqIERlZmluaXRpb24gSUQgb2YgdGhlIHByb2Nlc3MgdG8gc3RhcnQsIHRoaXMgcGFyYW1ldGVyIGNhbiBub3QgYmUgdXNlIGluIGNvbWJpbmF0aW9uIHdpdGggcHJvY2Vzc0lkICovXG4gICAgQElucHV0KClcbiAgICBwcm9jZXNzRGVmaW5pdGlvbklkOiBzdHJpbmc7XG5cbiAgICAvKiogUHJvY2VzcyBJRCBvZiB0aGUgcHJvY2VzcyB0byBzdGFydCwgdGhpcyBwYXJhbWV0ZXIgY2FuIG5vdCBiZSB1c2UgaW4gY29tYmluYXRpb24gd2l0aCBwcm9jZXNzRGVmaW5pdGlvbklkICovXG4gICAgQElucHV0KClcbiAgICBwcm9jZXNzSWQ6IHN0cmluZztcblxuICAgIC8qKiBTaG91bGQgZm9ybSBvdXRjb21lIGJ1dHRvbnMgYmUgc2hvd24/ICovXG4gICAgQElucHV0KClcbiAgICBzaG93T3V0Y29tZUJ1dHRvbnM6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqIFNob3VsZCB0aGUgcmVmcmVzaCBidXR0b24gYmUgc2hvd24/ICovXG4gICAgQElucHV0KClcbiAgICBzaG93UmVmcmVzaEJ1dHRvbjogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKiogSXMgdGhlIGZvcm0gcmVhZC1vbmx5IChpZSwgY2FuJ3QgYmUgZWRpdGVkKT8gKi9cbiAgICBASW5wdXQoKVxuICAgIHJlYWRPbmx5Rm9ybTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgdXNlciBjbGlja3Mgb25lIG9mIHRoZSBvdXRjb21lIGJ1dHRvbnMgdGhhdCBjb21wbGV0ZXMgdGhlIGZvcm0uICovXG4gICAgQE91dHB1dCgpXG4gICAgb3V0Y29tZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIGEgZmllbGQgb2YgdGhlIGZvcm0gaXMgY2xpY2tlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtQ29udGVudENsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPENvbnRlbnRMaW5rTW9kZWw+KCk7XG5cbiAgICBAVmlld0NoaWxkKCdvdXRjb21lc0NvbnRhaW5lcicpXG4gICAgb3V0Y29tZXNDb250YWluZXI6IEVsZW1lbnRSZWYgPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2hvd1RpdGxlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBjb25zdCBwcm9jZXNzRGVmaW5pdGlvbklkID0gY2hhbmdlc1sncHJvY2Vzc0RlZmluaXRpb25JZCddO1xuICAgICAgICBpZiAocHJvY2Vzc0RlZmluaXRpb25JZD8uY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NEZWZpbml0aW9uSWQgPSBwcm9jZXNzRGVmaW5pdGlvbklkLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgIHRoaXMudmlzaWJpbGl0eVNlcnZpY2UuY2xlYW5Qcm9jZXNzVmFyaWFibGUoKTtcbiAgICAgICAgICAgIHRoaXMuZ2V0U3RhcnRGb3JtRGVmaW5pdGlvbih0aGlzLnByb2Nlc3NEZWZpbml0aW9uSWQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGF0YSA9IGNoYW5nZXNbJ2RhdGEnXTtcbiAgICAgICAgaWYgKGRhdGE/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5wYXJzZVJlZnJlc2hWaXNpYmlsaXR5VmFsaWRhdGVGb3JtKHRoaXMuZm9ybS5qc29uKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHByb2Nlc3NJZCA9IGNoYW5nZXNbJ3Byb2Nlc3NJZCddO1xuICAgICAgICBpZiAocHJvY2Vzc0lkPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudmlzaWJpbGl0eVNlcnZpY2UuY2xlYW5Qcm9jZXNzVmFyaWFibGUoKTtcbiAgICAgICAgICAgIHRoaXMubG9hZFN0YXJ0Rm9ybShwcm9jZXNzSWQuY3VycmVudFZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxvYWRTdGFydEZvcm0ocHJvY2Vzc0lkOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5wcm9jZXNzU2VydmljZS5nZXRQcm9jZXNzKHByb2Nlc3NJZCkuc3Vic2NyaWJlKChpbnN0YW5jZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzU2VydmljZS5nZXRTdGFydEZvcm1JbnN0YW5jZShwcm9jZXNzSWQpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAoZm9ybSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1OYW1lID0gZm9ybS5uYW1lO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5zdGFuY2UudmFyaWFibGVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtLnByb2Nlc3NWYXJpYWJsZXMgPSBpbnN0YW5jZS52YXJpYWJsZXM7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXJzZVJlZnJlc2hWaXNpYmlsaXR5VmFsaWRhdGVGb3JtKGZvcm0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKGVycm9yKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycm9yKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0U3RhcnRGb3JtRGVmaW5pdGlvbihwcm9jZXNzSWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnByb2Nlc3NTZXJ2aWNlLmdldFN0YXJ0Rm9ybURlZmluaXRpb24ocHJvY2Vzc0lkKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAoZm9ybSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybU5hbWUgPSBmb3JtLnByb2Nlc3NEZWZpbml0aW9uTmFtZTtcbiAgICAgICAgICAgICAgICB0aGlzLnBhcnNlUmVmcmVzaFZpc2liaWxpdHlWYWxpZGF0ZUZvcm0oZm9ybSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycm9yKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycm9yKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHBhcnNlUmVmcmVzaFZpc2liaWxpdHlWYWxpZGF0ZUZvcm0oZm9ybSkge1xuICAgICAgICB0aGlzLmZvcm0gPSB0aGlzLnBhcnNlRm9ybShmb3JtKTtcbiAgICAgICAgdGhpcy52aXNpYmlsaXR5U2VydmljZS5yZWZyZXNoVmlzaWJpbGl0eSh0aGlzLmZvcm0pO1xuICAgICAgICB0aGlzLmZvcm0udmFsaWRhdGVGb3JtKCk7XG4gICAgICAgIHRoaXMuZm9ybS5yZWFkT25seSA9IHRoaXMucmVhZE9ubHlGb3JtO1xuICAgICAgICB0aGlzLm9uRm9ybUxvYWRlZCh0aGlzLmZvcm0pO1xuICAgIH1cblxuICAgIGlzT3V0Y29tZUJ1dHRvblZpc2libGUob3V0Y29tZTogRm9ybU91dGNvbWVNb2RlbCwgaXNGb3JtUmVhZE9ubHk6IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICAgICAgaWYgKG91dGNvbWU/LmlzU3lzdGVtICYmIChvdXRjb21lLm5hbWUgPT09IEZvcm1PdXRjb21lTW9kZWwuU0FWRV9BQ1RJT04gfHwgb3V0Y29tZS5uYW1lID09PSBGb3JtT3V0Y29tZU1vZGVsLkNPTVBMRVRFX0FDVElPTikpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSBlbHNlIGlmIChvdXRjb21lPy5uYW1lID09PSBGb3JtT3V0Y29tZU1vZGVsLlNUQVJUX1BST0NFU1NfQUNUSU9OKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3VwZXIuaXNPdXRjb21lQnV0dG9uVmlzaWJsZShvdXRjb21lLCBpc0Zvcm1SZWFkT25seSk7XG4gICAgfVxuXG4gICAgc2F2ZVRhc2tGb3JtKCkge1xuICAgICAgICAvLyBkbyBub3RoaW5nXG4gICAgfVxuXG4gICAgb25SZWZyZXNoQ2xpY2tlZCgpIHtcbiAgICAgICAgaWYgKHRoaXMucHJvY2Vzc0RlZmluaXRpb25JZCkge1xuICAgICAgICAgICAgdGhpcy52aXNpYmlsaXR5U2VydmljZS5jbGVhblByb2Nlc3NWYXJpYWJsZSgpO1xuICAgICAgICAgICAgdGhpcy5nZXRTdGFydEZvcm1EZWZpbml0aW9uKHRoaXMucHJvY2Vzc0RlZmluaXRpb25JZCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5wcm9jZXNzSWQpIHtcbiAgICAgICAgICAgIHRoaXMudmlzaWJpbGl0eVNlcnZpY2UuY2xlYW5Qcm9jZXNzVmFyaWFibGUoKTtcbiAgICAgICAgICAgIHRoaXMubG9hZFN0YXJ0Rm9ybSh0aGlzLnByb2Nlc3NJZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wbGV0ZVRhc2tGb3JtKG91dGNvbWU/OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5vdXRjb21lQ2xpY2suZW1pdChvdXRjb21lKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYWRmLXN0YXJ0LWZvcm0tY29udGFpbmVyXCIgKm5nSWY9XCJoYXNGb3JtKClcIj5cbiAgICA8bWF0LWNhcmQgY2xhc3M9XCJhZGYtc3RhcnQtZm9ybS1jYXJkXCI+XG4gICAgICAgIDxtYXQtY2FyZC1oZWFkZXIgY2xhc3M9XCJhZGYtc3RhcnQtZm9ybS1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxtYXQtY2FyZC10aXRsZT5cbiAgICAgICAgICAgICAgICA8aDIgKm5nSWY9XCJpc1RpdGxlRW5hYmxlZCgpXCIgY2xhc3M9XCJtZGwtY2FyZF9fdGl0bGUtdGV4dFwiPnt7Zm9ybS50YXNrTmFtZX19PC9oMj5cbiAgICAgICAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XG4gICAgICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxuICAgICAgICA8bWF0LWNhcmQtY29udGVudCBjbGFzcz1cImFkZi1zdGFydC1mb3JtLWNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxhZGYtZm9ybS1yZW5kZXJlciBbZm9ybURlZmluaXRpb25dPVwiZm9ybVwiIC8+XG4gICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQgY2xhc3M9XCJhZGYtc3RhcnQtZm9ybS1hY3Rpb25zXCIgKm5nSWY9XCJzaG93T3V0Y29tZUJ1dHRvbnMgJiYgZm9ybS5oYXNPdXRjb21lcygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgI291dGNvbWVzQ29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2FkZi1mb3JtLWN1c3RvbS1idXR0b25dLCBbZm9ybS1jdXN0b20tYnV0dG9uXVwiIC8+XG5cbiAgICAgICAgICAgIDxidXR0b24gKm5nRm9yPVwibGV0IG91dGNvbWUgb2YgZm9ybS5vdXRjb21lc1wiXG4gICAgICAgICAgICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtc3RhcnQtZm9ybS1hY3Rpb25zLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCInYWRmLWZvcm0tJyArIG91dGNvbWUubmFtZSAgfCBsb3dlcmNhc2VcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWlzT3V0Y29tZUJ1dHRvbkVuYWJsZWQob3V0Y29tZSlcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MubWRsLWJ1dHRvbi0tY29sb3JlZF09XCIhb3V0Y29tZS5pc1N5c3RlbVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hZGYtZm9ybS1oaWRlLWJ1dHRvbl09XCIhaXNPdXRjb21lQnV0dG9uVmlzaWJsZShvdXRjb21lLCBmb3JtLnJlYWRPbmx5KVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk91dGNvbWVDbGlja2VkKG91dGNvbWUpXCI+XG4gICAgICAgICAgICAgICAge3sgb3V0Y29tZS5uYW1lIHwgdXBwZXJjYXNlIHwgdHJhbnNsYXRlIHwgdXBwZXJjYXNlIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgICA8bWF0LWNhcmQtYWN0aW9ucyAqbmdJZj1cInNob3dSZWZyZXNoQnV0dG9uXCI+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUmVmcmVzaENsaWNrZWQoKVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5yZWZyZXNoPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L21hdC1jYXJkLWFjdGlvbnM+XG4gICAgPC9tYXQtY2FyZD5cbjwvZGl2PlxuIl19
@@ -88,8 +88,8 @@ export class AttachFileWidgetDialogComponent {
88
88
  }
89
89
  }
90
90
  }
91
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AttachFileWidgetDialogComponent, deps: [{ token: i1.TranslationService }, { token: MAT_DIALOG_DATA }, { token: i2.AlfrescoApiService }, { token: i1.AuthenticationService }, { token: i3.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
92
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AttachFileWidgetDialogComponent, isStandalone: true, selector: "adf-attach-file-widget-dialog", providers: [
91
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AttachFileWidgetDialogComponent, deps: [{ token: i1.TranslationService }, { token: MAT_DIALOG_DATA }, { token: i2.AlfrescoApiService }, { token: i1.AuthenticationService }, { token: i3.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
92
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AttachFileWidgetDialogComponent, isStandalone: true, selector: "adf-attach-file-widget-dialog", providers: [
93
93
  AuthenticationService,
94
94
  DocumentListService,
95
95
  SitesService,
@@ -97,7 +97,7 @@ export class AttachFileWidgetDialogComponent {
97
97
  { provide: AlfrescoApiService, useClass: ExternalAlfrescoApiService }
98
98
  ], viewQueries: [{ propertyName: "loginPanel", first: true, predicate: ["adfLoginPanel"], descendants: true }], ngImport: i0, template: "<header\n mat-dialog-title\n data-automation-id=\"content-node-selector-title\">\n <span *ngIf=\"isLoggedIn(); else loginTitle\">{{title}}</span>\n <ng-template #loginTitle>{{data.title}}</ng-template>\n</header>\n\n<mat-dialog-content class=\"adf-login-dialog-content\">\n <adf-login-dialog-panel id=\"attach-file-login-panel\" #adfLoginPanel *ngIf=\"!isLoggedIn()\" />\n <adf-content-node-selector-panel *ngIf=\"isLoggedIn()\"\n id=\"attach-file-content-node\"\n [currentFolderId]=\"data?.currentFolderId\"\n [isSelectionValid]=\"data?.isSelectionValid\"\n [showFilesInResult]=\"data?.showFilesInResult\"\n (select)=\"onSelect($event)\"\n (siteChange)=\"onSiteChange($event)\" />\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"adf-login-dialog-actions\" align=\"end\">\n <button\n mat-button\n (click)=\"close()\"\n data-automation-id=\"attach-file-dialog-actions-cancel\">{{ 'ATTACH-FILE.ACTIONS.CANCEL' | translate }}\n </button>\n\n <button *ngIf=\"!isLoggedIn()\"\n mat-button\n (click)=\"performLogin()\"\n data-automation-id=\"attach-file-dialog-actions-login\">{{ 'ATTACH-FILE.ACTIONS.LOGIN' | translate }}\n </button>\n\n <button *ngIf=\"isLoggedIn()\"\n mat-button\n [disabled]=\"!hasNodeSelected()\"\n class=\"adf-choose-action\"\n (click)=\"onClick()\"\n data-automation-id=\"attach-file-dialog-actions-choose\">{{ buttonActionName | translate }}\n </button>\n\n</mat-dialog-actions>\n", styles: [".adf-attach-file-widget-dialog .mat-mdc-dialog-actions{background-color:var(--theme-background-color);display:flex;justify-content:flex-end;color:var(--adf-theme-foreground-text-color)}.adf-attach-file-widget-dialog .mat-mdc-dialog-actions button{text-transform:uppercase;font-weight:400}.adf-attach-file-widget-dialog .mat-mdc-dialog-actions .adf-choose-action[disabled]{color:var(--adf-theme-foreground-secondary-text-color)}.adf-attach-file-widget-dialog .mat-mdc-dialog-actions .adf-choose-action:enabled{color:var(--theme-primary-color)}.adf-attach-file-widget-dialog .adf-login-dialog-actions{margin-left:-25px;margin-right:-25px;padding-right:25px}.mat-mdc-dialog-surface{overflow-x:hidden}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: LoginDialogPanelComponent, selector: "adf-login-dialog-panel", outputs: ["success"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "component", type: ContentNodeSelectorPanelComponent, selector: "adf-content-node-selector-panel", inputs: ["restrictRootToCurrentFolderId", "currentFolderId", "dropdownHideMyFiles", "dropdownSiteList", "where", "rowFilter", "excludeSiteContent", "imageResolver", "pageSize", "selectionMode", "isSelectionValid", "breadcrumbTransform", "showSearch", "showDropdownSiteList", "showFilesInResult", "showNodeCounter"], outputs: ["select", "navigationChange", "siteChange", "showingSearch", "currentFolder", "folderLoaded"] }], encapsulation: i0.ViewEncapsulation.None }); }
99
99
  }
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AttachFileWidgetDialogComponent, decorators: [{
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AttachFileWidgetDialogComponent, decorators: [{
101
101
  type: Component,
102
102
  args: [{ selector: 'adf-attach-file-widget-dialog', standalone: true, imports: [CommonModule, MatDialogModule, LoginDialogPanelComponent, MatButtonModule, TranslateModule, ContentNodeSelectorPanelComponent], encapsulation: ViewEncapsulation.None, providers: [
103
103
  AuthenticationService,
@@ -113,4 +113,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
113
113
  type: ViewChild,
114
114
  args: ['adfLoginPanel']
115
115
  }] } });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNoLWZpbGUtd2lkZ2V0LWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy9zcmMvbGliL2Zvcm0vd2lkZ2V0cy9jb250ZW50LXdpZGdldC9hdHRhY2gtZmlsZS13aWRnZXQtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzL3NyYy9saWIvZm9ybS93aWRnZXRzL2NvbnRlbnQtd2lkZ2V0L2F0dGFjaC1maWxlLXdpZGdldC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBVSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHlCQUF5QixFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFMUcsT0FBTyxFQUNILGtCQUFrQixFQUNsQixpQ0FBaUMsRUFDakMsbUJBQW1CLEVBQ25CLGFBQWEsRUFDYixZQUFZLEVBQ2YsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUUxRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUs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Y2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBpbmplY3QsIEluamVjdCwgT25Jbml0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ01vZHVsZSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSwgTG9naW5EaWFsb2dQYW5lbENvbXBvbmVudCwgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IEF0dGFjaEZpbGVXaWRnZXREaWFsb2dDb21wb25lbnREYXRhIH0gZnJvbSAnLi9hdHRhY2gtZmlsZS13aWRnZXQtZGlhbG9nLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgICBBbGZyZXNjb0FwaVNlcnZpY2UsXG4gICAgQ29udGVudE5vZGVTZWxlY3RvclBhbmVsQ29tcG9uZW50LFxuICAgIERvY3VtZW50TGlzdFNlcnZpY2UsXG4gICAgU2VhcmNoU2VydmljZSxcbiAgICBTaXRlc1NlcnZpY2Vcbn0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb250ZW50LXNlcnZpY2VzJztcbmltcG9ydCB7IEV4dGVybmFsQWxmcmVzY29BcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZXh0ZXJuYWwtYWxmcmVzY28tYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm9kZSB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtYXR0YWNoLWZpbGUtd2lkZ2V0LWRpYWxvZycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXREaWFsb2dNb2R1bGUsIExvZ2luRGlhbG9nUGFuZWxDb21wb25lbnQsIE1hdEJ1dHRvbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBDb250ZW50Tm9kZVNlbGVjdG9yUGFuZWxDb21wb25lbnRdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hdHRhY2gtZmlsZS13aWRnZXQtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9hdHRhY2gtZmlsZS13aWRnZXQtZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgQXV0aGVudGljYXRpb25TZXJ2aWNlLFxuICAgICAgICBEb2N1bWVudExpc3RTZXJ2aWNlLFxuICAgICAgICBTaXRlc1NlcnZpY2UsXG4gICAgICAgIFNlYXJjaFNlcnZpY2UsXG4gICAgICAgIHsgcHJvdmlkZTogQWxmcmVzY29BcGlTZXJ2aWNlLCB1c2VDbGFzczogRXh0ZXJuYWxBbGZyZXNjb0FwaVNlcnZpY2UgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgQXR0YWNoRmlsZVdpZGdldERpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQFZpZXdDaGlsZCgnYWRmTG9naW5QYW5lbCcpXG4gICAgbG9naW5QYW5lbDogTG9naW5EaWFsb2dQYW5lbENvbXBvbmVudDtcblxuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgYWN0aW9uOiBzdHJpbmc7XG4gICAgYnV0dG9uQWN0aW9uTmFtZTogc3RyaW5nO1xuICAgIGNob3Nlbk5vZGU6IE5vZGVbXTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0aW9uOiBUcmFuc2xhdGlvblNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogQXR0YWNoRmlsZVdpZGdldERpYWxvZ0NvbXBvbmVudERhdGEsXG4gICAgICAgIHByaXZhdGUgZXh0ZXJuYWxBcGlTZXJ2aWNlOiBBbGZyZXNjb0FwaVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYXV0aGVudGljYXRpb25TZXJ2aWNlOiBBdXRoZW50aWNhdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbWF0RGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8QXR0YWNoRmlsZVdpZGdldERpYWxvZ0NvbXBvbmVudD5cbiAgICApIHtcbiAgICAgICAgKGV4dGVybmFsQXBpU2VydmljZSBhcyBFeHRlcm5hbEFsZnJlc2NvQXBpU2VydmljZSkuaW5pdChkYXRhLmVjbUhvc3QsIGRhdGEuY29udGV4dCk7XG4gICAgICAgIHRoaXMuYWN0aW9uID0gZGF0YS5hY3Rpb25OYW1lID8gZGF0YS5hY3Rpb25OYW1lLnRvVXBwZXJDYXNlKCkgOiAnQ0hPT1NFJztcbiAgICAgICAgdGhpcy5idXR0b25BY3Rpb25OYW1lID0gYEFUVEFDSC1GSUxFLkFDVElPTlMuJHt0aGlzLmFjdGlvbn1gO1xuICAgICAgICB0aGlzLnVwZGF0ZVRpdGxlKCdEUk9QRE9XTi5NWV9GSUxFU19PUFRJT04nKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2Uub25Mb2dpbi5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZWdpc3RlckFuZENsb3NlKCkpO1xuXG4gICAgICAgIGlmICh0aGlzLmlzTG9nZ2VkSW4oKSkge1xuICAgICAgICAgICAgdGhpcy5yZWdpc3RlckFuZENsb3NlKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaXNMb2dnZWRJbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5leHRlcm5hbEFwaVNlcnZpY2UuZ2V0SW5zdGFuY2UoKT8uaXNMb2dnZWRJbigpO1xuICAgIH1cblxuICAgIHBlcmZvcm1Mb2dpbigpIHtcbiAgICAgICAgdGhpcy5sb2dpblBhbmVsLnN1Ym1pdEZvcm0oKTtcbiAgICB9XG5cbiAgICBjbG9zZSgpIHtcbiAgICAgICAgdGhpcy5kYXRhLnNlbGVjdGVkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgb25TZWxlY3Qobm9kZUxpc3Q6IE5vZGVbXSkge1xuICAgICAgICB0aGlzLmNob3Nlbk5vZGUgPSBub2RlTGlzdDtcbiAgICB9XG5cbiAgICBvblNpdGVDaGFuZ2Uoc2l0ZVRpdGxlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy51cGRhdGVUaXRsZShzaXRlVGl0bGUpO1xuICAgIH1cblxuICAgIG9uQ2xpY2soKSB7XG4gICAgICAgIHRoaXMuZGF0YS5zZWxlY3RlZC5uZXh0KHRoaXMuY2hvc2VuTm9kZSk7XG4gICAgICAgIHRoaXMuZGF0YS5zZWxlY3RlZC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHVwZGF0ZVRpdGxlKHNpdGVUaXRsZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLmFjdGlvbiA9PT0gJ0NIT09TRScgJiYgc2l0ZVRpdGxlKSB7XG4gICAgICAgICAgICB0aGlzLnRpdGxlID0gdGhpcy5nZXRUaXRsZVRyYW5zbGF0aW9uKHRoaXMuYWN0aW9uLCBzaXRlVGl0bGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0VGl0bGVUcmFuc2xhdGlvbihhY3Rpb246IHN0cmluZywgbmFtZT86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0aW9uLmluc3RhbnQoYEFUVEFDSC1GSUxFLkFDVElPTlMuJHthY3Rpb259X0lURU1gLCB7IG5hbWU6IHRoaXMudHJhbnNsYXRpb24uaW5zdGFudChuYW1lKSB9KTtcbiAgICB9XG5cbiAgICBoYXNOb2RlU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNob3Nlbk5vZGU/Lmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWdpc3RlckFuZENsb3NlKCkge1xuICAgICAgICBpZiAodGhpcy5kYXRhKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGEucmVnaXN0ZXJFeHRlcm5hbEhvc3Q/Lih0aGlzLmRhdGEuYWNjb3VudElkZW50aWZpZXIsIHRoaXMuZXh0ZXJuYWxBcGlTZXJ2aWNlKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuZGF0YS5sb2dpbk9ubHkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGEuc2VsZWN0ZWQ/LmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5tYXREaWFsb2dSZWYuY2xvc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxoZWFkZXJcbiAgICBtYXQtZGlhbG9nLXRpdGxlXG4gICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiY29udGVudC1ub2RlLXNlbGVjdG9yLXRpdGxlXCI+XG4gICAgPHNwYW4gKm5nSWY9XCJpc0xvZ2dlZEluKCk7IGVsc2UgbG9naW5UaXRsZVwiPnt7dGl0bGV9fTwvc3Bhbj5cbiAgICA8bmctdGVtcGxhdGUgI2xvZ2luVGl0bGU+e3tkYXRhLnRpdGxlfX08L25nLXRlbXBsYXRlPlxuPC9oZWFkZXI+XG5cbjxtYXQtZGlhbG9nLWNvbnRlbnQgY2xhc3M9XCJhZGYtbG9naW4tZGlhbG9nLWNvbnRlbnRcIj5cbiAgICA8YWRmLWxvZ2luLWRpYWxvZy1wYW5lbCBpZD1cImF0dGFjaC1maWxlLWxvZ2luLXBhbmVsXCIgI2FkZkxvZ2luUGFuZWwgKm5nSWY9XCIhaXNMb2dnZWRJbigpXCIgLz5cbiAgICA8YWRmLWNvbnRlbnQtbm9kZS1zZWxlY3Rvci1wYW5lbCAqbmdJZj1cImlzTG9nZ2VkSW4oKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJhdHRhY2gtZmlsZS1jb250ZW50LW5vZGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjdXJyZW50Rm9sZGVySWRdPVwiZGF0YT8uY3VycmVudEZvbGRlcklkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXNTZWxlY3Rpb25WYWxpZF09XCJkYXRhPy5pc1NlbGVjdGlvblZhbGlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd0ZpbGVzSW5SZXN1bHRdPVwiZGF0YT8uc2hvd0ZpbGVzSW5SZXN1bHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3QpPVwib25TZWxlY3QoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNpdGVDaGFuZ2UpPVwib25TaXRlQ2hhbmdlKCRldmVudClcIiAvPlxuPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG5cbjxtYXQtZGlhbG9nLWFjdGlvbnMgY2xhc3M9XCJhZGYtbG9naW4tZGlhbG9nLWFjdGlvbnNcIiBhbGlnbj1cImVuZFwiPlxuICAgIDxidXR0b25cbiAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAoY2xpY2spPVwiY2xvc2UoKVwiXG4gICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cImF0dGFjaC1maWxlLWRpYWxvZy1hY3Rpb25zLWNhbmNlbFwiPnt7ICdBVFRBQ0gtRklMRS5BQ1RJT05TLkNBTkNFTCcgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b24gKm5nSWY9XCIhaXNMb2dnZWRJbigpXCJcbiAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAoY2xpY2spPVwicGVyZm9ybUxvZ2luKClcIlxuICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJhdHRhY2gtZmlsZS1kaWFsb2ctYWN0aW9ucy1sb2dpblwiPnt7ICdBVFRBQ0gtRklMRS5BQ1RJT05TLkxPR0lOJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGJ1dHRvbiAqbmdJZj1cImlzTG9nZ2VkSW4oKVwiXG4gICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgW2Rpc2FibGVkXT1cIiFoYXNOb2RlU2VsZWN0ZWQoKVwiXG4gICAgICAgIGNsYXNzPVwiYWRmLWNob29zZS1hY3Rpb25cIlxuICAgICAgICAoY2xpY2spPVwib25DbGljaygpXCJcbiAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYXR0YWNoLWZpbGUtZGlhbG9nLWFjdGlvbnMtY2hvb3NlXCI+e3sgYnV0dG9uQWN0aW9uTmFtZSB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuXG48L21hdC1kaWFsb2ctYWN0aW9ucz5cbiJdfQ==
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNoLWZpbGUtd2lkZ2V0LWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy9zcmMvbGliL2Zvcm0vd2lkZ2V0cy9jb250ZW50LXdpZGdldC9hdHRhY2gtZmlsZS13aWRnZXQtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzL3NyYy9saWIvZm9ybS93aWRnZXRzL2NvbnRlbnQtd2lkZ2V0L2F0dGFjaC1maWxlLXdpZGdldC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBVSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHlCQUF5QixFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFMUcsT0FBTyxFQUNILGtCQUFrQixFQUNsQixpQ0FBaUMsRUFDakMsbUJBQW1CLEVBQ25CLGFBQWEsRUFDYixZQUFZLEVBQ2YsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUUxRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUs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Y2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBpbmplY3QsIEluamVjdCwgT25Jbml0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ01vZHVsZSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSwgTG9naW5EaWFsb2dQYW5lbENvbXBvbmVudCwgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IEF0dGFjaEZpbGVXaWRnZXREaWFsb2dDb21wb25lbnREYXRhIH0gZnJvbSAnLi9hdHRhY2gtZmlsZS13aWRnZXQtZGlhbG9nLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgICBBbGZyZXNjb0FwaVNlcnZpY2UsXG4gICAgQ29udGVudE5vZGVTZWxlY3RvclBhbmVsQ29tcG9uZW50LFxuICAgIERvY3VtZW50TGlzdFNlcnZpY2UsXG4gICAgU2VhcmNoU2VydmljZSxcbiAgICBTaXRlc1NlcnZpY2Vcbn0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb250ZW50LXNlcnZpY2VzJztcbmltcG9ydCB7IEV4dGVybmFsQWxmcmVzY29BcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZXh0ZXJuYWwtYWxmcmVzY28tYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm9kZSB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtYXR0YWNoLWZpbGUtd2lkZ2V0LWRpYWxvZycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXREaWFsb2dNb2R1bGUsIExvZ2luRGlhbG9nUGFuZWxDb21wb25lbnQsIE1hdEJ1dHRvbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBDb250ZW50Tm9kZVNlbGVjdG9yUGFuZWxDb21wb25lbnRdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hdHRhY2gtZmlsZS13aWRnZXQtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9hdHRhY2gtZmlsZS13aWRnZXQtZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgQXV0aGVudGljYXRpb25TZXJ2aWNlLFxuICAgICAgICBEb2N1bWVudExpc3RTZXJ2aWNlLFxuICAgICAgICBTaXRlc1NlcnZpY2UsXG4gICAgICAgIFNlYXJjaFNlcnZpY2UsXG4gICAgICAgIHsgcHJvdmlkZTogQWxmcmVzY29BcGlTZXJ2aWNlLCB1c2VDbGFzczogRXh0ZXJuYWxBbGZyZXNjb0FwaVNlcnZpY2UgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgQXR0YWNoRmlsZVdpZGdldERpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQFZpZXdDaGlsZCgnYWRmTG9naW5QYW5lbCcpXG4gICAgbG9naW5QYW5lbDogTG9naW5EaWFsb2dQYW5lbENvbXBvbmVudDtcblxuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgYWN0aW9uOiBzdHJpbmc7XG4gICAgYnV0dG9uQWN0aW9uTmFtZTogc3RyaW5nO1xuICAgIGNob3Nlbk5vZGU6IE5vZGVbXTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0aW9uOiBUcmFuc2xhdGlvblNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogQXR0YWNoRmlsZVdpZGdldERpYWxvZ0NvbXBvbmVudERhdGEsXG4gICAgICAgIHByaXZhdGUgZXh0ZXJuYWxBcGlTZXJ2aWNlOiBBbGZyZXNjb0FwaVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYXV0aGVudGljYXRpb25TZXJ2aWNlOiBBdXRoZW50aWNhdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbWF0RGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8QXR0YWNoRmlsZVdpZGdldERpYWxvZ0NvbXBvbmVudD5cbiAgICApIHtcbiAgICAgICAgKGV4dGVybmFsQXBpU2VydmljZSBhcyBFeHRlcm5hbEFsZnJlc2NvQXBpU2VydmljZSkuaW5pdChkYXRhLmVjbUhvc3QsIGRhdGEuY29udGV4dCk7XG4gICAgICAgIHRoaXMuYWN0aW9uID0gZGF0YS5hY3Rpb25OYW1lID8gZGF0YS5hY3Rpb25OYW1lLnRvVXBwZXJDYXNlKCkgOiAnQ0hPT1NFJztcbiAgICAgICAgdGhpcy5idXR0b25BY3Rpb25OYW1lID0gYEFUVEFDSC1GSUxFLkFDVElPTlMuJHt0aGlzLmFjdGlvbn1gO1xuICAgICAgICB0aGlzLnVwZGF0ZVRpdGxlKCdEUk9QRE9XTi5NWV9GSUxFU19PUFRJT04nKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2Uub25Mb2dpbi5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZWdpc3RlckFuZENsb3NlKCkpO1xuXG4gICAgICAgIGlmICh0aGlzLmlzTG9nZ2VkSW4oKSkge1xuICAgICAgICAgICAgdGhpcy5yZWdpc3RlckFuZENsb3NlKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaXNMb2dnZWRJbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5leHRlcm5hbEFwaVNlcnZpY2UuZ2V0SW5zdGFuY2UoKT8uaXNMb2dnZWRJbigpO1xuICAgIH1cblxuICAgIHBlcmZvcm1Mb2dpbigpIHtcbiAgICAgICAgdGhpcy5sb2dpblBhbmVsLnN1Ym1pdEZvcm0oKTtcbiAgICB9XG5cbiAgICBjbG9zZSgpIHtcbiAgICAgICAgdGhpcy5kYXRhLnNlbGVjdGVkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgb25TZWxlY3Qobm9kZUxpc3Q6IE5vZGVbXSkge1xuICAgICAgICB0aGlzLmNob3Nlbk5vZGUgPSBub2RlTGlzdDtcbiAgICB9XG5cbiAgICBvblNpdGVDaGFuZ2Uoc2l0ZVRpdGxlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy51cGRhdGVUaXRsZShzaXRlVGl0bGUpO1xuICAgIH1cblxuICAgIG9uQ2xpY2soKSB7XG4gICAgICAgIHRoaXMuZGF0YS5zZWxlY3RlZC5uZXh0KHRoaXMuY2hvc2VuTm9kZSk7XG4gICAgICAgIHRoaXMuZGF0YS5zZWxlY3RlZC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHVwZGF0ZVRpdGxlKHNpdGVUaXRsZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLmFjdGlvbiA9PT0gJ0NIT09TRScgJiYgc2l0ZVRpdGxlKSB7XG4gICAgICAgICAgICB0aGlzLnRpdGxlID0gdGhpcy5nZXRUaXRsZVRyYW5zbGF0aW9uKHRoaXMuYWN0aW9uLCBzaXRlVGl0bGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0VGl0bGVUcmFuc2xhdGlvbihhY3Rpb246IHN0cmluZywgbmFtZT86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0aW9uLmluc3RhbnQoYEFUVEFDSC1GSUxFLkFDVElPTlMuJHthY3Rpb259X0lURU1gLCB7IG5hbWU6IHRoaXMudHJhbnNsYXRpb24uaW5zdGFudChuYW1lKSB9KTtcbiAgICB9XG5cbiAgICBoYXNOb2RlU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNob3Nlbk5vZGU/Lmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWdpc3RlckFuZENsb3NlKCkge1xuICAgICAgICBpZiAodGhpcy5kYXRhKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGEucmVnaXN0ZXJFeHRlcm5hbEhvc3Q/Lih0aGlzLmRhdGEuYWNjb3VudElkZW50aWZpZXIsIHRoaXMuZXh0ZXJuYWxBcGlTZXJ2aWNlKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuZGF0YS5sb2dpbk9ubHkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGEuc2VsZWN0ZWQ/LmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5tYXREaWFsb2dSZWYuY2xvc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxoZWFkZXJcbiAgICBtYXQtZGlhbG9nLXRpdGxlXG4gICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiY29udGVudC1ub2RlLXNlbGVjdG9yLXRpdGxlXCI+XG4gICAgPHNwYW4gKm5nSWY9XCJpc0xvZ2dlZEluKCk7IGVsc2UgbG9naW5UaXRsZVwiPnt7dGl0bGV9fTwvc3Bhbj5cbiAgICA8bmctdGVtcGxhdGUgI2xvZ2luVGl0bGU+e3tkYXRhLnRpdGxlfX08L25nLXRlbXBsYXRlPlxuPC9oZWFkZXI+XG5cbjxtYXQtZGlhbG9nLWNvbnRlbnQgY2xhc3M9XCJhZGYtbG9naW4tZGlhbG9nLWNvbnRlbnRcIj5cbiAgICA8YWRmLWxvZ2luLWRpYWxvZy1wYW5lbCBpZD1cImF0dGFjaC1maWxlLWxvZ2luLXBhbmVsXCIgI2FkZkxvZ2luUGFuZWwgKm5nSWY9XCIhaXNMb2dnZWRJbigpXCIgLz5cbiAgICA8YWRmLWNvbnRlbnQtbm9kZS1zZWxlY3Rvci1wYW5lbCAqbmdJZj1cImlzTG9nZ2VkSW4oKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJhdHRhY2gtZmlsZS1jb250ZW50LW5vZGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjdXJyZW50Rm9sZGVySWRdPVwiZGF0YT8uY3VycmVudEZvbGRlcklkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXNTZWxlY3Rpb25WYWxpZF09XCJkYXRhPy5pc1NlbGVjdGlvblZhbGlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd0ZpbGVzSW5SZXN1bHRdPVwiZGF0YT8uc2hvd0ZpbGVzSW5SZXN1bHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3QpPVwib25TZWxlY3QoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNpdGVDaGFuZ2UpPVwib25TaXRlQ2hhbmdlKCRldmVudClcIiAvPlxuPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG5cbjxtYXQtZGlhbG9nLWFjdGlvbnMgY2xhc3M9XCJhZGYtbG9naW4tZGlhbG9nLWFjdGlvbnNcIiBhbGlnbj1cImVuZFwiPlxuICAgIDxidXR0b25cbiAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAoY2xpY2spPVwiY2xvc2UoKVwiXG4gICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cImF0dGFjaC1maWxlLWRpYWxvZy1hY3Rpb25zLWNhbmNlbFwiPnt7ICdBVFRBQ0gtRklMRS5BQ1RJT05TLkNBTkNFTCcgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b24gKm5nSWY9XCIhaXNMb2dnZWRJbigpXCJcbiAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAoY2xpY2spPVwicGVyZm9ybUxvZ2luKClcIlxuICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJhdHRhY2gtZmlsZS1kaWFsb2ctYWN0aW9ucy1sb2dpblwiPnt7ICdBVFRBQ0gtRklMRS5BQ1RJT05TLkxPR0lOJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGJ1dHRvbiAqbmdJZj1cImlzTG9nZ2VkSW4oKVwiXG4gICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgW2Rpc2FibGVkXT1cIiFoYXNOb2RlU2VsZWN0ZWQoKVwiXG4gICAgICAgIGNsYXNzPVwiYWRmLWNob29zZS1hY3Rpb25cIlxuICAgICAgICAoY2xpY2spPVwib25DbGljaygpXCJcbiAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYXR0YWNoLWZpbGUtZGlhbG9nLWFjdGlvbnMtY2hvb3NlXCI+e3sgYnV0dG9uQWN0aW9uTmFtZSB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuXG48L21hdC1kaWFsb2ctYWN0aW9ucz5cbiJdfQ==
@@ -86,10 +86,10 @@ export class AttachFileWidgetDialogService {
86
86
  getLoginTitleTranslation(ecmHost) {
87
87
  return this.translation.instant(`ATTACH-FILE.DIALOG.LOGIN`, { ecmHost });
88
88
  }
89
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AttachFileWidgetDialogService, deps: [{ token: i1.MatDialog }, { token: i2.TranslationService }], target: i0.ɵɵFactoryTarget.Injectable }); }
90
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AttachFileWidgetDialogService, providedIn: 'root' }); }
89
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AttachFileWidgetDialogService, deps: [{ token: i1.MatDialog }, { token: i2.TranslationService }], target: i0.ɵɵFactoryTarget.Injectable }); }
90
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AttachFileWidgetDialogService, providedIn: 'root' }); }
91
91
  }
92
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AttachFileWidgetDialogService, decorators: [{
92
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AttachFileWidgetDialogService, decorators: [{
93
93
  type: Injectable,
94
94
  args: [{
95
95
  providedIn: 'root'
@@ -97,4 +97,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
97
97
  }], ctorParameters: () => [{ type: i1.MatDialog }, { type: i2.TranslationService }], propDecorators: { error: [{
98
98
  type: Output
99
99
  }] } });
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNoLWZpbGUtd2lkZ2V0LWRpYWxvZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMvc3JjL2xpYi9mb3JtL3dpZGdldHMvY29udGVudC13aWRnZXQvYXR0YWNoLWZpbGUtd2lkZ2V0LWRpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtCQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9DLE9BQU8sRUFBd0MsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEYsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDeEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBSzNDLGtFQUFrRTtBQUNsRSxNQUFNLE9BQU8sNkJBQTZCO0lBT3RDLFlBQW9CLE1BQWlCLEVBQVUsV0FBK0I7UUFBMUQsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQU45RSxvQ0FBb0M7UUFFcEMsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFeEIsaUJBQVksR0FBMEMsRUFBRSxDQUFDO0lBRWdCLENBQUM7SUFFbEY7Ozs7Ozs7T0FPRztJQUNILFNBQVMsQ0FBQyxVQUEwQyxFQUFFLGVBQWUsR0FBRyxNQUFNLEVBQUUsaUJBQTBCO1FBQ3RHLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxvQkFBb0IsRUFBRSxH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T0FBTyxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNsRSxNQUFNLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBQ3ZDLFFBQVEsQ0FBQyxTQUFTLENBQUM7WUFDZixRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ2xDLENBQUMsQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRCxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxDQUFDO0lBQ2pGLENBQUM7SUFFTyx3QkFBd0IsQ0FBQyxPQUFlO1FBQzVDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsMEJBQTBCLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzdFLENBQUM7K0dBMUZRLDZCQUE2QjttSEFBN0IsNkJBQTZCLGNBSDFCLE1BQU07OzRGQUdULDZCQUE2QjtrQkFKekMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7K0dBS0csS0FBSztzQkFESixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBBbGZyZXNjb0FwaVNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvbnRlbnQtc2VydmljZXMnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEF0dGFjaEZpbGVXaWRnZXREaWFsb2dDb21wb25lbnREYXRhIH0gZnJvbSAnLi9hdHRhY2gtZmlsZS13aWRnZXQtZGlhbG9nLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQWxmcmVzY29FbmRwb2ludFJlcHJlc2VudGF0aW9uLCBOb2RlLCBDb250ZW50QXBpIH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBBdHRhY2hGaWxlV2lkZ2V0RGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9hdHRhY2gtZmlsZS13aWRnZXQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcbmV4cG9ydCBjbGFzcyBBdHRhY2hGaWxlV2lkZ2V0RGlhbG9nU2VydmljZSB7XG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhbiBlcnJvciBvY2N1cnMuICovXG4gICAgQE91dHB1dCgpXG4gICAgZXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIHByaXZhdGUgZXh0ZXJuYWxBcGlzOiB7IFtrZXk6IHN0cmluZ106IEFsZnJlc2NvQXBpU2VydmljZSB9ID0ge307XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLCBwcml2YXRlIHRyYW5zbGF0aW9uOiBUcmFuc2xhdGlvblNlcnZpY2UpIHt9XG5cbiAgICAvKipcbiAgICAgKiBPcGVucyBhIGRpYWxvZyB0byBjaG9vc2UgYSBmaWxlIHRvIHVwbG9hZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXBvc2l0b3J5IEFsZnJlc2NvIGVuZHBvaW50IHRoYXQgcmVwcmVzZW50cyB0aGUgY29udGVudCBzZXJ2aWNlXG4gICAgICogQHBhcmFtIGN1cnJlbnRGb2xkZXJJZCBVcGxvYWQgZmlsZSBmcm9tIHNwZWNpZmljIGZvbGRlclxuICAgICAqIEBwYXJhbSBhY2NvdW50SWRlbnRpZmllciBhY2NvdW50IGlkZW50aWZpZXJcbiAgICAgKiBAcmV0dXJucyBJbmZvcm1hdGlvbiBhYm91dCB0aGUgY2hvc2VuIGZpbGUocylcbiAgICAgKi9cbiAgICBvcGVuTG9naW4ocmVwb3NpdG9yeTogQWxmcmVzY29FbmRwb2ludFJlcHJlc2VudGF0aW9uLCBjdXJyZW50Rm9sZGVySWQgPSAnLW15LScsIGFjY291bnRJZGVudGlmaWVyPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxOb2RlW10+IHtcbiAgICAgICAgY29uc3QgeyB0aXRsZSwgZWNtSG9zdCwgc2VsZWN0ZWQsIHJlZ2lzdGVyRXh0ZXJuYWxIb3N0IH0gPSB0aGlzLmNvbnN0cnVjdFBheWxvYWQocmVwb3NpdG9yeSk7XG4gICAgICAgIGNvbnN0IGRhdGE6IEF0dGFjaEZpbGVXaWRnZXREaWFsb2dDb21wb25lbnREYXRhID0ge1xuICAgICAgICAgICAgdGl0bGUsXG4gICAgICAgICAgICBzZWxlY3RlZCxcbiAgICAgICAgICAgIGVjbUhvc3QsXG4gICAgICAgICAgICBjdXJyZW50Rm9sZGVySWQsXG4gICAgICAgICAgICBpc1NlbGVjdGlvblZhbGlkOiAoZW50cnk6IE5vZGUpID0+IGVudHJ5LmlzRmlsZSxcbiAgICAgICAgICAgIHNob3dGaWxlc0luUmVzdWx0OiB0cnVlLFxuICAgICAgICAgICAgcmVnaXN0ZXJFeHRlcm5hbEhvc3QsXG4gICAgICAgICAgICBhY2NvdW50SWRlbnRpZmllclxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMub3BlbkxvZ2luRGlhbG9nKGRhdGEsICdhZGYtYXR0YWNoLWZpbGUtd2lkZ2V0LWRpYWxvZycsICc2MzBweCcpO1xuICAgICAgICByZXR1cm4gc2VsZWN0ZWQ7XG4gICAgfVxuXG4gICAgZG93bmxvYWRVUkwocmVwb3NpdG9yeTogQWxmcmVzY29FbmRwb2ludFJlcHJlc2VudGF0aW9uLCBzb3VyY2VJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgY29uc3QgeyBhY2NvdW50SWRlbnRpZmllciB9ID0gdGhpcy5jb25zdHJ1Y3RQYXlsb2FkKHJlcG9zaXRvcnkpO1xuXG4gICAgICAgIGlmICh0aGlzLmV4dGVybmFsQXBpc1thY2NvdW50SWRlbnRpZmllcl0/LmdldEluc3RhbmNlKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRBcGkgPSBuZXcgQ29udGVudEFwaSh0aGlzLmV4dGVybmFsQXBpc1thY2NvdW50SWRlbnRpZmllcl0uZ2V0SW5zdGFuY2UoKSk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmV4dGVybmFsQXBpc1thY2NvdW50SWRlbnRpZmllcl0uZ2V0SW5zdGFuY2UoKS5pc0xvZ2dlZEluKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoY29udGVudEFwaS5nZXRDb250ZW50VXJsKHNvdXJjZUlkKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5zaG93RXh0ZXJuYWxIb3N0TG9naW5EaWFsb2cocmVwb3NpdG9yeSkucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGVudEFwaSA9IG5ldyBDb250ZW50QXBpKHRoaXMuZXh0ZXJuYWxBcGlzW2FjY291bnRJZGVudGlmaWVyXS5nZXRJbnN0YW5jZSgpKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoY29udGVudEFwaS5nZXRDb250ZW50VXJsKHNvdXJjZUlkKSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGFkZFNlcnZpY2UoYWNjb3VudElkZW50aWZpZXI6IHN0cmluZywgYXBpU2VydmljZTogQWxmcmVzY29BcGlTZXJ2aWNlKSB7XG4gICAgICAgIGlmICghdGhpcy5leHRlcm5hbEFwaXNbYWNjb3VudElkZW50aWZpZXJdKSB7XG4gICAgICAgICAgICB0aGlzLmV4dGVybmFsQXBpc1thY2NvdW50SWRlbnRpZmllcl0gPSBhcGlTZXJ2aWNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIENsb3NlcyB0aGUgY3VycmVudGx5IG9wZW4gZGlhbG9nLiAqL1xuICAgIGNsb3NlKCkge1xuICAgICAgICB0aGlzLmRpYWxvZy5jbG9zZUFsbCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb3BlbkxvZ2luRGlhbG9nKGRhdGE6IEF0dGFjaEZpbGVXaWRnZXREaWFsb2dDb21wb25lbnREYXRhLCBjdXJyZW50UGFuZWxDbGFzczogc3RyaW5nLCBjaG9zZW5XaWR0aDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nLm9wZW4oQXR0YWNoRmlsZVdpZGdldERpYWxvZ0NvbXBvbmVudCwgeyBkYXRhLCBwYW5lbENsYXNzOiBjdXJyZW50UGFuZWxDbGFzcywgd2lkdGg6IGNob3NlbldpZHRoIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2hvd0V4dGVybmFsSG9zdExvZ2luRGlhbG9nKHJlcG9zaXRvcnk6IEFsZnJlc2NvRW5kcG9pbnRSZXByZXNlbnRhdGlvbik6IE9ic2VydmFibGU8QWxmcmVzY29BcGlTZXJ2aWNlPiB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICAuLi50aGlzLmNvbnN0cnVjdFBheWxvYWQocmVwb3NpdG9yeSksXG4gICAgICAgICAgICBsb2dpbk9ubHk6IHRydWVcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlhbG9nLm9wZW4oQXR0YWNoRmlsZVdpZGdldERpYWxvZ0NvbXBvbmVudCwgeyBkYXRhLCBwYW5lbENsYXNzOiAnYWRmLWF0dGFjaC1maWxlLXdpZGdldC1kaWFsb2cnLCB3aWR0aDogJzYzMHB4JyB9KS5hZnRlckNsb3NlZCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29uc3RydWN0UGF5bG9hZChyZXBvc2l0b3J5OiBBbGZyZXNjb0VuZHBvaW50UmVwcmVzZW50YXRpb24pIHtcbiAgICAgICAgY29uc3QgYWNjb3VudElkZW50aWZpZXIgPSAnYWxmcmVzY28tJyArIHJlcG9zaXRvcnkuaWQgKyAnLScgKyByZXBvc2l0b3J5Lm5hbWU7XG4gICAgICAgIGNvbnN0IGVjbUhvc3QgPSByZXBvc2l0b3J5LnJlcG9zaXRvcnlVcmwucmVwbGFjZSgnL2FsZnJlc2NvJywgJycpO1xuICAgICAgICBjb25zdCBzZWxlY3RlZCA9IG5ldyBTdWJqZWN0PE5vZGVbXT4oKTtcbiAgICAgICAgc2VsZWN0ZWQuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIGNvbXBsZXRlOiB0aGlzLmNsb3NlLmJpbmQodGhpcylcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHRpdGxlID0gdGhpcy5nZXRMb2dpblRpdGxlVHJhbnNsYXRpb24oZWNtSG9zdCk7XG4gICAgICAgIGNvbnN0IHJlZ2lzdGVyRXh0ZXJuYWxIb3N0ID0gdGhpcy5hZGRTZXJ2aWNlLmJpbmQodGhpcyk7XG4gICAgICAgIHJldHVybiB7IGVjbUhvc3QsIGFjY291bnRJZGVudGlmaWVyLCBzZWxlY3RlZCwgdGl0bGUsIHJlZ2lzdGVyRXh0ZXJuYWxIb3N0IH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRMb2dpblRpdGxlVHJhbnNsYXRpb24oZWNtSG9zdDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRpb24uaW5zdGFudChgQVRUQUNILUZJTEUuRElBTE9HLkxPR0lOYCwgeyBlY21Ib3N0IH0pO1xuICAgIH1cbn1cbiJdfQ==
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNoLWZpbGUtd2lkZ2V0LWRpYWxvZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMvc3JjL2xpYi9mb3JtL3dpZGdldHMvY29udGVudC13aWRnZXQvYXR0YWNoLWZpbGUtd2lkZ2V0LWRpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtCQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9DLE9BQU8sRUFBd0MsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEYsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDeEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBSzNDLGtFQUFrRTtBQUNsRSxNQUFNLE9BQU8sNkJBQTZCO0lBT3RDLFlBQW9CLE1BQWlCLEVBQVUsV0FBK0I7UUFBMUQsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQU45RSxvQ0FBb0M7UUFFcEMsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFeEIsaUJBQVksR0FBMEMsRUFBRSxDQUFDO0lBRWdCLENBQUM7SUFFbEY7Ozs7Ozs7T0FPRztJQUNILFNBQVMsQ0FBQyxVQUEwQyxFQUFFLGVBQWUsR0FBRyxNQUFNLEVBQUUsaUJBQTBCO1FBQ3RHLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxvQkFBb0IsRUFBRSxH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T0FBTyxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNsRSxNQUFNLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBQ3ZDLFFBQVEsQ0FBQyxTQUFTLENBQUM7WUFDZixRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ2xDLENBQUMsQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRCxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxDQUFDO0lBQ2pGLENBQUM7SUFFTyx3QkFBd0IsQ0FBQyxPQUFlO1FBQzVDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsMEJBQTBCLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzdFLENBQUM7OEdBMUZRLDZCQUE2QjtrSEFBN0IsNkJBQTZCLGNBSDFCLE1BQU07OzJGQUdULDZCQUE2QjtrQkFKekMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7K0dBS0csS0FBSztzQkFESixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBBbGZyZXNjb0FwaVNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvbnRlbnQtc2VydmljZXMnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEF0dGFjaEZpbGVXaWRnZXREaWFsb2dDb21wb25lbnREYXRhIH0gZnJvbSAnLi9hdHRhY2gtZmlsZS13aWRnZXQtZGlhbG9nLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQWxmcmVzY29FbmRwb2ludFJlcHJlc2VudGF0aW9uLCBOb2RlLCBDb250ZW50QXBpIH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBBdHRhY2hGaWxlV2lkZ2V0RGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9hdHRhY2gtZmlsZS13aWRnZXQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcbmV4cG9ydCBjbGFzcyBBdHRhY2hGaWxlV2lkZ2V0RGlhbG9nU2VydmljZSB7XG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhbiBlcnJvciBvY2N1cnMuICovXG4gICAgQE91dHB1dCgpXG4gICAgZXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIHByaXZhdGUgZXh0ZXJuYWxBcGlzOiB7IFtrZXk6IHN0cmluZ106IEFsZnJlc2NvQXBpU2VydmljZSB9ID0ge307XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLCBwcml2YXRlIHRyYW5zbGF0aW9uOiBUcmFuc2xhdGlvblNlcnZpY2UpIHt9XG5cbiAgICAvKipcbiAgICAgKiBPcGVucyBhIGRpYWxvZyB0byBjaG9vc2UgYSBmaWxlIHRvIHVwbG9hZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXBvc2l0b3J5IEFsZnJlc2NvIGVuZHBvaW50IHRoYXQgcmVwcmVzZW50cyB0aGUgY29udGVudCBzZXJ2aWNlXG4gICAgICogQHBhcmFtIGN1cnJlbnRGb2xkZXJJZCBVcGxvYWQgZmlsZSBmcm9tIHNwZWNpZmljIGZvbGRlclxuICAgICAqIEBwYXJhbSBhY2NvdW50SWRlbnRpZmllciBhY2NvdW50IGlkZW50aWZpZXJcbiAgICAgKiBAcmV0dXJucyBJbmZvcm1hdGlvbiBhYm91dCB0aGUgY2hvc2VuIGZpbGUocylcbiAgICAgKi9cbiAgICBvcGVuTG9naW4ocmVwb3NpdG9yeTogQWxmcmVzY29FbmRwb2ludFJlcHJlc2VudGF0aW9uLCBjdXJyZW50Rm9sZGVySWQgPSAnLW15LScsIGFjY291bnRJZGVudGlmaWVyPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxOb2RlW10+IHtcbiAgICAgICAgY29uc3QgeyB0aXRsZSwgZWNtSG9zdCwgc2VsZWN0ZWQsIHJlZ2lzdGVyRXh0ZXJuYWxIb3N0IH0gPSB0aGlzLmNvbnN0cnVjdFBheWxvYWQocmVwb3NpdG9yeSk7XG4gICAgICAgIGNvbnN0IGRhdGE6IEF0dGFjaEZpbGVXaWRnZXREaWFsb2dDb21wb25lbnREYXRhID0ge1xuICAgICAgICAgICAgdGl0bGUsXG4gICAgICAgICAgICBzZWxlY3RlZCxcbiAgICAgICAgICAgIGVjbUhvc3QsXG4gICAgICAgICAgICBjdXJyZW50Rm9sZGVySWQsXG4gICAgICAgICAgICBpc1NlbGVjdGlvblZhbGlkOiAoZW50cnk6IE5vZGUpID0+IGVudHJ5LmlzRmlsZSxcbiAgICAgICAgICAgIHNob3dGaWxlc0luUmVzdWx0OiB0cnVlLFxuICAgICAgICAgICAgcmVnaXN0ZXJFeHRlcm5hbEhvc3QsXG4gICAgICAgICAgICBhY2NvdW50SWRlbnRpZmllclxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMub3BlbkxvZ2luRGlhbG9nKGRhdGEsICdhZGYtYXR0YWNoLWZpbGUtd2lkZ2V0LWRpYWxvZycsICc2MzBweCcpO1xuICAgICAgICByZXR1cm4gc2VsZWN0ZWQ7XG4gICAgfVxuXG4gICAgZG93bmxvYWRVUkwocmVwb3NpdG9yeTogQWxmcmVzY29FbmRwb2ludFJlcHJlc2VudGF0aW9uLCBzb3VyY2VJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgY29uc3QgeyBhY2NvdW50SWRlbnRpZmllciB9ID0gdGhpcy5jb25zdHJ1Y3RQYXlsb2FkKHJlcG9zaXRvcnkpO1xuXG4gICAgICAgIGlmICh0aGlzLmV4dGVybmFsQXBpc1thY2NvdW50SWRlbnRpZmllcl0/LmdldEluc3RhbmNlKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRBcGkgPSBuZXcgQ29udGVudEFwaSh0aGlzLmV4dGVybmFsQXBpc1thY2NvdW50SWRlbnRpZmllcl0uZ2V0SW5zdGFuY2UoKSk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmV4dGVybmFsQXBpc1thY2NvdW50SWRlbnRpZmllcl0uZ2V0SW5zdGFuY2UoKS5pc0xvZ2dlZEluKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoY29udGVudEFwaS5nZXRDb250ZW50VXJsKHNvdXJjZUlkKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5zaG93RXh0ZXJuYWxIb3N0TG9naW5EaWFsb2cocmVwb3NpdG9yeSkucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGVudEFwaSA9IG5ldyBDb250ZW50QXBpKHRoaXMuZXh0ZXJuYWxBcGlzW2FjY291bnRJZGVudGlmaWVyXS5nZXRJbnN0YW5jZSgpKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoY29udGVudEFwaS5nZXRDb250ZW50VXJsKHNvdXJjZUlkKSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGFkZFNlcnZpY2UoYWNjb3VudElkZW50aWZpZXI6IHN0cmluZywgYXBpU2VydmljZTogQWxmcmVzY29BcGlTZXJ2aWNlKSB7XG4gICAgICAgIGlmICghdGhpcy5leHRlcm5hbEFwaXNbYWNjb3VudElkZW50aWZpZXJdKSB7XG4gICAgICAgICAgICB0aGlzLmV4dGVybmFsQXBpc1thY2NvdW50SWRlbnRpZmllcl0gPSBhcGlTZXJ2aWNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIENsb3NlcyB0aGUgY3VycmVudGx5IG9wZW4gZGlhbG9nLiAqL1xuICAgIGNsb3NlKCkge1xuICAgICAgICB0aGlzLmRpYWxvZy5jbG9zZUFsbCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb3BlbkxvZ2luRGlhbG9nKGRhdGE6IEF0dGFjaEZpbGVXaWRnZXREaWFsb2dDb21wb25lbnREYXRhLCBjdXJyZW50UGFuZWxDbGFzczogc3RyaW5nLCBjaG9zZW5XaWR0aDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nLm9wZW4oQXR0YWNoRmlsZVdpZGdldERpYWxvZ0NvbXBvbmVudCwgeyBkYXRhLCBwYW5lbENsYXNzOiBjdXJyZW50UGFuZWxDbGFzcywgd2lkdGg6IGNob3NlbldpZHRoIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2hvd0V4dGVybmFsSG9zdExvZ2luRGlhbG9nKHJlcG9zaXRvcnk6IEFsZnJlc2NvRW5kcG9pbnRSZXByZXNlbnRhdGlvbik6IE9ic2VydmFibGU8QWxmcmVzY29BcGlTZXJ2aWNlPiB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICAuLi50aGlzLmNvbnN0cnVjdFBheWxvYWQocmVwb3NpdG9yeSksXG4gICAgICAgICAgICBsb2dpbk9ubHk6IHRydWVcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlhbG9nLm9wZW4oQXR0YWNoRmlsZVdpZGdldERpYWxvZ0NvbXBvbmVudCwgeyBkYXRhLCBwYW5lbENsYXNzOiAnYWRmLWF0dGFjaC1maWxlLXdpZGdldC1kaWFsb2cnLCB3aWR0aDogJzYzMHB4JyB9KS5hZnRlckNsb3NlZCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29uc3RydWN0UGF5bG9hZChyZXBvc2l0b3J5OiBBbGZyZXNjb0VuZHBvaW50UmVwcmVzZW50YXRpb24pIHtcbiAgICAgICAgY29uc3QgYWNjb3VudElkZW50aWZpZXIgPSAnYWxmcmVzY28tJyArIHJlcG9zaXRvcnkuaWQgKyAnLScgKyByZXBvc2l0b3J5Lm5hbWU7XG4gICAgICAgIGNvbnN0IGVjbUhvc3QgPSByZXBvc2l0b3J5LnJlcG9zaXRvcnlVcmwucmVwbGFjZSgnL2FsZnJlc2NvJywgJycpO1xuICAgICAgICBjb25zdCBzZWxlY3RlZCA9IG5ldyBTdWJqZWN0PE5vZGVbXT4oKTtcbiAgICAgICAgc2VsZWN0ZWQuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIGNvbXBsZXRlOiB0aGlzLmNsb3NlLmJpbmQodGhpcylcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHRpdGxlID0gdGhpcy5nZXRMb2dpblRpdGxlVHJhbnNsYXRpb24oZWNtSG9zdCk7XG4gICAgICAgIGNvbnN0IHJlZ2lzdGVyRXh0ZXJuYWxIb3N0ID0gdGhpcy5hZGRTZXJ2aWNlLmJpbmQodGhpcyk7XG4gICAgICAgIHJldHVybiB7IGVjbUhvc3QsIGFjY291bnRJZGVudGlmaWVyLCBzZWxlY3RlZCwgdGl0bGUsIHJlZ2lzdGVyRXh0ZXJuYWxIb3N0IH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRMb2dpblRpdGxlVHJhbnNsYXRpb24oZWNtSG9zdDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRpb24uaW5zdGFudChgQVRUQUNILUZJTEUuRElBTE9HLkxPR0lOYCwgeyBlY21Ib3N0IH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -235,10 +235,10 @@ export class AttachFileWidgetComponent extends UploadWidgetComponent {
235
235
  const result = urlToCheck.match('^(?:https?://)?(?:[^@/\n]+@)?(?:www\\.)?([^:/?\n]+)');
236
236
  return result[1];
237
237
  }
238
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AttachFileWidgetComponent, deps: [{ token: i1.FormService }, { token: i1.ThumbnailService }, { token: i2.ProcessContentService }, { token: i3.ActivitiContentService }, { token: i4.ContentService }, { token: i4.ContentNodeDialogService }, { token: i1.AppConfigService }, { token: i1.DownloadService }, { token: i5.Router }, { token: i5.ActivatedRoute }, { token: i6.AttachFileWidgetDialogService }], target: i0.ɵɵFactoryTarget.Component }); }
239
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AttachFileWidgetComponent, isStandalone: true, selector: "attach-widget", host: { listeners: { "click": "event($event)", "blur": "event($event)", "change": "event($event)", "focus": "event($event)", "focusin": "event($event)", "focusout": "event($event)", "input": "event($event)", "invalid": "event($event)", "select": "event($event)" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"adf-attach-widget {{ field.className }}\" [class.adf-readonly]=\"field.readOnly\">\n <label class=\"adf-label\" [attr.for]=\"field.id\"\n >{{ field.name | translate }}\n <span class=\"adf-asterisk\" [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span>\n </label>\n <div class=\"adf-attach-widget-container\">\n <div id=\"adf-attach-widget-simple-upload\" *ngIf=\"isSimpleUploadButton() && isUploadButtonVisible()\">\n <a mat-raised-button color=\"primary\">\n {{ 'FORM.FIELD.UPLOAD' | translate }}\n <mat-icon>file_upload</mat-icon>\n <input #uploadFiles [multiple]=\"multipleOption\" type=\"file\" [id]=\"field.id\" (change)=\"onAttachFileChanged($event)\" />\n </a>\n </div>\n <div class=\"adf-attach-widget__menu-upload\" (focusout)=\"markAsTouched()\" *ngIf=\"isUploadButtonVisible() && isMultipleSourceUpload()\">\n <button mat-raised-button color=\"primary\" [matMenuTriggerFor]=\"menu\" [id]=\"field.id\">\n <mat-icon>attach_file</mat-icon>\n {{ 'FORM.FIELD.UPLOAD' | translate }}\n </button>\n <mat-menu #menu=\"matMenu\" class=\"adf-attach-widget__menu-content\">\n <button mat-menu-item (click)=\"uploadFile.click()\" id=\"attach-local-file\" *ngIf=\"isAllFileSourceSelected()\">\n {{ 'FORM.FIELD.LOCALSTORAGE' | translate }}\n <mat-icon>file_upload</mat-icon>\n <input\n #uploadFile\n class=\"adf-attach-widget__input-type\"\n [multiple]=\"multipleOption\"\n type=\"file\"\n [id]=\"field.id\"\n (change)=\"onAttachFileChanged($event)\"\n />\n </button>\n <button\n mat-menu-item\n *ngIf=\"isDefinedSourceFolder()\"\n id=\"attach-{{ field.params?.fileSource?.name }}\"\n (click)=\"openSelectDialogFromFileSource()\"\n >\n <mat-icon>\n <adf-alfresco-icon />\n </mat-icon>\n {{ field.params?.fileSource?.name }}\n </button>\n <div *ngIf=\"!isDefinedSourceFolder()\">\n <button mat-menu-item *ngFor=\"let repo of repositoryList\" id=\"attach-{{ repo?.name }}\" (click)=\"openSelectDialog(repo)\">\n <mat-icon>\n <adf-alfresco-icon />\n </mat-icon>\n {{ repo.name }}\n </button>\n </div>\n </mat-menu>\n </div>\n </div>\n</div>\n\n<div data-automation-id=\"adf-attach-widget-readonly-list\">\n <mat-list *ngIf=\"hasFile\">\n <mat-list-item class=\"adf-attach-files-row\" *ngFor=\"let file of field.value; index as i\">\n <mat-icon matListItemIcon>\n <img class=\"adf-attach-widget__icon\"\n [id]=\"'file-'+file.id+'-icon'\"\n [src]=\"file.content ? getIcon(file.content.mimeType) : getIcon(file.mimeType)\"\n [alt]=\"mimeTypeIcon\"\n (click)=\"onAttachFileClicked(file)\"\n (keyup.enter)=\"onAttachFileClicked(file)\"\n [attr.aria-label]=\"file.name\"\n [tabindex]=\"i\"/>\n </mat-icon>\n\n <div matListItemLine class=\"adf-attach-widget__label\">\n <span id=\"{{'file-'+file.id}}\"\n (click)=\"onAttachFileClicked(file)\"\n [title]=\"file.name\"\n (keyup.enter)=\"onAttachFileClicked(file)\"\n [tabindex]=\"i\" class=\"adf-file\">\n {{file.name}}\n </span>\n <button id=\"{{'file-'+file.id+'-option-menu'}}\" mat-icon-button [matMenuTriggerFor]=\"fileActionMenu\"\n [attr.aria-label]=\"'ADF_PROCESS_LIST.DETAILS.BUTTON.FILE_OPTION_MENU' | translate\">\n <mat-icon>more_vert</mat-icon>\n </button>\n </div>\n <mat-menu #fileActionMenu=\"matMenu\" xPosition=\"before\">\n <button\n id=\"{{ 'file-' + file.id + '-show-file' }}\"\n [disabled]=\"file.isExternal || !file.mimeType || (!file.sourceId && (isStartProcessPage || !file.contentAvailable))\"\n mat-menu-item\n (click)=\"onAttachFileClicked(file)\"\n >\n <mat-icon>visibility</mat-icon>\n <span>{{ 'FORM.FIELD.VIEW_FILE' | translate }}</span>\n </button>\n <button\n id=\"{{ 'file-' + file.id + '-download-file' }}\"\n [disabled]=\"file.isExternal || !file.mimeType\"\n mat-menu-item\n (click)=\"downloadContent(file)\"\n >\n <mat-icon>file_download</mat-icon>\n <span>{{ 'FORM.FIELD.DOWNLOAD_FILE' | translate }}</span>\n </button>\n <button\n *ngIf=\"!field.readOnly\"\n mat-menu-item\n [id]=\"'file-' + file.id + '-remove'\"\n (click)=\"onRemoveAttachFile(file)\"\n (keyup.enter)=\"onRemoveAttachFile(file)\"\n >\n <mat-icon class=\"mat-24\">highlight_off</mat-icon>\n <span>{{ 'FORM.FIELD.REMOVE_FILE' | translate }}</span>\n </button>\n </mat-menu>\n </mat-list-item>\n </mat-list>\n</div>\n\n<error-widget [error]=\"field.validationSummary\" />\n<error-widget *ngIf=\"!field.isValid && isTouched() && !isSelected()\" required=\"{{ 'FORM.FIELD.REQUIRED' | translate }}\" />\n", styles: [".adf-attach-widget-container{margin-bottom:15px;display:flex;align-items:center}.adf-attach-widget-container input{cursor:pointer;height:100%;right:0;opacity:0;position:absolute;top:0;width:300px;z-index:4}.adf-attach-widget__input-type{width:.1px;height:.1px;opacity:0;overflow:hidden;position:absolute;z-index:-1}.adf-attach-widget{width:100%;word-break:break-all;padding:.4375em 0;border-top:.8438em solid transparent}.adf-attach-widget__icon{cursor:pointer}.adf-attach-widget__label{display:flex;align-items:center;cursor:pointer}.adf-attach-widget__label:hover{text-decoration:underline}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i10.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i10.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i11.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i11.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i11.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i12.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i12.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i12.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i12.MatListItemLine, selector: "[matListItemLine]" }, { kind: "component", type: ErrorWidgetComponent, selector: "error-widget", inputs: ["error", "required"] }, { kind: "component", type: AlfrescoIconComponent, selector: "adf-alfresco-icon" }], encapsulation: i0.ViewEncapsulation.None }); }
238
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AttachFileWidgetComponent, deps: [{ token: i1.FormService }, { token: i1.ThumbnailService }, { token: i2.ProcessContentService }, { token: i3.ActivitiContentService }, { token: i4.ContentService }, { token: i4.ContentNodeDialogService }, { token: i1.AppConfigService }, { token: i1.DownloadService }, { token: i5.Router }, { token: i5.ActivatedRoute }, { token: i6.AttachFileWidgetDialogService }], target: i0.ɵɵFactoryTarget.Component }); }
239
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AttachFileWidgetComponent, isStandalone: true, selector: "attach-widget", host: { listeners: { "click": "event($event)", "blur": "event($event)", "change": "event($event)", "focus": "event($event)", "focusin": "event($event)", "focusout": "event($event)", "input": "event($event)", "invalid": "event($event)", "select": "event($event)" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"adf-attach-widget {{ field.className }}\" [class.adf-readonly]=\"field.readOnly\">\n <label class=\"adf-label\" [attr.for]=\"field.id\"\n >{{ field.name | translate }}\n <span class=\"adf-asterisk\" [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span>\n </label>\n <div class=\"adf-attach-widget-container\">\n <div id=\"adf-attach-widget-simple-upload\" *ngIf=\"isSimpleUploadButton() && isUploadButtonVisible()\">\n <a mat-raised-button color=\"primary\">\n {{ 'FORM.FIELD.UPLOAD' | translate }}\n <mat-icon>file_upload</mat-icon>\n <input #uploadFiles [multiple]=\"multipleOption\" type=\"file\" [id]=\"field.id\" (change)=\"onAttachFileChanged($event)\" />\n </a>\n </div>\n <div class=\"adf-attach-widget__menu-upload\" (focusout)=\"markAsTouched()\" *ngIf=\"isUploadButtonVisible() && isMultipleSourceUpload()\">\n <button mat-raised-button color=\"primary\" [matMenuTriggerFor]=\"menu\" [id]=\"field.id\">\n <mat-icon>attach_file</mat-icon>\n {{ 'FORM.FIELD.UPLOAD' | translate }}\n </button>\n <mat-menu #menu=\"matMenu\" class=\"adf-attach-widget__menu-content\">\n <button mat-menu-item (click)=\"uploadFile.click()\" id=\"attach-local-file\" *ngIf=\"isAllFileSourceSelected()\">\n {{ 'FORM.FIELD.LOCALSTORAGE' | translate }}\n <mat-icon>file_upload</mat-icon>\n <input\n #uploadFile\n class=\"adf-attach-widget__input-type\"\n [multiple]=\"multipleOption\"\n type=\"file\"\n [id]=\"field.id\"\n (change)=\"onAttachFileChanged($event)\"\n />\n </button>\n <button\n mat-menu-item\n *ngIf=\"isDefinedSourceFolder()\"\n id=\"attach-{{ field.params?.fileSource?.name }}\"\n (click)=\"openSelectDialogFromFileSource()\"\n >\n <mat-icon>\n <adf-alfresco-icon />\n </mat-icon>\n {{ field.params?.fileSource?.name }}\n </button>\n <div *ngIf=\"!isDefinedSourceFolder()\">\n <button mat-menu-item *ngFor=\"let repo of repositoryList\" id=\"attach-{{ repo?.name }}\" (click)=\"openSelectDialog(repo)\">\n <mat-icon>\n <adf-alfresco-icon />\n </mat-icon>\n {{ repo.name }}\n </button>\n </div>\n </mat-menu>\n </div>\n </div>\n</div>\n\n<div data-automation-id=\"adf-attach-widget-readonly-list\">\n <mat-list *ngIf=\"hasFile\">\n <mat-list-item class=\"adf-attach-files-row\" *ngFor=\"let file of field.value; index as i\">\n <mat-icon matListItemIcon>\n <img class=\"adf-attach-widget__icon\"\n [id]=\"'file-'+file.id+'-icon'\"\n [src]=\"file.content ? getIcon(file.content.mimeType) : getIcon(file.mimeType)\"\n [alt]=\"mimeTypeIcon\"\n (click)=\"onAttachFileClicked(file)\"\n (keyup.enter)=\"onAttachFileClicked(file)\"\n [attr.aria-label]=\"file.name\"\n [tabindex]=\"i\"/>\n </mat-icon>\n\n <div matListItemLine class=\"adf-attach-widget__label\">\n <span id=\"{{'file-'+file.id}}\"\n (click)=\"onAttachFileClicked(file)\"\n [title]=\"file.name\"\n (keyup.enter)=\"onAttachFileClicked(file)\"\n [tabindex]=\"i\" class=\"adf-file\">\n {{file.name}}\n </span>\n <button id=\"{{'file-'+file.id+'-option-menu'}}\" mat-icon-button [matMenuTriggerFor]=\"fileActionMenu\"\n [attr.aria-label]=\"'ADF_PROCESS_LIST.DETAILS.BUTTON.FILE_OPTION_MENU' | translate\">\n <mat-icon>more_vert</mat-icon>\n </button>\n </div>\n <mat-menu #fileActionMenu=\"matMenu\" xPosition=\"before\">\n <button\n id=\"{{ 'file-' + file.id + '-show-file' }}\"\n [disabled]=\"file.isExternal || !file.mimeType || (!file.sourceId && (isStartProcessPage || !file.contentAvailable))\"\n mat-menu-item\n (click)=\"onAttachFileClicked(file)\"\n >\n <mat-icon>visibility</mat-icon>\n <span>{{ 'FORM.FIELD.VIEW_FILE' | translate }}</span>\n </button>\n <button\n id=\"{{ 'file-' + file.id + '-download-file' }}\"\n [disabled]=\"file.isExternal || !file.mimeType\"\n mat-menu-item\n (click)=\"downloadContent(file)\"\n >\n <mat-icon>file_download</mat-icon>\n <span>{{ 'FORM.FIELD.DOWNLOAD_FILE' | translate }}</span>\n </button>\n <button\n *ngIf=\"!field.readOnly\"\n mat-menu-item\n [id]=\"'file-' + file.id + '-remove'\"\n (click)=\"onRemoveAttachFile(file)\"\n (keyup.enter)=\"onRemoveAttachFile(file)\"\n >\n <mat-icon class=\"mat-24\">highlight_off</mat-icon>\n <span>{{ 'FORM.FIELD.REMOVE_FILE' | translate }}</span>\n </button>\n </mat-menu>\n </mat-list-item>\n </mat-list>\n</div>\n\n<error-widget [error]=\"field.validationSummary\" />\n<error-widget *ngIf=\"!field.isValid && isTouched() && !isSelected()\" required=\"{{ 'FORM.FIELD.REQUIRED' | translate }}\" />\n", styles: [".adf-attach-widget-container{margin-bottom:15px;display:flex;align-items:center}.adf-attach-widget-container input{cursor:pointer;height:100%;right:0;opacity:0;position:absolute;top:0;width:300px;z-index:4}.adf-attach-widget__input-type{width:.1px;height:.1px;opacity:0;overflow:hidden;position:absolute;z-index:-1}.adf-attach-widget{width:100%;word-break:break-all;padding:.4375em 0;border-top:.8438em solid transparent}.adf-attach-widget__icon{cursor:pointer}.adf-attach-widget__label{display:flex;align-items:center;cursor:pointer}.adf-attach-widget__label:hover{text-decoration:underline}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i10.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i10.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i11.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i11.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i11.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i12.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i12.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i12.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i12.MatListItemLine, selector: "[matListItemLine]" }, { kind: "component", type: ErrorWidgetComponent, selector: "error-widget", inputs: ["error", "required"] }, { kind: "component", type: AlfrescoIconComponent, selector: "adf-alfresco-icon" }], encapsulation: i0.ViewEncapsulation.None }); }
240
240
  }
241
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AttachFileWidgetComponent, decorators: [{
241
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AttachFileWidgetComponent, decorators: [{
242
242
  type: Component,
243
243
  args: [{ selector: 'attach-widget', standalone: true, imports: [
244
244
  CommonModule,
@@ -261,4 +261,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
261
261
  '(select)': 'event($event)'
262
262
  }, encapsulation: ViewEncapsulation.None, template: "<div class=\"adf-attach-widget {{ field.className }}\" [class.adf-readonly]=\"field.readOnly\">\n <label class=\"adf-label\" [attr.for]=\"field.id\"\n >{{ field.name | translate }}\n <span class=\"adf-asterisk\" [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span>\n </label>\n <div class=\"adf-attach-widget-container\">\n <div id=\"adf-attach-widget-simple-upload\" *ngIf=\"isSimpleUploadButton() && isUploadButtonVisible()\">\n <a mat-raised-button color=\"primary\">\n {{ 'FORM.FIELD.UPLOAD' | translate }}\n <mat-icon>file_upload</mat-icon>\n <input #uploadFiles [multiple]=\"multipleOption\" type=\"file\" [id]=\"field.id\" (change)=\"onAttachFileChanged($event)\" />\n </a>\n </div>\n <div class=\"adf-attach-widget__menu-upload\" (focusout)=\"markAsTouched()\" *ngIf=\"isUploadButtonVisible() && isMultipleSourceUpload()\">\n <button mat-raised-button color=\"primary\" [matMenuTriggerFor]=\"menu\" [id]=\"field.id\">\n <mat-icon>attach_file</mat-icon>\n {{ 'FORM.FIELD.UPLOAD' | translate }}\n </button>\n <mat-menu #menu=\"matMenu\" class=\"adf-attach-widget__menu-content\">\n <button mat-menu-item (click)=\"uploadFile.click()\" id=\"attach-local-file\" *ngIf=\"isAllFileSourceSelected()\">\n {{ 'FORM.FIELD.LOCALSTORAGE' | translate }}\n <mat-icon>file_upload</mat-icon>\n <input\n #uploadFile\n class=\"adf-attach-widget__input-type\"\n [multiple]=\"multipleOption\"\n type=\"file\"\n [id]=\"field.id\"\n (change)=\"onAttachFileChanged($event)\"\n />\n </button>\n <button\n mat-menu-item\n *ngIf=\"isDefinedSourceFolder()\"\n id=\"attach-{{ field.params?.fileSource?.name }}\"\n (click)=\"openSelectDialogFromFileSource()\"\n >\n <mat-icon>\n <adf-alfresco-icon />\n </mat-icon>\n {{ field.params?.fileSource?.name }}\n </button>\n <div *ngIf=\"!isDefinedSourceFolder()\">\n <button mat-menu-item *ngFor=\"let repo of repositoryList\" id=\"attach-{{ repo?.name }}\" (click)=\"openSelectDialog(repo)\">\n <mat-icon>\n <adf-alfresco-icon />\n </mat-icon>\n {{ repo.name }}\n </button>\n </div>\n </mat-menu>\n </div>\n </div>\n</div>\n\n<div data-automation-id=\"adf-attach-widget-readonly-list\">\n <mat-list *ngIf=\"hasFile\">\n <mat-list-item class=\"adf-attach-files-row\" *ngFor=\"let file of field.value; index as i\">\n <mat-icon matListItemIcon>\n <img class=\"adf-attach-widget__icon\"\n [id]=\"'file-'+file.id+'-icon'\"\n [src]=\"file.content ? getIcon(file.content.mimeType) : getIcon(file.mimeType)\"\n [alt]=\"mimeTypeIcon\"\n (click)=\"onAttachFileClicked(file)\"\n (keyup.enter)=\"onAttachFileClicked(file)\"\n [attr.aria-label]=\"file.name\"\n [tabindex]=\"i\"/>\n </mat-icon>\n\n <div matListItemLine class=\"adf-attach-widget__label\">\n <span id=\"{{'file-'+file.id}}\"\n (click)=\"onAttachFileClicked(file)\"\n [title]=\"file.name\"\n (keyup.enter)=\"onAttachFileClicked(file)\"\n [tabindex]=\"i\" class=\"adf-file\">\n {{file.name}}\n </span>\n <button id=\"{{'file-'+file.id+'-option-menu'}}\" mat-icon-button [matMenuTriggerFor]=\"fileActionMenu\"\n [attr.aria-label]=\"'ADF_PROCESS_LIST.DETAILS.BUTTON.FILE_OPTION_MENU' | translate\">\n <mat-icon>more_vert</mat-icon>\n </button>\n </div>\n <mat-menu #fileActionMenu=\"matMenu\" xPosition=\"before\">\n <button\n id=\"{{ 'file-' + file.id + '-show-file' }}\"\n [disabled]=\"file.isExternal || !file.mimeType || (!file.sourceId && (isStartProcessPage || !file.contentAvailable))\"\n mat-menu-item\n (click)=\"onAttachFileClicked(file)\"\n >\n <mat-icon>visibility</mat-icon>\n <span>{{ 'FORM.FIELD.VIEW_FILE' | translate }}</span>\n </button>\n <button\n id=\"{{ 'file-' + file.id + '-download-file' }}\"\n [disabled]=\"file.isExternal || !file.mimeType\"\n mat-menu-item\n (click)=\"downloadContent(file)\"\n >\n <mat-icon>file_download</mat-icon>\n <span>{{ 'FORM.FIELD.DOWNLOAD_FILE' | translate }}</span>\n </button>\n <button\n *ngIf=\"!field.readOnly\"\n mat-menu-item\n [id]=\"'file-' + file.id + '-remove'\"\n (click)=\"onRemoveAttachFile(file)\"\n (keyup.enter)=\"onRemoveAttachFile(file)\"\n >\n <mat-icon class=\"mat-24\">highlight_off</mat-icon>\n <span>{{ 'FORM.FIELD.REMOVE_FILE' | translate }}</span>\n </button>\n </mat-menu>\n </mat-list-item>\n </mat-list>\n</div>\n\n<error-widget [error]=\"field.validationSummary\" />\n<error-widget *ngIf=\"!field.isValid && isTouched() && !isSelected()\" required=\"{{ 'FORM.FIELD.REQUIRED' | translate }}\" />\n", styles: [".adf-attach-widget-container{margin-bottom:15px;display:flex;align-items:center}.adf-attach-widget-container input{cursor:pointer;height:100%;right:0;opacity:0;position:absolute;top:0;width:300px;z-index:4}.adf-attach-widget__input-type{width:.1px;height:.1px;opacity:0;overflow:hidden;position:absolute;z-index:-1}.adf-attach-widget{width:100%;word-break:break-all;padding:.4375em 0;border-top:.8438em solid transparent}.adf-attach-widget__icon{cursor:pointer}.adf-attach-widget__label{display:flex;align-items:center;cursor:pointer}.adf-attach-widget__label:hover{text-decoration:underline}\n"] }]
263
263
  }], ctorParameters: () => [{ type: i1.FormService }, { type: i1.ThumbnailService }, { type: i2.ProcessContentService }, { type: i3.ActivitiContentService }, { type: i4.ContentService }, { type: i4.ContentNodeDialogService }, { type: i1.AppConfigService }, { type: i1.DownloadService }, { type: i5.Router }, { type: i5.ActivatedRoute }, { type: i6.AttachFileWidgetDialogService }] });
264
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNoLWZpbGUtd2lkZ2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzL3NyYy9saWIvZm9ybS93aWRnZXRzL2NvbnRlbnQtd2lkZ2V0L2F0dGFjaC1maWxlLXdpZGdldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy9zcmMvbGliL2Zvcm0vd2lkZ2V0cy9jb250ZW50LXdpZGdldC9hdHRhY2gtZmlsZS13aWRnZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsdURBQXVEO0FBRXZELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0ksT0FBTyxFQUFFLHFCQUFxQixFQUFFLHdCQUF3QixFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRWpILE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMENBQTBD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QVMsRUFBRSxlQUFlO3dCQUMxQixXQUFXLEVBQUUsZUFBZTt3QkFDNUIsWUFBWSxFQUFFLGVBQWU7d0JBQzdCLFNBQVMsRUFBRSxlQUFlO3dCQUMxQixXQUFXLEVBQUUsZUFBZTt3QkFDNUIsVUFBVSxFQUFFLGVBQWU7cUJBQzlCLGlCQUNjLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IgKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBpbmplY3QsIGlzRGV2TW9kZSwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSwgQXBwQ29uZmlnVmFsdWVzLCBEb3dubG9hZFNlcnZpY2UsIEVycm9yV2lkZ2V0Q29tcG9uZW50LCBGb3JtU2VydmljZSwgVGh1bWJuYWlsU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBBbGZyZXNjb0ljb25Db21wb25lbnQsIENvbnRlbnROb2RlRGlhbG9nU2VydmljZSwgQ29udGVudFNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvbnRlbnQtc2VydmljZXMnO1xuaW1wb3J0IHsgQWxmcmVzY29FbmRwb2ludFJlcHJlc2VudGF0aW9uLCBOb2RlLCBOb2RlQ2hpbGRBc3NvY2lhdGlvbiwgUmVsYXRlZENvbnRlbnRSZXByZXNlbnRhdGlvbiB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgZnJvbSwgb2YsIHppcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWVyZ2VNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBdHRhY2hGaWxlV2lkZ2V0RGlhbG9nU2VydmljZSB9IGZyb20gJy4vYXR0YWNoLWZpbGUtd2lkZ2V0LWRpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IFVwbG9hZFdpZGdldENvbXBvbmVudCB9IGZyb20gJy4uL3VwbG9hZC91cGxvYWQud2lkZ2V0JztcbmltcG9ydCB7IFByb2Nlc3NDb250ZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Byb2Nlc3MtY29udGVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEFjdGl2aXRpQ29udGVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hY3Rpdml0aS1hbGZyZXNjby5zZXJ2aWNlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhdHRhY2gtd2lkZ2V0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgICAgIE1hdEljb25Nb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgTWF0TWVudU1vZHVsZSxcbiAgICAgICAgTWF0TGlzdE1vZHVsZSxcbiAgICAgICAgRXJyb3JXaWRnZXRDb21wb25lbnQsXG4gICAgICAgIEFsZnJlc2NvSWNvbkNvbXBvbmVudFxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2F0dGFjaC1maWxlLXdpZGdldC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYXR0YWNoLWZpbGUtd2lkZ2V0LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaG9zdDoge1xuICAgICAgICAnKGNsaWNrKSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhibHVyKSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhjaGFuZ2UpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGZvY3VzKSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhmb2N1c2luKSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhmb2N1c291dCknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoaW5wdXQpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGludmFsaWQpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKHNlbGVjdCknOiAnZXZlbnQoJGV2ZW50KSdcbiAgICB9LFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQXR0YWNoRmlsZVdpZGdldENvbXBvbmVudCBleHRlbmRzIFVwbG9hZFdpZGdldENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgdHlwZUlkID0gJ0F0dGFjaEZpbGVXaWRnZXRDb21wb25lbnQnO1xuICAgIHJlcG9zaXRvcnlMaXN0OiBBbGZyZXNjb0VuZHBvaW50UmVwcmVzZW50YXRpb25bXSA9IFtdO1xuICAgIGlzU3RhcnRQcm9jZXNzUGFnZSA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSB0ZW1wRmlsZXNMaXN0ID0gW107XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGZvcm1TZXJ2aWNlOiBGb3JtU2VydmljZSxcbiAgICAgICAgcHVibGljIHRodW1ibmFpbHM6IFRodW1ibmFpbFNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBwcm9jZXNzQ29udGVudFNlcnZpY2U6IFByb2Nlc3NDb250ZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBhY3Rpdml0aUNvbnRlbnRTZXJ2aWNlOiBBY3Rpdml0aUNvbnRlbnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNvbnRlbnRTZXJ2aWNlOiBDb250ZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjb250ZW50RGlhbG9nOiBDb250ZW50Tm9kZURpYWxvZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYXBwQ29uZmlnU2VydmljZTogQXBwQ29uZmlnU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkb3dubG9hZFNlcnZpY2U6IERvd25sb2FkU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgYXR0YWNoRGlhbG9nU2VydmljZTogQXR0YWNoRmlsZVdpZGdldERpYWxvZ1NlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoZm9ybVNlcnZpY2UsIHRodW1ibmFpbHMsIHByb2Nlc3NDb250ZW50U2VydmljZSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuaXNTdGFydFByb2Nlc3NQYWdlID0gdGhpcy5yb3V0ZXIudXJsLnNwbGl0KCc/JylbMF0uaW5jbHVkZXMoJ3N0YXJ0LXByb2Nlc3MnKTtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5maWVsZC52YWx1ZSkgJiYgdGhpcy5pc0ZpbGVTb3VyY2VDb25maWd1cmVkKCkpIHtcbiAgICAgICAgICAgIHRoaXMudGVtcEZpbGVzTGlzdC5wdXNoKC4uLnRoaXMuZmllbGQudmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hY3Rpdml0aUNvbnRlbnRTZXJ2aWNlLmdldEFsZnJlc2NvUmVwb3NpdG9yaWVzKCkuc3Vic2NyaWJlKChyZXBvTGlzdCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZXBvc2l0b3J5TGlzdCA9IHJlcG9MaXN0O1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmZvcm1TZXJ2aWNlLnRhc2tTYXZlZC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKGZvcm1TYXZlZCkgPT4ge1xuICAgICAgICAgICAgaWYgKGZvcm1TYXZlZC5mb3JtLmlkID09PSB0aGlzLmZpZWxkLmZvcm0uaWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRlbXBGaWxlc0xpc3QgPSBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaXNGaWxlU291cmNlQ29uZmlndXJlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5maWVsZC5wYXJhbXM/LmZpbGVTb3VyY2U7XG4gICAgfVxuXG4gICAgaXNNdWx0aXBsZVNvdXJjZVVwbG9hZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmZpZWxkLnJlYWRPbmx5ICYmIHRoaXMuaXNGaWxlU291cmNlQ29uZmlndXJlZCgpICYmICF0aGlzLmlzT25seUxvY2FsU291cmNlU2VsZWN0ZWQoKTtcbiAgICB9XG5cbiAgICBpc0FsbEZpbGVTb3VyY2VTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQucGFyYW1zPy5maWxlU291cmNlPy5zZXJ2aWNlSWQgPT09ICdhbGwtZmlsZS1zb3VyY2VzJyAmJiAhdGhpcy5maWVsZC5wYXJhbXMubGluaztcbiAgICB9XG5cbiAgICBpc09ubHlMb2NhbFNvdXJjZVNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWVsZC5wYXJhbXM/LmZpbGVTb3VyY2U/LnNlcnZpY2VJZCA9PT0gJ2xvY2FsLWZpbGUnO1xuICAgIH1cblxuICAgIGlzU2ltcGxlVXBsb2FkQnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKHRoaXMuaXNVcGxvYWRCdXR0b25WaXNpYmxlKCkgJiYgIXRoaXMuaXNGaWxlU291cmNlQ29uZmlndXJlZCgpKSB8fCB0aGlzLmlzT25seUxvY2FsU291cmNlU2VsZWN0ZWQoKTtcbiAgICB9XG5cbiAgICBpc1VwbG9hZEJ1dHRvblZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoIXRoaXMuaGFzRmlsZSB8fCB0aGlzLm11bHRpcGxlT3B0aW9uKSAmJiAhdGhpcy5maWVsZC5yZWFkT25seTtcbiAgICB9XG5cbiAgICBpc0RlZmluZWRTb3VyY2VGb2xkZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuZmllbGQucGFyYW1zPy5maWxlU291cmNlPy5zZWxlY3RlZEZvbGRlcjtcbiAgICB9XG5cbiAgICBpc1RlbXBvcmFyeUZpbGUoZmlsZTogeyBuYW1lPzogc3RyaW5nIH0pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGVtcEZpbGVzTGlzdC5maW5kSW5kZXgoKGVsZW0pID0+IGVsZW0ubmFtZSA9PT0gZmlsZS5uYW1lKSA+PSAwO1xuICAgIH1cblxuICAgIGdldE5vZGVGcm9tVGVtcEZpbGUoZmlsZTogeyBuYW1lPzogc3RyaW5nIH0pOiBOb2RlQ2hpbGRBc3NvY2lhdGlvbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRlbXBGaWxlc0xpc3QuZmluZCgoZWxlbSkgPT4gZWxlbS5uYW1lID09PSBmaWxlLm5hbWUpO1xuICAgIH1cblxuICAgIG9wZW5TZWxlY3REaWFsb2dGcm9tRmlsZVNvdXJjZSgpIHtcbiAgICAgICAgY29uc3QgcGFyYW1zID0gdGhpcy5maWVsZC5wYXJhbXM7XG4gICAgICAgIGNvbnN0IHJlcG9zaXRvcnkgPSB0aGlzLnJlcG9zaXRvcnlMaXN0LmZpbmQoKHJlcG8pID0+IHJlcG8ubmFtZSA9PT0gcGFyYW1zPy5maWxlU291cmNlPy5uYW1lKTtcbiAgICAgICAgaWYgKHJlcG9zaXRvcnkgJiYgdGhpcy5pc0V4dGVybmFsSG9zdChyZXBvc2l0b3J5KSkge1xuICAgICAgICAgICAgdGhpcy51cGxvYWRGaWxlRnJvbUV4dGVybmFsQ1MocmVwb3NpdG9yeSwgcGFyYW1zPy5maWxlU291cmNlPy5zZWxlY3RlZEZvbGRlcj8ucGF0aElkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudERpYWxvZy5vcGVuRmlsZUJyb3dzZURpYWxvZ0J5Rm9sZGVySWQocGFyYW1zLmZpbGVTb3VyY2Uuc2VsZWN0ZWRGb2xkZXIucGF0aElkKS5zdWJzY3JpYmUoKHNlbGVjdGlvbnM6IE5vZGVbXSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudGVtcEZpbGVzTGlzdC5wdXNoKC4uLnNlbGVjdGlvbnMpO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlTm9kZXNQYXJhbXMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZEZpbGVGcm9tQ1MoXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGQucGFyYW1zLmZpbGVTb3VyY2Uuc2VsZWN0ZWRGb2xkZXIuYWNjb3VudElkLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLnBhcmFtcy5maWxlU291cmNlLnNlbGVjdGVkRm9sZGVyLnNpdGVJZFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQXR0YWNoRmlsZUNoYW5nZWQoZXZlbnQ6IGFueSkge1xuICAgICAgICB0aGlzLnRlbXBGaWxlc0xpc3QucHVzaCguLi5BcnJheS5mcm9tKGV2ZW50LnRhcmdldC5maWxlcykpO1xuICAgICAgICB0aGlzLm9uRmlsZUNoYW5nZWQoZXZlbnQpO1xuICAgIH1cblxuICAgIG9uUmVtb3ZlQXR0YWNoRmlsZShmaWxlOiBGaWxlIHwgUmVsYXRlZENvbnRlbnRSZXByZXNlbnRhdGlvbikge1xuICAgICAgICBpZiAodGhpcy5pc1RlbXBvcmFyeUZpbGUoZmlsZSkpIHtcbiAgICAgICAgICAgIHRoaXMudGVtcEZpbGVzTGlzdC5zcGxpY2UodGhpcy50ZW1wRmlsZXNMaXN0LmluZGV4T2YoKGZpbGUgYXMgUmVsYXRlZENvbnRlbnRSZXByZXNlbnRhdGlvbikuY29udGVudEJsb2IpLCAxKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTm9kZXNQYXJhbXMoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbW92ZUZpbGUoZmlsZSk7XG4gICAgfVxuXG4gICAgb25BdHRhY2hGaWxlQ2xpY2tlZChmaWxlOiBhbnkpIHtcbiAgICAgICAgaWYgKGZpbGUuaXNFeHRlcm5hbCB8fCAoIWZpbGUuc291cmNlSWQgJiYgKHRoaXMuaXNTdGFydFByb2Nlc3NQYWdlIHx8ICFmaWxlLmNvbnRlbnRBdmFpbGFibGUpKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlzVGVtcG9yYXJ5RmlsZShmaWxlKSkge1xuICAgICAgICAgICAgdGhpcy5mb3JtU2VydmljZS5mb3JtQ29udGVudENsaWNrZWQubmV4dChmaWxlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZmlsZUNsaWNrZWQoZmlsZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkb3dubG9hZENvbnRlbnQoZmlsZTogYW55IHwgUmVsYXRlZENvbnRlbnRSZXByZXNlbnRhdGlvbik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc1RlbXBvcmFyeUZpbGUoZmlsZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVCbG9iID0gKGZpbGUgYXMgUmVsYXRlZENvbnRlbnRSZXByZXNlbnRhdGlvbikuY29udGVudEJsb2I7XG4gICAgICAgICAgICBpZiAoZmlsZUJsb2IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRvd25sb2FkU2VydmljZS5kb3dubG9hZEJsb2IoZmlsZUJsb2IsIGZpbGUubmFtZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5vZGVVcGxvYWRlZDogTm9kZUNoaWxkQXNzb2NpYXRpb24gPSB0aGlzLmdldE5vZGVGcm9tVGVtcEZpbGUoZmlsZSk7XG4gICAgICAgICAgICAgICAgY29uc3Qgbm9kZVVybCA9IHRoaXMuY29udGVudFNlcnZpY2UuZ2V0Q29udGVudFVybChub2RlVXBsb2FkZWQuaWQpO1xuICAgICAgICAgICAgICAgIHRoaXMuZG93bmxvYWRTZXJ2aWNlLmRvd25sb2FkVXJsKG5vZGVVcmwsIGZpbGUubmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpbGUuc291cmNlSWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHNvdXJjZUhvc3QgPSB0aGlzLmZpbmRTb3VyY2UoZmlsZS5zb3VyY2UpO1xuICAgICAgICAgICAgaWYgKHNvdXJjZUhvc3QgJiYgdGhpcy5pc0V4dGVybmFsSG9zdChzb3VyY2VIb3N0KSkge1xuICAgICAgICAgICAgICAgIHRoaXMuYXR0YWNoRGlhbG9nU2VydmljZS5kb3dubG9hZFVSTChzb3VyY2VIb3N0LCBmaWxlLnNvdXJjZUlkKS5zdWJzY3JpYmUoKG5vZGVVcmwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kb3dubG9hZFNlcnZpY2UuZG93bmxvYWRVcmwobm9kZVVybCwgZmlsZS5uYW1lKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgbm9kZVVybCA9IHRoaXMuY29udGVudFNlcnZpY2UuZ2V0Q29udGVudFVybChmaWxlLnNvdXJjZUlkKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRvd25sb2FkU2VydmljZS5kb3dubG9hZFVybChub2RlVXJsLCBmaWxlLm5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzQ29udGVudFNlcnZpY2UuZ2V0RmlsZVJhd0NvbnRlbnQoZmlsZS5pZCkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIChibG9iOiBCbG9iKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZG93bmxvYWRTZXJ2aWNlLmRvd25sb2FkQmxvYihibG9iLCBmaWxlLm5hbWUpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKCkgPT4ge31cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvcGVuU2VsZWN0RGlhbG9nKHJlcG9zaXRvcnk6IEFsZnJlc2NvRW5kcG9pbnRSZXByZXNlbnRhdGlvbikge1xuICAgICAgICBpZiAodGhpcy5pc0V4dGVybmFsSG9zdChyZXBvc2l0b3J5KSAmJiAhaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgIHRoaXMudXBsb2FkRmlsZUZyb21FeHRlcm5hbENTKHJlcG9zaXRvcnkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50RGlhbG9nLm9wZW5GaWxlQnJvd3NlRGlhbG9nQnlEZWZhdWx0TG9jYXRpb24oKS5zdWJzY3JpYmUoKHNlbGVjdGlvbnM6IE5vZGVbXSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRlbXBGaWxlc0xpc3QucHVzaCguLi5zZWxlY3Rpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVOb2Rlc1BhcmFtcygpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZEZpbGVGcm9tQ1Moc2VsZWN0aW9ucywgYGFsZnJlc2NvLSR7cmVwb3NpdG9yeS5pZH0tJHtyZXBvc2l0b3J5Lm5hbWV9QWxmcmVzY29gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc0ZpbGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0V4dGVybmFsSG9zdChyZXBvc2l0b3J5OiBBbGZyZXNjb0VuZHBvaW50UmVwcmVzZW50YXRpb24pOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgY3VycmVudEVDTUhvc3QgPSB0aGlzLmdldERvbWFpbkhvc3QodGhpcy5hcHBDb25maWdTZXJ2aWNlLmdldChBcHBDb25maWdWYWx1ZXMuRUNNSE9TVCkpO1xuICAgICAgICBjb25zdCBjaG9zZW5SZXBvc2l0b3J5SG9zdCA9IHRoaXMuZ2V0RG9tYWluSG9zdChyZXBvc2l0b3J5LnJlcG9zaXRvcnlVcmwpO1xuICAgICAgICByZXR1cm4gY2hvc2VuUmVwb3NpdG9yeUhvc3QgIT09IGN1cnJlbnRFQ01Ib3N0O1xuICAgIH1cblxuICAgIHByaXZhdGUgZmluZFNvdXJjZShzb3VyY2VJZGVudGlmaWVyOiBzdHJpbmcpOiBBbGZyZXNjb0VuZHBvaW50UmVwcmVzZW50YXRpb24ge1xuICAgICAgICByZXR1cm4gdGhpcy5yZXBvc2l0b3J5TGlzdC5maW5kKChyZXBvc2l0b3J5KSA9PiBzb3VyY2VJZGVudGlmaWVyID09PSBgYWxmcmVzY28tJHtyZXBvc2l0b3J5LmlkfS0ke3JlcG9zaXRvcnkubmFtZX1gKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwbG9hZEZpbGVGcm9tRXh0ZXJuYWxDUyhyZXBvc2l0b3J5OiBBbGZyZXNjb0VuZHBvaW50UmVwcmVzZW50YXRpb24sIGN1cnJlbnRGb2xkZXJJZD86IHN0cmluZykge1xuICAgICAgICBjb25zdCBhY2NvdW50SWRlbnRpZmllciA9IGBhbGZyZXNjby0ke3JlcG9zaXRvcnkuaWR9LSR7cmVwb3NpdG9yeS5uYW1lfUFsZnJlc2NvYDtcbiAgICAgICAgdGhpcy5hdHRhY2hEaWFsb2dTZXJ2aWNlLm9wZW5Mb2dpbihyZXBvc2l0b3J5LCBjdXJyZW50Rm9sZGVySWQsIGFjY291bnRJZGVudGlmaWVyKS5zdWJzY3JpYmUoKHNlbGVjdGlvbnMpID0+IHtcbiAgICAgICAgICAgIHNlbGVjdGlvbnMuZm9yRWFjaCgobm9kZSkgPT4gKG5vZGVbJ2lzRXh0ZXJuYWwnXSA9IHRydWUpKTtcbiAgICAgICAgICAgIHRoaXMudGVtcEZpbGVzTGlzdC5wdXNoKC4uLnNlbGVjdGlvbnMpO1xuICAgICAgICAgICAgdGhpcy51cGxvYWRGaWxlRnJvbUNTKHNlbGVjdGlvbnMsIGFjY291bnRJZGVudGlmaWVyKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGxvYWRGaWxlRnJvbUNTKGZpbGVOb2RlTGlzdDogTm9kZVtdLCBhY2NvdW50SWQ6IHN0cmluZywgc2l0ZUlkPzogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IGZpbGVzU2F2ZWQgPSBbXTtcblxuICAgICAgICBmaWxlTm9kZUxpc3QuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICAgICAgbm9kZS5pc0xpbmsgPSB0aGlzLmZpZWxkLnBhcmFtcy5saW5rO1xuICAgICAgICB9KTtcblxuICAgICAgICBmcm9tKGZpbGVOb2RlTGlzdClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1lcmdlTWFwKChub2RlKSA9PlxuICAgICAgICAgICAgICAgICAgICB6aXAob2Yobm9kZT8uY29udGVudD8ubWltZVR5cGUpLCB0aGlzLmFjdGl2aXRpQ29udGVudFNlcnZpY2UuYXBwbHlBbGZyZXNjb05vZGUobm9kZSwgc2l0ZUlkLCBhY2NvdW50SWQpLCBvZihub2RlWydpc0V4dGVybmFsJ10pKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgKFttaW1lVHlwZSwgcmVzLCBpc0V4dGVybmFsXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXMubWltZVR5cGUgPSBtaW1lVHlwZTtcbiAgICAgICAgICAgICAgICAgICAgcmVzWydpc0V4dGVybmFsJ10gPSBpc0V4dGVybmFsO1xuICAgICAgICAgICAgICAgICAgICBmaWxlc1NhdmVkLnB1c2gocmVzKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICgpID0+IHt9LFxuICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNGaWxlcyA9IHRoaXMuZmllbGQudmFsdWUgPyB0aGlzLmZpZWxkLnZhbHVlIDogW107XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGQudmFsdWUgPSBbLi4ucHJldmlvdXNGaWxlcywgLi4uZmlsZXNTYXZlZF07XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGQuanNvbi52YWx1ZSA9IFsuLi5wcmV2aW91c0ZpbGVzLCAuLi5maWxlc1NhdmVkXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYXNGaWxlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlTm9kZXNQYXJhbXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7XG4gICAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLmFjdGl2YXRlZFJvdXRlLFxuICAgICAgICAgICAgcXVlcnlQYXJhbXM6IHsgbm9kZXM6IHRoaXMudGVtcEZpbGVzTGlzdC5tYXAoKGZpbGUpID0+IGZpbGUuaWQpLmpvaW4oJywnKSB9LFxuICAgICAgICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJ1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERvbWFpbkhvc3QodXJsVG9DaGVjazogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdXJsVG9DaGVjay5tYXRjaCgnXig/Omh0dHBzPzovLyk/KD86W15AL1xcbl0rQCk/KD86d3d3XFxcXC4pPyhbXjovP1xcbl0rKScpO1xuICAgICAgICByZXR1cm4gcmVzdWx0WzFdO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhZGYtYXR0YWNoLXdpZGdldCB7eyBmaWVsZC5jbGFzc05hbWUgfX1cIiBbY2xhc3MuYWRmLXJlYWRvbmx5XT1cImZpZWxkLnJlYWRPbmx5XCI+XG4gICAgPGxhYmVsIGNsYXNzPVwiYWRmLWxhYmVsXCIgW2F0dHIuZm9yXT1cImZpZWxkLmlkXCJcbiAgICAgICAgPnt7IGZpZWxkLm5hbWUgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJhZGYtYXN0ZXJpc2tcIiBbc3R5bGUudmlzaWJpbGl0eV09XCJpc1JlcXVpcmVkKCkgPyAndmlzaWJsZScgOiAnaGlkZGVuJ1wiPio8L3NwYW4+XG4gICAgPC9sYWJlbD5cbiAgICA8ZGl2IGNsYXNzPVwiYWRmLWF0dGFjaC13aWRnZXQtY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgaWQ9XCJhZGYtYXR0YWNoLXdpZGdldC1zaW1wbGUtdXBsb2FkXCIgKm5nSWY9XCJpc1NpbXBsZVVwbG9hZEJ1dHRvbigpICYmIGlzVXBsb2FkQnV0dG9uVmlzaWJsZSgpXCI+XG4gICAgICAgICAgICA8YSBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIj5cbiAgICAgICAgICAgICAgICB7eyAnRk9STS5GSUVMRC5VUExPQUQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uPmZpbGVfdXBsb2FkPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgI3VwbG9hZEZpbGVzIFttdWx0aXBsZV09XCJtdWx0aXBsZU9wdGlvblwiIHR5cGU9XCJmaWxlXCIgW2lkXT1cImZpZWxkLmlkXCIgKGNoYW5nZSk9XCJvbkF0dGFjaEZpbGVDaGFuZ2VkKCRldmVudClcIiAvPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1hdHRhY2gtd2lkZ2V0X19tZW51LXVwbG9hZFwiIChmb2N1c291dCk9XCJtYXJrQXNUb3VjaGVkKClcIiAqbmdJZj1cImlzVXBsb2FkQnV0dG9uVmlzaWJsZSgpICYmIGlzTXVsdGlwbGVTb3VyY2VVcGxvYWQoKVwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIFtpZF09XCJmaWVsZC5pZFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5hdHRhY2hfZmlsZTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAge3sgJ0ZPUk0uRklFTEQuVVBMT0FEJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJhZGYtYXR0YWNoLXdpZGdldF9fbWVudS1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJ1cGxvYWRGaWxlLmNsaWNrKClcIiBpZD1cImF0dGFjaC1sb2NhbC1maWxlXCIgKm5nSWY9XCJpc0FsbEZpbGVTb3VyY2VTZWxlY3RlZCgpXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7ICdGT1JNLkZJRUxELkxPQ0FMU1RPUkFHRScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmZpbGVfdXBsb2FkPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAjdXBsb2FkRmlsZVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtYXR0YWNoLXdpZGdldF9faW5wdXQtdHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVPcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cImZpZWxkLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25BdHRhY2hGaWxlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc0RlZmluZWRTb3VyY2VGb2xkZXIoKVwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiYXR0YWNoLXt7IGZpZWxkLnBhcmFtcz8uZmlsZVNvdXJjZT8ubmFtZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuU2VsZWN0RGlhbG9nRnJvbUZpbGVTb3VyY2UoKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YWRmLWFsZnJlc2NvLWljb24gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAge3sgZmllbGQucGFyYW1zPy5maWxlU291cmNlPy5uYW1lIH19XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFpc0RlZmluZWRTb3VyY2VGb2xkZXIoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKm5nRm9yPVwibGV0IHJlcG8gb2YgcmVwb3NpdG9yeUxpc3RcIiBpZD1cImF0dGFjaC17eyByZXBvPy5uYW1lIH19XCIgKGNsaWNrKT1cIm9wZW5TZWxlY3REaWFsb2cocmVwbylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWRmLWFsZnJlc2NvLWljb24gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyByZXBvLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGRhdGEtYXV0b21hdGlvbi1pZD1cImFkZi1hdHRhY2gtd2lkZ2V0LXJlYWRvbmx5LWxpc3RcIj5cbiAgICA8bWF0LWxpc3QgKm5nSWY9XCJoYXNGaWxlXCI+XG4gICAgICAgIDxtYXQtbGlzdC1pdGVtIGNsYXNzPVwiYWRmLWF0dGFjaC1maWxlcy1yb3dcIiAqbmdGb3I9XCJsZXQgZmlsZSBvZiBmaWVsZC52YWx1ZTsgaW5kZXggYXMgaVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIG1hdExpc3RJdGVtSWNvbj5cbiAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiYWRmLWF0dGFjaC13aWRnZXRfX2ljb25cIlxuICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidmaWxlLScrZmlsZS5pZCsnLWljb24nXCJcbiAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZmlsZS5jb250ZW50ID8gZ2V0SWNvbihmaWxlLmNvbnRlbnQubWltZVR5cGUpIDogZ2V0SWNvbihmaWxlLm1pbWVUeXBlKVwiXG4gICAgICAgICAgICAgICAgICAgICBbYWx0XT1cIm1pbWVUeXBlSWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25BdHRhY2hGaWxlQ2xpY2tlZChmaWxlKVwiXG4gICAgICAgICAgICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwib25BdHRhY2hGaWxlQ2xpY2tlZChmaWxlKVwiXG4gICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImZpbGUubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwiaVwiLz5cbiAgICAgICAgICAgIDwvbWF0LWljb24+XG5cbiAgICAgICAgICAgIDxkaXYgbWF0TGlzdEl0ZW1MaW5lIGNsYXNzPVwiYWRmLWF0dGFjaC13aWRnZXRfX2xhYmVsXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gaWQ9XCJ7eydmaWxlLScrZmlsZS5pZH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25BdHRhY2hGaWxlQ2xpY2tlZChmaWxlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImZpbGUubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cIm9uQXR0YWNoRmlsZUNsaWNrZWQoZmlsZSlcIlxuICAgICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJpXCIgY2xhc3M9XCJhZGYtZmlsZVwiPlxuICAgICAgICAgICAgICAgICAgICB7e2ZpbGUubmFtZX19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9XCJ7eydmaWxlLScrZmlsZS5pZCsnLW9wdGlvbi1tZW51J319XCIgbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJmaWxlQWN0aW9uTWVudVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidBREZfUFJPQ0VTU19MSVNULkRFVEFJTFMuQlVUVE9OLkZJTEVfT1BUSU9OX01FTlUnIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5tb3JlX3ZlcnQ8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8bWF0LW1lbnUgI2ZpbGVBY3Rpb25NZW51PVwibWF0TWVudVwiIHhQb3NpdGlvbj1cImJlZm9yZVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJ7eyAnZmlsZS0nICsgZmlsZS5pZCArICctc2hvdy1maWxlJyB9fVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmaWxlLmlzRXh0ZXJuYWwgfHwgIWZpbGUubWltZVR5cGUgfHwgKCFmaWxlLnNvdXJjZUlkICYmIChpc1N0YXJ0UHJvY2Vzc1BhZ2UgfHwgIWZpbGUuY29udGVudEF2YWlsYWJsZSkpXCJcbiAgICAgICAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25BdHRhY2hGaWxlQ2xpY2tlZChmaWxlKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+dmlzaWJpbGl0eTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7ICdGT1JNLkZJRUxELlZJRVdfRklMRScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBpZD1cInt7ICdmaWxlLScgKyBmaWxlLmlkICsgJy1kb3dubG9hZC1maWxlJyB9fVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmaWxlLmlzRXh0ZXJuYWwgfHwgIWZpbGUubWltZVR5cGVcIlxuICAgICAgICAgICAgICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkb3dubG9hZENvbnRlbnQoZmlsZSlcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmZpbGVfZG93bmxvYWQ8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyAnRk9STS5GSUVMRC5ET1dOTE9BRF9GSUxFJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWZpZWxkLnJlYWRPbmx5XCJcbiAgICAgICAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ2ZpbGUtJyArIGZpbGUuaWQgKyAnLXJlbW92ZSdcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25SZW1vdmVBdHRhY2hGaWxlKGZpbGUpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cIm9uUmVtb3ZlQXR0YWNoRmlsZShmaWxlKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXQtMjRcIj5oaWdobGlnaHRfb2ZmPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgJ0ZPUk0uRklFTEQuUkVNT1ZFX0ZJTEUnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxuICAgIDwvbWF0LWxpc3Q+XG48L2Rpdj5cblxuPGVycm9yLXdpZGdldCBbZXJyb3JdPVwiZmllbGQudmFsaWRhdGlvblN1bW1hcnlcIiAvPlxuPGVycm9yLXdpZGdldCAqbmdJZj1cIiFmaWVsZC5pc1ZhbGlkICYmIGlzVG91Y2hlZCgpICYmICFpc1NlbGVjdGVkKClcIiByZXF1aXJlZD1cInt7ICdGT1JNLkZJRUxELlJFUVVJUkVEJyB8IHRyYW5zbGF0ZSB9fVwiIC8+XG4iXX0=
264
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNoLWZpbGUtd2lkZ2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzL3NyYy9saWIvZm9ybS93aWRnZXRzL2NvbnRlbnQtd2lkZ2V0L2F0dGFjaC1maWxlLXdpZGdldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy9zcmMvbGliL2Zvcm0vd2lkZ2V0cy9jb250ZW50LXdpZGdldC9hdHRhY2gtZmlsZS13aWRnZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsdURBQXVEO0FBRXZELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0ksT0FBTyxFQUFFLHFCQUFxQixFQUFFLHdCQUF3QixFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRWpILE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMENBQTBD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QVMsRUFBRSxlQUFlO3dCQUMxQixXQUFXLEVBQUUsZUFBZTt3QkFDNUIsWUFBWSxFQUFFLGVBQWU7d0JBQzdCLFNBQVMsRUFBRSxlQUFlO3dCQUMxQixXQUFXLEVBQUUsZUFBZTt3QkFDNUIsVUFBVSxFQUFFLGVBQWU7cUJBQzlCLGlCQUNjLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IgKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBpbmplY3QsIGlzRGV2TW9kZSwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSwgQXBwQ29uZmlnVmFsdWVzLCBEb3dubG9hZFNlcnZpY2UsIEVycm9yV2lkZ2V0Q29tcG9uZW50LCBGb3JtU2VydmljZSwgVGh1bWJuYWlsU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBBbGZyZXNjb0ljb25Db21wb25lbnQsIENvbnRlbnROb2RlRGlhbG9nU2VydmljZSwgQ29udGVudFNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvbnRlbnQtc2VydmljZXMnO1xuaW1wb3J0IHsgQWxmcmVzY29FbmRwb2ludFJlcHJlc2VudGF0aW9uLCBOb2RlLCBOb2RlQ2hpbGRBc3NvY2lhdGlvbiwgUmVsYXRlZENvbnRlbnRSZXByZXNlbnRhdGlvbiB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgZnJvbSwgb2YsIHppcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWVyZ2VNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBdHRhY2hGaWxlV2lkZ2V0RGlhbG9nU2VydmljZSB9IGZyb20gJy4vYXR0YWNoLWZpbGUtd2lkZ2V0LWRpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IFVwbG9hZFdpZGdldENvbXBvbmVudCB9IGZyb20gJy4uL3VwbG9hZC91cGxvYWQud2lkZ2V0JztcbmltcG9ydCB7IFByb2Nlc3NDb250ZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Byb2Nlc3MtY29udGVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEFjdGl2aXRpQ29udGVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hY3Rpdml0aS1hbGZyZXNjby5zZXJ2aWNlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhdHRhY2gtd2lkZ2V0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgICAgIE1hdEljb25Nb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgTWF0TWVudU1vZHVsZSxcbiAgICAgICAgTWF0TGlzdE1vZHVsZSxcbiAgICAgICAgRXJyb3JXaWRnZXRDb21wb25lbnQsXG4gICAgICAgIEFsZnJlc2NvSWNvbkNvbXBvbmVudFxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2F0dGFjaC1maWxlLXdpZGdldC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYXR0YWNoLWZpbGUtd2lkZ2V0LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaG9zdDoge1xuICAgICAgICAnKGNsaWNrKSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhibHVyKSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhjaGFuZ2UpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGZvY3VzKSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhmb2N1c2luKSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhmb2N1c291dCknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoaW5wdXQpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGludmFsaWQpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKHNlbGVjdCknOiAnZXZlbnQoJGV2ZW50KSdcbiAgICB9LFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQXR0YWNoRmlsZVdpZGdldENvbXBvbmVudCBleHRlbmRzIFVwbG9hZFdpZGdldENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgdHlwZUlkID0gJ0F0dGFjaEZpbGVXaWRnZXRDb21wb25lbnQnO1xuICAgIHJlcG9zaXRvcnlMaXN0OiBBbGZyZXNjb0VuZHBvaW50UmVwcmVzZW50YXRpb25bXSA9IFtdO1xuICAgIGlzU3RhcnRQcm9jZXNzUGFnZSA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSB0ZW1wRmlsZXNMaXN0ID0gW107XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGZvcm1TZXJ2aWNlOiBGb3JtU2VydmljZSxcbiAgICAgICAgcHVibGljIHRodW1ibmFpbHM6IFRodW1ibmFpbFNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBwcm9jZXNzQ29udGVudFNlcnZpY2U6IFByb2Nlc3NDb250ZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBhY3Rpdml0aUNvbnRlbnRTZXJ2aWNlOiBBY3Rpdml0aUNvbnRlbnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNvbnRlbnRTZXJ2aWNlOiBDb250ZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjb250ZW50RGlhbG9nOiBDb250ZW50Tm9kZURpYWxvZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYXBwQ29uZmlnU2VydmljZTogQXBwQ29uZmlnU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkb3dubG9hZFNlcnZpY2U6IERvd25sb2FkU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgYXR0YWNoRGlhbG9nU2VydmljZTogQXR0YWNoRmlsZVdpZGdldERpYWxvZ1NlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoZm9ybVNlcnZpY2UsIHRodW1ibmFpbHMsIHByb2Nlc3NDb250ZW50U2VydmljZSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuaXNTdGFydFByb2Nlc3NQYWdlID0gdGhpcy5yb3V0ZXIudXJsLnNwbGl0KCc/JylbMF0uaW5jbHVkZXMoJ3N0YXJ0LXByb2Nlc3MnKTtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5maWVsZC52YWx1ZSkgJiYgdGhpcy5pc0ZpbGVTb3VyY2VDb25maWd1cmVkKCkpIHtcbiAgICAgICAgICAgIHRoaXMudGVtcEZpbGVzTGlzdC5wdXNoKC4uLnRoaXMuZmllbGQudmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hY3Rpdml0aUNvbnRlbnRTZXJ2aWNlLmdldEFsZnJlc2NvUmVwb3NpdG9yaWVzKCkuc3Vic2NyaWJlKChyZXBvTGlzdCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZXBvc2l0b3J5TGlzdCA9IHJlcG9MaXN0O1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmZvcm1TZXJ2aWNlLnRhc2tTYXZlZC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKGZvcm1TYXZlZCkgPT4ge1xuICAgICAgICAgICAgaWYgKGZvcm1TYXZlZC5mb3JtLmlkID09PSB0aGlzLmZpZWxkLmZvcm0uaWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRlbXBGaWxlc0xpc3QgPSBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaXNGaWxlU291cmNlQ29uZmlndXJlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5maWVsZC5wYXJhbXM/LmZpbGVTb3VyY2U7XG4gICAgfVxuXG4gICAgaXNNdWx0aXBsZVNvdXJjZVVwbG9hZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmZpZWxkLnJlYWRPbmx5ICYmIHRoaXMuaXNGaWxlU291cmNlQ29uZmlndXJlZCgpICYmICF0aGlzLmlzT25seUxvY2FsU291cmNlU2VsZWN0ZWQoKTtcbiAgICB9XG5cbiAgICBpc0FsbEZpbGVTb3VyY2VTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQucGFyYW1zPy5maWxlU291cmNlPy5zZXJ2aWNlSWQgPT09ICdhbGwtZmlsZS1zb3VyY2VzJyAmJiAhdGhpcy5maWVsZC5wYXJhbXMubGluaztcbiAgICB9XG5cbiAgICBpc09ubHlMb2NhbFNvdXJjZVNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWVsZC5wYXJhbXM/LmZpbGVTb3VyY2U/LnNlcnZpY2VJZCA9PT0gJ2xvY2FsLWZpbGUnO1xuICAgIH1cblxuICAgIGlzU2ltcGxlVXBsb2FkQnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKHRoaXMuaXNVcGxvYWRCdXR0b25WaXNpYmxlKCkgJiYgIXRoaXMuaXNGaWxlU291cmNlQ29uZmlndXJlZCgpKSB8fCB0aGlzLmlzT25seUxvY2FsU291cmNlU2VsZWN0ZWQoKTtcbiAgICB9XG5cbiAgICBpc1VwbG9hZEJ1dHRvblZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoIXRoaXMuaGFzRmlsZSB8fCB0aGlzLm11bHRpcGxlT3B0aW9uKSAmJiAhdGhpcy5maWVsZC5yZWFkT25seTtcbiAgICB9XG5cbiAgICBpc0RlZmluZWRTb3VyY2VGb2xkZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuZmllbGQucGFyYW1zPy5maWxlU291cmNlPy5zZWxlY3RlZEZvbGRlcjtcbiAgICB9XG5cbiAgICBpc1RlbXBvcmFyeUZpbGUoZmlsZTogeyBuYW1lPzogc3RyaW5nIH0pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGVtcEZpbGVzTGlzdC5maW5kSW5kZXgoKGVsZW0pID0+IGVsZW0ubmFtZSA9PT0gZmlsZS5uYW1lKSA+PSAwO1xuICAgIH1cblxuICAgIGdldE5vZGVGcm9tVGVtcEZpbGUoZmlsZTogeyBuYW1lPzogc3RyaW5nIH0pOiBOb2RlQ2hpbGRBc3NvY2lhdGlvbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRlbXBGaWxlc0xpc3QuZmluZCgoZWxlbSkgPT4gZWxlbS5uYW1lID09PSBmaWxlLm5hbWUpO1xuICAgIH1cblxuICAgIG9wZW5TZWxlY3REaWFsb2dGcm9tRmlsZVNvdXJjZSgpIHtcbiAgICAgICAgY29uc3QgcGFyYW1zID0gdGhpcy5maWVsZC5wYXJhbXM7XG4gICAgICAgIGNvbnN0IHJlcG9zaXRvcnkgPSB0aGlzLnJlcG9zaXRvcnlMaXN0LmZpbmQoKHJlcG8pID0+IHJlcG8ubmFtZSA9PT0gcGFyYW1zPy5maWxlU291cmNlPy5uYW1lKTtcbiAgICAgICAgaWYgKHJlcG9zaXRvcnkgJiYgdGhpcy5pc0V4dGVybmFsSG9zdChyZXBvc2l0b3J5KSkge1xuICAgICAgICAgICAgdGhpcy51cGxvYWRGaWxlRnJvbUV4dGVybmFsQ1MocmVwb3NpdG9yeSwgcGFyYW1zPy5maWxlU291cmNlPy5zZWxlY3RlZEZvbGRlcj8ucGF0aElkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudERpYWxvZy5vcGVuRmlsZUJyb3dzZURpYWxvZ0J5Rm9sZGVySWQocGFyYW1zLmZpbGVTb3VyY2Uuc2VsZWN0ZWRGb2xkZXIucGF0aElkKS5zdWJzY3JpYmUoKHNlbGVjdGlvbnM6IE5vZGVbXSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudGVtcEZpbGVzTGlzdC5wdXNoKC4uLnNlbGVjdGlvbnMpO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlTm9kZXNQYXJhbXMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZEZpbGVGcm9tQ1MoXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGQucGFyYW1zLmZpbGVTb3VyY2Uuc2VsZWN0ZWRGb2xkZXIuYWNjb3VudElkLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLnBhcmFtcy5maWxlU291cmNlLnNlbGVjdGVkRm9sZGVyLnNpdGVJZFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQXR0YWNoRmlsZUNoYW5nZWQoZXZlbnQ6IGFueSkge1xuICAgICAgICB0aGlzLnRlbXBGaWxlc0xpc3QucHVzaCguLi5BcnJheS5mcm9tKGV2ZW50LnRhcmdldC5maWxlcykpO1xuICAgICAgICB0aGlzLm9uRmlsZUNoYW5nZWQoZXZlbnQpO1xuICAgIH1cblxuICAgIG9uUmVtb3ZlQXR0YWNoRmlsZShmaWxlOiBGaWxlIHwgUmVsYXRlZENvbnRlbnRSZXByZXNlbnRhdGlvbikge1xuICAgICAgICBpZiAodGhpcy5pc1RlbXBvcmFyeUZpbGUoZmlsZSkpIHtcbiAgICAgICAgICAgIHRoaXMudGVtcEZpbGVzTGlzdC5zcGxpY2UodGhpcy50ZW1wRmlsZXNMaXN0LmluZGV4T2YoKGZpbGUgYXMgUmVsYXRlZENvbnRlbnRSZXByZXNlbnRhdGlvbikuY29udGVudEJsb2IpLCAxKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTm9kZXNQYXJhbXMoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbW92ZUZpbGUoZmlsZSk7XG4gICAgfVxuXG4gICAgb25BdHRhY2hGaWxlQ2xpY2tlZChmaWxlOiBhbnkpIHtcbiAgICAgICAgaWYgKGZpbGUuaXNFeHRlcm5hbCB8fCAoIWZpbGUuc291cmNlSWQgJiYgKHRoaXMuaXNTdGFydFByb2Nlc3NQYWdlIHx8ICFmaWxlLmNvbnRlbnRBdmFpbGFibGUpKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlzVGVtcG9yYXJ5RmlsZShmaWxlKSkge1xuICAgICAgICAgICAgdGhpcy5mb3JtU2VydmljZS5mb3JtQ29udGVudENsaWNrZWQubmV4dChmaWxlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZmlsZUNsaWNrZWQoZmlsZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkb3dubG9hZENvbnRlbnQoZmlsZTogYW55IHwgUmVsYXRlZENvbnRlbnRSZXByZXNlbnRhdGlvbik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc1RlbXBvcmFyeUZpbGUoZmlsZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVCbG9iID0gKGZpbGUgYXMgUmVsYXRlZENvbnRlbnRSZXByZXNlbnRhdGlvbikuY29udGVudEJsb2I7XG4gICAgICAgICAgICBpZiAoZmlsZUJsb2IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRvd25sb2FkU2VydmljZS5kb3dubG9hZEJsb2IoZmlsZUJsb2IsIGZpbGUubmFtZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5vZGVVcGxvYWRlZDogTm9kZUNoaWxkQXNzb2NpYXRpb24gPSB0aGlzLmdldE5vZGVGcm9tVGVtcEZpbGUoZmlsZSk7XG4gICAgICAgICAgICAgICAgY29uc3Qgbm9kZVVybCA9IHRoaXMuY29udGVudFNlcnZpY2UuZ2V0Q29udGVudFVybChub2RlVXBsb2FkZWQuaWQpO1xuICAgICAgICAgICAgICAgIHRoaXMuZG93bmxvYWRTZXJ2aWNlLmRvd25sb2FkVXJsKG5vZGVVcmwsIGZpbGUubmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpbGUuc291cmNlSWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHNvdXJjZUhvc3QgPSB0aGlzLmZpbmRTb3VyY2UoZmlsZS5zb3VyY2UpO1xuICAgICAgICAgICAgaWYgKHNvdXJjZUhvc3QgJiYgdGhpcy5pc0V4dGVybmFsSG9zdChzb3VyY2VIb3N0KSkge1xuICAgICAgICAgICAgICAgIHRoaXMuYXR0YWNoRGlhbG9nU2VydmljZS5kb3dubG9hZFVSTChzb3VyY2VIb3N0LCBmaWxlLnNvdXJjZUlkKS5zdWJzY3JpYmUoKG5vZGVVcmwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kb3dubG9hZFNlcnZpY2UuZG93bmxvYWRVcmwobm9kZVVybCwgZmlsZS5uYW1lKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgbm9kZVVybCA9IHRoaXMuY29udGVudFNlcnZpY2UuZ2V0Q29udGVudFVybChmaWxlLnNvdXJjZUlkKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRvd25sb2FkU2VydmljZS5kb3dubG9hZFVybChub2RlVXJsLCBmaWxlLm5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzQ29udGVudFNlcnZpY2UuZ2V0RmlsZVJhd0NvbnRlbnQoZmlsZS5pZCkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIChibG9iOiBCbG9iKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZG93bmxvYWRTZXJ2aWNlLmRvd25sb2FkQmxvYihibG9iLCBmaWxlLm5hbWUpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKCkgPT4ge31cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvcGVuU2VsZWN0RGlhbG9nKHJlcG9zaXRvcnk6IEFsZnJlc2NvRW5kcG9pbnRSZXByZXNlbnRhdGlvbikge1xuICAgICAgICBpZiAodGhpcy5pc0V4dGVybmFsSG9zdChyZXBvc2l0b3J5KSAmJiAhaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgIHRoaXMudXBsb2FkRmlsZUZyb21FeHRlcm5hbENTKHJlcG9zaXRvcnkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50RGlhbG9nLm9wZW5GaWxlQnJvd3NlRGlhbG9nQnlEZWZhdWx0TG9jYXRpb24oKS5zdWJzY3JpYmUoKHNlbGVjdGlvbnM6IE5vZGVbXSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRlbXBGaWxlc0xpc3QucHVzaCguLi5zZWxlY3Rpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVOb2Rlc1BhcmFtcygpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZEZpbGVGcm9tQ1Moc2VsZWN0aW9ucywgYGFsZnJlc2NvLSR7cmVwb3NpdG9yeS5pZH0tJHtyZXBvc2l0b3J5Lm5hbWV9QWxmcmVzY29gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc0ZpbGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0V4dGVybmFsSG9zdChyZXBvc2l0b3J5OiBBbGZyZXNjb0VuZHBvaW50UmVwcmVzZW50YXRpb24pOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgY3VycmVudEVDTUhvc3QgPSB0aGlzLmdldERvbWFpbkhvc3QodGhpcy5hcHBDb25maWdTZXJ2aWNlLmdldChBcHBDb25maWdWYWx1ZXMuRUNNSE9TVCkpO1xuICAgICAgICBjb25zdCBjaG9zZW5SZXBvc2l0b3J5SG9zdCA9IHRoaXMuZ2V0RG9tYWluSG9zdChyZXBvc2l0b3J5LnJlcG9zaXRvcnlVcmwpO1xuICAgICAgICByZXR1cm4gY2hvc2VuUmVwb3NpdG9yeUhvc3QgIT09IGN1cnJlbnRFQ01Ib3N0O1xuICAgIH1cblxuICAgIHByaXZhdGUgZmluZFNvdXJjZShzb3VyY2VJZGVudGlmaWVyOiBzdHJpbmcpOiBBbGZyZXNjb0VuZHBvaW50UmVwcmVzZW50YXRpb24ge1xuICAgICAgICByZXR1cm4gdGhpcy5yZXBvc2l0b3J5TGlzdC5maW5kKChyZXBvc2l0b3J5KSA9PiBzb3VyY2VJZGVudGlmaWVyID09PSBgYWxmcmVzY28tJHtyZXBvc2l0b3J5LmlkfS0ke3JlcG9zaXRvcnkubmFtZX1gKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwbG9hZEZpbGVGcm9tRXh0ZXJuYWxDUyhyZXBvc2l0b3J5OiBBbGZyZXNjb0VuZHBvaW50UmVwcmVzZW50YXRpb24sIGN1cnJlbnRGb2xkZXJJZD86IHN0cmluZykge1xuICAgICAgICBjb25zdCBhY2NvdW50SWRlbnRpZmllciA9IGBhbGZyZXNjby0ke3JlcG9zaXRvcnkuaWR9LSR7cmVwb3NpdG9yeS5uYW1lfUFsZnJlc2NvYDtcbiAgICAgICAgdGhpcy5hdHRhY2hEaWFsb2dTZXJ2aWNlLm9wZW5Mb2dpbihyZXBvc2l0b3J5LCBjdXJyZW50Rm9sZGVySWQsIGFjY291bnRJZGVudGlmaWVyKS5zdWJzY3JpYmUoKHNlbGVjdGlvbnMpID0+IHtcbiAgICAgICAgICAgIHNlbGVjdGlvbnMuZm9yRWFjaCgobm9kZSkgPT4gKG5vZGVbJ2lzRXh0ZXJuYWwnXSA9IHRydWUpKTtcbiAgICAgICAgICAgIHRoaXMudGVtcEZpbGVzTGlzdC5wdXNoKC4uLnNlbGVjdGlvbnMpO1xuICAgICAgICAgICAgdGhpcy51cGxvYWRGaWxlRnJvbUNTKHNlbGVjdGlvbnMsIGFjY291bnRJZGVudGlmaWVyKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGxvYWRGaWxlRnJvbUNTKGZpbGVOb2RlTGlzdDogTm9kZVtdLCBhY2NvdW50SWQ6IHN0cmluZywgc2l0ZUlkPzogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IGZpbGVzU2F2ZWQgPSBbXTtcblxuICAgICAgICBmaWxlTm9kZUxpc3QuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICAgICAgbm9kZS5pc0xpbmsgPSB0aGlzLmZpZWxkLnBhcmFtcy5saW5rO1xuICAgICAgICB9KTtcblxuICAgICAgICBmcm9tKGZpbGVOb2RlTGlzdClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1lcmdlTWFwKChub2RlKSA9PlxuICAgICAgICAgICAgICAgICAgICB6aXAob2Yobm9kZT8uY29udGVudD8ubWltZVR5cGUpLCB0aGlzLmFjdGl2aXRpQ29udGVudFNlcnZpY2UuYXBwbHlBbGZyZXNjb05vZGUobm9kZSwgc2l0ZUlkLCBhY2NvdW50SWQpLCBvZihub2RlWydpc0V4dGVybmFsJ10pKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgKFttaW1lVHlwZSwgcmVzLCBpc0V4dGVybmFsXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXMubWltZVR5cGUgPSBtaW1lVHlwZTtcbiAgICAgICAgICAgICAgICAgICAgcmVzWydpc0V4dGVybmFsJ10gPSBpc0V4dGVybmFsO1xuICAgICAgICAgICAgICAgICAgICBmaWxlc1NhdmVkLnB1c2gocmVzKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICgpID0+IHt9LFxuICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNGaWxlcyA9IHRoaXMuZmllbGQudmFsdWUgPyB0aGlzLmZpZWxkLnZhbHVlIDogW107XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGQudmFsdWUgPSBbLi4ucHJldmlvdXNGaWxlcywgLi4uZmlsZXNTYXZlZF07XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGQuanNvbi52YWx1ZSA9IFsuLi5wcmV2aW91c0ZpbGVzLCAuLi5maWxlc1NhdmVkXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYXNGaWxlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlTm9kZXNQYXJhbXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7XG4gICAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLmFjdGl2YXRlZFJvdXRlLFxuICAgICAgICAgICAgcXVlcnlQYXJhbXM6IHsgbm9kZXM6IHRoaXMudGVtcEZpbGVzTGlzdC5tYXAoKGZpbGUpID0+IGZpbGUuaWQpLmpvaW4oJywnKSB9LFxuICAgICAgICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJ1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERvbWFpbkhvc3QodXJsVG9DaGVjazogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdXJsVG9DaGVjay5tYXRjaCgnXig/Omh0dHBzPzovLyk/KD86W15AL1xcbl0rQCk/KD86d3d3XFxcXC4pPyhbXjovP1xcbl0rKScpO1xuICAgICAgICByZXR1cm4gcmVzdWx0WzFdO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhZGYtYXR0YWNoLXdpZGdldCB7eyBmaWVsZC5jbGFzc05hbWUgfX1cIiBbY2xhc3MuYWRmLXJlYWRvbmx5XT1cImZpZWxkLnJlYWRPbmx5XCI+XG4gICAgPGxhYmVsIGNsYXNzPVwiYWRmLWxhYmVsXCIgW2F0dHIuZm9yXT1cImZpZWxkLmlkXCJcbiAgICAgICAgPnt7IGZpZWxkLm5hbWUgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJhZGYtYXN0ZXJpc2tcIiBbc3R5bGUudmlzaWJpbGl0eV09XCJpc1JlcXVpcmVkKCkgPyAndmlzaWJsZScgOiAnaGlkZGVuJ1wiPio8L3NwYW4+XG4gICAgPC9sYWJlbD5cbiAgICA8ZGl2IGNsYXNzPVwiYWRmLWF0dGFjaC13aWRnZXQtY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgaWQ9XCJhZGYtYXR0YWNoLXdpZGdldC1zaW1wbGUtdXBsb2FkXCIgKm5nSWY9XCJpc1NpbXBsZVVwbG9hZEJ1dHRvbigpICYmIGlzVXBsb2FkQnV0dG9uVmlzaWJsZSgpXCI+XG4gICAgICAgICAgICA8YSBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIj5cbiAgICAgICAgICAgICAgICB7eyAnRk9STS5GSUVMRC5VUExPQUQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uPmZpbGVfdXBsb2FkPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgI3VwbG9hZEZpbGVzIFttdWx0aXBsZV09XCJtdWx0aXBsZU9wdGlvblwiIHR5cGU9XCJmaWxlXCIgW2lkXT1cImZpZWxkLmlkXCIgKGNoYW5nZSk9XCJvbkF0dGFjaEZpbGVDaGFuZ2VkKCRldmVudClcIiAvPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1hdHRhY2gtd2lkZ2V0X19tZW51LXVwbG9hZFwiIChmb2N1c291dCk9XCJtYXJrQXNUb3VjaGVkKClcIiAqbmdJZj1cImlzVXBsb2FkQnV0dG9uVmlzaWJsZSgpICYmIGlzTXVsdGlwbGVTb3VyY2VVcGxvYWQoKVwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIFtpZF09XCJmaWVsZC5pZFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5hdHRhY2hfZmlsZTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAge3sgJ0ZPUk0uRklFTEQuVVBMT0FEJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJhZGYtYXR0YWNoLXdpZGdldF9fbWVudS1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJ1cGxvYWRGaWxlLmNsaWNrKClcIiBpZD1cImF0dGFjaC1sb2NhbC1maWxlXCIgKm5nSWY9XCJpc0FsbEZpbGVTb3VyY2VTZWxlY3RlZCgpXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7ICdGT1JNLkZJRUxELkxPQ0FMU1RPUkFHRScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmZpbGVfdXBsb2FkPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAjdXBsb2FkRmlsZVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtYXR0YWNoLXdpZGdldF9faW5wdXQtdHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVPcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cImZpZWxkLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25BdHRhY2hGaWxlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc0RlZmluZWRTb3VyY2VGb2xkZXIoKVwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiYXR0YWNoLXt7IGZpZWxkLnBhcmFtcz8uZmlsZVNvdXJjZT8ubmFtZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuU2VsZWN0RGlhbG9nRnJvbUZpbGVTb3VyY2UoKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YWRmLWFsZnJlc2NvLWljb24gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAge3sgZmllbGQucGFyYW1zPy5maWxlU291cmNlPy5uYW1lIH19XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFpc0RlZmluZWRTb3VyY2VGb2xkZXIoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKm5nRm9yPVwibGV0IHJlcG8gb2YgcmVwb3NpdG9yeUxpc3RcIiBpZD1cImF0dGFjaC17eyByZXBvPy5uYW1lIH19XCIgKGNsaWNrKT1cIm9wZW5TZWxlY3REaWFsb2cocmVwbylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWRmLWFsZnJlc2NvLWljb24gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyByZXBvLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGRhdGEtYXV0b21hdGlvbi1pZD1cImFkZi1hdHRhY2gtd2lkZ2V0LXJlYWRvbmx5LWxpc3RcIj5cbiAgICA8bWF0LWxpc3QgKm5nSWY9XCJoYXNGaWxlXCI+XG4gICAgICAgIDxtYXQtbGlzdC1pdGVtIGNsYXNzPVwiYWRmLWF0dGFjaC1maWxlcy1yb3dcIiAqbmdGb3I9XCJsZXQgZmlsZSBvZiBmaWVsZC52YWx1ZTsgaW5kZXggYXMgaVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIG1hdExpc3RJdGVtSWNvbj5cbiAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiYWRmLWF0dGFjaC13aWRnZXRfX2ljb25cIlxuICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidmaWxlLScrZmlsZS5pZCsnLWljb24nXCJcbiAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZmlsZS5jb250ZW50ID8gZ2V0SWNvbihmaWxlLmNvbnRlbnQubWltZVR5cGUpIDogZ2V0SWNvbihmaWxlLm1pbWVUeXBlKVwiXG4gICAgICAgICAgICAgICAgICAgICBbYWx0XT1cIm1pbWVUeXBlSWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25BdHRhY2hGaWxlQ2xpY2tlZChmaWxlKVwiXG4gICAgICAgICAgICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwib25BdHRhY2hGaWxlQ2xpY2tlZChmaWxlKVwiXG4gICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImZpbGUubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwiaVwiLz5cbiAgICAgICAgICAgIDwvbWF0LWljb24+XG5cbiAgICAgICAgICAgIDxkaXYgbWF0TGlzdEl0ZW1MaW5lIGNsYXNzPVwiYWRmLWF0dGFjaC13aWRnZXRfX2xhYmVsXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gaWQ9XCJ7eydmaWxlLScrZmlsZS5pZH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25BdHRhY2hGaWxlQ2xpY2tlZChmaWxlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImZpbGUubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cIm9uQXR0YWNoRmlsZUNsaWNrZWQoZmlsZSlcIlxuICAgICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJpXCIgY2xhc3M9XCJhZGYtZmlsZVwiPlxuICAgICAgICAgICAgICAgICAgICB7e2ZpbGUubmFtZX19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9XCJ7eydmaWxlLScrZmlsZS5pZCsnLW9wdGlvbi1tZW51J319XCIgbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJmaWxlQWN0aW9uTWVudVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidBREZfUFJPQ0VTU19MSVNULkRFVEFJTFMuQlVUVE9OLkZJTEVfT1BUSU9OX01FTlUnIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5tb3JlX3ZlcnQ8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8bWF0LW1lbnUgI2ZpbGVBY3Rpb25NZW51PVwibWF0TWVudVwiIHhQb3NpdGlvbj1cImJlZm9yZVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJ7eyAnZmlsZS0nICsgZmlsZS5pZCArICctc2hvdy1maWxlJyB9fVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmaWxlLmlzRXh0ZXJuYWwgfHwgIWZpbGUubWltZVR5cGUgfHwgKCFmaWxlLnNvdXJjZUlkICYmIChpc1N0YXJ0UHJvY2Vzc1BhZ2UgfHwgIWZpbGUuY29udGVudEF2YWlsYWJsZSkpXCJcbiAgICAgICAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25BdHRhY2hGaWxlQ2xpY2tlZChmaWxlKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+dmlzaWJpbGl0eTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7ICdGT1JNLkZJRUxELlZJRVdfRklMRScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBpZD1cInt7ICdmaWxlLScgKyBmaWxlLmlkICsgJy1kb3dubG9hZC1maWxlJyB9fVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmaWxlLmlzRXh0ZXJuYWwgfHwgIWZpbGUubWltZVR5cGVcIlxuICAgICAgICAgICAgICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkb3dubG9hZENvbnRlbnQoZmlsZSlcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmZpbGVfZG93bmxvYWQ8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyAnRk9STS5GSUVMRC5ET1dOTE9BRF9GSUxFJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWZpZWxkLnJlYWRPbmx5XCJcbiAgICAgICAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ2ZpbGUtJyArIGZpbGUuaWQgKyAnLXJlbW92ZSdcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25SZW1vdmVBdHRhY2hGaWxlKGZpbGUpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cIm9uUmVtb3ZlQXR0YWNoRmlsZShmaWxlKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXQtMjRcIj5oaWdobGlnaHRfb2ZmPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgJ0ZPUk0uRklFTEQuUkVNT1ZFX0ZJTEUnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxuICAgIDwvbWF0LWxpc3Q+XG48L2Rpdj5cblxuPGVycm9yLXdpZGdldCBbZXJyb3JdPVwiZmllbGQudmFsaWRhdGlvblN1bW1hcnlcIiAvPlxuPGVycm9yLXdpZGdldCAqbmdJZj1cIiFmaWVsZC5pc1ZhbGlkICYmIGlzVG91Y2hlZCgpICYmICFpc1NlbGVjdGVkKClcIiByZXF1aXJlZD1cInt7ICdGT1JNLkZJRUxELlJFUVVJUkVEJyB8IHRyYW5zbGF0ZSB9fVwiIC8+XG4iXX0=