@sapui5/sap.fe.core 1.124.2 → 1.126.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 +5 -1
- package/src/sap/fe/core/ActionRuntime.js +2 -2
- package/src/sap/fe/core/ActionRuntime.ts +4 -4
- package/src/sap/fe/core/AppComponent.js +2 -2
- package/src/sap/fe/core/AppComponent.ts +1 -1
- package/src/sap/fe/core/AppStateHandler.js +2 -2
- package/src/sap/fe/core/AppStateHandler.ts +1 -1
- package/src/sap/fe/core/BaseController.js +2 -2
- package/src/sap/fe/core/BaseController.ts +1 -1
- package/src/sap/fe/core/CommonUtils.js +3 -3
- package/src/sap/fe/core/CommonUtils.ts +12 -15
- package/src/sap/fe/core/ExtensionAPI.js +2 -2
- package/src/sap/fe/core/ExtensionAPI.ts +4 -3
- package/src/sap/fe/core/PageController.js +2 -2
- package/src/sap/fe/core/PageController.ts +1 -1
- package/src/sap/fe/core/ResourceModel.js +2 -2
- package/src/sap/fe/core/ResourceModel.ts +1 -1
- package/src/sap/fe/core/ReuseComponent.js +172 -0
- package/src/sap/fe/core/ReuseComponent.ts +165 -0
- package/src/sap/fe/core/TemplateComponent.js +2 -2
- package/src/sap/fe/core/TemplateComponent.ts +5 -1
- package/src/sap/fe/core/TemplateModel.js +2 -2
- package/src/sap/fe/core/TemplateModel.ts +1 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js +92 -6
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.ts +90 -10
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.js +1 -1
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.ts +1 -1
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.js +30 -3
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.ts +28 -4
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.js +10 -16
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.ts +19 -16
- package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlockFragment.js +3 -3
- package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlockFragment.ts +5 -5
- package/src/sap/fe/core/controllerextensions/BaseControllerExtension.js +2 -2
- package/src/sap/fe/core/controllerextensions/BaseControllerExtension.ts +1 -1
- package/src/sap/fe/core/controllerextensions/CollaborativeDraft.js +17 -5
- package/src/sap/fe/core/controllerextensions/CollaborativeDraft.ts +14 -6
- package/src/sap/fe/core/controllerextensions/ContextSharing.js +2 -2
- package/src/sap/fe/core/controllerextensions/ContextSharing.ts +1 -1
- package/src/sap/fe/core/controllerextensions/EditFlow.js +57 -43
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +61 -46
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +2 -2
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +1 -1
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +8 -11
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +8 -16
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +10 -7
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +5 -5
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +22 -18
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +28 -23
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +4 -4
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +4 -1
- package/src/sap/fe/core/controllerextensions/PageReady.js +21 -15
- package/src/sap/fe/core/controllerextensions/PageReady.ts +29 -20
- package/src/sap/fe/core/controllerextensions/Paginator.js +2 -2
- package/src/sap/fe/core/controllerextensions/Paginator.ts +1 -1
- package/src/sap/fe/core/controllerextensions/Placeholder.js +12 -6
- package/src/sap/fe/core/controllerextensions/Placeholder.ts +15 -1
- package/src/sap/fe/core/controllerextensions/Recommendations.js +26 -8
- package/src/sap/fe/core/controllerextensions/Recommendations.ts +29 -3
- package/src/sap/fe/core/controllerextensions/Routing.js +5 -7
- package/src/sap/fe/core/controllerextensions/Routing.ts +4 -4
- package/src/sap/fe/core/controllerextensions/Share.js +4 -4
- package/src/sap/fe/core/controllerextensions/Share.ts +10 -6
- package/src/sap/fe/core/controllerextensions/SideEffects.js +20 -5
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +22 -2
- package/src/sap/fe/core/controllerextensions/Telemetry.js +2 -2
- package/src/sap/fe/core/controllerextensions/Telemetry.ts +1 -1
- package/src/sap/fe/core/controllerextensions/ViewState.js +79 -81
- package/src/sap/fe/core/controllerextensions/ViewState.ts +117 -105
- package/src/sap/fe/core/controllerextensions/cards/CollaborationManager.js +3 -3
- package/src/sap/fe/core/controllerextensions/cards/CollaborationManager.ts +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +2 -2
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +2 -2
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js +17 -8
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.tsx +8 -2
- package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +10 -9
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +15 -10
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +2 -2
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +130 -158
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +240 -275
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +2 -2
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +1 -1
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +46 -28
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +60 -32
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +2 -2
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +1 -1
- package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributor.js +2 -2
- package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributor.ts +27 -3
- package/src/sap/fe/core/controls/CommandExecution.js +2 -2
- package/src/sap/fe/core/controls/CommandExecution.ts +2 -2
- package/src/sap/fe/core/controls/ComponentLoader.js +3 -3
- package/src/sap/fe/core/controls/ComponentLoader.ts +2 -2
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js +3 -3
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.tsx +2 -2
- package/src/sap/fe/core/controls/EventDelegateHook.js +2 -2
- package/src/sap/fe/core/controls/EventDelegateHook.ts +2 -2
- package/src/sap/fe/core/controls/FormElementWrapper.js +51 -6
- package/src/sap/fe/core/controls/FormElementWrapper.ts +43 -2
- package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.js +3 -3
- package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.tsx +3 -3
- package/src/sap/fe/core/converters/ConverterContext.js +4 -2
- package/src/sap/fe/core/converters/ConverterContext.ts +5 -2
- package/src/sap/fe/core/converters/ManifestSettings.js +8 -2
- package/src/sap/fe/core/converters/ManifestSettings.ts +25 -3
- package/src/sap/fe/core/converters/ManifestWrapper.js +12 -3
- package/src/sap/fe/core/converters/ManifestWrapper.ts +11 -1
- package/src/sap/fe/core/converters/MetaModelConverter.js +7 -6
- package/src/sap/fe/core/converters/MetaModelConverter.ts +6 -2
- package/src/sap/fe/core/converters/annotations/DataField.js +56 -16
- package/src/sap/fe/core/converters/annotations/DataField.ts +74 -25
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +19 -18
- package/src/sap/fe/core/converters/controls/Common/Action.js +5 -5
- package/src/sap/fe/core/converters/controls/Common/Action.ts +14 -14
- package/src/sap/fe/core/converters/controls/Common/Chart.js +40 -7
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +56 -20
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +8 -11
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +23 -27
- package/src/sap/fe/core/converters/controls/Common/Form.js +10 -3
- package/src/sap/fe/core/converters/controls/Common/Form.ts +13 -4
- package/src/sap/fe/core/converters/controls/Common/KPI.js +3 -2
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +6 -2
- package/src/sap/fe/core/converters/controls/Common/Table.js +137 -48
- package/src/sap/fe/core/converters/controls/Common/Table.ts +174 -52
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +73 -21
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +91 -20
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +4 -4
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +2 -2
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +2 -2
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +2 -2
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +3 -3
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +17 -16
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +18 -17
- package/src/sap/fe/core/converters/helpers/InsightsHelpers.js +2 -2
- package/src/sap/fe/core/converters/helpers/InsightsHelpers.ts +1 -1
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +9 -9
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +12 -12
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +13 -7
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +12 -5
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +9 -73
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +4 -74
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +5 -10
- package/src/sap/fe/core/designtime/AppComponent.designtime.ts +3 -12
- package/src/sap/fe/core/formatters/CriticalityFormatter.js +4 -7
- package/src/sap/fe/core/formatters/CriticalityFormatter.ts +3 -3
- package/src/sap/fe/core/formatters/FiscalFormat.js +5 -3
- package/src/sap/fe/core/formatters/FiscalFormat.ts +4 -2
- package/src/sap/fe/core/formatters/StandardFormatter.js +2 -2
- package/src/sap/fe/core/formatters/StandardFormatter.ts +3 -3
- package/src/sap/fe/core/fpm/Component.js +3 -3
- package/src/sap/fe/core/fpm/Component.ts +3 -3
- package/src/sap/fe/core/fpm/manifest.json +1 -1
- package/src/sap/fe/core/helpers/AdaptiveCardExpressionCompiler.js +2 -2
- package/src/sap/fe/core/helpers/AdaptiveCardExpressionCompiler.ts +1 -1
- package/src/sap/fe/core/helpers/BindingHelper.js +2 -2
- package/src/sap/fe/core/helpers/BindingHelper.ts +2 -2
- package/src/sap/fe/core/helpers/BindingToolkitEvaluator.js +2 -2
- package/src/sap/fe/core/helpers/BindingToolkitEvaluator.ts +2 -2
- package/src/sap/fe/core/helpers/DeleteHelper.js +7 -4
- package/src/sap/fe/core/helpers/DeleteHelper.ts +9 -3
- package/src/sap/fe/core/helpers/MetaModelFunction.js +5 -5
- package/src/sap/fe/core/helpers/MetaModelFunction.ts +2 -2
- package/src/sap/fe/core/helpers/MetaPath.js +9 -3
- package/src/sap/fe/core/helpers/MetaPath.ts +8 -2
- package/src/sap/fe/core/helpers/ModelHelper.js +149 -3
- package/src/sap/fe/core/helpers/ModelHelper.ts +202 -6
- package/src/sap/fe/core/helpers/StandardRecommendationHelper.js +3 -3
- package/src/sap/fe/core/helpers/StandardRecommendationHelper.ts +2 -2
- package/src/sap/fe/core/helpers/TitleHelper.js +4 -4
- package/src/sap/fe/core/helpers/TitleHelper.ts +4 -4
- package/src/sap/fe/core/library.js +4 -4
- package/src/sap/fe/core/library.ts +2 -1
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +11 -3
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +10 -2
- package/src/sap/fe/core/messagebundle.properties +8 -57
- package/src/sap/fe/core/messagebundle_ar.properties +2 -0
- package/src/sap/fe/core/messagebundle_bg.properties +2 -0
- package/src/sap/fe/core/messagebundle_ca.properties +2 -0
- package/src/sap/fe/core/messagebundle_cnr.properties +2 -0
- package/src/sap/fe/core/messagebundle_cs.properties +2 -0
- package/src/sap/fe/core/messagebundle_cy.properties +4 -2
- package/src/sap/fe/core/messagebundle_da.properties +2 -0
- package/src/sap/fe/core/messagebundle_de.properties +2 -0
- package/src/sap/fe/core/messagebundle_el.properties +2 -0
- package/src/sap/fe/core/messagebundle_en.properties +6 -57
- package/src/sap/fe/core/messagebundle_en_GB.properties +2 -0
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +3 -36
- package/src/sap/fe/core/messagebundle_es.properties +2 -0
- package/src/sap/fe/core/messagebundle_es_MX.properties +2 -0
- package/src/sap/fe/core/messagebundle_et.properties +2 -0
- package/src/sap/fe/core/messagebundle_fi.properties +2 -0
- package/src/sap/fe/core/messagebundle_fr.properties +2 -0
- package/src/sap/fe/core/messagebundle_fr_CA.properties +3 -1
- package/src/sap/fe/core/messagebundle_hi.properties +2 -0
- package/src/sap/fe/core/messagebundle_hr.properties +2 -0
- package/src/sap/fe/core/messagebundle_hu.properties +3 -1
- package/src/sap/fe/core/messagebundle_id.properties +2 -0
- package/src/sap/fe/core/messagebundle_it.properties +2 -0
- package/src/sap/fe/core/messagebundle_iw.properties +3 -1
- package/src/sap/fe/core/messagebundle_ja.properties +2 -0
- package/src/sap/fe/core/messagebundle_kk.properties +2 -0
- package/src/sap/fe/core/messagebundle_ko.properties +2 -0
- package/src/sap/fe/core/messagebundle_lt.properties +2 -0
- package/src/sap/fe/core/messagebundle_lv.properties +2 -0
- package/src/sap/fe/core/messagebundle_mk.properties +2 -0
- package/src/sap/fe/core/messagebundle_ms.properties +2 -0
- package/src/sap/fe/core/messagebundle_nl.properties +2 -0
- package/src/sap/fe/core/messagebundle_no.properties +2 -0
- package/src/sap/fe/core/messagebundle_pl.properties +2 -0
- package/src/sap/fe/core/messagebundle_pt.properties +2 -0
- package/src/sap/fe/core/messagebundle_pt_PT.properties +2 -0
- package/src/sap/fe/core/messagebundle_ro.properties +2 -0
- package/src/sap/fe/core/messagebundle_ru.properties +2 -0
- package/src/sap/fe/core/messagebundle_sh.properties +64 -62
- package/src/sap/fe/core/messagebundle_sk.properties +2 -0
- package/src/sap/fe/core/messagebundle_sl.properties +2 -0
- package/src/sap/fe/core/messagebundle_sr.properties +2 -0
- package/src/sap/fe/core/messagebundle_sv.properties +2 -0
- package/src/sap/fe/core/messagebundle_th.properties +2 -0
- package/src/sap/fe/core/messagebundle_tr.properties +2 -0
- package/src/sap/fe/core/messagebundle_uk.properties +3 -1
- package/src/sap/fe/core/messagebundle_vi.properties +2 -0
- package/src/sap/fe/core/messagebundle_zh_CN.properties +2 -0
- package/src/sap/fe/core/messagebundle_zh_TW.properties +2 -0
- package/src/sap/fe/core/operationsHelper.js +3 -3
- package/src/sap/fe/core/operationsHelper.ts +2 -2
- package/src/sap/fe/core/rootView/Fcl.controller.js +3 -3
- package/src/sap/fe/core/rootView/Fcl.controller.ts +2 -2
- package/src/sap/fe/core/rootView/NavContainer.controller.js +2 -2
- package/src/sap/fe/core/rootView/NavContainer.controller.ts +1 -1
- package/src/sap/fe/core/rootView/RootViewBaseController.js +114 -92
- package/src/sap/fe/core/rootView/RootViewBaseController.ts +120 -106
- package/src/sap/fe/core/services/CollaborativeToolsServiceFactory.js +2 -2
- package/src/sap/fe/core/services/CollaborativeToolsServiceFactory.ts +1 -1
- package/src/sap/fe/core/services/NavigationServiceFactory.js +6 -4
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +4 -3
- package/src/sap/fe/core/services/RoutingServiceFactory.js +2 -2
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +1 -1
- package/src/sap/fe/core/services/ShellServicesFactory.js +1 -1
- package/src/sap/fe/core/services/ShellServicesFactory.ts +12 -2
- package/src/sap/fe/core/services/TelemetryServiceFactory.js +8 -2
- package/src/sap/fe/core/services/TelemetryServiceFactory.ts +7 -1
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +16 -9
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +22 -11
- package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.js +2 -2
- package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.ts +1 -1
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +2 -2
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +1 -1
- package/src/sap/fe/core/templating/ActionHelper.js +2 -2
- package/src/sap/fe/core/templating/ActionHelper.ts +2 -2
- package/src/sap/fe/core/templating/CommonFormatters.js +2 -2
- package/src/sap/fe/core/templating/CommonFormatters.ts +3 -3
- package/src/sap/fe/core/templating/CriticalityFormatters.js +2 -2
- package/src/sap/fe/core/templating/CriticalityFormatters.ts +2 -2
- package/src/sap/fe/core/templating/DataFieldFormatters.js +4 -4
- package/src/sap/fe/core/templating/DataFieldFormatters.ts +2 -2
- package/src/sap/fe/core/templating/DataModelPathHelper.js +2 -2
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +2 -2
- package/src/sap/fe/core/templating/EntityTypeHelper.js +2 -2
- package/src/sap/fe/core/templating/EntityTypeHelper.ts +2 -2
- package/src/sap/fe/core/templating/FieldControlHelper.js +2 -2
- package/src/sap/fe/core/templating/FieldControlHelper.ts +2 -2
- package/src/sap/fe/core/templating/SemanticObjectHelper.js +2 -2
- package/src/sap/fe/core/templating/SemanticObjectHelper.ts +2 -2
- package/src/sap/fe/core/templating/UIFormatters.js +7 -7
- package/src/sap/fe/core/templating/UIFormatters.ts +6 -6
- package/src/sap/fe/core/type/DateTimeWithTimezone.js +2 -2
- package/src/sap/fe/core/type/DateTimeWithTimezone.ts +1 -1
- package/src/sap/fe/core/type/Email.js +2 -2
- package/src/sap/fe/core/type/Email.ts +1 -1
- package/src/sap/fe/core/type/FiscalDate.js +2 -2
- package/src/sap/fe/core/type/FiscalDate.ts +1 -1
- package/src/sap/fe/core/type/InputMask.js +124 -0
- package/src/sap/fe/core/type/InputMask.ts +131 -0
- package/ui5.yaml +19 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js +0 -81
- package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.ts +0 -117
- package/src/sap/fe/core/helpers/AnnotationEnum.js +0 -33
- package/src/sap/fe/core/helpers/AnnotationEnum.ts +0 -21
- package/src/sap/fe/core/helpers/BindingToolkit.js +0 -1813
- package/src/sap/fe/core/helpers/BindingToolkit.ts +0 -2450
- package/src/sap/fe/core/helpers/ClassSupport.js +0 -584
- package/src/sap/fe/core/helpers/ClassSupport.ts +0 -697
- package/src/sap/fe/core/jsx-runtime/Fragment.js +0 -14
- package/src/sap/fe/core/jsx-runtime/Fragment.ts +0 -3
- package/src/sap/fe/core/jsx-runtime/ViewLoader.js +0 -93
- package/src/sap/fe/core/jsx-runtime/ViewLoader.tsx +0 -86
- package/src/sap/fe/core/jsx-runtime/jsx-control.js +0 -177
- package/src/sap/fe/core/jsx-runtime/jsx-control.ts +0 -197
- package/src/sap/fe/core/jsx-runtime/jsx-xml.js +0 -237
- package/src/sap/fe/core/jsx-runtime/jsx-xml.ts +0 -246
- package/src/sap/fe/core/jsx-runtime/jsx.js +0 -47
- package/src/sap/fe/core/jsx-runtime/jsx.ts +0 -71
- package/src/sap/fe/core/jsx-runtime/jsxs.js +0 -10
- package/src/sap/fe/core/jsx-runtime/jsxs.ts +0 -3
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +0 -172
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.tsx +0 -194
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import Log from "sap/base/Log";
|
|
2
2
|
import type ResourceBundle from "sap/base/i18n/ResourceBundle";
|
|
3
3
|
import type FlexibleColumnLayout from "sap/f/FlexibleColumnLayout";
|
|
4
|
+
import { defineUI5Class, usingExtension } from "sap/fe/base/ClassSupport";
|
|
4
5
|
import type { FEView } from "sap/fe/core/BaseController";
|
|
5
6
|
import BaseController from "sap/fe/core/BaseController";
|
|
6
7
|
import CommonUtils from "sap/fe/core/CommonUtils";
|
|
@@ -9,7 +10,6 @@ import type TemplateComponent from "sap/fe/core/TemplateComponent";
|
|
|
9
10
|
import { type NavigationToErrorPageResult } from "sap/fe/core/controllerextensions/MessageHandler";
|
|
10
11
|
import Placeholder from "sap/fe/core/controllerextensions/Placeholder";
|
|
11
12
|
import ViewState from "sap/fe/core/controllerextensions/ViewState";
|
|
12
|
-
import { defineUI5Class, usingExtension } from "sap/fe/core/helpers/ClassSupport";
|
|
13
13
|
import { getRouteTargetNames } from "sap/fe/core/helpers/ManifestHelper";
|
|
14
14
|
import SizeHelper from "sap/fe/core/helpers/SizeHelper";
|
|
15
15
|
import type FclController from "sap/fe/core/rootView/Fcl.controller";
|
|
@@ -23,6 +23,7 @@ import HashChanger from "sap/ui/core/routing/HashChanger";
|
|
|
23
23
|
import type { Route$MatchedEvent } from "sap/ui/core/routing/Route";
|
|
24
24
|
import type Router from "sap/ui/core/routing/Router";
|
|
25
25
|
import type Table from "sap/ui/mdc/Table";
|
|
26
|
+
import type CompositeBinding from "sap/ui/model/CompositeBinding";
|
|
26
27
|
import type Context from "sap/ui/model/Context";
|
|
27
28
|
import JSONModel from "sap/ui/model/json/JSONModel";
|
|
28
29
|
import AnnotationHelper from "sap/ui/model/odata/v4/AnnotationHelper";
|
|
@@ -30,6 +31,7 @@ import type { ODataPropertyBinding$ChangeEvent } from "sap/ui/model/odata/v4/ODa
|
|
|
30
31
|
import type ResourceModel from "sap/ui/model/resource/ResourceModel";
|
|
31
32
|
import URI from "sap/ui/thirdparty/URI";
|
|
32
33
|
import type AppComponent from "../AppComponent";
|
|
34
|
+
import Any from "../controls/Any";
|
|
33
35
|
|
|
34
36
|
export type TitleInformation = {
|
|
35
37
|
title?: string;
|
|
@@ -224,7 +226,7 @@ class RootViewBaseController extends BaseController {
|
|
|
224
226
|
const oAppComponent = this.getAppComponent();
|
|
225
227
|
this._scrollTablesToLastNavigatedItems();
|
|
226
228
|
if (oAppComponent.getEnvironmentCapabilities().getCapabilities().UShell) {
|
|
227
|
-
this.
|
|
229
|
+
this.computeTitleHierarchy(oView);
|
|
228
230
|
}
|
|
229
231
|
const bForceFocus = oAppComponent.getRouterProxy().isFocusForced();
|
|
230
232
|
oAppComponent.getRouterProxy().setFocusForced(false); // reset
|
|
@@ -314,73 +316,83 @@ class RootViewBaseController extends BaseController {
|
|
|
314
316
|
/**
|
|
315
317
|
* Fetches the value of the HeaderInfo title for a given path.
|
|
316
318
|
*
|
|
317
|
-
* @param
|
|
319
|
+
* @param path The path to the entity
|
|
318
320
|
* @returns A promise containing the formatted title, or an empty string if no HeaderInfo title annotation is available
|
|
319
321
|
*/
|
|
320
|
-
async _fetchTitleValue(
|
|
321
|
-
const
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
);
|
|
330
|
-
if (!sValueExpression) {
|
|
322
|
+
async _fetchTitleValue(path: string): Promise<string> {
|
|
323
|
+
const appComponent = this.getAppComponent(),
|
|
324
|
+
model = this.getView().getModel(),
|
|
325
|
+
metaModel = appComponent.getMetaModel(),
|
|
326
|
+
metaPath = metaModel.getMetaPath(path),
|
|
327
|
+
bindingViewContext = model.createBindingContext(path),
|
|
328
|
+
headerInfoTitleValueAnnotation = metaModel.getObject(`${metaPath}/@com.sap.vocabularies.UI.v1.HeaderInfo/Title/Value`),
|
|
329
|
+
valueExpression = AnnotationHelper.format(headerInfoTitleValueAnnotation, { context: metaModel.createBindingContext("/") });
|
|
330
|
+
if (!valueExpression) {
|
|
331
331
|
return Promise.resolve("");
|
|
332
332
|
}
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
333
|
+
if (headerInfoTitleValueAnnotation.$Function === "odata.concat") {
|
|
334
|
+
const anyObject = new Any({ any: valueExpression });
|
|
335
|
+
anyObject.setModel(model);
|
|
336
|
+
anyObject.setBindingContext(bindingViewContext);
|
|
337
|
+
const textBinding = anyObject.getBinding("any");
|
|
338
|
+
if (textBinding?.isA<CompositeBinding>("sap.ui.model.CompositeBinding")) {
|
|
339
|
+
await Promise.all(textBinding.getBindings().map((binding) => binding.requestValue?.()));
|
|
340
|
+
}
|
|
341
|
+
const infoTitle = anyObject.getAny();
|
|
342
|
+
anyObject.destroy();
|
|
343
|
+
return Promise.resolve(infoTitle as string);
|
|
344
|
+
}
|
|
345
|
+
const textExpression = AnnotationHelper.format(
|
|
346
|
+
metaModel.getObject(
|
|
347
|
+
`${metaPath}/@com.sap.vocabularies.UI.v1.HeaderInfo/Title/Value/$Path@com.sap.vocabularies.Common.v1.Text`
|
|
336
348
|
),
|
|
337
|
-
{ context:
|
|
349
|
+
{ context: metaModel.createBindingContext("/") }
|
|
338
350
|
),
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
const displayMode = CommonUtils.computeDisplayMode(
|
|
351
|
+
propertyContext = metaModel.getObject(`${metaPath}/@com.sap.vocabularies.UI.v1.HeaderInfo/Title/Value/$Path@`),
|
|
352
|
+
promises: Promise<string>[] = [],
|
|
353
|
+
parsedvalueExpression = BindingParser.complexParser(valueExpression),
|
|
354
|
+
promiseForDisplayMode = new Promise(function (resolve: (value: string) => void) {
|
|
355
|
+
const displayMode = CommonUtils.computeDisplayMode(propertyContext);
|
|
344
356
|
resolve(displayMode);
|
|
345
357
|
});
|
|
346
|
-
|
|
347
|
-
const
|
|
348
|
-
fnValueFormatter =
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
const
|
|
352
|
-
const fnChange = function (
|
|
353
|
-
const
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
resolve(
|
|
358
|
+
promises.push(promiseForDisplayMode);
|
|
359
|
+
const valuePath = parsedvalueExpression.parts ? parsedvalueExpression.parts[0].path : parsedvalueExpression.path,
|
|
360
|
+
fnValueFormatter = parsedvalueExpression.formatter,
|
|
361
|
+
valueBinding = model.bindProperty(valuePath, bindingViewContext, { $$groupId: "$auto.Heroes" });
|
|
362
|
+
valueBinding.initialize();
|
|
363
|
+
const promiseForTitleValue = new Promise(function (resolve: (value: string) => void) {
|
|
364
|
+
const fnChange = function (event: ODataPropertyBinding$ChangeEvent): void {
|
|
365
|
+
const targetValue = fnValueFormatter ? fnValueFormatter(event.getSource().getValue()) : event.getSource().getValue();
|
|
366
|
+
|
|
367
|
+
valueBinding.detachChange(fnChange);
|
|
368
|
+
resolve(targetValue);
|
|
357
369
|
};
|
|
358
|
-
|
|
370
|
+
valueBinding.attachChange(fnChange);
|
|
359
371
|
});
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
if (
|
|
363
|
-
const
|
|
364
|
-
let
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
const fnTextFormatter =
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
const
|
|
371
|
-
const fnChange = function (
|
|
372
|
-
const
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
resolve(
|
|
372
|
+
promises.push(promiseForTitleValue);
|
|
373
|
+
|
|
374
|
+
if (textExpression) {
|
|
375
|
+
const parsedTextExpression = BindingParser.complexParser(textExpression);
|
|
376
|
+
let textPath = parsedTextExpression.parts ? parsedTextExpression.parts[0].path : parsedTextExpression.path;
|
|
377
|
+
textPath = valuePath.lastIndexOf("/") > -1 ? `${valuePath.slice(0, valuePath.lastIndexOf("/"))}/${textPath}` : textPath;
|
|
378
|
+
|
|
379
|
+
const fnTextFormatter = parsedTextExpression.formatter,
|
|
380
|
+
textBinding = model.bindProperty(textPath, bindingViewContext, { $$groupId: "$auto.Heroes" });
|
|
381
|
+
textBinding.initialize();
|
|
382
|
+
const promiseForTitleText = new Promise(function (resolve: (description: string) => void) {
|
|
383
|
+
const fnChange = function (event: ODataPropertyBinding$ChangeEvent): void {
|
|
384
|
+
const targetText = fnTextFormatter ? fnTextFormatter(event.getSource().getValue()) : event.getSource().getValue();
|
|
385
|
+
|
|
386
|
+
textBinding.detachChange(fnChange);
|
|
387
|
+
resolve(targetText);
|
|
376
388
|
};
|
|
377
389
|
|
|
378
|
-
|
|
390
|
+
textBinding.attachChange(fnChange);
|
|
379
391
|
});
|
|
380
|
-
|
|
392
|
+
promises.push(promiseForTitleText);
|
|
381
393
|
}
|
|
382
394
|
try {
|
|
383
|
-
const titleInfo: string[] = await Promise.all(
|
|
395
|
+
const titleInfo: string[] = await Promise.all(promises);
|
|
384
396
|
let formattedTitle = "";
|
|
385
397
|
if (typeof titleInfo !== "string") {
|
|
386
398
|
formattedTitle = this._formatTitle(titleInfo[0], titleInfo[1], titleInfo[2]);
|
|
@@ -397,7 +409,7 @@ class RootViewBaseController extends BaseController {
|
|
|
397
409
|
*
|
|
398
410
|
* @returns Decoded application-specific hash
|
|
399
411
|
*/
|
|
400
|
-
|
|
412
|
+
getAppSpecificHash(): string {
|
|
401
413
|
// HashChanged isShellNavigationHashChanger
|
|
402
414
|
const hashChanger = HashChanger.getInstance();
|
|
403
415
|
return hashChanger.hrefForAppSpecificHash ? URI.decode(hashChanger.hrefForAppSpecificHash("")) : "#/";
|
|
@@ -426,7 +438,7 @@ class RootViewBaseController extends BaseController {
|
|
|
426
438
|
const oMetaModel = this.getAppComponent().getMetaModel();
|
|
427
439
|
const sEntityPath = oMetaModel.getMetaPath(sPath);
|
|
428
440
|
const sTypeName = oMetaModel.getObject(`${sEntityPath}/@com.sap.vocabularies.UI.v1.HeaderInfo/TypeName`);
|
|
429
|
-
const sAppSpecificHash = this.
|
|
441
|
+
const sAppSpecificHash = this.getAppSpecificHash();
|
|
430
442
|
const sIntent = sAppSpecificHash + sPath.slice(1);
|
|
431
443
|
return this._fetchTitleValue(sPath).then((sTitle: string) => {
|
|
432
444
|
const oTitleInfo = this._computeTitleInfo(sTypeName, sTitle, sIntent);
|
|
@@ -485,84 +497,86 @@ class RootViewBaseController extends BaseController {
|
|
|
485
497
|
/**
|
|
486
498
|
* This function updates the shell title after each navigation.
|
|
487
499
|
*
|
|
488
|
-
* @param
|
|
500
|
+
* @param view The current view
|
|
489
501
|
* @returns A Promise that is resolved when the menu is filled properly
|
|
502
|
+
* @private
|
|
490
503
|
*/
|
|
491
|
-
async
|
|
492
|
-
const
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
manifestAppSettings =
|
|
498
|
-
|
|
499
|
-
|
|
504
|
+
async computeTitleHierarchy(view: View): Promise<void> {
|
|
505
|
+
const appComponent = this.getAppComponent(),
|
|
506
|
+
context = view.getBindingContext(),
|
|
507
|
+
currentPage = view.getParent(),
|
|
508
|
+
titleInformationPromises = [],
|
|
509
|
+
appSpecificHash = this.getAppSpecificHash(),
|
|
510
|
+
manifestAppSettings = appComponent.getManifestEntry("sap.app"),
|
|
511
|
+
appTitle = manifestAppSettings.title || "",
|
|
512
|
+
appSubTitle = manifestAppSettings.subTitle || "",
|
|
500
513
|
appIcon = manifestAppSettings.icon || "";
|
|
501
|
-
let
|
|
514
|
+
let pageTitleInformation: TitleInformation, newPath: string | undefined;
|
|
502
515
|
|
|
503
|
-
if (
|
|
504
|
-
if (
|
|
516
|
+
if (currentPage && (currentPage as TemplateComponent)._getPageTitleInformation) {
|
|
517
|
+
if (context) {
|
|
505
518
|
// If the first page of the application is a LR, use the title and subtitle from the manifest
|
|
506
519
|
if (this._getTargetTypeFromHash("") === "sap.fe.templates.ListReport") {
|
|
507
|
-
|
|
508
|
-
Promise.resolve(this._computeTitleInfo(sAppTitle, sAppSubTitle, sAppSpecificHash, appIcon))
|
|
509
|
-
);
|
|
520
|
+
titleInformationPromises.push(Promise.resolve(this._computeTitleInfo(appTitle, appSubTitle, appSpecificHash, appIcon)));
|
|
510
521
|
}
|
|
511
522
|
|
|
512
523
|
// Then manage other pages
|
|
513
|
-
|
|
514
|
-
const
|
|
515
|
-
let
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
524
|
+
newPath = context.getPath();
|
|
525
|
+
const pathParts = newPath.split("/");
|
|
526
|
+
let path = "";
|
|
527
|
+
|
|
528
|
+
pathParts.shift(); // Remove the first segment (empty string) as it has been managed above
|
|
529
|
+
pathParts.pop(); // Remove the last segment as it corresponds to the current page and shouldn't appear in the menu
|
|
530
|
+
pathParts.forEach((pathPart: string) => {
|
|
531
|
+
path += `/${pathPart}`;
|
|
532
|
+
//if the associated target is not declared in the routes, we skip it
|
|
533
|
+
if (!appComponent.getRouter().getRouteInfoByHash(path)) {
|
|
534
|
+
return;
|
|
535
|
+
}
|
|
536
|
+
const metaModel = appComponent.getMetaModel(),
|
|
537
|
+
parameterPath = metaModel.getMetaPath(path),
|
|
538
|
+
isParameterized = metaModel.getObject(`${parameterPath}/@com.sap.vocabularies.Common.v1.ResultContext`);
|
|
539
|
+
if (!isParameterized) {
|
|
540
|
+
titleInformationPromises.push(this.getTitleInfoFromPath(path));
|
|
527
541
|
}
|
|
528
542
|
});
|
|
529
543
|
}
|
|
530
544
|
|
|
531
545
|
// Current page
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
546
|
+
pageTitleInformation = (currentPage as TemplateComponent)._getPageTitleInformation();
|
|
547
|
+
pageTitleInformation = this._computeTitleInfo(
|
|
548
|
+
pageTitleInformation.title ?? "",
|
|
549
|
+
pageTitleInformation.subtitle ?? "",
|
|
550
|
+
appSpecificHash + this._getHash()
|
|
537
551
|
);
|
|
538
552
|
|
|
539
|
-
if (
|
|
540
|
-
this._getTitleHierarchyCache()[
|
|
553
|
+
if (context && newPath) {
|
|
554
|
+
this._getTitleHierarchyCache()[newPath] = pageTitleInformation;
|
|
541
555
|
} else {
|
|
542
|
-
this._getTitleHierarchyCache()[
|
|
556
|
+
this._getTitleHierarchyCache()[appSpecificHash] = pageTitleInformation;
|
|
543
557
|
}
|
|
544
558
|
} else {
|
|
545
|
-
|
|
559
|
+
titleInformationPromises.push(Promise.reject("Title information missing in HeaderInfo"));
|
|
546
560
|
}
|
|
547
|
-
return Promise.all(
|
|
548
|
-
.then((
|
|
561
|
+
return Promise.all(titleInformationPromises)
|
|
562
|
+
.then((titleInfoHierarchy: TitleInformation[]): void => {
|
|
549
563
|
// workaround for shell which is expecting all elements being of type string
|
|
550
|
-
const
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
564
|
+
const titleInfoHierarchyShell = this._ensureHierarchyElementsAreStrings(titleInfoHierarchy),
|
|
565
|
+
title = pageTitleInformation.title ?? "";
|
|
566
|
+
titleInfoHierarchyShell.reverse();
|
|
567
|
+
appComponent.getShellServices().setHierarchy(titleInfoHierarchyShell);
|
|
554
568
|
|
|
555
|
-
this._setShellMenuTitle(
|
|
569
|
+
this._setShellMenuTitle(appComponent, title, appTitle);
|
|
556
570
|
return;
|
|
557
571
|
})
|
|
558
|
-
.catch(function (
|
|
559
|
-
Log.error(
|
|
572
|
+
.catch(function (errorMessage: unknown) {
|
|
573
|
+
Log.error(errorMessage as string);
|
|
560
574
|
})
|
|
561
575
|
.finally(() => {
|
|
562
576
|
this.bIsComputingTitleHierachy = false;
|
|
563
577
|
})
|
|
564
|
-
.catch(function (
|
|
565
|
-
Log.error(
|
|
578
|
+
.catch(function (errorMessage: unknown) {
|
|
579
|
+
Log.error(errorMessage as string);
|
|
566
580
|
});
|
|
567
581
|
}
|
|
568
582
|
|
|
@@ -62,7 +62,7 @@ sap.ui.define(["sap/base/Log", "sap/ui/core/service/Service", "sap/ui/core/servi
|
|
|
62
62
|
}
|
|
63
63
|
try {
|
|
64
64
|
var _this$teamsIntegratio;
|
|
65
|
-
return await ((_this$teamsIntegratio = this.teamsIntegration.helperService) === null || _this$teamsIntegratio === void 0 ? void 0 : _this$teamsIntegratio.
|
|
65
|
+
return await ((_this$teamsIntegratio = this.teamsIntegration.helperService) === null || _this$teamsIntegratio === void 0 ? void 0 : _this$teamsIntegratio.enableContactsCollaboration(mail));
|
|
66
66
|
} catch {
|
|
67
67
|
return undefined;
|
|
68
68
|
}
|
|
@@ -142,4 +142,4 @@ sap.ui.define(["sap/base/Log", "sap/ui/core/service/Service", "sap/ui/core/servi
|
|
|
142
142
|
CollaborativeToolsServiceFactory.CollaborativeToolsServiceClass = CollaborativeToolsService;
|
|
143
143
|
return CollaborativeToolsServiceFactory;
|
|
144
144
|
}, false);
|
|
145
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb2xsYWJvcmF0aXZlVG9vbHNTZXJ2aWNlIiwiaW5pdCIsInRlYW1zSW50ZWdyYXRpb24iLCJpc0luaXRpYWxpemVkIiwiaW5pdFByb21pc2UiLCJQcm9taXNlIiwicmVzb2x2ZSIsImdldEludGVyZmFjZSIsImluaXRpYWxpemVNU1RlYW1zIiwiZGVmYXVsdCIsIlNlcnZpY2VDb250YWluZXJDbGFzcyIsImhlbHBlclNlcnZpY2UiLCJnZXRTZXJ2aWNlQXN5bmMiLCJpc0NvbnRhY3RzQ29sbGFib3JhdGlvblN1cHBvcnRlZCIsImUiLCJMb2ciLCJpbmZvIiwiZ2V0TWFpbFBvcG92ZXJGcm9tTXNUZWFtc0ludGVncmF0aW9uIiwibWFpbCIsImVuYWJsZU1pbmltYWxDb250YWN0c0NvbGxhYm9yYXRpb24iLCJ1bmRlZmluZWQiLCJnZXRUZWFtQ29udGFjdFN0YXR1cyIsImVtYWlsIiwiZ2V0VGVhbXNDb250YWN0U3RhdHVzIiwiZ2V0VGVhbUNvbnRhY3RPcHRpb25zIiwiY29udGFjdE9wdGlvbnMiLCJnZXRUZWFtc0NvbnRhY3RDb2xsYWJPcHRpb25zIiwiZ2V0VGVhbUNvbnRhY3RPcHRpb24iLCJvcHRpb24iLCJjb250YWN0T3B0aW9uIiwiaSIsImxlbmd0aCIsImtleSIsImdldFRlYW1zQ29sbGFiT3B0aW9uc1ZpYVNoYXJlIiwicGFyYW1zIiwiZ2V0T3B0aW9ucyIsIlNlcnZpY2UiLCJDb2xsYWJvcmF0aXZlVG9vbHNTZXJ2aWNlRmFjdG9yeSIsImNyZWF0ZUluc3RhbmNlIiwic2VydmljZUNvbnRleHQiLCJjb2xsYWJvcmF0aXZlVG9vbHNTZXJ2aWNlIiwiU2VydmljZUZhY3RvcnkiLCJDb2xsYWJvcmF0aXZlVG9vbHNTZXJ2aWNlQ2xhc3MiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkNvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2VGYWN0b3J5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgUG9wb3ZlciBmcm9tIFwic2FwL20vUG9wb3ZlclwiO1xuaW1wb3J0IHR5cGUge1xuXHRDb2xsYWJvcmF0aW9uT3B0aW9uUGFyYW1zLFxuXHRDb2xsYWJvcmF0aW9uT3B0aW9ucyxcblx0Q29udGFjdFN0YXR1cyxcblx0Q29udGFjdE9wdGlvbiBhcyBUZWFtc0NvbnRhY3RPcHRpb24sXG5cdGRlZmF1bHQgYXMgVGVhbXNIZWxwZXJTZXJ2aWNlXG59IGZyb20gXCJzYXAvc3VpdGUvdWkvY29tbW9ucy9jb2xsYWJvcmF0aW9uL1RlYW1zSGVscGVyU2VydmljZVwiO1xuaW1wb3J0IFNlcnZpY2UgZnJvbSBcInNhcC91aS9jb3JlL3NlcnZpY2UvU2VydmljZVwiO1xuaW1wb3J0IFNlcnZpY2VGYWN0b3J5IGZyb20gXCJzYXAvdWkvY29yZS9zZXJ2aWNlL1NlcnZpY2VGYWN0b3J5XCI7XG5pbXBvcnQgdHlwZSB7IFNlcnZpY2VDb250ZXh0IH0gZnJvbSBcInR5cGVzL21ldGFtb2RlbF90eXBlc1wiO1xudHlwZSBDb2xsYWJvcmF0aXZlVG9vbHNTZXJ2aWNlU2V0dGluZ3MgPSB7fTtcbnR5cGUgVGVhbXNDb25uZWN0aW9uID0ge1xuXHRpc0luaXRpYWxpemVkOiBib29sZWFuO1xuXHRpc0NvbnRhY3RzQ29sbGFib3JhdGlvblN1cHBvcnRlZD86IGJvb2xlYW47XG5cdGhlbHBlclNlcnZpY2U/OiBUZWFtc0hlbHBlclNlcnZpY2U7XG5cdGNvbnRhY3RPcHRpb25zPzogVGVhbXNDb250YWN0T3B0aW9uW107XG59O1xuZXhwb3J0IGNsYXNzIENvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2UgZXh0ZW5kcyBTZXJ2aWNlPENvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2VTZXR0aW5ncz4ge1xuXHRpbml0UHJvbWlzZSE6IFByb21pc2U8Q29sbGFib3JhdGl2ZVRvb2xzU2VydmljZT47XG5cblx0dGVhbXNJbnRlZ3JhdGlvbiE6IFRlYW1zQ29ubmVjdGlvbjtcblxuXHRvRmFjdG9yeSE6IENvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2VGYWN0b3J5O1xuXG5cdGluaXQoKTogdm9pZCB7XG5cdFx0dGhpcy50ZWFtc0ludGVncmF0aW9uID0ge1xuXHRcdFx0aXNJbml0aWFsaXplZDogZmFsc2Vcblx0XHR9O1xuXG5cdFx0dGhpcy5pbml0UHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh0aGlzKTtcblx0fVxuXG5cdGdldEludGVyZmFjZSgpOiBDb2xsYWJvcmF0aXZlVG9vbHNTZXJ2aWNlIHtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHByaXZhdGUgYXN5bmMgaW5pdGlhbGl6ZU1TVGVhbXMoKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IHsgZGVmYXVsdDogU2VydmljZUNvbnRhaW5lckNsYXNzIH0gPSBhd2FpdCBpbXBvcnQoXCJzYXAvc3VpdGUvdWkvY29tbW9ucy9jb2xsYWJvcmF0aW9uL1NlcnZpY2VDb250YWluZXJcIik7XG5cblx0XHRcdGNvbnN0IGhlbHBlclNlcnZpY2UgPSBhd2FpdCBTZXJ2aWNlQ29udGFpbmVyQ2xhc3MuZ2V0U2VydmljZUFzeW5jKCk7XG5cdFx0XHR0aGlzLnRlYW1zSW50ZWdyYXRpb24uaXNJbml0aWFsaXplZCA9IHRydWU7XG5cdFx0XHR0aGlzLnRlYW1zSW50ZWdyYXRpb24uaGVscGVyU2VydmljZSA9IGhlbHBlclNlcnZpY2U7XG5cdFx0XHR0aGlzLnRlYW1zSW50ZWdyYXRpb24uaXNDb250YWN0c0NvbGxhYm9yYXRpb25TdXBwb3J0ZWQgPVxuXHRcdFx0XHQvL2F3YWl0IGhlbHBlclNlcnZpY2UuaXNUZWFtc01vZGVBY3RpdmUoKSAmJiAvLyB0aGlzIGNoZWNrcyBmb3IgdXJsIHBhcmFtcyBhcHBTdGF0ZT1sZWFuJnNhcC1jb2xsYWJvcmF0aW9uLXRlYW1zPXRydWVcblx0XHRcdFx0dHlwZW9mIGhlbHBlclNlcnZpY2UuaXNDb250YWN0c0NvbGxhYm9yYXRpb25TdXBwb3J0ZWQgPT09IFwiZnVuY3Rpb25cIiAmJiBoZWxwZXJTZXJ2aWNlLmlzQ29udGFjdHNDb2xsYWJvcmF0aW9uU3VwcG9ydGVkKCk7XG5cdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0TG9nLmluZm8oXCJDb3VsZG4ndCBldmFsdWF0ZSB0aGUgc3VwcG9ydCBmb3IgY29udGFjdHMgY29sbGFib3JhdGlvbiBpbiBNUyBUZWFtc1wiKTtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgZ2V0TWFpbFBvcG92ZXJGcm9tTXNUZWFtc0ludGVncmF0aW9uKG1haWw6IHN0cmluZyk6IFByb21pc2U8UG9wb3ZlciB8IHVuZGVmaW5lZD4ge1xuXHRcdGlmICghdGhpcy50ZWFtc0ludGVncmF0aW9uLmlzSW5pdGlhbGl6ZWQpIHtcblx0XHRcdGF3YWl0IHRoaXMuaW5pdGlhbGl6ZU1TVGVhbXMoKTtcblx0XHR9XG5cdFx0dHJ5IHtcblx0XHRcdHJldHVybiBhd2FpdCB0aGlzLnRlYW1zSW50ZWdyYXRpb24uaGVscGVyU2VydmljZT8uZW5hYmxlTWluaW1hbENvbnRhY3RzQ29sbGFib3JhdGlvbihtYWlsKTtcblx0XHR9IGNhdGNoIHtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9XG5cblx0YXN5bmMgaXNDb250YWN0c0NvbGxhYm9yYXRpb25TdXBwb3J0ZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG5cdFx0aWYgKCF0aGlzLnRlYW1zSW50ZWdyYXRpb24uaXNJbml0aWFsaXplZCkge1xuXHRcdFx0YXdhaXQgdGhpcy5pbml0aWFsaXplTVNUZWFtcygpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy50ZWFtc0ludGVncmF0aW9uLmlzQ29udGFjdHNDb2xsYWJvcmF0aW9uU3VwcG9ydGVkID09PSB0cnVlO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIGdldFRlYW1Db250YWN0U3RhdHVzKGVtYWlsOiBzdHJpbmcpOiBQcm9taXNlPENvbnRhY3RTdGF0dXNbXSB8IHVuZGVmaW5lZD4ge1xuXHRcdGlmICghdGhpcy50ZWFtc0ludGVncmF0aW9uLmlzSW5pdGlhbGl6ZWQpIHtcblx0XHRcdGF3YWl0IHRoaXMuaW5pdGlhbGl6ZU1TVGVhbXMoKTtcblx0XHR9XG5cdFx0aWYgKCF0aGlzLnRlYW1zSW50ZWdyYXRpb24uaXNDb250YWN0c0NvbGxhYm9yYXRpb25TdXBwb3J0ZWQpIHtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXG5cdFx0dHJ5IHtcblx0XHRcdHJldHVybiBhd2FpdCB0aGlzLnRlYW1zSW50ZWdyYXRpb24uaGVscGVyU2VydmljZT8uZ2V0VGVhbXNDb250YWN0U3RhdHVzKGVtYWlsKTtcblx0XHR9IGNhdGNoIHtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIGFzeW5jIGdldFRlYW1Db250YWN0T3B0aW9ucygpOiBQcm9taXNlPFRlYW1zQ29udGFjdE9wdGlvbltdIHwgdW5kZWZpbmVkPiB7XG5cdFx0aWYgKCF0aGlzLnRlYW1zSW50ZWdyYXRpb24uaXNJbml0aWFsaXplZCkge1xuXHRcdFx0YXdhaXQgdGhpcy5pbml0aWFsaXplTVNUZWFtcygpO1xuXHRcdH1cblx0XHRpZiAoIXRoaXMudGVhbXNJbnRlZ3JhdGlvbi5pc0NvbnRhY3RzQ29sbGFib3JhdGlvblN1cHBvcnRlZCkge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdFx0aWYgKCF0aGlzLnRlYW1zSW50ZWdyYXRpb24uY29udGFjdE9wdGlvbnMpIHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdHRoaXMudGVhbXNJbnRlZ3JhdGlvbi5jb250YWN0T3B0aW9ucyA9IGF3YWl0IHRoaXMudGVhbXNJbnRlZ3JhdGlvbi5oZWxwZXJTZXJ2aWNlPy5nZXRUZWFtc0NvbnRhY3RDb2xsYWJPcHRpb25zKCk7XG5cdFx0XHR9IGNhdGNoIHtcblx0XHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMudGVhbXNJbnRlZ3JhdGlvbi5jb250YWN0T3B0aW9ucztcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBnZXRUZWFtQ29udGFjdE9wdGlvbihvcHRpb246IFwiY2FsbFwiIHwgXCJjaGF0XCIgfCBcInZpZGVvQ2FsbFwiKTogUHJvbWlzZTxUZWFtc0NvbnRhY3RPcHRpb24gfCB1bmRlZmluZWQ+IHtcblx0XHRjb25zdCBjb250YWN0T3B0aW9ucyA9IGF3YWl0IHRoaXMuZ2V0VGVhbUNvbnRhY3RPcHRpb25zKCk7XG5cdFx0bGV0IGNvbnRhY3RPcHRpb247XG5cdFx0aWYgKGNvbnRhY3RPcHRpb25zKSB7XG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGNvbnRhY3RPcHRpb25zLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGlmIChjb250YWN0T3B0aW9uc1tpXS5rZXkgPT09IG9wdGlvbikge1xuXHRcdFx0XHRcdGNvbnRhY3RPcHRpb24gPSBjb250YWN0T3B0aW9uc1tpXTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gY29udGFjdE9wdGlvbjtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBnZXRUZWFtc0NvbGxhYk9wdGlvbnNWaWFTaGFyZShwYXJhbXM6IENvbGxhYm9yYXRpb25PcHRpb25QYXJhbXMpOiBQcm9taXNlPENvbGxhYm9yYXRpb25PcHRpb25zW10gfCB1bmRlZmluZWQ+IHtcblx0XHRpZiAoIXRoaXMudGVhbXNJbnRlZ3JhdGlvbi5pc0luaXRpYWxpemVkKSB7XG5cdFx0XHRhd2FpdCB0aGlzLmluaXRpYWxpemVNU1RlYW1zKCk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLnRlYW1zSW50ZWdyYXRpb24uaGVscGVyU2VydmljZT8uZ2V0T3B0aW9ucyhwYXJhbXMpO1xuXHR9XG59XG5cbmNsYXNzIENvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2VGYWN0b3J5IGV4dGVuZHMgU2VydmljZUZhY3Rvcnk8Q29sbGFib3JhdGl2ZVRvb2xzU2VydmljZVNldHRpbmdzPiB7XG5cdHB1YmxpYyBzdGF0aWMgQ29sbGFib3JhdGl2ZVRvb2xzU2VydmljZUNsYXNzID0gQ29sbGFib3JhdGl2ZVRvb2xzU2VydmljZTtcblxuXHRhc3luYyBjcmVhdGVJbnN0YW5jZShzZXJ2aWNlQ29udGV4dDogU2VydmljZUNvbnRleHQ8Q29sbGFib3JhdGl2ZVRvb2xzU2VydmljZVNldHRpbmdzPik6IFByb21pc2U8Q29sbGFib3JhdGl2ZVRvb2xzU2VydmljZT4ge1xuXHRcdGNvbnN0IGNvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2UgPSBuZXcgQ29sbGFib3JhdGl2ZVRvb2xzU2VydmljZShzZXJ2aWNlQ29udGV4dCk7XG5cdFx0cmV0dXJuIGNvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2UuaW5pdFByb21pc2U7XG5cdH1cbn1cbmV4cG9ydCBkZWZhdWx0IENvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2VGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFtQmFBLHlCQUF5QjtJQUFBO0lBQUE7TUFBQTtJQUFBO0lBQUE7SUFBQTtJQUFBLE9BT3JDQyxJQUFJLEdBQUosZ0JBQWE7TUFDWixJQUFJLENBQUNDLGdCQUFnQixHQUFHO1FBQ3ZCQyxhQUFhLEVBQUU7TUFDaEIsQ0FBQztNQUVELElBQUksQ0FBQ0MsV0FBVyxHQUFHQyxPQUFPLENBQUNDLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDekMsQ0FBQztJQUFBLE9BRURDLFlBQVksR0FBWix3QkFBMEM7TUFDekMsT0FBTyxJQUFJO0lBQ1osQ0FBQztJQUFBLE9BRWFDLGlCQUFpQixHQUEvQixtQ0FBaUQ7TUFDaEQsSUFBSTtRQUNILE1BQU07VUFBRUMsT0FBTyxFQUFFQztRQUFzQixDQUFDLEdBQUcsTUFBTSxvQkFBTyxxREFBcUQsQ0FBQztRQUU5RyxNQUFNQyxhQUFhLEdBQUcsTUFBTUQscUJBQXFCLENBQUNFLGVBQWUsRUFBRTtRQUNuRSxJQUFJLENBQUNWLGdCQUFnQixDQUFDQyxhQUFhLEdBQUcsSUFBSTtRQUMxQyxJQUFJLENBQUNELGdCQUFn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
|
|
145
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb2xsYWJvcmF0aXZlVG9vbHNTZXJ2aWNlIiwiaW5pdCIsInRlYW1zSW50ZWdyYXRpb24iLCJpc0luaXRpYWxpemVkIiwiaW5pdFByb21pc2UiLCJQcm9taXNlIiwicmVzb2x2ZSIsImdldEludGVyZmFjZSIsImluaXRpYWxpemVNU1RlYW1zIiwiZGVmYXVsdCIsIlNlcnZpY2VDb250YWluZXJDbGFzcyIsImhlbHBlclNlcnZpY2UiLCJnZXRTZXJ2aWNlQXN5bmMiLCJpc0NvbnRhY3RzQ29sbGFib3JhdGlvblN1cHBvcnRlZCIsImUiLCJMb2ciLCJpbmZvIiwiZ2V0TWFpbFBvcG92ZXJGcm9tTXNUZWFtc0ludGVncmF0aW9uIiwibWFpbCIsImVuYWJsZUNvbnRhY3RzQ29sbGFib3JhdGlvbiIsInVuZGVmaW5lZCIsImdldFRlYW1Db250YWN0U3RhdHVzIiwiZW1haWwiLCJnZXRUZWFtc0NvbnRhY3RTdGF0dXMiLCJnZXRUZWFtQ29udGFjdE9wdGlvbnMiLCJjb250YWN0T3B0aW9ucyIsImdldFRlYW1zQ29udGFjdENvbGxhYk9wdGlvbnMiLCJnZXRUZWFtQ29udGFjdE9wdGlvbiIsIm9wdGlvbiIsImNvbnRhY3RPcHRpb24iLCJpIiwibGVuZ3RoIiwia2V5IiwiZ2V0VGVhbXNDb2xsYWJPcHRpb25zVmlhU2hhcmUiLCJwYXJhbXMiLCJnZXRPcHRpb25zIiwiU2VydmljZSIsIkNvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2VGYWN0b3J5IiwiY3JlYXRlSW5zdGFuY2UiLCJzZXJ2aWNlQ29udGV4dCIsImNvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2UiLCJTZXJ2aWNlRmFjdG9yeSIsIkNvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2VDbGFzcyJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQ29sbGFib3JhdGl2ZVRvb2xzU2VydmljZUZhY3RvcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgdHlwZSBQb3BvdmVyIGZyb20gXCJzYXAvbS9Qb3BvdmVyXCI7XG5pbXBvcnQgdHlwZSB7XG5cdENvbGxhYm9yYXRpb25PcHRpb25QYXJhbXMsXG5cdENvbGxhYm9yYXRpb25PcHRpb25zLFxuXHRDb250YWN0U3RhdHVzLFxuXHRDb250YWN0T3B0aW9uIGFzIFRlYW1zQ29udGFjdE9wdGlvbixcblx0ZGVmYXVsdCBhcyBUZWFtc0hlbHBlclNlcnZpY2Vcbn0gZnJvbSBcInNhcC9zdWl0ZS91aS9jb21tb25zL2NvbGxhYm9yYXRpb24vVGVhbXNIZWxwZXJTZXJ2aWNlXCI7XG5pbXBvcnQgU2VydmljZSBmcm9tIFwic2FwL3VpL2NvcmUvc2VydmljZS9TZXJ2aWNlXCI7XG5pbXBvcnQgU2VydmljZUZhY3RvcnkgZnJvbSBcInNhcC91aS9jb3JlL3NlcnZpY2UvU2VydmljZUZhY3RvcnlcIjtcbmltcG9ydCB0eXBlIHsgU2VydmljZUNvbnRleHQgfSBmcm9tIFwidHlwZXMvbWV0YW1vZGVsX3R5cGVzXCI7XG50eXBlIENvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2VTZXR0aW5ncyA9IHt9O1xudHlwZSBUZWFtc0Nvbm5lY3Rpb24gPSB7XG5cdGlzSW5pdGlhbGl6ZWQ6IGJvb2xlYW47XG5cdGlzQ29udGFjdHNDb2xsYWJvcmF0aW9uU3VwcG9ydGVkPzogYm9vbGVhbjtcblx0aGVscGVyU2VydmljZT86IFRlYW1zSGVscGVyU2VydmljZTtcblx0Y29udGFjdE9wdGlvbnM/OiBUZWFtc0NvbnRhY3RPcHRpb25bXTtcbn07XG5leHBvcnQgY2xhc3MgQ29sbGFib3JhdGl2ZVRvb2xzU2VydmljZSBleHRlbmRzIFNlcnZpY2U8Q29sbGFib3JhdGl2ZVRvb2xzU2VydmljZVNldHRpbmdzPiB7XG5cdGluaXRQcm9taXNlITogUHJvbWlzZTxDb2xsYWJvcmF0aXZlVG9vbHNTZXJ2aWNlPjtcblxuXHR0ZWFtc0ludGVncmF0aW9uITogVGVhbXNDb25uZWN0aW9uO1xuXG5cdG9GYWN0b3J5ITogQ29sbGFib3JhdGl2ZVRvb2xzU2VydmljZUZhY3Rvcnk7XG5cblx0aW5pdCgpOiB2b2lkIHtcblx0XHR0aGlzLnRlYW1zSW50ZWdyYXRpb24gPSB7XG5cdFx0XHRpc0luaXRpYWxpemVkOiBmYWxzZVxuXHRcdH07XG5cblx0XHR0aGlzLmluaXRQcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKHRoaXMpO1xuXHR9XG5cblx0Z2V0SW50ZXJmYWNlKCk6IENvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2Uge1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHJpdmF0ZSBhc3luYyBpbml0aWFsaXplTVNUZWFtcygpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHR0cnkge1xuXHRcdFx0Y29uc3QgeyBkZWZhdWx0OiBTZXJ2aWNlQ29udGFpbmVyQ2xhc3MgfSA9IGF3YWl0IGltcG9ydChcInNhcC9zdWl0ZS91aS9jb21tb25zL2NvbGxhYm9yYXRpb24vU2VydmljZUNvbnRhaW5lclwiKTtcblxuXHRcdFx0Y29uc3QgaGVscGVyU2VydmljZSA9IGF3YWl0IFNlcnZpY2VDb250YWluZXJDbGFzcy5nZXRTZXJ2aWNlQXN5bmMoKTtcblx0XHRcdHRoaXMudGVhbXNJbnRlZ3JhdGlvbi5pc0luaXRpYWxpemVkID0gdHJ1ZTtcblx0XHRcdHRoaXMudGVhbXNJbnRlZ3JhdGlvbi5oZWxwZXJTZXJ2aWNlID0gaGVscGVyU2VydmljZTtcblx0XHRcdHRoaXMudGVhbXNJbnRlZ3JhdGlvbi5pc0NvbnRhY3RzQ29sbGFib3JhdGlvblN1cHBvcnRlZCA9XG5cdFx0XHRcdC8vYXdhaXQgaGVscGVyU2VydmljZS5pc1RlYW1zTW9kZUFjdGl2ZSgpICYmIC8vIHRoaXMgY2hlY2tzIGZvciB1cmwgcGFyYW1zIGFwcFN0YXRlPWxlYW4mc2FwLWNvbGxhYm9yYXRpb24tdGVhbXM9dHJ1ZVxuXHRcdFx0XHR0eXBlb2YgaGVscGVyU2VydmljZS5pc0NvbnRhY3RzQ29sbGFib3JhdGlvblN1cHBvcnRlZCA9PT0gXCJmdW5jdGlvblwiICYmIGhlbHBlclNlcnZpY2UuaXNDb250YWN0c0NvbGxhYm9yYXRpb25TdXBwb3J0ZWQoKTtcblx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRMb2cuaW5mbyhcIkNvdWxkbid0IGV2YWx1YXRlIHRoZSBzdXBwb3J0IGZvciBjb250YWN0cyBjb2xsYWJvcmF0aW9uIGluIE1TIFRlYW1zXCIpO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBhc3luYyBnZXRNYWlsUG9wb3ZlckZyb21Nc1RlYW1zSW50ZWdyYXRpb24obWFpbDogc3RyaW5nKTogUHJvbWlzZTxQb3BvdmVyIHwgdW5kZWZpbmVkPiB7XG5cdFx0aWYgKCF0aGlzLnRlYW1zSW50ZWdyYXRpb24uaXNJbml0aWFsaXplZCkge1xuXHRcdFx0YXdhaXQgdGhpcy5pbml0aWFsaXplTVNUZWFtcygpO1xuXHRcdH1cblx0XHR0cnkge1xuXHRcdFx0cmV0dXJuIGF3YWl0IHRoaXMudGVhbXNJbnRlZ3JhdGlvbi5oZWxwZXJTZXJ2aWNlPy5lbmFibGVDb250YWN0c0NvbGxhYm9yYXRpb24obWFpbCk7XG5cdFx0fSBjYXRjaCB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0fVxuXG5cdGFzeW5jIGlzQ29udGFjdHNDb2xsYWJvcmF0aW9uU3VwcG9ydGVkKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuXHRcdGlmICghdGhpcy50ZWFtc0ludGVncmF0aW9uLmlzSW5pdGlhbGl6ZWQpIHtcblx0XHRcdGF3YWl0IHRoaXMuaW5pdGlhbGl6ZU1TVGVhbXMoKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMudGVhbXNJbnRlZ3JhdGlvbi5pc0NvbnRhY3RzQ29sbGFib3JhdGlvblN1cHBvcnRlZCA9PT0gdHJ1ZTtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBnZXRUZWFtQ29udGFjdFN0YXR1cyhlbWFpbDogc3RyaW5nKTogUHJvbWlzZTxDb250YWN0U3RhdHVzW10gfCB1bmRlZmluZWQ+IHtcblx0XHRpZiAoIXRoaXMudGVhbXNJbnRlZ3JhdGlvbi5pc0luaXRpYWxpemVkKSB7XG5cdFx0XHRhd2FpdCB0aGlzLmluaXRpYWxpemVNU1RlYW1zKCk7XG5cdFx0fVxuXHRcdGlmICghdGhpcy50ZWFtc0ludGVncmF0aW9uLmlzQ29udGFjdHNDb2xsYWJvcmF0aW9uU3VwcG9ydGVkKSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblxuXHRcdHRyeSB7XG5cdFx0XHRyZXR1cm4gYXdhaXQgdGhpcy50ZWFtc0ludGVncmF0aW9uLmhlbHBlclNlcnZpY2U/LmdldFRlYW1zQ29udGFjdFN0YXR1cyhlbWFpbCk7XG5cdFx0fSBjYXRjaCB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBhc3luYyBnZXRUZWFtQ29udGFjdE9wdGlvbnMoKTogUHJvbWlzZTxUZWFtc0NvbnRhY3RPcHRpb25bXSB8IHVuZGVmaW5lZD4ge1xuXHRcdGlmICghdGhpcy50ZWFtc0ludGVncmF0aW9uLmlzSW5pdGlhbGl6ZWQpIHtcblx0XHRcdGF3YWl0IHRoaXMuaW5pdGlhbGl6ZU1TVGVhbXMoKTtcblx0XHR9XG5cdFx0aWYgKCF0aGlzLnRlYW1zSW50ZWdyYXRpb24uaXNDb250YWN0c0NvbGxhYm9yYXRpb25TdXBwb3J0ZWQpIHtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXHRcdGlmICghdGhpcy50ZWFtc0ludGVncmF0aW9uLmNvbnRhY3RPcHRpb25zKSB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHR0aGlzLnRlYW1zSW50ZWdyYXRpb24uY29udGFjdE9wdGlvbnMgPSBhd2FpdCB0aGlzLnRlYW1zSW50ZWdyYXRpb24uaGVscGVyU2VydmljZT8uZ2V0VGVhbXNDb250YWN0Q29sbGFiT3B0aW9ucygpO1xuXHRcdFx0fSBjYXRjaCB7XG5cdFx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLnRlYW1zSW50ZWdyYXRpb24uY29udGFjdE9wdGlvbnM7XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgZ2V0VGVhbUNvbnRhY3RPcHRpb24ob3B0aW9uOiBcImNhbGxcIiB8IFwiY2hhdFwiIHwgXCJ2aWRlb0NhbGxcIik6IFByb21pc2U8VGVhbXNDb250YWN0T3B0aW9uIHwgdW5kZWZpbmVkPiB7XG5cdFx0Y29uc3QgY29udGFjdE9wdGlvbnMgPSBhd2FpdCB0aGlzLmdldFRlYW1Db250YWN0T3B0aW9ucygpO1xuXHRcdGxldCBjb250YWN0T3B0aW9uO1xuXHRcdGlmIChjb250YWN0T3B0aW9ucykge1xuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBjb250YWN0T3B0aW9ucy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRpZiAoY29udGFjdE9wdGlvbnNbaV0ua2V5ID09PSBvcHRpb24pIHtcblx0XHRcdFx0XHRjb250YWN0T3B0aW9uID0gY29udGFjdE9wdGlvbnNbaV07XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIGNvbnRhY3RPcHRpb247XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgZ2V0VGVhbXNDb2xsYWJPcHRpb25zVmlhU2hhcmUocGFyYW1zOiBDb2xsYWJvcmF0aW9uT3B0aW9uUGFyYW1zKTogUHJvbWlzZTxDb2xsYWJvcmF0aW9uT3B0aW9uc1tdIHwgdW5kZWZpbmVkPiB7XG5cdFx0aWYgKCF0aGlzLnRlYW1zSW50ZWdyYXRpb24uaXNJbml0aWFsaXplZCkge1xuXHRcdFx0YXdhaXQgdGhpcy5pbml0aWFsaXplTVNUZWFtcygpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy50ZWFtc0ludGVncmF0aW9uLmhlbHBlclNlcnZpY2U/LmdldE9wdGlvbnMocGFyYW1zKTtcblx0fVxufVxuXG5jbGFzcyBDb2xsYWJvcmF0aXZlVG9vbHNTZXJ2aWNlRmFjdG9yeSBleHRlbmRzIFNlcnZpY2VGYWN0b3J5PENvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2VTZXR0aW5ncz4ge1xuXHRwdWJsaWMgc3RhdGljIENvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2VDbGFzcyA9IENvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2U7XG5cblx0YXN5bmMgY3JlYXRlSW5zdGFuY2Uoc2VydmljZUNvbnRleHQ6IFNlcnZpY2VDb250ZXh0PENvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2VTZXR0aW5ncz4pOiBQcm9taXNlPENvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2U+IHtcblx0XHRjb25zdCBjb2xsYWJvcmF0aXZlVG9vbHNTZXJ2aWNlID0gbmV3IENvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2Uoc2VydmljZUNvbnRleHQpO1xuXHRcdHJldHVybiBjb2xsYWJvcmF0aXZlVG9vbHNTZXJ2aWNlLmluaXRQcm9taXNlO1xuXHR9XG59XG5leHBvcnQgZGVmYXVsdCBDb2xsYWJvcmF0aXZlVG9vbHNTZXJ2aWNlRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BbUJhQSx5QkFBeUI7SUFBQTtJQUFBO01BQUE7SUFBQTtJQUFBO0lBQUE7SUFBQSxPQU9yQ0MsSUFBSSxHQUFKLGdCQUFhO01BQ1osSUFBSSxDQUFDQyxnQkFBZ0IsR0FBRztRQUN2QkMsYUFBYSxFQUFFO01BQ2hCLENBQUM7TUFFRCxJQUFJLENBQUNDLFdBQVcsR0FBR0MsT0FBTyxDQUFDQyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQ3pDLENBQUM7SUFBQSxPQUVEQyxZQUFZLEdBQVosd0JBQTBDO01BQ3pDLE9BQU8sSUFBSTtJQUNaLENBQUM7SUFBQSxPQUVhQyxpQkFBaUIsR0FBL0IsbUNBQWlEO01BQ2hELElBQUk7UUFDSCxNQUFNO1VBQUVDLE9BQU8sRUFBRUM7UUFBc0IsQ0FBQyxHQUFHLE1BQU0sb0JBQU8scURBQXFELENBQUM7UUFFOUcsTUFBTUMsYUFBYSxHQUFHLE1BQU1ELHFCQUFxQixDQUFDRSxlQUFlLEVBQUU7UUFDbkUsSUFBSSxDQUFDVixnQkFBZ0IsQ0FBQ0MsYUFBYSxHQUFHLElBQUk7UUFDMUMsSUFBSSxDQUFDRCxnQkFBZ0IsQ0FBQ1MsYUFBYSxH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
|
|
@@ -56,7 +56,7 @@ export class CollaborativeToolsService extends Service<CollaborativeToolsService
|
|
|
56
56
|
await this.initializeMSTeams();
|
|
57
57
|
}
|
|
58
58
|
try {
|
|
59
|
-
return await this.teamsIntegration.helperService?.
|
|
59
|
+
return await this.teamsIntegration.helperService?.enableContactsCollaboration(mail);
|
|
60
60
|
} catch {
|
|
61
61
|
return undefined;
|
|
62
62
|
}
|
|
@@ -74,7 +74,7 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
|
|
|
74
74
|
* modified oTableEventParameters is returned; if an error occurs, an error object of type
|
|
75
75
|
* {@link sap.fe.navigation.NavError} is returned
|
|
76
76
|
*/;
|
|
77
|
-
_proto._processBeforeSmartLinkPopoverOpens =
|
|
77
|
+
_proto._processBeforeSmartLinkPopoverOpens = function _processBeforeSmartLinkPopoverOpens(oTableEventParameters, sSelectionVariant, mInnerAppData) {
|
|
78
78
|
return this.oNavHandler.processBeforeSmartLinkPopoverOpens(oTableEventParameters, sSelectionVariant, mInnerAppData);
|
|
79
79
|
}
|
|
80
80
|
|
|
@@ -116,8 +116,10 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
|
|
|
116
116
|
* });
|
|
117
117
|
*
|
|
118
118
|
* </code>
|
|
119
|
-
|
|
120
|
-
|
|
119
|
+
*/
|
|
120
|
+
// eslint-disable-next-line @typescript-eslint/promise-function-async
|
|
121
|
+
;
|
|
122
|
+
_proto.getAppStateKeyAndUrlParameters = function getAppStateKeyAndUrlParameters(sSelectionVariant) {
|
|
121
123
|
return this.oNavHandler._getAppStateKeyAndUrlParameters(sSelectionVariant);
|
|
122
124
|
}
|
|
123
125
|
|
|
@@ -332,4 +334,4 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
|
|
|
332
334
|
}(ServiceFactory);
|
|
333
335
|
return NavigationServiceFactory;
|
|
334
336
|
}, false);
|
|
335
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOYXZpZ2F0aW9uU2VydmljZSIsImluaXQiLCJvQ29udGV4dCIsImdldENvbnRleHQiLCJvQ29tcG9uZW50Iiwic2NvcGVPYmplY3QiLCJvTmF2SGFuZGxlciIsIk5hdmlnYXRpb25IYW5kbGVyIiwic2V0TW9kZWwiLCJnZXRNb2RlbCIsImluaXRQcm9taXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJleGl0IiwiZGVzdHJveSIsIm5hdmlnYXRlIiwic1NlbWFudGljT2JqZWN0Iiwic0FjdGlvbk5hbWUiLCJ2TmF2aWdhdGlvblBhcmFtZXRlcnMiLCJvSW5uZXJBcHBEYXRhIiwiZm5PbkVycm9yIiwib0V4dGVybmFsQXBwRGF0YSIsInNOYXZNb2RlIiwicGFyc2VOYXZpZ2F0aW9uIiwiX3Byb2Nlc3NCZWZvcmVTbWFydExpbmtQb3BvdmVyT3BlbnMiLCJvVGFibGVFdmVudFBhcmFtZXRlcnMiLCJzU2VsZWN0aW9uVmFyaWFudCIsIm1Jbm5lckFwcERhdGEiLCJwcm9jZXNzQmVmb3JlU21hcnRMaW5rUG9wb3Zlck9wZW5zIiwiZ2V0QXBwU3BlY2lmaWNIYXNoIiwiYXBwSGFzaCIsIl9nZXRBcHBTcGVjaWZpY0hhc2giLCJnZXRBcHBTdGF0ZUtleUFuZFVybFBhcmFtZXRlcnMiLCJfZ2V0QXBwU3RhdGVLZXlBbmRVcmxQYXJhbWV0ZXJzIiwiZ2V0VGVjaG5pY2FsUGFyYW1ldGVycyIsInNldFRlY2huaWNhbFBhcmFtZXRlcnMiLCJhVGVjaG5pY2FsUGFyYW1ldGVycyIsIm9Nb2RlbCIsInN0b3JlSW5uZXJBcHBTdGF0ZUFzeW5jIiwiYkltbWVkaWF0ZUhhc2hSZXBsYWNlIiwiYlNraXBIYXNoUmVwbGFjZSIsInJlamVjdCIsInRoZW4iLCJzdG9yZUlubmVyQXBwU3RhdGVXaXRoSW1tZWRpYXRlUmV0dXJuIiwicmVwbGFjZUhhc2giLCJzQXBwU3RhdGVLZXkiLCJyZXBsYWNlSW5uZXJBcHBTdGF0ZUtleSIsInNBcHBIYXNoIiwiX3JlcGxhY2VJbm5lckFwcFN0YXRlS2V5IiwiZ2V0VXJsUGFyYW1ldGVyc0Zyb21TZWxlY3Rpb25WYXJpYW50IiwidlNlbGVjdGlvblZhcmlhbnQiLCJfZ2V0VVJMUGFyYW1ldGVyc0Zyb21TZWxlY3Rpb25WYXJpYW50Iiwic2F2ZUFwcFN0YXRlV2l0aEltbWVkaWF0ZVJldHVybiIsIm9JblNlbGVjdGlvblZhcmlhbnQiLCJ0b0pTT05TdHJpbmciLCJvU2VsZWN0aW9uVmFyaWFudCIsIkpTT04iLCJwYXJzZSIsIm9YQXBwU3RhdGVPYmplY3QiLCJzZWxlY3Rpb25WYXJpYW50Iiwib1JldHVybiIsIl9zYXZlQXBwU3RhdGVXaXRoSW1tZWRpYXRlUmV0dXJuIiwiYXBwU3RhdGVLZXkiLCJ1bmRlZmluZWQiLCJtaXhBdHRyaWJ1dGVzQW5kU2VsZWN0aW9uVmFyaWFudCIsInZTZW1hbnRpY0F0dHJpYnV0ZXMiLCJpU3VwcHJlc3Npb25CZWhhdmlvciIsImNvbnN0cnVjdENvbnRleHRVcmwiLCJzRW50aXR5U2V0TmFtZSIsImdldEludGVyZmFjZSIsImdldElBcHBTdGF0ZUtleSIsIlNlcnZpY2UiLCJmbkdldEVtcHR5T2JqZWN0IiwiZm5HZXRQcm9taXNlIiwiZm5HZXRKUXVlcnlQcm9taXNlIiwib015RGVmZmVyZWQiLCJqUXVlcnkiLCJEZWZlcnJlZCIsInByb21pc2UiLCJmbkdldEVtcHR5U3RyaW5nIiwiTmF2aWdhdGlvblNlcnZpY2VzTW9jayIsImNyZWF0ZUVtcHR5QXBwU3RhdGUiLCJnZXRBcHBTdGF0ZSIsImdldFN0YXJ0dXBBcHBTdGF0ZSIsIlNlcnZpY2VGYWN0b3J5IiwiTmF2aWdhdGlvblNlcnZpY2VGYWN0b3J5IiwiY3JlYXRlSW5zdGFuY2UiLCJvU2VydmljZUNvbnRleHQiLCJvTmF2aWdhdGlvblNlcnZpY2UiLCJzYXAiLCJ1aSIsInJlcXVpcmUiLCJvU2VydmljZSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiTmF2aWdhdGlvblNlcnZpY2VGYWN0b3J5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSW5uZXJBcHBEYXRhIH0gZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL05hdmlnYXRpb25IYW5kbGVyXCI7XG5pbXBvcnQgTmF2aWdhdGlvbkhhbmRsZXIgZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL05hdmlnYXRpb25IYW5kbGVyXCI7XG5pbXBvcnQgdHlwZSBTZWxlY3Rpb25WYXJpYW50IGZyb20gXCJzYXAvZmUvbmF2aWdhdGlvbi9TZWxlY3Rpb25WYXJpYW50XCI7XG5pbXBvcnQgdHlwZSB7IFNlcmlhbGl6ZWRTZWxlY3Rpb25WYXJpYW50IH0gZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL1NlbGVjdGlvblZhcmlhbnRcIjtcbmltcG9ydCBTZXJ2aWNlIGZyb20gXCJzYXAvdWkvY29yZS9zZXJ2aWNlL1NlcnZpY2VcIjtcbmltcG9ydCBTZXJ2aWNlRmFjdG9yeSBmcm9tIFwic2FwL3VpL2NvcmUvc2VydmljZS9TZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IHR5cGUgT0RhdGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTW9kZWxcIjtcbmltcG9ydCBqUXVlcnkgZnJvbSBcInNhcC91aS90aGlyZHBhcnR5L2pxdWVyeVwiO1xuaW1wb3J0IHR5cGUgeyBTZXJ2aWNlQ29udGV4dCB9IGZyb20gXCJ0eXBlcy9tZXRhbW9kZWxfdHlwZXNcIjtcblxudHlwZSBOYXZpZ2F0aW9uU2VydmljZVNldHRpbmdzID0ge307XG5leHBvcnQgY2xhc3MgTmF2aWdhdGlvblNlcnZpY2UgZXh0ZW5kcyBTZXJ2aWNlPE5hdmlnYXRpb25TZXJ2aWNlU2V0dGluZ3M+IHtcblx0aW5pdFByb21pc2UhOiBQcm9taXNlPHRoaXM+O1xuXG5cdG9OYXZIYW5kbGVyITogTmF2aWdhdGlvbkhhbmRsZXI7XG5cblx0aW5pdCgpOiB2b2lkIHtcblx0XHRjb25zdCBvQ29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuXHRcdFx0b0NvbXBvbmVudCA9IG9Db250ZXh0ICYmIG9Db250ZXh0LnNjb3BlT2JqZWN0O1xuXG5cdFx0dGhpcy5vTmF2SGFuZGxlciA9IG5ldyBOYXZpZ2F0aW9uSGFuZGxlcihvQ29tcG9uZW50KTtcblx0XHR0aGlzLm9OYXZIYW5kbGVyLnNldE1vZGVsKG9Db21wb25lbnQuZ2V0TW9kZWwoKSk7XG5cdFx0dGhpcy5pbml0UHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh0aGlzKTtcblx0fVxuXG5cdGV4aXQoKTogdm9pZCB7XG5cdFx0dGhpcy5vTmF2SGFuZGxlci5kZXN0cm95KCk7XG5cdH1cblxuXHQvKipcblx0ICogVHJpZ2dlcnMgYSBjcm9zcy1hcHAgbmF2aWdhdGlvbiBhZnRlciBzYXZpbmcgdGhlIGlubmVyIGFuZCB0aGUgY3Jvc3MtYXBwIHN0YXRlcy5cblx0ICpcblx0ICogQHBhcmFtIHNTZW1hbnRpY09iamVjdCBTZW1hbnRpYyBvYmplY3Qgb2YgdGhlIHRhcmdldCBhcHBcblx0ICogQHBhcmFtIHNBY3Rpb25OYW1lIEFjdGlvbiBvZiB0aGUgdGFyZ2V0IGFwcFxuXHQgKiBAcGFyYW0gW3ZOYXZpZ2F0aW9uUGFyYW1ldGVyc10gTmF2aWdhdGlvbiBwYXJhbWV0ZXJzIGFzIGFuIG9iamVjdCB3aXRoIGtleS92YWx1ZSBwYWlycyBvciBhcyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZlxuXHQgKiAgICAgICAgc3VjaCBhbiBvYmplY3QuIElmIHBhc3NlZCBhcyBhbiBvYmplY3QsIHRoZSBwcm9wZXJ0aWVzIGFyZSBub3QgY2hlY2tlZCBhZ2FpbnN0IHRoZSA8Y29kZT5Jc1BvdGVudGlhbFNlbnNpdGl2ZTwvY29kZT4gb3Jcblx0ICogICAgICAgIDxjb2RlPk1lYXN1cmU8L2NvZGU+IHR5cGUuXG5cdCAqIEBwYXJhbSBbb0lubmVyQXBwRGF0YV0gT2JqZWN0IGZvciBzdG9yaW5nIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGFwcFxuXHQgKiBAcGFyYW0gW2ZuT25FcnJvcl0gQ2FsbGJhY2sgdGhhdCBpcyBjYWxsZWQgaWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyBuYXZpZ2F0aW9uIDxicj5cblx0ICogQHBhcmFtIFtvRXh0ZXJuYWxBcHBEYXRhXSBPYmplY3QgZm9yIHN0b3JpbmcgdGhlIHN0YXRlIHdoaWNoIHdpbGwgYmUgZm9yd2FyZGVkIHRvIHRoZSB0YXJnZXQgY29tcG9uZW50LlxuXHQgKiBAcGFyYW0gb0V4dGVybmFsQXBwRGF0YS52YWx1ZVRleHRzXG5cdCAqIEBwYXJhbSBvRXh0ZXJuYWxBcHBEYXRhLnByZXNlbnRhdGlvblZhcmlhbnRcblx0ICogQHBhcmFtIG9FeHRlcm5hbEFwcERhdGEuc2VsZWN0aW9uVmFyaWFudFxuXHQgKiBAcGFyYW0gW3NOYXZNb2RlXSBBcmd1bWVudCBpcyB1c2VkIHRvIG92ZXJ3cml0ZSB0aGUgRkxQLWNvbmZpZ3VyZWQgdGFyZ2V0IGZvciBvcGVuaW5nIGEgVVJMLiBJZiB1c2VkLCBvbmx5IHRoZVxuXHQgKiAgICAgICAgPGNvZGU+ZXhwbGFjZTwvY29kZT4gb3IgPGNvZGU+aW5wbGFjZTwvY29kZT4gdmFsdWVzIGFyZSBhbGxvd2VkLiBBbnkgb3RoZXIgdmFsdWUgd2lsbCBsZWFkIHRvIGFuIGV4Y2VwdGlvblxuXHQgKiAgICAgICAgPGNvZGU+TmF2aWdhdGlvbkhhbmRsZXIuSU5WQUxJRF9OQVZfTU9ERTwvY29kZT4uXG5cdCAqL1xuXHRuYXZpZ2F0ZShcblx0XHRzU2VtYW50aWNPYmplY3Q6IHN0cmluZyxcblx0XHRzQWN0aW9uTmFtZTogc3RyaW5nLFxuXHRcdHZOYXZpZ2F0aW9uUGFyYW1ldGVyczogc3RyaW5nIHwgb2JqZWN0LFxuXHRcdG9Jbm5lckFwcERhdGE/OiBJbm5lckFwcERhdGEsXG5cdFx0Zm5PbkVycm9yPzogRnVuY3Rpb24sXG5cdFx0b0V4dGVybmFsQXBwRGF0YT86IHtcblx0XHRcdHZhbHVlVGV4dHM/OiBvYmplY3QgfCB1bmRlZmluZWQ7XG5cdFx0XHRwcmVzZW50YXRpb25WYXJpYW50Pzogb2JqZWN0IHwgdW5kZWZpbmVkO1xuXHRcdFx0c2VsZWN0aW9uVmFyaWFudD86IG9iamVjdCB8IHVuZGVmaW5lZDtcblx0XHR9LFxuXHRcdHNOYXZNb2RlPzogc3RyaW5nXG5cdCk6IHZvaWQge1xuXHRcdC8vIFRPRE86IE5hdmlnYXRpb24gSGFuZGxlciBkb2VzIG5vdCBoYW5kbGUgbmF2aWdhdGlvbiB3aXRob3V0IGEgY29udGV4dFxuXHRcdC8vIGJ1dCBpbiB2NCBEYXRhRmllbGRGb3JJQk4gd2l0aCByZXF1aXJlc0NvbnRleHQgZmFsc2UgY2FuIHRyaWdnZXIgYSBuYXZpZ2F0aW9uIHdpdGhvdXQgYW55IGNvbnRleHRcblx0XHQvLyBUaGlzIHNob3VsZCBiZSBoYW5kbGVkXG5cdFx0dGhpcy5vTmF2SGFuZGxlci5uYXZpZ2F0ZShcblx0XHRcdHNTZW1hbnRpY09iamVjdCxcblx0XHRcdHNBY3Rpb25OYW1lLFxuXHRcdFx0dk5hdmlnYXRpb25QYXJhbWV0ZXJzLFxuXHRcdFx0b0lubmVyQXBwRGF0YSxcblx0XHRcdGZuT25FcnJvcixcblx0XHRcdG9FeHRlcm5hbEFwcERhdGEsXG5cdFx0XHRzTmF2TW9kZVxuXHRcdCk7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIHRoZSBpbmNvbWluZyBVUkwgYW5kIHJldHVybnMgYSBQcm9taXNlLlxuXHQgKlxuXHQgKiBAcmV0dXJucyBBIFByb21pc2Ugb2JqZWN0IHdoaWNoIHJldHVybnMgdGhlXG5cdCAqIGV4dHJhY3RlZCBhcHAgc3RhdGUsIHRoZSBzdGFydHVwIHBhcmFtZXRlcnMsIGFuZCB0aGUgdHlwZSBvZiBuYXZpZ2F0aW9uIHdoZW4gZXhlY3V0aW9uIGlzIHN1Y2Nlc3NmdWwsXG5cdCAqL1xuXHRwYXJzZU5hdmlnYXRpb24oKTogalF1ZXJ5LlByb21pc2U8dW5rbm93bltdPiB7XG5cdFx0cmV0dXJuIHRoaXMub05hdkhhbmRsZXIucGFyc2VOYXZpZ2F0aW9uKCkgYXMgalF1ZXJ5LlByb21pc2U8dW5rbm93bltdPjtcblx0fVxuXG5cdC8qKlxuXHQgKiBQcm9jZXNzZXMgbmF2aWdhdGlvbi1yZWxhdGVkIHRhc2tzIHJlbGF0ZWQgdG8gYmVmb3JlUG9wb3Zlck9wZW5zIGV2ZW50IGhhbmRsaW5nIGZvciB0aGUgU21hcnRMaW5rIGNvbnRyb2wgYW5kIHJldHVybnMgYSBQcm9taXNlIG9iamVjdC5cblx0ICpcblx0ICogQHBhcmFtIG9UYWJsZUV2ZW50UGFyYW1ldGVycyBUaGUgcGFyYW1ldGVycyBtYWRlIGF2YWlsYWJsZSBieSB0aGUgU21hcnRUYWJsZSBjb250cm9sIHdoZW4gdGhlIFNtYXJ0TGluayBjb250cm9sIGhhcyBiZWVuIGNsaWNrZWQsXG5cdCAqICAgICAgICBhbiBpbnN0YW5jZSBvZiBhIFBvcE92ZXIgb2JqZWN0XG5cdCAqIEBwYXJhbSBzU2VsZWN0aW9uVmFyaWFudCBTdHJpbmdpZmllZCBKU09OIG9iamVjdCBhcyByZXR1cm5lZCwgZm9yIGV4YW1wbGUsIGZyb20gZ2V0RGF0YVN1aXRlRm9ybWF0KCkgb2YgdGhlIFNtYXJ0RmlsdGVyQmFyIGNvbnRyb2xcblx0ICogQHBhcmFtIFttSW5uZXJBcHBEYXRhXSBPYmplY3QgY29udGFpbmluZyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgYXBwLiBJZiBwcm92aWRlZCwgb3BlbmluZyB0aGUgUG9wb3ZlciBpcyBkZWZlcnJlZCB1bnRpbCB0aGVcblx0ICogICAgICAgIGlubmVyIGFwcCBkYXRhIGlzIHNhdmVkIGluIGEgY29uc2lzdGVudCB3YXkuXG5cdCAqIEByZXR1cm5zIEEgUHJvbWlzZSBvYmplY3QgdG8gbW9uaXRvciB3aGVuIGFsbCBhY3Rpb25zIG9mIHRoZSBmdW5jdGlvbiBoYXZlIGJlZW4gZXhlY3V0ZWQ7IGlmIHRoZSBleGVjdXRpb24gaXMgc3VjY2Vzc2Z1bCwgdGhlXG5cdCAqICAgICAgICAgIG1vZGlmaWVkIG9UYWJsZUV2ZW50UGFyYW1ldGVycyBpcyByZXR1cm5lZDsgaWYgYW4gZXJyb3Igb2NjdXJzLCBhbiBlcnJvciBvYmplY3Qgb2YgdHlwZVxuXHQgKiAgICAgICAgICB7QGxpbmsgc2FwLmZlLm5hdmlnYXRpb24uTmF2RXJyb3J9IGlzIHJldHVybmVkXG5cdCAqL1xuXHRhc3luYyBfcHJvY2Vzc0JlZm9yZVNtYXJ0TGlua1BvcG92ZXJPcGVucyhcblx0XHRvVGFibGVFdmVudFBhcmFtZXRlcnM6IG9iamVjdCxcblx0XHRzU2VsZWN0aW9uVmFyaWFudDogc3RyaW5nLFxuXHRcdG1Jbm5lckFwcERhdGE/OiBJbm5lckFwcERhdGFcblx0KTogUHJvbWlzZTx1bmtub3duPiB7XG5cdFx0cmV0dXJuIHRoaXMub05hdkhhbmRsZXIucHJvY2Vzc0JlZm9yZVNtYXJ0TGlua1BvcG92ZXJPcGVucyhvVGFibGVFdmVudFBhcmFtZXRlcnMsIHNTZWxlY3Rpb25WYXJpYW50LCBtSW5uZXJBcHBEYXRhKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgQXBwIHNwZWNpZmljIGhhc2guXG5cdCAqXG5cdCAqIEBwYXJhbSBhcHBIYXNoIFRoZSBwYXRoIHN0cmluZ1xuXHQgKiBAcmV0dXJucyBBIHN0cmluZyByZXByZXNlbnRpbmcgYmFzZSBwYXRoXG5cdCAqXG5cdCAqL1xuXHRhc3luYyBnZXRBcHBTcGVjaWZpY0hhc2goYXBwSGFzaDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5fZ2V0QXBwU3BlY2lmaWNIYXNoKGFwcEhhc2gpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFByb2Nlc3NlcyBzZWxlY3Rpb25WYXJpYW50IHN0cmluZyBhbmQgcmV0dXJucyBhIFByb21pc2Ugb2JqZWN0IChzZW1hbnRpY0F0dHJpYnV0ZXMgYW5kIEFwcFN0YXRlS2V5KS5cblx0ICpcblx0ICogQHBhcmFtIHNTZWxlY3Rpb25WYXJpYW50IFN0cmluZ2lmaWVkIEpTT04gb2JqZWN0XG5cdCAqIEByZXR1cm5zIEEgUHJvbWlzZSBvYmplY3QgdG8gbW9uaXRvciB3aGVuIGFsbCBhY3Rpb25zIGluIHRoZSBmdW5jdGlvbiBoYXZlIGJlZW4gZXhlY3V0ZWQ7IGlmIHRoZSBleGVjdXRpb24gaXMgc3VjY2Vzc2Z1bCwgdGhlXG5cdCAqICAgICAgICAgIHNlbWFudGljQXR0cmlidXRlcyBhcyB3ZWxsIGFzIHRoZSBhcHBTdGF0ZUtleSBhcmUgcmV0dXJuZWQ7IGlmIGFuIGVycm9yIG9jY3VycywgYW4gZXJyb3Igb2JqZWN0IG9mIHR5cGVcblx0ICogICAgICAgICAge0BsaW5rIHNhcC5mZS5uYXZpZ2F0aW9uLk5hdkVycm9yfSBpcyByZXR1cm5lZFxuXHQgKiA8YnI+XG5cdCAqIEBleGFtcGxlIDxjb2RlPlxuXHQgKlxuXHQgKiBcdFx0dmFyIG9TZWxlY3Rpb25WYXJpYW50ID0gbmV3IHNhcC5mZS5uYXZpZ2F0aW9uLlNlbGVjdGlvblZhcmlhbnQoKTtcblx0ICogXHRcdG9TZWxlY3Rpb25WYXJpYW50LmFkZFNlbGVjdE9wdGlvbihcIkNvbXBhbnlDb2RlXCIsIFwiSVwiLCBcIkVRXCIsIFwiMDAwMVwiKTtcblx0ICogXHRcdG9TZWxlY3Rpb25WYXJpYW50LmFkZFNlbGVjdE9wdGlvbihcIkN1c3RvbWVyXCIsIFwiSVwiLCBcIkVRXCIsIFwiQzAwMDFcIik7XG5cdCAqIFx0XHR2YXIgc1NlbGVjdGlvblZhcmlhbnQ9IG9TZWxlY3Rpb25WYXJpYW50LnRvSlNPTlN0cmluZygpO1xuXHQgKlxuXHQgKiBcdFx0dmFyIG9OYXZpZ2F0aW9uSGFuZGxlciA9IG5ldyBzYXAuZmUubmF2aWdhdGlvbi5OYXZpZ2F0aW9uSGFuZGxlcihvQ29udHJvbGxlcik7XG5cdCAqIFx0XHR2YXIgb1Byb21pc2VPYmplY3QgPSBvTmF2aWdhdGlvbkhhbmRsZXIuX2dldEFwcFN0YXRlS2V5QW5kVXJsUGFyYW1ldGVycyhzU2VsZWN0aW9uVmFyaWFudCk7XG5cdCAqXG5cdCAqIFx0XHRvUHJvbWlzZU9iamVjdC5kb25lKGZ1bmN0aW9uKG9TZW1hbnRpY0F0dHJpYnV0ZXMsIHNBcHBTdGF0ZUtleSl7XG5cdCAqIFx0XHRcdC8vIGhlcmUgeW91IGNhbiBhZGQgY29kaW5nIHRoYXQgc2hvdWxkIHJ1biBhZnRlciBhbGwgYXBwIHN0YXRlIGFuZCB0aGUgc2VtYW50aWMgYXR0cmlidXRlcyBoYXZlIGJlZW4gcmV0dXJuZWQuXG5cdCAqIFx0XHR9KTtcblx0ICpcblx0ICogXHRcdG9Qcm9taXNlT2JqZWN0LmZhaWwoZnVuY3Rpb24ob0Vycm9yKXtcblx0ICogXHRcdFx0Ly9zb21lIGVycm9yIGhhbmRsaW5nXG5cdCAqIFx0XHR9KTtcblx0ICpcblx0ICogPC9jb2RlPlxuXHQgKi9cblx0YXN5bmMgZ2V0QXBwU3RhdGVLZXlBbmRVcmxQYXJhbWV0ZXJzKHNTZWxlY3Rpb25WYXJpYW50OiBzdHJpbmcpOiBQcm9taXNlPHVua25vd24+IHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5fZ2V0QXBwU3RhdGVLZXlBbmRVcmxQYXJhbWV0ZXJzKHNTZWxlY3Rpb25WYXJpYW50KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBhcHBsaWNhdGlvbiBzcGVjaWZpYyB0ZWNobmljYWwgcGFyYW1ldGVycy5cblx0ICpcblx0ICogQHJldHVybnMgQ29udGFpbmluZyB0aGUgdGVjaG5pY2FsIHBhcmFtZXRlcnMuXG5cdCAqL1xuXHRnZXRUZWNobmljYWxQYXJhbWV0ZXJzKCk6IHN0cmluZ1tdIHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5nZXRUZWNobmljYWxQYXJhbWV0ZXJzKCk7XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyB0aGUgYXBwbGljYXRpb24gc3BlY2lmaWMgdGVjaG5pY2FsIHBhcmFtZXRlcnMuIFRlY2huaWNhbCBwYXJhbWV0ZXJzIHdpbGwgbm90IGJlIGFkZGVkIHRvIHRoZSBzZWxlY3Rpb24gdmFyaWFudCBwYXNzZWQgdG8gdGhlXG5cdCAqIGFwcGxpY2F0aW9uLlxuXHQgKiBBcyBhIGRlZmF1bHQgc2FwLXN5c3RlbSwgc2FwLXVzaGVsbC1kZWZhdWx0ZWRQYXJhbWV0ZXJOYW1lcyBhbmQgaGNwQXBwbGljYXRpb25JZCBhcmUgY29uc2lkZXJlZCBhcyB0ZWNobmljYWwgcGFyYW1ldGVycy5cblx0ICpcblx0ICogQHBhcmFtIGFUZWNobmljYWxQYXJhbWV0ZXJzIExpc3Qgb2YgcGFyYW1ldGVyIG5hbWVzIHRvIGJlIGNvbnNpZGVyZWQgYXMgdGVjaG5pY2FsIHBhcmFtZXRlcnMuIDxjb2RlPm51bGw8L2NvZGU+IG9yXG5cdCAqICAgICAgICA8Y29kZT51bmRlZmluZWQ8L2NvZGU+IG1heSBiZSB1c2VkIHRvIHJlc2V0IHRoZSBjb21wbGV0ZSBsaXN0LlxuXHQgKi9cblx0c2V0VGVjaG5pY2FsUGFyYW1ldGVycyhhVGVjaG5pY2FsUGFyYW1ldGVyczogdW5rbm93bltdKTogdm9pZCB7XG5cdFx0dGhpcy5vTmF2SGFuZGxlci5zZXRUZWNobmljYWxQYXJhbWV0ZXJzKGFUZWNobmljYWxQYXJhbWV0ZXJzKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZXRzIHRoZSBtb2RlbCB0aGF0IGlzIHVzZWQgZm9yIHZlcmlmaWNhdGlvbiBvZiBzZW5zaXRpdmUgaW5mb3JtYXRpb24uIElmIHRoZSBtb2RlbCBpcyBub3Qgc2V0LCB0aGUgdW5uYW1lZCBjb21wb25lbnQgbW9kZWwgaXMgdXNlZCBmb3IgdGhlXG5cdCAqIHZlcmlmaWNhdGlvbiBvZiBzZW5zaXRpdmUgaW5mb3JtYXRpb24uXG5cdCAqXG5cdCAqIEBwYXJhbSBvTW9kZWwgTW9kZWwgRm9yIGNoZWNraW5nIHNlbnNpdGl2ZSBpbmZvcm1hdGlvblxuXHQgKi9cblx0c2V0TW9kZWwob01vZGVsOiBPRGF0YU1vZGVsKTogdm9pZCB7XG5cdFx0dGhpcy5vTmF2SGFuZGxlci5zZXRNb2RlbChvTW9kZWwpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoYW5nZXMgdGhlIFVSTCBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgYXBwIHN0YXRlIGFuZCBzdG9yZXMgdGhlIGFwcCBzdGF0ZSBmb3IgbGF0ZXIgcmV0cmlldmFsLlxuXHQgKlxuXHQgKiBAcGFyYW0gbUlubmVyQXBwRGF0YSBPYmplY3QgY29udGFpbmluZyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgYXBwXG5cdCAqIEBwYXJhbSBbYkltbWVkaWF0ZUhhc2hSZXBsYWNlXSBJZiBzZXQgdG8gZmFsc2UsIHRoZSBpbm5lciBhcHAgaGFzaCB3aWxsIG5vdCBiZSByZXBsYWNlZCB1bnRpbCBzdG9yaW5nIGlzIHN1Y2Nlc3NmdWw7IGRvIG5vdFxuXHQgKiAgICAgICAgc2V0IHRvIGZhbHNlIGlmIHlvdSBjYW5ub3QgcmVhY3QgdG8gdGhlIHJlc29sdXRpb24gb2YgdGhlIFByb21pc2UsIGZvciBleGFtcGxlLCB3aGVuIGNhbGxpbmcgdGhlIGJlZm9yZUxpbmtQcmVzc2VkIGV2ZW50XG5cdCAqIEBwYXJhbSBbYlNraXBIYXNoUmVwbGFjZV0gSWYgc2V0IHRvIHRydWUsIHRoZSBpbm5lciBhcHAgaGFzaCB3aWxsIG5vdCBiZSByZXBsYWNlZCBpbiB0aGUgc3RvcmVJbm5lckFwcFN0YXRlLiBBbHNvIHRoZSBiSW1tZWRpYXRlSGFzaFJlcGxhY2Vcblx0ICogXHRcdCAgd2lsbCBiZSBpZ25vcmVkLlxuXHQgKiBAcmV0dXJucyBBIFByb21pc2Ugb2JqZWN0IHRvIG1vbml0b3Igd2hlbiBhbGwgdGhlIGFjdGlvbnMgb2YgdGhlIGZ1bmN0aW9uIGhhdmUgYmVlbiBleGVjdXRlZDsgaWYgdGhlIGV4ZWN1dGlvbiBpcyBzdWNjZXNzZnVsLCB0aGVcblx0ICogICAgICAgICAgYXBwIHN0YXRlIGtleSBpcyByZXR1cm5lZDsgaWYgYW4gZXJyb3Igb2NjdXJzLCBhbiBvYmplY3Qgb2YgdHlwZSB7QGxpbmsgc2FwLmZlLm5hdmlnYXRpb24uTmF2RXJyb3J9IGlzXG5cdCAqICAgICAgICAgIHJldHVybmVkXG5cdCAqL1xuXHRhc3luYyBzdG9yZUlubmVyQXBwU3RhdGVBc3luYyhcblx0XHRtSW5uZXJBcHBEYXRhOiBJbm5lckFwcERhdGEsXG5cdFx0YkltbWVkaWF0ZUhhc2hSZXBsYWNlPzogYm9vbGVhbixcblx0XHRiU2tpcEhhc2hSZXBsYWNlPzogYm9vbGVhblxuXHQpOiBQcm9taXNlPHN0cmluZz4ge1xuXHRcdC8vIHNhZmVseSBjb252ZXJ0aW5nIEpRdWVycnkgZGVmZXJyZWQgdG8gRVM2IHByb21pc2Vcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT5cblx0XHRcdHRoaXMub05hdkhhbmRsZXIuc3RvcmVJbm5lckFwcFN0YXRlQXN5bmMobUlubmVyQXBwRGF0YSwgYkltbWVkaWF0ZUhhc2hSZXBsYWNlLCBiU2tpcEhhc2hSZXBsYWNlKS50aGVuKHJlc29sdmUsIHJlamVjdClcblx0XHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoYW5nZXMgdGhlIFVSTCBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgYXBwIHN0YXRlIGFuZCBzdG9yZXMgdGhlIGFwcCBzdGF0ZSBmb3IgbGF0ZXIgcmV0cmlldmFsLlxuXHQgKlxuXHQgKiBAcGFyYW0gbUlubmVyQXBwRGF0YSBPYmplY3QgY29udGFpbmluZyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgYXBwXG5cdCAqIEBwYXJhbSBbYkltbWVkaWF0ZUhhc2hSZXBsYWNlXSBJZiBzZXQgdG8gZmFsc2UsIHRoZSBpbm5lciBhcHAgaGFzaCB3aWxsIG5vdCBiZSByZXBsYWNlZCB1bnRpbCBzdG9yaW5nIGlzIHN1Y2Nlc3NmdWw7IGRvIG5vdFxuXHQgKiBAcmV0dXJucyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgYXBwU3RhdGVJZCBhbmQgYSBwcm9taXNlIG9iamVjdCB0byBtb25pdG9yIHdoZW4gYWxsIHRoZSBhY3Rpb25zIG9mIHRoZSBmdW5jdGlvbiBoYXZlIGJlZW5cblx0ICogZXhlY3V0ZWQ7IFBsZWFzZSBub3RlIHRoYXQgdGhlIGFwcFN0YXRlS2V5IG1heSBiZSB1bmRlZmluZWQgb3IgZW1wdHkuXG5cdCAqL1xuXHRzdG9yZUlubmVyQXBwU3RhdGVXaXRoSW1tZWRpYXRlUmV0dXJuKG1Jbm5lckFwcERhdGE6IElubmVyQXBwRGF0YSwgYkltbWVkaWF0ZUhhc2hSZXBsYWNlOiBib29sZWFuIHwgdW5kZWZpbmVkKTogb2JqZWN0IHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5zdG9yZUlubmVyQXBwU3RhdGVXaXRoSW1tZWRpYXRlUmV0dXJuKG1Jbm5lckFwcERhdGEsIGJJbW1lZGlhdGVIYXNoUmVwbGFjZSk7XG5cdH1cblxuXHQvKipcblx0ICogQ2hhbmdlcyB0aGUgVVJMIGFjY29yZGluZyB0byB0aGUgY3VycmVudCBzQXBwU3RhdGVLZXkuIEFzIGFuIHJlYWN0aW9uIHJvdXRlIGNoYW5nZSBldmVudCB3aWxsIGJlIHRyaWdnZXJlZC5cblx0ICpcblx0ICogQHBhcmFtIHNBcHBTdGF0ZUtleSBUaGUgbmV3IGFwcCBzdGF0ZSBrZXkuXG5cdCAqL1xuXHRyZXBsYWNlSGFzaChzQXBwU3RhdGVLZXk6IHN0cmluZyk6IHZvaWQge1xuXHRcdHRoaXMub05hdkhhbmRsZXIucmVwbGFjZUhhc2goc0FwcFN0YXRlS2V5KTtcblx0fVxuXG5cdHJlcGxhY2VJbm5lckFwcFN0YXRlS2V5KHNBcHBIYXNoOiBzdHJpbmcsIHNBcHBTdGF0ZUtleTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5fcmVwbGFjZUlubmVyQXBwU3RhdGVLZXkoc0FwcEhhc2gsIHNBcHBTdGF0ZUtleSk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IHNpbmdsZSB2YWx1ZXMgZnJvbSBTZWxlY3Rpb25WYXJpYW50IGZvciB1cmwgcGFyYW1ldGVycy5cblx0ICpcblx0ICogQHBhcmFtIFt2U2VsZWN0aW9uVmFyaWFudF1cblx0ICogQHBhcmFtIFt2U2VsZWN0aW9uVmFyaWFudC5vVXJsUGFyYW1hdGVyc11cblx0ICogQHJldHVybnMgVGhlIHVybCBwYXJhbWV0ZXJzXG5cdCAqL1xuXHRnZXRVcmxQYXJhbWV0ZXJzRnJvbVNlbGVjdGlvblZhcmlhbnQodlNlbGVjdGlvblZhcmlhbnQ6IHN0cmluZyB8IG9iamVjdCB8IHVuZGVmaW5lZCk6IHVua25vd24ge1xuXHRcdHJldHVybiB0aGlzLm9OYXZIYW5kbGVyLl9nZXRVUkxQYXJhbWV0ZXJzRnJvbVNlbGVjdGlvblZhcmlhbnQodlNlbGVjdGlvblZhcmlhbnQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNhdmUgYXBwIHN0YXRlIGFuZCByZXR1cm4gaW1tZWRpYXRlbHkgd2l0aG91dCB3YWl0aW5nIGZvciByZXNwb25zZS5cblx0ICpcblx0ICogQHBhcmFtIG9JblNlbGVjdGlvblZhcmlhbnQgSW5zdGFuY2Ugb2Ygc2FwLmZlLm5hdmlnYXRpb24uU2VsZWN0aW9uVmFyaWFudFxuXHQgKiBAcmV0dXJucyBBcHBTdGF0ZSBrZXlcblx0ICovXG5cdHNhdmVBcHBTdGF0ZVdpdGhJbW1lZGlhdGVSZXR1cm4ob0luU2VsZWN0aW9uVmFyaWFudDogU2VsZWN0aW9uVmFyaWFudCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKG9JblNlbGVjdGlvblZhcmlhbnQpIHtcblx0XHRcdGNvbnN0IHNTZWxlY3Rpb25WYXJpYW50ID0gb0luU2VsZWN0aW9uVmFyaWFudC50b0pTT05TdHJpbmcoKSwgLy8gY3JlYXRlIGFuIFNWIGZvciBhcHAgc3RhdGUgaW4gc3RyaW5nIGZvcm1hdFxuXHRcdFx0XHRvU2VsZWN0aW9uVmFyaWFudCA9IEpTT04ucGFyc2Uoc1NlbGVjdGlvblZhcmlhbnQpLCAvLyBjb252ZXJ0IHN0cmluZyBpbnRvIEpTT04gdG8gc3RvcmUgaW4gQXBwU3RhdGVcblx0XHRcdFx0b1hBcHBTdGF0ZU9iamVjdCA9IHtcblx0XHRcdFx0XHRzZWxlY3Rpb25WYXJpYW50OiBvU2VsZWN0aW9uVmFyaWFudFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRvUmV0dXJuID0gdGhpcy5vTmF2SGFuZGxlci5fc2F2ZUFwcFN0YXRlV2l0aEltbWVkaWF0ZVJldHVybihvWEFwcFN0YXRlT2JqZWN0KTtcblx0XHRcdHJldHVybiBvUmV0dXJuPy5hcHBTdGF0ZUtleSA/IG9SZXR1cm4uYXBwU3RhdGVLZXkgOiBcIlwiO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBNaXggQXR0cmlidXRlcyBhbmQgc2VsZWN0aW9uVmFyaWFudC5cblx0ICpcblx0ICogQHBhcmFtIHZTZW1hbnRpY0F0dHJpYnV0ZXMgT2JqZWN0LyhBcnJheSBvZiBPYmplY3RzKSBjb250YWluaW5nIGtleS92YWx1ZSBwYWlyc1xuXHQgKiBAcGFyYW0gc1NlbGVjdGlvblZhcmlhbnQgVGhlIHNlbGVjdGlvbiB2YXJpYW50IGluIHN0cmluZyBmb3JtYXQgYXMgcHJvdmlkZWQgYnkgdGhlIFNtYXJ0RmlsdGVyQmFyIGNvbnRyb2xcblx0ICogQHBhcmFtIGlTdXBwcmVzc2lvbkJlaGF2aW9yIEluZGljYXRlcyB3aGV0aGVyIHNlbWFudGljXG5cdCAqICAgICAgICBhdHRyaWJ1dGVzIHdpdGggc3BlY2lhbCB2YWx1ZXMgKHNlZSB7QGxpbmsgc2FwLmZlLm5hdmlnYXRpb24uU3VwcHJlc3Npb25CZWhhdmlvciBzdXBwcmVzc2lvbiBiZWhhdmlvcn0pIG11c3QgYmVcblx0ICogICAgICAgIHN1cHByZXNzZWQgYmVmb3JlIHRoZXkgYXJlIGNvbWJpbmVkIHdpdGggdGhlIHNlbGVjdGlvbiB2YXJpYW50OyBzZXZlcmFsXG5cdCAqICAgICAgICB7QGxpbmsgc2FwLmZlLm5hdmlnYXRpb24uU3VwcHJlc3Npb25CZWhhdmlvciBzdXBwcmVzc2lvbiBiZWhhdmlvcnN9IGNhbiBiZSBjb21iaW5lZCB3aXRoIHRoZSBiaXR3aXNlIE9SIG9wZXJhdG9yXG5cdCAqICAgICAgICAofClcblx0ICogQHJldHVybnMgSW5zdGFuY2Ugb2Yge0BsaW5rIHNhcC5mZS5uYXZpZ2F0aW9uLlNlbGVjdGlvblZhcmlhbnR9XG5cdCAqL1xuXHRtaXhBdHRyaWJ1dGVzQW5kU2VsZWN0aW9uVmFyaWFudChcblx0XHR2U2VtYW50aWNBdHRyaWJ1dGVzOiBvYmplY3QgfCB1bmtub3duW10sXG5cdFx0c1NlbGVjdGlvblZhcmlhbnQ6IHN0cmluZyB8IFNlcmlhbGl6ZWRTZWxlY3Rpb25WYXJpYW50LFxuXHRcdGlTdXBwcmVzc2lvbkJlaGF2aW9yPzogbnVtYmVyXG5cdCk6IFNlbGVjdGlvblZhcmlhbnQge1xuXHRcdHJldHVybiB0aGlzLm9OYXZIYW5kbGVyLm1peEF0dHJpYnV0ZXNBbmRTZWxlY3Rpb25WYXJpYW50KHZTZW1hbnRpY0F0dHJpYnV0ZXMsIHNTZWxlY3Rpb25WYXJpYW50LCBpU3VwcHJlc3Npb25CZWhhdmlvcik7XG5cdH1cblxuXHQvKipcblx0ICogVGhlIG1ldGhvZCBjcmVhdGVzIGEgY29udGV4dCB1cmwgYmFzZWQgb24gcHJvdmlkZWQgZGF0YS4gVGhpcyBjb250ZXh0IHVybCBjYW4gZWl0aGVyIGJlIHVzZWQgYXMuXG5cdCAqXG5cdCAqIEBwYXJhbSBzRW50aXR5U2V0TmFtZSBVc2VkIGZvciB1cmwgZGV0ZXJtaW5hdGlvblxuXHQgKiBAcGFyYW0gb01vZGVsIFRoZSBPRGF0YU1vZGVsIHVzZWQgZm9yIHVybCBkZXRlcm1pbmF0aW9uLiBJZiBvbWl0dGVkLCB0aGUgTmF2aWdhdGlvbkhhbmRsZXIgbW9kZWwgaXMgdXNlZC5cblx0ICogQHJldHVybnMgVGhlIGNvbnRleHQgdXJsIGZvciB0aGUgZ2l2ZW4gZW50aXRpZXNcblx0ICovXG5cdGNvbnN0cnVjdENvbnRleHRVcmwoc0VudGl0eVNldE5hbWU6IHN0cmluZywgb01vZGVsOiBPRGF0YU1vZGVsKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5jb25zdHJ1Y3RDb250ZXh0VXJsKHNFbnRpdHlTZXROYW1lLCBvTW9kZWwpO1xuXHR9XG5cblx0Z2V0SW50ZXJmYWNlKCk6IHRoaXMge1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSBtZXRob2QgcmV0dXJucyBpQXBwU3RhdGUga2V5IGZvciB0aGUgY3VycmVudCBuYXZnYXRpb24gaGFuZGxlciBpbnN0YW5jZS5cblx0ICpcblx0ICogQHJldHVybnMgSUFwcFN0YXRlIGtleVxuXHQgKi9cblx0Z2V0SUFwcFN0YXRlS2V5KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMub05hdkhhbmRsZXIuZ2V0SUFwcFN0YXRlS2V5KCk7XG5cdH1cbn1cbmZ1bmN0aW9uIGZuR2V0RW1wdHlPYmplY3QoKToge30ge1xuXHRyZXR1cm4ge307XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZuR2V0UHJvbWlzZSgpOiBQcm9taXNlPHt9PiB7XG5cdHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xufVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcm9taXNlLWZ1bmN0aW9uLWFzeW5jXG5mdW5jdGlvbiBmbkdldEpRdWVyeVByb21pc2UoKTogSlF1ZXJ5LlByb21pc2U8dW5rbm93bj4ge1xuXHRjb25zdCBvTXlEZWZmZXJlZCA9IGpRdWVyeS5EZWZlcnJlZCgpO1xuXHRvTXlEZWZmZXJlZC5yZXNvbHZlKHt9LCB7fSwgXCJpbml0aWFsXCIpO1xuXHRyZXR1cm4gb015RGVmZmVyZWQucHJvbWlzZSgpO1xufVxuXG5mdW5jdGlvbiBmbkdldEVtcHR5U3RyaW5nKCk6IHN0cmluZyB7XG5cdHJldHVybiBcIlwiO1xufVxuZXhwb3J0IGNsYXNzIE5hdmlnYXRpb25TZXJ2aWNlc01vY2sgZXh0ZW5kcyBTZXJ2aWNlRmFjdG9yeTxOYXZpZ2F0aW9uU2VydmljZVNldHRpbmdzPiB7XG5cdGluaXRQcm9taXNlOiBQcm9taXNlPHRoaXM+O1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cdFx0dGhpcy5pbml0UHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh0aGlzKTtcblx0fVxuXG5cdGdldEludGVyZmFjZSgpOiB0aGlzIHtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8vIHJldHVybiBlbXB0eSBvYmplY3Rcblx0Y3JlYXRlRW1wdHlBcHBTdGF0ZSA9IGZuR2V0RW1wdHlPYmplY3Q7XG5cblx0c3RvcmVJbm5lckFwcFN0YXRlV2l0aEltbWVkaWF0ZVJldHVybiA9IGZuR2V0RW1wdHlPYmplY3Q7XG5cblx0bWl4QXR0cmlidXRlc0FuZFNlbGVjdGlvblZhcmlhbnQgPSBmbkdldEVtcHR5T2JqZWN0O1xuXG5cdC8vIHJldHVybiBwcm9taXNlXG5cdGdldEFwcFN0YXRlID0gZm5HZXRQcm9taXNlO1xuXG5cdGdldFN0YXJ0dXBBcHBTdGF0ZSA9IGZuR2V0UHJvbWlzZTtcblxuXHRwYXJzZU5hdmlnYXRpb24gPSBmbkdldEpRdWVyeVByb21pc2U7XG5cblx0Ly8gcmV0dXJuIGVtcHR5IHN0cmluZ1xuXHRjb25zdHJ1Y3RDb250ZXh0VXJsID0gZm5HZXRFbXB0eVN0cmluZztcblxuXHRyZXBsYWNlSW5uZXJBcHBTdGF0ZUtleShzQXBwSGFzaDogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gc0FwcEhhc2ggPyBzQXBwSGFzaCA6IFwiXCI7XG5cdH1cblxuXHRnZXRJQXBwU3RhdGVLZXkgPSBmbkdldEVtcHR5U3RyaW5nO1xuXG5cdG5hdmlnYXRlKCk6IHZvaWQge1xuXHRcdC8vIERvbid0IGRvIGFueXRoaW5nXG5cdH1cbn1cblxuY2xhc3MgTmF2aWdhdGlvblNlcnZpY2VGYWN0b3J5IGV4dGVuZHMgU2VydmljZUZhY3Rvcnk8TmF2aWdhdGlvblNlcnZpY2VTZXR0aW5ncz4ge1xuXHRhc3luYyBjcmVhdGVJbnN0YW5jZShvU2VydmljZUNvbnRleHQ6IFNlcnZpY2VDb250ZXh0PE5hdmlnYXRpb25TZXJ2aWNlU2V0dGluZ3M+KTogUHJvbWlzZTxOYXZpZ2F0aW9uU2VydmljZT4ge1xuXHRcdGNvbnN0IG9OYXZpZ2F0aW9uU2VydmljZSA9IHNhcC51aS5yZXF1aXJlKFwic2FwL3VzaGVsbC9Db250YWluZXJcIilcblx0XHRcdD8gbmV3IE5hdmlnYXRpb25TZXJ2aWNlKG9TZXJ2aWNlQ29udGV4dClcblx0XHRcdDogbmV3IE5hdmlnYXRpb25TZXJ2aWNlc01vY2soKTtcblx0XHQvLyBXYWl0IEZvciBpbml0XG5cdFx0cmV0dXJuIG9OYXZpZ2F0aW9uU2VydmljZS5pbml0UHJvbWlzZS50aGVuKGZ1bmN0aW9uIChvU2VydmljZSkge1xuXHRcdFx0cmV0dXJuIG9TZXJ2aWNlIGFzIE5hdmlnYXRpb25TZXJ2aWNlO1xuXHRcdH0pO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE5hdmlnYXRpb25TZXJ2aWNlRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7TUFXYUEsaUJBQWlCO0lBQUE7SUFBQTtNQUFBO0lBQUE7SUFBQTtJQUFBO0lBQUEsT0FLN0JDLElBQUksR0FBSixnQkFBYTtNQUNaLE1BQU1DLFFBQVEsR0FBRyxJQUFJLENBQUNDLFVBQVUsRUFBRTtRQUNqQ0MsVUFBVSxHQUFHRixRQUFRLElBQUlBLFFBQVEsQ0FBQ0csV0FBVztNQUU5QyxJQUFJLENBQUNDLFdBQVcsR0FBRyxJQUFJQyxpQkFBaUIsQ0FBQ0gsVUFBVSxDQUFDO01BQ3BELElBQUksQ0FBQ0UsV0FBVyxDQUFDRSxRQUFRLENBQUNKLFVBQVUsQ0FBQ0ssUUFBUSxFQUFFLENBQUM7TUFDaEQsSUFBSSxDQUFDQyxXQUFXLEdBQUdDLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLElBQUksQ0FBQztJQUN6QyxDQUFDO0lBQUEsT0FFREMsSUFBSSxHQUFKLGdCQUFhO01BQ1osSUFBSSxDQUFDUCxXQUFXLENBQUNRLE9BQU8sRUFBRTtJQUMzQjs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FqQkM7SUFBQSxPQWtCQUMsUUFBUSxHQUFSLGtCQUNDQyxlQUF1QixFQUN2QkMsV0FBbUIsRUFDbkJDLHFCQUFzQyxFQUN0Q0MsYUFBNEIsRUFDNUJDLFNBQW9CLEVBQ3BCQyxnQkFJQyxFQUNEQyxRQUFpQixFQUNWO01BQ1A7TUFDQTtNQUNBO01BQ0EsSUFBSSxDQUFDaEIsV0FBVyxDQUFDUyxRQUFRLENBQ3hCQyxlQUFlLEVBQ2ZDLFdBQVcsRUFDWEMscUJBQXFCLEVBQ3JCQyxhQUFhLEVBQ2JDLFNBQVMsRUFDVEMsZ0JBQWdCLEVBQ2hCQyxRQUFRLENB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
|
|
337
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOYXZpZ2F0aW9uU2VydmljZSIsImluaXQiLCJvQ29udGV4dCIsImdldENvbnRleHQiLCJvQ29tcG9uZW50Iiwic2NvcGVPYmplY3QiLCJvTmF2SGFuZGxlciIsIk5hdmlnYXRpb25IYW5kbGVyIiwic2V0TW9kZWwiLCJnZXRNb2RlbCIsImluaXRQcm9taXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJleGl0IiwiZGVzdHJveSIsIm5hdmlnYXRlIiwic1NlbWFudGljT2JqZWN0Iiwic0FjdGlvbk5hbWUiLCJ2TmF2aWdhdGlvblBhcmFtZXRlcnMiLCJvSW5uZXJBcHBEYXRhIiwiZm5PbkVycm9yIiwib0V4dGVybmFsQXBwRGF0YSIsInNOYXZNb2RlIiwicGFyc2VOYXZpZ2F0aW9uIiwiX3Byb2Nlc3NCZWZvcmVTbWFydExpbmtQb3BvdmVyT3BlbnMiLCJvVGFibGVFdmVudFBhcmFtZXRlcnMiLCJzU2VsZWN0aW9uVmFyaWFudCIsIm1Jbm5lckFwcERhdGEiLCJwcm9jZXNzQmVmb3JlU21hcnRMaW5rUG9wb3Zlck9wZW5zIiwiZ2V0QXBwU3BlY2lmaWNIYXNoIiwiYXBwSGFzaCIsIl9nZXRBcHBTcGVjaWZpY0hhc2giLCJnZXRBcHBTdGF0ZUtleUFuZFVybFBhcmFtZXRlcnMiLCJfZ2V0QXBwU3RhdGVLZXlBbmRVcmxQYXJhbWV0ZXJzIiwiZ2V0VGVjaG5pY2FsUGFyYW1ldGVycyIsInNldFRlY2huaWNhbFBhcmFtZXRlcnMiLCJhVGVjaG5pY2FsUGFyYW1ldGVycyIsIm9Nb2RlbCIsInN0b3JlSW5uZXJBcHBTdGF0ZUFzeW5jIiwiYkltbWVkaWF0ZUhhc2hSZXBsYWNlIiwiYlNraXBIYXNoUmVwbGFjZSIsInJlamVjdCIsInRoZW4iLCJzdG9yZUlubmVyQXBwU3RhdGVXaXRoSW1tZWRpYXRlUmV0dXJuIiwicmVwbGFjZUhhc2giLCJzQXBwU3RhdGVLZXkiLCJyZXBsYWNlSW5uZXJBcHBTdGF0ZUtleSIsInNBcHBIYXNoIiwiX3JlcGxhY2VJbm5lckFwcFN0YXRlS2V5IiwiZ2V0VXJsUGFyYW1ldGVyc0Zyb21TZWxlY3Rpb25WYXJpYW50IiwidlNlbGVjdGlvblZhcmlhbnQiLCJfZ2V0VVJMUGFyYW1ldGVyc0Zyb21TZWxlY3Rpb25WYXJpYW50Iiwic2F2ZUFwcFN0YXRlV2l0aEltbWVkaWF0ZVJldHVybiIsIm9JblNlbGVjdGlvblZhcmlhbnQiLCJ0b0pTT05TdHJpbmciLCJvU2VsZWN0aW9uVmFyaWFudCIsIkpTT04iLCJwYXJzZSIsIm9YQXBwU3RhdGVPYmplY3QiLCJzZWxlY3Rpb25WYXJpYW50Iiwib1JldHVybiIsIl9zYXZlQXBwU3RhdGVXaXRoSW1tZWRpYXRlUmV0dXJuIiwiYXBwU3RhdGVLZXkiLCJ1bmRlZmluZWQiLCJtaXhBdHRyaWJ1dGVzQW5kU2VsZWN0aW9uVmFyaWFudCIsInZTZW1hbnRpY0F0dHJpYnV0ZXMiLCJpU3VwcHJlc3Npb25CZWhhdmlvciIsImNvbnN0cnVjdENvbnRleHRVcmwiLCJzRW50aXR5U2V0TmFtZSIsImdldEludGVyZmFjZSIsImdldElBcHBTdGF0ZUtleSIsIlNlcnZpY2UiLCJmbkdldEVtcHR5T2JqZWN0IiwiZm5HZXRQcm9taXNlIiwiZm5HZXRKUXVlcnlQcm9taXNlIiwib015RGVmZmVyZWQiLCJqUXVlcnkiLCJEZWZlcnJlZCIsInByb21pc2UiLCJmbkdldEVtcHR5U3RyaW5nIiwiTmF2aWdhdGlvblNlcnZpY2VzTW9jayIsImNyZWF0ZUVtcHR5QXBwU3RhdGUiLCJnZXRBcHBTdGF0ZSIsImdldFN0YXJ0dXBBcHBTdGF0ZSIsIlNlcnZpY2VGYWN0b3J5IiwiTmF2aWdhdGlvblNlcnZpY2VGYWN0b3J5IiwiY3JlYXRlSW5zdGFuY2UiLCJvU2VydmljZUNvbnRleHQiLCJvTmF2aWdhdGlvblNlcnZpY2UiLCJzYXAiLCJ1aSIsInJlcXVpcmUiLCJvU2VydmljZSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiTmF2aWdhdGlvblNlcnZpY2VGYWN0b3J5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSW5uZXJBcHBEYXRhIH0gZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL05hdmlnYXRpb25IYW5kbGVyXCI7XG5pbXBvcnQgTmF2aWdhdGlvbkhhbmRsZXIgZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL05hdmlnYXRpb25IYW5kbGVyXCI7XG5pbXBvcnQgdHlwZSBTZWxlY3Rpb25WYXJpYW50IGZyb20gXCJzYXAvZmUvbmF2aWdhdGlvbi9TZWxlY3Rpb25WYXJpYW50XCI7XG5pbXBvcnQgdHlwZSB7IFNlcmlhbGl6ZWRTZWxlY3Rpb25WYXJpYW50IH0gZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL1NlbGVjdGlvblZhcmlhbnRcIjtcbmltcG9ydCBTZXJ2aWNlIGZyb20gXCJzYXAvdWkvY29yZS9zZXJ2aWNlL1NlcnZpY2VcIjtcbmltcG9ydCBTZXJ2aWNlRmFjdG9yeSBmcm9tIFwic2FwL3VpL2NvcmUvc2VydmljZS9TZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IHR5cGUgT0RhdGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTW9kZWxcIjtcbmltcG9ydCBqUXVlcnkgZnJvbSBcInNhcC91aS90aGlyZHBhcnR5L2pxdWVyeVwiO1xuaW1wb3J0IHR5cGUgeyBTZXJ2aWNlQ29udGV4dCB9IGZyb20gXCJ0eXBlcy9tZXRhbW9kZWxfdHlwZXNcIjtcblxudHlwZSBOYXZpZ2F0aW9uU2VydmljZVNldHRpbmdzID0ge307XG5leHBvcnQgY2xhc3MgTmF2aWdhdGlvblNlcnZpY2UgZXh0ZW5kcyBTZXJ2aWNlPE5hdmlnYXRpb25TZXJ2aWNlU2V0dGluZ3M+IHtcblx0aW5pdFByb21pc2UhOiBQcm9taXNlPHRoaXM+O1xuXG5cdG9OYXZIYW5kbGVyITogTmF2aWdhdGlvbkhhbmRsZXI7XG5cblx0aW5pdCgpOiB2b2lkIHtcblx0XHRjb25zdCBvQ29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuXHRcdFx0b0NvbXBvbmVudCA9IG9Db250ZXh0ICYmIG9Db250ZXh0LnNjb3BlT2JqZWN0O1xuXG5cdFx0dGhpcy5vTmF2SGFuZGxlciA9IG5ldyBOYXZpZ2F0aW9uSGFuZGxlcihvQ29tcG9uZW50KTtcblx0XHR0aGlzLm9OYXZIYW5kbGVyLnNldE1vZGVsKG9Db21wb25lbnQuZ2V0TW9kZWwoKSk7XG5cdFx0dGhpcy5pbml0UHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh0aGlzKTtcblx0fVxuXG5cdGV4aXQoKTogdm9pZCB7XG5cdFx0dGhpcy5vTmF2SGFuZGxlci5kZXN0cm95KCk7XG5cdH1cblxuXHQvKipcblx0ICogVHJpZ2dlcnMgYSBjcm9zcy1hcHAgbmF2aWdhdGlvbiBhZnRlciBzYXZpbmcgdGhlIGlubmVyIGFuZCB0aGUgY3Jvc3MtYXBwIHN0YXRlcy5cblx0ICpcblx0ICogQHBhcmFtIHNTZW1hbnRpY09iamVjdCBTZW1hbnRpYyBvYmplY3Qgb2YgdGhlIHRhcmdldCBhcHBcblx0ICogQHBhcmFtIHNBY3Rpb25OYW1lIEFjdGlvbiBvZiB0aGUgdGFyZ2V0IGFwcFxuXHQgKiBAcGFyYW0gW3ZOYXZpZ2F0aW9uUGFyYW1ldGVyc10gTmF2aWdhdGlvbiBwYXJhbWV0ZXJzIGFzIGFuIG9iamVjdCB3aXRoIGtleS92YWx1ZSBwYWlycyBvciBhcyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZlxuXHQgKiAgICAgICAgc3VjaCBhbiBvYmplY3QuIElmIHBhc3NlZCBhcyBhbiBvYmplY3QsIHRoZSBwcm9wZXJ0aWVzIGFyZSBub3QgY2hlY2tlZCBhZ2FpbnN0IHRoZSA8Y29kZT5Jc1BvdGVudGlhbFNlbnNpdGl2ZTwvY29kZT4gb3Jcblx0ICogICAgICAgIDxjb2RlPk1lYXN1cmU8L2NvZGU+IHR5cGUuXG5cdCAqIEBwYXJhbSBbb0lubmVyQXBwRGF0YV0gT2JqZWN0IGZvciBzdG9yaW5nIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGFwcFxuXHQgKiBAcGFyYW0gW2ZuT25FcnJvcl0gQ2FsbGJhY2sgdGhhdCBpcyBjYWxsZWQgaWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyBuYXZpZ2F0aW9uIDxicj5cblx0ICogQHBhcmFtIFtvRXh0ZXJuYWxBcHBEYXRhXSBPYmplY3QgZm9yIHN0b3JpbmcgdGhlIHN0YXRlIHdoaWNoIHdpbGwgYmUgZm9yd2FyZGVkIHRvIHRoZSB0YXJnZXQgY29tcG9uZW50LlxuXHQgKiBAcGFyYW0gb0V4dGVybmFsQXBwRGF0YS52YWx1ZVRleHRzXG5cdCAqIEBwYXJhbSBvRXh0ZXJuYWxBcHBEYXRhLnByZXNlbnRhdGlvblZhcmlhbnRcblx0ICogQHBhcmFtIG9FeHRlcm5hbEFwcERhdGEuc2VsZWN0aW9uVmFyaWFudFxuXHQgKiBAcGFyYW0gW3NOYXZNb2RlXSBBcmd1bWVudCBpcyB1c2VkIHRvIG92ZXJ3cml0ZSB0aGUgRkxQLWNvbmZpZ3VyZWQgdGFyZ2V0IGZvciBvcGVuaW5nIGEgVVJMLiBJZiB1c2VkLCBvbmx5IHRoZVxuXHQgKiAgICAgICAgPGNvZGU+ZXhwbGFjZTwvY29kZT4gb3IgPGNvZGU+aW5wbGFjZTwvY29kZT4gdmFsdWVzIGFyZSBhbGxvd2VkLiBBbnkgb3RoZXIgdmFsdWUgd2lsbCBsZWFkIHRvIGFuIGV4Y2VwdGlvblxuXHQgKiAgICAgICAgPGNvZGU+TmF2aWdhdGlvbkhhbmRsZXIuSU5WQUxJRF9OQVZfTU9ERTwvY29kZT4uXG5cdCAqL1xuXHRuYXZpZ2F0ZShcblx0XHRzU2VtYW50aWNPYmplY3Q6IHN0cmluZyxcblx0XHRzQWN0aW9uTmFtZTogc3RyaW5nLFxuXHRcdHZOYXZpZ2F0aW9uUGFyYW1ldGVyczogc3RyaW5nIHwgb2JqZWN0LFxuXHRcdG9Jbm5lckFwcERhdGE/OiBJbm5lckFwcERhdGEsXG5cdFx0Zm5PbkVycm9yPzogRnVuY3Rpb24sXG5cdFx0b0V4dGVybmFsQXBwRGF0YT86IHtcblx0XHRcdHZhbHVlVGV4dHM/OiBvYmplY3QgfCB1bmRlZmluZWQ7XG5cdFx0XHRwcmVzZW50YXRpb25WYXJpYW50Pzogb2JqZWN0IHwgdW5kZWZpbmVkO1xuXHRcdFx0c2VsZWN0aW9uVmFyaWFudD86IG9iamVjdCB8IHVuZGVmaW5lZDtcblx0XHR9LFxuXHRcdHNOYXZNb2RlPzogc3RyaW5nXG5cdCk6IHZvaWQge1xuXHRcdC8vIFRPRE86IE5hdmlnYXRpb24gSGFuZGxlciBkb2VzIG5vdCBoYW5kbGUgbmF2aWdhdGlvbiB3aXRob3V0IGEgY29udGV4dFxuXHRcdC8vIGJ1dCBpbiB2NCBEYXRhRmllbGRGb3JJQk4gd2l0aCByZXF1aXJlc0NvbnRleHQgZmFsc2UgY2FuIHRyaWdnZXIgYSBuYXZpZ2F0aW9uIHdpdGhvdXQgYW55IGNvbnRleHRcblx0XHQvLyBUaGlzIHNob3VsZCBiZSBoYW5kbGVkXG5cdFx0dGhpcy5vTmF2SGFuZGxlci5uYXZpZ2F0ZShcblx0XHRcdHNTZW1hbnRpY09iamVjdCxcblx0XHRcdHNBY3Rpb25OYW1lLFxuXHRcdFx0dk5hdmlnYXRpb25QYXJhbWV0ZXJzLFxuXHRcdFx0b0lubmVyQXBwRGF0YSxcblx0XHRcdGZuT25FcnJvcixcblx0XHRcdG9FeHRlcm5hbEFwcERhdGEsXG5cdFx0XHRzTmF2TW9kZVxuXHRcdCk7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIHRoZSBpbmNvbWluZyBVUkwgYW5kIHJldHVybnMgYSBQcm9taXNlLlxuXHQgKlxuXHQgKiBAcmV0dXJucyBBIFByb21pc2Ugb2JqZWN0IHdoaWNoIHJldHVybnMgdGhlXG5cdCAqIGV4dHJhY3RlZCBhcHAgc3RhdGUsIHRoZSBzdGFydHVwIHBhcmFtZXRlcnMsIGFuZCB0aGUgdHlwZSBvZiBuYXZpZ2F0aW9uIHdoZW4gZXhlY3V0aW9uIGlzIHN1Y2Nlc3NmdWwsXG5cdCAqL1xuXHRwYXJzZU5hdmlnYXRpb24oKTogalF1ZXJ5LlByb21pc2U8dW5rbm93bltdPiB7XG5cdFx0cmV0dXJuIHRoaXMub05hdkhhbmRsZXIucGFyc2VOYXZpZ2F0aW9uKCkgYXMgalF1ZXJ5LlByb21pc2U8dW5rbm93bltdPjtcblx0fVxuXG5cdC8qKlxuXHQgKiBQcm9jZXNzZXMgbmF2aWdhdGlvbi1yZWxhdGVkIHRhc2tzIHJlbGF0ZWQgdG8gYmVmb3JlUG9wb3Zlck9wZW5zIGV2ZW50IGhhbmRsaW5nIGZvciB0aGUgU21hcnRMaW5rIGNvbnRyb2wgYW5kIHJldHVybnMgYSBQcm9taXNlIG9iamVjdC5cblx0ICpcblx0ICogQHBhcmFtIG9UYWJsZUV2ZW50UGFyYW1ldGVycyBUaGUgcGFyYW1ldGVycyBtYWRlIGF2YWlsYWJsZSBieSB0aGUgU21hcnRUYWJsZSBjb250cm9sIHdoZW4gdGhlIFNtYXJ0TGluayBjb250cm9sIGhhcyBiZWVuIGNsaWNrZWQsXG5cdCAqICAgICAgICBhbiBpbnN0YW5jZSBvZiBhIFBvcE92ZXIgb2JqZWN0XG5cdCAqIEBwYXJhbSBzU2VsZWN0aW9uVmFyaWFudCBTdHJpbmdpZmllZCBKU09OIG9iamVjdCBhcyByZXR1cm5lZCwgZm9yIGV4YW1wbGUsIGZyb20gZ2V0RGF0YVN1aXRlRm9ybWF0KCkgb2YgdGhlIFNtYXJ0RmlsdGVyQmFyIGNvbnRyb2xcblx0ICogQHBhcmFtIFttSW5uZXJBcHBEYXRhXSBPYmplY3QgY29udGFpbmluZyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgYXBwLiBJZiBwcm92aWRlZCwgb3BlbmluZyB0aGUgUG9wb3ZlciBpcyBkZWZlcnJlZCB1bnRpbCB0aGVcblx0ICogICAgICAgIGlubmVyIGFwcCBkYXRhIGlzIHNhdmVkIGluIGEgY29uc2lzdGVudCB3YXkuXG5cdCAqIEByZXR1cm5zIEEgUHJvbWlzZSBvYmplY3QgdG8gbW9uaXRvciB3aGVuIGFsbCBhY3Rpb25zIG9mIHRoZSBmdW5jdGlvbiBoYXZlIGJlZW4gZXhlY3V0ZWQ7IGlmIHRoZSBleGVjdXRpb24gaXMgc3VjY2Vzc2Z1bCwgdGhlXG5cdCAqICAgICAgICAgIG1vZGlmaWVkIG9UYWJsZUV2ZW50UGFyYW1ldGVycyBpcyByZXR1cm5lZDsgaWYgYW4gZXJyb3Igb2NjdXJzLCBhbiBlcnJvciBvYmplY3Qgb2YgdHlwZVxuXHQgKiAgICAgICAgICB7QGxpbmsgc2FwLmZlLm5hdmlnYXRpb24uTmF2RXJyb3J9IGlzIHJldHVybmVkXG5cdCAqL1xuXHRfcHJvY2Vzc0JlZm9yZVNtYXJ0TGlua1BvcG92ZXJPcGVucyhcblx0XHRvVGFibGVFdmVudFBhcmFtZXRlcnM6IG9iamVjdCxcblx0XHRzU2VsZWN0aW9uVmFyaWFudDogc3RyaW5nLFxuXHRcdG1Jbm5lckFwcERhdGE/OiBJbm5lckFwcERhdGFcblx0KTogSlF1ZXJ5LlByb21pc2U8dW5rbm93biwgdW5rbm93biwgdW5rbm93bj4ge1xuXHRcdHJldHVybiB0aGlzLm9OYXZIYW5kbGVyLnByb2Nlc3NCZWZvcmVTbWFydExpbmtQb3BvdmVyT3BlbnMob1RhYmxlRXZlbnRQYXJhbWV0ZXJzLCBzU2VsZWN0aW9uVmFyaWFudCwgbUlubmVyQXBwRGF0YSk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IEFwcCBzcGVjaWZpYyBoYXNoLlxuXHQgKlxuXHQgKiBAcGFyYW0gYXBwSGFzaCBUaGUgcGF0aCBzdHJpbmdcblx0ICogQHJldHVybnMgQSBzdHJpbmcgcmVwcmVzZW50aW5nIGJhc2UgcGF0aFxuXHQgKlxuXHQgKi9cblx0YXN5bmMgZ2V0QXBwU3BlY2lmaWNIYXNoKGFwcEhhc2g6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG5cdFx0cmV0dXJuIHRoaXMub05hdkhhbmRsZXIuX2dldEFwcFNwZWNpZmljSGFzaChhcHBIYXNoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQcm9jZXNzZXMgc2VsZWN0aW9uVmFyaWFudCBzdHJpbmcgYW5kIHJldHVybnMgYSBQcm9taXNlIG9iamVjdCAoc2VtYW50aWNBdHRyaWJ1dGVzIGFuZCBBcHBTdGF0ZUtleSkuXG5cdCAqXG5cdCAqIEBwYXJhbSBzU2VsZWN0aW9uVmFyaWFudCBTdHJpbmdpZmllZCBKU09OIG9iamVjdFxuXHQgKiBAcmV0dXJucyBBIFByb21pc2Ugb2JqZWN0IHRvIG1vbml0b3Igd2hlbiBhbGwgYWN0aW9ucyBpbiB0aGUgZnVuY3Rpb24gaGF2ZSBiZWVuIGV4ZWN1dGVkOyBpZiB0aGUgZXhlY3V0aW9uIGlzIHN1Y2Nlc3NmdWwsIHRoZVxuXHQgKiAgICAgICAgICBzZW1hbnRpY0F0dHJpYnV0ZXMgYXMgd2VsbCBhcyB0aGUgYXBwU3RhdGVLZXkgYXJlIHJldHVybmVkOyBpZiBhbiBlcnJvciBvY2N1cnMsIGFuIGVycm9yIG9iamVjdCBvZiB0eXBlXG5cdCAqICAgICAgICAgIHtAbGluayBzYXAuZmUubmF2aWdhdGlvbi5OYXZFcnJvcn0gaXMgcmV0dXJuZWRcblx0ICogPGJyPlxuXHQgKiBAZXhhbXBsZSA8Y29kZT5cblx0ICpcblx0ICogXHRcdHZhciBvU2VsZWN0aW9uVmFyaWFudCA9IG5ldyBzYXAuZmUubmF2aWdhdGlvbi5TZWxlY3Rpb25WYXJpYW50KCk7XG5cdCAqIFx0XHRvU2VsZWN0aW9uVmFyaWFudC5hZGRTZWxlY3RPcHRpb24oXCJDb21wYW55Q29kZVwiLCBcIklcIiwgXCJFUVwiLCBcIjAwMDFcIik7XG5cdCAqIFx0XHRvU2VsZWN0aW9uVmFyaWFudC5hZGRTZWxlY3RPcHRpb24oXCJDdXN0b21lclwiLCBcIklcIiwgXCJFUVwiLCBcIkMwMDAxXCIpO1xuXHQgKiBcdFx0dmFyIHNTZWxlY3Rpb25WYXJpYW50PSBvU2VsZWN0aW9uVmFyaWFudC50b0pTT05TdHJpbmcoKTtcblx0ICpcblx0ICogXHRcdHZhciBvTmF2aWdhdGlvbkhhbmRsZXIgPSBuZXcgc2FwLmZlLm5hdmlnYXRpb24uTmF2aWdhdGlvbkhhbmRsZXIob0NvbnRyb2xsZXIpO1xuXHQgKiBcdFx0dmFyIG9Qcm9taXNlT2JqZWN0ID0gb05hdmlnYXRpb25IYW5kbGVyLl9nZXRBcHBTdGF0ZUtleUFuZFVybFBhcmFtZXRlcnMoc1NlbGVjdGlvblZhcmlhbnQpO1xuXHQgKlxuXHQgKiBcdFx0b1Byb21pc2VPYmplY3QuZG9uZShmdW5jdGlvbihvU2VtYW50aWNBdHRyaWJ1dGVzLCBzQXBwU3RhdGVLZXkpe1xuXHQgKiBcdFx0XHQvLyBoZXJlIHlvdSBjYW4gYWRkIGNvZGluZyB0aGF0IHNob3VsZCBydW4gYWZ0ZXIgYWxsIGFwcCBzdGF0ZSBhbmQgdGhlIHNlbWFudGljIGF0dHJpYnV0ZXMgaGF2ZSBiZWVuIHJldHVybmVkLlxuXHQgKiBcdFx0fSk7XG5cdCAqXG5cdCAqIFx0XHRvUHJvbWlzZU9iamVjdC5mYWlsKGZ1bmN0aW9uKG9FcnJvcil7XG5cdCAqIFx0XHRcdC8vc29tZSBlcnJvciBoYW5kbGluZ1xuXHQgKiBcdFx0fSk7XG5cdCAqXG5cdCAqIDwvY29kZT5cblx0ICovXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJvbWlzZS1mdW5jdGlvbi1hc3luY1xuXHRnZXRBcHBTdGF0ZUtleUFuZFVybFBhcmFtZXRlcnMoc1NlbGVjdGlvblZhcmlhbnQ6IHN0cmluZyk6IEpRdWVyeS5Qcm9taXNlPHVua25vd24sIHVua25vd24sIHVua25vd24+IHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5fZ2V0QXBwU3RhdGVLZXlBbmRVcmxQYXJhbWV0ZXJzKHNTZWxlY3Rpb25WYXJpYW50KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBhcHBsaWNhdGlvbiBzcGVjaWZpYyB0ZWNobmljYWwgcGFyYW1ldGVycy5cblx0ICpcblx0ICogQHJldHVybnMgQ29udGFpbmluZyB0aGUgdGVjaG5pY2FsIHBhcmFtZXRlcnMuXG5cdCAqL1xuXHRnZXRUZWNobmljYWxQYXJhbWV0ZXJzKCk6IHN0cmluZ1tdIHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5nZXRUZWNobmljYWxQYXJhbWV0ZXJzKCk7XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyB0aGUgYXBwbGljYXRpb24gc3BlY2lmaWMgdGVjaG5pY2FsIHBhcmFtZXRlcnMuIFRlY2huaWNhbCBwYXJhbWV0ZXJzIHdpbGwgbm90IGJlIGFkZGVkIHRvIHRoZSBzZWxlY3Rpb24gdmFyaWFudCBwYXNzZWQgdG8gdGhlXG5cdCAqIGFwcGxpY2F0aW9uLlxuXHQgKiBBcyBhIGRlZmF1bHQgc2FwLXN5c3RlbSwgc2FwLXVzaGVsbC1kZWZhdWx0ZWRQYXJhbWV0ZXJOYW1lcyBhbmQgaGNwQXBwbGljYXRpb25JZCBhcmUgY29uc2lkZXJlZCBhcyB0ZWNobmljYWwgcGFyYW1ldGVycy5cblx0ICpcblx0ICogQHBhcmFtIGFUZWNobmljYWxQYXJhbWV0ZXJzIExpc3Qgb2YgcGFyYW1ldGVyIG5hbWVzIHRvIGJlIGNvbnNpZGVyZWQgYXMgdGVjaG5pY2FsIHBhcmFtZXRlcnMuIDxjb2RlPm51bGw8L2NvZGU+IG9yXG5cdCAqICAgICAgICA8Y29kZT51bmRlZmluZWQ8L2NvZGU+IG1heSBiZSB1c2VkIHRvIHJlc2V0IHRoZSBjb21wbGV0ZSBsaXN0LlxuXHQgKi9cblx0c2V0VGVjaG5pY2FsUGFyYW1ldGVycyhhVGVjaG5pY2FsUGFyYW1ldGVyczogdW5rbm93bltdKTogdm9pZCB7XG5cdFx0dGhpcy5vTmF2SGFuZGxlci5zZXRUZWNobmljYWxQYXJhbWV0ZXJzKGFUZWNobmljYWxQYXJhbWV0ZXJzKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZXRzIHRoZSBtb2RlbCB0aGF0IGlzIHVzZWQgZm9yIHZlcmlmaWNhdGlvbiBvZiBzZW5zaXRpdmUgaW5mb3JtYXRpb24uIElmIHRoZSBtb2RlbCBpcyBub3Qgc2V0LCB0aGUgdW5uYW1lZCBjb21wb25lbnQgbW9kZWwgaXMgdXNlZCBmb3IgdGhlXG5cdCAqIHZlcmlmaWNhdGlvbiBvZiBzZW5zaXRpdmUgaW5mb3JtYXRpb24uXG5cdCAqXG5cdCAqIEBwYXJhbSBvTW9kZWwgTW9kZWwgRm9yIGNoZWNraW5nIHNlbnNpdGl2ZSBpbmZvcm1hdGlvblxuXHQgKi9cblx0c2V0TW9kZWwob01vZGVsOiBPRGF0YU1vZGVsKTogdm9pZCB7XG5cdFx0dGhpcy5vTmF2SGFuZGxlci5zZXRNb2RlbChvTW9kZWwpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoYW5nZXMgdGhlIFVSTCBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgYXBwIHN0YXRlIGFuZCBzdG9yZXMgdGhlIGFwcCBzdGF0ZSBmb3IgbGF0ZXIgcmV0cmlldmFsLlxuXHQgKlxuXHQgKiBAcGFyYW0gbUlubmVyQXBwRGF0YSBPYmplY3QgY29udGFpbmluZyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgYXBwXG5cdCAqIEBwYXJhbSBbYkltbWVkaWF0ZUhhc2hSZXBsYWNlXSBJZiBzZXQgdG8gZmFsc2UsIHRoZSBpbm5lciBhcHAgaGFzaCB3aWxsIG5vdCBiZSByZXBsYWNlZCB1bnRpbCBzdG9yaW5nIGlzIHN1Y2Nlc3NmdWw7IGRvIG5vdFxuXHQgKiAgICAgICAgc2V0IHRvIGZhbHNlIGlmIHlvdSBjYW5ub3QgcmVhY3QgdG8gdGhlIHJlc29sdXRpb24gb2YgdGhlIFByb21pc2UsIGZvciBleGFtcGxlLCB3aGVuIGNhbGxpbmcgdGhlIGJlZm9yZUxpbmtQcmVzc2VkIGV2ZW50XG5cdCAqIEBwYXJhbSBbYlNraXBIYXNoUmVwbGFjZV0gSWYgc2V0IHRvIHRydWUsIHRoZSBpbm5lciBhcHAgaGFzaCB3aWxsIG5vdCBiZSByZXBsYWNlZCBpbiB0aGUgc3RvcmVJbm5lckFwcFN0YXRlLiBBbHNvIHRoZSBiSW1tZWRpYXRlSGFzaFJlcGxhY2Vcblx0ICogXHRcdCAgd2lsbCBiZSBpZ25vcmVkLlxuXHQgKiBAcmV0dXJucyBBIFByb21pc2Ugb2JqZWN0IHRvIG1vbml0b3Igd2hlbiBhbGwgdGhlIGFjdGlvbnMgb2YgdGhlIGZ1bmN0aW9uIGhhdmUgYmVlbiBleGVjdXRlZDsgaWYgdGhlIGV4ZWN1dGlvbiBpcyBzdWNjZXNzZnVsLCB0aGVcblx0ICogICAgICAgICAgYXBwIHN0YXRlIGtleSBpcyByZXR1cm5lZDsgaWYgYW4gZXJyb3Igb2NjdXJzLCBhbiBvYmplY3Qgb2YgdHlwZSB7QGxpbmsgc2FwLmZlLm5hdmlnYXRpb24uTmF2RXJyb3J9IGlzXG5cdCAqICAgICAgICAgIHJldHVybmVkXG5cdCAqL1xuXHRhc3luYyBzdG9yZUlubmVyQXBwU3RhdGVBc3luYyhcblx0XHRtSW5uZXJBcHBEYXRhOiBJbm5lckFwcERhdGEsXG5cdFx0YkltbWVkaWF0ZUhhc2hSZXBsYWNlPzogYm9vbGVhbixcblx0XHRiU2tpcEhhc2hSZXBsYWNlPzogYm9vbGVhblxuXHQpOiBQcm9taXNlPHN0cmluZz4ge1xuXHRcdC8vIHNhZmVseSBjb252ZXJ0aW5nIEpRdWVycnkgZGVmZXJyZWQgdG8gRVM2IHByb21pc2Vcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT5cblx0XHRcdHRoaXMub05hdkhhbmRsZXIuc3RvcmVJbm5lckFwcFN0YXRlQXN5bmMobUlubmVyQXBwRGF0YSwgYkltbWVkaWF0ZUhhc2hSZXBsYWNlLCBiU2tpcEhhc2hSZXBsYWNlKS50aGVuKHJlc29sdmUsIHJlamVjdClcblx0XHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoYW5nZXMgdGhlIFVSTCBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgYXBwIHN0YXRlIGFuZCBzdG9yZXMgdGhlIGFwcCBzdGF0ZSBmb3IgbGF0ZXIgcmV0cmlldmFsLlxuXHQgKlxuXHQgKiBAcGFyYW0gbUlubmVyQXBwRGF0YSBPYmplY3QgY29udGFpbmluZyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgYXBwXG5cdCAqIEBwYXJhbSBbYkltbWVkaWF0ZUhhc2hSZXBsYWNlXSBJZiBzZXQgdG8gZmFsc2UsIHRoZSBpbm5lciBhcHAgaGFzaCB3aWxsIG5vdCBiZSByZXBsYWNlZCB1bnRpbCBzdG9yaW5nIGlzIHN1Y2Nlc3NmdWw7IGRvIG5vdFxuXHQgKiBAcmV0dXJucyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgYXBwU3RhdGVJZCBhbmQgYSBwcm9taXNlIG9iamVjdCB0byBtb25pdG9yIHdoZW4gYWxsIHRoZSBhY3Rpb25zIG9mIHRoZSBmdW5jdGlvbiBoYXZlIGJlZW5cblx0ICogZXhlY3V0ZWQ7IFBsZWFzZSBub3RlIHRoYXQgdGhlIGFwcFN0YXRlS2V5IG1heSBiZSB1bmRlZmluZWQgb3IgZW1wdHkuXG5cdCAqL1xuXHRzdG9yZUlubmVyQXBwU3RhdGVXaXRoSW1tZWRpYXRlUmV0dXJuKG1Jbm5lckFwcERhdGE6IElubmVyQXBwRGF0YSwgYkltbWVkaWF0ZUhhc2hSZXBsYWNlOiBib29sZWFuIHwgdW5kZWZpbmVkKTogb2JqZWN0IHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5zdG9yZUlubmVyQXBwU3RhdGVXaXRoSW1tZWRpYXRlUmV0dXJuKG1Jbm5lckFwcERhdGEsIGJJbW1lZGlhdGVIYXNoUmVwbGFjZSk7XG5cdH1cblxuXHQvKipcblx0ICogQ2hhbmdlcyB0aGUgVVJMIGFjY29yZGluZyB0byB0aGUgY3VycmVudCBzQXBwU3RhdGVLZXkuIEFzIGFuIHJlYWN0aW9uIHJvdXRlIGNoYW5nZSBldmVudCB3aWxsIGJlIHRyaWdnZXJlZC5cblx0ICpcblx0ICogQHBhcmFtIHNBcHBTdGF0ZUtleSBUaGUgbmV3IGFwcCBzdGF0ZSBrZXkuXG5cdCAqL1xuXHRyZXBsYWNlSGFzaChzQXBwU3RhdGVLZXk6IHN0cmluZyk6IHZvaWQge1xuXHRcdHRoaXMub05hdkhhbmRsZXIucmVwbGFjZUhhc2goc0FwcFN0YXRlS2V5KTtcblx0fVxuXG5cdHJlcGxhY2VJbm5lckFwcFN0YXRlS2V5KHNBcHBIYXNoOiBzdHJpbmcsIHNBcHBTdGF0ZUtleTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5fcmVwbGFjZUlubmVyQXBwU3RhdGVLZXkoc0FwcEhhc2gsIHNBcHBTdGF0ZUtleSk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IHNpbmdsZSB2YWx1ZXMgZnJvbSBTZWxlY3Rpb25WYXJpYW50IGZvciB1cmwgcGFyYW1ldGVycy5cblx0ICpcblx0ICogQHBhcmFtIFt2U2VsZWN0aW9uVmFyaWFudF1cblx0ICogQHBhcmFtIFt2U2VsZWN0aW9uVmFyaWFudC5vVXJsUGFyYW1hdGVyc11cblx0ICogQHJldHVybnMgVGhlIHVybCBwYXJhbWV0ZXJzXG5cdCAqL1xuXHRnZXRVcmxQYXJhbWV0ZXJzRnJvbVNlbGVjdGlvblZhcmlhbnQodlNlbGVjdGlvblZhcmlhbnQ6IHN0cmluZyB8IG9iamVjdCB8IHVuZGVmaW5lZCk6IHVua25vd24ge1xuXHRcdHJldHVybiB0aGlzLm9OYXZIYW5kbGVyLl9nZXRVUkxQYXJhbWV0ZXJzRnJvbVNlbGVjdGlvblZhcmlhbnQodlNlbGVjdGlvblZhcmlhbnQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNhdmUgYXBwIHN0YXRlIGFuZCByZXR1cm4gaW1tZWRpYXRlbHkgd2l0aG91dCB3YWl0aW5nIGZvciByZXNwb25zZS5cblx0ICpcblx0ICogQHBhcmFtIG9JblNlbGVjdGlvblZhcmlhbnQgSW5zdGFuY2Ugb2Ygc2FwLmZlLm5hdmlnYXRpb24uU2VsZWN0aW9uVmFyaWFudFxuXHQgKiBAcmV0dXJucyBBcHBTdGF0ZSBrZXlcblx0ICovXG5cdHNhdmVBcHBTdGF0ZVdpdGhJbW1lZGlhdGVSZXR1cm4ob0luU2VsZWN0aW9uVmFyaWFudDogU2VsZWN0aW9uVmFyaWFudCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKG9JblNlbGVjdGlvblZhcmlhbnQpIHtcblx0XHRcdGNvbnN0IHNTZWxlY3Rpb25WYXJpYW50ID0gb0luU2VsZWN0aW9uVmFyaWFudC50b0pTT05TdHJpbmcoKSwgLy8gY3JlYXRlIGFuIFNWIGZvciBhcHAgc3RhdGUgaW4gc3RyaW5nIGZvcm1hdFxuXHRcdFx0XHRvU2VsZWN0aW9uVmFyaWFudCA9IEpTT04ucGFyc2Uoc1NlbGVjdGlvblZhcmlhbnQpLCAvLyBjb252ZXJ0IHN0cmluZyBpbnRvIEpTT04gdG8gc3RvcmUgaW4gQXBwU3RhdGVcblx0XHRcdFx0b1hBcHBTdGF0ZU9iamVjdCA9IHtcblx0XHRcdFx0XHRzZWxlY3Rpb25WYXJpYW50OiBvU2VsZWN0aW9uVmFyaWFudFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRvUmV0dXJuID0gdGhpcy5vTmF2SGFuZGxlci5fc2F2ZUFwcFN0YXRlV2l0aEltbWVkaWF0ZVJldHVybihvWEFwcFN0YXRlT2JqZWN0KTtcblx0XHRcdHJldHVybiBvUmV0dXJuPy5hcHBTdGF0ZUtleSA/IG9SZXR1cm4uYXBwU3RhdGVLZXkgOiBcIlwiO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBNaXggQXR0cmlidXRlcyBhbmQgc2VsZWN0aW9uVmFyaWFudC5cblx0ICpcblx0ICogQHBhcmFtIHZTZW1hbnRpY0F0dHJpYnV0ZXMgT2JqZWN0LyhBcnJheSBvZiBPYmplY3RzKSBjb250YWluaW5nIGtleS92YWx1ZSBwYWlyc1xuXHQgKiBAcGFyYW0gc1NlbGVjdGlvblZhcmlhbnQgVGhlIHNlbGVjdGlvbiB2YXJpYW50IGluIHN0cmluZyBmb3JtYXQgYXMgcHJvdmlkZWQgYnkgdGhlIFNtYXJ0RmlsdGVyQmFyIGNvbnRyb2xcblx0ICogQHBhcmFtIGlTdXBwcmVzc2lvbkJlaGF2aW9yIEluZGljYXRlcyB3aGV0aGVyIHNlbWFudGljXG5cdCAqICAgICAgICBhdHRyaWJ1dGVzIHdpdGggc3BlY2lhbCB2YWx1ZXMgKHNlZSB7QGxpbmsgc2FwLmZlLm5hdmlnYXRpb24uU3VwcHJlc3Npb25CZWhhdmlvciBzdXBwcmVzc2lvbiBiZWhhdmlvcn0pIG11c3QgYmVcblx0ICogICAgICAgIHN1cHByZXNzZWQgYmVmb3JlIHRoZXkgYXJlIGNvbWJpbmVkIHdpdGggdGhlIHNlbGVjdGlvbiB2YXJpYW50OyBzZXZlcmFsXG5cdCAqICAgICAgICB7QGxpbmsgc2FwLmZlLm5hdmlnYXRpb24uU3VwcHJlc3Npb25CZWhhdmlvciBzdXBwcmVzc2lvbiBiZWhhdmlvcnN9IGNhbiBiZSBjb21iaW5lZCB3aXRoIHRoZSBiaXR3aXNlIE9SIG9wZXJhdG9yXG5cdCAqICAgICAgICAofClcblx0ICogQHJldHVybnMgSW5zdGFuY2Ugb2Yge0BsaW5rIHNhcC5mZS5uYXZpZ2F0aW9uLlNlbGVjdGlvblZhcmlhbnR9XG5cdCAqL1xuXHRtaXhBdHRyaWJ1dGVzQW5kU2VsZWN0aW9uVmFyaWFudChcblx0XHR2U2VtYW50aWNBdHRyaWJ1dGVzOiBvYmplY3QgfCB1bmtub3duW10sXG5cdFx0c1NlbGVjdGlvblZhcmlhbnQ6IHN0cmluZyB8IFNlcmlhbGl6ZWRTZWxlY3Rpb25WYXJpYW50LFxuXHRcdGlTdXBwcmVzc2lvbkJlaGF2aW9yPzogbnVtYmVyXG5cdCk6IFNlbGVjdGlvblZhcmlhbnQge1xuXHRcdHJldHVybiB0aGlzLm9OYXZIYW5kbGVyLm1peEF0dHJpYnV0ZXNBbmRTZWxlY3Rpb25WYXJpYW50KHZTZW1hbnRpY0F0dHJpYnV0ZXMsIHNTZWxlY3Rpb25WYXJpYW50LCBpU3VwcHJlc3Npb25CZWhhdmlvcik7XG5cdH1cblxuXHQvKipcblx0ICogVGhlIG1ldGhvZCBjcmVhdGVzIGEgY29udGV4dCB1cmwgYmFzZWQgb24gcHJvdmlkZWQgZGF0YS4gVGhpcyBjb250ZXh0IHVybCBjYW4gZWl0aGVyIGJlIHVzZWQgYXMuXG5cdCAqXG5cdCAqIEBwYXJhbSBzRW50aXR5U2V0TmFtZSBVc2VkIGZvciB1cmwgZGV0ZXJtaW5hdGlvblxuXHQgKiBAcGFyYW0gb01vZGVsIFRoZSBPRGF0YU1vZGVsIHVzZWQgZm9yIHVybCBkZXRlcm1pbmF0aW9uLiBJZiBvbWl0dGVkLCB0aGUgTmF2aWdhdGlvbkhhbmRsZXIgbW9kZWwgaXMgdXNlZC5cblx0ICogQHJldHVybnMgVGhlIGNvbnRleHQgdXJsIGZvciB0aGUgZ2l2ZW4gZW50aXRpZXNcblx0ICovXG5cdGNvbnN0cnVjdENvbnRleHRVcmwoc0VudGl0eVNldE5hbWU6IHN0cmluZywgb01vZGVsOiBPRGF0YU1vZGVsKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5jb25zdHJ1Y3RDb250ZXh0VXJsKHNFbnRpdHlTZXROYW1lLCBvTW9kZWwpO1xuXHR9XG5cblx0Z2V0SW50ZXJmYWNlKCk6IHRoaXMge1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSBtZXRob2QgcmV0dXJucyBpQXBwU3RhdGUga2V5IGZvciB0aGUgY3VycmVudCBuYXZnYXRpb24gaGFuZGxlciBpbnN0YW5jZS5cblx0ICpcblx0ICogQHJldHVybnMgSUFwcFN0YXRlIGtleVxuXHQgKi9cblx0Z2V0SUFwcFN0YXRlS2V5KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMub05hdkhhbmRsZXIuZ2V0SUFwcFN0YXRlS2V5KCk7XG5cdH1cbn1cbmZ1bmN0aW9uIGZuR2V0RW1wdHlPYmplY3QoKToge30ge1xuXHRyZXR1cm4ge307XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZuR2V0UHJvbWlzZSgpOiBQcm9taXNlPHt9PiB7XG5cdHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xufVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcm9taXNlLWZ1bmN0aW9uLWFzeW5jXG5mdW5jdGlvbiBmbkdldEpRdWVyeVByb21pc2UoKTogSlF1ZXJ5LlByb21pc2U8dW5rbm93bj4ge1xuXHRjb25zdCBvTXlEZWZmZXJlZCA9IGpRdWVyeS5EZWZlcnJlZCgpO1xuXHRvTXlEZWZmZXJlZC5yZXNvbHZlKHt9LCB7fSwgXCJpbml0aWFsXCIpO1xuXHRyZXR1cm4gb015RGVmZmVyZWQucHJvbWlzZSgpO1xufVxuXG5mdW5jdGlvbiBmbkdldEVtcHR5U3RyaW5nKCk6IHN0cmluZyB7XG5cdHJldHVybiBcIlwiO1xufVxuZXhwb3J0IGNsYXNzIE5hdmlnYXRpb25TZXJ2aWNlc01vY2sgZXh0ZW5kcyBTZXJ2aWNlRmFjdG9yeTxOYXZpZ2F0aW9uU2VydmljZVNldHRpbmdzPiB7XG5cdGluaXRQcm9taXNlOiBQcm9taXNlPHRoaXM+O1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cdFx0dGhpcy5pbml0UHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh0aGlzKTtcblx0fVxuXG5cdGdldEludGVyZmFjZSgpOiB0aGlzIHtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8vIHJldHVybiBlbXB0eSBvYmplY3Rcblx0Y3JlYXRlRW1wdHlBcHBTdGF0ZSA9IGZuR2V0RW1wdHlPYmplY3Q7XG5cblx0c3RvcmVJbm5lckFwcFN0YXRlV2l0aEltbWVkaWF0ZVJldHVybiA9IGZuR2V0RW1wdHlPYmplY3Q7XG5cblx0bWl4QXR0cmlidXRlc0FuZFNlbGVjdGlvblZhcmlhbnQgPSBmbkdldEVtcHR5T2JqZWN0O1xuXG5cdC8vIHJldHVybiBwcm9taXNlXG5cdGdldEFwcFN0YXRlID0gZm5HZXRQcm9taXNlO1xuXG5cdGdldFN0YXJ0dXBBcHBTdGF0ZSA9IGZuR2V0UHJvbWlzZTtcblxuXHRwYXJzZU5hdmlnYXRpb24gPSBmbkdldEpRdWVyeVByb21pc2U7XG5cblx0Ly8gcmV0dXJuIGVtcHR5IHN0cmluZ1xuXHRjb25zdHJ1Y3RDb250ZXh0VXJsID0gZm5HZXRFbXB0eVN0cmluZztcblxuXHRyZXBsYWNlSW5uZXJBcHBTdGF0ZUtleShzQXBwSGFzaDogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gc0FwcEhhc2ggPyBzQXBwSGFzaCA6IFwiXCI7XG5cdH1cblxuXHRnZXRJQXBwU3RhdGVLZXkgPSBmbkdldEVtcHR5U3RyaW5nO1xuXG5cdG5hdmlnYXRlKCk6IHZvaWQge1xuXHRcdC8vIERvbid0IGRvIGFueXRoaW5nXG5cdH1cbn1cblxuY2xhc3MgTmF2aWdhdGlvblNlcnZpY2VGYWN0b3J5IGV4dGVuZHMgU2VydmljZUZhY3Rvcnk8TmF2aWdhdGlvblNlcnZpY2VTZXR0aW5ncz4ge1xuXHRhc3luYyBjcmVhdGVJbnN0YW5jZShvU2VydmljZUNvbnRleHQ6IFNlcnZpY2VDb250ZXh0PE5hdmlnYXRpb25TZXJ2aWNlU2V0dGluZ3M+KTogUHJvbWlzZTxOYXZpZ2F0aW9uU2VydmljZT4ge1xuXHRcdGNvbnN0IG9OYXZpZ2F0aW9uU2VydmljZSA9IHNhcC51aS5yZXF1aXJlKFwic2FwL3VzaGVsbC9Db250YWluZXJcIilcblx0XHRcdD8gbmV3IE5hdmlnYXRpb25TZXJ2aWNlKG9TZXJ2aWNlQ29udGV4dClcblx0XHRcdDogbmV3IE5hdmlnYXRpb25TZXJ2aWNlc01vY2soKTtcblx0XHQvLyBXYWl0IEZvciBpbml0XG5cdFx0cmV0dXJuIG9OYXZpZ2F0aW9uU2VydmljZS5pbml0UHJvbWlzZS50aGVuKGZ1bmN0aW9uIChvU2VydmljZSkge1xuXHRcdFx0cmV0dXJuIG9TZXJ2aWNlIGFzIE5hdmlnYXRpb25TZXJ2aWNlO1xuXHRcdH0pO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE5hdmlnYXRpb25TZXJ2aWNlRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7TUFXYUEsaUJBQWlCO0lBQUE7SUFBQTtNQUFBO0lBQUE7SUFBQTtJQUFBO0lBQUEsT0FLN0JDLElBQUksR0FBSixnQkFBYTtNQUNaLE1BQU1DLFFBQVEsR0FBRyxJQUFJLENBQUNDLFVBQVUsRUFBRTtRQUNqQ0MsVUFBVSxHQUFHRixRQUFRLElBQUlBLFFBQVEsQ0FBQ0csV0FBVztNQUU5QyxJQUFJLENBQUNDLFdBQVcsR0FBRyxJQUFJQyxpQkFBaUIsQ0FBQ0gsVUFBVSxDQUFDO01BQ3BELElBQUksQ0FBQ0UsV0FBVyxDQUFDRSxRQUFRLENBQUNKLFVBQVUsQ0FBQ0ssUUFBUSxFQUFFLENBQUM7TUFDaEQsSUFBSSxDQUFDQyxXQUFXLEdBQUdDLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLElBQUksQ0FBQztJQUN6QyxDQUFDO0lBQUEsT0FFREMsSUFBSSxHQUFKLGdCQUFhO01BQ1osSUFBSSxDQUFDUCxXQUFXLENBQUNRLE9BQU8sRUFBRTtJQUMzQjs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FqQkM7SUFBQSxPQWtCQUMsUUFBUSxHQUFSLGtCQUNDQyxlQUF1QixFQUN2QkMsV0FBbUIsRUFDbkJDLHFCQUFzQyxFQUN0Q0MsYUFBNEIsRUFDNUJDLFNBQW9CLEVBQ3BCQyxnQkFJQyxFQUNEQyxRQUFpQixFQUNWO01BQ1A7TUFDQTtNQUNBO01BQ0EsSUFB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
|
|
@@ -94,11 +94,11 @@ export class NavigationService extends Service<NavigationServiceSettings> {
|
|
|
94
94
|
* modified oTableEventParameters is returned; if an error occurs, an error object of type
|
|
95
95
|
* {@link sap.fe.navigation.NavError} is returned
|
|
96
96
|
*/
|
|
97
|
-
|
|
97
|
+
_processBeforeSmartLinkPopoverOpens(
|
|
98
98
|
oTableEventParameters: object,
|
|
99
99
|
sSelectionVariant: string,
|
|
100
100
|
mInnerAppData?: InnerAppData
|
|
101
|
-
): Promise<unknown> {
|
|
101
|
+
): JQuery.Promise<unknown, unknown, unknown> {
|
|
102
102
|
return this.oNavHandler.processBeforeSmartLinkPopoverOpens(oTableEventParameters, sSelectionVariant, mInnerAppData);
|
|
103
103
|
}
|
|
104
104
|
|
|
@@ -141,7 +141,8 @@ export class NavigationService extends Service<NavigationServiceSettings> {
|
|
|
141
141
|
*
|
|
142
142
|
* </code>
|
|
143
143
|
*/
|
|
144
|
-
|
|
144
|
+
// eslint-disable-next-line @typescript-eslint/promise-function-async
|
|
145
|
+
getAppStateKeyAndUrlParameters(sSelectionVariant: string): JQuery.Promise<unknown, unknown, unknown> {
|
|
145
146
|
return this.oNavHandler._getAppStateKeyAndUrlParameters(sSelectionVariant);
|
|
146
147
|
}
|
|
147
148
|
|