@alfresco/adf-process-services 8.1.0-14701637708 → 8.1.0-14711395239
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/app-list/apps-list.component.mjs +4 -4
- package/esm2022/lib/app-list/select-apps-dialog/select-apps-dialog.component.mjs +4 -4
- package/esm2022/lib/attachment/create-process-attachment/create-process-attachment.component.mjs +4 -4
- package/esm2022/lib/attachment/create-task-attachment/create-task-attachment.component.mjs +4 -4
- package/esm2022/lib/attachment/process-attachment-list/process-attachment-list.component.mjs +4 -4
- package/esm2022/lib/attachment/task-attachment-list/task-attachment-list.component.mjs +4 -4
- package/esm2022/lib/form/form-custom-outcomes.component.mjs +4 -4
- package/esm2022/lib/form/form-list/form-list.component.mjs +4 -4
- package/esm2022/lib/form/form.component.mjs +4 -4
- package/esm2022/lib/form/process-form-rendering.service.mjs +4 -4
- package/esm2022/lib/form/services/activiti-alfresco.service.mjs +4 -4
- package/esm2022/lib/form/services/ecm-model.service.mjs +4 -4
- package/esm2022/lib/form/services/editor.service.mjs +4 -4
- package/esm2022/lib/form/services/external-alfresco-api.service.mjs +4 -4
- package/esm2022/lib/form/services/model.service.mjs +4 -4
- package/esm2022/lib/form/services/process-content.service.mjs +4 -4
- package/esm2022/lib/form/services/process-definition.service.mjs +4 -4
- package/esm2022/lib/form/services/task-form.service.mjs +4 -4
- package/esm2022/lib/form/services/task.service.mjs +4 -4
- package/esm2022/lib/form/start-form/start-form.component.mjs +4 -4
- package/esm2022/lib/form/widgets/content-widget/attach-file-widget-dialog.component.mjs +4 -4
- package/esm2022/lib/form/widgets/content-widget/attach-file-widget-dialog.service.mjs +4 -4
- package/esm2022/lib/form/widgets/content-widget/attach-file-widget.component.mjs +4 -4
- package/esm2022/lib/form/widgets/content-widget/attach-folder-widget.component.mjs +4 -4
- package/esm2022/lib/form/widgets/document/content.widget.mjs +4 -4
- package/esm2022/lib/form/widgets/document/document.widget.mjs +4 -4
- package/esm2022/lib/form/widgets/dropdown/dropdown.widget.mjs +4 -4
- package/esm2022/lib/form/widgets/dynamic-table/dynamic-table.widget.mjs +4 -4
- package/esm2022/lib/form/widgets/dynamic-table/editors/amount/amount.editor.mjs +4 -4
- package/esm2022/lib/form/widgets/dynamic-table/editors/boolean/boolean.editor.mjs +4 -4
- package/esm2022/lib/form/widgets/dynamic-table/editors/date/date.editor.mjs +4 -4
- package/esm2022/lib/form/widgets/dynamic-table/editors/datetime/datetime.editor.mjs +4 -4
- package/esm2022/lib/form/widgets/dynamic-table/editors/dropdown/dropdown.editor.mjs +4 -4
- package/esm2022/lib/form/widgets/dynamic-table/editors/row-editor/row.editor.mjs +4 -4
- package/esm2022/lib/form/widgets/dynamic-table/editors/text/text.editor.mjs +4 -4
- package/esm2022/lib/form/widgets/file-viewer/file-viewer.widget.mjs +4 -4
- package/esm2022/lib/form/widgets/functional-group/functional-group.widget.mjs +4 -4
- package/esm2022/lib/form/widgets/people/people.widget.mjs +4 -4
- package/esm2022/lib/form/widgets/radio-buttons/radio-buttons.widget.mjs +4 -4
- package/esm2022/lib/form/widgets/typeahead/typeahead.widget.mjs +4 -4
- package/esm2022/lib/form/widgets/upload/upload.widget.mjs +4 -4
- package/esm2022/lib/people/components/people/people.component.mjs +4 -4
- package/esm2022/lib/people/components/people-list/people-list.component.mjs +4 -4
- package/esm2022/lib/people/components/people-search/people-search.component.mjs +4 -4
- package/esm2022/lib/people/components/people-search-field/people-search-field.component.mjs +4 -4
- package/esm2022/lib/people/components/people-selector/people-selector.component.mjs +4 -4
- package/esm2022/lib/process-comments/process-comments.component.mjs +4 -4
- package/esm2022/lib/process-comments/services/comment-process.service.mjs +4 -4
- package/esm2022/lib/process-list/components/process-audit/process-audit.directive.mjs +4 -4
- package/esm2022/lib/process-list/components/process-filters/process-filters.component.mjs +4 -4
- package/esm2022/lib/process-list/components/process-instance-details/process-instance-details.component.mjs +4 -4
- package/esm2022/lib/process-list/components/process-instance-header/process-instance-header.component.mjs +4 -4
- package/esm2022/lib/process-list/components/process-instance-tasks/process-instance-tasks.component.mjs +4 -4
- package/esm2022/lib/process-list/components/process-list/process-list.component.mjs +4 -4
- package/esm2022/lib/process-list/components/start-process/start-process.component.mjs +5 -5
- package/esm2022/lib/process-list/services/process-filter.service.mjs +4 -4
- package/esm2022/lib/process-list/services/process.service.mjs +4 -4
- package/esm2022/lib/process.module.mjs +5 -5
- package/esm2022/lib/services/apps-process.service.mjs +4 -4
- package/esm2022/lib/services/people-process.service.mjs +4 -4
- package/esm2022/lib/services/task-comments.service.mjs +4 -4
- package/esm2022/lib/task-comments/task-comments.component.mjs +4 -4
- package/esm2022/lib/task-list/components/attach-form/attach-form.component.mjs +4 -4
- package/esm2022/lib/task-list/components/checklist/checklist.component.mjs +4 -4
- package/esm2022/lib/task-list/components/start-task/start-task.component.mjs +4 -4
- package/esm2022/lib/task-list/components/task-details/task-details.component.mjs +4 -4
- package/esm2022/lib/task-list/components/task-filters/task-filters.component.mjs +4 -4
- package/esm2022/lib/task-list/components/task-form/claim-task.directive.mjs +4 -4
- package/esm2022/lib/task-list/components/task-form/task-form.component.mjs +4 -4
- package/esm2022/lib/task-list/components/task-form/unclaim-task.directive.mjs +4 -4
- package/esm2022/lib/task-list/components/task-header/task-header.component.mjs +4 -4
- package/esm2022/lib/task-list/components/task-list/task-list.component.mjs +4 -4
- package/esm2022/lib/task-list/components/task-standalone/task-standalone.component.mjs +4 -4
- package/esm2022/lib/task-list/services/process-upload.service.mjs +4 -4
- package/esm2022/lib/task-list/services/task-filter.service.mjs +4 -4
- package/esm2022/lib/task-list/services/task-upload.service.mjs +4 -4
- package/esm2022/lib/task-list/services/tasklist.service.mjs +4 -4
- package/fesm2022/adf-process-services.mjs +237 -237
- package/fesm2022/adf-process-services.mjs.map +1 -1
- package/lib/app-list/apps-list.component.scss +51 -23
- package/lib/attachment/process-attachment-list/process-attachment-list.component.scss +2 -2
- package/lib/attachment/task-attachment-list/task-attachment-list.component.scss +3 -3
- package/lib/form/start-form/start-form.component.scss +59 -60
- package/lib/form/widgets/content-widget/attach-file-widget-dialog.component.scss +3 -4
- package/lib/form/widgets/content-widget/attach-folder-widget.component.scss +3 -3
- package/lib/form/widgets/dropdown/dropdown.widget.scss +2 -2
- package/lib/form/widgets/people/people.widget.scss +2 -2
- package/lib/form/widgets/upload/upload.widget.scss +2 -2
- package/lib/people/components/people/people.component.scss +2 -2
- package/lib/process-list/components/start-process/start-process.component.scss +12 -12
- package/lib/styles/flex.scss +81 -0
- package/lib/styles/mat-selectors.scss +25 -0
- package/lib/task-list/components/attach-form/attach-form.component.scss +2 -2
- package/lib/task-list/components/checklist/checklist.component.scss +2 -2
- package/lib/task-list/components/start-task/start-task.component.scss +11 -11
- package/lib/task-list/components/task-details/task-details.component.scss +5 -5
- package/lib/task-list/components/task-form/task-form.component.scss +3 -3
- package/lib/task-list/components/task-header/task-header.component.scss +2 -2
- package/lib/task-list/components/task-standalone/task-standalone.component.scss +2 -2
- package/package.json +4 -4
|
@@ -162,10 +162,10 @@ export class TaskAttachmentListComponent {
|
|
|
162
162
|
});
|
|
163
163
|
}
|
|
164
164
|
}
|
|
165
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
166
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
165
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TaskAttachmentListComponent, deps: [{ token: i1.ProcessContentService }, { token: i2.DownloadService }, { token: i2.ThumbnailService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
166
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: TaskAttachmentListComponent, isStandalone: true, selector: "adf-task-attachment-list", inputs: { taskId: "taskId", disabled: "disabled" }, outputs: { attachmentClick: "attachmentClick", success: "success", error: "error" }, queries: [{ propertyName: "emptyTemplate", first: true, predicate: EmptyListComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<adf-datatable [rows]=\"attachments\"\n [actions]=\"true\"\n [loading]=\"isLoading\"\n (rowDblClick)=\"openContent($event)\"\n (showRowActionsMenu)=\"onShowRowActionsMenu($event)\"\n (executeRowAction)=\"onExecuteRowAction($event)\">\n <adf-no-content-template>\n <ng-template>\n <ng-content *ngIf=\"hasCustomTemplate; else defaultEmptyList\" class=\"adf-custom-empty-template\" />\n <ng-template #defaultEmptyList>\n <adf-empty-list>\n <div adf-empty-list-header class=\"adf-empty-list-header\">\n {{'ADF_TASK_LIST.ATTACHMENT.EMPTY.HEADER' | translate}}\n </div>\n </adf-empty-list>\n </ng-template>\n </ng-template>\n </adf-no-content-template>\n\n <data-columns>\n <data-column key=\"icon\" type=\"image\" [sr-title]=\"'ADF_TASK_LIST.PROPERTIES.THUMBNAIL'\" [sortable]=\"false\" />\n <data-column key=\"name\" type=\"text\" title=\"ADF_TASK_LIST.PROPERTIES.NAME\" class=\"adf-full-width adf-ellipsis-cell\" [sortable]=\"true\" />\n <data-column key=\"created\" type=\"date\" format=\"shortDate\" title=\"ADF_TASK_LIST.PROPERTIES.CREATED\" />\n </data-columns>\n <adf-loading-content-template>\n <ng-template>\n <!--Add your custom loading template here-->\n <mat-progress-spinner class=\"adf-attachment-list-loading-margin\" [color]=\"'primary'\" [mode]=\"'indeterminate'\" />\n </ng-template>\n </adf-loading-content-template>\n</adf-datatable>\n", styles: [".adf-attachment-list-loading-margin{margin-left:calc((100% - 100px)/2);margin-right:calc((100% - 100px)/2)}.adf-empty-list-header{height:32px;opacity:.26;font-size:var(--theme-headline-font-size);line-height:1.33;letter-spacing:-1px}.adf-empty-list-drag_drop{min-height:56px;opacity:.54;font-size:56px;line-height:1;letter-spacing:-2px;margin-top:40px;word-break:break-all;white-space:pre-line}@media (max-width: 599.9px){.adf-empty-list-drag_drop{font-size:40px}}.adf-empty-list__any-files-here-to-add{min-height:24px;opacity:.54;font-size:var(--theme-subheading-2-font-size);line-height:1.5;letter-spacing:-.4px;margin-top:17px;word-break:break-all;white-space:pre-line}.adf-empty-list__empty_doc_lib{width:565px;max-width:100%;height:161px;object-fit:contain;margin-top:17px}@media (max-width: 599.9px){.adf-empty-list__empty_doc_lib{width:250px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: DataTableComponent, selector: "adf-datatable", inputs: ["data", "rows", "sorting", "columns", "selectionMode", "multiselect", "mainTableAction", "actions", "showMainDatatableActions", "showProvidedActions", "actionsPosition", "actionsVisibleOnHover", "fallbackThumbnail", "contextMenu", "rowStyle", "rowStyleClass", "showHeader", "stickyHeader", "loading", "noPermission", "rowMenuCacheEnabled", "resolverFn", "allowFiltering", "isResizingEnabled", "blurOnResize", "displayCheckboxesOnHover", "enableDragRows"], outputs: ["rowClick", "rowDblClick", "showRowContextMenu", "showRowActionsMenu", "executeRowAction", "columnOrderChanged", "columnsWidthChanged", "selectedItemsCountChanged", "dragDropped"] }, { kind: "directive", type: EmptyListHeaderDirective, selector: "[adf-empty-list-header]" }, { kind: "component", type: DataColumnListComponent, selector: "data-columns" }, { kind: "component", type: DataColumnComponent, selector: "data-column", inputs: ["id", "key", "customData", "type", "format", "sortable", "draggable", "resizable", "isHidden", "title", "subtitle", "formatTooltip", "sr-title", "class", "copyContent", "editable", "focus", "sortingKey", "order", "currencyConfig", "decimalConfig", "dateConfig"] }, { kind: "directive", type: LoadingContentTemplateDirective, selector: "adf-loading-content-template, loading-content-template" }, { kind: "component", type: EmptyListComponent, selector: "adf-empty-list" }, { kind: "directive", type: NoContentTemplateDirective, selector: "adf-no-content-template, no-content-template" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
167
167
|
}
|
|
168
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
168
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TaskAttachmentListComponent, decorators: [{
|
|
169
169
|
type: Component,
|
|
170
170
|
args: [{ selector: 'adf-task-attachment-list', standalone: true, imports: [
|
|
171
171
|
CommonModule,
|
|
@@ -195,4 +195,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
195
195
|
}], error: [{
|
|
196
196
|
type: Output
|
|
197
197
|
}] } });
|
|
198
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1hdHRhY2htZW50LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMvc3JjL2xpYi9hdHRhY2htZW50L3Rhc2stYXR0YWNobWVudC1saXN0L3Rhc2stYXR0YWNobWVudC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzL3NyYy9saWIvYXR0YWNobWVudC90YXNrLWF0dGFjaG1lbnQtbGlzdC90YXNrLWF0dGFjaG1lbnQtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQ0gsbUJBQW1CLEVBQ25CLHVCQUF1QixFQUN2QixrQkFBa0IsRUFDbEIsZUFBZSxFQUNmLGtCQUFrQixFQUNsQix3QkFBd0IsRUFDeEIsK0JBQStCLEVBQy9CLDBCQUEwQixFQUMxQixnQkFBZ0IsRUFDbkIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBRUgsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixNQUFNLEVBRU4saUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7QUFzQnRELE1BQU0sT0FBTywyQkFBMkI7SUFvQ3BDLFlBQ1ksc0JBQTZDLEVBQzdDLGVBQWdDLEVBQ2hDLGdCQUFrQyxFQUNsQyxNQUFjO1FBSGQsMkJBQXNCLEdBQXRCLHNC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QUF3Qjt3QkFDeEIsa0JBQWtCO3dCQUNsQix3QkFBd0I7d0JBQ3hCLGVBQWU7d0JBQ2YsdUJBQXVCO3dCQUN2QixtQkFBbUI7d0JBQ25CLCtCQUErQjt3QkFDL0Isa0JBQWtCO3dCQUNsQiwwQkFBMEI7cUJBQzdCLGlCQUdjLGlCQUFpQixDQUFDLElBQUk7NEtBSXJDLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxrQkFBa0I7Z0JBS2hDLE1BQU07c0JBREwsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBS3pCLFFBQVE7c0JBRFAsS0FBSztnQkFTTixlQUFlO3NCQURkLE1BQU07Z0JBUVAsT0FBTztzQkFETixNQUFNO2dCQUtQLEtBQUs7c0JBREosTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtcbiAgICBEYXRhQ29sdW1uQ29tcG9uZW50LFxuICAgIERhdGFDb2x1bW5MaXN0Q29tcG9uZW50LFxuICAgIERhdGFUYWJsZUNvbXBvbmVudCxcbiAgICBEb3dubG9hZFNlcnZpY2UsXG4gICAgRW1wdHlMaXN0Q29tcG9uZW50LFxuICAgIEVtcHR5TGlzdEhlYWRlckRpcmVjdGl2ZSxcbiAgICBMb2FkaW5nQ29udGVudFRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIE5vQ29udGVudFRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIFRodW1ibmFpbFNlcnZpY2Vcbn0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT25DaGFuZ2VzLFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJvY2Vzc0NvbnRlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZm9ybS9zZXJ2aWNlcy9wcm9jZXNzLWNvbnRlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtdGFzay1hdHRhY2htZW50LWxpc3QnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAgICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgICAgICBEYXRhVGFibGVDb21wb25lbnQsXG4gICAgICAgIEVtcHR5TGlzdEhlYWRlckRpcmVjdGl2ZSxcbiAgICAgICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgICAgICBEYXRhQ29sdW1uTGlzdENvbXBvbmVudCxcbiAgICAgICAgRGF0YUNvbHVtbkNvbXBvbmVudCxcbiAgICAgICAgTG9hZGluZ0NvbnRlbnRUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICAgICAgRW1wdHlMaXN0Q29tcG9uZW50LFxuICAgICAgICBOb0NvbnRlbnRUZW1wbGF0ZURpcmVjdGl2ZVxuICAgIF0sXG4gICAgc3R5bGVVcmxzOiBbJy4vdGFzay1hdHRhY2htZW50LWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFzay1hdHRhY2htZW50LWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgVGFza0F0dGFjaG1lbnRMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlckNvbnRlbnRJbml0IHtcbiAgICBAQ29udGVudENoaWxkKEVtcHR5TGlzdENvbXBvbmVudClcbiAgICBlbXB0eVRlbXBsYXRlOiBFbXB0eUxpc3RDb21wb25lbnQ7XG5cbiAgICAvKiogKCoqcmVxdWlyZWQqKikgVGhlIElEIG9mIHRoZSB0YXNrIHRvIGRpc3BsYXkuICovXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICB0YXNrSWQ6IHN0cmluZztcblxuICAgIC8qKiBEaXNhYmxlL0VuYWJsZSByZWFkIG9ubHkgbW9kZSBmb3IgYXR0YWNobWVudCBsaXN0LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEVtaXR0ZWQgd2hlbiB0aGUgYXR0YWNobWVudCBpcyBkb3VibGUtY2xpY2tlZCBvciBhIHZpZXdcbiAgICAgKiBvcHRpb24gaXMgc2VsZWN0ZWQgZnJvbSB0aGUgY29udGV4dCBtZW51IGJ5IHRoZSB1c2VyIGZyb20gd2l0aGluIHRoZSBjb21wb25lbnQuXG4gICAgICogUmV0dXJucyBhIEJsb2IgcmVwcmVzZW50aW5nIHRoZSBjbGlja2VkIG9iamVjdC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBhdHRhY2htZW50Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIHdoZW4gdGhlIGF0dGFjaG1lbnQgbGlzdCBoYXMgZmV0Y2hlZCBhbGwgdGhlIGF0dGFjaG1lbnRzLlxuICAgICAqIFJldHVybnMgYSBsaXN0IG9mIGF0dGFjaG1lbnRzLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHN1Y2Nlc3MgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIGFuIGVycm9yIG9jY3VycyB3aGlsZSBmZXRjaGluZyB0aGUgYXR0YWNobWVudHMuICovXG4gICAgQE91dHB1dCgpXG4gICAgZXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIGhhc0N1c3RvbVRlbXBsYXRlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBhdHRhY2htZW50czogYW55W10gPSBbXTtcbiAgICBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGFjdGl2aXRpQ29udGVudFNlcnZpY2U6IFByb2Nlc3NDb250ZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkb3dubG9hZFNlcnZpY2U6IERvd25sb2FkU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB0aHVtYm5haWxTZXJ2aWNlOiBUaHVtYm5haWxTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lXG4gICAgKSB7fVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoY2hhbmdlc1sndGFza0lkJ10/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5sb2FkQXR0YWNobWVudHNCeVRhc2tJZChjaGFuZ2VzWyd0YXNrSWQnXS5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICBpZiAodGhpcy5lbXB0eVRlbXBsYXRlKSB7XG4gICAgICAgICAgICB0aGlzLmhhc0N1c3RvbVRlbXBsYXRlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlc2V0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmF0dGFjaG1lbnRzID0gW107XG4gICAgfVxuXG4gICAgcmVsb2FkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2FkQXR0YWNobWVudHNCeVRhc2tJZCh0aGlzLnRhc2tJZCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFkZChjb250ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYXR0YWNobWVudHMucHVzaCh7XG4gICAgICAgICAgICAgICAgaWQ6IGNvbnRlbnQuaWQsXG4gICAgICAgICAgICAgICAgbmFtZTogY29udGVudC5uYW1lLFxuICAgICAgICAgICAgICAgIGNyZWF0ZWQ6IGNvbnRlbnQuY3JlYXRlZCxcbiAgICAgICAgICAgICAgICBjcmVhdGVkQnk6IGNvbnRlbnQuY3JlYXRlZEJ5LmZpcnN0TmFtZSArICcgJyArIGNvbnRlbnQuY3JlYXRlZEJ5Lmxhc3ROYW1lLFxuICAgICAgICAgICAgICAgIGljb246IHRoaXMudGh1bWJuYWlsU2VydmljZS5nZXRNaW1lVHlwZUljb24oY29udGVudC5taW1lVHlwZSlcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBkZWxldGVBdHRhY2htZW50QnlJZChjb250ZW50SWQ6IG51bWJlcikge1xuICAgICAgICBpZiAoY29udGVudElkKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2aXRpQ29udGVudFNlcnZpY2UuZGVsZXRlUmVsYXRlZENvbnRlbnQoY29udGVudElkKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmF0dGFjaG1lbnRzID0gdGhpcy5hdHRhY2htZW50cy5maWx0ZXIoKGNvbnRlbnQpID0+IGNvbnRlbnQuaWQgIT09IGNvbnRlbnRJZCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3IuZW1pdChlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblNob3dSb3dBY3Rpb25zTWVudShldmVudDogYW55KSB7XG4gICAgICAgIGNvbnN0IHZpZXdBY3Rpb24gPSB7XG4gICAgICAgICAgICB0aXRsZTogJ0FERl9UQVNLX0xJU1QuTUVOVV9BQ1RJT05TLlZJRVdfQ09OVEVOVCcsXG4gICAgICAgICAgICBuYW1lOiAndmlldydcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCByZW1vdmVBY3Rpb24gPSB7XG4gICAgICAgICAgICB0aXRsZTogJ0FERl9UQVNLX0xJU1QuTUVOVV9BQ1RJT05TLlJFTU9WRV9DT05URU5UJyxcbiAgICAgICAgICAgIG5hbWU6ICdyZW1vdmUnXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgZG93bmxvYWRBY3Rpb24gPSB7XG4gICAgICAgICAgICB0aXRsZTogJ0FERl9UQVNLX0xJU1QuTUVOVV9BQ1RJT05TLkRPV05MT0FEX0NPTlRFTlQnLFxuICAgICAgICAgICAgbmFtZTogJ2Rvd25sb2FkJ1xuICAgICAgICB9O1xuXG4gICAgICAgIGV2ZW50LnZhbHVlLmFjdGlvbnMgPSBbdmlld0FjdGlvbiwgZG93bmxvYWRBY3Rpb25dO1xuXG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgZXZlbnQudmFsdWUuYWN0aW9ucy5zcGxpY2UoMSwgMCwgcmVtb3ZlQWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRXhlY3V0ZVJvd0FjdGlvbihldmVudDogYW55KSB7XG4gICAgICAgIGNvbnN0IGFyZ3MgPSBldmVudC52YWx1ZTtcbiAgICAgICAgY29uc3QgYWN0aW9uID0gYXJncy5hY3Rpb247XG4gICAgICAgIGlmIChhY3Rpb24ubmFtZSA9PT0gJ3ZpZXcnKSB7XG4gICAgICAgICAgICB0aGlzLmVtaXREb2N1bWVudENvbnRlbnQoYXJncy5yb3cub2JqKTtcbiAgICAgICAgfSBlbHNlIGlmIChhY3Rpb24ubmFtZSA9PT0gJ3JlbW92ZScpIHtcbiAgICAgICAgICAgIHRoaXMuZGVsZXRlQXR0YWNobWVudEJ5SWQoYXJncy5yb3cub2JqLmlkKTtcbiAgICAgICAgfSBlbHNlIGlmIChhY3Rpb24ubmFtZSA9PT0gJ2Rvd25sb2FkJykge1xuICAgICAgICAgICAgdGhpcy5kb3dubG9hZENvbnRlbnQoYXJncy5yb3cub2JqKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9wZW5Db250ZW50KGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29udGVudCA9IGV2ZW50LnZhbHVlLm9iajtcbiAgICAgICAgdGhpcy5lbWl0RG9jdW1lbnRDb250ZW50KGNvbnRlbnQpO1xuICAgIH1cblxuICAgIGVtaXREb2N1bWVudENvbnRlbnQoY29udGVudDogYW55KSB7XG4gICAgICAgIHRoaXMuYWN0aXZpdGlDb250ZW50U2VydmljZS5nZXRDb250ZW50UHJldmlldyhjb250ZW50LmlkKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAoYmxvYjogQmxvYikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQuY29udGVudEJsb2IgPSBibG9iO1xuICAgICAgICAgICAgICAgIHRoaXMuYXR0YWNobWVudENsaWNrLmVtaXQoY29udGVudCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3IuZW1pdChlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGRvd25sb2FkQ29udGVudChjb250ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3Rpdml0aUNvbnRlbnRTZXJ2aWNlLmdldEZpbGVSYXdDb250ZW50KGNvbnRlbnQuaWQpLnN1YnNjcmliZShcbiAgICAgICAgICAgIChibG9iOiBCbG9iKSA9PiB0aGlzLmRvd25sb2FkU2VydmljZS5kb3dubG9hZEJsb2IoYmxvYiwgY29udGVudC5uYW1lKSxcbiAgICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVycm9yLmVtaXQoZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxvYWRBdHRhY2htZW50c0J5VGFza0lkKHRhc2tJZDogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0YXNrSWQpIHtcbiAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgICAgIGNvbnN0IGlzUmVsYXRlZENvbnRlbnQgPSAndHJ1ZSc7XG4gICAgICAgICAgICB0aGlzLmFjdGl2aXRpQ29udGVudFNlcnZpY2UuZ2V0VGFza1JlbGF0ZWRDb250ZW50KHRhc2tJZCwgeyBpc1JlbGF0ZWRDb250ZW50IH0pLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAocmVzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGF0dGFjaExpc3QgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLmRhdGEuZm9yRWFjaCgoY29udGVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNoTGlzdC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogY29udGVudC5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBjb250ZW50Lm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlZDogY29udGVudC5jcmVhdGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWRCeTogY29udGVudC5jcmVhdGVkQnkuZmlyc3ROYW1lICsgJyAnICsgY29udGVudC5jcmVhdGVkQnkubGFzdE5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogdGhpcy50aHVtYm5haWxTZXJ2aWNlLmdldE1pbWVUeXBlSWNvbihjb250ZW50Lm1pbWVUeXBlKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmF0dGFjaG1lbnRzID0gYXR0YWNoTGlzdDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWNjZXNzLmVtaXQodGhpcy5hdHRhY2htZW50cyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3IuZW1pdChlcnIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8YWRmLWRhdGF0YWJsZSBbcm93c109XCJhdHRhY2htZW50c1wiXG4gICAgICAgICAgICAgICBbYWN0aW9uc109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgIFtsb2FkaW5nXT1cImlzTG9hZGluZ1wiXG4gICAgICAgICAgICAgICAocm93RGJsQ2xpY2spPVwib3BlbkNvbnRlbnQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAoc2hvd1Jvd0FjdGlvbnNNZW51KT1cIm9uU2hvd1Jvd0FjdGlvbnNNZW51KCRldmVudClcIlxuICAgICAgICAgICAgICAgKGV4ZWN1dGVSb3dBY3Rpb24pPVwib25FeGVjdXRlUm93QWN0aW9uKCRldmVudClcIj5cbiAgICAgICAgICAgIDxhZGYtbm8tY29udGVudC10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50ICpuZ0lmPVwiaGFzQ3VzdG9tVGVtcGxhdGU7IGVsc2UgZGVmYXVsdEVtcHR5TGlzdFwiIGNsYXNzPVwiYWRmLWN1c3RvbS1lbXB0eS10ZW1wbGF0ZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEVtcHR5TGlzdD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhZGYtZW1wdHktbGlzdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGFkZi1lbXB0eS1saXN0LWhlYWRlciBjbGFzcz1cImFkZi1lbXB0eS1saXN0LWhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eydBREZfVEFTS19MSVNULkFUVEFDSE1FTlQuRU1QVFkuSEVBREVSJyB8IHRyYW5zbGF0ZX19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2FkZi1lbXB0eS1saXN0PlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2FkZi1uby1jb250ZW50LXRlbXBsYXRlPlxuXG4gICAgICAgICAgICA8ZGF0YS1jb2x1bW5zPlxuICAgICAgICAgICAgICAgIDxkYXRhLWNvbHVtbiBrZXk9XCJpY29uXCIgdHlwZT1cImltYWdlXCIgW3NyLXRpdGxlXT1cIidBREZfVEFTS19MSVNULlBST1BFUlRJRVMuVEhVTUJOQUlMJ1wiIFtzb3J0YWJsZV09XCJmYWxzZVwiIC8+XG4gICAgICAgICAgICAgICAgPGRhdGEtY29sdW1uIGtleT1cIm5hbWVcIiB0eXBlPVwidGV4dFwiIHRpdGxlPVwiQURGX1RBU0tfTElTVC5QUk9QRVJUSUVTLk5BTUVcIiBjbGFzcz1cImFkZi1mdWxsLXdpZHRoIGFkZi1lbGxpcHNpcy1jZWxsXCIgW3NvcnRhYmxlXT1cInRydWVcIiAvPlxuICAgICAgICAgICAgICAgIDxkYXRhLWNvbHVtbiBrZXk9XCJjcmVhdGVkXCIgdHlwZT1cImRhdGVcIiBmb3JtYXQ9XCJzaG9ydERhdGVcIiB0aXRsZT1cIkFERl9UQVNLX0xJU1QuUFJPUEVSVElFUy5DUkVBVEVEXCIgLz5cbiAgICAgICAgICAgIDwvZGF0YS1jb2x1bW5zPlxuICAgICAgICAgICAgPGFkZi1sb2FkaW5nLWNvbnRlbnQtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwhLS1BZGQgeW91ciBjdXN0b20gbG9hZGluZyB0ZW1wbGF0ZSBoZXJlLS0+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjbGFzcz1cImFkZi1hdHRhY2htZW50LWxpc3QtbG9hZGluZy1tYXJnaW5cIiBbY29sb3JdPVwiJ3ByaW1hcnknXCIgW21vZGVdPVwiJ2luZGV0ZXJtaW5hdGUnXCIgLz5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9hZGYtbG9hZGluZy1jb250ZW50LXRlbXBsYXRlPlxuPC9hZGYtZGF0YXRhYmxlPlxuIl19
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1hdHRhY2htZW50LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMvc3JjL2xpYi9hdHRhY2htZW50L3Rhc2stYXR0YWNobWVudC1saXN0L3Rhc2stYXR0YWNobWVudC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzL3NyYy9saWIvYXR0YWNobWVudC90YXNrLWF0dGFjaG1lbnQtbGlzdC90YXNrLWF0dGFjaG1lbnQtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQ0gsbUJBQW1CLEVBQ25CLHVCQUF1QixFQUN2QixrQkFBa0IsRUFDbEIsZUFBZSxFQUNmLGtCQUFrQixFQUNsQix3QkFBd0IsRUFDeEIsK0JBQStCLEVBQy9CLDBCQUEwQixFQUMxQixnQkFBZ0IsRUFDbkIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBRUgsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixNQUFNLEVBRU4saUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7QUFzQnRELE1BQU0sT0FBTywyQkFBMkI7SUFvQ3BDLFlBQ1ksc0JBQTZDLEVBQzdDLGVBQWdDLEVBQ2hDLGdCQUFrQyxFQUNsQyxNQUFjO1FBSGQsMkJBQXNCLEdBQXRCLHNC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QUF3Qjt3QkFDeEIsa0JBQWtCO3dCQUNsQix3QkFBd0I7d0JBQ3hCLGVBQWU7d0JBQ2YsdUJBQXVCO3dCQUN2QixtQkFBbUI7d0JBQ25CLCtCQUErQjt3QkFDL0Isa0JBQWtCO3dCQUNsQiwwQkFBMEI7cUJBQzdCLGlCQUdjLGlCQUFpQixDQUFDLElBQUk7NEtBSXJDLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxrQkFBa0I7Z0JBS2hDLE1BQU07c0JBREwsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBS3pCLFFBQVE7c0JBRFAsS0FBSztnQkFTTixlQUFlO3NCQURkLE1BQU07Z0JBUVAsT0FBTztzQkFETixNQUFNO2dCQUtQLEtBQUs7c0JBREosTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtcbiAgICBEYXRhQ29sdW1uQ29tcG9uZW50LFxuICAgIERhdGFDb2x1bW5MaXN0Q29tcG9uZW50LFxuICAgIERhdGFUYWJsZUNvbXBvbmVudCxcbiAgICBEb3dubG9hZFNlcnZpY2UsXG4gICAgRW1wdHlMaXN0Q29tcG9uZW50LFxuICAgIEVtcHR5TGlzdEhlYWRlckRpcmVjdGl2ZSxcbiAgICBMb2FkaW5nQ29udGVudFRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIE5vQ29udGVudFRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIFRodW1ibmFpbFNlcnZpY2Vcbn0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT25DaGFuZ2VzLFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJvY2Vzc0NvbnRlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZm9ybS9zZXJ2aWNlcy9wcm9jZXNzLWNvbnRlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtdGFzay1hdHRhY2htZW50LWxpc3QnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAgICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgICAgICBEYXRhVGFibGVDb21wb25lbnQsXG4gICAgICAgIEVtcHR5TGlzdEhlYWRlckRpcmVjdGl2ZSxcbiAgICAgICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgICAgICBEYXRhQ29sdW1uTGlzdENvbXBvbmVudCxcbiAgICAgICAgRGF0YUNvbHVtbkNvbXBvbmVudCxcbiAgICAgICAgTG9hZGluZ0NvbnRlbnRUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICAgICAgRW1wdHlMaXN0Q29tcG9uZW50LFxuICAgICAgICBOb0NvbnRlbnRUZW1wbGF0ZURpcmVjdGl2ZVxuICAgIF0sXG4gICAgc3R5bGVVcmxzOiBbJy4vdGFzay1hdHRhY2htZW50LWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFzay1hdHRhY2htZW50LWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgVGFza0F0dGFjaG1lbnRMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlckNvbnRlbnRJbml0IHtcbiAgICBAQ29udGVudENoaWxkKEVtcHR5TGlzdENvbXBvbmVudClcbiAgICBlbXB0eVRlbXBsYXRlOiBFbXB0eUxpc3RDb21wb25lbnQ7XG5cbiAgICAvKiogKCoqcmVxdWlyZWQqKikgVGhlIElEIG9mIHRoZSB0YXNrIHRvIGRpc3BsYXkuICovXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICB0YXNrSWQ6IHN0cmluZztcblxuICAgIC8qKiBEaXNhYmxlL0VuYWJsZSByZWFkIG9ubHkgbW9kZSBmb3IgYXR0YWNobWVudCBsaXN0LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEVtaXR0ZWQgd2hlbiB0aGUgYXR0YWNobWVudCBpcyBkb3VibGUtY2xpY2tlZCBvciBhIHZpZXdcbiAgICAgKiBvcHRpb24gaXMgc2VsZWN0ZWQgZnJvbSB0aGUgY29udGV4dCBtZW51IGJ5IHRoZSB1c2VyIGZyb20gd2l0aGluIHRoZSBjb21wb25lbnQuXG4gICAgICogUmV0dXJucyBhIEJsb2IgcmVwcmVzZW50aW5nIHRoZSBjbGlja2VkIG9iamVjdC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBhdHRhY2htZW50Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIHdoZW4gdGhlIGF0dGFjaG1lbnQgbGlzdCBoYXMgZmV0Y2hlZCBhbGwgdGhlIGF0dGFjaG1lbnRzLlxuICAgICAqIFJldHVybnMgYSBsaXN0IG9mIGF0dGFjaG1lbnRzLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHN1Y2Nlc3MgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIGFuIGVycm9yIG9jY3VycyB3aGlsZSBmZXRjaGluZyB0aGUgYXR0YWNobWVudHMuICovXG4gICAgQE91dHB1dCgpXG4gICAgZXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIGhhc0N1c3RvbVRlbXBsYXRlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBhdHRhY2htZW50czogYW55W10gPSBbXTtcbiAgICBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGFjdGl2aXRpQ29udGVudFNlcnZpY2U6IFByb2Nlc3NDb250ZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkb3dubG9hZFNlcnZpY2U6IERvd25sb2FkU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB0aHVtYm5haWxTZXJ2aWNlOiBUaHVtYm5haWxTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lXG4gICAgKSB7fVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoY2hhbmdlc1sndGFza0lkJ10/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5sb2FkQXR0YWNobWVudHNCeVRhc2tJZChjaGFuZ2VzWyd0YXNrSWQnXS5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICBpZiAodGhpcy5lbXB0eVRlbXBsYXRlKSB7XG4gICAgICAgICAgICB0aGlzLmhhc0N1c3RvbVRlbXBsYXRlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlc2V0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmF0dGFjaG1lbnRzID0gW107XG4gICAgfVxuXG4gICAgcmVsb2FkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2FkQXR0YWNobWVudHNCeVRhc2tJZCh0aGlzLnRhc2tJZCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFkZChjb250ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYXR0YWNobWVudHMucHVzaCh7XG4gICAgICAgICAgICAgICAgaWQ6IGNvbnRlbnQuaWQsXG4gICAgICAgICAgICAgICAgbmFtZTogY29udGVudC5uYW1lLFxuICAgICAgICAgICAgICAgIGNyZWF0ZWQ6IGNvbnRlbnQuY3JlYXRlZCxcbiAgICAgICAgICAgICAgICBjcmVhdGVkQnk6IGNvbnRlbnQuY3JlYXRlZEJ5LmZpcnN0TmFtZSArICcgJyArIGNvbnRlbnQuY3JlYXRlZEJ5Lmxhc3ROYW1lLFxuICAgICAgICAgICAgICAgIGljb246IHRoaXMudGh1bWJuYWlsU2VydmljZS5nZXRNaW1lVHlwZUljb24oY29udGVudC5taW1lVHlwZSlcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBkZWxldGVBdHRhY2htZW50QnlJZChjb250ZW50SWQ6IG51bWJlcikge1xuICAgICAgICBpZiAoY29udGVudElkKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2aXRpQ29udGVudFNlcnZpY2UuZGVsZXRlUmVsYXRlZENvbnRlbnQoY29udGVudElkKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmF0dGFjaG1lbnRzID0gdGhpcy5hdHRhY2htZW50cy5maWx0ZXIoKGNvbnRlbnQpID0+IGNvbnRlbnQuaWQgIT09IGNvbnRlbnRJZCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3IuZW1pdChlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblNob3dSb3dBY3Rpb25zTWVudShldmVudDogYW55KSB7XG4gICAgICAgIGNvbnN0IHZpZXdBY3Rpb24gPSB7XG4gICAgICAgICAgICB0aXRsZTogJ0FERl9UQVNLX0xJU1QuTUVOVV9BQ1RJT05TLlZJRVdfQ09OVEVOVCcsXG4gICAgICAgICAgICBuYW1lOiAndmlldydcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCByZW1vdmVBY3Rpb24gPSB7XG4gICAgICAgICAgICB0aXRsZTogJ0FERl9UQVNLX0xJU1QuTUVOVV9BQ1RJT05TLlJFTU9WRV9DT05URU5UJyxcbiAgICAgICAgICAgIG5hbWU6ICdyZW1vdmUnXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgZG93bmxvYWRBY3Rpb24gPSB7XG4gICAgICAgICAgICB0aXRsZTogJ0FERl9UQVNLX0xJU1QuTUVOVV9BQ1RJT05TLkRPV05MT0FEX0NPTlRFTlQnLFxuICAgICAgICAgICAgbmFtZTogJ2Rvd25sb2FkJ1xuICAgICAgICB9O1xuXG4gICAgICAgIGV2ZW50LnZhbHVlLmFjdGlvbnMgPSBbdmlld0FjdGlvbiwgZG93bmxvYWRBY3Rpb25dO1xuXG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgZXZlbnQudmFsdWUuYWN0aW9ucy5zcGxpY2UoMSwgMCwgcmVtb3ZlQWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRXhlY3V0ZVJvd0FjdGlvbihldmVudDogYW55KSB7XG4gICAgICAgIGNvbnN0IGFyZ3MgPSBldmVudC52YWx1ZTtcbiAgICAgICAgY29uc3QgYWN0aW9uID0gYXJncy5hY3Rpb247XG4gICAgICAgIGlmIChhY3Rpb24ubmFtZSA9PT0gJ3ZpZXcnKSB7XG4gICAgICAgICAgICB0aGlzLmVtaXREb2N1bWVudENvbnRlbnQoYXJncy5yb3cub2JqKTtcbiAgICAgICAgfSBlbHNlIGlmIChhY3Rpb24ubmFtZSA9PT0gJ3JlbW92ZScpIHtcbiAgICAgICAgICAgIHRoaXMuZGVsZXRlQXR0YWNobWVudEJ5SWQoYXJncy5yb3cub2JqLmlkKTtcbiAgICAgICAgfSBlbHNlIGlmIChhY3Rpb24ubmFtZSA9PT0gJ2Rvd25sb2FkJykge1xuICAgICAgICAgICAgdGhpcy5kb3dubG9hZENvbnRlbnQoYXJncy5yb3cub2JqKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9wZW5Db250ZW50KGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29udGVudCA9IGV2ZW50LnZhbHVlLm9iajtcbiAgICAgICAgdGhpcy5lbWl0RG9jdW1lbnRDb250ZW50KGNvbnRlbnQpO1xuICAgIH1cblxuICAgIGVtaXREb2N1bWVudENvbnRlbnQoY29udGVudDogYW55KSB7XG4gICAgICAgIHRoaXMuYWN0aXZpdGlDb250ZW50U2VydmljZS5nZXRDb250ZW50UHJldmlldyhjb250ZW50LmlkKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAoYmxvYjogQmxvYikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQuY29udGVudEJsb2IgPSBibG9iO1xuICAgICAgICAgICAgICAgIHRoaXMuYXR0YWNobWVudENsaWNrLmVtaXQoY29udGVudCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3IuZW1pdChlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGRvd25sb2FkQ29udGVudChjb250ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3Rpdml0aUNvbnRlbnRTZXJ2aWNlLmdldEZpbGVSYXdDb250ZW50KGNvbnRlbnQuaWQpLnN1YnNjcmliZShcbiAgICAgICAgICAgIChibG9iOiBCbG9iKSA9PiB0aGlzLmRvd25sb2FkU2VydmljZS5kb3dubG9hZEJsb2IoYmxvYiwgY29udGVudC5uYW1lKSxcbiAgICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVycm9yLmVtaXQoZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxvYWRBdHRhY2htZW50c0J5VGFza0lkKHRhc2tJZDogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0YXNrSWQpIHtcbiAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgICAgIGNvbnN0IGlzUmVsYXRlZENvbnRlbnQgPSAndHJ1ZSc7XG4gICAgICAgICAgICB0aGlzLmFjdGl2aXRpQ29udGVudFNlcnZpY2UuZ2V0VGFza1JlbGF0ZWRDb250ZW50KHRhc2tJZCwgeyBpc1JlbGF0ZWRDb250ZW50IH0pLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAocmVzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGF0dGFjaExpc3QgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLmRhdGEuZm9yRWFjaCgoY29udGVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNoTGlzdC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogY29udGVudC5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBjb250ZW50Lm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlZDogY29udGVudC5jcmVhdGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWRCeTogY29udGVudC5jcmVhdGVkQnkuZmlyc3ROYW1lICsgJyAnICsgY29udGVudC5jcmVhdGVkQnkubGFzdE5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogdGhpcy50aHVtYm5haWxTZXJ2aWNlLmdldE1pbWVUeXBlSWNvbihjb250ZW50Lm1pbWVUeXBlKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmF0dGFjaG1lbnRzID0gYXR0YWNoTGlzdDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWNjZXNzLmVtaXQodGhpcy5hdHRhY2htZW50cyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3IuZW1pdChlcnIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8YWRmLWRhdGF0YWJsZSBbcm93c109XCJhdHRhY2htZW50c1wiXG4gICAgICAgICAgICAgICBbYWN0aW9uc109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgIFtsb2FkaW5nXT1cImlzTG9hZGluZ1wiXG4gICAgICAgICAgICAgICAocm93RGJsQ2xpY2spPVwib3BlbkNvbnRlbnQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAoc2hvd1Jvd0FjdGlvbnNNZW51KT1cIm9uU2hvd1Jvd0FjdGlvbnNNZW51KCRldmVudClcIlxuICAgICAgICAgICAgICAgKGV4ZWN1dGVSb3dBY3Rpb24pPVwib25FeGVjdXRlUm93QWN0aW9uKCRldmVudClcIj5cbiAgICAgICAgICAgIDxhZGYtbm8tY29udGVudC10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50ICpuZ0lmPVwiaGFzQ3VzdG9tVGVtcGxhdGU7IGVsc2UgZGVmYXVsdEVtcHR5TGlzdFwiIGNsYXNzPVwiYWRmLWN1c3RvbS1lbXB0eS10ZW1wbGF0ZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEVtcHR5TGlzdD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhZGYtZW1wdHktbGlzdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGFkZi1lbXB0eS1saXN0LWhlYWRlciBjbGFzcz1cImFkZi1lbXB0eS1saXN0LWhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eydBREZfVEFTS19MSVNULkFUVEFDSE1FTlQuRU1QVFkuSEVBREVSJyB8IHRyYW5zbGF0ZX19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2FkZi1lbXB0eS1saXN0PlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2FkZi1uby1jb250ZW50LXRlbXBsYXRlPlxuXG4gICAgICAgICAgICA8ZGF0YS1jb2x1bW5zPlxuICAgICAgICAgICAgICAgIDxkYXRhLWNvbHVtbiBrZXk9XCJpY29uXCIgdHlwZT1cImltYWdlXCIgW3NyLXRpdGxlXT1cIidBREZfVEFTS19MSVNULlBST1BFUlRJRVMuVEhVTUJOQUlMJ1wiIFtzb3J0YWJsZV09XCJmYWxzZVwiIC8+XG4gICAgICAgICAgICAgICAgPGRhdGEtY29sdW1uIGtleT1cIm5hbWVcIiB0eXBlPVwidGV4dFwiIHRpdGxlPVwiQURGX1RBU0tfTElTVC5QUk9QRVJUSUVTLk5BTUVcIiBjbGFzcz1cImFkZi1mdWxsLXdpZHRoIGFkZi1lbGxpcHNpcy1jZWxsXCIgW3NvcnRhYmxlXT1cInRydWVcIiAvPlxuICAgICAgICAgICAgICAgIDxkYXRhLWNvbHVtbiBrZXk9XCJjcmVhdGVkXCIgdHlwZT1cImRhdGVcIiBmb3JtYXQ9XCJzaG9ydERhdGVcIiB0aXRsZT1cIkFERl9UQVNLX0xJU1QuUFJPUEVSVElFUy5DUkVBVEVEXCIgLz5cbiAgICAgICAgICAgIDwvZGF0YS1jb2x1bW5zPlxuICAgICAgICAgICAgPGFkZi1sb2FkaW5nLWNvbnRlbnQtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwhLS1BZGQgeW91ciBjdXN0b20gbG9hZGluZyB0ZW1wbGF0ZSBoZXJlLS0+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjbGFzcz1cImFkZi1hdHRhY2htZW50LWxpc3QtbG9hZGluZy1tYXJnaW5cIiBbY29sb3JdPVwiJ3ByaW1hcnknXCIgW21vZGVdPVwiJ2luZGV0ZXJtaW5hdGUnXCIgLz5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9hZGYtbG9hZGluZy1jb250ZW50LXRlbXBsYXRlPlxuPC9hZGYtZGF0YXRhYmxlPlxuIl19
|
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
import { Component } from '@angular/core';
|
|
18
18
|
import * as i0 from "@angular/core";
|
|
19
19
|
export class FormCustomOutcomesComponent {
|
|
20
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
21
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: FormCustomOutcomesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
21
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: FormCustomOutcomesComponent, isStandalone: true, selector: "adf-form-custom-outcomes", ngImport: i0, template: '<ng-content />', isInline: true }); }
|
|
22
22
|
}
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: FormCustomOutcomesComponent, decorators: [{
|
|
24
24
|
type: Component,
|
|
25
25
|
args: [{
|
|
26
26
|
selector: 'adf-form-custom-outcomes',
|
|
@@ -28,4 +28,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
28
28
|
template: '<ng-content />'
|
|
29
29
|
}]
|
|
30
30
|
}] });
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jdXN0b20tb3V0Y29tZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMvc3JjL2xpYi9mb3JtL2Zvcm0tY3VzdG9tLW91dGNvbWVzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU8xQyxNQUFNLE9BQU8sMkJBQTJCOzhHQUEzQiwyQkFBMkI7a0dBQTNCLDJCQUEyQixvRkFGMUIsZ0JBQWdCOzsyRkFFakIsMkJBQTJCO2tCQUx2QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsZ0JBQWdCO2lCQUM3QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLWZvcm0tY3VzdG9tLW91dGNvbWVzJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQgLz4nXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1DdXN0b21PdXRjb21lc0NvbXBvbmVudCB7fVxuIl19
|
|
@@ -38,13 +38,13 @@ export class FormListComponent {
|
|
|
38
38
|
this.forms.push(...forms);
|
|
39
39
|
});
|
|
40
40
|
}
|
|
41
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
42
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
41
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: FormListComponent, deps: [{ token: i1.ModelService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
42
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: FormListComponent, isStandalone: true, selector: "adf-form-list", inputs: { forms: "forms" }, usesOnChanges: true, ngImport: i0, template: "<adf-datatable *ngIf=\"!isEmpty()\"\n [rows]=\"forms\">\n <data-columns>\n <data-column key=\"name\" type=\"text\" title=\"Name\" class=\"adf-ellipsis-cell\" [sortable]=\"true\" />\n <data-column key=\"lastUpdatedByFullName\" type=\"text\" title=\"User\" class=\"adf-ellipsis-cell\" [sortable]=\"true\" />\n <data-column key=\"lastUpdated\" type=\"date\" format=\"shortDate\" title=\"Date\" />\n </data-columns>\n</adf-datatable>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DataTableComponent, selector: "adf-datatable", inputs: ["data", "rows", "sorting", "columns", "selectionMode", "multiselect", "mainTableAction", "actions", "showMainDatatableActions", "showProvidedActions", "actionsPosition", "actionsVisibleOnHover", "fallbackThumbnail", "contextMenu", "rowStyle", "rowStyleClass", "showHeader", "stickyHeader", "loading", "noPermission", "rowMenuCacheEnabled", "resolverFn", "allowFiltering", "isResizingEnabled", "blurOnResize", "displayCheckboxesOnHover", "enableDragRows"], outputs: ["rowClick", "rowDblClick", "showRowContextMenu", "showRowActionsMenu", "executeRowAction", "columnOrderChanged", "columnsWidthChanged", "selectedItemsCountChanged", "dragDropped"] }, { kind: "component", type: DataColumnListComponent, selector: "data-columns" }, { kind: "component", type: DataColumnComponent, selector: "data-column", inputs: ["id", "key", "customData", "type", "format", "sortable", "draggable", "resizable", "isHidden", "title", "subtitle", "formatTooltip", "sr-title", "class", "copyContent", "editable", "focus", "sortingKey", "order", "currencyConfig", "decimalConfig", "dateConfig"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
43
43
|
}
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: FormListComponent, decorators: [{
|
|
45
45
|
type: Component,
|
|
46
46
|
args: [{ selector: 'adf-form-list', standalone: true, imports: [CommonModule, DataTableComponent, DataColumnListComponent, DataColumnComponent], encapsulation: ViewEncapsulation.None, template: "<adf-datatable *ngIf=\"!isEmpty()\"\n [rows]=\"forms\">\n <data-columns>\n <data-column key=\"name\" type=\"text\" title=\"Name\" class=\"adf-ellipsis-cell\" [sortable]=\"true\" />\n <data-column key=\"lastUpdatedByFullName\" type=\"text\" title=\"User\" class=\"adf-ellipsis-cell\" [sortable]=\"true\" />\n <data-column key=\"lastUpdated\" type=\"date\" format=\"shortDate\" title=\"Date\" />\n </data-columns>\n</adf-datatable>\n" }]
|
|
47
47
|
}], ctorParameters: () => [{ type: i1.ModelService }], propDecorators: { forms: [{
|
|
48
48
|
type: Input
|
|
49
49
|
}] } });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzL3NyYy9saWIvZm9ybS9mb3JtLWxpc3QvZm9ybS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzL3NyYy9saWIvZm9ybS9mb3JtLWxpc3QvZm9ybS1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFhLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7QUFTdEcsTUFBTSxPQUFPLGlCQUFpQjtJQUsxQixZQUFzQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUpoRCx1RUFBdUU7UUFFdkUsVUFBSyxHQUFVLEVBQUUsQ0FBQztJQUVpQyxDQUFDO0lBRXBELFdBQVc7UUFDUCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELE9BQU87UUFDSCxPQUFPLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUM3QyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0FuQlEsaUJBQWlCO2tHQUFqQixpQkFBaUIsMEhDN0I5QiwrY0FRQSwyQ0RpQmMsWUFBWSxtSUFBRSxrQkFBa0IsMHNCQUFFLHVCQUF1Qix5REFBRSxtQkFBbUI7OzJGQUkvRSxpQkFBaUI7a0JBUDdCLFNBQVM7K0JBQ0ksZUFBZSxjQUNiLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxrQkFBa0IsRUFBRSx1QkFBdUIsRUFBRSxtQkFBbUIsQ0FBQyxpQkFFMUUsaUJBQWlCLENBQUMsSUFBSTtpRkFLckMsS0FBSztzQkFESixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNb2RlbFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9tb2RlbC5zZXJ2aWNlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEYXRhQ29sdW1uQ29tcG9uZW50LCBEYXRhQ29sdW1uTGlzdENvbXBvbmVudCwgRGF0YVRhYmxlQ29tcG9uZW50IH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtZm9ybS1saXN0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIERhdGFUYWJsZUNvbXBvbmVudCwgRGF0YUNvbHVtbkxpc3RDb21wb25lbnQsIERhdGFDb2x1bW5Db21wb25lbnRdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIC8qKiBUaGUgYXJyYXkgdGhhdCBjb250YWlucyB0aGUgaW5mb3JtYXRpb24gdG8gc2hvdyBpbnNpZGUgdGhlIGxpc3QuICovXG4gICAgQElucHV0KClcbiAgICBmb3JtczogYW55W10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBtb2RlbFNlcnZpY2U6IE1vZGVsU2VydmljZSkge31cblxuICAgIG5nT25DaGFuZ2VzKCkge1xuICAgICAgICB0aGlzLmdldEZvcm1zKCk7XG4gICAgfVxuXG4gICAgaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybXMgJiYgdGhpcy5mb3Jtcy5sZW5ndGggPT09IDA7XG4gICAgfVxuXG4gICAgZ2V0Rm9ybXMoKSB7XG4gICAgICAgIHRoaXMubW9kZWxTZXJ2aWNlLmdldEZvcm1zKCkuc3Vic2NyaWJlKChmb3JtcykgPT4ge1xuICAgICAgICAgICAgdGhpcy5mb3Jtcy5wdXNoKC4uLmZvcm1zKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGFkZi1kYXRhdGFibGUgKm5nSWY9XCIhaXNFbXB0eSgpXCJcbiAgICBbcm93c109XCJmb3Jtc1wiPlxuICAgIDxkYXRhLWNvbHVtbnM+XG4gICAgICAgIDxkYXRhLWNvbHVtbiBrZXk9XCJuYW1lXCIgdHlwZT1cInRleHRcIiB0aXRsZT1cIk5hbWVcIiBjbGFzcz1cImFkZi1lbGxpcHNpcy1jZWxsXCIgW3NvcnRhYmxlXT1cInRydWVcIiAvPlxuICAgICAgICA8ZGF0YS1jb2x1bW4ga2V5PVwibGFzdFVwZGF0ZWRCeUZ1bGxOYW1lXCIgdHlwZT1cInRleHRcIiB0aXRsZT1cIlVzZXJcIiBjbGFzcz1cImFkZi1lbGxpcHNpcy1jZWxsXCIgW3NvcnRhYmxlXT1cInRydWVcIiAvPlxuICAgICAgICA8ZGF0YS1jb2x1bW4ga2V5PVwibGFzdFVwZGF0ZWRcIiB0eXBlPVwiZGF0ZVwiIGZvcm1hdD1cInNob3J0RGF0ZVwiIHRpdGxlPVwiRGF0ZVwiIC8+XG4gICAgPC9kYXRhLWNvbHVtbnM+XG48L2FkZi1kYXRhdGFibGU+XG4iXX0=
|
|
@@ -313,10 +313,10 @@ export class FormComponent extends FormBaseComponent {
|
|
|
313
313
|
this.formId = formId;
|
|
314
314
|
this.loadForm();
|
|
315
315
|
}
|
|
316
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
317
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
316
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: FormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
317
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: FormComponent, isStandalone: true, selector: "adf-form", inputs: { taskId: "taskId", nodeId: "nodeId", formId: "formId", formName: "formName", saveMetadata: "saveMetadata", data: "data", enableFixedSpacedForm: "enableFixedSpacedForm" }, outputs: { formSaved: "formSaved", formCompleted: "formCompleted", formContentClicked: "formContentClicked", formLoaded: "formLoaded", formDataRefreshed: "formDataRefreshed" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"!hasForm()\">\n <ng-content select=\"[empty-form]\" />\n</div>\n\n<div *ngIf=\"hasForm()\" class=\"adf-form-container\">\n <mat-card appearance=\"outlined\" class=\"adf-form-card\">\n <mat-card-header>\n <mat-card-title>\n <h4>\n <div *ngIf=\"showValidationIcon\" class=\"adf-form-validation-button\">\n <i id=\"adf-valid-form-icon\" class=\"material-icons\"\n *ngIf=\"form.isValid; else no_valid_form\">check_circle</i>\n <ng-template #no_valid_form>\n <i id=\"adf-invalid-form-icon\" class=\"material-icons adf-invalid-color\">error</i>\n </ng-template>\n </div>\n <div *ngIf=\"showRefreshButton\" class=\"adf-form-reload-button\">\n <button mat-icon-button (click)=\"onRefreshClicked()\">\n <mat-icon>refresh</mat-icon>\n </button>\n </div>\n <span *ngIf=\"isTitleEnabled()\" class=\"adf-form-title\" [title]=\"form.taskName\">\n {{form.taskName}}\n <ng-container *ngIf=\"!form.taskName\">\n {{'FORM.FORM_RENDERER.NAMELESS_TASK' | translate}}\n </ng-container>\n </span>\n </h4>\n </mat-card-title>\n </mat-card-header>\n <mat-card-content class=\"adf-form-card-content\">\n <adf-form-renderer [formDefinition]=\"form\" />\n </mat-card-content>\n <mat-card-actions *ngIf=\"form.hasOutcomes()\" class=\"adf-form-mat-card-actions\" align=\"end\">\n <ng-content select=\"adf-form-custom-outcomes\" />\n <button [id]=\"'adf-form-'+ outcome.name | formatSpace\" *ngFor=\"let outcome of form.outcomes\"\n [color]=\"getColorForOutcome(outcome.name)\" mat-button [disabled]=\"!isOutcomeButtonEnabled(outcome)\"\n [class.adf-form-hide-button]=\"!isOutcomeButtonVisible(outcome, form.readOnly)\"\n (click)=\"onOutcomeClicked(outcome)\">\n {{outcome.name | translate | uppercase }}\n </button>\n </mat-card-actions>\n </mat-card>\n</div>\n", styles: [".adf-form-card,.adf-form-card-content{height:100%;overflow:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i2.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i2.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i2.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i2.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "component", type: FormRendererComponent, selector: "adf-form-renderer", inputs: ["showDebugButton", "formDefinition", "readOnly"] }, { kind: "pipe", type: FormatSpacePipe, name: "formatSpace" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
318
318
|
}
|
|
319
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
319
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: FormComponent, decorators: [{
|
|
320
320
|
type: Component,
|
|
321
321
|
args: [{ selector: 'adf-form', standalone: true, imports: [CommonModule, MatCardModule, MatButtonModule, MatIconModule, TranslateModule, FormRendererComponent, FormatSpacePipe], encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"!hasForm()\">\n <ng-content select=\"[empty-form]\" />\n</div>\n\n<div *ngIf=\"hasForm()\" class=\"adf-form-container\">\n <mat-card appearance=\"outlined\" class=\"adf-form-card\">\n <mat-card-header>\n <mat-card-title>\n <h4>\n <div *ngIf=\"showValidationIcon\" class=\"adf-form-validation-button\">\n <i id=\"adf-valid-form-icon\" class=\"material-icons\"\n *ngIf=\"form.isValid; else no_valid_form\">check_circle</i>\n <ng-template #no_valid_form>\n <i id=\"adf-invalid-form-icon\" class=\"material-icons adf-invalid-color\">error</i>\n </ng-template>\n </div>\n <div *ngIf=\"showRefreshButton\" class=\"adf-form-reload-button\">\n <button mat-icon-button (click)=\"onRefreshClicked()\">\n <mat-icon>refresh</mat-icon>\n </button>\n </div>\n <span *ngIf=\"isTitleEnabled()\" class=\"adf-form-title\" [title]=\"form.taskName\">\n {{form.taskName}}\n <ng-container *ngIf=\"!form.taskName\">\n {{'FORM.FORM_RENDERER.NAMELESS_TASK' | translate}}\n </ng-container>\n </span>\n </h4>\n </mat-card-title>\n </mat-card-header>\n <mat-card-content class=\"adf-form-card-content\">\n <adf-form-renderer [formDefinition]=\"form\" />\n </mat-card-content>\n <mat-card-actions *ngIf=\"form.hasOutcomes()\" class=\"adf-form-mat-card-actions\" align=\"end\">\n <ng-content select=\"adf-form-custom-outcomes\" />\n <button [id]=\"'adf-form-'+ outcome.name | formatSpace\" *ngFor=\"let outcome of form.outcomes\"\n [color]=\"getColorForOutcome(outcome.name)\" mat-button [disabled]=\"!isOutcomeButtonEnabled(outcome)\"\n [class.adf-form-hide-button]=\"!isOutcomeButtonVisible(outcome, form.readOnly)\"\n (click)=\"onOutcomeClicked(outcome)\">\n {{outcome.name | translate | uppercase }}\n </button>\n </mat-card-actions>\n </mat-card>\n</div>\n", styles: [".adf-form-card,.adf-form-card-content{height:100%;overflow:auto}\n"] }]
|
|
322
322
|
}], ctorParameters: () => [], propDecorators: { taskId: [{
|
|
@@ -344,4 +344,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
344
344
|
}], formDataRefreshed: [{
|
|
345
345
|
type: Output
|
|
346
346
|
}] } });
|
|
347
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy9zcmMvbGliL2Zvcm0vZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy9zcmMvbGliL2Zvcm0vZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUVOLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUgsZUFBZSxFQUNmLGlCQUFpQixFQUNqQixjQUFjLEVBQ2QsU0FBUyxFQUVULFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQixXQUFXLEVBR1gsdUJBQXVCLEVBQzFCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVB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QUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFLTixZQUFZO3NCQURYLEtBQUs7Z0JBS04sSUFBSTtzQkFESCxLQUFLO2dCQUtOLHFCQUFxQjtzQkFEcEIsS0FBSztnQkFLTixTQUFTO3NCQURSLE1BQU07Z0JBS1AsYUFBYTtzQkFEWixNQUFNO2dCQUtQLGtCQUFrQjtzQkFEakIsTUFBTTtnQkFLUCxVQUFVO3NCQURULE1BQU07Z0JBS1AsaUJBQWlCO3NCQURoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBEZXN0cm95UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQ29udGVudExpbmtNb2RlbCxcbiAgICBGb3JtYXRTcGFjZVBpcGUsXG4gICAgRm9ybUJhc2VDb21wb25lbnQsXG4gICAgRm9ybUVycm9yRXZlbnQsXG4gICAgRm9ybUV2ZW50LFxuICAgIEZvcm1GaWVsZE1vZGVsLFxuICAgIEZvcm1Nb2RlbCxcbiAgICBGb3JtT3V0Y29tZUV2ZW50LFxuICAgIEZvcm1PdXRjb21lTW9kZWwsXG4gICAgRm9ybVJlbmRlcmVyQ29tcG9uZW50LFxuICAgIEZvcm1TZXJ2aWNlLFxuICAgIEZvcm1WYWx1ZXMsXG4gICAgVGFza1Byb2Nlc3NWYXJpYWJsZU1vZGVsLFxuICAgIFdpZGdldFZpc2liaWxpdHlTZXJ2aWNlXG59IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRWNtTW9kZWxTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9lY20tbW9kZWwuc2VydmljZSc7XG5pbXBvcnQgeyBNb2RlbFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL21vZGVsLnNlcnZpY2UnO1xuaW1wb3J0IHsgRWRpdG9yU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZWRpdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGFza1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3Rhc2suc2VydmljZSc7XG5pbXBvcnQgeyBUYXNrRm9ybVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3Rhc2stZm9ybS5zZXJ2aWNlJztcbmltcG9ydCB7IE5vZGVzQXBpU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29udGVudC1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBGb3JtRGVmaW5pdGlvbk1vZGVsIH0gZnJvbSAnLi9tb2RlbC9mb3JtLWRlZmluaXRpb24ubW9kZWwnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdENhcmRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jYXJkJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtZm9ybScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRDYXJkTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsIE1hdEljb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgRm9ybVJlbmRlcmVyQ29tcG9uZW50LCBGb3JtYXRTcGFjZVBpcGVdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9mb3JtLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtQ29tcG9uZW50IGV4dGVuZHMgRm9ybUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgcHJvdGVjdGVkIGZvcm1TZXJ2aWNlID0gaW5qZWN0KEZvcm1TZXJ2aWNlKTtcbiAgICBwcm90ZWN0ZWQgdGFza0Zvcm1TZXJ2aWNlID0gaW5qZWN0KFRhc2tGb3JtU2VydmljZSk7XG4gICAgcHJvdGVjdGVkIHRhc2tTZXJ2aWNlID0gaW5qZWN0KFRhc2tTZXJ2aWNlKTtcbiAgICBwcm90ZWN0ZWQgZWRpdG9yU2VydmljZSA9IGluamVjdChFZGl0b3JTZXJ2aWNlKTtcbiAgICBwcm90ZWN0ZWQgbW9kZWxTZXJ2aWNlID0gaW5qZWN0KE1vZGVsU2VydmljZSk7XG4gICAgcHJvdGVjdGVkIHZpc2liaWxpdHlTZXJ2aWNlID0gaW5qZWN0KFdpZGdldFZpc2liaWxpdHlTZXJ2aWNlKTtcbiAgICBwcm90ZWN0ZWQgZWNtTW9kZWxTZXJ2aWNlID0gaW5qZWN0KEVjbU1vZGVsU2VydmljZSk7XG4gICAgcHJvdGVjdGVkIG5vZGVTZXJ2aWNlID0gaW5qZWN0KE5vZGVzQXBpU2VydmljZSk7XG4gICAgcHJpdmF0ZSBjZFJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICAvKiogVGFzayBpZCB0byBmZXRjaCBjb3JyZXNwb25kaW5nIGZvcm0gYW5kIHZhbHVlcy4gKi9cbiAgICBASW5wdXQoKVxuICAgIHRhc2tJZDogc3RyaW5nO1xuXG4gICAgLyoqIENvbnRlbnQgU2VydmljZXMgbm9kZSBJRCBmb3IgdGhlIGZvcm0gbWV0YWRhdGEuICovXG4gICAgQElucHV0KClcbiAgICBub2RlSWQ6IHN0cmluZztcblxuICAgIC8qKiBUaGUgaWQgb2YgdGhlIGZvcm0gZGVmaW5pdGlvbiB0byBsb2FkIGFuZCBkaXNwbGF5IHdpdGggY3VzdG9tIHZhbHVlcy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGZvcm1JZDogbnVtYmVyO1xuXG4gICAgLyoqIE5hbWUgb2YgdGhlIGZvcm0gZGVmaW5pdGlvbiB0byBsb2FkIGFuZCBkaXNwbGF5IHdpdGggY3VzdG9tIHZhbHVlcy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGZvcm1OYW1lOiBzdHJpbmc7XG5cbiAgICAvKiogVG9nZ2xlIHNhdmluZyBvZiBmb3JtIG1ldGFkYXRhLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2F2ZU1ldGFkYXRhOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogQ3VzdG9tIGZvcm0gdmFsdWVzIG1hcCB0byBiZSB1c2VkIHdpdGggdGhlIHJlbmRlcmVkIGZvcm0uICovXG4gICAgQElucHV0KClcbiAgICBkYXRhOiBGb3JtVmFsdWVzO1xuXG4gICAgLyoqIFRoZSBmb3JtIHdpbGwgc2V0IGEgcHJlZml4ZWQgc3BhY2UgZm9yIGludmlzaWJsZSBmaWVsZHMuICovXG4gICAgQElucHV0KClcbiAgICBlbmFibGVGaXhlZFNwYWNlZEZvcm06IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQgd2l0aCB0aGUgYFNhdmVgIG9yIGN1c3RvbSBvdXRjb21lcy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtU2F2ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1Nb2RlbD4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkIHdpdGggdGhlIGBDb21wbGV0ZWAgb3V0Y29tZS4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtQ29tcGxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtTW9kZWw+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIGZvcm0gY29udGVudCBpcyBjbGlja2VkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGZvcm1Db250ZW50Q2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q29udGVudExpbmtNb2RlbD4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGZvcm0gaXMgbG9hZGVkIG9yIHJlbG9hZGVkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGZvcm1Mb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1Nb2RlbD4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gZm9ybSB2YWx1ZXMgYXJlIHJlZnJlc2hlZCBkdWUgdG8gYSBkYXRhIHByb3BlcnR5IGNoYW5nZS4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtRGF0YVJlZnJlc2hlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybU1vZGVsPigpO1xuXG4gICAgZGVidWdNb2RlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5mb3JtU2VydmljZS5mb3JtQ29udGVudENsaWNrZWQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKChjb250ZW50KSA9PiB0aGlzLmZvcm1Db250ZW50Q2xpY2tlZC5lbWl0KGNvbnRlbnQpKTtcblxuICAgICAgICB0aGlzLmZvcm1TZXJ2aWNlLnZhbGlkYXRlRm9ybS5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKHZhbGlkYXRlRm9ybUV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAodmFsaWRhdGVGb3JtRXZlbnQuZXJyb3JzRmllbGQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUVycm9yLm5leHQodmFsaWRhdGVGb3JtRXZlbnQuZXJyb3JzRmllbGQpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGNvbnN0IHRhc2tJZCA9IGNoYW5nZXNbJ3Rhc2tJZCddO1xuICAgICAgICBpZiAodGFza0lkPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0Rm9ybUJ5VGFza0lkKHRhc2tJZC5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZm9ybUlkID0gY2hhbmdlc1snZm9ybUlkJ107XG4gICAgICAgIGlmIChmb3JtSWQ/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5nZXRGb3JtRGVmaW5pdGlvbkJ5Rm9ybUlkKGZvcm1JZC5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZm9ybU5hbWUgPSBjaGFuZ2VzWydmb3JtTmFtZSddO1xuICAgICAgICBpZiAoZm9ybU5hbWU/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5nZXRGb3JtRGVmaW5pdGlvbkJ5Rm9ybU5hbWUoZm9ybU5hbWUuY3VycmVudFZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5vZGVJZCA9IGNoYW5nZXNbJ25vZGVJZCddO1xuICAgICAgICBpZiAobm9kZUlkPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZEZvcm1Gb3JFY21Ob2RlKG5vZGVJZC5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGF0YSA9IGNoYW5nZXNbJ2RhdGEnXTtcbiAgICAgICAgaWYgKGRhdGE/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5yZWZyZXNoRm9ybURhdGEoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEludm9rZWQgd2hlbiB1c2VyIGNsaWNrcyBmb3JtIHJlZnJlc2ggYnV0dG9uLlxuICAgICAqL1xuICAgIG9uUmVmcmVzaENsaWNrZWQoKSB7XG4gICAgICAgIHRoaXMubG9hZEZvcm0oKTtcbiAgICB9XG5cbiAgICBsb2FkRm9ybSgpIHtcbiAgICAgICAgaWYgKHRoaXMudGFza0lkKSB7XG4gICAgICAgICAgICB0aGlzLmdldEZvcm1CeVRhc2tJZCh0aGlzLnRhc2tJZCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5mb3JtSWQpIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0Rm9ybURlZmluaXRpb25CeUZvcm1JZCh0aGlzLmZvcm1JZCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5mb3JtTmFtZSkge1xuICAgICAgICAgICAgdGhpcy5nZXRGb3JtRGVmaW5pdGlvbkJ5Rm9ybU5hbWUodGhpcy5mb3JtTmFtZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmaW5kUHJvY2Vzc1ZhcmlhYmxlc0J5VGFza0lkKHRhc2tJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxUYXNrUHJvY2Vzc1ZhcmlhYmxlTW9kZWxbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy50YXNrU2VydmljZS5nZXRUYXNrKHRhc2tJZCkucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgodGFzaykgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzQVByb2Nlc3NUYXNrKHRhc2spKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRhc2tGb3JtU2VydmljZS5nZXRUYXNrUHJvY2Vzc1ZhcmlhYmxlKHRhc2tJZCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlzQVByb2Nlc3NUYXNrKHRhc2tSZXByZXNlbnRhdGlvbikge1xuICAgICAgICByZXR1cm4gdGFza1JlcHJlc2VudGF0aW9uLnByb2Nlc3NEZWZpbml0aW9uSWQgJiYgdGFza1JlcHJlc2VudGF0aW9uLnByb2Nlc3NEZWZpbml0aW9uRGVwbG95bWVudElkICE9PSAnbnVsbCc7XG4gICAgfVxuXG4gICAgZ2V0Rm9ybUJ5VGFza0lkKHRhc2tJZDogc3RyaW5nKTogUHJvbWlzZTxGb3JtTW9kZWw+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPEZvcm1Nb2RlbD4oKHJlc29sdmUpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZmluZFByb2Nlc3NWYXJpYWJsZXNCeVRhc2tJZCh0YXNrSWQpLnN1YnNjcmliZSgodGFza1Byb2Nlc3NWYXJpYWJsZXMpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhc2tGb3JtU2VydmljZS5nZXRUYXNrRm9ybSh0YXNrSWQpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAgICAgKGZvcm0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlZEZvcm0gPSB0aGlzLnBhcnNlRm9ybShmb3JtKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlzaWJpbGl0eVNlcnZpY2UucmVmcmVzaFZpc2liaWxpdHkocGFyc2VkRm9ybSwgdGFza1Byb2Nlc3NWYXJpYWJsZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VkRm9ybS52YWxpZGF0ZUZvcm0oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybSA9IHBhcnNlZEZvcm07XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRm9ybUxvYWRlZCh0aGlzLmZvcm0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLmZvcm0pO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0Rm9ybURlZmluaXRpb25CeUZvcm1JZChmb3JtSWQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UuZ2V0Rm9ybURlZmluaXRpb25CeUlkKGZvcm1JZCkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKGZvcm0pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1OYW1lID0gZm9ybS5uYW1lO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybSA9IHRoaXMucGFyc2VGb3JtKGZvcm0pO1xuICAgICAgICAgICAgICAgIHRoaXMudmlzaWJpbGl0eVNlcnZpY2UucmVmcmVzaFZpc2liaWxpdHkodGhpcy5mb3JtKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0udmFsaWRhdGVGb3JtKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkZvcm1Mb2FkZWQodGhpcy5mb3JtKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRGb3JtRGVmaW5pdGlvbkJ5Rm9ybU5hbWUoZm9ybU5hbWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLm1vZGVsU2VydmljZS5nZXRGb3JtRGVmaW5pdGlvbkJ5TmFtZShmb3JtTmFtZSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKGlkKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmdldEZvcm1EZWZpbml0aW9uQnlJZChpZCkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgICAoZm9ybSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtID0gdGhpcy5wYXJzZUZvcm0oZm9ybSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpc2liaWxpdHlTZXJ2aWNlLnJlZnJlc2hWaXNpYmlsaXR5KHRoaXMuZm9ybSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0udmFsaWRhdGVGb3JtKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRm9ybUxvYWRlZCh0aGlzLmZvcm0pO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBzYXZlVGFza0Zvcm0oKSB7XG4gICAgICAgIGlmICh0aGlzLmZvcm0/LnRhc2tJZCkge1xuICAgICAgICAgICAgdGhpcy50YXNrRm9ybVNlcnZpY2Uuc2F2ZVRhc2tGb3JtKHRoaXMuZm9ybS50YXNrSWQsIHRoaXMuZm9ybS52YWx1ZXMpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25UYXNrU2F2ZWQodGhpcy5mb3JtKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yZUZvcm1Bc01ldGFkYXRhKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyb3IpID0+IHRoaXMub25UYXNrU2F2ZWRFcnJvcih0aGlzLmZvcm0sIGVycm9yKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBsZXRlVGFza0Zvcm0ob3V0Y29tZT86IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5mb3JtPy50YXNrSWQpIHtcbiAgICAgICAgICAgIHRoaXMudGFza0Zvcm1TZXJ2aWNlLmNvbXBsZXRlVGFza0Zvcm0odGhpcy5mb3JtLnRhc2tJZCwgdGhpcy5mb3JtLnZhbHVlcywgb3V0Y29tZSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vblRhc2tDb21wbGV0ZWQodGhpcy5mb3JtKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yZUZvcm1Bc01ldGFkYXRhKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyb3IpID0+IHRoaXMub25UYXNrQ29tcGxldGVkRXJyb3IodGhpcy5mb3JtLCBlcnJvcilcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVFcnJvcihlcnI6IGFueSk6IGFueSB7XG4gICAgICAgIHRoaXMuZXJyb3IuZW1pdChlcnIpO1xuICAgIH1cblxuICAgIHBhcnNlRm9ybShmb3JtUmVwcmVzZW50YXRpb25KU09OOiBhbnkpOiBGb3JtTW9kZWwge1xuICAgICAgICBpZiAoZm9ybVJlcHJlc2VudGF0aW9uSlNPTikge1xuICAgICAgICAgICAgY29uc3QgZm9ybSA9IG5ldyBGb3JtTW9kZWwoZm9ybVJlcHJlc2VudGF0aW9uSlNPTiwgdGhpcy5kYXRhLCB0aGlzLnJlYWRPbmx5LCB0aGlzLmZvcm1TZXJ2aWNlLCB0aGlzLmVuYWJsZUZpeGVkU3BhY2VkRm9ybSk7XG4gICAgICAgICAgICBpZiAoIWZvcm1SZXByZXNlbnRhdGlvbkpTT04uZmllbGRzKSB7XG4gICAgICAgICAgICAgICAgZm9ybS5vdXRjb21lcyA9IHRoaXMuZ2V0Rm9ybURlZmluaXRpb25PdXRjb21lcyhmb3JtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmZpZWxkVmFsaWRhdG9ycz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGZvcm0uZmllbGRWYWxpZGF0b3JzID0gdGhpcy5maWVsZFZhbGlkYXRvcnM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZm9ybTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgY3VzdG9tIHNldCBvZiBvdXRjb21lcyBmb3IgYSBGb3JtIERlZmluaXRpb24uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZm9ybSBGb3JtIGRlZmluaXRpb24gbW9kZWwuXG4gICAgICogQHJldHVybnMgbGlzdCBvZiBmb3JtIG91dGNvbWVzXG4gICAgICovXG4gICAgZ2V0Rm9ybURlZmluaXRpb25PdXRjb21lcyhmb3JtOiBGb3JtTW9kZWwpOiBGb3JtT3V0Y29tZU1vZGVsW10ge1xuICAgICAgICByZXR1cm4gW25ldyBGb3JtT3V0Y29tZU1vZGVsKGZvcm0sIHsgaWQ6ICckc2F2ZScsIG5hbWU6IEZvcm1PdXRjb21lTW9kZWwuU0FWRV9BQ1RJT04sIGlzU3lzdGVtOiB0cnVlIH0pXTtcbiAgICB9XG5cbiAgICBjaGVja1Zpc2liaWxpdHkoZmllbGQ6IEZvcm1GaWVsZE1vZGVsKSB7XG4gICAgICAgIGlmIChmaWVsZD8uZm9ybSkge1xuICAgICAgICAgICAgdGhpcy52aXNpYmlsaXR5U2VydmljZS5yZWZyZXNoVmlzaWJpbGl0eShmaWVsZC5mb3JtKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxvYWRGb3JtRnJvbUFjdGl2aXRpKG5vZGVUeXBlOiBzdHJpbmcpOiBhbnkge1xuICAgICAgICB0aGlzLm1vZGVsU2VydmljZS5zZWFyY2hGcm9tKG5vZGVUeXBlKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAoZm9ybSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghZm9ybSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUZvcm1Gcm9tQU5vZGUobm9kZVR5cGUpLnN1YnNjcmliZSgoZm9ybU1ldGFkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRGb3JtRnJvbUZvcm1JZChmb3JtTWV0YWRhdGEuaWQpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRGb3JtRnJvbUZvcm1JZChmb3JtLmlkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIEZvcm0gd2l0aCBhIGZpZWxkIGZvciBlYWNoIG1ldGFkYXRhIHByb3BlcnR5LlxuICAgICAqXG4gICAgICogQHBhcmFtIGZvcm1OYW1lIE5hbWUgb2YgdGhlIG5ldyBmb3JtXG4gICAgICogQHJldHVybnMgVGhlIG5ldyBmb3JtXG4gICAgICovXG4gICAgY3JlYXRlRm9ybUZyb21BTm9kZShmb3JtTmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcikgPT4ge1xuICAgICAgICAgICAgdGhpcy5tb2RlbFNlcnZpY2UuY3JlYXRlRm9ybShmb3JtTmFtZSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIChmb3JtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWNtTW9kZWxTZXJ2aWNlLnNlYXJjaEVjbVR5cGUoZm9ybU5hbWUsIEVjbU1vZGVsU2VydmljZS5NT0RFTF9OQU1FKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgICAgICAgICAoY3VzdG9tVHlwZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1EZWZpbml0aW9uTW9kZWwgPSBuZXcgRm9ybURlZmluaXRpb25Nb2RlbChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybS5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtLmxhc3RVcGRhdGVkQnlGdWxsTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybS5sYXN0VXBkYXRlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tVHlwZS5lbnRyeS5wcm9wZXJ0aWVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tKHRoaXMuZWRpdG9yU2VydmljZS5zYXZlRm9ybShmb3JtLmlkLCBmb3JtRGVmaW5pdGlvbk1vZGVsKSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9ybURhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoZm9ybURhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVycikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAoZXJyKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycilcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnIpID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHN0b3JlRm9ybUFzTWV0YWRhdGEoKSB7XG4gICAgICAgIGlmICh0aGlzLnNhdmVNZXRhZGF0YSkge1xuICAgICAgICAgICAgdGhpcy5lY21Nb2RlbFNlcnZpY2UuY3JlYXRlRWNtVHlwZUZvckFjdGl2aXRpRm9ybSh0aGlzLmZvcm1OYW1lLCB0aGlzLmZvcm0pLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAodHlwZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGVTZXJ2aWNlLmNyZWF0ZU5vZGVNZXRhZGF0YShcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUubm9kZVR5cGUgfHwgdHlwZS5lbnRyeS5wcmVmaXhlZE5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBFY21Nb2RlbFNlcnZpY2UuTU9ERUxfTkFNRVNQQUNFLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnZhbHVlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmFtZU5vZGVcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGVycm9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uRm9ybUxvYWRlZChmb3JtOiBGb3JtTW9kZWwpIHtcbiAgICAgICAgdGhpcy5mb3JtTG9hZGVkLmVtaXQoZm9ybSk7XG4gICAgICAgIHRoaXMuZm9ybVNlcnZpY2UuZm9ybUxvYWRlZC5uZXh0KG5ldyBGb3JtRXZlbnQoZm9ybSkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkZvcm1EYXRhUmVmcmVzaGVkKGZvcm06IEZvcm1Nb2RlbCkge1xuICAgICAgICB0aGlzLmZvcm1EYXRhUmVmcmVzaGVkLmVtaXQoZm9ybSk7XG4gICAgICAgIHRoaXMuZm9ybVNlcnZpY2UuZm9ybURhdGFSZWZyZXNoZWQubmV4dChuZXcgRm9ybUV2ZW50KGZvcm0pKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25UYXNrU2F2ZWQoZm9ybTogRm9ybU1vZGVsKSB7XG4gICAgICAgIHRoaXMuZm9ybVNhdmVkLmVtaXQoZm9ybSk7XG4gICAgICAgIHRoaXMuZm9ybVNlcnZpY2UudGFza1NhdmVkLm5leHQobmV3IEZvcm1FdmVudChmb3JtKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uVGFza1NhdmVkRXJyb3IoZm9ybTogRm9ybU1vZGVsLCBlcnJvcjogYW55KSB7XG4gICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpO1xuICAgICAgICB0aGlzLmZvcm1TZXJ2aWNlLnRhc2tTYXZlZEVycm9yLm5leHQobmV3IEZvcm1FcnJvckV2ZW50KGZvcm0sIGVycm9yKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uVGFza0NvbXBsZXRlZChmb3JtOiBGb3JtTW9kZWwpIHtcbiAgICAgICAgdGhpcy5mb3JtQ29tcGxldGVkLmVtaXQoZm9ybSk7XG4gICAgICAgIHRoaXMuZm9ybVNlcnZpY2UudGFza0NvbXBsZXRlZC5uZXh0KG5ldyBGb3JtRXZlbnQoZm9ybSkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvblRhc2tDb21wbGV0ZWRFcnJvcihmb3JtOiBGb3JtTW9kZWwsIGVycm9yOiBhbnkpIHtcbiAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnJvcik7XG4gICAgICAgIHRoaXMuZm9ybVNlcnZpY2UudGFza0NvbXBsZXRlZEVycm9yLm5leHQobmV3IEZvcm1FcnJvckV2ZW50KGZvcm0sIGVycm9yKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uRXhlY3V0ZU91dGNvbWUob3V0Y29tZTogRm9ybU91dGNvbWVNb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBhcmdzID0gbmV3IEZvcm1PdXRjb21lRXZlbnQob3V0Y29tZSk7XG5cbiAgICAgICAgdGhpcy5mb3JtU2VydmljZS5leGVjdXRlT3V0Y29tZS5uZXh0KGFyZ3MpO1xuICAgICAgICBpZiAoYXJncy5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmV4ZWN1dGVPdXRjb21lLmVtaXQoYXJncyk7XG4gICAgICAgIHJldHVybiAhYXJncy5kZWZhdWx0UHJldmVudGVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVmcmVzaEZvcm1EYXRhKCkge1xuICAgICAgICB0aGlzLmZvcm0gPSB0aGlzLnBhcnNlRm9ybSh0aGlzLmZvcm0uanNvbik7XG4gICAgICAgIHRoaXMub25Gb3JtTG9hZGVkKHRoaXMuZm9ybSk7XG4gICAgICAgIHRoaXMub25Gb3JtRGF0YVJlZnJlc2hlZCh0aGlzLmZvcm0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZEZvcm1Gb3JFY21Ob2RlKG5vZGVJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMubm9kZVNlcnZpY2UuZ2V0Tm9kZU1ldGFkYXRhKG5vZGVJZCkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRhdGEgPSBkYXRhLm1ldGFkYXRhO1xuICAgICAgICAgICAgdGhpcy5sb2FkRm9ybUZyb21BY3Rpdml0aShkYXRhLm5vZGVUeXBlKTtcbiAgICAgICAgfSwgdGhpcy5oYW5kbGVFcnJvcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkRm9ybUZyb21Gb3JtSWQoZm9ybUlkOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5mb3JtSWQgPSBmb3JtSWQ7XG4gICAgICAgIHRoaXMubG9hZEZvcm0oKTtcbiAgICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiIWhhc0Zvcm0oKVwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltlbXB0eS1mb3JtXVwiIC8+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cImhhc0Zvcm0oKVwiIGNsYXNzPVwiYWRmLWZvcm0tY29udGFpbmVyXCI+XG4gICAgPG1hdC1jYXJkIGFwcGVhcmFuY2U9XCJvdXRsaW5lZFwiIGNsYXNzPVwiYWRmLWZvcm0tY2FyZFwiPlxuICAgICAgICA8bWF0LWNhcmQtaGVhZGVyPlxuICAgICAgICAgICAgPG1hdC1jYXJkLXRpdGxlPlxuICAgICAgICAgICAgICAgIDxoND5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dWYWxpZGF0aW9uSWNvblwiIGNsYXNzPVwiYWRmLWZvcm0tdmFsaWRhdGlvbi1idXR0b25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGlkPVwiYWRmLXZhbGlkLWZvcm0taWNvblwiIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZm9ybS5pc1ZhbGlkOyBlbHNlIG5vX3ZhbGlkX2Zvcm1cIj5jaGVja19jaXJjbGU8L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vX3ZhbGlkX2Zvcm0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgaWQ9XCJhZGYtaW52YWxpZC1mb3JtLWljb25cIiBjbGFzcz1cIm1hdGVyaWFsLWljb25zIGFkZi1pbnZhbGlkLWNvbG9yXCI+ZXJyb3I8L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dSZWZyZXNoQnV0dG9uXCIgY2xhc3M9XCJhZGYtZm9ybS1yZWxvYWQtYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwib25SZWZyZXNoQ2xpY2tlZCgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPnJlZnJlc2g8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImlzVGl0bGVFbmFibGVkKClcIiBjbGFzcz1cImFkZi1mb3JtLXRpdGxlXCIgW3RpdGxlXT1cImZvcm0udGFza05hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7Zm9ybS50YXNrTmFtZX19XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWZvcm0udGFza05hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eydGT1JNLkZPUk1fUkVOREVSRVIuTkFNRUxFU1NfVEFTSycgfCB0cmFuc2xhdGV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2g0PlxuICAgICAgICAgICAgPC9tYXQtY2FyZC10aXRsZT5cbiAgICAgICAgPC9tYXQtY2FyZC1oZWFkZXI+XG4gICAgICAgIDxtYXQtY2FyZC1jb250ZW50IGNsYXNzPVwiYWRmLWZvcm0tY2FyZC1jb250ZW50XCI+XG4gICAgICAgICAgICA8YWRmLWZvcm0tcmVuZGVyZXIgW2Zvcm1EZWZpbml0aW9uXT1cImZvcm1cIiAvPlxuICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgIDxtYXQtY2FyZC1hY3Rpb25zICpuZ0lmPVwiZm9ybS5oYXNPdXRjb21lcygpXCIgY2xhc3M9XCJhZGYtZm9ybS1tYXQtY2FyZC1hY3Rpb25zXCIgYWxpZ249XCJlbmRcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImFkZi1mb3JtLWN1c3RvbS1vdXRjb21lc1wiIC8+XG4gICAgICAgICAgICA8YnV0dG9uIFtpZF09XCInYWRmLWZvcm0tJysgb3V0Y29tZS5uYW1lICB8IGZvcm1hdFNwYWNlXCIgKm5nRm9yPVwibGV0IG91dGNvbWUgb2YgZm9ybS5vdXRjb21lc1wiXG4gICAgICAgICAgICAgICAgW2NvbG9yXT1cImdldENvbG9yRm9yT3V0Y29tZShvdXRjb21lLm5hbWUpXCIgbWF0LWJ1dHRvbiBbZGlzYWJsZWRdPVwiIWlzT3V0Y29tZUJ1dHRvbkVuYWJsZWQob3V0Y29tZSlcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5hZGYtZm9ybS1oaWRlLWJ1dHRvbl09XCIhaXNPdXRjb21lQnV0dG9uVmlzaWJsZShvdXRjb21lLCBmb3JtLnJlYWRPbmx5KVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uT3V0Y29tZUNsaWNrZWQob3V0Y29tZSlcIj5cbiAgICAgICAgICAgICAgICB7e291dGNvbWUubmFtZSB8IHRyYW5zbGF0ZSB8IHVwcGVyY2FzZSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbWF0LWNhcmQtYWN0aW9ucz5cbiAgICA8L21hdC1jYXJkPlxuPC9kaXY+XG4iXX0=
|
|
347
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy9zcmMvbGliL2Zvcm0vZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy9zcmMvbGliL2Zvcm0vZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUVOLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUgsZUFBZSxFQUNmLGlCQUFpQixFQUNqQixjQUFjLEVBQ2QsU0FBUyxFQUVULFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQixXQUFXLEVBR1gsdUJBQXVCLEVBQzFCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVB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QUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFLTixZQUFZO3NCQURYLEtBQUs7Z0JBS04sSUFBSTtzQkFESCxLQUFLO2dCQUtOLHFCQUFxQjtzQkFEcEIsS0FBSztnQkFLTixTQUFTO3NCQURSLE1BQU07Z0JBS1AsYUFBYTtzQkFEWixNQUFNO2dCQUtQLGtCQUFrQjtzQkFEakIsTUFBTTtnQkFLUCxVQUFVO3NCQURULE1BQU07Z0JBS1AsaUJBQWlCO3NCQURoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBEZXN0cm95UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQ29udGVudExpbmtNb2RlbCxcbiAgICBGb3JtYXRTcGFjZVBpcGUsXG4gICAgRm9ybUJhc2VDb21wb25lbnQsXG4gICAgRm9ybUVycm9yRXZlbnQsXG4gICAgRm9ybUV2ZW50LFxuICAgIEZvcm1GaWVsZE1vZGVsLFxuICAgIEZvcm1Nb2RlbCxcbiAgICBGb3JtT3V0Y29tZUV2ZW50LFxuICAgIEZvcm1PdXRjb21lTW9kZWwsXG4gICAgRm9ybVJlbmRlcmVyQ29tcG9uZW50LFxuICAgIEZvcm1TZXJ2aWNlLFxuICAgIEZvcm1WYWx1ZXMsXG4gICAgVGFza1Byb2Nlc3NWYXJpYWJsZU1vZGVsLFxuICAgIFdpZGdldFZpc2liaWxpdHlTZXJ2aWNlXG59IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRWNtTW9kZWxTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9lY20tbW9kZWwuc2VydmljZSc7XG5pbXBvcnQgeyBNb2RlbFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL21vZGVsLnNlcnZpY2UnO1xuaW1wb3J0IHsgRWRpdG9yU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZWRpdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGFza1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3Rhc2suc2VydmljZSc7XG5pbXBvcnQgeyBUYXNrRm9ybVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3Rhc2stZm9ybS5zZXJ2aWNlJztcbmltcG9ydCB7IE5vZGVzQXBpU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29udGVudC1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBGb3JtRGVmaW5pdGlvbk1vZGVsIH0gZnJvbSAnLi9tb2RlbC9mb3JtLWRlZmluaXRpb24ubW9kZWwnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdENhcmRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jYXJkJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtZm9ybScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRDYXJkTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsIE1hdEljb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgRm9ybVJlbmRlcmVyQ29tcG9uZW50LCBGb3JtYXRTcGFjZVBpcGVdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9mb3JtLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtQ29tcG9uZW50IGV4dGVuZHMgRm9ybUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgcHJvdGVjdGVkIGZvcm1TZXJ2aWNlID0gaW5qZWN0KEZvcm1TZXJ2aWNlKTtcbiAgICBwcm90ZWN0ZWQgdGFza0Zvcm1TZXJ2aWNlID0gaW5qZWN0KFRhc2tGb3JtU2VydmljZSk7XG4gICAgcHJvdGVjdGVkIHRhc2tTZXJ2aWNlID0gaW5qZWN0KFRhc2tTZXJ2aWNlKTtcbiAgICBwcm90ZWN0ZWQgZWRpdG9yU2VydmljZSA9IGluamVjdChFZGl0b3JTZXJ2aWNlKTtcbiAgICBwcm90ZWN0ZWQgbW9kZWxTZXJ2aWNlID0gaW5qZWN0KE1vZGVsU2VydmljZSk7XG4gICAgcHJvdGVjdGVkIHZpc2liaWxpdHlTZXJ2aWNlID0gaW5qZWN0KFdpZGdldFZpc2liaWxpdHlTZXJ2aWNlKTtcbiAgICBwcm90ZWN0ZWQgZWNtTW9kZWxTZXJ2aWNlID0gaW5qZWN0KEVjbU1vZGVsU2VydmljZSk7XG4gICAgcHJvdGVjdGVkIG5vZGVTZXJ2aWNlID0gaW5qZWN0KE5vZGVzQXBpU2VydmljZSk7XG4gICAgcHJpdmF0ZSBjZFJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICAvKiogVGFzayBpZCB0byBmZXRjaCBjb3JyZXNwb25kaW5nIGZvcm0gYW5kIHZhbHVlcy4gKi9cbiAgICBASW5wdXQoKVxuICAgIHRhc2tJZDogc3RyaW5nO1xuXG4gICAgLyoqIENvbnRlbnQgU2VydmljZXMgbm9kZSBJRCBmb3IgdGhlIGZvcm0gbWV0YWRhdGEuICovXG4gICAgQElucHV0KClcbiAgICBub2RlSWQ6IHN0cmluZztcblxuICAgIC8qKiBUaGUgaWQgb2YgdGhlIGZvcm0gZGVmaW5pdGlvbiB0byBsb2FkIGFuZCBkaXNwbGF5IHdpdGggY3VzdG9tIHZhbHVlcy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGZvcm1JZDogbnVtYmVyO1xuXG4gICAgLyoqIE5hbWUgb2YgdGhlIGZvcm0gZGVmaW5pdGlvbiB0byBsb2FkIGFuZCBkaXNwbGF5IHdpdGggY3VzdG9tIHZhbHVlcy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGZvcm1OYW1lOiBzdHJpbmc7XG5cbiAgICAvKiogVG9nZ2xlIHNhdmluZyBvZiBmb3JtIG1ldGFkYXRhLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2F2ZU1ldGFkYXRhOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogQ3VzdG9tIGZvcm0gdmFsdWVzIG1hcCB0byBiZSB1c2VkIHdpdGggdGhlIHJlbmRlcmVkIGZvcm0uICovXG4gICAgQElucHV0KClcbiAgICBkYXRhOiBGb3JtVmFsdWVzO1xuXG4gICAgLyoqIFRoZSBmb3JtIHdpbGwgc2V0IGEgcHJlZml4ZWQgc3BhY2UgZm9yIGludmlzaWJsZSBmaWVsZHMuICovXG4gICAgQElucHV0KClcbiAgICBlbmFibGVGaXhlZFNwYWNlZEZvcm06IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQgd2l0aCB0aGUgYFNhdmVgIG9yIGN1c3RvbSBvdXRjb21lcy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtU2F2ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1Nb2RlbD4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkIHdpdGggdGhlIGBDb21wbGV0ZWAgb3V0Y29tZS4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtQ29tcGxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtTW9kZWw+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIGZvcm0gY29udGVudCBpcyBjbGlja2VkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGZvcm1Db250ZW50Q2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q29udGVudExpbmtNb2RlbD4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGZvcm0gaXMgbG9hZGVkIG9yIHJlbG9hZGVkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGZvcm1Mb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1Nb2RlbD4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gZm9ybSB2YWx1ZXMgYXJlIHJlZnJlc2hlZCBkdWUgdG8gYSBkYXRhIHByb3BlcnR5IGNoYW5nZS4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtRGF0YVJlZnJlc2hlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybU1vZGVsPigpO1xuXG4gICAgZGVidWdNb2RlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5mb3JtU2VydmljZS5mb3JtQ29udGVudENsaWNrZWQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKChjb250ZW50KSA9PiB0aGlzLmZvcm1Db250ZW50Q2xpY2tlZC5lbWl0KGNvbnRlbnQpKTtcblxuICAgICAgICB0aGlzLmZvcm1TZXJ2aWNlLnZhbGlkYXRlRm9ybS5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKHZhbGlkYXRlRm9ybUV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAodmFsaWRhdGVGb3JtRXZlbnQuZXJyb3JzRmllbGQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUVycm9yLm5leHQodmFsaWRhdGVGb3JtRXZlbnQuZXJyb3JzRmllbGQpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGNvbnN0IHRhc2tJZCA9IGNoYW5nZXNbJ3Rhc2tJZCddO1xuICAgICAgICBpZiAodGFza0lkPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0Rm9ybUJ5VGFza0lkKHRhc2tJZC5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZm9ybUlkID0gY2hhbmdlc1snZm9ybUlkJ107XG4gICAgICAgIGlmIChmb3JtSWQ/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5nZXRGb3JtRGVmaW5pdGlvbkJ5Rm9ybUlkKGZvcm1JZC5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZm9ybU5hbWUgPSBjaGFuZ2VzWydmb3JtTmFtZSddO1xuICAgICAgICBpZiAoZm9ybU5hbWU/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5nZXRGb3JtRGVmaW5pdGlvbkJ5Rm9ybU5hbWUoZm9ybU5hbWUuY3VycmVudFZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5vZGVJZCA9IGNoYW5nZXNbJ25vZGVJZCddO1xuICAgICAgICBpZiAobm9kZUlkPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZEZvcm1Gb3JFY21Ob2RlKG5vZGVJZC5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGF0YSA9IGNoYW5nZXNbJ2RhdGEnXTtcbiAgICAgICAgaWYgKGRhdGE/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5yZWZyZXNoRm9ybURhdGEoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEludm9rZWQgd2hlbiB1c2VyIGNsaWNrcyBmb3JtIHJlZnJlc2ggYnV0dG9uLlxuICAgICAqL1xuICAgIG9uUmVmcmVzaENsaWNrZWQoKSB7XG4gICAgICAgIHRoaXMubG9hZEZvcm0oKTtcbiAgICB9XG5cbiAgICBsb2FkRm9ybSgpIHtcbiAgICAgICAgaWYgKHRoaXMudGFza0lkKSB7XG4gICAgICAgICAgICB0aGlzLmdldEZvcm1CeVRhc2tJZCh0aGlzLnRhc2tJZCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5mb3JtSWQpIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0Rm9ybURlZmluaXRpb25CeUZvcm1JZCh0aGlzLmZvcm1JZCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5mb3JtTmFtZSkge1xuICAgICAgICAgICAgdGhpcy5nZXRGb3JtRGVmaW5pdGlvbkJ5Rm9ybU5hbWUodGhpcy5mb3JtTmFtZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmaW5kUHJvY2Vzc1ZhcmlhYmxlc0J5VGFza0lkKHRhc2tJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxUYXNrUHJvY2Vzc1ZhcmlhYmxlTW9kZWxbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy50YXNrU2VydmljZS5nZXRUYXNrKHRhc2tJZCkucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgodGFzaykgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzQVByb2Nlc3NUYXNrKHRhc2spKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRhc2tGb3JtU2VydmljZS5nZXRUYXNrUHJvY2Vzc1ZhcmlhYmxlKHRhc2tJZCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlzQVByb2Nlc3NUYXNrKHRhc2tSZXByZXNlbnRhdGlvbikge1xuICAgICAgICByZXR1cm4gdGFza1JlcHJlc2VudGF0aW9uLnByb2Nlc3NEZWZpbml0aW9uSWQgJiYgdGFza1JlcHJlc2VudGF0aW9uLnByb2Nlc3NEZWZpbml0aW9uRGVwbG95bWVudElkICE9PSAnbnVsbCc7XG4gICAgfVxuXG4gICAgZ2V0Rm9ybUJ5VGFza0lkKHRhc2tJZDogc3RyaW5nKTogUHJvbWlzZTxGb3JtTW9kZWw+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPEZvcm1Nb2RlbD4oKHJlc29sdmUpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZmluZFByb2Nlc3NWYXJpYWJsZXNCeVRhc2tJZCh0YXNrSWQpLnN1YnNjcmliZSgodGFza1Byb2Nlc3NWYXJpYWJsZXMpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhc2tGb3JtU2VydmljZS5nZXRUYXNrRm9ybSh0YXNrSWQpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAgICAgKGZvcm0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlZEZvcm0gPSB0aGlzLnBhcnNlRm9ybShmb3JtKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlzaWJpbGl0eVNlcnZpY2UucmVmcmVzaFZpc2liaWxpdHkocGFyc2VkRm9ybSwgdGFza1Byb2Nlc3NWYXJpYWJsZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VkRm9ybS52YWxpZGF0ZUZvcm0oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybSA9IHBhcnNlZEZvcm07XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRm9ybUxvYWRlZCh0aGlzLmZvcm0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLmZvcm0pO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0Rm9ybURlZmluaXRpb25CeUZvcm1JZChmb3JtSWQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UuZ2V0Rm9ybURlZmluaXRpb25CeUlkKGZvcm1JZCkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKGZvcm0pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1OYW1lID0gZm9ybS5uYW1lO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybSA9IHRoaXMucGFyc2VGb3JtKGZvcm0pO1xuICAgICAgICAgICAgICAgIHRoaXMudmlzaWJpbGl0eVNlcnZpY2UucmVmcmVzaFZpc2liaWxpdHkodGhpcy5mb3JtKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0udmFsaWRhdGVGb3JtKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkZvcm1Mb2FkZWQodGhpcy5mb3JtKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRGb3JtRGVmaW5pdGlvbkJ5Rm9ybU5hbWUoZm9ybU5hbWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLm1vZGVsU2VydmljZS5nZXRGb3JtRGVmaW5pdGlvbkJ5TmFtZShmb3JtTmFtZSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKGlkKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmdldEZvcm1EZWZpbml0aW9uQnlJZChpZCkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgICAoZm9ybSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtID0gdGhpcy5wYXJzZUZvcm0oZm9ybSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpc2liaWxpdHlTZXJ2aWNlLnJlZnJlc2hWaXNpYmlsaXR5KHRoaXMuZm9ybSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0udmFsaWRhdGVGb3JtKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRm9ybUxvYWRlZCh0aGlzLmZvcm0pO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBzYXZlVGFza0Zvcm0oKSB7XG4gICAgICAgIGlmICh0aGlzLmZvcm0/LnRhc2tJZCkge1xuICAgICAgICAgICAgdGhpcy50YXNrRm9ybVNlcnZpY2Uuc2F2ZVRhc2tGb3JtKHRoaXMuZm9ybS50YXNrSWQsIHRoaXMuZm9ybS52YWx1ZXMpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25UYXNrU2F2ZWQodGhpcy5mb3JtKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yZUZvcm1Bc01ldGFkYXRhKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyb3IpID0+IHRoaXMub25UYXNrU2F2ZWRFcnJvcih0aGlzLmZvcm0sIGVycm9yKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBsZXRlVGFza0Zvcm0ob3V0Y29tZT86IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5mb3JtPy50YXNrSWQpIHtcbiAgICAgICAgICAgIHRoaXMudGFza0Zvcm1TZXJ2aWNlLmNvbXBsZXRlVGFza0Zvcm0odGhpcy5mb3JtLnRhc2tJZCwgdGhpcy5mb3JtLnZhbHVlcywgb3V0Y29tZSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vblRhc2tDb21wbGV0ZWQodGhpcy5mb3JtKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yZUZvcm1Bc01ldGFkYXRhKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyb3IpID0+IHRoaXMub25UYXNrQ29tcGxldGVkRXJyb3IodGhpcy5mb3JtLCBlcnJvcilcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVFcnJvcihlcnI6IGFueSk6IGFueSB7XG4gICAgICAgIHRoaXMuZXJyb3IuZW1pdChlcnIpO1xuICAgIH1cblxuICAgIHBhcnNlRm9ybShmb3JtUmVwcmVzZW50YXRpb25KU09OOiBhbnkpOiBGb3JtTW9kZWwge1xuICAgICAgICBpZiAoZm9ybVJlcHJlc2VudGF0aW9uSlNPTikge1xuICAgICAgICAgICAgY29uc3QgZm9ybSA9IG5ldyBGb3JtTW9kZWwoZm9ybVJlcHJlc2VudGF0aW9uSlNPTiwgdGhpcy5kYXRhLCB0aGlzLnJlYWRPbmx5LCB0aGlzLmZvcm1TZXJ2aWNlLCB0aGlzLmVuYWJsZUZpeGVkU3BhY2VkRm9ybSk7XG4gICAgICAgICAgICBpZiAoIWZvcm1SZXByZXNlbnRhdGlvbkpTT04uZmllbGRzKSB7XG4gICAgICAgICAgICAgICAgZm9ybS5vdXRjb21lcyA9IHRoaXMuZ2V0Rm9ybURlZmluaXRpb25PdXRjb21lcyhmb3JtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmZpZWxkVmFsaWRhdG9ycz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGZvcm0uZmllbGRWYWxpZGF0b3JzID0gdGhpcy5maWVsZFZhbGlkYXRvcnM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZm9ybTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgY3VzdG9tIHNldCBvZiBvdXRjb21lcyBmb3IgYSBGb3JtIERlZmluaXRpb24uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZm9ybSBGb3JtIGRlZmluaXRpb24gbW9kZWwuXG4gICAgICogQHJldHVybnMgbGlzdCBvZiBmb3JtIG91dGNvbWVzXG4gICAgICovXG4gICAgZ2V0Rm9ybURlZmluaXRpb25PdXRjb21lcyhmb3JtOiBGb3JtTW9kZWwpOiBGb3JtT3V0Y29tZU1vZGVsW10ge1xuICAgICAgICByZXR1cm4gW25ldyBGb3JtT3V0Y29tZU1vZGVsKGZvcm0sIHsgaWQ6ICckc2F2ZScsIG5hbWU6IEZvcm1PdXRjb21lTW9kZWwuU0FWRV9BQ1RJT04sIGlzU3lzdGVtOiB0cnVlIH0pXTtcbiAgICB9XG5cbiAgICBjaGVja1Zpc2liaWxpdHkoZmllbGQ6IEZvcm1GaWVsZE1vZGVsKSB7XG4gICAgICAgIGlmIChmaWVsZD8uZm9ybSkge1xuICAgICAgICAgICAgdGhpcy52aXNpYmlsaXR5U2VydmljZS5yZWZyZXNoVmlzaWJpbGl0eShmaWVsZC5mb3JtKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxvYWRGb3JtRnJvbUFjdGl2aXRpKG5vZGVUeXBlOiBzdHJpbmcpOiBhbnkge1xuICAgICAgICB0aGlzLm1vZGVsU2VydmljZS5zZWFyY2hGcm9tKG5vZGVUeXBlKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAoZm9ybSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghZm9ybSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUZvcm1Gcm9tQU5vZGUobm9kZVR5cGUpLnN1YnNjcmliZSgoZm9ybU1ldGFkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRGb3JtRnJvbUZvcm1JZChmb3JtTWV0YWRhdGEuaWQpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRGb3JtRnJvbUZvcm1JZChmb3JtLmlkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIEZvcm0gd2l0aCBhIGZpZWxkIGZvciBlYWNoIG1ldGFkYXRhIHByb3BlcnR5LlxuICAgICAqXG4gICAgICogQHBhcmFtIGZvcm1OYW1lIE5hbWUgb2YgdGhlIG5ldyBmb3JtXG4gICAgICogQHJldHVybnMgVGhlIG5ldyBmb3JtXG4gICAgICovXG4gICAgY3JlYXRlRm9ybUZyb21BTm9kZShmb3JtTmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcikgPT4ge1xuICAgICAgICAgICAgdGhpcy5tb2RlbFNlcnZpY2UuY3JlYXRlRm9ybShmb3JtTmFtZSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIChmb3JtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWNtTW9kZWxTZXJ2aWNlLnNlYXJjaEVjbVR5cGUoZm9ybU5hbWUsIEVjbU1vZGVsU2VydmljZS5NT0RFTF9OQU1FKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgICAgICAgICAoY3VzdG9tVHlwZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1EZWZpbml0aW9uTW9kZWwgPSBuZXcgRm9ybURlZmluaXRpb25Nb2RlbChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybS5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtLmxhc3RVcGRhdGVkQnlGdWxsTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybS5sYXN0VXBkYXRlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tVHlwZS5lbnRyeS5wcm9wZXJ0aWVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tKHRoaXMuZWRpdG9yU2VydmljZS5zYXZlRm9ybShmb3JtLmlkLCBmb3JtRGVmaW5pdGlvbk1vZGVsKSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9ybURhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoZm9ybURhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVycikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAoZXJyKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycilcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnIpID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHN0b3JlRm9ybUFzTWV0YWRhdGEoKSB7XG4gICAgICAgIGlmICh0aGlzLnNhdmVNZXRhZGF0YSkge1xuICAgICAgICAgICAgdGhpcy5lY21Nb2RlbFNlcnZpY2UuY3JlYXRlRWNtVHlwZUZvckFjdGl2aXRpRm9ybSh0aGlzLmZvcm1OYW1lLCB0aGlzLmZvcm0pLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAodHlwZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGVTZXJ2aWNlLmNyZWF0ZU5vZGVNZXRhZGF0YShcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUubm9kZVR5cGUgfHwgdHlwZS5lbnRyeS5wcmVmaXhlZE5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBFY21Nb2RlbFNlcnZpY2UuTU9ERUxfTkFNRVNQQUNFLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnZhbHVlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmFtZU5vZGVcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGVycm9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uRm9ybUxvYWRlZChmb3JtOiBGb3JtTW9kZWwpIHtcbiAgICAgICAgdGhpcy5mb3JtTG9hZGVkLmVtaXQoZm9ybSk7XG4gICAgICAgIHRoaXMuZm9ybVNlcnZpY2UuZm9ybUxvYWRlZC5uZXh0KG5ldyBGb3JtRXZlbnQoZm9ybSkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkZvcm1EYXRhUmVmcmVzaGVkKGZvcm06IEZvcm1Nb2RlbCkge1xuICAgICAgICB0aGlzLmZvcm1EYXRhUmVmcmVzaGVkLmVtaXQoZm9ybSk7XG4gICAgICAgIHRoaXMuZm9ybVNlcnZpY2UuZm9ybURhdGFSZWZyZXNoZWQubmV4dChuZXcgRm9ybUV2ZW50KGZvcm0pKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25UYXNrU2F2ZWQoZm9ybTogRm9ybU1vZGVsKSB7XG4gICAgICAgIHRoaXMuZm9ybVNhdmVkLmVtaXQoZm9ybSk7XG4gICAgICAgIHRoaXMuZm9ybVNlcnZpY2UudGFza1NhdmVkLm5leHQobmV3IEZvcm1FdmVudChmb3JtKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uVGFza1NhdmVkRXJyb3IoZm9ybTogRm9ybU1vZGVsLCBlcnJvcjogYW55KSB7XG4gICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpO1xuICAgICAgICB0aGlzLmZvcm1TZXJ2aWNlLnRhc2tTYXZlZEVycm9yLm5leHQobmV3IEZvcm1FcnJvckV2ZW50KGZvcm0sIGVycm9yKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uVGFza0NvbXBsZXRlZChmb3JtOiBGb3JtTW9kZWwpIHtcbiAgICAgICAgdGhpcy5mb3JtQ29tcGxldGVkLmVtaXQoZm9ybSk7XG4gICAgICAgIHRoaXMuZm9ybVNlcnZpY2UudGFza0NvbXBsZXRlZC5uZXh0KG5ldyBGb3JtRXZlbnQoZm9ybSkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvblRhc2tDb21wbGV0ZWRFcnJvcihmb3JtOiBGb3JtTW9kZWwsIGVycm9yOiBhbnkpIHtcbiAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnJvcik7XG4gICAgICAgIHRoaXMuZm9ybVNlcnZpY2UudGFza0NvbXBsZXRlZEVycm9yLm5leHQobmV3IEZvcm1FcnJvckV2ZW50KGZvcm0sIGVycm9yKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uRXhlY3V0ZU91dGNvbWUob3V0Y29tZTogRm9ybU91dGNvbWVNb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBhcmdzID0gbmV3IEZvcm1PdXRjb21lRXZlbnQob3V0Y29tZSk7XG5cbiAgICAgICAgdGhpcy5mb3JtU2VydmljZS5leGVjdXRlT3V0Y29tZS5uZXh0KGFyZ3MpO1xuICAgICAgICBpZiAoYXJncy5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmV4ZWN1dGVPdXRjb21lLmVtaXQoYXJncyk7XG4gICAgICAgIHJldHVybiAhYXJncy5kZWZhdWx0UHJldmVudGVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVmcmVzaEZvcm1EYXRhKCkge1xuICAgICAgICB0aGlzLmZvcm0gPSB0aGlzLnBhcnNlRm9ybSh0aGlzLmZvcm0uanNvbik7XG4gICAgICAgIHRoaXMub25Gb3JtTG9hZGVkKHRoaXMuZm9ybSk7XG4gICAgICAgIHRoaXMub25Gb3JtRGF0YVJlZnJlc2hlZCh0aGlzLmZvcm0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZEZvcm1Gb3JFY21Ob2RlKG5vZGVJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMubm9kZVNlcnZpY2UuZ2V0Tm9kZU1ldGFkYXRhKG5vZGVJZCkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRhdGEgPSBkYXRhLm1ldGFkYXRhO1xuICAgICAgICAgICAgdGhpcy5sb2FkRm9ybUZyb21BY3Rpdml0aShkYXRhLm5vZGVUeXBlKTtcbiAgICAgICAgfSwgdGhpcy5oYW5kbGVFcnJvcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkRm9ybUZyb21Gb3JtSWQoZm9ybUlkOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5mb3JtSWQgPSBmb3JtSWQ7XG4gICAgICAgIHRoaXMubG9hZEZvcm0oKTtcbiAgICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiIWhhc0Zvcm0oKVwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltlbXB0eS1mb3JtXVwiIC8+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cImhhc0Zvcm0oKVwiIGNsYXNzPVwiYWRmLWZvcm0tY29udGFpbmVyXCI+XG4gICAgPG1hdC1jYXJkIGFwcGVhcmFuY2U9XCJvdXRsaW5lZFwiIGNsYXNzPVwiYWRmLWZvcm0tY2FyZFwiPlxuICAgICAgICA8bWF0LWNhcmQtaGVhZGVyPlxuICAgICAgICAgICAgPG1hdC1jYXJkLXRpdGxlPlxuICAgICAgICAgICAgICAgIDxoND5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dWYWxpZGF0aW9uSWNvblwiIGNsYXNzPVwiYWRmLWZvcm0tdmFsaWRhdGlvbi1idXR0b25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGlkPVwiYWRmLXZhbGlkLWZvcm0taWNvblwiIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZm9ybS5pc1ZhbGlkOyBlbHNlIG5vX3ZhbGlkX2Zvcm1cIj5jaGVja19jaXJjbGU8L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vX3ZhbGlkX2Zvcm0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgaWQ9XCJhZGYtaW52YWxpZC1mb3JtLWljb25cIiBjbGFzcz1cIm1hdGVyaWFsLWljb25zIGFkZi1pbnZhbGlkLWNvbG9yXCI+ZXJyb3I8L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dSZWZyZXNoQnV0dG9uXCIgY2xhc3M9XCJhZGYtZm9ybS1yZWxvYWQtYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwib25SZWZyZXNoQ2xpY2tlZCgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPnJlZnJlc2g8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImlzVGl0bGVFbmFibGVkKClcIiBjbGFzcz1cImFkZi1mb3JtLXRpdGxlXCIgW3RpdGxlXT1cImZvcm0udGFza05hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7Zm9ybS50YXNrTmFtZX19XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWZvcm0udGFza05hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eydGT1JNLkZPUk1fUkVOREVSRVIuTkFNRUxFU1NfVEFTSycgfCB0cmFuc2xhdGV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2g0PlxuICAgICAgICAgICAgPC9tYXQtY2FyZC10aXRsZT5cbiAgICAgICAgPC9tYXQtY2FyZC1oZWFkZXI+XG4gICAgICAgIDxtYXQtY2FyZC1jb250ZW50IGNsYXNzPVwiYWRmLWZvcm0tY2FyZC1jb250ZW50XCI+XG4gICAgICAgICAgICA8YWRmLWZvcm0tcmVuZGVyZXIgW2Zvcm1EZWZpbml0aW9uXT1cImZvcm1cIiAvPlxuICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgIDxtYXQtY2FyZC1hY3Rpb25zICpuZ0lmPVwiZm9ybS5oYXNPdXRjb21lcygpXCIgY2xhc3M9XCJhZGYtZm9ybS1tYXQtY2FyZC1hY3Rpb25zXCIgYWxpZ249XCJlbmRcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImFkZi1mb3JtLWN1c3RvbS1vdXRjb21lc1wiIC8+XG4gICAgICAgICAgICA8YnV0dG9uIFtpZF09XCInYWRmLWZvcm0tJysgb3V0Y29tZS5uYW1lICB8IGZvcm1hdFNwYWNlXCIgKm5nRm9yPVwibGV0IG91dGNvbWUgb2YgZm9ybS5vdXRjb21lc1wiXG4gICAgICAgICAgICAgICAgW2NvbG9yXT1cImdldENvbG9yRm9yT3V0Y29tZShvdXRjb21lLm5hbWUpXCIgbWF0LWJ1dHRvbiBbZGlzYWJsZWRdPVwiIWlzT3V0Y29tZUJ1dHRvbkVuYWJsZWQob3V0Y29tZSlcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5hZGYtZm9ybS1oaWRlLWJ1dHRvbl09XCIhaXNPdXRjb21lQnV0dG9uVmlzaWJsZShvdXRjb21lLCBmb3JtLnJlYWRPbmx5KVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uT3V0Y29tZUNsaWNrZWQob3V0Y29tZSlcIj5cbiAgICAgICAgICAgICAgICB7e291dGNvbWUubmFtZSB8IHRyYW5zbGF0ZSB8IHVwcGVyY2FzZSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbWF0LWNhcmQtYWN0aW9ucz5cbiAgICA8L21hdC1jYXJkPlxuPC9kaXY+XG4iXX0=
|
|
@@ -43,13 +43,13 @@ export class ProcessFormRenderingService extends FormRenderingService {
|
|
|
43
43
|
[FormFieldTypes.ALFRESCO_FILE_VIEWER]: () => FileViewerWidgetComponent
|
|
44
44
|
}, true);
|
|
45
45
|
}
|
|
46
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
47
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
46
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ProcessFormRenderingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
47
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ProcessFormRenderingService, providedIn: 'root' }); }
|
|
48
48
|
}
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ProcessFormRenderingService, decorators: [{
|
|
50
50
|
type: Injectable,
|
|
51
51
|
args: [{
|
|
52
52
|
providedIn: 'root'
|
|
53
53
|
}]
|
|
54
54
|
}], ctorParameters: () => [] });
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1mb3JtLXJlbmRlcmluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMvc3JjL2xpYi9mb3JtL3Byb2Nlc3MtZm9ybS1yZW5kZXJpbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFDSCxjQUFjLEVBQ2Qsb0JBQW9CLEVBQ3ZCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDbEcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDdEcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDN0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDcEcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDM0YsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDaEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDM0YsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDN0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMENBQTBDLENBQUM7O0FBS3JGLE1BQU0sT0FBTywyQkFBNEIsU0FBUSxvQkFBb0I7SUFDakU7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQUVSLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDVixDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyx1QkFBdUI7WUFDeEQsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUUsd0JBQXdCO1lBQzNELENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFFLDJCQUEyQjtZQUNsRSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyx5QkFBeUI7WUFDeEQsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsMkJBQTJCO1lBQ2pFLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLHVCQUF1QjtZQUN4RCxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBRSxxQkFBcUI7WUFDckQsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsRUFBRyxHQUFHLEVBQUUsQ0FBQyw4QkFBOEI7WUFDeEUsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLEVBQUcsR0FBRyxFQUFFLENBQUMsMkJBQTJCO1lBQ2xFLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLEVBQUcsR0FBRyxFQUFFLENBQUMseUJBQXlCO1NBQzFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDYixDQUFDOzhHQWhCUSwyQkFBMkI7a0hBQTNCLDJCQUEyQixjQUZ4QixNQUFNOzsyRkFFVCwyQkFBMkI7a0JBSHZDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEZvcm1GaWVsZFR5cGVzLFxuICAgIEZvcm1SZW5kZXJpbmdTZXJ2aWNlXG59IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBBdHRhY2hGaWxlV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL2NvbnRlbnQtd2lkZ2V0L2F0dGFjaC1maWxlLXdpZGdldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXR0YWNoRm9sZGVyV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL2NvbnRlbnQtd2lkZ2V0L2F0dGFjaC1mb2xkZXItd2lkZ2V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEb2N1bWVudFdpZGdldENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9kb2N1bWVudC9kb2N1bWVudC53aWRnZXQnO1xuaW1wb3J0IHsgUGVvcGxlV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL3Blb3BsZS9wZW9wbGUud2lkZ2V0JztcbmltcG9ydCB7IEZ1bmN0aW9uYWxHcm91cFdpZGdldENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9mdW5jdGlvbmFsLWdyb3VwL2Z1bmN0aW9uYWwtZ3JvdXAud2lkZ2V0JztcbmltcG9ydCB7IFJhZGlvQnV0dG9uc1dpZGdldENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9yYWRpby1idXR0b25zL3JhZGlvLWJ1dHRvbnMud2lkZ2V0JztcbmltcG9ydCB7IFR5cGVhaGVhZFdpZGdldENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy90eXBlYWhlYWQvdHlwZWFoZWFkLndpZGdldCc7XG5pbXBvcnQgeyBEeW5hbWljVGFibGVXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvZHluYW1pYy10YWJsZS9keW5hbWljLXRhYmxlLndpZGdldCc7XG5pbXBvcnQgeyBEcm9wZG93bldpZGdldENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9kcm9wZG93bi9kcm9wZG93bi53aWRnZXQnO1xuaW1wb3J0IHsgRmlsZVZpZXdlcldpZGdldENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9maWxlLXZpZXdlci9maWxlLXZpZXdlci53aWRnZXQnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFByb2Nlc3NGb3JtUmVuZGVyaW5nU2VydmljZSBleHRlbmRzIEZvcm1SZW5kZXJpbmdTZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICB0aGlzLnJlZ2lzdGVyKHtcbiAgICAgICAgICAgIFtGb3JtRmllbGRUeXBlcy5EUk9QRE9XTl06ICgpID0+IERyb3Bkb3duV2lkZ2V0Q29tcG9uZW50LFxuICAgICAgICAgICAgW0Zvcm1GaWVsZFR5cGVzLlRZUEVBSEVBRF06ICgpID0+ICBUeXBlYWhlYWRXaWRnZXRDb21wb25lbnQsXG4gICAgICAgICAgICBbRm9ybUZpZWxkVHlwZXMuUkFESU9fQlVUVE9OU106ICgpID0+ICBSYWRpb0J1dHRvbnNXaWRnZXRDb21wb25lbnQsXG4gICAgICAgICAgICBbRm9ybUZpZWxkVHlwZXMuVVBMT0FEXTogKCkgPT4gQXR0YWNoRmlsZVdpZGdldENvbXBvbmVudCxcbiAgICAgICAgICAgIFtGb3JtRmllbGRUeXBlcy5BVFRBQ0hfRk9MREVSXTogKCkgPT4gQXR0YWNoRm9sZGVyV2lkZ2V0Q29tcG9uZW50LFxuICAgICAgICAgICAgW0Zvcm1GaWVsZFR5cGVzLkRPQ1VNRU5UXTogKCkgPT4gRG9jdW1lbnRXaWRnZXRDb21wb25lbnQsXG4gICAgICAgICAgICBbRm9ybUZpZWxkVHlwZXMuUEVPUExFXTogKCkgPT4gIFBlb3BsZVdpZGdldENvbXBvbmVudCxcbiAgICAgICAgICAgIFtGb3JtRmllbGRUeXBlcy5GVU5DVElPTkFMX0dST1VQXTogICgpID0+IEZ1bmN0aW9uYWxHcm91cFdpZGdldENvbXBvbmVudCxcbiAgICAgICAgICAgIFtGb3JtRmllbGRUeXBlcy5EWU5BTUlDX1RBQkxFXTogICgpID0+IER5bmFtaWNUYWJsZVdpZGdldENvbXBvbmVudCxcbiAgICAgICAgICAgIFtGb3JtRmllbGRUeXBlcy5BTEZSRVNDT19GSUxFX1ZJRVdFUl06ICAoKSA9PiBGaWxlVmlld2VyV2lkZ2V0Q29tcG9uZW50XG4gICAgICAgIH0sIHRydWUpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -101,13 +101,13 @@ export class ActivitiContentService {
|
|
|
101
101
|
}
|
|
102
102
|
return throwError(errMsg);
|
|
103
103
|
}
|
|
104
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
105
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
104
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ActivitiContentService, deps: [{ token: i1.AlfrescoApiService }, { token: i1.SitesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
105
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ActivitiContentService, providedIn: 'root' }); }
|
|
106
106
|
}
|
|
107
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
107
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ActivitiContentService, decorators: [{
|
|
108
108
|
type: Injectable,
|
|
109
109
|
args: [{
|
|
110
110
|
providedIn: 'root'
|
|
111
111
|
}]
|
|
112
112
|
}], ctorParameters: () => [{ type: i1.AlfrescoApiService }, { type: i1.SitesService }] });
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdGktYWxmcmVzY28uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzL3NyYy9saWIvZm9ybS9zZXJ2aWNlcy9hY3Rpdml0aS1hbGZyZXNjby5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVsRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFDSCwrQkFBK0IsRUFHL0Isa0JBQWtCLEVBR3JCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFjLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBS2pELE1BQU0sT0FBTyxzQkFBc0I7YUFDeEIsMEJBQXFCLEdBQVcsZUFBZSxBQUExQixDQUEyQjthQUNoRCwwQkFBcUIsR0FBVyxjQUFjLEFBQXpCLENBQTBCO0lBR3RELElBQUksK0JBQStCO1FBQy9CLElBQUksQ0FBQyxnQ0FBZ0M7WUFDakMsSUFBSSxDQUFDLGdDQUFnQyxJQUFJLElBQUksK0JBQStCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ2hILE9BQU8sSUFBSSxDQUFDLGdDQUFnQyxDQUFDO0lBQ2pELENBQUM7SUFHRCxJQUFJLFVBQVU7UUFDVixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDN0YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENB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LENBQ25FLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUN2QixVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDN0MsQ0FBQztJQUNOLENBQUM7SUFFTyxXQUFXLENBQUMsS0FBVTtRQUMxQixJQUFJLE1BQU0sR0FBRyxzQkFBc0IsQ0FBQyxxQkFBcUIsQ0FBQztRQUMxRCxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1IsTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPO2dCQUNsQixDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU87Z0JBQ2YsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNO29CQUNkLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLE1BQU0sS0FBSyxDQUFDLFVBQVUsRUFBRTtvQkFDekMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLHFCQUFxQixDQUFDO1FBQ3ZELENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixDQUFDOytHQXBHUSxzQkFBc0I7bUhBQXRCLHNCQUFzQixjQUZuQixNQUFNOzs0RkFFVCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBBbGZyZXNjb0FwaVNlcnZpY2UsIFNpdGVzU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29udGVudC1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBFeHRlcm5hbENvbnRlbnQgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBJbnRlZ3JhdGlvbkFsZnJlc2NvT25QcmVtaXNlQXBpLFxuICAgIE5vZGUsXG4gICAgUmVsYXRlZENvbnRlbnRSZXByZXNlbnRhdGlvbixcbiAgICBBY3Rpdml0aUNvbnRlbnRBcGksXG4gICAgQWxmcmVzY29FbmRwb2ludFJlcHJlc2VudGF0aW9uLFxuICAgIEFsZnJlc2NvQ29udGVudFJlcHJlc2VudGF0aW9uXG59IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZnJvbSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFjdGl2aXRpQ29udGVudFNlcnZpY2Uge1xuICAgIHN0YXRpYyBVTktOT1dOX0VSUk9SX01FU1NBR0U6IHN0cmluZyA9ICdVbmtub3duIGVycm9yJztcbiAgICBzdGF0aWMgR0VORVJJQ19FUlJPUl9NRVNTQUdFOiBzdHJpbmcgPSAnU2VydmVyIGVycm9yJztcblxuICAgIHByaXZhdGUgX2ludGVncmF0aW9uQWxmcmVzY29PblByZW1pc2VBcGk6IEludGVncmF0aW9uQWxmcmVzY29PblByZW1pc2VBcGk7XG4gICAgZ2V0IGludGVncmF0aW9uQWxmcmVzY29PblByZW1pc2VBcGkoKTogSW50ZWdyYXRpb25BbGZyZXNjb09uUHJlbWlzZUFwaSB7XG4gICAgICAgIHRoaXMuX2ludGVncmF0aW9uQWxmcmVzY29PblByZW1pc2VBcGkgPVxuICAgICAgICAgICAgdGhpcy5faW50ZWdyYXRpb25BbGZyZXNjb09uUHJlbWlzZUFwaSA/PyBuZXcgSW50ZWdyYXRpb25BbGZyZXNjb09uUHJlbWlzZUFwaSh0aGlzLmFwaVNlcnZpY2UuZ2V0SW5zdGFuY2UoKSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnRlZ3JhdGlvbkFsZnJlc2NvT25QcmVtaXNlQXBpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NvbnRlbnRBcGk6IEFjdGl2aXRpQ29udGVudEFwaTtcbiAgICBnZXQgY29udGVudEFwaSgpOiBBY3Rpdml0aUNvbnRlbnRBcGkge1xuICAgICAgICB0aGlzLl9jb250ZW50QXBpID0gdGhpcy5fY29udGVudEFwaSA/PyBuZXcgQWN0aXZpdGlDb250ZW50QXBpKHRoaXMuYXBpU2VydmljZS5nZXRJbnN0YW5jZSgpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRlbnRBcGk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhcGlTZXJ2aWNlOiBBbGZyZXNjb0FwaVNlcnZpY2UsIHByaXZhdGUgc2l0ZXNTZXJ2aWNlOiBTaXRlc1NlcnZpY2UpIHt9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBjaGlsZCBub2RlcyBiZWxvdyB0aGUgc3BlY2lmaWVkIGZvbGRlclxuICAgICAqXG4gICAgICogQHBhcmFtIGFjY291bnRJZCBhY2NvdW50IGlkXG4gICAgICogQHBhcmFtIGZvbGRlcklkIGZvbGRlciBpZFxuICAgICAqIEByZXR1cm5zIGxpc3Qgb2YgZXh0ZXJuYWwgY29udGVudCBpbnN0YW5jZXNcbiAgICAgKi9cbiAgICBnZXRBbGZyZXNjb05vZGVzKGFjY291bnRJZDogc3RyaW5nLCBmb2xkZXJJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxBbGZyZXNjb0NvbnRlbnRSZXByZXNlbnRhdGlvbltdPiB7XG4gICAgICAgIGNvbnN0IGFjY291bnRTaG9ydElkID0gYWNjb3VudElkLnJlcGxhY2UoJ2FsZnJlc2NvLScsICcnKTtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy5pbnRlZ3JhdGlvbkFsZnJlc2NvT25QcmVtaXNlQXBpLmdldENvbnRlbnRJbkZvbGRlcihhY2NvdW50U2hvcnRJZCwgZm9sZGVySWQpKS5waXBlKFxuICAgICAgICAgICAgbWFwKChyZXMpID0+IHJlcz8uZGF0YSB8fCBbXSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgdGhlIHJlcG9zaXRvcmllcyBjb25maWd1cmVkXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGVuYW50SWQgdGVuYW50IGlkXG4gICAgICogQHBhcmFtIGluY2x1ZGVBY2NvdW50IGluY2x1ZGUgYWNjb3VudHNcbiAgICAgKiBAcmV0dXJucyBsaXN0IG9mIGVuZHBvaW50c1xuICAgICAqL1xuICAgIGdldEFsZnJlc2NvUmVwb3NpdG9yaWVzKHRlbmFudElkPzogc3RyaW5nLCBpbmNsdWRlQWNjb3VudD86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEFsZnJlc2NvRW5kcG9pbnRSZXByZXNlbnRhdGlvbltdPiB7XG4gICAgICAgIGNvbnN0IG9wdHMgPSB7XG4gICAgICAgICAgICB0ZW5hbnRJZCxcbiAgICAgICAgICAgIGluY2x1ZGVBY2NvdW50czogaW5jbHVkZUFjY291bnQgPyBpbmNsdWRlQWNjb3VudCA6IHRydWVcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy5pbnRlZ3JhdGlvbkFsZnJlc2NvT25QcmVtaXNlQXBpLmdldFJlcG9zaXRvcmllcyhvcHRzKSkucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzKSA9PiByZXM/LmRhdGEgfHwgW10pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycikpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIGxpc3Qgb2YgY2hpbGQgbm9kZXMgYmVsb3cgdGhlIHNwZWNpZmllZCBmb2xkZXJcbiAgICAgKlxuICAgICAqIEBwYXJhbSBhY2NvdW50SWQgYWNjb3VudCBpZFxuICAgICAqIEBwYXJhbSBub2RlIG5vZGUgZGV0YWlsc1xuICAgICAqIEBwYXJhbSBzaXRlSWQgc2l0ZSBpZFxuICAgICAqIEByZXR1cm5zIGxpbmsgdG8gZXh0ZXJuYWwgY29udGVudFxuICAgICAqL1xuICAgIGxpbmtBbGZyZXNjb05vZGUoYWNjb3VudElkOiBzdHJpbmcsIG5vZGU6IEV4dGVybmFsQ29udGVudCwgc2l0ZUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFJlbGF0ZWRDb250ZW50UmVwcmVzZW50YXRpb24+IHtcbiAgICAgICAgcmV0dXJuIGZyb20oXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRBcGkuY3JlYXRlVGVtcG9yYXJ5UmVsYXRlZENvbnRlbnQoe1xuICAgICAgICAgICAgICAgIGxpbms6IHRydWUsXG4gICAgICAgICAgICAgICAgbmFtZTogbm9kZS50aXRsZSxcbiAgICAgICAgICAgICAgICBzaW1wbGVUeXBlOiBub2RlLnNpbXBsZVR5cGUsXG4gICAgICAgICAgICAgICAgc291cmNlOiBhY2NvdW50SWQsXG4gICAgICAgICAgICAgICAgc291cmNlSWQ6IG5vZGUuaWQgKyAnQCcgKyBzaXRlSWRcbiAgICAgICAgICAgIH0pXG4gICAgICAgICkucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzKSA9PiByZXMgfHwge30pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycikpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgYXBwbHlBbGZyZXNjb05vZGUobm9kZTogTm9kZSwgc2l0ZUlkOiBzdHJpbmcsIGFjY291bnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxSZWxhdGVkQ29udGVudFJlcHJlc2VudGF0aW9uPiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRTaWRlSWQgPSBzaXRlSWQgPyBzaXRlSWQgOiB0aGlzLnNpdGVzU2VydmljZS5nZXRTaXRlTmFtZUZyb21Ob2RlUGF0aChub2RlKTtcbiAgICAgICAgY29uc3QgcGFyYW1zOiBSZWxhdGVkQ29udGVudFJlcHJlc2VudGF0aW9uID0ge1xuICAgICAgICAgICAgc291cmNlOiBhY2NvdW50SWQsXG4gICAgICAgICAgICBtaW1lVHlwZTogbm9kZT8uY29udGVudD8ubWltZVR5cGUsXG4gICAgICAgICAgICBzb3VyY2VJZDogbm9kZS5pZCArICc7JyArIG5vZGUucHJvcGVydGllcz8uWydjbTp2ZXJzaW9uTGFiZWwnXSArICdAJyArIGN1cnJlbnRTaWRlSWQsXG4gICAgICAgICAgICBuYW1lOiBub2RlLm5hbWUsXG4gICAgICAgICAgICBsaW5rOiBub2RlLmlzTGlua1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLmNvbnRlbnRBcGkuY3JlYXRlVGVtcG9yYXJ5UmVsYXRlZENvbnRlbnQocGFyYW1zKSkucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzKSA9PiByZXMgfHwge30pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycikpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVFcnJvcihlcnJvcjogYW55KTogT2JzZXJ2YWJsZTxuZXZlcj4ge1xuICAgICAgICBsZXQgZXJyTXNnID0gQWN0aXZpdGlDb250ZW50U2VydmljZS5VTktOT1dOX0VSUk9SX01FU1NBR0U7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgZXJyTXNnID0gZXJyb3IubWVzc2FnZVxuICAgICAgICAgICAgICAgID8gZXJyb3IubWVzc2FnZVxuICAgICAgICAgICAgICAgIDogZXJyb3Iuc3RhdHVzXG4gICAgICAgICAgICAgICAgPyBgJHtlcnJvci5zdGF0dXN9IC0gJHtlcnJvci5zdGF0dXNUZXh0fWBcbiAgICAgICAgICAgICAgICA6IEFjdGl2aXRpQ29udGVudFNlcnZpY2UuR0VORVJJQ19FUlJPUl9NRVNTQUdFO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVyck1zZyk7XG4gICAgfVxufVxuIl19
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdGktYWxmcmVzY28uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzL3NyYy9saWIvZm9ybS9zZXJ2aWNlcy9hY3Rpdml0aS1hbGZyZXNjby5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVsRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFDSCwrQkFBK0IsRUFHL0Isa0JBQWtCLEVBR3JCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFjLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBS2pELE1BQU0sT0FBTyxzQkFBc0I7YUFDeEIsMEJBQXFCLEdBQVcsZUFBZSxBQUExQixDQUEyQjthQUNoRCwwQkFBcUIsR0FBVyxjQUFjLEFBQXpCLENBQTBCO0lBR3RELElBQUksK0JBQStCO1FBQy9CLElBQUksQ0FBQyxnQ0FBZ0M7WUFDakMsSUFBSSxDQUFDLGdDQUFnQyxJQUFJLElBQUksK0JBQStCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ2hILE9BQU8sSUFBSSxDQUFDLGdDQUFnQyxDQUFDO0lBQ2pELENBQUM7SUFHRCxJQUFJLFVBQVU7UUFDVixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDN0YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENB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LENBQ25FLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUN2QixVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDN0MsQ0FBQztJQUNOLENBQUM7SUFFTyxXQUFXLENBQUMsS0FBVTtRQUMxQixJQUFJLE1BQU0sR0FBRyxzQkFBc0IsQ0FBQyxxQkFBcUIsQ0FBQztRQUMxRCxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1IsTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPO2dCQUNsQixDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU87Z0JBQ2YsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNO29CQUNkLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLE1BQU0sS0FBSyxDQUFDLFVBQVUsRUFBRTtvQkFDekMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLHFCQUFxQixDQUFDO1FBQ3ZELENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixDQUFDOzhHQXBHUSxzQkFBc0I7a0hBQXRCLHNCQUFzQixjQUZuQixNQUFNOzsyRkFFVCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBBbGZyZXNjb0FwaVNlcnZpY2UsIFNpdGVzU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29udGVudC1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBFeHRlcm5hbENvbnRlbnQgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBJbnRlZ3JhdGlvbkFsZnJlc2NvT25QcmVtaXNlQXBpLFxuICAgIE5vZGUsXG4gICAgUmVsYXRlZENvbnRlbnRSZXByZXNlbnRhdGlvbixcbiAgICBBY3Rpdml0aUNvbnRlbnRBcGksXG4gICAgQWxmcmVzY29FbmRwb2ludFJlcHJlc2VudGF0aW9uLFxuICAgIEFsZnJlc2NvQ29udGVudFJlcHJlc2VudGF0aW9uXG59IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZnJvbSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFjdGl2aXRpQ29udGVudFNlcnZpY2Uge1xuICAgIHN0YXRpYyBVTktOT1dOX0VSUk9SX01FU1NBR0U6IHN0cmluZyA9ICdVbmtub3duIGVycm9yJztcbiAgICBzdGF0aWMgR0VORVJJQ19FUlJPUl9NRVNTQUdFOiBzdHJpbmcgPSAnU2VydmVyIGVycm9yJztcblxuICAgIHByaXZhdGUgX2ludGVncmF0aW9uQWxmcmVzY29PblByZW1pc2VBcGk6IEludGVncmF0aW9uQWxmcmVzY29PblByZW1pc2VBcGk7XG4gICAgZ2V0IGludGVncmF0aW9uQWxmcmVzY29PblByZW1pc2VBcGkoKTogSW50ZWdyYXRpb25BbGZyZXNjb09uUHJlbWlzZUFwaSB7XG4gICAgICAgIHRoaXMuX2ludGVncmF0aW9uQWxmcmVzY29PblByZW1pc2VBcGkgPVxuICAgICAgICAgICAgdGhpcy5faW50ZWdyYXRpb25BbGZyZXNjb09uUHJlbWlzZUFwaSA/PyBuZXcgSW50ZWdyYXRpb25BbGZyZXNjb09uUHJlbWlzZUFwaSh0aGlzLmFwaVNlcnZpY2UuZ2V0SW5zdGFuY2UoKSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnRlZ3JhdGlvbkFsZnJlc2NvT25QcmVtaXNlQXBpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NvbnRlbnRBcGk6IEFjdGl2aXRpQ29udGVudEFwaTtcbiAgICBnZXQgY29udGVudEFwaSgpOiBBY3Rpdml0aUNvbnRlbnRBcGkge1xuICAgICAgICB0aGlzLl9jb250ZW50QXBpID0gdGhpcy5fY29udGVudEFwaSA/PyBuZXcgQWN0aXZpdGlDb250ZW50QXBpKHRoaXMuYXBpU2VydmljZS5nZXRJbnN0YW5jZSgpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRlbnRBcGk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhcGlTZXJ2aWNlOiBBbGZyZXNjb0FwaVNlcnZpY2UsIHByaXZhdGUgc2l0ZXNTZXJ2aWNlOiBTaXRlc1NlcnZpY2UpIHt9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBjaGlsZCBub2RlcyBiZWxvdyB0aGUgc3BlY2lmaWVkIGZvbGRlclxuICAgICAqXG4gICAgICogQHBhcmFtIGFjY291bnRJZCBhY2NvdW50IGlkXG4gICAgICogQHBhcmFtIGZvbGRlcklkIGZvbGRlciBpZFxuICAgICAqIEByZXR1cm5zIGxpc3Qgb2YgZXh0ZXJuYWwgY29udGVudCBpbnN0YW5jZXNcbiAgICAgKi9cbiAgICBnZXRBbGZyZXNjb05vZGVzKGFjY291bnRJZDogc3RyaW5nLCBmb2xkZXJJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxBbGZyZXNjb0NvbnRlbnRSZXByZXNlbnRhdGlvbltdPiB7XG4gICAgICAgIGNvbnN0IGFjY291bnRTaG9ydElkID0gYWNjb3VudElkLnJlcGxhY2UoJ2FsZnJlc2NvLScsICcnKTtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy5pbnRlZ3JhdGlvbkFsZnJlc2NvT25QcmVtaXNlQXBpLmdldENvbnRlbnRJbkZvbGRlcihhY2NvdW50U2hvcnRJZCwgZm9sZGVySWQpKS5waXBlKFxuICAgICAgICAgICAgbWFwKChyZXMpID0+IHJlcz8uZGF0YSB8fCBbXSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgdGhlIHJlcG9zaXRvcmllcyBjb25maWd1cmVkXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGVuYW50SWQgdGVuYW50IGlkXG4gICAgICogQHBhcmFtIGluY2x1ZGVBY2NvdW50IGluY2x1ZGUgYWNjb3VudHNcbiAgICAgKiBAcmV0dXJucyBsaXN0IG9mIGVuZHBvaW50c1xuICAgICAqL1xuICAgIGdldEFsZnJlc2NvUmVwb3NpdG9yaWVzKHRlbmFudElkPzogc3RyaW5nLCBpbmNsdWRlQWNjb3VudD86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEFsZnJlc2NvRW5kcG9pbnRSZXByZXNlbnRhdGlvbltdPiB7XG4gICAgICAgIGNvbnN0IG9wdHMgPSB7XG4gICAgICAgICAgICB0ZW5hbnRJZCxcbiAgICAgICAgICAgIGluY2x1ZGVBY2NvdW50czogaW5jbHVkZUFjY291bnQgPyBpbmNsdWRlQWNjb3VudCA6IHRydWVcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy5pbnRlZ3JhdGlvbkFsZnJlc2NvT25QcmVtaXNlQXBpLmdldFJlcG9zaXRvcmllcyhvcHRzKSkucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzKSA9PiByZXM/LmRhdGEgfHwgW10pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycikpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIGxpc3Qgb2YgY2hpbGQgbm9kZXMgYmVsb3cgdGhlIHNwZWNpZmllZCBmb2xkZXJcbiAgICAgKlxuICAgICAqIEBwYXJhbSBhY2NvdW50SWQgYWNjb3VudCBpZFxuICAgICAqIEBwYXJhbSBub2RlIG5vZGUgZGV0YWlsc1xuICAgICAqIEBwYXJhbSBzaXRlSWQgc2l0ZSBpZFxuICAgICAqIEByZXR1cm5zIGxpbmsgdG8gZXh0ZXJuYWwgY29udGVudFxuICAgICAqL1xuICAgIGxpbmtBbGZyZXNjb05vZGUoYWNjb3VudElkOiBzdHJpbmcsIG5vZGU6IEV4dGVybmFsQ29udGVudCwgc2l0ZUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFJlbGF0ZWRDb250ZW50UmVwcmVzZW50YXRpb24+IHtcbiAgICAgICAgcmV0dXJuIGZyb20oXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRBcGkuY3JlYXRlVGVtcG9yYXJ5UmVsYXRlZENvbnRlbnQoe1xuICAgICAgICAgICAgICAgIGxpbms6IHRydWUsXG4gICAgICAgICAgICAgICAgbmFtZTogbm9kZS50aXRsZSxcbiAgICAgICAgICAgICAgICBzaW1wbGVUeXBlOiBub2RlLnNpbXBsZVR5cGUsXG4gICAgICAgICAgICAgICAgc291cmNlOiBhY2NvdW50SWQsXG4gICAgICAgICAgICAgICAgc291cmNlSWQ6IG5vZGUuaWQgKyAnQCcgKyBzaXRlSWRcbiAgICAgICAgICAgIH0pXG4gICAgICAgICkucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzKSA9PiByZXMgfHwge30pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycikpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgYXBwbHlBbGZyZXNjb05vZGUobm9kZTogTm9kZSwgc2l0ZUlkOiBzdHJpbmcsIGFjY291bnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxSZWxhdGVkQ29udGVudFJlcHJlc2VudGF0aW9uPiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRTaWRlSWQgPSBzaXRlSWQgPyBzaXRlSWQgOiB0aGlzLnNpdGVzU2VydmljZS5nZXRTaXRlTmFtZUZyb21Ob2RlUGF0aChub2RlKTtcbiAgICAgICAgY29uc3QgcGFyYW1zOiBSZWxhdGVkQ29udGVudFJlcHJlc2VudGF0aW9uID0ge1xuICAgICAgICAgICAgc291cmNlOiBhY2NvdW50SWQsXG4gICAgICAgICAgICBtaW1lVHlwZTogbm9kZT8uY29udGVudD8ubWltZVR5cGUsXG4gICAgICAgICAgICBzb3VyY2VJZDogbm9kZS5pZCArICc7JyArIG5vZGUucHJvcGVydGllcz8uWydjbTp2ZXJzaW9uTGFiZWwnXSArICdAJyArIGN1cnJlbnRTaWRlSWQsXG4gICAgICAgICAgICBuYW1lOiBub2RlLm5hbWUsXG4gICAgICAgICAgICBsaW5rOiBub2RlLmlzTGlua1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLmNvbnRlbnRBcGkuY3JlYXRlVGVtcG9yYXJ5UmVsYXRlZENvbnRlbnQocGFyYW1zKSkucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzKSA9PiByZXMgfHwge30pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycikpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVFcnJvcihlcnJvcjogYW55KTogT2JzZXJ2YWJsZTxuZXZlcj4ge1xuICAgICAgICBsZXQgZXJyTXNnID0gQWN0aXZpdGlDb250ZW50U2VydmljZS5VTktOT1dOX0VSUk9SX01FU1NBR0U7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgZXJyTXNnID0gZXJyb3IubWVzc2FnZVxuICAgICAgICAgICAgICAgID8gZXJyb3IubWVzc2FnZVxuICAgICAgICAgICAgICAgIDogZXJyb3Iuc3RhdHVzXG4gICAgICAgICAgICAgICAgPyBgJHtlcnJvci5zdGF0dXN9IC0gJHtlcnJvci5zdGF0dXNUZXh0fWBcbiAgICAgICAgICAgICAgICA6IEFjdGl2aXRpQ29udGVudFNlcnZpY2UuR0VORVJJQ19FUlJPUl9NRVNTQUdFO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVyck1zZyk7XG4gICAgfVxufVxuIl19
|