@sapui5/sap.fe.core 1.103.0 → 1.106.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (303) hide show
  1. package/package.json +5 -5
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/ActionRuntime.js +121 -0
  4. package/src/sap/fe/core/ActionRuntime.ts +122 -0
  5. package/src/sap/fe/core/AppComponent.js +24 -11
  6. package/src/sap/fe/core/AppComponent.ts +17 -5
  7. package/src/sap/fe/core/AppStateHandler.js +74 -62
  8. package/src/sap/fe/core/AppStateHandler.ts +24 -29
  9. package/src/sap/fe/core/BaseController.js +2 -2
  10. package/src/sap/fe/core/CommonUtils.js +147 -180
  11. package/src/sap/fe/core/CommonUtils.ts +166 -193
  12. package/src/sap/fe/core/ExtensionAPI.js +2 -2
  13. package/src/sap/fe/core/PageController.js +2 -2
  14. package/src/sap/fe/core/TemplateComponent.js +21 -10
  15. package/src/sap/fe/core/TemplateComponent.ts +3 -0
  16. package/src/sap/fe/core/TemplateModel.js +2 -2
  17. package/src/sap/fe/core/buildingBlocks/AttributeModel.js +11 -3
  18. package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +7 -1
  19. package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +194 -43
  20. package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +162 -24
  21. package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter.js +14 -0
  22. package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter.ts +5 -0
  23. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +609 -227
  24. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +268 -119
  25. package/src/sap/fe/core/buildingBlocks/TraceInfo.js +111 -76
  26. package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +96 -76
  27. package/src/sap/fe/core/controllerextensions/BusyLocker.js +1 -1
  28. package/src/sap/fe/core/controllerextensions/EditFlow.js +723 -637
  29. package/src/sap/fe/core/controllerextensions/EditFlow.ts +361 -398
  30. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +2 -2
  31. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +83 -55
  32. package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +42 -44
  33. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +29 -27
  34. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +35 -30
  35. package/src/sap/fe/core/controllerextensions/InternalRouting.js +171 -74
  36. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +167 -76
  37. package/src/sap/fe/core/controllerextensions/KPIManagement.js +5 -21
  38. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +2 -17
  39. package/src/sap/fe/core/controllerextensions/MassEdit.js +3 -3
  40. package/src/sap/fe/core/controllerextensions/MassEdit.ts +1 -1
  41. package/src/sap/fe/core/controllerextensions/MessageHandler.js +2 -2
  42. package/src/sap/fe/core/controllerextensions/PageReady.js +3 -3
  43. package/src/sap/fe/core/controllerextensions/PageReady.ts +5 -1
  44. package/src/sap/fe/core/controllerextensions/Paginator.js +13 -13
  45. package/src/sap/fe/core/controllerextensions/Paginator.ts +11 -11
  46. package/src/sap/fe/core/controllerextensions/Placeholder.js +2 -2
  47. package/src/sap/fe/core/controllerextensions/Routing.js +2 -2
  48. package/src/sap/fe/core/controllerextensions/RoutingListener.js +1 -1
  49. package/src/sap/fe/core/controllerextensions/Share.js +154 -123
  50. package/src/sap/fe/core/controllerextensions/Share.ts +93 -95
  51. package/src/sap/fe/core/controllerextensions/SideEffects.js +157 -97
  52. package/src/sap/fe/core/controllerextensions/SideEffects.ts +151 -95
  53. package/src/sap/fe/core/controllerextensions/ViewState.js +151 -80
  54. package/src/sap/fe/core/controllerextensions/ViewState.ts +95 -93
  55. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +1 -1
  56. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +9 -9
  57. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +6 -7
  58. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +26 -11
  59. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +30 -11
  60. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +57 -40
  61. package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +55 -47
  62. package/src/sap/fe/core/controllerextensions/collaboration/ManageDialog.fragment.xml +31 -32
  63. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1376 -914
  64. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +654 -714
  65. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +372 -326
  66. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +210 -276
  67. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +309 -0
  68. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +320 -0
  69. package/src/sap/fe/core/controllerextensions/editFlow/operations.js +670 -521
  70. package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +537 -535
  71. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +85 -65
  72. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +16 -21
  73. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +25 -13
  74. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +53 -43
  75. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +18 -27
  76. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +9 -15
  77. package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +19 -3
  78. package/src/sap/fe/core/controls/ActionParameterDialogFieldValueHelp.fragment.xml +35 -0
  79. package/src/sap/fe/core/controls/ActionParameterDialogValueHelp.fragment.xml +26 -16
  80. package/src/sap/fe/core/controls/Any.js +1 -1
  81. package/src/sap/fe/core/controls/CommandExecution.js +2 -2
  82. package/src/sap/fe/core/controls/ConditionalWrapper.js +2 -2
  83. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +5 -5
  84. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +0 -3
  85. package/src/sap/fe/core/controls/CustomQuickViewPage.js +2 -2
  86. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +1 -1
  87. package/src/sap/fe/core/controls/FieldWrapper.js +2 -2
  88. package/src/sap/fe/core/controls/FileWrapper.js +8 -3
  89. package/src/sap/fe/core/controls/FileWrapper.ts +5 -1
  90. package/src/sap/fe/core/controls/FilterBar.js +2 -2
  91. package/src/sap/fe/core/controls/FormElementWrapper.js +2 -2
  92. package/src/sap/fe/core/controls/MassEditSelect.js +1 -1
  93. package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +1 -1
  94. package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +48 -17
  95. package/src/sap/fe/core/controls/filterbar/FilterContainer.js +2 -2
  96. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +2 -2
  97. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +2 -2
  98. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +3 -3
  99. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +2 -2
  100. package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +22 -35
  101. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +2 -2
  102. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +1 -1
  103. package/src/sap/fe/core/converters/ConverterContext.js +23 -2
  104. package/src/sap/fe/core/converters/ConverterContext.ts +34 -9
  105. package/src/sap/fe/core/converters/ManifestSettings.js +19 -18
  106. package/src/sap/fe/core/converters/ManifestSettings.ts +53 -47
  107. package/src/sap/fe/core/converters/ManifestWrapper.js +1 -1
  108. package/src/sap/fe/core/converters/MetaModelConverter.js +32 -10
  109. package/src/sap/fe/core/converters/MetaModelConverter.ts +42 -19
  110. package/src/sap/fe/core/converters/TemplateConverter.js +1 -1
  111. package/src/sap/fe/core/converters/annotations/DataField.js +5 -2
  112. package/src/sap/fe/core/converters/annotations/DataField.ts +5 -1
  113. package/src/sap/fe/core/converters/common/AnnotationConverter.js +69 -23
  114. package/src/sap/fe/core/converters/controls/Common/Action.js +98 -51
  115. package/src/sap/fe/core/converters/controls/Common/Action.ts +121 -44
  116. package/src/sap/fe/core/converters/controls/Common/Chart.js +31 -34
  117. package/src/sap/fe/core/converters/controls/Common/Chart.ts +26 -34
  118. package/src/sap/fe/core/converters/controls/Common/Criticality.js +1 -1
  119. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +43 -7
  120. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +60 -33
  121. package/src/sap/fe/core/converters/controls/Common/Form.js +8 -6
  122. package/src/sap/fe/core/converters/controls/Common/Form.ts +11 -14
  123. package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
  124. package/src/sap/fe/core/converters/controls/Common/KPI.ts +16 -15
  125. package/src/sap/fe/core/converters/controls/Common/Table.js +188 -157
  126. package/src/sap/fe/core/converters/controls/Common/Table.ts +279 -230
  127. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +1 -1
  128. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +4 -4
  129. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +57 -21
  130. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +71 -18
  131. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +30 -8
  132. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +24 -7
  133. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +1 -1
  134. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +43 -34
  135. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +37 -25
  136. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +85 -49
  137. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +74 -50
  138. package/src/sap/fe/core/converters/helpers/Aggregation.js +54 -4
  139. package/src/sap/fe/core/converters/helpers/Aggregation.ts +56 -8
  140. package/src/sap/fe/core/converters/helpers/BindingHelper.js +1 -1
  141. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +6 -4
  142. package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +10 -2
  143. package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +182 -0
  144. package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +167 -0
  145. package/src/sap/fe/core/converters/helpers/ID.js +3 -1
  146. package/src/sap/fe/core/converters/helpers/ID.ts +1 -0
  147. package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
  148. package/src/sap/fe/core/converters/helpers/Key.js +1 -1
  149. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +1 -1
  150. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +2 -3
  151. package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +1 -1
  152. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +8 -14
  153. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +6 -9
  154. package/src/sap/fe/core/converters/templates/ListReportConverter.js +31 -31
  155. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +54 -47
  156. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +44 -15
  157. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +64 -30
  158. package/src/sap/fe/core/designtime/AppComponent.designtime.js +1 -1
  159. package/src/sap/fe/core/formatters/CollaborationFormatter.js +1 -1
  160. package/src/sap/fe/core/formatters/FPMFormatter.js +1 -1
  161. package/src/sap/fe/core/formatters/KPIFormatter.js +1 -1
  162. package/src/sap/fe/core/formatters/StandardFormatter.js +13 -6
  163. package/src/sap/fe/core/formatters/StandardFormatter.ts +20 -14
  164. package/src/sap/fe/core/formatters/TableFormatter.js +1 -1
  165. package/src/sap/fe/core/formatters/TableFormatterTypes.js +1 -1
  166. package/src/sap/fe/core/formatters/ValueFormatter.js +1 -1
  167. package/src/sap/fe/core/fpm/Component.js +33 -7
  168. package/src/sap/fe/core/fpm/Component.ts +14 -0
  169. package/src/sap/fe/core/helpers/AnnotationEnum.js +1 -1
  170. package/src/sap/fe/core/helpers/AppStartupHelper.js +5 -4
  171. package/src/sap/fe/core/helpers/AppStartupHelper.ts +4 -3
  172. package/src/sap/fe/core/helpers/BindingToolkit.js +56 -24
  173. package/src/sap/fe/core/helpers/BindingToolkit.ts +67 -21
  174. package/src/sap/fe/core/helpers/ClassSupport.js +31 -3
  175. package/src/sap/fe/core/helpers/ClassSupport.ts +24 -1
  176. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +1 -1
  177. package/src/sap/fe/core/helpers/EditState.js +1 -1
  178. package/src/sap/fe/core/helpers/ExcelFormatHelper.js +1 -1
  179. package/src/sap/fe/core/helpers/FPMHelper.js +1 -1
  180. package/src/sap/fe/core/helpers/KeepAliveHelper.js +1 -1
  181. package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +1 -1
  182. package/src/sap/fe/core/helpers/LoaderUtils.js +39 -0
  183. package/src/sap/fe/core/helpers/LoaderUtils.ts +14 -0
  184. package/src/sap/fe/core/helpers/MassEditHelper.js +475 -99
  185. package/src/sap/fe/core/helpers/MassEditHelper.ts +468 -155
  186. package/src/sap/fe/core/helpers/MessageStrip.js +81 -0
  187. package/src/sap/fe/core/helpers/MessageStrip.ts +79 -0
  188. package/src/sap/fe/core/helpers/ModelHelper.js +1 -1
  189. package/src/sap/fe/core/helpers/PasteHelper.js +1 -1
  190. package/src/sap/fe/core/helpers/SemanticDateOperators.js +82 -36
  191. package/src/sap/fe/core/helpers/SemanticDateOperators.ts +52 -36
  192. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +1 -1
  193. package/src/sap/fe/core/helpers/SideEffectsHelper.js +146 -0
  194. package/src/sap/fe/core/helpers/SideEffectsHelper.ts +128 -0
  195. package/src/sap/fe/core/helpers/StableIdHelper.js +1 -1
  196. package/src/sap/fe/core/helpers/Synchronization.js +1 -1
  197. package/src/sap/fe/core/helpers/ToES6Promise.js +32 -0
  198. package/src/sap/fe/core/helpers/ToES6Promise.ts +19 -0
  199. package/src/sap/fe/core/jsx-runtime/Fragment.js +16 -0
  200. package/src/sap/fe/core/jsx-runtime/Fragment.ts +3 -0
  201. package/src/sap/fe/core/jsx-runtime/ViewLoader.js +109 -0
  202. package/src/sap/fe/core/jsx-runtime/ViewLoader.tsx +47 -0
  203. package/src/sap/fe/core/jsx-runtime/jsx-control.js +119 -0
  204. package/src/sap/fe/core/jsx-runtime/jsx-control.ts +98 -0
  205. package/src/sap/fe/core/jsx-runtime/jsx-xml.js +105 -0
  206. package/src/sap/fe/core/jsx-runtime/jsx-xml.ts +89 -0
  207. package/src/sap/fe/core/jsx-runtime/jsx.js +12 -90
  208. package/src/sap/fe/core/jsx-runtime/jsx.ts +24 -85
  209. package/src/sap/fe/core/jsx-runtime/jsxs.js +1 -1
  210. package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +179 -0
  211. package/src/sap/fe/core/jsx-runtime/useMDXComponents.tsx +150 -0
  212. package/src/sap/fe/core/library.js +2 -2
  213. package/src/sap/fe/core/library.support.js +1 -1
  214. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -1
  215. package/src/sap/fe/core/messagebundle.properties +4 -41
  216. package/src/sap/fe/core/messagebundle_ar.properties +22 -45
  217. package/src/sap/fe/core/messagebundle_bg.properties +22 -45
  218. package/src/sap/fe/core/messagebundle_ca.properties +22 -45
  219. package/src/sap/fe/core/messagebundle_cs.properties +22 -45
  220. package/src/sap/fe/core/messagebundle_cy.properties +21 -44
  221. package/src/sap/fe/core/messagebundle_da.properties +22 -45
  222. package/src/sap/fe/core/messagebundle_de.properties +22 -45
  223. package/src/sap/fe/core/messagebundle_el.properties +22 -45
  224. package/src/sap/fe/core/messagebundle_en.properties +21 -44
  225. package/src/sap/fe/core/messagebundle_en_GB.properties +21 -44
  226. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +21 -42
  227. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +20 -40
  228. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +21 -42
  229. package/src/sap/fe/core/messagebundle_es.properties +22 -45
  230. package/src/sap/fe/core/messagebundle_es_MX.properties +22 -45
  231. package/src/sap/fe/core/messagebundle_et.properties +22 -45
  232. package/src/sap/fe/core/messagebundle_fi.properties +22 -45
  233. package/src/sap/fe/core/messagebundle_fr.properties +21 -44
  234. package/src/sap/fe/core/messagebundle_fr_CA.properties +20 -43
  235. package/src/sap/fe/core/messagebundle_hi.properties +22 -45
  236. package/src/sap/fe/core/messagebundle_hr.properties +22 -45
  237. package/src/sap/fe/core/messagebundle_hu.properties +22 -45
  238. package/src/sap/fe/core/messagebundle_id.properties +22 -45
  239. package/src/sap/fe/core/messagebundle_it.properties +22 -45
  240. package/src/sap/fe/core/messagebundle_iw.properties +22 -45
  241. package/src/sap/fe/core/messagebundle_ja.properties +22 -45
  242. package/src/sap/fe/core/messagebundle_kk.properties +22 -45
  243. package/src/sap/fe/core/messagebundle_ko.properties +27 -50
  244. package/src/sap/fe/core/messagebundle_lt.properties +22 -45
  245. package/src/sap/fe/core/messagebundle_lv.properties +22 -45
  246. package/src/sap/fe/core/messagebundle_ms.properties +22 -45
  247. package/src/sap/fe/core/messagebundle_nl.properties +24 -47
  248. package/src/sap/fe/core/messagebundle_no.properties +22 -45
  249. package/src/sap/fe/core/messagebundle_pl.properties +23 -46
  250. package/src/sap/fe/core/messagebundle_pt.properties +23 -46
  251. package/src/sap/fe/core/messagebundle_pt_PT.properties +22 -45
  252. package/src/sap/fe/core/messagebundle_ro.properties +22 -45
  253. package/src/sap/fe/core/messagebundle_ru.properties +22 -45
  254. package/src/sap/fe/core/messagebundle_sh.properties +22 -45
  255. package/src/sap/fe/core/messagebundle_sk.properties +22 -45
  256. package/src/sap/fe/core/messagebundle_sl.properties +22 -45
  257. package/src/sap/fe/core/messagebundle_sv.properties +22 -45
  258. package/src/sap/fe/core/messagebundle_th.properties +20 -43
  259. package/src/sap/fe/core/messagebundle_tr.properties +22 -45
  260. package/src/sap/fe/core/messagebundle_uk.properties +22 -45
  261. package/src/sap/fe/core/messagebundle_vi.properties +22 -45
  262. package/src/sap/fe/core/messagebundle_zh_CN.properties +22 -45
  263. package/src/sap/fe/core/messagebundle_zh_TW.properties +22 -45
  264. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +2 -2
  265. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +102 -74
  266. package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +62 -63
  267. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +2 -2
  268. package/src/sap/fe/core/services/NavigationServiceFactory.js +11 -8
  269. package/src/sap/fe/core/services/NavigationServiceFactory.ts +10 -7
  270. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +2 -2
  271. package/src/sap/fe/core/services/RoutingServiceFactory.js +2 -2
  272. package/src/sap/fe/core/services/ShellServicesFactory.js +22 -2
  273. package/src/sap/fe/core/services/ShellServicesFactory.ts +19 -0
  274. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +4 -4
  275. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +2 -2
  276. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +251 -200
  277. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +160 -144
  278. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +2 -2
  279. package/src/sap/fe/core/support/AnnotationIssue.support.js +1 -1
  280. package/src/sap/fe/core/support/CollectionFacetMissingID.support.js +1 -1
  281. package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +1 -1
  282. package/src/sap/fe/core/support/CommonHelper.js +1 -1
  283. package/src/sap/fe/core/support/Diagnostics.js +1 -1
  284. package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +1 -1
  285. package/src/sap/fe/core/templating/CommonFormatters.js +4 -3
  286. package/src/sap/fe/core/templating/CommonFormatters.ts +5 -1
  287. package/src/sap/fe/core/templating/CriticalityFormatters.js +1 -1
  288. package/src/sap/fe/core/templating/DataFieldFormatters.js +1 -1
  289. package/src/sap/fe/core/templating/DataModelPathHelper.js +8 -1
  290. package/src/sap/fe/core/templating/DataModelPathHelper.ts +5 -2
  291. package/src/sap/fe/core/templating/DisplayModeFormatter.js +1 -1
  292. package/src/sap/fe/core/templating/EntitySetHelper.js +4 -5
  293. package/src/sap/fe/core/templating/EntitySetHelper.ts +4 -3
  294. package/src/sap/fe/core/templating/FieldControlHelper.js +1 -1
  295. package/src/sap/fe/core/templating/FilterHelper.js +34 -15
  296. package/src/sap/fe/core/templating/FilterHelper.ts +28 -12
  297. package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
  298. package/src/sap/fe/core/templating/PropertyFormatters.js +1 -1
  299. package/src/sap/fe/core/templating/PropertyHelper.js +1 -1
  300. package/src/sap/fe/core/templating/UIFormatters.js +5 -3
  301. package/src/sap/fe/core/templating/UIFormatters.ts +7 -5
  302. package/src/sap/fe/core/type/DateTimeWithTimezone.js +2 -2
  303. package/src/sap/fe/core/type/Email.js +2 -2
@@ -19,7 +19,7 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/controls/filterbar/utils/
19
19
 
20
20
  function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
21
21
 
22
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
22
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
23
23
 
24
24
  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
25
25
 
@@ -305,4 +305,4 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/controls/filterbar/utils/
305
305
  })), _class2)) || _class);
306
306
  return VisualFilter;
307
307
  }, false);
308
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlZpc3VhbEZpbHRlci50cyJdLCJuYW1lcyI6WyJWaXN1YWxGaWx0ZXIiLCJkZWZpbmVVSTVDbGFzcyIsImltcGxlbWVudEludGVyZmFjZSIsInByb3BlcnR5IiwidHlwZSIsImV2ZW50Iiwib25BZnRlclJlbmRlcmluZyIsInNMYWJlbCIsIm9JbnRlcmFjdGl2ZUNoYXJ0IiwiZ2V0SXRlbXMiLCJzSW50ZXJuYWxDb250ZXh0UGF0aCIsImRhdGEiLCJvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nIiwiZ2V0QmluZGluZyIsIm9JbnRlcm5hbE1vZGVsQ29udGV4dCIsImdldEJpbmRpbmdDb250ZXh0Iiwib1Jlc291cmNlQnVuZGxlIiwiQ29yZSIsImdldExpYnJhcnlSZXNvdXJjZUJ1bmRsZSIsImJTaG93T3ZlckxheUluaXRpYWxseSIsIm9TZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbiIsIkNvbW1vbkhlbHBlciIsInBhcnNlQ3VzdG9tRGF0YSIsIlNlbGVjdE9wdGlvbnMiLCJhUmVxdWlyZWRQcm9wZXJ0aWVzIiwib01ldGFNb2RlbCIsImdldE1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwic0VudGl0eVNldFBhdGgiLCJnZXRQYXRoIiwib0ZpbHRlckJhciIsImdldFBhcmVudCIsImdldE1ldGFkYXRhIiwiZ2V0RWxlbWVudE5hbWUiLCJvRmlsdGVyQmFyQ29uZGl0aW9ucyIsImFQcm9wZXJ0eUluZm9TZXQiLCJzRmlsdGVyRW50aXR5TmFtZSIsImdldENvbmRpdGlvbnMiLCJnZXRQcm9wZXJ0eUluZm9TZXQiLCJzcGxpdCIsImFQYXJhbWV0ZXJzIiwiY3VzdG9tRGF0YSIsImZpbHRlckNvbmRpdGlvbnMiLCJnZXRGaWx0ZXJzQ29uZGl0aW9uc0Zyb21TZWxlY3Rpb25WYXJpYW50IiwiVmlzdWFsRmlsdGVyVXRpbHMiLCJnZXRDdXN0b21Db25kaXRpb25zIiwiYmluZCIsIm9TZWxlY3Rpb25WYXJpYW50Q29uZGl0aW9ucyIsImNvbnZlcnRGaWx0ZXJDb25kaW9ucyIsIm1Db25kaXRpb25zIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJzS2V5IiwibGVuZ3RoIiwic2V0UHJvcGVydHkiLCJnZXRUZXh0IiwiZ2V0T2JqZWN0IiwiYVNlbGVjdE9wdGlvbnMiLCJhTm90TWF0Y2hlZENvbmRpdGlvbnMiLCJvU2VsZWN0T3B0aW9uIiwicHVzaCIsIlByb3BlcnR5TmFtZSIsIiRQcm9wZXJ0eVBhdGgiLCJQYXJhbWV0ZXJzIiwib1BhcmFtZXRlciIsInNQYXRoIiwiaW5kZXhPZiIsIl9vQ2hhcnRCaW5kaW5nIiwiZGV0YWNoRGF0YVJlY2VpdmVkSGFuZGxlciIsImF0dGFjaERhdGFSZWNpdmVkSGFuZGxlciIsImJTaG93T3ZlcmxheSIsImdldFByb3BlcnR5Iiwic2hvd0Vycm9yIiwic0NoYXJ0RW50aXR5TmFtZSIsInNCaW5kaW5nUGF0aCIsIkZpbHRlclV0aWxzIiwiZ2V0QmluZGluZ1BhdGhGb3JQYXJhbWV0ZXJzIiwiaXNTdXNwZW5kZWQiLCJyZXN1bWUiLCJhdHRhY2hFdmVudCIsIm9uSW50ZXJuYWxEYXRhUmVjZWl2ZWQiLCJkZXRhY2hFdmVudCIsInVuZGVmaW5lZCIsInNldFNob3dWYWx1ZUhlbHAiLCJiU2hvd1ZhbHVlSGVscCIsIm9WaXN1YWxGaWx0ZXJDb250cm9sIiwiZ2V0Q29udGVudCIsInNvbWUiLCJvSW5uZXJDb250cm9sIiwiaXNBIiwic2V0VmlzaWJsZSIsInNldFZhbHVlSGVscEljb25TcmMiLCJzSWNvblNyYyIsInNldEljb24iLCJvRXZlbnQiLCJzSWQiLCJnZXRJZCIsIm9WaWV3IiwiQ29tbW9uVXRpbHMiLCJnZXRUYXJnZXRWaWV3IiwidlVPTSIsInVwZGF0ZUNoYXJ0U2NhbGVGYWN0b3JUaXRsZSIsImdldFBhcmFtZXRlciIsInMxOG5NZXNzYWdlVGl0bGUiLCJzMThuTWVzc2FnZSIsImFwcGx5RXJyb3JNZXNzYWdlQW5kVGl0bGUiLCJvRGF0YSIsImdldFNvdXJjZSIsImdldEN1cnJlbnRDb250ZXh0cyIsInNldE5vRGF0YU1lc3NhZ2UiLCJzZXRNdWx0aVVPTU1lc3NhZ2UiLCIkUGF0aCIsIm9Db250ZXh0cyIsImdldENvbnRleHRzIiwib0NvbnRleHREYXRhIiwiYXBwbHlVT01Ub1RpdGxlIiwiVkJveCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7TUFFTUEsWSxXQURMQyxjQUFjLENBQUMsNkNBQUQsQyxVQUViQyxrQkFBa0IsQ0FBQywwQkFBRCxDLFVBRWxCQyxRQUFRLENBQUM7QUFDVEMsSUFBQUEsSUFBSSxFQUFFO0FBREcsR0FBRCxDLFVBSVJELFFBQVEsQ0FBQztBQUNUQyxJQUFBQSxJQUFJLEVBQUU7QUFERyxHQUFELEMsVUFJUkMsS0FBSyxFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1dBSU5DLGdCLEdBQUEsNEJBQW1CO0FBQ2xCLFVBQUlDLE1BQUo7QUFDQSxVQUFNQyxpQkFBaUIsR0FBSSxLQUFLQyxRQUFMLEdBQWdCLENBQWhCLENBQUQsQ0FBNEJBLFFBQTVCLEdBQXVDLENBQXZDLENBQTFCO0FBQ0EsVUFBTUMsb0JBQW9CLEdBQUcsS0FBS0MsSUFBTCxDQUFVLFVBQVYsQ0FBN0I7QUFDQSxVQUFNQyw0QkFBNEIsR0FDakNKLGlCQUFpQixDQUFDSyxVQUFsQixDQUE2QixVQUE3QixLQUE0Q0wsaUJBQWlCLENBQUNLLFVBQWxCLENBQTZCLE1BQTdCLENBQTVDLElBQW9GTCxpQkFBaUIsQ0FBQ0ssVUFBbEIsQ0FBNkIsUUFBN0IsQ0FEckY7QUFFQSxVQUFNQyxxQkFBcUIsR0FBR04saUJBQWlCLENBQUNPLGlCQUFsQixDQUFvQyxVQUFwQyxDQUE5QjtBQUNBLFVBQU1DLGVBQWUsR0FBSUMsSUFBRCxDQUFpQkMsd0JBQWpCLENBQTBDLGVBQTFDLENBQXhCO0FBQ0EsVUFBTUMscUJBQXFCLEdBQUdYLGlCQUFpQixDQUFDRyxJQUFsQixDQUF1Qixz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cUJBQXFCLENBQUN5QyxXQUF0QixDQUFrQzdDLG9CQUFsQyxFQUF3RCxFQUF4RDtBQUNBOztBQUNEa0MsUUFBQUEsaUJBQWlCLENBQUNtRSxrQkFBbEIsQ0FBcUNKLEtBQXJDLEVBQTRDbkcsaUJBQTVDLEVBQStERSxvQkFBL0QsRUFBcUZNLGVBQXJGLEVBQXNHa0YsS0FBdEc7QUFDQTs7QUFDRCxVQUFJRyxJQUFJLEtBQU1BLElBQUksQ0FBQyxhQUFELENBQUosSUFBdUJBLElBQUksQ0FBQyxhQUFELENBQUosQ0FBb0JXLEtBQTVDLElBQXVEWCxJQUFJLENBQUMsTUFBRCxDQUFKLElBQWdCQSxJQUFJLENBQUMsTUFBRCxDQUFKLENBQWFXLEtBQXpGLENBQVIsRUFBMEc7QUFDekcsWUFBTUMsU0FBUyxHQUFHbEIsTUFBTSxDQUFDYSxTQUFQLEdBQW1CTSxXQUFuQixFQUFsQjtBQUNBLFlBQU1DLFlBQVksR0FBR0YsU0FBUyxJQUFJQSxTQUFTLENBQUMsQ0FBRCxDQUFULENBQWF4RCxTQUFiLEVBQWxDO0FBQ0FiLFFBQUFBLGlCQUFpQixDQUFDd0UsZUFBbEIsQ0FBa0M1RyxpQkFBbEMsRUFBcUQyRyxZQUFyRCxFQUFtRWpCLEtBQW5FLEVBQTBFeEYsb0JBQTFFO0FBQ0E7QUFDRCxLOzs7SUE5TnlCMkcsSTs7Ozs7YUFFd0IsSTs7Ozs7Ozs7Ozs7Ozs7Ozs7O1NBOE5wQ3JILFkiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCBWaXN1YWxGaWx0ZXJVdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbHMvZmlsdGVyYmFyL3V0aWxzL1Zpc3VhbEZpbHRlclV0aWxzXCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgZXZlbnQsIGltcGxlbWVudEludGVyZmFjZSwgcHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBDb21tb25IZWxwZXIgZnJvbSBcInNhcC9mZS9tYWNyb3MvQ29tbW9uSGVscGVyXCI7XG5pbXBvcnQgRmlsdGVyVXRpbHMgZnJvbSBcInNhcC9mZS9tYWNyb3MvZmlsdGVyL0ZpbHRlclV0aWxzXCI7XG5pbXBvcnQgVkJveCBmcm9tIFwic2FwL20vVkJveFwiO1xuaW1wb3J0IENvcmUgZnJvbSBcInNhcC91aS9jb3JlL0NvcmVcIjtcbmltcG9ydCB0eXBlIHsgSUZvcm1Db250ZW50IH0gZnJvbSBcInNhcC91aS9jb3JlL2xpYnJhcnlcIjtcbmltcG9ydCB0eXBlIEZpbHRlckJhciBmcm9tIFwic2FwL3VpL21kYy9GaWx0ZXJCYXJcIjtcbmltcG9ydCB0eXBlIHsgQ29yZUV4IH0gZnJvbSBcInR5cGVzL2V4dGVuc2lvbl90eXBlc1wiO1xuaW1wb3J0IHsgZ2V0RmlsdGVyc0NvbmRpdGlvbnNGcm9tU2VsZWN0aW9uVmFyaWFudCB9IGZyb20gXCIuLi8uLi90ZW1wbGF0aW5nL0ZpbHRlckhlbHBlclwiO1xuLyoqXG4gKiBDb25zdHJ1Y3RvciBmb3IgYSBuZXcgZmlsdGVyQmFyL2FsaWduZWQvRmlsdGVySXRlbUxheW91dC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gW3NJZF0gSUQgZm9yIHRoZSBuZXcgY29udHJvbCwgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgaWYgbm8gSUQgaXMgZ2l2ZW5cbiAqIEBwYXJhbSB7b2JqZWN0fSBbbVNldHRpbmdzXSBJbml0aWFsIHNldHRpbmdzIGZvciB0aGUgbmV3IGNvbnRyb2xcbiAqIEBjbGFzcyBSZXByZXNlbnRzIGEgZmlsdGVyIGl0ZW0gb24gdGhlIFVJLlxuICogQGV4dGVuZHMgc2FwLm0uVkJveFxuICogQGltcGxlbWVudHMge3NhcC51aS5jb3JlLklGb3JtQ29udGVudH1cbiAqIEBjbGFzc1xuICogQHByaXZhdGVcbiAqIEBzaW5jZSAxLjYxLjBcbiAqIEBhbGlhcyBjb250cm9sIHNhcC5mZS5jb3JlLmNvbnRyb2xzLmZpbHRlcmJhci5WaXN1YWxGaWx0ZXJcbiAqL1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLmNvcmUuY29udHJvbHMuZmlsdGVyYmFyLlZpc3VhbEZpbHRlclwiKVxuY2xhc3MgVmlzdWFsRmlsdGVyIGV4dGVuZHMgVkJveCBpbXBsZW1lbnRzIElGb3JtQ29udGVudCB7XG5cdEBpbXBsZW1lbnRJbnRlcmZhY2UoXCJzYXAudWkuY29yZS5JRm9ybUNvbnRlbnRcIilcblx0X19pbXBsZW1lbnRzX19zYXBfdWlfY29yZV9JRm9ybUNvbnRlbnQ6IGJvb2xlYW4gPSB0cnVlO1xuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwiYm9vbGVhblwiXG5cdH0pXG5cdHNob3dWYWx1ZUhlbHAhOiBib29sZWFuO1xuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCJcblx0fSlcblx0dmFsdWVIZWxwSWNvblNyYyE6IHN0cmluZztcblx0QGV2ZW50KClcblx0dmFsdWVIZWxwUmVxdWVzdCE6IEZ1bmN0aW9uO1xuXHRwcml2YXRlIF9vQ2hhcnRCaW5kaW5nPzogYm9vbGVhbjtcblxuXHRvbkFmdGVyUmVuZGVyaW5nKCkge1xuXHRcdGxldCBzTGFiZWw7XG5cdFx0Y29uc3Qgb0ludGVyYWN0aXZlQ2hhcnQgPSAodGhpcy5nZXRJdGVtcygpWzFdIGFzIGFueSkuZ2V0SXRlbXMoKVswXTtcblx0XHRjb25zdCBzSW50ZXJuYWxDb250ZXh0UGF0aCA9IHRoaXMuZGF0YShcImluZm9QYXRoXCIpO1xuXHRcdGNvbnN0IG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcgPVxuXHRcdFx0b0ludGVyYWN0aXZlQ2hhcnQuZ2V0QmluZGluZyhcInNlZ21lbnRzXCIpIHx8IG9JbnRlcmFjdGl2ZUNoYXJ0LmdldEJpbmRpbmcoXCJiYXJzXCIpIHx8IG9JbnRlcmFjdGl2ZUNoYXJ0LmdldEJpbmRpbmcoXCJwb2ludHNcIik7XG5cdFx0Y29uc3Qgb0ludGVybmFsTW9kZWxDb250ZXh0ID0gb0ludGVyYWN0aXZlQ2hhcnQuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKTtcblx0XHRjb25zdCBvUmVzb3VyY2VCdW5kbGUgPSAoQ29yZSBhcyBDb3JlRXgpLmdldExpYnJhcnlSZXNvdXJjZUJ1bmRsZShcInNhcC5mZS5tYWNyb3NcIik7XG5cdFx0Y29uc3QgYlNob3dPdmVyTGF5SW5pdGlhbGx5ID0gb0ludGVyYWN0aXZlQ2hhcnQuZGF0YShcInNob3dPdmVybGF5SW5pdGlhbGx5XCIpO1xuXHRcdGNvbnN0IG9TZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbjogYW55ID0gb0ludGVyYWN0aXZlQ2hhcnQuZGF0YShcInNlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uXCIpXG5cdFx0XHQ/IENvbW1vbkhlbHBlci5wYXJzZUN1c3RvbURhdGEob0ludGVyYWN0aXZlQ2hhcnQuZGF0YShcInNlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uXCIpKVxuXHRcdFx0OiB7IFNlbGVjdE9wdGlvbnM6IFtdIH07XG5cdFx0Y29uc3QgYVJlcXVpcmVkUHJvcGVydGllczogYW55W10gPSBvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFwicmVxdWlyZWRQcm9wZXJ0aWVzXCIpXG5cdFx0XHQ/IChDb21tb25IZWxwZXIucGFyc2VDdXN0b21EYXRhKG9JbnRlcmFjdGl2ZUNoYXJ0LmRhdGEoXCJyZXF1aXJlZFByb3BlcnRpZXNcIikpIGFzIGFueVtdKVxuXHRcdFx0OiBbXTtcblx0XHRjb25zdCBvTWV0YU1vZGVsID0gb0ludGVyYWN0aXZlQ2hhcnQuZ2V0TW9kZWwoKS5nZXRNZXRhTW9kZWwoKTtcblx0XHRjb25zdCBzRW50aXR5U2V0UGF0aCA9IG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcgPyBvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nLmdldFBhdGgoKSA6IFwiXCI7XG5cdFx0bGV0IG9GaWx0ZXJCYXIgPSB0aGlzLmdldFBhcmVudCgpLmdldFBhcmVudCgpIGFzIEZpbHRlckJhcjtcblx0XHQvLyBUT0RPOiBSZW1vdmUgdGhpcyBwYXJ0IG9uY2UgMjE3MDIwNDM0NyBpcyBmaXhlZFxuXHRcdGlmIChvRmlsdGVyQmFyLmdldE1ldGFkYXRhKCkuZ2V0RWxlbWVudE5hbWUoKSA9PT0gXCJzYXAudWkubWRjLmZpbHRlcmJhci5wMTNuLkFkYXB0YXRpb25GaWx0ZXJCYXJcIikge1xuXHRcdFx0b0ZpbHRlckJhciA9IG9GaWx0ZXJCYXIuZ2V0UGFyZW50KCkuZ2V0UGFyZW50KCkgYXMgRmlsdGVyQmFyO1xuXHRcdH1cblx0XHRsZXQgb0ZpbHRlckJhckNvbmRpdGlvbnM6IGFueSA9IHt9O1xuXHRcdGxldCBhUHJvcGVydHlJbmZvU2V0ID0gW107XG5cdFx0bGV0IHNGaWx0ZXJFbnRpdHlOYW1lO1xuXHRcdGlmIChvRmlsdGVyQmFyLmdldE1ldGFkYXRhKCkuZ2V0RWxlbWVudE5hbWUoKSA9PT0gXCJzYXAuZmUuY29yZS5jb250cm9scy5GaWx0ZXJCYXJcIikge1xuXHRcdFx0b0ZpbHRlckJhckNvbmRpdGlvbnMgPSBvRmlsdGVyQmFyLmdldENvbmRpdGlvbnMoKTtcblx0XHRcdGFQcm9wZXJ0eUluZm9TZXQgPSAob0ZpbHRlckJhciBhcyBhbnkpLmdldFByb3BlcnR5SW5mb1NldCgpO1xuXHRcdFx0c0ZpbHRlckVudGl0eU5hbWUgPSBvRmlsdGVyQmFyLmRhdGEoXCJlbnRpdHlUeXBlXCIpLnNwbGl0KFwiL1wiKVsxXTtcblx0XHR9XG5cdFx0Y29uc3QgYVBhcmFtZXRlcnMgPSBvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFwicGFyYW1ldGVyc1wiKSA/IG9JbnRlcmFjdGl2ZUNoYXJ0LmRhdGEoXCJwYXJhbWV0ZXJzXCIpLmN1c3RvbURhdGEgOiBbXTtcblx0XHRjb25zdCBmaWx0ZXJDb25kaXRpb25zID0gZ2V0RmlsdGVyc0NvbmRpdGlvbnNGcm9tU2VsZWN0aW9uVmFyaWFudChcblx0XHRcdHNFbnRpdHlTZXRQYXRoLFxuXHRcdFx0b01ldGFNb2RlbCxcblx0XHRcdG9TZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbixcblx0XHRcdFZpc3VhbEZpbHRlclV0aWxzLmdldEN1c3RvbUNvbmRpdGlvbnMuYmluZChWaXN1YWxGaWx0ZXJVdGlscylcblx0XHQpO1xuXHRcdGNvbnN0IG9TZWxlY3Rpb25WYXJpYW50Q29uZGl0aW9ucyA9IFZpc3VhbEZpbHRlclV0aWxzLmNvbnZlcnRGaWx0ZXJDb25kaW9ucyhmaWx0ZXJDb25kaXRpb25zKTtcblx0XHRjb25zdCBtQ29uZGl0aW9uczogYW55ID0ge307XG5cblx0XHRPYmplY3Qua2V5cyhvRmlsdGVyQmFyQ29uZGl0aW9ucykuZm9yRWFjaChmdW5jdGlvbiAoc0tleTogc3RyaW5nKSB7XG5cdFx0XHRpZiAob0ZpbHRlckJhckNvbmRpdGlvbnNbc0tleV0ubGVuZ3RoKSB7XG5cdFx0XHRcdG1Db25kaXRpb25zW3NLZXldID0gb0ZpbHRlckJhckNvbmRpdGlvbnNbc0tleV07XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRPYmplY3Qua2V5cyhvU2VsZWN0aW9uVmFyaWFudENvbmRpdGlvbnMpLmZvckVhY2goZnVuY3Rpb24gKHNLZXk6IHN0cmluZykge1xuXHRcdFx0aWYgKCFtQ29uZGl0aW9uc1tzS2V5XSkge1xuXHRcdFx0XHRtQ29uZGl0aW9uc1tzS2V5XSA9IG9TZWxlY3Rpb25WYXJpYW50Q29uZGl0aW9uc1tzS2V5XTtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRpZiAoYlNob3dPdmVyTGF5SW5pdGlhbGx5ID09PSBcInRydWVcIikge1xuXHRcdFx0aWYgKCFPYmplY3Qua2V5cyhvU2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24pLmxlbmd0aCkge1xuXHRcdFx0XHRpZiAoYVJlcXVpcmVkUHJvcGVydGllcy5sZW5ndGggPiAxKSB7XG5cdFx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KHNJbnRlcm5hbENvbnRleHRQYXRoLCB7XG5cdFx0XHRcdFx0XHRcInNob3dFcnJvclwiOiB0cnVlLFxuXHRcdFx0XHRcdFx0XCJlcnJvck1lc3NhZ2VUaXRsZVwiOiBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fVklTVUFMX0ZJTFRFUlNfRVJST1JfTUVTU0FHRV9USVRMRVwiKSxcblx0XHRcdFx0XHRcdFwiZXJyb3JNZXNzYWdlXCI6IG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9WSVNVQUxfRklMVEVSU19QUk9WSURFX0ZJTFRFUl9WQUxfTVVMVElQTEVWRlwiKVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHNMYWJlbCA9XG5cdFx0XHRcdFx0XHRvTWV0YU1vZGVsLmdldE9iamVjdChgJHtzRW50aXR5U2V0UGF0aH0vJHthUmVxdWlyZWRQcm9wZXJ0aWVzWzBdfUBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuTGFiZWxgKSB8fFxuXHRcdFx0XHRcdFx0YVJlcXVpcmVkUHJvcGVydGllc1swXTtcblx0XHRcdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoc0ludGVybmFsQ29udGV4dFBhdGgsIHtcblx0XHRcdFx0XHRcdFwic2hvd0Vycm9yXCI6IHRydWUsXG5cdFx0XHRcdFx0XHRcImVycm9yTWVzc2FnZVRpdGxlXCI6IG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9WSVNVQUxfRklMVEVSU19FUlJPUl9NRVNTQUdFX1RJVExFXCIpLFxuXHRcdFx0XHRcdFx0XCJlcnJvck1lc3NhZ2VcIjogb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1ZJU1VBTF9GSUxURVJTX1BST1ZJREVfRklMVEVSX1ZBTF9TSU5HTEVWRlwiLCBzTGFiZWwpXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGNvbnN0IGFTZWxlY3RPcHRpb25zOiBhbnlbXSA9IFtdO1xuXHRcdFx0XHRjb25zdCBhTm90TWF0Y2hlZENvbmRpdGlvbnM6IGFueVtdID0gW107XG5cdFx0XHRcdGlmIChvU2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24uU2VsZWN0T3B0aW9ucykge1xuXHRcdFx0XHRcdG9TZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbi5TZWxlY3RPcHRpb25zLmZvckVhY2goZnVuY3Rpb24gKG9TZWxlY3RPcHRpb246IGFueSkge1xuXHRcdFx0XHRcdFx0YVNlbGVjdE9wdGlvbnMucHVzaChvU2VsZWN0T3B0aW9uLlByb3BlcnR5TmFtZS4kUHJvcGVydHlQYXRoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAob1NlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uLlBhcmFtZXRlcnMpIHtcblx0XHRcdFx0XHRvU2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24uUGFyYW1ldGVycy5mb3JFYWNoKGZ1bmN0aW9uIChvUGFyYW1ldGVyOiBhbnkpIHtcblx0XHRcdFx0XHRcdGFTZWxlY3RPcHRpb25zLnB1c2gob1BhcmFtZXRlci5Qcm9wZXJ0eU5hbWUuJFByb3BlcnR5UGF0aCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0YVJlcXVpcmVkUHJvcGVydGllcy5mb3JFYWNoKGZ1bmN0aW9uIChzUGF0aDogYW55KSB7XG5cdFx0XHRcdFx0aWYgKGFTZWxlY3RPcHRpb25zLmluZGV4T2Yoc1BhdGgpID09PSAtMSkge1xuXHRcdFx0XHRcdFx0YU5vdE1hdGNoZWRDb25kaXRpb25zLnB1c2goc1BhdGgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHRcdGlmIChhTm90TWF0Y2hlZENvbmRpdGlvbnMubGVuZ3RoID4gMSkge1xuXHRcdFx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShzSW50ZXJuYWxDb250ZXh0UGF0aCwge1xuXHRcdFx0XHRcdFx0XCJzaG93RXJyb3JcIjogdHJ1ZSxcblx0XHRcdFx0XHRcdFwiZXJyb3JNZXNzYWdlVGl0bGVcIjogb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1ZJU1VBTF9GSUxURVJTX0VSUk9SX01FU1NBR0VfVElUTEVcIiksXG5cdFx0XHRcdFx0XHRcImVycm9yTWVzc2FnZVwiOiBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fVklTVUFMX0ZJTFRFUlNfUFJPVklERV9GSUxURVJfVkFMX01VTFRJUExFVkZcIilcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRzTGFiZWwgPVxuXHRcdFx0XHRcdFx0b01ldGFNb2RlbC5nZXRPYmplY3QoYCR7c0VudGl0eVNldFBhdGh9LyR7YU5vdE1hdGNoZWRDb25kaXRpb25zWzBdfUBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuTGFiZWxgKSB8fFxuXHRcdFx0XHRcdFx0YU5vdE1hdGNoZWRDb25kaXRpb25zWzBdO1xuXHRcdFx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShzSW50ZXJuYWxDb250ZXh0UGF0aCwge1xuXHRcdFx0XHRcdFx0XCJzaG93RXJyb3JcIjogdHJ1ZSxcblx0XHRcdFx0XHRcdFwiZXJyb3JNZXNzYWdlVGl0bGVcIjogb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1ZJU1VBTF9GSUxURVJTX0VSUk9SX01FU1NBR0VfVElUTEVcIiksXG5cdFx0XHRcdFx0XHRcImVycm9yTWVzc2FnZVwiOiBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fVklTVUFMX0ZJTFRFUlNfUFJPVklERV9GSUxURVJfVkFMX1NJTkdMRVZGXCIsIHNMYWJlbClcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoYU5vdE1hdGNoZWRDb25kaXRpb25zLmxlbmd0aCA+IDEpIHtcblx0XHRcdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoc0ludGVybmFsQ29udGV4dFBhdGgsIHtcblx0XHRcdFx0XHRcdFwic2hvd0Vycm9yXCI6IHRydWUsXG5cdFx0XHRcdFx0XHRcImVycm9yTWVzc2FnZVRpdGxlXCI6IG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9WSVNVQUxfRklMVEVSU19FUlJPUl9NRVNTQUdFX1RJVExFXCIpLFxuXHRcdFx0XHRcdFx0XCJlcnJvck1lc3NhZ2VcIjogb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1ZJU1VBTF9GSUxURVJTX1BST1ZJREVfRklMVEVSX1ZBTF9NVUxUSVBMRVZGXCIpXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KHNJbnRlcm5hbENvbnRleHRQYXRoLCB7XG5cdFx0XHRcdFx0XHRcInNob3dFcnJvclwiOiB0cnVlLFxuXHRcdFx0XHRcdFx0XCJlcnJvck1lc3NhZ2VUaXRsZVwiOiBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fVklTVUFMX0ZJTFRFUlNfRVJST1JfTUVTU0FHRV9USVRMRVwiKSxcblx0XHRcdFx0XHRcdFwiZXJyb3JNZXNzYWdlXCI6IG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9WSVNVQUxfRklMVEVSU19QUk9WSURFX0ZJTFRFUl9WQUxfU0lOR0xFVkZcIiwgYU5vdE1hdGNoZWRDb25kaXRpb25zWzBdKVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKCF0aGlzLl9vQ2hhcnRCaW5kaW5nIHx8IHRoaXMuX29DaGFydEJpbmRpbmcgIT09IG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcpIHtcblx0XHRcdGlmICh0aGlzLl9vQ2hhcnRCaW5kaW5nKSB7XG5cdFx0XHRcdHRoaXMuZGV0YWNoRGF0YVJlY2VpdmVkSGFuZGxlcih0aGlzLl9vQ2hhcnRCaW5kaW5nKTtcblx0XHRcdH1cblx0XHRcdHRoaXMuYXR0YWNoRGF0YVJlY2l2ZWRIYW5kbGVyKG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcpO1xuXHRcdFx0dGhpcy5fb0NoYXJ0QmluZGluZyA9IG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmc7XG5cdFx0fVxuXHRcdGNvbnN0IGJTaG93T3ZlcmxheSA9XG5cdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuZ2V0UHJvcGVydHkoc0ludGVybmFsQ29udGV4dFBhdGgpICYmIG9JbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRQcm9wZXJ0eShzSW50ZXJuYWxDb250ZXh0UGF0aCkuc2hvd0Vycm9yO1xuXHRcdGNvbnN0IHNDaGFydEVudGl0eU5hbWUgPSBzRW50aXR5U2V0UGF0aCAhPT0gXCJcIiA/IHNFbnRpdHlTZXRQYXRoLnNwbGl0KFwiL1wiKVsxXS5zcGxpdChcIihcIilbMF0gOiBcIlwiO1xuXHRcdGlmIChhUGFyYW1ldGVycyAmJiBhUGFyYW1ldGVycy5sZW5ndGggJiYgc0ZpbHRlckVudGl0eU5hbWUgPT09IHNDaGFydEVudGl0eU5hbWUpIHtcblx0XHRcdGNvbnN0IHNCaW5kaW5nUGF0aCA9IEZpbHRlclV0aWxzLmdldEJpbmRpbmdQYXRoRm9yUGFyYW1ldGVycyhvRmlsdGVyQmFyLCBtQ29uZGl0aW9ucywgYVByb3BlcnR5SW5mb1NldCwgYVBhcmFtZXRlcnMpO1xuXHRcdFx0aWYgKHNCaW5kaW5nUGF0aCkge1xuXHRcdFx0XHRvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nLnNQYXRoID0gc0JpbmRpbmdQYXRoO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQvLyByZXN1bWUgYmluZGluZyBmb3Igb25seSB0aG9zZSB2aXN1YWwgZmlsdGVycyB0aGF0IGRvIG5vdCBoYXZlIGEgaW4gcGFyYW1ldGVyIGF0dGFjaGVkLlxuXHRcdC8vIEJpbmRpbmdzIG9mIHZpc3VhbCBmaWx0ZXJzIHdpdGggaW5QYXJhbWV0ZXJzIHdpbGwgYmUgcmVzdW1lZCBsYXRlciBhZnRlciBjb25zaWRlcmluZyBpbiBwYXJhbWV0ZXJzLlxuXHRcdGlmIChvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nICYmIG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcuaXNTdXNwZW5kZWQoKSAmJiAhYlNob3dPdmVybGF5KSB7XG5cdFx0XHRvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nLnJlc3VtZSgpO1xuXHRcdH1cblx0fVxuXG5cdGF0dGFjaERhdGFSZWNpdmVkSGFuZGxlcihvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nOiBhbnkpIHtcblx0XHRpZiAob0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZykge1xuXHRcdFx0b0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZy5hdHRhY2hFdmVudChcImRhdGFSZWNlaXZlZFwiLCB0aGlzLm9uSW50ZXJuYWxEYXRhUmVjZWl2ZWQsIHRoaXMpO1xuXHRcdFx0dGhpcy5fb0NoYXJ0QmluZGluZyA9IG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmc7XG5cdFx0fVxuXHR9XG5cblx0ZGV0YWNoRGF0YVJlY2VpdmVkSGFuZGxlcihvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nOiBhbnkpIHtcblx0XHRpZiAob0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZykge1xuXHRcdFx0b0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZy5kZXRhY2hFdmVudChcImRhdGFSZWNlaXZlZFwiLCB0aGlzLm9uSW50ZXJuYWxEYXRhUmVjZWl2ZWQsIHRoaXMpO1xuXHRcdFx0dGhpcy5fb0NoYXJ0QmluZGluZyA9IHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblxuXHRzZXRTaG93VmFsdWVIZWxwKGJTaG93VmFsdWVIZWxwOiBhbnkpIHtcblx0XHRpZiAodGhpcy5nZXRJdGVtcygpLmxlbmd0aCA+IDApIHtcblx0XHRcdGNvbnN0IG9WaXN1YWxGaWx0ZXJDb250cm9sID0gKHRoaXMuZ2V0SXRlbXMoKVswXSBhcyBhbnkpLmdldEl0ZW1zKClbMF07XG5cdFx0XHRvVmlzdWFsRmlsdGVyQ29udHJvbC5nZXRDb250ZW50KCkuc29tZShmdW5jdGlvbiAob0lubmVyQ29udHJvbDogYW55KSB7XG5cdFx0XHRcdGlmIChvSW5uZXJDb250cm9sLmlzQShcInNhcC5tLkJ1dHRvblwiKSkge1xuXHRcdFx0XHRcdG9Jbm5lckNvbnRyb2wuc2V0VmlzaWJsZShiU2hvd1ZhbHVlSGVscCk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0dGhpcy5zZXRQcm9wZXJ0eShcInNob3dWYWx1ZUhlbHBcIiwgYlNob3dWYWx1ZUhlbHApO1xuXHRcdH1cblx0fVxuXG5cdHNldFZhbHVlSGVscEljb25TcmMoc0ljb25TcmM6IGFueSkge1xuXHRcdGlmICh0aGlzLmdldEl0ZW1zKCkubGVuZ3RoID4gMCkge1xuXHRcdFx0Y29uc3Qgb1Zpc3VhbEZpbHRlckNvbnRyb2wgPSAodGhpcy5nZXRJdGVtcygpWzBdIGFzIGFueSkuZ2V0SXRlbXMoKVswXTtcblx0XHRcdG9WaXN1YWxGaWx0ZXJDb250cm9sLmdldENvbnRlbnQoKS5zb21lKGZ1bmN0aW9uIChvSW5uZXJDb250cm9sOiBhbnkpIHtcblx0XHRcdFx0aWYgKG9Jbm5lckNvbnRyb2wuaXNBKFwic2FwLm0uQnV0dG9uXCIpKSB7XG5cdFx0XHRcdFx0b0lubmVyQ29udHJvbC5zZXRJY29uKHNJY29uU3JjKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHR0aGlzLnNldFByb3BlcnR5KFwidmFsdWVIZWxwSWNvblNyY1wiLCBzSWNvblNyYyk7XG5cdFx0fVxuXHR9XG5cblx0b25JbnRlcm5hbERhdGFSZWNlaXZlZChvRXZlbnQ6IGFueSkge1xuXHRcdGNvbnN0IHNJZCA9IHRoaXMuZ2V0SWQoKTtcblx0XHRjb25zdCBvVmlldyA9IENvbW1vblV0aWxzLmdldFRhcmdldFZpZXcodGhpcyk7XG5cdFx0Y29uc3Qgb0ludGVyYWN0aXZlQ2hhcnQgPSAodGhpcy5nZXRJdGVtcygpWzFdIGFzIGFueSkuZ2V0SXRlbXMoKVswXTtcblx0XHRjb25zdCBzSW50ZXJuYWxDb250ZXh0UGF0aCA9IHRoaXMuZGF0YShcImluZm9QYXRoXCIpO1xuXHRcdGNvbnN0IG9JbnRlcm5hbE1vZGVsQ29udGV4dCA9IG9JbnRlcmFjdGl2ZUNoYXJ0LmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIik7XG5cdFx0Y29uc3Qgb1Jlc291cmNlQnVuZGxlID0gKENvcmUgYXMgQ29yZUV4KS5nZXRMaWJyYXJ5UmVzb3VyY2VCdW5kbGUoXCJzYXAuZmUubWFjcm9zXCIpO1xuXHRcdGNvbnN0IHZVT00gPSBvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFwidW9tXCIpO1xuXHRcdFZpc3VhbEZpbHRlclV0aWxzLnVwZGF0ZUNoYXJ0U2NhbGVGYWN0b3JUaXRsZShvSW50ZXJhY3RpdmVDaGFydCwgb1ZpZXcsIHNJZCwgc0ludGVybmFsQ29udGV4dFBhdGgpO1xuXHRcdGlmIChvRXZlbnQuZ2V0UGFyYW1ldGVyKFwiZXJyb3JcIikpIHtcblx0XHRcdGNvbnN0IHMxOG5NZXNzYWdlVGl0bGUgPSBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fVklTVUFMX0ZJTFRFUlNfRVJST1JfTUVTU0FHRV9USVRMRVwiKTtcblx0XHRcdGNvbnN0IHMxOG5NZXNzYWdlID0gb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1ZJU1VBTF9GSUxURVJTX0VSUk9SX0RBVEFfVEVYVFwiKTtcblx0XHRcdFZpc3VhbEZpbHRlclV0aWxzLmFwcGx5RXJyb3JNZXNzYWdlQW5kVGl0bGUoczE4bk1lc3NhZ2VUaXRsZSwgczE4bk1lc3NhZ2UsIHNJbnRlcm5hbENvbnRleHRQYXRoLCBvVmlldyk7XG5cdFx0fSBlbHNlIGlmIChvRXZlbnQuZ2V0UGFyYW1ldGVyKFwiZGF0YVwiKSkge1xuXHRcdFx0Y29uc3Qgb0RhdGEgPSBvRXZlbnQuZ2V0U291cmNlKCkuZ2V0Q3VycmVudENvbnRleHRzKCk7XG5cdFx0XHRpZiAob0RhdGEgJiYgb0RhdGEubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRcdFZpc3VhbEZpbHRlclV0aWxzLnNldE5vRGF0YU1lc3NhZ2Uoc0ludGVybmFsQ29udGV4dFBhdGgsIG9SZXNvdXJjZUJ1bmRsZSwgb1ZpZXcpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KHNJbnRlcm5hbENvbnRleHRQYXRoLCB7fSk7XG5cdFx0XHR9XG5cdFx0XHRWaXN1YWxGaWx0ZXJVdGlscy5zZXRNdWx0aVVPTU1lc3NhZ2Uob0RhdGEsIG9JbnRlcmFjdGl2ZUNoYXJ0LCBzSW50ZXJuYWxDb250ZXh0UGF0aCwgb1Jlc291cmNlQnVuZGxlLCBvVmlldyk7XG5cdFx0fVxuXHRcdGlmICh2VU9NICYmICgodlVPTVtcIklTT0N1cnJlbmN5XCJdICYmIHZVT01bXCJJU09DdXJyZW5jeVwiXS4kUGF0aCkgfHwgKHZVT01bXCJVbml0XCJdICYmIHZVT01bXCJVbml0XCJdLiRQYXRoKSkpIHtcblx0XHRcdGNvbnN0IG9Db250ZXh0cyA9IG9FdmVudC5nZXRTb3VyY2UoKS5nZXRDb250ZXh0cygpO1xuXHRcdFx0Y29uc3Qgb0NvbnRleHREYXRhID0gb0NvbnRleHRzICYmIG9Db250ZXh0c1swXS5nZXRPYmplY3QoKTtcblx0XHRcdFZpc3VhbEZpbHRlclV0aWxzLmFwcGx5VU9NVG9UaXRsZShvSW50ZXJhY3RpdmVDaGFydCwgb0NvbnRleHREYXRhLCBvVmlldywgc0ludGVybmFsQ29udGV4dFBhdGgpO1xuXHRcdH1cblx0fVxufVxuZXhwb3J0IGRlZmF1bHQgVmlzdWFsRmlsdGVyO1xuIl19
308
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJWaXN1YWxGaWx0ZXIiLCJkZWZpbmVVSTVDbGFzcyIsImltcGxlbWVudEludGVyZmFjZSIsInByb3BlcnR5IiwidHlwZSIsImV2ZW50Iiwib25BZnRlclJlbmRlcmluZyIsInNMYWJlbCIsIm9JbnRlcmFjdGl2ZUNoYXJ0IiwiZ2V0SXRlbXMiLCJzSW50ZXJuYWxDb250ZXh0UGF0aCIsImRhdGEiLCJvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nIiwiZ2V0QmluZGluZyIsIm9JbnRlcm5hbE1vZGVsQ29udGV4dCIsImdldEJpbmRpbmdDb250ZXh0Iiwib1Jlc291cmNlQnVuZGxlIiwiQ29yZSIsImdldExpYnJhcnlSZXNvdXJjZUJ1bmRsZSIsImJTaG93T3ZlckxheUluaXRpYWxseSIsIm9TZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbiIsIkNvbW1vbkhlbHBlciIsInBhcnNlQ3VzdG9tRGF0YSIsIlNlbGVjdE9wdGlvbnMiLCJhUmVxdWlyZWRQcm9wZXJ0aWVzIiwib01ldGFNb2RlbCIsImdldE1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwic0VudGl0eVNldFBhdGgiLCJnZXRQYXRoIiwib0ZpbHRlckJhciIsImdldFBhcmVudCIsImdldE1ldGFkYXRhIiwiZ2V0RWxlbWVudE5hbWUiLCJvRmlsdGVyQmFyQ29uZGl0aW9ucyIsImFQcm9wZXJ0eUluZm9TZXQiLCJzRmlsdGVyRW50aXR5TmFtZSIsImdldENvbmRpdGlvbnMiLCJnZXRQcm9wZXJ0eUluZm9TZXQiLCJzcGxpdCIsImFQYXJhbWV0ZXJzIiwiY3VzdG9tRGF0YSIsImZpbHRlckNvbmRpdGlvbnMiLCJnZXRGaWx0ZXJzQ29uZGl0aW9uc0Zyb21TZWxlY3Rpb25WYXJpYW50IiwiVmlzdWFsRmlsdGVyVXRpbHMiLCJnZXRDdXN0b21Db25kaXRpb25zIiwiYmluZCIsIm9TZWxlY3Rpb25WYXJpYW50Q29uZGl0aW9ucyIsImNvbnZlcnRGaWx0ZXJDb25kaW9ucyIsIm1Db25kaXRpb25zIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJzS2V5IiwibGVuZ3RoIiwic2V0UHJvcGVydHkiLCJnZXRUZXh0IiwiZ2V0T2JqZWN0IiwiYVNlbGVjdE9wdGlvbnMiLCJhTm90TWF0Y2hlZENvbmRpdGlvbnMiLCJvU2VsZWN0T3B0aW9uIiwicHVzaCIsIlByb3BlcnR5TmFtZSIsIiRQcm9wZXJ0eVBhdGgiLCJQYXJhbWV0ZXJzIiwib1BhcmFtZXRlciIsInNQYXRoIiwiaW5kZXhPZiIsIl9vQ2hhcnRCaW5kaW5nIiwiZGV0YWNoRGF0YVJlY2VpdmVkSGFuZGxlciIsImF0dGFjaERhdGFSZWNpdmVkSGFuZGxlciIsImJTaG93T3ZlcmxheSIsImdldFByb3BlcnR5Iiwic2hvd0Vycm9yIiwic0NoYXJ0RW50aXR5TmFtZSIsInNCaW5kaW5nUGF0aCIsIkZpbHRlclV0aWxzIiwiZ2V0QmluZGluZ1BhdGhGb3JQYXJhbWV0ZXJzIiwiaXNTdXNwZW5kZWQiLCJyZXN1bWUiLCJhdHRhY2hFdmVudCIsIm9uSW50ZXJuYWxEYXRhUmVjZWl2ZWQiLCJkZXRhY2hFdmVudCIsInVuZGVmaW5lZCIsInNldFNob3dWYWx1ZUhlbHAiLCJiU2hvd1ZhbHVlSGVscCIsIm9WaXN1YWxGaWx0ZXJDb250cm9sIiwiZ2V0Q29udGVudCIsInNvbWUiLCJvSW5uZXJDb250cm9sIiwiaXNBIiwic2V0VmlzaWJsZSIsInNldFZhbHVlSGVscEljb25TcmMiLCJzSWNvblNyYyIsInNldEljb24iLCJvRXZlbnQiLCJzSWQiLCJnZXRJZCIsIm9WaWV3IiwiQ29tbW9uVXRpbHMiLCJnZXRUYXJnZXRWaWV3IiwidlVPTSIsInVwZGF0ZUNoYXJ0U2NhbGVGYWN0b3JUaXRsZSIsImdldFBhcmFtZXRlciIsInMxOG5NZXNzYWdlVGl0bGUiLCJzMThuTWVzc2FnZSIsImFwcGx5RXJyb3JNZXNzYWdlQW5kVGl0bGUiLCJvRGF0YSIsImdldFNvdXJjZSIsImdldEN1cnJlbnRDb250ZXh0cyIsInNldE5vRGF0YU1lc3NhZ2UiLCJzZXRNdWx0aVVPTU1lc3NhZ2UiLCIkUGF0aCIsIm9Db250ZXh0cyIsImdldENvbnRleHRzIiwib0NvbnRleHREYXRhIiwiYXBwbHlVT01Ub1RpdGxlIiwiVkJveCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiVmlzdWFsRmlsdGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCBWaXN1YWxGaWx0ZXJVdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbHMvZmlsdGVyYmFyL3V0aWxzL1Zpc3VhbEZpbHRlclV0aWxzXCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgZXZlbnQsIGltcGxlbWVudEludGVyZmFjZSwgcHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBDb21tb25IZWxwZXIgZnJvbSBcInNhcC9mZS9tYWNyb3MvQ29tbW9uSGVscGVyXCI7XG5pbXBvcnQgRmlsdGVyVXRpbHMgZnJvbSBcInNhcC9mZS9tYWNyb3MvZmlsdGVyL0ZpbHRlclV0aWxzXCI7XG5pbXBvcnQgVkJveCBmcm9tIFwic2FwL20vVkJveFwiO1xuaW1wb3J0IENvcmUgZnJvbSBcInNhcC91aS9jb3JlL0NvcmVcIjtcbmltcG9ydCB0eXBlIHsgSUZvcm1Db250ZW50IH0gZnJvbSBcInNhcC91aS9jb3JlL2xpYnJhcnlcIjtcbmltcG9ydCB0eXBlIEZpbHRlckJhciBmcm9tIFwic2FwL3VpL21kYy9GaWx0ZXJCYXJcIjtcbmltcG9ydCB0eXBlIHsgQ29yZUV4IH0gZnJvbSBcInR5cGVzL2V4dGVuc2lvbl90eXBlc1wiO1xuaW1wb3J0IHsgZ2V0RmlsdGVyc0NvbmRpdGlvbnNGcm9tU2VsZWN0aW9uVmFyaWFudCB9IGZyb20gXCIuLi8uLi90ZW1wbGF0aW5nL0ZpbHRlckhlbHBlclwiO1xuLyoqXG4gKiBDb25zdHJ1Y3RvciBmb3IgYSBuZXcgZmlsdGVyQmFyL2FsaWduZWQvRmlsdGVySXRlbUxheW91dC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gW3NJZF0gSUQgZm9yIHRoZSBuZXcgY29udHJvbCwgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgaWYgbm8gSUQgaXMgZ2l2ZW5cbiAqIEBwYXJhbSB7b2JqZWN0fSBbbVNldHRpbmdzXSBJbml0aWFsIHNldHRpbmdzIGZvciB0aGUgbmV3IGNvbnRyb2xcbiAqIEBjbGFzcyBSZXByZXNlbnRzIGEgZmlsdGVyIGl0ZW0gb24gdGhlIFVJLlxuICogQGV4dGVuZHMgc2FwLm0uVkJveFxuICogQGltcGxlbWVudHMge3NhcC51aS5jb3JlLklGb3JtQ29udGVudH1cbiAqIEBjbGFzc1xuICogQHByaXZhdGVcbiAqIEBzaW5jZSAxLjYxLjBcbiAqIEBhbGlhcyBjb250cm9sIHNhcC5mZS5jb3JlLmNvbnRyb2xzLmZpbHRlcmJhci5WaXN1YWxGaWx0ZXJcbiAqL1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLmNvcmUuY29udHJvbHMuZmlsdGVyYmFyLlZpc3VhbEZpbHRlclwiKVxuY2xhc3MgVmlzdWFsRmlsdGVyIGV4dGVuZHMgVkJveCBpbXBsZW1lbnRzIElGb3JtQ29udGVudCB7XG5cdEBpbXBsZW1lbnRJbnRlcmZhY2UoXCJzYXAudWkuY29yZS5JRm9ybUNvbnRlbnRcIilcblx0X19pbXBsZW1lbnRzX19zYXBfdWlfY29yZV9JRm9ybUNvbnRlbnQ6IGJvb2xlYW4gPSB0cnVlO1xuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwiYm9vbGVhblwiXG5cdH0pXG5cdHNob3dWYWx1ZUhlbHAhOiBib29sZWFuO1xuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCJcblx0fSlcblx0dmFsdWVIZWxwSWNvblNyYyE6IHN0cmluZztcblx0QGV2ZW50KClcblx0dmFsdWVIZWxwUmVxdWVzdCE6IEZ1bmN0aW9uO1xuXHRwcml2YXRlIF9vQ2hhcnRCaW5kaW5nPzogYm9vbGVhbjtcblxuXHRvbkFmdGVyUmVuZGVyaW5nKCkge1xuXHRcdGxldCBzTGFiZWw7XG5cdFx0Y29uc3Qgb0ludGVyYWN0aXZlQ2hhcnQgPSAodGhpcy5nZXRJdGVtcygpWzFdIGFzIGFueSkuZ2V0SXRlbXMoKVswXTtcblx0XHRjb25zdCBzSW50ZXJuYWxDb250ZXh0UGF0aCA9IHRoaXMuZGF0YShcImluZm9QYXRoXCIpO1xuXHRcdGNvbnN0IG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcgPVxuXHRcdFx0b0ludGVyYWN0aXZlQ2hhcnQuZ2V0QmluZGluZyhcInNlZ21lbnRzXCIpIHx8IG9JbnRlcmFjdGl2ZUNoYXJ0LmdldEJpbmRpbmcoXCJiYXJzXCIpIHx8IG9JbnRlcmFjdGl2ZUNoYXJ0LmdldEJpbmRpbmcoXCJwb2ludHNcIik7XG5cdFx0Y29uc3Qgb0ludGVybmFsTW9kZWxDb250ZXh0ID0gb0ludGVyYWN0aXZlQ2hhcnQuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKTtcblx0XHRjb25zdCBvUmVzb3VyY2VCdW5kbGUgPSAoQ29yZSBhcyBDb3JlRXgpLmdldExpYnJhcnlSZXNvdXJjZUJ1bmRsZShcInNhcC5mZS5tYWNyb3NcIik7XG5cdFx0Y29uc3QgYlNob3dPdmVyTGF5SW5pdGlhbGx5ID0gb0ludGVyYWN0aXZlQ2hhcnQuZGF0YShcInNob3dPdmVybGF5SW5pdGlhbGx5XCIpO1xuXHRcdGNvbnN0IG9TZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbjogYW55ID0gb0ludGVyYWN0aXZlQ2hhcnQuZGF0YShcInNlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uXCIpXG5cdFx0XHQ/IENvbW1vbkhlbHBlci5wYXJzZUN1c3RvbURhdGEob0ludGVyYWN0aXZlQ2hhcnQuZGF0YShcInNlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uXCIpKVxuXHRcdFx0OiB7IFNlbGVjdE9wdGlvbnM6IFtdIH07XG5cdFx0Y29uc3QgYVJlcXVpcmVkUHJvcGVydGllczogYW55W10gPSBvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFwicmVxdWlyZWRQcm9wZXJ0aWVzXCIpXG5cdFx0XHQ/IChDb21tb25IZWxwZXIucGFyc2VDdXN0b21EYXRhKG9JbnRlcmFjdGl2ZUNoYXJ0LmRhdGEoXCJyZXF1aXJlZFByb3BlcnRpZXNcIikpIGFzIGFueVtdKVxuXHRcdFx0OiBbXTtcblx0XHRjb25zdCBvTWV0YU1vZGVsID0gb0ludGVyYWN0aXZlQ2hhcnQuZ2V0TW9kZWwoKS5nZXRNZXRhTW9kZWwoKTtcblx0XHRjb25zdCBzRW50aXR5U2V0UGF0aCA9IG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcgPyBvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nLmdldFBhdGgoKSA6IFwiXCI7XG5cdFx0bGV0IG9GaWx0ZXJCYXIgPSB0aGlzLmdldFBhcmVudCgpLmdldFBhcmVudCgpIGFzIEZpbHRlckJhcjtcblx0XHQvLyBUT0RPOiBSZW1vdmUgdGhpcyBwYXJ0IG9uY2UgMjE3MDIwNDM0NyBpcyBmaXhlZFxuXHRcdGlmIChvRmlsdGVyQmFyLmdldE1ldGFkYXRhKCkuZ2V0RWxlbWVudE5hbWUoKSA9PT0gXCJzYXAudWkubWRjLmZpbHRlcmJhci5wMTNuLkFkYXB0YXRpb25GaWx0ZXJCYXJcIikge1xuXHRcdFx0b0ZpbHRlckJhciA9IG9GaWx0ZXJCYXIuZ2V0UGFyZW50KCkuZ2V0UGFyZW50KCkgYXMgRmlsdGVyQmFyO1xuXHRcdH1cblx0XHRsZXQgb0ZpbHRlckJhckNvbmRpdGlvbnM6IGFueSA9IHt9O1xuXHRcdGxldCBhUHJvcGVydHlJbmZvU2V0ID0gW107XG5cdFx0bGV0IHNGaWx0ZXJFbnRpdHlOYW1lO1xuXHRcdGlmIChvRmlsdGVyQmFyLmdldE1ldGFkYXRhKCkuZ2V0RWxlbWVudE5hbWUoKSA9PT0gXCJzYXAuZmUuY29yZS5jb250cm9scy5GaWx0ZXJCYXJcIikge1xuXHRcdFx0b0ZpbHRlckJhckNvbmRpdGlvbnMgPSBvRmlsdGVyQmFyLmdldENvbmRpdGlvbnMoKTtcblx0XHRcdGFQcm9wZXJ0eUluZm9TZXQgPSAob0ZpbHRlckJhciBhcyBhbnkpLmdldFByb3BlcnR5SW5mb1NldCgpO1xuXHRcdFx0c0ZpbHRlckVudGl0eU5hbWUgPSBvRmlsdGVyQmFyLmRhdGEoXCJlbnRpdHlUeXBlXCIpLnNwbGl0KFwiL1wiKVsxXTtcblx0XHR9XG5cdFx0Y29uc3QgYVBhcmFtZXRlcnMgPSBvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFwicGFyYW1ldGVyc1wiKSA/IG9JbnRlcmFjdGl2ZUNoYXJ0LmRhdGEoXCJwYXJhbWV0ZXJzXCIpLmN1c3RvbURhdGEgOiBbXTtcblx0XHRjb25zdCBmaWx0ZXJDb25kaXRpb25zID0gZ2V0RmlsdGVyc0NvbmRpdGlvbnNGcm9tU2VsZWN0aW9uVmFyaWFudChcblx0XHRcdHNFbnRpdHlTZXRQYXRoLFxuXHRcdFx0b01ldGFNb2RlbCxcblx0XHRcdG9TZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbixcblx0XHRcdFZpc3VhbEZpbHRlclV0aWxzLmdldEN1c3RvbUNvbmRpdGlvbnMuYmluZChWaXN1YWxGaWx0ZXJVdGlscylcblx0XHQpO1xuXHRcdGNvbnN0IG9TZWxlY3Rpb25WYXJpYW50Q29uZGl0aW9ucyA9IFZpc3VhbEZpbHRlclV0aWxzLmNvbnZlcnRGaWx0ZXJDb25kaW9ucyhmaWx0ZXJDb25kaXRpb25zKTtcblx0XHRjb25zdCBtQ29uZGl0aW9uczogYW55ID0ge307XG5cblx0XHRPYmplY3Qua2V5cyhvRmlsdGVyQmFyQ29uZGl0aW9ucykuZm9yRWFjaChmdW5jdGlvbiAoc0tleTogc3RyaW5nKSB7XG5cdFx0XHRpZiAob0ZpbHRlckJhckNvbmRpdGlvbnNbc0tleV0ubGVuZ3RoKSB7XG5cdFx0XHRcdG1Db25kaXRpb25zW3NLZXldID0gb0ZpbHRlckJhckNvbmRpdGlvbnNbc0tleV07XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRPYmplY3Qua2V5cyhvU2VsZWN0aW9uVmFyaWFudENvbmRpdGlvbnMpLmZvckVhY2goZnVuY3Rpb24gKHNLZXk6IHN0cmluZykge1xuXHRcdFx0aWYgKCFtQ29uZGl0aW9uc1tzS2V5XSkge1xuXHRcdFx0XHRtQ29uZGl0aW9uc1tzS2V5XSA9IG9TZWxlY3Rpb25WYXJpYW50Q29uZGl0aW9uc1tzS2V5XTtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRpZiAoYlNob3dPdmVyTGF5SW5pdGlhbGx5ID09PSBcInRydWVcIikge1xuXHRcdFx0aWYgKCFPYmplY3Qua2V5cyhvU2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24pLmxlbmd0aCkge1xuXHRcdFx0XHRpZiAoYVJlcXVpcmVkUHJvcGVydGllcy5sZW5ndGggPiAxKSB7XG5cdFx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KHNJbnRlcm5hbENvbnRleHRQYXRoLCB7XG5cdFx0XHRcdFx0XHRcInNob3dFcnJvclwiOiB0cnVlLFxuXHRcdFx0XHRcdFx0XCJlcnJvck1lc3NhZ2VUaXRsZVwiOiBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fVklTVUFMX0ZJTFRFUlNfRVJST1JfTUVTU0FHRV9USVRMRVwiKSxcblx0XHRcdFx0XHRcdFwiZXJyb3JNZXNzYWdlXCI6IG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9WSVNVQUxfRklMVEVSU19QUk9WSURFX0ZJTFRFUl9WQUxfTVVMVElQTEVWRlwiKVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHNMYWJlbCA9XG5cdFx0XHRcdFx0XHRvTWV0YU1vZGVsLmdldE9iamVjdChgJHtzRW50aXR5U2V0UGF0aH0vJHthUmVxdWlyZWRQcm9wZXJ0aWVzWzBdfUBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuTGFiZWxgKSB8fFxuXHRcdFx0XHRcdFx0YVJlcXVpcmVkUHJvcGVydGllc1swXTtcblx0XHRcdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoc0ludGVybmFsQ29udGV4dFBhdGgsIHtcblx0XHRcdFx0XHRcdFwic2hvd0Vycm9yXCI6IHRydWUsXG5cdFx0XHRcdFx0XHRcImVycm9yTWVzc2FnZVRpdGxlXCI6IG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9WSVNVQUxfRklMVEVSU19FUlJPUl9NRVNTQUdFX1RJVExFXCIpLFxuXHRcdFx0XHRcdFx0XCJlcnJvck1lc3NhZ2VcIjogb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1ZJU1VBTF9GSUxURVJTX1BST1ZJREVfRklMVEVSX1ZBTF9TSU5HTEVWRlwiLCBzTGFiZWwpXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGNvbnN0IGFTZWxlY3RPcHRpb25zOiBhbnlbXSA9IFtdO1xuXHRcdFx0XHRjb25zdCBhTm90TWF0Y2hlZENvbmRpdGlvbnM6IGFueVtdID0gW107XG5cdFx0XHRcdGlmIChvU2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24uU2VsZWN0T3B0aW9ucykge1xuXHRcdFx0XHRcdG9TZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbi5TZWxlY3RPcHRpb25zLmZvckVhY2goZnVuY3Rpb24gKG9TZWxlY3RPcHRpb246IGFueSkge1xuXHRcdFx0XHRcdFx0YVNlbGVjdE9wdGlvbnMucHVzaChvU2VsZWN0T3B0aW9uLlByb3BlcnR5TmFtZS4kUHJvcGVydHlQYXRoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAob1NlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uLlBhcmFtZXRlcnMpIHtcblx0XHRcdFx0XHRvU2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24uUGFyYW1ldGVycy5mb3JFYWNoKGZ1bmN0aW9uIChvUGFyYW1ldGVyOiBhbnkpIHtcblx0XHRcdFx0XHRcdGFTZWxlY3RPcHRpb25zLnB1c2gob1BhcmFtZXRlci5Qcm9wZXJ0eU5hbWUuJFByb3BlcnR5UGF0aCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0YVJlcXVpcmVkUHJvcGVydGllcy5mb3JFYWNoKGZ1bmN0aW9uIChzUGF0aDogYW55KSB7XG5cdFx0XHRcdFx0aWYgKGFTZWxlY3RPcHRpb25zLmluZGV4T2Yoc1BhdGgpID09PSAtMSkge1xuXHRcdFx0XHRcdFx0YU5vdE1hdGNoZWRDb25kaXRpb25zLnB1c2goc1BhdGgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHRcdGlmIChhTm90TWF0Y2hlZENvbmRpdGlvbnMubGVuZ3RoID4gMSkge1xuXHRcdFx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShzSW50ZXJuYWxDb250ZXh0UGF0aCwge1xuXHRcdFx0XHRcdFx0XCJzaG93RXJyb3JcIjogdHJ1ZSxcblx0XHRcdFx0XHRcdFwiZXJyb3JNZXNzYWdlVGl0bGVcIjogb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1ZJU1VBTF9GSUxURVJTX0VSUk9SX01FU1NBR0VfVElUTEVcIiksXG5cdFx0XHRcdFx0XHRcImVycm9yTWVzc2FnZVwiOiBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fVklTVUFMX0ZJTFRFUlNfUFJPVklERV9GSUxURVJfVkFMX01VTFRJUExFVkZcIilcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRzTGFiZWwgPVxuXHRcdFx0XHRcdFx0b01ldGFNb2RlbC5nZXRPYmplY3QoYCR7c0VudGl0eVNldFBhdGh9LyR7YU5vdE1hdGNoZWRDb25kaXRpb25zWzBdfUBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuTGFiZWxgKSB8fFxuXHRcdFx0XHRcdFx0YU5vdE1hdGNoZWRDb25kaXRpb25zWzBdO1xuXHRcdFx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShzSW50ZXJuYWxDb250ZXh0UGF0aCwge1xuXHRcdFx0XHRcdFx0XCJzaG93RXJyb3JcIjogdHJ1ZSxcblx0XHRcdFx0XHRcdFwiZXJyb3JNZXNzYWdlVGl0bGVcIjogb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1ZJU1VBTF9GSUxURVJTX0VSUk9SX01FU1NBR0VfVElUTEVcIiksXG5cdFx0XHRcdFx0XHRcImVycm9yTWVzc2FnZVwiOiBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fVklTVUFMX0ZJTFRFUlNfUFJPVklERV9GSUxURVJfVkFMX1NJTkdMRVZGXCIsIHNMYWJlbClcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoYU5vdE1hdGNoZWRDb25kaXRpb25zLmxlbmd0aCA+IDEpIHtcblx0XHRcdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoc0ludGVybmFsQ29udGV4dFBhdGgsIHtcblx0XHRcdFx0XHRcdFwic2hvd0Vycm9yXCI6IHRydWUsXG5cdFx0XHRcdFx0XHRcImVycm9yTWVzc2FnZVRpdGxlXCI6IG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9WSVNVQUxfRklMVEVSU19FUlJPUl9NRVNTQUdFX1RJVExFXCIpLFxuXHRcdFx0XHRcdFx0XCJlcnJvck1lc3NhZ2VcIjogb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1ZJU1VBTF9GSUxURVJTX1BST1ZJREVfRklMVEVSX1ZBTF9NVUxUSVBMRVZGXCIpXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KHNJbnRlcm5hbENvbnRleHRQYXRoLCB7XG5cdFx0XHRcdFx0XHRcInNob3dFcnJvclwiOiB0cnVlLFxuXHRcdFx0XHRcdFx0XCJlcnJvck1lc3NhZ2VUaXRsZVwiOiBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fVklTVUFMX0ZJTFRFUlNfRVJST1JfTUVTU0FHRV9USVRMRVwiKSxcblx0XHRcdFx0XHRcdFwiZXJyb3JNZXNzYWdlXCI6IG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9WSVNVQUxfRklMVEVSU19QUk9WSURFX0ZJTFRFUl9WQUxfU0lOR0xFVkZcIiwgYU5vdE1hdGNoZWRDb25kaXRpb25zWzBdKVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKCF0aGlzLl9vQ2hhcnRCaW5kaW5nIHx8IHRoaXMuX29DaGFydEJpbmRpbmcgIT09IG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcpIHtcblx0XHRcdGlmICh0aGlzLl9vQ2hhcnRCaW5kaW5nKSB7XG5cdFx0XHRcdHRoaXMuZGV0YWNoRGF0YVJlY2VpdmVkSGFuZGxlcih0aGlzLl9vQ2hhcnRCaW5kaW5nKTtcblx0XHRcdH1cblx0XHRcdHRoaXMuYXR0YWNoRGF0YVJlY2l2ZWRIYW5kbGVyKG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcpO1xuXHRcdFx0dGhpcy5fb0NoYXJ0QmluZGluZyA9IG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmc7XG5cdFx0fVxuXHRcdGNvbnN0IGJTaG93T3ZlcmxheSA9XG5cdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuZ2V0UHJvcGVydHkoc0ludGVybmFsQ29udGV4dFBhdGgpICYmIG9JbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRQcm9wZXJ0eShzSW50ZXJuYWxDb250ZXh0UGF0aCkuc2hvd0Vycm9yO1xuXHRcdGNvbnN0IHNDaGFydEVudGl0eU5hbWUgPSBzRW50aXR5U2V0UGF0aCAhPT0gXCJcIiA/IHNFbnRpdHlTZXRQYXRoLnNwbGl0KFwiL1wiKVsxXS5zcGxpdChcIihcIilbMF0gOiBcIlwiO1xuXHRcdGlmIChhUGFyYW1ldGVycyAmJiBhUGFyYW1ldGVycy5sZW5ndGggJiYgc0ZpbHRlckVudGl0eU5hbWUgPT09IHNDaGFydEVudGl0eU5hbWUpIHtcblx0XHRcdGNvbnN0IHNCaW5kaW5nUGF0aCA9IEZpbHRlclV0aWxzLmdldEJpbmRpbmdQYXRoRm9yUGFyYW1ldGVycyhvRmlsdGVyQmFyLCBtQ29uZGl0aW9ucywgYVByb3BlcnR5SW5mb1NldCwgYVBhcmFtZXRlcnMpO1xuXHRcdFx0aWYgKHNCaW5kaW5nUGF0aCkge1xuXHRcdFx0XHRvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nLnNQYXRoID0gc0JpbmRpbmdQYXRoO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQvLyByZXN1bWUgYmluZGluZyBmb3Igb25seSB0aG9zZSB2aXN1YWwgZmlsdGVycyB0aGF0IGRvIG5vdCBoYXZlIGEgaW4gcGFyYW1ldGVyIGF0dGFjaGVkLlxuXHRcdC8vIEJpbmRpbmdzIG9mIHZpc3VhbCBmaWx0ZXJzIHdpdGggaW5QYXJhbWV0ZXJzIHdpbGwgYmUgcmVzdW1lZCBsYXRlciBhZnRlciBjb25zaWRlcmluZyBpbiBwYXJhbWV0ZXJzLlxuXHRcdGlmIChvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nICYmIG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmcuaXNTdXNwZW5kZWQoKSAmJiAhYlNob3dPdmVybGF5KSB7XG5cdFx0XHRvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nLnJlc3VtZSgpO1xuXHRcdH1cblx0fVxuXG5cdGF0dGFjaERhdGFSZWNpdmVkSGFuZGxlcihvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nOiBhbnkpIHtcblx0XHRpZiAob0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZykge1xuXHRcdFx0b0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZy5hdHRhY2hFdmVudChcImRhdGFSZWNlaXZlZFwiLCB0aGlzLm9uSW50ZXJuYWxEYXRhUmVjZWl2ZWQsIHRoaXMpO1xuXHRcdFx0dGhpcy5fb0NoYXJ0QmluZGluZyA9IG9JbnRlcmFjdGl2ZUNoYXJ0TGlzdEJpbmRpbmc7XG5cdFx0fVxuXHR9XG5cblx0ZGV0YWNoRGF0YVJlY2VpdmVkSGFuZGxlcihvSW50ZXJhY3RpdmVDaGFydExpc3RCaW5kaW5nOiBhbnkpIHtcblx0XHRpZiAob0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZykge1xuXHRcdFx0b0ludGVyYWN0aXZlQ2hhcnRMaXN0QmluZGluZy5kZXRhY2hFdmVudChcImRhdGFSZWNlaXZlZFwiLCB0aGlzLm9uSW50ZXJuYWxEYXRhUmVjZWl2ZWQsIHRoaXMpO1xuXHRcdFx0dGhpcy5fb0NoYXJ0QmluZGluZyA9IHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblxuXHRzZXRTaG93VmFsdWVIZWxwKGJTaG93VmFsdWVIZWxwOiBhbnkpIHtcblx0XHRpZiAodGhpcy5nZXRJdGVtcygpLmxlbmd0aCA+IDApIHtcblx0XHRcdGNvbnN0IG9WaXN1YWxGaWx0ZXJDb250cm9sID0gKHRoaXMuZ2V0SXRlbXMoKVswXSBhcyBhbnkpLmdldEl0ZW1zKClbMF07XG5cdFx0XHRvVmlzdWFsRmlsdGVyQ29udHJvbC5nZXRDb250ZW50KCkuc29tZShmdW5jdGlvbiAob0lubmVyQ29udHJvbDogYW55KSB7XG5cdFx0XHRcdGlmIChvSW5uZXJDb250cm9sLmlzQShcInNhcC5tLkJ1dHRvblwiKSkge1xuXHRcdFx0XHRcdG9Jbm5lckNvbnRyb2wuc2V0VmlzaWJsZShiU2hvd1ZhbHVlSGVscCk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0dGhpcy5zZXRQcm9wZXJ0eShcInNob3dWYWx1ZUhlbHBcIiwgYlNob3dWYWx1ZUhlbHApO1xuXHRcdH1cblx0fVxuXG5cdHNldFZhbHVlSGVscEljb25TcmMoc0ljb25TcmM6IGFueSkge1xuXHRcdGlmICh0aGlzLmdldEl0ZW1zKCkubGVuZ3RoID4gMCkge1xuXHRcdFx0Y29uc3Qgb1Zpc3VhbEZpbHRlckNvbnRyb2wgPSAodGhpcy5nZXRJdGVtcygpWzBdIGFzIGFueSkuZ2V0SXRlbXMoKVswXTtcblx0XHRcdG9WaXN1YWxGaWx0ZXJDb250cm9sLmdldENvbnRlbnQoKS5zb21lKGZ1bmN0aW9uIChvSW5uZXJDb250cm9sOiBhbnkpIHtcblx0XHRcdFx0aWYgKG9Jbm5lckNvbnRyb2wuaXNBKFwic2FwLm0uQnV0dG9uXCIpKSB7XG5cdFx0XHRcdFx0b0lubmVyQ29udHJvbC5zZXRJY29uKHNJY29uU3JjKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHR0aGlzLnNldFByb3BlcnR5KFwidmFsdWVIZWxwSWNvblNyY1wiLCBzSWNvblNyYyk7XG5cdFx0fVxuXHR9XG5cblx0b25JbnRlcm5hbERhdGFSZWNlaXZlZChvRXZlbnQ6IGFueSkge1xuXHRcdGNvbnN0IHNJZCA9IHRoaXMuZ2V0SWQoKTtcblx0XHRjb25zdCBvVmlldyA9IENvbW1vblV0aWxzLmdldFRhcmdldFZpZXcodGhpcyk7XG5cdFx0Y29uc3Qgb0ludGVyYWN0aXZlQ2hhcnQgPSAodGhpcy5nZXRJdGVtcygpWzFdIGFzIGFueSkuZ2V0SXRlbXMoKVswXTtcblx0XHRjb25zdCBzSW50ZXJuYWxDb250ZXh0UGF0aCA9IHRoaXMuZGF0YShcImluZm9QYXRoXCIpO1xuXHRcdGNvbnN0IG9JbnRlcm5hbE1vZGVsQ29udGV4dCA9IG9JbnRlcmFjdGl2ZUNoYXJ0LmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIik7XG5cdFx0Y29uc3Qgb1Jlc291cmNlQnVuZGxlID0gKENvcmUgYXMgQ29yZUV4KS5nZXRMaWJyYXJ5UmVzb3VyY2VCdW5kbGUoXCJzYXAuZmUubWFjcm9zXCIpO1xuXHRcdGNvbnN0IHZVT00gPSBvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFwidW9tXCIpO1xuXHRcdFZpc3VhbEZpbHRlclV0aWxzLnVwZGF0ZUNoYXJ0U2NhbGVGYWN0b3JUaXRsZShvSW50ZXJhY3RpdmVDaGFydCwgb1ZpZXcsIHNJZCwgc0ludGVybmFsQ29udGV4dFBhdGgpO1xuXHRcdGlmIChvRXZlbnQuZ2V0UGFyYW1ldGVyKFwiZXJyb3JcIikpIHtcblx0XHRcdGNvbnN0IHMxOG5NZXNzYWdlVGl0bGUgPSBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fVklTVUFMX0ZJTFRFUlNfRVJST1JfTUVTU0FHRV9USVRMRVwiKTtcblx0XHRcdGNvbnN0IHMxOG5NZXNzYWdlID0gb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1ZJU1VBTF9GSUxURVJTX0VSUk9SX0RBVEFfVEVYVFwiKTtcblx0XHRcdFZpc3VhbEZpbHRlclV0aWxzLmFwcGx5RXJyb3JNZXNzYWdlQW5kVGl0bGUoczE4bk1lc3NhZ2VUaXRsZSwgczE4bk1lc3NhZ2UsIHNJbnRlcm5hbENvbnRleHRQYXRoLCBvVmlldyk7XG5cdFx0fSBlbHNlIGlmIChvRXZlbnQuZ2V0UGFyYW1ldGVyKFwiZGF0YVwiKSkge1xuXHRcdFx0Y29uc3Qgb0RhdGEgPSBvRXZlbnQuZ2V0U291cmNlKCkuZ2V0Q3VycmVudENvbnRleHRzKCk7XG5cdFx0XHRpZiAob0RhdGEgJiYgb0RhdGEubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRcdFZpc3VhbEZpbHRlclV0aWxzLnNldE5vRGF0YU1lc3NhZ2Uoc0ludGVybmFsQ29udGV4dFBhdGgsIG9SZXNvdXJjZUJ1bmRsZSwgb1ZpZXcpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KHNJbnRlcm5hbENvbnRleHRQYXRoLCB7fSk7XG5cdFx0XHR9XG5cdFx0XHRWaXN1YWxGaWx0ZXJVdGlscy5zZXRNdWx0aVVPTU1lc3NhZ2Uob0RhdGEsIG9JbnRlcmFjdGl2ZUNoYXJ0LCBzSW50ZXJuYWxDb250ZXh0UGF0aCwgb1Jlc291cmNlQnVuZGxlLCBvVmlldyk7XG5cdFx0fVxuXHRcdGlmICh2VU9NICYmICgodlVPTVtcIklTT0N1cnJlbmN5XCJdICYmIHZVT01bXCJJU09DdXJyZW5jeVwiXS4kUGF0aCkgfHwgKHZVT01bXCJVbml0XCJdICYmIHZVT01bXCJVbml0XCJdLiRQYXRoKSkpIHtcblx0XHRcdGNvbnN0IG9Db250ZXh0cyA9IG9FdmVudC5nZXRTb3VyY2UoKS5nZXRDb250ZXh0cygpO1xuXHRcdFx0Y29uc3Qgb0NvbnRleHREYXRhID0gb0NvbnRleHRzICYmIG9Db250ZXh0c1swXS5nZXRPYmplY3QoKTtcblx0XHRcdFZpc3VhbEZpbHRlclV0aWxzLmFwcGx5VU9NVG9UaXRsZShvSW50ZXJhY3RpdmVDaGFydCwgb0NvbnRleHREYXRhLCBvVmlldywgc0ludGVybmFsQ29udGV4dFBhdGgpO1xuXHRcdH1cblx0fVxufVxuZXhwb3J0IGRlZmF1bHQgVmlzdWFsRmlsdGVyO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFB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
@@ -17,7 +17,7 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/m/FlexBox", "sap/m/Heade
17
17
 
18
18
  function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
19
19
 
20
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
20
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
21
21
 
22
22
  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
23
23
 
@@ -186,4 +186,4 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/m/FlexBox", "sap/m/Heade
186
186
  })), _class2)) || _class);
187
187
  return VisualFilterContainer;
188
188
  }, false);
189
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlZpc3VhbEZpbHRlckNvbnRhaW5lci50cyJdLCJuYW1lcyI6WyJWaXN1YWxGaWx0ZXJDb250YWluZXIiLCJkZWZpbmVVSTVDbGFzcyIsImFnZ3JlZ2F0aW9uIiwidHlwZSIsIm11bHRpcGxlIiwidmlzaWJpbGl0eSIsImluaXQiLCJhcmdzIiwic0RldmljZVN5c3RlbSIsInN5c3RlbSIsIk9yaWVudGF0aW9uIiwiY29yZUxpYnJhYnJ5Iiwic09yaWVudGF0aW9uIiwicGhvbmUiLCJWZXJ0aWNhbCIsInVuZGVmaW5lZCIsInNEaXJlY3Rpb24iLCJvSGVhZGVyQ29udGFpbmVyIiwiSGVhZGVyQ29udGFpbmVyIiwib3JpZW50YXRpb24iLCJvQnV0dG9uRmxleEJveCIsIkZsZXhCb3giLCJhbGlnbkl0ZW1zIiwianVzdGlmeUNvbnRlbnQiLCJvTGF5b3V0IiwiZGlyZWN0aW9uIiwiaXRlbXMiLCJhQWxsRmlsdGVyRmllbGRzIiwiYVZpc3VhbEZpbHRlckZpZWxkcyIsImV4aXQiLCJnZXRBbGxGaWx0ZXJGaWVsZHMiLCJmb3JFYWNoIiwib0ZpbHRlckZpZWxkIiwiZGVzdHJveSIsImluc2VydEZpbHRlckZpZWxkIiwib0NvbnRyb2wiLCJpSW5kZXgiLCJvRmlsdGVySXRlbUxheW91dEV2ZW50RGVsZWdhdGUiLCJvbkJlZm9yZVJlbmRlcmluZyIsIl9mbkdldENvbnRlbnRDb3B5IiwiZ2V0Q29udGVudCIsImFDb250ZW50IiwicHVzaCIsIl9vRmlsdGVyRmllbGQiLCJyZW1vdmVFdmVudERlbGVnYXRlIiwiYWRkRXZlbnREZWxlZ2F0ZSIsIm9WaXN1YWxGaWx0ZXJzIiwic29tZSIsIm9Jbm5lckNvbnRyb2wiLCJzRkZJZCIsImdldElkIiwiaXNBIiwic2V0Q29udGVudCIsImluc2VydENvbnRlbnQiLCJyZW1vdmVGaWx0ZXJGaWVsZCIsInJlbW92ZUNvbnRlbnQiLCJyZW1vdmVBbGxGaWx0ZXJGaWVsZHMiLCJyZW1vdmVBbGxDb250ZW50IiwiZ2V0RmlsdGVyRmllbGRzIiwiYWRkQnV0dG9uIiwiaW5zZXJ0SXRlbSIsImdldEFsbEJ1dHRvbnMiLCJnZXRJdGVtcyIsInJldmVyc2UiLCJyZW1vdmVCdXR0b24iLCJyZW1vdmVJdGVtIiwic2xpY2UiLCJzZXRBbGxGaWx0ZXJGaWVsZHMiLCJhRmlsdGVyRmllbGRzIiwiSUZpbHRlckNvbnRhaW5lciJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtNQUVNQSxxQixXQURMQyxjQUFjLENBQUMsc0RBQUQsQyxVQUViQyxXQUFXLENBQUM7QUFDWkMsSUFBQUEsSUFBSSxFQUFFLHFCQURNO0FBRVpDLElBQUFBLFFBQVEsRUFBRSxLQUZFO0FBR1pDLElBQUFBLFVBQVUsRUFBRTtBQUhBLEdBQUQsQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztXQVVaQyxJLEdBQUEsZ0JBQXFCO0FBQUE7O0FBQUEseUNBQWJDLElBQWE7QUFBYkEsUUFBQUEsSUFBYTtBQUFBOztBQUNwQiwyREFBTUQsSUFBTixrREFBY0MsSUFBZCxHQURvQixDQUVwQjs7O0FBQ0EsVUFBTUMsYUFBYSxHQUFHQyxNQUF0QjtBQUFBLFVBQ0NDLFdBQVcsR0FBR0MsWUFBWSxDQUFDRCxXQUQ1QjtBQUFBLFVBRUNFLFlBQVksR0FBR0osYUFBYSxDQUFDSyxLQUFkLEdBQXNCSCxXQUFXLENBQUNJLFFBQWxDLEdBQTZDQyxTQUY3RDtBQUFBLFVBR0NDLFVBQVUsR0FBR1IsYUFBYSxDQUFDSyxLQUFkLEdBQXNCLGVBQXRCLEdBQXdDLFFBSHREO0FBS0EsV0FBS0ksZ0JBQUwsR0FBd0IsSUFBSUMsZUFBSixDQUFvQjtBQUMzQ0MsUUFBQUEsV0FBVyxFQUFFUDtBQUQ4QixPQUFwQixDQUF4QjtBQUdBLFdBQUtRLGNBQUwsR0FBc0IsSUFBSUMsT0FBSixDQUFZO0FBQ2pDQyxRQUFBQSxVQUFVLEVBQUUsS0FEcUI7QUFFakNDLFFBQUFBLGNBQWMsRUFBRTtBQUZp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QixDQUErQnpCLFFBQS9CO0FBQ0EsSzs7V0FDRDBCLGEsR0FBQSx5QkFBZ0I7QUFDZixhQUFPLEtBQUt6QyxjQUFMLENBQW9CMEMsUUFBcEIsR0FBK0JDLE9BQS9CLEVBQVA7QUFDQSxLOztXQUNEQyxZLEdBQUEsc0JBQWE3QixRQUFiLEVBQTRCO0FBQzNCLFdBQUtmLGNBQUwsQ0FBb0I2QyxVQUFwQixDQUErQjlCLFFBQS9CO0FBQ0EsSzs7V0FDREwsa0IsR0FBQSw4QkFBcUI7QUFDcEIsYUFBTyxLQUFLSCxnQkFBTCxDQUFzQnVDLEtBQXRCLEVBQVA7QUFDQSxLOztXQUNEQyxrQixHQUFBLDRCQUFtQkMsYUFBbkIsRUFBdUN4QyxtQkFBdkMsRUFBaUU7QUFDaEUsV0FBS0QsZ0JBQUwsR0FBd0J5QyxhQUF4QjtBQUNBLFdBQUt4QyxtQkFBTCxHQUEyQkEsbUJBQTNCO0FBQ0EsSzs7O0lBeEdrQ3lDLGdCOzs7Ozs7U0EyR3JCckUscUIiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFnZ3JlZ2F0aW9uLCBkZWZpbmVVSTVDbGFzcyB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IEZsZXhCb3ggZnJvbSBcInNhcC9tL0ZsZXhCb3hcIjtcbmltcG9ydCBIZWFkZXJDb250YWluZXIgZnJvbSBcInNhcC9tL0hlYWRlckNvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IGNvcmVMaWJyYWJyeSBmcm9tIFwic2FwL3VpL2NvcmUvbGlicmFyeVwiO1xuaW1wb3J0IHsgc3lzdGVtIH0gZnJvbSBcInNhcC91aS9EZXZpY2VcIjtcbmltcG9ydCBJRmlsdGVyQ29udGFpbmVyIGZyb20gXCJzYXAvdWkvbWRjL2ZpbHRlcmJhci9JRmlsdGVyQ29udGFpbmVyXCI7XG4vKipcbiAqIENvbnN0cnVjdG9yIGZvciBhIG5ldyBWaXN1YWwgRmlsdGVyIENvbnRhaW5lci5cbiAqIFVzZWQgZm9yIHZpc3VhbCBmaWx0ZXJzLlxuICpcbiAqIEBleHRlbmRzIHNhcC51aS5tZGMuZmlsdGVyYmFyLklGaWx0ZXJDb250YWluZXJcbiAqIEBjbGFzc1xuICogQHByaXZhdGVcbiAqIEBhbGlhcyBzYXAuZmUuY29yZS5jb250cm9scy5maWx0ZXJiYXIuVmlzdWFsRmlsdGVyQ29udGFpbmVyXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb3JlLmNvbnRyb2xzLmZpbHRlcmJhci5WaXN1YWxGaWx0ZXJDb250YWluZXJcIilcbmNsYXNzIFZpc3VhbEZpbHRlckNvbnRhaW5lciBleHRlbmRzIElGaWx0ZXJDb250YWluZXIge1xuXHRAYWdncmVnYXRpb24oe1xuXHRcdHR5cGU6IFwic2FwLnVpLmNvcmUuQ29udHJvbFwiLFxuXHRcdG11bHRpcGxlOiBmYWxzZSxcblx0XHR2aXNpYmlsaXR5OiBcImhpZGRlblwiXG5cdH0pXG5cdC8qKlxuXHQgKiBJbnRlcm5hbCBoaWRkZW4gYWdncmVnYXRpb24gdG8gaG9sZCB0aGUgaW5uZXIgbGF5b3V0LlxuXHQgKi9cblx0X2xheW91dCE6IENvbnRyb2w7XG5cblx0aW5pdCguLi5hcmdzOiBhbnlbXSkge1xuXHRcdHN1cGVyLmluaXQoLi4uYXJncyk7XG5cdFx0Ly92YXIgb1JCID0gc2FwLnVpLmdldENvcmUoKS5nZXRMaWJyYXJ5UmVzb3VyY2VCdW5kbGUoXCJzYXAudWkubWRjXCIpO1xuXHRcdGNvbnN0IHNEZXZpY2VTeXN0ZW0gPSBzeXN0ZW0sXG5cdFx0XHRPcmllbnRhdGlvbiA9IGNvcmVMaWJyYWJyeS5PcmllbnRhdGlvbixcblx0XHRcdHNPcmllbnRhdGlvbiA9IHNEZXZpY2VTeXN0ZW0ucGhvbmUgPyBPcmllbnRhdGlvbi5WZXJ0aWNhbCA6IHVuZGVmaW5lZCxcblx0XHRcdHNEaXJlY3Rpb24gPSBzRGV2aWNlU3lzdGVtLnBob25lID8gXCJDb2x1bW5SZXZlcnNlXCIgOiBcIkNvbHVtblwiO1xuXG5cdFx0dGhpcy5vSGVhZGVyQ29udGFpbmVyID0gbmV3IEhlYWRlckNvbnRhaW5lcih7XG5cdFx0XHRvcmllbnRhdGlvbjogc09yaWVudGF0aW9uXG5cdFx0fSk7XG5cdFx0dGhpcy5vQnV0dG9uRmxleEJveCA9IG5ldyBGbGV4Qm94KHtcblx0XHRcdGFsaWduSXRlbXM6IFwiRW5kXCIsXG5cdFx0XHRqdXN0aWZ5Q29udGVudDogXCJFbmRcIlxuXHRcdH0pO1xuXG5cdFx0dGhpcy5vTGF5b3V0ID0gbmV3IEZsZXhCb3goe1xuXHRcdFx0ZGlyZWN0aW9uOiBzRGlyZWN0aW9uLCAvLyBEaXJlY3Rpb24gaXMgQ29sdW1uIFJldmVyc2UgZm9yIFBob25lXG5cdFx0XHRpdGVtczogW3RoaXMub0hlYWRlckNvbnRhaW5lciwgdGhpcy5vQnV0dG9uRmxleEJveF1cblx0XHR9KTtcblxuXHRcdHRoaXMuYUFsbEZpbHRlckZpZWxkcyA9IFtdO1xuXHRcdHRoaXMuYVZpc3VhbEZpbHRlckZpZWxkcyA9IHt9O1xuXHR9XG5cdGV4aXQoLi4uYXJnczogYW55W10pIHtcblx0XHQvLyBkZXN0cm95IGxheW91dFxuXHRcdHN1cGVyLmV4aXQoLi4uYXJncyk7XG5cdFx0Ly8gZGVzdHJveSBhbGwgZmlsdGVyIGZpZWxkcyB3aGljaCBhcmUgbm90IGluIHRoZSBsYXlvdXRcblx0XHRjb25zdCBhQWxsRmlsdGVyRmllbGRzID0gdGhpcy5nZXRBbGxGaWx0ZXJGaWVsZHMoKTtcblx0XHRhQWxsRmlsdGVyRmllbGRzLmZvckVhY2goZnVuY3Rpb24gKG9GaWx0ZXJGaWVsZDogYW55KSB7XG5cdFx0XHRvRmlsdGVyRmllbGQuZGVzdHJveSgpO1xuXHRcdH0pO1xuXHRcdHRoaXMub0hlYWRlckNvbnRhaW5lciA9IG51bGw7XG5cdFx0dGhpcy5vQnV0dG9uRmxleEJveCA9IG51bGw7XG5cdFx0dGhpcy5hQWxsRmlsdGVyRmllbGRzID0gW107XG5cdH1cblx0aW5zZXJ0RmlsdGVyRmllbGQob0NvbnRyb2w6IGFueSwgaUluZGV4OiBhbnkpIHtcblx0XHRjb25zdCBvRmlsdGVySXRlbUxheW91dEV2ZW50RGVsZWdhdGUgPSB7XG5cdFx0XHRvbkJlZm9yZVJlbmRlcmluZzogZnVuY3Rpb24gKCkge1xuXHRcdFx0XHQvLyB2aXN1YWwgZmlsdGVyIGRvZXMgbm90IG5lZWQgdG8gcmVuZGVyIGEgbGFiZWxcblx0XHRcdFx0Ly8gaGVuY2Ugb3ZlcnJpZGUgdGhlIGdldENvbnRlbnQgb2YgdGhlIEZpbHRlckl0ZW1MYXlvdXRcblx0XHRcdFx0Ly8gYW5kIHN0b3JlIHRoZSBvcmlnaW5hbCBnZXRDb250ZW50IGZvciBsYXRlciB1c2FnZSBpbiB0aGUgY29tcGFjdCBmaWx0ZXJzXG5cdFx0XHRcdGlmICghb0NvbnRyb2wuX2ZuR2V0Q29udGVudENvcHkpIHtcblx0XHRcdFx0XHRvQ29udHJvbC5fZm5HZXRDb250ZW50Q29weSA9IG9Db250cm9sLmdldENvbnRlbnQ7XG5cdFx0XHRcdH1cblx0XHRcdFx0Ly8gb3ZlcnJpZGUgZ2V0Q29udGVudCBvZiBGaWx0ZXJJdGVtTGF5b3V0XG5cdFx0XHRcdC8vIHRvIGFkZCBvbmx5IGZpbHRlckZpZWxkIGFuZCBub3QgbGFiZWxcblx0XHRcdFx0b0NvbnRyb2wuZ2V0Q29udGVudCA9IGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRjb25zdCBhQ29udGVudCA9IFtdO1xuXHRcdFx0XHRcdGFDb250ZW50LnB1c2gob0NvbnRyb2wuX29GaWx0ZXJGaWVsZCk7XG5cdFx0XHRcdFx0cmV0dXJuIGFDb250ZW50O1xuXHRcdFx0XHR9O1xuXHRcdFx0XHRvQ29udHJvbC5yZW1vdmVFdmVudERlbGVnYXRlKG9GaWx0ZXJJdGVtTGF5b3V0RXZlbnREZWxlZ2F0ZSk7XG5cdFx0XHR9XG5cdFx0fTtcblx0XHRvQ29udHJvbC5hZGRFdmVudERlbGVnYXRlKG9GaWx0ZXJJdGVtTGF5b3V0RXZlbnREZWxlZ2F0ZSk7XG5cblx0XHQvLyBTZXR0aW5nIFZGIGNvbnRyb2wgZm9yIHRoZSBGaWx0ZXJmaWVsZC5cblx0XHRjb25zdCBvVmlzdWFsRmlsdGVycyA9IHRoaXMuYVZpc3VhbEZpbHRlckZpZWxkcztcblx0XHRvQ29udHJvbC5nZXRDb250ZW50KCkuc29tZSgob0lubmVyQ29udHJvbDogYW55KSA9PiB7XG5cdFx0XHRjb25zdCBzRkZJZCA9IG9Jbm5lckNvbnRyb2wuZ2V0SWQoKTtcblx0XHRcdGlmIChvVmlzdWFsRmlsdGVyc1tzRkZJZF0gJiYgb0lubmVyQ29udHJvbC5pc0EoXCJzYXAudWkubWRjLkZpbHRlckZpZWxkXCIpKSB7XG5cdFx0XHRcdG9Jbm5lckNvbnRyb2wuc2V0Q29udGVudChvVmlzdWFsRmlsdGVyc1tzRkZJZF0pO1xuXHRcdFx0XHR0aGlzLm9IZWFkZXJDb250YWluZXIuaW5zZXJ0Q29udGVudChvQ29udHJvbCwgaUluZGV4KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXHRyZW1vdmVGaWx0ZXJGaWVsZChvQ29udHJvbDogYW55KSB7XG5cdFx0dGhpcy5vSGVhZGVyQ29udGFpbmVyLnJlbW92ZUNvbnRlbnQob0NvbnRyb2wpO1xuXHR9XG5cdHJlbW92ZUFsbEZpbHRlckZpZWxkcygpIHtcblx0XHR0aGlzLmFBbGxGaWx0ZXJGaWVsZHMgPSBbXTtcblx0XHR0aGlzLmFWaXN1YWxGaWx0ZXJGaWVsZHMgPSB7fTtcblx0XHR0aGlzLm9IZWFkZXJDb250YWluZXIucmVtb3ZlQWxsQ29udGVudCgpO1xuXHR9XG5cdGdldEZpbHRlckZpZWxkcygpIHtcblx0XHRyZXR1cm4gdGhpcy5vSGVhZGVyQ29udGFpbmVyLmdldENvbnRlbnQoKTtcblx0fVxuXHRhZGRCdXR0b24ob0NvbnRyb2w6IGFueSkge1xuXHRcdHRoaXMub0J1dHRvbkZsZXhCb3guaW5zZXJ0SXRlbShvQ29udHJvbCk7XG5cdH1cblx0Z2V0QWxsQnV0dG9ucygpIHtcblx0XHRyZXR1cm4gdGhpcy5vQnV0dG9uRmxleEJveC5nZXRJdGVtcygpLnJldmVyc2UoKTtcblx0fVxuXHRyZW1vdmVCdXR0b24ob0NvbnRyb2w6IGFueSkge1xuXHRcdHRoaXMub0J1dHRvbkZsZXhCb3gucmVtb3ZlSXRlbShvQ29udHJvbCk7XG5cdH1cblx0Z2V0QWxsRmlsdGVyRmllbGRzKCkge1xuXHRcdHJldHVybiB0aGlzLmFBbGxGaWx0ZXJGaWVsZHMuc2xpY2UoKTtcblx0fVxuXHRzZXRBbGxGaWx0ZXJGaWVsZHMoYUZpbHRlckZpZWxkczogYW55LCBhVmlzdWFsRmlsdGVyRmllbGRzOiBhbnkpIHtcblx0XHR0aGlzLmFBbGxGaWx0ZXJGaWVsZHMgPSBhRmlsdGVyRmllbGRzO1xuXHRcdHRoaXMuYVZpc3VhbEZpbHRlckZpZWxkcyA9IGFWaXN1YWxGaWx0ZXJGaWVsZHM7XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgVmlzdWFsRmlsdGVyQ29udGFpbmVyO1xuIl19
189
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJWaXN1YWxGaWx0ZXJDb250YWluZXIiLCJkZWZpbmVVSTVDbGFzcyIsImFnZ3JlZ2F0aW9uIiwidHlwZSIsIm11bHRpcGxlIiwidmlzaWJpbGl0eSIsImluaXQiLCJhcmdzIiwic0RldmljZVN5c3RlbSIsInN5c3RlbSIsIk9yaWVudGF0aW9uIiwiY29yZUxpYnJhYnJ5Iiwic09yaWVudGF0aW9uIiwicGhvbmUiLCJWZXJ0aWNhbCIsInVuZGVmaW5lZCIsInNEaXJlY3Rpb24iLCJvSGVhZGVyQ29udGFpbmVyIiwiSGVhZGVyQ29udGFpbmVyIiwib3JpZW50YXRpb24iLCJvQnV0dG9uRmxleEJveCIsIkZsZXhCb3giLCJhbGlnbkl0ZW1zIiwianVzdGlmeUNvbnRlbnQiLCJvTGF5b3V0IiwiZGlyZWN0aW9uIiwiaXRlbXMiLCJhQWxsRmlsdGVyRmllbGRzIiwiYVZpc3VhbEZpbHRlckZpZWxkcyIsImV4aXQiLCJnZXRBbGxGaWx0ZXJGaWVsZHMiLCJmb3JFYWNoIiwib0ZpbHRlckZpZWxkIiwiZGVzdHJveSIsImluc2VydEZpbHRlckZpZWxkIiwib0NvbnRyb2wiLCJpSW5kZXgiLCJvRmlsdGVySXRlbUxheW91dEV2ZW50RGVsZWdhdGUiLCJvbkJlZm9yZVJlbmRlcmluZyIsIl9mbkdldENvbnRlbnRDb3B5IiwiZ2V0Q29udGVudCIsImFDb250ZW50IiwicHVzaCIsIl9vRmlsdGVyRmllbGQiLCJyZW1vdmVFdmVudERlbGVnYXRlIiwiYWRkRXZlbnREZWxlZ2F0ZSIsIm9WaXN1YWxGaWx0ZXJzIiwic29tZSIsIm9Jbm5lckNvbnRyb2wiLCJzRkZJZCIsImdldElkIiwiaXNBIiwic2V0Q29udGVudCIsImluc2VydENvbnRlbnQiLCJyZW1vdmVGaWx0ZXJGaWVsZCIsInJlbW92ZUNvbnRlbnQiLCJyZW1vdmVBbGxGaWx0ZXJGaWVsZHMiLCJyZW1vdmVBbGxDb250ZW50IiwiZ2V0RmlsdGVyRmllbGRzIiwiYWRkQnV0dG9uIiwiaW5zZXJ0SXRlbSIsImdldEFsbEJ1dHRvbnMiLCJnZXRJdGVtcyIsInJldmVyc2UiLCJyZW1vdmVCdXR0b24iLCJyZW1vdmVJdGVtIiwic2xpY2UiLCJzZXRBbGxGaWx0ZXJGaWVsZHMiLCJhRmlsdGVyRmllbGRzIiwiSUZpbHRlckNvbnRhaW5lciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiVmlzdWFsRmlsdGVyQ29udGFpbmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFnZ3JlZ2F0aW9uLCBkZWZpbmVVSTVDbGFzcyB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IEZsZXhCb3ggZnJvbSBcInNhcC9tL0ZsZXhCb3hcIjtcbmltcG9ydCBIZWFkZXJDb250YWluZXIgZnJvbSBcInNhcC9tL0hlYWRlckNvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IGNvcmVMaWJyYWJyeSBmcm9tIFwic2FwL3VpL2NvcmUvbGlicmFyeVwiO1xuaW1wb3J0IHsgc3lzdGVtIH0gZnJvbSBcInNhcC91aS9EZXZpY2VcIjtcbmltcG9ydCBJRmlsdGVyQ29udGFpbmVyIGZyb20gXCJzYXAvdWkvbWRjL2ZpbHRlcmJhci9JRmlsdGVyQ29udGFpbmVyXCI7XG4vKipcbiAqIENvbnN0cnVjdG9yIGZvciBhIG5ldyBWaXN1YWwgRmlsdGVyIENvbnRhaW5lci5cbiAqIFVzZWQgZm9yIHZpc3VhbCBmaWx0ZXJzLlxuICpcbiAqIEBleHRlbmRzIHNhcC51aS5tZGMuZmlsdGVyYmFyLklGaWx0ZXJDb250YWluZXJcbiAqIEBjbGFzc1xuICogQHByaXZhdGVcbiAqIEBhbGlhcyBzYXAuZmUuY29yZS5jb250cm9scy5maWx0ZXJiYXIuVmlzdWFsRmlsdGVyQ29udGFpbmVyXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb3JlLmNvbnRyb2xzLmZpbHRlcmJhci5WaXN1YWxGaWx0ZXJDb250YWluZXJcIilcbmNsYXNzIFZpc3VhbEZpbHRlckNvbnRhaW5lciBleHRlbmRzIElGaWx0ZXJDb250YWluZXIge1xuXHRAYWdncmVnYXRpb24oe1xuXHRcdHR5cGU6IFwic2FwLnVpLmNvcmUuQ29udHJvbFwiLFxuXHRcdG11bHRpcGxlOiBmYWxzZSxcblx0XHR2aXNpYmlsaXR5OiBcImhpZGRlblwiXG5cdH0pXG5cdC8qKlxuXHQgKiBJbnRlcm5hbCBoaWRkZW4gYWdncmVnYXRpb24gdG8gaG9sZCB0aGUgaW5uZXIgbGF5b3V0LlxuXHQgKi9cblx0X2xheW91dCE6IENvbnRyb2w7XG5cblx0aW5pdCguLi5hcmdzOiBhbnlbXSkge1xuXHRcdHN1cGVyLmluaXQoLi4uYXJncyk7XG5cdFx0Ly92YXIgb1JCID0gc2FwLnVpLmdldENvcmUoKS5nZXRMaWJyYXJ5UmVzb3VyY2VCdW5kbGUoXCJzYXAudWkubWRjXCIpO1xuXHRcdGNvbnN0IHNEZXZpY2VTeXN0ZW0gPSBzeXN0ZW0sXG5cdFx0XHRPcmllbnRhdGlvbiA9IGNvcmVMaWJyYWJyeS5PcmllbnRhdGlvbixcblx0XHRcdHNPcmllbnRhdGlvbiA9IHNEZXZpY2VTeXN0ZW0ucGhvbmUgPyBPcmllbnRhdGlvbi5WZXJ0aWNhbCA6IHVuZGVmaW5lZCxcblx0XHRcdHNEaXJlY3Rpb24gPSBzRGV2aWNlU3lzdGVtLnBob25lID8gXCJDb2x1bW5SZXZlcnNlXCIgOiBcIkNvbHVtblwiO1xuXG5cdFx0dGhpcy5vSGVhZGVyQ29udGFpbmVyID0gbmV3IEhlYWRlckNvbnRhaW5lcih7XG5cdFx0XHRvcmllbnRhdGlvbjogc09yaWVudGF0aW9uXG5cdFx0fSk7XG5cdFx0dGhpcy5vQnV0dG9uRmxleEJveCA9IG5ldyBGbGV4Qm94KHtcblx0XHRcdGFsaWduSXRlbXM6IFwiRW5kXCIsXG5cdFx0XHRqdXN0aWZ5Q29udGVudDogXCJFbmRcIlxuXHRcdH0pO1xuXG5cdFx0dGhpcy5vTGF5b3V0ID0gbmV3IEZsZXhCb3goe1xuXHRcdFx0ZGlyZWN0aW9uOiBzRGlyZWN0aW9uLCAvLyBEaXJlY3Rpb24gaXMgQ29sdW1uIFJldmVyc2UgZm9yIFBob25lXG5cdFx0XHRpdGVtczogW3RoaXMub0hlYWRlckNvbnRhaW5lciwgdGhpcy5vQnV0dG9uRmxleEJveF1cblx0XHR9KTtcblxuXHRcdHRoaXMuYUFsbEZpbHRlckZpZWxkcyA9IFtdO1xuXHRcdHRoaXMuYVZpc3VhbEZpbHRlckZpZWxkcyA9IHt9O1xuXHR9XG5cdGV4aXQoLi4uYXJnczogYW55W10pIHtcblx0XHQvLyBkZXN0cm95IGxheW91dFxuXHRcdHN1cGVyLmV4aXQoLi4uYXJncyk7XG5cdFx0Ly8gZGVzdHJveSBhbGwgZmlsdGVyIGZpZWxkcyB3aGljaCBhcmUgbm90IGluIHRoZSBsYXlvdXRcblx0XHRjb25zdCBhQWxsRmlsdGVyRmllbGRzID0gdGhpcy5nZXRBbGxGaWx0ZXJGaWVsZHMoKTtcblx0XHRhQWxsRmlsdGVyRmllbGRzLmZvckVhY2goZnVuY3Rpb24gKG9GaWx0ZXJGaWVsZDogYW55KSB7XG5cdFx0XHRvRmlsdGVyRmllbGQuZGVzdHJveSgpO1xuXHRcdH0pO1xuXHRcdHRoaXMub0hlYWRlckNvbnRhaW5lciA9IG51bGw7XG5cdFx0dGhpcy5vQnV0dG9uRmxleEJveCA9IG51bGw7XG5cdFx0dGhpcy5hQWxsRmlsdGVyRmllbGRzID0gW107XG5cdH1cblx0aW5zZXJ0RmlsdGVyRmllbGQob0NvbnRyb2w6IGFueSwgaUluZGV4OiBhbnkpIHtcblx0XHRjb25zdCBvRmlsdGVySXRlbUxheW91dEV2ZW50RGVsZWdhdGUgPSB7XG5cdFx0XHRvbkJlZm9yZVJlbmRlcmluZzogZnVuY3Rpb24gKCkge1xuXHRcdFx0XHQvLyB2aXN1YWwgZmlsdGVyIGRvZXMgbm90IG5lZWQgdG8gcmVuZGVyIGEgbGFiZWxcblx0XHRcdFx0Ly8gaGVuY2Ugb3ZlcnJpZGUgdGhlIGdldENvbnRlbnQgb2YgdGhlIEZpbHRlckl0ZW1MYXlvdXRcblx0XHRcdFx0Ly8gYW5kIHN0b3JlIHRoZSBvcmlnaW5hbCBnZXRDb250ZW50IGZvciBsYXRlciB1c2FnZSBpbiB0aGUgY29tcGFjdCBmaWx0ZXJzXG5cdFx0XHRcdGlmICghb0NvbnRyb2wuX2ZuR2V0Q29udGVudENvcHkpIHtcblx0XHRcdFx0XHRvQ29udHJvbC5fZm5HZXRDb250ZW50Q29weSA9IG9Db250cm9sLmdldENvbnRlbnQ7XG5cdFx0XHRcdH1cblx0XHRcdFx0Ly8gb3ZlcnJpZGUgZ2V0Q29udGVudCBvZiBGaWx0ZXJJdGVtTGF5b3V0XG5cdFx0XHRcdC8vIHRvIGFkZCBvbmx5IGZpbHRlckZpZWxkIGFuZCBub3QgbGFiZWxcblx0XHRcdFx0b0NvbnRyb2wuZ2V0Q29udGVudCA9IGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRjb25zdCBhQ29udGVudCA9IFtdO1xuXHRcdFx0XHRcdGFDb250ZW50LnB1c2gob0NvbnRyb2wuX29GaWx0ZXJGaWVsZCk7XG5cdFx0XHRcdFx0cmV0dXJuIGFDb250ZW50O1xuXHRcdFx0XHR9O1xuXHRcdFx0XHRvQ29udHJvbC5yZW1vdmVFdmVudERlbGVnYXRlKG9GaWx0ZXJJdGVtTGF5b3V0RXZlbnREZWxlZ2F0ZSk7XG5cdFx0XHR9XG5cdFx0fTtcblx0XHRvQ29udHJvbC5hZGRFdmVudERlbGVnYXRlKG9GaWx0ZXJJdGVtTGF5b3V0RXZlbnREZWxlZ2F0ZSk7XG5cblx0XHQvLyBTZXR0aW5nIFZGIGNvbnRyb2wgZm9yIHRoZSBGaWx0ZXJmaWVsZC5cblx0XHRjb25zdCBvVmlzdWFsRmlsdGVycyA9IHRoaXMuYVZpc3VhbEZpbHRlckZpZWxkcztcblx0XHRvQ29udHJvbC5nZXRDb250ZW50KCkuc29tZSgob0lubmVyQ29udHJvbDogYW55KSA9PiB7XG5cdFx0XHRjb25zdCBzRkZJZCA9IG9Jbm5lckNvbnRyb2wuZ2V0SWQoKTtcblx0XHRcdGlmIChvVmlzdWFsRmlsdGVyc1tzRkZJZF0gJiYgb0lubmVyQ29udHJvbC5pc0EoXCJzYXAudWkubWRjLkZpbHRlckZpZWxkXCIpKSB7XG5cdFx0XHRcdG9Jbm5lckNvbnRyb2wuc2V0Q29udGVudChvVmlzdWFsRmlsdGVyc1tzRkZJZF0pO1xuXHRcdFx0XHR0aGlzLm9IZWFkZXJDb250YWluZXIuaW5zZXJ0Q29udGVudChvQ29udHJvbCwgaUluZGV4KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXHRyZW1vdmVGaWx0ZXJGaWVsZChvQ29udHJvbDogYW55KSB7XG5cdFx0dGhpcy5vSGVhZGVyQ29udGFpbmVyLnJlbW92ZUNvbnRlbnQob0NvbnRyb2wpO1xuXHR9XG5cdHJlbW92ZUFsbEZpbHRlckZpZWxkcygpIHtcblx0XHR0aGlzLmFBbGxGaWx0ZXJGaWVsZHMgPSBbXTtcblx0XHR0aGlzLmFWaXN1YWxGaWx0ZXJGaWVsZHMgPSB7fTtcblx0XHR0aGlzLm9IZWFkZXJDb250YWluZXIucmVtb3ZlQWxsQ29udGVudCgpO1xuXHR9XG5cdGdldEZpbHRlckZpZWxkcygpIHtcblx0XHRyZXR1cm4gdGhpcy5vSGVhZGVyQ29udGFpbmVyLmdldENvbnRlbnQoKTtcblx0fVxuXHRhZGRCdXR0b24ob0NvbnRyb2w6IGFueSkge1xuXHRcdHRoaXMub0J1dHRvbkZsZXhCb3guaW5zZXJ0SXRlbShvQ29udHJvbCk7XG5cdH1cblx0Z2V0QWxsQnV0dG9ucygpIHtcblx0XHRyZXR1cm4gdGhpcy5vQnV0dG9uRmxleEJveC5nZXRJdGVtcygpLnJldmVyc2UoKTtcblx0fVxuXHRyZW1vdmVCdXR0b24ob0NvbnRyb2w6IGFueSkge1xuXHRcdHRoaXMub0J1dHRvbkZsZXhCb3gucmVtb3ZlSXRlbShvQ29udHJvbCk7XG5cdH1cblx0Z2V0QWxsRmlsdGVyRmllbGRzKCkge1xuXHRcdHJldHVybiB0aGlzLmFBbGxGaWx0ZXJGaWVsZHMuc2xpY2UoKTtcblx0fVxuXHRzZXRBbGxGaWx0ZXJGaWVsZHMoYUZpbHRlckZpZWxkczogYW55LCBhVmlzdWFsRmlsdGVyRmllbGRzOiBhbnkpIHtcblx0XHR0aGlzLmFBbGxGaWx0ZXJGaWVsZHMgPSBhRmlsdGVyRmllbGRzO1xuXHRcdHRoaXMuYVZpc3VhbEZpbHRlckZpZWxkcyA9IGFWaXN1YWxGaWx0ZXJGaWVsZHM7XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgVmlzdWFsRmlsdGVyQ29udGFpbmVyO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO01BRU1BLHFCLFdBRExDLGNBQWMsQ0FBQyxzREFBRCxDLFVBRWJDLFdBQVcsQ0FBQztJQUNaQyxJQUFJLEVBQUUscUJBRE07SUFFWkMsUUFBUSxFQUFFLEtBRkU7SUFHWkMsVUFBVSxFQUFFO0VBSEEsQ0FBRCxDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O1dBVVpDLEksR0FBQSxnQkFBcUI7TUFBQTs7TUFBQSxtQ0FBYkMsSUFBYTtRQUFiQSxJQUFhO01BQUE7O01BQ3BCLHFEQUFNRCxJQUFOLGtEQUFjQyxJQUFkLEdBRG9CLENBRXBCOzs7TUFDQSxJQUFNQyxhQUFhLEdBQUdDLE1BQXRCO01BQUEsSUFDQ0MsV0FBVyxHQUFHQyxZQUFZLENBQUNELFdBRDVCO01BQUEsSUFFQ0UsWUFBWSxHQUFHSixhQUFhLENBQUNLLEtBQWQsR0FBc0JILFdBQVcsQ0FBQ0ksUUFBbEMsR0FBNkNDLFNBRjdEO01BQUEsSUFHQ0MsVUFBVSxHQUFHUixhQUFhLENBQUNLLEtBQWQsR0FBc0IsZUFBdEIsR0FBd0MsUUFIdEQ7TUFLQSxLQUFLSSxnQkFBTCxHQUF3QixJQUFJQyxlQUFKLENBQW9CO1FBQzNDQyxXQUFXLEVBQUVQO01BRDhCLENBQXBCLENBQXhCO01BR0EsS0FBS1EsY0FBTCxHQUFzQixJQUFJQyxPQUFKLENBQVk7UUFDakNDLFVBQVUsRUFBRSxLQURxQjtRQUVqQ0MsY0FBYyxFQUFFO01BRmlCLENBQVosQ0FBdEI7TUFLQSxLQUFLQyxPQUFMLEdBQWUsSUFBSUgsT0FBSixDQUFZO1FBQzFCSSxTQUFTLEVBQUVULFVBRGU7UUFDSDtRQUN2QlUsS0FBSyxFQUFFLENBQUMsS0FBS1QsZ0JBQU4sRUFBd0IsS0FBS0csY0FBN0I7TUFGbUIsQ0FB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
@@ -6,7 +6,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/templating/FilterHelper", "sap/ui/co
6
6
  "use strict";
7
7
 
8
8
  var getTypeCompliantValue = FilterHelper.getTypeCompliantValue;
9
- var getOperator = FilterHelper.getOperator;
9
+ var getRangeProperty = FilterHelper.getRangeProperty;
10
10
 
11
11
  var VisualFilterUtils = {
12
12
  /**
@@ -313,7 +313,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/templating/FilterHelper", "sap/ui/co
313
313
  }
314
314
 
315
315
  return {
316
- operator: Range.Option ? getOperator(Range.Option.$EnumMember || Range.Option) : null,
316
+ operator: Range.Option ? getRangeProperty(Range.Option.$EnumMember || Range.Option) : null,
317
317
  value1: value1,
318
318
  value2: value2,
319
319
  path: sPropertyName
@@ -336,4 +336,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/templating/FilterHelper", "sap/ui/co
336
336
  };
337
337
  return VisualFilterUtils;
338
338
  }, false);
339
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlZpc3VhbEZpbHRlclV0aWxzLnRzIl0sIm5hbWVzIjpbIlZpc3VhbEZpbHRlclV0aWxzIiwiYXBwbHlNZWRpYW5TY2FsZVRvQ2hhcnREYXRhIiwib0ludGVyYWN0aXZlQ2hhcnQiLCJvVmlldyIsInNWRklkIiwic0luZm9QYXRoIiwib0RhdGEiLCJzTWVhc3VyZSIsImRhdGEiLCJvSW50ZXJuYWxNb2RlbENvbnRleHQiLCJnZXRCaW5kaW5nQ29udGV4dCIsImFBZ2dyZWdhdGlvbiIsImdldFBvaW50cyIsImdldEJhcnMiLCJnZXRTZWdtZW50cyIsImkiLCJsZW5ndGgiLCJwdXNoIiwiZ2V0T2JqZWN0Iiwic2NhbGVGYWN0b3IiLCJfZ2V0TWVkaWFuU2NhbGVGYWN0b3IiLCJpU2hvcnRSZWZOdW1iZXIiLCJzY2FsZSIsInNldFByb3BlcnR5Iiwib1NjYWxlVGl0bGUiLCJieUlkIiwib01lYXN1cmVEaW1lbnNpb25UaXRsZSIsInNUZXh0IiwiZ2V0VGV4dCIsInNldFZpc2libGUiLCJzZXRUb29sdGlwIiwic01lYXN1cmVGaWVsZCIsInNvcnQiLCJhIiwiYiIsIk51bWJlciIsImlNaWQiLCJpTWVkaWFuIiwicGFyc2VGbG9hdCIsIk1hdGgiLCJmbG9vciIsInZhbCIsInBvdyIsInJvdW5kIiwiYWJzIiwiZml4ZWRJbnRlZ2VyIiwiTnVtYmVyRm9ybWF0IiwiZ2V0SW50ZWdlckluc3RhbmNlIiwic3R5bGUiLCJzaG93U2NhbGUiLCJzaG9ydFJlZk51bWJlciIsImFEYXRhIiwic1NjYWxlZFZhbHVlIiwiZm9ybWF0IiwiYVNjYWxlZFZhbHVlUGFydHMiLCJzcGxpdCIsInBhcnNlSW50IiwiaW5kZXhPZiIsInVuZGVmaW5lZCIsImdldFNjYWxlIiwiZ2V0Rm9ybWF0dGVkTnVtYmVyIiwidmFsdWUiLCJudW1iZXJPZkZyYWN0aW9uYWxEaWdpdHMiLCJjdXJyZW5jeSIsInJlcGxhY2UiLCJjdXJyZW5jeUZvcm1hdCIsImdldEN1cnJlbmN5SW5zdGFuY2UiLCJzaG93TWVhc3VyZSIsImdldEZsb2F0SW5zdGFuY2UiLCJzaG9ydERlY2ltYWxzIiwiZGVjaW1hbHMiLCJhcHBseVVPTVRvVGl0bGUiLCJvQ29udGV4dERhdGEiLCJ2VU9NIiwic1VPTSIsInNDdXJyZW5jeSIsIiRQYXRoIiwic1VPTVZhbHVlIiwidXBkYXRlQ2hhcnRTY2FsZUZhY3RvclRpdGxlIiwiYXBwbHlFcnJvck1lc3NhZ2VBbmRUaXRsZSIsInMxOG5NZXNzYWdlVGl0bGUiLCJzMThuTWVzc2FnZSIsImNoZWNrTXVsaXRVbml0Iiwib0NvbnRleHRzIiwic1VuaXRmaWVsZCIsImFDb250ZXh0RGF0YSIsInJlZHVjZSIsImtleSIsIk5hTiIsInNldE11bHRpVU9NTWVzc2FnZSIsIm9SZXNvdXJjZUJ1bmRsZSIsInNJc0N1cnJlbmN5Iiwic0lzVW5pdCIsIkxvZyIsIndhcm5pbmciLCJzZXROb0RhdGFNZXNzYWdlIiwiY29udmVydEZpbHRlckNvbmRpb25zIiwib0ZpbHRlckNvbmRpdGlvbnMiLCJvQ29udmVydGVkQ29uZGl0aW9ucyIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwic0tleSIsImFDb252ZXJ0ZWRDb25kaXRpb25zIiwiYUNvbmRpdGlvbnMiLCJ2YWx1ZXMiLCJ2YWx1ZTIiLCJ2YWx1ZTEiLCJDb25kaXRpb24iLCJjcmVhdGVDb25kaXRpb24iLCJvcGVyYXRvciIsImdldEN1c3RvbUNvbmRpdGlvbnMiLCJSYW5nZSIsIm9WYWxpZFByb3BlcnR5Iiwic1Byb3BlcnR5TmFtZSIsIiRUeXBlIiwiX3BhcnNlRGF0ZVRpbWUiLCJnZXRUeXBlQ29tcGxpYW50VmFsdWUiLCJfZm9ybWF0RGF0ZVRpbWUiLCJMb3ciLCJIaWdoIiwiT3B0aW9uIiwiZ2V0T3BlcmF0b3IiLCIkRW51bU1lbWJlciIsInBhdGgiLCJzVmFsdWUiLCJfZ2V0RGF0ZVRpbWVUeXBlSW5zdGFuY2UiLCJwYXJzZVZhbHVlIiwiZm9ybWF0VmFsdWUiLCJEYXRlVGltZU9mZnNldCIsInBhdHRlcm4iLCJjYWxlbmRhclR5cGUiLCJW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QUFJTmtCLFFBQUFBLElBQUksRUFBRVY7QUFKQSxPQUFQO0FBTUEsS0FuVHdCO0FBb1R6QkUsSUFBQUEsY0FBYyxFQUFFLFVBQVVTLE1BQVYsRUFBdUI7QUFDdEMsYUFBTyxLQUFLQyx3QkFBTCxHQUFnQ0MsVUFBaEMsQ0FBMkNGLE1BQTNDLEVBQW1ELFFBQW5ELENBQVA7QUFDQSxLQXRUd0I7QUF1VHpCUCxJQUFBQSxlQUFlLEVBQUUsVUFBVU8sTUFBVixFQUF1QjtBQUN2QyxhQUFPLEtBQUtDLHdCQUFMLEdBQWdDRSxXQUFoQyxDQUE0Q0gsTUFBNUMsRUFBb0QsUUFBcEQsQ0FBUDtBQUNBLEtBelR3QjtBQTBUekJDLElBQUFBLHdCQUF3QixFQUFFLFlBQVk7QUFDckMsYUFBTyxJQUFJRyxjQUFKLENBQW1CO0FBQUVDLFFBQUFBLE9BQU8sRUFBRSxzQkFBWDtBQUFtQ0MsUUFBQUEsWUFBWSxFQUFFO0FBQWpELE9BQW5CLEVBQW1GO0FBQUVDLFFBQUFBLEVBQUUsRUFBRTtBQUFOLE9BQW5GLENBQVA7QUFDQTtBQTVUd0IsR0FBMUI7U0ErVGVwSSxpQiIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgUmVzb3VyY2VCdW5kbGUgZnJvbSBcInNhcC9iYXNlL2kxOG4vUmVzb3VyY2VCdW5kbGVcIjtcbmltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgeyBJbnRlcm5hbE1vZGVsQ29udGV4dCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgeyBnZXRPcGVyYXRvciwgZ2V0VHlwZUNvbXBsaWFudFZhbHVlIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRmlsdGVySGVscGVyXCI7XG5pbXBvcnQgdHlwZSBUaXRsZSBmcm9tIFwic2FwL20vVGl0bGVcIjtcbmltcG9ydCBOdW1iZXJGb3JtYXQgZnJvbSBcInNhcC91aS9jb3JlL2Zvcm1hdC9OdW1iZXJGb3JtYXRcIjtcbmltcG9ydCB0eXBlIFZpZXcgZnJvbSBcInNhcC91aS9jb3JlL212Yy9WaWV3XCI7XG5pbXBvcnQgQ29uZGl0aW9uIGZyb20gXCJzYXAvdWkvbWRjL2NvbmRpdGlvbi9Db25kaXRpb25cIjtcbmltcG9ydCB0eXBlIENvbmRpdGlvblZhbGlkYXRlZCBmcm9tIFwic2FwL3VpL21kYy9lbnVtL0NvbmRpdGlvblZhbGlkYXRlZFwiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL0NvbnRleHRcIjtcbmltcG9ydCBEYXRlVGltZU9mZnNldCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3R5cGUvRGF0ZVRpbWVPZmZzZXRcIjtcblxuY29uc3QgVmlzdWFsRmlsdGVyVXRpbHMgPSB7XG5cdC8qKlxuXHQgKiBBcHBsaWVzIHRoZSBtZWRpYW4gc2NhbGUgdG8gdGhlIGNoYXJ0IGRhdGEuXG5cdCAqXG5cdCAqIEBwYXJhbSBvSW50ZXJhY3RpdmVDaGFydCBJbnRlcmFjdGl2ZUNoYXJ0IGluIHRoZSBWaXN1YWxGaWx0ZXIgY29udHJvbFxuXHQgKiBAcGFyYW0gb1ZpZXcgSW5zdGFuY2Ugb2YgdGhlIHZpZXdcblx0ICogQHBhcmFtIHNWRklkIFZpc3VhbEZpbHRlciBjb250cm9sIElEXG5cdCAqIEBwYXJhbSBzSW5mb1BhdGggSW50ZXJuYWwgbW9kZWwgY29udGV4dCBwYXRoIHRvIHN0b3JlIGluZm8uXG5cdCAqL1xuXHRhcHBseU1lZGlhblNjYWxlVG9DaGFydERhdGE6IGZ1bmN0aW9uIChvSW50ZXJhY3RpdmVDaGFydDogYW55LCBvVmlldzogVmlldywgc1ZGSWQ6IHN0cmluZywgc0luZm9QYXRoOiBzdHJpbmcpIHtcblx0XHRjb25zdCBvRGF0YSA9IFtdO1xuXHRcdGNvbnN0IHNNZWFzdXJlID0gb0ludGVyYWN0aXZlQ2hhcnQuZGF0YShcIm1lYXN1cmVcIik7XG5cdFx0Y29uc3Qgb0ludGVybmFsTW9kZWxDb250ZXh0ID0gb1ZpZXcuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKSBhcyBJbnRlcm5hbE1vZGVsQ29udGV4dDtcblx0XHRjb25zdCBhQWdncmVnYXRpb24gPVxuXHRcdFx0KG9JbnRlcmFjdGl2ZUNoYXJ0LmdldFBvaW50cyAmJiBvSW50ZXJhY3RpdmVDaGFydC5nZXRQb2ludHMoKSkgfHxcblx0XHRcdChvSW50ZXJhY3RpdmVDaGFydC5nZXRCYXJzICYmIG9JbnRlcmFjdGl2ZUNoYXJ0LmdldEJhcnMoKSkgfHxcblx0XHRcdChvSW50ZXJhY3RpdmVDaGFydC5nZXRTZWdtZW50cyAmJiBvSW50ZXJhY3RpdmVDaGFydC5nZXRTZWdtZW50cygpKTtcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGFBZ2dyZWdhdGlvbi5sZW5ndGg7IGkrKykge1xuXHRcdFx0b0RhdGEucHVzaChhQWdncmVnYXRpb25baV0uZ2V0QmluZGluZ0NvbnRleHQoKS5nZXRPYmplY3QoKSk7XG5cdFx0fVxuXHRcdGNvbnN0IHNjYWxlRmFjdG9yID0gdGhpcy5fZ2V0TWVkaWFuU2NhbGVGYWN0b3Iob0RhdGEsIHNNZWFzdXJlKTtcblx0XHRpZiAoc2NhbGVGYWN0b3IgJiYgc2NhbGVGYWN0b3IuaVNob3J0UmVmTnVtYmVyICYmIHNjYWxlRmFjdG9yLnNjYWxlKSB7XG5cdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoYHNjYWxlZmFjdG9yLyR7c0luZm9QYXRofWAsIHNjYWxlRmFjdG9yLnNjYWxlKTtcblx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShgc2NhbGVmYWN0b3JOdW1iZXIvJHtzSW5mb1BhdGh9YCwgc2NhbGVGYWN0b3IuaVNob3J0UmVmTnVtYmVyKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KGBzY2FsZWZhY3Rvci8ke3NJbmZvUGF0aH1gLCBcIlwiKTtcblx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShgc2NhbGVmYWN0b3JOdW1iZXIvJHtzSW5mb1BhdGh9YCwgXCJcIik7XG5cdFx0XHRjb25zdCBvU2NhbGVUaXRsZSA9IG9WaWV3LmJ5SWQoYCR7c1ZGSWR9OjpTY2FsZVVvTVRpdGxlYCkgYXMgVGl0bGU7XG5cdFx0XHRjb25zdCBvTWVhc3VyZURpbWVuc2lvblRpdGxlID0gb1ZpZXcuYnlJZChgJHtzVkZJZH06Ok1lYXN1cmVEaW1lbnNpb25UaXRsZWApIGFzIFRpdGxlO1xuXHRcdFx0Y29uc3Qgc1RleHQgPSBvU2NhbGVUaXRsZS5nZXRUZXh0KCk7XG5cdFx0XHRpZiAoc1RleHQgPT09IFwiIHwgXCIpIHtcblx0XHRcdFx0b1NjYWxlVGl0bGUuc2V0VmlzaWJsZShmYWxzZSk7XG5cdFx0XHRcdG9NZWFzdXJlRGltZW5zaW9uVGl0bGUuc2V0VG9vbHRpcChvTWVhc3VyZURpbWVuc2lvblRpdGxlLmdldFRleHQoKSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBtZWRpYW4gc2NhbGUgZmFjdG9yLlxuXHQgKlxuXHQgKiBAcGFyYW0gb0RhdGEgVmlzdWFsRmlsdGVyIGRhdGFcblx0ICogQHBhcmFtIHNNZWFzdXJlRmllbGQgUGF0aCBvZiB0aGUgbWVhc3VyZVxuXHQgKiBAcmV0dXJucyBPYmplY3QgY29udGFpbmluZyBzY2FsZSBhbmQgaVNob3J0UmVmTnVtYmVyXG5cdCAqL1xuXHRfZ2V0TWVkaWFuU2NhbGVGYWN0b3I6IGZ1bmN0aW9uIChvRGF0YTogYW55W10sIHNNZWFzdXJlRmllbGQ6IHN0cmluZykge1xuXHRcdGxldCBpO1xuXHRcdGxldCBzY2FsZUZhY3Rvcjtcblx0XHRvRGF0YS5zb3J0KGZ1bmN0aW9uIChhOiBhbnksIGI6IGFueSkge1xuXHRcdFx0aWYgKE51bWJlcihhW3NNZWFzdXJlRmllbGRdKSA8IE51bWJlcihiW3NNZWFzdXJlRmllbGRdKSkge1xuXHRcdFx0XHRyZXR1cm4gLTE7XG5cdFx0XHR9XG5cdFx0XHRpZiAoTnVtYmVyKGFbc01lYXN1cmVGaWVsZF0pID4gTnVtYmVyKGJbc01lYXN1cmVGaWVsZF0pKSB7XG5cdFx0XHRcdHJldHVybiAxO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIDA7XG5cdFx0fSk7XG5cdFx0aWYgKG9EYXRhLmxlbmd0aCA+IDApIHtcblx0XHRcdC8vIGdldCBtZWRpYW4gaW5kZXhcblx0XHRcdGNvbnN0IGlNaWQgPSBvRGF0YS5sZW5ndGggLyAyLCAvLyBnZXQgbWlkIG9mIGFycmF5XG5cdFx0XHRcdC8vIGlmIGlNaWQgaXMgd2hvbGUgbnVtYmVyLCBhcnJheSBsZW5ndGggaXMgZXZlbiwgY2FsY3VsYXRlIG1lZGlhblxuXHRcdFx0XHQvLyBpZiBpTWlkIGlzIG5vdCB3aG9sZSBudW1iZXIsIGFycmF5IGxlbmd0aCBpcyBvZGQsIHRha2UgbWVkaWFuIGFzIGlNaWQgLSAxXG5cdFx0XHRcdGlNZWRpYW4gPVxuXHRcdFx0XHRcdGlNaWQgJSAxID09PSAwXG5cdFx0XHRcdFx0XHQ/IChwYXJzZUZsb2F0KG9EYXRhW2lNaWQgLSAxXVtzTWVhc3VyZUZpZWxkXSkgKyBwYXJzZUZsb2F0KG9EYXRhW2lNaWRdW3NNZWFzdXJlRmllbGRdKSkgLyAyXG5cdFx0XHRcdFx0XHQ6IHBhcnNlRmxvYXQob0RhdGFbTWF0aC5mbG9vcihpTWlkKV1bc01lYXN1cmVGaWVsZF0pLFxuXHRcdFx0XHQvLyBnZXQgc2NhbGUgZmFjdG9yIG9uIG1lZGlhblxuXHRcdFx0XHR2YWwgPSBpTWVkaWFuO1xuXHRcdFx0Zm9yIChpID0gMDsgaSA8IDE0OyBpKyspIHtcblx0XHRcdFx0c2NhbGVGYWN0b3IgPSBNYXRoLnBvdygxMCwgaSk7XG5cdFx0XHRcdGlmIChNYXRoLnJvdW5kKE1hdGguYWJzKHZhbCkgLyBzY2FsZUZhY3RvcikgPCAxMCkge1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Y29uc3QgZml4ZWRJbnRlZ2VyID0gTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZSh7XG5cdFx0XHRzdHlsZTogXCJzaG9ydFwiLFxuXHRcdFx0c2hvd1NjYWxlOiBmYWxzZSxcblx0XHRcdHNob3J0UmVmTnVtYmVyOiBzY2FsZUZhY3RvclxuXHRcdH0pO1xuXG5cdFx0Ly8gYXBwbHkgc2NhbGUgZmFjdG9yIHRvIG90aGVyIHZhbHVlcyBhbmQgY2hlY2tcblx0XHRmb3IgKGkgPSAwOyBpIDwgb0RhdGEubGVuZ3RoOyBpKyspIHtcblx0XHRcdGNvbnN0IGFEYXRhID0gb0RhdGFbaV0sXG5cdFx0XHRcdHNTY2FsZWRWYWx1ZSA9IGZpeGVkSW50ZWdlci5mb3JtYXQoYURhdGFbc01lYXN1cmVGaWVsZF0pIGFzIGFueSxcblx0XHRcdFx0YVNjYWxlZFZhbHVlUGFydHMgPSBzU2NhbGVkVmFsdWUuc3BsaXQoXCIuXCIpO1xuXHRcdFx0Ly8gaWYgc2NhbGVkIHZhbHVlIGhhcyBvbmx5IDAgYmVmb3JlIGRlY2ltYWwgb3IgMCBhZnRlciBkZWNpbWFsIChleGFtcGxlOiAwLjAyKVxuXHRcdFx0Ly8gdGhlbiBpZ25vcmUgdGhpcyBzY2FsZSBmYWN0b3IgZWxzZSBwcm9jZWVkIHdpdGggdGhpcyBzY2FsZSBmYWN0b3Jcblx0XHRcdC8vIGlmIHNjYWxlZCB2YWx1ZSBkaXZpZGVkIGJ5IDEwMDAgaXMgPj0gMTAwMCB0aGVuIGFsc28gaWdub3JlIHNjYWxlIGZhY3RvclxuXHRcdFx0aWYgKFxuXHRcdFx0XHQoIWFTY2FsZWRWYWx1ZVBhcnRzWzFdICYmIHBhcnNlSW50KGFTY2FsZWRWYWx1ZVBhcnRzWzBdLCAxMCkgPT09IDApIHx8XG5cdFx0XHRcdChhU2NhbGVkVmFsdWVQYXJ0c1sxXSAmJiBwYXJzZUludChhU2NhbGVkVmFsdWVQYXJ0c1swXSwgMTApID09PSAwICYmIGFTY2FsZWRWYWx1ZVBhcnRzWzFdLmluZGV4T2YoXCIwXCIpID09PSAwKSB8fFxuXHRcdFx0XHRzU2NhbGVkVmFsdWUgLyAxMDAwID49IDEwMDBcblx0XHRcdCkge1xuXHRcdFx0XHRzY2FsZUZhY3RvciA9IHVuZGVmaW5lZDtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRpU2hvcnRSZWZOdW1iZXI6IHNjYWxlRmFjdG9yLFxuXHRcdFx0c2NhbGU6IHNjYWxlRmFjdG9yID8gKGZpeGVkSW50ZWdlciBhcyBhbnkpLmdldFNjYWxlKCkgOiBcIlwiXG5cdFx0fTtcblx0fSxcblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgZm9ybWF0dGVkIG51bWJlciBhY2NvcmRpbmcgdG8gdGhlIHJ1bGVzIG9mIFZpc3VhbENoYXJ0RmlsdGVycy5cblx0ICpcblx0ICogQHBhcmFtIHZhbHVlIFZhbHVlIHdoaWNoIG5lZWRzIHRvIGJlIGZvcm1hdHRlZFxuXHQgKiBAcGFyYW0gc2NhbGVGYWN0b3IgU2NhbGVGYWN0b3IgdG8gd2hpY2ggdGhlIHZhbHVlIG5lZWRzIHRvIGJlIHNjYWxlZFxuXHQgKiBAcGFyYW0gbnVtYmVyT2ZGcmFjdGlvbmFsRGlnaXRzIE51bWJlck9mRnJhY3Rpb25hbERpZ2l0cyBkaWdpdHMgaW4gdGhlIGRlY2ltYWxzIGFjY29yZGluZyB0byBzY2FsZVxuXHQgKiBAcGFyYW0gY3VycmVuY3kgQ3VycmVuY3kgY29kZVxuXHQgKiBAcmV0dXJucyBUaGUgZm9ybWF0dGVkIG51bWJlclxuXHQgKi9cblx0Z2V0Rm9ybWF0dGVkTnVtYmVyOiBmdW5jdGlvbiAodmFsdWU6IHN0cmluZyB8IG51bWJlciwgc2NhbGVGYWN0b3I/OiBudW1iZXIsIG51bWJlck9mRnJhY3Rpb25hbERpZ2l0cz86IG51bWJlciwgY3VycmVuY3k/OiBzdHJpbmcpIHtcblx0XHRsZXQgZml4ZWRJbnRlZ2VyO1xuXHRcdHZhbHVlID0gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiID8gTnVtYmVyKHZhbHVlLnJlcGxhY2UoLywvZywgXCJcIikpIDogdmFsdWU7XG5cblx0XHRpZiAoY3VycmVuY3kpIHtcblx0XHRcdGNvbnN0IGN1cnJlbmN5Rm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2Uoe1xuXHRcdFx0XHRzaG93TWVhc3VyZTogZmFsc2Vcblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIGN1cnJlbmN5Rm9ybWF0LmZvcm1hdChwYXJzZUZsb2F0KHZhbHVlIGFzIGFueSksIGN1cnJlbmN5KTtcblx0XHRcdC8vIHBhcnNlRmxvYXQodmFsdWUpIGlzIHJlcXVpcmVkIG90aGVyd2lzZSAtdmUgdmFsdWUgYXJlIHdyb25nbHkgcm91bmRlZCBvZmZcblx0XHRcdC8vIEV4YW1wbGU6IFwiLTEuOVwiIHJvdW5kcyBvZmYgdG8gLTEgaW5zdGVhZCBvZiAtMi4gaG93ZXZlciAtMS45IHJvdW5kcyBvZmYgdG8gLTJcblx0XHR9IGVsc2UgaWYgKHNjYWxlRmFjdG9yKSB7XG5cdFx0XHRmaXhlZEludGVnZXIgPSBOdW1iZXJGb3JtYXQuZ2V0RmxvYXRJbnN0YW5jZSh7XG5cdFx0XHRcdHN0eWxlOiBcInNob3J0XCIsXG5cdFx0XHRcdHNob3dTY2FsZTogZmFsc2UsXG5cdFx0XHRcdHNob3J0UmVmTnVtYmVyOiBzY2FsZUZhY3Rvcixcblx0XHRcdFx0c2hvcnREZWNpbWFsczogbnVtYmVyT2ZGcmFjdGlvbmFsRGlnaXRzXG5cdFx0XHR9KTtcblx0XHRcdHJldHVybiBmaXhlZEludGVnZXIuZm9ybWF0KHBhcnNlRmxvYXQodmFsdWUgYXMgYW55KSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGZpeGVkSW50ZWdlciA9IE51bWJlckZvcm1hdC5nZXRGbG9hdEluc3RhbmNlKHtcblx0XHRcdFx0ZGVjaW1hbHM6IG51bWJlck9mRnJhY3Rpb25hbERpZ2l0c1xuXHRcdFx0fSk7XG5cdFx0XHRyZXR1cm4gZml4ZWRJbnRlZ2VyLmZvcm1hdChwYXJzZUZsb2F0KHZhbHVlIGFzIGFueSkpO1xuXHRcdH1cblx0fSxcblxuXHQvKipcblx0ICogQXBwbGllcyB0aGUgVU9NIHRvIHRoZSB0aXRsZSBvZiB0aGUgdmlzdWFsIGZpbHRlciBjb250cm9sLlxuXHQgKlxuXHQgKiBAcGFyYW0gb0ludGVyYWN0aXZlQ2hhcnQgSW50ZXJhY3RpdmVDaGFydCBpbiB0aGUgVmlzdWFsRmlsdGVyIGNvbnRyb2xcblx0ICogQHBhcmFtIG9Db250ZXh0RGF0YSBEYXRhIG9mIHRoZSBWaXN1YWxGaWx0ZXJcblx0ICogQHBhcmFtIG9WaWV3IEluc3RhbmNlIG9mIHRoZSB2aWV3XG5cdCAqIEBwYXJhbSBzSW5mb1BhdGggSW50ZXJuYWwgbW9kZWwgY29udGV4dCBwYXRoIHRvIHN0b3JlIGluZm8uXG5cdCAqL1xuXHRhcHBseVVPTVRvVGl0bGU6IGZ1bmN0aW9uIChvSW50ZXJhY3RpdmVDaGFydDogYW55LCBvQ29udGV4dERhdGE6IGFueSwgb1ZpZXc6IFZpZXcsIHNJbmZvUGF0aDogc3RyaW5nKSB7XG5cdFx0Y29uc3QgdlVPTSA9IG9JbnRlcmFjdGl2ZUNoYXJ0LmRhdGEoXCJ1b21cIik7XG5cdFx0bGV0IHNVT007XG5cdFx0bGV0IHNDdXJyZW5jeTtcblx0XHRpZiAodlVPTSAmJiB2VU9NW1wiSVNPQ3VycmVuY3lcIl0pIHtcblx0XHRcdHNVT00gPSB2VU9NW1wiSVNPQ3VycmVuY3lcIl07XG5cdFx0XHRzQ3VycmVuY3kgPSBzVU9NLiRQYXRoID8gb0NvbnRleHREYXRhW3NVT00uJFBhdGhdIDogc1VPTTtcblx0XHR9IGVsc2UgaWYgKHZVT00gJiYgdlVPTVtcIlVuaXRcIl0pIHtcblx0XHRcdHNVT00gPSB2VU9NW1wiVW5pdFwiXTtcblx0XHR9XG5cdFx0aWYgKHNVT00pIHtcblx0XHRcdGNvbnN0IHNVT01WYWx1ZSA9IHNVT00uJFBhdGggPyBvQ29udGV4dERhdGFbc1VPTS4kUGF0aF0gOiBzVU9NO1xuXHRcdFx0Y29uc3Qgb0ludGVybmFsTW9kZWxDb250ZXh0ID0gb1ZpZXcuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKSBhcyBJbnRlcm5hbE1vZGVsQ29udGV4dDtcblx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShgdW9tLyR7c0luZm9QYXRofWAsIHNVT01WYWx1ZSk7XG5cdFx0XHRpZiAoc0N1cnJlbmN5KSB7XG5cdFx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShgY3VycmVuY3kvJHtzSW5mb1BhdGh9YCwgc1VPTVZhbHVlKTtcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdC8qKlxuXHQgKiBVcGRhdGVzIHRoZSBzY2FsZSBmYWN0b3IgaW4gdGhlIHRpdGxlIG9mIHRoZSB2aXN1YWwgZmlsdGVyLlxuXHQgKlxuXHQgKiBAcGFyYW0gb0ludGVyYWN0aXZlQ2hhcnQgSW50ZXJhY3RpdmVDaGFydCBpbiB0aGUgVmlzdWFsRmlsdGVyIGNvbnRyb2xcblx0ICogQHBhcmFtIG9WaWV3IEluc3RhbmNlIG9mIHRoZSB2aWV3XG5cdCAqIEBwYXJhbSBzVkZJZCBWaXN1YWxGaWx0ZXIgY29udHJvbCBJRFxuXHQgKiBAcGFyYW0gc0luZm9QYXRoIEludGVybmFsIG1vZGVsIGNvbnRleHQgcGF0aCB0byBzdG9yZSBpbmZvLlxuXHQgKi9cblx0dXBkYXRlQ2hhcnRTY2FsZUZhY3RvclRpdGxlOiBmdW5jdGlvbiAob0ludGVyYWN0aXZlQ2hhcnQ6IGFueSwgb1ZpZXc6IFZpZXcsIHNWRklkOiBzdHJpbmcsIHNJbmZvUGF0aDogc3RyaW5nKSB7XG5cdFx0aWYgKCFvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFwic2NhbGVmYWN0b3JcIikpIHtcblx0XHRcdHRoaXMuYXBwbHlNZWRpYW5TY2FsZVRvQ2hhcnREYXRhKG9JbnRlcmFjdGl2ZUNoYXJ0LCBvVmlldywgc1ZGSWQsIHNJbmZvUGF0aCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IGZpeGVkSW50ZWdlciA9IE51bWJlckZvcm1hdC5nZXRJbnRlZ2VySW5zdGFuY2Uoe1xuXHRcdFx0XHRzdHlsZTogXCJzaG9ydFwiLFxuXHRcdFx0XHRzaG93U2NhbGU6IGZhbHNlLFxuXHRcdFx0XHRzaG9ydFJlZk51bWJlcjogb0ludGVyYWN0aXZlQ2hhcnQuZGF0YShcInNjYWxlZmFjdG9yXCIpXG5cdFx0XHR9KTtcblx0XHRcdGNvbnN0IG9JbnRlcm5hbE1vZGVsQ29udGV4dCA9IG9WaWV3LmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQ7XG5cdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoYHNjYWxlZmFjdG9yLyR7c0luZm9QYXRofWAsIChmaXhlZEludGVnZXIgYXMgYW55KS5nZXRTY2FsZSgpKTtcblx0XHR9XG5cdH0sXG5cblx0LyoqXG5cdCAqXG5cdCAqIEBwYXJhbSBzMThuTWVzc2FnZVRpdGxlIFRleHQgb2YgdGhlIGVycm9yIG1lc3NhZ2UgdGl0bGUuXG5cdCAqIEBwYXJhbSBzMThuTWVzc2FnZSBUZXh0IG9mIHRoZSBlcnJvciBtZXNzYWdlIGRlc2NyaXB0aW9uLlxuXHQgKiBAcGFyYW0gc0luZm9QYXRoIEludGVybmFsIG1vZGVsIGNvbnRleHQgcGF0aCB0byBzdG9yZSBpbmZvLlxuXHQgKiBAcGFyYW0gb1ZpZXcgSW5zdGFuY2Ugb2YgdGhlIHZpZXcuXG5cdCAqL1xuXHRhcHBseUVycm9yTWVzc2FnZUFuZFRpdGxlOiBmdW5jdGlvbiAoczE4bk1lc3NhZ2VUaXRsZTogc3RyaW5nLCBzMThuTWVzc2FnZTogc3RyaW5nLCBzSW5mb1BhdGg6IHN0cmluZywgb1ZpZXc6IFZpZXcpIHtcblx0XHRjb25zdCBvSW50ZXJuYWxNb2RlbENvbnRleHQgPSBvVmlldy5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0O1xuXHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShzSW5mb1BhdGgsIHt9KTtcblx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoc0luZm9QYXRoLCB7XG5cdFx0XHRcImVycm9yTWVzc2FnZVRpdGxlXCI6IHMxOG5NZXNzYWdlVGl0bGUsXG5cdFx0XHRcImVycm9yTWVzc2FnZVwiOiBzMThuTWVzc2FnZSxcblx0XHRcdFwic2hvd0Vycm9yXCI6IHRydWVcblx0XHR9KTtcblx0fSxcblx0LyoqXG5cdCAqIENoZWNrcyBpZiBtdWx0aXBsZSB1bml0cyBhcmUgcHJlc2VudC5cblx0ICpcblx0ICogQHBhcmFtIG9Db250ZXh0cyBDb250ZXh0cyBvZiB0aGUgVmlzdWFsRmlsdGVyXG5cdCAqIEBwYXJhbSBzVW5pdGZpZWxkIFRoZSBwYXRoIG9mIHRoZSB1bml0IGZpZWxkXG5cdCAqIEByZXR1cm5zIFJldHVybnMgaWYgbXVsdGlwbGUgdW5pdHMgYXJlIGNvbmZpZ3VyZWQgb3Igbm90XG5cdCAqL1xuXHRjaGVja011bGl0VW5pdDogZnVuY3Rpb24gKG9Db250ZXh0czogQ29udGV4dFtdLCBzVW5pdGZpZWxkOiBzdHJpbmcpIHtcblx0XHRjb25zdCBhRGF0YSA9IFtdO1xuXHRcdGlmIChvQ29udGV4dHMgJiYgc1VuaXRmaWVsZCkge1xuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBvQ29udGV4dHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0Y29uc3QgYUNvbnRleHREYXRhID0gb0NvbnRleHRzW2ldICYmIChvQ29udGV4dHNbaV0uZ2V0T2JqZWN0KCkgYXMgYW55KTtcblx0XHRcdFx0YURhdGEucHVzaChhQ29udGV4dERhdGFbc1VuaXRmaWVsZF0pO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gISFhRGF0YS5yZWR1Y2UoZnVuY3Rpb24gKGRhdGE6IGFueSwga2V5OiBhbnkpIHtcblx0XHRcdHJldHVybiBkYXRhID09PSBrZXkgPyBkYXRhIDogTmFOO1xuXHRcdH0pO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBTZXRzIGFuIGVycm9yIG1lc3NhZ2UgaWYgbXVsdGlwbGUgVU9NIGFyZSBwcmVzZW50LlxuXHQgKlxuXHQgKiBAcGFyYW0gb0RhdGEgRGF0YSBvZiB0aGUgVmlzdWFsRmlsdGVyIGNvbnRyb2xcblx0ICogQHBhcmFtIG9JbnRlcmFjdGl2ZUNoYXJ0IEludGVyYWN0aXZlQ2hhcnQgaW4gdGhlIFZpc3VhbEZpbHRlciBjb250cm9sXG5cdCAqIEBwYXJhbSBzSW5mb1BhdGggSW50ZXJuYWwgbW9kZWwgY29udGV4dCBwYXRoIHRvIHN0b3JlIGluZm8uXG5cdCAqIEBwYXJhbSBvUmVzb3VyY2VCdW5kbGUgVGhlIHJlc291cmNlIGJ1bmRsZVxuXHQgKiBAcGFyYW0gb1ZpZXcgSW5zdGFuY2Ugb2YgdGhlIHZpZXdcblx0ICovXG5cdHNldE11bHRpVU9NTWVzc2FnZTogZnVuY3Rpb24gKFxuXHRcdG9EYXRhOiBDb250ZXh0W10sXG5cdFx0b0ludGVyYWN0aXZlQ2hhcnQ6IGFueSxcblx0XHRzSW5mb1BhdGg6IHN0cmluZyxcblx0XHRvUmVzb3VyY2VCdW5kbGU6IFJlc291cmNlQnVuZGxlLFxuXHRcdG9WaWV3OiBWaWV3XG5cdCkge1xuXHRcdGNvbnN0IHZVT00gPSBvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFwidW9tXCIpO1xuXHRcdGNvbnN0IHNJc0N1cnJlbmN5ID0gdlVPTSAmJiB2VU9NW1wiSVNPQ3VycmVuY3lcIl0gJiYgdlVPTVtcIklTT0N1cnJlbmN5XCJdLiRQYXRoO1xuXHRcdGNvbnN0IHNJc1VuaXQgPSB2VU9NICYmIHZVT01bXCJVbml0XCJdICYmIHZVT01bXCJVbml0XCJdLiRQYXRoO1xuXHRcdGNvbnN0IHNVbml0ZmllbGQgPSBzSXNDdXJyZW5jeSB8fCBzSXNVbml0O1xuXHRcdGxldCBzMThuTWVzc2FnZVRpdGxlLCBzMThuTWVzc2FnZTtcblx0XHRpZiAoc1VuaXRmaWVsZCkge1xuXHRcdFx0aWYgKCF0aGlzLmNoZWNrTXVsaXRVbml0KG9EYXRhLCBzVW5pdGZpZWxkKSkge1xuXHRcdFx0XHRpZiAoc0lzQ3VycmVuY3kpIHtcblx0XHRcdFx0XHRzMThuTWVzc2FnZVRpdGxlID0gb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1ZJU1VBTF9GSUxURVJTX0VSUk9SX01FU1NBR0VfVElUTEVcIik7XG5cdFx0XHRcdFx0czE4bk1lc3NhZ2UgPSBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fVklTVUFMX0ZJTFRFUlNfTVVMVElQTEVfQ1VSUkVOQ1lcIiwgc1VuaXRmaWVsZCk7XG5cdFx0XHRcdFx0dGhpcy5hcHBseUVycm9yTWVzc2FnZUFuZFRpdGxlKHMxOG5NZXNzYWdlVGl0bGUsIHMxOG5NZXNzYWdlLCBzSW5mb1BhdGgsIG9WaWV3KTtcblx0XHRcdFx0XHRMb2cud2FybmluZyhgRmlsdGVyIGlzIHNldCBmb3IgbXVsdGlwbGUgQ3VycmVuY3kgZm9yJHtzVW5pdGZpZWxkfWApO1xuXHRcdFx0XHR9IGVsc2UgaWYgKHNJc1VuaXQpIHtcblx0XHRcdFx0XHRzMThuTWVzc2FnZVRpdGxlID0gb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1ZJU1VBTF9GSUxURVJTX0VSUk9SX01FU1NBR0VfVElUTEVcIik7XG5cdFx0XHRcdFx0czE4bk1lc3NhZ2UgPSBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fVklTVUFMX0ZJTFRFUlNfTVVMVElQTEVfVU5JVFwiLCBzVW5pdGZpZWxkKTtcblx0XHRcdFx0XHR0aGlzLmFwcGx5RXJyb3JNZXNzYWdlQW5kVGl0bGUoczE4bk1lc3NhZ2VUaXRsZSwgczE4bk1lc3NhZ2UsIHNJbmZvUGF0aCwgb1ZpZXcpO1xuXHRcdFx0XHRcdExvZy53YXJuaW5nKGBGaWx0ZXIgaXMgc2V0IGZvciBtdWx0aXBsZSBVT01zIGZvciR7c1VuaXRmaWVsZH1gKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblxuXHQvKipcblx0ICogU2V0cyBhbiBlcnJvciBtZXNzYWdlIGlmIHJlc3BvbnNlIGRhdGEgaXMgZW1wdHkuXG5cdCAqXG5cdCAqIEBwYXJhbSBzSW5mb1BhdGggSW50ZXJuYWwgbW9kZWwgY29udGV4dCBwYXRoIHRvIHN0b3JlIGluZm8uXG5cdCAqIEBwYXJhbSBvUmVzb3VyY2VCdW5kbGUgVGhlIHJlc291cmNlIGJ1bmRsZVxuXHQgKiBAcGFyYW0gb1ZpZXcgSW5zdGFuY2Ugb2YgdGhlIHZpZXdcblx0ICovXG5cdHNldE5vRGF0YU1lc3NhZ2U6IGZ1bmN0aW9uIChzSW5mb1BhdGg6IHN0cmluZywgb1Jlc291cmNlQnVuZGxlOiBSZXNvdXJjZUJ1bmRsZSwgb1ZpZXc6IFZpZXcpIHtcblx0XHRjb25zdCBzMThuTWVzc2FnZVRpdGxlID0gb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1ZJU1VBTF9GSUxURVJTX0VSUk9SX01FU1NBR0VfVElUTEVcIik7XG5cdFx0Y29uc3QgczE4bk1lc3NhZ2UgPSBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fVklTVUFMX0ZJTFRFUl9OT19EQVRBX1RFWFRcIik7XG5cdFx0dGhpcy5hcHBseUVycm9yTWVzc2FnZUFuZFRpdGxlKHMxOG5NZXNzYWdlVGl0bGUsIHMxOG5NZXNzYWdlLCBzSW5mb1BhdGgsIG9WaWV3KTtcblx0fSxcblx0Y29udmVydEZpbHRlckNvbmRpb25zOiBmdW5jdGlvbiAob0ZpbHRlckNvbmRpdGlvbnM6IGFueSkge1xuXHRcdGNvbnN0IG9Db252ZXJ0ZWRDb25kaXRpb25zOiBhbnkgPSB7fTtcblx0XHRPYmplY3Qua2V5cyhvRmlsdGVyQ29uZGl0aW9ucykuZm9yRWFjaChmdW5jdGlvbiAoc0tleTogc3RyaW5nKSB7XG5cdFx0XHRjb25zdCBhQ29udmVydGVkQ29uZGl0aW9ucyA9IFtdO1xuXHRcdFx0Y29uc3QgYUNvbmRpdGlvbnMgPSBvRmlsdGVyQ29uZGl0aW9uc1tzS2V5XTtcblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYUNvbmRpdGlvbnMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0Y29uc3QgdmFsdWVzID0gYUNvbmRpdGlvbnNbaV0udmFsdWUyID8gW2FDb25kaXRpb25zW2ldLnZhbHVlMSwgYUNvbmRpdGlvbnNbaV0udmFsdWUyXSA6IFthQ29uZGl0aW9uc1tpXS52YWx1ZTFdO1xuXHRcdFx0XHRhQ29udmVydGVkQ29uZGl0aW9ucy5wdXNoKFxuXHRcdFx0XHRcdENvbmRpdGlvbi5jcmVhdGVDb25kaXRpb24oYUNvbmRpdGlvbnNbaV0ub3BlcmF0b3IsIHZhbHVlcywgbnVsbCwgbnVsbCwgXCJWYWxpZGF0ZWRcIiBhcyBDb25kaXRpb25WYWxpZGF0ZWQpXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cdFx0XHRpZiAoYUNvbnZlcnRlZENvbmRpdGlvbnMubGVuZ3RoKSB7XG5cdFx0XHRcdG9Db252ZXJ0ZWRDb25kaXRpb25zW3NLZXldID0gYUNvbnZlcnRlZENvbmRpdGlvbnM7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0cmV0dXJuIG9Db252ZXJ0ZWRDb25kaXRpb25zO1xuXHR9LFxuXHRnZXRDdXN0b21Db25kaXRpb25zOiBmdW5jdGlvbiAoUmFuZ2U6IGFueSwgb1ZhbGlkUHJvcGVydHk6IGFueSwgc1Byb3BlcnR5TmFtZTogYW55KSB7XG5cdFx0bGV0IHZhbHVlMSwgdmFsdWUyO1xuXHRcdGlmIChvVmFsaWRQcm9wZXJ0eS4kVHlwZSA9PT0gXCJFZG0uRGF0ZVRpbWVPZmZzZXRcIikge1xuXHRcdFx0dmFsdWUxID0gdGhpcy5fcGFyc2VEYXRlVGltZShnZXRUeXBlQ29tcGxpYW50VmFsdWUodGhpcy5fZm9ybWF0RGF0ZVRpbWUoUmFuZ2UuTG93KSwgb1ZhbGlkUHJvcGVydHkuJFR5cGUpKTtcblx0XHRcdHZhbHVlMiA9IFJhbmdlLkhpZ2ggPyB0aGlzLl9wYXJzZURhdGVUaW1lKGdldFR5cGVDb21wbGlhbnRWYWx1ZSh0aGlzLl9mb3JtYXREYXRlVGltZShSYW5nZS5IaWdoKSwgb1ZhbGlkUHJvcGVydHkuJFR5cGUpKSA6IG51bGw7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHZhbHVlMSA9IFJhbmdlLkxvdztcblx0XHRcdHZhbHVlMiA9IFJhbmdlLkhpZ2ggPyBSYW5nZS5IaWdoIDogbnVsbDtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdG9wZXJhdG9yOiBSYW5nZS5PcHRpb24gPyBnZXRPcGVyYXRvcihSYW5nZS5PcHRpb24uJEVudW1NZW1iZXIgfHwgUmFuZ2UuT3B0aW9uKSA6IG51bGwsXG5cdFx0XHR2YWx1ZTE6IHZhbHVlMSxcblx0XHRcdHZhbHVlMjogdmFsdWUyLFxuXHRcdFx0cGF0aDogc1Byb3BlcnR5TmFtZVxuXHRcdH07XG5cdH0sXG5cdF9wYXJzZURhdGVUaW1lOiBmdW5jdGlvbiAoc1ZhbHVlOiBhbnkpIHtcblx0XHRyZXR1cm4gdGhpcy5fZ2V0RGF0ZVRpbWVUeXBlSW5zdGFuY2UoKS5wYXJzZVZhbHVlKHNWYWx1ZSwgXCJzdHJpbmdcIik7XG5cdH0sXG5cdF9mb3JtYXREYXRlVGltZTogZnVuY3Rpb24gKHNWYWx1ZTogYW55KSB7XG5cdFx0cmV0dXJuIHRoaXMuX2dldERhdGVUaW1lVHlwZUluc3RhbmNlKCkuZm9ybWF0VmFsdWUoc1ZhbHVlLCBcInN0cmluZ1wiKTtcblx0fSxcblx0X2dldERhdGVUaW1lVHlwZUluc3RhbmNlOiBmdW5jdGlvbiAoKSB7XG5cdFx0cmV0dXJuIG5ldyBEYXRlVGltZU9mZnNldCh7IHBhdHRlcm46IFwieXl5eS1NTS1kZFRISDptbTpzc1pcIiwgY2FsZW5kYXJUeXBlOiBcIkdyZWdvcmlhblwiIH0sIHsgVjQ6IHRydWUgfSk7XG5cdH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IFZpc3VhbEZpbHRlclV0aWxzO1xuIl19
339
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJWaXN1YWxGaWx0ZXJVdGlscyIsImFwcGx5TWVkaWFuU2NhbGVUb0NoYXJ0RGF0YSIsIm9JbnRlcmFjdGl2ZUNoYXJ0Iiwib1ZpZXciLCJzVkZJZCIsInNJbmZvUGF0aCIsIm9EYXRhIiwic01lYXN1cmUiLCJkYXRhIiwib0ludGVybmFsTW9kZWxDb250ZXh0IiwiZ2V0QmluZGluZ0NvbnRleHQiLCJhQWdncmVnYXRpb24iLCJnZXRQb2ludHMiLCJnZXRCYXJzIiwiZ2V0U2VnbWVudHMiLCJpIiwibGVuZ3RoIiwicHVzaCIsImdldE9iamVjdCIsInNjYWxlRmFjdG9yIiwiX2dldE1lZGlhblNjYWxlRmFjdG9yIiwiaVNob3J0UmVmTnVtYmVyIiwic2NhbGUiLCJzZXRQcm9wZXJ0eSIsIm9TY2FsZVRpdGxlIiwiYnlJZCIsIm9NZWFzdXJlRGltZW5zaW9uVGl0bGUiLCJzVGV4dCIsImdldFRleHQiLCJzZXRWaXNpYmxlIiwic2V0VG9vbHRpcCIsInNNZWFzdXJlRmllbGQiLCJzb3J0IiwiYSIsImIiLCJOdW1iZXIiLCJpTWlkIiwiaU1lZGlhbiIsInBhcnNlRmxvYXQiLCJNYXRoIiwiZmxvb3IiLCJ2YWwiLCJwb3ciLCJyb3VuZCIsImFicyIsImZpeGVkSW50ZWdlciIsIk51bWJlckZvcm1hdCIsImdldEludGVnZXJJbnN0YW5jZSIsInN0eWxlIiwic2hvd1NjYWxlIiwic2hvcnRSZWZOdW1iZXIiLCJhRGF0YSIsInNTY2FsZWRWYWx1ZSIsImZvcm1hdCIsImFTY2FsZWRWYWx1ZVBhcnRzIiwic3BsaXQiLCJwYXJzZUludCIsImluZGV4T2YiLCJ1bmRlZmluZWQiLCJnZXRTY2FsZSIsImdldEZvcm1hdHRlZE51bWJlciIsInZhbHVlIiwibnVtYmVyT2ZGcmFjdGlvbmFsRGlnaXRzIiwiY3VycmVuY3kiLCJyZXBsYWNlIiwiY3VycmVuY3lGb3JtYXQiLCJnZXRDdXJyZW5jeUluc3RhbmNlIiwic2hvd01lYXN1cmUiLCJnZXRGbG9hdEluc3RhbmNlIiwic2hvcnREZWNpbWFscyIsImRlY2ltYWxzIiwiYXBwbHlVT01Ub1RpdGxlIiwib0NvbnRleHREYXRhIiwidlVPTSIsInNVT00iLCJzQ3VycmVuY3kiLCIkUGF0aCIsInNVT01WYWx1ZSIsInVwZGF0ZUNoYXJ0U2NhbGVGYWN0b3JUaXRsZSIsImFwcGx5RXJyb3JNZXNzYWdlQW5kVGl0bGUiLCJzMThuTWVzc2FnZVRpdGxlIiwiczE4bk1lc3NhZ2UiLCJjaGVja011bGl0VW5pdCIsIm9Db250ZXh0cyIsInNVbml0ZmllbGQiLCJhQ29udGV4dERhdGEiLCJyZWR1Y2UiLCJrZXkiLCJOYU4iLCJzZXRNdWx0aVVPTU1lc3NhZ2UiLCJvUmVzb3VyY2VCdW5kbGUiLCJzSXNDdXJyZW5jeSIsInNJc1VuaXQiLCJMb2ciLCJ3YXJuaW5nIiwic2V0Tm9EYXRhTWVzc2FnZSIsImNvbnZlcnRGaWx0ZXJDb25kaW9ucyIsIm9GaWx0ZXJDb25kaXRpb25zIiwib0NvbnZlcnRlZENvbmRpdGlvbnMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsInNLZXkiLCJhQ29udmVydGVkQ29uZGl0aW9ucyIsImFDb25kaXRpb25zIiwidmFsdWVzIiwidmFsdWUyIiwidmFsdWUxIiwiQ29uZGl0aW9uIiwiY3JlYXRlQ29uZGl0aW9uIiwib3BlcmF0b3IiLCJnZXRDdXN0b21Db25kaXRpb25zIiwiUmFuZ2UiLCJvVmFsaWRQcm9wZXJ0eSIsInNQcm9wZXJ0eU5hbWUiLCIkVHlwZSIsIl9wYXJzZURhdGVUaW1lIiwiZ2V0VHlwZUNvbXBsaWFudFZhbHVlIiwiX2Zvcm1hdERhdGVUaW1lIiwiTG93IiwiSGlnaCIsIk9wdGlvbiIsImdldFJhbmdlUHJvcGVydHkiLCIkRW51bU1lbWJlciIsInBhdGgiLCJzVmFsdWUiLCJfZ2V0RGF0ZVRpbWVUeXBlSW5zdGFuY2UiLCJwYXJzZVZhbHVlIiwiZm9ybWF0VmFsdWUiLCJEYXRlVGltZU9mZnNldCIsInBhdHRlcm4iLCJjYWxlbmRhclR5cGUiLCJWNCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiVmlzdWFsRmlsdGVyVXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgUmVzb3VyY2VCdW5kbGUgZnJvbSBcInNhcC9iYXNlL2kxOG4vUmVzb3VyY2VCdW5kbGVcIjtcbmltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgeyBJbnRlcm5hbE1vZGVsQ29udGV4dCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgeyBnZXRSYW5nZVByb3BlcnR5LCBnZXRUeXBlQ29tcGxpYW50VmFsdWUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9GaWx0ZXJIZWxwZXJcIjtcbmltcG9ydCB0eXBlIFRpdGxlIGZyb20gXCJzYXAvbS9UaXRsZVwiO1xuaW1wb3J0IE51bWJlckZvcm1hdCBmcm9tIFwic2FwL3VpL2NvcmUvZm9ybWF0L051bWJlckZvcm1hdFwiO1xuaW1wb3J0IHR5cGUgVmlldyBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL1ZpZXdcIjtcbmltcG9ydCBDb25kaXRpb24gZnJvbSBcInNhcC91aS9tZGMvY29uZGl0aW9uL0NvbmRpdGlvblwiO1xuaW1wb3J0IHR5cGUgQ29uZGl0aW9uVmFsaWRhdGVkIGZyb20gXCJzYXAvdWkvbWRjL2VudW0vQ29uZGl0aW9uVmFsaWRhdGVkXCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvQ29udGV4dFwiO1xuaW1wb3J0IERhdGVUaW1lT2Zmc2V0IGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdHlwZS9EYXRlVGltZU9mZnNldFwiO1xuXG5jb25zdCBWaXN1YWxGaWx0ZXJVdGlscyA9IHtcblx0LyoqXG5cdCAqIEFwcGxpZXMgdGhlIG1lZGlhbiBzY2FsZSB0byB0aGUgY2hhcnQgZGF0YS5cblx0ICpcblx0ICogQHBhcmFtIG9JbnRlcmFjdGl2ZUNoYXJ0IEludGVyYWN0aXZlQ2hhcnQgaW4gdGhlIFZpc3VhbEZpbHRlciBjb250cm9sXG5cdCAqIEBwYXJhbSBvVmlldyBJbnN0YW5jZSBvZiB0aGUgdmlld1xuXHQgKiBAcGFyYW0gc1ZGSWQgVmlzdWFsRmlsdGVyIGNvbnRyb2wgSURcblx0ICogQHBhcmFtIHNJbmZvUGF0aCBJbnRlcm5hbCBtb2RlbCBjb250ZXh0IHBhdGggdG8gc3RvcmUgaW5mby5cblx0ICovXG5cdGFwcGx5TWVkaWFuU2NhbGVUb0NoYXJ0RGF0YTogZnVuY3Rpb24gKG9JbnRlcmFjdGl2ZUNoYXJ0OiBhbnksIG9WaWV3OiBWaWV3LCBzVkZJZDogc3RyaW5nLCBzSW5mb1BhdGg6IHN0cmluZykge1xuXHRcdGNvbnN0IG9EYXRhID0gW107XG5cdFx0Y29uc3Qgc01lYXN1cmUgPSBvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFwibWVhc3VyZVwiKTtcblx0XHRjb25zdCBvSW50ZXJuYWxNb2RlbENvbnRleHQgPSBvVmlldy5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0O1xuXHRcdGNvbnN0IGFBZ2dyZWdhdGlvbiA9XG5cdFx0XHQob0ludGVyYWN0aXZlQ2hhcnQuZ2V0UG9pbnRzICYmIG9JbnRlcmFjdGl2ZUNoYXJ0LmdldFBvaW50cygpKSB8fFxuXHRcdFx0KG9JbnRlcmFjdGl2ZUNoYXJ0LmdldEJhcnMgJiYgb0ludGVyYWN0aXZlQ2hhcnQuZ2V0QmFycygpKSB8fFxuXHRcdFx0KG9JbnRlcmFjdGl2ZUNoYXJ0LmdldFNlZ21lbnRzICYmIG9JbnRlcmFjdGl2ZUNoYXJ0LmdldFNlZ21lbnRzKCkpO1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYUFnZ3JlZ2F0aW9uLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRvRGF0YS5wdXNoKGFBZ2dyZWdhdGlvbltpXS5nZXRCaW5kaW5nQ29udGV4dCgpLmdldE9iamVjdCgpKTtcblx0XHR9XG5cdFx0Y29uc3Qgc2NhbGVGYWN0b3IgPSB0aGlzLl9nZXRNZWRpYW5TY2FsZUZhY3RvcihvRGF0YSwgc01lYXN1cmUpO1xuXHRcdGlmIChzY2FsZUZhY3RvciAmJiBzY2FsZUZhY3Rvci5pU2hvcnRSZWZOdW1iZXIgJiYgc2NhbGVGYWN0b3Iuc2NhbGUpIHtcblx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShgc2NhbGVmYWN0b3IvJHtzSW5mb1BhdGh9YCwgc2NhbGVGYWN0b3Iuc2NhbGUpO1xuXHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KGBzY2FsZWZhY3Rvck51bWJlci8ke3NJbmZvUGF0aH1gLCBzY2FsZUZhY3Rvci5pU2hvcnRSZWZOdW1iZXIpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoYHNjYWxlZmFjdG9yLyR7c0luZm9QYXRofWAsIFwiXCIpO1xuXHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KGBzY2FsZWZhY3Rvck51bWJlci8ke3NJbmZvUGF0aH1gLCBcIlwiKTtcblx0XHRcdGNvbnN0IG9TY2FsZVRpdGxlID0gb1ZpZXcuYnlJZChgJHtzVkZJZH06OlNjYWxlVW9NVGl0bGVgKSBhcyBUaXRsZTtcblx0XHRcdGNvbnN0IG9NZWFzdXJlRGltZW5zaW9uVGl0bGUgPSBvVmlldy5ieUlkKGAke3NWRklkfTo6TWVhc3VyZURpbWVuc2lvblRpdGxlYCkgYXMgVGl0bGU7XG5cdFx0XHRjb25zdCBzVGV4dCA9IG9TY2FsZVRpdGxlLmdldFRleHQoKTtcblx0XHRcdGlmIChzVGV4dCA9PT0gXCIgfCBcIikge1xuXHRcdFx0XHRvU2NhbGVUaXRsZS5zZXRWaXNpYmxlKGZhbHNlKTtcblx0XHRcdFx0b01lYXN1cmVEaW1lbnNpb25UaXRsZS5zZXRUb29sdGlwKG9NZWFzdXJlRGltZW5zaW9uVGl0bGUuZ2V0VGV4dCgpKTtcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIG1lZGlhbiBzY2FsZSBmYWN0b3IuXG5cdCAqXG5cdCAqIEBwYXJhbSBvRGF0YSBWaXN1YWxGaWx0ZXIgZGF0YVxuXHQgKiBAcGFyYW0gc01lYXN1cmVGaWVsZCBQYXRoIG9mIHRoZSBtZWFzdXJlXG5cdCAqIEByZXR1cm5zIE9iamVjdCBjb250YWluaW5nIHNjYWxlIGFuZCBpU2hvcnRSZWZOdW1iZXJcblx0ICovXG5cdF9nZXRNZWRpYW5TY2FsZUZhY3RvcjogZnVuY3Rpb24gKG9EYXRhOiBhbnlbXSwgc01lYXN1cmVGaWVsZDogc3RyaW5nKSB7XG5cdFx0bGV0IGk7XG5cdFx0bGV0IHNjYWxlRmFjdG9yO1xuXHRcdG9EYXRhLnNvcnQoZnVuY3Rpb24gKGE6IGFueSwgYjogYW55KSB7XG5cdFx0XHRpZiAoTnVtYmVyKGFbc01lYXN1cmVGaWVsZF0pIDwgTnVtYmVyKGJbc01lYXN1cmVGaWVsZF0pKSB7XG5cdFx0XHRcdHJldHVybiAtMTtcblx0XHRcdH1cblx0XHRcdGlmIChOdW1iZXIoYVtzTWVhc3VyZUZpZWxkXSkgPiBOdW1iZXIoYltzTWVhc3VyZUZpZWxkXSkpIHtcblx0XHRcdFx0cmV0dXJuIDE7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gMDtcblx0XHR9KTtcblx0XHRpZiAob0RhdGEubGVuZ3RoID4gMCkge1xuXHRcdFx0Ly8gZ2V0IG1lZGlhbiBpbmRleFxuXHRcdFx0Y29uc3QgaU1pZCA9IG9EYXRhLmxlbmd0aCAvIDIsIC8vIGdldCBtaWQgb2YgYXJyYXlcblx0XHRcdFx0Ly8gaWYgaU1pZCBpcyB3aG9sZSBudW1iZXIsIGFycmF5IGxlbmd0aCBpcyBldmVuLCBjYWxjdWxhdGUgbWVkaWFuXG5cdFx0XHRcdC8vIGlmIGlNaWQgaXMgbm90IHdob2xlIG51bWJlciwgYXJyYXkgbGVuZ3RoIGlzIG9kZCwgdGFrZSBtZWRpYW4gYXMgaU1pZCAtIDFcblx0XHRcdFx0aU1lZGlhbiA9XG5cdFx0XHRcdFx0aU1pZCAlIDEgPT09IDBcblx0XHRcdFx0XHRcdD8gKHBhcnNlRmxvYXQob0RhdGFbaU1pZCAtIDFdW3NNZWFzdXJlRmllbGRdKSArIHBhcnNlRmxvYXQob0RhdGFbaU1pZF1bc01lYXN1cmVGaWVsZF0pKSAvIDJcblx0XHRcdFx0XHRcdDogcGFyc2VGbG9hdChvRGF0YVtNYXRoLmZsb29yKGlNaWQpXVtzTWVhc3VyZUZpZWxkXSksXG5cdFx0XHRcdC8vIGdldCBzY2FsZSBmYWN0b3Igb24gbWVkaWFuXG5cdFx0XHRcdHZhbCA9IGlNZWRpYW47XG5cdFx0XHRmb3IgKGkgPSAwOyBpIDwgMTQ7IGkrKykge1xuXHRcdFx0XHRzY2FsZUZhY3RvciA9IE1hdGgucG93KDEwLCBpKTtcblx0XHRcdFx0aWYgKE1hdGgucm91bmQoTWF0aC5hYnModmFsKSAvIHNjYWxlRmFjdG9yKSA8IDEwKSB7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRjb25zdCBmaXhlZEludGVnZXIgPSBOdW1iZXJGb3JtYXQuZ2V0SW50ZWdlckluc3RhbmNlKHtcblx0XHRcdHN0eWxlOiBcInNob3J0XCIsXG5cdFx0XHRzaG93U2NhbGU6IGZhbHNlLFxuXHRcdFx0c2hvcnRSZWZOdW1iZXI6IHNjYWxlRmFjdG9yXG5cdFx0fSk7XG5cblx0XHQvLyBhcHBseSBzY2FsZSBmYWN0b3IgdG8gb3RoZXIgdmFsdWVzIGFuZCBjaGVja1xuXHRcdGZvciAoaSA9IDA7IGkgPCBvRGF0YS5sZW5ndGg7IGkrKykge1xuXHRcdFx0Y29uc3QgYURhdGEgPSBvRGF0YVtpXSxcblx0XHRcdFx0c1NjYWxlZFZhbHVlID0gZml4ZWRJbnRlZ2VyLmZvcm1hdChhRGF0YVtzTWVhc3VyZUZpZWxkXSkgYXMgYW55LFxuXHRcdFx0XHRhU2NhbGVkVmFsdWVQYXJ0cyA9IHNTY2FsZWRWYWx1ZS5zcGxpdChcIi5cIik7XG5cdFx0XHQvLyBpZiBzY2FsZWQgdmFsdWUgaGFzIG9ubHkgMCBiZWZvcmUgZGVjaW1hbCBvciAwIGFmdGVyIGRlY2ltYWwgKGV4YW1wbGU6IDAuMDIpXG5cdFx0XHQvLyB0aGVuIGlnbm9yZSB0aGlzIHNjYWxlIGZhY3RvciBlbHNlIHByb2NlZWQgd2l0aCB0aGlzIHNjYWxlIGZhY3RvclxuXHRcdFx0Ly8gaWYgc2NhbGVkIHZhbHVlIGRpdmlkZWQgYnkgMTAwMCBpcyA+PSAxMDAwIHRoZW4gYWxzbyBpZ25vcmUgc2NhbGUgZmFjdG9yXG5cdFx0XHRpZiAoXG5cdFx0XHRcdCghYVNjYWxlZFZhbHVlUGFydHNbMV0gJiYgcGFyc2VJbnQoYVNjYWxlZFZhbHVlUGFydHNbMF0sIDEwKSA9PT0gMCkgfHxcblx0XHRcdFx0KGFTY2FsZWRWYWx1ZVBhcnRzWzFdICYmIHBhcnNlSW50KGFTY2FsZWRWYWx1ZVBhcnRzWzBdLCAxMCkgPT09IDAgJiYgYVNjYWxlZFZhbHVlUGFydHNbMV0uaW5kZXhPZihcIjBcIikgPT09IDApIHx8XG5cdFx0XHRcdHNTY2FsZWRWYWx1ZSAvIDEwMDAgPj0gMTAwMFxuXHRcdFx0KSB7XG5cdFx0XHRcdHNjYWxlRmFjdG9yID0gdW5kZWZpbmVkO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdGlTaG9ydFJlZk51bWJlcjogc2NhbGVGYWN0b3IsXG5cdFx0XHRzY2FsZTogc2NhbGVGYWN0b3IgPyAoZml4ZWRJbnRlZ2VyIGFzIGFueSkuZ2V0U2NhbGUoKSA6IFwiXCJcblx0XHR9O1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBmb3JtYXR0ZWQgbnVtYmVyIGFjY29yZGluZyB0byB0aGUgcnVsZXMgb2YgVmlzdWFsQ2hhcnRGaWx0ZXJzLlxuXHQgKlxuXHQgKiBAcGFyYW0gdmFsdWUgVmFsdWUgd2hpY2ggbmVlZHMgdG8gYmUgZm9ybWF0dGVkXG5cdCAqIEBwYXJhbSBzY2FsZUZhY3RvciBTY2FsZUZhY3RvciB0byB3aGljaCB0aGUgdmFsdWUgbmVlZHMgdG8gYmUgc2NhbGVkXG5cdCAqIEBwYXJhbSBudW1iZXJPZkZyYWN0aW9uYWxEaWdpdHMgTnVtYmVyT2ZGcmFjdGlvbmFsRGlnaXRzIGRpZ2l0cyBpbiB0aGUgZGVjaW1hbHMgYWNjb3JkaW5nIHRvIHNjYWxlXG5cdCAqIEBwYXJhbSBjdXJyZW5jeSBDdXJyZW5jeSBjb2RlXG5cdCAqIEByZXR1cm5zIFRoZSBmb3JtYXR0ZWQgbnVtYmVyXG5cdCAqL1xuXHRnZXRGb3JtYXR0ZWROdW1iZXI6IGZ1bmN0aW9uICh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyLCBzY2FsZUZhY3Rvcj86IG51bWJlciwgbnVtYmVyT2ZGcmFjdGlvbmFsRGlnaXRzPzogbnVtYmVyLCBjdXJyZW5jeT86IHN0cmluZykge1xuXHRcdGxldCBmaXhlZEludGVnZXI7XG5cdFx0dmFsdWUgPSB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgPyBOdW1iZXIodmFsdWUucmVwbGFjZSgvLC9nLCBcIlwiKSkgOiB2YWx1ZTtcblxuXHRcdGlmIChjdXJyZW5jeSkge1xuXHRcdFx0Y29uc3QgY3VycmVuY3lGb3JtYXQgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZSh7XG5cdFx0XHRcdHNob3dNZWFzdXJlOiBmYWxzZVxuXHRcdFx0fSk7XG5cdFx0XHRyZXR1cm4gY3VycmVuY3lGb3JtYXQuZm9ybWF0KHBhcnNlRmxvYXQodmFsdWUgYXMgYW55KSwgY3VycmVuY3kpO1xuXHRcdFx0Ly8gcGFyc2VGbG9hdCh2YWx1ZSkgaXMgcmVxdWlyZWQgb3RoZXJ3aXNlIC12ZSB2YWx1ZSBhcmUgd3JvbmdseSByb3VuZGVkIG9mZlxuXHRcdFx0Ly8gRXhhbXBsZTogXCItMS45XCIgcm91bmRzIG9mZiB0byAtMSBpbnN0ZWFkIG9mIC0yLiBob3dldmVyIC0xLjkgcm91bmRzIG9mZiB0byAtMlxuXHRcdH0gZWxzZSBpZiAoc2NhbGVGYWN0b3IpIHtcblx0XHRcdGZpeGVkSW50ZWdlciA9IE51bWJlckZvcm1hdC5nZXRGbG9hdEluc3RhbmNlKHtcblx0XHRcdFx0c3R5bGU6IFwic2hvcnRcIixcblx0XHRcdFx0c2hvd1NjYWxlOiBmYWxzZSxcblx0XHRcdFx0c2hvcnRSZWZOdW1iZXI6IHNjYWxlRmFjdG9yLFxuXHRcdFx0XHRzaG9ydERlY2ltYWxzOiBudW1iZXJPZkZyYWN0aW9uYWxEaWdpdHNcblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIGZpeGVkSW50ZWdlci5mb3JtYXQocGFyc2VGbG9hdCh2YWx1ZSBhcyBhbnkpKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Zml4ZWRJbnRlZ2VyID0gTnVtYmVyRm9ybWF0LmdldEZsb2F0SW5zdGFuY2Uoe1xuXHRcdFx0XHRkZWNpbWFsczogbnVtYmVyT2ZGcmFjdGlvbmFsRGlnaXRzXG5cdFx0XHR9KTtcblx0XHRcdHJldHVybiBmaXhlZEludGVnZXIuZm9ybWF0KHBhcnNlRmxvYXQodmFsdWUgYXMgYW55KSk7XG5cdFx0fVxuXHR9LFxuXG5cdC8qKlxuXHQgKiBBcHBsaWVzIHRoZSBVT00gdG8gdGhlIHRpdGxlIG9mIHRoZSB2aXN1YWwgZmlsdGVyIGNvbnRyb2wuXG5cdCAqXG5cdCAqIEBwYXJhbSBvSW50ZXJhY3RpdmVDaGFydCBJbnRlcmFjdGl2ZUNoYXJ0IGluIHRoZSBWaXN1YWxGaWx0ZXIgY29udHJvbFxuXHQgKiBAcGFyYW0gb0NvbnRleHREYXRhIERhdGEgb2YgdGhlIFZpc3VhbEZpbHRlclxuXHQgKiBAcGFyYW0gb1ZpZXcgSW5zdGFuY2Ugb2YgdGhlIHZpZXdcblx0ICogQHBhcmFtIHNJbmZvUGF0aCBJbnRlcm5hbCBtb2RlbCBjb250ZXh0IHBhdGggdG8gc3RvcmUgaW5mby5cblx0ICovXG5cdGFwcGx5VU9NVG9UaXRsZTogZnVuY3Rpb24gKG9JbnRlcmFjdGl2ZUNoYXJ0OiBhbnksIG9Db250ZXh0RGF0YTogYW55LCBvVmlldzogVmlldywgc0luZm9QYXRoOiBzdHJpbmcpIHtcblx0XHRjb25zdCB2VU9NID0gb0ludGVyYWN0aXZlQ2hhcnQuZGF0YShcInVvbVwiKTtcblx0XHRsZXQgc1VPTTtcblx0XHRsZXQgc0N1cnJlbmN5O1xuXHRcdGlmICh2VU9NICYmIHZVT01bXCJJU09DdXJyZW5jeVwiXSkge1xuXHRcdFx0c1VPTSA9IHZVT01bXCJJU09DdXJyZW5jeVwiXTtcblx0XHRcdHNDdXJyZW5jeSA9IHNVT00uJFBhdGggPyBvQ29udGV4dERhdGFbc1VPTS4kUGF0aF0gOiBzVU9NO1xuXHRcdH0gZWxzZSBpZiAodlVPTSAmJiB2VU9NW1wiVW5pdFwiXSkge1xuXHRcdFx0c1VPTSA9IHZVT01bXCJVbml0XCJdO1xuXHRcdH1cblx0XHRpZiAoc1VPTSkge1xuXHRcdFx0Y29uc3Qgc1VPTVZhbHVlID0gc1VPTS4kUGF0aCA/IG9Db250ZXh0RGF0YVtzVU9NLiRQYXRoXSA6IHNVT007XG5cdFx0XHRjb25zdCBvSW50ZXJuYWxNb2RlbENvbnRleHQgPSBvVmlldy5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0O1xuXHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KGB1b20vJHtzSW5mb1BhdGh9YCwgc1VPTVZhbHVlKTtcblx0XHRcdGlmIChzQ3VycmVuY3kpIHtcblx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KGBjdXJyZW5jeS8ke3NJbmZvUGF0aH1gLCBzVU9NVmFsdWUpO1xuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0LyoqXG5cdCAqIFVwZGF0ZXMgdGhlIHNjYWxlIGZhY3RvciBpbiB0aGUgdGl0bGUgb2YgdGhlIHZpc3VhbCBmaWx0ZXIuXG5cdCAqXG5cdCAqIEBwYXJhbSBvSW50ZXJhY3RpdmVDaGFydCBJbnRlcmFjdGl2ZUNoYXJ0IGluIHRoZSBWaXN1YWxGaWx0ZXIgY29udHJvbFxuXHQgKiBAcGFyYW0gb1ZpZXcgSW5zdGFuY2Ugb2YgdGhlIHZpZXdcblx0ICogQHBhcmFtIHNWRklkIFZpc3VhbEZpbHRlciBjb250cm9sIElEXG5cdCAqIEBwYXJhbSBzSW5mb1BhdGggSW50ZXJuYWwgbW9kZWwgY29udGV4dCBwYXRoIHRvIHN0b3JlIGluZm8uXG5cdCAqL1xuXHR1cGRhdGVDaGFydFNjYWxlRmFjdG9yVGl0bGU6IGZ1bmN0aW9uIChvSW50ZXJhY3RpdmVDaGFydDogYW55LCBvVmlldzogVmlldywgc1ZGSWQ6IHN0cmluZywgc0luZm9QYXRoOiBzdHJpbmcpIHtcblx0XHRpZiAoIW9JbnRlcmFjdGl2ZUNoYXJ0LmRhdGEoXCJzY2FsZWZhY3RvclwiKSkge1xuXHRcdFx0dGhpcy5hcHBseU1lZGlhblNjYWxlVG9DaGFydERhdGEob0ludGVyYWN0aXZlQ2hhcnQsIG9WaWV3LCBzVkZJZCwgc0luZm9QYXRoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3QgZml4ZWRJbnRlZ2VyID0gTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZSh7XG5cdFx0XHRcdHN0eWxlOiBcInNob3J0XCIsXG5cdFx0XHRcdHNob3dTY2FsZTogZmFsc2UsXG5cdFx0XHRcdHNob3J0UmVmTnVtYmVyOiBvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFwic2NhbGVmYWN0b3JcIilcblx0XHRcdH0pO1xuXHRcdFx0Y29uc3Qgb0ludGVybmFsTW9kZWxDb250ZXh0ID0gb1ZpZXcuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKSBhcyBJbnRlcm5hbE1vZGVsQ29udGV4dDtcblx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShgc2NhbGVmYWN0b3IvJHtzSW5mb1BhdGh9YCwgKGZpeGVkSW50ZWdlciBhcyBhbnkpLmdldFNjYWxlKCkpO1xuXHRcdH1cblx0fSxcblxuXHQvKipcblx0ICpcblx0ICogQHBhcmFtIHMxOG5NZXNzYWdlVGl0bGUgVGV4dCBvZiB0aGUgZXJyb3IgbWVzc2FnZSB0aXRsZS5cblx0ICogQHBhcmFtIHMxOG5NZXNzYWdlIFRleHQgb2YgdGhlIGVycm9yIG1lc3NhZ2UgZGVzY3JpcHRpb24uXG5cdCAqIEBwYXJhbSBzSW5mb1BhdGggSW50ZXJuYWwgbW9kZWwgY29udGV4dCBwYXRoIHRvIHN0b3JlIGluZm8uXG5cdCAqIEBwYXJhbSBvVmlldyBJbnN0YW5jZSBvZiB0aGUgdmlldy5cblx0ICovXG5cdGFwcGx5RXJyb3JNZXNzYWdlQW5kVGl0bGU6IGZ1bmN0aW9uIChzMThuTWVzc2FnZVRpdGxlOiBzdHJpbmcsIHMxOG5NZXNzYWdlOiBzdHJpbmcsIHNJbmZvUGF0aDogc3RyaW5nLCBvVmlldzogVmlldykge1xuXHRcdGNvbnN0IG9JbnRlcm5hbE1vZGVsQ29udGV4dCA9IG9WaWV3LmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQ7XG5cdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KHNJbmZvUGF0aCwge30pO1xuXHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShzSW5mb1BhdGgsIHtcblx0XHRcdFwiZXJyb3JNZXNzYWdlVGl0bGVcIjogczE4bk1lc3NhZ2VUaXRsZSxcblx0XHRcdFwiZXJyb3JNZXNzYWdlXCI6IHMxOG5NZXNzYWdlLFxuXHRcdFx0XCJzaG93RXJyb3JcIjogdHJ1ZVxuXHRcdH0pO1xuXHR9LFxuXHQvKipcblx0ICogQ2hlY2tzIGlmIG11bHRpcGxlIHVuaXRzIGFyZSBwcmVzZW50LlxuXHQgKlxuXHQgKiBAcGFyYW0gb0NvbnRleHRzIENvbnRleHRzIG9mIHRoZSBWaXN1YWxGaWx0ZXJcblx0ICogQHBhcmFtIHNVbml0ZmllbGQgVGhlIHBhdGggb2YgdGhlIHVuaXQgZmllbGRcblx0ICogQHJldHVybnMgUmV0dXJucyBpZiBtdWx0aXBsZSB1bml0cyBhcmUgY29uZmlndXJlZCBvciBub3Rcblx0ICovXG5cdGNoZWNrTXVsaXRVbml0OiBmdW5jdGlvbiAob0NvbnRleHRzOiBDb250ZXh0W10sIHNVbml0ZmllbGQ6IHN0cmluZykge1xuXHRcdGNvbnN0IGFEYXRhID0gW107XG5cdFx0aWYgKG9Db250ZXh0cyAmJiBzVW5pdGZpZWxkKSB7XG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IG9Db250ZXh0cy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRjb25zdCBhQ29udGV4dERhdGEgPSBvQ29udGV4dHNbaV0gJiYgKG9Db250ZXh0c1tpXS5nZXRPYmplY3QoKSBhcyBhbnkpO1xuXHRcdFx0XHRhRGF0YS5wdXNoKGFDb250ZXh0RGF0YVtzVW5pdGZpZWxkXSk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiAhIWFEYXRhLnJlZHVjZShmdW5jdGlvbiAoZGF0YTogYW55LCBrZXk6IGFueSkge1xuXHRcdFx0cmV0dXJuIGRhdGEgPT09IGtleSA/IGRhdGEgOiBOYU47XG5cdFx0fSk7XG5cdH0sXG5cblx0LyoqXG5cdCAqIFNldHMgYW4gZXJyb3IgbWVzc2FnZSBpZiBtdWx0aXBsZSBVT00gYXJlIHByZXNlbnQuXG5cdCAqXG5cdCAqIEBwYXJhbSBvRGF0YSBEYXRhIG9mIHRoZSBWaXN1YWxGaWx0ZXIgY29udHJvbFxuXHQgKiBAcGFyYW0gb0ludGVyYWN0aXZlQ2hhcnQgSW50ZXJhY3RpdmVDaGFydCBpbiB0aGUgVmlzdWFsRmlsdGVyIGNvbnRyb2xcblx0ICogQHBhcmFtIHNJbmZvUGF0aCBJbnRlcm5hbCBtb2RlbCBjb250ZXh0IHBhdGggdG8gc3RvcmUgaW5mby5cblx0ICogQHBhcmFtIG9SZXNvdXJjZUJ1bmRsZSBUaGUgcmVzb3VyY2UgYnVuZGxlXG5cdCAqIEBwYXJhbSBvVmlldyBJbnN0YW5jZSBvZiB0aGUgdmlld1xuXHQgKi9cblx0c2V0TXVsdGlVT01NZXNzYWdlOiBmdW5jdGlvbiAoXG5cdFx0b0RhdGE6IENvbnRleHRbXSxcblx0XHRvSW50ZXJhY3RpdmVDaGFydDogYW55LFxuXHRcdHNJbmZvUGF0aDogc3RyaW5nLFxuXHRcdG9SZXNvdXJjZUJ1bmRsZTogUmVzb3VyY2VCdW5kbGUsXG5cdFx0b1ZpZXc6IFZpZXdcblx0KSB7XG5cdFx0Y29uc3QgdlVPTSA9IG9JbnRlcmFjdGl2ZUNoYXJ0LmRhdGEoXCJ1b21cIik7XG5cdFx0Y29uc3Qgc0lzQ3VycmVuY3kgPSB2VU9NICYmIHZVT01bXCJJU09DdXJyZW5jeVwiXSAmJiB2VU9NW1wiSVNPQ3VycmVuY3lcIl0uJFBhdGg7XG5cdFx0Y29uc3Qgc0lzVW5pdCA9IHZVT00gJiYgdlVPTVtcIlVuaXRcIl0gJiYgdlVPTVtcIlVuaXRcIl0uJFBhdGg7XG5cdFx0Y29uc3Qgc1VuaXRmaWVsZCA9IHNJc0N1cnJlbmN5IHx8IHNJc1VuaXQ7XG5cdFx0bGV0IHMxOG5NZXNzYWdlVGl0bGUsIHMxOG5NZXNzYWdlO1xuXHRcdGlmIChzVW5pdGZpZWxkKSB7XG5cdFx0XHRpZiAoIXRoaXMuY2hlY2tNdWxpdFVuaXQob0RhdGEsIHNVbml0ZmllbGQpKSB7XG5cdFx0XHRcdGlmIChzSXNDdXJyZW5jeSkge1xuXHRcdFx0XHRcdHMxOG5NZXNzYWdlVGl0bGUgPSBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fVklTVUFMX0ZJTFRFUlNfRVJST1JfTUVTU0FHRV9USVRMRVwiKTtcblx0XHRcdFx0XHRzMThuTWVzc2FnZSA9IG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9WSVNVQUxfRklMVEVSU19NVUxUSVBMRV9DVVJSRU5DWVwiLCBzVW5pdGZpZWxkKTtcblx0XHRcdFx0XHR0aGlzLmFwcGx5RXJyb3JNZXNzYWdlQW5kVGl0bGUoczE4bk1lc3NhZ2VUaXRsZSwgczE4bk1lc3NhZ2UsIHNJbmZvUGF0aCwgb1ZpZXcpO1xuXHRcdFx0XHRcdExvZy53YXJuaW5nKGBGaWx0ZXIgaXMgc2V0IGZvciBtdWx0aXBsZSBDdXJyZW5jeSBmb3Ike3NVbml0ZmllbGR9YCk7XG5cdFx0XHRcdH0gZWxzZSBpZiAoc0lzVW5pdCkge1xuXHRcdFx0XHRcdHMxOG5NZXNzYWdlVGl0bGUgPSBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fVklTVUFMX0ZJTFRFUlNfRVJST1JfTUVTU0FHRV9USVRMRVwiKTtcblx0XHRcdFx0XHRzMThuTWVzc2FnZSA9IG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9WSVNVQUxfRklMVEVSU19NVUxUSVBMRV9VTklUXCIsIHNVbml0ZmllbGQpO1xuXHRcdFx0XHRcdHRoaXMuYXBwbHlFcnJvck1lc3NhZ2VBbmRUaXRsZShzMThuTWVzc2FnZVRpdGxlLCBzMThuTWVzc2FnZSwgc0luZm9QYXRoLCBvVmlldyk7XG5cdFx0XHRcdFx0TG9nLndhcm5pbmcoYEZpbHRlciBpcyBzZXQgZm9yIG11bHRpcGxlIFVPTXMgZm9yJHtzVW5pdGZpZWxkfWApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXG5cdC8qKlxuXHQgKiBTZXRzIGFuIGVycm9yIG1lc3NhZ2UgaWYgcmVzcG9uc2UgZGF0YSBpcyBlbXB0eS5cblx0ICpcblx0ICogQHBhcmFtIHNJbmZvUGF0aCBJbnRlcm5hbCBtb2RlbCBjb250ZXh0IHBhdGggdG8gc3RvcmUgaW5mby5cblx0ICogQHBhcmFtIG9SZXNvdXJjZUJ1bmRsZSBUaGUgcmVzb3VyY2UgYnVuZGxlXG5cdCAqIEBwYXJhbSBvVmlldyBJbnN0YW5jZSBvZiB0aGUgdmlld1xuXHQgKi9cblx0c2V0Tm9EYXRhTWVzc2FnZTogZnVuY3Rpb24gKHNJbmZvUGF0aDogc3RyaW5nLCBvUmVzb3VyY2VCdW5kbGU6IFJlc291cmNlQnVuZGxlLCBvVmlldzogVmlldykge1xuXHRcdGNvbnN0IHMxOG5NZXNzYWdlVGl0bGUgPSBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fVklTVUFMX0ZJTFRFUlNfRVJST1JfTUVTU0FHRV9USVRMRVwiKTtcblx0XHRjb25zdCBzMThuTWVzc2FnZSA9IG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9WSVNVQUxfRklMVEVSX05PX0RBVEFfVEVYVFwiKTtcblx0XHR0aGlzLmFwcGx5RXJyb3JNZXNzYWdlQW5kVGl0bGUoczE4bk1lc3NhZ2VUaXRsZSwgczE4bk1lc3NhZ2UsIHNJbmZvUGF0aCwgb1ZpZXcpO1xuXHR9LFxuXHRjb252ZXJ0RmlsdGVyQ29uZGlvbnM6IGZ1bmN0aW9uIChvRmlsdGVyQ29uZGl0aW9uczogYW55KSB7XG5cdFx0Y29uc3Qgb0NvbnZlcnRlZENvbmRpdGlvbnM6IGFueSA9IHt9O1xuXHRcdE9iamVjdC5rZXlzKG9GaWx0ZXJDb25kaXRpb25zKS5mb3JFYWNoKGZ1bmN0aW9uIChzS2V5OiBzdHJpbmcpIHtcblx0XHRcdGNvbnN0IGFDb252ZXJ0ZWRDb25kaXRpb25zID0gW107XG5cdFx0XHRjb25zdCBhQ29uZGl0aW9ucyA9IG9GaWx0ZXJDb25kaXRpb25zW3NLZXldO1xuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhQ29uZGl0aW9ucy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRjb25zdCB2YWx1ZXMgPSBhQ29uZGl0aW9uc1tpXS52YWx1ZTIgPyBbYUNvbmRpdGlvbnNbaV0udmFsdWUxLCBhQ29uZGl0aW9uc1tpXS52YWx1ZTJdIDogW2FDb25kaXRpb25zW2ldLnZhbHVlMV07XG5cdFx0XHRcdGFDb252ZXJ0ZWRDb25kaXRpb25zLnB1c2goXG5cdFx0XHRcdFx0Q29uZGl0aW9uLmNyZWF0ZUNvbmRpdGlvbihhQ29uZGl0aW9uc1tpXS5vcGVyYXRvciwgdmFsdWVzLCBudWxsLCBudWxsLCBcIlZhbGlkYXRlZFwiIGFzIENvbmRpdGlvblZhbGlkYXRlZClcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHRcdGlmIChhQ29udmVydGVkQ29uZGl0aW9ucy5sZW5ndGgpIHtcblx0XHRcdFx0b0NvbnZlcnRlZENvbmRpdGlvbnNbc0tleV0gPSBhQ29udmVydGVkQ29uZGl0aW9ucztcblx0XHRcdH1cblx0XHR9KTtcblx0XHRyZXR1cm4gb0NvbnZlcnRlZENvbmRpdGlvbnM7XG5cdH0sXG5cdGdldEN1c3RvbUNvbmRpdGlvbnM6IGZ1bmN0aW9uIChSYW5nZTogYW55LCBvVmFsaWRQcm9wZXJ0eTogYW55LCBzUHJvcGVydHlOYW1lOiBhbnkpIHtcblx0XHRsZXQgdmFsdWUxLCB2YWx1ZTI7XG5cdFx0aWYgKG9WYWxpZFByb3BlcnR5LiRUeXBlID09PSBcIkVkbS5EYXRlVGltZU9mZnNldFwiKSB7XG5cdFx0XHR2YWx1ZTEgPSB0aGlzLl9wYXJzZURhdGVUaW1lKGdldFR5cGVDb21wbGlhbnRWYWx1ZSh0aGlzLl9mb3JtYXREYXRlVGltZShSYW5nZS5Mb3cpLCBvVmFsaWRQcm9wZXJ0eS4kVHlwZSkpO1xuXHRcdFx0dmFsdWUyID0gUmFuZ2UuSGlnaCA/IHRoaXMuX3BhcnNlRGF0ZVRpbWUoZ2V0VHlwZUNvbXBsaWFudFZhbHVlKHRoaXMuX2Zvcm1hdERhdGVUaW1lKFJhbmdlLkhpZ2gpLCBvVmFsaWRQcm9wZXJ0eS4kVHlwZSkpIDogbnVsbDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dmFsdWUxID0gUmFuZ2UuTG93O1xuXHRcdFx0dmFsdWUyID0gUmFuZ2UuSGlnaCA/IFJhbmdlLkhpZ2ggOiBudWxsO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0b3BlcmF0b3I6IFJhbmdlLk9wdGlvbiA/IGdldFJhbmdlUHJvcGVydHkoUmFuZ2UuT3B0aW9uLiRFbnVtTWVtYmVyIHx8IFJhbmdlLk9wdGlvbikgOiBudWxsLFxuXHRcdFx0dmFsdWUxOiB2YWx1ZTEsXG5cdFx0XHR2YWx1ZTI6IHZhbHVlMixcblx0XHRcdHBhdGg6IHNQcm9wZXJ0eU5hbWVcblx0XHR9O1xuXHR9LFxuXHRfcGFyc2VEYXRlVGltZTogZnVuY3Rpb24gKHNWYWx1ZTogYW55KSB7XG5cdFx0cmV0dXJuIHRoaXMuX2dldERhdGVUaW1lVHlwZUluc3RhbmNlKCkucGFyc2VWYWx1ZShzVmFsdWUsIFwic3RyaW5nXCIpO1xuXHR9LFxuXHRfZm9ybWF0RGF0ZVRpbWU6IGZ1bmN0aW9uIChzVmFsdWU6IGFueSkge1xuXHRcdHJldHVybiB0aGlzLl9nZXREYXRlVGltZVR5cGVJbnN0YW5jZSgpLmZvcm1hdFZhbHVlKHNWYWx1ZSwgXCJzdHJpbmdcIik7XG5cdH0sXG5cdF9nZXREYXRlVGltZVR5cGVJbnN0YW5jZTogZnVuY3Rpb24gKCkge1xuXHRcdHJldHVybiBuZXcgRGF0ZVRpbWVPZmZzZXQoeyBwYXR0ZXJuOiBcInl5eXktTU0tZGRUSEg6bW06c3NaXCIsIGNhbGVuZGFyVHlwZTogXCJHcmVnb3JpYW5cIiB9LCB7IFY0OiB0cnVlIH0pO1xuXHR9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBWaXN1YWxGaWx0ZXJVdGlscztcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7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
@@ -1,7 +1,7 @@
1
1
  import type ResourceBundle from "sap/base/i18n/ResourceBundle";
2
2
  import Log from "sap/base/Log";
3
3
  import type { InternalModelContext } from "sap/fe/core/helpers/ModelHelper";
4
- import { getOperator, getTypeCompliantValue } from "sap/fe/core/templating/FilterHelper";
4
+ import { getRangeProperty, getTypeCompliantValue } from "sap/fe/core/templating/FilterHelper";
5
5
  import type Title from "sap/m/Title";
6
6
  import NumberFormat from "sap/ui/core/format/NumberFormat";
7
7
  import type View from "sap/ui/core/mvc/View";
@@ -312,7 +312,7 @@ const VisualFilterUtils = {
312
312
  value2 = Range.High ? Range.High : null;
313
313
  }
314
314
  return {
315
- operator: Range.Option ? getOperator(Range.Option.$EnumMember || Range.Option) : null,
315
+ operator: Range.Option ? getRangeProperty(Range.Option.$EnumMember || Range.Option) : null,
316
316
  value1: value1,
317
317
  value2: value2,
318
318
  path: sPropertyName
@@ -7,6 +7,7 @@
7
7
  xmlns:control="sap.fe.core.controls"
8
8
  xmlns:f="sap.ui.layout.form"
9
9
  xmlns:l="sap.ui.layout"
10
+ xmlns:customData="http://schemas.sap.com/sapui5/extension/sap.ui.core.CustomData/1"
10
11
  template:require="{
11
12
  ID: 'sap/fe/core/helpers/StableIdHelper',
12
13
  ValueHelpTemplating: 'sap/fe/macros/internal/valuehelp/ValueHelpTemplating'
@@ -38,8 +39,9 @@
38
39
  items="{= '{path : \'' + ${runtimePath>} + ${property>} + '\'}' }"
39
40
  change="MassEditHandlers.handleSelectionChange($event)"
40
41
  selectedKey="{= '{' + ${runtimePath>} + ${property>} + '/selectedKey}' }"
41
- selectValue="{= '{ parts : [{ path:\'' + ${property>} + '\'}, {value: \'' + ${property>} + '\' }, {value: \'' + ID.generate(['MED_', ${dataField>entitySet}, ${property>}, '_MDCField']) + '\' }], formatter: \'MassEditHandlers.contextPropertyChange\' }' }"
42
+ selectValue="{= (${dataField>inputType} !== 'CheckBox') && ('{ parts : [{ path:\'' + ${property>} + '\'}, {value: \'' + ${property>} + '\' }, {value: \'' + ID.generate(['MED_', ${dataField>entitySet}, ${property>}, '_MDCField']) + '\' }], formatter: \'MassEditHandlers.contextPropertyChange\' }') }"
42
43
  width="100%"
44
+ customData:fieldPath="{property>}"
43
45
  >
44
46
  <control:items>
45
47
  <core:Item key="{fieldsInfo>key}" text="{fieldsInfo>text}" />
@@ -48,42 +50,26 @@
48
50
  <l:GridData span="XL12 L12 M12 S12" />
49
51
  </control:layoutData>
50
52
  </control:MassEditSelect>
51
- <mdc:dependents>
52
- <mdcField:FieldValueHelp
53
- core:require="{MassEditHandlers: 'sap/fe/core/controls/massEdit/MassEditHandlers', ValueListHelper: 'sap/fe/macros/internal/valuehelp/ValueListHelper'}"
54
- delegate="{= ValueHelpTemplating.getDelegateConfiguration(${property>} === ${dataField>dataProperty} ? ${dataField>propertyPathForValueHelp} : ${dataField>propertyPathForValueHelpUnit})}"
55
- validateInput="false"
56
- afterClose="MassEditHandlers.afterVHDClose($event)"
57
- id="{= ID.generate(['MED_', ${dataField>entitySet}, ${property>}, 'VHD']) }"
58
- >
59
- <mdcField:dialogContent>
60
- <mdcField:FieldValueHelpMdcTableWrapper />
61
- </mdcField:dialogContent>
62
- <mdcField:suggestContent>
63
- <mdcField:FieldValueHelpMTableWrapper />
64
- </mdcField:suggestContent>
65
- </mdcField:FieldValueHelp>
66
- </mdc:dependents>
53
+ <template:if test="{= ${dataField>inputType} !== 'CheckBox' }">
54
+ <mdc:dependents>
55
+ <mdcField:FieldValueHelp
56
+ core:require="{MassEditHandlers: 'sap/fe/core/controls/massEdit/MassEditHandlers', ValueListHelper: 'sap/fe/macros/internal/valuehelp/ValueListHelper'}"
57
+ delegate="{= ValueHelpTemplating.getDelegateConfiguration(${property>} === ${dataField>dataProperty} ? ${dataField>propertyPathForValueHelp} : ${dataField>propertyPathForValueHelpUnit})}"
58
+ validateInput="false"
59
+ afterClose="MassEditHandlers.afterVHDClose($event)"
60
+ id="{= ID.generate(['MED_', ${dataField>entitySet}, ${property>}, 'VHD']) }"
61
+ >
62
+ <mdcField:dialogContent>
63
+ <mdcField:FieldValueHelpMdcTableWrapper />
64
+ </mdcField:dialogContent>
65
+ <mdcField:suggestContent>
66
+ <mdcField:FieldValueHelpMTableWrapper />
67
+ </mdcField:suggestContent>
68
+ </mdcField:FieldValueHelp>
69
+ </mdc:dependents>
70
+ </template:if>
67
71
  </mdc:Field>
68
72
  </template:then>
69
- <template:elseif test="{= ${dataField>inputType} === 'CheckBox' }">
70
- <control:MassEditSelect
71
- core:require="{MassEditHandlers: 'sap/fe/core/controls/massEdit/MassEditHandlers'}"
72
- id="{= ID.generate(['MED_', ${dataField>entitySet}, ${property>}]) }"
73
- items="{= '{path : \'' + ${runtimePath>} + ${property>} + '\'}' }"
74
- change="MassEditHandlers.handleSelectionChange($event)"
75
- selectedKey="{= '{' + ${runtimePath>} + ${property>} + '/selectedKey}' }"
76
- width="100%"
77
- >
78
- <control:items>
79
- <core:Item key="{fieldsInfo>key}" text="{fieldsInfo>text}" />
80
- </control:items>
81
- <control:layoutData>
82
- <l:GridData span="XL12 L12 M12 S12" />
83
- </control:layoutData>
84
- </control:MassEditSelect>
85
- </template:elseif>
86
-
87
73
  <template:else>
88
74
  <ComboBox
89
75
  id="{= ID.generate(['MED_', ${dataField>entitySet}, ${property>}]) }"
@@ -92,6 +78,7 @@
92
78
  change="MassEditHandlers.handleSelectionChange($event)"
93
79
  selectedKey="{= '{' + ${runtimePath>} + ${property>} + '/selectedKey}' }"
94
80
  visible="{= '{' + ${runtimePath>} + ${property>} + '/visible}' }"
81
+ customData:fieldPath="{property>}"
95
82
  >
96
83
  <items>
97
84
  <core:Item key="{fieldsInfo>key}" text="{fieldsInfo>text}" />