@sapui5/sap.fe.core 1.112.0 → 1.114.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/ActionRuntime-dbg.js +70 -6
- package/src/sap/fe/core/ActionRuntime.js +1 -1
- package/src/sap/fe/core/ActionRuntime.js.map +1 -1
- package/src/sap/fe/core/ActionRuntime.ts +118 -3
- package/src/sap/fe/core/AppComponent-dbg.js +16 -6
- package/src/sap/fe/core/AppComponent.js +1 -1
- package/src/sap/fe/core/AppComponent.js.map +1 -1
- package/src/sap/fe/core/AppComponent.ts +21 -7
- package/src/sap/fe/core/AppStateHandler-dbg.js +11 -10
- package/src/sap/fe/core/AppStateHandler.js +1 -1
- package/src/sap/fe/core/AppStateHandler.js.map +1 -1
- package/src/sap/fe/core/AppStateHandler.ts +14 -11
- package/src/sap/fe/core/CommonUtils-dbg.js +102 -175
- package/src/sap/fe/core/CommonUtils.js +1 -1
- package/src/sap/fe/core/CommonUtils.js.map +1 -1
- package/src/sap/fe/core/CommonUtils.ts +114 -211
- package/src/sap/fe/core/ExtensionAPI-dbg.js +3 -1
- package/src/sap/fe/core/ExtensionAPI.js.map +1 -1
- package/src/sap/fe/core/ExtensionAPI.ts +2 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase-dbg.js +2 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js +1 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js.map +1 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.ts +1 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport-dbg.js +2 -2
- package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.js +1 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.js.map +1 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.ts +13 -18
- package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor-dbg.js +32 -24
- package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.js +4 -4
- package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.js.map +1 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.ts +41 -29
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock-dbg.js +2 -2
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.js +1 -1
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.js.map +1 -1
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.ts +1 -1
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment-dbg.js +2 -2
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.js +1 -1
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.js.map +1 -1
- package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.ts +3 -1
- package/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +124 -57
- package/src/sap/fe/core/controllerextensions/EditFlow.js +1 -1
- package/src/sap/fe/core/controllerextensions/EditFlow.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +146 -73
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +35 -74
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +1 -1
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +35 -78
- package/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +217 -127
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +1 -1
- package/src/sap/fe/core/controllerextensions/InternalRouting.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +227 -129
- package/src/sap/fe/core/controllerextensions/PageReady-dbg.js +3 -5
- package/src/sap/fe/core/controllerextensions/PageReady.js +1 -1
- package/src/sap/fe/core/controllerextensions/PageReady.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/PageReady.ts +2 -4
- package/src/sap/fe/core/controllerextensions/Share-dbg.js +3 -2
- package/src/sap/fe/core/controllerextensions/Share.js +1 -1
- package/src/sap/fe/core/controllerextensions/Share.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/Share.ts +2 -1
- package/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +19 -14
- package/src/sap/fe/core/controllerextensions/SideEffects.js +1 -1
- package/src/sap/fe/core/controllerextensions/SideEffects.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +22 -14
- package/src/sap/fe/core/controllerextensions/ViewState-dbg.js +41 -24
- package/src/sap/fe/core/controllerextensions/ViewState.js +1 -1
- package/src/sap/fe/core/controllerextensions/ViewState.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/ViewState.ts +64 -31
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync-dbg.js +8 -8
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +7 -9
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon-dbg.js +7 -45
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +5 -48
- package/src/sap/fe/core/controllerextensions/collaboration/Manage-dbg.js +4 -4
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +2 -2
- package/src/sap/fe/core/controllerextensions/collaboration/ManageDialog.fragment.xml +3 -3
- package/src/sap/fe/core/controllerextensions/collaboration/ManageDialogTemplating-dbg.js +52 -0
- package/src/sap/fe/core/controllerextensions/collaboration/ManageDialogTemplating.js +6 -0
- package/src/sap/fe/core/controllerextensions/collaboration/ManageDialogTemplating.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/collaboration/ManageDialogTemplating.ts +46 -0
- package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog-dbg.js +103 -0
- package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js +6 -0
- package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js.map +1 -0
- package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.tsx +124 -0
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper-dbg.js +106 -205
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +121 -216
- package/src/sap/fe/core/controllerextensions/editFlow/draft-dbg.js +31 -4
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +38 -3
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup-dbg.js +13 -10
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +7 -20
- package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal-dbg.js +9 -4
- package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.ts +12 -3
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade-dbg.js +10 -6
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +20 -11
- package/src/sap/fe/core/controllerextensions/editFlow/sticky-dbg.js +1 -8
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +0 -9
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling-dbg.js +19 -15
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +1 -1
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +19 -22
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy-dbg.js +67 -1
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +1 -1
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +68 -0
- package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +2 -0
- package/src/sap/fe/core/controls/CommandExecution-dbg.js +4 -9
- package/src/sap/fe/core/controls/CommandExecution.js +1 -1
- package/src/sap/fe/core/controls/CommandExecution.js.map +1 -1
- package/src/sap/fe/core/controls/CommandExecution.ts +0 -8
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block-dbg.js +335 -0
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js +6 -0
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js.map +1 -0
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.tsx +336 -0
- package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +1 -0
- package/src/sap/fe/core/controls/filterbar/VisualFilter-dbg.js +3 -28
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js +1 -1
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js.map +1 -1
- package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +8 -29
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils-dbg.js +30 -1
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +1 -1
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js.map +1 -1
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +38 -0
- package/src/sap/fe/core/converters/ConverterContext-dbg.js +3 -5
- package/src/sap/fe/core/converters/ConverterContext.js +1 -1
- package/src/sap/fe/core/converters/ConverterContext.js.map +1 -1
- package/src/sap/fe/core/converters/ConverterContext.ts +2 -5
- package/src/sap/fe/core/converters/ManifestSettings-dbg.js +1 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +7 -6
- package/src/sap/fe/core/converters/ManifestWrapper-dbg.js +5 -3
- package/src/sap/fe/core/converters/ManifestWrapper.js +1 -1
- package/src/sap/fe/core/converters/ManifestWrapper.js.map +1 -1
- package/src/sap/fe/core/converters/ManifestWrapper.ts +7 -1
- package/src/sap/fe/core/converters/MetaModelConverter-dbg.js +49 -28
- package/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
- package/src/sap/fe/core/converters/MetaModelConverter.js.map +1 -1
- package/src/sap/fe/core/converters/MetaModelConverter.ts +62 -30
- package/src/sap/fe/core/converters/TemplateConverter-dbg.js +2 -3
- package/src/sap/fe/core/converters/TemplateConverter.js +1 -1
- package/src/sap/fe/core/converters/TemplateConverter.js.map +1 -1
- package/src/sap/fe/core/converters/TemplateConverter.ts +1 -6
- package/src/sap/fe/core/converters/annotations/DataField-dbg.js +22 -7
- package/src/sap/fe/core/converters/annotations/DataField.js +1 -1
- package/src/sap/fe/core/converters/annotations/DataField.js.map +1 -1
- package/src/sap/fe/core/converters/annotations/DataField.ts +20 -7
- package/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +701 -681
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +1 -1
- package/src/sap/fe/core/converters/common/AnnotationConverter.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/Action-dbg.js +6 -12
- package/src/sap/fe/core/converters/controls/Common/Action.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/Action.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/Action.ts +9 -14
- package/src/sap/fe/core/converters/controls/Common/Chart-dbg.js +32 -20
- package/src/sap/fe/core/converters/controls/Common/Chart.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/Chart.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +30 -18
- package/src/sap/fe/core/converters/controls/Common/DataVisualization-dbg.js +4 -5
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +6 -37
- package/src/sap/fe/core/converters/controls/Common/Form-dbg.js +7 -6
- package/src/sap/fe/core/converters/controls/Common/Form.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/Form.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/Form.ts +5 -11
- package/src/sap/fe/core/converters/controls/Common/KPI-dbg.js +5 -5
- package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/KPI.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +3 -4
- package/src/sap/fe/core/converters/controls/Common/Table-dbg.js +135 -85
- package/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/Table.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/Table.ts +189 -119
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +56 -22
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +67 -31
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +137 -49
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +1 -1
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js.map +1 -1
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +166 -43
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters-dbg.js +33 -14
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +1 -1
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js.map +1 -1
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +31 -12
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection-dbg.js +27 -18
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js.map +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +36 -23
- package/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +37 -15
- package/src/sap/fe/core/converters/helpers/Aggregation.js +1 -1
- package/src/sap/fe/core/converters/helpers/Aggregation.js.map +1 -1
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +36 -20
- package/src/sap/fe/core/converters/helpers/BindingHelper-dbg.js +8 -6
- package/src/sap/fe/core/converters/helpers/BindingHelper.js +1 -1
- package/src/sap/fe/core/converters/helpers/BindingHelper.js.map +1 -1
- package/src/sap/fe/core/converters/helpers/BindingHelper.ts +8 -6
- package/src/sap/fe/core/converters/helpers/InsightsHelpers-dbg.js +39 -0
- package/src/sap/fe/core/converters/helpers/InsightsHelpers.js +6 -0
- package/src/sap/fe/core/converters/helpers/InsightsHelpers.js.map +1 -0
- package/src/sap/fe/core/converters/helpers/InsightsHelpers.ts +45 -0
- package/src/sap/fe/core/converters/helpers/IssueManager-dbg.js +3 -2
- package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
- package/src/sap/fe/core/converters/helpers/IssueManager.js.map +1 -1
- package/src/sap/fe/core/converters/helpers/IssueManager.ts +2 -1
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction-dbg.js +17 -16
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +1 -1
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js.map +1 -1
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +11 -11
- package/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +20 -17
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +1 -1
- package/src/sap/fe/core/converters/templates/ListReportConverter.js.map +1 -1
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +25 -56
- package/src/sap/fe/core/converters/templates/ObjectPageConverter-dbg.js +13 -13
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +1 -1
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js.map +1 -1
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +18 -13
- package/src/sap/fe/core/formatters/CollaborationFormatter-dbg.js +17 -33
- package/src/sap/fe/core/formatters/CollaborationFormatter.js +1 -1
- package/src/sap/fe/core/formatters/CollaborationFormatter.js.map +1 -1
- package/src/sap/fe/core/formatters/CollaborationFormatter.ts +27 -22
- package/src/sap/fe/core/formatters/TableFormatter-dbg.js +2 -6
- package/src/sap/fe/core/formatters/TableFormatter.js +1 -1
- package/src/sap/fe/core/formatters/TableFormatter.js.map +1 -1
- package/src/sap/fe/core/formatters/TableFormatter.ts +1 -5
- package/src/sap/fe/core/formatters/ValueFormatter-dbg.js +13 -5
- package/src/sap/fe/core/formatters/ValueFormatter.js +1 -1
- package/src/sap/fe/core/formatters/ValueFormatter.js.map +1 -1
- package/src/sap/fe/core/formatters/ValueFormatter.ts +19 -9
- package/src/sap/fe/core/fpm/manifest.json +1 -1
- package/src/sap/fe/core/helpers/BindingToolkit-dbg.js +2 -1
- package/src/sap/fe/core/helpers/BindingToolkit.js +1 -1
- package/src/sap/fe/core/helpers/BindingToolkit.js.map +1 -1
- package/src/sap/fe/core/helpers/BindingToolkit.ts +1 -1
- package/src/sap/fe/core/helpers/DeleteHelper-dbg.js +58 -35
- package/src/sap/fe/core/helpers/DeleteHelper.js +1 -1
- package/src/sap/fe/core/helpers/DeleteHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/DeleteHelper.ts +76 -54
- package/src/sap/fe/core/helpers/MassEditHelper-dbg.js +8 -4
- package/src/sap/fe/core/helpers/MassEditHelper.js +1 -1
- package/src/sap/fe/core/helpers/MassEditHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/MassEditHelper.ts +7 -5
- package/src/sap/fe/core/helpers/MessageStrip-dbg.js +6 -5
- package/src/sap/fe/core/helpers/MessageStrip.js +1 -1
- package/src/sap/fe/core/helpers/MessageStrip.js.map +1 -1
- package/src/sap/fe/core/helpers/MessageStrip.ts +4 -4
- package/src/sap/fe/core/helpers/MetaModelFunction-dbg.js +167 -4
- package/src/sap/fe/core/helpers/MetaModelFunction.js +1 -1
- package/src/sap/fe/core/helpers/MetaModelFunction.js.map +1 -1
- package/src/sap/fe/core/helpers/MetaModelFunction.ts +205 -3
- package/src/sap/fe/core/helpers/ModelHelper-dbg.js +37 -73
- package/src/sap/fe/core/helpers/ModelHelper.js +1 -1
- package/src/sap/fe/core/helpers/ModelHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/ModelHelper.ts +41 -68
- package/src/sap/fe/core/helpers/RecommendationHelper-dbg.js +71 -0
- package/src/sap/fe/core/helpers/RecommendationHelper.js +6 -0
- package/src/sap/fe/core/helpers/RecommendationHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/RecommendationHelper.ts +94 -0
- package/src/sap/fe/core/helpers/ResourceModelHelper-dbg.js +19 -3
- package/src/sap/fe/core/helpers/ResourceModelHelper.js +1 -1
- package/src/sap/fe/core/helpers/ResourceModelHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/ResourceModelHelper.ts +21 -0
- package/src/sap/fe/core/helpers/SemanticDateOperators-dbg.js +40 -6
- package/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
- package/src/sap/fe/core/helpers/SemanticDateOperators.js.map +1 -1
- package/src/sap/fe/core/helpers/SemanticDateOperators.ts +39 -5
- package/src/sap/fe/core/helpers/SizeHelper-dbg.js +53 -0
- package/src/sap/fe/core/helpers/SizeHelper.js +6 -0
- package/src/sap/fe/core/helpers/SizeHelper.js.map +1 -0
- package/src/sap/fe/core/helpers/SizeHelper.ts +51 -0
- package/src/sap/fe/core/helpers/StableIdHelper-dbg.js +52 -26
- package/src/sap/fe/core/helpers/StableIdHelper.js +1 -1
- package/src/sap/fe/core/helpers/StableIdHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/StableIdHelper.ts +49 -25
- package/src/sap/fe/core/helpers/TypeGuards-dbg.js +147 -1
- package/src/sap/fe/core/helpers/TypeGuards.js +1 -1
- package/src/sap/fe/core/helpers/TypeGuards.js.map +1 -1
- package/src/sap/fe/core/helpers/TypeGuards.ts +151 -1
- package/src/sap/fe/core/jsx-runtime/jsx-control-dbg.js +25 -2
- package/src/sap/fe/core/jsx-runtime/jsx-control.js +1 -1
- package/src/sap/fe/core/jsx-runtime/jsx-control.js.map +1 -1
- package/src/sap/fe/core/jsx-runtime/jsx-control.ts +24 -0
- package/src/sap/fe/core/jsx-runtime/jsx-dbg.js +1 -1
- package/src/sap/fe/core/jsx-runtime/jsx.ts +1 -0
- package/src/sap/fe/core/library-dbg.js +1 -1
- package/src/sap/fe/core/library-preload.js +123 -95
- package/src/sap/fe/core/library-preload.js.map +1 -1
- package/src/sap/fe/core/library.js +1 -1
- package/src/sap/fe/core/manifest.json +1 -1
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration-dbg.js +67 -15
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -1
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js.map +1 -1
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +66 -14
- package/src/sap/fe/core/messagebundle.properties +6 -6
- package/src/sap/fe/core/messagebundle_ar.properties +5 -6
- package/src/sap/fe/core/messagebundle_bg.properties +11 -12
- package/src/sap/fe/core/messagebundle_ca.properties +3 -4
- package/src/sap/fe/core/messagebundle_cs.properties +3 -4
- package/src/sap/fe/core/messagebundle_cy.properties +3 -4
- package/src/sap/fe/core/messagebundle_da.properties +3 -4
- package/src/sap/fe/core/messagebundle_de.properties +11 -12
- package/src/sap/fe/core/messagebundle_el.properties +5 -6
- package/src/sap/fe/core/messagebundle_en.properties +3 -4
- package/src/sap/fe/core/messagebundle_en_GB.properties +4 -5
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +3 -4
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +3 -4
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +3 -2
- package/src/sap/fe/core/messagebundle_es.properties +3 -4
- package/src/sap/fe/core/messagebundle_es_MX.properties +3 -4
- package/src/sap/fe/core/messagebundle_et.properties +3 -4
- package/src/sap/fe/core/messagebundle_fi.properties +3 -4
- package/src/sap/fe/core/messagebundle_fr.properties +3 -4
- package/src/sap/fe/core/messagebundle_fr_CA.properties +11 -12
- package/src/sap/fe/core/messagebundle_hi.properties +11 -12
- package/src/sap/fe/core/messagebundle_hr.properties +3 -4
- package/src/sap/fe/core/messagebundle_hu.properties +3 -4
- package/src/sap/fe/core/messagebundle_id.properties +11 -12
- package/src/sap/fe/core/messagebundle_it.properties +3 -4
- package/src/sap/fe/core/messagebundle_iw.properties +3 -4
- package/src/sap/fe/core/messagebundle_ja.properties +4 -5
- package/src/sap/fe/core/messagebundle_kk.properties +3 -4
- package/src/sap/fe/core/messagebundle_ko.properties +11 -12
- package/src/sap/fe/core/messagebundle_lt.properties +3 -4
- package/src/sap/fe/core/messagebundle_lv.properties +11 -12
- package/src/sap/fe/core/messagebundle_ms.properties +3 -4
- package/src/sap/fe/core/messagebundle_nl.properties +3 -4
- package/src/sap/fe/core/messagebundle_no.properties +3 -4
- package/src/sap/fe/core/messagebundle_pl.properties +11 -12
- package/src/sap/fe/core/messagebundle_pt.properties +3 -4
- package/src/sap/fe/core/messagebundle_pt_PT.properties +3 -4
- package/src/sap/fe/core/messagebundle_ro.properties +14 -15
- package/src/sap/fe/core/messagebundle_ru.properties +11 -12
- package/src/sap/fe/core/messagebundle_sh.properties +3 -4
- package/src/sap/fe/core/messagebundle_sk.properties +3 -4
- package/src/sap/fe/core/messagebundle_sl.properties +3 -4
- package/src/sap/fe/core/messagebundle_sv.properties +11 -12
- package/src/sap/fe/core/messagebundle_th.properties +3 -4
- package/src/sap/fe/core/messagebundle_tr.properties +3 -4
- package/src/sap/fe/core/messagebundle_uk.properties +3 -4
- package/src/sap/fe/core/messagebundle_vi.properties +3 -4
- package/src/sap/fe/core/messagebundle_zh_CN.properties +11 -12
- package/src/sap/fe/core/messagebundle_zh_TW.properties +11 -12
- package/src/sap/fe/core/rootView/RootViewBaseController-dbg.js +22 -8
- package/src/sap/fe/core/rootView/RootViewBaseController.js +1 -1
- package/src/sap/fe/core/rootView/RootViewBaseController.js.map +1 -1
- package/src/sap/fe/core/rootView/RootViewBaseController.ts +17 -7
- package/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +36 -3
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +1 -1
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +37 -1
- package/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +13 -1
- package/src/sap/fe/core/services/NavigationServiceFactory.js +1 -1
- package/src/sap/fe/core/services/NavigationServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +13 -0
- package/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +7 -1
- package/src/sap/fe/core/services/RoutingServiceFactory.js +1 -1
- package/src/sap/fe/core/services/RoutingServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +20 -2
- package/src/sap/fe/core/services/ShellServicesFactory-dbg.js +7 -1
- package/src/sap/fe/core/services/ShellServicesFactory.js +1 -1
- package/src/sap/fe/core/services/ShellServicesFactory.js.map +1 -1
- package/src/sap/fe/core/services/ShellServicesFactory.ts +10 -0
- package/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +10 -7
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +1 -1
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +12 -13
- package/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +9 -3
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +1 -1
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +11 -15
- package/src/sap/fe/core/templating/CommonFormatters-dbg.js +4 -3
- package/src/sap/fe/core/templating/CommonFormatters.js +1 -1
- package/src/sap/fe/core/templating/CommonFormatters.js.map +1 -1
- package/src/sap/fe/core/templating/CommonFormatters.ts +2 -2
- package/src/sap/fe/core/templating/CriticalityFormatters-dbg.js +1 -1
- package/src/sap/fe/core/templating/CriticalityFormatters.ts +2 -2
- package/src/sap/fe/core/templating/DataModelPathHelper-dbg.js +19 -18
- package/src/sap/fe/core/templating/DataModelPathHelper.js +1 -1
- package/src/sap/fe/core/templating/DataModelPathHelper.js.map +1 -1
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +24 -18
- package/src/sap/fe/core/templating/DisplayModeFormatter-dbg.js +5 -5
- package/src/sap/fe/core/templating/DisplayModeFormatter.js +1 -1
- package/src/sap/fe/core/templating/DisplayModeFormatter.js.map +1 -1
- package/src/sap/fe/core/templating/DisplayModeFormatter.ts +2 -2
- package/src/sap/fe/core/templating/EntitySetHelper-dbg.js +19 -28
- package/src/sap/fe/core/templating/EntitySetHelper.js +1 -1
- package/src/sap/fe/core/templating/EntitySetHelper.js.map +1 -1
- package/src/sap/fe/core/templating/EntitySetHelper.ts +14 -24
- package/src/sap/fe/core/templating/EntityTypeHelper-dbg.js +48 -0
- package/src/sap/fe/core/templating/EntityTypeHelper.js +6 -0
- package/src/sap/fe/core/templating/EntityTypeHelper.js.map +1 -0
- package/src/sap/fe/core/templating/EntityTypeHelper.ts +37 -0
- package/src/sap/fe/core/templating/FilterHelper-dbg.js +12 -1
- package/src/sap/fe/core/templating/FilterHelper.js +1 -1
- package/src/sap/fe/core/templating/FilterHelper.js.map +1 -1
- package/src/sap/fe/core/templating/FilterHelper.ts +12 -0
- package/src/sap/fe/core/templating/FilterTemplating-dbg.js +7 -8
- package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
- package/src/sap/fe/core/templating/FilterTemplating.js.map +1 -1
- package/src/sap/fe/core/templating/FilterTemplating.ts +5 -8
- package/src/sap/fe/core/templating/PropertyFormatters-dbg.js +1 -6
- package/src/sap/fe/core/templating/PropertyFormatters.js +1 -1
- package/src/sap/fe/core/templating/PropertyFormatters.js.map +1 -1
- package/src/sap/fe/core/templating/PropertyFormatters.ts +0 -5
- package/src/sap/fe/core/templating/PropertyHelper-dbg.js +13 -46
- package/src/sap/fe/core/templating/PropertyHelper.js +1 -1
- package/src/sap/fe/core/templating/PropertyHelper.js.map +1 -1
- package/src/sap/fe/core/templating/PropertyHelper.ts +14 -43
- package/src/sap/fe/core/templating/UIFormatters-dbg.js +32 -26
- package/src/sap/fe/core/templating/UIFormatters.js +1 -1
- package/src/sap/fe/core/templating/UIFormatters.js.map +1 -1
- package/src/sap/fe/core/templating/UIFormatters.ts +45 -34
- package/src/sap/fe/core/controls/ActionPartial.fragment.xml +0 -91
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossDraft.fragment.xml +0 -59
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler-dbg.js +0 -171
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +0 -6
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js.map +0 -1
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +0 -184
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2023 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/converters/helpers/ConfigurableObject", "sap/fe/core/converters/helpers/Key", "sap/fe/core/helpers/BindingToolkit", "sap/fe/core/helpers/ModelHelper", "sap/fe/core/templating/DataModelPathHelper", "sap/ui/core/Core", "../helpers/BindingHelper", "../ManifestSettings"], function (Action, ConfigurableObject, Key, BindingToolkit, ModelHelper, DataModelPathHelper, Core, BindingHelper, ManifestSettings) {
|
|
5
|
+
sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/converters/helpers/ConfigurableObject", "sap/fe/core/converters/helpers/Key", "sap/fe/core/helpers/BindingToolkit", "sap/fe/core/helpers/ModelHelper", "sap/fe/core/helpers/TypeGuards", "sap/fe/core/templating/DataModelPathHelper", "sap/ui/core/Core", "../helpers/BindingHelper", "../ManifestSettings"], function (Action, ConfigurableObject, Key, BindingToolkit, ModelHelper, TypeGuards, DataModelPathHelper, Core, BindingHelper, ManifestSettings) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var _exports = {};
|
|
@@ -11,6 +11,7 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
|
|
|
11
11
|
var singletonPathVisitor = BindingHelper.singletonPathVisitor;
|
|
12
12
|
var Draft = BindingHelper.Draft;
|
|
13
13
|
var isPathDeletable = DataModelPathHelper.isPathDeletable;
|
|
14
|
+
var isEntitySet = TypeGuards.isEntitySet;
|
|
14
15
|
var pathInModel = BindingToolkit.pathInModel;
|
|
15
16
|
var not = BindingToolkit.not;
|
|
16
17
|
var ifElse = BindingToolkit.ifElse;
|
|
@@ -104,7 +105,7 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
|
|
|
104
105
|
function getDeleteButtonEnabled(isDeletable, isParentDeletable, converterContext) {
|
|
105
106
|
const entitySet = converterContext.getEntitySet(),
|
|
106
107
|
isDraftRoot = ModelHelper.isDraftRoot(entitySet);
|
|
107
|
-
let ret = ifElse(isParentDeletable !== undefined, isParentDeletable, ifElse(isDeletable !== undefined, equal(isDeletable, true), constant(true)));
|
|
108
|
+
let ret = ifElse(isParentDeletable !== undefined, isParentDeletable, ifElse(isDeletable !== undefined, equal(getExpressionFromAnnotation(isDeletable), true), constant(true)));
|
|
108
109
|
|
|
109
110
|
// delete should be disabled for Locked objects
|
|
110
111
|
ret = isDraftRoot ? and(ret, not(pathInModel("DraftAdministrativeData/InProcessByUser"))) : ret;
|
|
@@ -167,12 +168,12 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
|
|
|
167
168
|
isDraftRoot = ModelHelper.isDraftRoot(entitySet),
|
|
168
169
|
isSticky = ModelHelper.isSticky(entitySet);
|
|
169
170
|
let editActionName;
|
|
170
|
-
if (isDraftRoot &&
|
|
171
|
-
var
|
|
172
|
-
editActionName =
|
|
173
|
-
} else if (isSticky &&
|
|
174
|
-
var
|
|
175
|
-
editActionName =
|
|
171
|
+
if (isDraftRoot && isEntitySet(entitySet)) {
|
|
172
|
+
var _entitySet$annotation, _entitySet$annotation2;
|
|
173
|
+
editActionName = (_entitySet$annotation = entitySet.annotations.Common) === null || _entitySet$annotation === void 0 ? void 0 : (_entitySet$annotation2 = _entitySet$annotation.DraftRoot) === null || _entitySet$annotation2 === void 0 ? void 0 : _entitySet$annotation2.EditAction;
|
|
174
|
+
} else if (isSticky && isEntitySet(entitySet)) {
|
|
175
|
+
var _entitySet$annotation3, _entitySet$annotation4;
|
|
176
|
+
editActionName = (_entitySet$annotation3 = entitySet.annotations.Session) === null || _entitySet$annotation3 === void 0 ? void 0 : (_entitySet$annotation4 = _entitySet$annotation3.StickySessionSupported) === null || _entitySet$annotation4 === void 0 ? void 0 : _entitySet$annotation4.EditAction;
|
|
176
177
|
}
|
|
177
178
|
if (editActionName) {
|
|
178
179
|
var _editAction$annotatio, _editAction$annotatio2;
|
|
@@ -196,7 +197,7 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
|
|
|
196
197
|
}
|
|
197
198
|
_exports.getEditButtonEnabled = getEditButtonEnabled;
|
|
198
199
|
function getHeaderDefaultActions(converterContext) {
|
|
199
|
-
var _entitySet$
|
|
200
|
+
var _entitySet$annotation5, _entitySet$annotation6, _entitySet$annotation7, _entitySet$annotation8, _entityDeleteRestrict;
|
|
200
201
|
const sContextPath = converterContext.getContextPath();
|
|
201
202
|
const rootEntitySetPath = ModelHelper.getRootEntitySetPath(sContextPath);
|
|
202
203
|
const rootConverterContext = converterContext.getConverterContextFor("/" + rootEntitySetPath);
|
|
@@ -209,9 +210,9 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
|
|
|
209
210
|
draftRoot = ModelHelper.getDraftRoot(rootEntitySet),
|
|
210
211
|
//entitySet && entitySet.annotations.Common?.DraftRoot,
|
|
211
212
|
draftNode = ModelHelper.getDraftNode(rootEntitySet),
|
|
212
|
-
entityDeleteRestrictions = entitySet && ((_entitySet$
|
|
213
|
+
entityDeleteRestrictions = entitySet && ((_entitySet$annotation5 = entitySet.annotations) === null || _entitySet$annotation5 === void 0 ? void 0 : (_entitySet$annotation6 = _entitySet$annotation5.Capabilities) === null || _entitySet$annotation6 === void 0 ? void 0 : _entitySet$annotation6.DeleteRestrictions),
|
|
213
214
|
rootUpdateHidden = ModelHelper.isUpdateHidden(rootEntitySet, rootEntityType),
|
|
214
|
-
updateHidden = rootEntitySet &&
|
|
215
|
+
updateHidden = rootEntitySet && isEntitySet(rootEntitySet) && (rootUpdateHidden === null || rootUpdateHidden === void 0 ? void 0 : rootUpdateHidden.valueOf()),
|
|
215
216
|
dataModelObjectPath = converterContext.getDataModelObjectPath(),
|
|
216
217
|
isParentDeletable = isPathDeletable(dataModelObjectPath, {
|
|
217
218
|
pathVisitor: (path, navigationPaths) => singletonPathVisitor(path, converterContext.getConvertedTypes(), navigationPaths)
|
|
@@ -231,14 +232,14 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
|
|
|
231
232
|
// the button for switching between draft and active document versions but also the controls for
|
|
232
233
|
// the collaborative draft fragment.
|
|
233
234
|
const headerActions = [];
|
|
234
|
-
if (
|
|
235
|
+
if (isEntitySet(entitySet) && draftRoot !== null && draftRoot !== void 0 && draftRoot.EditAction && updateHidden !== true) {
|
|
235
236
|
headerActions.push({
|
|
236
237
|
type: ActionType.DraftActions,
|
|
237
238
|
key: "DraftActions"
|
|
238
239
|
});
|
|
239
240
|
}
|
|
240
241
|
const viewLevel = converterContext.getManifestWrapper().getViewLevel();
|
|
241
|
-
const updatablePropertyPath = viewLevel > 1 ? entitySet === null || entitySet === void 0 ? void 0 : (_entitySet$
|
|
242
|
+
const updatablePropertyPath = viewLevel > 1 ? entitySet === null || entitySet === void 0 ? void 0 : (_entitySet$annotation7 = entitySet.annotations.Capabilities) === null || _entitySet$annotation7 === void 0 ? void 0 : (_entitySet$annotation8 = _entitySet$annotation7.UpdateRestrictions) === null || _entitySet$annotation8 === void 0 ? void 0 : _entitySet$annotation8.Updatable : undefined;
|
|
242
243
|
if (draftRoot || draftNode) {
|
|
243
244
|
headerActions.push({
|
|
244
245
|
type: ActionType.CollaborationAvatars,
|
|
@@ -335,12 +336,12 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
|
|
|
335
336
|
}
|
|
336
337
|
_exports.getHiddenHeaderActions = getHiddenHeaderActions;
|
|
337
338
|
function getFooterDefaultActions(viewLevel, converterContext) {
|
|
338
|
-
var _entitySet$
|
|
339
|
+
var _entitySet$annotation9, _entitySet$annotation10, _entitySet$annotation11, _entitySet$annotation12;
|
|
339
340
|
const entitySet = converterContext.getEntitySet();
|
|
340
341
|
const entityType = converterContext.getEntityType();
|
|
341
342
|
const stickySessionSupported = ModelHelper.getStickySession(entitySet),
|
|
342
343
|
//for sticky app
|
|
343
|
-
entitySetDraftRoot =
|
|
344
|
+
entitySetDraftRoot = isEntitySet(entitySet) && (((_entitySet$annotation9 = entitySet.annotations.Common) === null || _entitySet$annotation9 === void 0 ? void 0 : (_entitySet$annotation10 = _entitySet$annotation9.DraftRoot) === null || _entitySet$annotation10 === void 0 ? void 0 : _entitySet$annotation10.term) ?? ((_entitySet$annotation11 = entitySet.annotations.Session) === null || _entitySet$annotation11 === void 0 ? void 0 : (_entitySet$annotation12 = _entitySet$annotation11.StickySessionSupported) === null || _entitySet$annotation12 === void 0 ? void 0 : _entitySet$annotation12.term)),
|
|
344
345
|
conditionSave = Boolean(entitySetDraftRoot === "com.sap.vocabularies.Common.v1.DraftRoot" || stickySessionSupported && (stickySessionSupported === null || stickySessionSupported === void 0 ? void 0 : stickySessionSupported.SaveAction)),
|
|
345
346
|
conditionApply = viewLevel > 1,
|
|
346
347
|
conditionCancel = Boolean(entitySetDraftRoot === "com.sap.vocabularies.Common.v1.DraftRoot" || stickySessionSupported && (stickySessionSupported === null || stickySessionSupported === void 0 ? void 0 : stickySessionSupported.DiscardAction));
|
|
@@ -404,4 +405,4 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
|
|
|
404
405
|
}
|
|
405
406
|
return _exports;
|
|
406
407
|
}, false);
|
|
407
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRJZGVudGlmaWNhdGlvbkRhdGFGaWVsZEZvckFjdGlvbnMiLCJlbnRpdHlUeXBlIiwiaXNEZXRlcm1pbmluZ0FjdGlvbiIsImFubm90YXRpb25zIiwiVUkiLCJJZGVudGlmaWNhdGlvbiIsImZpbHRlciIsImlkZW50aWZpY2F0aW9uRGF0YUZpZWxkIiwiSGlkZGVuIiwidmFsdWVPZiIsIiRUeXBlIiwiQm9vbGVhbiIsIkRldGVybWluaW5nIiwiQWN0aW9uVGFyZ2V0IiwiaXNCb3VuZCIsIkNvcmUiLCJPcGVyYXRpb25BdmFpbGFibGUiLCJnZXRJZGVudGlmaWNhdGlvbkRhdGFGaWVsZEZvcklCTkFjdGlvbnMiLCJJTVBPUlRBTlRfQ1JJVElDQUxJVElFUyIsImdldERlbGV0ZUJ1dHRvblZpc2liaWxpdHkiLCJjb252ZXJ0ZXJDb250ZXh0IiwiZGVsZXRlSGlkZGVuIiwiZGF0YU1vZGVsT2JqZWN0UGF0aCIsImdldERhdGFNb2RlbE9iamVjdFBhdGgiLCJ2aXNpdGVkTmF2aWdhdGlvblBhdGhzIiwibmF2aWdhdGlvblByb3BlcnRpZXMiLCJtYXAiLCJuYXZQcm9wIiwibmFtZSIsImRlbGV0ZUhpZGRlbkV4cHJlc3Npb24iLCJnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24iLCJ1bmRlZmluZWQiLCJwYXRoIiwic2luZ2xldG9uUGF0aFZpc2l0b3IiLCJnZXRDb252ZXJ0ZWRUeXBlcyIsIm1hbmlmZXN0V3JhcHBlciIsImdldE1hbmlmZXN0V3JhcHBlciIsInZpZXdMZXZlbCIsImdldFZpZXdMZXZlbCIsImVkaXRhYmxlRXhwcmVzc2lvbiIsIklzRWRpdGFibGUiLCJub3QiLCJpZkVsc2UiLCJhbmQiLCJlcXVhbCIsImdldERlbGV0ZUJ1dHRvbkVuYWJsZWQiLCJpc0RlbGV0YWJsZSIsImlzUGFyZW50RGVsZXRhYmxlIiwiZW50aXR5U2V0IiwiZ2V0RW50aXR5U2V0IiwiaXNEcmFmdFJvb3QiLCJNb2RlbEhlbHBlciIsInJldCIsImNvbnN0YW50IiwicGF0aEluTW9kZWwiLCJnZXRFZGl0QnV0dG9uVmlzaWJpbGl0eSIsInJvb3RVcGRhdGVIaWRkZW4iLCJyb290Q29udmVydGVyQ29udGV4dCIsInVwZGF0ZUhpZGRlbiIsInJvb3RFbnRpdHlTZXQiLCJpc0ZDTEVuYWJsZWQiLCJpc0ZjbEVuYWJsZWQiLCJpc0RyYWZ0RW5hYmxlZCIsInJvb3RVcGRhdGVIaWRkZW5FeHByZXNzaW9uIiwiZ2V0SGlkZGVuRXhwcmVzc2lvbiIsImlzRHJhZnROb2RlIiwidXBkYXRlSGlkZGVuRXhwcmVzc2lvbiIsIm5vdEVkaXRhYmxlRXhwcmVzc2lvbiIsInJlc3VsdGFudEV4cHJlc3Npb24iLCJEcmFmdCIsIkhhc05vRHJhZnRGb3JDdXJyZW50VXNlciIsImdldEVkaXRCdXR0b25FbmFibGVkIiwidXBkYXRlUmVzdHJpY3Rpb25zIiwiaXNTdGlja3kiLCJlZGl0QWN0aW9uTmFtZSIsImlzU2luZ2xldG9uIiwiQ29tbW9uIiwiRHJhZnRSb290IiwiRWRpdEFjdGlvbiIsIlNlc3Npb24iLCJTdGlja3lTZXNzaW9uU3VwcG9ydGVkIiwiZWRpdEFjdGlvbkFubm90YXRpb25QYXRoIiwiZ2V0QWJzb2x1dGVBbm5vdGF0aW9uUGF0aCIsImVkaXRBY3Rpb24iLCJyZXNvbHZlQWJzb2x1dGVQYXRoIiwidGFyZ2V0IiwiY29tcGlsZUV4cHJlc3Npb24iLCJnZXRFbmFibGVkRm9yQW5ub3RhdGlvbkFjdGlvbiIsImdldEhlYWRlckRlZmF1bHRBY3Rpb25zIiwic0NvbnRleHRQYXRoIiwiZ2V0Q29udGV4dFBhdGgiLCJyb290RW50aXR5U2V0UGF0aCIsImdldFJvb3RFbnRpdHlTZXRQYXRoIiwiZ2V0Q29udmVydGVyQ29udGV4dEZvciIsImdldEVudGl0eVR5cGUiLCJyb290RW50aXR5VHlwZSIsInN0aWNreVNlc3Npb25TdXBwb3J0ZWQiLCJnZXRTdGlja3lTZXNzaW9uIiwiZHJhZnRSb290IiwiZ2V0RHJhZnRSb290IiwiZHJhZnROb2RlIiwiZ2V0RHJhZnROb2RlIiwiZW50aXR5RGVsZXRlUmVzdHJpY3Rpb25zIiwiQ2FwYWJpbGl0aWVzIiwiRGVsZXRlUmVzdHJpY3Rpb25zIiwiaXNVcGRhdGVIaWRkZW4iLCJpc1BhdGhEZWxldGFibGUiLCJwYXRoVmlzaXRvciIsIm5hdmlnYXRpb25QYXRocyIsInBhcmVudEVudGl0eVNldERlbGV0YWJsZSIsImlkZW50aWZpY2F0aW9uRmllbGRGb3JBY3Rpb25zIiwiY29weURhdGFGaWVsZCIsImdldENvcHlBY3Rpb24iLCJkYXRhRmllbGQiLCJkYXRhRmllbGRJc0NvcHlBY3Rpb24iLCJoZWFkZXJEYXRhRmllbGRGb3JBY3Rpb25zIiwiaGVhZGVyQWN0aW9ucyIsInB1c2giLCJ0eXBlIiwiQWN0aW9uVHlwZSIsIkRyYWZ0QWN0aW9ucyIsImtleSIsInVwZGF0YWJsZVByb3BlcnR5UGF0aCIsIlVwZGF0ZVJlc3RyaWN0aW9ucyIsIlVwZGF0YWJsZSIsIkNvbGxhYm9yYXRpb25BdmF0YXJzIiwiaW5kZXhPZiIsIkNyaXRpY2FsaXR5IiwiZm9yRWFjaCIsImdldERhdGFGaWVsZEFubm90YXRpb25BY3Rpb24iLCJQcmltYXJ5IiwidmlzaWJsZSIsImVuYWJsZWQiLCJEZWxldGFibGUiLCJnZXREZWxldGVIaWRkZW4iLCJTZWNvbmRhcnkiLCJwYXJlbnRFbnRpdHlEZWxldGVFbmFibGVkIiwiQ29weSIsInRleHQiLCJMYWJlbCIsInRvU3RyaW5nIiwiZ2V0TGlicmFyeVJlc291cmNlQnVuZGxlIiwiZ2V0VGV4dCIsImhlYWRlckRhdGFGaWVsZEZvcklCTkFjdGlvbnMiLCJSZXF1aXJlc0NvbnRleHQiLCJFcnJvciIsIklubGluZSIsIm9OYXZpZ2F0aW9uUGFyYW1zIiwic2VtYW50aWNPYmplY3RNYXBwaW5nIiwiZ2V0U2VtYW50aWNPYmplY3RNYXBwaW5nIiwiTWFwcGluZyIsIkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbiIsImFubm90YXRpb25QYXRoIiwiZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aCIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsImJ1dHRvblR5cGUiLCJCdXR0b25UeXBlIiwiR2hvc3QiLCJOYXZpZ2F0aW9uQXZhaWxhYmxlIiwiS2V5SGVscGVyIiwiZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkIiwiaXNOYXZpZ2FibGUiLCJwcmVzcyIsImZuIiwiU2VtYW50aWNPYmplY3QiLCJBY3Rpb24iLCJjdXN0b21EYXRhIiwic2VtYW50aWNPYmplY3QiLCJhY3Rpb24iLCJnZXRIaWRkZW5IZWFkZXJBY3Rpb25zIiwiaGlkZGVuQWN0aW9ucyIsIkRlZmF1bHQiLCJnZXRGb290ZXJEZWZhdWx0QWN0aW9ucyIsImVudGl0eVNldERyYWZ0Um9vdCIsInRlcm0iLCJjb25kaXRpb25TYXZlIiwiU2F2ZUFjdGlvbiIsImNvbmRpdGlvbkFwcGx5IiwiY29uZGl0aW9uQ2FuY2VsIiwiRGlzY2FyZEFjdGlvbiIsImZvb3RlckRhdGFGaWVsZEZvckFjdGlvbnMiLCJmb290ZXJBY3Rpb25zIiwiZW50aXR5VHlwZU5hbWUiLCJEZWZhdWx0QXBwbHkiLCJwb3NpdGlvbiIsInBsYWNlbWVudCIsIlBsYWNlbWVudCIsIkVuZCIsIkRhdGFGaWVsZEZvckFjdGlvbiJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiSGVhZGVyQW5kRm9vdGVyQWN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQWN0aW9uLCBFbnRpdHlTZXQsIEVudGl0eVR5cGUsIFByb3BlcnR5QW5ub3RhdGlvblZhbHVlIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgeyBDb21tb25Bbm5vdGF0aW9uVGVybXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0NvbW1vblwiO1xuaW1wb3J0IHR5cGUgeyBEYXRhRmllbGRGb3JBY3Rpb25UeXBlcywgRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uVHlwZXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgeyBVSUFubm90YXRpb25UeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCB0eXBlIHsgQW5ub3RhdGlvbkFjdGlvbiwgQmFzZUFjdGlvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0NvbW1vbi9BY3Rpb25cIjtcbmltcG9ydCB7XG5cdEJ1dHRvblR5cGUsXG5cdGRhdGFGaWVsZElzQ29weUFjdGlvbixcblx0Z2V0Q29weUFjdGlvbixcblx0Z2V0RW5hYmxlZEZvckFubm90YXRpb25BY3Rpb24sXG5cdGdldFNlbWFudGljT2JqZWN0TWFwcGluZ1xufSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9Db21tb24vQWN0aW9uXCI7XG5pbXBvcnQgeyBQbGFjZW1lbnQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0NvbmZpZ3VyYWJsZU9iamVjdFwiO1xuaW1wb3J0IHsgS2V5SGVscGVyIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9LZXlcIjtcbmltcG9ydCB7XG5cdGFuZCxcblx0QmluZGluZ1Rvb2xraXRFeHByZXNzaW9uLFxuXHRDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbixcblx0Y29tcGlsZUV4cHJlc3Npb24sXG5cdGNvbnN0YW50LFxuXHRlcXVhbCxcblx0Zm4sXG5cdGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbixcblx0aWZFbHNlLFxuXHRub3QsXG5cdHBhdGhJbk1vZGVsXG59IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgTW9kZWxIZWxwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcbmltcG9ydCB7IGlzUGF0aERlbGV0YWJsZSB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCBDb3JlIGZyb20gXCJzYXAvdWkvY29yZS9Db3JlXCI7XG5pbXBvcnQgdHlwZSBDb252ZXJ0ZXJDb250ZXh0IGZyb20gXCIuLi9Db252ZXJ0ZXJDb250ZXh0XCI7XG5pbXBvcnQgeyBEcmFmdCwgc2luZ2xldG9uUGF0aFZpc2l0b3IsIFVJIH0gZnJvbSBcIi4uL2hlbHBlcnMvQmluZGluZ0hlbHBlclwiO1xuaW1wb3J0IHsgQWN0aW9uVHlwZSB9IGZyb20gXCIuLi9NYW5pZmVzdFNldHRpbmdzXCI7XG5cbi8qKlxuICogUmV0cmlldmVzIGFsbCB0aGUgZGF0YSBmaWVsZCBmb3IgYWN0aW9ucyBmb3IgdGhlIGlkZW50aWZpY2F0aW9uIGFubm90YXRpb25cbiAqIFRoZXkgbXVzdCBiZVxuICogLSBOb3Qgc3RhdGljYWxseSBoaWRkZW5cbiAqIC0gRWl0aGVyIGxpbmtlZCB0byBhbiBVbmJvdW5kIGFjdGlvbiBvciB0byBhbiBhY3Rpb24gd2hpY2ggaGFzIGFuIE9wZXJhdGlvbkF2YWlsYWJsZSB0aGF0IGlzIG5vdCBzZXQgdG8gZmFsc2Ugc3RhdGljYWxseS5cbiAqXG4gKiBAcGFyYW0gZW50aXR5VHlwZSBUaGUgY3VycmVudCBlbnRpdHkgdHlwZVxuICogQHBhcmFtIGlzRGV0ZXJtaW5pbmdBY3Rpb24gVGhlIGZsYWcgd2hpY2ggZGVub3RlcyB3aGV0aGVyIG9yIG5vdCB0aGUgYWN0aW9uIGlzIGEgZGV0ZXJtaW5pbmcgYWN0aW9uXG4gKiBAcmV0dXJucyBBbiBhcnJheSBvZiBEYXRhRmllbGQgZm9yIGFjdGlvbiByZXNwZWN0aW5nIHRoZSBpbnB1dCBwYXJhbWV0ZXIgJ2lzRGV0ZXJtaW5pbmdBY3Rpb24nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJZGVudGlmaWNhdGlvbkRhdGFGaWVsZEZvckFjdGlvbnMoZW50aXR5VHlwZTogRW50aXR5VHlwZSwgaXNEZXRlcm1pbmluZ0FjdGlvbjogYm9vbGVhbik6IERhdGFGaWVsZEZvckFjdGlvblR5cGVzW10ge1xuXHRyZXR1cm4gKGVudGl0eVR5cGUuYW5ub3RhdGlvbnM/LlVJPy5JZGVudGlmaWNhdGlvbj8uZmlsdGVyKChpZGVudGlmaWNhdGlvbkRhdGFGaWVsZCkgPT4ge1xuXHRcdHJldHVybiBpZGVudGlmaWNhdGlvbkRhdGFGaWVsZC5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbj8udmFsdWVPZigpICE9PSB0cnVlICYmXG5cdFx0XHRpZGVudGlmaWNhdGlvbkRhdGFGaWVsZC4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkRm9yQWN0aW9uICYmXG5cdFx0XHRCb29sZWFuKGlkZW50aWZpY2F0aW9uRGF0YUZpZWxkLkRldGVybWluaW5nPy52YWx1ZU9mKCkpID09PSBpc0RldGVybWluaW5nQWN0aW9uICYmXG5cdFx0XHQoaWRlbnRpZmljYXRpb25EYXRhRmllbGQuQWN0aW9uVGFyZ2V0Py5pc0JvdW5kPy52YWx1ZU9mKCkgIT09IHRydWUgfHxcblx0XHRcdFx0aWRlbnRpZmljYXRpb25EYXRhRmllbGQ/LkFjdGlvblRhcmdldD8uYW5ub3RhdGlvbnM/LkNvcmU/Lk9wZXJhdGlvbkF2YWlsYWJsZT8udmFsdWVPZigpICE9PSBmYWxzZSlcblx0XHRcdD8gdHJ1ZVxuXHRcdFx0OiBmYWxzZTtcblx0fSkgfHwgW10pIGFzIERhdGFGaWVsZEZvckFjdGlvblR5cGVzW107XG59XG5cbi8qKlxuICogUmV0cmlldmUgYWxsIHRoZSBJQk4gYWN0aW9ucyBmb3IgdGhlIGlkZW50aWZpY2F0aW9uIGFubm90YXRpb24uXG4gKiBUaGV5IG11c3QgYmVcbiAqIC0gTm90IHN0YXRpY2FsbHkgaGlkZGVuLlxuICpcbiAqIEBwYXJhbSBlbnRpdHlUeXBlIFRoZSBjdXJyZW50IGVudGl0eXR5cGVcbiAqIEBwYXJhbSBpc0RldGVybWluaW5nQWN0aW9uIFdoZXRoZXIgb3Igbm90IHRoZSBhY3Rpb24gc2hvdWxkIGJlIGRldGVybWluaW5nXG4gKiBAcmV0dXJucyBBbiBhcnJheSBvZiBkYXRhIGZpZWxkIGZvciBhY3Rpb24gcmVzcGVjdGluZyB0aGUgaXNEZXRlcm1pbmluZ0FjdGlvbiBwcm9wZXJ0eS5cbiAqL1xuZnVuY3Rpb24gZ2V0SWRlbnRpZmljYXRpb25EYXRhRmllbGRGb3JJQk5BY3Rpb25zKFxuXHRlbnRpdHlUeXBlOiBFbnRpdHlUeXBlLFxuXHRpc0RldGVybWluaW5nQWN0aW9uOiBib29sZWFuXG4pOiBEYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb25UeXBlc1tdIHtcblx0cmV0dXJuIChlbnRpdHlUeXBlLmFubm90YXRpb25zPy5VST8uSWRlbnRpZmljYXRpb24/LmZpbHRlcigoaWRlbnRpZmljYXRpb25EYXRhRmllbGQpID0+IHtcblx0XHRyZXR1cm4gaWRlbnRpZmljYXRpb25EYXRhRmllbGQuYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSAhPT0gdHJ1ZSAmJlxuXHRcdFx0aWRlbnRpZmljYXRpb25EYXRhRmllbGQuJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbiAmJlxuXHRcdFx0Qm9vbGVhbihpZGVudGlmaWNhdGlvbkRhdGFGaWVsZC5EZXRlcm1pbmluZz8udmFsdWVPZigpKSA9PT0gaXNEZXRlcm1pbmluZ0FjdGlvblxuXHRcdFx0PyB0cnVlXG5cdFx0XHQ6IGZhbHNlO1xuXHR9KSB8fCBbXSkgYXMgRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uVHlwZXNbXTtcbn1cblxuZXhwb3J0IGNvbnN0IElNUE9SVEFOVF9DUklUSUNBTElUSUVTID0gW1xuXHRcIlVJLkNyaXRpY2FsaXR5VHlwZS9WZXJ5UG9zaXRpdmVcIixcblx0XCJVSS5Dcml0aWNhbGl0eVR5cGUvUG9zaXRpdmVcIixcblx0XCJVSS5Dcml0aWNhbGl0eVR5cGUvTmVnYXRpdmVcIixcblx0XCJVSS5Dcml0aWNhbGl0eVR5cGUvVmVyeU5lZ2F0aXZlXCJcbl07XG5cbi8qKlxuICogTWV0aG9kIHRvIGRldGVybWluZSB0aGUgJ3Zpc2libGUnIHByb3BlcnR5IGJpbmRpbmcgZm9yIHRoZSBEZWxldGUgYnV0dG9uIG9uIGFuIG9iamVjdCBwYWdlLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0IEluc3RhbmNlIG9mIHRoZSBjb252ZXJ0ZXIgY29udGV4dC5cbiAqIEBwYXJhbSBkZWxldGVIaWRkZW4gVGhlIHZhbHVlIG9mIHRoZSBVSS5EZWxldGVIaWRkZW4gYW5ub3RhdGlvbiBvbiB0aGUgZW50aXR5IHNldCAvIHR5cGUuXG4gKiBAcmV0dXJucyBUaGUgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgJ3Zpc2libGUnIHByb3BlcnR5IG9mIHRoZSBEZWxldGUgYnV0dG9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVsZXRlQnV0dG9uVmlzaWJpbGl0eShcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0ZGVsZXRlSGlkZGVuOiBQcm9wZXJ0eUFubm90YXRpb25WYWx1ZTxib29sZWFuPiB8IHVuZGVmaW5lZFxuKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+IHtcblx0Y29uc3QgZGF0YU1vZGVsT2JqZWN0UGF0aCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLFxuXHRcdHZpc2l0ZWROYXZpZ2F0aW9uUGF0aHMgPSBkYXRhTW9kZWxPYmplY3RQYXRoLm5hdmlnYXRpb25Qcm9wZXJ0aWVzLm1hcCgobmF2UHJvcCkgPT4gbmF2UHJvcC5uYW1lKSxcblx0XHQvLyBTZXQgYWJzb2x1dGUgYmluZGluZyBwYXRoIGZvciBTaW5nbGV0b24gcmVmZXJlbmNlcywgb3RoZXJ3aXNlIHRoZSBjb25maWd1cmVkIGFubm90YXRpb24gcGF0aCBpdHNlbGYuXG5cdFx0Ly8gRm9yIGUuZy4gL2NvbS5zYXAubmFtZXNwYWNlLkVudGl0eUNvbnRhaW5lci9TaW5nbGV0b24vUHJvcGVydHkgdG8gL1NpbmdsZXRvbi9Qcm9wZXJ0eVxuXHRcdGRlbGV0ZUhpZGRlbkV4cHJlc3Npb246IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuIHwgdW5kZWZpbmVkPiA9IGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihcblx0XHRcdGRlbGV0ZUhpZGRlbixcblx0XHRcdHZpc2l0ZWROYXZpZ2F0aW9uUGF0aHMsXG5cdFx0XHR1bmRlZmluZWQsXG5cdFx0XHQocGF0aDogc3RyaW5nKSA9PiBzaW5nbGV0b25QYXRoVmlzaXRvcihwYXRoLCBjb252ZXJ0ZXJDb250ZXh0LmdldENvbnZlcnRlZFR5cGVzKCksIFtdKVxuXHRcdCksXG5cdFx0bWFuaWZlc3RXcmFwcGVyID0gY29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdFdyYXBwZXIoKSxcblx0XHR2aWV3TGV2ZWwgPSBtYW5pZmVzdFdyYXBwZXIuZ2V0Vmlld0xldmVsKCksXG5cdFx0Ly8gRGVsZXRlIGJ1dHRvbiBpcyB2aXNpYmxlXG5cdFx0Ly8gSW4gT1AgXHRcdC0tPiAgd2hlbiBub3QgaW4gZWRpdCBtb2RlXG5cdFx0Ly8gSW4gc3ViLU9QIFx0LS0+ICB3aGVuIGluIGVkaXQgbW9kZVxuXHRcdGVkaXRhYmxlRXhwcmVzc2lvbjogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+ID0gdmlld0xldmVsID4gMSA/IFVJLklzRWRpdGFibGUgOiBub3QoVUkuSXNFZGl0YWJsZSk7XG5cblx0Ly8gSWYgVUkuRGVsZXRlSGlkZGVuIGFubm90YXRpb24gb24gZW50aXR5IHNldCBvciB0eXBlIGlzIGVpdGhlciBub3QgZGVmaW5lZCBvciBleHBsaWNpdGx5IHNldCB0byBmYWxzZSxcblx0Ly8gRGVsZXRlIGJ1dHRvbiBpcyB2aXNpYmxlIGJhc2VkIG9uIGVkaXRhYmxlRXhwcmVzc2lvbi5cblx0Ly8gZWxzZSxcblx0Ly8gRGVsZXRlIGJ1dHRvbiBpcyB2aXNpYmxlIGJhc2VkIG9uIGJvdGggYW5ub3RhdGlvbiBwYXRoIGFuZCBlZGl0YWJsZUV4cHJlc3Npb24uXG5cdHJldHVybiBpZkVsc2UoXG5cdFx0ZGVsZXRlSGlkZGVuID09PSB1bmRlZmluZWQgfHwgZGVsZXRlSGlkZGVuLnZhbHVlT2YoKSA9PT0gZmFsc2UsXG5cdFx0ZWRpdGFibGVFeHByZXNzaW9uLFxuXHRcdGFuZChlZGl0YWJsZUV4cHJlc3Npb24sIGVxdWFsKGRlbGV0ZUhpZGRlbkV4cHJlc3Npb24sIGZhbHNlKSlcblx0KTtcbn1cblxuLyoqXG4gKiBNZXRob2QgdG8gZGV0ZXJtaW5lIHRoZSAnZW5hYmxlZCcgcHJvcGVydHkgYmluZGluZyBmb3IgdGhlIERlbGV0ZSBidXR0b24gb24gYW4gb2JqZWN0IHBhZ2UuXG4gKlxuICogQHBhcmFtIGlzRGVsZXRhYmxlIFRoZSBkZWxldGUgcmVzdHJpY3Rpb24gY29uZmlndXJlZFxuICogQHBhcmFtIGlzUGFyZW50RGVsZXRhYmxlIFRoZSBkZWxldGUgcmVzdHJpY3Rpb24gY29uZmlndXJlZCBvbiB0aGUgcGFyZW50IGVudGl0eVxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHRcbiAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSAnZW5hYmxlZCcgcHJvcGVydHkgb2YgdGhlIERlbGV0ZSBidXR0b25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERlbGV0ZUJ1dHRvbkVuYWJsZWQoXG5cdGlzRGVsZXRhYmxlOiBQcm9wZXJ0eUFubm90YXRpb25WYWx1ZTxCb29sZWFuPiB8IHVuZGVmaW5lZCxcblx0aXNQYXJlbnREZWxldGFibGU6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPixcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dFxuKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+IHtcblx0Y29uc3QgZW50aXR5U2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKSxcblx0XHRpc0RyYWZ0Um9vdCA9IE1vZGVsSGVscGVyLmlzRHJhZnRSb290KGVudGl0eVNldCk7XG5cblx0bGV0IHJldCA9IGlmRWxzZShcblx0XHRpc1BhcmVudERlbGV0YWJsZSAhPT0gdW5kZWZpbmVkLFxuXHRcdGlzUGFyZW50RGVsZXRhYmxlLFxuXHRcdGlmRWxzZShpc0RlbGV0YWJsZSAhPT0gdW5kZWZpbmVkLCBlcXVhbChpc0RlbGV0YWJsZSwgdHJ1ZSksIGNvbnN0YW50KHRydWUpKVxuXHQpO1xuXG5cdC8vIGRlbGV0ZSBzaG91bGQgYmUgZGlzYWJsZWQgZm9yIExvY2tlZCBvYmplY3RzXG5cdHJldCA9IGlzRHJhZnRSb290ID8gYW5kKHJldCwgbm90KHBhdGhJbk1vZGVsKFwiRHJhZnRBZG1pbmlzdHJhdGl2ZURhdGEvSW5Qcm9jZXNzQnlVc2VyXCIpKSkgOiByZXQ7XG5cblx0cmV0dXJuIHJldDtcbn1cblxuLyoqXG4gKiBNZXRob2QgdG8gZGV0ZXJtaW5lIHRoZSAndmlzaWJsZScgcHJvcGVydHkgYmluZGluZyBmb3IgdGhlIEVkaXQgYnV0dG9uIG9uIGFuIG9iamVjdCBwYWdlLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0IEluc3RhbmNlIG9mIHRoZSBjb252ZXJ0ZXIgY29udGV4dC5cbiAqIEBwYXJhbSByb290VXBkYXRlSGlkZGVuIFRoZSB2YWx1ZSBvZiB0aGUgVUkuVXBkYXRlSGlkZGVuIGFubm90YXRpb24gb24gdGhlIGVudGl0eSBzZXQgLyB0eXBlLlxuICogQHBhcmFtIHJvb3RDb252ZXJ0ZXJDb250ZXh0XG4gKiBAcGFyYW0gdXBkYXRlSGlkZGVuXG4gKiBAcGFyYW0gdmlld0xldmVsXG4gKiBAcmV0dXJucyBUaGUgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgJ3Zpc2libGUnIHByb3BlcnR5IG9mIHRoZSBFZGl0IGJ1dHRvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVkaXRCdXR0b25WaXNpYmlsaXR5KFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHRyb290VXBkYXRlSGlkZGVuOiBQcm9wZXJ0eUFubm90YXRpb25WYWx1ZTxib29sZWFuPiB8IHVuZGVmaW5lZCxcblx0cm9vdENvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdHVwZGF0ZUhpZGRlbj86IFByb3BlcnR5QW5ub3RhdGlvblZhbHVlPGJvb2xlYW4+IHwgdW5kZWZpbmVkLFxuXHR2aWV3TGV2ZWw/OiBudW1iZXIgfCB1bmRlZmluZWRcbik6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdGNvbnN0IHJvb3RFbnRpdHlTZXQgPSByb290Q29udmVydGVyQ29udGV4dD8uZ2V0RW50aXR5U2V0KCksXG5cdFx0ZW50aXR5U2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKSxcblx0XHRpc0ZDTEVuYWJsZWQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpLmlzRmNsRW5hYmxlZCgpO1xuXHRsZXQgaXNEcmFmdEVuYWJsZWQ7XG5cdGNvbnN0IHJvb3RVcGRhdGVIaWRkZW5FeHByZXNzaW9uOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbiB8IHVuZGVmaW5lZD4gPSBnZXRIaWRkZW5FeHByZXNzaW9uKFxuXHRcdHJvb3RDb252ZXJ0ZXJDb250ZXh0LFxuXHRcdHJvb3RVcGRhdGVIaWRkZW5cblx0KTtcblx0aWYgKHZpZXdMZXZlbCAmJiB2aWV3TGV2ZWwgPiAxKSB7XG5cdFx0Ly8gaWYgdmlld2xldmVsID4gMSBjaGVjayBpZiBub2RlIGlzIGRyYWZ0IGVuYWJsZWRcblx0XHRpc0RyYWZ0RW5hYmxlZCA9IE1vZGVsSGVscGVyLmlzRHJhZnROb2RlKGVudGl0eVNldCk7XG5cdH0gZWxzZSB7XG5cdFx0aXNEcmFmdEVuYWJsZWQgPSBNb2RlbEhlbHBlci5pc0RyYWZ0Um9vdChyb290RW50aXR5U2V0KTtcblx0fVxuXHRjb25zdCB1cGRhdGVIaWRkZW5FeHByZXNzaW9uOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbiB8IHVuZGVmaW5lZD4gPSBnZXRIaWRkZW5FeHByZXNzaW9uKHJvb3RDb252ZXJ0ZXJDb250ZXh0LCB1cGRhdGVIaWRkZW4pO1xuXG5cdGNvbnN0IG5vdEVkaXRhYmxlRXhwcmVzc2lvbjogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+ID0gbm90KFVJLklzRWRpdGFibGUpO1xuXG5cdC8vIElmIFVJLlVwZGF0ZUhpZGRlbiBhbm5vdGF0aW9uIG9uIGVudGl0eSBzZXQgb3IgdHlwZSBpcyBlaXRoZXIgbm90IGRlZmluZWQgb3IgZXhwbGljaXRseSBzZXQgdG8gZmFsc2UsXG5cdC8vIEVkaXQgYnV0dG9uIGlzIHZpc2libGUgaW4gZGlzcGxheSBtb2RlLlxuXHQvLyBlbHNlLFxuXHQvLyBFZGl0IGJ1dHRvbiBpcyB2aXNpYmxlIGJhc2VkIG9uIGJvdGggYW5ub3RhdGlvbiBwYXRoIGFuZCBpbiBkaXNwbGF5IG1vZGUuXG5cdGNvbnN0IHJlc3VsdGFudEV4cHJlc3Npb246IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiA9IGlmRWxzZShcblx0XHQodmlld0xldmVsIGFzIG51bWJlcikgPiAxLFxuXHRcdGlmRWxzZShcblx0XHRcdHVwZGF0ZUhpZGRlbiA9PT0gdW5kZWZpbmVkIHx8IHVwZGF0ZUhpZGRlbi52YWx1ZU9mKCkgPT09IGZhbHNlLFxuXHRcdFx0YW5kKFxuXHRcdFx0XHRub3RFZGl0YWJsZUV4cHJlc3Npb24sXG5cdFx0XHRcdGVxdWFsKHBhdGhJbk1vZGVsKFwicm9vdEVkaXRWaXNpYmxlXCIsIFwiaW50ZXJuYWxcIiksIHRydWUpLFxuXHRcdFx0XHRpZkVsc2UoaXNGQ0xFbmFibGVkLCBlcXVhbChwYXRoSW5Nb2RlbChcIi9zaG93RWRpdEJ1dHRvblwiLCBcImZjbGhlbHBlclwiKSwgdHJ1ZSksIHRydWUpXG5cdFx0XHQpLFxuXHRcdFx0YW5kKFxuXHRcdFx0XHRub3RFZGl0YWJsZUV4cHJlc3Npb24sXG5cdFx0XHRcdGVxdWFsKHVwZGF0ZUhpZGRlbkV4cHJlc3Npb24sIGZhbHNlKSxcblx0XHRcdFx0ZXF1YWwocGF0aEluTW9kZWwoXCJyb290RWRpdFZpc2libGVcIiwgXCJpbnRlcm5hbFwiKSwgdHJ1ZSksXG5cdFx0XHRcdGlmRWxzZShpc0ZDTEVuYWJsZWQsIGVxdWFsKHBhdGhJbk1vZGVsKFwiL3Nob3dFZGl0QnV0dG9uXCIsIFwiZmNsaGVscGVyXCIpLCB0cnVlKSwgdHJ1ZSlcblx0XHRcdClcblx0XHQpLFxuXHRcdGlmRWxzZShcblx0XHRcdHJvb3RVcGRhdGVIaWRkZW4gPT09IHVuZGVmaW5lZCB8fCByb290VXBkYXRlSGlkZGVuLnZhbHVlT2YoKSA9PT0gZmFsc2UsXG5cdFx0XHRub3RFZGl0YWJsZUV4cHJlc3Npb24sXG5cdFx0XHRhbmQobm90RWRpdGFibGVFeHByZXNzaW9uLCBlcXVhbChyb290VXBkYXRlSGlkZGVuRXhwcmVzc2lvbiwgZmFsc2UpKVxuXHRcdClcblx0KTtcblx0cmV0dXJuIGlmRWxzZShpc0RyYWZ0RW5hYmxlZCwgYW5kKHJlc3VsdGFudEV4cHJlc3Npb24sIERyYWZ0Lkhhc05vRHJhZnRGb3JDdXJyZW50VXNlciksIHJlc3VsdGFudEV4cHJlc3Npb24pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGlkZGVuRXhwcmVzc2lvbihjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LCB1cGRhdGVIaWRkZW46IFByb3BlcnR5QW5ub3RhdGlvblZhbHVlPGJvb2xlYW4+IHwgdW5kZWZpbmVkKSB7XG5cdGNvbnN0IGRhdGFNb2RlbE9iamVjdFBhdGggPSBjb252ZXJ0ZXJDb250ZXh0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKSxcblx0XHR2aXNpdGVkTmF2aWdhdGlvblBhdGhzID0gZGF0YU1vZGVsT2JqZWN0UGF0aC5uYXZpZ2F0aW9uUHJvcGVydGllcy5tYXAoKG5hdlByb3ApID0+IG5hdlByb3AubmFtZSksXG5cdFx0Ly8gU2V0IGFic29sdXRlIGJpbmRpbmcgcGF0aCBmb3IgU2luZ2xldG9uIHJlZmVyZW5jZXMsIG90aGVyd2lzZSB0aGUgY29uZmlndXJlZCBhbm5vdGF0aW9uIHBhdGggaXRzZWxmLlxuXHRcdC8vIEZvciBlLmcuIC9jb20uc2FwLm5hbWVzcGFjZS5FbnRpdHlDb250YWluZXIvU2luZ2xldG9uL1Byb3BlcnR5IHRvIC9TaW5nbGV0b24vUHJvcGVydHlcblx0XHR1cGRhdGVIaWRkZW5FeHByZXNzaW9uOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbiB8IHVuZGVmaW5lZD4gPSBnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24oXG5cdFx0XHR1cGRhdGVIaWRkZW4sXG5cdFx0XHR2aXNpdGVkTmF2aWdhdGlvblBhdGhzLFxuXHRcdFx0dW5kZWZpbmVkLFxuXHRcdFx0KHBhdGg6IHN0cmluZykgPT4gc2luZ2xldG9uUGF0aFZpc2l0b3IocGF0aCwgY29udmVydGVyQ29udGV4dC5nZXRDb252ZXJ0ZWRUeXBlcygpLCB2aXNpdGVkTmF2aWdhdGlvblBhdGhzKVxuXHRcdCk7XG5cdHJldHVybiB1cGRhdGVIaWRkZW5FeHByZXNzaW9uO1xufVxuLyoqXG4gKiBNZXRob2QgdG8gZGV0ZXJtaW5lIHRoZSAnZW5hYmxlZCcgcHJvcGVydHkgYmluZGluZyBmb3IgdGhlIEVkaXQgYnV0dG9uIG9uIGFuIG9iamVjdCBwYWdlLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0IEluc3RhbmNlIG9mIHRoZSBjb252ZXJ0ZXIgY29udGV4dC5cbiAqIEBwYXJhbSB1cGRhdGVSZXN0cmljdGlvbnNcbiAqIEBwYXJhbSB2aWV3TGV2ZWxcbiAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSAnZW5hYmxlZCcgcHJvcGVydHkgb2YgdGhlIEVkaXQgYnV0dG9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWRpdEJ1dHRvbkVuYWJsZWQoXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdHVwZGF0ZVJlc3RyaWN0aW9ucz86IGFueSxcblx0dmlld0xldmVsPzogbnVtYmVyIHwgdW5kZWZpbmVkXG4pOiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiB7XG5cdGNvbnN0IGVudGl0eVNldCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KCksXG5cdFx0aXNEcmFmdFJvb3QgPSBNb2RlbEhlbHBlci5pc0RyYWZ0Um9vdChlbnRpdHlTZXQpLFxuXHRcdGlzU3RpY2t5ID0gTW9kZWxIZWxwZXIuaXNTdGlja3koZW50aXR5U2V0KTtcblx0bGV0IGVkaXRBY3Rpb25OYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdGlmIChpc0RyYWZ0Um9vdCAmJiAhTW9kZWxIZWxwZXIuaXNTaW5nbGV0b24oZW50aXR5U2V0KSkge1xuXHRcdGVkaXRBY3Rpb25OYW1lID0gKGVudGl0eVNldCBhcyBFbnRpdHlTZXQpPy5hbm5vdGF0aW9ucy5Db21tb24/LkRyYWZ0Um9vdD8uRWRpdEFjdGlvbiBhcyBzdHJpbmc7XG5cdH0gZWxzZSBpZiAoaXNTdGlja3kgJiYgIU1vZGVsSGVscGVyLmlzU2luZ2xldG9uKGVudGl0eVNldCkpIHtcblx0XHRlZGl0QWN0aW9uTmFtZSA9IChlbnRpdHlTZXQgYXMgRW50aXR5U2V0KT8uYW5ub3RhdGlvbnMuU2Vzc2lvbj8uU3RpY2t5U2Vzc2lvblN1cHBvcnRlZD8uRWRpdEFjdGlvbiBhcyBzdHJpbmc7XG5cdH1cblx0aWYgKGVkaXRBY3Rpb25OYW1lKSB7XG5cdFx0Y29uc3QgZWRpdEFjdGlvbkFubm90YXRpb25QYXRoID0gY29udmVydGVyQ29udGV4dC5nZXRBYnNvbHV0ZUFubm90YXRpb25QYXRoKGVkaXRBY3Rpb25OYW1lKTtcblx0XHRjb25zdCBlZGl0QWN0aW9uID0gY29udmVydGVyQ29udGV4dC5yZXNvbHZlQWJzb2x1dGVQYXRoKGVkaXRBY3Rpb25Bbm5vdGF0aW9uUGF0aCkudGFyZ2V0IGFzIEFjdGlvbiB8IG51bGw7XG5cdFx0aWYgKGVkaXRBY3Rpb24/LmFubm90YXRpb25zPy5Db3JlPy5PcGVyYXRpb25BdmFpbGFibGUgPT09IG51bGwpIHtcblx0XHRcdC8vIFdlIGRpc2FibGVkIGFjdGlvbiBhZHZlcnRpc2VtZW50IGJ1dCBrZXB0IGl0IGluIHRoZSBjb2RlIGZvciB0aGUgdGltZSBiZWluZ1xuXHRcdFx0Ly9yZXR1cm4gXCJ7PSAkeyNcIiArIGVkaXRBY3Rpb25OYW1lICsgXCJ9ID8gdHJ1ZSA6IGZhbHNlIH1cIjtcblx0XHR9IGVsc2UgaWYgKCh2aWV3TGV2ZWwgYXMgbnVtYmVyKSA+IDEpIHtcblx0XHRcdC8vIEVkaXQgYnV0dG9uIGlzIGVuYWJsZWQgYmFzZWQgb24gdGhlIHVwZGF0ZSByZXN0cmljdGlvbnMgb2YgdGhlIHN1Yi1PUFxuXHRcdFx0aWYgKHVwZGF0ZVJlc3RyaWN0aW9ucyAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdHJldHVybiBjb21waWxlRXhwcmVzc2lvbihcblx0XHRcdFx0XHRhbmQoXG5cdFx0XHRcdFx0XHRlcXVhbChnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24odXBkYXRlUmVzdHJpY3Rpb25zKSwgdHJ1ZSksXG5cdFx0XHRcdFx0XHRlcXVhbChwYXRoSW5Nb2RlbChcInJvb3RFZGl0RW5hYmxlZFwiLCBcImludGVybmFsXCIpLCB0cnVlKVxuXHRcdFx0XHRcdClcblx0XHRcdFx0KTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJldHVybiBjb21waWxlRXhwcmVzc2lvbihlcXVhbChwYXRoSW5Nb2RlbChcInJvb3RFZGl0RW5hYmxlZFwiLCBcImludGVybmFsXCIpLCB0cnVlKSk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiBnZXRFbmFibGVkRm9yQW5ub3RhdGlvbkFjdGlvbihjb252ZXJ0ZXJDb250ZXh0LCBlZGl0QWN0aW9uID8/IHVuZGVmaW5lZCk7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBcInRydWVcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEhlYWRlckRlZmF1bHRBY3Rpb25zKGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQpOiBCYXNlQWN0aW9uW10ge1xuXHRjb25zdCBzQ29udGV4dFBhdGggPSBjb252ZXJ0ZXJDb250ZXh0LmdldENvbnRleHRQYXRoKCk7XG5cdGNvbnN0IHJvb3RFbnRpdHlTZXRQYXRoID0gTW9kZWxIZWxwZXIuZ2V0Um9vdEVudGl0eVNldFBhdGgoc0NvbnRleHRQYXRoKTtcblx0Y29uc3Qgcm9vdENvbnZlcnRlckNvbnRleHQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldENvbnZlcnRlckNvbnRleHRGb3IoXCIvXCIgKyByb290RW50aXR5U2V0UGF0aCk7XG5cdGNvbnN0IGVudGl0eVNldCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KCksXG5cdFx0ZW50aXR5VHlwZSA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpLFxuXHRcdHJvb3RFbnRpdHlTZXQgPSByb290Q29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKSxcblx0XHRyb290RW50aXR5VHlwZSA9IHJvb3RDb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKSxcblx0XHRzdGlja3lTZXNzaW9uU3VwcG9ydGVkID0gTW9kZWxIZWxwZXIuZ2V0U3RpY2t5U2Vzc2lvbihyb290RW50aXR5U2V0KSwgLy9mb3Igc3RpY2t5IGFwcFxuXHRcdGRyYWZ0Um9vdCA9IE1vZGVsSGVscGVyLmdldERyYWZ0Um9vdChyb290RW50aXR5U2V0KSwgLy9lbnRpdHlTZXQgJiYgZW50aXR5U2V0LmFubm90YXRpb25zLkNvbW1vbj8uRHJhZnRSb290LFxuXHRcdGRyYWZ0Tm9kZSA9IE1vZGVsSGVscGVyLmdldERyYWZ0Tm9kZShyb290RW50aXR5U2V0KSxcblx0XHRlbnRpdHlEZWxldGVSZXN0cmljdGlvbnMgPSBlbnRpdHlTZXQgJiYgZW50aXR5U2V0LmFubm90YXRpb25zPy5DYXBhYmlsaXRpZXM/LkRlbGV0ZVJlc3RyaWN0aW9ucyxcblx0XHRyb290VXBkYXRlSGlkZGVuID0gTW9kZWxIZWxwZXIuaXNVcGRhdGVIaWRkZW4ocm9vdEVudGl0eVNldCwgcm9vdEVudGl0eVR5cGUpLFxuXHRcdHVwZGF0ZUhpZGRlbiA9IHJvb3RFbnRpdHlTZXQgJiYgIU1vZGVsSGVscGVyLmlzU2luZ2xldG9uKHJvb3RFbnRpdHlTZXQpICYmIHJvb3RVcGRhdGVIaWRkZW4/LnZhbHVlT2YoKSxcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoID0gY29udmVydGVyQ29udGV4dC5nZXREYXRhTW9kZWxPYmplY3RQYXRoKCksXG5cdFx0aXNQYXJlbnREZWxldGFibGUgPSBpc1BhdGhEZWxldGFibGUoZGF0YU1vZGVsT2JqZWN0UGF0aCwge1xuXHRcdFx0cGF0aFZpc2l0b3I6IChwYXRoOiBzdHJpbmcsIG5hdmlnYXRpb25QYXRoczogc3RyaW5nW10pID0+XG5cdFx0XHRcdHNpbmdsZXRvblBhdGhWaXNpdG9yKHBhdGgsIGNvbnZlcnRlckNvbnRleHQuZ2V0Q29udmVydGVkVHlwZXMoKSwgbmF2aWdhdGlvblBhdGhzKVxuXHRcdH0pLFxuXHRcdHBhcmVudEVudGl0eVNldERlbGV0YWJsZSA9IGlzUGFyZW50RGVsZXRhYmxlID8gY29tcGlsZUV4cHJlc3Npb24oaXNQYXJlbnREZWxldGFibGUpIDogaXNQYXJlbnREZWxldGFibGUsXG5cdFx0aWRlbnRpZmljYXRpb25GaWVsZEZvckFjdGlvbnMgPSBnZXRJZGVudGlmaWNhdGlvbkRhdGFGaWVsZEZvckFjdGlvbnMoY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCksIGZhbHNlKTtcblxuXHRjb25zdCBjb3B5RGF0YUZpZWxkID1cblx0XHRjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpLmdldFZpZXdMZXZlbCgpID09PSAxXG5cdFx0XHQ/IGdldENvcHlBY3Rpb24oXG5cdFx0XHRcdFx0aWRlbnRpZmljYXRpb25GaWVsZEZvckFjdGlvbnMuZmlsdGVyKChkYXRhRmllbGQpID0+IHtcblx0XHRcdFx0XHRcdHJldHVybiBkYXRhRmllbGRJc0NvcHlBY3Rpb24oZGF0YUZpZWxkKTtcblx0XHRcdFx0XHR9KVxuXHRcdFx0ICApXG5cdFx0XHQ6IHVuZGVmaW5lZDtcblxuXHRjb25zdCBoZWFkZXJEYXRhRmllbGRGb3JBY3Rpb25zID0gaWRlbnRpZmljYXRpb25GaWVsZEZvckFjdGlvbnMuZmlsdGVyKChkYXRhRmllbGQpID0+IHtcblx0XHRyZXR1cm4gIWRhdGFGaWVsZElzQ29weUFjdGlvbihkYXRhRmllbGQpO1xuXHR9KTtcblxuXHQvLyBJbml0aWFsaXplIGFjdGlvbnMgYW5kIHN0YXJ0IHdpdGggZHJhZnQgYWN0aW9ucyBpZiBhdmFpbGFibGUgc2luY2UgdGhleSBzaG91bGQgYXBwZWFyIGluIHRoZSBmaXJzdFxuXHQvLyBsZWZ0bW9zdCBwb3NpdGlvbiBpbiB0aGUgYWN0aW9ucyBhcmVhIG9mIHRoZSBPUCBoZWFkZXJcblx0Ly8gVGhpcyBpcyBtb3JlIGxpa2UgYSBwbGFjZWhvbGRlciB0aGFuIGEgc2luZ2xlIGFjdGlvbiwgc2luY2UgdGhpcyBjb250cm9scyBub3Qgb25seSB0aGUgdGVtcGxhdGluZyBvZlxuXHQvLyB0aGUgYnV0dG9uIGZvciBzd2l0Y2hpbmcgYmV0d2VlbiBkcmFmdCBhbmQgYWN0aXZlIGRvY3VtZW50IHZlcnNpb25zIGJ1dCBhbHNvIHRoZSBjb250cm9scyBmb3Jcblx0Ly8gdGhlIGNvbGxhYm9yYXRpdmUgZHJhZnQgZnJhZ21lbnQuXG5cdGNvbnN0IGhlYWRlckFjdGlvbnM6IEJhc2VBY3Rpb25bXSA9IFtdO1xuXHRpZiAoIU1vZGVsSGVscGVyLmlzU2luZ2xldG9uKGVudGl0eVNldCkgJiYgZHJhZnRSb290Py5FZGl0QWN0aW9uICYmIHVwZGF0ZUhpZGRlbiAhPT0gdHJ1ZSkge1xuXHRcdGhlYWRlckFjdGlvbnMucHVzaCh7IHR5cGU6IEFjdGlvblR5cGUuRHJhZnRBY3Rpb25zLCBrZXk6IFwiRHJhZnRBY3Rpb25zXCIgfSk7XG5cdH1cblxuXHRjb25zdCB2aWV3TGV2ZWwgPSBjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpLmdldFZpZXdMZXZlbCgpO1xuXHRjb25zdCB1cGRhdGFibGVQcm9wZXJ0eVBhdGggPSB2aWV3TGV2ZWwgPiAxID8gZW50aXR5U2V0Py5hbm5vdGF0aW9ucy5DYXBhYmlsaXRpZXM/LlVwZGF0ZVJlc3RyaWN0aW9ucz8uVXBkYXRhYmxlIDogdW5kZWZpbmVkO1xuXHRpZiAoZHJhZnRSb290IHx8IGRyYWZ0Tm9kZSkge1xuXHRcdGhlYWRlckFjdGlvbnMucHVzaCh7IHR5cGU6IEFjdGlvblR5cGUuQ29sbGFib3JhdGlvbkF2YXRhcnMsIGtleTogXCJDb2xsYWJvcmF0aW9uQXZhdGFyc1wiIH0pO1xuXHR9XG5cdC8vIFRoZW4gYWRkIHRoZSBcIkNyaXRpY2FsXCIgRGF0YUZpZWxkRm9yQWN0aW9uc1xuXHRoZWFkZXJEYXRhRmllbGRGb3JBY3Rpb25zXG5cdFx0LmZpbHRlcigoZGF0YUZpZWxkKSA9PiB7XG5cdFx0XHRyZXR1cm4gSU1QT1JUQU5UX0NSSVRJQ0FMSVRJRVMuaW5kZXhPZihkYXRhRmllbGQ/LkNyaXRpY2FsaXR5IGFzIHN0cmluZykgPiAtMTtcblx0XHR9KVxuXHRcdC5mb3JFYWNoKChkYXRhRmllbGQpID0+IHtcblx0XHRcdGhlYWRlckFjdGlvbnMucHVzaChnZXREYXRhRmllbGRBbm5vdGF0aW9uQWN0aW9uKGRhdGFGaWVsZCwgY29udmVydGVyQ29udGV4dCkpO1xuXHRcdH0pO1xuXG5cdC8vIFRoZW4gdGhlIGVkaXQgYWN0aW9uIGlmIGl0IGV4aXN0c1xuXHRpZiAoKGRyYWZ0Um9vdD8uRWRpdEFjdGlvbiB8fCBzdGlja3lTZXNzaW9uU3VwcG9ydGVkPy5FZGl0QWN0aW9uKSAmJiB1cGRhdGVIaWRkZW4gIT09IHRydWUpIHtcblx0XHRoZWFkZXJBY3Rpb25zLnB1c2goe1xuXHRcdFx0dHlwZTogQWN0aW9uVHlwZS5QcmltYXJ5LFxuXHRcdFx0a2V5OiBcIkVkaXRBY3Rpb25cIixcblx0XHRcdHZpc2libGU6IGNvbXBpbGVFeHByZXNzaW9uKFxuXHRcdFx0XHRnZXRFZGl0QnV0dG9uVmlzaWJpbGl0eShcblx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0LFxuXHRcdFx0XHRcdHJvb3RVcGRhdGVIaWRkZW4sXG5cdFx0XHRcdFx0cm9vdENvbnZlcnRlckNvbnRleHQsXG5cdFx0XHRcdFx0TW9kZWxIZWxwZXIuaXNVcGRhdGVIaWRkZW4oZW50aXR5U2V0LCBlbnRpdHlUeXBlKSxcblx0XHRcdFx0XHR2aWV3TGV2ZWxcblx0XHRcdFx0KVxuXHRcdFx0KSxcblx0XHRcdGVuYWJsZWQ6IGdldEVkaXRCdXR0b25FbmFibGVkKHJvb3RDb252ZXJ0ZXJDb250ZXh0LCB1cGRhdGFibGVQcm9wZXJ0eVBhdGgsIHZpZXdMZXZlbClcblx0XHR9KTtcblx0fVxuXHQvLyBUaGVuIHRoZSBkZWxldGUgYWN0aW9uIGlmIHdlJ3JlIG5vdCBzdGF0aWNhbGx5IG5vdCBkZWxldGFibGVcblx0aWYgKFxuXHRcdChwYXJlbnRFbnRpdHlTZXREZWxldGFibGUgJiYgcGFyZW50RW50aXR5U2V0RGVsZXRhYmxlICE9PSBcImZhbHNlXCIpIHx8XG5cdFx0KGVudGl0eURlbGV0ZVJlc3RyaWN0aW9ucz8uRGVsZXRhYmxlPy52YWx1ZU9mKCkgIT09IGZhbHNlICYmIHBhcmVudEVudGl0eVNldERlbGV0YWJsZSAhPT0gXCJmYWxzZVwiKVxuXHQpIHtcblx0XHRjb25zdCBkZWxldGVIaWRkZW4gPSBNb2RlbEhlbHBlci5nZXREZWxldGVIaWRkZW4oZW50aXR5U2V0LCBlbnRpdHlUeXBlKSBhcyBQcm9wZXJ0eUFubm90YXRpb25WYWx1ZTxib29sZWFuPjtcblx0XHRoZWFkZXJBY3Rpb25zLnB1c2goe1xuXHRcdFx0dHlwZTogQWN0aW9uVHlwZS5TZWNvbmRhcnksXG5cdFx0XHRrZXk6IFwiRGVsZXRlQWN0aW9uXCIsXG5cdFx0XHR2aXNpYmxlOiBjb21waWxlRXhwcmVzc2lvbihnZXREZWxldGVCdXR0b25WaXNpYmlsaXR5KGNvbnZlcnRlckNvbnRleHQsIGRlbGV0ZUhpZGRlbikpLFxuXHRcdFx0ZW5hYmxlZDogY29tcGlsZUV4cHJlc3Npb24oZ2V0RGVsZXRlQnV0dG9uRW5hYmxlZChlbnRpdHlEZWxldGVSZXN0cmljdGlvbnM/LkRlbGV0YWJsZSwgaXNQYXJlbnREZWxldGFibGUsIGNvbnZlcnRlckNvbnRleHQpKSxcblx0XHRcdHBhcmVudEVudGl0eURlbGV0ZUVuYWJsZWQ6IHBhcmVudEVudGl0eVNldERlbGV0YWJsZVxuXHRcdH0pO1xuXHR9XG5cblx0aWYgKGNvcHlEYXRhRmllbGQpIHtcblx0XHRoZWFkZXJBY3Rpb25zLnB1c2goe1xuXHRcdFx0Li4uZ2V0RGF0YUZpZWxkQW5ub3RhdGlvbkFjdGlvbihjb3B5RGF0YUZpZWxkLCBjb252ZXJ0ZXJDb250ZXh0KSxcblx0XHRcdHR5cGU6IEFjdGlvblR5cGUuQ29weSxcblx0XHRcdHRleHQ6IGNvcHlEYXRhRmllbGQuTGFiZWw/LnRvU3RyaW5nKCkgPz8gQ29yZS5nZXRMaWJyYXJ5UmVzb3VyY2VCdW5kbGUoXCJzYXAuZmUuY29yZVwiKS5nZXRUZXh0KFwiQ19DT01NT05fQ09QWVwiKVxuXHRcdH0pO1xuXHR9XG5cblx0Y29uc3QgaGVhZGVyRGF0YUZpZWxkRm9ySUJOQWN0aW9ucyA9IGdldElkZW50aWZpY2F0aW9uRGF0YUZpZWxkRm9ySUJOQWN0aW9ucyhjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKSwgZmFsc2UpO1xuXG5cdGhlYWRlckRhdGFGaWVsZEZvcklCTkFjdGlvbnNcblx0XHQuZmlsdGVyKChkYXRhRmllbGQpID0+IHtcblx0XHRcdHJldHVybiBJTVBPUlRBTlRfQ1JJVElDQUxJVElFUy5pbmRleE9mKGRhdGFGaWVsZD8uQ3JpdGljYWxpdHkgYXMgc3RyaW5nKSA9PT0gLTE7XG5cdFx0fSlcblx0XHQuZm9yRWFjaCgoZGF0YUZpZWxkKSA9PiB7XG5cdFx0XHRpZiAoZGF0YUZpZWxkLlJlcXVpcmVzQ29udGV4dD8udmFsdWVPZigpID09PSB0cnVlKSB7XG5cdFx0XHRcdHRocm93IG5ldyBFcnJvcihgUmVxdWlyZXNDb250ZXh0IHByb3BlcnR5IHNob3VsZCBub3QgYmUgdHJ1ZSBmb3IgaGVhZGVyIElCTiBhY3Rpb24gOiAke2RhdGFGaWVsZC5MYWJlbH1gKTtcblx0XHRcdH1cblx0XHRcdGlmIChkYXRhRmllbGQuSW5saW5lPy52YWx1ZU9mKCkgPT09IHRydWUpIHtcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbmxpbmUgcHJvcGVydHkgc2hvdWxkIG5vdCBiZSB0cnVlIGZvciBoZWFkZXIgSUJOIGFjdGlvbiA6ICR7ZGF0YUZpZWxkLkxhYmVsfWApO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3Qgb05hdmlnYXRpb25QYXJhbXMgPSB7XG5cdFx0XHRcdHNlbWFudGljT2JqZWN0TWFwcGluZzogZ2V0U2VtYW50aWNPYmplY3RNYXBwaW5nKGRhdGFGaWVsZC5NYXBwaW5nKVxuXHRcdFx0fTtcblxuXHRcdFx0aGVhZGVyQWN0aW9ucy5wdXNoKHtcblx0XHRcdFx0dHlwZTogQWN0aW9uVHlwZS5EYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb24sXG5cdFx0XHRcdHRleHQ6IGRhdGFGaWVsZC5MYWJlbD8udG9TdHJpbmcoKSxcblx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChkYXRhRmllbGQuZnVsbHlRdWFsaWZpZWROYW1lKSxcblx0XHRcdFx0YnV0dG9uVHlwZTogQnV0dG9uVHlwZS5HaG9zdCxcblx0XHRcdFx0dmlzaWJsZTogY29tcGlsZUV4cHJlc3Npb24oXG5cdFx0XHRcdFx0YW5kKFxuXHRcdFx0XHRcdFx0bm90KGVxdWFsKGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihkYXRhRmllbGQuYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4pLCB0cnVlKSksXG5cdFx0XHRcdFx0XHRub3QoZXF1YWwocGF0aEluTW9kZWwoXCJzaGVsbE5hdmlnYXRpb25Ob3RBdmFpbGFibGVcIiwgXCJpbnRlcm5hbFwiKSwgdHJ1ZSkpXG5cdFx0XHRcdFx0KVxuXHRcdFx0XHQpLFxuXHRcdFx0XHRlbmFibGVkOlxuXHRcdFx0XHRcdGRhdGFGaWVsZC5OYXZpZ2F0aW9uQXZhaWxhYmxlICE9PSB1bmRlZmluZWRcblx0XHRcdFx0XHRcdD8gY29tcGlsZUV4cHJlc3Npb24oZXF1YWwoZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKGRhdGFGaWVsZC5OYXZpZ2F0aW9uQXZhaWxhYmxlPy52YWx1ZU9mKCkpLCB0cnVlKSlcblx0XHRcdFx0XHRcdDogdHJ1ZSxcblx0XHRcdFx0a2V5OiBLZXlIZWxwZXIuZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkKGRhdGFGaWVsZCksXG5cdFx0XHRcdGlzTmF2aWdhYmxlOiB0cnVlLFxuXHRcdFx0XHRwcmVzczogY29tcGlsZUV4cHJlc3Npb24oXG5cdFx0XHRcdFx0Zm4oXCIuX2ludGVudEJhc2VkTmF2aWdhdGlvbi5uYXZpZ2F0ZVwiLCBbXG5cdFx0XHRcdFx0XHRnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24oZGF0YUZpZWxkLlNlbWFudGljT2JqZWN0KSxcblx0XHRcdFx0XHRcdGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihkYXRhRmllbGQuQWN0aW9uKSxcblx0XHRcdFx0XHRcdG9OYXZpZ2F0aW9uUGFyYW1zXG5cdFx0XHRcdFx0XSlcblx0XHRcdFx0KSxcblx0XHRcdFx0Y3VzdG9tRGF0YTogY29tcGlsZUV4cHJlc3Npb24oe1xuXHRcdFx0XHRcdHNlbWFudGljT2JqZWN0OiBnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24oZGF0YUZpZWxkLlNlbWFudGljT2JqZWN0KSxcblx0XHRcdFx0XHRhY3Rpb246IGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihkYXRhRmllbGQuQWN0aW9uKVxuXHRcdFx0XHR9KVxuXHRcdFx0fSBhcyBBbm5vdGF0aW9uQWN0aW9uKTtcblx0XHR9KTtcblx0Ly8gRmluYWxseSB0aGUgbm9uIGNyaXRpY2FsIERhdGFGaWVsZEZvckFjdGlvbnNcblx0aGVhZGVyRGF0YUZpZWxkRm9yQWN0aW9uc1xuXHRcdC5maWx0ZXIoKGRhdGFGaWVsZCkgPT4ge1xuXHRcdFx0cmV0dXJuIElNUE9SVEFOVF9DUklUSUNBTElUSUVTLmluZGV4T2YoZGF0YUZpZWxkPy5Dcml0aWNhbGl0eSBhcyBzdHJpbmcpID09PSAtMTtcblx0XHR9KVxuXHRcdC5mb3JFYWNoKChkYXRhRmllbGQpID0+IHtcblx0XHRcdGhlYWRlckFjdGlvbnMucHVzaChnZXREYXRhRmllbGRBbm5vdGF0aW9uQWN0aW9uKGRhdGFGaWVsZCwgY29udmVydGVyQ29udGV4dCkpO1xuXHRcdH0pO1xuXG5cdHJldHVybiBoZWFkZXJBY3Rpb25zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGlkZGVuSGVhZGVyQWN0aW9ucyhjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogQmFzZUFjdGlvbltdIHtcblx0Y29uc3QgZW50aXR5VHlwZSA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpO1xuXHRjb25zdCBoaWRkZW5BY3Rpb25zID0gKGVudGl0eVR5cGUuYW5ub3RhdGlvbnM/LlVJPy5JZGVudGlmaWNhdGlvbj8uZmlsdGVyKChpZGVudGlmaWNhdGlvbkRhdGFGaWVsZCkgPT4ge1xuXHRcdHJldHVybiBpZGVudGlmaWNhdGlvbkRhdGFGaWVsZD8uYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSA9PT0gdHJ1ZTtcblx0fSkgfHwgW10pIGFzIERhdGFGaWVsZEZvckFjdGlvblR5cGVzW107XG5cdHJldHVybiBoaWRkZW5BY3Rpb25zLm1hcCgoZGF0YUZpZWxkKSA9PiB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdHR5cGU6IEFjdGlvblR5cGUuRGVmYXVsdCxcblx0XHRcdGtleTogS2V5SGVscGVyLmdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZChkYXRhRmllbGQpXG5cdFx0fTtcblx0fSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGb290ZXJEZWZhdWx0QWN0aW9ucyh2aWV3TGV2ZWw6IG51bWJlciwgY29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCk6IEJhc2VBY3Rpb25bXSB7XG5cdGNvbnN0IGVudGl0eVNldCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KCk7XG5cdGNvbnN0IGVudGl0eVR5cGUgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKTtcblx0Y29uc3Qgc3RpY2t5U2Vzc2lvblN1cHBvcnRlZCA9IE1vZGVsSGVscGVyLmdldFN0aWNreVNlc3Npb24oZW50aXR5U2V0KSwgLy9mb3Igc3RpY2t5IGFwcFxuXHRcdGVudGl0eVNldERyYWZ0Um9vdCA9XG5cdFx0XHQhTW9kZWxIZWxwZXIuaXNTaW5nbGV0b24oZW50aXR5U2V0KSAmJlxuXHRcdFx0ZW50aXR5U2V0ICYmXG5cdFx0XHQoZW50aXR5U2V0LmFubm90YXRpb25zLkNvbW1vbj8uRHJhZnRSb290Py50ZXJtIHx8IGVudGl0eVNldC5hbm5vdGF0aW9ucz8uU2Vzc2lvbj8uU3RpY2t5U2Vzc2lvblN1cHBvcnRlZD8udGVybSksXG5cdFx0Y29uZGl0aW9uU2F2ZSA9IEJvb2xlYW4oXG5cdFx0XHRlbnRpdHlTZXREcmFmdFJvb3QgPT09IENvbW1vbkFubm90YXRpb25UZXJtcy5EcmFmdFJvb3QgfHwgKHN0aWNreVNlc3Npb25TdXBwb3J0ZWQgJiYgc3RpY2t5U2Vzc2lvblN1cHBvcnRlZD8uU2F2ZUFjdGlvbilcblx0XHQpLFxuXHRcdGNvbmRpdGlvbkFwcGx5ID0gdmlld0xldmVsID4gMSxcblx0XHRjb25kaXRpb25DYW5jZWwgPSBCb29sZWFuKFxuXHRcdFx0ZW50aXR5U2V0RHJhZnRSb290ID09PSBDb21tb25Bbm5vdGF0aW9uVGVybXMuRHJhZnRSb290IHx8IChzdGlja3lTZXNzaW9uU3VwcG9ydGVkICYmIHN0aWNreVNlc3Npb25TdXBwb3J0ZWQ/LkRpc2NhcmRBY3Rpb24pXG5cdFx0KTtcblxuXHQvLyBSZXRyaWV2ZSBhbGwgZGV0ZXJtaW5pbmcgYWN0aW9uc1xuXHRjb25zdCBmb290ZXJEYXRhRmllbGRGb3JBY3Rpb25zID0gZ2V0SWRlbnRpZmljYXRpb25EYXRhRmllbGRGb3JBY3Rpb25zKGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpLCB0cnVlKTtcblxuXHQvLyBGaXJzdCBhZGQgdGhlIFwiQ3JpdGljYWxcIiBEYXRhRmllbGRGb3JBY3Rpb25zXG5cdGNvbnN0IGZvb3RlckFjdGlvbnM6IEJhc2VBY3Rpb25bXSA9IGZvb3RlckRhdGFGaWVsZEZvckFjdGlvbnNcblx0XHQuZmlsdGVyKChkYXRhRmllbGQpID0+IHtcblx0XHRcdHJldHVybiBJTVBPUlRBTlRfQ1JJVElDQUxJVElFUy5pbmRleE9mKGRhdGFGaWVsZD8uQ3JpdGljYWxpdHkgYXMgc3RyaW5nKSA+IC0xO1xuXHRcdH0pXG5cdFx0Lm1hcCgoZGF0YUZpZWxkKSA9PiB7XG5cdFx0XHRyZXR1cm4gZ2V0RGF0YUZpZWxkQW5ub3RhdGlvbkFjdGlvbihkYXRhRmllbGQsIGNvbnZlcnRlckNvbnRleHQpO1xuXHRcdH0pO1xuXG5cdC8vIFRoZW4gdGhlIHNhdmUgYWN0aW9uIGlmIGl0IGV4aXN0c1xuXHRpZiAoZW50aXR5U2V0Py5lbnRpdHlUeXBlTmFtZSA9PT0gZW50aXR5VHlwZT8uZnVsbHlRdWFsaWZpZWROYW1lICYmIGNvbmRpdGlvblNhdmUpIHtcblx0XHRmb290ZXJBY3Rpb25zLnB1c2goeyB0eXBlOiBBY3Rpb25UeXBlLlByaW1hcnksIGtleTogXCJTYXZlQWN0aW9uXCIgfSk7XG5cdH1cblxuXHQvLyBUaGVuIHRoZSBhcHBseSBhY3Rpb24gaWYgaXQgZXhpc3RzXG5cdGlmIChjb25kaXRpb25BcHBseSkge1xuXHRcdGZvb3RlckFjdGlvbnMucHVzaCh7IHR5cGU6IEFjdGlvblR5cGUuRGVmYXVsdEFwcGx5LCBrZXk6IFwiQXBwbHlBY3Rpb25cIiB9KTtcblx0fVxuXG5cdC8vIFRoZW4gdGhlIG5vbiBjcml0aWNhbCBEYXRhRmllbGRGb3JBY3Rpb25zXG5cdGZvb3RlckRhdGFGaWVsZEZvckFjdGlvbnNcblx0XHQuZmlsdGVyKChkYXRhRmllbGQpID0+IHtcblx0XHRcdHJldHVybiBJTVBPUlRBTlRfQ1JJVElDQUxJVElFUy5pbmRleE9mKGRhdGFGaWVsZD8uQ3JpdGljYWxpdHkgYXMgc3RyaW5nKSA9PT0gLTE7XG5cdFx0fSlcblx0XHQuZm9yRWFjaCgoZGF0YUZpZWxkKSA9PiB7XG5cdFx0XHRmb290ZXJBY3Rpb25zLnB1c2goZ2V0RGF0YUZpZWxkQW5ub3RhdGlvbkFjdGlvbihkYXRhRmllbGQsIGNvbnZlcnRlckNvbnRleHQpKTtcblx0XHR9KTtcblxuXHQvLyBUaGVuIHRoZSBjYW5jZWwgYWN0aW9uIGlmIGl0IGV4aXN0c1xuXHRpZiAoY29uZGl0aW9uQ2FuY2VsKSB7XG5cdFx0Zm9vdGVyQWN0aW9ucy5wdXNoKHtcblx0XHRcdHR5cGU6IEFjdGlvblR5cGUuU2Vjb25kYXJ5LFxuXHRcdFx0a2V5OiBcIkNhbmNlbEFjdGlvblwiLFxuXHRcdFx0cG9zaXRpb246IHsgcGxhY2VtZW50OiBQbGFjZW1lbnQuRW5kIH1cblx0XHR9KTtcblx0fVxuXHRyZXR1cm4gZm9vdGVyQWN0aW9ucztcbn1cblxuZnVuY3Rpb24gZ2V0RGF0YUZpZWxkQW5ub3RhdGlvbkFjdGlvbihkYXRhRmllbGQ6IERhdGFGaWVsZEZvckFjdGlvblR5cGVzLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogQW5ub3RhdGlvbkFjdGlvbiB7XG5cdHJldHVybiB7XG5cdFx0dHlwZTogQWN0aW9uVHlwZS5EYXRhRmllbGRGb3JBY3Rpb24sXG5cdFx0YW5ub3RhdGlvblBhdGg6IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChkYXRhRmllbGQuZnVsbHlRdWFsaWZpZWROYW1lKSxcblx0XHRrZXk6IEtleUhlbHBlci5nZW5lcmF0ZUtleUZyb21EYXRhRmllbGQoZGF0YUZpZWxkKSxcblx0XHR2aXNpYmxlOiBjb21waWxlRXhwcmVzc2lvbihub3QoZXF1YWwoZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKGRhdGFGaWVsZC5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbiksIHRydWUpKSksXG5cdFx0ZW5hYmxlZDogZ2V0RW5hYmxlZEZvckFubm90YXRpb25BY3Rpb24oY29udmVydGVyQ29udGV4dCwgZGF0YUZpZWxkLkFjdGlvblRhcmdldCksXG5cdFx0aXNOYXZpZ2FibGU6IHRydWVcblx0fSBhcyBBbm5vdGF0aW9uQWN0aW9uO1xufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQWtDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNPLFNBQVNBLG9DQUFvQyxDQUFDQyxVQUFzQixFQUFFQyxtQkFBNEIsRUFBNkI7SUFBQTtJQUNySSxPQUFRLDBCQUFBRCxVQUFVLENBQUNFLFdBQVcsb0ZBQXRCLHNCQUF3QkMsRUFBRSxxRkFBMUIsdUJBQTRCQyxjQUFjLDJEQUExQyx1QkFBNENDLE1BQU0sQ0FBRUMsdUJBQXVCLElBQUs7TUFBQTtNQUN2RixPQUFPLDBCQUFBQSx1QkFBdUIsQ0FBQ0osV0FBVyxvRkFBbkMsc0JBQXFDQyxFQUFFLHFGQUF2Qyx1QkFBeUNJLE1BQU0sMkRBQS9DLHVCQUFpREMsT0FBTyxFQUFFLE1BQUssSUFBSSxJQUN6RUYsdUJBQXVCLENBQUNHLEtBQUssb0RBQXlDLElBQ3RFQyxPQUFPLDJCQUFDSix1QkFBdUIsQ0FBQ0ssV0FBVywyREFBbkMsdUJBQXFDSCxPQUFPLEVBQUUsQ0FBQyxLQUFLUCxtQkFBbUIsS0FDOUUsMkJBQUFLLHVCQUF1QixDQUFDTSxZQUFZLHFGQUFwQyx1QkFBc0NDLE9BQU8sMkRBQTdDLHVCQUErQ0wsT0FBTyxFQUFFLE1BQUssSUFBSSxJQUNqRSxDQUFBRix1QkFBdUIsYUFBdkJBLHVCQUF1QixpREFBdkJBLHVCQUF1QixDQUFFTSxZQUFZLHFGQUFyQyx1QkFBdUNWLFdBQVcscUZBQWxELHVCQUFvRFksSUFBSSxzRkFBeEQsdUJBQTBEQyxrQkFBa0IsNERBQTVFLHdCQUE4RVAsT0FBTyxFQUFFLE1BQUssS0FBSyxDQUFDLEdBQ2pHLElBQUksR0FDSixLQUFLO0lBQ1QsQ0FBQyxDQUFDLEtBQUksRUFBRTtFQUNUOztFQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQVJBO0VBU0EsU0FBU1EsdUNBQXVDLENBQy9DaEIsVUFBc0IsRUFDdEJDLG1CQUE0QixFQUNlO0lBQUE7SUFDM0MsT0FBUSwyQkFBQUQsVUFBVSxDQUFDRSxXQUFXLHFGQUF0Qix1QkFBd0JDLEVBQUUscUZBQTFCLHVCQUE0QkMsY0FBYywyREFBMUMsdUJBQTRDQyxNQUFNLENBQUVDLHVCQUF1QixJQUFLO01BQUE7TUFDdkYsT0FBTyw0QkFBQUEsdUJBQXVCLENBQUNKLFdBQVcsdUZBQW5DLHdCQUFxQ0MsRUFBRSx1RkFBdkMsd0JBQXlDSSxNQUFNLDREQUEvQyx3QkFBaURDLE9BQU8sRUFBRSxNQUFLLElBQUksSUFDekVGLHVCQUF1QixDQUFDRyxLQUFLLG1FQUF3RCxJQUNyRkMsT0FBTyw0QkFBQ0osdUJBQXVCLENBQUNLLFdBQVcsNERBQW5DLHdCQUFxQ0gsT0FBTyxFQUFFLENBQUMsS0FBS1AsbUJBQW1CLEdBQzdFLElBQUksR0FDSixLQUFLO0lBQ1QsQ0FBQyxDQUFDLEtBQUksRUFBRTtFQUNUO0VBRU8sTUFBTWdCLHVCQUF1QixHQUFHLENBQ3RDLGlDQUFpQyxFQUNqQyw2QkFBNkIsRUFDN0IsNkJBQTZCLEVBQzdCLGlDQUFpQyxDQUNqQzs7RUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQU5BO0VBT08sU0FBU0MseUJBQXlCLENBQ3hDQyxnQkFBa0MsRUFDbENDLFlBQTBELEVBQ3RCO0lBQ3BDLE1BQU1DLG1CQUFtQixHQUFHRixnQkFBZ0IsQ0FBQ0csc0JBQXNCLEVBQUU7TUFDcEVDLHNCQUFzQixHQUFHRixtQkFBbUIsQ0FBQ0csb0JBQW9CLENBQUNDLEdBQUcsQ0FBRUMsT0FBTyxJQUFLQSxPQUFPLENBQUNDLElBQUksQ0FBQztNQUNoRztNQUNBO01BQ0FDLHNCQUFxRSxHQUFHQywyQkFBMkIsQ0FDbEdULFlBQVksRUFDWkcsc0JBQXNCLEVBQ3RCTyxTQUFTLEVBQ1JDLElBQVksSUFBS0Msb0JBQW9CLENBQUNELElBQUksRUFBRVosZ0JBQWdCLENBQUNjLGlCQUFpQixFQUFFLEVBQUUsRUFBRSxDQUFDLENBQ3RGO01BQ0RDLGVBQWUsR0FBR2YsZ0JBQWdCLENBQUNnQixrQkFBa0IsRUFBRTtNQUN2REMsU0FBUyxHQUFHRixlQUFlLENBQUNHLFlBQVksRUFBRTtNQUMxQztNQUNBO01BQ0E7TUFDQUMsa0JBQXFELEdBQUdGLFNBQVMsR0FBRyxDQUFDLEdBQUdqQyxFQUFFLENBQUNvQyxVQUFVLEdBQUdDLEdBQUcsQ0FBQ3JDLEVBQUUsQ0FBQ29DLFVBQVUsQ0FBQzs7SUFFM0c7SUFDQTtJQUNBO0lBQ0E7SUFDQSxPQUFPRSxNQUFNLENBQ1pyQixZQUFZLEtBQUtVLFNBQVMsSUFBSVYsWUFBWSxDQUFDWixPQUFPLEVBQUUsS0FBSyxLQUFLLEVBQzlEOEIsa0JBQWtCLEVBQ2xCSSxHQUFHLENBQUNKLGtCQUFrQixFQUFFSyxLQUFLLENBQUNmLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxDQUFDLENBQzdEO0VBQ0Y7O0VBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQVBBO0VBUU8sU0FBU2dCLHNCQUFzQixDQUNyQ0MsV0FBeUQsRUFDekRDLGlCQUFvRCxFQUNwRDNCLGdCQUFrQyxFQUNFO0lBQ3BDLE1BQU00QixTQUFTLEdBQUc1QixnQkFBZ0IsQ0FBQzZCLFlBQVksRUFBRTtNQUNoREMsV0FBVyxHQUFHQyxXQUFXLENBQUNELFdBQVcsQ0FBQ0YsU0FBUyxDQUFDO0lBRWpELElBQUlJLEdBQUcsR0FBR1YsTUFBTSxDQUNmSyxpQkFBaUIsS0FBS2hCLFNBQVMsRUFDL0JnQixpQkFBaUIsRUFDakJMLE1BQU0sQ0FBQ0ksV0FBVyxLQUFLZixTQUFTLEVBQUVhLEtBQUssQ0FBQ0UsV0FBVyxFQUFFLElBQUksQ0FBQyxFQUFFTyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDM0U7O0lBRUQ7SUFDQUQsR0FBRyxHQUFHRixXQUFXLEdBQUdQLEdBQUcsQ0FBQ1MsR0FBRyxFQUFFWCxHQUFHLENBQUNhLFdBQVcsQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDLENBQUMsR0FBR0YsR0FBRztJQUUvRixPQUFPQSxHQUFHO0VBQ1g7O0VBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFUQTtFQVVPLFNBQVNHLHVCQUF1QixDQUN0Q25DLGdCQUFrQyxFQUNsQ29DLGdCQUE4RCxFQUM5REMsb0JBQXNDLEVBQ3RDQyxZQUEyRCxFQUMzRHJCLFNBQThCLEVBQ007SUFDcEMsTUFBTXNCLGFBQWEsR0FBR0Ysb0JBQW9CLGFBQXBCQSxvQkFBb0IsdUJBQXBCQSxvQkFBb0IsQ0FBRVIsWUFBWSxFQUFFO01BQ3pERCxTQUFTLEdBQUc1QixnQkFBZ0IsQ0FBQzZCLFlBQVksRUFBRTtNQUMzQ1csWUFBWSxHQUFHeEMsZ0JBQWdCLENBQUNnQixrQkFBa0IsRUFBRSxDQUFDeUIsWUFBWSxFQUFFO0lBQ3BFLElBQUlDLGNBQWM7SUFDbEIsTUFBTUMsMEJBQXlFLEdBQUdDLG1CQUFtQixDQUNwR1Asb0JBQW9CLEVBQ3BCRCxnQkFBZ0IsQ0FDaEI7SUFDRCxJQUFJbkIsU0FBUyxJQUFJQSxTQUFTLEdBQUcsQ0FBQyxFQUFFO01BQy9CO01BQ0F5QixjQUFjLEdBQUdYLFdBQVcsQ0FBQ2MsV0FBVyxDQUFDakIsU0FBUyxDQUFDO0lBQ3BELENBQUMsTUFBTTtNQUNOYyxjQUFjLEdBQUdYLFdBQVcsQ0FBQ0QsV0FBVyxDQUFDUyxhQUFhLENBQUM7SUFDeEQ7SUFDQSxNQUFNTyxzQkFBcUUsR0FBR0YsbUJBQW1CLENBQUNQLG9CQUFvQixFQUFFQyxZQUFZLENBQUM7SUFFckksTUFBTVMscUJBQXdELEdBQUcxQixHQUFHLENBQUNyQyxFQUFFLENBQUNvQyxVQUFVLENBQUM7O0lBRW5GO0lBQ0E7SUFDQTtJQUNBO0lBQ0EsTUFBTTRCLG1CQUFzRCxHQUFHMUIsTUFBTSxDQUNuRUwsU0FBUyxHQUFjLENBQUMsRUFDekJLLE1BQU0sQ0FDTGdCLFlBQVksS0FBSzNCLFNBQVMsSUFBSTJCLFlBQVksQ0FBQ2pELE9BQU8sRUFBRSxLQUFLLEtBQUssRUFDOURrQyxHQUFHLENBQ0Z3QixxQkFBcUIsRUFDckJ2QixLQUFLLENBQUNVLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsRUFDdkRaLE1BQU0sQ0FBQ2tCLFlBQVksRUFBRWhCLEtBQUssQ0FBQ1UsV0FBVyxDQUFDLGlCQUFpQixFQUFFLFdBQVcsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUNwRixFQUNEWCxHQUFHLENBQ0Z3QixxQkFBcUIsRUFDckJ2QixLQUFLLENBQUNzQixzQkFBc0IsRUFBRSxLQUFLLENBQUMsRUFDcEN0QixLQUFLLENBQUNVLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsRUFDdkRaLE1BQU0sQ0FBQ2tCLFlBQVksRUFBRWhCLEtBQUssQ0FBQ1UsV0FBVyxDQUFDLGlCQUFpQixFQUFFLFdBQVcsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUNwRixDQUNELEVBQ0RaLE1BQU0sQ0FDTGMsZ0JBQWdCLEtBQUt6QixTQUFTLElBQUl5QixnQkFBZ0IsQ0FBQy9DLE9BQU8sRUFBRSxLQUFLLEtBQUssRUFDdEUwRCxxQkFBcUIsRUFDckJ4QixHQUFHLENBQUN3QixxQkFBcUIsRUFBRXZCLEtBQUssQ0FBQ21CLDBCQUEwQixFQUFFLEtBQUssQ0FBQyxDQUFDLENBQ3BFLENBQ0Q7SUFDRCxPQUFPckIsTUFBTSxDQUFDb0IsY0FBYyxFQUFFbkIsR0FBRyxDQUFDeUIsbUJBQW1CLEVBQUVDLEtBQUssQ0FBQ0Msd0JBQXdCLENBQUMsRUFBRUYsbUJBQW1CLENBQUM7RUFDN0c7RUFBQztFQUVNLFNBQVNKLG1CQUFtQixDQUFDNUMsZ0JBQWtDLEVBQUVzQyxZQUEwRCxFQUFFO0lBQ25JLE1BQU1wQyxtQkFBbUIsR0FBR0YsZ0JBQWdCLENBQUNHLHNCQUFzQixFQUFFO01BQ3BFQyxzQkFBc0IsR0FBR0YsbUJBQW1CLENBQUNHLG9CQUFvQixDQUFDQyxHQUFHLENBQUVDLE9BQU8sSUFBS0EsT0FBTyxDQUFDQyxJQUFJLENBQUM7TUFDaEc7TUFDQTtNQUNBc0Msc0JBQXFFLEdBQUdwQywyQkFBMkIsQ0FDbEc0QixZQUFZLEVBQ1psQyxzQkFBc0IsRUFDdEJPLFNBQVMsRUFDUkMsSUFBWSxJQUFLQyxvQkFBb0IsQ0FBQ0QsSUFBSSxFQUFFWixnQkFBZ0IsQ0FBQ2MsaUJBQWlCLEVBQUUsRUFBRVYsc0JBQXNCLENBQUMsQ0FDMUc7SUFDRixPQUFPMEMsc0JBQXNCO0VBQzlCO0VBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQVBBO0VBUU8sU0FBU0ssb0JBQW9CLENBQ25DbkQsZ0JBQWtDLEVBQ2xDb0Qsa0JBQXdCLEVBQ3hCbkMsU0FBOEIsRUFDSztJQUNuQyxNQUFNVyxTQUFTLEdBQUc1QixnQkFBZ0IsQ0FBQzZCLFlBQVksRUFBRTtNQUNoREMsV0FBVyxHQUFHQyxXQUFXLENBQUNELFdBQVcsQ0FBQ0YsU0FBUyxDQUFDO01BQ2hEeUIsUUFBUSxHQUFHdEIsV0FBVyxDQUFDc0IsUUFBUSxDQUFDekIsU0FBUyxDQUFDO0lBQzNDLElBQUkwQixjQUFrQztJQUN0QyxJQUFJeEIsV0FBVyxJQUFJLENBQUNDLFdBQVcsQ0FBQ3dCLFdBQVcsQ0FBQzNCLFNBQVMsQ0FBQyxFQUFFO01BQUE7TUFDdkQwQixjQUFjLEdBQUkxQixTQUFTLGFBQVRBLFNBQVMsOENBQVRBLFNBQVMsQ0FBZ0I3QyxXQUFXLENBQUN5RSxNQUFNLGlGQUE1QyxvQkFBOENDLFNBQVMsMERBQXZELHNCQUF5REMsVUFBb0I7SUFDL0YsQ0FBQyxNQUFNLElBQUlMLFFBQVEsSUFBSSxDQUFDdEIsV0FBVyxDQUFDd0IsV0FBVyxDQUFDM0IsU0FBUyxDQUFDLEVBQUU7TUFBQTtNQUMzRDBCLGNBQWMsR0FBSTFCLFNBQVMsYUFBVEEsU0FBUywrQ0FBVEEsU0FBUyxDQUFnQjdDLFdBQVcsQ0FBQzRFLE9BQU8sa0ZBQTdDLHFCQUErQ0Msc0JBQXNCLDBEQUFyRSxzQkFBdUVGLFVBQW9CO0lBQzdHO0lBQ0EsSUFBSUosY0FBYyxFQUFFO01BQUE7TUFDbkIsTUFBTU8sd0JBQXdCLEdBQUc3RCxnQkFBZ0IsQ0FBQzhELHlCQUF5QixDQUFDUixjQUFjLENBQUM7TUFDM0YsTUFBTVMsVUFBVSxHQUFHL0QsZ0JBQWdCLENBQUNnRSxtQkFBbUIsQ0FBQ0gsd0JBQXdCLENBQUMsQ0FBQ0ksTUFBdUI7TUFDekcsSUFBSSxDQUFBRixVQUFVLGFBQVZBLFVBQVUsZ0RBQVZBLFVBQVUsQ0FBRWhGLFdBQVcsb0ZBQXZCLHNCQUF5QlksSUFBSSwyREFBN0IsdUJBQStCQyxrQkFBa0IsTUFBSyxJQUFJLEVBQUU7UUFDL0Q7UUFDQTtNQUFBLENBQ0EsTUFBTSxJQUFLcUIsU0FBUyxHQUFjLENBQUMsRUFBRTtRQUNyQztRQUNBLElBQUltQyxrQkFBa0IsS0FBS3pDLFNBQVMsRUFBRTtVQUNyQyxPQUFPdUQsaUJBQWlCLENBQ3ZCM0MsR0FBRyxDQUNGQyxLQUFLLENBQUNkLDJCQUEyQixDQUFDMEMsa0JBQWtCLENBQUMsRUFBRSxJQUFJLENBQUMsRUFDNUQ1QixLQUFLLENBQUNVLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FDdkQsQ0FDRDtRQUNGLENBQUMsTUFBTTtVQUNOLE9BQU9nQyxpQkFBaUIsQ0FBQzFDLEtBQUssQ0FBQ1UsV0FBVyxDQUFDLGlCQUFpQixFQUFFLFVBQVUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2xGO01BQ0QsQ0FBQyxNQUFNO1FBQ04sT0FBT2lDLDZCQUE2QixDQUFDbkUsZ0JBQWdCLEVBQUUrRCxVQUFVLElBQUlwRCxTQUFTLENBQUM7TUFDaEY7SUFDRDtJQUNBLE9BQU8sTUFBTTtFQUNkO0VBQUM7RUFFTSxTQUFTeUQsdUJBQXVCLENBQUNwRSxnQkFBa0MsRUFBZ0I7SUFBQTtJQUN6RixNQUFNcUUsWUFBWSxHQUFHckUsZ0JBQWdCLENBQUNzRSxjQUFjLEVBQUU7SUFDdEQsTUFBTUMsaUJBQWlCLEdBQUd4QyxXQUFXLENBQUN5QyxvQkFBb0IsQ0FBQ0gsWUFBWSxDQUFDO0lBQ3hFLE1BQU1oQyxvQkFBb0IsR0FBR3JDLGdCQUFnQixDQUFDeUUsc0JBQXNCLENBQUMsR0FBRyxHQUFHRixpQkFBaUIsQ0FBQztJQUM3RixNQUFNM0MsU0FBUyxHQUFHNUIsZ0JBQWdCLENBQUM2QixZQUFZLEVBQUU7TUFDaERoRCxVQUFVLEdBQUdtQixnQkFBZ0IsQ0FBQzBFLGFBQWEsRUFBRTtNQUM3Q25DLGFBQWEsR0FBR0Ysb0JBQW9CLENBQUNSLFlBQVksRUFBRTtNQUNuRDhDLGNBQWMsR0FBR3RDLG9CQUFvQixDQUFDcUMsYUFBYSxFQUFFO01BQ3JERSxzQkFBc0IsR0FBRzdDLFdBQVcsQ0FBQzhDLGdCQUFnQixDQUFDdEMsYUFBYSxDQUFDO01BQUU7TUFDdEV1QyxTQUFTLEdBQUcvQyxXQUFXLENBQUNnRCxZQUFZLENBQUN4QyxhQUFhLENBQUM7TUFBRTtNQUNyRHlDLFNBQVMsR0FBR2pELFdBQVcsQ0FBQ2tELFlBQVksQ0FBQzFDLGFBQWEsQ0FBQztNQUNuRDJDLHdCQUF3QixHQUFHdEQsU0FBUyw4QkFBSUEsU0FBUyxDQUFDN0MsV0FBVyxvRkFBckIsc0JBQXVCb0csWUFBWSwyREFBbkMsdUJBQXFDQyxrQkFBa0I7TUFDL0ZoRCxnQkFBZ0IsR0FBR0wsV0FBVyxDQUFDc0QsY0FBYyxDQUFDOUMsYUFBYSxFQUFFb0MsY0FBYyxDQUFDO01BQzVFckMsWUFBWSxHQUFHQyxhQUFhLElBQUksQ0FBQ1IsV0FBVyxDQUFDd0IsV0FBVyxDQUFDaEIsYUFBYSxDQUFDLEtBQUlILGdCQUFnQixhQUFoQkEsZ0JBQWdCLHVCQUFoQkEsZ0JBQWdCLENBQUUvQyxPQUFPLEVBQUU7TUFDdEdhLG1CQUFtQixHQUFHRixnQkFBZ0IsQ0FBQ0csc0JBQXNCLEVBQUU7TUFDL0R3QixpQkFBaUIsR0FBRzJELGVBQWUsQ0FBQ3BGLG1CQUFtQixFQUFFO1FBQ3hEcUYsV0FBVyxFQUFFLENBQUMzRSxJQUFZLEVBQUU0RSxlQUF5QixLQUNwRDNFLG9CQUFvQixDQUFDRCxJQUFJLEVBQUVaLGdCQUFnQixDQUFDYyxpQkFBaUIsRUFBRSxFQUFFMEUsZUFBZTtNQUNsRixDQUFDLENBQUM7TUFDRkMsd0JBQXdCLEdBQUc5RCxpQkFBaUIsR0FBR3VDLGlCQUFpQixDQUFDdkMsaUJBQWlCLENBQUMsR0FBR0EsaUJBQWlCO01BQ3ZHK0QsNkJBQTZCLEdBQUc5RyxvQ0FBb0MsQ0FBQ29CLGdCQUFnQixDQUFDMEUsYUFBYSxFQUFFLEVBQUUsS0FBSyxDQUFDO0lBRTlHLE1BQU1pQixhQUFhLEdBQ2xCM0YsZ0JBQWdCLENBQUNnQixrQkFBa0IsRUFBRSxDQUFDRSxZQUFZLEVBQUUsS0FBSyxDQUFDLEdBQ3ZEMEUsYUFBYSxDQUNiRiw2QkFBNkIsQ0FBQ3hHLE1BQU0sQ0FBRTJHLFNBQVMsSUFBSztNQUNuRCxPQUFPQyxxQkFBcUIsQ0FBQ0QsU0FBUyxDQUFDO0lBQ3hDLENBQUMsQ0FBQyxDQUNELEdBQ0RsRixTQUFTO0lBRWIsTUFBTW9GLHlCQUF5QixHQUFHTCw2QkFBNkIsQ0FBQ3hHLE1BQU0sQ0FBRTJHLFNBQVMsSUFBSztNQUNyRixPQUFPLENBQUNDLHFCQUFxQixDQUFDRCxTQUFTLENBQUM7SUFDekMsQ0FBQyxDQUFDOztJQUVGO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQSxNQUFNRyxhQUEyQixHQUFHLEVBQUU7SUFDdEMsSUFBSSxDQUFDakUsV0FBVyxDQUFDd0IsV0FBVyxDQUFDM0IsU0FBUyxDQUFDLElBQUlrRCxTQUFTLGFBQVRBLFNBQVMsZUFBVEEsU0FBUyxDQUFFcEIsVUFBVSxJQUFJcEIsWUFBWSxLQUFLLElBQUksRUFBRTtNQUMxRjBELGFBQWEsQ0FBQ0MsSUFBSSxDQUFDO1FBQUVDLElBQUksRUFBRUMsVUFBVSxDQUFDQyxZQUFZO1FBQUVDLEdBQUcsRUFBRTtNQUFlLENBQUMsQ0FBQztJQUMzRTtJQUVBLE1BQU1wRixTQUFTLEdBQUdqQixnQkFBZ0IsQ0FBQ2dCLGtCQUFrQixFQUFFLENBQUNFLFlBQVksRUFBRTtJQUN0RSxNQUFNb0YscUJBQXFCLEdBQUdyRixTQUFTLEdBQUcsQ0FBQyxHQUFHVyxTQUFTLGFBQVRBLFNBQVMsaURBQVRBLFNBQVMsQ0FBRTdDLFdBQVcsQ0FBQ29HLFlBQVkscUZBQW5DLHVCQUFxQ29CLGtCQUFrQiwyREFBdkQsdUJBQXlEQyxTQUFTLEdBQUc3RixTQUFTO0lBQzVILElBQUltRSxTQUFTLElBQUlFLFNBQVMsRUFBRTtNQUMzQmdCLGFBQWEsQ0FBQ0MsSUFBSSxDQUFDO1FBQUVDLElBQUksRUFBRUMsVUFBVSxDQUFDTSxvQkFBb0I7UUFBRUosR0FBRyxFQUFFO01BQXVCLENBQUMsQ0FBQztJQUMzRjtJQUNBO0lBQ0FOLHlCQUF5QixDQUN2QjdHLE1BQU0sQ0FBRTJHLFNBQVMsSUFBSztNQUN0QixPQUFPL0YsdUJBQXVCLENBQUM0RyxPQUFPLENBQUNiLFNBQVMsYUFBVEEsU0FBUyx1QkFBVEEsU0FBUyxDQUFFYyxXQUFXLENBQVcsR0FBRyxDQUFDLENBQUM7SUFDOUUsQ0FBQyxDQUFDLENBQ0RDLE9BQU8sQ0FBRWYsU0FBUyxJQUFLO01BQ3ZCRyxhQUFhLENBQUNDLElBQUksQ0FBQ1ksNEJBQTRCLENBQUNoQixTQUFTLEVBQUU3RixnQkFBZ0IsQ0FBQyxDQUFDO0lBQzlFLENBQUMsQ0FBQzs7SUFFSDtJQUNBLElBQUksQ0FBQzhFLFNBQVMsYUFBVEEsU0FBUyxlQUFUQSxTQUFTLENBQUVwQixVQUFVLElBQUlrQixzQkFBc0IsYUFBdEJBLHNCQUFzQixlQUF0QkEsc0JBQXNCLENBQUVsQixVQUFVLEtBQUtwQixZQUFZLEtBQUssSUFBSSxFQUFFO01BQzNGMEQsYUFBYSxDQUFDQyxJQUFJLENBQUM7UUFDbEJDLElBQUksRUFBRUMsVUFBVSxDQUFDVyxPQUFPO1FBQ3hCVCxHQUFHLEVBQUUsWUFBWTtRQUNqQlUsT0FBTyxFQUFFN0MsaUJBQWlCLENBQ3pCL0IsdUJBQXVCLENBQ3RCbkMsZ0JBQWdCLEVBQ2hCb0MsZ0JBQWdCLEVBQ2hCQyxvQkFBb0IsRUFDcEJOLFdBQVcsQ0FBQ3NELGNBQWMsQ0FBQ3pELFNBQVMsRUFBRS9DLFVBQVUsQ0FBQyxFQUNqRG9DLFNBQVMsQ0FDVCxDQUNEO1FBQ0QrRixPQUFPLEVBQUU3RCxvQkFBb0IsQ0FBQ2Qsb0JBQW9CLEVBQUVpRSxxQkFBcUIsRUFBRXJGLFNBQVM7TUFDckYsQ0FBQyxDQUFDO0lBQ0g7SUFDQTtJQUNBLElBQ0V3RSx3QkFBd0IsSUFBSUEsd0JBQXdCLEtBQUssT0FBTyxJQUNoRSxDQUFBUCx3QkFBd0IsYUFBeEJBLHdCQUF3QixnREFBeEJBLHdCQUF3QixDQUFFK0IsU0FBUywwREFBbkMsc0JBQXFDNUgsT0FBTyxFQUFFLE1BQUssS0FBSyxJQUFJb0csd0JBQXdCLEtBQUssT0FBUSxFQUNqRztNQUNELE1BQU14RixZQUFZLEdBQUc4QixXQUFXLENBQUNtRixlQUFlLENBQUN0RixTQUFTLEVBQUUvQyxVQUFVLENBQXFDO01BQzNHbUgsYUFBYSxDQUFDQyxJQUFJLENBQUM7UUFDbEJDLElBQUksRUFBRUMsVUFBVSxDQUFDZ0IsU0FBUztRQUMxQmQsR0FBRyxFQUFFLGNBQWM7UUFDbkJVLE9BQU8sRUFBRTdDLGlCQUFpQixDQUFDbkUseUJBQXlCLENBQUNDLGdCQUFnQixFQUFFQyxZQUFZLENBQUMsQ0FBQztRQUNyRitHLE9BQU8sRUFBRTlDLGlCQUFpQixDQUFDekMsc0JBQXNCLENBQUN5RCx3QkFBd0IsYUFBeEJBLHdCQUF3Qix1QkFBeEJBLHdCQUF3QixDQUFFK0IsU0FBUyxFQUFFdEYsaUJBQWlCLEVBQUUzQixnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVIb0gseUJBQXlCLEVBQUUzQjtNQUM1QixDQUFDLENBQUM7SUFDSDtJQUVBLElBQUlFLGFBQWEsRUFBRTtNQUFBO01BQ2xCSyxhQUFhLENBQUNDLElBQUksQ0FBQztRQUNsQixHQUFHWSw0QkFBNEIsQ0FBQ2xCLGFBQWEsRUFBRTNGLGdCQUFnQixDQUFDO1FBQ2hFa0csSUFBSSxFQUFFQyxVQUFVLENBQUNrQixJQUFJO1FBQ3JCQyxJQUFJLEVBQUUseUJBQUEzQixhQUFhLENBQUM0QixLQUFLLHlEQUFuQixxQkFBcUJDLFFBQVEsRUFBRSxLQUFJN0gsSUFBSSxDQUFDOEgsd0JBQXdCLENBQUMsYUFBYSxDQUFDLENBQUNDLE9BQU8sQ0FBQyxlQUFlO01BQzlHLENBQUMsQ0FBQztJQUNIO0lBRUEsTUFBTUMsNEJBQTRCLEdBQUc5SCx1Q0FBdUMsQ0FBQ0csZ0JBQWdCLENBQUMwRSxhQUFhLEVBQUUsRUFBRSxLQUFLLENBQUM7SUFFckhpRCw0QkFBNEIsQ0FDMUJ6SSxNQUFNLENBQUUyRyxTQUFTLElBQUs7TUFDdEIsT0FBTy9GLHVCQUF1QixDQUFDNEcsT0FBTyxDQUFDYixTQUFTLGFBQVRBLFNBQVMsdUJBQVRBLFNBQVMsQ0FBRWMsV0FBVyxDQUFXLEtBQUssQ0FBQyxDQUFDO0lBQ2hGLENBQUMsQ0FBQyxDQUNEQyxPQUFPLENBQUVmLFNBQVMsSUFBSztNQUFBO01BQ3ZCLElBQUksMEJBQUFBLFNBQVMsQ0FBQytCLGVBQWUsMERBQXpCLHNCQUEyQnZJLE9BQU8sRUFBRSxNQUFLLElBQUksRUFBRTtRQUNsRCxNQUFNLElBQUl3SSxLQUFLLENBQUUsdUVBQXNFaEMsU0FBUyxDQUFDMEIsS0FBTSxFQUFDLENBQUM7TUFDMUc7TUFDQSxJQUFJLHNCQUFBMUIsU0FBUyxDQUFDaUMsTUFBTSxzREFBaEIsa0JBQWtCekksT0FBTyxFQUFFLE1BQUssSUFBSSxFQUFFO1FBQ3pDLE1BQU0sSUFBSXdJLEtBQUssQ0FBRSw4REFBNkRoQyxTQUFTLENBQUMwQixLQUFNLEVBQUMsQ0FBQztNQUNqRztNQUNBLE1BQU1RLGlCQUFpQixHQUFHO1FBQ3pCQyxxQkFBcUIsRUFBRUMsd0JBQXdCLENBQUNwQyxTQUFTLENBQUNxQyxPQUFPO01BQ2xFLENBQUM7TUFFRGxDLGFBQWEsQ0FBQ0MsSUFBSSxDQUFDO1FBQ2xCQyxJQUFJLEVBQUVDLFVBQVUsQ0FBQ2dDLGlDQUFpQztRQUNsRGIsSUFBSSxzQkFBRXpCLFNBQVMsQ0FBQzBCLEtBQUsscURBQWYsaUJBQWlCQyxRQUFRLEVBQUU7UUFDakNZLGNBQWMsRUFBRXBJLGdCQUFnQixDQUFDcUksK0JBQStCLENBQUN4QyxTQUFTLENBQUN5QyxrQkFBa0IsQ0FBQztRQUM5RkMsVUFBVSxFQUFFQyxVQUFVLENBQUNDLEtBQUs7UUFDNUIxQixPQUFPLEVBQUU3QyxpQkFBaUIsQ0FDekIzQyxHQUFHLENBQ0ZGLEdBQUcsQ0FBQ0csS0FBSyxDQUFDZCwyQkFBMkIsMEJBQUNtRixTQUFTLENBQUM5RyxXQUFXLG9GQUFyQixzQkFBdUJDLEVBQUUsMkRBQXpCLHVCQUEyQkksTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFDaEZpQyxHQUFHLENBQUNHLEtBQUssQ0FBQ1UsV0FBVyxDQUFDLDZCQUE2QixFQUFFLFVBQVUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQ3hFLENBQ0Q7UUFDRDhFLE9BQU8sRUFDTm5CLFNBQVMsQ0FBQzZDLG1CQUFtQixLQUFLL0gsU0FBUyxHQUN4Q3VELGlCQUFpQixDQUFDMUMsS0FBSyxDQUFDZCwyQkFBMkIsMEJBQUNtRixTQUFTLENBQUM2QyxtQkFBbUIsMERBQTdCLHNCQUErQnJKLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FDckcsSUFBSTtRQUNSZ0gsR0FBRyxFQUFFc0MsU0FBUyxDQUFDQyx3QkFBd0IsQ0FBQy9DLFNBQVMsQ0FBQztRQUNsRGdELFdBQVcsRUFBRSxJQUFJO1FBQ2pCQyxLQUFLLEVBQUU1RSxpQkFBaUIsQ0FDdkI2RSxFQUFFLENBQUMsa0NBQWtDLEVBQUUsQ0FDdENySSwyQkFBMkIsQ0FBQ21GLFNBQVMsQ0FBQ21ELGNBQWMsQ0FBQyxFQUNyRHRJLDJCQUEyQixDQUFDbUYsU0FBUyxDQUFDb0QsTUFBTSxDQUFDLEVBQzdDbEIsaUJBQWlCLENBQ2pCLENBQUMsQ0FDRjtRQUNEbUIsVUFBVSxFQUFFaEYsaUJBQWlCLENBQUM7VUFDN0JpRixjQUFjLEVBQUV6SSwyQkFBMkIsQ0FBQ21GLFNBQVMsQ0FBQ21ELGNBQWMsQ0FBQztVQUNyRUksTUFBTSxFQUFFMUksMkJBQTJCLENBQUNtRixTQUFTLENBQUNvRCxNQUFNO1FBQ3JELENBQUM7TUFDRixDQUFDLENBQXFCO0lBQ3ZCLENBQUMsQ0FBQztJQUNIO0lBQ0FsRCx5QkFBeUIsQ0FDdkI3RyxNQUFNLENBQUUyRyxTQUFTLElBQUs7TUFDdEIsT0FBTy9GLHVCQUF1QixDQUFDNEcsT0FBTyxDQUFDYixTQUFTLGFBQVRBLFNBQVMsdUJBQVRBLFNBQVMsQ0FBRWMsV0FBVyxDQUFXLEtBQUssQ0FBQyxDQUFDO0lBQ2hGLENBQUMsQ0FBQyxDQUNEQyxPQUFPLENBQUVmLFNBQVMsSUFBSztNQUN2QkcsYUFBYSxDQUFDQyxJQUFJLENBQUNZLDRCQUE0QixDQUFDaEIsU0FBUyxFQUFFN0YsZ0JBQWdCLENBQUMsQ0FBQztJQUM5RSxDQUFDLENBQUM7SUFFSCxPQUFPZ0csYUFBYTtFQUNyQjtFQUFDO0VBRU0sU0FBU3FELHNCQUFzQixDQUFDckosZ0JBQWtDLEVBQWdCO0lBQUE7SUFDeEYsTUFBTW5CLFVBQVUsR0FBR21CLGdCQUFnQixDQUFDMEUsYUFBYSxFQUFFO0lBQ25ELE1BQU00RSxhQUFhLEdBQUksMkJBQUF6SyxVQUFVLENBQUNFLFdBQVcscUZBQXRCLHVCQUF3QkMsRUFBRSxxRkFBMUIsdUJBQTRCQyxjQUFjLDJEQUExQyx1QkFBNENDLE1BQU0sQ0FBRUMsdUJBQXVCLElBQUs7TUFBQTtNQUN0RyxPQUFPLENBQUFBLHVCQUF1QixhQUF2QkEsdUJBQXVCLGtEQUF2QkEsdUJBQXVCLENBQUVKLFdBQVcsdUZBQXBDLHdCQUFzQ0MsRUFBRSx1RkFBeEMsd0JBQTBDSSxNQUFNLDREQUFoRCx3QkFBa0RDLE9BQU8sRUFBRSxNQUFLLElBQUk7SUFDNUUsQ0FBQyxDQUFDLEtBQUksRUFBZ0M7SUFDdEMsT0FBT2lLLGFBQWEsQ0FBQ2hKLEdBQUcsQ0FBRXVGLFNBQVMsSUFBSztNQUN2QyxPQUFPO1FBQ05LLElBQUksRUFBRUMsVUFBVSxDQUFDb0QsT0FBTztRQUN4QmxELEdBQUcsRUFBRXNDLFNBQVMsQ0FBQ0Msd0JBQXdCLENBQUMvQyxTQUFTO01BQ2xELENBQUM7SUFDRixDQUFDLENBQUM7RUFDSDtFQUFDO0VBRU0sU0FBUzJELHVCQUF1QixDQUFDdkksU0FBaUIsRUFBRWpCLGdCQUFrQyxFQUFnQjtJQUFBO0lBQzVHLE1BQU00QixTQUFTLEdBQUc1QixnQkFBZ0IsQ0FBQzZCLFlBQVksRUFBRTtJQUNqRCxNQUFNaEQsVUFBVSxHQUFHbUIsZ0JBQWdCLENBQUMwRSxhQUFhLEVBQUU7SUFDbkQsTUFBTUUsc0JBQXNCLEdBQUc3QyxXQUFXLENBQUM4QyxnQkFBZ0IsQ0FBQ2pELFNBQVMsQ0FBQztNQUFFO01BQ3ZFNkgsa0JBQWtCLEdBQ2pCLENBQUMxSCxXQUFXLENBQUN3QixXQUFXLENBQUMzQixTQUFTLENBQUMsSUFDbkNBLFNBQVMsS0FDUiwyQkFBQUEsU0FBUyxDQUFDN0MsV0FBVyxDQUFDeUUsTUFBTSxxRkFBNUIsdUJBQThCQyxTQUFTLDJEQUF2Qyx1QkFBeUNpRyxJQUFJLGdDQUFJOUgsU0FBUyxDQUFDN0MsV0FBVyxxRkFBckIsdUJBQXVCNEUsT0FBTyxxRkFBOUIsdUJBQWdDQyxzQkFBc0IsMkRBQXRELHVCQUF3RDhGLElBQUksRUFBQztNQUNoSEMsYUFBYSxHQUFHcEssT0FBTyxDQUN0QmtLLGtCQUFrQiwrQ0FBb0MsSUFBSzdFLHNCQUFzQixLQUFJQSxzQkFBc0IsYUFBdEJBLHNCQUFzQix1QkFBdEJBLHNCQUFzQixDQUFFZ0YsVUFBVSxDQUFDLENBQ3hIO01BQ0RDLGNBQWMsR0FBRzVJLFNBQVMsR0FBRyxDQUFDO01BQzlCNkksZUFBZSxHQUFHdkssT0FBTyxDQUN4QmtLLGtCQUFrQiwrQ0FBb0MsSUFBSzdFLHNCQUFzQixLQUFJQSxzQkFBc0IsYUFBdEJBLHNCQUFzQix1QkFBdEJBLHNCQUFzQixDQUFFbUYsYUFBYSxDQUFDLENBQzNIOztJQUVGO0lBQ0EsTUFBTUMseUJBQXlCLEdBQUdwTCxvQ0FBb0MsQ0FBQ29CLGdCQUFnQixDQUFDMEUsYUFBYSxFQUFFLEVBQUUsSUFBSSxDQUFDOztJQUU5RztJQUNBLE1BQU11RixhQUEyQixHQUFHRCx5QkFBeUIsQ0FDM0Q5SyxNQUFNLENBQUUyRyxTQUFTLElBQUs7TUFDdEIsT0FBTy9GLHVCQUF1QixDQUFDNEcsT0FBTyxDQUFDYixTQUFTLGFBQVRBLFNBQVMsdUJBQVRBLFNBQVMsQ0FBRWMsV0FBVyxDQUFXLEdBQUcsQ0FBQyxDQUFDO0lBQzlFLENBQUMsQ0FBQyxDQUNEckcsR0FBRyxDQUFFdUYsU0FBUyxJQUFLO01BQ25CLE9BQU9nQiw0QkFBNEIsQ0FBQ2hCLFNBQVMsRUFBRTdGLGdCQUFnQixDQUFDO0lBQ2pFLENBQUMsQ0FBQzs7SUFFSDtJQUNBLElBQUksQ0FBQTRCLFNBQVMsYUFBVEEsU0FBUyx1QkFBVEEsU0FBUyxDQUFFc0ksY0FBYyxPQUFLckwsVUFBVSxhQUFWQSxVQUFVLHVCQUFWQSxVQUFVLENBQUV5SixrQkFBa0IsS0FBSXFCLGFBQWEsRUFBRTtNQUNsRk0sYUFBYSxDQUFDaEUsSUFBSSxDQUFDO1FBQUVDLElBQUksRUFBRUMsVUFBVSxDQUFDVyxPQUFPO1FBQUVULEdBQUcsRUFBRTtNQUFhLENBQUMsQ0FBQztJQUNwRTs7SUFFQTtJQUNBLElBQUl3RCxjQUFjLEVBQUU7TUFDbkJJLGFBQWEsQ0FBQ2hFLElBQUksQ0FBQztRQUFFQyxJQUFJLEVBQUVDLFVBQVUsQ0FBQ2dFLFlBQVk7UUFBRTlELEdBQUcsRUFBRTtNQUFjLENBQUMsQ0FBQztJQUMxRTs7SUFFQTtJQUNBMkQseUJBQXlCLENBQ3ZCOUssTUFBTSxDQUFFMkcsU0FBUyxJQUFLO01BQ3RCLE9BQU8vRix1QkFBdUIsQ0FBQzRHLE9BQU8sQ0FBQ2IsU0FBUyxhQUFUQSxTQUFTLHVCQUFUQSxTQUFTLENBQUVjLFdBQVcsQ0FBVyxLQUFLLENBQUMsQ0FBQztJQUNoRixDQUFDLENBQUMsQ0FDREMsT0FBTyxDQUFFZixTQUFTLElBQUs7TUFDdkJvRSxhQUFhLENBQUNoRSxJQUFJLENBQUNZLDRCQUE0QixDQUFDaEIsU0FBUyxFQUFFN0YsZ0JBQWdCLENBQUMsQ0FBQztJQUM5RSxDQUFDLENBQUM7O0lBRUg7SUFDQSxJQUFJOEosZUFBZSxFQUFFO01BQ3BCRyxhQUFhLENBQUNoRSxJQUFJLENBQUM7UUFDbEJDLElBQUksRUFBRUMsVUFBVSxDQUFDZ0IsU0FBUztRQUMxQmQsR0FBRyxFQUFFLGNBQWM7UUFDbkIrRCxRQUFRLEVBQUU7VUFBRUMsU0FBUyxFQUFFQyxTQUFTLENBQUNDO1FBQUk7TUFDdEMsQ0FBQyxDQUFDO0lBQ0g7SUFDQSxPQUFPTixhQUFhO0VBQ3JCO0VBQUM7RUFFRCxTQUFTcEQsNEJBQTRCLENBQUNoQixTQUFrQyxFQUFFN0YsZ0JBQWtDLEVBQW9CO0lBQUE7SUFDL0gsT0FBTztNQUNOa0csSUFBSSxFQUFFQyxVQUFVLENBQUNxRSxrQkFBa0I7TUFDbkNwQyxjQUFjLEVBQUVwSSxnQkFBZ0IsQ0FBQ3FJLCtCQUErQixDQUFDeEMsU0FBUyxDQUFDeUMsa0JBQWtCLENBQUM7TUFDOUZqQyxHQUFHLEVBQUVzQyxTQUFTLENBQUNDLHdCQUF3QixDQUFDL0MsU0FBUyxDQUFDO01BQ2xEa0IsT0FBTyxFQUFFN0MsaUJBQWlCLENBQUM3QyxHQUFHLENBQUNHLEtBQUssQ0FBQ2QsMkJBQTJCLDJCQUFDbUYsU0FBUyxDQUFDOUcsV0FBVyxxRkFBckIsdUJBQXVCQyxFQUFFLDJEQUF6Qix1QkFBMkJJLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7TUFDNUc0SCxPQUFPLEVBQUU3Qyw2QkFBNkIsQ0FBQ25FLGdCQUFnQixFQUFFNkYsU0FBUyxDQUFDcEcsWUFBWSxDQUFDO01BQ2hGb0osV0FBVyxFQUFFO0lBQ2QsQ0FBQztFQUNGO0VBQUM7QUFBQSJ9
|
|
408
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRJZGVudGlmaWNhdGlvbkRhdGFGaWVsZEZvckFjdGlvbnMiLCJlbnRpdHlUeXBlIiwiaXNEZXRlcm1pbmluZ0FjdGlvbiIsImFubm90YXRpb25zIiwiVUkiLCJJZGVudGlmaWNhdGlvbiIsImZpbHRlciIsImlkZW50aWZpY2F0aW9uRGF0YUZpZWxkIiwiSGlkZGVuIiwidmFsdWVPZiIsIiRUeXBlIiwiQm9vbGVhbiIsIkRldGVybWluaW5nIiwiQWN0aW9uVGFyZ2V0IiwiaXNCb3VuZCIsIkNvcmUiLCJPcGVyYXRpb25BdmFpbGFibGUiLCJnZXRJZGVudGlmaWNhdGlvbkRhdGFGaWVsZEZvcklCTkFjdGlvbnMiLCJJTVBPUlRBTlRfQ1JJVElDQUxJVElFUyIsImdldERlbGV0ZUJ1dHRvblZpc2liaWxpdHkiLCJjb252ZXJ0ZXJDb250ZXh0IiwiZGVsZXRlSGlkZGVuIiwiZGF0YU1vZGVsT2JqZWN0UGF0aCIsImdldERhdGFNb2RlbE9iamVjdFBhdGgiLCJ2aXNpdGVkTmF2aWdhdGlvblBhdGhzIiwibmF2aWdhdGlvblByb3BlcnRpZXMiLCJtYXAiLCJuYXZQcm9wIiwibmFtZSIsImRlbGV0ZUhpZGRlbkV4cHJlc3Npb24iLCJnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24iLCJ1bmRlZmluZWQiLCJwYXRoIiwic2luZ2xldG9uUGF0aFZpc2l0b3IiLCJnZXRDb252ZXJ0ZWRUeXBlcyIsIm1hbmlmZXN0V3JhcHBlciIsImdldE1hbmlmZXN0V3JhcHBlciIsInZpZXdMZXZlbCIsImdldFZpZXdMZXZlbCIsImVkaXRhYmxlRXhwcmVzc2lvbiIsIklzRWRpdGFibGUiLCJub3QiLCJpZkVsc2UiLCJhbmQiLCJlcXVhbCIsImdldERlbGV0ZUJ1dHRvbkVuYWJsZWQiLCJpc0RlbGV0YWJsZSIsImlzUGFyZW50RGVsZXRhYmxlIiwiZW50aXR5U2V0IiwiZ2V0RW50aXR5U2V0IiwiaXNEcmFmdFJvb3QiLCJNb2RlbEhlbHBlciIsInJldCIsImNvbnN0YW50IiwicGF0aEluTW9kZWwiLCJnZXRFZGl0QnV0dG9uVmlzaWJpbGl0eSIsInJvb3RVcGRhdGVIaWRkZW4iLCJyb290Q29udmVydGVyQ29udGV4dCIsInVwZGF0ZUhpZGRlbiIsInJvb3RFbnRpdHlTZXQiLCJpc0ZDTEVuYWJsZWQiLCJpc0ZjbEVuYWJsZWQiLCJpc0RyYWZ0RW5hYmxlZCIsInJvb3RVcGRhdGVIaWRkZW5FeHByZXNzaW9uIiwiZ2V0SGlkZGVuRXhwcmVzc2lvbiIsImlzRHJhZnROb2RlIiwidXBkYXRlSGlkZGVuRXhwcmVzc2lvbiIsIm5vdEVkaXRhYmxlRXhwcmVzc2lvbiIsInJlc3VsdGFudEV4cHJlc3Npb24iLCJEcmFmdCIsIkhhc05vRHJhZnRGb3JDdXJyZW50VXNlciIsImdldEVkaXRCdXR0b25FbmFibGVkIiwidXBkYXRlUmVzdHJpY3Rpb25zIiwiaXNTdGlja3kiLCJlZGl0QWN0aW9uTmFtZSIsImlzRW50aXR5U2V0IiwiQ29tbW9uIiwiRHJhZnRSb290IiwiRWRpdEFjdGlvbiIsIlNlc3Npb24iLCJTdGlja3lTZXNzaW9uU3VwcG9ydGVkIiwiZWRpdEFjdGlvbkFubm90YXRpb25QYXRoIiwiZ2V0QWJzb2x1dGVBbm5vdGF0aW9uUGF0aCIsImVkaXRBY3Rpb24iLCJyZXNvbHZlQWJzb2x1dGVQYXRoIiwidGFyZ2V0IiwiY29tcGlsZUV4cHJlc3Npb24iLCJnZXRFbmFibGVkRm9yQW5ub3RhdGlvbkFjdGlvbiIsImdldEhlYWRlckRlZmF1bHRBY3Rpb25zIiwic0NvbnRleHRQYXRoIiwiZ2V0Q29udGV4dFBhdGgiLCJyb290RW50aXR5U2V0UGF0aCIsImdldFJvb3RFbnRpdHlTZXRQYXRoIiwiZ2V0Q29udmVydGVyQ29udGV4dEZvciIsImdldEVudGl0eVR5cGUiLCJyb290RW50aXR5VHlwZSIsInN0aWNreVNlc3Npb25TdXBwb3J0ZWQiLCJnZXRTdGlja3lTZXNzaW9uIiwiZHJhZnRSb290IiwiZ2V0RHJhZnRSb290IiwiZHJhZnROb2RlIiwiZ2V0RHJhZnROb2RlIiwiZW50aXR5RGVsZXRlUmVzdHJpY3Rpb25zIiwiQ2FwYWJpbGl0aWVzIiwiRGVsZXRlUmVzdHJpY3Rpb25zIiwiaXNVcGRhdGVIaWRkZW4iLCJpc1BhdGhEZWxldGFibGUiLCJwYXRoVmlzaXRvciIsIm5hdmlnYXRpb25QYXRocyIsInBhcmVudEVudGl0eVNldERlbGV0YWJsZSIsImlkZW50aWZpY2F0aW9uRmllbGRGb3JBY3Rpb25zIiwiY29weURhdGFGaWVsZCIsImdldENvcHlBY3Rpb24iLCJkYXRhRmllbGQiLCJkYXRhRmllbGRJc0NvcHlBY3Rpb24iLCJoZWFkZXJEYXRhRmllbGRGb3JBY3Rpb25zIiwiaGVhZGVyQWN0aW9ucyIsInB1c2giLCJ0eXBlIiwiQWN0aW9uVHlwZSIsIkRyYWZ0QWN0aW9ucyIsImtleSIsInVwZGF0YWJsZVByb3BlcnR5UGF0aCIsIlVwZGF0ZVJlc3RyaWN0aW9ucyIsIlVwZGF0YWJsZSIsIkNvbGxhYm9yYXRpb25BdmF0YXJzIiwiaW5kZXhPZiIsIkNyaXRpY2FsaXR5IiwiZm9yRWFjaCIsImdldERhdGFGaWVsZEFubm90YXRpb25BY3Rpb24iLCJQcmltYXJ5IiwidmlzaWJsZSIsImVuYWJsZWQiLCJEZWxldGFibGUiLCJnZXREZWxldGVIaWRkZW4iLCJTZWNvbmRhcnkiLCJwYXJlbnRFbnRpdHlEZWxldGVFbmFibGVkIiwiQ29weSIsInRleHQiLCJMYWJlbCIsInRvU3RyaW5nIiwiZ2V0TGlicmFyeVJlc291cmNlQnVuZGxlIiwiZ2V0VGV4dCIsImhlYWRlckRhdGFGaWVsZEZvcklCTkFjdGlvbnMiLCJSZXF1aXJlc0NvbnRleHQiLCJFcnJvciIsIklubGluZSIsIm9OYXZpZ2F0aW9uUGFyYW1zIiwic2VtYW50aWNPYmplY3RNYXBwaW5nIiwiZ2V0U2VtYW50aWNPYmplY3RNYXBwaW5nIiwiTWFwcGluZyIsIkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbiIsImFubm90YXRpb25QYXRoIiwiZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aCIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsImJ1dHRvblR5cGUiLCJCdXR0b25UeXBlIiwiR2hvc3QiLCJOYXZpZ2F0aW9uQXZhaWxhYmxlIiwiS2V5SGVscGVyIiwiZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkIiwiaXNOYXZpZ2FibGUiLCJwcmVzcyIsImZuIiwiU2VtYW50aWNPYmplY3QiLCJBY3Rpb24iLCJjdXN0b21EYXRhIiwic2VtYW50aWNPYmplY3QiLCJhY3Rpb24iLCJnZXRIaWRkZW5IZWFkZXJBY3Rpb25zIiwiaGlkZGVuQWN0aW9ucyIsIkRlZmF1bHQiLCJnZXRGb290ZXJEZWZhdWx0QWN0aW9ucyIsImVudGl0eVNldERyYWZ0Um9vdCIsInRlcm0iLCJjb25kaXRpb25TYXZlIiwiU2F2ZUFjdGlvbiIsImNvbmRpdGlvbkFwcGx5IiwiY29uZGl0aW9uQ2FuY2VsIiwiRGlzY2FyZEFjdGlvbiIsImZvb3RlckRhdGFGaWVsZEZvckFjdGlvbnMiLCJmb290ZXJBY3Rpb25zIiwiZW50aXR5VHlwZU5hbWUiLCJEZWZhdWx0QXBwbHkiLCJwb3NpdGlvbiIsInBsYWNlbWVudCIsIlBsYWNlbWVudCIsIkVuZCIsIkRhdGFGaWVsZEZvckFjdGlvbiJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiSGVhZGVyQW5kRm9vdGVyQWN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQWN0aW9uLCBFbnRpdHlUeXBlLCBQcm9wZXJ0eUFubm90YXRpb25WYWx1ZSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHsgQ29tbW9uQW5ub3RhdGlvblRlcm1zIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9Db21tb25cIjtcbmltcG9ydCB0eXBlIHsgRGF0YUZpZWxkRm9yQWN0aW9uVHlwZXMsIERhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvblR5cGVzIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IHsgVUlBbm5vdGF0aW9uVHlwZXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgdHlwZSB7IEFubm90YXRpb25BY3Rpb24sIEJhc2VBY3Rpb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9Db21tb24vQWN0aW9uXCI7XG5pbXBvcnQge1xuXHRCdXR0b25UeXBlLFxuXHRkYXRhRmllbGRJc0NvcHlBY3Rpb24sXG5cdGdldENvcHlBY3Rpb24sXG5cdGdldEVuYWJsZWRGb3JBbm5vdGF0aW9uQWN0aW9uLFxuXHRnZXRTZW1hbnRpY09iamVjdE1hcHBpbmdcbn0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvQ29tbW9uL0FjdGlvblwiO1xuaW1wb3J0IHsgUGxhY2VtZW50IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9Db25maWd1cmFibGVPYmplY3RcIjtcbmltcG9ydCB7IEtleUhlbHBlciB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvS2V5XCI7XG5pbXBvcnQge1xuXHRhbmQsXG5cdEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbixcblx0Q29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24sXG5cdGNvbXBpbGVFeHByZXNzaW9uLFxuXHRjb25zdGFudCxcblx0ZXF1YWwsXG5cdGZuLFxuXHRnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24sXG5cdGlmRWxzZSxcblx0bm90LFxuXHRwYXRoSW5Nb2RlbFxufSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgeyBpc0VudGl0eVNldCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1R5cGVHdWFyZHNcIjtcbmltcG9ydCB7IGlzUGF0aERlbGV0YWJsZSB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCBDb3JlIGZyb20gXCJzYXAvdWkvY29yZS9Db3JlXCI7XG5pbXBvcnQgdHlwZSBDb252ZXJ0ZXJDb250ZXh0IGZyb20gXCIuLi9Db252ZXJ0ZXJDb250ZXh0XCI7XG5pbXBvcnQgeyBEcmFmdCwgc2luZ2xldG9uUGF0aFZpc2l0b3IsIFVJIH0gZnJvbSBcIi4uL2hlbHBlcnMvQmluZGluZ0hlbHBlclwiO1xuaW1wb3J0IHsgQWN0aW9uVHlwZSB9IGZyb20gXCIuLi9NYW5pZmVzdFNldHRpbmdzXCI7XG5cbi8qKlxuICogUmV0cmlldmVzIGFsbCB0aGUgZGF0YSBmaWVsZCBmb3IgYWN0aW9ucyBmb3IgdGhlIGlkZW50aWZpY2F0aW9uIGFubm90YXRpb25cbiAqIFRoZXkgbXVzdCBiZVxuICogLSBOb3Qgc3RhdGljYWxseSBoaWRkZW5cbiAqIC0gRWl0aGVyIGxpbmtlZCB0byBhbiBVbmJvdW5kIGFjdGlvbiBvciB0byBhbiBhY3Rpb24gd2hpY2ggaGFzIGFuIE9wZXJhdGlvbkF2YWlsYWJsZSB0aGF0IGlzIG5vdCBzZXQgdG8gZmFsc2Ugc3RhdGljYWxseS5cbiAqXG4gKiBAcGFyYW0gZW50aXR5VHlwZSBUaGUgY3VycmVudCBlbnRpdHkgdHlwZVxuICogQHBhcmFtIGlzRGV0ZXJtaW5pbmdBY3Rpb24gVGhlIGZsYWcgd2hpY2ggZGVub3RlcyB3aGV0aGVyIG9yIG5vdCB0aGUgYWN0aW9uIGlzIGEgZGV0ZXJtaW5pbmcgYWN0aW9uXG4gKiBAcmV0dXJucyBBbiBhcnJheSBvZiBEYXRhRmllbGQgZm9yIGFjdGlvbiByZXNwZWN0aW5nIHRoZSBpbnB1dCBwYXJhbWV0ZXIgJ2lzRGV0ZXJtaW5pbmdBY3Rpb24nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJZGVudGlmaWNhdGlvbkRhdGFGaWVsZEZvckFjdGlvbnMoZW50aXR5VHlwZTogRW50aXR5VHlwZSwgaXNEZXRlcm1pbmluZ0FjdGlvbjogYm9vbGVhbik6IERhdGFGaWVsZEZvckFjdGlvblR5cGVzW10ge1xuXHRyZXR1cm4gKGVudGl0eVR5cGUuYW5ub3RhdGlvbnM/LlVJPy5JZGVudGlmaWNhdGlvbj8uZmlsdGVyKChpZGVudGlmaWNhdGlvbkRhdGFGaWVsZCkgPT4ge1xuXHRcdHJldHVybiBpZGVudGlmaWNhdGlvbkRhdGFGaWVsZC5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbj8udmFsdWVPZigpICE9PSB0cnVlICYmXG5cdFx0XHRpZGVudGlmaWNhdGlvbkRhdGFGaWVsZC4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkRm9yQWN0aW9uICYmXG5cdFx0XHRCb29sZWFuKGlkZW50aWZpY2F0aW9uRGF0YUZpZWxkLkRldGVybWluaW5nPy52YWx1ZU9mKCkpID09PSBpc0RldGVybWluaW5nQWN0aW9uICYmXG5cdFx0XHQoaWRlbnRpZmljYXRpb25EYXRhRmllbGQuQWN0aW9uVGFyZ2V0Py5pc0JvdW5kPy52YWx1ZU9mKCkgIT09IHRydWUgfHxcblx0XHRcdFx0aWRlbnRpZmljYXRpb25EYXRhRmllbGQ/LkFjdGlvblRhcmdldD8uYW5ub3RhdGlvbnM/LkNvcmU/Lk9wZXJhdGlvbkF2YWlsYWJsZT8udmFsdWVPZigpICE9PSBmYWxzZSlcblx0XHRcdD8gdHJ1ZVxuXHRcdFx0OiBmYWxzZTtcblx0fSkgfHwgW10pIGFzIERhdGFGaWVsZEZvckFjdGlvblR5cGVzW107XG59XG5cbi8qKlxuICogUmV0cmlldmUgYWxsIHRoZSBJQk4gYWN0aW9ucyBmb3IgdGhlIGlkZW50aWZpY2F0aW9uIGFubm90YXRpb24uXG4gKiBUaGV5IG11c3QgYmVcbiAqIC0gTm90IHN0YXRpY2FsbHkgaGlkZGVuLlxuICpcbiAqIEBwYXJhbSBlbnRpdHlUeXBlIFRoZSBjdXJyZW50IGVudGl0eXR5cGVcbiAqIEBwYXJhbSBpc0RldGVybWluaW5nQWN0aW9uIFdoZXRoZXIgb3Igbm90IHRoZSBhY3Rpb24gc2hvdWxkIGJlIGRldGVybWluaW5nXG4gKiBAcmV0dXJucyBBbiBhcnJheSBvZiBkYXRhIGZpZWxkIGZvciBhY3Rpb24gcmVzcGVjdGluZyB0aGUgaXNEZXRlcm1pbmluZ0FjdGlvbiBwcm9wZXJ0eS5cbiAqL1xuZnVuY3Rpb24gZ2V0SWRlbnRpZmljYXRpb25EYXRhRmllbGRGb3JJQk5BY3Rpb25zKFxuXHRlbnRpdHlUeXBlOiBFbnRpdHlUeXBlLFxuXHRpc0RldGVybWluaW5nQWN0aW9uOiBib29sZWFuXG4pOiBEYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb25UeXBlc1tdIHtcblx0cmV0dXJuIChlbnRpdHlUeXBlLmFubm90YXRpb25zPy5VST8uSWRlbnRpZmljYXRpb24/LmZpbHRlcigoaWRlbnRpZmljYXRpb25EYXRhRmllbGQpID0+IHtcblx0XHRyZXR1cm4gaWRlbnRpZmljYXRpb25EYXRhRmllbGQuYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSAhPT0gdHJ1ZSAmJlxuXHRcdFx0aWRlbnRpZmljYXRpb25EYXRhRmllbGQuJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbiAmJlxuXHRcdFx0Qm9vbGVhbihpZGVudGlmaWNhdGlvbkRhdGFGaWVsZC5EZXRlcm1pbmluZz8udmFsdWVPZigpKSA9PT0gaXNEZXRlcm1pbmluZ0FjdGlvblxuXHRcdFx0PyB0cnVlXG5cdFx0XHQ6IGZhbHNlO1xuXHR9KSB8fCBbXSkgYXMgRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uVHlwZXNbXTtcbn1cblxuZXhwb3J0IGNvbnN0IElNUE9SVEFOVF9DUklUSUNBTElUSUVTID0gW1xuXHRcIlVJLkNyaXRpY2FsaXR5VHlwZS9WZXJ5UG9zaXRpdmVcIixcblx0XCJVSS5Dcml0aWNhbGl0eVR5cGUvUG9zaXRpdmVcIixcblx0XCJVSS5Dcml0aWNhbGl0eVR5cGUvTmVnYXRpdmVcIixcblx0XCJVSS5Dcml0aWNhbGl0eVR5cGUvVmVyeU5lZ2F0aXZlXCJcbl07XG5cbi8qKlxuICogTWV0aG9kIHRvIGRldGVybWluZSB0aGUgJ3Zpc2libGUnIHByb3BlcnR5IGJpbmRpbmcgZm9yIHRoZSBEZWxldGUgYnV0dG9uIG9uIGFuIG9iamVjdCBwYWdlLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0IEluc3RhbmNlIG9mIHRoZSBjb252ZXJ0ZXIgY29udGV4dC5cbiAqIEBwYXJhbSBkZWxldGVIaWRkZW4gVGhlIHZhbHVlIG9mIHRoZSBVSS5EZWxldGVIaWRkZW4gYW5ub3RhdGlvbiBvbiB0aGUgZW50aXR5IHNldCAvIHR5cGUuXG4gKiBAcmV0dXJucyBUaGUgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgJ3Zpc2libGUnIHByb3BlcnR5IG9mIHRoZSBEZWxldGUgYnV0dG9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVsZXRlQnV0dG9uVmlzaWJpbGl0eShcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0ZGVsZXRlSGlkZGVuOiBQcm9wZXJ0eUFubm90YXRpb25WYWx1ZTxib29sZWFuPiB8IHVuZGVmaW5lZFxuKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+IHtcblx0Y29uc3QgZGF0YU1vZGVsT2JqZWN0UGF0aCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLFxuXHRcdHZpc2l0ZWROYXZpZ2F0aW9uUGF0aHMgPSBkYXRhTW9kZWxPYmplY3RQYXRoLm5hdmlnYXRpb25Qcm9wZXJ0aWVzLm1hcCgobmF2UHJvcCkgPT4gbmF2UHJvcC5uYW1lKSxcblx0XHQvLyBTZXQgYWJzb2x1dGUgYmluZGluZyBwYXRoIGZvciBTaW5nbGV0b24gcmVmZXJlbmNlcywgb3RoZXJ3aXNlIHRoZSBjb25maWd1cmVkIGFubm90YXRpb24gcGF0aCBpdHNlbGYuXG5cdFx0Ly8gRm9yIGUuZy4gL2NvbS5zYXAubmFtZXNwYWNlLkVudGl0eUNvbnRhaW5lci9TaW5nbGV0b24vUHJvcGVydHkgdG8gL1NpbmdsZXRvbi9Qcm9wZXJ0eVxuXHRcdGRlbGV0ZUhpZGRlbkV4cHJlc3Npb246IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuIHwgdW5kZWZpbmVkPiA9IGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihcblx0XHRcdGRlbGV0ZUhpZGRlbixcblx0XHRcdHZpc2l0ZWROYXZpZ2F0aW9uUGF0aHMsXG5cdFx0XHR1bmRlZmluZWQsXG5cdFx0XHQocGF0aDogc3RyaW5nKSA9PiBzaW5nbGV0b25QYXRoVmlzaXRvcihwYXRoLCBjb252ZXJ0ZXJDb250ZXh0LmdldENvbnZlcnRlZFR5cGVzKCksIFtdKVxuXHRcdCksXG5cdFx0bWFuaWZlc3RXcmFwcGVyID0gY29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdFdyYXBwZXIoKSxcblx0XHR2aWV3TGV2ZWwgPSBtYW5pZmVzdFdyYXBwZXIuZ2V0Vmlld0xldmVsKCksXG5cdFx0Ly8gRGVsZXRlIGJ1dHRvbiBpcyB2aXNpYmxlXG5cdFx0Ly8gSW4gT1AgXHRcdC0tPiAgd2hlbiBub3QgaW4gZWRpdCBtb2RlXG5cdFx0Ly8gSW4gc3ViLU9QIFx0LS0+ICB3aGVuIGluIGVkaXQgbW9kZVxuXHRcdGVkaXRhYmxlRXhwcmVzc2lvbjogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+ID0gdmlld0xldmVsID4gMSA/IFVJLklzRWRpdGFibGUgOiBub3QoVUkuSXNFZGl0YWJsZSk7XG5cblx0Ly8gSWYgVUkuRGVsZXRlSGlkZGVuIGFubm90YXRpb24gb24gZW50aXR5IHNldCBvciB0eXBlIGlzIGVpdGhlciBub3QgZGVmaW5lZCBvciBleHBsaWNpdGx5IHNldCB0byBmYWxzZSxcblx0Ly8gRGVsZXRlIGJ1dHRvbiBpcyB2aXNpYmxlIGJhc2VkIG9uIGVkaXRhYmxlRXhwcmVzc2lvbi5cblx0Ly8gZWxzZSxcblx0Ly8gRGVsZXRlIGJ1dHRvbiBpcyB2aXNpYmxlIGJhc2VkIG9uIGJvdGggYW5ub3RhdGlvbiBwYXRoIGFuZCBlZGl0YWJsZUV4cHJlc3Npb24uXG5cdHJldHVybiBpZkVsc2UoXG5cdFx0ZGVsZXRlSGlkZGVuID09PSB1bmRlZmluZWQgfHwgZGVsZXRlSGlkZGVuLnZhbHVlT2YoKSA9PT0gZmFsc2UsXG5cdFx0ZWRpdGFibGVFeHByZXNzaW9uLFxuXHRcdGFuZChlZGl0YWJsZUV4cHJlc3Npb24sIGVxdWFsKGRlbGV0ZUhpZGRlbkV4cHJlc3Npb24sIGZhbHNlKSlcblx0KTtcbn1cblxuLyoqXG4gKiBNZXRob2QgdG8gZGV0ZXJtaW5lIHRoZSAnZW5hYmxlZCcgcHJvcGVydHkgYmluZGluZyBmb3IgdGhlIERlbGV0ZSBidXR0b24gb24gYW4gb2JqZWN0IHBhZ2UuXG4gKlxuICogQHBhcmFtIGlzRGVsZXRhYmxlIFRoZSBkZWxldGUgcmVzdHJpY3Rpb24gY29uZmlndXJlZFxuICogQHBhcmFtIGlzUGFyZW50RGVsZXRhYmxlIFRoZSBkZWxldGUgcmVzdHJpY3Rpb24gY29uZmlndXJlZCBvbiB0aGUgcGFyZW50IGVudGl0eVxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHRcbiAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSAnZW5hYmxlZCcgcHJvcGVydHkgb2YgdGhlIERlbGV0ZSBidXR0b25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERlbGV0ZUJ1dHRvbkVuYWJsZWQoXG5cdGlzRGVsZXRhYmxlOiBQcm9wZXJ0eUFubm90YXRpb25WYWx1ZTxCb29sZWFuPiB8IHVuZGVmaW5lZCxcblx0aXNQYXJlbnREZWxldGFibGU6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPixcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dFxuKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+IHtcblx0Y29uc3QgZW50aXR5U2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKSxcblx0XHRpc0RyYWZ0Um9vdCA9IE1vZGVsSGVscGVyLmlzRHJhZnRSb290KGVudGl0eVNldCk7XG5cblx0bGV0IHJldCA9IGlmRWxzZShcblx0XHRpc1BhcmVudERlbGV0YWJsZSAhPT0gdW5kZWZpbmVkLFxuXHRcdGlzUGFyZW50RGVsZXRhYmxlLFxuXHRcdGlmRWxzZShpc0RlbGV0YWJsZSAhPT0gdW5kZWZpbmVkLCBlcXVhbChnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24oaXNEZWxldGFibGUpLCB0cnVlKSwgY29uc3RhbnQodHJ1ZSkpXG5cdCk7XG5cblx0Ly8gZGVsZXRlIHNob3VsZCBiZSBkaXNhYmxlZCBmb3IgTG9ja2VkIG9iamVjdHNcblx0cmV0ID0gaXNEcmFmdFJvb3QgPyBhbmQocmV0LCBub3QocGF0aEluTW9kZWwoXCJEcmFmdEFkbWluaXN0cmF0aXZlRGF0YS9JblByb2Nlc3NCeVVzZXJcIikpKSA6IHJldDtcblxuXHRyZXR1cm4gcmV0O1xufVxuXG4vKipcbiAqIE1ldGhvZCB0byBkZXRlcm1pbmUgdGhlICd2aXNpYmxlJyBwcm9wZXJ0eSBiaW5kaW5nIGZvciB0aGUgRWRpdCBidXR0b24gb24gYW4gb2JqZWN0IHBhZ2UuXG4gKlxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHQgSW5zdGFuY2Ugb2YgdGhlIGNvbnZlcnRlciBjb250ZXh0LlxuICogQHBhcmFtIHJvb3RVcGRhdGVIaWRkZW4gVGhlIHZhbHVlIG9mIHRoZSBVSS5VcGRhdGVIaWRkZW4gYW5ub3RhdGlvbiBvbiB0aGUgZW50aXR5IHNldCAvIHR5cGUuXG4gKiBAcGFyYW0gcm9vdENvbnZlcnRlckNvbnRleHRcbiAqIEBwYXJhbSB1cGRhdGVIaWRkZW5cbiAqIEBwYXJhbSB2aWV3TGV2ZWxcbiAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSAndmlzaWJsZScgcHJvcGVydHkgb2YgdGhlIEVkaXQgYnV0dG9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWRpdEJ1dHRvblZpc2liaWxpdHkoXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdHJvb3RVcGRhdGVIaWRkZW46IFByb3BlcnR5QW5ub3RhdGlvblZhbHVlPGJvb2xlYW4+IHwgdW5kZWZpbmVkLFxuXHRyb290Q29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0dXBkYXRlSGlkZGVuPzogUHJvcGVydHlBbm5vdGF0aW9uVmFsdWU8Ym9vbGVhbj4gfCB1bmRlZmluZWQsXG5cdHZpZXdMZXZlbD86IG51bWJlciB8IHVuZGVmaW5lZFxuKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+IHtcblx0Y29uc3Qgcm9vdEVudGl0eVNldCA9IHJvb3RDb252ZXJ0ZXJDb250ZXh0Py5nZXRFbnRpdHlTZXQoKSxcblx0XHRlbnRpdHlTZXQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldCgpLFxuXHRcdGlzRkNMRW5hYmxlZCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCkuaXNGY2xFbmFibGVkKCk7XG5cdGxldCBpc0RyYWZ0RW5hYmxlZDtcblx0Y29uc3Qgcm9vdFVwZGF0ZUhpZGRlbkV4cHJlc3Npb246IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuIHwgdW5kZWZpbmVkPiA9IGdldEhpZGRlbkV4cHJlc3Npb24oXG5cdFx0cm9vdENvbnZlcnRlckNvbnRleHQsXG5cdFx0cm9vdFVwZGF0ZUhpZGRlblxuXHQpO1xuXHRpZiAodmlld0xldmVsICYmIHZpZXdMZXZlbCA+IDEpIHtcblx0XHQvLyBpZiB2aWV3bGV2ZWwgPiAxIGNoZWNrIGlmIG5vZGUgaXMgZHJhZnQgZW5hYmxlZFxuXHRcdGlzRHJhZnRFbmFibGVkID0gTW9kZWxIZWxwZXIuaXNEcmFmdE5vZGUoZW50aXR5U2V0KTtcblx0fSBlbHNlIHtcblx0XHRpc0RyYWZ0RW5hYmxlZCA9IE1vZGVsSGVscGVyLmlzRHJhZnRSb290KHJvb3RFbnRpdHlTZXQpO1xuXHR9XG5cdGNvbnN0IHVwZGF0ZUhpZGRlbkV4cHJlc3Npb246IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuIHwgdW5kZWZpbmVkPiA9IGdldEhpZGRlbkV4cHJlc3Npb24ocm9vdENvbnZlcnRlckNvbnRleHQsIHVwZGF0ZUhpZGRlbik7XG5cblx0Y29uc3Qgbm90RWRpdGFibGVFeHByZXNzaW9uOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj4gPSBub3QoVUkuSXNFZGl0YWJsZSk7XG5cblx0Ly8gSWYgVUkuVXBkYXRlSGlkZGVuIGFubm90YXRpb24gb24gZW50aXR5IHNldCBvciB0eXBlIGlzIGVpdGhlciBub3QgZGVmaW5lZCBvciBleHBsaWNpdGx5IHNldCB0byBmYWxzZSxcblx0Ly8gRWRpdCBidXR0b24gaXMgdmlzaWJsZSBpbiBkaXNwbGF5IG1vZGUuXG5cdC8vIGVsc2UsXG5cdC8vIEVkaXQgYnV0dG9uIGlzIHZpc2libGUgYmFzZWQgb24gYm90aCBhbm5vdGF0aW9uIHBhdGggYW5kIGluIGRpc3BsYXkgbW9kZS5cblx0Y29uc3QgcmVzdWx0YW50RXhwcmVzc2lvbjogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+ID0gaWZFbHNlKFxuXHRcdCh2aWV3TGV2ZWwgYXMgbnVtYmVyKSA+IDEsXG5cdFx0aWZFbHNlKFxuXHRcdFx0dXBkYXRlSGlkZGVuID09PSB1bmRlZmluZWQgfHwgdXBkYXRlSGlkZGVuLnZhbHVlT2YoKSA9PT0gZmFsc2UsXG5cdFx0XHRhbmQoXG5cdFx0XHRcdG5vdEVkaXRhYmxlRXhwcmVzc2lvbixcblx0XHRcdFx0ZXF1YWwocGF0aEluTW9kZWwoXCJyb290RWRpdFZpc2libGVcIiwgXCJpbnRlcm5hbFwiKSwgdHJ1ZSksXG5cdFx0XHRcdGlmRWxzZShpc0ZDTEVuYWJsZWQsIGVxdWFsKHBhdGhJbk1vZGVsKFwiL3Nob3dFZGl0QnV0dG9uXCIsIFwiZmNsaGVscGVyXCIpLCB0cnVlKSwgdHJ1ZSlcblx0XHRcdCksXG5cdFx0XHRhbmQoXG5cdFx0XHRcdG5vdEVkaXRhYmxlRXhwcmVzc2lvbixcblx0XHRcdFx0ZXF1YWwodXBkYXRlSGlkZGVuRXhwcmVzc2lvbiwgZmFsc2UpLFxuXHRcdFx0XHRlcXVhbChwYXRoSW5Nb2RlbChcInJvb3RFZGl0VmlzaWJsZVwiLCBcImludGVybmFsXCIpLCB0cnVlKSxcblx0XHRcdFx0aWZFbHNlKGlzRkNMRW5hYmxlZCwgZXF1YWwocGF0aEluTW9kZWwoXCIvc2hvd0VkaXRCdXR0b25cIiwgXCJmY2xoZWxwZXJcIiksIHRydWUpLCB0cnVlKVxuXHRcdFx0KVxuXHRcdCksXG5cdFx0aWZFbHNlKFxuXHRcdFx0cm9vdFVwZGF0ZUhpZGRlbiA9PT0gdW5kZWZpbmVkIHx8IHJvb3RVcGRhdGVIaWRkZW4udmFsdWVPZigpID09PSBmYWxzZSxcblx0XHRcdG5vdEVkaXRhYmxlRXhwcmVzc2lvbixcblx0XHRcdGFuZChub3RFZGl0YWJsZUV4cHJlc3Npb24sIGVxdWFsKHJvb3RVcGRhdGVIaWRkZW5FeHByZXNzaW9uLCBmYWxzZSkpXG5cdFx0KVxuXHQpO1xuXHRyZXR1cm4gaWZFbHNlKGlzRHJhZnRFbmFibGVkLCBhbmQocmVzdWx0YW50RXhwcmVzc2lvbiwgRHJhZnQuSGFzTm9EcmFmdEZvckN1cnJlbnRVc2VyKSwgcmVzdWx0YW50RXhwcmVzc2lvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIaWRkZW5FeHByZXNzaW9uKGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsIHVwZGF0ZUhpZGRlbjogUHJvcGVydHlBbm5vdGF0aW9uVmFsdWU8Ym9vbGVhbj4gfCB1bmRlZmluZWQpIHtcblx0Y29uc3QgZGF0YU1vZGVsT2JqZWN0UGF0aCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLFxuXHRcdHZpc2l0ZWROYXZpZ2F0aW9uUGF0aHMgPSBkYXRhTW9kZWxPYmplY3RQYXRoLm5hdmlnYXRpb25Qcm9wZXJ0aWVzLm1hcCgobmF2UHJvcCkgPT4gbmF2UHJvcC5uYW1lKSxcblx0XHQvLyBTZXQgYWJzb2x1dGUgYmluZGluZyBwYXRoIGZvciBTaW5nbGV0b24gcmVmZXJlbmNlcywgb3RoZXJ3aXNlIHRoZSBjb25maWd1cmVkIGFubm90YXRpb24gcGF0aCBpdHNlbGYuXG5cdFx0Ly8gRm9yIGUuZy4gL2NvbS5zYXAubmFtZXNwYWNlLkVudGl0eUNvbnRhaW5lci9TaW5nbGV0b24vUHJvcGVydHkgdG8gL1NpbmdsZXRvbi9Qcm9wZXJ0eVxuXHRcdHVwZGF0ZUhpZGRlbkV4cHJlc3Npb246IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuIHwgdW5kZWZpbmVkPiA9IGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihcblx0XHRcdHVwZGF0ZUhpZGRlbixcblx0XHRcdHZpc2l0ZWROYXZpZ2F0aW9uUGF0aHMsXG5cdFx0XHR1bmRlZmluZWQsXG5cdFx0XHQocGF0aDogc3RyaW5nKSA9PiBzaW5nbGV0b25QYXRoVmlzaXRvcihwYXRoLCBjb252ZXJ0ZXJDb250ZXh0LmdldENvbnZlcnRlZFR5cGVzKCksIHZpc2l0ZWROYXZpZ2F0aW9uUGF0aHMpXG5cdFx0KTtcblx0cmV0dXJuIHVwZGF0ZUhpZGRlbkV4cHJlc3Npb247XG59XG4vKipcbiAqIE1ldGhvZCB0byBkZXRlcm1pbmUgdGhlICdlbmFibGVkJyBwcm9wZXJ0eSBiaW5kaW5nIGZvciB0aGUgRWRpdCBidXR0b24gb24gYW4gb2JqZWN0IHBhZ2UuXG4gKlxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHQgSW5zdGFuY2Ugb2YgdGhlIGNvbnZlcnRlciBjb250ZXh0LlxuICogQHBhcmFtIHVwZGF0ZVJlc3RyaWN0aW9uc1xuICogQHBhcmFtIHZpZXdMZXZlbFxuICogQHJldHVybnMgVGhlIGJpbmRpbmcgZXhwcmVzc2lvbiBmb3IgdGhlICdlbmFibGVkJyBwcm9wZXJ0eSBvZiB0aGUgRWRpdCBidXR0b24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFZGl0QnV0dG9uRW5hYmxlZChcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0dXBkYXRlUmVzdHJpY3Rpb25zPzogYW55LFxuXHR2aWV3TGV2ZWw/OiBudW1iZXIgfCB1bmRlZmluZWRcbik6IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIHtcblx0Y29uc3QgZW50aXR5U2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKSxcblx0XHRpc0RyYWZ0Um9vdCA9IE1vZGVsSGVscGVyLmlzRHJhZnRSb290KGVudGl0eVNldCksXG5cdFx0aXNTdGlja3kgPSBNb2RlbEhlbHBlci5pc1N0aWNreShlbnRpdHlTZXQpO1xuXHRsZXQgZWRpdEFjdGlvbk5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0aWYgKGlzRHJhZnRSb290ICYmIGlzRW50aXR5U2V0KGVudGl0eVNldCkpIHtcblx0XHRlZGl0QWN0aW9uTmFtZSA9IGVudGl0eVNldC5hbm5vdGF0aW9ucy5Db21tb24/LkRyYWZ0Um9vdD8uRWRpdEFjdGlvbiBhcyBzdHJpbmc7XG5cdH0gZWxzZSBpZiAoaXNTdGlja3kgJiYgaXNFbnRpdHlTZXQoZW50aXR5U2V0KSkge1xuXHRcdGVkaXRBY3Rpb25OYW1lID0gZW50aXR5U2V0LmFubm90YXRpb25zLlNlc3Npb24/LlN0aWNreVNlc3Npb25TdXBwb3J0ZWQ/LkVkaXRBY3Rpb24gYXMgc3RyaW5nO1xuXHR9XG5cdGlmIChlZGl0QWN0aW9uTmFtZSkge1xuXHRcdGNvbnN0IGVkaXRBY3Rpb25Bbm5vdGF0aW9uUGF0aCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0QWJzb2x1dGVBbm5vdGF0aW9uUGF0aChlZGl0QWN0aW9uTmFtZSk7XG5cdFx0Y29uc3QgZWRpdEFjdGlvbiA9IGNvbnZlcnRlckNvbnRleHQucmVzb2x2ZUFic29sdXRlUGF0aChlZGl0QWN0aW9uQW5ub3RhdGlvblBhdGgpLnRhcmdldCBhcyBBY3Rpb24gfCBudWxsO1xuXHRcdGlmIChlZGl0QWN0aW9uPy5hbm5vdGF0aW9ucz8uQ29yZT8uT3BlcmF0aW9uQXZhaWxhYmxlID09PSBudWxsKSB7XG5cdFx0XHQvLyBXZSBkaXNhYmxlZCBhY3Rpb24gYWR2ZXJ0aXNlbWVudCBidXQga2VwdCBpdCBpbiB0aGUgY29kZSBmb3IgdGhlIHRpbWUgYmVpbmdcblx0XHRcdC8vcmV0dXJuIFwiez0gJHsjXCIgKyBlZGl0QWN0aW9uTmFtZSArIFwifSA/IHRydWUgOiBmYWxzZSB9XCI7XG5cdFx0fSBlbHNlIGlmICgodmlld0xldmVsIGFzIG51bWJlcikgPiAxKSB7XG5cdFx0XHQvLyBFZGl0IGJ1dHRvbiBpcyBlbmFibGVkIGJhc2VkIG9uIHRoZSB1cGRhdGUgcmVzdHJpY3Rpb25zIG9mIHRoZSBzdWItT1Bcblx0XHRcdGlmICh1cGRhdGVSZXN0cmljdGlvbnMgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRyZXR1cm4gY29tcGlsZUV4cHJlc3Npb24oXG5cdFx0XHRcdFx0YW5kKFxuXHRcdFx0XHRcdFx0ZXF1YWwoZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKHVwZGF0ZVJlc3RyaWN0aW9ucyksIHRydWUpLFxuXHRcdFx0XHRcdFx0ZXF1YWwocGF0aEluTW9kZWwoXCJyb290RWRpdEVuYWJsZWRcIiwgXCJpbnRlcm5hbFwiKSwgdHJ1ZSlcblx0XHRcdFx0XHQpXG5cdFx0XHRcdCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRyZXR1cm4gY29tcGlsZUV4cHJlc3Npb24oZXF1YWwocGF0aEluTW9kZWwoXCJyb290RWRpdEVuYWJsZWRcIiwgXCJpbnRlcm5hbFwiKSwgdHJ1ZSkpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gZ2V0RW5hYmxlZEZvckFubm90YXRpb25BY3Rpb24oY29udmVydGVyQ29udGV4dCwgZWRpdEFjdGlvbiA/PyB1bmRlZmluZWQpO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gXCJ0cnVlXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIZWFkZXJEZWZhdWx0QWN0aW9ucyhjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogQmFzZUFjdGlvbltdIHtcblx0Y29uc3Qgc0NvbnRleHRQYXRoID0gY29udmVydGVyQ29udGV4dC5nZXRDb250ZXh0UGF0aCgpO1xuXHRjb25zdCByb290RW50aXR5U2V0UGF0aCA9IE1vZGVsSGVscGVyLmdldFJvb3RFbnRpdHlTZXRQYXRoKHNDb250ZXh0UGF0aCk7XG5cdGNvbnN0IHJvb3RDb252ZXJ0ZXJDb250ZXh0ID0gY29udmVydGVyQ29udGV4dC5nZXRDb252ZXJ0ZXJDb250ZXh0Rm9yKFwiL1wiICsgcm9vdEVudGl0eVNldFBhdGgpO1xuXHRjb25zdCBlbnRpdHlTZXQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldCgpLFxuXHRcdGVudGl0eVR5cGUgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKSxcblx0XHRyb290RW50aXR5U2V0ID0gcm9vdENvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KCksXG5cdFx0cm9vdEVudGl0eVR5cGUgPSByb290Q29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCksXG5cdFx0c3RpY2t5U2Vzc2lvblN1cHBvcnRlZCA9IE1vZGVsSGVscGVyLmdldFN0aWNreVNlc3Npb24ocm9vdEVudGl0eVNldCksIC8vZm9yIHN0aWNreSBhcHBcblx0XHRkcmFmdFJvb3QgPSBNb2RlbEhlbHBlci5nZXREcmFmdFJvb3Qocm9vdEVudGl0eVNldCksIC8vZW50aXR5U2V0ICYmIGVudGl0eVNldC5hbm5vdGF0aW9ucy5Db21tb24/LkRyYWZ0Um9vdCxcblx0XHRkcmFmdE5vZGUgPSBNb2RlbEhlbHBlci5nZXREcmFmdE5vZGUocm9vdEVudGl0eVNldCksXG5cdFx0ZW50aXR5RGVsZXRlUmVzdHJpY3Rpb25zID0gZW50aXR5U2V0ICYmIGVudGl0eVNldC5hbm5vdGF0aW9ucz8uQ2FwYWJpbGl0aWVzPy5EZWxldGVSZXN0cmljdGlvbnMsXG5cdFx0cm9vdFVwZGF0ZUhpZGRlbiA9IE1vZGVsSGVscGVyLmlzVXBkYXRlSGlkZGVuKHJvb3RFbnRpdHlTZXQsIHJvb3RFbnRpdHlUeXBlKSxcblx0XHR1cGRhdGVIaWRkZW4gPSByb290RW50aXR5U2V0ICYmIGlzRW50aXR5U2V0KHJvb3RFbnRpdHlTZXQpICYmIHJvb3RVcGRhdGVIaWRkZW4/LnZhbHVlT2YoKSxcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoID0gY29udmVydGVyQ29udGV4dC5nZXREYXRhTW9kZWxPYmplY3RQYXRoKCksXG5cdFx0aXNQYXJlbnREZWxldGFibGUgPSBpc1BhdGhEZWxldGFibGUoZGF0YU1vZGVsT2JqZWN0UGF0aCwge1xuXHRcdFx0cGF0aFZpc2l0b3I6IChwYXRoOiBzdHJpbmcsIG5hdmlnYXRpb25QYXRoczogc3RyaW5nW10pID0+XG5cdFx0XHRcdHNpbmdsZXRvblBhdGhWaXNpdG9yKHBhdGgsIGNvbnZlcnRlckNvbnRleHQuZ2V0Q29udmVydGVkVHlwZXMoKSwgbmF2aWdhdGlvblBhdGhzKVxuXHRcdH0pLFxuXHRcdHBhcmVudEVudGl0eVNldERlbGV0YWJsZSA9IGlzUGFyZW50RGVsZXRhYmxlID8gY29tcGlsZUV4cHJlc3Npb24oaXNQYXJlbnREZWxldGFibGUpIDogaXNQYXJlbnREZWxldGFibGUsXG5cdFx0aWRlbnRpZmljYXRpb25GaWVsZEZvckFjdGlvbnMgPSBnZXRJZGVudGlmaWNhdGlvbkRhdGFGaWVsZEZvckFjdGlvbnMoY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCksIGZhbHNlKTtcblxuXHRjb25zdCBjb3B5RGF0YUZpZWxkID1cblx0XHRjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpLmdldFZpZXdMZXZlbCgpID09PSAxXG5cdFx0XHQ/IGdldENvcHlBY3Rpb24oXG5cdFx0XHRcdFx0aWRlbnRpZmljYXRpb25GaWVsZEZvckFjdGlvbnMuZmlsdGVyKChkYXRhRmllbGQpID0+IHtcblx0XHRcdFx0XHRcdHJldHVybiBkYXRhRmllbGRJc0NvcHlBY3Rpb24oZGF0YUZpZWxkKTtcblx0XHRcdFx0XHR9KVxuXHRcdFx0ICApXG5cdFx0XHQ6IHVuZGVmaW5lZDtcblxuXHRjb25zdCBoZWFkZXJEYXRhRmllbGRGb3JBY3Rpb25zID0gaWRlbnRpZmljYXRpb25GaWVsZEZvckFjdGlvbnMuZmlsdGVyKChkYXRhRmllbGQpID0+IHtcblx0XHRyZXR1cm4gIWRhdGFGaWVsZElzQ29weUFjdGlvbihkYXRhRmllbGQpO1xuXHR9KTtcblxuXHQvLyBJbml0aWFsaXplIGFjdGlvbnMgYW5kIHN0YXJ0IHdpdGggZHJhZnQgYWN0aW9ucyBpZiBhdmFpbGFibGUgc2luY2UgdGhleSBzaG91bGQgYXBwZWFyIGluIHRoZSBmaXJzdFxuXHQvLyBsZWZ0bW9zdCBwb3NpdGlvbiBpbiB0aGUgYWN0aW9ucyBhcmVhIG9mIHRoZSBPUCBoZWFkZXJcblx0Ly8gVGhpcyBpcyBtb3JlIGxpa2UgYSBwbGFjZWhvbGRlciB0aGFuIGEgc2luZ2xlIGFjdGlvbiwgc2luY2UgdGhpcyBjb250cm9scyBub3Qgb25seSB0aGUgdGVtcGxhdGluZyBvZlxuXHQvLyB0aGUgYnV0dG9uIGZvciBzd2l0Y2hpbmcgYmV0d2VlbiBkcmFmdCBhbmQgYWN0aXZlIGRvY3VtZW50IHZlcnNpb25zIGJ1dCBhbHNvIHRoZSBjb250cm9scyBmb3Jcblx0Ly8gdGhlIGNvbGxhYm9yYXRpdmUgZHJhZnQgZnJhZ21lbnQuXG5cdGNvbnN0IGhlYWRlckFjdGlvbnM6IEJhc2VBY3Rpb25bXSA9IFtdO1xuXHRpZiAoaXNFbnRpdHlTZXQoZW50aXR5U2V0KSAmJiBkcmFmdFJvb3Q/LkVkaXRBY3Rpb24gJiYgdXBkYXRlSGlkZGVuICE9PSB0cnVlKSB7XG5cdFx0aGVhZGVyQWN0aW9ucy5wdXNoKHsgdHlwZTogQWN0aW9uVHlwZS5EcmFmdEFjdGlvbnMsIGtleTogXCJEcmFmdEFjdGlvbnNcIiB9KTtcblx0fVxuXG5cdGNvbnN0IHZpZXdMZXZlbCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCkuZ2V0Vmlld0xldmVsKCk7XG5cdGNvbnN0IHVwZGF0YWJsZVByb3BlcnR5UGF0aCA9IHZpZXdMZXZlbCA+IDEgPyBlbnRpdHlTZXQ/LmFubm90YXRpb25zLkNhcGFiaWxpdGllcz8uVXBkYXRlUmVzdHJpY3Rpb25zPy5VcGRhdGFibGUgOiB1bmRlZmluZWQ7XG5cdGlmIChkcmFmdFJvb3QgfHwgZHJhZnROb2RlKSB7XG5cdFx0aGVhZGVyQWN0aW9ucy5wdXNoKHsgdHlwZTogQWN0aW9uVHlwZS5Db2xsYWJvcmF0aW9uQXZhdGFycywga2V5OiBcIkNvbGxhYm9yYXRpb25BdmF0YXJzXCIgfSk7XG5cdH1cblx0Ly8gVGhlbiBhZGQgdGhlIFwiQ3JpdGljYWxcIiBEYXRhRmllbGRGb3JBY3Rpb25zXG5cdGhlYWRlckRhdGFGaWVsZEZvckFjdGlvbnNcblx0XHQuZmlsdGVyKChkYXRhRmllbGQpID0+IHtcblx0XHRcdHJldHVybiBJTVBPUlRBTlRfQ1JJVElDQUxJVElFUy5pbmRleE9mKGRhdGFGaWVsZD8uQ3JpdGljYWxpdHkgYXMgc3RyaW5nKSA+IC0xO1xuXHRcdH0pXG5cdFx0LmZvckVhY2goKGRhdGFGaWVsZCkgPT4ge1xuXHRcdFx0aGVhZGVyQWN0aW9ucy5wdXNoKGdldERhdGFGaWVsZEFubm90YXRpb25BY3Rpb24oZGF0YUZpZWxkLCBjb252ZXJ0ZXJDb250ZXh0KSk7XG5cdFx0fSk7XG5cblx0Ly8gVGhlbiB0aGUgZWRpdCBhY3Rpb24gaWYgaXQgZXhpc3RzXG5cdGlmICgoZHJhZnRSb290Py5FZGl0QWN0aW9uIHx8IHN0aWNreVNlc3Npb25TdXBwb3J0ZWQ/LkVkaXRBY3Rpb24pICYmIHVwZGF0ZUhpZGRlbiAhPT0gdHJ1ZSkge1xuXHRcdGhlYWRlckFjdGlvbnMucHVzaCh7XG5cdFx0XHR0eXBlOiBBY3Rpb25UeXBlLlByaW1hcnksXG5cdFx0XHRrZXk6IFwiRWRpdEFjdGlvblwiLFxuXHRcdFx0dmlzaWJsZTogY29tcGlsZUV4cHJlc3Npb24oXG5cdFx0XHRcdGdldEVkaXRCdXR0b25WaXNpYmlsaXR5KFxuXHRcdFx0XHRcdGNvbnZlcnRlckNvbnRleHQsXG5cdFx0XHRcdFx0cm9vdFVwZGF0ZUhpZGRlbixcblx0XHRcdFx0XHRyb290Q29udmVydGVyQ29udGV4dCxcblx0XHRcdFx0XHRNb2RlbEhlbHBlci5pc1VwZGF0ZUhpZGRlbihlbnRpdHlTZXQsIGVudGl0eVR5cGUpLFxuXHRcdFx0XHRcdHZpZXdMZXZlbFxuXHRcdFx0XHQpXG5cdFx0XHQpLFxuXHRcdFx0ZW5hYmxlZDogZ2V0RWRpdEJ1dHRvbkVuYWJsZWQocm9vdENvbnZlcnRlckNvbnRleHQsIHVwZGF0YWJsZVByb3BlcnR5UGF0aCwgdmlld0xldmVsKVxuXHRcdH0pO1xuXHR9XG5cdC8vIFRoZW4gdGhlIGRlbGV0ZSBhY3Rpb24gaWYgd2UncmUgbm90IHN0YXRpY2FsbHkgbm90IGRlbGV0YWJsZVxuXHRpZiAoXG5cdFx0KHBhcmVudEVudGl0eVNldERlbGV0YWJsZSAmJiBwYXJlbnRFbnRpdHlTZXREZWxldGFibGUgIT09IFwiZmFsc2VcIikgfHxcblx0XHQoZW50aXR5RGVsZXRlUmVzdHJpY3Rpb25zPy5EZWxldGFibGU/LnZhbHVlT2YoKSAhPT0gZmFsc2UgJiYgcGFyZW50RW50aXR5U2V0RGVsZXRhYmxlICE9PSBcImZhbHNlXCIpXG5cdCkge1xuXHRcdGNvbnN0IGRlbGV0ZUhpZGRlbiA9IE1vZGVsSGVscGVyLmdldERlbGV0ZUhpZGRlbihlbnRpdHlTZXQsIGVudGl0eVR5cGUpIGFzIFByb3BlcnR5QW5ub3RhdGlvblZhbHVlPGJvb2xlYW4+O1xuXHRcdGhlYWRlckFjdGlvbnMucHVzaCh7XG5cdFx0XHR0eXBlOiBBY3Rpb25UeXBlLlNlY29uZGFyeSxcblx0XHRcdGtleTogXCJEZWxldGVBY3Rpb25cIixcblx0XHRcdHZpc2libGU6IGNvbXBpbGVFeHByZXNzaW9uKGdldERlbGV0ZUJ1dHRvblZpc2liaWxpdHkoY29udmVydGVyQ29udGV4dCwgZGVsZXRlSGlkZGVuKSksXG5cdFx0XHRlbmFibGVkOiBjb21waWxlRXhwcmVzc2lvbihnZXREZWxldGVCdXR0b25FbmFibGVkKGVudGl0eURlbGV0ZVJlc3RyaWN0aW9ucz8uRGVsZXRhYmxlLCBpc1BhcmVudERlbGV0YWJsZSwgY29udmVydGVyQ29udGV4dCkpLFxuXHRcdFx0cGFyZW50RW50aXR5RGVsZXRlRW5hYmxlZDogcGFyZW50RW50aXR5U2V0RGVsZXRhYmxlXG5cdFx0fSk7XG5cdH1cblxuXHRpZiAoY29weURhdGFGaWVsZCkge1xuXHRcdGhlYWRlckFjdGlvbnMucHVzaCh7XG5cdFx0XHQuLi5nZXREYXRhRmllbGRBbm5vdGF0aW9uQWN0aW9uKGNvcHlEYXRhRmllbGQsIGNvbnZlcnRlckNvbnRleHQpLFxuXHRcdFx0dHlwZTogQWN0aW9uVHlwZS5Db3B5LFxuXHRcdFx0dGV4dDogY29weURhdGFGaWVsZC5MYWJlbD8udG9TdHJpbmcoKSA/PyBDb3JlLmdldExpYnJhcnlSZXNvdXJjZUJ1bmRsZShcInNhcC5mZS5jb3JlXCIpLmdldFRleHQoXCJDX0NPTU1PTl9DT1BZXCIpXG5cdFx0fSk7XG5cdH1cblxuXHRjb25zdCBoZWFkZXJEYXRhRmllbGRGb3JJQk5BY3Rpb25zID0gZ2V0SWRlbnRpZmljYXRpb25EYXRhRmllbGRGb3JJQk5BY3Rpb25zKGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpLCBmYWxzZSk7XG5cblx0aGVhZGVyRGF0YUZpZWxkRm9ySUJOQWN0aW9uc1xuXHRcdC5maWx0ZXIoKGRhdGFGaWVsZCkgPT4ge1xuXHRcdFx0cmV0dXJuIElNUE9SVEFOVF9DUklUSUNBTElUSUVTLmluZGV4T2YoZGF0YUZpZWxkPy5Dcml0aWNhbGl0eSBhcyBzdHJpbmcpID09PSAtMTtcblx0XHR9KVxuXHRcdC5mb3JFYWNoKChkYXRhRmllbGQpID0+IHtcblx0XHRcdGlmIChkYXRhRmllbGQuUmVxdWlyZXNDb250ZXh0Py52YWx1ZU9mKCkgPT09IHRydWUpIHtcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKGBSZXF1aXJlc0NvbnRleHQgcHJvcGVydHkgc2hvdWxkIG5vdCBiZSB0cnVlIGZvciBoZWFkZXIgSUJOIGFjdGlvbiA6ICR7ZGF0YUZpZWxkLkxhYmVsfWApO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGRhdGFGaWVsZC5JbmxpbmU/LnZhbHVlT2YoKSA9PT0gdHJ1ZSkge1xuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoYElubGluZSBwcm9wZXJ0eSBzaG91bGQgbm90IGJlIHRydWUgZm9yIGhlYWRlciBJQk4gYWN0aW9uIDogJHtkYXRhRmllbGQuTGFiZWx9YCk7XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBvTmF2aWdhdGlvblBhcmFtcyA9IHtcblx0XHRcdFx0c2VtYW50aWNPYmplY3RNYXBwaW5nOiBnZXRTZW1hbnRpY09iamVjdE1hcHBpbmcoZGF0YUZpZWxkLk1hcHBpbmcpXG5cdFx0XHR9O1xuXG5cdFx0XHRoZWFkZXJBY3Rpb25zLnB1c2goe1xuXHRcdFx0XHR0eXBlOiBBY3Rpb25UeXBlLkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbixcblx0XHRcdFx0dGV4dDogZGF0YUZpZWxkLkxhYmVsPy50b1N0cmluZygpLFxuXHRcdFx0XHRhbm5vdGF0aW9uUGF0aDogY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXRCYXNlZEFubm90YXRpb25QYXRoKGRhdGFGaWVsZC5mdWxseVF1YWxpZmllZE5hbWUpLFxuXHRcdFx0XHRidXR0b25UeXBlOiBCdXR0b25UeXBlLkdob3N0LFxuXHRcdFx0XHR2aXNpYmxlOiBjb21waWxlRXhwcmVzc2lvbihcblx0XHRcdFx0XHRhbmQoXG5cdFx0XHRcdFx0XHRub3QoZXF1YWwoZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKGRhdGFGaWVsZC5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbiksIHRydWUpKSxcblx0XHRcdFx0XHRcdG5vdChlcXVhbChwYXRoSW5Nb2RlbChcInNoZWxsTmF2aWdhdGlvbk5vdEF2YWlsYWJsZVwiLCBcImludGVybmFsXCIpLCB0cnVlKSlcblx0XHRcdFx0XHQpXG5cdFx0XHRcdCksXG5cdFx0XHRcdGVuYWJsZWQ6XG5cdFx0XHRcdFx0ZGF0YUZpZWxkLk5hdmlnYXRpb25BdmFpbGFibGUgIT09IHVuZGVmaW5lZFxuXHRcdFx0XHRcdFx0PyBjb21waWxlRXhwcmVzc2lvbihlcXVhbChnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24oZGF0YUZpZWxkLk5hdmlnYXRpb25BdmFpbGFibGU/LnZhbHVlT2YoKSksIHRydWUpKVxuXHRcdFx0XHRcdFx0OiB0cnVlLFxuXHRcdFx0XHRrZXk6IEtleUhlbHBlci5nZW5lcmF0ZUtleUZyb21EYXRhRmllbGQoZGF0YUZpZWxkKSxcblx0XHRcdFx0aXNOYXZpZ2FibGU6IHRydWUsXG5cdFx0XHRcdHByZXNzOiBjb21waWxlRXhwcmVzc2lvbihcblx0XHRcdFx0XHRmbihcIi5faW50ZW50QmFzZWROYXZpZ2F0aW9uLm5hdmlnYXRlXCIsIFtcblx0XHRcdFx0XHRcdGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihkYXRhRmllbGQuU2VtYW50aWNPYmplY3QpLFxuXHRcdFx0XHRcdFx0Z2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKGRhdGFGaWVsZC5BY3Rpb24pLFxuXHRcdFx0XHRcdFx0b05hdmlnYXRpb25QYXJhbXNcblx0XHRcdFx0XHRdKVxuXHRcdFx0XHQpLFxuXHRcdFx0XHRjdXN0b21EYXRhOiBjb21waWxlRXhwcmVzc2lvbih7XG5cdFx0XHRcdFx0c2VtYW50aWNPYmplY3Q6IGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihkYXRhRmllbGQuU2VtYW50aWNPYmplY3QpLFxuXHRcdFx0XHRcdGFjdGlvbjogZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKGRhdGFGaWVsZC5BY3Rpb24pXG5cdFx0XHRcdH0pXG5cdFx0XHR9IGFzIEFubm90YXRpb25BY3Rpb24pO1xuXHRcdH0pO1xuXHQvLyBGaW5hbGx5IHRoZSBub24gY3JpdGljYWwgRGF0YUZpZWxkRm9yQWN0aW9uc1xuXHRoZWFkZXJEYXRhRmllbGRGb3JBY3Rpb25zXG5cdFx0LmZpbHRlcigoZGF0YUZpZWxkKSA9PiB7XG5cdFx0XHRyZXR1cm4gSU1QT1JUQU5UX0NSSVRJQ0FMSVRJRVMuaW5kZXhPZihkYXRhRmllbGQ/LkNyaXRpY2FsaXR5IGFzIHN0cmluZykgPT09IC0xO1xuXHRcdH0pXG5cdFx0LmZvckVhY2goKGRhdGFGaWVsZCkgPT4ge1xuXHRcdFx0aGVhZGVyQWN0aW9ucy5wdXNoKGdldERhdGFGaWVsZEFubm90YXRpb25BY3Rpb24oZGF0YUZpZWxkLCBjb252ZXJ0ZXJDb250ZXh0KSk7XG5cdFx0fSk7XG5cblx0cmV0dXJuIGhlYWRlckFjdGlvbnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIaWRkZW5IZWFkZXJBY3Rpb25zKGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQpOiBCYXNlQWN0aW9uW10ge1xuXHRjb25zdCBlbnRpdHlUeXBlID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCk7XG5cdGNvbnN0IGhpZGRlbkFjdGlvbnMgPSAoZW50aXR5VHlwZS5hbm5vdGF0aW9ucz8uVUk/LklkZW50aWZpY2F0aW9uPy5maWx0ZXIoKGlkZW50aWZpY2F0aW9uRGF0YUZpZWxkKSA9PiB7XG5cdFx0cmV0dXJuIGlkZW50aWZpY2F0aW9uRGF0YUZpZWxkPy5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbj8udmFsdWVPZigpID09PSB0cnVlO1xuXHR9KSB8fCBbXSkgYXMgRGF0YUZpZWxkRm9yQWN0aW9uVHlwZXNbXTtcblx0cmV0dXJuIGhpZGRlbkFjdGlvbnMubWFwKChkYXRhRmllbGQpID0+IHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0dHlwZTogQWN0aW9uVHlwZS5EZWZhdWx0LFxuXHRcdFx0a2V5OiBLZXlIZWxwZXIuZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkKGRhdGFGaWVsZClcblx0XHR9O1xuXHR9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvb3RlckRlZmF1bHRBY3Rpb25zKHZpZXdMZXZlbDogbnVtYmVyLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogQmFzZUFjdGlvbltdIHtcblx0Y29uc3QgZW50aXR5U2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKTtcblx0Y29uc3QgZW50aXR5VHlwZSA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpO1xuXHRjb25zdCBzdGlja3lTZXNzaW9uU3VwcG9ydGVkID0gTW9kZWxIZWxwZXIuZ2V0U3RpY2t5U2Vzc2lvbihlbnRpdHlTZXQpLCAvL2ZvciBzdGlja3kgYXBwXG5cdFx0ZW50aXR5U2V0RHJhZnRSb290ID1cblx0XHRcdGlzRW50aXR5U2V0KGVudGl0eVNldCkgJiZcblx0XHRcdChlbnRpdHlTZXQuYW5ub3RhdGlvbnMuQ29tbW9uPy5EcmFmdFJvb3Q/LnRlcm0gPz8gZW50aXR5U2V0LmFubm90YXRpb25zLlNlc3Npb24/LlN0aWNreVNlc3Npb25TdXBwb3J0ZWQ/LnRlcm0pLFxuXHRcdGNvbmRpdGlvblNhdmUgPSBCb29sZWFuKFxuXHRcdFx0ZW50aXR5U2V0RHJhZnRSb290ID09PSBDb21tb25Bbm5vdGF0aW9uVGVybXMuRHJhZnRSb290IHx8IChzdGlja3lTZXNzaW9uU3VwcG9ydGVkICYmIHN0aWNreVNlc3Npb25TdXBwb3J0ZWQ/LlNhdmVBY3Rpb24pXG5cdFx0KSxcblx0XHRjb25kaXRpb25BcHBseSA9IHZpZXdMZXZlbCA+IDEsXG5cdFx0Y29uZGl0aW9uQ2FuY2VsID0gQm9vbGVhbihcblx0XHRcdGVudGl0eVNldERyYWZ0Um9vdCA9PT0gQ29tbW9uQW5ub3RhdGlvblRlcm1zLkRyYWZ0Um9vdCB8fCAoc3RpY2t5U2Vzc2lvblN1cHBvcnRlZCAmJiBzdGlja3lTZXNzaW9uU3VwcG9ydGVkPy5EaXNjYXJkQWN0aW9uKVxuXHRcdCk7XG5cblx0Ly8gUmV0cmlldmUgYWxsIGRldGVybWluaW5nIGFjdGlvbnNcblx0Y29uc3QgZm9vdGVyRGF0YUZpZWxkRm9yQWN0aW9ucyA9IGdldElkZW50aWZpY2F0aW9uRGF0YUZpZWxkRm9yQWN0aW9ucyhjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKSwgdHJ1ZSk7XG5cblx0Ly8gRmlyc3QgYWRkIHRoZSBcIkNyaXRpY2FsXCIgRGF0YUZpZWxkRm9yQWN0aW9uc1xuXHRjb25zdCBmb290ZXJBY3Rpb25zOiBCYXNlQWN0aW9uW10gPSBmb290ZXJEYXRhRmllbGRGb3JBY3Rpb25zXG5cdFx0LmZpbHRlcigoZGF0YUZpZWxkKSA9PiB7XG5cdFx0XHRyZXR1cm4gSU1QT1JUQU5UX0NSSVRJQ0FMSVRJRVMuaW5kZXhPZihkYXRhRmllbGQ/LkNyaXRpY2FsaXR5IGFzIHN0cmluZykgPiAtMTtcblx0XHR9KVxuXHRcdC5tYXAoKGRhdGFGaWVsZCkgPT4ge1xuXHRcdFx0cmV0dXJuIGdldERhdGFGaWVsZEFubm90YXRpb25BY3Rpb24oZGF0YUZpZWxkLCBjb252ZXJ0ZXJDb250ZXh0KTtcblx0XHR9KTtcblxuXHQvLyBUaGVuIHRoZSBzYXZlIGFjdGlvbiBpZiBpdCBleGlzdHNcblx0aWYgKGVudGl0eVNldD8uZW50aXR5VHlwZU5hbWUgPT09IGVudGl0eVR5cGU/LmZ1bGx5UXVhbGlmaWVkTmFtZSAmJiBjb25kaXRpb25TYXZlKSB7XG5cdFx0Zm9vdGVyQWN0aW9ucy5wdXNoKHsgdHlwZTogQWN0aW9uVHlwZS5QcmltYXJ5LCBrZXk6IFwiU2F2ZUFjdGlvblwiIH0pO1xuXHR9XG5cblx0Ly8gVGhlbiB0aGUgYXBwbHkgYWN0aW9uIGlmIGl0IGV4aXN0c1xuXHRpZiAoY29uZGl0aW9uQXBwbHkpIHtcblx0XHRmb290ZXJBY3Rpb25zLnB1c2goeyB0eXBlOiBBY3Rpb25UeXBlLkRlZmF1bHRBcHBseSwga2V5OiBcIkFwcGx5QWN0aW9uXCIgfSk7XG5cdH1cblxuXHQvLyBUaGVuIHRoZSBub24gY3JpdGljYWwgRGF0YUZpZWxkRm9yQWN0aW9uc1xuXHRmb290ZXJEYXRhRmllbGRGb3JBY3Rpb25zXG5cdFx0LmZpbHRlcigoZGF0YUZpZWxkKSA9PiB7XG5cdFx0XHRyZXR1cm4gSU1QT1JUQU5UX0NSSVRJQ0FMSVRJRVMuaW5kZXhPZihkYXRhRmllbGQ/LkNyaXRpY2FsaXR5IGFzIHN0cmluZykgPT09IC0xO1xuXHRcdH0pXG5cdFx0LmZvckVhY2goKGRhdGFGaWVsZCkgPT4ge1xuXHRcdFx0Zm9vdGVyQWN0aW9ucy5wdXNoKGdldERhdGFGaWVsZEFubm90YXRpb25BY3Rpb24oZGF0YUZpZWxkLCBjb252ZXJ0ZXJDb250ZXh0KSk7XG5cdFx0fSk7XG5cblx0Ly8gVGhlbiB0aGUgY2FuY2VsIGFjdGlvbiBpZiBpdCBleGlzdHNcblx0aWYgKGNvbmRpdGlvbkNhbmNlbCkge1xuXHRcdGZvb3RlckFjdGlvbnMucHVzaCh7XG5cdFx0XHR0eXBlOiBBY3Rpb25UeXBlLlNlY29uZGFyeSxcblx0XHRcdGtleTogXCJDYW5jZWxBY3Rpb25cIixcblx0XHRcdHBvc2l0aW9uOiB7IHBsYWNlbWVudDogUGxhY2VtZW50LkVuZCB9XG5cdFx0fSk7XG5cdH1cblx0cmV0dXJuIGZvb3RlckFjdGlvbnM7XG59XG5cbmZ1bmN0aW9uIGdldERhdGFGaWVsZEFubm90YXRpb25BY3Rpb24oZGF0YUZpZWxkOiBEYXRhRmllbGRGb3JBY3Rpb25UeXBlcywgY29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCk6IEFubm90YXRpb25BY3Rpb24ge1xuXHRyZXR1cm4ge1xuXHRcdHR5cGU6IEFjdGlvblR5cGUuRGF0YUZpZWxkRm9yQWN0aW9uLFxuXHRcdGFubm90YXRpb25QYXRoOiBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgoZGF0YUZpZWxkLmZ1bGx5UXVhbGlmaWVkTmFtZSksXG5cdFx0a2V5OiBLZXlIZWxwZXIuZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkKGRhdGFGaWVsZCksXG5cdFx0dmlzaWJsZTogY29tcGlsZUV4cHJlc3Npb24obm90KGVxdWFsKGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihkYXRhRmllbGQuYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4pLCB0cnVlKSkpLFxuXHRcdGVuYWJsZWQ6IGdldEVuYWJsZWRGb3JBbm5vdGF0aW9uQWN0aW9uKGNvbnZlcnRlckNvbnRleHQsIGRhdGFGaWVsZC5BY3Rpb25UYXJnZXQpLFxuXHRcdGlzTmF2aWdhYmxlOiB0cnVlXG5cdH0gYXMgQW5ub3RhdGlvbkFjdGlvbjtcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBbUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ08sU0FBU0Esb0NBQW9DLENBQUNDLFVBQXNCLEVBQUVDLG1CQUE0QixFQUE2QjtJQUFBO0lBQ3JJLE9BQVEsMEJBQUFELFVBQVUsQ0FBQ0UsV0FBVyxvRkFBdEIsc0JBQXdCQyxFQUFFLHFGQUExQix1QkFBNEJDLGNBQWMsMkRBQTFDLHVCQUE0Q0MsTUFBTSxDQUFFQyx1QkFBdUIsSUFBSztNQUFBO01BQ3ZGLE9BQU8sMEJBQUFBLHVCQUF1QixDQUFDSixXQUFXLG9GQUFuQyxzQkFBcUNDLEVBQUUscUZBQXZDLHVCQUF5Q0ksTUFBTSwyREFBL0MsdUJBQWlEQyxPQUFPLEVBQUUsTUFBSyxJQUFJLElBQ3pFRix1QkFBdUIsQ0FBQ0csS0FBSyxvREFBeUMsSUFDdEVDLE9BQU8sMkJBQUNKLHVCQUF1QixDQUFDSyxXQUFXLDJEQUFuQyx1QkFBcUNILE9BQU8sRUFBRSxDQUFDLEtBQUtQLG1CQUFtQixLQUM5RSwyQkFBQUssdUJBQXVCLENBQUNNLFlBQVkscUZBQXBDLHVCQUFzQ0MsT0FBTywyREFBN0MsdUJBQStDTCxPQUFPLEVBQUUsTUFBSyxJQUFJLElBQ2pFLENBQUFGLHVCQUF1QixhQUF2QkEsdUJBQXVCLGlEQUF2QkEsdUJBQXVCLENBQUVNLFlBQVkscUZBQXJDLHVCQUF1Q1YsV0FBVyxxRkFBbEQsdUJBQW9EWSxJQUFJLHNGQUF4RCx1QkFBMERDLGtCQUFrQiw0REFBNUUsd0JBQThFUCxPQUFPLEVBQUUsTUFBSyxLQUFLLENBQUMsR0FDakcsSUFBSSxHQUNKLEtBQUs7SUFDVCxDQUFDLENBQUMs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
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2023 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/fe/core/converters/controls/Common/Action","sap/fe/core/converters/helpers/ConfigurableObject","sap/fe/core/converters/helpers/Key","sap/fe/core/helpers/BindingToolkit","sap/fe/core/helpers/ModelHelper","sap/fe/core/templating/DataModelPathHelper","sap/ui/core/Core","../helpers/BindingHelper","../ManifestSettings"],function(e,t,i,n,o,a,l,r,d){"use strict";var
|
|
5
|
+
sap.ui.define(["sap/fe/core/converters/controls/Common/Action","sap/fe/core/converters/helpers/ConfigurableObject","sap/fe/core/converters/helpers/Key","sap/fe/core/helpers/BindingToolkit","sap/fe/core/helpers/ModelHelper","sap/fe/core/helpers/TypeGuards","sap/fe/core/templating/DataModelPathHelper","sap/ui/core/Core","../helpers/BindingHelper","../ManifestSettings"],function(e,t,i,n,o,a,l,r,d,v){"use strict";var s={};var u=v.ActionType;var c=d.UI;var f=d.singletonPathVisitor;var p=d.Draft;var y=l.isPathDeletable;var g=a.isEntitySet;var b=n.pathInModel;var E=n.not;var h=n.ifElse;var A=n.getExpressionFromAnnotation;var m=n.fn;var D=n.equal;var C=n.constant;var I=n.compileExpression;var O=n.and;var S=i.KeyHelper;var T=t.Placement;var P=e.getSemanticObjectMapping;var B=e.getEnabledForAnnotationAction;var F=e.getCopyAction;var N=e.dataFieldIsCopyAction;var U=e.ButtonType;function H(e,t){var i,n,o;return((i=e.annotations)===null||i===void 0?void 0:(n=i.UI)===null||n===void 0?void 0:(o=n.Identification)===null||o===void 0?void 0:o.filter(e=>{var i,n,o,a,l,r,d,v,s,u;return((i=e.annotations)===null||i===void 0?void 0:(n=i.UI)===null||n===void 0?void 0:(o=n.Hidden)===null||o===void 0?void 0:o.valueOf())!==true&&e.$Type==="com.sap.vocabularies.UI.v1.DataFieldForAction"&&Boolean((a=e.Determining)===null||a===void 0?void 0:a.valueOf())===t&&(((l=e.ActionTarget)===null||l===void 0?void 0:(r=l.isBound)===null||r===void 0?void 0:r.valueOf())!==true||(e===null||e===void 0?void 0:(d=e.ActionTarget)===null||d===void 0?void 0:(v=d.annotations)===null||v===void 0?void 0:(s=v.Core)===null||s===void 0?void 0:(u=s.OperationAvailable)===null||u===void 0?void 0:u.valueOf())!==false)?true:false}))||[]}s.getIdentificationDataFieldForActions=H;function M(e,t){var i,n,o;return((i=e.annotations)===null||i===void 0?void 0:(n=i.UI)===null||n===void 0?void 0:(o=n.Identification)===null||o===void 0?void 0:o.filter(e=>{var i,n,o,a;return((i=e.annotations)===null||i===void 0?void 0:(n=i.UI)===null||n===void 0?void 0:(o=n.Hidden)===null||o===void 0?void 0:o.valueOf())!==true&&e.$Type==="com.sap.vocabularies.UI.v1.DataFieldForIntentBasedNavigation"&&Boolean((a=e.Determining)===null||a===void 0?void 0:a.valueOf())===t?true:false}))||[]}const k=["UI.CriticalityType/VeryPositive","UI.CriticalityType/Positive","UI.CriticalityType/Negative","UI.CriticalityType/VeryNegative"];s.IMPORTANT_CRITICALITIES=k;function R(e,t){const i=e.getDataModelObjectPath(),n=i.navigationProperties.map(e=>e.name),o=A(t,n,undefined,t=>f(t,e.getConvertedTypes(),[])),a=e.getManifestWrapper(),l=a.getViewLevel(),r=l>1?c.IsEditable:E(c.IsEditable);return h(t===undefined||t.valueOf()===false,r,O(r,D(o,false)))}s.getDeleteButtonVisibility=R;function x(e,t,i){const n=i.getEntitySet(),a=o.isDraftRoot(n);let l=h(t!==undefined,t,h(e!==undefined,D(A(e),true),C(true)));l=a?O(l,E(b("DraftAdministrativeData/InProcessByUser"))):l;return l}s.getDeleteButtonEnabled=x;function V(e,t,i,n,a){const l=i===null||i===void 0?void 0:i.getEntitySet(),r=e.getEntitySet(),d=e.getManifestWrapper().isFclEnabled();let v;const s=j(i,t);if(a&&a>1){v=o.isDraftNode(r)}else{v=o.isDraftRoot(l)}const u=j(i,n);const f=E(c.IsEditable);const y=h(a>1,h(n===undefined||n.valueOf()===false,O(f,D(b("rootEditVisible","internal"),true),h(d,D(b("/showEditButton","fclhelper"),true),true)),O(f,D(u,false),D(b("rootEditVisible","internal"),true),h(d,D(b("/showEditButton","fclhelper"),true),true))),h(t===undefined||t.valueOf()===false,f,O(f,D(s,false))));return h(v,O(y,p.HasNoDraftForCurrentUser),y)}s.getEditButtonVisibility=V;function j(e,t){const i=e.getDataModelObjectPath(),n=i.navigationProperties.map(e=>e.name),o=A(t,n,undefined,t=>f(t,e.getConvertedTypes(),n));return o}s.getHiddenExpression=j;function w(e,t,i){const n=e.getEntitySet(),a=o.isDraftRoot(n),l=o.isSticky(n);let r;if(a&&g(n)){var d,v;r=(d=n.annotations.Common)===null||d===void 0?void 0:(v=d.DraftRoot)===null||v===void 0?void 0:v.EditAction}else if(l&&g(n)){var s,u;r=(s=n.annotations.Session)===null||s===void 0?void 0:(u=s.StickySessionSupported)===null||u===void 0?void 0:u.EditAction}if(r){var c,f;const n=e.getAbsoluteAnnotationPath(r);const o=e.resolveAbsolutePath(n).target;if((o===null||o===void 0?void 0:(c=o.annotations)===null||c===void 0?void 0:(f=c.Core)===null||f===void 0?void 0:f.OperationAvailable)===null){}else if(i>1){if(t!==undefined){return I(O(D(A(t),true),D(b("rootEditEnabled","internal"),true)))}else{return I(D(b("rootEditEnabled","internal"),true))}}else{return B(e,o??undefined)}}return"true"}s.getEditButtonEnabled=w;function L(e){var t,i,n,a,l;const d=e.getContextPath();const v=o.getRootEntitySetPath(d);const s=e.getConverterContextFor("/"+v);const c=e.getEntitySet(),p=e.getEntityType(),h=s.getEntitySet(),C=s.getEntityType(),T=o.getStickySession(h),B=o.getDraftRoot(h),j=o.getDraftNode(h),L=c&&((t=c.annotations)===null||t===void 0?void 0:(i=t.Capabilities)===null||i===void 0?void 0:i.DeleteRestrictions),K=o.isUpdateHidden(h,C),W=h&&g(h)&&(K===null||K===void 0?void 0:K.valueOf()),_=e.getDataModelObjectPath(),q=y(_,{pathVisitor:(t,i)=>f(t,e.getConvertedTypes(),i)}),Q=q?I(q):q,G=H(e.getEntityType(),false);const Y=e.getManifestWrapper().getViewLevel()===1?F(G.filter(e=>N(e))):undefined;const z=G.filter(e=>!N(e));const J=[];if(g(c)&&B!==null&&B!==void 0&&B.EditAction&&W!==true){J.push({type:u.DraftActions,key:"DraftActions"})}const X=e.getManifestWrapper().getViewLevel();const Z=X>1?c===null||c===void 0?void 0:(n=c.annotations.Capabilities)===null||n===void 0?void 0:(a=n.UpdateRestrictions)===null||a===void 0?void 0:a.Updatable:undefined;if(B||j){J.push({type:u.CollaborationAvatars,key:"CollaborationAvatars"})}z.filter(e=>k.indexOf(e===null||e===void 0?void 0:e.Criticality)>-1).forEach(t=>{J.push($(t,e))});if((B!==null&&B!==void 0&&B.EditAction||T!==null&&T!==void 0&&T.EditAction)&&W!==true){J.push({type:u.Primary,key:"EditAction",visible:I(V(e,K,s,o.isUpdateHidden(c,p),X)),enabled:w(s,Z,X)})}if(Q&&Q!=="false"||(L===null||L===void 0?void 0:(l=L.Deletable)===null||l===void 0?void 0:l.valueOf())!==false&&Q!=="false"){const t=o.getDeleteHidden(c,p);J.push({type:u.Secondary,key:"DeleteAction",visible:I(R(e,t)),enabled:I(x(L===null||L===void 0?void 0:L.Deletable,q,e)),parentEntityDeleteEnabled:Q})}if(Y){var ee;J.push({...$(Y,e),type:u.Copy,text:((ee=Y.Label)===null||ee===void 0?void 0:ee.toString())??r.getLibraryResourceBundle("sap.fe.core").getText("C_COMMON_COPY")})}const te=M(e.getEntityType(),false);te.filter(e=>k.indexOf(e===null||e===void 0?void 0:e.Criticality)===-1).forEach(t=>{var i,n,o,a,l,r;if(((i=t.RequiresContext)===null||i===void 0?void 0:i.valueOf())===true){throw new Error(`RequiresContext property should not be true for header IBN action : ${t.Label}`)}if(((n=t.Inline)===null||n===void 0?void 0:n.valueOf())===true){throw new Error(`Inline property should not be true for header IBN action : ${t.Label}`)}const d={semanticObjectMapping:P(t.Mapping)};J.push({type:u.DataFieldForIntentBasedNavigation,text:(o=t.Label)===null||o===void 0?void 0:o.toString(),annotationPath:e.getEntitySetBasedAnnotationPath(t.fullyQualifiedName),buttonType:U.Ghost,visible:I(O(E(D(A((a=t.annotations)===null||a===void 0?void 0:(l=a.UI)===null||l===void 0?void 0:l.Hidden),true)),E(D(b("shellNavigationNotAvailable","internal"),true)))),enabled:t.NavigationAvailable!==undefined?I(D(A((r=t.NavigationAvailable)===null||r===void 0?void 0:r.valueOf()),true)):true,key:S.generateKeyFromDataField(t),isNavigable:true,press:I(m("._intentBasedNavigation.navigate",[A(t.SemanticObject),A(t.Action),d])),customData:I({semanticObject:A(t.SemanticObject),action:A(t.Action)})})});z.filter(e=>k.indexOf(e===null||e===void 0?void 0:e.Criticality)===-1).forEach(t=>{J.push($(t,e))});return J}s.getHeaderDefaultActions=L;function K(e){var t,i,n;const o=e.getEntityType();const a=((t=o.annotations)===null||t===void 0?void 0:(i=t.UI)===null||i===void 0?void 0:(n=i.Identification)===null||n===void 0?void 0:n.filter(e=>{var t,i,n;return(e===null||e===void 0?void 0:(t=e.annotations)===null||t===void 0?void 0:(i=t.UI)===null||i===void 0?void 0:(n=i.Hidden)===null||n===void 0?void 0:n.valueOf())===true}))||[];return a.map(e=>({type:u.Default,key:S.generateKeyFromDataField(e)}))}s.getHiddenHeaderActions=K;function W(e,t){var i,n,a,l;const r=t.getEntitySet();const d=t.getEntityType();const v=o.getStickySession(r),s=g(r)&&(((i=r.annotations.Common)===null||i===void 0?void 0:(n=i.DraftRoot)===null||n===void 0?void 0:n.term)??((a=r.annotations.Session)===null||a===void 0?void 0:(l=a.StickySessionSupported)===null||l===void 0?void 0:l.term)),c=Boolean(s==="com.sap.vocabularies.Common.v1.DraftRoot"||v&&(v===null||v===void 0?void 0:v.SaveAction)),f=e>1,p=Boolean(s==="com.sap.vocabularies.Common.v1.DraftRoot"||v&&(v===null||v===void 0?void 0:v.DiscardAction));const y=H(t.getEntityType(),true);const b=y.filter(e=>k.indexOf(e===null||e===void 0?void 0:e.Criticality)>-1).map(e=>$(e,t));if((r===null||r===void 0?void 0:r.entityTypeName)===(d===null||d===void 0?void 0:d.fullyQualifiedName)&&c){b.push({type:u.Primary,key:"SaveAction"})}if(f){b.push({type:u.DefaultApply,key:"ApplyAction"})}y.filter(e=>k.indexOf(e===null||e===void 0?void 0:e.Criticality)===-1).forEach(e=>{b.push($(e,t))});if(p){b.push({type:u.Secondary,key:"CancelAction",position:{placement:T.End}})}return b}s.getFooterDefaultActions=W;function $(e,t){var i,n;return{type:u.DataFieldForAction,annotationPath:t.getEntitySetBasedAnnotationPath(e.fullyQualifiedName),key:S.generateKeyFromDataField(e),visible:I(E(D(A((i=e.annotations)===null||i===void 0?void 0:(n=i.UI)===null||n===void 0?void 0:n.Hidden),true))),enabled:B(t,e.ActionTarget),isNavigable:true}}return s},false);
|
|
6
6
|
//# sourceMappingURL=HeaderAndFooterAction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeaderAndFooterAction.js","names":["sap","ui","define","Action","ConfigurableObject","Key","BindingToolkit","ModelHelper","DataModelPathHelper","Core","BindingHelper","ManifestSettings","_exports","ActionType","UI","singletonPathVisitor","Draft","isPathDeletable","pathInModel","not","ifElse","getExpressionFromAnnotation","fn","equal","constant","compileExpression","and","KeyHelper","Placement","getSemanticObjectMapping","getEnabledForAnnotationAction","getCopyAction","dataFieldIsCopyAction","ButtonType","getIdentificationDataFieldForActions","entityType","isDeterminingAction","_entityType$annotatio","_entityType$annotatio2","_entityType$annotatio3","annotations","Identification","filter","identificationDataField","_identificationDataFi","_identificationDataFi2","_identificationDataFi3","_identificationDataFi4","_identificationDataFi5","_identificationDataFi6","_identificationDataFi7","_identificationDataFi8","_identificationDataFi9","_identificationDataFi10","Hidden","valueOf","$Type","Boolean","Determining","ActionTarget","isBound","OperationAvailable","getIdentificationDataFieldForIBNActions","_entityType$annotatio4","_entityType$annotatio5","_entityType$annotatio6","_identificationDataFi11","_identificationDataFi12","_identificationDataFi13","_identificationDataFi14","IMPORTANT_CRITICALITIES","getDeleteButtonVisibility","converterContext","deleteHidden","dataModelObjectPath","getDataModelObjectPath","visitedNavigationPaths","navigationProperties","map","navProp","name","deleteHiddenExpression","undefined","path","getConvertedTypes","manifestWrapper","getManifestWrapper","viewLevel","getViewLevel","editableExpression","IsEditable","getDeleteButtonEnabled","isDeletable","isParentDeletable","entitySet","getEntitySet","isDraftRoot","ret","getEditButtonVisibility","rootUpdateHidden","rootConverterContext","updateHidden","rootEntitySet","isFCLEnabled","isFclEnabled","isDraftEnabled","rootUpdateHiddenExpression","getHiddenExpression","isDraftNode","updateHiddenExpression","notEditableExpression","resultantExpression","HasNoDraftForCurrentUser","getEditButtonEnabled","updateRestrictions","isSticky","editActionName","isSingleton","_annotations$Common","_annotations$Common$D","Common","DraftRoot","EditAction","_annotations$Session","_annotations$Session$","Session","StickySessionSupported","_editAction$annotatio","_editAction$annotatio2","editActionAnnotationPath","getAbsoluteAnnotationPath","editAction","resolveAbsolutePath","target","getHeaderDefaultActions","_entitySet$annotation","_entitySet$annotation2","_entitySet$annotation3","_entitySet$annotation4","_entityDeleteRestrict","sContextPath","getContextPath","rootEntitySetPath","getRootEntitySetPath","getConverterContextFor","getEntityType","rootEntityType","stickySessionSupported","getStickySession","draftRoot","getDraftRoot","draftNode","getDraftNode","entityDeleteRestrictions","Capabilities","DeleteRestrictions","isUpdateHidden","pathVisitor","navigationPaths","parentEntitySetDeletable","identificationFieldForActions","copyDataField","dataField","headerDataFieldForActions","headerActions","push","type","DraftActions","key","updatablePropertyPath","UpdateRestrictions","Updatable","CollaborationAvatars","indexOf","Criticality","forEach","getDataFieldAnnotationAction","Primary","visible","enabled","Deletable","getDeleteHidden","Secondary","parentEntityDeleteEnabled","_copyDataField$Label","Copy","text","Label","toString","getLibraryResourceBundle","getText","headerDataFieldForIBNActions","_dataField$RequiresCo","_dataField$Inline","_dataField$Label","_dataField$annotation","_dataField$annotation2","_dataField$Navigation","RequiresContext","Error","Inline","oNavigationParams","semanticObjectMapping","Mapping","DataFieldForIntentBasedNavigation","annotationPath","getEntitySetBasedAnnotationPath","fullyQualifiedName","buttonType","Ghost","NavigationAvailable","generateKeyFromDataField","isNavigable","press","SemanticObject","customData","semanticObject","action","getHiddenHeaderActions","_entityType$annotatio7","_entityType$annotatio8","_entityType$annotatio9","hiddenActions","_identificationDataFi15","_identificationDataFi16","_identificationDataFi17","Default","getFooterDefaultActions","_entitySet$annotation5","_entitySet$annotation6","_entitySet$annotation7","_entitySet$annotation8","_entitySet$annotation9","entitySetDraftRoot","term","conditionSave","SaveAction","conditionApply","conditionCancel","DiscardAction","footerDataFieldForActions","footerActions","entityTypeName","DefaultApply","position","placement","End","_dataField$annotation3","_dataField$annotation4","DataFieldForAction"],"sources":["HeaderAndFooterAction-dbg.js"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HeaderAndFooterAction.js","names":["sap","ui","define","Action","ConfigurableObject","Key","BindingToolkit","ModelHelper","TypeGuards","DataModelPathHelper","Core","BindingHelper","ManifestSettings","_exports","ActionType","UI","singletonPathVisitor","Draft","isPathDeletable","isEntitySet","pathInModel","not","ifElse","getExpressionFromAnnotation","fn","equal","constant","compileExpression","and","KeyHelper","Placement","getSemanticObjectMapping","getEnabledForAnnotationAction","getCopyAction","dataFieldIsCopyAction","ButtonType","getIdentificationDataFieldForActions","entityType","isDeterminingAction","_entityType$annotatio","_entityType$annotatio2","_entityType$annotatio3","annotations","Identification","filter","identificationDataField","_identificationDataFi","_identificationDataFi2","_identificationDataFi3","_identificationDataFi4","_identificationDataFi5","_identificationDataFi6","_identificationDataFi7","_identificationDataFi8","_identificationDataFi9","_identificationDataFi10","Hidden","valueOf","$Type","Boolean","Determining","ActionTarget","isBound","OperationAvailable","getIdentificationDataFieldForIBNActions","_entityType$annotatio4","_entityType$annotatio5","_entityType$annotatio6","_identificationDataFi11","_identificationDataFi12","_identificationDataFi13","_identificationDataFi14","IMPORTANT_CRITICALITIES","getDeleteButtonVisibility","converterContext","deleteHidden","dataModelObjectPath","getDataModelObjectPath","visitedNavigationPaths","navigationProperties","map","navProp","name","deleteHiddenExpression","undefined","path","getConvertedTypes","manifestWrapper","getManifestWrapper","viewLevel","getViewLevel","editableExpression","IsEditable","getDeleteButtonEnabled","isDeletable","isParentDeletable","entitySet","getEntitySet","isDraftRoot","ret","getEditButtonVisibility","rootUpdateHidden","rootConverterContext","updateHidden","rootEntitySet","isFCLEnabled","isFclEnabled","isDraftEnabled","rootUpdateHiddenExpression","getHiddenExpression","isDraftNode","updateHiddenExpression","notEditableExpression","resultantExpression","HasNoDraftForCurrentUser","getEditButtonEnabled","updateRestrictions","isSticky","editActionName","_entitySet$annotation","_entitySet$annotation2","Common","DraftRoot","EditAction","_entitySet$annotation3","_entitySet$annotation4","Session","StickySessionSupported","_editAction$annotatio","_editAction$annotatio2","editActionAnnotationPath","getAbsoluteAnnotationPath","editAction","resolveAbsolutePath","target","getHeaderDefaultActions","_entitySet$annotation5","_entitySet$annotation6","_entitySet$annotation7","_entitySet$annotation8","_entityDeleteRestrict","sContextPath","getContextPath","rootEntitySetPath","getRootEntitySetPath","getConverterContextFor","getEntityType","rootEntityType","stickySessionSupported","getStickySession","draftRoot","getDraftRoot","draftNode","getDraftNode","entityDeleteRestrictions","Capabilities","DeleteRestrictions","isUpdateHidden","pathVisitor","navigationPaths","parentEntitySetDeletable","identificationFieldForActions","copyDataField","dataField","headerDataFieldForActions","headerActions","push","type","DraftActions","key","updatablePropertyPath","UpdateRestrictions","Updatable","CollaborationAvatars","indexOf","Criticality","forEach","getDataFieldAnnotationAction","Primary","visible","enabled","Deletable","getDeleteHidden","Secondary","parentEntityDeleteEnabled","_copyDataField$Label","Copy","text","Label","toString","getLibraryResourceBundle","getText","headerDataFieldForIBNActions","_dataField$RequiresCo","_dataField$Inline","_dataField$Label","_dataField$annotation","_dataField$annotation2","_dataField$Navigation","RequiresContext","Error","Inline","oNavigationParams","semanticObjectMapping","Mapping","DataFieldForIntentBasedNavigation","annotationPath","getEntitySetBasedAnnotationPath","fullyQualifiedName","buttonType","Ghost","NavigationAvailable","generateKeyFromDataField","isNavigable","press","SemanticObject","customData","semanticObject","action","getHiddenHeaderActions","_entityType$annotatio7","_entityType$annotatio8","_entityType$annotatio9","hiddenActions","_identificationDataFi15","_identificationDataFi16","_identificationDataFi17","Default","getFooterDefaultActions","_entitySet$annotation9","_entitySet$annotation10","_entitySet$annotation11","_entitySet$annotation12","entitySetDraftRoot","term","conditionSave","SaveAction","conditionApply","conditionCancel","DiscardAction","footerDataFieldForActions","footerActions","entityTypeName","DefaultApply","position","placement","End","_dataField$annotation3","_dataField$annotation4","DataFieldForAction"],"sources":["HeaderAndFooterAction-dbg.js"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Action,
|
|
1
|
+
import type { Action, EntityType, PropertyAnnotationValue } from "@sap-ux/vocabularies-types";
|
|
2
2
|
import { CommonAnnotationTerms } from "@sap-ux/vocabularies-types/vocabularies/Common";
|
|
3
3
|
import type { DataFieldForActionTypes, DataFieldForIntentBasedNavigationTypes } from "@sap-ux/vocabularies-types/vocabularies/UI";
|
|
4
4
|
import { UIAnnotationTypes } from "@sap-ux/vocabularies-types/vocabularies/UI";
|
|
@@ -26,6 +26,7 @@ import {
|
|
|
26
26
|
pathInModel
|
|
27
27
|
} from "sap/fe/core/helpers/BindingToolkit";
|
|
28
28
|
import ModelHelper from "sap/fe/core/helpers/ModelHelper";
|
|
29
|
+
import { isEntitySet } from "sap/fe/core/helpers/TypeGuards";
|
|
29
30
|
import { isPathDeletable } from "sap/fe/core/templating/DataModelPathHelper";
|
|
30
31
|
import Core from "sap/ui/core/Core";
|
|
31
32
|
import type ConverterContext from "../ConverterContext";
|
|
@@ -141,7 +142,7 @@ export function getDeleteButtonEnabled(
|
|
|
141
142
|
let ret = ifElse(
|
|
142
143
|
isParentDeletable !== undefined,
|
|
143
144
|
isParentDeletable,
|
|
144
|
-
ifElse(isDeletable !== undefined, equal(isDeletable, true), constant(true))
|
|
145
|
+
ifElse(isDeletable !== undefined, equal(getExpressionFromAnnotation(isDeletable), true), constant(true))
|
|
145
146
|
);
|
|
146
147
|
|
|
147
148
|
// delete should be disabled for Locked objects
|
|
@@ -244,10 +245,10 @@ export function getEditButtonEnabled(
|
|
|
244
245
|
isDraftRoot = ModelHelper.isDraftRoot(entitySet),
|
|
245
246
|
isSticky = ModelHelper.isSticky(entitySet);
|
|
246
247
|
let editActionName: string | undefined;
|
|
247
|
-
if (isDraftRoot &&
|
|
248
|
-
editActionName =
|
|
249
|
-
} else if (isSticky &&
|
|
250
|
-
editActionName =
|
|
248
|
+
if (isDraftRoot && isEntitySet(entitySet)) {
|
|
249
|
+
editActionName = entitySet.annotations.Common?.DraftRoot?.EditAction as string;
|
|
250
|
+
} else if (isSticky && isEntitySet(entitySet)) {
|
|
251
|
+
editActionName = entitySet.annotations.Session?.StickySessionSupported?.EditAction as string;
|
|
251
252
|
}
|
|
252
253
|
if (editActionName) {
|
|
253
254
|
const editActionAnnotationPath = converterContext.getAbsoluteAnnotationPath(editActionName);
|
|
@@ -287,7 +288,7 @@ export function getHeaderDefaultActions(converterContext: ConverterContext): Bas
|
|
|
287
288
|
draftNode = ModelHelper.getDraftNode(rootEntitySet),
|
|
288
289
|
entityDeleteRestrictions = entitySet && entitySet.annotations?.Capabilities?.DeleteRestrictions,
|
|
289
290
|
rootUpdateHidden = ModelHelper.isUpdateHidden(rootEntitySet, rootEntityType),
|
|
290
|
-
updateHidden = rootEntitySet &&
|
|
291
|
+
updateHidden = rootEntitySet && isEntitySet(rootEntitySet) && rootUpdateHidden?.valueOf(),
|
|
291
292
|
dataModelObjectPath = converterContext.getDataModelObjectPath(),
|
|
292
293
|
isParentDeletable = isPathDeletable(dataModelObjectPath, {
|
|
293
294
|
pathVisitor: (path: string, navigationPaths: string[]) =>
|
|
@@ -315,7 +316,7 @@ export function getHeaderDefaultActions(converterContext: ConverterContext): Bas
|
|
|
315
316
|
// the button for switching between draft and active document versions but also the controls for
|
|
316
317
|
// the collaborative draft fragment.
|
|
317
318
|
const headerActions: BaseAction[] = [];
|
|
318
|
-
if (
|
|
319
|
+
if (isEntitySet(entitySet) && draftRoot?.EditAction && updateHidden !== true) {
|
|
319
320
|
headerActions.push({ type: ActionType.DraftActions, key: "DraftActions" });
|
|
320
321
|
}
|
|
321
322
|
|
|
@@ -450,9 +451,8 @@ export function getFooterDefaultActions(viewLevel: number, converterContext: Con
|
|
|
450
451
|
const entityType = converterContext.getEntityType();
|
|
451
452
|
const stickySessionSupported = ModelHelper.getStickySession(entitySet), //for sticky app
|
|
452
453
|
entitySetDraftRoot =
|
|
453
|
-
|
|
454
|
-
entitySet
|
|
455
|
-
(entitySet.annotations.Common?.DraftRoot?.term || entitySet.annotations?.Session?.StickySessionSupported?.term),
|
|
454
|
+
isEntitySet(entitySet) &&
|
|
455
|
+
(entitySet.annotations.Common?.DraftRoot?.term ?? entitySet.annotations.Session?.StickySessionSupported?.term),
|
|
456
456
|
conditionSave = Boolean(
|
|
457
457
|
entitySetDraftRoot === CommonAnnotationTerms.DraftRoot || (stickySessionSupported && stickySessionSupported?.SaveAction)
|
|
458
458
|
),
|