@valtimo/dossier-management 12.2.1 → 12.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (22) hide show
  1. package/esm2022/lib/components/dossier-management-assignee/dossier-management-assignee.component.mjs +3 -3
  2. package/esm2022/lib/components/dossier-management-create/dossier-management-create.component.mjs +3 -3
  3. package/esm2022/lib/components/dossier-management-detail-container/dossier-management-detail-container.component.mjs +3 -3
  4. package/esm2022/lib/components/dossier-management-detail-container-actions/dossier-management-detail-container-actions.component.mjs +3 -3
  5. package/esm2022/lib/components/dossier-management-document-definition/dossier-management-document-definition.component.mjs +3 -3
  6. package/esm2022/lib/components/dossier-management-list-columns/dossier-management-list-columns.component.mjs +3 -3
  7. package/esm2022/lib/components/dossier-management-processes/dossier-management-processes.component.mjs +3 -3
  8. package/esm2022/lib/components/dossier-management-search-fields/dossier-management-search-fields.component.mjs +3 -3
  9. package/esm2022/lib/components/dossier-management-statuses/dossier-management-status-modal/dossier-management-status-modal.component.mjs +3 -3
  10. package/esm2022/lib/components/dossier-management-statuses/dossier-management-statuses.component.mjs +3 -3
  11. package/esm2022/lib/components/dossier-management-tabs/tab-form/tab-form.component.mjs +4 -5
  12. package/esm2022/lib/components/dossier-management-upload/dossier-management-upload.component.mjs +3 -3
  13. package/esm2022/lib/components/dossier-management-widget-configurators/collection/dossier-management-widget-collection.component.mjs +3 -3
  14. package/esm2022/lib/components/dossier-management-widget-configurators/fields/column/dossier-management-widget-fields-column.component.mjs +3 -3
  15. package/esm2022/lib/components/dossier-management-widget-tab/editor/dossier-management-widgets-editor.component.mjs +3 -3
  16. package/esm2022/lib/components/dossier-management-widget-wizard/steps/widget-wizard-width-step/widget-wizard-width-step.component.mjs +2 -2
  17. package/esm2022/lib/services/tab-management.service.mjs +2 -2
  18. package/fesm2022/valtimo-dossier-management.mjs +32 -33
  19. package/fesm2022/valtimo-dossier-management.mjs.map +1 -1
  20. package/lib/components/dossier-management-tabs/tab-form/tab-form.component.d.ts.map +1 -1
  21. package/lib/services/tab-management.service.d.ts.map +1 -1
  22. package/package.json +1 -1
@@ -135,11 +135,11 @@ export class DossierManagementDetailContainerActionsComponent {
135
135
  });
136
136
  }
137
137
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DossierManagementDetailContainerActionsComponent, deps: [{ token: DOCUMENT }, { token: i1.NotificationService }, { token: i2.DossierExportService }, { token: i3.TranslateService }, { token: i4.DocumentService }, { token: i2.DossierDetailService }, { token: i5.PageHeaderService }], target: i0.ɵɵFactoryTarget.Component }); }
138
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DossierManagementDetailContainerActionsComponent, selector: "valtimo-dossier-management-detail-container-actions", inputs: { documentDefinitionTitle: "documentDefinitionTitle", documentDefinitionName: "documentDefinitionName" }, outputs: { versionSet: "versionSet" }, providers: [NotificationService], viewQueries: [{ propertyName: "_exportMessageTemplateRef", first: true, predicate: ["exportingMessage"], descendants: true }, { propertyName: "_dossierRemoveModal", first: true, predicate: ["dossierRemoveModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"dossier-actions\"\n *ngIf=\"{\n exporting: exporting$ | async,\n loadingVersion: loadingVersion$ | async,\n versionListItems: versionListItems$ | async,\n selectedDocumentDefinition: selectedDocumentDefinition$ | async,\n selectedDocumentDefinitionIsReadOnly: selectedDocumentDefinitionIsReadOnly$ | async,\n compactMode: compactMode$ | async\n } as obs\"\n [ngClass]=\"{'--compact': obs.compactMode}\"\n>\n <div class=\"dossier-metadata\">\n <ng-container *ngTemplateOutlet=\"versionSelection; context: {obs: obs}\"></ng-container>\n\n <ng-container *ngTemplateOutlet=\"readOnly; context: {obs: obs}\"></ng-container>\n </div>\n\n <ng-container *ngTemplateOutlet=\"exportMenu; context: {obs: obs}\"></ng-container>\n</div>\n\n<ng-template #versionSelection let-obs=\"obs\">\n <cds-dropdown\n class=\"version-selection\"\n [disabled]=\"obs.loadingVersion || (obs.versionListItems.length || []) === 1\"\n [skeleton]=\"obs.loadingVersion\"\n (selected)=\"setVersion($event)\"\n [size]=\"obs.compactMode ? 'sm' : 'md'\"\n >\n <cds-dropdown-list [items]=\"obs.versionListItems || []\"></cds-dropdown-list>\n </cds-dropdown>\n</ng-template>\n\n<ng-template #exportMenu let-obs=\"obs\">\n <cds-overflow-menu\n valtimoCdsOverflowButton\n [width]=\"250\"\n [customTrigger]=\"customTrigger\"\n [offset]=\"{y: 48, x: 37}\"\n class=\"overflow-button\"\n >\n <cds-overflow-menu-option\n [id]=\"'exportDocumentDefinition'\"\n [disabled]=\"obs.exporting || obs.loadingVersion\"\n (selected)=\"export()\"\n >{{\n 'dossierManagement.export' | translate: {value: documentDefinitionTitle}\n }}</cds-overflow-menu-option\n >\n\n <cds-overflow-menu-option\n *ngIf=\"obs.selectedDocumentDefinition && !obs.selectedDocumentDefinition.readOnly\"\n [id]=\"'removeDocumentDefinition'\"\n [disabled]=\"obs.exporting || obs.loadingVersion\"\n (selected)=\"openDossierRemoveModal()\"\n >{{ 'Remove document definition' | translate }}</cds-overflow-menu-option\n >\n </cds-overflow-menu>\n</ng-template>\n\n<ng-template #customTrigger>\n <button cdsButton=\"tertiary\" [size]=\"(compactMode$ | async) ? 'sm' : 'md'\">\n {{ 'dossierManagement.more' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"overflow-menu--vertical\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #exportingMessage>\n <div class=\"exporting-message\">\n <span class=\"cds--inline-notification__title\">{{\n 'dossierManagement.preparingDownload' | translate\n }}</span>\n\n <cds-loading size=\"sm\"></cds-loading>\n </div>\n</ng-template>\n\n<ng-template #readOnly let-obs=\"obs\">\n <cds-tag *ngIf=\"obs.selectedDocumentDefinitionIsReadOnly\" type=\"blue\">{{\n 'dossierManagement.readonly' | translate\n }}</cds-tag>\n</ng-template>\n\n<valtimo-dossier-management-remove-modal\n #dossierRemoveModal\n></valtimo-dossier-management-remove-modal>\n", styles: [".dossier-actions{display:flex;width:100%;justify-content:space-between;align-items:flex-end}.dossier-actions.--compact{align-items:center}.dossier-actions ::ng-deep .version-selection{width:160px}.dossier-actions ::ng-deep .version-selection .cds--list-box__selection{display:none}.exporting-message{width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px}.dossier-metadata{display:flex;gap:24px;align-items:flex-end}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i1.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i1.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i1.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: i1.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "component", type: i1.OverflowMenu, selector: "cds-overflow-menu, ibm-overflow-menu", inputs: ["buttonLabel", "flip", "placement", "open", "customTrigger", "offset", "wrapperClass", "triggerClass"], outputs: ["openChange"] }, { kind: "component", type: i1.OverflowMenuOption, selector: "cds-overflow-menu-option, ibm-overflow-menu-option", inputs: ["divider", "type", "disabled", "href", "target", "innerClass"], outputs: ["selected"] }, { kind: "directive", type: i5.ValtimoCdsOverflowButtonDirective, selector: "[valtimoCdsOverflowButton]", inputs: ["width"] }, { kind: "component", type: i1.Tag, selector: "cds-tag, ibm-tag", inputs: ["type", "size", "class"] }, { kind: "component", type: i7.DossierManagementRemoveModalComponent, selector: "valtimo-dossier-management-remove-modal" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
138
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DossierManagementDetailContainerActionsComponent, selector: "valtimo-dossier-management-detail-container-actions", inputs: { documentDefinitionTitle: "documentDefinitionTitle", documentDefinitionName: "documentDefinitionName" }, outputs: { versionSet: "versionSet" }, providers: [NotificationService], viewQueries: [{ propertyName: "_exportMessageTemplateRef", first: true, predicate: ["exportingMessage"], descendants: true }, { propertyName: "_dossierRemoveModal", first: true, predicate: ["dossierRemoveModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"dossier-actions\"\n *ngIf=\"{\n exporting: exporting$ | async,\n loadingVersion: loadingVersion$ | async,\n versionListItems: versionListItems$ | async,\n selectedDocumentDefinition: selectedDocumentDefinition$ | async,\n selectedDocumentDefinitionIsReadOnly: selectedDocumentDefinitionIsReadOnly$ | async,\n compactMode: compactMode$ | async,\n } as obs\"\n [ngClass]=\"{'--compact': obs.compactMode}\"\n>\n <div class=\"dossier-metadata\">\n <ng-container *ngTemplateOutlet=\"versionSelection; context: {obs: obs}\"></ng-container>\n\n <ng-container *ngTemplateOutlet=\"readOnly; context: {obs: obs}\"></ng-container>\n </div>\n\n <ng-container *ngTemplateOutlet=\"exportMenu; context: {obs: obs}\"></ng-container>\n</div>\n\n<ng-template #versionSelection let-obs=\"obs\">\n <cds-dropdown\n class=\"version-selection\"\n [disabled]=\"obs.loadingVersion || (obs.versionListItems.length || []) === 1\"\n [skeleton]=\"obs.loadingVersion\"\n (selected)=\"setVersion($event)\"\n [size]=\"obs.compactMode ? 'sm' : 'md'\"\n >\n <cds-dropdown-list [items]=\"obs.versionListItems || []\"></cds-dropdown-list>\n </cds-dropdown>\n</ng-template>\n\n<ng-template #exportMenu let-obs=\"obs\">\n <cds-overflow-menu\n valtimoCdsOverflowButton\n [width]=\"250\"\n [customTrigger]=\"customTrigger\"\n [offset]=\"{y: 48, x: 37}\"\n class=\"overflow-button\"\n >\n <cds-overflow-menu-option\n [id]=\"'exportDocumentDefinition'\"\n [disabled]=\"obs.exporting || obs.loadingVersion\"\n (selected)=\"export()\"\n >{{\n 'dossierManagement.export' | translate: {value: documentDefinitionTitle}\n }}</cds-overflow-menu-option\n >\n\n <cds-overflow-menu-option\n *ngIf=\"obs.selectedDocumentDefinition && !obs.selectedDocumentDefinition.readOnly\"\n [id]=\"'removeDocumentDefinition'\"\n [disabled]=\"obs.exporting || obs.loadingVersion\"\n (selected)=\"openDossierRemoveModal()\"\n >{{ 'Remove document definition' | translate }}</cds-overflow-menu-option\n >\n </cds-overflow-menu>\n</ng-template>\n\n<ng-template #customTrigger>\n <button cdsButton=\"tertiary\" [size]=\"(compactMode$ | async) ? 'sm' : 'md'\">\n {{ 'dossierManagement.more' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"overflow-menu--vertical\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #exportingMessage>\n <div class=\"exporting-message\">\n <span class=\"cds--inline-notification__title\">{{\n 'dossierManagement.preparingDownload' | translate\n }}</span>\n\n <cds-loading size=\"sm\"></cds-loading>\n </div>\n</ng-template>\n\n<ng-template #readOnly let-obs=\"obs\">\n <cds-tag *ngIf=\"obs.selectedDocumentDefinitionIsReadOnly\" type=\"blue\">{{\n 'dossierManagement.readonly' | translate\n }}</cds-tag>\n</ng-template>\n\n<valtimo-dossier-management-remove-modal\n #dossierRemoveModal\n></valtimo-dossier-management-remove-modal>\n", styles: [".dossier-actions{display:flex;width:100%;justify-content:space-between;align-items:flex-end}.dossier-actions.--compact{align-items:center}.dossier-actions ::ng-deep .version-selection{width:160px}.dossier-actions ::ng-deep .version-selection .cds--list-box__selection{display:none}.exporting-message{width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px}.dossier-metadata{display:flex;gap:24px;align-items:flex-end}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i1.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i1.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i1.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: i1.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "component", type: i1.OverflowMenu, selector: "cds-overflow-menu, ibm-overflow-menu", inputs: ["buttonLabel", "flip", "placement", "open", "customTrigger", "offset", "wrapperClass", "triggerClass"], outputs: ["openChange"] }, { kind: "component", type: i1.OverflowMenuOption, selector: "cds-overflow-menu-option, ibm-overflow-menu-option", inputs: ["divider", "type", "disabled", "href", "target", "innerClass"], outputs: ["selected"] }, { kind: "directive", type: i5.ValtimoCdsOverflowButtonDirective, selector: "[valtimoCdsOverflowButton]", inputs: ["width"] }, { kind: "component", type: i1.Tag, selector: "cds-tag, ibm-tag", inputs: ["type", "size", "class"] }, { kind: "component", type: i7.DossierManagementRemoveModalComponent, selector: "valtimo-dossier-management-remove-modal" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
139
139
  }
140
140
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DossierManagementDetailContainerActionsComponent, decorators: [{
141
141
  type: Component,
142
- args: [{ selector: 'valtimo-dossier-management-detail-container-actions', changeDetection: ChangeDetectionStrategy.OnPush, providers: [NotificationService], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"dossier-actions\"\n *ngIf=\"{\n exporting: exporting$ | async,\n loadingVersion: loadingVersion$ | async,\n versionListItems: versionListItems$ | async,\n selectedDocumentDefinition: selectedDocumentDefinition$ | async,\n selectedDocumentDefinitionIsReadOnly: selectedDocumentDefinitionIsReadOnly$ | async,\n compactMode: compactMode$ | async\n } as obs\"\n [ngClass]=\"{'--compact': obs.compactMode}\"\n>\n <div class=\"dossier-metadata\">\n <ng-container *ngTemplateOutlet=\"versionSelection; context: {obs: obs}\"></ng-container>\n\n <ng-container *ngTemplateOutlet=\"readOnly; context: {obs: obs}\"></ng-container>\n </div>\n\n <ng-container *ngTemplateOutlet=\"exportMenu; context: {obs: obs}\"></ng-container>\n</div>\n\n<ng-template #versionSelection let-obs=\"obs\">\n <cds-dropdown\n class=\"version-selection\"\n [disabled]=\"obs.loadingVersion || (obs.versionListItems.length || []) === 1\"\n [skeleton]=\"obs.loadingVersion\"\n (selected)=\"setVersion($event)\"\n [size]=\"obs.compactMode ? 'sm' : 'md'\"\n >\n <cds-dropdown-list [items]=\"obs.versionListItems || []\"></cds-dropdown-list>\n </cds-dropdown>\n</ng-template>\n\n<ng-template #exportMenu let-obs=\"obs\">\n <cds-overflow-menu\n valtimoCdsOverflowButton\n [width]=\"250\"\n [customTrigger]=\"customTrigger\"\n [offset]=\"{y: 48, x: 37}\"\n class=\"overflow-button\"\n >\n <cds-overflow-menu-option\n [id]=\"'exportDocumentDefinition'\"\n [disabled]=\"obs.exporting || obs.loadingVersion\"\n (selected)=\"export()\"\n >{{\n 'dossierManagement.export' | translate: {value: documentDefinitionTitle}\n }}</cds-overflow-menu-option\n >\n\n <cds-overflow-menu-option\n *ngIf=\"obs.selectedDocumentDefinition && !obs.selectedDocumentDefinition.readOnly\"\n [id]=\"'removeDocumentDefinition'\"\n [disabled]=\"obs.exporting || obs.loadingVersion\"\n (selected)=\"openDossierRemoveModal()\"\n >{{ 'Remove document definition' | translate }}</cds-overflow-menu-option\n >\n </cds-overflow-menu>\n</ng-template>\n\n<ng-template #customTrigger>\n <button cdsButton=\"tertiary\" [size]=\"(compactMode$ | async) ? 'sm' : 'md'\">\n {{ 'dossierManagement.more' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"overflow-menu--vertical\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #exportingMessage>\n <div class=\"exporting-message\">\n <span class=\"cds--inline-notification__title\">{{\n 'dossierManagement.preparingDownload' | translate\n }}</span>\n\n <cds-loading size=\"sm\"></cds-loading>\n </div>\n</ng-template>\n\n<ng-template #readOnly let-obs=\"obs\">\n <cds-tag *ngIf=\"obs.selectedDocumentDefinitionIsReadOnly\" type=\"blue\">{{\n 'dossierManagement.readonly' | translate\n }}</cds-tag>\n</ng-template>\n\n<valtimo-dossier-management-remove-modal\n #dossierRemoveModal\n></valtimo-dossier-management-remove-modal>\n", styles: [".dossier-actions{display:flex;width:100%;justify-content:space-between;align-items:flex-end}.dossier-actions.--compact{align-items:center}.dossier-actions ::ng-deep .version-selection{width:160px}.dossier-actions ::ng-deep .version-selection .cds--list-box__selection{display:none}.exporting-message{width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px}.dossier-metadata{display:flex;gap:24px;align-items:flex-end}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
142
+ args: [{ selector: 'valtimo-dossier-management-detail-container-actions', changeDetection: ChangeDetectionStrategy.OnPush, providers: [NotificationService], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"dossier-actions\"\n *ngIf=\"{\n exporting: exporting$ | async,\n loadingVersion: loadingVersion$ | async,\n versionListItems: versionListItems$ | async,\n selectedDocumentDefinition: selectedDocumentDefinition$ | async,\n selectedDocumentDefinitionIsReadOnly: selectedDocumentDefinitionIsReadOnly$ | async,\n compactMode: compactMode$ | async,\n } as obs\"\n [ngClass]=\"{'--compact': obs.compactMode}\"\n>\n <div class=\"dossier-metadata\">\n <ng-container *ngTemplateOutlet=\"versionSelection; context: {obs: obs}\"></ng-container>\n\n <ng-container *ngTemplateOutlet=\"readOnly; context: {obs: obs}\"></ng-container>\n </div>\n\n <ng-container *ngTemplateOutlet=\"exportMenu; context: {obs: obs}\"></ng-container>\n</div>\n\n<ng-template #versionSelection let-obs=\"obs\">\n <cds-dropdown\n class=\"version-selection\"\n [disabled]=\"obs.loadingVersion || (obs.versionListItems.length || []) === 1\"\n [skeleton]=\"obs.loadingVersion\"\n (selected)=\"setVersion($event)\"\n [size]=\"obs.compactMode ? 'sm' : 'md'\"\n >\n <cds-dropdown-list [items]=\"obs.versionListItems || []\"></cds-dropdown-list>\n </cds-dropdown>\n</ng-template>\n\n<ng-template #exportMenu let-obs=\"obs\">\n <cds-overflow-menu\n valtimoCdsOverflowButton\n [width]=\"250\"\n [customTrigger]=\"customTrigger\"\n [offset]=\"{y: 48, x: 37}\"\n class=\"overflow-button\"\n >\n <cds-overflow-menu-option\n [id]=\"'exportDocumentDefinition'\"\n [disabled]=\"obs.exporting || obs.loadingVersion\"\n (selected)=\"export()\"\n >{{\n 'dossierManagement.export' | translate: {value: documentDefinitionTitle}\n }}</cds-overflow-menu-option\n >\n\n <cds-overflow-menu-option\n *ngIf=\"obs.selectedDocumentDefinition && !obs.selectedDocumentDefinition.readOnly\"\n [id]=\"'removeDocumentDefinition'\"\n [disabled]=\"obs.exporting || obs.loadingVersion\"\n (selected)=\"openDossierRemoveModal()\"\n >{{ 'Remove document definition' | translate }}</cds-overflow-menu-option\n >\n </cds-overflow-menu>\n</ng-template>\n\n<ng-template #customTrigger>\n <button cdsButton=\"tertiary\" [size]=\"(compactMode$ | async) ? 'sm' : 'md'\">\n {{ 'dossierManagement.more' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"overflow-menu--vertical\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #exportingMessage>\n <div class=\"exporting-message\">\n <span class=\"cds--inline-notification__title\">{{\n 'dossierManagement.preparingDownload' | translate\n }}</span>\n\n <cds-loading size=\"sm\"></cds-loading>\n </div>\n</ng-template>\n\n<ng-template #readOnly let-obs=\"obs\">\n <cds-tag *ngIf=\"obs.selectedDocumentDefinitionIsReadOnly\" type=\"blue\">{{\n 'dossierManagement.readonly' | translate\n }}</cds-tag>\n</ng-template>\n\n<valtimo-dossier-management-remove-modal\n #dossierRemoveModal\n></valtimo-dossier-management-remove-modal>\n", styles: [".dossier-actions{display:flex;width:100%;justify-content:space-between;align-items:flex-end}.dossier-actions.--compact{align-items:center}.dossier-actions ::ng-deep .version-selection{width:160px}.dossier-actions ::ng-deep .version-selection .cds--list-box__selection{display:none}.exporting-message{width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px}.dossier-metadata{display:flex;gap:24px;align-items:flex-end}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
143
143
  }], ctorParameters: () => [{ type: Document, decorators: [{
144
144
  type: Inject,
145
145
  args: [DOCUMENT]
@@ -156,4 +156,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
156
156
  }], versionSet: [{
157
157
  type: Output
158
158
  }] } });
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1tYW5hZ2VtZW50LWRldGFpbC1jb250YWluZXItYWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rvc3NpZXItbWFuYWdlbWVudC9zcmMvbGliL2NvbXBvbmVudHMvZG9zc2llci1tYW5hZ2VtZW50LWRldGFpbC1jb250YWluZXItYWN0aW9ucy9kb3NzaWVyLW1hbmFnZW1lbnQtZGV0YWlsLWNvbnRhaW5lci1hY3Rpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci1tYW5hZ2VtZW50L3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLW1hbmFnZW1lbnQtZGV0YWlsLWNvbnRhaW5lci1hY3Rpb25zL2Rvc3NpZXItbWFuYWdlbWVudC1kZXRhaWwtY29udGFpbmVyLWFjdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3JGLE9BQU8sRUFBeUIsbUJBQW1CLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUd0RixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFHekMsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7QUFXcEMsTUFBTSxPQUFPLGdEQUFnRDtJQU8zRCxJQUFvQixzQkFBc0IsQ0FBQyxLQUFhO1FBQ3RELElBQUks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QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxtQkFBbUIsQ0FBQzs7MEJBMEQ3QixNQUFNOzJCQUFDLFFBQVE7OE9BdERELHlCQUF5QjtzQkFEekMsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBR1osbUJBQW1CO3NCQURuQyxTQUFTO3VCQUFDLG9CQUFvQjtnQkFHZix1QkFBdUI7c0JBQXRDLEtBQUs7Z0JBQ2Msc0JBQXNCO3NCQUF6QyxLQUFLO2dCQUdXLFVBQVU7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBzd2l0Y2hNYXAsIHRhcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0xpc3RJdGVtLCBOb3RpZmljYXRpb24sIE5vdGlmaWNhdGlvblNlcnZpY2V9IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuaW1wb3J0IHtEb3NzaWVyRGV0YWlsU2VydmljZSwgRG9zc2llckV4cG9ydFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtIdHRwUmVzcG9uc2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7RG9jdW1lbnRTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9kb2N1bWVudCc7XG5pbXBvcnQge3Rha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7RG9zc2llck1hbmFnZW1lbnRSZW1vdmVNb2RhbENvbXBvbmVudH0gZnJvbSAnLi4vZG9zc2llci1tYW5hZ2VtZW50LXJlbW92ZS1tb2RhbC9kb3NzaWVyLW1hbmFnZW1lbnQtcmVtb3ZlLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQge1BhZ2VIZWFkZXJTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1kb3NzaWVyLW1hbmFnZW1lbnQtZGV0YWlsLWNvbnRhaW5lci1hY3Rpb25zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Rvc3NpZXItbWFuYWdlbWVudC1kZXRhaWwtY29udGFpbmVyLWFjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb3NzaWVyLW1hbmFnZW1lbnQtZGV0YWlsLWNvbnRhaW5lci1hY3Rpb25zLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtOb3RpZmljYXRpb25TZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgRG9zc2llck1hbmFnZW1lbnREZXRhaWxDb250YWluZXJBY3Rpb25zQ29tcG9uZW50IHtcbiAgQFZpZXdDaGlsZCgnZXhwb3J0aW5nTWVzc2FnZScpXG4gIHByaXZhdGUgcmVhZG9ubHkgX2V4cG9ydE1lc3NhZ2VUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCdkb3NzaWVyUmVtb3ZlTW9kYWwnKVxuICBwcml2YXRlIHJlYWRvbmx5IF9kb3NzaWVyUmVtb3ZlTW9kYWw6IERvc3NpZXJNYW5hZ2VtZW50UmVtb3ZlTW9kYWxDb21wb25lbnQ7XG5cbiAgQElucHV0KCkgcHVibGljIGRvY3VtZW50RGVmaW5pdGlvblRpdGxlID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgZG9jdW1lbnREZWZpbml0aW9uTmFtZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5kb3NzaWVyRGV0YWlsU2VydmljZS5zZXRTZWxlY3RlZERvY3VtZW50RGVmaW5pdGlvbk5hbWUodmFsdWUpO1xuICB9XG4gIEBPdXRwdXQoKSBwdWJsaWMgdmVyc2lvblNldCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIHB1YmxpYyByZWFkb25seSBDQVJCT05fVEhFTUUgPSAnZzEwJztcblxuICBwdWJsaWMgcmVhZG9ubHkgZXhwb3J0aW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWRWZXJzaW9uTnVtYmVyJCA9IHRoaXMuZG9zc2llckRldGFpbFNlcnZpY2Uuc2VsZWN0ZWRWZXJzaW9uTnVtYmVyJDtcbiAgcHJpdmF0ZSByZWFkb25seSBfcHJldmlvdXNTZWxlY3RlZFZlcnNpb25OdW1iZXIkID1cbiAgICB0aGlzLmRvc3NpZXJEZXRhaWxTZXJ2aWNlLnByZXZpb3VzU2VsZWN0ZWRWZXJzaW9uTnVtYmVyJDtcbiAgcHJpdmF0ZSByZWFkb25seSBfZG9jdW1lbnREZWZpbml0aW9uTmFtZSQgPVxuICAgIHRoaXMuZG9zc2llckRldGFpbFNlcnZpY2Uuc2VsZWN0ZWREb2N1bWVudERlZmluaXRpb25OYW1lJDtcbiAgcHVibGljIHJlYWRvbmx5IGxvYWRpbmdWZXJzaW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RvY3VtZW50RGVmaW5pdGlvblZlcnNpb25zJCA9IHRoaXMuX2RvY3VtZW50RGVmaW5pdGlvbk5hbWUkLnBpcGUoXG4gICAgc3dpdGNoTWFwKGRvY3VtZW50RGVmaW5pdGlvbk5hbWUgPT5cbiAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmdldERvY3VtZW50RGVmaW5pdGlvblZlcnNpb25zKGRvY3VtZW50RGVmaW5pdGlvbk5hbWUpXG4gICAgKSxcbiAgICB0YXAocmVzID0+IHtcbiAgICAgIHRoaXMuZG9zc2llckRldGFpbFNlcnZpY2Uuc2V0U2VsZWN0ZWRWZXJzaW9uTnVtYmVyKHRoaXMuZmluZExhcmdlc3RJbkFycmF5KHJlcy52ZXJzaW9ucykpO1xuICAgICAgdGhpcy5sb2FkaW5nVmVyc2lvbiQubmV4dChmYWxzZSk7XG4gICAgfSlcbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgdmVyc2lvbkxpc3RJdGVtcyQ6IE9ic2VydmFibGU8QXJyYXk8TGlzdEl0ZW0+PiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuX2RvY3VtZW50RGVmaW5pdGlvblZlcnNpb25zJCxcbiAgICB0aGlzLnNlbGVjdGVkVmVyc2lvbk51bWJlciQsXG4gICAgdGhpcy5fcHJldmlvdXNTZWxlY3RlZFZlcnNpb25OdW1iZXIkLFxuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5zdHJlYW0oJ2tleScpLFxuICBdKS5waXBlKFxuICAgIG1hcChcbiAgICAgIChbdmVyc2lvbnNSZXMsIHNlbGVjdFZlcnNpb25OdW1iZXIsIHByZXZpb3VzVmVyc2lvbk51bWJlcl0pID0+XG4gICAgICAgIHZlcnNpb25zUmVzPy52ZXJzaW9ucz8ubWFwKHZlcnNpb24gPT4gKHtcbiAgICAgICAgICBjb250ZW50OiBgJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnZG9zc2llck1hbmFnZW1lbnQudmVyc2lvbicpfSR7dmVyc2lvbn1gLFxuICAgICAgICAgIHNlbGVjdGVkOiBzZWxlY3RWZXJzaW9uTnVtYmVyID09PSB2ZXJzaW9uIHx8IHByZXZpb3VzVmVyc2lvbk51bWJlciA9PT0gdmVyc2lvbixcbiAgICAgICAgICBpZDogYCR7dmVyc2lvbn1gLFxuICAgICAgICB9KSkgfHwgW11cbiAgICApXG4gICk7XG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZERvY3VtZW50RGVmaW5pdGlvbiQgPSB0aGlzLmRvc3NpZXJEZXRhaWxTZXJ2aWNlLmRvY3VtZW50RGVmaW5pdGlvbiQ7XG5cbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGVkRG9jdW1lbnREZWZpbml0aW9uSXNSZWFkT25seSQgPVxuICAgIHRoaXMuZG9zc2llckRldGFpbFNlcnZpY2Uuc2VsZWN0ZWREb2N1bWVudERlZmluaXRpb25Jc1JlYWRPbmx5JDtcblxuICBwdWJsaWMgcmVhZG9ubHkgY29tcGFjdE1vZGUkID0gdGhpcy5wYWdlSGVhZGVyU2VydmljZS5jb21wYWN0TW9kZSQ7XG5cbiAgcHJpdmF0ZSBfY3VycmVudE5vdGlmaWNhdGlvbiE6IE5vdGlmaWNhdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb3NzaWVyRXhwb3J0U2VydmljZTogRG9zc2llckV4cG9ydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRTZXJ2aWNlOiBEb2N1bWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb3NzaWVyRGV0YWlsU2VydmljZTogRG9zc2llckRldGFpbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwYWdlSGVhZGVyU2VydmljZTogUGFnZUhlYWRlclNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBleHBvcnQoKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZUN1cnJlbnROb3RpZmljYXRpb24oKTtcblxuICAgIHRoaXMuX2N1cnJlbnROb3RpZmljYXRpb24gPSB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd05vdGlmaWNhdGlvbih7XG4gICAgICB0eXBlOiAnaW5mbycsXG4gICAgICB0aXRsZTogJycsXG4gICAgICBzaG93Q2xvc2U6IGZhbHNlLFxuICAgICAgdGVtcGxhdGU6IHRoaXMuX2V4cG9ydE1lc3NhZ2VUZW1wbGF0ZVJlZixcbiAgICB9KTtcbiAgICBsZXQgc2VsZWN0ZWRWZXJzaW9uTnVtYmVyITogbnVtYmVyO1xuXG4gICAgdGhpcy5zdGFydEV4cG9ydGluZygpO1xuXG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5zZWxlY3RlZFZlcnNpb25OdW1iZXIkLCB0aGlzLl9kb2N1bWVudERlZmluaXRpb25OYW1lJF0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgdGFwKChbc2VsZWN0ZWRWZXJzaW9uXSkgPT4gKHNlbGVjdGVkVmVyc2lvbk51bWJlciA9IHNlbGVjdGVkVmVyc2lvbikpLFxuICAgICAgICBzd2l0Y2hNYXAoKFtzZWxlY3RlZFZlcnNpb24sIGRvY3VtZW50RGVmaW5pdGlvbk5hbWVdKSA9PlxuICAgICAgICAgIHRoaXMuZG9zc2llckV4cG9ydFNlcnZpY2UuZXhwb3J0RG9jdW1lbnREZWZpbml0aW9uKFxuICAgICAgICAgICAgZG9jdW1lbnREZWZpbml0aW9uTmFtZSxcbiAgICAgICAgICAgIHNlbGVjdGVkVmVyc2lvblxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IHJlc3BvbnNlID0+IHtcbiAgICAgICAgICB0aGlzLmNsb3NlQ3VycmVudE5vdGlmaWNhdGlvbigpO1xuICAgICAgICAgIHRoaXMuX2N1cnJlbnROb3RpZmljYXRpb24gPSB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd05vdGlmaWNhdGlvbih7XG4gICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsXG4gICAgICAgICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2Rvc3NpZXJNYW5hZ2VtZW50LmV4cG9ydFN1Y2Nlc3NUaXRsZScpLFxuICAgICAgICAgICAgZHVyYXRpb246IDUwMDAsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5kb3dubG9hZFppcChyZXNwb25zZSwgc2VsZWN0ZWRWZXJzaW9uTnVtYmVyKTtcbiAgICAgICAgICB0aGlzLnN0b3BFeHBvcnRpbmcoKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLmNsb3NlQ3VycmVudE5vdGlmaWNhdGlvbigpO1xuICAgICAgICAgIHRoaXMuX2N1cnJlbnROb3RpZmljYXRpb24gPSB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd05vdGlmaWNhdGlvbih7XG4gICAgICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdkb3NzaWVyTWFuYWdlbWVudC5leHBvcnRFcnJvclRpdGxlJyksXG4gICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnZG9zc2llck1hbmFnZW1lbnQuZXhwb3J0RXJyb3JNZXNzYWdlJyksXG4gICAgICAgICAgICBkdXJhdGlvbjogNTAwMCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLnN0b3BFeHBvcnRpbmcoKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNldFZlcnNpb24odmVyc2lvbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy52ZXJzaW9uU2V0LmVtaXQoTnVtYmVyKHZlcnNpb24uaXRlbS5pZCkpO1xuICB9XG5cbiAgcHVibGljIG9wZW5Eb3NzaWVyUmVtb3ZlTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZERvY3VtZW50RGVmaW5pdGlvbiQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoZGVmaW5pdGlvbiA9PiB7XG4gICAgICB0aGlzLl9kb3NzaWVyUmVtb3ZlTW9kYWwub3Blbk1vZGFsKGRlZmluaXRpb24pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGFydEV4cG9ydGluZygpOiB2b2lkIHtcbiAgICB0aGlzLmV4cG9ydGluZyQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RvcEV4cG9ydGluZygpOiB2b2lkIHtcbiAgICB0aGlzLmV4cG9ydGluZyQubmV4dChmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIGRvd25sb2FkWmlwKHJlc3BvbnNlOiBIdHRwUmVzcG9uc2U8QmxvYj4sIHZlcnNpb25OdW1iZXI6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgY29uc3QgY29udGVudERpc3Bvc2l0aW9uID0gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ2NvbnRlbnQtZGlzcG9zaXRpb24nKTtcbiAgICBjb25zdCBzcGxpdENvbnRlbnREaXNwb3NpdGlvbiA9IGNvbnRlbnREaXNwb3NpdGlvbi5zcGxpdCgnZmlsZW5hbWU9Jyk7XG4gICAgY29uc3QgZmlsZU5hbWUgPSBzcGxpdENvbnRlbnREaXNwb3NpdGlvbi5sZW5ndGggPiAxICYmIHNwbGl0Q29udGVudERpc3Bvc2l0aW9uWzFdO1xuXG4gICAgbGluay5ocmVmID0gdGhpcy5kb2N1bWVudC5kZWZhdWx0Vmlldy5VUkwuY3JlYXRlT2JqZWN0VVJMKHJlc3BvbnNlLmJvZHkpO1xuICAgIGxpbmsuZG93bmxvYWQgPSBmaWxlTmFtZSB8fCBgJHt0aGlzLmRvY3VtZW50RGVmaW5pdGlvbk5hbWV9XyR7dmVyc2lvbk51bWJlcn0udmFsdGltby56aXBgO1xuICAgIGxpbmsudGFyZ2V0ID0gJ19ibGFuayc7XG4gICAgbGluay5jbGljaygpO1xuICAgIGxpbmsucmVtb3ZlKCk7XG4gIH1cblxuICBwcml2YXRlIGNsb3NlQ3VycmVudE5vdGlmaWNhdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fY3VycmVudE5vdGlmaWNhdGlvbikge1xuICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmNsb3NlKHRoaXMuX2N1cnJlbnROb3RpZmljYXRpb24pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmluZExhcmdlc3RJbkFycmF5KGFycmF5OiBBcnJheTxudW1iZXI+KTogbnVtYmVyIHtcbiAgICByZXR1cm4gYXJyYXkucmVkdWNlKGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICByZXR1cm4gYSA+IGIgPyBhIDogYjtcbiAgICB9KTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48ZGl2XG4gIGNsYXNzPVwiZG9zc2llci1hY3Rpb25zXCJcbiAgKm5nSWY9XCJ7XG4gICAgZXhwb3J0aW5nOiBleHBvcnRpbmckIHwgYXN5bmMsXG4gICAgbG9hZGluZ1ZlcnNpb246IGxvYWRpbmdWZXJzaW9uJCB8IGFzeW5jLFxuICAgIHZlcnNpb25MaXN0SXRlbXM6IHZlcnNpb25MaXN0SXRlbXMkIHwgYXN5bmMsXG4gICAgc2VsZWN0ZWREb2N1bWVudERlZmluaXRpb246IHNlbGVjdGVkRG9jdW1lbnREZWZpbml0aW9uJCB8IGFzeW5jLFxuICAgIHNlbGVjdGVkRG9jdW1lbnREZWZpbml0aW9uSXNSZWFkT25seTogc2VsZWN0ZWREb2N1bWVudERlZmluaXRpb25Jc1JlYWRPbmx5JCB8IGFzeW5jLFxuICAgIGNvbXBhY3RNb2RlOiBjb21wYWN0TW9kZSQgfCBhc3luY1xuICB9IGFzIG9ic1wiXG4gIFtuZ0NsYXNzXT1cInsnLS1jb21wYWN0Jzogb2JzLmNvbXBhY3RNb2RlfVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJkb3NzaWVyLW1ldGFkYXRhXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInZlcnNpb25TZWxlY3Rpb247IGNvbnRleHQ6IHtvYnM6IG9ic31cIj48L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZWFkT25seTsgY29udGV4dDoge29iczogb2JzfVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cblxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZXhwb3J0TWVudTsgY29udGV4dDoge29iczogb2JzfVwiPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjdmVyc2lvblNlbGVjdGlvbiBsZXQtb2JzPVwib2JzXCI+XG4gIDxjZHMtZHJvcGRvd25cbiAgICBjbGFzcz1cInZlcnNpb24tc2VsZWN0aW9uXCJcbiAgICBbZGlzYWJsZWRdPVwib2JzLmxvYWRpbmdWZXJzaW9uIHx8IChvYnMudmVyc2lvbkxpc3RJdGVtcy5sZW5ndGggfHwgW10pID09PSAxXCJcbiAgICBbc2tlbGV0b25dPVwib2JzLmxvYWRpbmdWZXJzaW9uXCJcbiAgICAoc2VsZWN0ZWQpPVwic2V0VmVyc2lvbigkZXZlbnQpXCJcbiAgICBbc2l6ZV09XCJvYnMuY29tcGFjdE1vZGUgPyAnc20nIDogJ21kJ1wiXG4gID5cbiAgICA8Y2RzLWRyb3Bkb3duLWxpc3QgW2l0ZW1zXT1cIm9icy52ZXJzaW9uTGlzdEl0ZW1zIHx8IFtdXCI+PC9jZHMtZHJvcGRvd24tbGlzdD5cbiAgPC9jZHMtZHJvcGRvd24+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2V4cG9ydE1lbnUgbGV0LW9icz1cIm9ic1wiPlxuICA8Y2RzLW92ZXJmbG93LW1lbnVcbiAgICB2YWx0aW1vQ2RzT3ZlcmZsb3dCdXR0b25cbiAgICBbd2lkdGhdPVwiMjUwXCJcbiAgICBbY3VzdG9tVHJpZ2dlcl09XCJjdXN0b21UcmlnZ2VyXCJcbiAgICBbb2Zmc2V0XT1cInt5OiA0OCwgeDogMzd9XCJcbiAgICBjbGFzcz1cIm92ZXJmbG93LWJ1dHRvblwiXG4gID5cbiAgICA8Y2RzLW92ZXJmbG93LW1lbnUtb3B0aW9uXG4gICAgICBbaWRdPVwiJ2V4cG9ydERvY3VtZW50RGVmaW5pdGlvbidcIlxuICAgICAgW2Rpc2FibGVkXT1cIm9icy5leHBvcnRpbmcgfHwgb2JzLmxvYWRpbmdWZXJzaW9uXCJcbiAgICAgIChzZWxlY3RlZCk9XCJleHBvcnQoKVwiXG4gICAgICA+e3tcbiAgICAgICAgJ2Rvc3NpZXJNYW5hZ2VtZW50LmV4cG9ydCcgfCB0cmFuc2xhdGU6IHt2YWx1ZTogZG9jdW1lbnREZWZpbml0aW9uVGl0bGV9XG4gICAgICB9fTwvY2RzLW92ZXJmbG93LW1lbnUtb3B0aW9uXG4gICAgPlxuXG4gICAgPGNkcy1vdmVyZmxvdy1tZW51LW9wdGlvblxuICAgICAgKm5nSWY9XCJvYnMuc2VsZWN0ZWREb2N1bWVudERlZmluaXRpb24gJiYgIW9icy5zZWxlY3RlZERvY3VtZW50RGVmaW5pdGlvbi5yZWFkT25seVwiXG4gICAgICBbaWRdPVwiJ3JlbW92ZURvY3VtZW50RGVmaW5pdGlvbidcIlxuICAgICAgW2Rpc2FibGVkXT1cIm9icy5leHBvcnRpbmcgfHwgb2JzLmxvYWRpbmdWZXJzaW9uXCJcbiAgICAgIChzZWxlY3RlZCk9XCJvcGVuRG9zc2llclJlbW92ZU1vZGFsKClcIlxuICAgICAgPnt7ICdSZW1vdmUgZG9jdW1lbnQgZGVmaW5pdGlvbicgfCB0cmFuc2xhdGUgfX08L2Nkcy1vdmVyZmxvdy1tZW51LW9wdGlvblxuICAgID5cbiAgPC9jZHMtb3ZlcmZsb3ctbWVudT5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY3VzdG9tVHJpZ2dlcj5cbiAgPGJ1dHRvbiBjZHNCdXR0b249XCJ0ZXJ0aWFyeVwiIFtzaXplXT1cIihjb21wYWN0TW9kZSQgfCBhc3luYykgPyAnc20nIDogJ21kJ1wiPlxuICAgIHt7ICdkb3NzaWVyTWFuYWdlbWVudC5tb3JlJyB8IHRyYW5zbGF0ZSB9fVxuXG4gICAgPHN2ZyBjbGFzcz1cImNkcy0tYnRuX19pY29uXCIgY2RzSWNvbj1cIm92ZXJmbG93LW1lbnUtLXZlcnRpY2FsXCIgc2l6ZT1cIjE2XCI+PC9zdmc+XG4gIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNleHBvcnRpbmdNZXNzYWdlPlxuICA8ZGl2IGNsYXNzPVwiZXhwb3J0aW5nLW1lc3NhZ2VcIj5cbiAgICA8c3BhbiBjbGFzcz1cImNkcy0taW5saW5lLW5vdGlmaWNhdGlvbl9fdGl0bGVcIj57e1xuICAgICAgJ2Rvc3NpZXJNYW5hZ2VtZW50LnByZXBhcmluZ0Rvd25sb2FkJyB8IHRyYW5zbGF0ZVxuICAgIH19PC9zcGFuPlxuXG4gICAgPGNkcy1sb2FkaW5nIHNpemU9XCJzbVwiPjwvY2RzLWxvYWRpbmc+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNyZWFkT25seSBsZXQtb2JzPVwib2JzXCI+XG4gIDxjZHMtdGFnICpuZ0lmPVwib2JzLnNlbGVjdGVkRG9jdW1lbnREZWZpbml0aW9uSXNSZWFkT25seVwiIHR5cGU9XCJibHVlXCI+e3tcbiAgICAnZG9zc2llck1hbmFnZW1lbnQucmVhZG9ubHknIHwgdHJhbnNsYXRlXG4gIH19PC9jZHMtdGFnPlxuPC9uZy10ZW1wbGF0ZT5cblxuPHZhbHRpbW8tZG9zc2llci1tYW5hZ2VtZW50LXJlbW92ZS1tb2RhbFxuICAjZG9zc2llclJlbW92ZU1vZGFsXG4+PC92YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC1yZW1vdmUtbW9kYWw+XG4iXX0=
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1tYW5hZ2VtZW50LWRldGFpbC1jb250YWluZXItYWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rvc3NpZXItbWFuYWdlbWVudC9zcmMvbGliL2NvbXBvbmVudHMvZG9zc2llci1tYW5hZ2VtZW50LWRldGFpbC1jb250YWluZXItYWN0aW9ucy9kb3NzaWVyLW1hbmFnZW1lbnQtZGV0YWlsLWNvbnRhaW5lci1hY3Rpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci1tYW5hZ2VtZW50L3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLW1hbmFnZW1lbnQtZGV0YWlsLWNvbnRhaW5lci1hY3Rpb25zL2Rvc3NpZXItbWFuYWdlbWVudC1kZXRhaWwtY29udGFpbmVyLWFjdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3JGLE9BQU8sRUFBeUIsbUJBQW1CLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUd0RixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFHekMsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7QUFXcEMsTUFBTSxPQUFPLGdEQUFnRDtJQU8zRCxJQUFvQixzQkFBc0IsQ0FBQyxLQUFhO1FBQ3RELElBQUks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QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxtQkFBbUIsQ0FBQzs7MEJBMEQ3QixNQUFNOzJCQUFDLFFBQVE7OE9BdERELHlCQUF5QjtzQkFEekMsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBR1osbUJBQW1CO3NCQURuQyxTQUFTO3VCQUFDLG9CQUFvQjtnQkFHZix1QkFBdUI7c0JBQXRDLEtBQUs7Z0JBQ2Msc0JBQXNCO3NCQUF6QyxLQUFLO2dCQUdXLFVBQVU7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBzd2l0Y2hNYXAsIHRhcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0xpc3RJdGVtLCBOb3RpZmljYXRpb24sIE5vdGlmaWNhdGlvblNlcnZpY2V9IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuaW1wb3J0IHtEb3NzaWVyRGV0YWlsU2VydmljZSwgRG9zc2llckV4cG9ydFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtIdHRwUmVzcG9uc2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7RG9jdW1lbnRTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9kb2N1bWVudCc7XG5pbXBvcnQge3Rha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7RG9zc2llck1hbmFnZW1lbnRSZW1vdmVNb2RhbENvbXBvbmVudH0gZnJvbSAnLi4vZG9zc2llci1tYW5hZ2VtZW50LXJlbW92ZS1tb2RhbC9kb3NzaWVyLW1hbmFnZW1lbnQtcmVtb3ZlLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQge1BhZ2VIZWFkZXJTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1kb3NzaWVyLW1hbmFnZW1lbnQtZGV0YWlsLWNvbnRhaW5lci1hY3Rpb25zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Rvc3NpZXItbWFuYWdlbWVudC1kZXRhaWwtY29udGFpbmVyLWFjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb3NzaWVyLW1hbmFnZW1lbnQtZGV0YWlsLWNvbnRhaW5lci1hY3Rpb25zLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtOb3RpZmljYXRpb25TZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgRG9zc2llck1hbmFnZW1lbnREZXRhaWxDb250YWluZXJBY3Rpb25zQ29tcG9uZW50IHtcbiAgQFZpZXdDaGlsZCgnZXhwb3J0aW5nTWVzc2FnZScpXG4gIHByaXZhdGUgcmVhZG9ubHkgX2V4cG9ydE1lc3NhZ2VUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCdkb3NzaWVyUmVtb3ZlTW9kYWwnKVxuICBwcml2YXRlIHJlYWRvbmx5IF9kb3NzaWVyUmVtb3ZlTW9kYWw6IERvc3NpZXJNYW5hZ2VtZW50UmVtb3ZlTW9kYWxDb21wb25lbnQ7XG5cbiAgQElucHV0KCkgcHVibGljIGRvY3VtZW50RGVmaW5pdGlvblRpdGxlID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgZG9jdW1lbnREZWZpbml0aW9uTmFtZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5kb3NzaWVyRGV0YWlsU2VydmljZS5zZXRTZWxlY3RlZERvY3VtZW50RGVmaW5pdGlvbk5hbWUodmFsdWUpO1xuICB9XG4gIEBPdXRwdXQoKSBwdWJsaWMgdmVyc2lvblNldCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIHB1YmxpYyByZWFkb25seSBDQVJCT05fVEhFTUUgPSAnZzEwJztcblxuICBwdWJsaWMgcmVhZG9ubHkgZXhwb3J0aW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWRWZXJzaW9uTnVtYmVyJCA9IHRoaXMuZG9zc2llckRldGFpbFNlcnZpY2Uuc2VsZWN0ZWRWZXJzaW9uTnVtYmVyJDtcbiAgcHJpdmF0ZSByZWFkb25seSBfcHJldmlvdXNTZWxlY3RlZFZlcnNpb25OdW1iZXIkID1cbiAgICB0aGlzLmRvc3NpZXJEZXRhaWxTZXJ2aWNlLnByZXZpb3VzU2VsZWN0ZWRWZXJzaW9uTnVtYmVyJDtcbiAgcHJpdmF0ZSByZWFkb25seSBfZG9jdW1lbnREZWZpbml0aW9uTmFtZSQgPVxuICAgIHRoaXMuZG9zc2llckRldGFpbFNlcnZpY2Uuc2VsZWN0ZWREb2N1bWVudERlZmluaXRpb25OYW1lJDtcbiAgcHVibGljIHJlYWRvbmx5IGxvYWRpbmdWZXJzaW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RvY3VtZW50RGVmaW5pdGlvblZlcnNpb25zJCA9IHRoaXMuX2RvY3VtZW50RGVmaW5pdGlvbk5hbWUkLnBpcGUoXG4gICAgc3dpdGNoTWFwKGRvY3VtZW50RGVmaW5pdGlvbk5hbWUgPT5cbiAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmdldERvY3VtZW50RGVmaW5pdGlvblZlcnNpb25zKGRvY3VtZW50RGVmaW5pdGlvbk5hbWUpXG4gICAgKSxcbiAgICB0YXAocmVzID0+IHtcbiAgICAgIHRoaXMuZG9zc2llckRldGFpbFNlcnZpY2Uuc2V0U2VsZWN0ZWRWZXJzaW9uTnVtYmVyKHRoaXMuZmluZExhcmdlc3RJbkFycmF5KHJlcy52ZXJzaW9ucykpO1xuICAgICAgdGhpcy5sb2FkaW5nVmVyc2lvbiQubmV4dChmYWxzZSk7XG4gICAgfSlcbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgdmVyc2lvbkxpc3RJdGVtcyQ6IE9ic2VydmFibGU8QXJyYXk8TGlzdEl0ZW0+PiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuX2RvY3VtZW50RGVmaW5pdGlvblZlcnNpb25zJCxcbiAgICB0aGlzLnNlbGVjdGVkVmVyc2lvbk51bWJlciQsXG4gICAgdGhpcy5fcHJldmlvdXNTZWxlY3RlZFZlcnNpb25OdW1iZXIkLFxuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5zdHJlYW0oJ2tleScpLFxuICBdKS5waXBlKFxuICAgIG1hcChcbiAgICAgIChbdmVyc2lvbnNSZXMsIHNlbGVjdFZlcnNpb25OdW1iZXIsIHByZXZpb3VzVmVyc2lvbk51bWJlcl0pID0+XG4gICAgICAgIHZlcnNpb25zUmVzPy52ZXJzaW9ucz8ubWFwKHZlcnNpb24gPT4gKHtcbiAgICAgICAgICBjb250ZW50OiBgJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnZG9zc2llck1hbmFnZW1lbnQudmVyc2lvbicpfSR7dmVyc2lvbn1gLFxuICAgICAgICAgIHNlbGVjdGVkOiBzZWxlY3RWZXJzaW9uTnVtYmVyID09PSB2ZXJzaW9uIHx8IHByZXZpb3VzVmVyc2lvbk51bWJlciA9PT0gdmVyc2lvbixcbiAgICAgICAgICBpZDogYCR7dmVyc2lvbn1gLFxuICAgICAgICB9KSkgfHwgW11cbiAgICApXG4gICk7XG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZERvY3VtZW50RGVmaW5pdGlvbiQgPSB0aGlzLmRvc3NpZXJEZXRhaWxTZXJ2aWNlLmRvY3VtZW50RGVmaW5pdGlvbiQ7XG5cbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGVkRG9jdW1lbnREZWZpbml0aW9uSXNSZWFkT25seSQgPVxuICAgIHRoaXMuZG9zc2llckRldGFpbFNlcnZpY2Uuc2VsZWN0ZWREb2N1bWVudERlZmluaXRpb25Jc1JlYWRPbmx5JDtcblxuICBwdWJsaWMgcmVhZG9ubHkgY29tcGFjdE1vZGUkID0gdGhpcy5wYWdlSGVhZGVyU2VydmljZS5jb21wYWN0TW9kZSQ7XG5cbiAgcHJpdmF0ZSBfY3VycmVudE5vdGlmaWNhdGlvbiE6IE5vdGlmaWNhdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb3NzaWVyRXhwb3J0U2VydmljZTogRG9zc2llckV4cG9ydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRTZXJ2aWNlOiBEb2N1bWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb3NzaWVyRGV0YWlsU2VydmljZTogRG9zc2llckRldGFpbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwYWdlSGVhZGVyU2VydmljZTogUGFnZUhlYWRlclNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBleHBvcnQoKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZUN1cnJlbnROb3RpZmljYXRpb24oKTtcblxuICAgIHRoaXMuX2N1cnJlbnROb3RpZmljYXRpb24gPSB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd05vdGlmaWNhdGlvbih7XG4gICAgICB0eXBlOiAnaW5mbycsXG4gICAgICB0aXRsZTogJycsXG4gICAgICBzaG93Q2xvc2U6IGZhbHNlLFxuICAgICAgdGVtcGxhdGU6IHRoaXMuX2V4cG9ydE1lc3NhZ2VUZW1wbGF0ZVJlZixcbiAgICB9KTtcbiAgICBsZXQgc2VsZWN0ZWRWZXJzaW9uTnVtYmVyITogbnVtYmVyO1xuXG4gICAgdGhpcy5zdGFydEV4cG9ydGluZygpO1xuXG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5zZWxlY3RlZFZlcnNpb25OdW1iZXIkLCB0aGlzLl9kb2N1bWVudERlZmluaXRpb25OYW1lJF0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgdGFwKChbc2VsZWN0ZWRWZXJzaW9uXSkgPT4gKHNlbGVjdGVkVmVyc2lvbk51bWJlciA9IHNlbGVjdGVkVmVyc2lvbikpLFxuICAgICAgICBzd2l0Y2hNYXAoKFtzZWxlY3RlZFZlcnNpb24sIGRvY3VtZW50RGVmaW5pdGlvbk5hbWVdKSA9PlxuICAgICAgICAgIHRoaXMuZG9zc2llckV4cG9ydFNlcnZpY2UuZXhwb3J0RG9jdW1lbnREZWZpbml0aW9uKFxuICAgICAgICAgICAgZG9jdW1lbnREZWZpbml0aW9uTmFtZSxcbiAgICAgICAgICAgIHNlbGVjdGVkVmVyc2lvblxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IHJlc3BvbnNlID0+IHtcbiAgICAgICAgICB0aGlzLmNsb3NlQ3VycmVudE5vdGlmaWNhdGlvbigpO1xuICAgICAgICAgIHRoaXMuX2N1cnJlbnROb3RpZmljYXRpb24gPSB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd05vdGlmaWNhdGlvbih7XG4gICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsXG4gICAgICAgICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2Rvc3NpZXJNYW5hZ2VtZW50LmV4cG9ydFN1Y2Nlc3NUaXRsZScpLFxuICAgICAgICAgICAgZHVyYXRpb246IDUwMDAsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5kb3dubG9hZFppcChyZXNwb25zZSwgc2VsZWN0ZWRWZXJzaW9uTnVtYmVyKTtcbiAgICAgICAgICB0aGlzLnN0b3BFeHBvcnRpbmcoKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLmNsb3NlQ3VycmVudE5vdGlmaWNhdGlvbigpO1xuICAgICAgICAgIHRoaXMuX2N1cnJlbnROb3RpZmljYXRpb24gPSB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd05vdGlmaWNhdGlvbih7XG4gICAgICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdkb3NzaWVyTWFuYWdlbWVudC5leHBvcnRFcnJvclRpdGxlJyksXG4gICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnZG9zc2llck1hbmFnZW1lbnQuZXhwb3J0RXJyb3JNZXNzYWdlJyksXG4gICAgICAgICAgICBkdXJhdGlvbjogNTAwMCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLnN0b3BFeHBvcnRpbmcoKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNldFZlcnNpb24odmVyc2lvbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy52ZXJzaW9uU2V0LmVtaXQoTnVtYmVyKHZlcnNpb24uaXRlbS5pZCkpO1xuICB9XG5cbiAgcHVibGljIG9wZW5Eb3NzaWVyUmVtb3ZlTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZERvY3VtZW50RGVmaW5pdGlvbiQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoZGVmaW5pdGlvbiA9PiB7XG4gICAgICB0aGlzLl9kb3NzaWVyUmVtb3ZlTW9kYWwub3Blbk1vZGFsKGRlZmluaXRpb24pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGFydEV4cG9ydGluZygpOiB2b2lkIHtcbiAgICB0aGlzLmV4cG9ydGluZyQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RvcEV4cG9ydGluZygpOiB2b2lkIHtcbiAgICB0aGlzLmV4cG9ydGluZyQubmV4dChmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIGRvd25sb2FkWmlwKHJlc3BvbnNlOiBIdHRwUmVzcG9uc2U8QmxvYj4sIHZlcnNpb25OdW1iZXI6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgY29uc3QgY29udGVudERpc3Bvc2l0aW9uID0gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ2NvbnRlbnQtZGlzcG9zaXRpb24nKTtcbiAgICBjb25zdCBzcGxpdENvbnRlbnREaXNwb3NpdGlvbiA9IGNvbnRlbnREaXNwb3NpdGlvbi5zcGxpdCgnZmlsZW5hbWU9Jyk7XG4gICAgY29uc3QgZmlsZU5hbWUgPSBzcGxpdENvbnRlbnREaXNwb3NpdGlvbi5sZW5ndGggPiAxICYmIHNwbGl0Q29udGVudERpc3Bvc2l0aW9uWzFdO1xuXG4gICAgbGluay5ocmVmID0gdGhpcy5kb2N1bWVudC5kZWZhdWx0Vmlldy5VUkwuY3JlYXRlT2JqZWN0VVJMKHJlc3BvbnNlLmJvZHkpO1xuICAgIGxpbmsuZG93bmxvYWQgPSBmaWxlTmFtZSB8fCBgJHt0aGlzLmRvY3VtZW50RGVmaW5pdGlvbk5hbWV9XyR7dmVyc2lvbk51bWJlcn0udmFsdGltby56aXBgO1xuICAgIGxpbmsudGFyZ2V0ID0gJ19ibGFuayc7XG4gICAgbGluay5jbGljaygpO1xuICAgIGxpbmsucmVtb3ZlKCk7XG4gIH1cblxuICBwcml2YXRlIGNsb3NlQ3VycmVudE5vdGlmaWNhdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fY3VycmVudE5vdGlmaWNhdGlvbikge1xuICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmNsb3NlKHRoaXMuX2N1cnJlbnROb3RpZmljYXRpb24pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmluZExhcmdlc3RJbkFycmF5KGFycmF5OiBBcnJheTxudW1iZXI+KTogbnVtYmVyIHtcbiAgICByZXR1cm4gYXJyYXkucmVkdWNlKGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICByZXR1cm4gYSA+IGIgPyBhIDogYjtcbiAgICB9KTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48ZGl2XG4gIGNsYXNzPVwiZG9zc2llci1hY3Rpb25zXCJcbiAgKm5nSWY9XCJ7XG4gICAgZXhwb3J0aW5nOiBleHBvcnRpbmckIHwgYXN5bmMsXG4gICAgbG9hZGluZ1ZlcnNpb246IGxvYWRpbmdWZXJzaW9uJCB8IGFzeW5jLFxuICAgIHZlcnNpb25MaXN0SXRlbXM6IHZlcnNpb25MaXN0SXRlbXMkIHwgYXN5bmMsXG4gICAgc2VsZWN0ZWREb2N1bWVudERlZmluaXRpb246IHNlbGVjdGVkRG9jdW1lbnREZWZpbml0aW9uJCB8IGFzeW5jLFxuICAgIHNlbGVjdGVkRG9jdW1lbnREZWZpbml0aW9uSXNSZWFkT25seTogc2VsZWN0ZWREb2N1bWVudERlZmluaXRpb25Jc1JlYWRPbmx5JCB8IGFzeW5jLFxuICAgIGNvbXBhY3RNb2RlOiBjb21wYWN0TW9kZSQgfCBhc3luYyxcbiAgfSBhcyBvYnNcIlxuICBbbmdDbGFzc109XCJ7Jy0tY29tcGFjdCc6IG9icy5jb21wYWN0TW9kZX1cIlxuPlxuICA8ZGl2IGNsYXNzPVwiZG9zc2llci1tZXRhZGF0YVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ2ZXJzaW9uU2VsZWN0aW9uOyBjb250ZXh0OiB7b2JzOiBvYnN9XCI+PC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVhZE9ubHk7IGNvbnRleHQ6IHtvYnM6IG9ic31cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImV4cG9ydE1lbnU7IGNvbnRleHQ6IHtvYnM6IG9ic31cIj48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3ZlcnNpb25TZWxlY3Rpb24gbGV0LW9icz1cIm9ic1wiPlxuICA8Y2RzLWRyb3Bkb3duXG4gICAgY2xhc3M9XCJ2ZXJzaW9uLXNlbGVjdGlvblwiXG4gICAgW2Rpc2FibGVkXT1cIm9icy5sb2FkaW5nVmVyc2lvbiB8fCAob2JzLnZlcnNpb25MaXN0SXRlbXMubGVuZ3RoIHx8IFtdKSA9PT0gMVwiXG4gICAgW3NrZWxldG9uXT1cIm9icy5sb2FkaW5nVmVyc2lvblwiXG4gICAgKHNlbGVjdGVkKT1cInNldFZlcnNpb24oJGV2ZW50KVwiXG4gICAgW3NpemVdPVwib2JzLmNvbXBhY3RNb2RlID8gJ3NtJyA6ICdtZCdcIlxuICA+XG4gICAgPGNkcy1kcm9wZG93bi1saXN0IFtpdGVtc109XCJvYnMudmVyc2lvbkxpc3RJdGVtcyB8fCBbXVwiPjwvY2RzLWRyb3Bkb3duLWxpc3Q+XG4gIDwvY2RzLWRyb3Bkb3duPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNleHBvcnRNZW51IGxldC1vYnM9XCJvYnNcIj5cbiAgPGNkcy1vdmVyZmxvdy1tZW51XG4gICAgdmFsdGltb0Nkc092ZXJmbG93QnV0dG9uXG4gICAgW3dpZHRoXT1cIjI1MFwiXG4gICAgW2N1c3RvbVRyaWdnZXJdPVwiY3VzdG9tVHJpZ2dlclwiXG4gICAgW29mZnNldF09XCJ7eTogNDgsIHg6IDM3fVwiXG4gICAgY2xhc3M9XCJvdmVyZmxvdy1idXR0b25cIlxuICA+XG4gICAgPGNkcy1vdmVyZmxvdy1tZW51LW9wdGlvblxuICAgICAgW2lkXT1cIidleHBvcnREb2N1bWVudERlZmluaXRpb24nXCJcbiAgICAgIFtkaXNhYmxlZF09XCJvYnMuZXhwb3J0aW5nIHx8IG9icy5sb2FkaW5nVmVyc2lvblwiXG4gICAgICAoc2VsZWN0ZWQpPVwiZXhwb3J0KClcIlxuICAgICAgPnt7XG4gICAgICAgICdkb3NzaWVyTWFuYWdlbWVudC5leHBvcnQnIHwgdHJhbnNsYXRlOiB7dmFsdWU6IGRvY3VtZW50RGVmaW5pdGlvblRpdGxlfVxuICAgICAgfX08L2Nkcy1vdmVyZmxvdy1tZW51LW9wdGlvblxuICAgID5cblxuICAgIDxjZHMtb3ZlcmZsb3ctbWVudS1vcHRpb25cbiAgICAgICpuZ0lmPVwib2JzLnNlbGVjdGVkRG9jdW1lbnREZWZpbml0aW9uICYmICFvYnMuc2VsZWN0ZWREb2N1bWVudERlZmluaXRpb24ucmVhZE9ubHlcIlxuICAgICAgW2lkXT1cIidyZW1vdmVEb2N1bWVudERlZmluaXRpb24nXCJcbiAgICAgIFtkaXNhYmxlZF09XCJvYnMuZXhwb3J0aW5nIHx8IG9icy5sb2FkaW5nVmVyc2lvblwiXG4gICAgICAoc2VsZWN0ZWQpPVwib3BlbkRvc3NpZXJSZW1vdmVNb2RhbCgpXCJcbiAgICAgID57eyAnUmVtb3ZlIGRvY3VtZW50IGRlZmluaXRpb24nIHwgdHJhbnNsYXRlIH19PC9jZHMtb3ZlcmZsb3ctbWVudS1vcHRpb25cbiAgICA+XG4gIDwvY2RzLW92ZXJmbG93LW1lbnU+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2N1c3RvbVRyaWdnZXI+XG4gIDxidXR0b24gY2RzQnV0dG9uPVwidGVydGlhcnlcIiBbc2l6ZV09XCIoY29tcGFjdE1vZGUkIHwgYXN5bmMpID8gJ3NtJyA6ICdtZCdcIj5cbiAgICB7eyAnZG9zc2llck1hbmFnZW1lbnQubW9yZScgfCB0cmFuc2xhdGUgfX1cblxuICAgIDxzdmcgY2xhc3M9XCJjZHMtLWJ0bl9faWNvblwiIGNkc0ljb249XCJvdmVyZmxvdy1tZW51LS12ZXJ0aWNhbFwiIHNpemU9XCIxNlwiPjwvc3ZnPlxuICA8L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZXhwb3J0aW5nTWVzc2FnZT5cbiAgPGRpdiBjbGFzcz1cImV4cG9ydGluZy1tZXNzYWdlXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJjZHMtLWlubGluZS1ub3RpZmljYXRpb25fX3RpdGxlXCI+e3tcbiAgICAgICdkb3NzaWVyTWFuYWdlbWVudC5wcmVwYXJpbmdEb3dubG9hZCcgfCB0cmFuc2xhdGVcbiAgICB9fTwvc3Bhbj5cblxuICAgIDxjZHMtbG9hZGluZyBzaXplPVwic21cIj48L2Nkcy1sb2FkaW5nPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjcmVhZE9ubHkgbGV0LW9icz1cIm9ic1wiPlxuICA8Y2RzLXRhZyAqbmdJZj1cIm9icy5zZWxlY3RlZERvY3VtZW50RGVmaW5pdGlvbklzUmVhZE9ubHlcIiB0eXBlPVwiYmx1ZVwiPnt7XG4gICAgJ2Rvc3NpZXJNYW5hZ2VtZW50LnJlYWRvbmx5JyB8IHRyYW5zbGF0ZVxuICB9fTwvY2RzLXRhZz5cbjwvbmctdGVtcGxhdGU+XG5cbjx2YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC1yZW1vdmUtbW9kYWxcbiAgI2Rvc3NpZXJSZW1vdmVNb2RhbFxuPjwvdmFsdGltby1kb3NzaWVyLW1hbmFnZW1lbnQtcmVtb3ZlLW1vZGFsPlxuIl19
@@ -127,11 +127,11 @@ export class DossierManagementDocumentDefinitionComponent {
127
127
  this._pendingChanges$.next(false);
128
128
  }
129
129
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DossierManagementDocumentDefinitionComponent, deps: [{ token: i1.DocumentService }, { token: i2.DossierDetailService }, { token: i3.IconService }, { token: i4.PageHeaderService }], target: i0.ɵɵFactoryTarget.Component }); }
130
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DossierManagementDocumentDefinitionComponent, selector: "valtimo-dossier-management-document-definition", inputs: { documentDefinitionName: "documentDefinitionName" }, outputs: { cancelRedirect: "cancelRedirect", confirmRedirect: "confirmRedirect", pendingChangesUpdate: "pendingChangesUpdate" }, viewQueries: [{ propertyName: "cancelModal", first: true, predicate: ["cancelModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n documentDefinitionModel: documentDefinitionModel$ | async,\n editActive: editActive$ | async,\n loadingDocumentDefinition: loadingDocumentDefinition$ | async,\n pendingChanges: pendingChanges$ | async,\n saveButtonDisabled: saveButtonDisabled$ | async,\n selectedDocumentDefinition: selectedDocumentDefinition$ | async,\n compactMode: compactMode$ | async\n } as obs\"\n>\n <div class=\"cds--toolbar-content\">\n <ng-container *ngIf=\"!obs.editActive; else editActive\">\n <button\n cdsButton=\"ghost\"\n (click)=\"downloadDefinition()\"\n [disabled]=\"obs.loadingDocumentDefinition || !obs.selectedDocumentDefinition\"\n >\n {{ 'interface.download' | translate }}\n\n <svg cdsIcon=\"download\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n\n <button\n cdsButton=\"primary\"\n [disabled]=\"obs.selectedDocumentDefinition?.readOnly\"\n (click)=\"onEditClick()\"\n >\n {{ 'interface.edit' | translate }}\n\n <svg cdsIcon=\"edit\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </ng-container>\n </div>\n\n <valtimo-editor\n *ngIf=\"!obs.loadingDocumentDefinition; else loading\"\n [model]=\"obs.documentDefinitionModel\"\n [disabled]=\"!obs.editActive\"\n (validEvent)=\"onValidEvent($event)\"\n (valueChangeEvent)=\"onValueChangeEvent($event)\"\n [fitPage]=\"true\"\n [fitPageExtraSpace]=\"96\"\n >\n </valtimo-editor>\n\n <a id=\"downloadAnchorElement\" style=\"display: none\"></a>\n\n <ng-template #editActive>\n <button cdsButton=\"secondary\" (click)=\"onCancelClick(obs.pendingChanges)\">\n {{ 'interface.cancel' | translate }}\n\n <svg cdsIcon=\"close\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"obs.saveButtonDisabled\" (click)=\"onSaveClick()\">\n {{ 'interface.save' | translate }}\n\n <svg cdsIcon=\"save\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </ng-template>\n\n <valtimo-confirmation-modal\n [showModalSubject$]=\"showSaveConfirmation$\"\n cancelButtonTextTranslationKey=\"interface.cancel\"\n confirmButtonTextTranslationKey=\"interface.save\"\n contentTranslationKey=\"dossierManagement.documentDefinition.saveModalContent\"\n titleTranslationKey=\"interface.save\"\n (cancelEvent)=\"keepEditing()\"\n (confirmEvent)=\"saveDefinition()\"\n ></valtimo-confirmation-modal>\n\n <valtimo-confirmation-modal\n #cancelModal\n [showModalSubject$]=\"showCancelConfirmation$\"\n cancelButtonTextTranslationKey=\"interface.pendingChanges.keepEditing\"\n cancelButtonType=\"ghost\"\n confirmButtonTextTranslationKey=\"interface.discard\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"dossierManagement.documentDefinition.cancelModal.content\"\n optionalButtonTextTranslationKey=\"interface.save\"\n optionalButtonType=\"secondary\"\n titleTranslationKey=\"dossierManagement.documentDefinition.cancelModal.title\"\n showOptionalButton=\"true\"\n spacerAfterCancelButton=\"true\"\n (cancelEvent)=\"keepEditingDefinition()\"\n (confirmEvent)=\"discardChanges()\"\n (optionalEvent)=\"saveDefinition()\"\n ></valtimo-confirmation-modal>\n</ng-container>\n\n<ng-template #loading>\n <div class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n</ng-template>\n", styles: [".loading-container{display:flex;width:100%;justify-content:center;padding-top:16px;padding-bottom:16px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i3.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "component", type: i4.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "showOptionalButton", "optionalButtonText", "optionalButtonTextTranslationKey", "optionalButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm", "outputOnOptional", "spacerAfterCancelButton"], outputs: ["confirmEvent", "optionalEvent", "cancelEvent"] }, { kind: "component", type: i4.EditorComponent, selector: "valtimo-editor", inputs: ["editorOptions", "model", "disabled", "formatOnLoad", "widthPx", "heightPx", "heightStyle", "jsonSchema", "fitPage", "fitPageExtraSpace"], outputs: ["validEvent", "valueChangeEvent"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
130
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DossierManagementDocumentDefinitionComponent, selector: "valtimo-dossier-management-document-definition", inputs: { documentDefinitionName: "documentDefinitionName" }, outputs: { cancelRedirect: "cancelRedirect", confirmRedirect: "confirmRedirect", pendingChangesUpdate: "pendingChangesUpdate" }, viewQueries: [{ propertyName: "cancelModal", first: true, predicate: ["cancelModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n documentDefinitionModel: documentDefinitionModel$ | async,\n editActive: editActive$ | async,\n loadingDocumentDefinition: loadingDocumentDefinition$ | async,\n pendingChanges: pendingChanges$ | async,\n saveButtonDisabled: saveButtonDisabled$ | async,\n selectedDocumentDefinition: selectedDocumentDefinition$ | async,\n compactMode: compactMode$ | async,\n } as obs\"\n>\n <div class=\"cds--toolbar-content\">\n <ng-container *ngIf=\"!obs.editActive; else editActive\">\n <button\n cdsButton=\"ghost\"\n (click)=\"downloadDefinition()\"\n [disabled]=\"obs.loadingDocumentDefinition || !obs.selectedDocumentDefinition\"\n >\n {{ 'interface.download' | translate }}\n\n <svg cdsIcon=\"download\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n\n <button\n cdsButton=\"primary\"\n [disabled]=\"obs.selectedDocumentDefinition?.readOnly\"\n (click)=\"onEditClick()\"\n >\n {{ 'interface.edit' | translate }}\n\n <svg cdsIcon=\"edit\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </ng-container>\n </div>\n\n <valtimo-editor\n *ngIf=\"!obs.loadingDocumentDefinition; else loading\"\n [model]=\"obs.documentDefinitionModel\"\n [disabled]=\"!obs.editActive\"\n (validEvent)=\"onValidEvent($event)\"\n (valueChangeEvent)=\"onValueChangeEvent($event)\"\n [fitPage]=\"true\"\n [fitPageExtraSpace]=\"96\"\n >\n </valtimo-editor>\n\n <a id=\"downloadAnchorElement\" style=\"display: none\"></a>\n\n <ng-template #editActive>\n <button cdsButton=\"secondary\" (click)=\"onCancelClick(obs.pendingChanges)\">\n {{ 'interface.cancel' | translate }}\n\n <svg cdsIcon=\"close\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"obs.saveButtonDisabled\" (click)=\"onSaveClick()\">\n {{ 'interface.save' | translate }}\n\n <svg cdsIcon=\"save\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </ng-template>\n\n <valtimo-confirmation-modal\n [showModalSubject$]=\"showSaveConfirmation$\"\n cancelButtonTextTranslationKey=\"interface.cancel\"\n confirmButtonTextTranslationKey=\"interface.save\"\n contentTranslationKey=\"dossierManagement.documentDefinition.saveModalContent\"\n titleTranslationKey=\"interface.save\"\n (cancelEvent)=\"keepEditing()\"\n (confirmEvent)=\"saveDefinition()\"\n ></valtimo-confirmation-modal>\n\n <valtimo-confirmation-modal\n #cancelModal\n [showModalSubject$]=\"showCancelConfirmation$\"\n cancelButtonTextTranslationKey=\"interface.pendingChanges.keepEditing\"\n cancelButtonType=\"ghost\"\n confirmButtonTextTranslationKey=\"interface.discard\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"dossierManagement.documentDefinition.cancelModal.content\"\n optionalButtonTextTranslationKey=\"interface.save\"\n optionalButtonType=\"secondary\"\n titleTranslationKey=\"dossierManagement.documentDefinition.cancelModal.title\"\n showOptionalButton=\"true\"\n spacerAfterCancelButton=\"true\"\n (cancelEvent)=\"keepEditingDefinition()\"\n (confirmEvent)=\"discardChanges()\"\n (optionalEvent)=\"saveDefinition()\"\n ></valtimo-confirmation-modal>\n</ng-container>\n\n<ng-template #loading>\n <div class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n</ng-template>\n", styles: [".loading-container{display:flex;width:100%;justify-content:center;padding-top:16px;padding-bottom:16px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i3.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "component", type: i4.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "showOptionalButton", "optionalButtonText", "optionalButtonTextTranslationKey", "optionalButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm", "outputOnOptional", "spacerAfterCancelButton"], outputs: ["confirmEvent", "optionalEvent", "cancelEvent"] }, { kind: "component", type: i4.EditorComponent, selector: "valtimo-editor", inputs: ["editorOptions", "model", "disabled", "formatOnLoad", "widthPx", "heightPx", "heightStyle", "jsonSchema", "fitPage", "fitPageExtraSpace"], outputs: ["validEvent", "valueChangeEvent"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
131
131
  }
132
132
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DossierManagementDocumentDefinitionComponent, decorators: [{
133
133
  type: Component,
134
- args: [{ selector: 'valtimo-dossier-management-document-definition', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n documentDefinitionModel: documentDefinitionModel$ | async,\n editActive: editActive$ | async,\n loadingDocumentDefinition: loadingDocumentDefinition$ | async,\n pendingChanges: pendingChanges$ | async,\n saveButtonDisabled: saveButtonDisabled$ | async,\n selectedDocumentDefinition: selectedDocumentDefinition$ | async,\n compactMode: compactMode$ | async\n } as obs\"\n>\n <div class=\"cds--toolbar-content\">\n <ng-container *ngIf=\"!obs.editActive; else editActive\">\n <button\n cdsButton=\"ghost\"\n (click)=\"downloadDefinition()\"\n [disabled]=\"obs.loadingDocumentDefinition || !obs.selectedDocumentDefinition\"\n >\n {{ 'interface.download' | translate }}\n\n <svg cdsIcon=\"download\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n\n <button\n cdsButton=\"primary\"\n [disabled]=\"obs.selectedDocumentDefinition?.readOnly\"\n (click)=\"onEditClick()\"\n >\n {{ 'interface.edit' | translate }}\n\n <svg cdsIcon=\"edit\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </ng-container>\n </div>\n\n <valtimo-editor\n *ngIf=\"!obs.loadingDocumentDefinition; else loading\"\n [model]=\"obs.documentDefinitionModel\"\n [disabled]=\"!obs.editActive\"\n (validEvent)=\"onValidEvent($event)\"\n (valueChangeEvent)=\"onValueChangeEvent($event)\"\n [fitPage]=\"true\"\n [fitPageExtraSpace]=\"96\"\n >\n </valtimo-editor>\n\n <a id=\"downloadAnchorElement\" style=\"display: none\"></a>\n\n <ng-template #editActive>\n <button cdsButton=\"secondary\" (click)=\"onCancelClick(obs.pendingChanges)\">\n {{ 'interface.cancel' | translate }}\n\n <svg cdsIcon=\"close\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"obs.saveButtonDisabled\" (click)=\"onSaveClick()\">\n {{ 'interface.save' | translate }}\n\n <svg cdsIcon=\"save\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </ng-template>\n\n <valtimo-confirmation-modal\n [showModalSubject$]=\"showSaveConfirmation$\"\n cancelButtonTextTranslationKey=\"interface.cancel\"\n confirmButtonTextTranslationKey=\"interface.save\"\n contentTranslationKey=\"dossierManagement.documentDefinition.saveModalContent\"\n titleTranslationKey=\"interface.save\"\n (cancelEvent)=\"keepEditing()\"\n (confirmEvent)=\"saveDefinition()\"\n ></valtimo-confirmation-modal>\n\n <valtimo-confirmation-modal\n #cancelModal\n [showModalSubject$]=\"showCancelConfirmation$\"\n cancelButtonTextTranslationKey=\"interface.pendingChanges.keepEditing\"\n cancelButtonType=\"ghost\"\n confirmButtonTextTranslationKey=\"interface.discard\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"dossierManagement.documentDefinition.cancelModal.content\"\n optionalButtonTextTranslationKey=\"interface.save\"\n optionalButtonType=\"secondary\"\n titleTranslationKey=\"dossierManagement.documentDefinition.cancelModal.title\"\n showOptionalButton=\"true\"\n spacerAfterCancelButton=\"true\"\n (cancelEvent)=\"keepEditingDefinition()\"\n (confirmEvent)=\"discardChanges()\"\n (optionalEvent)=\"saveDefinition()\"\n ></valtimo-confirmation-modal>\n</ng-container>\n\n<ng-template #loading>\n <div class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n</ng-template>\n", styles: [".loading-container{display:flex;width:100%;justify-content:center;padding-top:16px;padding-bottom:16px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
134
+ args: [{ selector: 'valtimo-dossier-management-document-definition', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n documentDefinitionModel: documentDefinitionModel$ | async,\n editActive: editActive$ | async,\n loadingDocumentDefinition: loadingDocumentDefinition$ | async,\n pendingChanges: pendingChanges$ | async,\n saveButtonDisabled: saveButtonDisabled$ | async,\n selectedDocumentDefinition: selectedDocumentDefinition$ | async,\n compactMode: compactMode$ | async,\n } as obs\"\n>\n <div class=\"cds--toolbar-content\">\n <ng-container *ngIf=\"!obs.editActive; else editActive\">\n <button\n cdsButton=\"ghost\"\n (click)=\"downloadDefinition()\"\n [disabled]=\"obs.loadingDocumentDefinition || !obs.selectedDocumentDefinition\"\n >\n {{ 'interface.download' | translate }}\n\n <svg cdsIcon=\"download\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n\n <button\n cdsButton=\"primary\"\n [disabled]=\"obs.selectedDocumentDefinition?.readOnly\"\n (click)=\"onEditClick()\"\n >\n {{ 'interface.edit' | translate }}\n\n <svg cdsIcon=\"edit\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </ng-container>\n </div>\n\n <valtimo-editor\n *ngIf=\"!obs.loadingDocumentDefinition; else loading\"\n [model]=\"obs.documentDefinitionModel\"\n [disabled]=\"!obs.editActive\"\n (validEvent)=\"onValidEvent($event)\"\n (valueChangeEvent)=\"onValueChangeEvent($event)\"\n [fitPage]=\"true\"\n [fitPageExtraSpace]=\"96\"\n >\n </valtimo-editor>\n\n <a id=\"downloadAnchorElement\" style=\"display: none\"></a>\n\n <ng-template #editActive>\n <button cdsButton=\"secondary\" (click)=\"onCancelClick(obs.pendingChanges)\">\n {{ 'interface.cancel' | translate }}\n\n <svg cdsIcon=\"close\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"obs.saveButtonDisabled\" (click)=\"onSaveClick()\">\n {{ 'interface.save' | translate }}\n\n <svg cdsIcon=\"save\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </ng-template>\n\n <valtimo-confirmation-modal\n [showModalSubject$]=\"showSaveConfirmation$\"\n cancelButtonTextTranslationKey=\"interface.cancel\"\n confirmButtonTextTranslationKey=\"interface.save\"\n contentTranslationKey=\"dossierManagement.documentDefinition.saveModalContent\"\n titleTranslationKey=\"interface.save\"\n (cancelEvent)=\"keepEditing()\"\n (confirmEvent)=\"saveDefinition()\"\n ></valtimo-confirmation-modal>\n\n <valtimo-confirmation-modal\n #cancelModal\n [showModalSubject$]=\"showCancelConfirmation$\"\n cancelButtonTextTranslationKey=\"interface.pendingChanges.keepEditing\"\n cancelButtonType=\"ghost\"\n confirmButtonTextTranslationKey=\"interface.discard\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"dossierManagement.documentDefinition.cancelModal.content\"\n optionalButtonTextTranslationKey=\"interface.save\"\n optionalButtonType=\"secondary\"\n titleTranslationKey=\"dossierManagement.documentDefinition.cancelModal.title\"\n showOptionalButton=\"true\"\n spacerAfterCancelButton=\"true\"\n (cancelEvent)=\"keepEditingDefinition()\"\n (confirmEvent)=\"discardChanges()\"\n (optionalEvent)=\"saveDefinition()\"\n ></valtimo-confirmation-modal>\n</ng-container>\n\n<ng-template #loading>\n <div class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n</ng-template>\n", styles: [".loading-container{display:flex;width:100%;justify-content:center;padding-top:16px;padding-bottom:16px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
135
135
  }], ctorParameters: () => [{ type: i1.DocumentService }, { type: i2.DossierDetailService }, { type: i3.IconService }, { type: i4.PageHeaderService }], propDecorators: { cancelModal: [{
136
136
  type: ViewChild,
137
137
  args: ['cancelModal']
@@ -144,4 +144,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
144
144
  }], pendingChangesUpdate: [{
145
145
  type: Output
146
146
  }] } });
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1tYW5hZ2VtZW50LWRvY3VtZW50LWRlZmluaXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItbWFuYWdlbWVudC1kb2N1bWVudC1kZWZpbml0aW9uL2Rvc3NpZXItbWFuYWdlbWVudC1kb2N1bWVudC1kZWZpbml0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci1tYW5hZ2VtZW50L3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLW1hbmFnZW1lbnQtZG9jdW1lbnQtZGVmaW5pdGlvbi9kb3NzaWVyLW1hbmFnZW1lbnQtZG9jdW1lbnQtZGVmaW5pdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsTUFBTSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU3QyxPQUFPLEVBRUwsK0JBQStCLEdBRWhDLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsT0FBTyxFQUFDLGVBQWUsRUFBRSxhQUFhLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDaEUsT0FBTyxFQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQVN6RCxNQUFNLE9BQU8sNENBQTRDO0lBNkN2RCxZQUNtQixlQUFnQyxFQUNoQyxvQkFBMEMsRUFDMUMsV0FBd0IsRUFDeEIsaUJBQW9DO1FBSHBDLG9CQUFl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QUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQzsrR0EvSVUsNENBQTRDO21HQUE1Qyw0Q0FBNEMsaVlDekN6RCx3aUlBZ0hBOzs0RkR2RWEsNENBQTRDO2tCQU54RCxTQUFTOytCQUNFLGdEQUFnRCxtQkFHekMsdUJBQXVCLENBQUMsTUFBTTtpTEFHZCxXQUFXO3NCQUEzQyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ2Ysc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNJLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxvQkFBb0I7c0JBQTdCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFZGl0MTYsIFNhdmUxNn0gZnJvbSAnQGNhcmJvbi9pY29ucyc7XG5pbXBvcnQge0NvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50LCBFZGl0b3JNb2RlbCwgUGFnZUhlYWRlclNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgRG9jdW1lbnREZWZpbml0aW9uLFxuICBEb2N1bWVudERlZmluaXRpb25DcmVhdGVSZXF1ZXN0LFxuICBEb2N1bWVudFNlcnZpY2UsXG59IGZyb20gJ0B2YWx0aW1vL2RvY3VtZW50JztcbmltcG9ydCB7SWNvblNlcnZpY2V9IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHN3aXRjaE1hcCwgdGFrZSwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0Rvc3NpZXJEZXRhaWxTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tZG9zc2llci1tYW5hZ2VtZW50LWRvY3VtZW50LWRlZmluaXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZG9zc2llci1tYW5hZ2VtZW50LWRvY3VtZW50LWRlZmluaXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb3NzaWVyLW1hbmFnZW1lbnQtZG9jdW1lbnQtZGVmaW5pdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRG9zc2llck1hbmFnZW1lbnREb2N1bWVudERlZmluaXRpb25Db21wb25lbnQge1xuICBAVmlld0NoaWxkKCdjYW5jZWxNb2RhbCcpIHB1YmxpYyBjYW5jZWxNb2RhbDogQ29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ7XG4gIEBJbnB1dCgpIGRvY3VtZW50RGVmaW5pdGlvbk5hbWU6IHN0cmluZztcbiAgQE91dHB1dCgpIGNhbmNlbFJlZGlyZWN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgY29uZmlybVJlZGlyZWN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcGVuZGluZ0NoYW5nZXNVcGRhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGxvYWRpbmdEb2N1bWVudERlZmluaXRpb24kID0gdGhpcy5kb3NzaWVyRGV0YWlsU2VydmljZS5sb2FkaW5nRG9jdW1lbnREZWZpbml0aW9uJDtcbiAgcHJpdmF0ZSByZWFkb25seSBfcmVmcmVzaEVkaXRvciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bGw+KG51bGwpO1xuICBwdWJsaWMgcmVhZG9ubHkgZG9jdW1lbnREZWZpbml0aW9uTW9kZWwkOiBPYnNlcnZhYmxlPEVkaXRvck1vZGVsPiA9IHRoaXMuX3JlZnJlc2hFZGl0b3IkLnBpcGUoXG4gICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuZG9zc2llckRldGFpbFNlcnZpY2UuZG9jdW1lbnREZWZpbml0aW9uTW9kZWwkKVxuICApO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3BlbmRpbmdDaGFuZ2VzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgcGVuZGluZ0NoYW5nZXMkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5fcGVuZGluZ0NoYW5nZXMkLnBpcGUoXG4gICAgdGFwKChwZW5kaW5nQ2hhbmdlczogYm9vbGVhbikgPT4ge1xuICAgICAgdGhpcy5wZW5kaW5nQ2hhbmdlc1VwZGF0ZS5lbWl0KHBlbmRpbmdDaGFuZ2VzKTtcbiAgICB9KVxuICApO1xuICBwdWJsaWMgcmVhZG9ubHkgZWRpdEFjdGl2ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IHNob3dTYXZlQ29uZmlybWF0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2hvd0NhbmNlbENvbmZpcm1hdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGVkRG9jdW1lbnREZWZpbml0aW9uJCA9IHRoaXMuZG9zc2llckRldGFpbFNlcnZpY2UuZG9jdW1lbnREZWZpbml0aW9uJC5waXBlKFxuICAgIHRhcChcbiAgICAgIChkb2N1bWVudERlZmluaXRpb246IERvY3VtZW50RGVmaW5pdGlvbikgPT4gKHRoaXMuX2luaXRpYWxJZCA9IGRvY3VtZW50RGVmaW5pdGlvbi5zY2hlbWEuJGlkKVxuICAgIClcbiAgKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2hhbmdlSXNWYWxpZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfaWRDaGFuZ2VkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHB1YmxpYyByZWFkb25seSBzYXZlQnV0dG9uRGlzYWJsZWQkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5wZW5kaW5nQ2hhbmdlcyQsXG4gICAgdGhpcy5fY2hhbmdlSXNWYWxpZCQsXG4gICAgdGhpcy5faWRDaGFuZ2VkJCxcbiAgXSkucGlwZShcbiAgICBtYXAoXG4gICAgICAoW3BlbmRpbmdDaGFuZ2VzLCBjaGFuZ2VJc1ZhbGlkLCBpZENoYW5nZWRdKSA9PiAhcGVuZGluZ0NoYW5nZXMgfHwgIWNoYW5nZUlzVmFsaWQgfHwgaWRDaGFuZ2VkXG4gICAgKVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBjb21wYWN0TW9kZSQgPSB0aGlzLnBhZ2VIZWFkZXJTZXJ2aWNlLmNvbXBhY3RNb2RlJDtcblxuICBwcml2YXRlIF9jaGFuZ2VzVG9TYXZlOiBhbnk7XG4gIHByaXZhdGUgX2luaXRpYWxJZDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRTZXJ2aWNlOiBEb2N1bWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb3NzaWVyRGV0YWlsU2VydmljZTogRG9zc2llckRldGFpbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBpY29uU2VydmljZTogSWNvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwYWdlSGVhZGVyU2VydmljZTogUGFnZUhlYWRlclNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5pY29uU2VydmljZS5yZWdpc3RlckFsbChbRWRpdDE2LCBTYXZlMTZdKTtcbiAgfVxuXG4gIHB1YmxpYyBkb3dubG9hZERlZmluaXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZERvY3VtZW50RGVmaW5pdGlvbiQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoZGVmaW5pdGlvbiA9PiB7XG4gICAgICBjb25zdCBkYXRhU3RyaW5nID1cbiAgICAgICAgJ2RhdGE6dGV4dC9qc29uO2NoYXJzZXQ9dXRmLTgsJyArXG4gICAgICAgIGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShkZWZpbml0aW9uLnNjaGVtYSwgbnVsbCwgMikpO1xuICAgICAgY29uc3QgZG93bmxvYWRBbmNob3JFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Rvd25sb2FkQW5jaG9yRWxlbWVudCcpO1xuICAgICAgaWYgKCFkb3dubG9hZEFuY2hvckVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBkb3dubG9hZEFuY2hvckVsZW1lbnQuc2V0QXR0cmlidXRlKCdocmVmJywgZGF0YVN0cmluZyk7XG4gICAgICBkb3dubG9hZEFuY2hvckVsZW1lbnQuc2V0QXR0cmlidXRlKFxuICAgICAgICAnZG93bmxvYWQnLFxuICAgICAgICBgJHtkZWZpbml0aW9uLmlkLm5hbWV9LXYke2RlZmluaXRpb24uaWQudmVyc2lvbn0uanNvbmBcbiAgICAgICk7XG4gICAgICBkb3dubG9hZEFuY2hvckVsZW1lbnQuY2xpY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNjYXJkQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dDYW5jZWxDb25maXJtYXRpb24kLm5leHQoZmFsc2UpO1xuICAgIHRoaXMuY29uZmlybVJlZGlyZWN0LmVtaXQoKTtcbiAgICB0aGlzLnJlc2V0RWRpdG9yU3RhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBrZWVwRWRpdGluZ0RlZmluaXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5jYW5jZWxSZWRpcmVjdC5lbWl0KCk7XG4gICAgdGhpcy5zaG93U2F2ZUNvbmZpcm1hdGlvbiQubmV4dChmYWxzZSk7XG4gICAgdGhpcy5zaG93Q2FuY2VsQ29uZmlybWF0aW9uJC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNhbmNlbENsaWNrKHBlbmRpbmdDaGFuZ2VzOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHBlbmRpbmdDaGFuZ2VzKSB7XG4gICAgICB0aGlzLnNob3dDYW5jZWxDb25maXJtYXRpb24kLm5leHQodHJ1ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5yZXNldEVkaXRvclN0YXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2F2ZURlZmluaXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5zaG93U2F2ZUNvbmZpcm1hdGlvbiQubmV4dChmYWxzZSk7XG4gICAgdGhpcy5lZGl0QWN0aXZlJC5uZXh0KGZhbHNlKTtcbiAgICBjb25zdCBuZXdEb2N1bWVudERlZmluaXRpb24gPSBuZXcgRG9jdW1lbnREZWZpbml0aW9uQ3JlYXRlUmVxdWVzdChcbiAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuX2NoYW5nZXNUb1NhdmUpXG4gICAgKTtcblxuICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlXG4gICAgICAuY3JlYXRlRG9jdW1lbnREZWZpbml0aW9uRm9yTWFuYWdlbWVudChuZXdEb2N1bWVudERlZmluaXRpb24pXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLmRvc3NpZXJEZXRhaWxTZXJ2aWNlLnNldFNlbGVjdGVkRG9jdW1lbnREZWZpbml0aW9uTmFtZSh0aGlzLmRvY3VtZW50RGVmaW5pdGlvbk5hbWUpO1xuICAgICAgICAgIHRoaXMuY29uZmlybVJlZGlyZWN0LmVtaXQoKTtcbiAgICAgICAgICB0aGlzLl9wZW5kaW5nQ2hhbmdlcyQubmV4dChmYWxzZSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jYW5jZWxSZWRpcmVjdC5lbWl0KCk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvbkVkaXRDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmVkaXRBY3RpdmUkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgb25TYXZlQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5zaG93U2F2ZUNvbmZpcm1hdGlvbiQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBvblZhbHVlQ2hhbmdlRXZlbnQodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX3BlbmRpbmdDaGFuZ2VzJC5uZXh0KHRydWUpO1xuICAgIHRoaXMuX2NoYW5nZXNUb1NhdmUgPSBKU09OLnBhcnNlKHZhbHVlKTtcbiAgICBjb25zdCBpZDogc3RyaW5nID0gdGhpcy5fY2hhbmdlc1RvU2F2ZS4kaWQ7XG4gICAgdGhpcy5faWRDaGFuZ2VkJC5uZXh0KHRoaXMuX2luaXRpYWxJZCAhPT0gaWQpO1xuICB9XG5cbiAgcHVibGljIG9uVmFsaWRFdmVudCh2YWxpZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuX2NoYW5nZUlzVmFsaWQkLm5leHQodmFsaWQpO1xuICB9XG5cbiAgcHVibGljIG9uQ2FuRGVhY3RpdmF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dDYW5jZWxDb25maXJtYXRpb24kLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0RWRpdG9yU3RhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVmcmVzaEVkaXRvciQubmV4dChudWxsKTtcbiAgICB0aGlzLmVkaXRBY3RpdmUkLm5leHQoZmFsc2UpO1xuICAgIHRoaXMuX3BlbmRpbmdDaGFuZ2VzJC5uZXh0KGZhbHNlKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48bmctY29udGFpbmVyXG4gICpuZ0lmPVwie1xuICAgIGRvY3VtZW50RGVmaW5pdGlvbk1vZGVsOiBkb2N1bWVudERlZmluaXRpb25Nb2RlbCQgfCBhc3luYyxcbiAgICBlZGl0QWN0aXZlOiBlZGl0QWN0aXZlJCB8IGFzeW5jLFxuICAgIGxvYWRpbmdEb2N1bWVudERlZmluaXRpb246IGxvYWRpbmdEb2N1bWVudERlZmluaXRpb24kIHwgYXN5bmMsXG4gICAgcGVuZGluZ0NoYW5nZXM6IHBlbmRpbmdDaGFuZ2VzJCB8IGFzeW5jLFxuICAgIHNhdmVCdXR0b25EaXNhYmxlZDogc2F2ZUJ1dHRvbkRpc2FibGVkJCB8IGFzeW5jLFxuICAgIHNlbGVjdGVkRG9jdW1lbnREZWZpbml0aW9uOiBzZWxlY3RlZERvY3VtZW50RGVmaW5pdGlvbiQgfCBhc3luYyxcbiAgICBjb21wYWN0TW9kZTogY29tcGFjdE1vZGUkIHwgYXN5bmNcbiAgfSBhcyBvYnNcIlxuPlxuICA8ZGl2IGNsYXNzPVwiY2RzLS10b29sYmFyLWNvbnRlbnRcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW9icy5lZGl0QWN0aXZlOyBlbHNlIGVkaXRBY3RpdmVcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2RzQnV0dG9uPVwiZ2hvc3RcIlxuICAgICAgICAoY2xpY2spPVwiZG93bmxvYWREZWZpbml0aW9uKClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwib2JzLmxvYWRpbmdEb2N1bWVudERlZmluaXRpb24gfHwgIW9icy5zZWxlY3RlZERvY3VtZW50RGVmaW5pdGlvblwiXG4gICAgICA+XG4gICAgICAgIHt7ICdpbnRlcmZhY2UuZG93bmxvYWQnIHwgdHJhbnNsYXRlIH19XG5cbiAgICAgICAgPHN2ZyBjZHNJY29uPVwiZG93bmxvYWRcIiBzaXplPVwiMTZcIiBjbGFzcz1cImNkcy0tYnRuX19pY29uXCI+PC9zdmc+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPGJ1dHRvblxuICAgICAgICBjZHNCdXR0b249XCJwcmltYXJ5XCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIm9icy5zZWxlY3RlZERvY3VtZW50RGVmaW5pdGlvbj8ucmVhZE9ubHlcIlxuICAgICAgICAoY2xpY2spPVwib25FZGl0Q2xpY2soKVwiXG4gICAgICA+XG4gICAgICAgIHt7ICdpbnRlcmZhY2UuZWRpdCcgfCB0cmFuc2xhdGUgfX1cblxuICAgICAgICA8c3ZnIGNkc0ljb249XCJlZGl0XCIgc2l6ZT1cIjE2XCIgY2xhc3M9XCJjZHMtLWJ0bl9faWNvblwiPjwvc3ZnPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDx2YWx0aW1vLWVkaXRvclxuICAgICpuZ0lmPVwiIW9icy5sb2FkaW5nRG9jdW1lbnREZWZpbml0aW9uOyBlbHNlIGxvYWRpbmdcIlxuICAgIFttb2RlbF09XCJvYnMuZG9jdW1lbnREZWZpbml0aW9uTW9kZWxcIlxuICAgIFtkaXNhYmxlZF09XCIhb2JzLmVkaXRBY3RpdmVcIlxuICAgICh2YWxpZEV2ZW50KT1cIm9uVmFsaWRFdmVudCgkZXZlbnQpXCJcbiAgICAodmFsdWVDaGFuZ2VFdmVudCk9XCJvblZhbHVlQ2hhbmdlRXZlbnQoJGV2ZW50KVwiXG4gICAgW2ZpdFBhZ2VdPVwidHJ1ZVwiXG4gICAgW2ZpdFBhZ2VFeHRyYVNwYWNlXT1cIjk2XCJcbiAgPlxuICA8L3ZhbHRpbW8tZWRpdG9yPlxuXG4gIDxhIGlkPVwiZG93bmxvYWRBbmNob3JFbGVtZW50XCIgc3R5bGU9XCJkaXNwbGF5OiBub25lXCI+PC9hPlxuXG4gIDxuZy10ZW1wbGF0ZSAjZWRpdEFjdGl2ZT5cbiAgICA8YnV0dG9uIGNkc0J1dHRvbj1cInNlY29uZGFyeVwiIChjbGljayk9XCJvbkNhbmNlbENsaWNrKG9icy5wZW5kaW5nQ2hhbmdlcylcIj5cbiAgICAgIHt7ICdpbnRlcmZhY2UuY2FuY2VsJyB8IHRyYW5zbGF0ZSB9fVxuXG4gICAgICA8c3ZnIGNkc0ljb249XCJjbG9zZVwiIHNpemU9XCIxNlwiIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIj48L3N2Zz5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b24gY2RzQnV0dG9uPVwicHJpbWFyeVwiIFtkaXNhYmxlZF09XCJvYnMuc2F2ZUJ1dHRvbkRpc2FibGVkXCIgKGNsaWNrKT1cIm9uU2F2ZUNsaWNrKClcIj5cbiAgICAgIHt7ICdpbnRlcmZhY2Uuc2F2ZScgfCB0cmFuc2xhdGUgfX1cblxuICAgICAgPHN2ZyBjZHNJY29uPVwic2F2ZVwiIHNpemU9XCIxNlwiIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIj48L3N2Zz5cbiAgICA8L2J1dHRvbj5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8dmFsdGltby1jb25maXJtYXRpb24tbW9kYWxcbiAgICBbc2hvd01vZGFsU3ViamVjdCRdPVwic2hvd1NhdmVDb25maXJtYXRpb24kXCJcbiAgICBjYW5jZWxCdXR0b25UZXh0VHJhbnNsYXRpb25LZXk9XCJpbnRlcmZhY2UuY2FuY2VsXCJcbiAgICBjb25maXJtQnV0dG9uVGV4dFRyYW5zbGF0aW9uS2V5PVwiaW50ZXJmYWNlLnNhdmVcIlxuICAgIGNvbnRlbnRUcmFuc2xhdGlvbktleT1cImRvc3NpZXJNYW5hZ2VtZW50LmRvY3VtZW50RGVmaW5pdGlvbi5zYXZlTW9kYWxDb250ZW50XCJcbiAgICB0aXRsZVRyYW5zbGF0aW9uS2V5PVwiaW50ZXJmYWNlLnNhdmVcIlxuICAgIChjYW5jZWxFdmVudCk9XCJrZWVwRWRpdGluZygpXCJcbiAgICAoY29uZmlybUV2ZW50KT1cInNhdmVEZWZpbml0aW9uKClcIlxuICA+PC92YWx0aW1vLWNvbmZpcm1hdGlvbi1tb2RhbD5cblxuICA8dmFsdGltby1jb25maXJtYXRpb24tbW9kYWxcbiAgICAjY2FuY2VsTW9kYWxcbiAgICBbc2hvd01vZGFsU3ViamVjdCRdPVwic2hvd0NhbmNlbENvbmZpcm1hdGlvbiRcIlxuICAgIGNhbmNlbEJ1dHRvblRleHRUcmFuc2xhdGlvbktleT1cImludGVyZmFjZS5wZW5kaW5nQ2hhbmdlcy5rZWVwRWRpdGluZ1wiXG4gICAgY2FuY2VsQnV0dG9uVHlwZT1cImdob3N0XCJcbiAgICBjb25maXJtQnV0dG9uVGV4dFRyYW5zbGF0aW9uS2V5PVwiaW50ZXJmYWNlLmRpc2NhcmRcIlxuICAgIGNvbmZpcm1CdXR0b25UeXBlPVwiZGFuZ2VyXCJcbiAgICBjb250ZW50VHJhbnNsYXRpb25LZXk9XCJkb3NzaWVyTWFuYWdlbWVudC5kb2N1bWVudERlZmluaXRpb24uY2FuY2VsTW9kYWwuY29udGVudFwiXG4gICAgb3B0aW9uYWxCdXR0b25UZXh0VHJhbnNsYXRpb25LZXk9XCJpbnRlcmZhY2Uuc2F2ZVwiXG4gICAgb3B0aW9uYWxCdXR0b25UeXBlPVwic2Vjb25kYXJ5XCJcbiAgICB0aXRsZVRyYW5zbGF0aW9uS2V5PVwiZG9zc2llck1hbmFnZW1lbnQuZG9jdW1lbnREZWZpbml0aW9uLmNhbmNlbE1vZGFsLnRpdGxlXCJcbiAgICBzaG93T3B0aW9uYWxCdXR0b249XCJ0cnVlXCJcbiAgICBzcGFjZXJBZnRlckNhbmNlbEJ1dHRvbj1cInRydWVcIlxuICAgIChjYW5jZWxFdmVudCk9XCJrZWVwRWRpdGluZ0RlZmluaXRpb24oKVwiXG4gICAgKGNvbmZpcm1FdmVudCk9XCJkaXNjYXJkQ2hhbmdlcygpXCJcbiAgICAob3B0aW9uYWxFdmVudCk9XCJzYXZlRGVmaW5pdGlvbigpXCJcbiAgPjwvdmFsdGltby1jb25maXJtYXRpb24tbW9kYWw+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNsb2FkaW5nPlxuICA8ZGl2IGNsYXNzPVwibG9hZGluZy1jb250YWluZXJcIj5cbiAgICA8Y2RzLWxvYWRpbmc+PC9jZHMtbG9hZGluZz5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1tYW5hZ2VtZW50LWRvY3VtZW50LWRlZmluaXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItbWFuYWdlbWVudC1kb2N1bWVudC1kZWZpbml0aW9uL2Rvc3NpZXItbWFuYWdlbWVudC1kb2N1bWVudC1kZWZpbml0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci1tYW5hZ2VtZW50L3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLW1hbmFnZW1lbnQtZG9jdW1lbnQtZGVmaW5pdGlvbi9kb3NzaWVyLW1hbmFnZW1lbnQtZG9jdW1lbnQtZGVmaW5pdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsTUFBTSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU3QyxPQUFPLEVBRUwsK0JBQStCLEdBRWhDLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsT0FBTyxFQUFDLGVBQWUsRUFBRSxhQUFhLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDaEUsT0FBTyxFQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQVN6RCxNQUFNLE9BQU8sNENBQTRDO0lBNkN2RCxZQUNtQixlQUFnQyxFQUNoQyxvQkFBMEMsRUFDMUMsV0FBd0IsRUFDeEIsaUJBQW9DO1FBSHBDLG9CQUFl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QUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQzsrR0EvSVUsNENBQTRDO21HQUE1Qyw0Q0FBNEMsaVlDekN6RCx5aUlBZ0hBOzs0RkR2RWEsNENBQTRDO2tCQU54RCxTQUFTOytCQUNFLGdEQUFnRCxtQkFHekMsdUJBQXVCLENBQUMsTUFBTTtpTEFHZCxXQUFXO3NCQUEzQyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ2Ysc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNJLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxvQkFBb0I7c0JBQTdCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFZGl0MTYsIFNhdmUxNn0gZnJvbSAnQGNhcmJvbi9pY29ucyc7XG5pbXBvcnQge0NvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50LCBFZGl0b3JNb2RlbCwgUGFnZUhlYWRlclNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgRG9jdW1lbnREZWZpbml0aW9uLFxuICBEb2N1bWVudERlZmluaXRpb25DcmVhdGVSZXF1ZXN0LFxuICBEb2N1bWVudFNlcnZpY2UsXG59IGZyb20gJ0B2YWx0aW1vL2RvY3VtZW50JztcbmltcG9ydCB7SWNvblNlcnZpY2V9IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHN3aXRjaE1hcCwgdGFrZSwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0Rvc3NpZXJEZXRhaWxTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tZG9zc2llci1tYW5hZ2VtZW50LWRvY3VtZW50LWRlZmluaXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZG9zc2llci1tYW5hZ2VtZW50LWRvY3VtZW50LWRlZmluaXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb3NzaWVyLW1hbmFnZW1lbnQtZG9jdW1lbnQtZGVmaW5pdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRG9zc2llck1hbmFnZW1lbnREb2N1bWVudERlZmluaXRpb25Db21wb25lbnQge1xuICBAVmlld0NoaWxkKCdjYW5jZWxNb2RhbCcpIHB1YmxpYyBjYW5jZWxNb2RhbDogQ29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ7XG4gIEBJbnB1dCgpIGRvY3VtZW50RGVmaW5pdGlvbk5hbWU6IHN0cmluZztcbiAgQE91dHB1dCgpIGNhbmNlbFJlZGlyZWN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgY29uZmlybVJlZGlyZWN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcGVuZGluZ0NoYW5nZXNVcGRhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGxvYWRpbmdEb2N1bWVudERlZmluaXRpb24kID0gdGhpcy5kb3NzaWVyRGV0YWlsU2VydmljZS5sb2FkaW5nRG9jdW1lbnREZWZpbml0aW9uJDtcbiAgcHJpdmF0ZSByZWFkb25seSBfcmVmcmVzaEVkaXRvciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bGw+KG51bGwpO1xuICBwdWJsaWMgcmVhZG9ubHkgZG9jdW1lbnREZWZpbml0aW9uTW9kZWwkOiBPYnNlcnZhYmxlPEVkaXRvck1vZGVsPiA9IHRoaXMuX3JlZnJlc2hFZGl0b3IkLnBpcGUoXG4gICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuZG9zc2llckRldGFpbFNlcnZpY2UuZG9jdW1lbnREZWZpbml0aW9uTW9kZWwkKVxuICApO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3BlbmRpbmdDaGFuZ2VzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgcGVuZGluZ0NoYW5nZXMkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5fcGVuZGluZ0NoYW5nZXMkLnBpcGUoXG4gICAgdGFwKChwZW5kaW5nQ2hhbmdlczogYm9vbGVhbikgPT4ge1xuICAgICAgdGhpcy5wZW5kaW5nQ2hhbmdlc1VwZGF0ZS5lbWl0KHBlbmRpbmdDaGFuZ2VzKTtcbiAgICB9KVxuICApO1xuICBwdWJsaWMgcmVhZG9ubHkgZWRpdEFjdGl2ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IHNob3dTYXZlQ29uZmlybWF0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2hvd0NhbmNlbENvbmZpcm1hdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGVkRG9jdW1lbnREZWZpbml0aW9uJCA9IHRoaXMuZG9zc2llckRldGFpbFNlcnZpY2UuZG9jdW1lbnREZWZpbml0aW9uJC5waXBlKFxuICAgIHRhcChcbiAgICAgIChkb2N1bWVudERlZmluaXRpb246IERvY3VtZW50RGVmaW5pdGlvbikgPT4gKHRoaXMuX2luaXRpYWxJZCA9IGRvY3VtZW50RGVmaW5pdGlvbi5zY2hlbWEuJGlkKVxuICAgIClcbiAgKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2hhbmdlSXNWYWxpZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfaWRDaGFuZ2VkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHB1YmxpYyByZWFkb25seSBzYXZlQnV0dG9uRGlzYWJsZWQkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5wZW5kaW5nQ2hhbmdlcyQsXG4gICAgdGhpcy5fY2hhbmdlSXNWYWxpZCQsXG4gICAgdGhpcy5faWRDaGFuZ2VkJCxcbiAgXSkucGlwZShcbiAgICBtYXAoXG4gICAgICAoW3BlbmRpbmdDaGFuZ2VzLCBjaGFuZ2VJc1ZhbGlkLCBpZENoYW5nZWRdKSA9PiAhcGVuZGluZ0NoYW5nZXMgfHwgIWNoYW5nZUlzVmFsaWQgfHwgaWRDaGFuZ2VkXG4gICAgKVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBjb21wYWN0TW9kZSQgPSB0aGlzLnBhZ2VIZWFkZXJTZXJ2aWNlLmNvbXBhY3RNb2RlJDtcblxuICBwcml2YXRlIF9jaGFuZ2VzVG9TYXZlOiBhbnk7XG4gIHByaXZhdGUgX2luaXRpYWxJZDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRTZXJ2aWNlOiBEb2N1bWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb3NzaWVyRGV0YWlsU2VydmljZTogRG9zc2llckRldGFpbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBpY29uU2VydmljZTogSWNvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwYWdlSGVhZGVyU2VydmljZTogUGFnZUhlYWRlclNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5pY29uU2VydmljZS5yZWdpc3RlckFsbChbRWRpdDE2LCBTYXZlMTZdKTtcbiAgfVxuXG4gIHB1YmxpYyBkb3dubG9hZERlZmluaXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZERvY3VtZW50RGVmaW5pdGlvbiQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoZGVmaW5pdGlvbiA9PiB7XG4gICAgICBjb25zdCBkYXRhU3RyaW5nID1cbiAgICAgICAgJ2RhdGE6dGV4dC9qc29uO2NoYXJzZXQ9dXRmLTgsJyArXG4gICAgICAgIGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShkZWZpbml0aW9uLnNjaGVtYSwgbnVsbCwgMikpO1xuICAgICAgY29uc3QgZG93bmxvYWRBbmNob3JFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Rvd25sb2FkQW5jaG9yRWxlbWVudCcpO1xuICAgICAgaWYgKCFkb3dubG9hZEFuY2hvckVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBkb3dubG9hZEFuY2hvckVsZW1lbnQuc2V0QXR0cmlidXRlKCdocmVmJywgZGF0YVN0cmluZyk7XG4gICAgICBkb3dubG9hZEFuY2hvckVsZW1lbnQuc2V0QXR0cmlidXRlKFxuICAgICAgICAnZG93bmxvYWQnLFxuICAgICAgICBgJHtkZWZpbml0aW9uLmlkLm5hbWV9LXYke2RlZmluaXRpb24uaWQudmVyc2lvbn0uanNvbmBcbiAgICAgICk7XG4gICAgICBkb3dubG9hZEFuY2hvckVsZW1lbnQuY2xpY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNjYXJkQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dDYW5jZWxDb25maXJtYXRpb24kLm5leHQoZmFsc2UpO1xuICAgIHRoaXMuY29uZmlybVJlZGlyZWN0LmVtaXQoKTtcbiAgICB0aGlzLnJlc2V0RWRpdG9yU3RhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBrZWVwRWRpdGluZ0RlZmluaXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5jYW5jZWxSZWRpcmVjdC5lbWl0KCk7XG4gICAgdGhpcy5zaG93U2F2ZUNvbmZpcm1hdGlvbiQubmV4dChmYWxzZSk7XG4gICAgdGhpcy5zaG93Q2FuY2VsQ29uZmlybWF0aW9uJC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNhbmNlbENsaWNrKHBlbmRpbmdDaGFuZ2VzOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHBlbmRpbmdDaGFuZ2VzKSB7XG4gICAgICB0aGlzLnNob3dDYW5jZWxDb25maXJtYXRpb24kLm5leHQodHJ1ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5yZXNldEVkaXRvclN0YXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2F2ZURlZmluaXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5zaG93U2F2ZUNvbmZpcm1hdGlvbiQubmV4dChmYWxzZSk7XG4gICAgdGhpcy5lZGl0QWN0aXZlJC5uZXh0KGZhbHNlKTtcbiAgICBjb25zdCBuZXdEb2N1bWVudERlZmluaXRpb24gPSBuZXcgRG9jdW1lbnREZWZpbml0aW9uQ3JlYXRlUmVxdWVzdChcbiAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuX2NoYW5nZXNUb1NhdmUpXG4gICAgKTtcblxuICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlXG4gICAgICAuY3JlYXRlRG9jdW1lbnREZWZpbml0aW9uRm9yTWFuYWdlbWVudChuZXdEb2N1bWVudERlZmluaXRpb24pXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLmRvc3NpZXJEZXRhaWxTZXJ2aWNlLnNldFNlbGVjdGVkRG9jdW1lbnREZWZpbml0aW9uTmFtZSh0aGlzLmRvY3VtZW50RGVmaW5pdGlvbk5hbWUpO1xuICAgICAgICAgIHRoaXMuY29uZmlybVJlZGlyZWN0LmVtaXQoKTtcbiAgICAgICAgICB0aGlzLl9wZW5kaW5nQ2hhbmdlcyQubmV4dChmYWxzZSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jYW5jZWxSZWRpcmVjdC5lbWl0KCk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvbkVkaXRDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmVkaXRBY3RpdmUkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgb25TYXZlQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5zaG93U2F2ZUNvbmZpcm1hdGlvbiQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBvblZhbHVlQ2hhbmdlRXZlbnQodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX3BlbmRpbmdDaGFuZ2VzJC5uZXh0KHRydWUpO1xuICAgIHRoaXMuX2NoYW5nZXNUb1NhdmUgPSBKU09OLnBhcnNlKHZhbHVlKTtcbiAgICBjb25zdCBpZDogc3RyaW5nID0gdGhpcy5fY2hhbmdlc1RvU2F2ZS4kaWQ7XG4gICAgdGhpcy5faWRDaGFuZ2VkJC5uZXh0KHRoaXMuX2luaXRpYWxJZCAhPT0gaWQpO1xuICB9XG5cbiAgcHVibGljIG9uVmFsaWRFdmVudCh2YWxpZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuX2NoYW5nZUlzVmFsaWQkLm5leHQodmFsaWQpO1xuICB9XG5cbiAgcHVibGljIG9uQ2FuRGVhY3RpdmF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dDYW5jZWxDb25maXJtYXRpb24kLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0RWRpdG9yU3RhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVmcmVzaEVkaXRvciQubmV4dChudWxsKTtcbiAgICB0aGlzLmVkaXRBY3RpdmUkLm5leHQoZmFsc2UpO1xuICAgIHRoaXMuX3BlbmRpbmdDaGFuZ2VzJC5uZXh0KGZhbHNlKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48bmctY29udGFpbmVyXG4gICpuZ0lmPVwie1xuICAgIGRvY3VtZW50RGVmaW5pdGlvbk1vZGVsOiBkb2N1bWVudERlZmluaXRpb25Nb2RlbCQgfCBhc3luYyxcbiAgICBlZGl0QWN0aXZlOiBlZGl0QWN0aXZlJCB8IGFzeW5jLFxuICAgIGxvYWRpbmdEb2N1bWVudERlZmluaXRpb246IGxvYWRpbmdEb2N1bWVudERlZmluaXRpb24kIHwgYXN5bmMsXG4gICAgcGVuZGluZ0NoYW5nZXM6IHBlbmRpbmdDaGFuZ2VzJCB8IGFzeW5jLFxuICAgIHNhdmVCdXR0b25EaXNhYmxlZDogc2F2ZUJ1dHRvbkRpc2FibGVkJCB8IGFzeW5jLFxuICAgIHNlbGVjdGVkRG9jdW1lbnREZWZpbml0aW9uOiBzZWxlY3RlZERvY3VtZW50RGVmaW5pdGlvbiQgfCBhc3luYyxcbiAgICBjb21wYWN0TW9kZTogY29tcGFjdE1vZGUkIHwgYXN5bmMsXG4gIH0gYXMgb2JzXCJcbj5cbiAgPGRpdiBjbGFzcz1cImNkcy0tdG9vbGJhci1jb250ZW50XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFvYnMuZWRpdEFjdGl2ZTsgZWxzZSBlZGl0QWN0aXZlXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNkc0J1dHRvbj1cImdob3N0XCJcbiAgICAgICAgKGNsaWNrKT1cImRvd25sb2FkRGVmaW5pdGlvbigpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIm9icy5sb2FkaW5nRG9jdW1lbnREZWZpbml0aW9uIHx8ICFvYnMuc2VsZWN0ZWREb2N1bWVudERlZmluaXRpb25cIlxuICAgICAgPlxuICAgICAgICB7eyAnaW50ZXJmYWNlLmRvd25sb2FkJyB8IHRyYW5zbGF0ZSB9fVxuXG4gICAgICAgIDxzdmcgY2RzSWNvbj1cImRvd25sb2FkXCIgc2l6ZT1cIjE2XCIgY2xhc3M9XCJjZHMtLWJ0bl9faWNvblwiPjwvc3ZnPlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2RzQnV0dG9uPVwicHJpbWFyeVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJvYnMuc2VsZWN0ZWREb2N1bWVudERlZmluaXRpb24/LnJlYWRPbmx5XCJcbiAgICAgICAgKGNsaWNrKT1cIm9uRWRpdENsaWNrKClcIlxuICAgICAgPlxuICAgICAgICB7eyAnaW50ZXJmYWNlLmVkaXQnIHwgdHJhbnNsYXRlIH19XG5cbiAgICAgICAgPHN2ZyBjZHNJY29uPVwiZWRpdFwiIHNpemU9XCIxNlwiIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIj48L3N2Zz5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cblxuICA8dmFsdGltby1lZGl0b3JcbiAgICAqbmdJZj1cIiFvYnMubG9hZGluZ0RvY3VtZW50RGVmaW5pdGlvbjsgZWxzZSBsb2FkaW5nXCJcbiAgICBbbW9kZWxdPVwib2JzLmRvY3VtZW50RGVmaW5pdGlvbk1vZGVsXCJcbiAgICBbZGlzYWJsZWRdPVwiIW9icy5lZGl0QWN0aXZlXCJcbiAgICAodmFsaWRFdmVudCk9XCJvblZhbGlkRXZlbnQoJGV2ZW50KVwiXG4gICAgKHZhbHVlQ2hhbmdlRXZlbnQpPVwib25WYWx1ZUNoYW5nZUV2ZW50KCRldmVudClcIlxuICAgIFtmaXRQYWdlXT1cInRydWVcIlxuICAgIFtmaXRQYWdlRXh0cmFTcGFjZV09XCI5NlwiXG4gID5cbiAgPC92YWx0aW1vLWVkaXRvcj5cblxuICA8YSBpZD1cImRvd25sb2FkQW5jaG9yRWxlbWVudFwiIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPjwvYT5cblxuICA8bmctdGVtcGxhdGUgI2VkaXRBY3RpdmU+XG4gICAgPGJ1dHRvbiBjZHNCdXR0b249XCJzZWNvbmRhcnlcIiAoY2xpY2spPVwib25DYW5jZWxDbGljayhvYnMucGVuZGluZ0NoYW5nZXMpXCI+XG4gICAgICB7eyAnaW50ZXJmYWNlLmNhbmNlbCcgfCB0cmFuc2xhdGUgfX1cblxuICAgICAgPHN2ZyBjZHNJY29uPVwiY2xvc2VcIiBzaXplPVwiMTZcIiBjbGFzcz1cImNkcy0tYnRuX19pY29uXCI+PC9zdmc+XG4gICAgPC9idXR0b24+XG5cbiAgICA8YnV0dG9uIGNkc0J1dHRvbj1cInByaW1hcnlcIiBbZGlzYWJsZWRdPVwib2JzLnNhdmVCdXR0b25EaXNhYmxlZFwiIChjbGljayk9XCJvblNhdmVDbGljaygpXCI+XG4gICAgICB7eyAnaW50ZXJmYWNlLnNhdmUnIHwgdHJhbnNsYXRlIH19XG5cbiAgICAgIDxzdmcgY2RzSWNvbj1cInNhdmVcIiBzaXplPVwiMTZcIiBjbGFzcz1cImNkcy0tYnRuX19pY29uXCI+PC9zdmc+XG4gICAgPC9idXR0b24+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPHZhbHRpbW8tY29uZmlybWF0aW9uLW1vZGFsXG4gICAgW3Nob3dNb2RhbFN1YmplY3QkXT1cInNob3dTYXZlQ29uZmlybWF0aW9uJFwiXG4gICAgY2FuY2VsQnV0dG9uVGV4dFRyYW5zbGF0aW9uS2V5PVwiaW50ZXJmYWNlLmNhbmNlbFwiXG4gICAgY29uZmlybUJ1dHRvblRleHRUcmFuc2xhdGlvbktleT1cImludGVyZmFjZS5zYXZlXCJcbiAgICBjb250ZW50VHJhbnNsYXRpb25LZXk9XCJkb3NzaWVyTWFuYWdlbWVudC5kb2N1bWVudERlZmluaXRpb24uc2F2ZU1vZGFsQ29udGVudFwiXG4gICAgdGl0bGVUcmFuc2xhdGlvbktleT1cImludGVyZmFjZS5zYXZlXCJcbiAgICAoY2FuY2VsRXZlbnQpPVwia2VlcEVkaXRpbmcoKVwiXG4gICAgKGNvbmZpcm1FdmVudCk9XCJzYXZlRGVmaW5pdGlvbigpXCJcbiAgPjwvdmFsdGltby1jb25maXJtYXRpb24tbW9kYWw+XG5cbiAgPHZhbHRpbW8tY29uZmlybWF0aW9uLW1vZGFsXG4gICAgI2NhbmNlbE1vZGFsXG4gICAgW3Nob3dNb2RhbFN1YmplY3QkXT1cInNob3dDYW5jZWxDb25maXJtYXRpb24kXCJcbiAgICBjYW5jZWxCdXR0b25UZXh0VHJhbnNsYXRpb25LZXk9XCJpbnRlcmZhY2UucGVuZGluZ0NoYW5nZXMua2VlcEVkaXRpbmdcIlxuICAgIGNhbmNlbEJ1dHRvblR5cGU9XCJnaG9zdFwiXG4gICAgY29uZmlybUJ1dHRvblRleHRUcmFuc2xhdGlvbktleT1cImludGVyZmFjZS5kaXNjYXJkXCJcbiAgICBjb25maXJtQnV0dG9uVHlwZT1cImRhbmdlclwiXG4gICAgY29udGVudFRyYW5zbGF0aW9uS2V5PVwiZG9zc2llck1hbmFnZW1lbnQuZG9jdW1lbnREZWZpbml0aW9uLmNhbmNlbE1vZGFsLmNvbnRlbnRcIlxuICAgIG9wdGlvbmFsQnV0dG9uVGV4dFRyYW5zbGF0aW9uS2V5PVwiaW50ZXJmYWNlLnNhdmVcIlxuICAgIG9wdGlvbmFsQnV0dG9uVHlwZT1cInNlY29uZGFyeVwiXG4gICAgdGl0bGVUcmFuc2xhdGlvbktleT1cImRvc3NpZXJNYW5hZ2VtZW50LmRvY3VtZW50RGVmaW5pdGlvbi5jYW5jZWxNb2RhbC50aXRsZVwiXG4gICAgc2hvd09wdGlvbmFsQnV0dG9uPVwidHJ1ZVwiXG4gICAgc3BhY2VyQWZ0ZXJDYW5jZWxCdXR0b249XCJ0cnVlXCJcbiAgICAoY2FuY2VsRXZlbnQpPVwia2VlcEVkaXRpbmdEZWZpbml0aW9uKClcIlxuICAgIChjb25maXJtRXZlbnQpPVwiZGlzY2FyZENoYW5nZXMoKVwiXG4gICAgKG9wdGlvbmFsRXZlbnQpPVwic2F2ZURlZmluaXRpb24oKVwiXG4gID48L3ZhbHRpbW8tY29uZmlybWF0aW9uLW1vZGFsPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjbG9hZGluZz5cbiAgPGRpdiBjbGFzcz1cImxvYWRpbmctY29udGFpbmVyXCI+XG4gICAgPGNkcy1sb2FkaW5nPjwvY2RzLWxvYWRpbmc+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==