@pega/angular-sdk-components 23.1.10 → 24.2.10
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/_bridge/angular-pconnect.mjs +18 -6
- package/esm2022/lib/_bridge/component-mapper/component-mapper.component.mjs +6 -13
- package/esm2022/lib/_bridge/helpers/sdk-pega-component-map.mjs +3 -1
- package/esm2022/lib/_bridge/helpers/sdk_component_map.mjs +1 -1
- package/esm2022/lib/_components/designSystemExtension/alert/alert.component.mjs +4 -4
- package/esm2022/lib/_components/designSystemExtension/alert-banner/alert-banner.component.mjs +4 -4
- package/esm2022/lib/_components/designSystemExtension/banner/banner.component.mjs +4 -4
- package/esm2022/lib/_components/designSystemExtension/case-create-stage/case-create-stage.component.mjs +5 -5
- package/esm2022/lib/_components/designSystemExtension/field-group/field-group.component.mjs +3 -3
- package/esm2022/lib/_components/designSystemExtension/material-case-summary/material-case-summary.component.mjs +9 -6
- package/esm2022/lib/_components/designSystemExtension/material-details/material-details.component.mjs +5 -5
- package/esm2022/lib/_components/designSystemExtension/material-details-fields/material-details-fields.component.mjs +10 -7
- package/esm2022/lib/_components/designSystemExtension/material-summary-item/material-summary-item.component.mjs +5 -5
- package/esm2022/lib/_components/designSystemExtension/material-summary-list/material-summary-list.component.mjs +4 -4
- package/esm2022/lib/_components/designSystemExtension/material-utility/material-utility.component.mjs +5 -5
- package/esm2022/lib/_components/designSystemExtension/material-vertical-tabs/material-vertical-tabs.component.mjs +5 -5
- package/esm2022/lib/_components/designSystemExtension/operator/operator.component.mjs +16 -9
- package/esm2022/lib/_components/designSystemExtension/pulse/pulse.component.mjs +9 -9
- package/esm2022/lib/_components/designSystemExtension/rich-text-editor/rich-text-editor.component.mjs +4 -4
- package/esm2022/lib/_components/designSystemExtension/wss-quick-create/wss-quick-create.component.mjs +3 -3
- package/esm2022/lib/_components/field/auto-complete/auto-complete.component.mjs +14 -12
- package/esm2022/lib/_components/field/cancel-alert/cancel-alert.component.mjs +5 -7
- package/esm2022/lib/_components/field/check-box/check-box.component.mjs +111 -45
- package/esm2022/lib/_components/field/currency/currency.component.mjs +48 -18
- package/esm2022/lib/_components/field/date/date.component.mjs +21 -41
- package/esm2022/lib/_components/field/date-time/date-time.component.mjs +26 -45
- package/esm2022/lib/_components/field/decimal/decimal.component.mjs +41 -11
- package/esm2022/lib/_components/field/dropdown/dropdown.component.mjs +126 -31
- package/esm2022/lib/_components/field/email/email.component.mjs +15 -8
- package/esm2022/lib/_components/field/group/group.component.mjs +11 -8
- package/esm2022/lib/_components/field/integer/integer.component.mjs +15 -10
- package/esm2022/lib/_components/field/list-view-action-buttons/list-view-action-buttons.component.mjs +3 -3
- package/esm2022/lib/_components/field/multiselect/multiselect.component.mjs +314 -0
- package/esm2022/lib/_components/field/multiselect/utils.mjs +187 -0
- package/esm2022/lib/_components/field/percentage/percentage.component.mjs +41 -14
- package/esm2022/lib/_components/field/phone/phone.component.mjs +12 -19
- package/esm2022/lib/_components/field/radio-buttons/radio-buttons.component.mjs +12 -19
- package/esm2022/lib/_components/field/rich-text/rich-text.component.mjs +10 -11
- package/esm2022/lib/_components/field/scalar-list/scalar-list.component.mjs +9 -9
- package/esm2022/lib/_components/field/semantic-link/semantic-link.component.mjs +5 -5
- package/esm2022/lib/_components/field/text/text.component.mjs +7 -5
- package/esm2022/lib/_components/field/text-area/text-area.component.mjs +15 -13
- package/esm2022/lib/_components/field/text-content/text-content.component.mjs +5 -5
- package/esm2022/lib/_components/field/text-input/text-input.component.mjs +15 -10
- package/esm2022/lib/_components/field/time/time.component.mjs +23 -12
- package/esm2022/lib/_components/field/url/url.component.mjs +17 -10
- package/esm2022/lib/_components/field/user-reference/user-reference.component.mjs +69 -37
- package/esm2022/lib/_components/infra/Containers/base-components/flow-container-base.component.mjs +18 -0
- package/esm2022/lib/_components/infra/Containers/base-components/helper.mjs +71 -0
- package/esm2022/lib/_components/infra/Containers/flow-container/flow-container.component.mjs +40 -41
- package/esm2022/lib/_components/infra/Containers/flow-container/helpers.mjs +1 -1
- package/esm2022/lib/_components/infra/Containers/hybrid-view-container/hybrid-view-container.component.mjs +3 -3
- package/esm2022/lib/_components/infra/Containers/modal-view-container/modal-view-container.component.mjs +41 -13
- package/esm2022/lib/_components/infra/Containers/preview-view-container/preview-view-container.component.mjs +4 -4
- package/esm2022/lib/_components/infra/Containers/view-container/helper.mjs +22 -0
- package/esm2022/lib/_components/infra/Containers/view-container/view-container.component.mjs +10 -18
- package/esm2022/lib/_components/infra/action-buttons/action-buttons.component.mjs +3 -3
- package/esm2022/lib/_components/infra/assignment/assignment.component.mjs +35 -40
- package/esm2022/lib/_components/infra/assignment-card/assignment-card.component.mjs +4 -4
- package/esm2022/lib/_components/infra/dashboard-filter/dashboard-filter.component.mjs +5 -6
- package/esm2022/lib/_components/infra/defer-load/defer-load.component.mjs +13 -16
- package/esm2022/lib/_components/infra/error-boundary/error-boundary.component.mjs +3 -3
- package/esm2022/lib/_components/infra/multi-step/multi-step.component.mjs +6 -6
- package/esm2022/lib/_components/infra/navbar/navbar.component.mjs +12 -8
- package/esm2022/lib/_components/infra/reference/reference.component.mjs +5 -5
- package/esm2022/lib/_components/infra/region/region.component.mjs +4 -4
- package/esm2022/lib/_components/infra/root-container/root-container.component.mjs +5 -5
- package/esm2022/lib/_components/infra/stages/stages.component.mjs +6 -6
- package/esm2022/lib/_components/infra/view/view.component.mjs +24 -9
- package/esm2022/lib/_components/template/app-shell/app-shell.component.mjs +21 -5
- package/esm2022/lib/_components/template/banner-page/banner-page.component.mjs +5 -5
- package/esm2022/lib/_components/template/base/details-template-base.mjs +56 -0
- package/esm2022/lib/_components/template/base/form-template-base.mjs +13 -0
- package/esm2022/lib/_components/template/case-summary/case-summary.component.mjs +38 -9
- package/esm2022/lib/_components/template/case-view/case-view.component.mjs +12 -23
- package/esm2022/lib/_components/template/confirmation/confirmation.component.mjs +6 -6
- package/esm2022/lib/_components/template/data-reference/data-reference.component.mjs +15 -12
- package/esm2022/lib/_components/template/default-form/default-form.component.mjs +9 -21
- package/esm2022/lib/_components/template/details/details.component.mjs +12 -39
- package/esm2022/lib/_components/template/details-narrow-wide/details-narrow-wide.component.mjs +11 -38
- package/esm2022/lib/_components/template/details-one-column/details-one-column.component.mjs +12 -41
- package/esm2022/lib/_components/template/details-sub-tabs/details-sub-tabs.component.mjs +13 -40
- package/esm2022/lib/_components/template/details-three-column/details-three-column.component.mjs +12 -41
- package/esm2022/lib/_components/template/details-two-column/details-two-column.component.mjs +13 -42
- package/esm2022/lib/_components/template/details-wide-narrow/details-wide-narrow.component.mjs +12 -41
- package/esm2022/lib/_components/template/dynamic-tabs/dynamic-tabs.component.mjs +9 -9
- package/esm2022/lib/_components/template/field-group-list/field-group-list.component.mjs +4 -4
- package/esm2022/lib/_components/template/field-group-template/field-group-template.component.mjs +9 -21
- package/esm2022/lib/_components/template/field-value-list/field-value-list.component.mjs +10 -5
- package/esm2022/lib/_components/template/inline-dashboard/inline-dashboard.component.mjs +4 -4
- package/esm2022/lib/_components/template/inline-dashboard-page/inline-dashboard-page.component.mjs +6 -6
- package/esm2022/lib/_components/template/list-page/list-page.component.mjs +4 -4
- package/esm2022/lib/_components/template/list-view/DefaultViewMeta.mjs +1 -1
- package/esm2022/lib/_components/template/list-view/list-view.component.mjs +54 -35
- package/esm2022/lib/_components/template/list-view/listViewHelpers.mjs +2 -3
- package/esm2022/lib/_components/template/list-view/utils.mjs +1 -1
- package/esm2022/lib/_components/template/multi-reference-readonly/multi-reference-readonly.component.mjs +5 -5
- package/esm2022/lib/_components/template/narrow-wide-form/narrow-wide-form.component.mjs +4 -4
- package/esm2022/lib/_components/template/one-column/one-column.component.mjs +6 -5
- package/esm2022/lib/_components/template/one-column-page/one-column-page.component.mjs +4 -4
- package/esm2022/lib/_components/template/one-column-tab/one-column-tab.component.mjs +4 -4
- package/esm2022/lib/_components/template/page/page.component.mjs +5 -5
- package/esm2022/lib/_components/template/promoted-filters/promoted-filters.component.mjs +5 -5
- package/esm2022/lib/_components/template/repeating-structures/repeating-structures.component.mjs +5 -6
- package/esm2022/lib/_components/template/simple-table/simple-table.component.mjs +5 -7
- package/esm2022/lib/_components/template/simple-table-manual/helpers.mjs +3 -3
- package/esm2022/lib/_components/template/simple-table-manual/simple-table-manual.component.mjs +51 -32
- package/esm2022/lib/_components/template/simple-table-select/simple-table-select.component.mjs +8 -10
- package/esm2022/lib/_components/template/single-reference-readonly/single-reference-readonly.component.mjs +4 -4
- package/esm2022/lib/_components/template/sub-tabs/sub-tabs.component.mjs +5 -5
- package/esm2022/lib/_components/template/three-column/three-column.component.mjs +6 -5
- package/esm2022/lib/_components/template/three-column-page/three-column-page.component.mjs +4 -4
- package/esm2022/lib/_components/template/two-column/two-column.component.mjs +6 -5
- package/esm2022/lib/_components/template/two-column-page/two-column-page.component.mjs +5 -5
- package/esm2022/lib/_components/template/two-column-tab/two-column-tab.component.mjs +4 -4
- package/esm2022/lib/_components/template/utils.mjs +1 -1
- package/esm2022/lib/_components/template/wide-narrow-form/wide-narrow-form.component.mjs +6 -5
- package/esm2022/lib/_components/template/wide-narrow-page/wide-narrow-page.component.mjs +5 -5
- package/esm2022/lib/_components/template/wss-nav-bar/wss-nav-bar.component.mjs +9 -7
- package/esm2022/lib/_components/widget/app-announcement/app-announcement.component.mjs +4 -4
- package/esm2022/lib/_components/widget/attachment/attachment.component.mjs +229 -424
- package/esm2022/lib/_components/widget/case-history/case-history.component.mjs +6 -7
- package/esm2022/lib/_components/widget/feed-container/feed-container.component.mjs +6 -10
- package/esm2022/lib/_components/widget/file-utility/file-utility.component.mjs +18 -22
- package/esm2022/lib/_components/widget/list-utility/list-utility.component.mjs +6 -6
- package/esm2022/lib/_components/widget/quick-create/quick-create.component.mjs +5 -5
- package/esm2022/lib/_components/widget/todo/todo.component.mjs +79 -64
- package/esm2022/lib/_components/widget/utility/utility.component.mjs +5 -5
- package/esm2022/lib/_directives/thousand-seperator.directive.mjs +5 -5
- package/esm2022/lib/_helpers/case-utils.mjs +1 -1
- package/esm2022/lib/_helpers/createstage-utils.mjs +15 -0
- package/esm2022/lib/_helpers/currency-utils.mjs +1 -1
- package/esm2022/lib/_helpers/event-util.mjs +1 -1
- package/esm2022/lib/_helpers/field-group-utils.mjs +3 -3
- package/esm2022/lib/_helpers/filter-utils.mjs +1 -2
- package/esm2022/lib/_helpers/formatters/boolean.mjs +1 -1
- package/esm2022/lib/_helpers/formatters/common.mjs +3 -5
- package/esm2022/lib/_helpers/formatters/currency.mjs +2 -2
- package/esm2022/lib/_helpers/formatters/date.mjs +4 -4
- package/esm2022/lib/_helpers/formatters/format-utils.mjs +3 -3
- package/esm2022/lib/_helpers/formatters/index.mjs +17 -3
- package/esm2022/lib/_helpers/instructions-utils.mjs +36 -0
- package/esm2022/lib/_helpers/tab-utils.mjs +1 -1
- package/esm2022/lib/_helpers/template-utils.mjs +4 -4
- package/esm2022/lib/_helpers/utils.mjs +6 -6
- package/esm2022/lib/_messages/error-messages.service.mjs +4 -4
- package/esm2022/lib/_messages/progress-spinner.service.mjs +3 -3
- package/esm2022/lib/_messages/update-worklist.service.mjs +3 -3
- package/esm2022/lib/_services/case.service.mjs +4 -4
- package/esm2022/lib/_services/datapage.service.mjs +5 -5
- package/esm2022/lib/_services/endpoints.mjs +1 -2
- package/esm2022/lib/_services/server-config.service.mjs +3 -3
- package/esm2022/public-api.mjs +6 -4
- package/fesm2022/pega-angular-sdk-components.mjs +2722 -2143
- package/fesm2022/pega-angular-sdk-components.mjs.map +1 -1
- package/lib/_bridge/angular-pconnect.d.ts +2 -0
- package/lib/_bridge/helpers/sdk-pega-component-map.d.ts +2 -0
- package/lib/_components/designSystemExtension/material-case-summary/material-case-summary.component.d.ts +2 -0
- package/lib/_components/designSystemExtension/material-details-fields/material-details-fields.component.d.ts +1 -1
- package/lib/_components/designSystemExtension/operator/operator.component.d.ts +2 -1
- package/lib/_components/designSystemExtension/pulse/pulse.component.d.ts +2 -2
- package/lib/_components/field/auto-complete/auto-complete.component.d.ts +3 -2
- package/lib/_components/field/check-box/check-box.component.d.ts +18 -0
- package/lib/_components/field/currency/currency.component.d.ts +10 -5
- package/lib/_components/field/date/date.component.d.ts +17 -6
- package/lib/_components/field/date-time/date-time.component.d.ts +10 -3
- package/lib/_components/field/decimal/decimal.component.d.ts +9 -1
- package/lib/_components/field/dropdown/dropdown.component.d.ts +13 -2
- package/lib/_components/field/email/email.component.d.ts +2 -0
- package/lib/_components/field/integer/integer.component.d.ts +3 -1
- package/lib/_components/field/list-view-action-buttons/list-view-action-buttons.component.d.ts +1 -1
- package/lib/_components/field/multiselect/multiselect.component.d.ts +65 -0
- package/lib/_components/field/multiselect/utils.d.ts +8 -0
- package/lib/_components/field/percentage/percentage.component.d.ts +11 -1
- package/lib/_components/field/phone/phone.component.d.ts +3 -1
- package/lib/_components/field/radio-buttons/radio-buttons.component.d.ts +2 -1
- package/lib/_components/field/rich-text/rich-text.component.d.ts +2 -0
- package/lib/_components/field/text/text.component.d.ts +3 -1
- package/lib/_components/field/text-area/text-area.component.d.ts +3 -1
- package/lib/_components/field/text-input/text-input.component.d.ts +3 -1
- package/lib/_components/field/time/time.component.d.ts +5 -1
- package/lib/_components/field/url/url.component.d.ts +4 -1
- package/lib/_components/field/user-reference/user-reference.component.d.ts +16 -4
- package/lib/_components/infra/Containers/base-components/flow-container-base.component.d.ts +8 -0
- package/lib/_components/infra/Containers/base-components/helper.d.ts +1 -0
- package/lib/_components/infra/Containers/flow-container/flow-container.component.d.ts +6 -7
- package/lib/_components/infra/Containers/modal-view-container/modal-view-container.component.d.ts +3 -2
- package/lib/_components/infra/Containers/view-container/helper.d.ts +2 -0
- package/lib/_components/infra/action-buttons/action-buttons.component.d.ts +1 -1
- package/lib/_components/infra/assignment/assignment.component.d.ts +2 -2
- package/lib/_components/infra/defer-load/defer-load.component.d.ts +2 -2
- package/lib/_components/infra/error-boundary/error-boundary.component.d.ts +1 -1
- package/lib/_components/infra/navbar/navbar.component.d.ts +4 -2
- package/lib/_components/infra/view/view.component.d.ts +1 -0
- package/lib/_components/template/base/details-template-base.d.ts +22 -0
- package/lib/_components/template/base/form-template-base.d.ts +8 -0
- package/lib/_components/template/case-summary/case-summary.component.d.ts +2 -0
- package/lib/_components/template/case-view/case-view.component.d.ts +1 -2
- package/lib/_components/template/default-form/default-form.component.d.ts +2 -5
- package/lib/_components/template/details/details.component.d.ts +3 -11
- package/lib/_components/template/details-narrow-wide/details-narrow-wide.component.d.ts +3 -11
- package/lib/_components/template/details-one-column/details-one-column.component.d.ts +3 -13
- package/lib/_components/template/details-sub-tabs/details-sub-tabs.component.d.ts +3 -13
- package/lib/_components/template/details-three-column/details-three-column.component.d.ts +3 -13
- package/lib/_components/template/details-two-column/details-two-column.component.d.ts +3 -13
- package/lib/_components/template/details-wide-narrow/details-wide-narrow.component.d.ts +3 -13
- package/lib/_components/template/dynamic-tabs/dynamic-tabs.component.d.ts +1 -0
- package/lib/_components/template/field-value-list/field-value-list.component.d.ts +2 -1
- package/lib/_components/template/list-view/list-view.component.d.ts +12 -3
- package/lib/_components/template/list-view/listViewHelpers.d.ts +1 -1
- package/lib/_components/template/one-column/one-column.component.d.ts +2 -1
- package/lib/_components/template/simple-table-manual/helpers.d.ts +2 -2
- package/lib/_components/template/simple-table-manual/simple-table-manual.component.d.ts +4 -0
- package/lib/_components/template/three-column/three-column.component.d.ts +2 -1
- package/lib/_components/template/two-column/two-column.component.d.ts +2 -1
- package/lib/_components/template/wide-narrow-form/wide-narrow-form.component.d.ts +2 -1
- package/lib/_components/template/wide-narrow-page/wide-narrow-page.component.d.ts +1 -1
- package/lib/_components/template/wss-nav-bar/wss-nav-bar.component.d.ts +4 -2
- package/lib/_components/widget/attachment/attachment.component.d.ts +30 -54
- package/lib/_components/widget/feed-container/feed-container.component.d.ts +2 -2
- package/lib/_components/widget/file-utility/file-utility.component.d.ts +2 -2
- package/lib/_components/widget/todo/todo.component.d.ts +8 -10
- package/lib/_helpers/createstage-utils.d.ts +1 -0
- package/lib/_helpers/field-group-utils.d.ts +1 -1
- package/lib/_helpers/filter-utils.d.ts +1 -1
- package/lib/_helpers/formatters/common.d.ts +1 -1
- package/lib/_helpers/instructions-utils.d.ts +4 -0
- package/lib/_messages/error-messages.service.d.ts +1 -1
- package/lib/_services/endpoints.d.ts +0 -1
- package/lib/doc/KeyReleaseUpdates.md +35 -1
- package/package.json +3 -3
- package/public-api.d.ts +5 -3
- package/esm2022/lib/_messages/get-login-status.service.mjs +0 -26
- package/esm2022/lib/_messages/oauth-response.service.mjs +0 -30
- package/esm2022/lib/_messages/reset-pconnect.service.mjs +0 -31
- package/lib/_messages/get-login-status.service.d.ts +0 -10
- package/lib/_messages/oauth-response.service.d.ts +0 -14
- package/lib/_messages/reset-pconnect.service.d.ts +0 -15
|
@@ -68,9 +68,7 @@ export class CaseViewComponent {
|
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
hasCaseIDChanged() {
|
|
71
|
-
// @ts-ignore - parameter “contextName” for getDataObject method should be optional
|
|
72
71
|
if (this.currentCaseID !== this.pConn$.getDataObject().caseInfo.ID) {
|
|
73
|
-
// @ts-ignore - parameter “contextName” for getDataObject method should be optional
|
|
74
72
|
this.currentCaseID = this.pConn$.getDataObject().caseInfo.ID;
|
|
75
73
|
return true;
|
|
76
74
|
}
|
|
@@ -78,12 +76,10 @@ export class CaseViewComponent {
|
|
|
78
76
|
}
|
|
79
77
|
updateHeaderAndSummary() {
|
|
80
78
|
this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());
|
|
81
|
-
// @ts-ignore - parameter “contextName” for getDataObject method should be optional
|
|
82
79
|
const hasNewAttachments = this.pConn$.getDataObject().caseInfo?.hasNewAttachments;
|
|
83
80
|
if (hasNewAttachments !== this.bHasNewAttachments) {
|
|
84
81
|
this.bHasNewAttachments = hasNewAttachments;
|
|
85
82
|
if (this.bHasNewAttachments) {
|
|
86
|
-
// @ts-ignore - Argument of type 'boolean' is not assignable to parameter of type 'object'
|
|
87
83
|
PCore.getPubSubUtils().publish(PCore.getEvents().getCaseEvent().CASE_ATTACHMENTS_UPDATED_FROM_CASEVIEW, true);
|
|
88
84
|
}
|
|
89
85
|
}
|
|
@@ -99,7 +95,6 @@ export class CaseViewComponent {
|
|
|
99
95
|
timer.unsubscribe();
|
|
100
96
|
this.heading$ = PCore.getLocaleUtils().getLocaleValue(this.configProps$.header, '', this.localeKey);
|
|
101
97
|
this.id$ = this.configProps$.subheader;
|
|
102
|
-
// @ts-ignore - second parameter pageReference for getValue method should be optional
|
|
103
98
|
this.status$ = this.pConn$.getValue('.pyStatusWork');
|
|
104
99
|
});
|
|
105
100
|
}
|
|
@@ -112,24 +107,20 @@ export class CaseViewComponent {
|
|
|
112
107
|
this.localeKey = `${this.pConn$.getCaseInfo().getClassName()}!CASE!${this.pConn$.getCaseInfo().getName()}`.toUpperCase();
|
|
113
108
|
this.updateHeaderAndSummary();
|
|
114
109
|
this.arChildren$ = this.pConn$.getChildren();
|
|
115
|
-
// @ts-ignore - parameter “contextName” for getDataObject method should be optional
|
|
116
110
|
const caseInfo = this.pConn$.getDataObject().caseInfo;
|
|
117
111
|
this.currentCaseID = caseInfo.ID;
|
|
118
112
|
this.arAvailableActions$ = caseInfo?.availableActions ? caseInfo.availableActions : [];
|
|
119
113
|
this.editAction = this.arAvailableActions$.find(action => action.ID === 'pyUpdateCaseDetails');
|
|
120
114
|
this.arAvailabeProcesses$ = caseInfo?.availableProcesses ? caseInfo.availableProcesses : [];
|
|
121
115
|
this.svgCase$ = this.utils.getImageSrc(this.configProps$.icon, this.utils.getSDKStaticContentUrl());
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
this.mainTabs = kid;
|
|
128
|
-
this.mainTabData = this.mainTabs.getPConnect().getChildren();
|
|
129
|
-
}
|
|
116
|
+
for (const kid of this.arChildren$) {
|
|
117
|
+
const kidPConn = kid.getPConnect();
|
|
118
|
+
if (kidPConn.getRawMetadata().name == 'Tabs') {
|
|
119
|
+
this.mainTabs = kid;
|
|
120
|
+
this.mainTabData = this.mainTabs.getPConnect().getChildren();
|
|
130
121
|
}
|
|
131
|
-
this.generateTabsData();
|
|
132
122
|
}
|
|
123
|
+
this.generateTabsData();
|
|
133
124
|
}
|
|
134
125
|
generateTabsData() {
|
|
135
126
|
this.mainTabs
|
|
@@ -180,17 +171,15 @@ export class CaseViewComponent {
|
|
|
180
171
|
const openProcessAction = actionsAPI.openProcessAction.bind(actionsAPI);
|
|
181
172
|
openProcessAction(data.ID, { ...data });
|
|
182
173
|
}
|
|
183
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
184
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
174
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: CaseViewComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.AngularPConnectService }, { token: i2.Utils }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
175
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: CaseViewComponent, isStandalone: true, selector: "app-case-view", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, providers: [Utils], ngImport: i0, template: "<div class=\"psdk-case-view\" id=\"case-view\">\n <div class=\"psdk-case-view-info\">\n <mat-toolbar color=\"primary\" class=\"psdk-case-view-toolbar\">\n <mat-toolbar-row style=\"padding-left: 1rem\">\n <div class=\"psdk-case-icon-div\">\n <img class=\"psdk-case-svg-icon\" src=\"{{ svgCase$ }}\" />\n </div>\n <div class=\"psdk-case-view-heading\">\n <div>\n <h1 id=\"case-name\">{{ heading$ }}</h1>\n </div>\n <div id=\"current-caseID\" [hidden]=\"true\">{{ currentCaseID }}</div>\n <div class=\"psdk-case-view-heading-id\" id=\"caseId\">{{ id$ }}</div>\n </div>\n </mat-toolbar-row>\n </mat-toolbar>\n\n <div class=\"psdk-case-view-buttons\">\n <button *ngIf=\"editAction\" mat-raised-button color=\"secondary\" (click)=\"_editClick()\">{{ localizedVal('Edit', localeCategory) }}</button>\n <button mat-raised-button color=\"secondary\" [matMenuTriggerFor]=\"actionMenu\">{{ localizedVal('Actions...', localeCategory) }}</button>\n <mat-menu #actionMenu=\"matMenu\" overlapTrigger=\"false\">\n <ng-container *ngFor=\"let action of arAvailableActions$\">\n <button mat-menu-item (click)=\"_menuActionClick(action)\">\n {{ localizedVal(action.name, '', localeKey) }}\n </button>\n </ng-container>\n <ng-container *ngFor=\"let process of arAvailabeProcesses$\">\n <button mat-menu-item (click)=\"_menuProcessClick(process)\">\n {{ process.name }}\n </button>\n </ng-container>\n </mat-menu>\n </div>\n\n <div class=\"psdk-case-view-divider\"></div>\n\n <div class=\"psdk-case-view-summary\">\n <component-mapper name=\"CaseSummary\" [props]=\"{ pConn$: caseSummaryPConn$ }\"></component-mapper>\n </div>\n\n <component-mapper\n *ngIf=\"caseTabs$.length > 1\"\n name=\"VerticalTabs\"\n [props]=\"{ tabConfig$: caseTabs$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ tabClick: onTabClick }\"\n ></component-mapper>\n </div>\n <div class=\"psdk-case-view-main\">\n <div>\n <div *ngFor=\"let kid of arChildren$\">\n <div\n *ngIf=\"\n kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name.toLowerCase() == 'stages'\n \"\n >\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n </div>\n </div>\n </div>\n\n <div *ngFor=\"let kid of arChildren$\">\n <div\n *ngIf=\"kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name.toLowerCase() == 'todo'\"\n >\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n\n <div *ngFor=\"let kid of arChildren$\">\n <div *ngIf=\"kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name == 'Main'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n\n <div>\n <component-mapper name=\"DeferLoad\" [props]=\"{ pConn$, loadData$: tabData$, name: tabData$?.config?.name }\"></component-mapper>\n </div>\n </div>\n <div>\n <div *ngIf=\"arChildren$\" class=\"psdk-case-view-utilities\">\n <div *ngFor=\"let kid of arChildren$\">\n <div *ngIf=\"kid.getPConnect().getRawMetadata()?.type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata()?.name == 'Utilities'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: ["h1{font-size:1.1rem;line-height:1.3rem}::ng-deep .mat-mdc-menu-panel{overflow:unset;max-width:unset}.psdk-case-view-label{font-size:1rem;display:block;transform:translateY(.2em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(.2em) scale(.75);width:133.33333%;border-radius:.6125rem}.psdk-case-view{box-sizing:border-box;display:flex}.ng-case-view-toolbar{padding:.625rem}.psdk-case-icon-div{background-color:var(--app-primary-dark-color);border-radius:1rem;padding:.5rem .3rem .3rem}.psdk-case-svg-icon{width:2rem;padding:0rem .3125rem;filter:var(--app-white-color-filter)}.psdk-case-view-info-box{display:flex;flex-direction:row;padding:0rem .3125rem 0rem 0rem}.psdk-case-view-info{flex:0 0 auto;width:25rem;float:left;padding:0rem .3125rem 0rem 0rem;margin-left:.5rem;margin-top:.5rem;height:100%;background-color:var(--app-form-color)}.psdk-case-view-main{flex-grow:2;float:left;padding:0rem .3125rem;height:100%}.psdk-case-view-summary{padding-left:.75rem}.psdk-case-view-heading{display:block;text-align:left;padding-left:.5rem;padding-bottom:0;padding-top:5px}.psdk-case-view-heading-id{font-size:.9rem;font-weight:400}.psdk-case-view-buttons{display:flex;justify-content:flex-start;padding:.3125rem}.psdk-case-view-utilities{width:21.875rem;float:left;padding:0rem .3125rem;height:100%}.psdk-case-view-divider{border-bottom:.0625rem solid var(--app-neutral-light-color)}.psdk-status{padding:.3125rem;background-color:var(--app-primary-color);color:var(--app-form-color);width:fit-content;margin:.625rem}button{margin:0rem .3125rem}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i3.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatToolbarModule) }, { kind: "component", type: i0.forwardRef(() => i4.MatToolbar), selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i0.forwardRef(() => i4.MatToolbarRow), selector: "mat-toolbar-row", exportAs: ["matToolbarRow"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatButtonModule) }, { kind: "component", type: i0.forwardRef(() => i5.MatButton), selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatMenuModule) }, { kind: "component", type: i0.forwardRef(() => i6.MatMenu), selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i0.forwardRef(() => i6.MatMenuItem), selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i0.forwardRef(() => i6.MatMenuTrigger), selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
|
|
185
176
|
}
|
|
186
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
177
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: CaseViewComponent, decorators: [{
|
|
187
178
|
type: Component,
|
|
188
|
-
args: [{ selector: 'app-case-view', providers: [Utils], standalone: true, imports: [CommonModule, MatToolbarModule, MatButtonModule, MatMenuModule, forwardRef(() => ComponentMapperComponent)], template: "<div class=\"psdk-case-view\" id=\"case-view\">\n <div
|
|
189
|
-
}], ctorParameters:
|
|
179
|
+
args: [{ selector: 'app-case-view', providers: [Utils], standalone: true, imports: [CommonModule, MatToolbarModule, MatButtonModule, MatMenuModule, forwardRef(() => ComponentMapperComponent)], template: "<div class=\"psdk-case-view\" id=\"case-view\">\n <div class=\"psdk-case-view-info\">\n <mat-toolbar color=\"primary\" class=\"psdk-case-view-toolbar\">\n <mat-toolbar-row style=\"padding-left: 1rem\">\n <div class=\"psdk-case-icon-div\">\n <img class=\"psdk-case-svg-icon\" src=\"{{ svgCase$ }}\" />\n </div>\n <div class=\"psdk-case-view-heading\">\n <div>\n <h1 id=\"case-name\">{{ heading$ }}</h1>\n </div>\n <div id=\"current-caseID\" [hidden]=\"true\">{{ currentCaseID }}</div>\n <div class=\"psdk-case-view-heading-id\" id=\"caseId\">{{ id$ }}</div>\n </div>\n </mat-toolbar-row>\n </mat-toolbar>\n\n <div class=\"psdk-case-view-buttons\">\n <button *ngIf=\"editAction\" mat-raised-button color=\"secondary\" (click)=\"_editClick()\">{{ localizedVal('Edit', localeCategory) }}</button>\n <button mat-raised-button color=\"secondary\" [matMenuTriggerFor]=\"actionMenu\">{{ localizedVal('Actions...', localeCategory) }}</button>\n <mat-menu #actionMenu=\"matMenu\" overlapTrigger=\"false\">\n <ng-container *ngFor=\"let action of arAvailableActions$\">\n <button mat-menu-item (click)=\"_menuActionClick(action)\">\n {{ localizedVal(action.name, '', localeKey) }}\n </button>\n </ng-container>\n <ng-container *ngFor=\"let process of arAvailabeProcesses$\">\n <button mat-menu-item (click)=\"_menuProcessClick(process)\">\n {{ process.name }}\n </button>\n </ng-container>\n </mat-menu>\n </div>\n\n <div class=\"psdk-case-view-divider\"></div>\n\n <div class=\"psdk-case-view-summary\">\n <component-mapper name=\"CaseSummary\" [props]=\"{ pConn$: caseSummaryPConn$ }\"></component-mapper>\n </div>\n\n <component-mapper\n *ngIf=\"caseTabs$.length > 1\"\n name=\"VerticalTabs\"\n [props]=\"{ tabConfig$: caseTabs$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ tabClick: onTabClick }\"\n ></component-mapper>\n </div>\n <div class=\"psdk-case-view-main\">\n <div>\n <div *ngFor=\"let kid of arChildren$\">\n <div\n *ngIf=\"\n kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name.toLowerCase() == 'stages'\n \"\n >\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n </div>\n </div>\n </div>\n\n <div *ngFor=\"let kid of arChildren$\">\n <div\n *ngIf=\"kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name.toLowerCase() == 'todo'\"\n >\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n\n <div *ngFor=\"let kid of arChildren$\">\n <div *ngIf=\"kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name == 'Main'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n\n <div>\n <component-mapper name=\"DeferLoad\" [props]=\"{ pConn$, loadData$: tabData$, name: tabData$?.config?.name }\"></component-mapper>\n </div>\n </div>\n <div>\n <div *ngIf=\"arChildren$\" class=\"psdk-case-view-utilities\">\n <div *ngFor=\"let kid of arChildren$\">\n <div *ngIf=\"kid.getPConnect().getRawMetadata()?.type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata()?.name == 'Utilities'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: ["h1{font-size:1.1rem;line-height:1.3rem}::ng-deep .mat-mdc-menu-panel{overflow:unset;max-width:unset}.psdk-case-view-label{font-size:1rem;display:block;transform:translateY(.2em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(.2em) scale(.75);width:133.33333%;border-radius:.6125rem}.psdk-case-view{box-sizing:border-box;display:flex}.ng-case-view-toolbar{padding:.625rem}.psdk-case-icon-div{background-color:var(--app-primary-dark-color);border-radius:1rem;padding:.5rem .3rem .3rem}.psdk-case-svg-icon{width:2rem;padding:0rem .3125rem;filter:var(--app-white-color-filter)}.psdk-case-view-info-box{display:flex;flex-direction:row;padding:0rem .3125rem 0rem 0rem}.psdk-case-view-info{flex:0 0 auto;width:25rem;float:left;padding:0rem .3125rem 0rem 0rem;margin-left:.5rem;margin-top:.5rem;height:100%;background-color:var(--app-form-color)}.psdk-case-view-main{flex-grow:2;float:left;padding:0rem .3125rem;height:100%}.psdk-case-view-summary{padding-left:.75rem}.psdk-case-view-heading{display:block;text-align:left;padding-left:.5rem;padding-bottom:0;padding-top:5px}.psdk-case-view-heading-id{font-size:.9rem;font-weight:400}.psdk-case-view-buttons{display:flex;justify-content:flex-start;padding:.3125rem}.psdk-case-view-utilities{width:21.875rem;float:left;padding:0rem .3125rem;height:100%}.psdk-case-view-divider{border-bottom:.0625rem solid var(--app-neutral-light-color)}.psdk-status{padding:.3125rem;background-color:var(--app-primary-color);color:var(--app-form-color);width:fit-content;margin:.625rem}button{margin:0rem .3125rem}\n"] }]
|
|
180
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.AngularPConnectService }, { type: i2.Utils }], propDecorators: { pConn$: [{
|
|
190
181
|
type: Input
|
|
191
182
|
}], formGroup$: [{
|
|
192
183
|
type: Input
|
|
193
|
-
}], displayOnlyFA$: [{
|
|
194
|
-
type: Input
|
|
195
184
|
}] } });
|
|
196
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9jYXNlLXZpZXcvY2FzZS12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9jYXNlLXZpZXcvY2FzZS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFxQixVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVoQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOERBQThELENBQUM7Ozs7Ozs7O0FBaUJ4RyxNQUFNLE9BQU8saUJBQWlCO0lBZ0M1QixZQUNVLEtBQXdCLEVBQ3hCLGVBQXVDLEVBQ3ZDLEtBQVk7UUFGWixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixvQkFBZSxHQUFmLGVBQWUsQ0FBd0I7UUFDdkMsVUFBSyxHQUFMLEtBQUssQ0FBTztRQTlCdEIsNEJBQTRCO1FBQzVCLHdCQUFtQixHQUF3QixFQUFFLENBQUM7UUFLOUMsYUFB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R0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQy9DLE1BQU0sZUFBZSxHQUFHLFVBQVUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXBFLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQsaUJBQWlCLENBQUMsSUFBSTtRQUNwQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQy9DLE1BQU0saUJBQWlCLEdBQUcsVUFBVSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV4RSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7K0dBdE5VLGlCQUFpQjttR0FBakIsaUJBQWlCLHNKQUpqQixDQUFDLEtBQUssQ0FBQywwQkN0QnBCLDgxSEF5RkEsK21ERGpFWSxZQUFZLG9YQUFFLGdCQUFnQiw4V0FBRSxlQUFlLHlWQUFFLGFBQWEsNGlCQUFtQix3QkFBd0I7OzRGQUV4RyxpQkFBaUI7a0JBUjdCLFNBQVM7K0JBQ0UsZUFBZSxhQUdkLENBQUMsS0FBSyxDQUFDLGNBQ04sSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDLENBQUM7aUtBRzVHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIENoYW5nZURldGVjdG9yUmVmLCBmb3J3YXJkUmVmLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRUb29sYmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbGJhcic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgaW50ZXJ2YWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFuZ3VsYXJQQ29ubmVjdERhdGEsIEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2FuZ3VsYXItcGNvbm5lY3QnO1xuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9faGVscGVycy91dGlscyc7XG5pbXBvcnQgeyBDb21wb25lbnRNYXBwZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2NvbXBvbmVudC1tYXBwZXIvY29tcG9uZW50LW1hcHBlci5jb21wb25lbnQnO1xuXG5pbnRlcmZhY2UgQ2FzZVZpZXdQcm9wcyB7XG4gIC8vIElmIGFueSwgZW50ZXIgYWRkaXRpb25hbCBwcm9wcyB0aGF0IG9ubHkgZXhpc3Qgb24gdGhpcyBjb21wb25lbnRcbiAgaWNvbjogc3RyaW5nO1xuICBzdWJoZWFkZXI6IHN0cmluZztcbiAgaGVhZGVyOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1jYXNlLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FzZS12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FzZS12aWV3LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1V0aWxzXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0VG9vbGJhck1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBNYXRNZW51TW9kdWxlLCBmb3J3YXJkUmVmKCgpID0+IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCldXG59KVxuZXhwb3J0IGNsYXNzIENhc2VWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwQ29ubiQ6IHR5cGVvZiBQQ29ubmVjdDtcbiAgQElucHV0KCkgZm9ybUdyb3VwJDogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBkaXNwbGF5T25seUZBJDogYm9vbGVhbjtcblxuICAvLyBVc2VkIHdpdGggQW5ndWxhclBDb25uZWN0XG4gIGFuZ3VsYXJQQ29ubmVjdERhdGE6IEFuZ3VsYXJQQ29ubmVjdERhdGEgPSB7fTtcbiAgY29uZmlnUHJvcHMkOiBDYXNlVmlld1Byb3BzO1xuXG4gIGFyQ2hpbGRyZW4kOiBhbnlbXTtcblxuICBoZWFkaW5nJCA9ICcnO1xuICBpZCQgPSAnJztcbiAgc3RhdHVzJCA9ICcnO1xuICBjYXNlVGFicyQ6IGFueVtdID0gW107XG4gIHN2Z0Nhc2UkOiBzdHJpbmc7XG4gIHRhYkRhdGEkOiBhbnk7XG5cbiAgbWFpblRhYnM6IGFueTtcbiAgbWFpblRhYkRhdGE6IGFueTtcblxuICBhckF2YWlsYWJsZUFjdGlvbnMkOiBhbnlbXSA9IFtdO1xuICBhckF2YWlsYWJlUHJvY2Vzc2VzJDogYW55W10gPSBbXTtcblxuICBjYXNlU3VtbWFyeVBDb25uJDogYW55O1xuICBjdXJyZW50Q2FzZUlEID0gJyc7XG4gIGVkaXRBY3Rpb246IGJvb2xlYW47XG4gIGJIYXNOZXdBdHRhY2htZW50cyA9IGZhbHNlO1xuICBsb2NhbGl6ZWRWYWw6IGFueTtcbiAgbG9jYWxlQ2F0ZWdvcnkgPSAnQ2FzZVZpZXcnO1xuICBsb2NhbGVLZXk6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGFuZ3VsYXJQQ29ubmVjdDogQW5ndWxhclBDb25uZWN0U2VydmljZSxcbiAgICBwcml2YXRlIHV0aWxzOiBVdGlsc1xuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gRmlyc3QgdGhpbmcgaW4gaW5pdGlhbGl6YXRpb24gaXMgcmVnaXN0ZXJpbmcgYW5kIHN1YnNjcmliaW5nIHRvIHRoZSBBbmd1bGFyUENvbm5lY3Qgc2VydmljZVxuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YSA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnJlZ2lzdGVyQW5kU3Vic2NyaWJlQ29tcG9uZW50KHRoaXMsIHRoaXMub25TdGF0ZUNoYW5nZSk7XG5cbiAgICAvLyB0aGlzLnVwZGF0ZVNlbGYoKTtcbiAgICB0aGlzLmNoZWNrQW5kVXBkYXRlKCk7XG4gICAgdGhpcy5sb2NhbGl6ZWRWYWwgPSBQQ29yZS5nZXRMb2NhbGVVdGlscygpLmdldExvY2FsZVZhbHVlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKSB7XG4gICAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbigpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENhbGxiYWNrIHBhc3NlZCB3aGVuIHN1YnNjcmliaW5nIHRvIHN0b3JlIGNoYW5nZVxuICBvblN0YXRlQ2hhbmdlKCkge1xuICAgIHRoaXMuY2hlY2tBbmRVcGRhdGUoKTtcbiAgfVxuXG4gIGNoZWNrQW5kVXBkYXRlKCkge1xuICAgIC8vIFNob3VsZCBhbHdheXMgY2hlY2sgdGhlIGJyaWRnZSB0byBzZWUgaWYgdGhlIGNvbXBvbmVudCBzaG91bGQgdXBkYXRlIGl0c2VsZiAocmUtcmVuZGVyKVxuICAgIGNvbnN0IGJVcGRhdGVTZWxmID0gdGhpcy5hbmd1bGFyUENvbm5lY3Quc2hvdWxkQ29tcG9uZW50VXBkYXRlKHRoaXMpO1xuXG4gICAgLy8gT05MWSBjYWxsIHVwZGF0ZVNlbGYgd2hlbiB0aGUgY29tcG9uZW50IHNob3VsZCB1cGRhdGVcbiAgICAvLyAgICBBTkQgcmVtb3ZpbmcgdGhlIFwiZ2F0ZVwiIHRoYXQgd2FzIHB1dCB0aGVyZSBzaW5jZSBzaG91bGRDb21wb25lbnRVcGRhdGVcbiAgICAvLyAgICAgIHNob3VsZCBiZSB0aGUgcmVhbCBcImdhdGVcIlxuICAgIGlmIChiVXBkYXRlU2VsZikge1xuICAgICAgLy8gZ2VuZXJhbGx5LCBkb24ndCB3YW50IHRvIHJlZnJlc2ggZXZlcnl0aGluZyB3aGVuIGRhdGEgY2hhbmdlcyBpbiBjYXNlVmlldywgaXQgaXMgdXN1YWxseSB0aGVcbiAgICAgIC8vIGNhc2Ugc3VtbWFyeS4gIEJ1dCBjaGVjayBpZiB0aGUgY2FzZSBJRCBjaGFuZ2VzLCB0aGlzIG1lYW5zIGEgZGlmZmVyZW50IGNhc2UgYW5kIHdlIHNob3VsZFxuICAgICAgLy8gdXBkYXRlIGFsbC5cbiAgICAgIGlmICh0aGlzLmhhc0Nhc2VJRENoYW5nZWQoKSkge1xuICAgICAgICB0aGlzLmZ1bGxVcGRhdGUoKTtcblxuICAgICAgICAvLyB1cGRhdGUgb2tUb0luaXRGbG93Q29udGFpbmVyLCBiZWNhdXNlIGNhc2UgdmlldyB3YXMgZHJhd24sIGZsb3cgY29udGFpbmVyIHdpbGwgbmVlZCB0byBiZSBpbml0XG4gICAgICAgIC8vIHRvIG1hdGNoIE5lYnVsYS9Db25zdGVsbGF0aW9uXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ29rVG9Jbml0Rmxvd0NvbnRhaW5lcicsICd0cnVlJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnVwZGF0ZUhlYWRlckFuZFN1bW1hcnkoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoYXNDYXNlSURDaGFuZ2VkKCk6IGJvb2xlYW4ge1xuICAgIC8vIEB0cy1pZ25vcmUgLSBwYXJhbWV0ZXIg4oCcY29udGV4dE5hbWXigJ0gZm9yIGdldERhdGFPYmplY3QgbWV0aG9kIHNob3VsZCBiZSBvcHRpb25hbFxuICAgIGlmICh0aGlzLmN1cnJlbnRDYXNlSUQgIT09IHRoaXMucENvbm4kLmdldERhdGFPYmplY3QoKS5jYXNlSW5mby5JRCkge1xuICAgICAgLy8gQHRzLWlnbm9yZSAtIHBhcmFtZXRlciDigJxjb250ZXh0TmFtZeKAnSBmb3IgZ2V0RGF0YU9iamVjdCBtZXRob2Qgc2hvdWxkIGJlIG9wdGlvbmFsXG4gICAgICB0aGlzLmN1cnJlbnRDYXNlSUQgPSB0aGlzLnBDb25uJC5nZXREYXRhT2JqZWN0KCkuY2FzZUluZm8uSUQ7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdXBkYXRlSGVhZGVyQW5kU3VtbWFyeSgpIHtcbiAgICB0aGlzLmNvbmZpZ1Byb3BzJCA9IHRoaXMucENvbm4kLnJlc29sdmVDb25maWdQcm9wcyh0aGlzLnBDb25uJC5nZXRDb25maWdQcm9wcygpKSBhcyBDYXNlVmlld1Byb3BzO1xuICAgIC8vIEB0cy1pZ25vcmUgLSBwYXJhbWV0ZXIg4oCcY29udGV4dE5hbWXigJ0gZm9yIGdldERhdGFPYmplY3QgbWV0aG9kIHNob3VsZCBiZSBvcHRpb25hbFxuICAgIGNvbnN0IGhhc05ld0F0dGFjaG1lbnRzID0gdGhpcy5wQ29ubiQuZ2V0RGF0YU9iamVjdCgpLmNhc2VJbmZvPy5oYXNOZXdBdHRhY2htZW50cztcblxuICAgIGlmIChoYXNOZXdBdHRhY2htZW50cyAhPT0gdGhpcy5iSGFzTmV3QXR0YWNobWVudHMpIHtcbiAgICAgIHRoaXMuYkhhc05ld0F0dGFjaG1lbnRzID0gaGFzTmV3QXR0YWNobWVudHM7XG4gICAgICBpZiAodGhpcy5iSGFzTmV3QXR0YWNobWVudHMpIHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZSAtIEFyZ3VtZW50IG9mIHR5cGUgJ2Jvb2xlYW4nIGlzIG5vdCBhc3NpZ25hYmxlIHRvIHBhcmFtZXRlciBvZiB0eXBlICdvYmplY3QnXG4gICAgICAgIFBDb3JlLmdldFB1YlN1YlV0aWxzKCkucHVibGlzaCgoUENvcmUuZ2V0RXZlbnRzKCkuZ2V0Q2FzZUV2ZW50KCkgYXMgYW55KS5DQVNFX0FUVEFDSE1FTlRTX1VQREFURURfRlJPTV9DQVNFVklFVywgdHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qga2lkcyA9IHRoaXMucENvbm4kLmdldENoaWxkcmVuKCkgYXMgYW55W107XG4gICAgZm9yIChjb25zdCBraWQgb2Yga2lkcykge1xuICAgICAgY29uc3QgbWV0YSA9IGtpZC5nZXRQQ29ubmVjdCgpLmdldFJhd01ldGFkYXRhKCk7XG4gICAgICBpZiAobWV0YS50eXBlLnRvTG93ZXJDYXNlKCkgPT0gJ3JlZ2lvbicgJiYgbWV0YS5uYW1lLnRvTG93ZXJDYXNlKCkgPT0gJ3N1bW1hcnknKSB7XG4gICAgICAgIHRoaXMuY2FzZVN1bW1hcnlQQ29ubiQgPSBraWQuZ2V0UENvbm5lY3QoKS5nZXRDaGlsZHJlbigpWzBdLmdldFBDb25uZWN0KCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gaGF2ZSB0byBwdXQgaW4gYSB0aW1lb3V0LCBvdGhlcndpc2UgZ2V0IGFuIGFuZ3VsYXIgY2hhbmdlIGV2ZW50IGVycm9yXG4gICAgY29uc3QgdGltZXIgPSBpbnRlcnZhbCgxMDApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aW1lci51bnN1YnNjcmliZSgpO1xuXG4gICAgICB0aGlzLmhlYWRpbmckID0gUENvcmUuZ2V0TG9jYWxlVXRpbHMoKS5nZXRMb2NhbGVWYWx1ZSh0aGlzLmNvbmZpZ1Byb3BzJC5oZWFkZXIsICcnLCB0aGlzLmxvY2FsZUtleSk7XG4gICAgICB0aGlzLmlkJCA9IHRoaXMuY29uZmlnUHJvcHMkLnN1YmhlYWRlcjtcbiAgICAgIC8vIEB0cy1pZ25vcmUgLSBzZWNvbmQgcGFyYW1ldGVyIHBhZ2VSZWZlcmVuY2UgZm9yIGdldFZhbHVlIG1ldGhvZCBzaG91bGQgYmUgb3B0aW9uYWxcbiAgICAgIHRoaXMuc3RhdHVzJCA9IHRoaXMucENvbm4kLmdldFZhbHVlKCcucHlTdGF0dXNXb3JrJyk7XG4gICAgfSk7XG4gIH1cblxuICBmdWxsVXBkYXRlKCkge1xuICAgIHRoaXMuY2FzZVRhYnMkID0gW107XG4gICAgdGhpcy5jb25maWdQcm9wcyQgPSB0aGlzLnBDb25uJC5yZXNvbHZlQ29uZmlnUHJvcHModGhpcy5wQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKSkgYXMgQ2FzZVZpZXdQcm9wcztcbiAgICAvLyBsZXQgY2FzZVR5cGVJRCA9IHRoaXMuY29uZmlnUHJvcHMkLnJ1bGVDbGFzcztcbiAgICAvLyBsZXQgY2FzZVR5cGVOYW1lID0gdGhpcy5jb25maWdQcm9wcyQuaGVhZGVyO1xuICAgIC8vIHRoaXMubG9jYWxlS2V5ID0gYCR7Y2FzZVR5cGVJRH0hQ0FTRSEke2Nhc2VUeXBlTmFtZX1gLnRvVXBwZXJDYXNlKCk7XG4gICAgdGhpcy5sb2NhbGVLZXkgPSBgJHt0aGlzLnBDb25uJC5nZXRDYXNlSW5mbygpLmdldENsYXNzTmFtZSgpfSFDQVNFISR7dGhpcy5wQ29ubiQuZ2V0Q2FzZUluZm8oKS5nZXROYW1lKCl9YC50b1VwcGVyQ2FzZSgpO1xuICAgIHRoaXMudXBkYXRlSGVhZGVyQW5kU3VtbWFyeSgpO1xuXG4gICAgdGhpcy5hckNoaWxkcmVuJCA9IHRoaXMucENvbm4kLmdldENoaWxkcmVuKCkgYXMgYW55W107XG5cbiAgICAvLyBAdHMtaWdub3JlIC0gcGFyYW1ldGVyIOKAnGNvbnRleHROYW1l4oCdIGZvciBnZXREYXRhT2JqZWN0IG1ldGhvZCBzaG91bGQgYmUgb3B0aW9uYWxcbiAgICBjb25zdCBjYXNlSW5mbyA9IHRoaXMucENvbm4kLmdldERhdGFPYmplY3QoKS5jYXNlSW5mbztcbiAgICB0aGlzLmN1cnJlbnRDYXNlSUQgPSBjYXNlSW5mby5JRDtcbiAgICB0aGlzLmFyQXZhaWxhYmxlQWN0aW9ucyQgPSBjYXNlSW5mbz8uYXZhaWxhYmxlQWN0aW9ucyA/IGNhc2VJbmZvLmF2YWlsYWJsZUFjdGlvbnMgOiBbXTtcbiAgICB0aGlzLmVkaXRBY3Rpb24gPSB0aGlzLmFyQXZhaWxhYmxlQWN0aW9ucyQuZmluZChhY3Rpb24gPT4gYWN0aW9uLklEID09PSAncHlVcGRhdGVDYXNlRGV0YWlscycpO1xuICAgIHRoaXMuYXJBdmFpbGFiZVByb2Nlc3NlcyQgPSBjYXNlSW5mbz8uYXZhaWxhYmxlUHJvY2Vzc2VzID8gY2FzZUluZm8uYXZhaWxhYmxlUHJvY2Vzc2VzIDogW107XG5cbiAgICB0aGlzLnN2Z0Nhc2UkID0gdGhpcy51dGlscy5nZXRJbWFnZVNyYyh0aGlzLmNvbmZpZ1Byb3BzJC5pY29uLCB0aGlzLnV0aWxzLmdldFNES1N0YXRpY0NvbnRlbnRVcmwoKSk7XG5cbiAgICAvLyB0aGlzLnV0aWxzLmNvbnNvbGVLaWREdW1wKHRoaXMucENvbm4kKTtcblxuICAgIGlmICghdGhpcy5kaXNwbGF5T25seUZBJCkge1xuICAgICAgZm9yIChjb25zdCBraWQgb2YgdGhpcy5hckNoaWxkcmVuJCkge1xuICAgICAgICBjb25zdCBraWRQQ29ubiA9IGtpZC5nZXRQQ29ubmVjdCgpO1xuICAgICAgICBpZiAoa2lkUENvbm4uZ2V0UmF3TWV0YWRhdGEoKS5uYW1lID09ICdUYWJzJykge1xuICAgICAgICAgIHRoaXMubWFpblRhYnMgPSBraWQ7XG4gICAgICAgICAgdGhpcy5tYWluVGFiRGF0YSA9IHRoaXMubWFpblRhYnMuZ2V0UENvbm5lY3QoKS5nZXRDaGlsZHJlbigpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZ2VuZXJhdGVUYWJzRGF0YSgpO1xuICAgIH1cbiAgfVxuXG4gIGdlbmVyYXRlVGFic0RhdGEoKSB7XG4gICAgdGhpcy5tYWluVGFic1xuICAgICAgLmdldFBDb25uZWN0KClcbiAgICAgIC5nZXRDaGlsZHJlbigpXG4gICAgICA/LmZvckVhY2goKGNoaWxkLCBpKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IGNoaWxkLmdldFBDb25uZWN0KCkucmVzb2x2ZUNvbmZpZ1Byb3BzKGNoaWxkLmdldFBDb25uZWN0KCkuZ2V0UmF3TWV0YWRhdGEoKSkuY29uZmlnO1xuICAgICAgICBsZXQgeyBsYWJlbCB9ID0gY29uZmlnO1xuICAgICAgICBjb25zdCB7IGluaGVyaXRlZFByb3BzLCB2aXNpYmlsaXR5IH0gPSBjb25maWc7XG4gICAgICAgIC8vIEZvciBzb21lIHRhYnMsIFwibGFiZWxcIiBwcm9wZXJ0eSBpcyBub3QgYXZhaWFsYWJsZSBpbiB0aGVUYWJDb21wQ29uZmlnLCBzbyB3aWxsIGdldCB0aGVtIGZyb20gaW5oZXJpdGVkUHJvcHNcbiAgICAgICAgaWYgKCFsYWJlbCkge1xuICAgICAgICAgIGluaGVyaXRlZFByb3BzLmZvckVhY2goKGluaGVyaXRlZFByb3A6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKGluaGVyaXRlZFByb3AucHJvcCA9PT0gJ2xhYmVsJykge1xuICAgICAgICAgICAgICBsYWJlbCA9IGluaGVyaXRlZFByb3AudmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gV2UnbGwgZGlzcGxheSB0aGUgdGFicyB3aGVuIGVpdGhlciB2aXNpYmlsaXR5IHByb3BlcnR5IGRvZXNuJ3QgZXhpc3Qgb3IgaXMgdHJ1ZShpZiBleGlzdHMpXG4gICAgICAgIGlmICh2aXNpYmlsaXR5ID09PSB1bmRlZmluZWQgfHwgdmlzaWJpbGl0eSA9PT0gdHJ1ZSkge1xuICAgICAgICAgIHRoaXMuY2FzZVRhYnMkLnB1c2goeyBuYW1lOiBsYWJlbCwgaWQ6IGkgfSk7XG4gICAgICAgICAgLy8gVG8gbWFrZSBmaXJzdCB2aXNpYmxlIHRhYiBkaXNwbGF5IGF0IHRoZSBiZWdpbm5pbmdcbiAgICAgICAgICBpZiAoIXRoaXMudGFiRGF0YSQpIHtcbiAgICAgICAgICAgIHRoaXMudGFiRGF0YSQgPSB7IHR5cGU6ICdEZWZlckxvYWQnLCBjb25maWc6IGNoaWxkLmdldFBDb25uZWN0KCkuZ2V0UmF3TWV0YWRhdGEoKS5jb25maWcgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlU2VsZigpIHtcbiAgICB0aGlzLmZ1bGxVcGRhdGUoKTtcbiAgfVxuXG4gIG9uVGFiQ2xpY2sodGFiOiBhbnkpIHtcbiAgICB0aGlzLnRhYkRhdGEkID0gdGhpcy5tYWluVGFiRGF0YVt0YWJdLmdldFBDb25uZWN0KCkuZ2V0UmF3TWV0YWRhdGEoKTtcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIF9lZGl0Q2xpY2soKSB7XG4gICAgY29uc3QgZWRpdEFjdGlvbiA9IHRoaXMuYXJBdmFpbGFibGVBY3Rpb25zJC5maW5kKGFjdGlvbiA9PiBhY3Rpb24uSUQgPT09ICdweVVwZGF0ZUNhc2VEZXRhaWxzJyk7XG4gICAgY29uc3QgYWN0aW9uc0FQSSA9IHRoaXMucENvbm4kLmdldEFjdGlvbnNBcGkoKTtcbiAgICBjb25zdCBvcGVuTG9jYWxBY3Rpb24gPSBhY3Rpb25zQVBJLm9wZW5Mb2NhbEFjdGlvbi5iaW5kKGFjdGlvbnNBUEkpO1xuXG4gICAgb3BlbkxvY2FsQWN0aW9uKGVkaXRBY3Rpb24uSUQsIHsgLi4uZWRpdEFjdGlvbiwgY29udGFpbmVyTmFtZTogJ21vZGFsJywgdHlwZTogJ2V4cHJlc3MnIH0pO1xuICB9XG5cbiAgX21lbnVBY3Rpb25DbGljayhkYXRhKSB7XG4gICAgY29uc3QgYWN0aW9uc0FQSSA9IHRoaXMucENvbm4kLmdldEFjdGlvbnNBcGkoKTtcbiAgICBjb25zdCBvcGVuTG9jYWxBY3Rpb24gPSBhY3Rpb25zQVBJLm9wZW5Mb2NhbEFjdGlvbi5iaW5kKGFjdGlvbnNBUEkpO1xuXG4gICAgb3BlbkxvY2FsQWN0aW9uKGRhdGEuSUQsIHsgLi4uZGF0YSwgY29udGFpbmVyTmFtZTogJ21vZGFsJywgdHlwZTogJ2V4cHJlc3MnIH0pO1xuICB9XG5cbiAgX21lbnVQcm9jZXNzQ2xpY2soZGF0YSkge1xuICAgIGNvbnN0IGFjdGlvbnNBUEkgPSB0aGlzLnBDb25uJC5nZXRBY3Rpb25zQXBpKCk7XG4gICAgY29uc3Qgb3BlblByb2Nlc3NBY3Rpb24gPSBhY3Rpb25zQVBJLm9wZW5Qcm9jZXNzQWN0aW9uLmJpbmQoYWN0aW9uc0FQSSk7XG5cbiAgICBvcGVuUHJvY2Vzc0FjdGlvbihkYXRhLklELCB7IC4uLmRhdGEgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwc2RrLWNhc2Utdmlld1wiIGlkPVwiY2FzZS12aWV3XCI+XG4gIDxkaXYgKm5nSWY9XCIhZGlzcGxheU9ubHlGQSRcIiBjbGFzcz1cInBzZGstY2FzZS12aWV3LWluZm9cIj5cbiAgICA8bWF0LXRvb2xiYXIgY29sb3I9XCJwcmltYXJ5XCIgY2xhc3M9XCJwc2RrLWNhc2Utdmlldy10b29sYmFyXCI+XG4gICAgICA8bWF0LXRvb2xiYXItcm93IHN0eWxlPVwicGFkZGluZy1sZWZ0OiAxcmVtXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwc2RrLWNhc2UtaWNvbi1kaXZcIj5cbiAgICAgICAgICA8aW1nIGNsYXNzPVwicHNkay1jYXNlLXN2Zy1pY29uXCIgc3JjPVwie3sgc3ZnQ2FzZSQgfX1cIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBzZGstY2FzZS12aWV3LWhlYWRpbmdcIj5cbiAgICAgICAgICA8ZGl2IGlkPVwiY3VycmVudC1jYXNlSURcIiBbaGlkZGVuXT1cInRydWVcIj57eyBjdXJyZW50Q2FzZUlEIH19PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBzZGstY2FzZS12aWV3LWhlYWRpbmctaWRcIiBpZD1cImNhc2VJZFwiPnt7IGlkJCB9fTwvZGl2PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8aDE+e3sgaGVhZGluZyQgfX08L2gxPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbWF0LXRvb2xiYXItcm93PlxuICAgIDwvbWF0LXRvb2xiYXI+XG5cbiAgICA8ZGl2IGNsYXNzPVwicHNkay1jYXNlLXZpZXctYnV0dG9uc1wiPlxuICAgICAgPGJ1dHRvbiAqbmdJZj1cImVkaXRBY3Rpb25cIiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInNlY29uZGFyeVwiIChjbGljayk9XCJfZWRpdENsaWNrKClcIj57eyBsb2NhbGl6ZWRWYWwoJ0VkaXQnLCBsb2NhbGVDYXRlZ29yeSkgfX08L2J1dHRvbj5cbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJzZWNvbmRhcnlcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwiYWN0aW9uTWVudVwiPnt7IGxvY2FsaXplZFZhbCgnQWN0aW9ucy4uLicsIGxvY2FsZUNhdGVnb3J5KSB9fTwvYnV0dG9uPlxuICAgICAgPG1hdC1tZW51ICNhY3Rpb25NZW51PVwibWF0TWVudVwiIG92ZXJsYXBUcmlnZ2VyPVwiZmFsc2VcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGFyQXZhaWxhYmxlQWN0aW9ucyRcIj5cbiAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cIl9tZW51QWN0aW9uQ2xpY2soYWN0aW9uKVwiPlxuICAgICAgICAgICAge3sgbG9jYWxpemVkVmFsKGFjdGlvbi5uYW1lLCAnJywgbG9jYWxlS2V5KSB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcHJvY2VzcyBvZiBhckF2YWlsYWJlUHJvY2Vzc2VzJFwiPlxuICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiX21lbnVQcm9jZXNzQ2xpY2socHJvY2VzcylcIj5cbiAgICAgICAgICAgIHt7IHByb2Nlc3MubmFtZSB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbWF0LW1lbnU+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwicHNkay1jYXNlLXZpZXctZGl2aWRlclwiPjwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInBzZGstY2FzZS12aWV3LXN1bW1hcnlcIj5cbiAgICAgIDxjb21wb25lbnQtbWFwcGVyIG5hbWU9XCJDYXNlU3VtbWFyeVwiIFtwcm9wc109XCJ7IHBDb25uJDogY2FzZVN1bW1hcnlQQ29ubiQgfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgICA8L2Rpdj5cblxuICAgIDxjb21wb25lbnQtbWFwcGVyXG4gICAgICAqbmdJZj1cImNhc2VUYWJzJC5sZW5ndGggPiAxXCJcbiAgICAgIG5hbWU9XCJWZXJ0aWNhbFRhYnNcIlxuICAgICAgW3Byb3BzXT1cInsgdGFiQ29uZmlnJDogY2FzZVRhYnMkIH1cIlxuICAgICAgW3BhcmVudF09XCJ0aGlzXCJcbiAgICAgIFtvdXRwdXRFdmVudHNdPVwieyB0YWJDbGljazogb25UYWJDbGljayB9XCJcbiAgICA+PC9jb21wb25lbnQtbWFwcGVyPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInBzZGstY2FzZS12aWV3LW1haW5cIj5cbiAgICA8ZGl2ICpuZ0lmPVwiIWRpc3BsYXlPbmx5RkEkXCI+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBraWQgb2YgYXJDaGlsZHJlbiRcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICBraWQuZ2V0UENvbm5lY3QoKS5nZXRSYXdNZXRhZGF0YSgpLnR5cGUudG9Mb3dlckNhc2UoKSA9PSAncmVnaW9uJyAmJiBraWQuZ2V0UENvbm5lY3QoKS5nZXRSYXdNZXRhZGF0YSgpLm5hbWUudG9Mb3dlckNhc2UoKSA9PSAnc3RhZ2VzJ1xuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8Y29tcG9uZW50LW1hcHBlciBuYW1lPVwiUmVnaW9uXCIgW3Byb3BzXT1cInsgcENvbm4kOiBraWQuZ2V0UENvbm5lY3QoKSB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdGb3I9XCJsZXQga2lkIG9mIGFyQ2hpbGRyZW4kXCI+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwia2lkLmdldFBDb25uZWN0KCkuZ2V0UmF3TWV0YWRhdGEoKS50eXBlLnRvTG93ZXJDYXNlKCkgPT0gJ3JlZ2lvbicgJiYga2lkLmdldFBDb25uZWN0KCkuZ2V0UmF3TWV0YWRhdGEoKS5uYW1lLnRvTG93ZXJDYXNlKCkgPT0gJ3RvZG8nXCJcbiAgICAgID5cbiAgICAgICAgPGNvbXBvbmVudC1tYXBwZXIgbmFtZT1cIlJlZ2lvblwiIFtwcm9wc109XCJ7IHBDb25uJDoga2lkLmdldFBDb25uZWN0KCksIGZvcm1Hcm91cCQgfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdGb3I9XCJsZXQga2lkIG9mIGFyQ2hpbGRyZW4kXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwia2lkLmdldFBDb25uZWN0KCkuZ2V0UmF3TWV0YWRhdGEoKS50eXBlLnRvTG93ZXJDYXNlKCkgPT0gJ3JlZ2lvbicgJiYga2lkLmdldFBDb25uZWN0KCkuZ2V0UmF3TWV0YWRhdGEoKS5uYW1lID09ICdNYWluJ1wiPlxuICAgICAgICA8Y29tcG9uZW50LW1hcHBlciBuYW1lPVwiUmVnaW9uXCIgW3Byb3BzXT1cInsgcENvbm4kOiBraWQuZ2V0UENvbm5lY3QoKSwgZm9ybUdyb3VwJCB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiIWRpc3BsYXlPbmx5RkEkXCI+XG4gICAgICA8Y29tcG9uZW50LW1hcHBlciBuYW1lPVwiRGVmZXJMb2FkXCIgW3Byb3BzXT1cInsgcENvbm4kLCBsb2FkRGF0YSQ6IHRhYkRhdGEkLCBuYW1lOiB0YWJEYXRhJD8uY29uZmlnPy5uYW1lIH1cIj48L2NvbXBvbmVudC1tYXBwZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiIWRpc3BsYXlPbmx5RkEkXCI+XG4gICAgPGRpdiAqbmdJZj1cImFyQ2hpbGRyZW4kXCIgY2xhc3M9XCJwc2RrLWNhc2Utdmlldy11dGlsaXRpZXNcIj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGtpZCBvZiBhckNoaWxkcmVuJFwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwia2lkLmdldFBDb25uZWN0KCkuZ2V0UmF3TWV0YWRhdGEoKT8udHlwZS50b0xvd2VyQ2FzZSgpID09ICdyZWdpb24nICYmIGtpZC5nZXRQQ29ubmVjdCgpLmdldFJhd01ldGFkYXRhKCk/Lm5hbWUgPT0gJ1V0aWxpdGllcydcIj5cbiAgICAgICAgICA8Y29tcG9uZW50LW1hcHBlciBuYW1lPVwiUmVnaW9uXCIgW3Byb3BzXT1cInsgcENvbm4kOiBraWQuZ2V0UENvbm5lY3QoKSB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9jYXNlLXZpZXcvY2FzZS12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9jYXNlLXZpZXcvY2FzZS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFxQixVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVoQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOERBQThELENBQUM7Ozs7Ozs7O0FBaUJ4RyxNQUFNLE9BQU8saUJBQWlCO0lBK0I1QixZQUNVLEtBQXdCLEVBQ3hCLGVBQXVDLEVBQ3ZDLEtBQVk7UUFGWixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixvQkFBZSxHQUFmLGVBQWUsQ0FBd0I7UUFDdkMsVUFBSyxHQUFMLEtBQUssQ0FBTztRQTlCdEIsNEJBQTRCO1FBQzVCLHdCQUFtQixHQUF3QixFQUFFLENBQUM7UUFLOUMsYUFB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QUNuQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQy9DLE1BQU0sZUFBZSxHQUFHLFVBQVUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXBFLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQsaUJBQWlCLENBQUMsSUFBSTtRQUNwQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQy9DLE1BQU0saUJBQWlCLEdBQUcsVUFBVSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV4RSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7K0dBM01VLGlCQUFpQjttR0FBakIsaUJBQWlCLG9IQUpqQixDQUFDLEtBQUssQ0FBQywwQkN0QnBCLHV3SEF5RkEsNG1ERGpFWSxZQUFZLDhUQUFFLGdCQUFnQix3VEFBRSxlQUFlLHFRQUFFLGFBQWEsazFCQUFtQix3QkFBd0I7OzRGQUV4RyxpQkFBaUI7a0JBUjdCLFNBQVM7K0JBQ0UsZUFBZSxhQUdkLENBQUMsS0FBSyxDQUFDLGNBQ04sSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDLENBQUM7K0lBRzVHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBDaGFuZ2VEZXRlY3RvclJlZiwgZm9yd2FyZFJlZiwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0VG9vbGJhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2xiYXInO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IGludGVydmFsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBbmd1bGFyUENvbm5lY3REYXRhLCBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9hbmd1bGFyLXBjb25uZWN0JztcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vX2hlbHBlcnMvdXRpbHMnO1xuaW1wb3J0IHsgQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9jb21wb25lbnQtbWFwcGVyL2NvbXBvbmVudC1tYXBwZXIuY29tcG9uZW50JztcblxuaW50ZXJmYWNlIENhc2VWaWV3UHJvcHMge1xuICAvLyBJZiBhbnksIGVudGVyIGFkZGl0aW9uYWwgcHJvcHMgdGhhdCBvbmx5IGV4aXN0IG9uIHRoaXMgY29tcG9uZW50XG4gIGljb246IHN0cmluZztcbiAgc3ViaGVhZGVyOiBzdHJpbmc7XG4gIGhlYWRlcjogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY2FzZS12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nhc2Utdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Nhc2Utdmlldy5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtVdGlsc10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdFRvb2xiYXJNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0TWVudU1vZHVsZSwgZm9yd2FyZFJlZigoKSA9PiBDb21wb25lbnRNYXBwZXJDb21wb25lbnQpXVxufSlcbmV4cG9ydCBjbGFzcyBDYXNlVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcENvbm4kOiB0eXBlb2YgUENvbm5lY3Q7XG4gIEBJbnB1dCgpIGZvcm1Hcm91cCQ6IEZvcm1Hcm91cDtcblxuICAvLyBVc2VkIHdpdGggQW5ndWxhclBDb25uZWN0XG4gIGFuZ3VsYXJQQ29ubmVjdERhdGE6IEFuZ3VsYXJQQ29ubmVjdERhdGEgPSB7fTtcbiAgY29uZmlnUHJvcHMkOiBDYXNlVmlld1Byb3BzO1xuXG4gIGFyQ2hpbGRyZW4kOiBhbnlbXTtcblxuICBoZWFkaW5nJCA9ICcnO1xuICBpZCQgPSAnJztcbiAgc3RhdHVzJCA9ICcnO1xuICBjYXNlVGFicyQ6IGFueVtdID0gW107XG4gIHN2Z0Nhc2UkOiBzdHJpbmc7XG4gIHRhYkRhdGEkOiBhbnk7XG5cbiAgbWFpblRhYnM6IGFueTtcbiAgbWFpblRhYkRhdGE6IGFueTtcblxuICBhckF2YWlsYWJsZUFjdGlvbnMkOiBhbnlbXSA9IFtdO1xuICBhckF2YWlsYWJlUHJvY2Vzc2VzJDogYW55W10gPSBbXTtcblxuICBjYXNlU3VtbWFyeVBDb25uJDogYW55O1xuICBjdXJyZW50Q2FzZUlEID0gJyc7XG4gIGVkaXRBY3Rpb246IGJvb2xlYW47XG4gIGJIYXNOZXdBdHRhY2htZW50cyA9IGZhbHNlO1xuICBsb2NhbGl6ZWRWYWw6IGFueTtcbiAgbG9jYWxlQ2F0ZWdvcnkgPSAnQ2FzZVZpZXcnO1xuICBsb2NhbGVLZXk6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGFuZ3VsYXJQQ29ubmVjdDogQW5ndWxhclBDb25uZWN0U2VydmljZSxcbiAgICBwcml2YXRlIHV0aWxzOiBVdGlsc1xuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gRmlyc3QgdGhpbmcgaW4gaW5pdGlhbGl6YXRpb24gaXMgcmVnaXN0ZXJpbmcgYW5kIHN1YnNjcmliaW5nIHRvIHRoZSBBbmd1bGFyUENvbm5lY3Qgc2VydmljZVxuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YSA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnJlZ2lzdGVyQW5kU3Vic2NyaWJlQ29tcG9uZW50KHRoaXMsIHRoaXMub25TdGF0ZUNoYW5nZSk7XG5cbiAgICAvLyB0aGlzLnVwZGF0ZVNlbGYoKTtcbiAgICB0aGlzLmNoZWNrQW5kVXBkYXRlKCk7XG4gICAgdGhpcy5sb2NhbGl6ZWRWYWwgPSBQQ29yZS5nZXRMb2NhbGVVdGlscygpLmdldExvY2FsZVZhbHVlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKSB7XG4gICAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbigpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENhbGxiYWNrIHBhc3NlZCB3aGVuIHN1YnNjcmliaW5nIHRvIHN0b3JlIGNoYW5nZVxuICBvblN0YXRlQ2hhbmdlKCkge1xuICAgIHRoaXMuY2hlY2tBbmRVcGRhdGUoKTtcbiAgfVxuXG4gIGNoZWNrQW5kVXBkYXRlKCkge1xuICAgIC8vIFNob3VsZCBhbHdheXMgY2hlY2sgdGhlIGJyaWRnZSB0byBzZWUgaWYgdGhlIGNvbXBvbmVudCBzaG91bGQgdXBkYXRlIGl0c2VsZiAocmUtcmVuZGVyKVxuICAgIGNvbnN0IGJVcGRhdGVTZWxmID0gdGhpcy5hbmd1bGFyUENvbm5lY3Quc2hvdWxkQ29tcG9uZW50VXBkYXRlKHRoaXMpO1xuXG4gICAgLy8gT05MWSBjYWxsIHVwZGF0ZVNlbGYgd2hlbiB0aGUgY29tcG9uZW50IHNob3VsZCB1cGRhdGVcbiAgICAvLyAgICBBTkQgcmVtb3ZpbmcgdGhlIFwiZ2F0ZVwiIHRoYXQgd2FzIHB1dCB0aGVyZSBzaW5jZSBzaG91bGRDb21wb25lbnRVcGRhdGVcbiAgICAvLyAgICAgIHNob3VsZCBiZSB0aGUgcmVhbCBcImdhdGVcIlxuICAgIGlmIChiVXBkYXRlU2VsZikge1xuICAgICAgLy8gZ2VuZXJhbGx5LCBkb24ndCB3YW50IHRvIHJlZnJlc2ggZXZlcnl0aGluZyB3aGVuIGRhdGEgY2hhbmdlcyBpbiBjYXNlVmlldywgaXQgaXMgdXN1YWxseSB0aGVcbiAgICAgIC8vIGNhc2Ugc3VtbWFyeS4gIEJ1dCBjaGVjayBpZiB0aGUgY2FzZSBJRCBjaGFuZ2VzLCB0aGlzIG1lYW5zIGEgZGlmZmVyZW50IGNhc2UgYW5kIHdlIHNob3VsZFxuICAgICAgLy8gdXBkYXRlIGFsbC5cbiAgICAgIGlmICh0aGlzLmhhc0Nhc2VJRENoYW5nZWQoKSkge1xuICAgICAgICB0aGlzLmZ1bGxVcGRhdGUoKTtcblxuICAgICAgICAvLyB1cGRhdGUgb2tUb0luaXRGbG93Q29udGFpbmVyLCBiZWNhdXNlIGNhc2UgdmlldyB3YXMgZHJhd24sIGZsb3cgY29udGFpbmVyIHdpbGwgbmVlZCB0byBiZSBpbml0XG4gICAgICAgIC8vIHRvIG1hdGNoIE5lYnVsYS9Db25zdGVsbGF0aW9uXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ29rVG9Jbml0Rmxvd0NvbnRhaW5lcicsICd0cnVlJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnVwZGF0ZUhlYWRlckFuZFN1bW1hcnkoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoYXNDYXNlSURDaGFuZ2VkKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmN1cnJlbnRDYXNlSUQgIT09IHRoaXMucENvbm4kLmdldERhdGFPYmplY3QoKS5jYXNlSW5mby5JRCkge1xuICAgICAgdGhpcy5jdXJyZW50Q2FzZUlEID0gdGhpcy5wQ29ubiQuZ2V0RGF0YU9iamVjdCgpLmNhc2VJbmZvLklEO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHVwZGF0ZUhlYWRlckFuZFN1bW1hcnkoKSB7XG4gICAgdGhpcy5jb25maWdQcm9wcyQgPSB0aGlzLnBDb25uJC5yZXNvbHZlQ29uZmlnUHJvcHModGhpcy5wQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKSkgYXMgQ2FzZVZpZXdQcm9wcztcbiAgICBjb25zdCBoYXNOZXdBdHRhY2htZW50cyA9IHRoaXMucENvbm4kLmdldERhdGFPYmplY3QoKS5jYXNlSW5mbz8uaGFzTmV3QXR0YWNobWVudHM7XG5cbiAgICBpZiAoaGFzTmV3QXR0YWNobWVudHMgIT09IHRoaXMuYkhhc05ld0F0dGFjaG1lbnRzKSB7XG4gICAgICB0aGlzLmJIYXNOZXdBdHRhY2htZW50cyA9IGhhc05ld0F0dGFjaG1lbnRzO1xuICAgICAgaWYgKHRoaXMuYkhhc05ld0F0dGFjaG1lbnRzKSB7XG4gICAgICAgIFBDb3JlLmdldFB1YlN1YlV0aWxzKCkucHVibGlzaChQQ29yZS5nZXRFdmVudHMoKS5nZXRDYXNlRXZlbnQoKS5DQVNFX0FUVEFDSE1FTlRTX1VQREFURURfRlJPTV9DQVNFVklFVywgdHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qga2lkcyA9IHRoaXMucENvbm4kLmdldENoaWxkcmVuKCkgYXMgYW55W107XG4gICAgZm9yIChjb25zdCBraWQgb2Yga2lkcykge1xuICAgICAgY29uc3QgbWV0YSA9IGtpZC5nZXRQQ29ubmVjdCgpLmdldFJhd01ldGFkYXRhKCk7XG4gICAgICBpZiAobWV0YS50eXBlLnRvTG93ZXJDYXNlKCkgPT0gJ3JlZ2lvbicgJiYgbWV0YS5uYW1lLnRvTG93ZXJDYXNlKCkgPT0gJ3N1bW1hcnknKSB7XG4gICAgICAgIHRoaXMuY2FzZVN1bW1hcnlQQ29ubiQgPSBraWQuZ2V0UENvbm5lY3QoKS5nZXRDaGlsZHJlbigpWzBdLmdldFBDb25uZWN0KCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gaGF2ZSB0byBwdXQgaW4gYSB0aW1lb3V0LCBvdGhlcndpc2UgZ2V0IGFuIGFuZ3VsYXIgY2hhbmdlIGV2ZW50IGVycm9yXG4gICAgY29uc3QgdGltZXIgPSBpbnRlcnZhbCgxMDApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aW1lci51bnN1YnNjcmliZSgpO1xuXG4gICAgICB0aGlzLmhlYWRpbmckID0gUENvcmUuZ2V0TG9jYWxlVXRpbHMoKS5nZXRMb2NhbGVWYWx1ZSh0aGlzLmNvbmZpZ1Byb3BzJC5oZWFkZXIsICcnLCB0aGlzLmxvY2FsZUtleSk7XG4gICAgICB0aGlzLmlkJCA9IHRoaXMuY29uZmlnUHJvcHMkLnN1YmhlYWRlcjtcbiAgICAgIHRoaXMuc3RhdHVzJCA9IHRoaXMucENvbm4kLmdldFZhbHVlKCcucHlTdGF0dXNXb3JrJyk7XG4gICAgfSk7XG4gIH1cblxuICBmdWxsVXBkYXRlKCkge1xuICAgIHRoaXMuY2FzZVRhYnMkID0gW107XG4gICAgdGhpcy5jb25maWdQcm9wcyQgPSB0aGlzLnBDb25uJC5yZXNvbHZlQ29uZmlnUHJvcHModGhpcy5wQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKSkgYXMgQ2FzZVZpZXdQcm9wcztcbiAgICAvLyBsZXQgY2FzZVR5cGVJRCA9IHRoaXMuY29uZmlnUHJvcHMkLnJ1bGVDbGFzcztcbiAgICAvLyBsZXQgY2FzZVR5cGVOYW1lID0gdGhpcy5jb25maWdQcm9wcyQuaGVhZGVyO1xuICAgIC8vIHRoaXMubG9jYWxlS2V5ID0gYCR7Y2FzZVR5cGVJRH0hQ0FTRSEke2Nhc2VUeXBlTmFtZX1gLnRvVXBwZXJDYXNlKCk7XG4gICAgdGhpcy5sb2NhbGVLZXkgPSBgJHt0aGlzLnBDb25uJC5nZXRDYXNlSW5mbygpLmdldENsYXNzTmFtZSgpfSFDQVNFISR7dGhpcy5wQ29ubiQuZ2V0Q2FzZUluZm8oKS5nZXROYW1lKCl9YC50b1VwcGVyQ2FzZSgpO1xuICAgIHRoaXMudXBkYXRlSGVhZGVyQW5kU3VtbWFyeSgpO1xuXG4gICAgdGhpcy5hckNoaWxkcmVuJCA9IHRoaXMucENvbm4kLmdldENoaWxkcmVuKCkgYXMgYW55W107XG5cbiAgICBjb25zdCBjYXNlSW5mbyA9IHRoaXMucENvbm4kLmdldERhdGFPYmplY3QoKS5jYXNlSW5mbztcbiAgICB0aGlzLmN1cnJlbnRDYXNlSUQgPSBjYXNlSW5mby5JRDtcbiAgICB0aGlzLmFyQXZhaWxhYmxlQWN0aW9ucyQgPSBjYXNlSW5mbz8uYXZhaWxhYmxlQWN0aW9ucyA/IGNhc2VJbmZvLmF2YWlsYWJsZUFjdGlvbnMgOiBbXTtcbiAgICB0aGlzLmVkaXRBY3Rpb24gPSB0aGlzLmFyQXZhaWxhYmxlQWN0aW9ucyQuZmluZChhY3Rpb24gPT4gYWN0aW9uLklEID09PSAncHlVcGRhdGVDYXNlRGV0YWlscycpO1xuICAgIHRoaXMuYXJBdmFpbGFiZVByb2Nlc3NlcyQgPSBjYXNlSW5mbz8uYXZhaWxhYmxlUHJvY2Vzc2VzID8gY2FzZUluZm8uYXZhaWxhYmxlUHJvY2Vzc2VzIDogW107XG5cbiAgICB0aGlzLnN2Z0Nhc2UkID0gdGhpcy51dGlscy5nZXRJbWFnZVNyYyh0aGlzLmNvbmZpZ1Byb3BzJC5pY29uLCB0aGlzLnV0aWxzLmdldFNES1N0YXRpY0NvbnRlbnRVcmwoKSk7XG5cbiAgICBmb3IgKGNvbnN0IGtpZCBvZiB0aGlzLmFyQ2hpbGRyZW4kKSB7XG4gICAgICBjb25zdCBraWRQQ29ubiA9IGtpZC5nZXRQQ29ubmVjdCgpO1xuICAgICAgaWYgKGtpZFBDb25uLmdldFJhd01ldGFkYXRhKCkubmFtZSA9PSAnVGFicycpIHtcbiAgICAgICAgdGhpcy5tYWluVGFicyA9IGtpZDtcbiAgICAgICAgdGhpcy5tYWluVGFiRGF0YSA9IHRoaXMubWFpblRhYnMuZ2V0UENvbm5lY3QoKS5nZXRDaGlsZHJlbigpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuZ2VuZXJhdGVUYWJzRGF0YSgpO1xuICB9XG5cbiAgZ2VuZXJhdGVUYWJzRGF0YSgpIHtcbiAgICB0aGlzLm1haW5UYWJzXG4gICAgICAuZ2V0UENvbm5lY3QoKVxuICAgICAgLmdldENoaWxkcmVuKClcbiAgICAgID8uZm9yRWFjaCgoY2hpbGQsIGkpID0+IHtcbiAgICAgICAgY29uc3QgY29uZmlnID0gY2hpbGQuZ2V0UENvbm5lY3QoKS5yZXNvbHZlQ29uZmlnUHJvcHMoY2hpbGQuZ2V0UENvbm5lY3QoKS5nZXRSYXdNZXRhZGF0YSgpKS5jb25maWc7XG4gICAgICAgIGxldCB7IGxhYmVsIH0gPSBjb25maWc7XG4gICAgICAgIGNvbnN0IHsgaW5oZXJpdGVkUHJvcHMsIHZpc2liaWxpdHkgfSA9IGNvbmZpZztcbiAgICAgICAgLy8gRm9yIHNvbWUgdGFicywgXCJsYWJlbFwiIHByb3BlcnR5IGlzIG5vdCBhdmFpYWxhYmxlIGluIHRoZVRhYkNvbXBDb25maWcsIHNvIHdpbGwgZ2V0IHRoZW0gZnJvbSBpbmhlcml0ZWRQcm9wc1xuICAgICAgICBpZiAoIWxhYmVsKSB7XG4gICAgICAgICAgaW5oZXJpdGVkUHJvcHMuZm9yRWFjaCgoaW5oZXJpdGVkUHJvcDogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoaW5oZXJpdGVkUHJvcC5wcm9wID09PSAnbGFiZWwnKSB7XG4gICAgICAgICAgICAgIGxhYmVsID0gaW5oZXJpdGVkUHJvcC52YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBXZSdsbCBkaXNwbGF5IHRoZSB0YWJzIHdoZW4gZWl0aGVyIHZpc2liaWxpdHkgcHJvcGVydHkgZG9lc24ndCBleGlzdCBvciBpcyB0cnVlKGlmIGV4aXN0cylcbiAgICAgICAgaWYgKHZpc2liaWxpdHkgPT09IHVuZGVmaW5lZCB8fCB2aXNpYmlsaXR5ID09PSB0cnVlKSB7XG4gICAgICAgICAgdGhpcy5jYXNlVGFicyQucHVzaCh7IG5hbWU6IGxhYmVsLCBpZDogaSB9KTtcbiAgICAgICAgICAvLyBUbyBtYWtlIGZpcnN0IHZpc2libGUgdGFiIGRpc3BsYXkgYXQgdGhlIGJlZ2lubmluZ1xuICAgICAgICAgIGlmICghdGhpcy50YWJEYXRhJCkge1xuICAgICAgICAgICAgdGhpcy50YWJEYXRhJCA9IHsgdHlwZTogJ0RlZmVyTG9hZCcsIGNvbmZpZzogY2hpbGQuZ2V0UENvbm5lY3QoKS5nZXRSYXdNZXRhZGF0YSgpLmNvbmZpZyB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICB1cGRhdGVTZWxmKCkge1xuICAgIHRoaXMuZnVsbFVwZGF0ZSgpO1xuICB9XG5cbiAgb25UYWJDbGljayh0YWI6IGFueSkge1xuICAgIHRoaXMudGFiRGF0YSQgPSB0aGlzLm1haW5UYWJEYXRhW3RhYl0uZ2V0UENvbm5lY3QoKS5nZXRSYXdNZXRhZGF0YSgpO1xuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgX2VkaXRDbGljaygpIHtcbiAgICBjb25zdCBlZGl0QWN0aW9uID0gdGhpcy5hckF2YWlsYWJsZUFjdGlvbnMkLmZpbmQoYWN0aW9uID0+IGFjdGlvbi5JRCA9PT0gJ3B5VXBkYXRlQ2FzZURldGFpbHMnKTtcbiAgICBjb25zdCBhY3Rpb25zQVBJID0gdGhpcy5wQ29ubiQuZ2V0QWN0aW9uc0FwaSgpO1xuICAgIGNvbnN0IG9wZW5Mb2NhbEFjdGlvbiA9IGFjdGlvbnNBUEkub3BlbkxvY2FsQWN0aW9uLmJpbmQoYWN0aW9uc0FQSSk7XG5cbiAgICBvcGVuTG9jYWxBY3Rpb24oZWRpdEFjdGlvbi5JRCwgeyAuLi5lZGl0QWN0aW9uLCBjb250YWluZXJOYW1lOiAnbW9kYWwnLCB0eXBlOiAnZXhwcmVzcycgfSk7XG4gIH1cblxuICBfbWVudUFjdGlvbkNsaWNrKGRhdGEpIHtcbiAgICBjb25zdCBhY3Rpb25zQVBJID0gdGhpcy5wQ29ubiQuZ2V0QWN0aW9uc0FwaSgpO1xuICAgIGNvbnN0IG9wZW5Mb2NhbEFjdGlvbiA9IGFjdGlvbnNBUEkub3BlbkxvY2FsQWN0aW9uLmJpbmQoYWN0aW9uc0FQSSk7XG5cbiAgICBvcGVuTG9jYWxBY3Rpb24oZGF0YS5JRCwgeyAuLi5kYXRhLCBjb250YWluZXJOYW1lOiAnbW9kYWwnLCB0eXBlOiAnZXhwcmVzcycgfSk7XG4gIH1cblxuICBfbWVudVByb2Nlc3NDbGljayhkYXRhKSB7XG4gICAgY29uc3QgYWN0aW9uc0FQSSA9IHRoaXMucENvbm4kLmdldEFjdGlvbnNBcGkoKTtcbiAgICBjb25zdCBvcGVuUHJvY2Vzc0FjdGlvbiA9IGFjdGlvbnNBUEkub3BlblByb2Nlc3NBY3Rpb24uYmluZChhY3Rpb25zQVBJKTtcblxuICAgIG9wZW5Qcm9jZXNzQWN0aW9uKGRhdGEuSUQsIHsgLi4uZGF0YSB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInBzZGstY2FzZS12aWV3XCIgaWQ9XCJjYXNlLXZpZXdcIj5cbiAgPGRpdiBjbGFzcz1cInBzZGstY2FzZS12aWV3LWluZm9cIj5cbiAgICA8bWF0LXRvb2xiYXIgY29sb3I9XCJwcmltYXJ5XCIgY2xhc3M9XCJwc2RrLWNhc2Utdmlldy10b29sYmFyXCI+XG4gICAgICA8bWF0LXRvb2xiYXItcm93IHN0eWxlPVwicGFkZGluZy1sZWZ0OiAxcmVtXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwc2RrLWNhc2UtaWNvbi1kaXZcIj5cbiAgICAgICAgICA8aW1nIGNsYXNzPVwicHNkay1jYXNlLXN2Zy1pY29uXCIgc3JjPVwie3sgc3ZnQ2FzZSQgfX1cIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBzZGstY2FzZS12aWV3LWhlYWRpbmdcIj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGgxIGlkPVwiY2FzZS1uYW1lXCI+e3sgaGVhZGluZyQgfX08L2gxPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgaWQ9XCJjdXJyZW50LWNhc2VJRFwiIFtoaWRkZW5dPVwidHJ1ZVwiPnt7IGN1cnJlbnRDYXNlSUQgfX08L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicHNkay1jYXNlLXZpZXctaGVhZGluZy1pZFwiIGlkPVwiY2FzZUlkXCI+e3sgaWQkIH19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYXQtdG9vbGJhci1yb3c+XG4gICAgPC9tYXQtdG9vbGJhcj5cblxuICAgIDxkaXYgY2xhc3M9XCJwc2RrLWNhc2Utdmlldy1idXR0b25zXCI+XG4gICAgICA8YnV0dG9uICpuZ0lmPVwiZWRpdEFjdGlvblwiIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwic2Vjb25kYXJ5XCIgKGNsaWNrKT1cIl9lZGl0Q2xpY2soKVwiPnt7IGxvY2FsaXplZFZhbCgnRWRpdCcsIGxvY2FsZUNhdGVnb3J5KSB9fTwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInNlY29uZGFyeVwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJhY3Rpb25NZW51XCI+e3sgbG9jYWxpemVkVmFsKCdBY3Rpb25zLi4uJywgbG9jYWxlQ2F0ZWdvcnkpIH19PC9idXR0b24+XG4gICAgICA8bWF0LW1lbnUgI2FjdGlvbk1lbnU9XCJtYXRNZW51XCIgb3ZlcmxhcFRyaWdnZXI9XCJmYWxzZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgYXJBdmFpbGFibGVBY3Rpb25zJFwiPlxuICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiX21lbnVBY3Rpb25DbGljayhhY3Rpb24pXCI+XG4gICAgICAgICAgICB7eyBsb2NhbGl6ZWRWYWwoYWN0aW9uLm5hbWUsICcnLCBsb2NhbGVLZXkpIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwcm9jZXNzIG9mIGFyQXZhaWxhYmVQcm9jZXNzZXMkXCI+XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJfbWVudVByb2Nlc3NDbGljayhwcm9jZXNzKVwiPlxuICAgICAgICAgICAge3sgcHJvY2Vzcy5uYW1lIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9tYXQtbWVudT5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJwc2RrLWNhc2Utdmlldy1kaXZpZGVyXCI+PC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwicHNkay1jYXNlLXZpZXctc3VtbWFyeVwiPlxuICAgICAgPGNvbXBvbmVudC1tYXBwZXIgbmFtZT1cIkNhc2VTdW1tYXJ5XCIgW3Byb3BzXT1cInsgcENvbm4kOiBjYXNlU3VtbWFyeVBDb25uJCB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgIDwvZGl2PlxuXG4gICAgPGNvbXBvbmVudC1tYXBwZXJcbiAgICAgICpuZ0lmPVwiY2FzZVRhYnMkLmxlbmd0aCA+IDFcIlxuICAgICAgbmFtZT1cIlZlcnRpY2FsVGFic1wiXG4gICAgICBbcHJvcHNdPVwieyB0YWJDb25maWckOiBjYXNlVGFicyQgfVwiXG4gICAgICBbcGFyZW50XT1cInRoaXNcIlxuICAgICAgW291dHB1dEV2ZW50c109XCJ7IHRhYkNsaWNrOiBvblRhYkNsaWNrIH1cIlxuICAgID48L2NvbXBvbmVudC1tYXBwZXI+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicHNkay1jYXNlLXZpZXctbWFpblwiPlxuICAgIDxkaXY+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBraWQgb2YgYXJDaGlsZHJlbiRcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICBraWQuZ2V0UENvbm5lY3QoKS5nZXRSYXdNZXRhZGF0YSgpLnR5cGUudG9Mb3dlckNhc2UoKSA9PSAncmVnaW9uJyAmJiBraWQuZ2V0UENvbm5lY3QoKS5nZXRSYXdNZXRhZGF0YSgpLm5hbWUudG9Mb3dlckNhc2UoKSA9PSAnc3RhZ2VzJ1xuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8Y29tcG9uZW50LW1hcHBlciBuYW1lPVwiUmVnaW9uXCIgW3Byb3BzXT1cInsgcENvbm4kOiBraWQuZ2V0UENvbm5lY3QoKSB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdGb3I9XCJsZXQga2lkIG9mIGFyQ2hpbGRyZW4kXCI+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwia2lkLmdldFBDb25uZWN0KCkuZ2V0UmF3TWV0YWRhdGEoKS50eXBlLnRvTG93ZXJDYXNlKCkgPT0gJ3JlZ2lvbicgJiYga2lkLmdldFBDb25uZWN0KCkuZ2V0UmF3TWV0YWRhdGEoKS5uYW1lLnRvTG93ZXJDYXNlKCkgPT0gJ3RvZG8nXCJcbiAgICAgID5cbiAgICAgICAgPGNvbXBvbmVudC1tYXBwZXIgbmFtZT1cIlJlZ2lvblwiIFtwcm9wc109XCJ7IHBDb25uJDoga2lkLmdldFBDb25uZWN0KCksIGZvcm1Hcm91cCQgfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdGb3I9XCJsZXQga2lkIG9mIGFyQ2hpbGRyZW4kXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwia2lkLmdldFBDb25uZWN0KCkuZ2V0UmF3TWV0YWRhdGEoKS50eXBlLnRvTG93ZXJDYXNlKCkgPT0gJ3JlZ2lvbicgJiYga2lkLmdldFBDb25uZWN0KCkuZ2V0UmF3TWV0YWRhdGEoKS5uYW1lID09ICdNYWluJ1wiPlxuICAgICAgICA8Y29tcG9uZW50LW1hcHBlciBuYW1lPVwiUmVnaW9uXCIgW3Byb3BzXT1cInsgcENvbm4kOiBraWQuZ2V0UENvbm5lY3QoKSwgZm9ybUdyb3VwJCB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2PlxuICAgICAgPGNvbXBvbmVudC1tYXBwZXIgbmFtZT1cIkRlZmVyTG9hZFwiIFtwcm9wc109XCJ7IHBDb25uJCwgbG9hZERhdGEkOiB0YWJEYXRhJCwgbmFtZTogdGFiRGF0YSQ/LmNvbmZpZz8ubmFtZSB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiYXJDaGlsZHJlbiRcIiBjbGFzcz1cInBzZGstY2FzZS12aWV3LXV0aWxpdGllc1wiPlxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQga2lkIG9mIGFyQ2hpbGRyZW4kXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJraWQuZ2V0UENvbm5lY3QoKS5nZXRSYXdNZXRhZGF0YSgpPy50eXBlLnRvTG93ZXJDYXNlKCkgPT0gJ3JlZ2lvbicgJiYga2lkLmdldFBDb25uZWN0KCkuZ2V0UmF3TWV0YWRhdGEoKT8ubmFtZSA9PSAnVXRpbGl0aWVzJ1wiPlxuICAgICAgICAgIDxjb21wb25lbnQtbWFwcGVyIG5hbWU9XCJSZWdpb25cIiBbcHJvcHNdPVwieyBwQ29ubiQ6IGtpZC5nZXRQQ29ubmVjdCgpIH1cIj48L2NvbXBvbmVudC1tYXBwZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -17,7 +17,7 @@ export class ConfirmationComponent {
|
|
|
17
17
|
// First thing in initialization is registering and subscribing to the AngularPConnect service
|
|
18
18
|
this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
|
|
19
19
|
this.CONSTS = PCore.getConstants();
|
|
20
|
-
const activeContainerItemID = PCore.getContainerUtils().getActiveContainerItemName(this.pConn$.getTarget());
|
|
20
|
+
const activeContainerItemID = PCore.getContainerUtils().getActiveContainerItemName(this.pConn$.getTarget() ?? null);
|
|
21
21
|
this.rootInfo = PCore.getContainerUtils().getContainerItemData(this.pConn$.getTarget(), activeContainerItemID);
|
|
22
22
|
this.checkAndUpdate();
|
|
23
23
|
}
|
|
@@ -56,13 +56,13 @@ export class ConfirmationComponent {
|
|
|
56
56
|
this.showConfirmView = false;
|
|
57
57
|
PCore.getPubSubUtils().publish(PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.CLOSE_CONFIRM_VIEW, this.rootInfo);
|
|
58
58
|
}
|
|
59
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
60
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
59
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ConfirmationComponent, deps: [{ token: i1.AngularPConnectService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
60
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: ConfirmationComponent, isStandalone: true, selector: "app-confirmation", inputs: { pConn$: "pConn$" }, ngImport: i0, template: "<div>\n <div *ngIf=\"showConfirmView\">\n <h2 id=\"confirm-label\" class=\"confirm-label\">{{ label }}</h2>\n <div *ngIf=\"showDetails\">\n <component-mapper name=\"Details\" [props]=\"{ pConn$ }\"></component-mapper>\n </div>\n <div *ngIf=\"showTasks && toDoList?.length > 0\">\n <component-mapper\n name=\"Todo\"\n [props]=\"{ pConn$, datasource$: { source: toDoList }, headerText$: 'Open Tasks', type$: CONSTS.TODO, isConfirm: true }\"\n ></component-mapper>\n </div>\n <div class=\"done-button\">\n <button mat-raised-button color=\"primary\" (click)=\"onConfirmViewClose()\">Done</button>\n </div>\n </div>\n <div *ngIf=\"toDoList?.length > 0\">\n <component-mapper\n name=\"Todo\"\n [props]=\"{ pConn$, datasource$: { source: toDoList }, headerText$: 'Tasks', type$: CONSTS.TODO, isConfirm: true }\"\n ></component-mapper>\n </div>\n</div>\n", styles: [".done-button{justify-content:flex-end;display:flex;padding-bottom:1rem}.confirm-label{padding:0 16px;margin:0}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i2.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatButtonModule) }, { kind: "component", type: i0.forwardRef(() => i3.MatButton), selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
|
|
61
61
|
}
|
|
62
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
62
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ConfirmationComponent, decorators: [{
|
|
63
63
|
type: Component,
|
|
64
64
|
args: [{ selector: 'app-confirmation', standalone: true, imports: [CommonModule, MatButtonModule, forwardRef(() => ComponentMapperComponent)], template: "<div>\n <div *ngIf=\"showConfirmView\">\n <h2 id=\"confirm-label\" class=\"confirm-label\">{{ label }}</h2>\n <div *ngIf=\"showDetails\">\n <component-mapper name=\"Details\" [props]=\"{ pConn$ }\"></component-mapper>\n </div>\n <div *ngIf=\"showTasks && toDoList?.length > 0\">\n <component-mapper\n name=\"Todo\"\n [props]=\"{ pConn$, datasource$: { source: toDoList }, headerText$: 'Open Tasks', type$: CONSTS.TODO, isConfirm: true }\"\n ></component-mapper>\n </div>\n <div class=\"done-button\">\n <button mat-raised-button color=\"primary\" (click)=\"onConfirmViewClose()\">Done</button>\n </div>\n </div>\n <div *ngIf=\"toDoList?.length > 0\">\n <component-mapper\n name=\"Todo\"\n [props]=\"{ pConn$, datasource$: { source: toDoList }, headerText$: 'Tasks', type$: CONSTS.TODO, isConfirm: true }\"\n ></component-mapper>\n </div>\n</div>\n", styles: [".done-button{justify-content:flex-end;display:flex;padding-bottom:1rem}.confirm-label{padding:0 16px;margin:0}\n"] }]
|
|
65
|
-
}], ctorParameters:
|
|
65
|
+
}], ctorParameters: () => [{ type: i1.AngularPConnectService }], propDecorators: { pConn$: [{
|
|
66
66
|
type: Input
|
|
67
67
|
}] } });
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9jb25maXJtYXRpb24vY29uZmlybWF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9jb25maXJtYXRpb24vY29uZmlybWF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOzs7OztBQWlCeEcsTUFBTSxPQUFPLHFCQUFxQjtJQWdCaEMsWUFBb0IsZUFBdUM7UUFBdkMsb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBYjNELHdCQUFtQixHQUF3QixFQUFFLENBQUM7UUFXOUMsb0JBQWUsR0FBRyxJQUFJLENBQUM7SUFFdUMsQ0FBQztJQUUvRCxRQUFRO1FBQ04sOEZBQThGO1FBQzlGLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLDZCQUE2QixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEcsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbkMsTUFBTSxxQkFBcUIsR0FBRyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDO1FBQ3BILElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1FBQy9HLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMzQyxDQUFDO0lBQ0gsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELGNBQWM7UUFDWixnRUFBZ0U7UUFDaEUsNEJBQTRCO1FBQzVCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFckUsd0RBQXdEO1FBQ3hELElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLENBQUM7SUFDSCxDQUFDO0lBRUQsVUFBVTtRQUNSLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUF1QixDQUFDO1FBQ3pFLElBQUksQ0FBQyxVQUFVLEdBQUcsY0FBYyxFQUFFLFVBQVUsQ0FBQztRQUM3QyxJQUFJLENBQUMsU0FBUyxHQUFHLGNBQWMsRUFBRSxTQUFTLENBQUM7UUFDM0MsSUFBSSxDQUFDLEtBQUssR0FBRyxjQUFjLEVBQUUsS0FBSyxDQUFDO1FBQ25DLHNFQUFzRTtRQUN0RSxzRUFBc0U7UUFDdEUsNkNBQTZDO1FBQzdDLGtGQUFrRjtRQUNsRixzRUFBc0U7UUFDdEUsSUFBSSxDQUFDLFFBQVEsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLEdBQUcsY0FBYyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUMzRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDN0IsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEgsQ0FBQzsrR0FsRVUscUJBQXFCO21HQUFyQixxQkFBcUIsMEdDdkJsQyw0NUJBdUJBLDZMREZZLFlBQVksNEtBQUUsZUFBZSxzUUFBbUIsd0JBQXdCOzs0RkFFdkUscUJBQXFCO2tCQVBqQyxTQUFTOytCQUNFLGtCQUFrQixjQUdoQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDOzJGQUczRSxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIGZvcndhcmRSZWYsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBwdWJsaWNDb25zdGFudHMgfSBmcm9tICdAcGVnYS9wY29yZS1wY29ubmVjdC10eXBlZGVmcy9jb25zdGFudHMnO1xuaW1wb3J0IHsgQW5ndWxhclBDb25uZWN0RGF0YSwgQW5ndWxhclBDb25uZWN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvYW5ndWxhci1wY29ubmVjdCc7XG5pbXBvcnQgeyBnZXRUb0RvQXNzaWdubWVudHMgfSBmcm9tICcuLi8uLi9pbmZyYS9Db250YWluZXJzL2Zsb3ctY29udGFpbmVyL2hlbHBlcnMnO1xuaW1wb3J0IHsgQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9jb21wb25lbnQtbWFwcGVyL2NvbXBvbmVudC1tYXBwZXIuY29tcG9uZW50JztcblxuaW50ZXJmYWNlIENvbmZpcm1hdGlvblByb3BzIHtcbiAgLy8gSWYgYW55LCBlbnRlciBhZGRpdGlvbmFsIHByb3BzIHRoYXQgb25seSBleGlzdCBvbiB0aGlzIGNvbXBvbmVudFxuICBkYXRhc291cmNlOiB7IHNvdXJjZTogYW55IH07XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHNob3dMYWJlbDogYm9vbGVhbjtcbiAgc2hvd1Rhc2tzOiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY29uZmlybWF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbmZpcm1hdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbmZpcm1hdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsIGZvcndhcmRSZWYoKCkgPT4gQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50KV1cbn0pXG5leHBvcnQgY2xhc3MgQ29uZmlybWF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwQ29ubiQ6IHR5cGVvZiBQQ29ubmVjdDtcblxuICBhbmd1bGFyUENvbm5lY3REYXRhOiBBbmd1bGFyUENvbm5lY3REYXRhID0ge307XG4gIGNvbmZpZ1Byb3BzJDogQ29uZmlybWF0aW9uUHJvcHM7XG5cbiAgcm9vdEluZm86IGFueTtcbiAgZGF0YXNvdXJjZTogYW55O1xuICBzaG93VGFza3M6IGFueTtcbiAgZGV0YWlsUHJvcHM6IGFueTtcbiAgdG9Eb0xpc3Q6IGFueTtcbiAgbGFiZWw6IHN0cmluZztcbiAgQ09OU1RTOiB0eXBlb2YgcHVibGljQ29uc3RhbnRzO1xuICBzaG93RGV0YWlsczogYm9vbGVhbjtcbiAgc2hvd0NvbmZpcm1WaWV3ID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFuZ3VsYXJQQ29ubmVjdDogQW5ndWxhclBDb25uZWN0U2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBGaXJzdCB0aGluZyBpbiBpbml0aWFsaXphdGlvbiBpcyByZWdpc3RlcmluZyBhbmQgc3Vic2NyaWJpbmcgdG8gdGhlIEFuZ3VsYXJQQ29ubmVjdCBzZXJ2aWNlXG4gICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhID0gdGhpcy5hbmd1bGFyUENvbm5lY3QucmVnaXN0ZXJBbmRTdWJzY3JpYmVDb21wb25lbnQodGhpcywgdGhpcy5vblN0YXRlQ2hhbmdlKTtcbiAgICB0aGlzLkNPTlNUUyA9IFBDb3JlLmdldENvbnN0YW50cygpO1xuICAgIGNvbnN0IGFjdGl2ZUNvbnRhaW5lckl0ZW1JRCA9IFBDb3JlLmdldENvbnRhaW5lclV0aWxzKCkuZ2V0QWN0aXZlQ29udGFpbmVySXRlbU5hbWUodGhpcy5wQ29ubiQuZ2V0VGFyZ2V0KCkgPz8gbnVsbCk7XG4gICAgdGhpcy5yb290SW5mbyA9IFBDb3JlLmdldENvbnRhaW5lclV0aWxzKCkuZ2V0Q29udGFpbmVySXRlbURhdGEodGhpcy5wQ29ubiQuZ2V0VGFyZ2V0KCksIGFjdGl2ZUNvbnRhaW5lckl0ZW1JRCk7XG4gICAgdGhpcy5jaGVja0FuZFVwZGF0ZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKSB7XG4gICAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbigpO1xuICAgIH1cbiAgfVxuXG4gIG9uU3RhdGVDaGFuZ2UoKSB7XG4gICAgdGhpcy5jaGVja0FuZFVwZGF0ZSgpO1xuICB9XG5cbiAgY2hlY2tBbmRVcGRhdGUoKSB7XG4gICAgLy8gU2hvdWxkIGFsd2F5cyBjaGVjayB0aGUgYnJpZGdlIHRvIHNlZSBpZiB0aGUgY29tcG9uZW50IHNob3VsZFxuICAgIC8vIHVwZGF0ZSBpdHNlbGYgKHJlLXJlbmRlcilcbiAgICBjb25zdCBiVXBkYXRlU2VsZiA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnNob3VsZENvbXBvbmVudFVwZGF0ZSh0aGlzKTtcblxuICAgIC8vIE9OTFkgY2FsbCB1cGRhdGVTZWxmIHdoZW4gdGhlIGNvbXBvbmVudCBzaG91bGQgdXBkYXRlXG4gICAgaWYgKGJVcGRhdGVTZWxmKSB7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGYoKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVTZWxmKCkge1xuICAgIGNvbnN0IHRoZUNvbmZpZ1Byb3BzID0gdGhpcy5wQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKSBhcyBDb25maXJtYXRpb25Qcm9wcztcbiAgICB0aGlzLmRhdGFzb3VyY2UgPSB0aGVDb25maWdQcm9wcz8uZGF0YXNvdXJjZTtcbiAgICB0aGlzLnNob3dUYXNrcyA9IHRoZUNvbmZpZ1Byb3BzPy5zaG93VGFza3M7XG4gICAgdGhpcy5sYWJlbCA9IHRoZUNvbmZpZ1Byb3BzPy5sYWJlbDtcbiAgICAvLyBHZXQgdGhlIGluaGVyaXRlZCBwcm9wcyBmcm9tIHRoZSBwYXJlbnQgdG8gZGV0ZXJtaW5lIGxhYmVsIHNldHRpbmdzXG4gICAgLy8gTm90IHVzaW5nIHdoYXRzTmV4dCBhdCB0aGUgbW9tZW50LCBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIHVzZSBvZiBpdFxuICAgIC8vIGNvbnN0IHdoYXRzTmV4dCA9IHRoaXMuZGF0YXNvdXJjZT8uc291cmNlO1xuICAgIC8vIGNvbnN0IGl0ZW1zID0gd2hhdHNOZXh0Py5sZW5ndGggPiAwID8gd2hhdHNOZXh0Lm1hcCgoaXRlbSkgPT4gaXRlbS5sYWJlbCkgOiAnJztcbiAgICAvLyBjb25zdCB0b2RvUHJvcHMgPSB7IC4uLnRoZUNvbmZpZ1Byb3BzLCByZW5kZXJUb2RvSW5Db25maXJtOiB0cnVlIH07XG4gICAgdGhpcy50b0RvTGlzdCA9IGdldFRvRG9Bc3NpZ25tZW50cyh0aGlzLnBDb25uJCk7XG4gICAgdGhpcy5kZXRhaWxQcm9wcyA9IHsgLi4udGhlQ29uZmlnUHJvcHMsIHNob3dMYWJlbDogZmFsc2UgfTtcbiAgICB0aGlzLnNob3dEZXRhaWxzID0gdGhpcy5wQ29ubiQ/LmdldENoaWxkcmVuKCk/LlswXT8uZ2V0UENvbm5lY3QoKT8uZ2V0Q2hpbGRyZW4oKT8ubGVuZ3RoID4gMDtcbiAgfVxuXG4gIG9uQ29uZmlybVZpZXdDbG9zZSgpIHtcbiAgICB0aGlzLnNob3dDb25maXJtVmlldyA9IGZhbHNlO1xuICAgIFBDb3JlLmdldFB1YlN1YlV0aWxzKCkucHVibGlzaChQQ29yZS5nZXRDb25zdGFudHMoKS5QVUJfU1VCX0VWRU5UUy5DQVNFX0VWRU5UUy5DTE9TRV9DT05GSVJNX1ZJRVcsIHRoaXMucm9vdEluZm8pO1xuICB9XG59XG4iLCI8ZGl2PlxuICA8ZGl2ICpuZ0lmPVwic2hvd0NvbmZpcm1WaWV3XCI+XG4gICAgPGgyIGlkPVwiY29uZmlybS1sYWJlbFwiIGNsYXNzPVwiY29uZmlybS1sYWJlbFwiPnt7IGxhYmVsIH19PC9oMj5cbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0RldGFpbHNcIj5cbiAgICAgIDxjb21wb25lbnQtbWFwcGVyIG5hbWU9XCJEZXRhaWxzXCIgW3Byb3BzXT1cInsgcENvbm4kIH1cIj48L2NvbXBvbmVudC1tYXBwZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cInNob3dUYXNrcyAmJiB0b0RvTGlzdD8ubGVuZ3RoID4gMFwiPlxuICAgICAgPGNvbXBvbmVudC1tYXBwZXJcbiAgICAgICAgbmFtZT1cIlRvZG9cIlxuICAgICAgICBbcHJvcHNdPVwieyBwQ29ubiQsIGRhdGFzb3VyY2UkOiB7IHNvdXJjZTogdG9Eb0xpc3QgfSwgaGVhZGVyVGV4dCQ6ICdPcGVuIFRhc2tzJywgdHlwZSQ6IENPTlNUUy5UT0RPLCBpc0NvbmZpcm06IHRydWUgfVwiXG4gICAgICA+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkb25lLWJ1dHRvblwiPlxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwib25Db25maXJtVmlld0Nsb3NlKClcIj5Eb25lPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwidG9Eb0xpc3Q/Lmxlbmd0aCA+IDBcIj5cbiAgICA8Y29tcG9uZW50LW1hcHBlclxuICAgICAgbmFtZT1cIlRvZG9cIlxuICAgICAgW3Byb3BzXT1cInsgcENvbm4kLCBkYXRhc291cmNlJDogeyBzb3VyY2U6IHRvRG9MaXN0IH0sIGhlYWRlclRleHQkOiAnVGFza3MnLCB0eXBlJDogQ09OU1RTLlRPRE8sIGlzQ29uZmlybTogdHJ1ZSB9XCJcbiAgICA+PC9jb21wb25lbnQtbWFwcGVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -31,7 +31,8 @@ export class DataReferenceComponent {
|
|
|
31
31
|
this.updateSelf();
|
|
32
32
|
if (this.firstChildMeta?.type === 'Dropdown' && this.rawViewMetadata.config?.parameters) {
|
|
33
33
|
const { value, key, text } = this.firstChildMeta.config.datasource.fields;
|
|
34
|
-
PCore.getDataApiUtils()
|
|
34
|
+
PCore.getDataApiUtils()
|
|
35
|
+
.getData(this.refList, {
|
|
35
36
|
dataViewParameters: this.parameters
|
|
36
37
|
}, '')
|
|
37
38
|
.then(res => {
|
|
@@ -86,7 +87,7 @@ export class DataReferenceComponent {
|
|
|
86
87
|
this.refList = this.rawViewMetadata.config.referenceList;
|
|
87
88
|
this.canBeChangedInReviewMode = theConfigProps.allowAndPersistChangesInReviewMode && (displayAs === 'autocomplete' || displayAs === 'dropdown');
|
|
88
89
|
// this.childrenToRender = this.children;
|
|
89
|
-
this.isDisplayModeEnabled = ['
|
|
90
|
+
this.isDisplayModeEnabled = ['DISPLAY_ONLY', 'STACKED_LARGE_VAL'].includes(displayMode);
|
|
90
91
|
if (this.firstChildMeta?.type !== 'Region') {
|
|
91
92
|
this.firstChildPConnect = this.pConn$.getChildren()[0].getPConnect;
|
|
92
93
|
/* remove refresh When condition from those old view so that it will not be used for runtime */
|
|
@@ -143,10 +144,8 @@ export class DataReferenceComponent {
|
|
|
143
144
|
handleSelection(event) {
|
|
144
145
|
const caseKey = this.pConn$.getCaseInfo().getKey();
|
|
145
146
|
const refreshOptions = { autoDetectRefresh: true };
|
|
146
|
-
// @ts-ignore - second parameter pageReference for getValue method should be optional
|
|
147
147
|
if (this.canBeChangedInReviewMode && this.pConn$.getValue('__currentPageTabViewName')) {
|
|
148
|
-
|
|
149
|
-
this.pConn$.getActionsApi().refreshCaseView(caseKey, this.pConn$.getValue('__currentPageTabViewName'), null, refreshOptions);
|
|
148
|
+
this.pConn$.getActionsApi().refreshCaseView(caseKey, this.pConn$.getValue('__currentPageTabViewName'), '', refreshOptions);
|
|
150
149
|
PCore.getDeferLoadManager().refreshActiveComponents(this.pConn$.getContextName());
|
|
151
150
|
}
|
|
152
151
|
else {
|
|
@@ -156,7 +155,9 @@ export class DataReferenceComponent {
|
|
|
156
155
|
// AutoComplete sets value on event.id whereas Dropdown sets it on event.target.value
|
|
157
156
|
const propValue = event?.id || event?.target?.value;
|
|
158
157
|
if (propValue && this.canBeChangedInReviewMode && this.isDisplayModeEnabled) {
|
|
159
|
-
PCore.getDataApiUtils()
|
|
158
|
+
PCore.getDataApiUtils()
|
|
159
|
+
.getCaseEditLock(caseKey, '')
|
|
160
|
+
.then(caseResponse => {
|
|
160
161
|
const pageTokens = this.pConn$.getPageReference().replace('caseInfo.content', '').split('.');
|
|
161
162
|
let curr = {};
|
|
162
163
|
const commitData = curr;
|
|
@@ -177,7 +178,9 @@ export class DataReferenceComponent {
|
|
|
177
178
|
curr = curr[element];
|
|
178
179
|
}
|
|
179
180
|
});
|
|
180
|
-
PCore.getCaseUtils()
|
|
181
|
+
PCore.getCaseUtils()
|
|
182
|
+
.updateCaseEditFieldsData(caseKey, { [caseKey]: commitData }, caseResponse.headers.etag, this.pConn$.getContextName())
|
|
183
|
+
.then(response => {
|
|
181
184
|
PCore.getContainerUtils().updateParentLastUpdateTime(this.pConn$.getContextName(), response.data.data.caseInfo.lastUpdateTime);
|
|
182
185
|
PCore.getContainerUtils().updateRelatedContextEtag(this.pConn$.getContextName(), response.headers.etag);
|
|
183
186
|
});
|
|
@@ -225,15 +228,15 @@ export class DataReferenceComponent {
|
|
|
225
228
|
});
|
|
226
229
|
}
|
|
227
230
|
}
|
|
228
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
229
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
231
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: DataReferenceComponent, deps: [{ token: i1.AngularPConnectService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
232
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: DataReferenceComponent, isStandalone: true, selector: "app-data-reference", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, ngImport: i0, template: "<div *ngIf=\"childrenToRender && childrenToRender.length > 0\">\n <div *ngIf=\"!displayMultiRef\">\n <div *ngFor=\"let kid of childrenToRender\">\n <component-mapper [name]=\"kid?.getPConnect().getComponentName()\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n <div *ngIf=\"displaySingleRef\">\n <component-mapper name=\"SingleReferenceReadOnly\" [props]=\"{ pConn$: firstChildPConnect() }\"></component-mapper>\n </div>\n <div *ngIf=\"displayMultiRef\">\n <component-mapper name=\"MultiReferenceReadOnly\" [props]=\"{ pConn$: firstChildPConnect() }\"></component-mapper>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i2.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
|
|
230
233
|
}
|
|
231
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
234
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: DataReferenceComponent, decorators: [{
|
|
232
235
|
type: Component,
|
|
233
236
|
args: [{ selector: 'app-data-reference', standalone: true, imports: [CommonModule, forwardRef(() => ComponentMapperComponent)], template: "<div *ngIf=\"childrenToRender && childrenToRender.length > 0\">\n <div *ngIf=\"!displayMultiRef\">\n <div *ngFor=\"let kid of childrenToRender\">\n <component-mapper [name]=\"kid?.getPConnect().getComponentName()\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n <div *ngIf=\"displaySingleRef\">\n <component-mapper name=\"SingleReferenceReadOnly\" [props]=\"{ pConn$: firstChildPConnect() }\"></component-mapper>\n </div>\n <div *ngIf=\"displayMultiRef\">\n <component-mapper name=\"MultiReferenceReadOnly\" [props]=\"{ pConn$: firstChildPConnect() }\"></component-mapper>\n </div>\n</div>\n" }]
|
|
234
|
-
}], ctorParameters:
|
|
237
|
+
}], ctorParameters: () => [{ type: i1.AngularPConnectService }], propDecorators: { pConn$: [{
|
|
235
238
|
type: Input
|
|
236
239
|
}], formGroup$: [{
|
|
237
240
|
type: Input
|
|
238
241
|
}] } });
|
|
239
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1yZWZlcmVuY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL3RlbXBsYXRlL2RhdGEtcmVmZXJlbmNlL2RhdGEtcmVmZXJlbmNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9kYXRhLXJlZmVyZW5jZS9kYXRhLXJlZmVyZW5jZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRy9DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOzs7O0FBRXhHLE1BQU0sY0FBYyxHQUFHLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFTNUQsTUFBTSxPQUFPLHNCQUFzQjtJQTJCakMsWUFBb0IsZUFBdUM7UUFBdkMsb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBdkIzRCw0QkFBNEI7UUFDNUIsd0JBQW1CLEdBQXdCLEVBQUUsQ0FBQztRQUU5QyxjQUFTLEdBQVUsRUFBRSxDQUFDO1FBQ3RCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBRW5CLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIscUJBQWdCLEdBQVUsRUFBRSxDQUFDO1FBQzdCLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUN4Qix5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDN0IsZUFBVSxHQUFRLEVB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LENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSTtvQkFDeEgsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO29CQUN6QixjQUFjLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2lCQUNoRDthQUNGLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzsrR0FsUVUsc0JBQXNCO21HQUF0QixzQkFBc0Isc0lDZm5DLHVwQkFhQSw0RkRBWSxZQUFZLHFYQUFtQix3QkFBd0I7OzRGQUV0RCxzQkFBc0I7a0JBUGxDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBR2xCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQzs2R0FHMUQsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIGZvcndhcmRSZWYsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFuZ3VsYXJQQ29ubmVjdERhdGEsIEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2FuZ3VsYXItcGNvbm5lY3QnO1xuaW1wb3J0IHsgQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9jb21wb25lbnQtbWFwcGVyL2NvbXBvbmVudC1tYXBwZXIuY29tcG9uZW50JztcblxuY29uc3QgU0VMRUNUSU9OX01PREUgPSB7IFNJTkdMRTogJ3NpbmdsZScsIE1VTFRJOiAnbXVsdGknIH07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1kYXRhLXJlZmVyZW5jZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhLXJlZmVyZW5jZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGEtcmVmZXJlbmNlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIGZvcndhcmRSZWYoKCkgPT4gQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50KV1cbn0pXG5leHBvcnQgY2xhc3MgRGF0YVJlZmVyZW5jZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcENvbm4kOiB0eXBlb2YgUENvbm5lY3Q7XG4gIEBJbnB1dCgpIGZvcm1Hcm91cCQ6IEZvcm1Hcm91cDtcblxuICAvLyBVc2VkIHdpdGggQW5ndWxhclBDb25uZWN0XG4gIGFuZ3VsYXJQQ29ubmVjdERhdGE6IEFuZ3VsYXJQQ29ubmVjdERhdGEgPSB7fTtcblxuICBhckZpZWxkcyQ6IGFueVtdID0gW107XG4gIHJlZmVyZW5jZVR5cGUgPSAnJztcbiAgc2VsZWN0aW9uTW9kZSA9ICcnO1xuICBwYXJhbWV0ZXJzO1xuICBoaWRlTGFiZWwgPSBmYWxzZTtcbiAgY2hpbGRyZW5Ub1JlbmRlcjogYW55W10gPSBbXTtcbiAgZHJvcERvd25EYXRhU291cmNlID0gJyc7XG4gIGlzRGlzcGxheU1vZGVFbmFibGVkID0gZmFsc2U7XG4gIHByb3BzVG9Vc2U6IGFueSA9IHt9O1xuICByYXdWaWV3TWV0YWRhdGE6IGFueSA9IHt9O1xuICB2aWV3TmFtZSA9ICcnO1xuICBmaXJzdENoaWxkTWV0YTogYW55ID0ge307XG4gIGNhbkJlQ2hhbmdlZEluUmV2aWV3TW9kZSA9IGZhbHNlO1xuICBwcm9wTmFtZSA9ICcnO1xuICBmaXJzdENoaWxkUENvbm5lY3Q7XG4gIGNoaWxkcmVuO1xuICBkaXNwbGF5U2luZ2xlUmVmOiBib29sZWFuO1xuICBkaXNwbGF5TXVsdGlSZWY6IGJvb2xlYW47XG4gIHJlZkxpc3Q6IGFueTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFuZ3VsYXJQQ29ubmVjdDogQW5ndWxhclBDb25uZWN0U2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBGaXJzdCB0aGluZyBpbiBpbml0aWFsaXphdGlvbiBpcyByZWdpc3RlcmluZyBhbmQgc3Vic2NyaWJpbmcgdG8gdGhlIEFuZ3VsYXJQQ29ubmVjdCBzZXJ2aWNlXG4gICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhID0gdGhpcy5hbmd1bGFyUENvbm5lY3QucmVnaXN0ZXJBbmRTdWJzY3JpYmVDb21wb25lbnQodGhpcywgdGhpcy5vblN0YXRlQ2hhbmdlKTtcbiAgICB0aGlzLmNoaWxkcmVuID0gdGhpcy5wQ29ubiQuZ2V0Q2hpbGRyZW4oKSBhcyBhbnlbXTtcbiAgICB0aGlzLnVwZGF0ZVNlbGYoKTtcbiAgICBpZiAodGhpcy5maXJzdENoaWxkTWV0YT8udHlwZSA9PT0gJ0Ryb3Bkb3duJyAmJiB0aGlzLnJhd1ZpZXdNZXRhZGF0YS5jb25maWc/LnBhcmFtZXRlcnMpIHtcbiAgICAgIGNvbnN0IHsgdmFsdWUsIGtleSwgdGV4dCB9ID0gdGhpcy5maXJzdENoaWxkTWV0YS5jb25maWcuZGF0YXNvdXJjZS5maWVsZHM7XG4gICAgICAoXG4gICAgICAgIFBDb3JlLmdldERhdGFBcGlVdGlscygpLmdldERhdGEoXG4gICAgICAgICAgdGhpcy5yZWZMaXN0LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGRhdGFWaWV3UGFyYW1ldGVyczogdGhpcy5wYXJhbWV0ZXJzXG4gICAgICAgICAgfSBhcyBhbnksXG4gICAgICAgICAgJydcbiAgICAgICAgKSBhcyBQcm9taXNlPGFueT5cbiAgICAgIClcbiAgICAgICAgLnRoZW4ocmVzID0+IHtcbiAgICAgICAgICBpZiAocmVzLmRhdGEuZGF0YSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgZGREYXRhU291cmNlID0gcmVzLmRhdGEuZGF0YVxuICAgICAgICAgICAgICAubWFwKGxpc3RJdGVtID0+ICh7XG4gICAgICAgICAgICAgICAga2V5OiBsaXN0SXRlbVtrZXkuc3BsaXQoJyAuJywgMilbMV1dLFxuICAgICAgICAgICAgICAgIHRleHQ6IGxpc3RJdGVtW3RleHQuc3BsaXQoJyAuJywgMilbMV1dLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBsaXN0SXRlbVt2YWx1ZS5zcGxpdCgnIC4nLCAyKVsxXV1cbiAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgIC5maWx0ZXIoaXRlbSA9PiBpdGVtLmtleSk7XG4gICAgICAgICAgICAvLyBGaWx0ZXJpbmcgb3V0IHVuZGVmaW5lZCBlbnRyaWVzIHRoYXQgd2lsbCBicmVhayBwcmV2aWV3XG4gICAgICAgICAgICB0aGlzLmRyb3BEb3duRGF0YVNvdXJjZSA9IGRkRGF0YVNvdXJjZTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlU2VsZigpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBkZERhdGFTb3VyY2U6IGFueSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5kcm9wRG93bkRhdGFTb3VyY2UgPSBkZERhdGFTb3VyY2U7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgICAgICAgZGF0YTogeyBkYXRhOiBbXSB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbikge1xuICAgICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4oKTtcbiAgICB9XG4gIH1cblxuICAvLyBDYWxsYmFjayBwYXNzZWQgd2hlbiBzdWJzY3JpYmluZyB0byBzdG9yZSBjaGFuZ2VcbiAgb25TdGF0ZUNoYW5nZSgpIHtcbiAgICAvLyBTaG91bGQgYWx3YXlzIGNoZWNrIHRoZSBicmlkZ2UgdG8gc2VlIGlmIHRoZSBjb21wb25lbnQgc2hvdWxkXG4gICAgLy8gdXBkYXRlIGl0c2VsZiAocmUtcmVuZGVyKVxuICAgIGNvbnN0IGJVcGRhdGVTZWxmID0gdGhpcy5hbmd1bGFyUENvbm5lY3Quc2hvdWxkQ29tcG9uZW50VXBkYXRlKHRoaXMpO1xuXG4gICAgLy8gT05MWSBjYWxsIHVwZGF0ZVNlbGYgd2hlbiB0aGUgY29tcG9uZW50IHNob3VsZCB1cGRhdGVcbiAgICBpZiAoYlVwZGF0ZVNlbGYpIHtcbiAgICAgIHRoaXMudXBkYXRlU2VsZigpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVNlbGYoKSB7XG4gICAgLy8gVXBkYXRlIHByb3BlcnRpZXMgYmFzZWQgb24gY29uZmlnUHJvcHNcbiAgICBjb25zdCB0aGVDb25maWdQcm9wczogYW55ID0gdGhpcy5wQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKTtcbiAgICB0aGlzLnVwZGF0ZVByb3BlcnRpZXNGcm9tUHJvcHModGhlQ29uZmlnUHJvcHMpO1xuXG4gICAgY29uc3QgZGlzcGxheUFzID0gdGhlQ29uZmlnUHJvcHMuZGlzcGxheUFzO1xuICAgIGNvbnN0IGRpc3BsYXlNb2RlID0gdGhlQ29uZmlnUHJvcHMuZGlzcGxheU1vZGU7XG4gICAgdGhpcy5yYXdWaWV3TWV0YWRhdGEgPSB0aGlzLnBDb25uJC5nZXRSYXdNZXRhZGF0YSgpO1xuICAgIHRoaXMudmlld05hbWUgPSB0aGlzLnJhd1ZpZXdNZXRhZGF0YS5uYW1lO1xuICAgIHRoaXMuZmlyc3RDaGlsZE1ldGEgPSB0aGlzLnJhd1ZpZXdNZXRhZGF0YS5jaGlsZHJlblswXTtcbiAgICB0aGlzLnJlZkxpc3QgPSB0aGlzLnJhd1ZpZXdNZXRhZGF0YS5jb25maWcucmVmZXJlbmNlTGlzdDtcbiAgICB0aGlzLmNhbkJlQ2hhbmdlZEluUmV2aWV3TW9kZSA9IHRoZUNvbmZpZ1Byb3BzLmFsbG93QW5kUGVyc2lzdENoYW5nZXNJblJldmlld01vZGUgJiYgKGRpc3BsYXlBcyA9PT0gJ2F1dG9jb21wbGV0ZScgfHwgZGlzcGxheUFzID09PSAnZHJvcGRvd24nKTtcbiAgICAvLyB0aGlzLmNoaWxkcmVuVG9SZW5kZXIgPSB0aGlzLmNoaWxkcmVuO1xuICAgIHRoaXMuaXNEaXNwbGF5TW9kZUVuYWJsZWQgPSBbJ0xBQkVMU19MRUZUJywgJ1NUQUNLRURfTEFSR0VfVkFMJ10uaW5jbHVkZXMoZGlzcGxheU1vZGUpO1xuXG4gICAgaWYgKHRoaXMuZmlyc3RDaGlsZE1ldGE/LnR5cGUgIT09ICdSZWdpb24nKSB7XG4gICAgICB0aGlzLmZpcnN0Q2hpbGRQQ29ubmVjdCA9IHRoaXMucENvbm4kLmdldENoaWxkcmVuKClbMF0uZ2V0UENvbm5lY3Q7XG5cbiAgICAgIC8qIHJlbW92ZSByZWZyZXNoIFdoZW4gY29uZGl0aW9uIGZyb20gdGhvc2Ugb2xkIHZpZXcgc28gdGhhdCBpdCB3aWxsIG5vdCBiZSB1c2VkIGZvciBydW50aW1lICovXG4gICAgICBpZiAodGhpcy5maXJzdENoaWxkTWV0YS5jb25maWc/LnJlYWRPbmx5KSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmZpcnN0Q2hpbGRNZXRhLmNvbmZpZy5yZWFkT25seTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmZpcnN0Q2hpbGRNZXRhPy50eXBlID09PSAnRHJvcGRvd24nKSB7XG4gICAgICAgIHRoaXMuZmlyc3RDaGlsZE1ldGEuY29uZmlnLmRhdGFzb3VyY2Uuc291cmNlID0gdGhpcy5yYXdWaWV3TWV0YWRhdGEuY29uZmlnPy5wYXJhbWV0ZXJzXG4gICAgICAgICAgPyB0aGlzLmRyb3BEb3duRGF0YVNvdXJjZVxuICAgICAgICAgIDogJ0BEQVRBU09VUkNFICcuY29uY2F0KHRoaXMucmVmTGlzdCkuY29uY2F0KCcucHhSZXN1bHRzJyk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuZmlyc3RDaGlsZE1ldGE/LnR5cGUgPT09ICdBdXRvQ29tcGxldGUnKSB7XG4gICAgICAgIHRoaXMuZmlyc3RDaGlsZE1ldGEuY29uZmlnLmRhdGFzb3VyY2UgPSB0aGlzLnJlZkxpc3Q7XG5cbiAgICAgICAgLyogSW5zZXJ0IHRoZSBwYXJhbWV0ZXJzIHRvIHRoZSBjb21wb25lbnQgb25seSBpZiBwcmVzZW50ICovXG4gICAgICAgIGlmICh0aGlzLnJhd1ZpZXdNZXRhZGF0YS5jb25maWc/LnBhcmFtZXRlcnMpIHtcbiAgICAgICAgICB0aGlzLmZpcnN0Q2hpbGRNZXRhLmNvbmZpZy5wYXJhbWV0ZXJzID0gdGhpcy5wYXJhbWV0ZXJzO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBzZXQgZGlzcGxheU1vZGUgY29uZGl0aW9uYWxseVxuICAgICAgaWYgKCF0aGlzLmNhbkJlQ2hhbmdlZEluUmV2aWV3TW9kZSkge1xuICAgICAgICB0aGlzLmZpcnN0Q2hpbGRNZXRhLmNvbmZpZy5kaXNwbGF5TW9kZSA9IGRpc3BsYXlNb2RlO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuZmlyc3RDaGlsZE1ldGEudHlwZSA9PT0gJ1NpbXBsZVRhYmxlU2VsZWN0JyAmJiB0aGlzLnNlbGVjdGlvbk1vZGUgPT09IFNFTEVDVElPTl9NT0RFLk1VTFRJKSB7XG4gICAgICAgIHRoaXMucHJvcE5hbWUgPSBQQ29yZS5nZXRBbm5vdGF0aW9uVXRpbHMoKS5nZXRQcm9wZXJ0eU5hbWUodGhpcy5maXJzdENoaWxkTWV0YS5jb25maWcuc2VsZWN0aW9uTGlzdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnByb3BOYW1lID0gUENvcmUuZ2V0QW5ub3RhdGlvblV0aWxzKCkuZ2V0UHJvcGVydHlOYW1lKHRoaXMuZmlyc3RDaGlsZE1ldGEuY29uZmlnLnZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5nZW5lcmF0ZUNoaWxkcmVuVG9SZW5kZXIoKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVQcm9wZXJ0aWVzRnJvbVByb3BzKHRoZUNvbmZpZ1Byb3BzKSB7XG4gICAgY29uc3QgbGFiZWwgPSB0aGVDb25maWdQcm9wcy5sYWJlbDtcbiAgICBjb25zdCBzaG93TGFiZWwgPSB0aGVDb25maWdQcm9wcy5zaG93TGFiZWw7XG4gICAgdGhpcy5yZWZlcmVuY2VUeXBlID0gdGhlQ29uZmlnUHJvcHMucmVmZXJlbmNlVHlwZTtcbiAgICB0aGlzLnNlbGVjdGlvbk1vZGUgPSB0aGVDb25maWdQcm9wcy5zZWxlY3Rpb25Nb2RlO1xuICAgIHRoaXMucGFyYW1ldGVycyA9IHRoZUNvbmZpZ1Byb3BzLnBhcmFtZXRlcnM7XG4gICAgdGhpcy5oaWRlTGFiZWwgPSB0aGVDb25maWdQcm9wcy5oaWRlTGFiZWw7XG5cbiAgICB0aGlzLnByb3BzVG9Vc2UgPSB7IGxhYmVsLCBzaG93TGFiZWwsIC4uLnRoaXMucENvbm4kLmdldEluaGVyaXRlZFByb3BzKCkgfTtcbiAgICBpZiAodGhpcy5wcm9wc1RvVXNlLnNob3dMYWJlbCA9PT0gZmFsc2UpIHtcbiAgICAgIHRoaXMucHJvcHNUb1VzZS5sYWJlbCA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIGdlbmVyYXRlQ2hpbGRyZW5Ub1JlbmRlcigpIHtcbiAgICBjb25zdCB0aGVSZWNyZWF0ZWRGaXJzdENoaWxkID0gdGhpcy5yZWNyZWF0ZWRGaXJzdENoaWxkKCk7XG4gICAgY29uc3Qgdmlld3NSZWdpb24gPSB0aGlzLnJhd1ZpZXdNZXRhZGF0YS5jaGlsZHJlblsxXTtcbiAgICBpZiAodmlld3NSZWdpb24/Lm5hbWUgPT09ICdWaWV3cycgJiYgdmlld3NSZWdpb24uY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICB0aGlzLmNoaWxkcmVuVG9SZW5kZXIgPSBbdGhlUmVjcmVhdGVkRmlyc3RDaGlsZCwgLi4udGhpcy5jaGlsZHJlbi5zbGljZSgxKV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2hpbGRyZW5Ub1JlbmRlciA9IFt0aGVSZWNyZWF0ZWRGaXJzdENoaWxkXTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVTZWxlY3Rpb24oZXZlbnQpIHtcbiAgICBjb25zdCBjYXNlS2V5ID0gdGhpcy5wQ29ubiQuZ2V0Q2FzZUluZm8oKS5nZXRLZXkoKTtcbiAgICBjb25zdCByZWZyZXNoT3B0aW9ucyA9IHsgYXV0b0RldGVjdFJlZnJlc2g6IHRydWUgfTtcbiAgICAvLyBAdHMtaWdub3JlIC0gc2Vjb25kIHBhcmFtZXRlciBwYWdlUmVmZXJlbmNlIGZvciBnZXRWYWx1ZSBtZXRob2Qgc2hvdWxkIGJlIG9wdGlvbmFsXG4gICAgaWYgKHRoaXMuY2FuQmVDaGFuZ2VkSW5SZXZpZXdNb2RlICYmIHRoaXMucENvbm4kLmdldFZhbHVlKCdfX2N1cnJlbnRQYWdlVGFiVmlld05hbWUnKSkge1xuICAgICAgLy8gQHRzLWlnbm9yZSAtIHNlY29uZCBwYXJhbWV0ZXIgcGFnZVJlZmVyZW5jZSBmb3IgZ2V0VmFsdWUgbWV0aG9kIHNob3VsZCBiZSBvcHRpb25hbFxuICAgICAgdGhpcy5wQ29ubiQuZ2V0QWN0aW9uc0FwaSgpLnJlZnJlc2hDYXNlVmlldyhjYXNlS2V5LCB0aGlzLnBDb25uJC5nZXRWYWx1ZSgnX19jdXJyZW50UGFnZVRhYlZpZXdOYW1lJyksIG51bGwsIHJlZnJlc2hPcHRpb25zKTtcbiAgICAgIFBDb3JlLmdldERlZmVyTG9hZE1hbmFnZXIoKS5yZWZyZXNoQWN0aXZlQ29tcG9uZW50cyh0aGlzLnBDb25uJC5nZXRDb250ZXh0TmFtZSgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcGdSZWYgPSB0aGlzLnBDb25uJC5nZXRQYWdlUmVmZXJlbmNlKCkucmVwbGFjZSgnY2FzZUluZm8uY29udGVudCcsICcnKTtcbiAgICAgIHRoaXMucENvbm4kLmdldEFjdGlvbnNBcGkoKS5yZWZyZXNoQ2FzZVZpZXcoY2FzZUtleSwgdGhpcy52aWV3TmFtZSwgcGdSZWYsIHJlZnJlc2hPcHRpb25zKTtcbiAgICB9XG5cbiAgICAvLyBBdXRvQ29tcGxldGUgc2V0cyB2YWx1ZSBvbiBldmVudC5pZCB3aGVyZWFzIERyb3Bkb3duIHNldHMgaXQgb24gZXZlbnQudGFyZ2V0LnZhbHVlXG4gICAgY29uc3QgcHJvcFZhbHVlID0gZXZlbnQ/LmlkIHx8IGV2ZW50Py50YXJnZXQ/LnZhbHVlO1xuICAgIGlmIChwcm9wVmFsdWUgJiYgdGhpcy5jYW5CZUNoYW5nZWRJblJldmlld01vZGUgJiYgdGhpcy5pc0Rpc3BsYXlNb2RlRW5hYmxlZCkge1xuICAgICAgKFBDb3JlLmdldERhdGFBcGlVdGlscygpLmdldENhc2VFZGl0TG9jayhjYXNlS2V5LCAnJykgYXMgUHJvbWlzZTxhbnk+KS50aGVuKGNhc2VSZXNwb25zZSA9PiB7XG4gICAgICAgIGNvbnN0IHBhZ2VUb2tlbnMgPSB0aGlzLnBDb25uJC5nZXRQYWdlUmVmZXJlbmNlKCkucmVwbGFjZSgnY2FzZUluZm8uY29udGVudCcsICcnKS5zcGxpdCgnLicpO1xuICAgICAgICBsZXQgY3VyciA9IHt9O1xuICAgICAgICBjb25zdCBjb21taXREYXRhID0gY3VycjtcblxuICAgICAgICBwYWdlVG9rZW5zLmZvckVhY2goZWwgPT4ge1xuICAgICAgICAgIGlmIChlbCAhPT0gJycpIHtcbiAgICAgICAgICAgIGN1cnJbZWxdID0ge307XG4gICAgICAgICAgICBjdXJyID0gY3VycltlbF07XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBleHBlY3RpbmcgZm9ybWF0IGxpa2Uge0N1c3RvbWVyOiB7cHlJRDpcIkMtMTAwXCJ9fVxuICAgICAgICBjb25zdCBwcm9wQXJyID0gdGhpcy5wcm9wTmFtZS5zcGxpdCgnLicpO1xuICAgICAgICBwcm9wQXJyLmZvckVhY2goKGVsZW1lbnQsIGlkeCkgPT4ge1xuICAgICAgICAgIGlmIChpZHggKyAxID09PSBwcm9wQXJyLmxlbmd0aCkge1xuICAgICAgICAgICAgY3VycltlbGVtZW50XSA9IHByb3BWYWx1ZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY3VycltlbGVtZW50XSA9IHt9O1xuICAgICAgICAgICAgY3VyciA9IGN1cnJbZWxlbWVudF07XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAoXG4gICAgICAgICAgUENvcmUuZ2V0Q2FzZVV0aWxzKCkudXBkYXRlQ2FzZUVkaXRGaWVsZHNEYXRhKFxuICAgICAgICAgICAgY2FzZUtleSxcbiAgICAgICAgICAgIHsgW2Nhc2VLZXldOiBjb21taXREYXRhIH0sXG4gICAgICAgICAgICBjYXNlUmVzcG9uc2UuaGVhZGVycy5ldGFnLFxuICAgICAgICAgICAgdGhpcy5wQ29ubiQuZ2V0Q29udGV4dE5hbWUoKVxuICAgICAgICAgICkgYXMgUHJvbWlzZTxhbnk+XG4gICAgICAgICkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgUENvcmUuZ2V0Q29udGFpbmVyVXRpbHMoKS51cGRhdGVQYXJlbnRMYXN0VXBkYXRlVGltZSh0aGlzLnBDb25uJC5nZXRDb250ZXh0TmFtZSgpLCByZXNwb25zZS5kYXRhLmRhdGEuY2FzZUluZm8ubGFzdFVwZGF0ZVRpbWUpO1xuICAgICAgICAgIFBDb3JlLmdldENvbnRhaW5lclV0aWxzKCkudXBkYXRlUmVsYXRlZENvbnRleHRFdGFnKHRoaXMucENvbm4kLmdldENvbnRleHROYW1lKCksIHJlc3BvbnNlLmhlYWRlcnMuZXRhZyk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gUmUtY3JlYXRlIGZpcnN0IGNoaWxkIHdpdGggb3ZlcnJpZGRlbiBwcm9wc1xuICAvLyBNZW1vaXplZCBjaGlsZCBpbiBvcmRlciB0byBzdG9wIHVubW91bnQgYW5kIHJlbW91bnQgb2YgdGhlIGNoaWxkIGNvbXBvbmVudCB3aGVuIGRhdGEgcmVmZXJlbmNlXG4gIC8vIHJlcmVuZGVycyB3aXRob3V0IGFueSBhY3R1YWwgY2hhbmdlXG4gIHJlY3JlYXRlZEZpcnN0Q2hpbGQoKSB7XG4gICAgY29uc3QgeyB0eXBlLCBjb25maWcgfSA9IHRoaXMuZmlyc3RDaGlsZE1ldGE7XG4gICAgaWYgKHRoaXMuZmlyc3RDaGlsZE1ldGE/LnR5cGUgIT09ICdSZWdpb24nKSB7XG4gICAgICB0aGlzLnBDb25uJC5jbGVhckVycm9yTWVzc2FnZXMoe1xuICAgICAgICBwcm9wZXJ0eTogdGhpcy5wcm9wTmFtZSxcbiAgICAgICAgY2F0ZWdvcnk6ICcnLFxuICAgICAgICBjb250ZXh0OiAnJ1xuICAgICAgfSBhcyBhbnkpO1xuICAgICAgaWYgKCF0aGlzLmNhbkJlQ2hhbmdlZEluUmV2aWV3TW9kZSAmJiB0aGlzLmlzRGlzcGxheU1vZGVFbmFibGVkICYmIHRoaXMuc2VsZWN0aW9uTW9kZSA9PT0gU0VMRUNUSU9OX01PREUuU0lOR0xFKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheVNpbmdsZVJlZiA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmlzRGlzcGxheU1vZGVFbmFibGVkICYmIHRoaXMuc2VsZWN0aW9uTW9kZSA9PT0gU0VMRUNUSU9OX01PREUuTVVMVEkpIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5TXVsdGlSZWYgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICAvLyBJbiB0aGUgY2FzZSBvZiBhIGRhdGFzb3VyY2Ugd2l0aCBwYXJhbWV0ZXJzIHlvdSBjYW5ub3QgbG9hZCB0aGUgZHJvcGRvd24gYmVmb3JlIHRoZSBwYXJhbWV0ZXJzXG4gICAgICBpZiAodHlwZSA9PT0gJ0Ryb3Bkb3duJyAmJiB0aGlzLnJhd1ZpZXdNZXRhZGF0YS5jb25maWc/LnBhcmFtZXRlcnMgJiYgdGhpcy5kcm9wRG93bkRhdGFTb3VyY2UgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLmZpcnN0Q2hpbGRQQ29ubmVjdCgpLmNyZWF0ZUNvbXBvbmVudCh7XG4gICAgICAgIHR5cGUsXG4gICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgICByZXF1aXJlZDogdGhpcy5wcm9wc1RvVXNlLnJlcXVpcmVkLFxuICAgICAgICAgIHZpc2liaWxpdHk6IHRoaXMucHJvcHNUb1VzZS52aXNpYmlsaXR5LFxuICAgICAgICAgIGRpc2FibGVkOiB0aGlzLnByb3BzVG9Vc2UuZGlzYWJsZWQsXG4gICAgICAgICAgbGFiZWw6IHRoaXMucHJvcHNUb1VzZS5sYWJlbCxcbiAgICAgICAgICB2aWV3TmFtZTogdGhpcy5wQ29ubiQuZ2V0Q3VycmVudFZpZXcoKSxcbiAgICAgICAgICBwYXJhbWV0ZXJzOiB0aGlzLnJhd1ZpZXdNZXRhZGF0YS5jb25maWcucGFyYW1ldGVycyxcbiAgICAgICAgICByZWFkT25seTogZmFsc2UsXG4gICAgICAgICAgbG9jYWxlUmVmZXJlbmNlOiB0aGlzLnJhd1ZpZXdNZXRhZGF0YS5jb25maWcubG9jYWxlUmVmZXJlbmNlLFxuICAgICAgICAgIC4uLih0aGlzLnNlbGVjdGlvbk1vZGUgPT09IFNFTEVDVElPTl9NT0RFLlNJTkdMRSA/IHsgcmVmZXJlbmNlVHlwZTogdGhpcy5yZWZlcmVuY2VUeXBlIH0gOiAnJyksXG4gICAgICAgICAgZGF0YVJlbGF0aW9uc2hpcENvbnRleHQ6XG4gICAgICAgICAgICB0aGlzLnJhd1ZpZXdNZXRhZGF0YS5jb25maWcuY29udGV4dENsYXNzICYmIHRoaXMucmF3Vmlld01ldGFkYXRhLmNvbmZpZy5uYW1lID8gdGhpcy5yYXdWaWV3TWV0YWRhdGEuY29uZmlnLm5hbWUgOiBudWxsLFxuICAgICAgICAgIGhpZGVMYWJlbDogdGhpcy5oaWRlTGFiZWwsXG4gICAgICAgICAgb25SZWNvcmRDaGFuZ2U6IHRoaXMuaGFuZGxlU2VsZWN0aW9uLmJpbmQodGhpcylcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiY2hpbGRyZW5Ub1JlbmRlciAmJiBjaGlsZHJlblRvUmVuZGVyLmxlbmd0aCA+IDBcIj5cbiAgPGRpdiAqbmdJZj1cIiFkaXNwbGF5TXVsdGlSZWZcIj5cbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBraWQgb2YgY2hpbGRyZW5Ub1JlbmRlclwiPlxuICAgICAgPGNvbXBvbmVudC1tYXBwZXIgW25hbWVdPVwia2lkPy5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKVwiIFtwcm9wc109XCJ7IHBDb25uJDoga2lkLmdldFBDb25uZWN0KCksIGZvcm1Hcm91cCQgfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJkaXNwbGF5U2luZ2xlUmVmXCI+XG4gICAgPGNvbXBvbmVudC1tYXBwZXIgbmFtZT1cIlNpbmdsZVJlZmVyZW5jZVJlYWRPbmx5XCIgW3Byb3BzXT1cInsgcENvbm4kOiBmaXJzdENoaWxkUENvbm5lY3QoKSB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cImRpc3BsYXlNdWx0aVJlZlwiPlxuICAgIDxjb21wb25lbnQtbWFwcGVyIG5hbWU9XCJNdWx0aVJlZmVyZW5jZVJlYWRPbmx5XCIgW3Byb3BzXT1cInsgcENvbm4kOiBmaXJzdENoaWxkUENvbm5lY3QoKSB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
242
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1yZWZlcmVuY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL3RlbXBsYXRlL2RhdGEtcmVmZXJlbmNlL2RhdGEtcmVmZXJlbmNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9kYXRhLXJlZmVyZW5jZS9kYXRhLXJlZmVyZW5jZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRy9DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOzs7O0FBRXhHLE1BQU0sY0FBYyxHQUFHLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFTNUQsTUFBTSxPQUFPLHNCQUFzQjtJQTJCakMsWUFBb0IsZUFBdUM7UUFBdkMsb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBdkIzRCw0QkFBNEI7UUFDNUIsd0JBQW1CLEdBQXdCLEVBQUUsQ0FBQztRQUU5QyxjQUFTLEdBQVUsRUFBRSxDQUFDO1FBQ3RCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBRW5CLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIscUJBQWdCLEdBQVUsRUFBRSxDQUFDO1FBQzdCLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUN4Qix5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDN0IsZUFBVSxHQUFRLEVB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ZSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLGVBQWU7b0JBQzVELEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxLQUFLLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUM5Rix1QkFBdUIsRUFDckIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJO29CQUN4SCxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7b0JBQ3pCLGNBQWMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7aUJBQ2hEO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7K0dBNVBVLHNCQUFzQjttR0FBdEIsc0JBQXNCLHNJQ2ZuQyx1cEJBYUEsNkVEQVksWUFBWSwrVEFBbUIsd0JBQXdCOzs0RkFFdEQsc0JBQXNCO2tCQVBsQyxTQUFTOytCQUNFLG9CQUFvQixjQUdsQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDLENBQUM7MkZBRzFELE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBmb3J3YXJkUmVmLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBbmd1bGFyUENvbm5lY3REYXRhLCBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9hbmd1bGFyLXBjb25uZWN0JztcbmltcG9ydCB7IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvY29tcG9uZW50LW1hcHBlci9jb21wb25lbnQtbWFwcGVyLmNvbXBvbmVudCc7XG5cbmNvbnN0IFNFTEVDVElPTl9NT0RFID0geyBTSU5HTEU6ICdzaW5nbGUnLCBNVUxUSTogJ211bHRpJyB9O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZGF0YS1yZWZlcmVuY2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS1yZWZlcmVuY2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRhLXJlZmVyZW5jZS5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBmb3J3YXJkUmVmKCgpID0+IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCldXG59KVxuZXhwb3J0IGNsYXNzIERhdGFSZWZlcmVuY2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHBDb25uJDogdHlwZW9mIFBDb25uZWN0O1xuICBASW5wdXQoKSBmb3JtR3JvdXAkOiBGb3JtR3JvdXA7XG5cbiAgLy8gVXNlZCB3aXRoIEFuZ3VsYXJQQ29ubmVjdFxuICBhbmd1bGFyUENvbm5lY3REYXRhOiBBbmd1bGFyUENvbm5lY3REYXRhID0ge307XG5cbiAgYXJGaWVsZHMkOiBhbnlbXSA9IFtdO1xuICByZWZlcmVuY2VUeXBlID0gJyc7XG4gIHNlbGVjdGlvbk1vZGUgPSAnJztcbiAgcGFyYW1ldGVycztcbiAgaGlkZUxhYmVsID0gZmFsc2U7XG4gIGNoaWxkcmVuVG9SZW5kZXI6IGFueVtdID0gW107XG4gIGRyb3BEb3duRGF0YVNvdXJjZSA9ICcnO1xuICBpc0Rpc3BsYXlNb2RlRW5hYmxlZCA9IGZhbHNlO1xuICBwcm9wc1RvVXNlOiBhbnkgPSB7fTtcbiAgcmF3Vmlld01ldGFkYXRhOiBhbnkgPSB7fTtcbiAgdmlld05hbWUgPSAnJztcbiAgZmlyc3RDaGlsZE1ldGE6IGFueSA9IHt9O1xuICBjYW5CZUNoYW5nZWRJblJldmlld01vZGUgPSBmYWxzZTtcbiAgcHJvcE5hbWUgPSAnJztcbiAgZmlyc3RDaGlsZFBDb25uZWN0O1xuICBjaGlsZHJlbjtcbiAgZGlzcGxheVNpbmdsZVJlZjogYm9vbGVhbjtcbiAgZGlzcGxheU11bHRpUmVmOiBib29sZWFuO1xuICByZWZMaXN0OiBhbnk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhbmd1bGFyUENvbm5lY3Q6IEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gRmlyc3QgdGhpbmcgaW4gaW5pdGlhbGl6YXRpb24gaXMgcmVnaXN0ZXJpbmcgYW5kIHN1YnNjcmliaW5nIHRvIHRoZSBBbmd1bGFyUENvbm5lY3Qgc2VydmljZVxuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YSA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnJlZ2lzdGVyQW5kU3Vic2NyaWJlQ29tcG9uZW50KHRoaXMsIHRoaXMub25TdGF0ZUNoYW5nZSk7XG4gICAgdGhpcy5jaGlsZHJlbiA9IHRoaXMucENvbm4kLmdldENoaWxkcmVuKCk7XG4gICAgdGhpcy51cGRhdGVTZWxmKCk7XG4gICAgaWYgKHRoaXMuZmlyc3RDaGlsZE1ldGE/LnR5cGUgPT09ICdEcm9wZG93bicgJiYgdGhpcy5yYXdWaWV3TWV0YWRhdGEuY29uZmlnPy5wYXJhbWV0ZXJzKSB7XG4gICAgICBjb25zdCB7IHZhbHVlLCBrZXksIHRleHQgfSA9IHRoaXMuZmlyc3RDaGlsZE1ldGEuY29uZmlnLmRhdGFzb3VyY2UuZmllbGRzO1xuICAgICAgUENvcmUuZ2V0RGF0YUFwaVV0aWxzKClcbiAgICAgICAgLmdldERhdGEoXG4gICAgICAgICAgdGhpcy5yZWZMaXN0LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGRhdGFWaWV3UGFyYW1ldGVyczogdGhpcy5wYXJhbWV0ZXJzXG4gICAgICAgICAgfSxcbiAgICAgICAgICAnJ1xuICAgICAgICApXG4gICAgICAgIC50aGVuKHJlcyA9PiB7XG4gICAgICAgICAgaWYgKHJlcy5kYXRhLmRhdGEgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IGRkRGF0YVNvdXJjZSA9IHJlcy5kYXRhLmRhdGFcbiAgICAgICAgICAgICAgLm1hcChsaXN0SXRlbSA9PiAoe1xuICAgICAgICAgICAgICAgIGtleTogbGlzdEl0ZW1ba2V5LnNwbGl0KCcgLicsIDIpWzFdXSxcbiAgICAgICAgICAgICAgICB0ZXh0OiBsaXN0SXRlbVt0ZXh0LnNwbGl0KCcgLicsIDIpWzFdXSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogbGlzdEl0ZW1bdmFsdWUuc3BsaXQoJyAuJywgMilbMV1dXG4gICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAuZmlsdGVyKGl0ZW0gPT4gaXRlbS5rZXkpO1xuICAgICAgICAgICAgLy8gRmlsdGVyaW5nIG91dCB1bmRlZmluZWQgZW50cmllcyB0aGF0IHdpbGwgYnJlYWsgcHJldmlld1xuICAgICAgICAgICAgdGhpcy5kcm9wRG93bkRhdGFTb3VyY2UgPSBkZERhdGFTb3VyY2U7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVNlbGYoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZGREYXRhU291cmNlOiBhbnkgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuZHJvcERvd25EYXRhU291cmNlID0gZGREYXRhU291cmNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgICAgIGRhdGE6IHsgZGF0YTogW10gfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4pIHtcbiAgICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2FsbGJhY2sgcGFzc2VkIHdoZW4gc3Vic2NyaWJpbmcgdG8gc3RvcmUgY2hhbmdlXG4gIG9uU3RhdGVDaGFuZ2UoKSB7XG4gICAgLy8gU2hvdWxkIGFsd2F5cyBjaGVjayB0aGUgYnJpZGdlIHRvIHNlZSBpZiB0aGUgY29tcG9uZW50IHNob3VsZFxuICAgIC8vIHVwZGF0ZSBpdHNlbGYgKHJlLXJlbmRlcilcbiAgICBjb25zdCBiVXBkYXRlU2VsZiA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnNob3VsZENvbXBvbmVudFVwZGF0ZSh0aGlzKTtcblxuICAgIC8vIE9OTFkgY2FsbCB1cGRhdGVTZWxmIHdoZW4gdGhlIGNvbXBvbmVudCBzaG91bGQgdXBkYXRlXG4gICAgaWYgKGJVcGRhdGVTZWxmKSB7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGYoKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVTZWxmKCkge1xuICAgIC8vIFVwZGF0ZSBwcm9wZXJ0aWVzIGJhc2VkIG9uIGNvbmZpZ1Byb3BzXG4gICAgY29uc3QgdGhlQ29uZmlnUHJvcHMgPSB0aGlzLnBDb25uJC5nZXRDb25maWdQcm9wcygpO1xuICAgIHRoaXMudXBkYXRlUHJvcGVydGllc0Zyb21Qcm9wcyh0aGVDb25maWdQcm9wcyk7XG5cbiAgICBjb25zdCBkaXNwbGF5QXMgPSB0aGVDb25maWdQcm9wcy5kaXNwbGF5QXM7XG4gICAgY29uc3QgZGlzcGxheU1vZGUgPSB0aGVDb25maWdQcm9wcy5kaXNwbGF5TW9kZTtcbiAgICB0aGlzLnJhd1ZpZXdNZXRhZGF0YSA9IHRoaXMucENvbm4kLmdldFJhd01ldGFkYXRhKCk7XG4gICAgdGhpcy52aWV3TmFtZSA9IHRoaXMucmF3Vmlld01ldGFkYXRhLm5hbWU7XG4gICAgdGhpcy5maXJzdENoaWxkTWV0YSA9IHRoaXMucmF3Vmlld01ldGFkYXRhLmNoaWxkcmVuWzBdO1xuICAgIHRoaXMucmVmTGlzdCA9IHRoaXMucmF3Vmlld01ldGFkYXRhLmNvbmZpZy5yZWZlcmVuY2VMaXN0O1xuICAgIHRoaXMuY2FuQmVDaGFuZ2VkSW5SZXZpZXdNb2RlID0gdGhlQ29uZmlnUHJvcHMuYWxsb3dBbmRQZXJzaXN0Q2hhbmdlc0luUmV2aWV3TW9kZSAmJiAoZGlzcGxheUFzID09PSAnYXV0b2NvbXBsZXRlJyB8fCBkaXNwbGF5QXMgPT09ICdkcm9wZG93bicpO1xuICAgIC8vIHRoaXMuY2hpbGRyZW5Ub1JlbmRlciA9IHRoaXMuY2hpbGRyZW47XG4gICAgdGhpcy5pc0Rpc3BsYXlNb2RlRW5hYmxlZCA9IFsnRElTUExBWV9PTkxZJywgJ1NUQUNLRURfTEFSR0VfVkFMJ10uaW5jbHVkZXMoZGlzcGxheU1vZGUpO1xuXG4gICAgaWYgKHRoaXMuZmlyc3RDaGlsZE1ldGE/LnR5cGUgIT09ICdSZWdpb24nKSB7XG4gICAgICB0aGlzLmZpcnN0Q2hpbGRQQ29ubmVjdCA9IHRoaXMucENvbm4kLmdldENoaWxkcmVuKClbMF0uZ2V0UENvbm5lY3Q7XG5cbiAgICAgIC8qIHJlbW92ZSByZWZyZXNoIFdoZW4gY29uZGl0aW9uIGZyb20gdGhvc2Ugb2xkIHZpZXcgc28gdGhhdCBpdCB3aWxsIG5vdCBiZSB1c2VkIGZvciBydW50aW1lICovXG4gICAgICBpZiAodGhpcy5maXJzdENoaWxkTWV0YS5jb25maWc/LnJlYWRPbmx5KSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmZpcnN0Q2hpbGRNZXRhLmNvbmZpZy5yZWFkT25seTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmZpcnN0Q2hpbGRNZXRhPy50eXBlID09PSAnRHJvcGRvd24nKSB7XG4gICAgICAgIHRoaXMuZmlyc3RDaGlsZE1ldGEuY29uZmlnLmRhdGFzb3VyY2Uuc291cmNlID0gdGhpcy5yYXdWaWV3TWV0YWRhdGEuY29uZmlnPy5wYXJhbWV0ZXJzXG4gICAgICAgICAgPyB0aGlzLmRyb3BEb3duRGF0YVNvdXJjZVxuICAgICAgICAgIDogJ0BEQVRBU09VUkNFICcuY29uY2F0KHRoaXMucmVmTGlzdCkuY29uY2F0KCcucHhSZXN1bHRzJyk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuZmlyc3RDaGlsZE1ldGE/LnR5cGUgPT09ICdBdXRvQ29tcGxldGUnKSB7XG4gICAgICAgIHRoaXMuZmlyc3RDaGlsZE1ldGEuY29uZmlnLmRhdGFzb3VyY2UgPSB0aGlzLnJlZkxpc3Q7XG5cbiAgICAgICAgLyogSW5zZXJ0IHRoZSBwYXJhbWV0ZXJzIHRvIHRoZSBjb21wb25lbnQgb25seSBpZiBwcmVzZW50ICovXG4gICAgICAgIGlmICh0aGlzLnJhd1ZpZXdNZXRhZGF0YS5jb25maWc/LnBhcmFtZXRlcnMpIHtcbiAgICAgICAgICB0aGlzLmZpcnN0Q2hpbGRNZXRhLmNvbmZpZy5wYXJhbWV0ZXJzID0gdGhpcy5wYXJhbWV0ZXJzO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBzZXQgZGlzcGxheU1vZGUgY29uZGl0aW9uYWxseVxuICAgICAgaWYgKCF0aGlzLmNhbkJlQ2hhbmdlZEluUmV2aWV3TW9kZSkge1xuICAgICAgICB0aGlzLmZpcnN0Q2hpbGRNZXRhLmNvbmZpZy5kaXNwbGF5TW9kZSA9IGRpc3BsYXlNb2RlO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuZmlyc3RDaGlsZE1ldGEudHlwZSA9PT0gJ1NpbXBsZVRhYmxlU2VsZWN0JyAmJiB0aGlzLnNlbGVjdGlvbk1vZGUgPT09IFNFTEVDVElPTl9NT0RFLk1VTFRJKSB7XG4gICAgICAgIHRoaXMucHJvcE5hbWUgPSBQQ29yZS5nZXRBbm5vdGF0aW9uVXRpbHMoKS5nZXRQcm9wZXJ0eU5hbWUodGhpcy5maXJzdENoaWxkTWV0YS5jb25maWcuc2VsZWN0aW9uTGlzdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnByb3BOYW1lID0gUENvcmUuZ2V0QW5ub3RhdGlvblV0aWxzKCkuZ2V0UHJvcGVydHlOYW1lKHRoaXMuZmlyc3RDaGlsZE1ldGEuY29uZmlnLnZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5nZW5lcmF0ZUNoaWxkcmVuVG9SZW5kZXIoKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVQcm9wZXJ0aWVzRnJvbVByb3BzKHRoZUNvbmZpZ1Byb3BzKSB7XG4gICAgY29uc3QgbGFiZWwgPSB0aGVDb25maWdQcm9wcy5sYWJlbDtcbiAgICBjb25zdCBzaG93TGFiZWwgPSB0aGVDb25maWdQcm9wcy5zaG93TGFiZWw7XG4gICAgdGhpcy5yZWZlcmVuY2VUeXBlID0gdGhlQ29uZmlnUHJvcHMucmVmZXJlbmNlVHlwZTtcbiAgICB0aGlzLnNlbGVjdGlvbk1vZGUgPSB0aGVDb25maWdQcm9wcy5zZWxlY3Rpb25Nb2RlO1xuICAgIHRoaXMucGFyYW1ldGVycyA9IHRoZUNvbmZpZ1Byb3BzLnBhcmFtZXRlcnM7XG4gICAgdGhpcy5oaWRlTGFiZWwgPSB0aGVDb25maWdQcm9wcy5oaWRlTGFiZWw7XG5cbiAgICB0aGlzLnByb3BzVG9Vc2UgPSB7IGxhYmVsLCBzaG93TGFiZWwsIC4uLnRoaXMucENvbm4kLmdldEluaGVyaXRlZFByb3BzKCkgfTtcbiAgICBpZiAodGhpcy5wcm9wc1RvVXNlLnNob3dMYWJlbCA9PT0gZmFsc2UpIHtcbiAgICAgIHRoaXMucHJvcHNUb1VzZS5sYWJlbCA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIGdlbmVyYXRlQ2hpbGRyZW5Ub1JlbmRlcigpIHtcbiAgICBjb25zdCB0aGVSZWNyZWF0ZWRGaXJzdENoaWxkID0gdGhpcy5yZWNyZWF0ZWRGaXJzdENoaWxkKCk7XG4gICAgY29uc3Qgdmlld3NSZWdpb24gPSB0aGlzLnJhd1ZpZXdNZXRhZGF0YS5jaGlsZHJlblsxXTtcbiAgICBpZiAodmlld3NSZWdpb24/Lm5hbWUgPT09ICdWaWV3cycgJiYgdmlld3NSZWdpb24uY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICB0aGlzLmNoaWxkcmVuVG9SZW5kZXIgPSBbdGhlUmVjcmVhdGVkRmlyc3RDaGlsZCwgLi4udGhpcy5jaGlsZHJlbi5zbGljZSgxKV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2hpbGRyZW5Ub1JlbmRlciA9IFt0aGVSZWNyZWF0ZWRGaXJzdENoaWxkXTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVTZWxlY3Rpb24oZXZlbnQpIHtcbiAgICBjb25zdCBjYXNlS2V5ID0gdGhpcy5wQ29ubiQuZ2V0Q2FzZUluZm8oKS5nZXRLZXkoKTtcbiAgICBjb25zdCByZWZyZXNoT3B0aW9ucyA9IHsgYXV0b0RldGVjdFJlZnJlc2g6IHRydWUgfTtcbiAgICBpZiAodGhpcy5jYW5CZUNoYW5nZWRJblJldmlld01vZGUgJiYgdGhpcy5wQ29ubiQuZ2V0VmFsdWUoJ19fY3VycmVudFBhZ2VUYWJWaWV3TmFtZScpKSB7XG4gICAgICB0aGlzLnBDb25uJC5nZXRBY3Rpb25zQXBpKCkucmVmcmVzaENhc2VWaWV3KGNhc2VLZXksIHRoaXMucENvbm4kLmdldFZhbHVlKCdfX2N1cnJlbnRQYWdlVGFiVmlld05hbWUnKSwgJycsIHJlZnJlc2hPcHRpb25zKTtcbiAgICAgIFBDb3JlLmdldERlZmVyTG9hZE1hbmFnZXIoKS5yZWZyZXNoQWN0aXZlQ29tcG9uZW50cyh0aGlzLnBDb25uJC5nZXRDb250ZXh0TmFtZSgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcGdSZWYgPSB0aGlzLnBDb25uJC5nZXRQYWdlUmVmZXJlbmNlKCkucmVwbGFjZSgnY2FzZUluZm8uY29udGVudCcsICcnKTtcbiAgICAgIHRoaXMucENvbm4kLmdldEFjdGlvbnNBcGkoKS5yZWZyZXNoQ2FzZVZpZXcoY2FzZUtleSwgdGhpcy52aWV3TmFtZSwgcGdSZWYsIHJlZnJlc2hPcHRpb25zKTtcbiAgICB9XG5cbiAgICAvLyBBdXRvQ29tcGxldGUgc2V0cyB2YWx1ZSBvbiBldmVudC5pZCB3aGVyZWFzIERyb3Bkb3duIHNldHMgaXQgb24gZXZlbnQudGFyZ2V0LnZhbHVlXG4gICAgY29uc3QgcHJvcFZhbHVlID0gZXZlbnQ/LmlkIHx8IGV2ZW50Py50YXJnZXQ/LnZhbHVlO1xuICAgIGlmIChwcm9wVmFsdWUgJiYgdGhpcy5jYW5CZUNoYW5nZWRJblJldmlld01vZGUgJiYgdGhpcy5pc0Rpc3BsYXlNb2RlRW5hYmxlZCkge1xuICAgICAgUENvcmUuZ2V0RGF0YUFwaVV0aWxzKClcbiAgICAgICAgLmdldENhc2VFZGl0TG9jayhjYXNlS2V5LCAnJylcbiAgICAgICAgLnRoZW4oY2FzZVJlc3BvbnNlID0+IHtcbiAgICAgICAgICBjb25zdCBwYWdlVG9rZW5zID0gdGhpcy5wQ29ubiQuZ2V0UGFnZVJlZmVyZW5jZSgpLnJlcGxhY2UoJ2Nhc2VJbmZvLmNvbnRlbnQnLCAnJykuc3BsaXQoJy4nKTtcbiAgICAgICAgICBsZXQgY3VyciA9IHt9O1xuICAgICAgICAgIGNvbnN0IGNvbW1pdERhdGEgPSBjdXJyO1xuXG4gICAgICAgICAgcGFnZVRva2Vucy5mb3JFYWNoKGVsID0+IHtcbiAgICAgICAgICAgIGlmIChlbCAhPT0gJycpIHtcbiAgICAgICAgICAgICAgY3VycltlbF0gPSB7fTtcbiAgICAgICAgICAgICAgY3VyciA9IGN1cnJbZWxdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgLy8gZXhwZWN0aW5nIGZvcm1hdCBsaWtlIHtDdXN0b21lcjoge3B5SUQ6XCJDLTEwMFwifX1cbiAgICAgICAgICBjb25zdCBwcm9wQXJyID0gdGhpcy5wcm9wTmFtZS5zcGxpdCgnLicpO1xuICAgICAgICAgIHByb3BBcnIuZm9yRWFjaCgoZWxlbWVudCwgaWR4KSA9PiB7XG4gICAgICAgICAgICBpZiAoaWR4ICsgMSA9PT0gcHJvcEFyci5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgY3VycltlbGVtZW50XSA9IHByb3BWYWx1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGN1cnJbZWxlbWVudF0gPSB7fTtcbiAgICAgICAgICAgICAgY3VyciA9IGN1cnJbZWxlbWVudF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBQQ29yZS5nZXRDYXNlVXRpbHMoKVxuICAgICAgICAgICAgLnVwZGF0ZUNhc2VFZGl0RmllbGRzRGF0YShjYXNlS2V5LCB7IFtjYXNlS2V5XTogY29tbWl0RGF0YSB9LCBjYXNlUmVzcG9uc2UuaGVhZGVycy5ldGFnLCB0aGlzLnBDb25uJC5nZXRDb250ZXh0TmFtZSgpKVxuICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICBQQ29yZS5nZXRDb250YWluZXJVdGlscygpLnVwZGF0ZVBhcmVudExhc3RVcGRhdGVUaW1lKHRoaXMucENvbm4kLmdldENvbnRleHROYW1lKCksIHJlc3BvbnNlLmRhdGEuZGF0YS5jYXNlSW5mby5sYXN0VXBkYXRlVGltZSk7XG4gICAgICAgICAgICAgIFBDb3JlLmdldENvbnRhaW5lclV0aWxzKCkudXBkYXRlUmVsYXRlZENvbnRleHRFdGFnKHRoaXMucENvbm4kLmdldENvbnRleHROYW1lKCksIHJlc3BvbnNlLmhlYWRlcnMuZXRhZyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gUmUtY3JlYXRlIGZpcnN0IGNoaWxkIHdpdGggb3ZlcnJpZGRlbiBwcm9wc1xuICAvLyBNZW1vaXplZCBjaGlsZCBpbiBvcmRlciB0byBzdG9wIHVubW91bnQgYW5kIHJlbW91bnQgb2YgdGhlIGNoaWxkIGNvbXBvbmVudCB3aGVuIGRhdGEgcmVmZXJlbmNlXG4gIC8vIHJlcmVuZGVycyB3aXRob3V0IGFueSBhY3R1YWwgY2hhbmdlXG4gIHJlY3JlYXRlZEZpcnN0Q2hpbGQoKSB7XG4gICAgY29uc3QgeyB0eXBlLCBjb25maWcgfSA9IHRoaXMuZmlyc3RDaGlsZE1ldGE7XG4gICAgaWYgKHRoaXMuZmlyc3RDaGlsZE1ldGE/LnR5cGUgIT09ICdSZWdpb24nKSB7XG4gICAgICB0aGlzLnBDb25uJC5jbGVhckVycm9yTWVzc2FnZXMoe1xuICAgICAgICBwcm9wZXJ0eTogdGhpcy5wcm9wTmFtZSxcbiAgICAgICAgY2F0ZWdvcnk6ICcnLFxuICAgICAgICBjb250ZXh0OiAnJ1xuICAgICAgfSk7XG4gICAgICBpZiAoIXRoaXMuY2FuQmVDaGFuZ2VkSW5SZXZpZXdNb2RlICYmIHRoaXMuaXNEaXNwbGF5TW9kZUVuYWJsZWQgJiYgdGhpcy5zZWxlY3Rpb25Nb2RlID09PSBTRUxFQ1RJT05fTU9ERS5TSU5HTEUpIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5U2luZ2xlUmVmID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuaXNEaXNwbGF5TW9kZUVuYWJsZWQgJiYgdGhpcy5zZWxlY3Rpb25Nb2RlID09PSBTRUxFQ1RJT05fTU9ERS5NVUxUSSkge1xuICAgICAgICB0aGlzLmRpc3BsYXlNdWx0aVJlZiA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIC8vIEluIHRoZSBjYXNlIG9mIGEgZGF0YXNvdXJjZSB3aXRoIHBhcmFtZXRlcnMgeW91IGNhbm5vdCBsb2FkIHRoZSBkcm9wZG93biBiZWZvcmUgdGhlIHBhcmFtZXRlcnNcbiAgICAgIGlmICh0eXBlID09PSAnRHJvcGRvd24nICYmIHRoaXMucmF3Vmlld01ldGFkYXRhLmNvbmZpZz8ucGFyYW1ldGVycyAmJiB0aGlzLmRyb3BEb3duRGF0YVNvdXJjZSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMuZmlyc3RDaGlsZFBDb25uZWN0KCkuY3JlYXRlQ29tcG9uZW50KHtcbiAgICAgICAgdHlwZSxcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICAgIHJlcXVpcmVkOiB0aGlzLnByb3BzVG9Vc2UucmVxdWlyZWQsXG4gICAgICAgICAgdmlzaWJpbGl0eTogdGhpcy5wcm9wc1RvVXNlLnZpc2liaWxpdHksXG4gICAgICAgICAgZGlzYWJsZWQ6IHRoaXMucHJvcHNUb1VzZS5kaXNhYmxlZCxcbiAgICAgICAgICBsYWJlbDogdGhpcy5wcm9wc1RvVXNlLmxhYmVsLFxuICAgICAgICAgIHZpZXdOYW1lOiB0aGlzLnBDb25uJC5nZXRDdXJyZW50VmlldygpLFxuICAgICAgICAgIHBhcmFtZXRlcnM6IHRoaXMucmF3Vmlld01ldGFkYXRhLmNvbmZpZy5wYXJhbWV0ZXJzLFxuICAgICAgICAgIHJlYWRPbmx5OiBmYWxzZSxcbiAgICAgICAgICBsb2NhbGVSZWZlcmVuY2U6IHRoaXMucmF3Vmlld01ldGFkYXRhLmNvbmZpZy5sb2NhbGVSZWZlcmVuY2UsXG4gICAgICAgICAgLi4uKHRoaXMuc2VsZWN0aW9uTW9kZSA9PT0gU0VMRUNUSU9OX01PREUuU0lOR0xFID8geyByZWZlcmVuY2VUeXBlOiB0aGlzLnJlZmVyZW5jZVR5cGUgfSA6ICcnKSxcbiAgICAgICAgICBkYXRhUmVsYXRpb25zaGlwQ29udGV4dDpcbiAgICAgICAgICAgIHRoaXMucmF3Vmlld01ldGFkYXRhLmNvbmZpZy5jb250ZXh0Q2xhc3MgJiYgdGhpcy5yYXdWaWV3TWV0YWRhdGEuY29uZmlnLm5hbWUgPyB0aGlzLnJhd1ZpZXdNZXRhZGF0YS5jb25maWcubmFtZSA6IG51bGwsXG4gICAgICAgICAgaGlkZUxhYmVsOiB0aGlzLmhpZGVMYWJlbCxcbiAgICAgICAgICBvblJlY29yZENoYW5nZTogdGhpcy5oYW5kbGVTZWxlY3Rpb24uYmluZCh0aGlzKVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJjaGlsZHJlblRvUmVuZGVyICYmIGNoaWxkcmVuVG9SZW5kZXIubGVuZ3RoID4gMFwiPlxuICA8ZGl2ICpuZ0lmPVwiIWRpc3BsYXlNdWx0aVJlZlwiPlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGtpZCBvZiBjaGlsZHJlblRvUmVuZGVyXCI+XG4gICAgICA8Y29tcG9uZW50LW1hcHBlciBbbmFtZV09XCJraWQ/LmdldFBDb25uZWN0KCkuZ2V0Q29tcG9uZW50TmFtZSgpXCIgW3Byb3BzXT1cInsgcENvbm4kOiBraWQuZ2V0UENvbm5lY3QoKSwgZm9ybUdyb3VwJCB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cImRpc3BsYXlTaW5nbGVSZWZcIj5cbiAgICA8Y29tcG9uZW50LW1hcHBlciBuYW1lPVwiU2luZ2xlUmVmZXJlbmNlUmVhZE9ubHlcIiBbcHJvcHNdPVwieyBwQ29ubiQ6IGZpcnN0Q2hpbGRQQ29ubmVjdCgpIH1cIj48L2NvbXBvbmVudC1tYXBwZXI+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiZGlzcGxheU11bHRpUmVmXCI+XG4gICAgPGNvbXBvbmVudC1tYXBwZXIgbmFtZT1cIk11bHRpUmVmZXJlbmNlUmVhZE9ubHlcIiBbcHJvcHNdPVwieyBwQ29ubiQ6IGZpcnN0Q2hpbGRQQ29ubmVjdCgpIH1cIj48L2NvbXBvbmVudC1tYXBwZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|