@sapui5/sap.fe.core 1.120.0 → 1.120.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (621) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/ActionRuntime.js +278 -2
  4. package/src/sap/fe/core/AppComponent.js +464 -2
  5. package/src/sap/fe/core/AppStateHandler.js +225 -2
  6. package/src/sap/fe/core/BaseController.js +71 -2
  7. package/src/sap/fe/core/CommonUtils.js +1405 -2
  8. package/src/sap/fe/core/CommonUtils.ts +45 -43
  9. package/src/sap/fe/core/ExtensionAPI.js +303 -2
  10. package/src/sap/fe/core/InsightsFormattersExtension.js +23 -2
  11. package/src/sap/fe/core/PageController.js +197 -2
  12. package/src/sap/fe/core/PageController.ts +3 -2
  13. package/src/sap/fe/core/ResourceModel.js +67 -2
  14. package/src/sap/fe/core/TemplateComponent.js +214 -2
  15. package/src/sap/fe/core/TemplateModel.js +71 -2
  16. package/src/sap/fe/core/buildingBlocks/AttributeModel.js +51 -2
  17. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js +161 -2
  18. package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter.js +10 -2
  19. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.js +83 -2
  20. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.js +920 -9
  21. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.js +79 -5
  22. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.js +174 -2
  23. package/src/sap/fe/core/buildingBlocks/TraceInfo.js +423 -2
  24. package/src/sap/fe/core/controllerextensions/BaseControllerExtension.js +31 -2
  25. package/src/sap/fe/core/controllerextensions/BusyLocker.js +88 -2
  26. package/src/sap/fe/core/controllerextensions/EditFlow.js +2711 -2
  27. package/src/sap/fe/core/controllerextensions/EditFlow.ts +54 -22
  28. package/src/sap/fe/core/controllerextensions/Feedback.js +58 -2
  29. package/src/sap/fe/core/controllerextensions/HookSupport.js +121 -2
  30. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +75 -2
  31. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +679 -2
  32. package/src/sap/fe/core/controllerextensions/InternalRouting.js +1100 -2
  33. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +46 -4
  34. package/src/sap/fe/core/controllerextensions/KPIManagement.js +1017 -2
  35. package/src/sap/fe/core/controllerextensions/MassEdit.js +118 -2
  36. package/src/sap/fe/core/controllerextensions/MessageHandler.js +211 -2
  37. package/src/sap/fe/core/controllerextensions/PageReady.js +249 -2
  38. package/src/sap/fe/core/controllerextensions/Paginator.js +160 -2
  39. package/src/sap/fe/core/controllerextensions/Placeholder.js +126 -2
  40. package/src/sap/fe/core/controllerextensions/Recommendations.js +352 -2
  41. package/src/sap/fe/core/controllerextensions/Recommendations.ts +158 -66
  42. package/src/sap/fe/core/controllerextensions/Routing.js +122 -2
  43. package/src/sap/fe/core/controllerextensions/RoutingListener.js +6 -2
  44. package/src/sap/fe/core/controllerextensions/Share.js +340 -2
  45. package/src/sap/fe/core/controllerextensions/Share.ts +18 -18
  46. package/src/sap/fe/core/controllerextensions/SideEffects.js +589 -2
  47. package/src/sap/fe/core/controllerextensions/SideEffects.ts +42 -7
  48. package/src/sap/fe/core/controllerextensions/ViewState.js +926 -2
  49. package/src/sap/fe/core/controllerextensions/ViewState.ts +1 -1
  50. package/src/sap/fe/core/controllerextensions/cards/CollaborationManager.js +69 -2
  51. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +132 -2
  52. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +757 -2
  53. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +133 -2
  54. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js +279 -2
  55. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js +99 -2
  56. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1158 -2
  57. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +4 -1
  58. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +645 -2
  59. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +24 -9
  60. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +321 -2
  61. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +2 -1
  62. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js +79 -2
  63. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +1557 -2
  64. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +30 -8
  65. package/src/sap/fe/core/controllerextensions/editFlow/operations.js +6 -2
  66. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +145 -2
  67. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +1215 -2
  68. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +18 -17
  69. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js +311 -2
  70. package/src/sap/fe/core/controllerextensions/routing/NavigationReason.js +13 -2
  71. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +874 -2
  72. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +17 -1
  73. package/src/sap/fe/core/controls/Any.js +28 -2
  74. package/src/sap/fe/core/controls/AnyElement.js +24 -2
  75. package/src/sap/fe/core/controls/CommandExecution.js +74 -2
  76. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js +226 -2
  77. package/src/sap/fe/core/controls/EventDelegateHook.js +57 -2
  78. package/src/sap/fe/core/controls/FilterBar.js +163 -2
  79. package/src/sap/fe/core/controls/FormElementWrapper.js +88 -2
  80. package/src/sap/fe/core/controls/MassEditSelect.js +29 -2
  81. package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +33 -2
  82. package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.js +291 -2
  83. package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.tsx +131 -123
  84. package/src/sap/fe/core/controls/filterbar/FilterContainer.js +113 -2
  85. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +232 -2
  86. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +140 -2
  87. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +334 -2
  88. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +475 -2
  89. package/src/sap/fe/core/converters/ConverterContext.js +397 -2
  90. package/src/sap/fe/core/converters/ManifestSettings.js +83 -2
  91. package/src/sap/fe/core/converters/ManifestWrapper.js +414 -2
  92. package/src/sap/fe/core/converters/MetaModelConverter.js +1196 -2
  93. package/src/sap/fe/core/converters/MetaModelConverter.ts +13 -0
  94. package/src/sap/fe/core/converters/TemplateConverter.js +85 -2
  95. package/src/sap/fe/core/converters/annotations/DataField.js +594 -2
  96. package/src/sap/fe/core/converters/annotations/DataField.ts +180 -87
  97. package/src/sap/fe/core/converters/common/AnnotationConverter.js +2031 -2
  98. package/src/sap/fe/core/converters/controls/Common/Action.js +414 -2
  99. package/src/sap/fe/core/converters/controls/Common/Chart.js +344 -2
  100. package/src/sap/fe/core/converters/controls/Common/Criticality.js +38 -2
  101. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +298 -2
  102. package/src/sap/fe/core/converters/controls/Common/Form.js +226 -2
  103. package/src/sap/fe/core/converters/controls/Common/KPI.js +385 -2
  104. package/src/sap/fe/core/converters/controls/Common/Table.js +3085 -2
  105. package/src/sap/fe/core/converters/controls/Common/Table.ts +49 -13
  106. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +652 -2
  107. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +23 -4
  108. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +893 -2
  109. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +310 -2
  110. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +52 -2
  111. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +420 -2
  112. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +628 -2
  113. package/src/sap/fe/core/converters/helpers/Aggregation.js +224 -2
  114. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +200 -2
  115. package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +170 -2
  116. package/src/sap/fe/core/converters/helpers/ID.js +88 -2
  117. package/src/sap/fe/core/converters/helpers/InsightsHelpers.js +43 -2
  118. package/src/sap/fe/core/converters/helpers/IssueManager.js +60 -2
  119. package/src/sap/fe/core/converters/helpers/Key.js +58 -2
  120. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +76 -2
  121. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +2 -2
  122. package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +138 -2
  123. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +411 -2
  124. package/src/sap/fe/core/converters/templates/ListReportConverter.js +578 -2
  125. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +480 -2
  126. package/src/sap/fe/core/designtime/AppComponent.designtime.js +89 -2
  127. package/src/sap/fe/core/formatters/CollaborationFormatter.js +75 -2
  128. package/src/sap/fe/core/formatters/FPMFormatter.js +42 -2
  129. package/src/sap/fe/core/formatters/FiscalFormat.js +338 -2
  130. package/src/sap/fe/core/formatters/KPIFormatter.js +82 -2
  131. package/src/sap/fe/core/formatters/StandardFormatter.js +89 -2
  132. package/src/sap/fe/core/formatters/TableFormatter.js +265 -2
  133. package/src/sap/fe/core/formatters/TableFormatterTypes.js +16 -2
  134. package/src/sap/fe/core/formatters/ValueFormatter.js +166 -2
  135. package/src/sap/fe/core/fpm/Component.js +91 -2
  136. package/src/sap/fe/core/fpm/manifest.json +1 -1
  137. package/src/sap/fe/core/helpers/AdaptiveCardExpressionCompiler.js +387 -2
  138. package/src/sap/fe/core/helpers/AnnotationEnum.js +26 -2
  139. package/src/sap/fe/core/helpers/AppStartupHelper.js +352 -2
  140. package/src/sap/fe/core/helpers/AppStartupHelper.ts +27 -0
  141. package/src/sap/fe/core/helpers/BindingHelper.js +98 -2
  142. package/src/sap/fe/core/helpers/BindingToolkit.js +1783 -2
  143. package/src/sap/fe/core/helpers/BindingToolkitEvaluator.js +45 -0
  144. package/src/sap/fe/core/helpers/BindingToolkitEvaluator.ts +46 -0
  145. package/src/sap/fe/core/helpers/ClassSupport.js +449 -2
  146. package/src/sap/fe/core/helpers/DeleteHelper.js +619 -2
  147. package/src/sap/fe/core/helpers/DeleteHelper.ts +1 -1
  148. package/src/sap/fe/core/helpers/DraftEditState.js +235 -2
  149. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +51 -2
  150. package/src/sap/fe/core/helpers/EditState.js +56 -2
  151. package/src/sap/fe/core/helpers/ExcelFormatHelper.js +51 -2
  152. package/src/sap/fe/core/helpers/FPMHelper.js +95 -2
  153. package/src/sap/fe/core/helpers/KeepAliveHelper.js +176 -2
  154. package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +24 -2
  155. package/src/sap/fe/core/helpers/LoaderUtils.js +25 -2
  156. package/src/sap/fe/core/helpers/MassEditHelper.js +1241 -2
  157. package/src/sap/fe/core/helpers/MessageStrip.js +60 -2
  158. package/src/sap/fe/core/helpers/MetaModelFunction.js +513 -2
  159. package/src/sap/fe/core/helpers/ModelHelper.js +515 -2
  160. package/src/sap/fe/core/helpers/PasteHelper.js +170 -2
  161. package/src/sap/fe/core/helpers/RecommendationHelper.js +83 -2
  162. package/src/sap/fe/core/helpers/ResourceModelHelper.js +53 -2
  163. package/src/sap/fe/core/helpers/SemanticDateOperators.js +560 -2
  164. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +66 -2
  165. package/src/sap/fe/core/helpers/SizeHelper.js +49 -2
  166. package/src/sap/fe/core/helpers/StableIdHelper.js +226 -2
  167. package/src/sap/fe/core/helpers/StandardRecommendationHelper.js +240 -2
  168. package/src/sap/fe/core/helpers/StandardRecommendationHelper.ts +150 -22
  169. package/src/sap/fe/core/helpers/Synchronization.js +31 -2
  170. package/src/sap/fe/core/helpers/TitleHelper.js +248 -2
  171. package/src/sap/fe/core/helpers/TitleHelper.ts +1 -5
  172. package/src/sap/fe/core/helpers/ToES6Promise.js +27 -2
  173. package/src/sap/fe/core/helpers/TypeGuards.js +177 -2
  174. package/src/sap/fe/core/jsx-runtime/Fragment.js +10 -2
  175. package/src/sap/fe/core/jsx-runtime/ViewLoader.js +76 -2
  176. package/src/sap/fe/core/jsx-runtime/jsx-control.js +156 -2
  177. package/src/sap/fe/core/jsx-runtime/jsx-xml.js +90 -2
  178. package/src/sap/fe/core/jsx-runtime/jsx.js +37 -2
  179. package/src/sap/fe/core/jsx-runtime/jsxs.js +6 -2
  180. package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +154 -2
  181. package/src/sap/fe/core/library.js +424 -2
  182. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +137 -2
  183. package/src/sap/fe/core/messagebundle.properties +9 -3
  184. package/src/sap/fe/core/messagebundle_ca.properties +314 -3
  185. package/src/sap/fe/core/messagebundle_cnr.properties +719 -0
  186. package/src/sap/fe/core/messagebundle_en.properties +272 -4
  187. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +511 -194
  188. package/src/sap/fe/core/operationsHelper.js +181 -2
  189. package/src/sap/fe/core/operationsHelper.ts +7 -3
  190. package/src/sap/fe/core/rootView/Fcl.controller.js +805 -2
  191. package/src/sap/fe/core/rootView/NavContainer.controller.js +181 -2
  192. package/src/sap/fe/core/rootView/RootViewBaseController.js +532 -2
  193. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +56 -2
  194. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +192 -2
  195. package/src/sap/fe/core/services/CollaborationManagerServiceFactory.js +156 -2
  196. package/src/sap/fe/core/services/CollaborativeToolsServiceFactory.js +82 -2
  197. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +125 -2
  198. package/src/sap/fe/core/services/NavigationServiceFactory.js +327 -2
  199. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +87 -2
  200. package/src/sap/fe/core/services/RoutingServiceFactory.js +857 -2
  201. package/src/sap/fe/core/services/RoutingServiceFactory.ts +21 -0
  202. package/src/sap/fe/core/services/ShellServicesFactory.js +679 -2
  203. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +815 -2
  204. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +87 -33
  205. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +371 -2
  206. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +0 -3
  207. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +33 -2
  208. package/src/sap/fe/core/support/CommonHelper.js +59 -2
  209. package/src/sap/fe/core/support/Diagnostics.js +40 -2
  210. package/src/sap/fe/core/templating/ActionHelper.js +50 -2
  211. package/src/sap/fe/core/templating/CommonFormatters.js +68 -2
  212. package/src/sap/fe/core/templating/CriticalityFormatters.js +128 -2
  213. package/src/sap/fe/core/templating/DataFieldFormatters.js +145 -2
  214. package/src/sap/fe/core/templating/DataModelPathHelper.js +529 -2
  215. package/src/sap/fe/core/templating/DataModelPathHelper.ts +1 -1
  216. package/src/sap/fe/core/templating/DisplayModeFormatter.js +52 -2
  217. package/src/sap/fe/core/templating/EntitySetHelper.js +54 -2
  218. package/src/sap/fe/core/templating/EntityTypeHelper.js +44 -2
  219. package/src/sap/fe/core/templating/FieldControlHelper.js +137 -2
  220. package/src/sap/fe/core/templating/FilterHelper.js +399 -2
  221. package/src/sap/fe/core/templating/FilterHelper.ts +17 -1
  222. package/src/sap/fe/core/templating/FilterTemplating.js +57 -2
  223. package/src/sap/fe/core/templating/PropertyFormatters.js +84 -2
  224. package/src/sap/fe/core/templating/PropertyHelper.js +366 -2
  225. package/src/sap/fe/core/templating/PropertyHelper.ts +8 -2
  226. package/src/sap/fe/core/templating/SemanticObjectHelper.js +87 -2
  227. package/src/sap/fe/core/templating/UIFormatters.js +567 -2
  228. package/src/sap/fe/core/type/DateTimeWithTimezone.js +31 -2
  229. package/src/sap/fe/core/type/EDM.js +80 -2
  230. package/src/sap/fe/core/type/Email.js +25 -2
  231. package/src/sap/fe/core/type/Email.ts +1 -1
  232. package/src/sap/fe/core/type/FiscalDate.js +173 -2
  233. package/ui5.yaml +0 -4
  234. package/src/sap/fe/core/ActionRuntime-dbg.js +0 -281
  235. package/src/sap/fe/core/ActionRuntime.js.map +0 -1
  236. package/src/sap/fe/core/AppComponent-dbg.js +0 -467
  237. package/src/sap/fe/core/AppComponent.js.map +0 -1
  238. package/src/sap/fe/core/AppStateHandler-dbg.js +0 -228
  239. package/src/sap/fe/core/AppStateHandler.js.map +0 -1
  240. package/src/sap/fe/core/BaseController-dbg.js +0 -74
  241. package/src/sap/fe/core/BaseController.js.map +0 -1
  242. package/src/sap/fe/core/CommonUtils-dbg.js +0 -1407
  243. package/src/sap/fe/core/CommonUtils.js.map +0 -1
  244. package/src/sap/fe/core/ExtensionAPI-dbg.js +0 -306
  245. package/src/sap/fe/core/ExtensionAPI.js.map +0 -1
  246. package/src/sap/fe/core/InsightsFormattersExtension-dbg.js +0 -26
  247. package/src/sap/fe/core/InsightsFormattersExtension.js.map +0 -1
  248. package/src/sap/fe/core/PageController-dbg.js +0 -199
  249. package/src/sap/fe/core/PageController.js.map +0 -1
  250. package/src/sap/fe/core/ResourceModel-dbg.js +0 -70
  251. package/src/sap/fe/core/ResourceModel.js.map +0 -1
  252. package/src/sap/fe/core/TemplateComponent-dbg.js +0 -217
  253. package/src/sap/fe/core/TemplateComponent.js.map +0 -1
  254. package/src/sap/fe/core/TemplateModel-dbg.js +0 -74
  255. package/src/sap/fe/core/TemplateModel.js.map +0 -1
  256. package/src/sap/fe/core/buildingBlocks/AttributeModel-dbg.js +0 -54
  257. package/src/sap/fe/core/buildingBlocks/AttributeModel.js.map +0 -1
  258. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase-dbg.js +0 -164
  259. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js.map +0 -1
  260. package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter-dbg.js +0 -13
  261. package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter.js.map +0 -1
  262. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport-dbg.js +0 -86
  263. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.js.map +0 -1
  264. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor-dbg.js +0 -931
  265. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.js.map +0 -1
  266. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock-dbg.js +0 -88
  267. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.js.map +0 -1
  268. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment-dbg.js +0 -177
  269. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.js.map +0 -1
  270. package/src/sap/fe/core/buildingBlocks/TraceInfo-dbg.js +0 -426
  271. package/src/sap/fe/core/buildingBlocks/TraceInfo.js.map +0 -1
  272. package/src/sap/fe/core/controllerextensions/BaseControllerExtension-dbg.js +0 -34
  273. package/src/sap/fe/core/controllerextensions/BaseControllerExtension.js.map +0 -1
  274. package/src/sap/fe/core/controllerextensions/BusyLocker-dbg.js +0 -91
  275. package/src/sap/fe/core/controllerextensions/BusyLocker.js.map +0 -1
  276. package/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +0 -2692
  277. package/src/sap/fe/core/controllerextensions/EditFlow.js.map +0 -1
  278. package/src/sap/fe/core/controllerextensions/Feedback-dbg.js +0 -61
  279. package/src/sap/fe/core/controllerextensions/Feedback.js.map +0 -1
  280. package/src/sap/fe/core/controllerextensions/HookSupport-dbg.js +0 -124
  281. package/src/sap/fe/core/controllerextensions/HookSupport.js.map +0 -1
  282. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation-dbg.js +0 -78
  283. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js.map +0 -1
  284. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +0 -682
  285. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js.map +0 -1
  286. package/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +0 -1062
  287. package/src/sap/fe/core/controllerextensions/InternalRouting.js.map +0 -1
  288. package/src/sap/fe/core/controllerextensions/KPIManagement-dbg.js +0 -1020
  289. package/src/sap/fe/core/controllerextensions/KPIManagement.js.map +0 -1
  290. package/src/sap/fe/core/controllerextensions/MassEdit-dbg.js +0 -121
  291. package/src/sap/fe/core/controllerextensions/MassEdit.js.map +0 -1
  292. package/src/sap/fe/core/controllerextensions/MessageHandler-dbg.js +0 -214
  293. package/src/sap/fe/core/controllerextensions/MessageHandler.js.map +0 -1
  294. package/src/sap/fe/core/controllerextensions/PageReady-dbg.js +0 -252
  295. package/src/sap/fe/core/controllerextensions/PageReady.js.map +0 -1
  296. package/src/sap/fe/core/controllerextensions/Paginator-dbg.js +0 -163
  297. package/src/sap/fe/core/controllerextensions/Paginator.js.map +0 -1
  298. package/src/sap/fe/core/controllerextensions/Placeholder-dbg.js +0 -129
  299. package/src/sap/fe/core/controllerextensions/Placeholder.js.map +0 -1
  300. package/src/sap/fe/core/controllerextensions/Recommendations-dbg.js +0 -291
  301. package/src/sap/fe/core/controllerextensions/Recommendations.js.map +0 -1
  302. package/src/sap/fe/core/controllerextensions/Routing-dbg.js +0 -125
  303. package/src/sap/fe/core/controllerextensions/Routing.js.map +0 -1
  304. package/src/sap/fe/core/controllerextensions/RoutingListener-dbg.js +0 -9
  305. package/src/sap/fe/core/controllerextensions/RoutingListener.js.map +0 -1
  306. package/src/sap/fe/core/controllerextensions/Share-dbg.js +0 -341
  307. package/src/sap/fe/core/controllerextensions/Share.js.map +0 -1
  308. package/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +0 -567
  309. package/src/sap/fe/core/controllerextensions/SideEffects.js.map +0 -1
  310. package/src/sap/fe/core/controllerextensions/ViewState-dbg.js +0 -929
  311. package/src/sap/fe/core/controllerextensions/ViewState.js.map +0 -1
  312. package/src/sap/fe/core/controllerextensions/cards/CollaborationManager-dbg.js +0 -72
  313. package/src/sap/fe/core/controllerextensions/cards/CollaborationManager.js.map +0 -1
  314. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase-dbg.js +0 -135
  315. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js.map +0 -1
  316. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync-dbg.js +0 -760
  317. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js.map +0 -1
  318. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon-dbg.js +0 -136
  319. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js.map +0 -1
  320. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block-dbg.js +0 -282
  321. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js.map +0 -1
  322. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog-dbg.js +0 -102
  323. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js.map +0 -1
  324. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper-dbg.js +0 -1160
  325. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js.map +0 -1
  326. package/src/sap/fe/core/controllerextensions/editFlow/draft-dbg.js +0 -635
  327. package/src/sap/fe/core/controllerextensions/editFlow/draft.js.map +0 -1
  328. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup-dbg.js +0 -323
  329. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js.map +0 -1
  330. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal-dbg.js +0 -82
  331. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js.map +0 -1
  332. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade-dbg.js +0 -1543
  333. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js.map +0 -1
  334. package/src/sap/fe/core/controllerextensions/editFlow/operations-dbg.js +0 -9
  335. package/src/sap/fe/core/controllerextensions/editFlow/operations.js.map +0 -1
  336. package/src/sap/fe/core/controllerextensions/editFlow/sticky-dbg.js +0 -148
  337. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js.map +0 -1
  338. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling-dbg.js +0 -1218
  339. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js.map +0 -1
  340. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher-dbg.js +0 -314
  341. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js.map +0 -1
  342. package/src/sap/fe/core/controllerextensions/routing/NavigationReason-dbg.js +0 -16
  343. package/src/sap/fe/core/controllerextensions/routing/NavigationReason.js.map +0 -1
  344. package/src/sap/fe/core/controllerextensions/routing/RouterProxy-dbg.js +0 -864
  345. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js.map +0 -1
  346. package/src/sap/fe/core/controls/Any-dbg.js +0 -31
  347. package/src/sap/fe/core/controls/Any.js.map +0 -1
  348. package/src/sap/fe/core/controls/AnyElement-dbg.js +0 -27
  349. package/src/sap/fe/core/controls/AnyElement.js.map +0 -1
  350. package/src/sap/fe/core/controls/CommandExecution-dbg.js +0 -77
  351. package/src/sap/fe/core/controls/CommandExecution.js.map +0 -1
  352. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block-dbg.js +0 -229
  353. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js.map +0 -1
  354. package/src/sap/fe/core/controls/EventDelegateHook-dbg.js +0 -60
  355. package/src/sap/fe/core/controls/EventDelegateHook.js.map +0 -1
  356. package/src/sap/fe/core/controls/FilterBar-dbg.js +0 -166
  357. package/src/sap/fe/core/controls/FilterBar.js.map +0 -1
  358. package/src/sap/fe/core/controls/FormElementWrapper-dbg.js +0 -91
  359. package/src/sap/fe/core/controls/FormElementWrapper.js.map +0 -1
  360. package/src/sap/fe/core/controls/MassEditSelect-dbg.js +0 -32
  361. package/src/sap/fe/core/controls/MassEditSelect.js.map +0 -1
  362. package/src/sap/fe/core/controls/MultiValueParameterDelegate-dbg.js +0 -36
  363. package/src/sap/fe/core/controls/MultiValueParameterDelegate.js.map +0 -1
  364. package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block-dbg.js +0 -279
  365. package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.js.map +0 -1
  366. package/src/sap/fe/core/controls/filterbar/FilterContainer-dbg.js +0 -116
  367. package/src/sap/fe/core/controls/filterbar/FilterContainer.js.map +0 -1
  368. package/src/sap/fe/core/controls/filterbar/VisualFilter-dbg.js +0 -235
  369. package/src/sap/fe/core/controls/filterbar/VisualFilter.js.map +0 -1
  370. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer-dbg.js +0 -143
  371. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js.map +0 -1
  372. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils-dbg.js +0 -337
  373. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js.map +0 -1
  374. package/src/sap/fe/core/controls/massEdit/MassEditHandlers-dbg.js +0 -478
  375. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js.map +0 -1
  376. package/src/sap/fe/core/converters/ConverterContext-dbg.js +0 -400
  377. package/src/sap/fe/core/converters/ConverterContext.js.map +0 -1
  378. package/src/sap/fe/core/converters/ManifestSettings-dbg.js +0 -86
  379. package/src/sap/fe/core/converters/ManifestSettings.js.map +0 -1
  380. package/src/sap/fe/core/converters/ManifestWrapper-dbg.js +0 -417
  381. package/src/sap/fe/core/converters/ManifestWrapper.js.map +0 -1
  382. package/src/sap/fe/core/converters/MetaModelConverter-dbg.js +0 -1185
  383. package/src/sap/fe/core/converters/MetaModelConverter.js.map +0 -1
  384. package/src/sap/fe/core/converters/TemplateConverter-dbg.js +0 -88
  385. package/src/sap/fe/core/converters/TemplateConverter.js.map +0 -1
  386. package/src/sap/fe/core/converters/annotations/DataField-dbg.js +0 -528
  387. package/src/sap/fe/core/converters/annotations/DataField.js.map +0 -1
  388. package/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +0 -2035
  389. package/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js.map +0 -1
  390. package/src/sap/fe/core/converters/common/AnnotationConverter.js.map +0 -1
  391. package/src/sap/fe/core/converters/controls/Common/Action-dbg.js +0 -417
  392. package/src/sap/fe/core/converters/controls/Common/Action.js.map +0 -1
  393. package/src/sap/fe/core/converters/controls/Common/Chart-dbg.js +0 -347
  394. package/src/sap/fe/core/converters/controls/Common/Chart.js.map +0 -1
  395. package/src/sap/fe/core/converters/controls/Common/Criticality-dbg.js +0 -41
  396. package/src/sap/fe/core/converters/controls/Common/Criticality.js.map +0 -1
  397. package/src/sap/fe/core/converters/controls/Common/DataVisualization-dbg.js +0 -301
  398. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js.map +0 -1
  399. package/src/sap/fe/core/converters/controls/Common/Form-dbg.js +0 -229
  400. package/src/sap/fe/core/converters/controls/Common/Form.js.map +0 -1
  401. package/src/sap/fe/core/converters/controls/Common/KPI-dbg.js +0 -388
  402. package/src/sap/fe/core/converters/controls/Common/KPI.js.map +0 -1
  403. package/src/sap/fe/core/converters/controls/Common/Table-dbg.js +0 -3063
  404. package/src/sap/fe/core/converters/controls/Common/Table.js.map +0 -1
  405. package/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +0 -653
  406. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js.map +0 -1
  407. package/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +0 -896
  408. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js.map +0 -1
  409. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters-dbg.js +0 -313
  410. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js.map +0 -1
  411. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar-dbg.js +0 -55
  412. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js.map +0 -1
  413. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet-dbg.js +0 -423
  414. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js.map +0 -1
  415. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection-dbg.js +0 -631
  416. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js.map +0 -1
  417. package/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +0 -227
  418. package/src/sap/fe/core/converters/helpers/Aggregation.js.map +0 -1
  419. package/src/sap/fe/core/converters/helpers/ConfigurableObject-dbg.js +0 -203
  420. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js.map +0 -1
  421. package/src/sap/fe/core/converters/helpers/DataFieldHelper-dbg.js +0 -173
  422. package/src/sap/fe/core/converters/helpers/DataFieldHelper.js.map +0 -1
  423. package/src/sap/fe/core/converters/helpers/ID-dbg.js +0 -91
  424. package/src/sap/fe/core/converters/helpers/ID.js.map +0 -1
  425. package/src/sap/fe/core/converters/helpers/InsightsHelpers-dbg.js +0 -46
  426. package/src/sap/fe/core/converters/helpers/InsightsHelpers.js.map +0 -1
  427. package/src/sap/fe/core/converters/helpers/IssueManager-dbg.js +0 -63
  428. package/src/sap/fe/core/converters/helpers/IssueManager.js.map +0 -1
  429. package/src/sap/fe/core/converters/helpers/Key-dbg.js +0 -61
  430. package/src/sap/fe/core/converters/helpers/Key.js.map +0 -1
  431. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper-dbg.js +0 -78
  432. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js.map +0 -1
  433. package/src/sap/fe/core/converters/objectPage/FormMenuActions-dbg.js +0 -141
  434. package/src/sap/fe/core/converters/objectPage/FormMenuActions.js.map +0 -1
  435. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction-dbg.js +0 -414
  436. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js.map +0 -1
  437. package/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +0 -581
  438. package/src/sap/fe/core/converters/templates/ListReportConverter.js.map +0 -1
  439. package/src/sap/fe/core/converters/templates/ObjectPageConverter-dbg.js +0 -483
  440. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js.map +0 -1
  441. package/src/sap/fe/core/designtime/AppComponent-dbg.designtime.js +0 -92
  442. package/src/sap/fe/core/designtime/AppComponent.designtime.js.map +0 -1
  443. package/src/sap/fe/core/designtime/library-preload.designtime.js +0 -7
  444. package/src/sap/fe/core/designtime/library-preload.designtime.js.map +0 -1
  445. package/src/sap/fe/core/formatters/CollaborationFormatter-dbg.js +0 -78
  446. package/src/sap/fe/core/formatters/CollaborationFormatter.js.map +0 -1
  447. package/src/sap/fe/core/formatters/FPMFormatter-dbg.js +0 -45
  448. package/src/sap/fe/core/formatters/FPMFormatter.js.map +0 -1
  449. package/src/sap/fe/core/formatters/FiscalFormat-dbg.js +0 -341
  450. package/src/sap/fe/core/formatters/FiscalFormat.js.map +0 -1
  451. package/src/sap/fe/core/formatters/KPIFormatter-dbg.js +0 -85
  452. package/src/sap/fe/core/formatters/KPIFormatter.js.map +0 -1
  453. package/src/sap/fe/core/formatters/StandardFormatter-dbg.js +0 -92
  454. package/src/sap/fe/core/formatters/StandardFormatter.js.map +0 -1
  455. package/src/sap/fe/core/formatters/TableFormatter-dbg.js +0 -268
  456. package/src/sap/fe/core/formatters/TableFormatter.js.map +0 -1
  457. package/src/sap/fe/core/formatters/TableFormatterTypes-dbg.js +0 -19
  458. package/src/sap/fe/core/formatters/TableFormatterTypes.js.map +0 -1
  459. package/src/sap/fe/core/formatters/ValueFormatter-dbg.js +0 -169
  460. package/src/sap/fe/core/formatters/ValueFormatter.js.map +0 -1
  461. package/src/sap/fe/core/fpm/Component-dbg.js +0 -94
  462. package/src/sap/fe/core/fpm/Component.js.map +0 -1
  463. package/src/sap/fe/core/helpers/AdaptiveCardExpressionCompiler-dbg.js +0 -390
  464. package/src/sap/fe/core/helpers/AdaptiveCardExpressionCompiler.js.map +0 -1
  465. package/src/sap/fe/core/helpers/AnnotationEnum-dbg.js +0 -29
  466. package/src/sap/fe/core/helpers/AnnotationEnum.js.map +0 -1
  467. package/src/sap/fe/core/helpers/AppStartupHelper-dbg.js +0 -333
  468. package/src/sap/fe/core/helpers/AppStartupHelper.js.map +0 -1
  469. package/src/sap/fe/core/helpers/BindingHelper-dbg.js +0 -101
  470. package/src/sap/fe/core/helpers/BindingHelper.js.map +0 -1
  471. package/src/sap/fe/core/helpers/BindingToolkit-dbg.js +0 -1786
  472. package/src/sap/fe/core/helpers/BindingToolkit.js.map +0 -1
  473. package/src/sap/fe/core/helpers/ClassSupport-dbg.js +0 -452
  474. package/src/sap/fe/core/helpers/ClassSupport.js.map +0 -1
  475. package/src/sap/fe/core/helpers/DeleteHelper-dbg.js +0 -622
  476. package/src/sap/fe/core/helpers/DeleteHelper.js.map +0 -1
  477. package/src/sap/fe/core/helpers/DraftEditState-dbg.js +0 -238
  478. package/src/sap/fe/core/helpers/DraftEditState.js.map +0 -1
  479. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper-dbg.js +0 -54
  480. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js.map +0 -1
  481. package/src/sap/fe/core/helpers/EditState-dbg.js +0 -59
  482. package/src/sap/fe/core/helpers/EditState.js.map +0 -1
  483. package/src/sap/fe/core/helpers/ExcelFormatHelper-dbg.js +0 -54
  484. package/src/sap/fe/core/helpers/ExcelFormatHelper.js.map +0 -1
  485. package/src/sap/fe/core/helpers/FPMHelper-dbg.js +0 -98
  486. package/src/sap/fe/core/helpers/FPMHelper.js.map +0 -1
  487. package/src/sap/fe/core/helpers/KeepAliveHelper-dbg.js +0 -179
  488. package/src/sap/fe/core/helpers/KeepAliveHelper.js.map +0 -1
  489. package/src/sap/fe/core/helpers/KeepAliveRefreshTypes-dbg.js +0 -27
  490. package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js.map +0 -1
  491. package/src/sap/fe/core/helpers/LoaderUtils-dbg.js +0 -28
  492. package/src/sap/fe/core/helpers/LoaderUtils.js.map +0 -1
  493. package/src/sap/fe/core/helpers/MassEditHelper-dbg.js +0 -1244
  494. package/src/sap/fe/core/helpers/MassEditHelper.js.map +0 -1
  495. package/src/sap/fe/core/helpers/MessageStrip-dbg.js +0 -63
  496. package/src/sap/fe/core/helpers/MessageStrip.js.map +0 -1
  497. package/src/sap/fe/core/helpers/MetaModelFunction-dbg.js +0 -516
  498. package/src/sap/fe/core/helpers/MetaModelFunction.js.map +0 -1
  499. package/src/sap/fe/core/helpers/ModelHelper-dbg.js +0 -518
  500. package/src/sap/fe/core/helpers/ModelHelper.js.map +0 -1
  501. package/src/sap/fe/core/helpers/PasteHelper-dbg.js +0 -173
  502. package/src/sap/fe/core/helpers/PasteHelper.js.map +0 -1
  503. package/src/sap/fe/core/helpers/RecommendationHelper-dbg.js +0 -86
  504. package/src/sap/fe/core/helpers/RecommendationHelper.js.map +0 -1
  505. package/src/sap/fe/core/helpers/ResourceModelHelper-dbg.js +0 -56
  506. package/src/sap/fe/core/helpers/ResourceModelHelper.js.map +0 -1
  507. package/src/sap/fe/core/helpers/SemanticDateOperators-dbg.js +0 -563
  508. package/src/sap/fe/core/helpers/SemanticDateOperators.js.map +0 -1
  509. package/src/sap/fe/core/helpers/SemanticKeyHelper-dbg.js +0 -69
  510. package/src/sap/fe/core/helpers/SemanticKeyHelper.js.map +0 -1
  511. package/src/sap/fe/core/helpers/SizeHelper-dbg.js +0 -52
  512. package/src/sap/fe/core/helpers/SizeHelper.js.map +0 -1
  513. package/src/sap/fe/core/helpers/StableIdHelper-dbg.js +0 -229
  514. package/src/sap/fe/core/helpers/StableIdHelper.js.map +0 -1
  515. package/src/sap/fe/core/helpers/StandardRecommendationHelper-dbg.js +0 -142
  516. package/src/sap/fe/core/helpers/StandardRecommendationHelper.js.map +0 -1
  517. package/src/sap/fe/core/helpers/Synchronization-dbg.js +0 -34
  518. package/src/sap/fe/core/helpers/Synchronization.js.map +0 -1
  519. package/src/sap/fe/core/helpers/TitleHelper-dbg.js +0 -251
  520. package/src/sap/fe/core/helpers/TitleHelper.js.map +0 -1
  521. package/src/sap/fe/core/helpers/ToES6Promise-dbg.js +0 -30
  522. package/src/sap/fe/core/helpers/ToES6Promise.js.map +0 -1
  523. package/src/sap/fe/core/helpers/TypeGuards-dbg.js +0 -180
  524. package/src/sap/fe/core/helpers/TypeGuards.js.map +0 -1
  525. package/src/sap/fe/core/jsx-runtime/Fragment-dbg.js +0 -13
  526. package/src/sap/fe/core/jsx-runtime/Fragment.js.map +0 -1
  527. package/src/sap/fe/core/jsx-runtime/ViewLoader-dbg.js +0 -79
  528. package/src/sap/fe/core/jsx-runtime/ViewLoader.js.map +0 -1
  529. package/src/sap/fe/core/jsx-runtime/jsx-control-dbg.js +0 -159
  530. package/src/sap/fe/core/jsx-runtime/jsx-control.js.map +0 -1
  531. package/src/sap/fe/core/jsx-runtime/jsx-dbg.js +0 -40
  532. package/src/sap/fe/core/jsx-runtime/jsx-xml-dbg.js +0 -93
  533. package/src/sap/fe/core/jsx-runtime/jsx-xml.js.map +0 -1
  534. package/src/sap/fe/core/jsx-runtime/jsx.js.map +0 -1
  535. package/src/sap/fe/core/jsx-runtime/jsxs-dbg.js +0 -9
  536. package/src/sap/fe/core/jsx-runtime/jsxs.js.map +0 -1
  537. package/src/sap/fe/core/jsx-runtime/useMDXComponents-dbg.js +0 -157
  538. package/src/sap/fe/core/jsx-runtime/useMDXComponents.js.map +0 -1
  539. package/src/sap/fe/core/library-dbg.js +0 -427
  540. package/src/sap/fe/core/library-preload.js +0 -984
  541. package/src/sap/fe/core/library-preload.js.map +0 -1
  542. package/src/sap/fe/core/library-preload.support.js +0 -177
  543. package/src/sap/fe/core/library-preload.support.js.map +0 -1
  544. package/src/sap/fe/core/library.js.map +0 -1
  545. package/src/sap/fe/core/manifest.json +0 -105
  546. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration-dbg.js +0 -140
  547. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js.map +0 -1
  548. package/src/sap/fe/core/operationsHelper-dbg.js +0 -180
  549. package/src/sap/fe/core/operationsHelper.js.map +0 -1
  550. package/src/sap/fe/core/rootView/Fcl-dbg.controller.js +0 -808
  551. package/src/sap/fe/core/rootView/Fcl.controller.js.map +0 -1
  552. package/src/sap/fe/core/rootView/NavContainer-dbg.controller.js +0 -184
  553. package/src/sap/fe/core/rootView/NavContainer.controller.js.map +0 -1
  554. package/src/sap/fe/core/rootView/RootViewBaseController-dbg.js +0 -535
  555. package/src/sap/fe/core/rootView/RootViewBaseController.js.map +0 -1
  556. package/src/sap/fe/core/services/AsyncComponentServiceFactory-dbg.js +0 -59
  557. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js.map +0 -1
  558. package/src/sap/fe/core/services/CacheHandlerServiceFactory-dbg.js +0 -195
  559. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js.map +0 -1
  560. package/src/sap/fe/core/services/CollaborationManagerServiceFactory-dbg.js +0 -159
  561. package/src/sap/fe/core/services/CollaborationManagerServiceFactory.js.map +0 -1
  562. package/src/sap/fe/core/services/CollaborativeToolsServiceFactory-dbg.js +0 -85
  563. package/src/sap/fe/core/services/CollaborativeToolsServiceFactory.js.map +0 -1
  564. package/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +0 -128
  565. package/src/sap/fe/core/services/EnvironmentServiceFactory.js.map +0 -1
  566. package/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +0 -330
  567. package/src/sap/fe/core/services/NavigationServiceFactory.js.map +0 -1
  568. package/src/sap/fe/core/services/ResourceModelServiceFactory-dbg.js +0 -90
  569. package/src/sap/fe/core/services/ResourceModelServiceFactory.js.map +0 -1
  570. package/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +0 -838
  571. package/src/sap/fe/core/services/RoutingServiceFactory.js.map +0 -1
  572. package/src/sap/fe/core/services/ShellServicesFactory-dbg.js +0 -682
  573. package/src/sap/fe/core/services/ShellServicesFactory.js.map +0 -1
  574. package/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +0 -768
  575. package/src/sap/fe/core/services/SideEffectsServiceFactory.js.map +0 -1
  576. package/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +0 -377
  577. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js.map +0 -1
  578. package/src/sap/fe/core/services/view/TemplatingErrorPage-dbg.controller.js +0 -36
  579. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js.map +0 -1
  580. package/src/sap/fe/core/support/CommonHelper-dbg.js +0 -62
  581. package/src/sap/fe/core/support/CommonHelper.js.map +0 -1
  582. package/src/sap/fe/core/support/Diagnostics-dbg.js +0 -43
  583. package/src/sap/fe/core/support/Diagnostics.js.map +0 -1
  584. package/src/sap/fe/core/templating/ActionHelper-dbg.js +0 -53
  585. package/src/sap/fe/core/templating/ActionHelper.js.map +0 -1
  586. package/src/sap/fe/core/templating/CommonFormatters-dbg.js +0 -71
  587. package/src/sap/fe/core/templating/CommonFormatters.js.map +0 -1
  588. package/src/sap/fe/core/templating/CriticalityFormatters-dbg.js +0 -131
  589. package/src/sap/fe/core/templating/CriticalityFormatters.js.map +0 -1
  590. package/src/sap/fe/core/templating/DataFieldFormatters-dbg.js +0 -148
  591. package/src/sap/fe/core/templating/DataFieldFormatters.js.map +0 -1
  592. package/src/sap/fe/core/templating/DataModelPathHelper-dbg.js +0 -531
  593. package/src/sap/fe/core/templating/DataModelPathHelper.js.map +0 -1
  594. package/src/sap/fe/core/templating/DisplayModeFormatter-dbg.js +0 -55
  595. package/src/sap/fe/core/templating/DisplayModeFormatter.js.map +0 -1
  596. package/src/sap/fe/core/templating/EntitySetHelper-dbg.js +0 -57
  597. package/src/sap/fe/core/templating/EntitySetHelper.js.map +0 -1
  598. package/src/sap/fe/core/templating/EntityTypeHelper-dbg.js +0 -47
  599. package/src/sap/fe/core/templating/EntityTypeHelper.js.map +0 -1
  600. package/src/sap/fe/core/templating/FieldControlHelper-dbg.js +0 -140
  601. package/src/sap/fe/core/templating/FieldControlHelper.js.map +0 -1
  602. package/src/sap/fe/core/templating/FilterHelper-dbg.js +0 -391
  603. package/src/sap/fe/core/templating/FilterHelper.js.map +0 -1
  604. package/src/sap/fe/core/templating/FilterTemplating-dbg.js +0 -60
  605. package/src/sap/fe/core/templating/FilterTemplating.js.map +0 -1
  606. package/src/sap/fe/core/templating/PropertyFormatters-dbg.js +0 -87
  607. package/src/sap/fe/core/templating/PropertyFormatters.js.map +0 -1
  608. package/src/sap/fe/core/templating/PropertyHelper-dbg.js +0 -362
  609. package/src/sap/fe/core/templating/PropertyHelper.js.map +0 -1
  610. package/src/sap/fe/core/templating/SemanticObjectHelper-dbg.js +0 -90
  611. package/src/sap/fe/core/templating/SemanticObjectHelper.js.map +0 -1
  612. package/src/sap/fe/core/templating/UIFormatters-dbg.js +0 -570
  613. package/src/sap/fe/core/templating/UIFormatters.js.map +0 -1
  614. package/src/sap/fe/core/type/DateTimeWithTimezone-dbg.js +0 -34
  615. package/src/sap/fe/core/type/DateTimeWithTimezone.js.map +0 -1
  616. package/src/sap/fe/core/type/EDM-dbg.js +0 -83
  617. package/src/sap/fe/core/type/EDM.js.map +0 -1
  618. package/src/sap/fe/core/type/Email-dbg.js +0 -28
  619. package/src/sap/fe/core/type/Email.js.map +0 -1
  620. package/src/sap/fe/core/type/FiscalDate-dbg.js +0 -176
  621. package/src/sap/fe/core/type/FiscalDate.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sapui5/sap.fe.core",
3
- "version": "1.120.0",
3
+ "version": "1.120.2",
4
4
  "description": "SAPUI5 Library sap.fe.core",
5
5
  "keywords": [
6
6
  "sapui5",
@@ -6,7 +6,7 @@
6
6
  SAP UI development toolkit for HTML5 (SAPUI5)
7
7
  (c) Copyright 2009-2021 SAP SE. All rights reserved
8
8
  </copyright>
9
- <version>1.120.0</version>
9
+ <version>1.120.2</version>
10
10
 
11
11
  <documentation>UI5 library: sap.fe.core</documentation>
12
12
 
@@ -2,5 +2,281 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2023 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/base/util/merge","sap/fe/core/CommonUtils","sap/fe/core/controls/Any","sap/fe/core/helpers/BindingToolkit","sap/fe/core/helpers/ModelHelper","sap/fe/core/helpers/TypeGuards","sap/fe/core/templating/ActionHelper","sap/ui/core/message/Message","./controls/AnyElement","./converters/ConverterContext","./converters/MetaModelConverter","./converters/objectPage/HeaderAndFooterAction"],function(e,t,n,o,i,s,a,l,r,d,c,u){"use strict";var g=u.getHiddenExpression;var f=u.getEditButtonEnabled;var p=c.convertTypes;var v=a.getIsActionCriticalExpression;var b=s.isEntitySet;var m=o.transformRecursively;var y=o.isConstant;var A=o.equal;var h=o.constant;var E=o.compileExpression;var C=o.compileConstant;const M={_addMessageForActionParameter:function(e,t){e.addMessages(t.map(e=>{const t=e.actionParameterInfo.field.getBinding(e.actionParameterInfo.isMultiValue?"items":"value");return new l({message:e.message,type:"Error",processor:t===null||t===void 0?void 0:t.getModel(),persistent:true,target:t===null||t===void 0?void 0:t.getResolvedPath()})}))},validateProperties:async function(e,t,n){await Promise.allSettled(t.map(e=>e.validationPromise));const o=t.filter(e=>e.field.getRequired());const i=e.getMessageModel().getData();const s=o.filter(e=>{const t=e.field.getId();const n=i.filter(e=>e.getControlIds().some(e=>e.includes(t)));if(n.length>0){return false}else if(e.isMultiValue){return e.value===undefined||!e.value.length}else{const t=e.field.getValue();return t===undefined||t===null||t===""}});if(s.length){this._addMessageForActionParameter(e,s.map(e=>{var t;return{actionParameterInfo:e,message:n.getText("C_OPERATIONS_ACTION_PARAMETER_DIALOG_MISSING_MANDATORY_MSG",[((t=e.field.getParent())===null||t===void 0?void 0:t.getAggregation("label")).getText()])}}))}const a=t.find(e=>e.hasError||e.field.getValueState()==="Error"||s.includes(e));if(a){a.field.focus();return false}else{return true}},setActionEnablement:async function(e,n,o,i){const s=[];for(const a in n){let l=[];e.setProperty(a,false);const r=n[a];for(const t of o){const n=t;if(n){const t=n.getObject();if(i==="chart"){if(r===null&&!!t[`#${a}`]||n.getObject(r)){e.setProperty(a,true);break}}else if(i==="table"){l=this._setActionEnablementForTable(n,e,a,r,l)}}}if(i==="table"){if(!o.length){e.setProperty(`dynamicActions/${a}`,{bEnabled:false,aApplicable:[],aNotApplicable:[]});s.push(t.setContextsBasedOnOperationAvailable(e,[]))}else if(o.length&&typeof r==="string"){s.push(t.setContextsBasedOnOperationAvailable(e,l))}}}return Promise.all(s)},setActionEnablementAfterPatch:function(e,t,n){const o=n===null||n===void 0?void 0:n.getObject();const i=(o===null||o===void 0?void 0:o.controls)||{};for(const n in i){if(i[n]&&i[n].controlId){const o=e.byId(n);if(o&&o.isA("sap.ui.mdc.Table")){const e=o.getRowBinding();if(e==t){M.setActionEnablement(o.getBindingContext("internal"),JSON.parse(o.data("operationAvailableMap").customData),o.getSelectedContexts(),"table")}}}}},updateEditButtonVisibilityAndEnablement(n){var o,s;const a=(o=n.getViewData())===null||o===void 0?void 0:o.viewLevel,l=(s=n.getModel("ui"))===null||s===void 0?void 0:s.getProperty("/isEditable");if(a>1&&l!==true){var r,c,u;const o=n.getBindingContext();const s=t.getAppComponent(n);const a=i.getMetaPathForContext(o);const l=i.getRootEntitySetPath(a);const p=o===null||o===void 0?void 0:(r=o.getModel().getMetaModel())===null||r===void 0?void 0:r.getContext(o===null||o===void 0?void 0:o.getPath());const v=d===null||d===void 0?void 0:d.createConverterContextForMacro(l,p,s.getDiagnostics(),e,undefined);const m=v.getEntitySet();const y=v.getEntityType();let h;const C=b(m)&&((c=m.annotations.UI)===null||c===void 0?void 0:(u=c.UpdateHidden)===null||u===void 0?void 0:u.valueOf());if(C!==true){h=i.isUpdateHidden(m,y)}const M=f(v);const P=i.getDraftRootPath(o);const x=i.getStickyRootPath(o);const B=P||x;const I=n.getBindingContext("internal");if(B){const e=n.getModel().bindContext(B).getBoundContext();if(h!==undefined){const t=E(A(g(v,h),false));this.updateEditModelContext(t,n,e,"rootEditVisible",I)}if(M){this.updateEditModelContext(M,n,e,"rootEditEnabled",I)}}}},updateEditModelContext:function(e,t,n,o,i){if(e){var s,a,l;const d=new r({anyText:e});d.setBindingContext(null);t.addDependent(d);d.getBinding("anyText");const c=(s=d.getModel())===null||s===void 0?void 0:(a=s.bindContext(n.getPath(),n,{$$groupId:"$auto.Heroes"}))===null||a===void 0?void 0:a.getBoundContext();d.setBindingContext(c);d===null||d===void 0?void 0:(l=d.getBinding("anyText"))===null||l===void 0?void 0:l.attachChange(e=>{const t=e.getSource().getExternalValue();i.setProperty(o,t)})}},_setActionEnablementForTable:function(e,n,o,i,s){n.setProperty(`dynamicActions/${o}`,{bEnabled:false,aApplicable:[],aNotApplicable:[]});const a=[],l=[],r=`${n.getPath()}/dynamicActions/${o}/bEnabled`;if(typeof i==="object"&&i!==null&&i!==undefined){if(e){const t=e.getObject();const o=m(i,"PathInModel",function(e){return t?h(t[e.path]):h(false)},true);const s=E(o);if(s==="true"){n.getModel().setProperty(r,true);a.push(e)}else{l.push(e)}}t.setDynamicActionContexts(n,o,a,l)}else{const a=e===null||e===void 0?void 0:e.getObject();if(i===null&&!!a[`#${o}`]){n.getModel().setProperty(r,true)}else if(e!==undefined){s.push(t.requestProperty(e,o,i,r))}}return s},getIsActionCritical:function(e,t){let o=arguments.length>2&&arguments[2]!==undefined?arguments[2]:[];let i=true;const s=p(e);const a=s.resolvePath(t);const l=a.target;if(!l){return i}const r=v(l,s);if(y(r)){i=C(r,false,undefined,true)}else if(o.length>0){const e=new n({anyBoolean:E(r)});e.setModel(o[0].getModel());e.setBindingContext(o[0]);i=e.getBinding("anyBoolean").getExternalValue();e.destroy()}return i}};return M},false);
6
- //# sourceMappingURL=ActionRuntime.js.map
5
+ sap.ui.define(["sap/base/util/merge", "sap/fe/core/CommonUtils", "sap/fe/core/controls/Any", "sap/fe/core/helpers/BindingToolkit", "sap/fe/core/helpers/ModelHelper", "sap/fe/core/helpers/TypeGuards", "sap/fe/core/templating/ActionHelper", "sap/ui/core/message/Message", "./controls/AnyElement", "./converters/ConverterContext", "./converters/MetaModelConverter", "./converters/objectPage/HeaderAndFooterAction"], function (merge, CommonUtils, Any, BindingToolkit, ModelHelper, TypeGuards, ActionHelper, Message, AnyElement, ConverterContext, MetaModelConverter, HeaderAndFooterAction) {
6
+ "use strict";
7
+
8
+ var getHiddenExpression = HeaderAndFooterAction.getHiddenExpression;
9
+ var getEditButtonEnabled = HeaderAndFooterAction.getEditButtonEnabled;
10
+ var convertTypes = MetaModelConverter.convertTypes;
11
+ var getIsActionCriticalExpression = ActionHelper.getIsActionCriticalExpression;
12
+ var isEntitySet = TypeGuards.isEntitySet;
13
+ var transformRecursively = BindingToolkit.transformRecursively;
14
+ var isConstant = BindingToolkit.isConstant;
15
+ var equal = BindingToolkit.equal;
16
+ var constant = BindingToolkit.constant;
17
+ var compileExpression = BindingToolkit.compileExpression;
18
+ var compileConstant = BindingToolkit.compileConstant;
19
+ const ActionRuntime = {
20
+ /**
21
+ * Adds error messages for an action parameter field to the message manager.
22
+ *
23
+ * @param messageManager The active MessageManager instance
24
+ * @param messageParameters Information identifying an action parameter and messages referring to this parameter
25
+ */
26
+ _addMessageForActionParameter: function (messageManager, messageParameters) {
27
+ messageManager.addMessages(messageParameters.map(messageParameter => {
28
+ const binding = messageParameter.actionParameterInfo.field.getBinding(messageParameter.actionParameterInfo.isMultiValue ? "items" : "value");
29
+ return new Message({
30
+ message: messageParameter.message,
31
+ type: "Error",
32
+ processor: binding === null || binding === void 0 ? void 0 : binding.getModel(),
33
+ persistent: true,
34
+ target: binding === null || binding === void 0 ? void 0 : binding.getResolvedPath()
35
+ });
36
+ }));
37
+ },
38
+ /**
39
+ * Checks if all required action parameters contain data and checks for all action parameters if the
40
+ * contained data is valid.
41
+ *
42
+ *
43
+ * @param messageManager The active MessageManager instance
44
+ * @param actionParameterInfos Information identifying an action parameter
45
+ * @param resourceModel The model to load text resources
46
+ * @returns The validation result can be true or false
47
+ */
48
+ validateProperties: async function (messageManager, actionParameterInfos, resourceModel) {
49
+ await Promise.allSettled(actionParameterInfos.map(actionParameterInfo => actionParameterInfo.validationPromise));
50
+ const requiredParameterInfos = actionParameterInfos.filter(parameterInfo => parameterInfo.field.getRequired());
51
+ const allMessages = messageManager.getMessageModel().getData();
52
+ const emptyRequiredFields = requiredParameterInfos.filter(requiredParameterInfo => {
53
+ const fieldId = requiredParameterInfo.field.getId();
54
+ const relevantMessages = allMessages.filter(msg => msg.getControlIds().some(controlId => controlId.includes(fieldId)));
55
+ if (relevantMessages.length > 0) {
56
+ return false;
57
+ } else if (requiredParameterInfo.isMultiValue) {
58
+ return requiredParameterInfo.value === undefined || !requiredParameterInfo.value.length;
59
+ } else {
60
+ const fieldValue = requiredParameterInfo.field.getValue();
61
+ return fieldValue === undefined || fieldValue === null || fieldValue === "";
62
+ }
63
+ });
64
+ /* Message for missing mandatory value of the action parameter */
65
+ if (emptyRequiredFields.length) {
66
+ this._addMessageForActionParameter(messageManager, emptyRequiredFields.map(actionParameterInfo => {
67
+ var _actionParameterInfo$;
68
+ return {
69
+ actionParameterInfo: actionParameterInfo,
70
+ message: resourceModel.getText("C_OPERATIONS_ACTION_PARAMETER_DIALOG_MISSING_MANDATORY_MSG", [((_actionParameterInfo$ = actionParameterInfo.field.getParent()) === null || _actionParameterInfo$ === void 0 ? void 0 : _actionParameterInfo$.getAggregation("label")).getText()])
71
+ };
72
+ }));
73
+ }
74
+ /* Check value state of all parameters */
75
+ const firstInvalidParameter = actionParameterInfos.find(parameterInfo => parameterInfo.hasError || parameterInfo.field.getValueState() === "Error" || emptyRequiredFields.includes(parameterInfo));
76
+ if (firstInvalidParameter) {
77
+ firstInvalidParameter.field.focus();
78
+ return false;
79
+ } else {
80
+ return true;
81
+ }
82
+ },
83
+ /**
84
+ * Sets the action enablement.
85
+ *
86
+ * @param oInternalModelContext Object containing the context model
87
+ * @param oActionOperationAvailableMap Map containing the operation availability of actions
88
+ * @param aSelectedContexts Array containing selected contexts of the chart
89
+ * @param sControl Control name
90
+ * @returns The action enablement promises
91
+ */
92
+ setActionEnablement: async function (oInternalModelContext, oActionOperationAvailableMap, aSelectedContexts, sControl) {
93
+ const aPromises = [];
94
+ for (const sAction in oActionOperationAvailableMap) {
95
+ let aRequestPromises = [];
96
+ oInternalModelContext.setProperty(sAction, false);
97
+ const sProperty = oActionOperationAvailableMap[sAction];
98
+ for (const element of aSelectedContexts) {
99
+ const oSelectedContext = element;
100
+ if (oSelectedContext) {
101
+ const oContextData = oSelectedContext.getObject();
102
+ if (sControl === "chart") {
103
+ if (sProperty === null && !!oContextData[`#${sAction}`] || oSelectedContext.getObject(sProperty)) {
104
+ //look for action advertisement if present and its value is not null
105
+ oInternalModelContext.setProperty(sAction, true);
106
+ break;
107
+ }
108
+ } else if (sControl === "table") {
109
+ aRequestPromises = this._setActionEnablementForTable(oSelectedContext, oInternalModelContext, sAction, sProperty, aRequestPromises);
110
+ }
111
+ }
112
+ }
113
+ if (sControl === "table") {
114
+ if (!aSelectedContexts.length) {
115
+ oInternalModelContext.setProperty(`dynamicActions/${sAction}`, {
116
+ bEnabled: false,
117
+ aApplicable: [],
118
+ aNotApplicable: []
119
+ });
120
+ aPromises.push(CommonUtils.setContextsBasedOnOperationAvailable(oInternalModelContext, []));
121
+ } else if (aSelectedContexts.length && typeof sProperty === "string") {
122
+ // When all property values have been retrieved, set
123
+ // The applicable and not-applicable selected contexts for each action and
124
+ // The enabled property of the dynamic action in internal model context.
125
+ aPromises.push(CommonUtils.setContextsBasedOnOperationAvailable(oInternalModelContext, aRequestPromises));
126
+ }
127
+ }
128
+ }
129
+ return Promise.all(aPromises);
130
+ },
131
+ setActionEnablementAfterPatch: function (oView, oListBinding, oInternalModelContext) {
132
+ const oInternalModelContextData = oInternalModelContext === null || oInternalModelContext === void 0 ? void 0 : oInternalModelContext.getObject();
133
+ const oControls = (oInternalModelContextData === null || oInternalModelContextData === void 0 ? void 0 : oInternalModelContextData.controls) || {};
134
+ for (const sKey in oControls) {
135
+ if (oControls[sKey] && oControls[sKey].controlId) {
136
+ const oTable = oView.byId(sKey);
137
+ if (oTable && oTable.isA("sap.ui.mdc.Table")) {
138
+ const oRowBinding = oTable.getRowBinding();
139
+ if (oRowBinding == oListBinding) {
140
+ ActionRuntime.setActionEnablement(oTable.getBindingContext("internal"), JSON.parse(oTable.data("operationAvailableMap").customData), oTable.getSelectedContexts(), "table");
141
+ }
142
+ }
143
+ }
144
+ }
145
+ },
146
+ updateEditButtonVisibilityAndEnablement(oView) {
147
+ var _oView$getViewData, _oView$getModel;
148
+ const iViewLevel = (_oView$getViewData = oView.getViewData()) === null || _oView$getViewData === void 0 ? void 0 : _oView$getViewData.viewLevel,
149
+ isEditable = (_oView$getModel = oView.getModel("ui")) === null || _oView$getModel === void 0 ? void 0 : _oView$getModel.getProperty("/isEditable");
150
+ if (iViewLevel > 1 && isEditable !== true) {
151
+ var _oContext$getModel$ge, _entitySet$annotation, _entitySet$annotation2;
152
+ const oContext = oView.getBindingContext();
153
+ const oAppComponent = CommonUtils.getAppComponent(oView);
154
+ const sMetaPath = ModelHelper.getMetaPathForContext(oContext);
155
+ const sEntitySet = ModelHelper.getRootEntitySetPath(sMetaPath);
156
+ const metaContext = oContext === null || oContext === void 0 ? void 0 : (_oContext$getModel$ge = oContext.getModel().getMetaModel()) === null || _oContext$getModel$ge === void 0 ? void 0 : _oContext$getModel$ge.getContext(oContext === null || oContext === void 0 ? void 0 : oContext.getPath());
157
+ const converterContext = ConverterContext === null || ConverterContext === void 0 ? void 0 : ConverterContext.createConverterContextForMacro(sEntitySet, metaContext, oAppComponent.getDiagnostics(), merge, undefined);
158
+ const entitySet = converterContext.getEntitySet();
159
+ const entityType = converterContext.getEntityType();
160
+ let updateHidden;
161
+ //Find the Update Hidden of the root entity set and bind the property to AnyElement, any changes in the path of the root UpdateHidden will be updated via the property, internal model context is updated based on the property
162
+ const bUpdateHidden = isEntitySet(entitySet) && ((_entitySet$annotation = entitySet.annotations.UI) === null || _entitySet$annotation === void 0 ? void 0 : (_entitySet$annotation2 = _entitySet$annotation.UpdateHidden) === null || _entitySet$annotation2 === void 0 ? void 0 : _entitySet$annotation2.valueOf());
163
+ if (bUpdateHidden !== true) {
164
+ updateHidden = ModelHelper.isUpdateHidden(entitySet, entityType);
165
+ }
166
+ //Find the operation available property of the root edit configuration and fetch the property using AnyElement
167
+ const sEditEnableBinding = getEditButtonEnabled(converterContext);
168
+ const draftRootPath = ModelHelper.getDraftRootPath(oContext);
169
+ const sStickyRootPath = ModelHelper.getStickyRootPath(oContext);
170
+ const sPath = draftRootPath || sStickyRootPath;
171
+ const oInternalModelContext = oView.getBindingContext("internal");
172
+ if (sPath) {
173
+ const oRootContext = oView.getModel().bindContext(sPath).getBoundContext();
174
+ if (updateHidden !== undefined) {
175
+ const sHiddenExpression = compileExpression(equal(getHiddenExpression(converterContext, updateHidden), false));
176
+ this.updateEditModelContext(sHiddenExpression, oView, oRootContext, "rootEditVisible", oInternalModelContext);
177
+ }
178
+ if (sEditEnableBinding) {
179
+ this.updateEditModelContext(sEditEnableBinding, oView, oRootContext, "rootEditEnabled", oInternalModelContext);
180
+ }
181
+ }
182
+ }
183
+ },
184
+ updateEditModelContext: function (sBindingExpression, oView, oRootContext, sProperty, oInternalModelContext) {
185
+ if (sBindingExpression) {
186
+ var _oHiddenElement$getMo, _oHiddenElement$getMo2, _oHiddenElement$getBi;
187
+ const oHiddenElement = new AnyElement({
188
+ anyText: sBindingExpression
189
+ });
190
+ oHiddenElement.setBindingContext(null);
191
+ oView.addDependent(oHiddenElement);
192
+ oHiddenElement.getBinding("anyText");
193
+ const oContext = (_oHiddenElement$getMo = oHiddenElement.getModel()) === null || _oHiddenElement$getMo === void 0 ? void 0 : (_oHiddenElement$getMo2 = _oHiddenElement$getMo.bindContext(oRootContext.getPath(), oRootContext, {
194
+ $$groupId: "$auto.Heroes"
195
+ })) === null || _oHiddenElement$getMo2 === void 0 ? void 0 : _oHiddenElement$getMo2.getBoundContext();
196
+ oHiddenElement.setBindingContext(oContext);
197
+ oHiddenElement === null || oHiddenElement === void 0 ? void 0 : (_oHiddenElement$getBi = oHiddenElement.getBinding("anyText")) === null || _oHiddenElement$getBi === void 0 ? void 0 : _oHiddenElement$getBi.attachChange(oEvent => {
198
+ const oNewValue = oEvent.getSource().getExternalValue();
199
+ oInternalModelContext.setProperty(sProperty, oNewValue);
200
+ });
201
+ }
202
+ },
203
+ _setActionEnablementForTable: function (oSelectedContext, oInternalModelContext, sAction, sProperty, aRequestPromises) {
204
+ // Reset all properties before computation
205
+ oInternalModelContext.setProperty(`dynamicActions/${sAction}`, {
206
+ bEnabled: false,
207
+ aApplicable: [],
208
+ aNotApplicable: []
209
+ });
210
+ // Note that non dynamic actions are not processed here. They are enabled because
211
+ // one or more are selected and the second part of the condition in the templating
212
+ // is then undefined and thus the button takes the default enabling, which is true!
213
+ const aApplicable = [],
214
+ aNotApplicable = [],
215
+ sDynamicActionEnabledPath = `${oInternalModelContext.getPath()}/dynamicActions/${sAction}/bEnabled`;
216
+ if (typeof sProperty === "object" && sProperty !== null && sProperty !== undefined) {
217
+ if (oSelectedContext) {
218
+ const oContextData = oSelectedContext.getObject();
219
+ const oTransformedBinding = transformRecursively(sProperty, "PathInModel",
220
+ // eslint-disable-next-line no-loop-func
221
+ function (oBindingExpression) {
222
+ return oContextData ? constant(oContextData[oBindingExpression.path]) : constant(false);
223
+ }, true);
224
+ const sResult = compileExpression(oTransformedBinding);
225
+ if (sResult === "true") {
226
+ oInternalModelContext.getModel().setProperty(sDynamicActionEnabledPath, true);
227
+ aApplicable.push(oSelectedContext);
228
+ } else {
229
+ aNotApplicable.push(oSelectedContext);
230
+ }
231
+ }
232
+ CommonUtils.setDynamicActionContexts(oInternalModelContext, sAction, aApplicable, aNotApplicable);
233
+ } else {
234
+ const oContextData = oSelectedContext === null || oSelectedContext === void 0 ? void 0 : oSelectedContext.getObject();
235
+ if (sProperty === null && !!oContextData[`#${sAction}`]) {
236
+ //look for action advertisement if present and its value is not null
237
+ oInternalModelContext.getModel().setProperty(sDynamicActionEnabledPath, true);
238
+ } else if (oSelectedContext !== undefined) {
239
+ // Collect promises to retrieve singleton or normal property value asynchronously
240
+ aRequestPromises.push(CommonUtils.requestProperty(oSelectedContext, sAction, sProperty, sDynamicActionEnabledPath));
241
+ }
242
+ }
243
+ return aRequestPromises;
244
+ },
245
+ /**
246
+ * Check if action is critical.
247
+ *
248
+ * @param metaModel MetaModel
249
+ * @param path Path to the action
250
+ * @param contexts Contexts in case of bound actions.
251
+ * @returns Boolean indicating action is critical
252
+ */
253
+ getIsActionCritical: function (metaModel, path) {
254
+ let contexts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
255
+ // default is true.
256
+ let isActionCriticalValue = true;
257
+ const convertedTypes = convertTypes(metaModel);
258
+ const actionTargetResolution = convertedTypes.resolvePath(path);
259
+ const actionTarget = actionTargetResolution.target;
260
+ if (!actionTarget) {
261
+ return isActionCriticalValue;
262
+ }
263
+ const isActionCriticalBindingExp = getIsActionCriticalExpression(actionTarget, convertedTypes);
264
+ if (isConstant(isActionCriticalBindingExp)) {
265
+ // Constant expression resolves to "true" or "false". But, we need boolean.
266
+ isActionCriticalValue = compileConstant(isActionCriticalBindingExp, false, undefined, true);
267
+ } else if (contexts.length > 0) {
268
+ // We evaluate the value of the expression via a UI5 managed object instance.
269
+ const anyObject = new Any({
270
+ anyBoolean: compileExpression(isActionCriticalBindingExp)
271
+ });
272
+ anyObject.setModel(contexts[0].getModel());
273
+ anyObject.setBindingContext(contexts[0]);
274
+ isActionCriticalValue = anyObject.getBinding("anyBoolean").getExternalValue();
275
+ anyObject.destroy();
276
+ }
277
+ return isActionCriticalValue;
278
+ }
279
+ };
280
+ return ActionRuntime;
281
+ }, false);
282
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBY3Rpb25SdW50aW1lIiwiX2FkZE1lc3NhZ2VGb3JBY3Rpb25QYXJhbWV0ZXIiLCJtZXNzYWdlTWFuYWdlciIsIm1lc3NhZ2VQYXJhbWV0ZXJzIiwiYWRkTWVzc2FnZXMiLCJtYXAiLCJtZXNzYWdlUGFyYW1ldGVyIiwiYmluZGluZyIsImFjdGlvblBhcmFtZXRlckluZm8iLCJmaWVsZCIsImdldEJpbmRpbmciLCJpc011bHRpVmFsdWUiLCJNZXNzYWdlIiwibWVzc2FnZSIsInR5cGUiLCJwcm9jZXNzb3IiLCJnZXRNb2RlbCIsInBlcnNpc3RlbnQiLCJ0YXJnZXQiLCJnZXRSZXNvbHZlZFBhdGgiLCJ2YWxpZGF0ZVByb3BlcnRpZXMiLCJhY3Rpb25QYXJhbWV0ZXJJbmZvcyIsInJlc291cmNlTW9kZWwiLCJQcm9taXNlIiwiYWxsU2V0dGxlZCIsInZhbGlkYXRpb25Qcm9taXNlIiwicmVxdWlyZWRQYXJhbWV0ZXJJbmZvcyIsImZpbHRlciIsInBhcmFtZXRlckluZm8iLCJnZXRSZXF1aXJlZCIsImFsbE1lc3NhZ2VzIiwiZ2V0TWVzc2FnZU1vZGVsIiwiZ2V0RGF0YSIsImVtcHR5UmVxdWlyZWRGaWVsZHMiLCJyZXF1aXJlZFBhcmFtZXRlckluZm8iLCJmaWVsZElkIiwiZ2V0SWQiLCJyZWxldmFudE1lc3NhZ2VzIiwibXNnIiwiZ2V0Q29udHJvbElkcyIsInNvbWUiLCJjb250cm9sSWQiLCJpbmNsdWRlcyIsImxlbmd0aCIsInZhbHVlIiwidW5kZWZpbmVkIiwiZmllbGRWYWx1ZSIsImdldFZhbHVlIiwiZ2V0VGV4dCIsImdldFBhcmVudCIsImdldEFnZ3JlZ2F0aW9uIiwiZmlyc3RJbnZhbGlkUGFyYW1ldGVyIiwiZmluZCIsImhhc0Vycm9yIiwiZ2V0VmFsdWVTdGF0ZSIsImZvY3VzIiwic2V0QWN0aW9uRW5hYmxlbWVudCIsIm9JbnRlcm5hbE1vZGVsQ29udGV4dCIsIm9BY3Rpb25PcGVyYXRpb25BdmFpbGFibGVNYXAiLCJhU2VsZWN0ZWRDb250ZXh0cyIsInNDb250cm9sIiwiYVByb21pc2VzIiwic0FjdGlvbiIsImFSZXF1ZXN0UHJvbWlzZXMiLCJzZXRQcm9wZXJ0eSIsInNQcm9wZXJ0eSIsImVsZW1lbnQiLCJvU2VsZWN0ZWRDb250ZXh0Iiwib0NvbnRleHREYXRhIiwiZ2V0T2JqZWN0IiwiX3NldEFjdGlvbkVuYWJsZW1lbnRGb3JUYWJsZSIsImJFbmFibGVkIiwiYUFwcGxpY2FibGUiLCJhTm90QXBwbGljYWJsZSIsInB1c2giLCJDb21tb25VdGlscyIsInNldENvbnRleHRzQmFzZWRPbk9wZXJhdGlvbkF2YWlsYWJsZSIsImFsbCIsInNldEFjdGlvbkVuYWJsZW1lbnRBZnRlclBhdGNoIiwib1ZpZXciLCJvTGlzdEJpbmRpbmciLCJvSW50ZXJuYWxNb2RlbENvbnRleHREYXRhIiwib0NvbnRyb2xzIiwiY29udHJvbHMiLCJzS2V5Iiwib1RhYmxlIiwiYnlJZCIsImlzQSIsIm9Sb3dCaW5kaW5nIiwiZ2V0Um93QmluZGluZyIsImdldEJpbmRpbmdDb250ZXh0IiwiSlNPTiIsInBhcnNlIiwiZGF0YSIsImN1c3RvbURhdGEiLCJnZXRTZWxlY3RlZENvbnRleHRzIiwidXBkYXRlRWRpdEJ1dHRvblZpc2liaWxpdHlBbmRFbmFibGVtZW50IiwiaVZpZXdMZXZlbCIsImdldFZpZXdEYXRhIiwidmlld0xldmVsIiwiaXNFZGl0YWJsZSIsImdldFByb3BlcnR5Iiwib0NvbnRleHQiLCJvQXBwQ29tcG9uZW50IiwiZ2V0QXBwQ29tcG9uZW50Iiwic01ldGFQYXRoIiwiTW9kZWxIZWxwZXIiLCJnZXRNZXRhUGF0aEZvckNvbnRleHQiLCJzRW50aXR5U2V0IiwiZ2V0Um9vdEVudGl0eVNldFBhdGgiLCJtZXRhQ29udGV4dCIsImdldE1ldGFNb2RlbCIsImdldENvbnRleHQiLCJnZXRQYXRoIiwiY29udmVydGVyQ29udGV4dCIsIkNvbnZlcnRlckNvbnRleHQiLCJjcmVhdGVDb252ZXJ0ZXJDb250ZXh0Rm9yTWFjcm8iLCJnZXREaWFnbm9zdGljcyIsIm1lcmdlIiwiZW50aXR5U2V0IiwiZ2V0RW50aXR5U2V0IiwiZW50aXR5VHlwZSIsImdldEVudGl0eVR5cGUiLCJ1cGRhdGVIaWRkZW4iLCJiVXBkYXRlSGlkZGVuIiwiaXNFbnRpdHlTZXQiLCJhbm5vdGF0aW9ucyIsIlVJIiwiVXBkYXRlSGlkZGVuIiwidmFsdWVPZiIsImlzVXBkYXRlSGlkZGVuIiwic0VkaXRFbmFibGVCaW5kaW5nIiwiZ2V0RWRpdEJ1dHRvbkVuYWJsZWQiLCJkcmFmdFJvb3RQYXRoIiwiZ2V0RHJhZnRSb290UGF0aCIsInNTdGlja3lSb290UGF0aCIsImdldFN0aWNreVJvb3RQYXRoIiwic1BhdGgiLCJvUm9vdENvbnRleHQiLCJiaW5kQ29udGV4dCIsImdldEJvdW5kQ29udGV4dCIsInNIaWRkZW5FeHByZXNzaW9uIiwiY29tcGlsZUV4cHJlc3Npb24iLCJlcXVhbCIsImdldEhpZGRlbkV4cHJlc3Npb24iLCJ1cGRhdGVFZGl0TW9kZWxDb250ZXh0Iiwic0JpbmRpbmdFeHByZXNzaW9uIiwib0hpZGRlbkVsZW1lbnQiLCJBbnlFbGVtZW50IiwiYW55VGV4dCIsInNldEJpbmRpbmdDb250ZXh0IiwiYWRkRGVwZW5kZW50IiwiJCRncm91cElkIiwiYXR0YWNoQ2hhbmdlIiwib0V2ZW50Iiwib05ld1ZhbHVlIiwiZ2V0U291cmNlIiwiZ2V0RXh0ZXJuYWxWYWx1ZSIsInNEeW5hbWljQWN0aW9uRW5hYmxlZFBhdGgiLCJvVHJhbnNmb3JtZWRCaW5kaW5nIiwidHJhbnNmb3JtUmVjdXJzaXZlbHkiLCJvQmluZGluZ0V4cHJlc3Npb24iLCJjb25zdGFudCIsInBhdGgiLCJzUmVzdWx0Iiwic2V0RHluYW1pY0FjdGlvbkNvbnRleHRzIiwicmVxdWVzdFByb3BlcnR5IiwiZ2V0SXNBY3Rpb25Dcml0aWNhbCIsIm1ldGFNb2RlbCIsImNvbnRleHRzIiwiaXNBY3Rpb25Dcml0aWNhbFZhbHVlIiwiY29udmVydGVkVHlwZXMiLCJjb252ZXJ0VHlwZXMiLCJhY3Rpb25UYXJnZXRSZXNvbHV0aW9uIiwicmVzb2x2ZVBhdGgiLCJhY3Rpb25UYXJnZXQiLCJpc0FjdGlvbkNyaXRpY2FsQmluZGluZ0V4cCIsImdldElzQWN0aW9uQ3JpdGljYWxFeHByZXNzaW9uIiwiaXNDb25zdGFudCIsImNvbXBpbGVDb25zdGFudCIsImFueU9iamVjdCIsIkFueSIsImFueUJvb2xlYW4iLCJzZXRNb2RlbCIsImRlc3Ryb3kiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkFjdGlvblJ1bnRpbWUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBY3Rpb24gYXMgRWRtQWN0aW9uLCBQcmltaXRpdmVUeXBlIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgbWVyZ2UgZnJvbSBcInNhcC9iYXNlL3V0aWwvbWVyZ2VcIjtcbmltcG9ydCB0eXBlIHsgRkVWaWV3IH0gZnJvbSBcInNhcC9mZS9jb3JlL0Jhc2VDb250cm9sbGVyXCI7XG5pbXBvcnQgdHlwZSB7IF9SZXF1ZXN0ZWRQcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHR5cGUgUmVzb3VyY2VNb2RlbCBmcm9tIFwic2FwL2ZlL2NvcmUvUmVzb3VyY2VNb2RlbFwiO1xuaW1wb3J0IEFueSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbHMvQW55XCI7XG5pbXBvcnQgdHlwZSB7IFBhdGhJbk1vZGVsRXhwcmVzc2lvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgeyBjb21waWxlQ29uc3RhbnQsIGNvbXBpbGVFeHByZXNzaW9uLCBjb25zdGFudCwgZXF1YWwsIGlzQ29uc3RhbnQsIHRyYW5zZm9ybVJlY3Vyc2l2ZWx5IH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB0eXBlIHsgSW50ZXJuYWxNb2RlbENvbnRleHQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgeyBpc0VudGl0eVNldCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1R5cGVHdWFyZHNcIjtcbmltcG9ydCB7IGdldElzQWN0aW9uQ3JpdGljYWxFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvQWN0aW9uSGVscGVyXCI7XG5pbXBvcnQgdHlwZSBMYWJlbCBmcm9tIFwic2FwL20vTGFiZWxcIjtcbmltcG9ydCB0eXBlIEV2ZW50IGZyb20gXCJzYXAvdWkvYmFzZS9FdmVudFwiO1xuaW1wb3J0IE1lc3NhZ2UgZnJvbSBcInNhcC91aS9jb3JlL21lc3NhZ2UvTWVzc2FnZVwiO1xuaW1wb3J0IHR5cGUgTWVzc2FnZU1hbmFnZXIgZnJvbSBcInNhcC91aS9jb3JlL21lc3NhZ2UvTWVzc2FnZU1hbmFnZXJcIjtcbmltcG9ydCB0eXBlIFZpZXcgZnJvbSBcInNhcC91aS9jb3JlL212Yy9WaWV3XCI7XG5pbXBvcnQgdHlwZSBGaWVsZCBmcm9tIFwic2FwL3VpL21kYy9GaWVsZFwiO1xuaW1wb3J0IHR5cGUgTXVsdGlWYWx1ZUZpZWxkIGZyb20gXCJzYXAvdWkvbWRjL011bHRpVmFsdWVGaWVsZFwiO1xuaW1wb3J0IHR5cGUgVGFibGUgZnJvbSBcInNhcC91aS9tZGMvVGFibGVcIjtcbmltcG9ydCB0eXBlIE11bHRpVmFsdWVGaWVsZEl0ZW0gZnJvbSBcInNhcC91aS9tZGMvZmllbGQvTXVsdGlWYWx1ZUZpZWxkSXRlbVwiO1xuaW1wb3J0IHR5cGUgUHJvcGVydHlCaW5kaW5nIGZyb20gXCJzYXAvdWkvbW9kZWwvUHJvcGVydHlCaW5kaW5nXCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvQ29udGV4dFwiO1xuaW1wb3J0IHR5cGUgT0RhdGFMaXN0QmluZGluZyBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTGlzdEJpbmRpbmdcIjtcbmltcG9ydCB0eXBlIE9EYXRhTWV0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNZXRhTW9kZWxcIjtcbmltcG9ydCBBbnlFbGVtZW50IGZyb20gXCIuL2NvbnRyb2xzL0FueUVsZW1lbnRcIjtcbmltcG9ydCBDb252ZXJ0ZXJDb250ZXh0IGZyb20gXCIuL2NvbnZlcnRlcnMvQ29udmVydGVyQ29udGV4dFwiO1xuaW1wb3J0IHR5cGUgeyBCYXNlTWFuaWZlc3RTZXR0aW5ncyB9IGZyb20gXCIuL2NvbnZlcnRlcnMvTWFuaWZlc3RTZXR0aW5nc1wiO1xuaW1wb3J0IHsgY29udmVydFR5cGVzIH0gZnJvbSBcIi4vY29udmVydGVycy9NZXRhTW9kZWxDb252ZXJ0ZXJcIjtcbmltcG9ydCB7IGdldEVkaXRCdXR0b25FbmFibGVkLCBnZXRIaWRkZW5FeHByZXNzaW9uIH0gZnJvbSBcIi4vY29udmVydGVycy9vYmplY3RQYWdlL0hlYWRlckFuZEZvb3RlckFjdGlvblwiO1xuXG50eXBlIEFjdGlvblBhcmFtZXRlciA9IHtcblx0JE5hbWU6IHN0cmluZztcblx0JGlzQ29sbGVjdGlvbjogYm9vbGVhbjtcblx0Ly8gY3VycmVudGx5IHJ1bnRpbWUgaW5mb3JtYXRpb24gaXMgd3JpdHRlbiBpbnRvIHRoZSBtZXRhbW9kZWw6XG5cdC8vIC0gaW4gdGhlIHByZXNzIGhhbmRsZXIgb2YgdGhlIGFjdGlvbiBidXR0b24gb24gdGhlIHBhcmFtZXRlciBkaWFsb2csIHRoZSB2YWx1ZSBvZiBlYWNoIHBhcmFtZXRlciBpcyBhZGRlZFxuXHQvLyAtIGluIHNldEFjdGlvblBhcmFtZXRlckRlZmF1bHRWYWx1ZSwgdGhpcyBpbmZvcm1hdGlvbiBpcyB1c2VkIGFuZCB0cmFuc2ZlcnJlZCB0byB0aGUgY29udGV4dCAoaW4gT0RhdGFNb2RlbCkgY3JlYXRlZCBmb3IgdGhlIGFjdGlvbiBleGVjdXRpb25cblx0Ly8gdGhpcyBpcyBxdWl0ZSBvZGQsIGFuZCBpdCB3b3VsZCBtYWtlIG11Y2ggbW9yZSBzZW5zZSB0byB0YWtlIHRoZSB2YWx1ZSBmcm9tIGFjdGlvblBhcmFtZXRlckluZm9zXG5cdC8vIC0gaG93ZXZlciwgc2V0QWN0aW9uUGFyYW1ldGVyRGVmYXVsdFZhbHVlIChvciByYXRoZXIgdGhlIHN1cnJvdW5kaW5nIF9leGVjdXRlQWN0aW9uKSBpcyBhbHNvIGNhbGxlZCBmcm9tIG90aGVyIHBsYWNlc1xuXHQvLyA9PiBmb3IgdGhlIHRpbWUgYmVpbmcsIGFkZGluZyB2YWx1ZSBoZXJlIHRvIGF2b2lkIHRzIGVycm9ycywgc3ViamVjdCB0byByZWZhY3RvcmluZ1xuXHQvLyBpbiBjYXNlIG9mIEZpZWxkLCB0aGUgdmFsdWUgaXMgc3RyaW5nLCBpbiBjYXNlIG9mIE11bHRpVmFsdWVGaWVsZCwgaXQncyBNdWx0aVZhbHVlRmllbGRJdGVtW11cblx0dmFsdWU6IHN0cmluZyB8IE11bHRpVmFsdWVGaWVsZEl0ZW1bXTtcbn07XG5cbmV4cG9ydCB0eXBlIEFjdGlvblBhcmFtZXRlckluZm8gPSB7XG5cdHBhcmFtZXRlcjogQWN0aW9uUGFyYW1ldGVyO1xuXHRmaWVsZDogRmllbGQgfCBNdWx0aVZhbHVlRmllbGQ7XG5cdGlzTXVsdGlWYWx1ZTogYm9vbGVhbjtcblx0dmFsdWU/OiBzdHJpbmcgfCBNdWx0aVZhbHVlRmllbGRJdGVtW107XG5cdHZhbGlkYXRpb25Qcm9taXNlPzogUHJvbWlzZTxzdHJpbmcgfCBNdWx0aVZhbHVlRmllbGRJdGVtW10+O1xuXHRoYXNFcnJvcjogYm9vbGVhbjtcbn07XG5cbmNvbnN0IEFjdGlvblJ1bnRpbWUgPSB7XG5cdC8qKlxuXHQgKiBBZGRzIGVycm9yIG1lc3NhZ2VzIGZvciBhbiBhY3Rpb24gcGFyYW1ldGVyIGZpZWxkIHRvIHRoZSBtZXNzYWdlIG1hbmFnZXIuXG5cdCAqXG5cdCAqIEBwYXJhbSBtZXNzYWdlTWFuYWdlciBUaGUgYWN0aXZlIE1lc3NhZ2VNYW5hZ2VyIGluc3RhbmNlXG5cdCAqIEBwYXJhbSBtZXNzYWdlUGFyYW1ldGVycyBJbmZvcm1hdGlvbiBpZGVudGlmeWluZyBhbiBhY3Rpb24gcGFyYW1ldGVyIGFuZCBtZXNzYWdlcyByZWZlcnJpbmcgdG8gdGhpcyBwYXJhbWV0ZXJcblx0ICovXG5cdF9hZGRNZXNzYWdlRm9yQWN0aW9uUGFyYW1ldGVyOiBmdW5jdGlvbiAoXG5cdFx0bWVzc2FnZU1hbmFnZXI6IE1lc3NhZ2VNYW5hZ2VyLFxuXHRcdG1lc3NhZ2VQYXJhbWV0ZXJzOiB7IGFjdGlvblBhcmFtZXRlckluZm86IEFjdGlvblBhcmFtZXRlckluZm87IG1lc3NhZ2U6IHN0cmluZyB9W11cblx0KSB7XG5cdFx0bWVzc2FnZU1hbmFnZXIuYWRkTWVzc2FnZXMoXG5cdFx0XHRtZXNzYWdlUGFyYW1ldGVycy5tYXAoKG1lc3NhZ2VQYXJhbWV0ZXIpID0+IHtcblx0XHRcdFx0Y29uc3QgYmluZGluZyA9IG1lc3NhZ2VQYXJhbWV0ZXIuYWN0aW9uUGFyYW1ldGVySW5mby5maWVsZC5nZXRCaW5kaW5nKFxuXHRcdFx0XHRcdG1lc3NhZ2VQYXJhbWV0ZXIuYWN0aW9uUGFyYW1ldGVySW5mby5pc011bHRpVmFsdWUgPyBcIml0ZW1zXCIgOiBcInZhbHVlXCJcblx0XHRcdFx0KTtcblx0XHRcdFx0cmV0dXJuIG5ldyBNZXNzYWdlKHtcblx0XHRcdFx0XHRtZXNzYWdlOiBtZXNzYWdlUGFyYW1ldGVyLm1lc3NhZ2UsXG5cdFx0XHRcdFx0dHlwZTogXCJFcnJvclwiLFxuXHRcdFx0XHRcdHByb2Nlc3NvcjogYmluZGluZz8uZ2V0TW9kZWwoKSxcblx0XHRcdFx0XHRwZXJzaXN0ZW50OiB0cnVlLFxuXHRcdFx0XHRcdHRhcmdldDogYmluZGluZz8uZ2V0UmVzb2x2ZWRQYXRoKClcblx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdCk7XG5cdH0sXG5cblx0LyoqXG5cdCAqIENoZWNrcyBpZiBhbGwgcmVxdWlyZWQgYWN0aW9uIHBhcmFtZXRlcnMgY29udGFpbiBkYXRhIGFuZCBjaGVja3MgZm9yIGFsbCBhY3Rpb24gcGFyYW1ldGVycyBpZiB0aGVcblx0ICogY29udGFpbmVkIGRhdGEgaXMgdmFsaWQuXG5cdCAqXG5cdCAqXG5cdCAqIEBwYXJhbSBtZXNzYWdlTWFuYWdlciBUaGUgYWN0aXZlIE1lc3NhZ2VNYW5hZ2VyIGluc3RhbmNlXG5cdCAqIEBwYXJhbSBhY3Rpb25QYXJhbWV0ZXJJbmZvcyBJbmZvcm1hdGlvbiBpZGVudGlmeWluZyBhbiBhY3Rpb24gcGFyYW1ldGVyXG5cdCAqIEBwYXJhbSByZXNvdXJjZU1vZGVsIFRoZSBtb2RlbCB0byBsb2FkIHRleHQgcmVzb3VyY2VzXG5cdCAqIEByZXR1cm5zIFRoZSB2YWxpZGF0aW9uIHJlc3VsdCBjYW4gYmUgdHJ1ZSBvciBmYWxzZVxuXHQgKi9cblx0dmFsaWRhdGVQcm9wZXJ0aWVzOiBhc3luYyBmdW5jdGlvbiAoXG5cdFx0bWVzc2FnZU1hbmFnZXI6IE1lc3NhZ2VNYW5hZ2VyLFxuXHRcdGFjdGlvblBhcmFtZXRlckluZm9zOiBBY3Rpb25QYXJhbWV0ZXJJbmZvW10sXG5cdFx0cmVzb3VyY2VNb2RlbDogUmVzb3VyY2VNb2RlbFxuXHQpOiBQcm9taXNlPGJvb2xlYW4+IHtcblx0XHRhd2FpdCBQcm9taXNlLmFsbFNldHRsZWQoYWN0aW9uUGFyYW1ldGVySW5mb3MubWFwKChhY3Rpb25QYXJhbWV0ZXJJbmZvKSA9PiBhY3Rpb25QYXJhbWV0ZXJJbmZvLnZhbGlkYXRpb25Qcm9taXNlKSk7XG5cblx0XHRjb25zdCByZXF1aXJlZFBhcmFtZXRlckluZm9zID0gYWN0aW9uUGFyYW1ldGVySW5mb3MuZmlsdGVyKChwYXJhbWV0ZXJJbmZvKSA9PiBwYXJhbWV0ZXJJbmZvLmZpZWxkLmdldFJlcXVpcmVkKCkpO1xuXHRcdGNvbnN0IGFsbE1lc3NhZ2VzID0gbWVzc2FnZU1hbmFnZXIuZ2V0TWVzc2FnZU1vZGVsKCkuZ2V0RGF0YSgpO1xuXHRcdGNvbnN0IGVtcHR5UmVxdWlyZWRGaWVsZHMgPSByZXF1aXJlZFBhcmFtZXRlckluZm9zLmZpbHRlcigocmVxdWlyZWRQYXJhbWV0ZXJJbmZvKSA9PiB7XG5cdFx0XHRjb25zdCBmaWVsZElkID0gcmVxdWlyZWRQYXJhbWV0ZXJJbmZvLmZpZWxkLmdldElkKCk7XG5cdFx0XHRjb25zdCByZWxldmFudE1lc3NhZ2VzID0gYWxsTWVzc2FnZXMuZmlsdGVyKChtc2c6IE1lc3NhZ2UpID0+XG5cdFx0XHRcdG1zZy5nZXRDb250cm9sSWRzKCkuc29tZSgoY29udHJvbElkOiBzdHJpbmcpID0+IGNvbnRyb2xJZC5pbmNsdWRlcyhmaWVsZElkKSlcblx0XHRcdCk7XG5cdFx0XHRpZiAocmVsZXZhbnRNZXNzYWdlcy5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH0gZWxzZSBpZiAocmVxdWlyZWRQYXJhbWV0ZXJJbmZvLmlzTXVsdGlWYWx1ZSkge1xuXHRcdFx0XHRyZXR1cm4gcmVxdWlyZWRQYXJhbWV0ZXJJbmZvLnZhbHVlID09PSB1bmRlZmluZWQgfHwgIXJlcXVpcmVkUGFyYW1ldGVySW5mby52YWx1ZS5sZW5ndGg7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRjb25zdCBmaWVsZFZhbHVlID0gKHJlcXVpcmVkUGFyYW1ldGVySW5mby5maWVsZCBhcyBGaWVsZCkuZ2V0VmFsdWUoKTtcblx0XHRcdFx0cmV0dXJuIGZpZWxkVmFsdWUgPT09IHVuZGVmaW5lZCB8fCBmaWVsZFZhbHVlID09PSBudWxsIHx8IGZpZWxkVmFsdWUgPT09IFwiXCI7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0LyogTWVzc2FnZSBmb3IgbWlzc2luZyBtYW5kYXRvcnkgdmFsdWUgb2YgdGhlIGFjdGlvbiBwYXJhbWV0ZXIgKi9cblx0XHRpZiAoZW1wdHlSZXF1aXJlZEZpZWxkcy5sZW5ndGgpIHtcblx0XHRcdHRoaXMuX2FkZE1lc3NhZ2VGb3JBY3Rpb25QYXJhbWV0ZXIoXG5cdFx0XHRcdG1lc3NhZ2VNYW5hZ2VyLFxuXHRcdFx0XHRlbXB0eVJlcXVpcmVkRmllbGRzLm1hcCgoYWN0aW9uUGFyYW1ldGVySW5mbykgPT4gKHtcblx0XHRcdFx0XHRhY3Rpb25QYXJhbWV0ZXJJbmZvOiBhY3Rpb25QYXJhbWV0ZXJJbmZvLFxuXHRcdFx0XHRcdG1lc3NhZ2U6IHJlc291cmNlTW9kZWwuZ2V0VGV4dChcIkNfT1BFUkFUSU9OU19BQ1RJT05fUEFSQU1FVEVSX0RJQUxPR19NSVNTSU5HX01BTkRBVE9SWV9NU0dcIiwgW1xuXHRcdFx0XHRcdFx0KGFjdGlvblBhcmFtZXRlckluZm8uZmllbGQuZ2V0UGFyZW50KCk/LmdldEFnZ3JlZ2F0aW9uKFwibGFiZWxcIikgYXMgTGFiZWwpLmdldFRleHQoKVxuXHRcdFx0XHRcdF0pXG5cdFx0XHRcdH0pKVxuXHRcdFx0KTtcblx0XHR9XG5cdFx0LyogQ2hlY2sgdmFsdWUgc3RhdGUgb2YgYWxsIHBhcmFtZXRlcnMgKi9cblx0XHRjb25zdCBmaXJzdEludmFsaWRQYXJhbWV0ZXIgPSBhY3Rpb25QYXJhbWV0ZXJJbmZvcy5maW5kKFxuXHRcdFx0KHBhcmFtZXRlckluZm8pID0+XG5cdFx0XHRcdHBhcmFtZXRlckluZm8uaGFzRXJyb3IgfHwgcGFyYW1ldGVySW5mby5maWVsZC5nZXRWYWx1ZVN0YXRlKCkgPT09IFwiRXJyb3JcIiB8fCBlbXB0eVJlcXVpcmVkRmllbGRzLmluY2x1ZGVzKHBhcmFtZXRlckluZm8pXG5cdFx0KTtcblx0XHRpZiAoZmlyc3RJbnZhbGlkUGFyYW1ldGVyKSB7XG5cdFx0XHRmaXJzdEludmFsaWRQYXJhbWV0ZXIuZmllbGQuZm9jdXMoKTtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXHR9LFxuXG5cdC8qKlxuXHQgKiBTZXRzIHRoZSBhY3Rpb24gZW5hYmxlbWVudC5cblx0ICpcblx0ICogQHBhcmFtIG9JbnRlcm5hbE1vZGVsQ29udGV4dCBPYmplY3QgY29udGFpbmluZyB0aGUgY29udGV4dCBtb2RlbFxuXHQgKiBAcGFyYW0gb0FjdGlvbk9wZXJhdGlvbkF2YWlsYWJsZU1hcCBNYXAgY29udGFpbmluZyB0aGUgb3BlcmF0aW9uIGF2YWlsYWJpbGl0eSBvZiBhY3Rpb25zXG5cdCAqIEBwYXJhbSBhU2VsZWN0ZWRDb250ZXh0cyBBcnJheSBjb250YWluaW5nIHNlbGVjdGVkIGNvbnRleHRzIG9mIHRoZSBjaGFydFxuXHQgKiBAcGFyYW0gc0NvbnRyb2wgQ29udHJvbCBuYW1lXG5cdCAqIEByZXR1cm5zIFRoZSBhY3Rpb24gZW5hYmxlbWVudCBwcm9taXNlc1xuXHQgKi9cblx0c2V0QWN0aW9uRW5hYmxlbWVudDogYXN5bmMgZnVuY3Rpb24gKFxuXHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dDogSW50ZXJuYWxNb2RlbENvbnRleHQsXG5cdFx0b0FjdGlvbk9wZXJhdGlvbkF2YWlsYWJsZU1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcblx0XHRhU2VsZWN0ZWRDb250ZXh0czogQ29udGV4dFtdLFxuXHRcdHNDb250cm9sOiBzdHJpbmdcblx0KSB7XG5cdFx0Y29uc3QgYVByb21pc2VzID0gW107XG5cdFx0Zm9yIChjb25zdCBzQWN0aW9uIGluIG9BY3Rpb25PcGVyYXRpb25BdmFpbGFibGVNYXApIHtcblx0XHRcdGxldCBhUmVxdWVzdFByb21pc2VzOiBQcm9taXNlPF9SZXF1ZXN0ZWRQcm9wZXJ0eT5bXSA9IFtdO1xuXHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KHNBY3Rpb24sIGZhbHNlKTtcblx0XHRcdGNvbnN0IHNQcm9wZXJ0eSA9IG9BY3Rpb25PcGVyYXRpb25BdmFpbGFibGVNYXBbc0FjdGlvbl07XG5cdFx0XHRmb3IgKGNvbnN0IGVsZW1lbnQgb2YgYVNlbGVjdGVkQ29udGV4dHMpIHtcblx0XHRcdFx0Y29uc3Qgb1NlbGVjdGVkQ29udGV4dCA9IGVsZW1lbnQ7XG5cdFx0XHRcdGlmIChvU2VsZWN0ZWRDb250ZXh0KSB7XG5cdFx0XHRcdFx0Y29uc3Qgb0NvbnRleHREYXRhID0gb1NlbGVjdGVkQ29udGV4dC5nZXRPYmplY3QoKSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblx0XHRcdFx0XHRpZiAoc0NvbnRyb2wgPT09IFwiY2hhcnRcIikge1xuXHRcdFx0XHRcdFx0aWYgKChzUHJvcGVydHkgPT09IG51bGwgJiYgISFvQ29udGV4dERhdGFbYCMke3NBY3Rpb259YF0pIHx8IG9TZWxlY3RlZENvbnRleHQuZ2V0T2JqZWN0KHNQcm9wZXJ0eSkpIHtcblx0XHRcdFx0XHRcdFx0Ly9sb29rIGZvciBhY3Rpb24gYWR2ZXJ0aXNlbWVudCBpZiBwcmVzZW50IGFuZCBpdHMgdmFsdWUgaXMgbm90IG51bGxcblx0XHRcdFx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KHNBY3Rpb24sIHRydWUpO1xuXHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9IGVsc2UgaWYgKHNDb250cm9sID09PSBcInRhYmxlXCIpIHtcblx0XHRcdFx0XHRcdGFSZXF1ZXN0UHJvbWlzZXMgPSB0aGlzLl9zZXRBY3Rpb25FbmFibGVtZW50Rm9yVGFibGUoXG5cdFx0XHRcdFx0XHRcdG9TZWxlY3RlZENvbnRleHQsXG5cdFx0XHRcdFx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dCxcblx0XHRcdFx0XHRcdFx0c0FjdGlvbixcblx0XHRcdFx0XHRcdFx0c1Byb3BlcnR5LFxuXHRcdFx0XHRcdFx0XHRhUmVxdWVzdFByb21pc2VzXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKHNDb250cm9sID09PSBcInRhYmxlXCIpIHtcblx0XHRcdFx0aWYgKCFhU2VsZWN0ZWRDb250ZXh0cy5sZW5ndGgpIHtcblx0XHRcdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoYGR5bmFtaWNBY3Rpb25zLyR7c0FjdGlvbn1gLCB7XG5cdFx0XHRcdFx0XHRiRW5hYmxlZDogZmFsc2UsXG5cdFx0XHRcdFx0XHRhQXBwbGljYWJsZTogW10sXG5cdFx0XHRcdFx0XHRhTm90QXBwbGljYWJsZTogW11cblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRhUHJvbWlzZXMucHVzaChDb21tb25VdGlscy5zZXRDb250ZXh0c0Jhc2VkT25PcGVyYXRpb25BdmFpbGFibGUob0ludGVybmFsTW9kZWxDb250ZXh0LCBbXSkpO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGFTZWxlY3RlZENvbnRleHRzLmxlbmd0aCAmJiB0eXBlb2Ygc1Byb3BlcnR5ID09PSBcInN0cmluZ1wiKSB7XG5cdFx0XHRcdFx0Ly8gV2hlbiBhbGwgcHJvcGVydHkgdmFsdWVzIGhhdmUgYmVlbiByZXRyaWV2ZWQsIHNldFxuXHRcdFx0XHRcdC8vIFRoZSBhcHBsaWNhYmxlIGFuZCBub3QtYXBwbGljYWJsZSBzZWxlY3RlZCBjb250ZXh0cyBmb3IgZWFjaCBhY3Rpb24gYW5kXG5cdFx0XHRcdFx0Ly8gVGhlIGVuYWJsZWQgcHJvcGVydHkgb2YgdGhlIGR5bmFtaWMgYWN0aW9uIGluIGludGVybmFsIG1vZGVsIGNvbnRleHQuXG5cdFx0XHRcdFx0YVByb21pc2VzLnB1c2goQ29tbW9uVXRpbHMuc2V0Q29udGV4dHNCYXNlZE9uT3BlcmF0aW9uQXZhaWxhYmxlKG9JbnRlcm5hbE1vZGVsQ29udGV4dCwgYVJlcXVlc3RQcm9taXNlcykpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBQcm9taXNlLmFsbChhUHJvbWlzZXMpO1xuXHR9LFxuXHRzZXRBY3Rpb25FbmFibGVtZW50QWZ0ZXJQYXRjaDogZnVuY3Rpb24gKG9WaWV3OiBWaWV3LCBvTGlzdEJpbmRpbmc6IE9EYXRhTGlzdEJpbmRpbmcsIG9JbnRlcm5hbE1vZGVsQ29udGV4dDogSW50ZXJuYWxNb2RlbENvbnRleHQpIHtcblx0XHRjb25zdCBvSW50ZXJuYWxNb2RlbENvbnRleHREYXRhID0gb0ludGVybmFsTW9kZWxDb250ZXh0Py5nZXRPYmplY3QoKSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblx0XHRjb25zdCBvQ29udHJvbHMgPSAob0ludGVybmFsTW9kZWxDb250ZXh0RGF0YT8uY29udHJvbHMgfHwge30pIGFzIFJlY29yZDxzdHJpbmcsIHsgY29udHJvbElkPzogc3RyaW5nIH0+O1xuXHRcdGZvciAoY29uc3Qgc0tleSBpbiBvQ29udHJvbHMpIHtcblx0XHRcdGlmIChvQ29udHJvbHNbc0tleV0gJiYgb0NvbnRyb2xzW3NLZXldLmNvbnRyb2xJZCkge1xuXHRcdFx0XHRjb25zdCBvVGFibGUgPSBvVmlldy5ieUlkKHNLZXkpO1xuXHRcdFx0XHRpZiAob1RhYmxlICYmIG9UYWJsZS5pc0E8VGFibGU+KFwic2FwLnVpLm1kYy5UYWJsZVwiKSkge1xuXHRcdFx0XHRcdGNvbnN0IG9Sb3dCaW5kaW5nID0gb1RhYmxlLmdldFJvd0JpbmRpbmcoKTtcblx0XHRcdFx0XHRpZiAob1Jvd0JpbmRpbmcgPT0gb0xpc3RCaW5kaW5nKSB7XG5cdFx0XHRcdFx0XHRBY3Rpb25SdW50aW1lLnNldEFjdGlvbkVuYWJsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdG9UYWJsZS5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0LFxuXHRcdFx0XHRcdFx0XHRKU09OLnBhcnNlKG9UYWJsZS5kYXRhKFwib3BlcmF0aW9uQXZhaWxhYmxlTWFwXCIpLmN1c3RvbURhdGEpLFxuXHRcdFx0XHRcdFx0XHRvVGFibGUuZ2V0U2VsZWN0ZWRDb250ZXh0cygpIGFzIENvbnRleHRbXSxcblx0XHRcdFx0XHRcdFx0XCJ0YWJsZVwiXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblxuXHR1cGRhdGVFZGl0QnV0dG9uVmlzaWJpbGl0eUFuZEVuYWJsZW1lbnQob1ZpZXc6IEZFVmlldykge1xuXHRcdGNvbnN0IGlWaWV3TGV2ZWwgPSAob1ZpZXcuZ2V0Vmlld0RhdGEoKSBhcyBCYXNlTWFuaWZlc3RTZXR0aW5ncyk/LnZpZXdMZXZlbCxcblx0XHRcdGlzRWRpdGFibGUgPSBvVmlldy5nZXRNb2RlbChcInVpXCIpPy5nZXRQcm9wZXJ0eShcIi9pc0VkaXRhYmxlXCIpO1xuXHRcdGlmICgoaVZpZXdMZXZlbCBhcyBudW1iZXIpID4gMSAmJiBpc0VkaXRhYmxlICE9PSB0cnVlKSB7XG5cdFx0XHRjb25zdCBvQ29udGV4dCA9IG9WaWV3LmdldEJpbmRpbmdDb250ZXh0KCkgYXMgQ29udGV4dDtcblx0XHRcdGNvbnN0IG9BcHBDb21wb25lbnQgPSBDb21tb25VdGlscy5nZXRBcHBDb21wb25lbnQob1ZpZXcpO1xuXHRcdFx0Y29uc3Qgc01ldGFQYXRoID0gTW9kZWxIZWxwZXIuZ2V0TWV0YVBhdGhGb3JDb250ZXh0KG9Db250ZXh0KTtcblx0XHRcdGNvbnN0IHNFbnRpdHlTZXQgPSBNb2RlbEhlbHBlci5nZXRSb290RW50aXR5U2V0UGF0aChzTWV0YVBhdGgpO1xuXHRcdFx0Y29uc3QgbWV0YUNvbnRleHQgPSBvQ29udGV4dFxuXHRcdFx0XHQ/LmdldE1vZGVsKClcblx0XHRcdFx0LmdldE1ldGFNb2RlbCgpXG5cdFx0XHRcdD8uZ2V0Q29udGV4dChvQ29udGV4dD8uZ2V0UGF0aCgpKTtcblx0XHRcdGNvbnN0IGNvbnZlcnRlckNvbnRleHQgPSBDb252ZXJ0ZXJDb250ZXh0Py5jcmVhdGVDb252ZXJ0ZXJDb250ZXh0Rm9yTWFjcm8oXG5cdFx0XHRcdHNFbnRpdHlTZXQsXG5cdFx0XHRcdG1ldGFDb250ZXh0LFxuXHRcdFx0XHRvQXBwQ29tcG9uZW50LmdldERpYWdub3N0aWNzKCksXG5cdFx0XHRcdG1lcmdlLFxuXHRcdFx0XHR1bmRlZmluZWRcblx0XHRcdCk7XG5cdFx0XHRjb25zdCBlbnRpdHlTZXQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldCgpO1xuXHRcdFx0Y29uc3QgZW50aXR5VHlwZSA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpO1xuXHRcdFx0bGV0IHVwZGF0ZUhpZGRlbjtcblx0XHRcdC8vRmluZCB0aGUgVXBkYXRlIEhpZGRlbiBvZiB0aGUgcm9vdCBlbnRpdHkgc2V0IGFuZCBiaW5kIHRoZSBwcm9wZXJ0eSB0byBBbnlFbGVtZW50LCBhbnkgY2hhbmdlcyBpbiB0aGUgcGF0aCBvZiB0aGUgcm9vdCBVcGRhdGVIaWRkZW4gd2lsbCBiZSB1cGRhdGVkIHZpYSB0aGUgcHJvcGVydHksIGludGVybmFsIG1vZGVsIGNvbnRleHQgaXMgdXBkYXRlZCBiYXNlZCBvbiB0aGUgcHJvcGVydHlcblx0XHRcdGNvbnN0IGJVcGRhdGVIaWRkZW4gPSBpc0VudGl0eVNldChlbnRpdHlTZXQpICYmIGVudGl0eVNldC5hbm5vdGF0aW9ucy5VST8uVXBkYXRlSGlkZGVuPy52YWx1ZU9mKCk7XG5cdFx0XHRpZiAoYlVwZGF0ZUhpZGRlbiAhPT0gdHJ1ZSkge1xuXHRcdFx0XHR1cGRhdGVIaWRkZW4gPSBNb2RlbEhlbHBlci5pc1VwZGF0ZUhpZGRlbihlbnRpdHlTZXQsIGVudGl0eVR5cGUpO1xuXHRcdFx0fVxuXHRcdFx0Ly9GaW5kIHRoZSBvcGVyYXRpb24gYXZhaWxhYmxlIHByb3BlcnR5IG9mIHRoZSByb290IGVkaXQgY29uZmlndXJhdGlvbiBhbmQgZmV0Y2ggdGhlIHByb3BlcnR5IHVzaW5nIEFueUVsZW1lbnRcblx0XHRcdGNvbnN0IHNFZGl0RW5hYmxlQmluZGluZyA9IGdldEVkaXRCdXR0b25FbmFibGVkKGNvbnZlcnRlckNvbnRleHQpO1xuXHRcdFx0Y29uc3QgZHJhZnRSb290UGF0aCA9IE1vZGVsSGVscGVyLmdldERyYWZ0Um9vdFBhdGgob0NvbnRleHQpO1xuXHRcdFx0Y29uc3Qgc1N0aWNreVJvb3RQYXRoID0gTW9kZWxIZWxwZXIuZ2V0U3RpY2t5Um9vdFBhdGgob0NvbnRleHQpO1xuXHRcdFx0Y29uc3Qgc1BhdGggPSBkcmFmdFJvb3RQYXRoIHx8IHNTdGlja3lSb290UGF0aDtcblx0XHRcdGNvbnN0IG9JbnRlcm5hbE1vZGVsQ29udGV4dCA9IG9WaWV3LmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQ7XG5cdFx0XHRpZiAoc1BhdGgpIHtcblx0XHRcdFx0Y29uc3Qgb1Jvb3RDb250ZXh0ID0gb1ZpZXcuZ2V0TW9kZWwoKS5iaW5kQ29udGV4dChzUGF0aCkuZ2V0Qm91bmRDb250ZXh0KCk7XG5cdFx0XHRcdGlmICh1cGRhdGVIaWRkZW4gIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdGNvbnN0IHNIaWRkZW5FeHByZXNzaW9uID0gY29tcGlsZUV4cHJlc3Npb24oZXF1YWwoZ2V0SGlkZGVuRXhwcmVzc2lvbihjb252ZXJ0ZXJDb250ZXh0LCB1cGRhdGVIaWRkZW4pLCBmYWxzZSkpO1xuXHRcdFx0XHRcdHRoaXMudXBkYXRlRWRpdE1vZGVsQ29udGV4dChzSGlkZGVuRXhwcmVzc2lvbiwgb1ZpZXcsIG9Sb290Q29udGV4dCwgXCJyb290RWRpdFZpc2libGVcIiwgb0ludGVybmFsTW9kZWxDb250ZXh0KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoc0VkaXRFbmFibGVCaW5kaW5nKSB7XG5cdFx0XHRcdFx0dGhpcy51cGRhdGVFZGl0TW9kZWxDb250ZXh0KHNFZGl0RW5hYmxlQmluZGluZywgb1ZpZXcsIG9Sb290Q29udGV4dCwgXCJyb290RWRpdEVuYWJsZWRcIiwgb0ludGVybmFsTW9kZWxDb250ZXh0KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblxuXHR1cGRhdGVFZGl0TW9kZWxDb250ZXh0OiBmdW5jdGlvbiAoXG5cdFx0c0JpbmRpbmdFeHByZXNzaW9uOiBzdHJpbmcgfCB1bmRlZmluZWQsXG5cdFx0b1ZpZXc6IFZpZXcsXG5cdFx0b1Jvb3RDb250ZXh0OiBDb250ZXh0LFxuXHRcdHNQcm9wZXJ0eTogc3RyaW5nLFxuXHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dDogSW50ZXJuYWxNb2RlbENvbnRleHRcblx0KSB7XG5cdFx0aWYgKHNCaW5kaW5nRXhwcmVzc2lvbikge1xuXHRcdFx0Y29uc3Qgb0hpZGRlbkVsZW1lbnQgPSBuZXcgQW55RWxlbWVudCh7IGFueVRleHQ6IHNCaW5kaW5nRXhwcmVzc2lvbiB9KTtcblx0XHRcdG9IaWRkZW5FbGVtZW50LnNldEJpbmRpbmdDb250ZXh0KG51bGwpO1xuXHRcdFx0b1ZpZXcuYWRkRGVwZW5kZW50KG9IaWRkZW5FbGVtZW50KTtcblx0XHRcdG9IaWRkZW5FbGVtZW50LmdldEJpbmRpbmcoXCJhbnlUZXh0XCIpO1xuXHRcdFx0Y29uc3Qgb0NvbnRleHQgPSBvSGlkZGVuRWxlbWVudFxuXHRcdFx0XHQuZ2V0TW9kZWwoKVxuXHRcdFx0XHQ/LmJpbmRDb250ZXh0KG9Sb290Q29udGV4dC5nZXRQYXRoKCksIG9Sb290Q29udGV4dCwgeyAkJGdyb3VwSWQ6IFwiJGF1dG8uSGVyb2VzXCIgfSlcblx0XHRcdFx0Py5nZXRCb3VuZENvbnRleHQoKTtcblx0XHRcdG9IaWRkZW5FbGVtZW50LnNldEJpbmRpbmdDb250ZXh0KG9Db250ZXh0KTtcblx0XHRcdG9IaWRkZW5FbGVtZW50Py5nZXRCaW5kaW5nKFwiYW55VGV4dFwiKT8uYXR0YWNoQ2hhbmdlKChvRXZlbnQ6IEV2ZW50KSA9PiB7XG5cdFx0XHRcdGNvbnN0IG9OZXdWYWx1ZSA9IChvRXZlbnQuZ2V0U291cmNlKCkgYXMgUHJvcGVydHlCaW5kaW5nKS5nZXRFeHRlcm5hbFZhbHVlKCk7XG5cdFx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShzUHJvcGVydHksIG9OZXdWYWx1ZSk7XG5cdFx0XHR9KTtcblx0XHR9XG5cdH0sXG5cblx0X3NldEFjdGlvbkVuYWJsZW1lbnRGb3JUYWJsZTogZnVuY3Rpb24gKFxuXHRcdG9TZWxlY3RlZENvbnRleHQ6IENvbnRleHQgfCB1bmRlZmluZWQsXG5cdFx0b0ludGVybmFsTW9kZWxDb250ZXh0OiBJbnRlcm5hbE1vZGVsQ29udGV4dCxcblx0XHRzQWN0aW9uOiBzdHJpbmcsXG5cdFx0c1Byb3BlcnR5OiBzdHJpbmcsXG5cdFx0YVJlcXVlc3RQcm9taXNlczogUHJvbWlzZTxfUmVxdWVzdGVkUHJvcGVydHk+W11cblx0KSB7XG5cdFx0Ly8gUmVzZXQgYWxsIHByb3BlcnRpZXMgYmVmb3JlIGNvbXB1dGF0aW9uXG5cdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KGBkeW5hbWljQWN0aW9ucy8ke3NBY3Rpb259YCwge1xuXHRcdFx0YkVuYWJsZWQ6IGZhbHNlLFxuXHRcdFx0YUFwcGxpY2FibGU6IFtdLFxuXHRcdFx0YU5vdEFwcGxpY2FibGU6IFtdXG5cdFx0fSk7XG5cdFx0Ly8gTm90ZSB0aGF0IG5vbiBkeW5hbWljIGFjdGlvbnMgYXJlIG5vdCBwcm9jZXNzZWQgaGVyZS4gVGhleSBhcmUgZW5hYmxlZCBiZWNhdXNlXG5cdFx0Ly8gb25lIG9yIG1vcmUgYXJlIHNlbGVjdGVkIGFuZCB0aGUgc2Vjb25kIHBhcnQgb2YgdGhlIGNvbmRpdGlvbiBpbiB0aGUgdGVtcGxhdGluZ1xuXHRcdC8vIGlzIHRoZW4gdW5kZWZpbmVkIGFuZCB0aHVzIHRoZSBidXR0b24gdGFrZXMgdGhlIGRlZmF1bHQgZW5hYmxpbmcsIHdoaWNoIGlzIHRydWUhXG5cdFx0Y29uc3QgYUFwcGxpY2FibGUgPSBbXSxcblx0XHRcdGFOb3RBcHBsaWNhYmxlID0gW10sXG5cdFx0XHRzRHluYW1pY0FjdGlvbkVuYWJsZWRQYXRoID0gYCR7b0ludGVybmFsTW9kZWxDb250ZXh0LmdldFBhdGgoKX0vZHluYW1pY0FjdGlvbnMvJHtzQWN0aW9ufS9iRW5hYmxlZGA7XG5cdFx0aWYgKHR5cGVvZiBzUHJvcGVydHkgPT09IFwib2JqZWN0XCIgJiYgc1Byb3BlcnR5ICE9PSBudWxsICYmIHNQcm9wZXJ0eSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRpZiAob1NlbGVjdGVkQ29udGV4dCkge1xuXHRcdFx0XHRjb25zdCBvQ29udGV4dERhdGEgPSBvU2VsZWN0ZWRDb250ZXh0LmdldE9iamVjdCgpIGFzIFJlY29yZDxzdHJpbmcsIFByaW1pdGl2ZVR5cGU+O1xuXHRcdFx0XHRjb25zdCBvVHJhbnNmb3JtZWRCaW5kaW5nID0gdHJhbnNmb3JtUmVjdXJzaXZlbHkoXG5cdFx0XHRcdFx0c1Byb3BlcnR5LFxuXHRcdFx0XHRcdFwiUGF0aEluTW9kZWxcIixcblx0XHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbG9vcC1mdW5jXG5cdFx0XHRcdFx0ZnVuY3Rpb24gKG9CaW5kaW5nRXhwcmVzc2lvbjogUGF0aEluTW9kZWxFeHByZXNzaW9uPFByaW1pdGl2ZVR5cGU+KSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gb0NvbnRleHREYXRhID8gY29uc3RhbnQob0NvbnRleHREYXRhW29CaW5kaW5nRXhwcmVzc2lvbi5wYXRoXSkgOiBjb25zdGFudChmYWxzZSk7XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR0cnVlXG5cdFx0XHRcdCk7XG5cdFx0XHRcdGNvbnN0IHNSZXN1bHQgPSBjb21waWxlRXhwcmVzc2lvbihvVHJhbnNmb3JtZWRCaW5kaW5nKTtcblx0XHRcdFx0aWYgKHNSZXN1bHQgPT09IFwidHJ1ZVwiKSB7XG5cdFx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LmdldE1vZGVsKCkuc2V0UHJvcGVydHkoc0R5bmFtaWNBY3Rpb25FbmFibGVkUGF0aCwgdHJ1ZSk7XG5cdFx0XHRcdFx0YUFwcGxpY2FibGUucHVzaChvU2VsZWN0ZWRDb250ZXh0KTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRhTm90QXBwbGljYWJsZS5wdXNoKG9TZWxlY3RlZENvbnRleHQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRDb21tb25VdGlscy5zZXREeW5hbWljQWN0aW9uQ29udGV4dHMob0ludGVybmFsTW9kZWxDb250ZXh0LCBzQWN0aW9uLCBhQXBwbGljYWJsZSwgYU5vdEFwcGxpY2FibGUpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCBvQ29udGV4dERhdGEgPSBvU2VsZWN0ZWRDb250ZXh0Py5nZXRPYmplY3QoKSBhcyBSZWNvcmQ8c3RyaW5nLCBQcmltaXRpdmVUeXBlPjtcblx0XHRcdGlmIChzUHJvcGVydHkgPT09IG51bGwgJiYgISFvQ29udGV4dERhdGFbYCMke3NBY3Rpb259YF0pIHtcblx0XHRcdFx0Ly9sb29rIGZvciBhY3Rpb24gYWR2ZXJ0aXNlbWVudCBpZiBwcmVzZW50IGFuZCBpdHMgdmFsdWUgaXMgbm90IG51bGxcblx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LmdldE1vZGVsKCkuc2V0UHJvcGVydHkoc0R5bmFtaWNBY3Rpb25FbmFibGVkUGF0aCwgdHJ1ZSk7XG5cdFx0XHR9IGVsc2UgaWYgKG9TZWxlY3RlZENvbnRleHQgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHQvLyBDb2xsZWN0IHByb21pc2VzIHRvIHJldHJpZXZlIHNpbmdsZXRvbiBvciBub3JtYWwgcHJvcGVydHkgdmFsdWUgYXN5bmNocm9ub3VzbHlcblx0XHRcdFx0YVJlcXVlc3RQcm9taXNlcy5wdXNoKENvbW1vblV0aWxzLnJlcXVlc3RQcm9wZXJ0eShvU2VsZWN0ZWRDb250ZXh0LCBzQWN0aW9uLCBzUHJvcGVydHksIHNEeW5hbWljQWN0aW9uRW5hYmxlZFBhdGgpKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIGFSZXF1ZXN0UHJvbWlzZXM7XG5cdH0sXG5cblx0LyoqXG5cdCAqIENoZWNrIGlmIGFjdGlvbiBpcyBjcml0aWNhbC5cblx0ICpcblx0ICogQHBhcmFtIG1ldGFNb2RlbCBNZXRhTW9kZWxcblx0ICogQHBhcmFtIHBhdGggUGF0aCB0byB0aGUgYWN0aW9uXG5cdCAqIEBwYXJhbSBjb250ZXh0cyBDb250ZXh0cyBpbiBjYXNlIG9mIGJvdW5kIGFjdGlvbnMuXG5cdCAqIEByZXR1cm5zIEJvb2xlYW4gaW5kaWNhdGluZyBhY3Rpb24gaXMgY3JpdGljYWxcblx0ICovXG5cdGdldElzQWN0aW9uQ3JpdGljYWw6IGZ1bmN0aW9uIChtZXRhTW9kZWw6IE9EYXRhTWV0YU1vZGVsLCBwYXRoOiBzdHJpbmcsIGNvbnRleHRzOiBDb250ZXh0W10gPSBbXSk6IEJvb2xlYW4ge1xuXHRcdC8vIGRlZmF1bHQgaXMgdHJ1ZS5cblx0XHRsZXQgaXNBY3Rpb25Dcml0aWNhbFZhbHVlID0gdHJ1ZTtcblx0XHRjb25zdCBjb252ZXJ0ZWRUeXBlcyA9IGNvbnZlcnRUeXBlcyhtZXRhTW9kZWwpO1xuXHRcdGNvbnN0IGFjdGlvblRhcmdldFJlc29sdXRpb24gPSBjb252ZXJ0ZWRUeXBlcy5yZXNvbHZlUGF0aDxFZG1BY3Rpb24+KHBhdGgpO1xuXHRcdGNvbnN0IGFjdGlvblRhcmdldCA9IGFjdGlvblRhcmdldFJlc29sdXRpb24udGFyZ2V0O1xuXHRcdGlmICghYWN0aW9uVGFyZ2V0KSB7XG5cdFx0XHRyZXR1cm4gaXNBY3Rpb25Dcml0aWNhbFZhbHVlO1xuXHRcdH1cblxuXHRcdGNvbnN0IGlzQWN0aW9uQ3JpdGljYWxCaW5kaW5nRXhwID0gZ2V0SXNBY3Rpb25Dcml0aWNhbEV4cHJlc3Npb24oYWN0aW9uVGFyZ2V0LCBjb252ZXJ0ZWRUeXBlcyk7XG5cblx0XHRpZiAoaXNDb25zdGFudChpc0FjdGlvbkNyaXRpY2FsQmluZGluZ0V4cCkpIHtcblx0XHRcdC8vIENvbnN0YW50IGV4cHJlc3Npb24gcmVzb2x2ZXMgdG8gXCJ0cnVlXCIgb3IgXCJmYWxzZVwiLiBCdXQsIHdlIG5lZWQgYm9vbGVhbi5cblx0XHRcdGlzQWN0aW9uQ3JpdGljYWxWYWx1ZSA9IGNvbXBpbGVDb25zdGFudChpc0FjdGlvbkNyaXRpY2FsQmluZGluZ0V4cCwgZmFsc2UsIHVuZGVmaW5lZCwgdHJ1ZSk7XG5cdFx0fSBlbHNlIGlmIChjb250ZXh0cy5sZW5ndGggPiAwKSB7XG5cdFx0XHQvLyBXZSBldmFsdWF0ZSB0aGUgdmFsdWUgb2YgdGhlIGV4cHJlc3Npb24gdmlhIGEgVUk1IG1hbmFnZWQgb2JqZWN0IGluc3RhbmNlLlxuXHRcdFx0Y29uc3QgYW55T2JqZWN0ID0gbmV3IEFueSh7IGFueUJvb2xlYW46IGNvbXBpbGVFeHByZXNzaW9uKGlzQWN0aW9uQ3JpdGljYWxCaW5kaW5nRXhwKSB9KTtcblx0XHRcdGFueU9iamVjdC5zZXRNb2RlbChjb250ZXh0c1swXS5nZXRNb2RlbCgpKTtcblx0XHRcdGFueU9iamVjdC5zZXRCaW5kaW5nQ29udGV4dChjb250ZXh0c1swXSk7XG5cdFx0XHRpc0FjdGlvbkNyaXRpY2FsVmFsdWUgPSBhbnlPYmplY3QuZ2V0QmluZGluZyhcImFueUJvb2xlYW5cIikuZ2V0RXh0ZXJuYWxWYWx1ZSgpO1xuXHRcdFx0YW55T2JqZWN0LmRlc3Ryb3koKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gaXNBY3Rpb25Dcml0aWNhbFZhbHVlO1xuXHR9XG59O1xuZXhwb3J0IGRlZmF1bHQgQWN0aW9uUnVudGltZTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7O0VBc0RBLE1BQU1BLGFBQWEsR0FBRztJQUNyQjtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDQ0MsNkJBQTZCLEVBQUUsVUFDOUJDLGNBQThCLEVBQzlCQyxpQkFBa0YsRUFDakY7TUFDREQsY0FBYyxDQUFDRSxXQUFXLENBQ3pCRCxpQkFBaUIsQ0FBQ0UsR0FBRyxDQUFFQyxnQkFBZ0IsSUFBSztRQUMzQyxNQUFNQyxPQUFPLEdBQUdELGdCQUFnQixDQUFDRSxtQkFBbUIsQ0FBQ0MsS0FBSyxDQUFDQyxVQUFVLENBQ3BFSixnQkFBZ0IsQ0FBQ0UsbUJBQW1CLENBQUNHLFlBQVksR0FBRyxPQUFPLEdBQUcsT0FBTyxDQUNyRTtRQUNELE9BQU8sSUFBSUMsT0FBTyxDQUFDO1VBQ2xCQyxPQUFPLEVBQUVQLGdCQUFnQixDQUFDTyxPQUFPO1VBQ2pDQyxJQUFJLEVBQUUsT0FBTztVQUNiQyxTQUFTLEVBQUVSLE9BQU8sYUFBUEEsT0FBTyx1QkFBUEEsT0FBTyxDQUFFUyxRQUFRLEVBQUU7VUFDOUJDLFVBQVUsRUFBRSxJQUFJO1VBQ2hCQyxNQUFNLEVBQUVYLE9BQU8sYUFBUEEsT0FBTyx1QkFB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