@sap/open.fe 1.98.0 → 1.99.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 (916) hide show
  1. package/package.json +1 -1
  2. package/packages/sap.fe.common/src/sap/fe/common/.library +1 -1
  3. package/packages/sap.fe.common/src/sap/fe/common/.theming +1 -1
  4. package/packages/sap.fe.common/src/sap/fe/common/MessageButton-dbg.js +10 -8
  5. package/packages/sap.fe.common/src/sap/fe/common/MessageButton.js +1 -1
  6. package/packages/sap.fe.common/src/sap/fe/common/library-dbg.js +1 -1
  7. package/packages/sap.fe.common/src/sap/fe/common/library-h2-preload.js +2 -2
  8. package/packages/sap.fe.common/src/sap/fe/common/library-preload.js +3 -3
  9. package/packages/sap.fe.common/src/sap/fe/common/library-preload.js.map +3 -3
  10. package/packages/sap.fe.common/src/sap/fe/common/library.js +1 -1
  11. package/packages/sap.fe.common/src/sap/fe/common/manifest.json +3 -3
  12. package/packages/sap.fe.common/src/sap/fe/common/resources.json +4 -4
  13. package/packages/sap.fe.common/test/sap/fe/common/designtime/api.json +1 -1
  14. package/packages/sap.fe.common/test/sap/fe/common/designtime/apiref/api.json +1 -1
  15. package/packages/sap.fe.common/test/sap/fe/common/designtime/codeassistance/Library.xmlmeta.json +1 -1
  16. package/packages/sap.fe.common/test/sap/fe/common/relnotes/changes-1.99.json +18 -0
  17. package/packages/sap.fe.core/src/sap/fe/core/.library +1 -1
  18. package/packages/sap.fe.core/src/sap/fe/core/.theming +1 -1
  19. package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper-dbg.js +376 -405
  20. package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper.js +2 -3
  21. package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper.ts +385 -0
  22. package/packages/sap.fe.core/src/sap/fe/core/AppStateHandler-dbg.js +228 -181
  23. package/packages/sap.fe.core/src/sap/fe/core/AppStateHandler.js +2 -3
  24. package/packages/sap.fe.core/src/sap/fe/core/AppStateHandler.ts +171 -0
  25. package/packages/sap.fe.core/src/sap/fe/core/BusyLocker-dbg.js +104 -121
  26. package/packages/sap.fe.core/src/sap/fe/core/BusyLocker.js +2 -3
  27. package/packages/sap.fe.core/src/sap/fe/core/BusyLocker.ts +98 -0
  28. package/packages/sap.fe.core/src/sap/fe/core/CommonUtils-dbg.js +2072 -2399
  29. package/packages/sap.fe.core/src/sap/fe/core/CommonUtils.js +2 -3
  30. package/packages/sap.fe.core/src/sap/fe/core/CommonUtils.ts +2078 -0
  31. package/packages/sap.fe.core/src/sap/fe/core/PageController-dbg.js +83 -125
  32. package/packages/sap.fe.core/src/sap/fe/core/PageController.js +2 -3
  33. package/packages/sap.fe.core/src/sap/fe/core/PageController.ts +101 -0
  34. package/packages/sap.fe.core/src/sap/fe/core/RouterProxy-dbg.js +985 -823
  35. package/packages/sap.fe.core/src/sap/fe/core/RouterProxy.js +2 -3
  36. package/packages/sap.fe.core/src/sap/fe/core/RouterProxy.ts +838 -0
  37. package/packages/sap.fe.core/src/sap/fe/core/Synchronization-dbg.js +50 -35
  38. package/packages/sap.fe.core/src/sap/fe/core/Synchronization.js +2 -3
  39. package/packages/sap.fe.core/src/sap/fe/core/Synchronization.ts +29 -0
  40. package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent-dbg.js +172 -164
  41. package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent.js +2 -3
  42. package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent.ts +166 -0
  43. package/packages/sap.fe.core/src/sap/fe/core/TemplateModel-dbg.js +96 -54
  44. package/packages/sap.fe.core/src/sap/fe/core/TemplateModel.js +2 -3
  45. package/packages/sap.fe.core/src/sap/fe/core/TemplateModel.ts +63 -0
  46. package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper-dbg.js +1575 -1664
  47. package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper.js +2 -3
  48. package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper.ts +1706 -0
  49. package/packages/sap.fe.core/src/sap/fe/core/actions/draft-dbg.js +558 -608
  50. package/packages/sap.fe.core/src/sap/fe/core/actions/draft.js +2 -3
  51. package/packages/sap.fe.core/src/sap/fe/core/actions/draft.ts +593 -0
  52. package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling-dbg.js +544 -514
  53. package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling.js +2 -3
  54. package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling.ts +532 -0
  55. package/packages/sap.fe.core/src/sap/fe/core/actions/nonDraft-dbg.js +16 -19
  56. package/packages/sap.fe.core/src/sap/fe/core/actions/nonDraft.js +2 -3
  57. package/packages/sap.fe.core/src/sap/fe/core/actions/nonDraft.ts +12 -0
  58. package/packages/sap.fe.core/src/sap/fe/core/actions/operations-dbg.js +1073 -1215
  59. package/packages/sap.fe.core/src/sap/fe/core/actions/operations.js +2 -3
  60. package/packages/sap.fe.core/src/sap/fe/core/actions/operations.ts +1162 -0
  61. package/packages/sap.fe.core/src/sap/fe/core/actions/sticky-dbg.js +101 -105
  62. package/packages/sap.fe.core/src/sap/fe/core/actions/sticky.js +2 -3
  63. package/packages/sap.fe.core/src/sap/fe/core/actions/sticky.ts +102 -0
  64. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +51 -209
  65. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow.js +1 -1
  66. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalEditFlow-dbg.js +276 -9
  67. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalEditFlow.js +1 -1
  68. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +5 -4
  69. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +1 -1
  70. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +44 -43
  71. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting.js +1 -1
  72. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement-dbg.js +2 -3
  73. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement.js +1 -1
  74. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement.ts +29 -26
  75. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MassEdit-dbg.js +98 -6
  76. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MassEdit.js +1 -1
  77. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler-dbg.js +14 -6
  78. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler.js +1 -1
  79. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady-dbg.js +2 -2
  80. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady.js +1 -1
  81. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady.ts +12 -8
  82. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Routing-dbg.js +6 -2
  83. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Routing.js +1 -1
  84. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +3 -3
  85. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects.js +1 -1
  86. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects.ts +18 -18
  87. package/packages/sap.fe.core/src/sap/fe/core/controls/FieldWrapper-dbg.js +8 -20
  88. package/packages/sap.fe.core/src/sap/fe/core/controls/FieldWrapper.js +1 -1
  89. package/packages/sap.fe.core/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +1 -0
  90. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilter-dbg.js +2 -2
  91. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilter.js +1 -1
  92. package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext-dbg.js +2 -2
  93. package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext.js +1 -1
  94. package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext.ts +4 -3
  95. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings-dbg.js +1 -1
  96. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings.ts +1 -0
  97. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper-dbg.js +39 -26
  98. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper.js +1 -1
  99. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper.ts +9 -0
  100. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter-dbg.js +11 -8
  101. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
  102. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.ts +16 -16
  103. package/packages/sap.fe.core/src/sap/fe/core/converters/TemplateConverter-dbg.js +1 -1
  104. package/packages/sap.fe.core/src/sap/fe/core/converters/TemplateConverter.ts +2 -2
  105. package/packages/sap.fe.core/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +17 -13
  106. package/packages/sap.fe.core/src/sap/fe/core/converters/common/AnnotationConverter.js +1 -1
  107. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action-dbg.js +2 -2
  108. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action.js +1 -1
  109. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action.ts +2 -2
  110. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Chart-dbg.js +5 -3
  111. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Chart.js +1 -1
  112. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Chart.ts +11 -3
  113. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/DataVisualization-dbg.js +3 -3
  114. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/DataVisualization.js +1 -1
  115. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +2 -2
  116. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form-dbg.js +4 -2
  117. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.js +1 -1
  118. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.ts +16 -2
  119. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table-dbg.js +250 -146
  120. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
  121. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.ts +300 -167
  122. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +115 -56
  123. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +1 -1
  124. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +120 -74
  125. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +467 -32
  126. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +1 -1
  127. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +483 -54
  128. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/SubSection-dbg.js +6 -6
  129. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +1 -1
  130. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +9 -15
  131. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +13 -5
  132. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation.js +1 -1
  133. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation.ts +20 -5
  134. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/IssueManager-dbg.js +4 -1
  135. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
  136. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/IssueManager.ts +3 -0
  137. package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction-dbg.js +4 -4
  138. package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +1 -1
  139. package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +3 -3
  140. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +13 -6
  141. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter.js +1 -1
  142. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter.ts +26 -15
  143. package/packages/sap.fe.core/src/sap/fe/core/formatters/CriticalityFormatter-dbg.js +1 -1
  144. package/packages/sap.fe.core/src/sap/fe/core/formatters/CriticalityFormatter.ts +1 -1
  145. package/packages/sap.fe.core/src/sap/fe/core/formatters/FPMFormatter-dbg.js +1 -1
  146. package/packages/sap.fe.core/src/sap/fe/core/formatters/FPMFormatter.ts +4 -10
  147. package/packages/sap.fe.core/src/sap/fe/core/formatters/KPIFormatter-dbg.js +1 -1
  148. package/packages/sap.fe.core/src/sap/fe/core/formatters/KPIFormatter.ts +3 -1
  149. package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter-dbg.js +39 -28
  150. package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter.js +1 -1
  151. package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter.ts +43 -28
  152. package/packages/sap.fe.core/src/sap/fe/core/formatters/ValueFormatter-dbg.js +1 -1
  153. package/packages/sap.fe.core/src/sap/fe/core/formatters/ValueFormatter.ts +7 -6
  154. package/packages/sap.fe.core/src/sap/fe/core/fpm/manifest.json +2 -2
  155. package/packages/sap.fe.core/src/sap/fe/core/helpers/AppStartupHelper-dbg.js +2 -2
  156. package/packages/sap.fe.core/src/sap/fe/core/helpers/AppStartupHelper.js +1 -1
  157. package/packages/sap.fe.core/src/sap/fe/core/helpers/AppStartupHelper.ts +7 -4
  158. package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression-dbg.js +314 -355
  159. package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression.js +1 -1
  160. package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression.ts +317 -391
  161. package/packages/sap.fe.core/src/sap/fe/core/helpers/ClassSupport-dbg.js +27 -15
  162. package/packages/sap.fe.core/src/sap/fe/core/helpers/ClassSupport.js +1 -1
  163. package/packages/sap.fe.core/src/sap/fe/core/helpers/ClassSupport.ts +31 -20
  164. package/packages/sap.fe.core/src/sap/fe/core/helpers/DynamicAnnotationPathHelper-dbg.js +62 -59
  165. package/packages/sap.fe.core/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +2 -3
  166. package/packages/sap.fe.core/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +56 -0
  167. package/packages/sap.fe.core/src/sap/fe/core/helpers/EditState-dbg.js +80 -84
  168. package/packages/sap.fe.core/src/sap/fe/core/helpers/EditState.js +2 -3
  169. package/packages/sap.fe.core/src/sap/fe/core/helpers/EditState.ts +81 -0
  170. package/packages/sap.fe.core/src/sap/fe/core/helpers/ExcelFormatHelper-dbg.js +61 -48
  171. package/packages/sap.fe.core/src/sap/fe/core/helpers/ExcelFormatHelper.js +2 -3
  172. package/packages/sap.fe.core/src/sap/fe/core/helpers/ExcelFormatHelper.ts +49 -0
  173. package/packages/sap.fe.core/src/sap/fe/core/helpers/FPMHelper-dbg.js +51 -56
  174. package/packages/sap.fe.core/src/sap/fe/core/helpers/FPMHelper.js +2 -3
  175. package/packages/sap.fe.core/src/sap/fe/core/helpers/FPMHelper.ts +62 -0
  176. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper-dbg.js +3 -4
  177. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper.js +1 -1
  178. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper.ts +9 -9
  179. package/packages/sap.fe.core/src/sap/fe/core/helpers/MassEditHelper-dbg.js +24 -16
  180. package/packages/sap.fe.core/src/sap/fe/core/helpers/MassEditHelper.js +1 -1
  181. package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper-dbg.js +228 -225
  182. package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper.js +2 -3
  183. package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper.ts +227 -0
  184. package/packages/sap.fe.core/src/sap/fe/core/helpers/PasteHelper-dbg.js +209 -132
  185. package/packages/sap.fe.core/src/sap/fe/core/helpers/PasteHelper.js +2 -3
  186. package/packages/sap.fe.core/src/sap/fe/core/helpers/PasteHelper.ts +196 -0
  187. package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticDateOperators-dbg.js +331 -313
  188. package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticDateOperators.js +2 -3
  189. package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticDateOperators.ts +330 -0
  190. package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticKeyHelper-dbg.js +65 -67
  191. package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticKeyHelper.js +2 -3
  192. package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticKeyHelper.ts +73 -0
  193. package/packages/sap.fe.core/src/sap/fe/core/helpers/StableIdHelper-dbg.js +1 -5
  194. package/packages/sap.fe.core/src/sap/fe/core/helpers/StableIdHelper.js +1 -1
  195. package/packages/sap.fe.core/src/sap/fe/core/helpers/StableIdHelper.ts +2 -6
  196. package/packages/sap.fe.core/src/sap/fe/core/jsx-runtime/jsx-dbg.js +1 -1
  197. package/packages/sap.fe.core/src/sap/fe/core/jsx-runtime/jsx.ts +1 -1
  198. package/packages/sap.fe.core/src/sap/fe/core/library-dbg.js +1 -1
  199. package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js +23 -26
  200. package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js.map +1 -1
  201. package/packages/sap.fe.core/src/sap/fe/core/library-preload.js +630 -649
  202. package/packages/sap.fe.core/src/sap/fe/core/library-preload.js.map +3 -3
  203. package/packages/sap.fe.core/src/sap/fe/core/library-preload.support.js +17 -5
  204. package/packages/sap.fe.core/src/sap/fe/core/library-preload.support.js.map +2 -2
  205. package/packages/sap.fe.core/src/sap/fe/core/library.js +1 -1
  206. package/packages/sap.fe.core/src/sap/fe/core/manifest.json +10 -10
  207. package/packages/sap.fe.core/src/sap/fe/core/manifestMerger/ChangePageConfiguration-dbg.js +1 -1
  208. package/packages/sap.fe.core/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +1 -1
  209. package/packages/sap.fe.core/src/sap/fe/core/messagebundle.properties +23 -10
  210. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ar.properties +9 -0
  211. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_bg.properties +9 -0
  212. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ca.properties +9 -0
  213. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cs.properties +10 -1
  214. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cy.properties +9 -0
  215. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_da.properties +9 -0
  216. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_de.properties +9 -0
  217. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_el.properties +9 -0
  218. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en.properties +9 -0
  219. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_GB.properties +9 -0
  220. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_sappsd.properties +9 -0
  221. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saprigi.properties +9 -0
  222. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saptrc.properties +9 -0
  223. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es.properties +9 -0
  224. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es_MX.properties +9 -0
  225. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_et.properties +9 -0
  226. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fi.properties +9 -0
  227. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr.properties +13 -4
  228. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr_CA.properties +15 -6
  229. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hi.properties +15 -6
  230. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hr.properties +15 -6
  231. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hu.properties +9 -0
  232. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_id.properties +10 -1
  233. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_it.properties +9 -0
  234. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_iw.properties +9 -0
  235. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ja.properties +9 -0
  236. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_kk.properties +15 -6
  237. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ko.properties +9 -0
  238. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lt.properties +9 -0
  239. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lv.properties +15 -6
  240. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ms.properties +14 -5
  241. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_nl.properties +9 -0
  242. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_no.properties +9 -0
  243. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pl.properties +9 -0
  244. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt.properties +9 -0
  245. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt_PT.properties +9 -0
  246. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ro.properties +9 -0
  247. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ru.properties +9 -0
  248. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sh.properties +11 -2
  249. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sk.properties +9 -0
  250. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sl.properties +15 -6
  251. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sv.properties +9 -0
  252. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_th.properties +9 -0
  253. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_tr.properties +9 -0
  254. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_uk.properties +9 -0
  255. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_vi.properties +9 -0
  256. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_CN.properties +9 -0
  257. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_TW.properties +15 -6
  258. package/packages/sap.fe.core/src/sap/fe/core/resources.json +427 -341
  259. package/packages/sap.fe.core/src/sap/fe/core/services/AsyncComponentServiceFactory-dbg.js +1 -1
  260. package/packages/sap.fe.core/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +3 -1
  261. package/packages/sap.fe.core/src/sap/fe/core/services/CacheHandlerServiceFactory-dbg.js +268 -202
  262. package/packages/sap.fe.core/src/sap/fe/core/services/CacheHandlerServiceFactory.js +2 -3
  263. package/packages/sap.fe.core/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +212 -0
  264. package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +1 -1
  265. package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory.ts +7 -6
  266. package/packages/sap.fe.core/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +405 -300
  267. package/packages/sap.fe.core/src/sap/fe/core/services/NavigationServiceFactory.js +2 -3
  268. package/packages/sap.fe.core/src/sap/fe/core/services/NavigationServiceFactory.ts +316 -0
  269. package/packages/sap.fe.core/src/sap/fe/core/services/ResourceModelServiceFactory-dbg.js +148 -81
  270. package/packages/sap.fe.core/src/sap/fe/core/services/ResourceModelServiceFactory.js +2 -3
  271. package/packages/sap.fe.core/src/sap/fe/core/services/ResourceModelServiceFactory.ts +80 -0
  272. package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +986 -899
  273. package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory.js +2 -3
  274. package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory.ts +898 -0
  275. package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory-dbg.js +1 -1
  276. package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory.ts +15 -10
  277. package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +35 -81
  278. package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory.js +1 -1
  279. package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory.ts +46 -94
  280. package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +460 -487
  281. package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory.js +2 -3
  282. package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +453 -0
  283. package/packages/sap.fe.core/src/sap/fe/core/services/view/TemplatingErrorPage-dbg.controller.js +9 -8
  284. package/packages/sap.fe.core/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +2 -3
  285. package/packages/sap.fe.core/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +8 -0
  286. package/packages/sap.fe.core/src/sap/fe/core/support/AnnotationIssue.support.js +15 -3
  287. package/packages/sap.fe.core/src/sap/fe/core/support/AnnotationIssue.support.ts +16 -2
  288. package/packages/sap.fe.core/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +2 -2
  289. package/packages/sap.fe.core/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.ts +1 -1
  290. package/packages/sap.fe.core/src/sap/fe/core/templating/FieldControlHelper-dbg.js +8 -8
  291. package/packages/sap.fe.core/src/sap/fe/core/templating/FieldControlHelper.js +1 -1
  292. package/packages/sap.fe.core/src/sap/fe/core/templating/FieldControlHelper.ts +25 -7
  293. package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper-dbg.js +138 -72
  294. package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper.js +1 -1
  295. package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper.ts +139 -71
  296. package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters-dbg.js +31 -1
  297. package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters.js +1 -1
  298. package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters.ts +33 -2
  299. package/packages/sap.fe.core/src/sap/fe/core/type/Email-dbg.js +1 -1
  300. package/packages/sap.fe.core/src/sap/fe/core/type/Email.ts +4 -6
  301. package/packages/sap.fe.core/test/sap/fe/core/designtime/api.json +1 -1
  302. package/packages/sap.fe.core/test/sap/fe/core/designtime/apiref/api.json +1 -1
  303. package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.jsmeta.json +1 -1
  304. package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.jstemplates.json +1 -1
  305. package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.xmlmeta.json +1 -1
  306. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/controls/FileEditor.js +15 -1
  307. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/model/MacroNavigationModel.js +90 -0
  308. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/buildingBlockOverview.md +2 -0
  309. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartFilterBar/Component.js +36 -0
  310. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartFilterBar/chartFilterBar.controller.js +5 -0
  311. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartFilterBar/chartFilterBar.view.xml +22 -0
  312. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartFilterBar/localService/ChildEntity.json +686 -0
  313. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartFilterBar/localService/CreditLimitDetails.json +154 -0
  314. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartFilterBar/localService/RootEntity.json +252 -0
  315. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartFilterBar/localService/service.cds +141 -0
  316. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartFilterBar/localService/status.json +11 -0
  317. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartFilterBar/manifest.json +69 -0
  318. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chartFilterBar.html +37 -0
  319. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/FieldFormatOptions.view.xml +186 -122
  320. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/localService/FieldFormatOptions.cds +5 -0
  321. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/localService/RootEntity.json +2 -1
  322. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/localService/service.cds +15 -1
  323. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarSVandAnnotationDefaults/localService/service.cds +36 -5
  324. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/form/formSample/Component.js +33 -0
  325. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/form/formSample/FormSample.view.xml +10 -0
  326. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/form/formSample/localService/FormSample.cds +72 -0
  327. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/form/formSample/localService/RootEntity.json +13 -0
  328. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/form/formSample/manifest.json +68 -0
  329. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formSample.html +37 -0
  330. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/EntryPage.controller.js +72 -43
  331. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/EntryPage.controller.ts +90 -0
  332. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/EntryPage.view.xml +12 -3
  333. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/Page.controller.js +4 -0
  334. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/Page.view.xml +9 -3
  335. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableFilterBar/Component.js +36 -0
  336. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableFilterBar/TableFilterBar.controller.js +5 -0
  337. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableFilterBar/TableFilterBar.view.xml +11 -0
  338. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableFilterBar/localService/RootEntity.json +102 -0
  339. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableFilterBar/localService/ValueHelpEntity.js +11 -0
  340. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableFilterBar/localService/service.cds +94 -0
  341. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableFilterBar/manifest.json +79 -0
  342. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/tableFilterBar.html +37 -0
  343. package/packages/sap.fe.core/test/sap/fe/core/jest/AnnotationHelper.spec.js +694 -0
  344. package/packages/sap.fe.core/test/sap/fe/core/jest/AnnotationHelper.spec.ts +819 -0
  345. package/packages/sap.fe.core/test/sap/fe/core/jest/AppStateHandler.spec.js +51 -0
  346. package/packages/sap.fe.core/test/sap/fe/core/jest/AppStateHandler.spec.ts +40 -0
  347. package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression-AnnotationExpression.spec.js +1 -1
  348. package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression-AnnotationExpression.spec.ts +1 -1
  349. package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression.spec.js +26 -15
  350. package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression.spec.ts +28 -15
  351. package/packages/sap.fe.core/test/sap/fe/core/jest/CommonUtils.spec.ts +202 -0
  352. package/packages/sap.fe.core/test/sap/fe/core/jest/RouterProxy.spec.js +54 -0
  353. package/packages/sap.fe.core/test/sap/fe/core/jest/RouterProxy.spec.ts +35 -0
  354. package/packages/sap.fe.core/test/sap/fe/core/jest/TemplateConverter.spec.js +5 -11
  355. package/packages/sap.fe.core/test/sap/fe/core/jest/TemplateConverter.spec.ts +8 -8
  356. package/packages/sap.fe.core/test/sap/fe/core/jest/TransactionHelper.spec.js +736 -619
  357. package/packages/sap.fe.core/test/sap/fe/core/jest/TransactionHelper.spec.ts +703 -0
  358. package/packages/sap.fe.core/test/sap/fe/core/jest/__snapshots__/TemplateConverter.spec.ts.snap +89 -85
  359. package/packages/sap.fe.core/test/sap/fe/core/jest/actions/draft.spec.js +102 -0
  360. package/packages/sap.fe.core/test/sap/fe/core/jest/actions/draft.spec.ts +97 -0
  361. package/packages/sap.fe.core/test/sap/fe/core/jest/actions/messageHandling.spec.js +492 -0
  362. package/packages/sap.fe.core/test/sap/fe/core/jest/actions/messageHandling.spec.ts +509 -0
  363. package/packages/sap.fe.core/test/sap/fe/core/jest/actions/operations.spec.js +895 -0
  364. package/packages/sap.fe.core/test/sap/fe/core/jest/actions/operations.spec.ts +908 -0
  365. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/EditFlow.spec.js +209 -353
  366. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/EditFlow.spec.ts +222 -362
  367. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/InternalEditFlow.spec.js +508 -0
  368. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/InternalEditFlow.spec.ts +440 -0
  369. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/InternalRouting.spec.ts +90 -0
  370. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/KPIManagement.spec.js +1 -1
  371. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/KPIManagement.spec.ts +10 -10
  372. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MassEdit.spec.js +286 -0
  373. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MassEdit.spec.ts +179 -0
  374. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandler.spec.js +200 -21
  375. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandler.spec.ts +168 -17
  376. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/Routing.spec.js +40 -0
  377. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/Routing.spec.ts +26 -0
  378. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/SideEffects.spec.js +1 -1
  379. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/SideEffects.spec.ts +1 -1
  380. package/packages/sap.fe.core/test/sap/fe/core/jest/controls/FilterBar.spec.js +355 -0
  381. package/packages/sap.fe.core/test/sap/fe/core/jest/controls/FilterBar.spec.ts +287 -0
  382. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ConverterContext.spec.js +1 -1
  383. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ConverterContext.spec.ts +1 -1
  384. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Filter.spec.js +542 -0
  385. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Filter.spec.ts +588 -0
  386. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/HeaderFacet.spec.js +1 -2
  387. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/HeaderFacet.spec.ts +1 -2
  388. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ListReportConverter.spec.js +371 -7
  389. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ListReportConverter.spec.ts +469 -6
  390. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/MetaModelConverter.spec.js +2 -2
  391. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/MetaModelConverter.spec.ts +2 -2
  392. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ObjectPageAvatar.spec.js +2 -2
  393. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ObjectPageAvatar.spec.ts +1 -1
  394. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/SubSection.spec.js +12 -8
  395. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/SubSection.spec.ts +8 -7
  396. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.js +436 -45
  397. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.ts +565 -33
  398. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/TableStandardActions.spec.js +136 -78
  399. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/TableStandardActions.spec.ts +315 -199
  400. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/__snapshots__/Filter.spec.ts.snap +307 -0
  401. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/__snapshots__/MetaModelConverter.spec.ts.snap +49 -1
  402. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/__snapshots__/Table.spec.ts.snap +1 -0
  403. package/packages/sap.fe.core/test/sap/fe/core/jest/data/AnalyticalService.cds +51 -4
  404. package/packages/sap.fe.core/test/sap/fe/core/jest/data/AnalyticalService2.cds +107 -0
  405. package/packages/sap.fe.core/test/sap/fe/core/jest/data/ComplexType.cds +39 -0
  406. package/packages/sap.fe.core/test/sap/fe/core/jest/data/Filter.cds +187 -0
  407. package/packages/sap.fe.core/test/sap/fe/core/jest/data/MassEditHelper.cds +226 -0
  408. package/packages/sap.fe.core/test/sap/fe/core/jest/data/SideEffects.cds +1 -1
  409. package/packages/sap.fe.core/test/sap/fe/core/jest/data/computedDefaultValueService.cds +99 -0
  410. package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/TableFormatters.spec.js +25 -5
  411. package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/TableFormatters.spec.ts +18 -7
  412. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/AppStartupHelper.spec.js +1 -1
  413. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/AppStartupHelper.spec.ts +4 -2
  414. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/DynamicAnnotationPathHelper.spec.js +40 -0
  415. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/DynamicAnnotationPathHelper.spec.ts +39 -0
  416. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/ExcelFormatHelper.spec.js +20 -0
  417. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/ExcelFormatHelper.spec.ts +13 -0
  418. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelper.spec.js +1 -1
  419. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelper.spec.ts +3 -3
  420. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/MassEditHelper.spec.js +712 -0
  421. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/MassEditHelper.spec.ts +613 -0
  422. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/ModelHelper.spec.js +344 -225
  423. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/ModelHelper.spec.ts +347 -0
  424. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/PasteHelper.spec.js +439 -0
  425. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/PasteHelper.spec.ts +378 -0
  426. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/SemanticDateOperators.spec.js +123 -0
  427. package/packages/sap.fe.core/test/sap/fe/core/{qunit/helpers/SemanticDateOperators.qunit.js → jest/helpers/SemanticDateOperators.spec.ts} +10 -21
  428. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/SemanticKeyHelper.spec.js +215 -0
  429. package/packages/sap.fe.core/test/sap/fe/core/{qunit/helpers/SemanticKeyHelper.qunit.js → jest/helpers/SemanticKeyHelper.spec.ts} +58 -55
  430. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/StableIdHelper.spec.js +125 -0
  431. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/StableIdHelper.spec.ts +142 -0
  432. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/__snapshots__/MassEditHelper.spec.ts.snap +263 -0
  433. package/packages/sap.fe.core/test/sap/fe/core/jest/services/CacheHandlerTest.spec.js +871 -0
  434. package/packages/sap.fe.core/test/sap/fe/core/jest/services/CacheHandlerTest.spec.ts +899 -0
  435. package/packages/sap.fe.core/test/sap/fe/core/jest/services/NavigationServiceFactory.spec.js +46 -0
  436. package/packages/sap.fe.core/test/sap/fe/core/jest/services/NavigationServiceFactory.spec.ts +37 -0
  437. package/packages/sap.fe.core/test/sap/fe/core/jest/services/RoutingServiceFactory.spec.js +120 -3
  438. package/packages/sap.fe.core/test/sap/fe/core/jest/services/RoutingServiceFactory.spec.ts +96 -7
  439. package/packages/sap.fe.core/test/sap/fe/core/jest/services/ShellServicesFactory.spec.js +86 -0
  440. package/packages/sap.fe.core/test/sap/fe/core/jest/services/ShellServicesFactory.spec.ts +72 -0
  441. package/packages/sap.fe.core/test/sap/fe/core/jest/services/SideEffectsService.spec.js +16 -44
  442. package/packages/sap.fe.core/test/sap/fe/core/jest/services/SideEffectsService.spec.ts +22 -60
  443. package/packages/sap.fe.core/test/sap/fe/core/jest/templating/PropertyHelper.spec.js +4 -4
  444. package/packages/sap.fe.core/test/sap/fe/core/jest/templating/PropertyHelper.spec.ts +9 -3
  445. package/packages/sap.fe.core/test/sap/fe/core/jest/type/ComplexType.spec.js +68 -0
  446. package/packages/sap.fe.core/test/sap/fe/core/jest/type/ComplexType.spec.ts +51 -0
  447. package/packages/sap.fe.core/test/sap/fe/core/qunit/TemplatingExpressions.qunit.js +2 -2
  448. package/packages/sap.fe.core/test/sap/fe/core/qunit/apps/generalTests.json +0 -105
  449. package/packages/sap.fe.core/test/sap/fe/core/relnotes/changes-1.98.json +0 -11
  450. package/packages/sap.fe.core/test/sap/fe/core/relnotes/changes-1.99.json +534 -0
  451. package/packages/sap.fe.macros/src/sap/fe/macros/.library +1 -1
  452. package/packages/sap.fe.macros/src/sap/fe/macros/.theming +1 -1
  453. package/packages/sap.fe.macros/src/sap/fe/macros/Chart.metadata-dbg.js +14 -5
  454. package/packages/sap.fe.macros/src/sap/fe/macros/Chart.metadata.js +1 -1
  455. package/packages/sap.fe.macros/src/sap/fe/macros/ChartAPI-dbg.js +15 -6
  456. package/packages/sap.fe.macros/src/sap/fe/macros/ChartAPI.js +1 -1
  457. package/packages/sap.fe.macros/src/sap/fe/macros/ChartAPI.ts +9 -1
  458. package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate-dbg.js +37 -3
  459. package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate.js +1 -1
  460. package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper-dbg.js +27 -2
  461. package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper.js +1 -1
  462. package/packages/sap.fe.macros/src/sap/fe/macros/Field.fragment.xml +4 -0
  463. package/packages/sap.fe.macros/src/sap/fe/macros/Field.metadata-dbg.js +17 -1
  464. package/packages/sap.fe.macros/src/sap/fe/macros/Field.metadata.js +1 -1
  465. package/packages/sap.fe.macros/src/sap/fe/macros/Field.metadata.ts +17 -1
  466. package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI-dbg.js +1 -1
  467. package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI.ts +35 -9
  468. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.fragment.xml +1 -1
  469. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.metadata-dbg.js +41 -10
  470. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.metadata.js +1 -1
  471. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI-dbg.js +1 -1
  472. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI.ts +1 -1
  473. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate-dbg.js +50 -4
  474. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate.js +1 -1
  475. package/packages/sap.fe.macros/src/sap/fe/macros/Form.fragment.xml +65 -75
  476. package/packages/sap.fe.macros/src/sap/fe/macros/Form.metadata-dbg.js +55 -51
  477. package/packages/sap.fe.macros/src/sap/fe/macros/Form.metadata.js +1 -1
  478. package/packages/sap.fe.macros/src/sap/fe/macros/FormAPI-dbg.js +83 -0
  479. package/packages/sap.fe.macros/src/sap/fe/macros/FormAPI.js +5 -0
  480. package/packages/sap.fe.macros/src/sap/fe/macros/FormAPI.ts +29 -0
  481. package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer.fragment.xml +11 -10
  482. package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer.metadata-dbg.js +2 -4
  483. package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer.metadata.js +1 -1
  484. package/packages/sap.fe.macros/src/sap/fe/macros/FormContainerAPI-dbg.js +99 -0
  485. package/packages/sap.fe.macros/src/sap/fe/macros/FormContainerAPI.js +5 -0
  486. package/packages/sap.fe.macros/src/sap/fe/macros/FormContainerAPI.ts +32 -0
  487. package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI-dbg.js +67 -7
  488. package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI.js +1 -1
  489. package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI.ts +60 -10
  490. package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil-dbg.js +26 -34
  491. package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil.js +1 -1
  492. package/packages/sap.fe.macros/src/sap/fe/macros/Table.fragment.xml +6 -6
  493. package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata-dbg.js +38 -4
  494. package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata.js +1 -1
  495. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI-dbg.js +78 -92
  496. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.js +1 -1
  497. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.ts +55 -68
  498. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper-dbg.js +41 -39
  499. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper.js +1 -1
  500. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime-dbg.js +125 -31
  501. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime.js +1 -1
  502. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating-dbg.js +16 -42
  503. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.js +1 -1
  504. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.ts +13 -39
  505. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate-dbg.js +0 -7
  506. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate.js +1 -1
  507. package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterFieldHelper-dbg.js +142 -129
  508. package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterFieldHelper.js +1 -1
  509. package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterUtils-dbg.js +120 -61
  510. package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterUtils.js +1 -1
  511. package/packages/sap.fe.macros/src/sap/fe/macros/form/AddressSection.fragment.xml +4 -4
  512. package/packages/sap.fe.macros/src/sap/fe/macros/form/DataFieldCollection.fragment.xml +3 -3
  513. package/packages/sap.fe.macros/src/sap/fe/macros/form/FormHelper-dbg.js +1 -14
  514. package/packages/sap.fe.macros/src/sap/fe/macros/form/FormHelper.js +1 -1
  515. package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.fragment.xml +1 -1
  516. package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata-dbg.js +23 -8
  517. package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata.js +1 -1
  518. package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata.ts +29 -17
  519. package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.fragment.xml +45 -54
  520. package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.metadata-dbg.js +16 -22
  521. package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.metadata.js +1 -1
  522. package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.fragment.xml +1 -1
  523. package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.metadata-dbg.js +14 -5
  524. package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.metadata.js +1 -1
  525. package/packages/sap.fe.macros/src/sap/fe/macros/internal/FilterField.fragment.xml +1 -1
  526. package/packages/sap.fe.macros/src/sap/fe/macros/internal/SituationsIndicator-dbg.js +3 -2
  527. package/packages/sap.fe.macros/src/sap/fe/macros/internal/SituationsIndicator.ts +4 -3
  528. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/FieldStructure.fragment.xml +1 -1
  529. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LinkWithQuickViewForm.fragment.xml +3 -1
  530. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LinkWrapper.fragment.xml +3 -1
  531. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/ObjectIdentifier.fragment.xml +4 -145
  532. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/ObjectStatus.fragment.xml +32 -8
  533. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/DatePicker.fragment.xml +1 -1
  534. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/DateTimePicker.fragment.xml +1 -1
  535. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/File.fragment.xml +3 -3
  536. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/Input.fragment.xml +1 -1
  537. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/InputWithUnit.fragment.xml +2 -2
  538. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/InputWithValueHelp.fragment.xml +2 -2
  539. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/TextArea.fragment.xml +1 -1
  540. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/TimePicker.fragment.xml +1 -1
  541. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/fragments/ObjectIdentifierContent.fragment.xml +81 -0
  542. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating-dbg.js +64 -30
  543. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.js +1 -1
  544. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.ts +58 -36
  545. package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Formatter-dbg.js +4 -2
  546. package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Formatter.js +1 -1
  547. package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Formatter.ts +19 -20
  548. package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Runtime-dbg.js +2 -3
  549. package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Runtime.js +1 -1
  550. package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Runtime.ts +13 -5
  551. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelpContent.fragment.xml +3 -1
  552. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelpTemplating-dbg.js +17 -7
  553. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelpTemplating.js +1 -1
  554. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelpTemplating.ts +10 -3
  555. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListDialogTable.fragment.xml +1 -1
  556. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper-dbg.js +53 -62
  557. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +1 -1
  558. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListTable.fragment.xml +2 -2
  559. package/packages/sap.fe.macros/src/sap/fe/macros/library-dbg.js +1 -1
  560. package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js +16 -14
  561. package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js.map +1 -1
  562. package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js +157 -178
  563. package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js.map +4 -4
  564. package/packages/sap.fe.macros/src/sap/fe/macros/library.js +1 -1
  565. package/packages/sap.fe.macros/src/sap/fe/macros/manifest.json +9 -9
  566. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle.properties +1 -1
  567. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ar.properties +14 -6
  568. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_bg.properties +14 -6
  569. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ca.properties +14 -6
  570. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cs.properties +14 -6
  571. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cy.properties +14 -6
  572. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_da.properties +14 -6
  573. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_de.properties +14 -6
  574. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_el.properties +14 -6
  575. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en.properties +14 -6
  576. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_GB.properties +14 -6
  577. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_sappsd.properties +14 -6
  578. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +14 -6
  579. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_saptrc.properties +14 -6
  580. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es.properties +14 -6
  581. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es_MX.properties +14 -6
  582. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_et.properties +14 -6
  583. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fi.properties +14 -6
  584. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr.properties +14 -6
  585. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr_CA.properties +14 -6
  586. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hi.properties +14 -6
  587. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hr.properties +14 -6
  588. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hu.properties +14 -6
  589. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_id.properties +14 -6
  590. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_it.properties +14 -6
  591. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_iw.properties +14 -6
  592. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ja.properties +14 -6
  593. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_kk.properties +14 -6
  594. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ko.properties +14 -6
  595. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lt.properties +14 -6
  596. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lv.properties +14 -6
  597. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ms.properties +14 -6
  598. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_nl.properties +14 -6
  599. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_no.properties +14 -6
  600. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pl.properties +14 -6
  601. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt.properties +14 -6
  602. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt_PT.properties +14 -6
  603. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ro.properties +14 -6
  604. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ru.properties +14 -6
  605. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sh.properties +14 -6
  606. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sk.properties +14 -6
  607. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sl.properties +16 -8
  608. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sv.properties +14 -6
  609. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_th.properties +14 -6
  610. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_tr.properties +14 -6
  611. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_uk.properties +14 -6
  612. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_vi.properties +14 -6
  613. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_CN.properties +14 -6
  614. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_TW.properties +14 -6
  615. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/MicroChartHelper-dbg.js +2 -2
  616. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/MicroChartHelper.js +1 -1
  617. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/BulletMicroChart.fragment.xml +2 -2
  618. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/ComparisonMicroChart.fragment.xml +1 -1
  619. package/packages/sap.fe.macros/src/sap/fe/macros/resources.json +277 -209
  620. package/packages/sap.fe.macros/src/sap/fe/macros/table/Actions.fragment.xml +5 -16
  621. package/packages/sap.fe.macros/src/sap/fe/macros/table/ColumnContent.fragment.xml +17 -4
  622. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper-dbg.js +0 -2
  623. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper.js +1 -1
  624. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableRuntime-dbg.js +27 -18
  625. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableRuntime.js +1 -1
  626. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate-dbg.js +196 -139
  627. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate.js +1 -1
  628. package/packages/sap.fe.macros/src/sap/fe/macros/visualfilters/InteractiveChartHelper-dbg.js +12 -14
  629. package/packages/sap.fe.macros/src/sap/fe/macros/visualfilters/InteractiveChartHelper.js +1 -1
  630. package/packages/sap.fe.macros/src/sap/fe/macros/visualfilters/VisualFilterRuntime-dbg.js +13 -15
  631. package/packages/sap.fe.macros/src/sap/fe/macros/visualfilters/VisualFilterRuntime.js +1 -1
  632. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/api.json +113 -2
  633. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/apiref/api.json +1 -1
  634. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.jsmeta.json +1 -1
  635. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.xmlmeta.json +1 -1
  636. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartDelegate.spec.js +1 -1
  637. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartDelegate.spec.ts +1 -1
  638. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartMacro.spec.js +32 -20
  639. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartMacro.spec.ts +24 -12
  640. package/packages/sap.fe.macros/test/sap/fe/macros/jest/CollectionField.spec.js +15 -5
  641. package/packages/sap.fe.macros/test/sap/fe/macros/jest/CollectionField.spec.ts +18 -3
  642. package/packages/sap.fe.macros/test/sap/fe/macros/jest/CommonHelper.spec.js +69 -0
  643. package/packages/sap.fe.macros/test/sap/fe/macros/jest/CommonHelper.spec.ts +32 -0
  644. package/packages/sap.fe.macros/test/sap/fe/macros/jest/DatapointMacro.spec.js +6 -180
  645. package/packages/sap.fe.macros/test/sap/fe/macros/jest/DatapointMacro.spec.ts +6 -177
  646. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroWithSemanticKey.spec.js +1 -1
  647. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroWithSemanticKey.spec.ts +1 -1
  648. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterField.spec.js +1 -1
  649. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterField.spec.ts +1 -2
  650. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterFieldHelper.spec.js +51 -0
  651. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterFieldHelper.spec.ts +48 -0
  652. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterUtils.spec.js +133 -0
  653. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FormContainerAPI.spec.js +34 -0
  654. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FormContainerAPI.spec.ts +23 -0
  655. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FormMacro.spec.js +49 -0
  656. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FormMacro.spec.ts +41 -0
  657. package/packages/sap.fe.macros/test/sap/fe/macros/jest/MacroAPI.spec.js +105 -0
  658. package/packages/sap.fe.macros/test/sap/fe/macros/jest/MacroAPI.spec.ts +53 -0
  659. package/packages/sap.fe.macros/test/sap/fe/macros/jest/MacroComponent.spec.js +1 -1
  660. package/packages/sap.fe.macros/test/sap/fe/macros/jest/MacroComponent.spec.ts +1 -1
  661. package/packages/sap.fe.macros/test/sap/fe/macros/jest/MicroChart.spec.js +15 -1
  662. package/packages/sap.fe.macros/test/sap/fe/macros/jest/MicroChart.spec.ts +13 -0
  663. package/packages/sap.fe.macros/test/sap/fe/macros/jest/PhantomUtil.spec.js +1 -1
  664. package/packages/sap.fe.macros/test/sap/fe/macros/jest/PhantomUtil.spec.ts +1 -1
  665. package/packages/sap.fe.macros/test/sap/fe/macros/jest/QuickViewForm.spec.js +2 -3
  666. package/packages/sap.fe.macros/test/sap/fe/macros/jest/QuickViewForm.spec.ts +3 -4
  667. package/packages/sap.fe.macros/test/sap/fe/macros/jest/SimpleFieldMacro.spec.js +14 -4
  668. package/packages/sap.fe.macros/test/sap/fe/macros/jest/SimpleFieldMacro.spec.ts +18 -4
  669. package/packages/sap.fe.macros/test/sap/fe/macros/jest/Table.spec.js +140 -0
  670. package/packages/sap.fe.macros/test/sap/fe/macros/jest/Table.spec.ts +144 -0
  671. package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableAPI.spec.js +445 -635
  672. package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableAPI.spec.ts +528 -719
  673. package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableMacro.spec.js +83 -4
  674. package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableMacro.spec.ts +101 -3
  675. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ValueHelpMacro.spec.js +1 -1
  676. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ValueHelpMacro.spec.ts +1 -1
  677. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/ChartMacro.spec.ts.snap +75 -7
  678. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/CollectionField.spec.ts.snap +26 -11
  679. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/DatapointMacro.spec.ts.snap +42 -304
  680. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldMacroDataFieldTypes.spec.ts.snap +6 -6
  681. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FilterBarMacro.spec.ts.snap +12 -12
  682. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FilterField.spec.ts.snap +3 -3
  683. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FormMacro.spec.ts.snap +150 -0
  684. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/KPITag.spec.ts.snap +4 -4
  685. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/MicroChart.spec.ts.snap +39 -3
  686. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/QuickViewForm.spec.ts.snap +4 -4
  687. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/SimpleFieldMacro.spec.ts.snap +125 -51
  688. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/Table.spec.ts.snap +1455 -0
  689. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/Chart.cds +56 -1
  690. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FieldMacroDataFieldTypes.cds +12 -59
  691. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/Form.cds +129 -0
  692. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/MicroChart.cds +14 -0
  693. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/Table.cds +55 -2
  694. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/simpleFieldMacro.cds +10 -4
  695. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldRuntime.spec.js +2 -2
  696. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldRuntime.spec.ts +15 -8
  697. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldTemplating.spec.js +12 -34
  698. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldTemplating.spec.ts +21 -38
  699. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/Actions.spec.js +1 -1
  700. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/Actions.spec.ts +2 -2
  701. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/__snapshots__/columnWidth.spec.ts.snap +54 -14
  702. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/columnWidth.spec.js +17 -7
  703. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/columnWidth.spec.ts +18 -11
  704. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/data/columnWidth.cds +26 -3
  705. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/TableDelegate.spec.js +145 -17
  706. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/TableDelegate.spec.ts +176 -18
  707. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/__snapshots__/TableDelegate.spec.ts.snap +813 -111
  708. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/data/tabledelegate.cds +9 -2
  709. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldHelper.qunit.js +0 -56
  710. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldHelperTemplate.qunit.js +0 -321
  711. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormContainerTemplating.qunit.js +1 -0
  712. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormTemplating.qunit.js +10 -5
  713. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormTemplatingTs.qunit.js +1 -1
  714. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/MicroChartHelperForTemplate.qunit.js +1 -2
  715. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/TableRuntime.qunit.js +1 -1
  716. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/ValueListHelper.qunit.js +130 -1
  717. package/packages/sap.fe.macros/test/sap/fe/macros/relnotes/changes-1.99.json +343 -0
  718. package/packages/sap.fe.navigation/src/sap/fe/navigation/.library +1 -1
  719. package/packages/sap.fe.navigation/src/sap/fe/navigation/.theming +1 -1
  720. package/packages/sap.fe.navigation/src/sap/fe/navigation/NavigationHandler-dbg.js +0 -1
  721. package/packages/sap.fe.navigation/src/sap/fe/navigation/NavigationHandler.js +1 -1
  722. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-dbg.js +1 -1
  723. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-h2-preload.js +2 -2
  724. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-preload.js +3 -3
  725. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-preload.js.map +2 -2
  726. package/packages/sap.fe.navigation/src/sap/fe/navigation/library.js +1 -1
  727. package/packages/sap.fe.navigation/src/sap/fe/navigation/manifest.json +3 -3
  728. package/packages/sap.fe.navigation/src/sap/fe/navigation/resources.json +4 -4
  729. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/api.json +1 -1
  730. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/apiref/api.json +1 -1
  731. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/codeassistance/Library.xmlmeta.json +1 -1
  732. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.library +1 -1
  733. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.theming +1 -1
  734. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-dbg.js +1 -1
  735. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-h2-preload.js +2 -2
  736. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-preload.js +2 -2
  737. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library.js +1 -1
  738. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/manifest.json +3 -3
  739. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/api.json +1 -1
  740. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/apiref/api.json +1 -1
  741. package/packages/sap.fe.templates/src/sap/fe/templates/.library +1 -1
  742. package/packages/sap.fe.templates/src/sap/fe/templates/.theming +1 -1
  743. package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/manifest.json +2 -2
  744. package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent-dbg.js +1 -1
  745. package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent.js +1 -1
  746. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/Component-dbg.js +8 -0
  747. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/Component.js +1 -1
  748. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ExtensionAPI-dbg.js +8 -3
  749. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ExtensionAPI.js +1 -1
  750. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReport.view.xml +11 -6
  751. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController-dbg.controller.js +114 -29
  752. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController.controller.js +1 -1
  753. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/manifest.json +2 -2
  754. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation-dbg.js +10 -10
  755. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.js +1 -1
  756. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/Share-dbg.js +7 -6
  757. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/Share.js +1 -1
  758. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/ViewState-dbg.js +75 -53
  759. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/ViewState.js +1 -1
  760. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/resources.json +14 -23
  761. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/view/fragments/CollectionVisualization.fragment.xml +8 -0
  762. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper-dbg.js +3 -3
  763. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper.js +1 -1
  764. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component-dbg.js +1 -1
  765. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component.js +1 -1
  766. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +8 -45
  767. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController-dbg.controller.js +17 -67
  768. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +1 -1
  769. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/manifest.json +2 -2
  770. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/resources.json +24 -12
  771. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating-dbg.js +1 -1
  772. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating.ts +2 -2
  773. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.fragment.xml +5 -1
  774. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/Heading.fragment.xml +33 -0
  775. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeadingAvatar.fragment.xml +17 -0
  776. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeadingTitle.fragment.xml +18 -0
  777. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SectionFormContent.fragment.xml +3 -3
  778. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SectionMoreFormContent.fragment.xml +3 -3
  779. package/packages/sap.fe.templates/src/sap/fe/templates/library-dbg.js +1 -1
  780. package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js +7 -5
  781. package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js.map +1 -1
  782. package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js +24 -22
  783. package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js.map +4 -4
  784. package/packages/sap.fe.templates/src/sap/fe/templates/library.js +1 -1
  785. package/packages/sap.fe.templates/src/sap/fe/templates/manifest.json +13 -13
  786. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle.properties +14 -30
  787. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ar.properties +24 -6
  788. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_bg.properties +24 -6
  789. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ca.properties +24 -6
  790. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_cs.properties +24 -6
  791. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_cy.properties +24 -6
  792. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_da.properties +24 -6
  793. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_de.properties +24 -6
  794. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_el.properties +25 -7
  795. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en.properties +24 -6
  796. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_GB.properties +24 -6
  797. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_sappsd.properties +24 -6
  798. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +24 -6
  799. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_saptrc.properties +24 -6
  800. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_es.properties +24 -6
  801. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_es_MX.properties +24 -6
  802. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_et.properties +24 -6
  803. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_fi.properties +24 -6
  804. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_fr.properties +24 -6
  805. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_fr_CA.properties +24 -6
  806. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_hi.properties +24 -6
  807. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_hr.properties +25 -7
  808. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_hu.properties +24 -6
  809. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_id.properties +26 -8
  810. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_it.properties +24 -6
  811. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_iw.properties +24 -6
  812. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ja.properties +24 -6
  813. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_kk.properties +24 -6
  814. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ko.properties +24 -6
  815. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_lt.properties +24 -6
  816. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_lv.properties +24 -6
  817. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ms.properties +24 -6
  818. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_nl.properties +24 -6
  819. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_no.properties +24 -6
  820. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_pl.properties +24 -6
  821. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_pt.properties +27 -9
  822. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_pt_PT.properties +25 -7
  823. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ro.properties +24 -6
  824. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ru.properties +24 -6
  825. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sh.properties +24 -6
  826. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sk.properties +24 -6
  827. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sl.properties +24 -6
  828. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sv.properties +25 -7
  829. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_th.properties +24 -6
  830. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_tr.properties +24 -6
  831. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_uk.properties +25 -7
  832. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_vi.properties +24 -6
  833. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_zh_CN.properties +24 -6
  834. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_zh_TW.properties +24 -6
  835. package/packages/sap.fe.templates/src/sap/fe/templates/resources.json +127 -113
  836. package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/manifest.json +1 -1
  837. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/api.json +1 -1
  838. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/apiref/api.json +1 -1
  839. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.xmlmeta.json +1 -1
  840. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/IntentBasedNavigation.spec.js +59 -0
  841. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/IntentBasedNavigation.spec.ts +54 -0
  842. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/Share.spec.js +85 -0
  843. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/Share.spec.ts +89 -0
  844. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/ViewState.spec.js +482 -259
  845. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/ViewState.spec.ts +442 -0
  846. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/AnnotationHelper.spec.js +99 -0
  847. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/AnnotationHelper.spec.ts +82 -0
  848. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/Heading.spec.js +50 -0
  849. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/Heading.spec.ts +32 -0
  850. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/__snapshots__/Heading.spec.ts.snap +43 -0
  851. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/__snapshots__/Sections.spec.ts.snap +9 -7
  852. package/packages/sap.fe.templates/test/sap/fe/templates/jest/RootContainer/RootContainerBaseController.spec.js +2 -2
  853. package/packages/sap.fe.templates/test/sap/fe/templates/jest/RootContainer/RootContainerBaseController.spec.ts +4 -3
  854. package/packages/sap.fe.templates/test/sap/fe/templates/relnotes/changes-1.99.json +335 -0
  855. package/packages/sap.fe.test/src/sap/fe/test/.library +1 -1
  856. package/packages/sap.fe.test/src/sap/fe/test/.theming +1 -1
  857. package/packages/sap.fe.test/src/sap/fe/test/FeMocks-dbg.js +66 -0
  858. package/packages/sap.fe.test/src/sap/fe/test/FeMocks.js +5 -0
  859. package/packages/sap.fe.test/src/sap/fe/test/FeMocks.ts +77 -0
  860. package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper-dbg.js +78 -22
  861. package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper.js +1 -1
  862. package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper.ts +66 -22
  863. package/packages/sap.fe.test/src/sap/fe/test/ObjectPage-dbg.js +6 -4
  864. package/packages/sap.fe.test/src/sap/fe/test/ObjectPage.js +1 -1
  865. package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper-dbg.js +44 -21
  866. package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper.js +1 -1
  867. package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper.ts +28 -8
  868. package/packages/sap.fe.test/src/sap/fe/test/api/BaseAPI-dbg.js +1 -0
  869. package/packages/sap.fe.test/src/sap/fe/test/api/DialogAPI-dbg.js +14 -2
  870. package/packages/sap.fe.test/src/sap/fe/test/api/DialogAPI.js +1 -1
  871. package/packages/sap.fe.test/src/sap/fe/test/api/DialogCreateActions-dbg.js +1 -1
  872. package/packages/sap.fe.test/src/sap/fe/test/api/DialogCreateActions.js +1 -1
  873. package/packages/sap.fe.test/src/sap/fe/test/api/DialogCreateAssertions-dbg.js +1 -1
  874. package/packages/sap.fe.test/src/sap/fe/test/api/DialogCreateAssertions.js +1 -1
  875. package/packages/sap.fe.test/src/sap/fe/test/api/DialogMessageActions-dbg.js +16 -1
  876. package/packages/sap.fe.test/src/sap/fe/test/api/DialogMessageActions.js +1 -1
  877. package/packages/sap.fe.test/src/sap/fe/test/api/DialogMessageAssertions-dbg.js +1 -1
  878. package/packages/sap.fe.test/src/sap/fe/test/api/DialogMessageAssertions.js +1 -1
  879. package/packages/sap.fe.test/src/sap/fe/test/api/DialogValueHelpActions-dbg.js +1 -1
  880. package/packages/sap.fe.test/src/sap/fe/test/api/DialogValueHelpActions.js +1 -1
  881. package/packages/sap.fe.test/src/sap/fe/test/api/DialogValueHelpAssertions-dbg.js +1 -1
  882. package/packages/sap.fe.test/src/sap/fe/test/api/DialogValueHelpAssertions.js +1 -1
  883. package/packages/sap.fe.test/src/sap/fe/test/api/TableActions-dbg.js +0 -19
  884. package/packages/sap.fe.test/src/sap/fe/test/api/TableActions.js +1 -1
  885. package/packages/sap.fe.test/src/sap/fe/test/api/TableAssertions-dbg.js +3 -4
  886. package/packages/sap.fe.test/src/sap/fe/test/api/TableAssertions.js +1 -1
  887. package/packages/sap.fe.test/src/sap/fe/test/builder/MdcTableBuilder-dbg.js +4 -0
  888. package/packages/sap.fe.test/src/sap/fe/test/builder/MdcTableBuilder.js +1 -1
  889. package/packages/sap.fe.test/src/sap/fe/test/internal/FEJourneyRunner-dbg.js +6 -3
  890. package/packages/sap.fe.test/src/sap/fe/test/internal/FEJourneyRunner.js +1 -1
  891. package/packages/sap.fe.test/src/sap/fe/test/library-dbg.js +1 -1
  892. package/packages/sap.fe.test/src/sap/fe/test/library-h2-preload.js +3 -2
  893. package/packages/sap.fe.test/src/sap/fe/test/library-h2-preload.js.map +1 -1
  894. package/packages/sap.fe.test/src/sap/fe/test/library-preload.js +39 -20
  895. package/packages/sap.fe.test/src/sap/fe/test/library-preload.js.map +4 -4
  896. package/packages/sap.fe.test/src/sap/fe/test/library.js +1 -1
  897. package/packages/sap.fe.test/src/sap/fe/test/manifest.json +3 -3
  898. package/packages/sap.fe.test/src/sap/fe/test/resources.json +65 -28
  899. package/packages/sap.fe.test/test/sap/fe/test/designtime/api.json +1 -1
  900. package/packages/sap.fe.test/test/sap/fe/test/designtime/apiref/api.json +1 -1
  901. package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.jsmeta.json +1 -1
  902. package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.xmlmeta.json +1 -1
  903. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandling.spec.js +0 -115
  904. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandling.spec.ts +0 -95
  905. package/packages/sap.fe.core/test/sap/fe/core/qunit/helpers/ExcelFormatHelper.qunit.js +0 -19
  906. package/packages/sap.fe.core/test/sap/fe/core/qunit/helpers/StableIdHelper.qunit.js +0 -301
  907. package/packages/sap.fe.core/test/sap/fe/core/qunit/services/CacheHandlerTest.qunit.js +0 -924
  908. package/packages/sap.fe.macros/src/sap/fe/macros/formcontainer/FormContainerRuntime-dbg.js +0 -46
  909. package/packages/sap.fe.macros/src/sap/fe/macros/formcontainer/FormContainerRuntime.js +0 -6
  910. package/packages/sap.fe.macros/test/sap/fe/macros/jest/CommonUtils.spec.js +0 -94
  911. package/packages/sap.fe.macros/test/sap/fe/macros/jest/CommonUtils.spec.ts +0 -70
  912. package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableFieldLabel.spec.js +0 -68
  913. package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableFieldLabel.spec.ts +0 -65
  914. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/TableFieldLabel.spec.ts.snap +0 -607
  915. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/MassEdit-dbg.js +0 -96
  916. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/MassEdit.js +0 -6
@@ -125,12 +125,12 @@ sap.ui.define(["../../ManifestSettings", "sap/fe/core/converters/controls/Common
125
125
  return undefined;
126
126
  }
127
127
  /**
128
- * Create the ChartVisualization configuration that will be used to display a chart via Chart Macro.
128
+ * Create the ChartVisualization configuration that will be used to display a chart using the Chart building block.
129
129
  *
130
130
  * @param {ChartDefinitionTypeTypes} chartAnnotation The target chart annotation
131
131
  * @param {string} visualizationPath The current visualization annotation path
132
132
  * @param {ConverterContext} converterContext The converter context
133
- * @param {boolean} doNotCheckApplySupported Flag that tells whether applysupported to be checked or not
133
+ * @param {boolean} doNotCheckApplySupported Flag that indicates whether applysupported needs to be checked or not
134
134
  * @returns {ChartVisualization} The chart visualization based on the annotation
135
135
  */
136
136
 
@@ -258,6 +258,8 @@ sap.ui.define(["../../ManifestSettings", "sap/fe/core/converters/controls/Common
258
258
  var hasMultipleVisualizations = converterContext.getManifestWrapper().hasMultipleVisualizations() || converterContext.getTemplateType() === "AnalyticalListPage";
259
259
  var onSegmentedButtonPressed = hasMultipleVisualizations ? ".handlers.onSegmentedButtonPressed" : "";
260
260
  var visible = hasMultipleVisualizations ? "{= ${pageInternal>alpContentView} !== 'Table'}" : "true";
261
+ var allowedTransformations = aggregationHelper.getAllowedTransformations();
262
+ mApplySupported.enableSearch = allowedTransformations ? allowedTransformations.indexOf("search") >= 0 : true;
261
263
  return {
262
264
  type: VisualizationType.Chart,
263
265
  id: ChartID(isEntitySet ? entityName : navigationPropertyPath, VisualizationType.Chart),
@@ -282,4 +284,4 @@ sap.ui.define(["../../ManifestSettings", "sap/fe/core/converters/controls/Common
282
284
  _exports.createChartVisualization = createChartVisualization;
283
285
  return _exports;
284
286
  }, false);
285
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNoYXJ0LnRzIl0sIm5hbWVzIjpbImdldENoYXJ0QWN0aW9uc0Zyb21Bbm5vdGF0aW9ucyIsImNoYXJ0QW5ub3RhdGlvbiIsInZpc3VhbGl6YXRpb25QYXRoIiwiY29udmVydGVyQ29udGV4dCIsImNoYXJ0QWN0aW9ucyIsImFBY3Rpb25zIiwiQWN0aW9ucyIsImZvckVhY2giLCJkYXRhRmllbGQiLCJjaGFydEFjdGlvbiIsImlzRGF0YUZpZWxkRm9yQWN0aW9uQWJzdHJhY3QiLCJhbm5vdGF0aW9ucyIsIlVJIiwiSGlkZGVuIiwidmFsdWVPZiIsIklubGluZSIsIkRldGVybWluaW5nIiwiQWN0aW9uVGFyZ2V0IiwiaXNCb3VuZCIsImtleSIsIktleUhlbHBlciIsImdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZCIsIiRUeXBlIiwidHlwZSIsIkFjdGlvblR5cGUiLCJEYXRhRmllbGRGb3JBY3Rpb24iLCJhbm5vdGF0aW9uUGF0aCIsImdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgiLCJmdWxseVF1YWxpZmllZE5hbWUiLCJEYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb24iLCJwdXNoIiwiZ2V0Q2hhcnRBY3Rpb25zIiwiYUFubm90YXRpb25BY3Rpb25zIiwiaW5zZXJ0Q3VzdG9tRWxlbWVudHMiLCJnZXRBY3Rpb25zRnJvbU1hbmlmZXN0IiwiZ2V0TWFuaWZlc3RDb250cm9sQ29uZmlndXJhdGlvbiIsImFjdGlvbnMiLCJlbmFibGVPblNlbGVjdCIsImVuYWJsZWQiLCJnZXRQMTNuTW9kZSIsIm1hbmlmZXN0V3JhcHBlciIsImdldE1hbmlmZXN0V3JhcHBlciIsImNoYXJ0TWFuaWZlc3RTZXR0aW5ncyIsImhhc1ZhcmlhbnRNYW5hZ2VtZW50IiwiaW5kZXhPZiIsImdldFZhcmlhbnRNYW5hZ2VtZW50IiwicGVyc29uYWxpemF0aW9uIiwiYVBlcnNvbmFsaXphdGlvbiIsImNoYXJ0U2V0dGluZ3MiLCJ1bmRlZmluZWQiLCJpdGVtIiwic29ydCIsImpvaW4iLCJjcmVhdGVDaGFydFZpc3VhbGl6YXRpb24iLCJkb05vdENoZWNrQXBwbHlTdXBwb3J0ZWQiLCJhZ2dyZWdhdGlvbkhlbHBlciIsIkFnZ3JlZ2F0aW9uSGVscGVyIiwiZ2V0RW50aXR5VHlwZSIsImlzQW5hbHl0aWNzU3VwcG9ydGVkIiwiRXJyb3IiLCJhVHJhbnNBZ2dBbm5vcyIsIkFuYWx5dGljcyIsIkFnZ3JlZ2F0ZWRQcm9wZXJ0aWVzIiwidHJhbnNBZ2dMYWJlbHMiLCJpIiwibGVuZ3RoIiwiTmFtZSIsImxhYmVsIiwiQ29tbW9uIiwiTGFiZWwiLCJhQ3VzdG9tQWdncmVnYXRlcyIsImdldEN1c3RvbUFnZ3JlZ2F0ZURlZmluaXRpb25zIiwibUN1c3RvbUFnZ3JlZ2F0ZXMiLCJhQ29udGV4dERlZmluaW5nUHJvcGVydGllcyIsIkFnZ3JlZ2F0aW9uIiwiQ29udGV4dERlZmluaW5nUHJvcGVydGllcyIsInF1YWxpZmllciIsIm5hbWUiLCJzb3J0YWJsZSIsInNvcnRPcmRlciIsImNvbnRleHREZWZpbmluZ1Byb3BlcnR5IiwibWFwIiwib0N0eERlZlByb3BlcnR5IiwidmFsdWUiLCJhVHJhbnNBZ2dyZWdhdGlvbnMiLCJnZXRUcmFuc0FnZ3JlZ2F0aW9ucyIsIm1UcmFuc0FnZ3JlZ2F0aW9ucyIsInByb3BlcnR5UGF0aCIsIkFnZ3JlZ2F0YWJsZVByb3BlcnR5IiwiYWdncmVnYXRpb25NZXRob2QiLCJBZ2dyZWdhdGlvbk1ldGhvZCIsImN1c3RvbSIsImFBZ2dQcm9wcyIsImdldEFnZ3JlZ2F0YWJsZVByb3BlcnRpZXMiLCJhR3JwUHJvcHMiLCJnZXRHcm91cGFibGVQcm9wZXJ0aWVzIiwibUFwcGx5U3VwcG9ydGVkIiwiQWdncmVnYXRhYmxlUHJvcGVydGllcyIsIkdyb3VwYWJsZVByb3BlcnRpZXMiLCJvYmoiLCJQcm9wZXJ0eSIsIiRQcm9wZXJ0eVBhdGgiLCJzcGxpdCIsIm5hdmlnYXRpb25Qcm9wZXJ0eVBhdGgiLCJsYXN0SW5kZXhPZiIsInN1YnN0ciIsInRpdGxlIiwiZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCIsInRhcmdldEVudGl0eVR5cGUiLCJIZWFkZXJJbmZvIiwiVHlwZU5hbWVQbHVyYWwiLCJkYXRhTW9kZWxQYXRoIiwiaXNFbnRpdHlTZXQiLCJlbnRpdHlOYW1lIiwidGFyZ2V0RW50aXR5U2V0Iiwic3RhcnRpbmdFbnRpdHlTZXQiLCJzRmlsdGVyYmFySWQiLCJGaWx0ZXJCYXJJRCIsImdldENvbnRleHRQYXRoIiwib1ZpelByb3BlcnRpZXMiLCJhdXRvQmluZE9uSW5pdCIsImdldFRlbXBsYXRlVHlwZSIsIlRlbXBsYXRlVHlwZSIsIk9iamVjdFBhZ2UiLCJMaXN0UmVwb3J0IiwiQW5hbHl0aWNhbExpc3RQYWdlIiwiaGFzTXVsdGlwbGVWaXN1YWxpemF0aW9ucyIsIm9uU2VnbWVudGVkQnV0dG9uUHJlc3NlZCIsInZpc2libGUiLCJWaXN1YWxpemF0aW9uVHlwZSIsIkNoYXJ0IiwiaWQiLCJDaGFydElEIiwiY29sbGVjdGlvbiIsImdldFRhcmdldE9iamVjdFBhdGgiLCJuYXZpZ2F0aW9uUGF0aCIsImdldEFic29sdXRlQW5ub3RhdGlvblBhdGgiLCJmaWx0ZXJJZCIsInZpelByb3BlcnRpZXMiLCJKU09OIiwic3RyaW5naWZ5IiwiY3VzdG9tQWdnIiwidHJhbnNBZ2ciLCJhcHBseVN1cHBvcnRlZCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVNBLDhCQUFULENBQ0NDLGVBREQsRUFFQ0MsaUJBRkQsRUFHQ0MsZ0JBSEQsRUFJZ0I7QUFDZixRQUFNQyxZQUEwQixHQUFHLEVBQW5DOztBQUNBLFFBQUlILGVBQUosRUFBcUI7QUFDcEIsVUFBTUksUUFBUSxHQUFHSixlQUFlLENBQUNLLE9BQWhCLElBQTJCLEVBQTVDO0FBQ0FELE1BQUFBLFFBQVEsQ0FBQ0UsT0FBVCxDQUFpQixVQUFDQyxTQUFELEVBQXVDO0FB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SSxpQkFBM0MsQ0FQVjtBQVFOdUksTUFBQUEsUUFBUSxFQUFFckIsWUFSSjtBQVNOc0IsTUFBQUEsYUFBYSxFQUFFQyxJQUFJLENBQUNDLFNBQUwsQ0FBZXJCLGNBQWYsQ0FUVDtBQVVObkYsTUFBQUEsT0FBTyxFQUFFaEMsWUFWSDtBQVdOc0csTUFBQUEsS0FBSyxFQUFFQSxLQVhEO0FBWU5jLE1BQUFBLGNBQWMsRUFBRUEsY0FaVjtBQWFOTyxNQUFBQSx3QkFBd0IsRUFBRUEsd0JBYnBCO0FBY05DLE1BQUFBLE9BQU8sRUFBRUEsT0FkSDtBQWVOYSxNQUFBQSxTQUFTLEVBQUVyRSxpQkFmTDtBQWdCTnNFLE1BQUFBLFFBQVEsRUFBRXhELGtCQWhCSjtBQWlCTnlELE1BQUFBLGNBQWMsRUFBRS9DO0FBakJWLEtBQVA7QUFtQkEiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENoYXJ0TWFuaWZlc3RDb25maWd1cmF0aW9uLFxuXHRDaGFydFBlcnNvbmFsaXphdGlvbk1hbmlmZXN0U2V0dGluZ3MsXG5cdFZpc3VhbGl6YXRpb25UeXBlLFxuXHRBY3Rpb25UeXBlLFxuXHRUZW1wbGF0ZVR5cGVcbn0gZnJvbSBcIi4uLy4uL01hbmlmZXN0U2V0dGluZ3NcIjtcbmltcG9ydCB7IENoYXJ0RGVmaW5pdGlvblR5cGVUeXBlcywgRGF0YUZpZWxkQWJzdHJhY3RUeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHsgQW5ub3RhdGlvbkFjdGlvbiwgQmFzZUFjdGlvbiwgZ2V0QWN0aW9uc0Zyb21NYW5pZmVzdCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0NvbW1vbi9BY3Rpb25cIjtcbmltcG9ydCB7IGlzRGF0YUZpZWxkRm9yQWN0aW9uQWJzdHJhY3QgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9hbm5vdGF0aW9ucy9EYXRhRmllbGRcIjtcbmltcG9ydCB7IENoYXJ0SUQsIEZpbHRlckJhcklEIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvSURcIjtcbmltcG9ydCB7IGluc2VydEN1c3RvbUVsZW1lbnRzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9Db25maWd1cmFibGVPYmplY3RcIjtcbmltcG9ydCB7IEtleUhlbHBlciB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvS2V5XCI7XG5pbXBvcnQgeyBnZXRUYXJnZXRPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHsgQWdncmVnYXRpb25IZWxwZXIgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9BZ2dyZWdhdGlvblwiO1xuaW1wb3J0IE1hbmlmZXN0V3JhcHBlciBmcm9tIFwiLi4vLi4vTWFuaWZlc3RXcmFwcGVyXCI7XG5pbXBvcnQgQ29udmVydGVyQ29udGV4dCBmcm9tIFwiLi4vLi4vQ29udmVydGVyQ29udGV4dFwiO1xuXG4vKipcbiAqIEB0eXBlZGVmIENoYXJ0VmlzdWFsaXphdGlvblxuICovXG5leHBvcnQgdHlwZSBDaGFydFZpc3VhbGl6YXRpb24gPSB7XG5cdHR5cGU6IFZpc3VhbGl6YXRpb25UeXBlLkNoYXJ0O1xuXHRpZDogc3RyaW5nO1xuXHRjb2xsZWN0aW9uOiBzdHJpbmc7XG5cdGVudGl0eU5hbWU6IHN0cmluZztcblx0cGVyc29uYWxpemF0aW9uPzogc3RyaW5nO1xuXHRuYXZpZ2F0aW9uUGF0aDogc3RyaW5nO1xuXHRhbm5vdGF0aW9uUGF0aDogc3RyaW5nO1xuXHRmaWx0ZXJJZD86IHN0cmluZztcblx0dml6UHJvcGVydGllczogc3RyaW5nO1xuXHRhY3Rpb25zOiBCYXNlQWN0aW9uW107XG5cdHRpdGxlOiBzdHJpbmc7XG5cdGF1dG9CaW5kT25Jbml0OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXHRvblNlZ21lbnRlZEJ1dHRvblByZXNzZWQ6IHN0cmluZztcblx0dmlzaWJsZTogc3RyaW5nO1xuXHRjdXN0b21BZ2c6IG9iamVjdDtcblx0dHJhbnNBZ2c6IG9iamVjdDtcblx0YXBwbHlTdXBwb3J0ZWQ6IG9iamVjdDtcbn07XG5cbi8qKlxuICogTWV0aG9kIHRvIHJldHJpZXZlIGFsbCBjaGFydCBhY3Rpb25zIGZyb20gYW5ub3RhdGlvbnMuXG4gKlxuICogQHBhcmFtIGNoYXJ0QW5ub3RhdGlvblxuICogQHBhcmFtIHZpc3VhbGl6YXRpb25QYXRoXG4gKiBAcGFyYW0gY29udmVydGVyQ29udGV4dFxuICogQHJldHVybnMge0Jhc2VBY3Rpb25bXX0gVGhlIHRhYmxlIGFubm90YXRpb24gYWN0aW9uc1xuICovXG5mdW5jdGlvbiBnZXRDaGFydEFjdGlvbnNGcm9tQW5ub3RhdGlvbnMoXG5cdGNoYXJ0QW5ub3RhdGlvbjogQ2hhcnREZWZpbml0aW9uVHlwZVR5cGVzLFxuXHR2aXN1YWxpemF0aW9uUGF0aDogc3RyaW5nLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0XG4pOiBCYXNlQWN0aW9uW10ge1xuXHRjb25zdCBjaGFydEFjdGlvbnM6IEJhc2VBY3Rpb25bXSA9IFtdO1xuXHRpZiAoY2hhcnRBbm5vdGF0aW9uKSB7XG5cdFx0Y29uc3QgYUFjdGlvbnMgPSBjaGFydEFubm90YXRpb24uQWN0aW9ucyB8fCBbXTtcblx0XHRhQWN0aW9ucy5mb3JFYWNoKChkYXRhRmllbGQ6IERhdGFGaWVsZEFic3RyYWN0VHlwZXMpID0+IHtcblx0XHRcdGxldCBjaGFydEFjdGlvbjogQW5ub3RhdGlvbkFjdGlvbiB8IHVuZGVmaW5lZDtcblx0XHRcdGlmIChcblx0XHRcdFx0aXNEYXRhRmllbGRGb3JBY3Rpb25BYnN0cmFjdChkYXRhRmllbGQpICYmXG5cdFx0XHRcdCEoZGF0YUZpZWxkLmFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgPT09IHRydWUpICYmXG5cdFx0XHRcdCFkYXRhRmllbGQuSW5saW5lICYmXG5cdFx0XHRcdCFkYXRhRmllbGQuRGV0ZXJtaW5pbmcgJiZcblx0XHRcdFx0IShkYXRhRmllbGQgYXMgYW55KT8uQWN0aW9uVGFyZ2V0Py5pc0JvdW5kXG5cdFx0XHQpIHtcblx0XHRcdFx0Y29uc3Qga2V5ID0gS2V5SGVscGVyLmdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZChkYXRhRmllbGQpO1xuXHRcdFx0XHRzd2l0Y2ggKGRhdGFGaWVsZC4kVHlwZSkge1xuXHRcdFx0XHRcdGNhc2UgXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRGb3JBY3Rpb25cIjpcblx0XHRcdFx0XHRcdGNoYXJ0QWN0aW9uID0ge1xuXHRcdFx0XHRcdFx0XHR0eXBlOiBBY3Rpb25UeXBlLkRhdGFGaWVsZEZvckFjdGlvbixcblx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChkYXRhRmllbGQuZnVsbHlRdWFsaWZpZWROYW1lKSxcblx0XHRcdFx0XHRcdFx0a2V5OiBrZXlcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRicmVhaztcblxuXHRcdFx0XHRcdGNhc2UgXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb25cIjpcblx0XHRcdFx0XHRcdGNoYXJ0QWN0aW9uID0ge1xuXHRcdFx0XHRcdFx0XHR0eXBlOiBBY3Rpb25UeXBlLkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbixcblx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChkYXRhRmllbGQuZnVsbHlRdWFsaWZpZWROYW1lKSxcblx0XHRcdFx0XHRcdFx0a2V5OiBrZXlcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKGNoYXJ0QWN0aW9uKSB7XG5cdFx0XHRcdGNoYXJ0QWN0aW9ucy5wdXNoKGNoYXJ0QWN0aW9uKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXHRyZXR1cm4gY2hhcnRBY3Rpb25zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2hhcnRBY3Rpb25zKFxuXHRjaGFydEFubm90YXRpb246IENoYXJ0RGVmaW5pdGlvblR5cGVUeXBlcyxcblx0dmlzdWFsaXphdGlvblBhdGg6IHN0cmluZyxcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dFxuKTogQmFzZUFjdGlvbltdIHtcblx0Y29uc3QgYUFubm90YXRpb25BY3Rpb25zOiBCYXNlQWN0aW9uW10gPSBnZXRDaGFydEFjdGlvbnNGcm9tQW5ub3RhdGlvbnMoY2hhcnRBbm5vdGF0aW9uLCB2aXN1YWxpemF0aW9uUGF0aCwgY29udmVydGVyQ29udGV4dCk7XG5cblx0cmV0dXJuIGluc2VydEN1c3RvbUVsZW1lbnRzKFxuXHRcdGFBbm5vdGF0aW9uQWN0aW9ucyxcblx0XHRnZXRBY3Rpb25zRnJvbU1hbmlmZXN0KFxuXHRcdFx0Y29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdENvbnRyb2xDb25maWd1cmF0aW9uKHZpc3VhbGl6YXRpb25QYXRoKS5hY3Rpb25zLFxuXHRcdFx0Y29udmVydGVyQ29udGV4dCxcblx0XHRcdGFBbm5vdGF0aW9uQWN0aW9uc1xuXHRcdCksXG5cdFx0eyBlbmFibGVPblNlbGVjdDogXCJvdmVyd3JpdGVcIiwgZW5hYmxlZDogXCJvdmVyd3JpdGVcIiB9XG5cdCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQMTNuTW9kZSh2aXN1YWxpemF0aW9uUGF0aDogc3RyaW5nLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0Y29uc3QgbWFuaWZlc3RXcmFwcGVyOiBNYW5pZmVzdFdyYXBwZXIgPSBjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpO1xuXHRjb25zdCBjaGFydE1hbmlmZXN0U2V0dGluZ3M6IENoYXJ0TWFuaWZlc3RDb25maWd1cmF0aW9uID0gY29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdENvbnRyb2xDb25maWd1cmF0aW9uKHZpc3VhbGl6YXRpb25QYXRoKTtcblx0Y29uc3QgaGFzVmFyaWFudE1hbmFnZW1lbnQ6IGJvb2xlYW4gPSBbXCJQYWdlXCIsIFwiQ29udHJvbFwiXS5pbmRleE9mKG1hbmlmZXN0V3JhcHBlci5nZXRWYXJpYW50TWFuYWdlbWVudCgpKSA+IC0xO1xuXHRsZXQgcGVyc29uYWxpemF0aW9uOiBDaGFydFBlcnNvbmFsaXphdGlvbk1hbmlmZXN0U2V0dGluZ3MgPSB0cnVlO1xuXHRjb25zdCBhUGVyc29uYWxpemF0aW9uOiBzdHJpbmdbXSA9IFtdO1xuXHRpZiAoY2hhcnRNYW5pZmVzdFNldHRpbmdzPy5jaGFydFNldHRpbmdzPy5wZXJzb25hbGl6YXRpb24gIT09IHVuZGVmaW5lZCkge1xuXHRcdHBlcnNvbmFsaXphdGlvbiA9IGNoYXJ0TWFuaWZlc3RTZXR0aW5ncy5jaGFydFNldHRpbmdzLnBlcnNvbmFsaXphdGlvbjtcblx0fVxuXHRpZiAoaGFzVmFyaWFudE1hbmFnZW1lbnQgJiYgcGVyc29uYWxpemF0aW9uKSB7XG5cdFx0aWYgKHBlcnNvbmFsaXphdGlvbiA9PT0gdHJ1ZSkge1xuXHRcdFx0cmV0dXJuIFwiU29ydCxUeXBlLEl0ZW1cIjtcblx0XHR9IGVsc2UgaWYgKHR5cGVvZiBwZXJzb25hbGl6YXRpb24gPT09IFwib2JqZWN0XCIpIHtcblx0XHRcdGlmIChwZXJzb25hbGl6YXRpb24udHlwZSkge1xuXHRcdFx0XHRhUGVyc29uYWxpemF0aW9uLnB1c2goXCJUeXBlXCIpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHBlcnNvbmFsaXphdGlvbi5pdGVtKSB7XG5cdFx0XHRcdGFQZXJzb25hbGl6YXRpb24ucHVzaChcIkl0ZW1cIik7XG5cdFx0XHR9XG5cdFx0XHRpZiAocGVyc29uYWxpemF0aW9uLnNvcnQpIHtcblx0XHRcdFx0YVBlcnNvbmFsaXphdGlvbi5wdXNoKFwiU29ydFwiKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBhUGVyc29uYWxpemF0aW9uLmpvaW4oXCIsXCIpO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIENyZWF0ZSB0aGUgQ2hhcnRWaXN1YWxpemF0aW9uIGNvbmZpZ3VyYXRpb24gdGhhdCB3aWxsIGJlIHVzZWQgdG8gZGlzcGxheSBhIGNoYXJ0IHZpYSBDaGFydCBNYWNyby5cbiAqXG4gKiBAcGFyYW0ge0NoYXJ0RGVmaW5pdGlvblR5cGVUeXBlc30gY2hhcnRBbm5vdGF0aW9uIFRoZSB0YXJnZXQgY2hhcnQgYW5ub3RhdGlvblxuICogQHBhcmFtIHtzdHJpbmd9IHZpc3VhbGl6YXRpb25QYXRoIFRoZSBjdXJyZW50IHZpc3VhbGl6YXRpb24gYW5ub3RhdGlvbiBwYXRoXG4gKiBAcGFyYW0ge0NvbnZlcnRlckNvbnRleHR9IGNvbnZlcnRlckNvbnRleHQgVGhlIGNvbnZlcnRlciBjb250ZXh0XG4gKiBAcGFyYW0ge2Jvb2xlYW59IGRvTm90Q2hlY2tBcHBseVN1cHBvcnRlZCBGbGFnIHRoYXQgdGVsbHMgd2hldGhlciBhcHBseXN1cHBvcnRlZCB0byBiZSBjaGVja2VkIG9yIG5vdFxuICogQHJldHVybnMge0NoYXJ0VmlzdWFsaXphdGlvbn0gVGhlIGNoYXJ0IHZpc3VhbGl6YXRpb24gYmFzZWQgb24gdGhlIGFubm90YXRpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNoYXJ0VmlzdWFsaXphdGlvbihcblx0Y2hhcnRBbm5vdGF0aW9uOiBDaGFydERlZmluaXRpb25UeXBlVHlwZXMsXG5cdHZpc3VhbGl6YXRpb25QYXRoOiBzdHJpbmcsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdGRvTm90Q2hlY2tBcHBseVN1cHBvcnRlZD86IGJvb2xlYW5cbik6IENoYXJ0VmlzdWFsaXphdGlvbiB7XG5cdGNvbnN0IGFnZ3JlZ2F0aW9uSGVscGVyID0gbmV3IEFnZ3JlZ2F0aW9uSGVscGVyKGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpLCBjb252ZXJ0ZXJDb250ZXh0KTtcblx0aWYgKCFkb05vdENoZWNrQXBwbHlTdXBwb3J0ZWQgJiYgIWFnZ3JlZ2F0aW9uSGVscGVyLmlzQW5hbHl0aWNzU3VwcG9ydGVkKCkpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJBcHBseVN1cHBvcnRlZCBpcyBub3QgYWRkZWQgdG8gdGhlIGFubm90YXRpb25zXCIpO1xuXHR9XG5cdGNvbnN0IGFUcmFuc0FnZ0Fubm9zID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCkuYW5ub3RhdGlvbnMuQW5hbHl0aWNzPy5BZ2dyZWdhdGVkUHJvcGVydGllcyBhcyBhbnk7XG5cdGNvbnN0IHRyYW5zQWdnTGFiZWxzID0ge30gYXMgYW55O1xuXG5cdGZvciAobGV0IGkgPSAwOyBhVHJhbnNBZ2dBbm5vcyAmJiBpIDwgYVRyYW5zQWdnQW5ub3MubGVuZ3RoOyBpKyspIHtcblx0XHR0cmFuc0FnZ0xhYmVsc1thVHJhbnNBZ2dBbm5vc1tpXS5OYW1lXSA9IHtcblx0XHRcdGxhYmVsOiBhVHJhbnNBZ2dBbm5vc1tpXT8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uTGFiZWxcblx0XHR9O1xuXHR9XG5cblx0Y29uc3QgYUN1c3RvbUFnZ3JlZ2F0ZXMgPSBhZ2dyZWdhdGlvbkhlbHBlci5nZXRDdXN0b21BZ2dyZWdhdGVEZWZpbml0aW9ucygpO1xuXHRjb25zdCBtQ3VzdG9tQWdncmVnYXRlcyA9IHt9IGFzIGFueTtcblx0aWYgKGFDdXN0b21BZ2dyZWdhdGVzKSB7XG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhQ3VzdG9tQWdncmVnYXRlcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0Y29uc3QgYUNvbnRleHREZWZpbmluZ1Byb3BlcnRpZXMgPSBhQ3VzdG9tQWdncmVnYXRlc1tpXS5hbm5vdGF0aW9ucz8uQWdncmVnYXRpb24/LkNvbnRleHREZWZpbmluZ1Byb3BlcnRpZXM7XG5cdFx0XHRtQ3VzdG9tQWdncmVnYXRlc1thQ3VzdG9tQWdncmVnYXRlc1tpXS5xdWFsaWZpZXJdID0ge1xuXHRcdFx0XHRuYW1lOiBhQ3VzdG9tQWdncmVnYXRlc1tpXS5xdWFsaWZpZXIsXG5cdFx0XHRcdGxhYmVsOiBcIkN1c3RvbSBBZ2dyZWdhdGUgKFwiICsgYUN1c3RvbUFnZ3JlZ2F0ZXNbaV0ucXVhbGlmaWVyICsgXCIpXCIsXG5cdFx0XHRcdHNvcnRhYmxlOiB0cnVlLFxuXHRcdFx0XHRzb3J0T3JkZXI6IFwiYm90aFwiLFxuXHRcdFx0XHRjb250ZXh0RGVmaW5pbmdQcm9wZXJ0eTogYUNvbnRleHREZWZpbmluZ1Byb3BlcnRpZXNcblx0XHRcdFx0XHQ/IGFDb250ZXh0RGVmaW5pbmdQcm9wZXJ0aWVzLm1hcChvQ3R4RGVmUHJvcGVydHkgPT4ge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gb0N0eERlZlByb3BlcnR5LnZhbHVlO1xuXHRcdFx0XHRcdCAgfSlcblx0XHRcdFx0XHQ6IFtdXG5cdFx0XHR9O1xuXHRcdH1cblx0fVxuXG5cdGNvbnN0IGFUcmFuc0FnZ3JlZ2F0aW9ucyA9IGFnZ3JlZ2F0aW9uSGVscGVyLmdldFRyYW5zQWdncmVnYXRpb25zKClbMF07XG5cdGNvbnN0IG1UcmFuc0FnZ3JlZ2F0aW9ucyA9IHt9IGFzIGFueTtcblx0aWYgKGFUcmFuc0FnZ3JlZ2F0aW9ucykge1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYVRyYW5zQWdncmVnYXRpb25zLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRtVHJhbnNBZ2dyZWdhdGlvbnNbYVRyYW5zQWdncmVnYXRpb25zW2ldLk5hbWVdID0ge1xuXHRcdFx0XHRuYW1lOiBhVHJhbnNBZ2dyZWdhdGlvbnNbaV0uTmFtZSxcblx0XHRcdFx0cHJvcGVydHlQYXRoOiBhVHJhbnNBZ2dyZWdhdGlvbnNbaV0uQWdncmVnYXRhYmxlUHJvcGVydHkudmFsdWVPZigpLnZhbHVlLFxuXHRcdFx0XHRhZ2dyZWdhdGlvbk1ldGhvZDogYVRyYW5zQWdncmVnYXRpb25zW2ldLkFnZ3JlZ2F0aW9uTWV0aG9kLFxuXHRcdFx0XHRsYWJlbDpcblx0XHRcdFx0XHRhVHJhbnNBZ2dyZWdhdGlvbnNbaV0uTmFtZSBpbiB0cmFuc0FnZ0xhYmVsc1xuXHRcdFx0XHRcdFx0PyB0cmFuc0FnZ0xhYmVsc1thVHJhbnNBZ2dyZWdhdGlvbnNbaV0uTmFtZV0ubGFiZWxcblx0XHRcdFx0XHRcdDogXCJBZ2dyZWdhdGFibGUgcHJvcGVydHkgKFwiICsgYVRyYW5zQWdncmVnYXRpb25zW2ldLk5hbWUgKyBcIilcIixcblx0XHRcdFx0c29ydGFibGU6IHRydWUsXG5cdFx0XHRcdHNvcnRPcmRlcjogXCJib3RoXCIsXG5cdFx0XHRcdGN1c3RvbTogZmFsc2Vcblx0XHRcdH07XG5cdFx0fVxuXHR9XG5cblx0Y29uc3QgYUFnZ1Byb3BzID0gYWdncmVnYXRpb25IZWxwZXIuZ2V0QWdncmVnYXRhYmxlUHJvcGVydGllcygpO1xuXHRjb25zdCBhR3JwUHJvcHMgPSBhZ2dyZWdhdGlvbkhlbHBlci5nZXRHcm91cGFibGVQcm9wZXJ0aWVzKCk7XG5cdGNvbnN0IG1BcHBseVN1cHBvcnRlZCA9IHt9IGFzIGFueTtcblx0bUFwcGx5U3VwcG9ydGVkLiRUeXBlID0gXCJPcmcuT0RhdGEuQWdncmVnYXRpb24uVjEuQXBwbHlTdXBwb3J0ZWRUeXBlXCI7XG5cdG1BcHBseVN1cHBvcnRlZC5BZ2dyZWdhdGFibGVQcm9wZXJ0aWVzID0gW107XG5cdG1BcHBseVN1cHBvcnRlZC5Hcm91cGFibGVQcm9wZXJ0aWVzID0gW107XG5cblx0Zm9yIChsZXQgaSA9IDA7IGFBZ2dQcm9wcyAmJiBpIDwgYUFnZ1Byb3BzLmxlbmd0aDsgaSsrKSB7XG5cdFx0Y29uc3Qgb2JqID0ge1xuXHRcdFx0JFR5cGU6IGFBZ2dQcm9wc1tpXT8uJFR5cGUsXG5cdFx0XHRQcm9wZXJ0eToge1xuXHRcdFx0XHQkUHJvcGVydHlQYXRoOiBhQWdnUHJvcHNbaV0/LlByb3BlcnR5Py52YWx1ZVxuXHRcdFx0fVxuXHRcdH07XG5cblx0XHRtQXBwbHlTdXBwb3J0ZWQuQWdncmVnYXRhYmxlUHJvcGVydGllcy5wdXNoKG9iaik7XG5cdH1cblxuXHRmb3IgKGxldCBpID0gMDsgYUdycFByb3BzICYmIGkgPCBhR3JwUHJvcHMubGVuZ3RoOyBpKyspIHtcblx0XHRjb25zdCBvYmogPSB7ICRQcm9wZXJ0eVBhdGg6IGFHcnBQcm9wc1tpXT8udmFsdWUgfTtcblxuXHRcdG1BcHBseVN1cHBvcnRlZC5Hcm91cGFibGVQcm9wZXJ0aWVzLnB1c2gob2JqKTtcblx0fVxuXG5cdGNvbnN0IGNoYXJ0QWN0aW9ucyA9IGdldENoYXJ0QWN0aW9ucyhjaGFydEFubm90YXRpb24sIHZpc3VhbGl6YXRpb25QYXRoLCBjb252ZXJ0ZXJDb250ZXh0KTtcblx0bGV0IFtuYXZpZ2F0aW9uUHJvcGVydHlQYXRoIC8qLCBhbm5vdGF0aW9uUGF0aCovXSA9IHZpc3VhbGl6YXRpb25QYXRoLnNwbGl0KFwiQFwiKTtcblx0aWYgKG5hdmlnYXRpb25Qcm9wZXJ0eVBhdGgubGFzdEluZGV4T2YoXCIvXCIpID09PSBuYXZpZ2F0aW9uUHJvcGVydHlQYXRoLmxlbmd0aCAtIDEpIHtcblx0XHQvLyBEcm9wIHRyYWlsaW5nIHNsYXNoXG5cdFx0bmF2aWdhdGlvblByb3BlcnR5UGF0aCA9IG5hdmlnYXRpb25Qcm9wZXJ0eVBhdGguc3Vic3RyKDAsIG5hdmlnYXRpb25Qcm9wZXJ0eVBhdGgubGVuZ3RoIC0gMSk7XG5cdH1cblx0Y29uc3QgdGl0bGU6IGFueSA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLnRhcmdldEVudGl0eVR5cGUuYW5ub3RhdGlvbnM/LlVJPy5IZWFkZXJJbmZvPy5UeXBlTmFtZVBsdXJhbDtcblx0Y29uc3QgZGF0YU1vZGVsUGF0aCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpO1xuXHRjb25zdCBpc0VudGl0eVNldDogYm9vbGVhbiA9IG5hdmlnYXRpb25Qcm9wZXJ0eVBhdGgubGVuZ3RoID09PSAwO1xuXHRjb25zdCBlbnRpdHlOYW1lOiBzdHJpbmcgPSBkYXRhTW9kZWxQYXRoLnRhcmdldEVudGl0eVNldCA/IGRhdGFNb2RlbFBhdGgudGFyZ2V0RW50aXR5U2V0Lm5hbWUgOiBkYXRhTW9kZWxQYXRoLnN0YXJ0aW5nRW50aXR5U2V0Lm5hbWU7XG5cdGNvbnN0IHNGaWx0ZXJiYXJJZCA9IGlzRW50aXR5U2V0ID8gRmlsdGVyQmFySUQoY29udmVydGVyQ29udGV4dC5nZXRDb250ZXh0UGF0aCgpKSA6IHVuZGVmaW5lZDtcblx0Y29uc3Qgb1ZpelByb3BlcnRpZXMgPSB7XG5cdFx0XCJsZWdlbmRHcm91cFwiOiB7XG5cdFx0XHRcImxheW91dFwiOiB7XG5cdFx0XHRcdFwicG9zaXRpb25cIjogXCJib3R0b21cIlxuXHRcdFx0fVxuXHRcdH1cblx0fTtcblx0bGV0IGF1dG9CaW5kT25Jbml0OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXHRpZiAoY29udmVydGVyQ29udGV4dC5nZXRUZW1wbGF0ZVR5cGUoKSA9PT0gVGVtcGxhdGVUeXBlLk9iamVjdFBhZ2UpIHtcblx0XHRhdXRvQmluZE9uSW5pdCA9IHRydWU7XG5cdH0gZWxzZSBpZiAoXG5cdFx0Y29udmVydGVyQ29udGV4dC5nZXRUZW1wbGF0ZVR5cGUoKSA9PT0gVGVtcGxhdGVUeXBlLkxpc3RSZXBvcnQgfHxcblx0XHRjb252ZXJ0ZXJDb250ZXh0LmdldFRlbXBsYXRlVHlwZSgpID09PSBUZW1wbGF0ZVR5cGUuQW5hbHl0aWNhbExpc3RQYWdlXG5cdCkge1xuXHRcdGF1dG9CaW5kT25Jbml0ID0gZmFsc2U7XG5cdH1cblx0Y29uc3QgaGFzTXVsdGlwbGVWaXN1YWxpemF0aW9ucyA9XG5cdFx0Y29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdFdyYXBwZXIoKS5oYXNNdWx0aXBsZVZpc3VhbGl6YXRpb25zKCkgfHwgY29udmVydGVyQ29udGV4dC5nZXRUZW1wbGF0ZVR5cGUoKSA9PT0gXCJBbmFseXRpY2FsTGlzdFBhZ2VcIjtcblx0Y29uc3Qgb25TZWdtZW50ZWRCdXR0b25QcmVzc2VkID0gaGFzTXVsdGlwbGVWaXN1YWxpemF0aW9ucyA/IFwiLmhhbmRsZXJzLm9uU2VnbWVudGVkQnV0dG9uUHJlc3NlZFwiIDogXCJcIjtcblx0Y29uc3QgdmlzaWJsZSA9IGhhc011bHRpcGxlVmlzdWFsaXphdGlvbnMgPyBcIns9ICR7cGFnZUludGVybmFsPmFscENvbnRlbnRWaWV3fSAhPT0gJ1RhYmxlJ31cIiA6IFwidHJ1ZVwiO1xuXHRyZXR1cm4ge1xuXHRcdHR5cGU6IFZpc3VhbGl6YXRpb25UeXBlLkNoYXJ0LFxuXHRcdGlkOiBDaGFydElEKGlzRW50aXR5U2V0ID8gZW50aXR5TmFtZSA6IG5hdmlnYXRpb25Qcm9wZXJ0eVBhdGgsIFZpc3VhbGl6YXRpb25UeXBlLkNoYXJ0KSxcblx0XHRjb2xsZWN0aW9uOiBnZXRUYXJnZXRPYmplY3RQYXRoKGNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpKSxcblx0XHRlbnRpdHlOYW1lOiBlbnRpdHlOYW1lLFxuXHRcdHBlcnNvbmFsaXphdGlvbjogZ2V0UDEzbk1vZGUodmlzdWFsaXphdGlvblBhdGgsIGNvbnZlcnRlckNvbnRleHQpLFxuXHRcdG5hdmlnYXRpb25QYXRoOiBuYXZpZ2F0aW9uUHJvcGVydHlQYXRoLFxuXHRcdGFubm90YXRpb25QYXRoOiBjb252ZXJ0ZXJDb250ZXh0LmdldEFic29sdXRlQW5ub3RhdGlvblBhdGgodmlzdWFsaXphdGlvblBhdGgpLFxuXHRcdGZpbHRlcklkOiBzRmlsdGVyYmFySWQsXG5cdFx0dml6UHJvcGVydGllczogSlNPTi5zdHJpbmdpZnkob1ZpelByb3BlcnRpZXMpLFxuXHRcdGFjdGlvbnM6IGNoYXJ0QWN0aW9ucyxcblx0XHR0aXRsZTogdGl0bGUsXG5cdFx0YXV0b0JpbmRPbkluaXQ6IGF1dG9CaW5kT25Jbml0LFxuXHRcdG9uU2VnbWVudGVkQnV0dG9uUHJlc3NlZDogb25TZWdtZW50ZWRCdXR0b25QcmVzc2VkLFxuXHRcdHZpc2libGU6IHZpc2libGUsXG5cdFx0Y3VzdG9tQWdnOiBtQ3VzdG9tQWdncmVnYXRlcyxcblx0XHR0cmFuc0FnZzogbVRyYW5zQWdncmVnYXRpb25zLFxuXHRcdGFwcGx5U3VwcG9ydGVkOiBtQXBwbHlTdXBwb3J0ZWRcblx0fTtcbn1cbiJdfQ==
287
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNoYXJ0LnRzIl0sIm5hbWVzIjpbImdldENoYXJ0QWN0aW9uc0Zyb21Bbm5vdGF0aW9ucyIsImNoYXJ0QW5ub3RhdGlvbiIsInZpc3VhbGl6YXRpb25QYXRoIiwiY29udmVydGVyQ29udGV4dCIsImNoYXJ0QWN0aW9ucyIsImFBY3Rpb25zIiwiQWN0aW9ucyIsImZvckVhY2giLCJkYXRhRmllbGQiLCJjaGFydEFjdGlvbiIsImlzRGF0YUZpZWxkRm9yQWN0aW9uQWJzdHJhY3QiLCJhbm5vdGF0aW9ucyIsIlVJIiwiSGlkZGVuIiwidmFsdWVPZiIsIklubGluZSIsIkRldGVybWluaW5nIiwiQWN0aW9uVGFyZ2V0IiwiaXNCb3VuZCIsImtleSIsIktleUhlbHBlciIsImdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZCIsIiRUeXBlIiwidHlwZSIsIkFjdGlvblR5cGUiLCJEYXRhRmllbGRGb3JBY3Rpb24iLCJhbm5vdGF0aW9uUGF0aCIsImdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgiLCJmdWxseVF1YWxpZmllZE5hbWUiLCJEYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb24iLCJwdXNoIiwiZ2V0Q2hhcnRBY3Rpb25zIiwiYUFubm90YXRpb25BY3Rpb25zIiwiaW5zZXJ0Q3VzdG9tRWxlbWVudHMiLCJnZXRBY3Rpb25zRnJvbU1hbmlmZXN0IiwiZ2V0TWFuaWZlc3RDb250cm9sQ29uZmlndXJhdGlvbiIsImFjdGlvbnMiLCJlbmFibGVPblNlbGVjdCIsImVuYWJsZWQiLCJnZXRQMTNuTW9kZSIsIm1hbmlmZXN0V3JhcHBlciIsImdldE1hbmlmZXN0V3JhcHBlciIsImNoYXJ0TWFuaWZlc3RTZXR0aW5ncyIsImhhc1ZhcmlhbnRNYW5hZ2VtZW50IiwiaW5kZXhPZiIsImdldFZhcmlhbnRNYW5hZ2VtZW50IiwicGVyc29uYWxpemF0aW9uIiwiYVBlcnNvbmFsaXphdGlvbiIsImNoYXJ0U2V0dGluZ3MiLCJ1bmRlZmluZWQiLCJpdGVtIiwic29ydCIsImpvaW4iLCJjcmVhdGVDaGFydFZpc3VhbGl6YXRpb24iLCJkb05vdENoZWNrQXBwbHlTdXBwb3J0ZWQiLCJhZ2dyZWdhdGlvbkhlbHBlciIsIkFnZ3JlZ2F0aW9uSGVscGVyIiwiZ2V0RW50aXR5VHlwZSIsImlzQW5hbHl0aWNzU3VwcG9ydGVkIiwiRXJyb3IiLCJhVHJhbnNBZ2dBbm5vcyIsIkFuYWx5dGljcyIsIkFnZ3JlZ2F0ZWRQcm9wZXJ0aWVzIiwidHJhbnNBZ2dMYWJlbHMiLCJpIiwibGVuZ3RoIiwiTmFtZSIsImxhYmVsIiwiQ29tbW9uIiwiTGFiZWwiLCJhQ3VzdG9tQWdncmVnYXRlcyIsImdldEN1c3RvbUFnZ3JlZ2F0ZURlZmluaXRpb25zIiwibUN1c3RvbUFnZ3JlZ2F0ZXMiLCJhQ29udGV4dERlZmluaW5nUHJvcGVydGllcyIsIkFnZ3JlZ2F0aW9uIiwiQ29udGV4dERlZmluaW5nUHJvcGVydGllcyIsInF1YWxpZmllciIsIm5hbWUiLCJzb3J0YWJsZSIsInNvcnRPcmRlciIsImNvbnRleHREZWZpbmluZ1Byb3BlcnR5IiwibWFwIiwib0N0eERlZlByb3BlcnR5IiwidmFsdWUiLCJhVHJhbnNBZ2dyZWdhdGlvbnMiLCJnZXRUcmFuc0FnZ3JlZ2F0aW9ucyIsIm1UcmFuc0FnZ3JlZ2F0aW9ucyIsInByb3BlcnR5UGF0aCIsIkFnZ3JlZ2F0YWJsZVByb3BlcnR5IiwiYWdncmVnYXRpb25NZXRob2QiLCJBZ2dyZWdhdGlvbk1ldGhvZCIsImN1c3RvbSIsImFBZ2dQcm9wcyIsImdldEFnZ3JlZ2F0YWJsZVByb3BlcnRpZXMiLCJhR3JwUHJvcHMiLCJnZXRHcm91cGFibGVQcm9wZXJ0aWVzIiwibUFwcGx5U3VwcG9ydGVkIiwiQWdncmVnYXRhYmxlUHJvcGVydGllcyIsIkdyb3VwYWJsZVByb3BlcnRpZXMiLCJvYmoiLCJQcm9wZXJ0eSIsIiRQcm9wZXJ0eVBhdGgiLCJzcGxpdCIsIm5hdmlnYXRpb25Qcm9wZXJ0eVBhdGgiLCJsYXN0SW5kZXhPZiIsInN1YnN0ciIsInRpdGxlIiwiZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCIsInRhcmdldEVudGl0eVR5cGUiLCJIZWFkZXJJbmZvIiwiVHlwZU5hbWVQbHVyYWwiLCJkYXRhTW9kZWxQYXRoIiwiaXNFbnRpdHlTZXQiLCJlbnRpdHlOYW1lIiwidGFyZ2V0RW50aXR5U2V0Iiwic3RhcnRpbmdFbnRpdHlTZXQiLCJzRmlsdGVyYmFySWQiLCJGaWx0ZXJCYXJJRCIsImdldENvbnRleHRQYXRoIiwib1ZpelByb3BlcnRpZXMiLCJhdXRvQmluZE9uSW5pdCIsImdldFRlbXBsYXRlVHlwZSIsIlRlbXBsYXRlVHlwZSIsIk9iamVjdFBhZ2UiLCJMaXN0UmVwb3J0IiwiQW5hbHl0aWNhbExpc3RQYWdlIiwiaGFzTXVsdGlwbGVWaXN1YWxpemF0aW9ucyIsIm9uU2VnbWVudGVkQnV0dG9uUHJlc3NlZCIsInZpc2libGUiLCJhbGxvd2VkVHJhbnNmb3JtYXRpb25zIiwiZ2V0QWxsb3dlZFRyYW5zZm9ybWF0aW9ucyIsImVuYWJsZVNlYXJjaCIsIlZpc3VhbGl6YXRpb25UeXBlIiwiQ2hhcnQiLCJpZCIsIkNoYXJ0SUQiLCJjb2xsZWN0aW9uIiwiZ2V0VGFyZ2V0T2JqZWN0UGF0aCIsIm5hdmlnYXRpb25QYXRoIiwiZ2V0QWJzb2x1dGVBbm5vdGF0aW9uUGF0aCIsImZpbHRlcklkIiwidml6UHJvcGVydGllcyIsIkpTT04iLCJzdHJpbmdpZnkiLCJjdXN0b21BZ2ciLCJ0cmFuc0FnZyIsImFwcGx5U3VwcG9ydGVkIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTRDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBU0EsOEJBQVQsQ0FDQ0MsZUFERCxFQUVDQyxpQkFGRCxFQUdDQyxnQkFIRCxFQUlnQjtBQUNmLFFBQU1DLFlBQTBCLEdBQUcsRUFBbkM7O0FBQ0EsUUFBSUgsZUFBSixFQUFxQjtBQUNwQixVQUFNSSxRQUFRLEdBQUdKLGVBQWUsQ0FBQ0ssT0FB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VSxFQUFFQyxtQkFBbUIsQ0FBQ3RJLGdCQUFnQixDQUFDd0csc0JBQWpCLEVBQUQsQ0FIekI7QUFJTk0sTUFBQUEsVUFBVSxFQUFFQSxVQUpOO0FBS05uRSxNQUFBQSxlQUFlLEVBQUVQLFdBQVcsQ0FBQ3JDLGlCQUFELEVBQW9CQyxnQkFBcEIsQ0FMdEI7QUFNTnVJLE1BQUFBLGNBQWMsRUFBRW5DLHNCQU5WO0FBT043RSxNQUFBQSxjQUFjLEVBQUV2QixnQkFBZ0IsQ0FBQ3dJLHlCQUFqQixDQUEyQ3pJLGlCQUEzQyxDQVBWO0FBUU4wSSxNQUFBQSxRQUFRLEVBQUV4QixZQVJKO0FBU055QixNQUFBQSxhQUFhLEVBQUVDLElBQUksQ0FBQ0MsU0FBTCxDQUFleEIsY0FBZixDQVRUO0FBVU5uRixNQUFBQSxPQUFPLEVBQUVoQyxZQVZIO0FBV05zRyxNQUFBQSxLQUFLLEVBQUVBLEtBWEQ7QUFZTmMsTUFBQUEsY0FBYyxFQUFFQSxjQVpWO0FBYU5PLE1BQUFBLHdCQUF3QixFQUFFQSx3QkFicEI7QUFjTkMsTUFBQUEsT0FBTyxFQUFFQSxPQWRIO0FBZU5nQixNQUFBQSxTQUFTLEVBQUV4RSxpQkFmTDtBQWdCTnlFLE1BQUFBLFFBQVEsRUFBRTNELGtCQWhCSjtBQWlCTjRELE1BQUFBLGNBQWMsRUFBRWxEO0FBakJWLEtBQVA7QUFtQkEiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENoYXJ0TWFuaWZlc3RDb25maWd1cmF0aW9uLFxuXHRDaGFydFBlcnNvbmFsaXphdGlvbk1hbmlmZXN0U2V0dGluZ3MsXG5cdFZpc3VhbGl6YXRpb25UeXBlLFxuXHRBY3Rpb25UeXBlLFxuXHRUZW1wbGF0ZVR5cGVcbn0gZnJvbSBcIi4uLy4uL01hbmlmZXN0U2V0dGluZ3NcIjtcbmltcG9ydCB7IENoYXJ0RGVmaW5pdGlvblR5cGVUeXBlcywgRGF0YUZpZWxkQWJzdHJhY3RUeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHsgQW5ub3RhdGlvbkFjdGlvbiwgQmFzZUFjdGlvbiwgZ2V0QWN0aW9uc0Zyb21NYW5pZmVzdCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0NvbW1vbi9BY3Rpb25cIjtcbmltcG9ydCB7IGlzRGF0YUZpZWxkRm9yQWN0aW9uQWJzdHJhY3QgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9hbm5vdGF0aW9ucy9EYXRhRmllbGRcIjtcbmltcG9ydCB7IENoYXJ0SUQsIEZpbHRlckJhcklEIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvSURcIjtcbmltcG9ydCB7IGluc2VydEN1c3RvbUVsZW1lbnRzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9Db25maWd1cmFibGVPYmplY3RcIjtcbmltcG9ydCB7IEtleUhlbHBlciB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvS2V5XCI7XG5pbXBvcnQgeyBnZXRUYXJnZXRPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHsgQWdncmVnYXRpb25IZWxwZXIgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9BZ2dyZWdhdGlvblwiO1xuaW1wb3J0IE1hbmlmZXN0V3JhcHBlciBmcm9tIFwiLi4vLi4vTWFuaWZlc3RXcmFwcGVyXCI7XG5pbXBvcnQgQ29udmVydGVyQ29udGV4dCBmcm9tIFwiLi4vLi4vQ29udmVydGVyQ29udGV4dFwiO1xuXG4vKipcbiAqIEB0eXBlZGVmIENoYXJ0VmlzdWFsaXphdGlvblxuICovXG5leHBvcnQgdHlwZSBDaGFydFZpc3VhbGl6YXRpb24gPSB7XG5cdHR5cGU6IFZpc3VhbGl6YXRpb25UeXBlLkNoYXJ0O1xuXHRpZDogc3RyaW5nO1xuXHRjb2xsZWN0aW9uOiBzdHJpbmc7XG5cdGVudGl0eU5hbWU6IHN0cmluZztcblx0cGVyc29uYWxpemF0aW9uPzogc3RyaW5nO1xuXHRuYXZpZ2F0aW9uUGF0aDogc3RyaW5nO1xuXHRhbm5vdGF0aW9uUGF0aDogc3RyaW5nO1xuXHRmaWx0ZXJJZD86IHN0cmluZztcblx0dml6UHJvcGVydGllczogc3RyaW5nO1xuXHRhY3Rpb25zOiBCYXNlQWN0aW9uW107XG5cdHRpdGxlOiBzdHJpbmc7XG5cdGF1dG9CaW5kT25Jbml0OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXHRvblNlZ21lbnRlZEJ1dHRvblByZXNzZWQ6IHN0cmluZztcblx0dmlzaWJsZTogc3RyaW5nO1xuXHRjdXN0b21BZ2c6IG9iamVjdDtcblx0dHJhbnNBZ2c6IG9iamVjdDtcblx0YXBwbHlTdXBwb3J0ZWQ6IHtcblx0XHQkVHlwZTogc3RyaW5nO1xuXHRcdGVuYWJsZVNlYXJjaDogYm9vbGVhbjtcblx0XHRBZ2dyZWdhdGFibGVQcm9wZXJ0aWVzOiBhbnlbXTtcblx0XHRHcm91cGFibGVQcm9wZXJ0aWVzOiBhbnlbXTtcblx0fTtcbn07XG5cbi8qKlxuICogTWV0aG9kIHRvIHJldHJpZXZlIGFsbCBjaGFydCBhY3Rpb25zIGZyb20gYW5ub3RhdGlvbnMuXG4gKlxuICogQHBhcmFtIGNoYXJ0QW5ub3RhdGlvblxuICogQHBhcmFtIHZpc3VhbGl6YXRpb25QYXRoXG4gKiBAcGFyYW0gY29udmVydGVyQ29udGV4dFxuICogQHJldHVybnMge0Jhc2VBY3Rpb25bXX0gVGhlIHRhYmxlIGFubm90YXRpb24gYWN0aW9uc1xuICovXG5mdW5jdGlvbiBnZXRDaGFydEFjdGlvbnNGcm9tQW5ub3RhdGlvbnMoXG5cdGNoYXJ0QW5ub3RhdGlvbjogQ2hhcnREZWZpbml0aW9uVHlwZVR5cGVzLFxuXHR2aXN1YWxpemF0aW9uUGF0aDogc3RyaW5nLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0XG4pOiBCYXNlQWN0aW9uW10ge1xuXHRjb25zdCBjaGFydEFjdGlvbnM6IEJhc2VBY3Rpb25bXSA9IFtdO1xuXHRpZiAoY2hhcnRBbm5vdGF0aW9uKSB7XG5cdFx0Y29uc3QgYUFjdGlvbnMgPSBjaGFydEFubm90YXRpb24uQWN0aW9ucyB8fCBbXTtcblx0XHRhQWN0aW9ucy5mb3JFYWNoKChkYXRhRmllbGQ6IERhdGFGaWVsZEFic3RyYWN0VHlwZXMpID0+IHtcblx0XHRcdGxldCBjaGFydEFjdGlvbjogQW5ub3RhdGlvbkFjdGlvbiB8IHVuZGVmaW5lZDtcblx0XHRcdGlmIChcblx0XHRcdFx0aXNEYXRhRmllbGRGb3JBY3Rpb25BYnN0cmFjdChkYXRhRmllbGQpICYmXG5cdFx0XHRcdCEoZGF0YUZpZWxkLmFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgPT09IHRydWUpICYmXG5cdFx0XHRcdCFkYXRhRmllbGQuSW5saW5lICYmXG5cdFx0XHRcdCFkYXRhRmllbGQuRGV0ZXJtaW5pbmcgJiZcblx0XHRcdFx0IShkYXRhRmllbGQgYXMgYW55KT8uQWN0aW9uVGFyZ2V0Py5pc0JvdW5kXG5cdFx0XHQpIHtcblx0XHRcdFx0Y29uc3Qga2V5ID0gS2V5SGVscGVyLmdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZChkYXRhRmllbGQpO1xuXHRcdFx0XHRzd2l0Y2ggKGRhdGFGaWVsZC4kVHlwZSkge1xuXHRcdFx0XHRcdGNhc2UgXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRGb3JBY3Rpb25cIjpcblx0XHRcdFx0XHRcdGNoYXJ0QWN0aW9uID0ge1xuXHRcdFx0XHRcdFx0XHR0eXBlOiBBY3Rpb25UeXBlLkRhdGFGaWVsZEZvckFjdGlvbixcblx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChkYXRhRmllbGQuZnVsbHlRdWFsaWZpZWROYW1lKSxcblx0XHRcdFx0XHRcdFx0a2V5OiBrZXlcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRicmVhaztcblxuXHRcdFx0XHRcdGNhc2UgXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb25cIjpcblx0XHRcdFx0XHRcdGNoYXJ0QWN0aW9uID0ge1xuXHRcdFx0XHRcdFx0XHR0eXBlOiBBY3Rpb25UeXBlLkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbixcblx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChkYXRhRmllbGQuZnVsbHlRdWFsaWZpZWROYW1lKSxcblx0XHRcdFx0XHRcdFx0a2V5OiBrZXlcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKGNoYXJ0QWN0aW9uKSB7XG5cdFx0XHRcdGNoYXJ0QWN0aW9ucy5wdXNoKGNoYXJ0QWN0aW9uKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXHRyZXR1cm4gY2hhcnRBY3Rpb25zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2hhcnRBY3Rpb25zKFxuXHRjaGFydEFubm90YXRpb246IENoYXJ0RGVmaW5pdGlvblR5cGVUeXBlcyxcblx0dmlzdWFsaXphdGlvblBhdGg6IHN0cmluZyxcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dFxuKTogQmFzZUFjdGlvbltdIHtcblx0Y29uc3QgYUFubm90YXRpb25BY3Rpb25zOiBCYXNlQWN0aW9uW10gPSBnZXRDaGFydEFjdGlvbnNGcm9tQW5ub3RhdGlvbnMoY2hhcnRBbm5vdGF0aW9uLCB2aXN1YWxpemF0aW9uUGF0aCwgY29udmVydGVyQ29udGV4dCk7XG5cblx0cmV0dXJuIGluc2VydEN1c3RvbUVsZW1lbnRzKFxuXHRcdGFBbm5vdGF0aW9uQWN0aW9ucyxcblx0XHRnZXRBY3Rpb25zRnJvbU1hbmlmZXN0KFxuXHRcdFx0Y29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdENvbnRyb2xDb25maWd1cmF0aW9uKHZpc3VhbGl6YXRpb25QYXRoKS5hY3Rpb25zLFxuXHRcdFx0Y29udmVydGVyQ29udGV4dCxcblx0XHRcdGFBbm5vdGF0aW9uQWN0aW9uc1xuXHRcdCksXG5cdFx0eyBlbmFibGVPblNlbGVjdDogXCJvdmVyd3JpdGVcIiwgZW5hYmxlZDogXCJvdmVyd3JpdGVcIiB9XG5cdCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQMTNuTW9kZSh2aXN1YWxpemF0aW9uUGF0aDogc3RyaW5nLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0Y29uc3QgbWFuaWZlc3RXcmFwcGVyOiBNYW5pZmVzdFdyYXBwZXIgPSBjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpO1xuXHRjb25zdCBjaGFydE1hbmlmZXN0U2V0dGluZ3M6IENoYXJ0TWFuaWZlc3RDb25maWd1cmF0aW9uID0gY29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdENvbnRyb2xDb25maWd1cmF0aW9uKHZpc3VhbGl6YXRpb25QYXRoKTtcblx0Y29uc3QgaGFzVmFyaWFudE1hbmFnZW1lbnQ6IGJvb2xlYW4gPSBbXCJQYWdlXCIsIFwiQ29udHJvbFwiXS5pbmRleE9mKG1hbmlmZXN0V3JhcHBlci5nZXRWYXJpYW50TWFuYWdlbWVudCgpKSA+IC0xO1xuXHRsZXQgcGVyc29uYWxpemF0aW9uOiBDaGFydFBlcnNvbmFsaXphdGlvbk1hbmlmZXN0U2V0dGluZ3MgPSB0cnVlO1xuXHRjb25zdCBhUGVyc29uYWxpemF0aW9uOiBzdHJpbmdbXSA9IFtdO1xuXHRpZiAoY2hhcnRNYW5pZmVzdFNldHRpbmdzPy5jaGFydFNldHRpbmdzPy5wZXJzb25hbGl6YXRpb24gIT09IHVuZGVmaW5lZCkge1xuXHRcdHBlcnNvbmFsaXphdGlvbiA9IGNoYXJ0TWFuaWZlc3RTZXR0aW5ncy5jaGFydFNldHRpbmdzLnBlcnNvbmFsaXphdGlvbjtcblx0fVxuXHRpZiAoaGFzVmFyaWFudE1hbmFnZW1lbnQgJiYgcGVyc29uYWxpemF0aW9uKSB7XG5cdFx0aWYgKHBlcnNvbmFsaXphdGlvbiA9PT0gdHJ1ZSkge1xuXHRcdFx0cmV0dXJuIFwiU29ydCxUeXBlLEl0ZW1cIjtcblx0XHR9IGVsc2UgaWYgKHR5cGVvZiBwZXJzb25hbGl6YXRpb24gPT09IFwib2JqZWN0XCIpIHtcblx0XHRcdGlmIChwZXJzb25hbGl6YXRpb24udHlwZSkge1xuXHRcdFx0XHRhUGVyc29uYWxpemF0aW9uLnB1c2goXCJUeXBlXCIpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHBlcnNvbmFsaXphdGlvbi5pdGVtKSB7XG5cdFx0XHRcdGFQZXJzb25hbGl6YXRpb24ucHVzaChcIkl0ZW1cIik7XG5cdFx0XHR9XG5cdFx0XHRpZiAocGVyc29uYWxpemF0aW9uLnNvcnQpIHtcblx0XHRcdFx0YVBlcnNvbmFsaXphdGlvbi5wdXNoKFwiU29ydFwiKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBhUGVyc29uYWxpemF0aW9uLmpvaW4oXCIsXCIpO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIENyZWF0ZSB0aGUgQ2hhcnRWaXN1YWxpemF0aW9uIGNvbmZpZ3VyYXRpb24gdGhhdCB3aWxsIGJlIHVzZWQgdG8gZGlzcGxheSBhIGNoYXJ0IHVzaW5nIHRoZSBDaGFydCBidWlsZGluZyBibG9jay5cbiAqXG4gKiBAcGFyYW0ge0NoYXJ0RGVmaW5pdGlvblR5cGVUeXBlc30gY2hhcnRBbm5vdGF0aW9uIFRoZSB0YXJnZXQgY2hhcnQgYW5ub3RhdGlvblxuICogQHBhcmFtIHtzdHJpbmd9IHZpc3VhbGl6YXRpb25QYXRoIFRoZSBjdXJyZW50IHZpc3VhbGl6YXRpb24gYW5ub3RhdGlvbiBwYXRoXG4gKiBAcGFyYW0ge0NvbnZlcnRlckNvbnRleHR9IGNvbnZlcnRlckNvbnRleHQgVGhlIGNvbnZlcnRlciBjb250ZXh0XG4gKiBAcGFyYW0ge2Jvb2xlYW59IGRvTm90Q2hlY2tBcHBseVN1cHBvcnRlZCBGbGFnIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgYXBwbHlzdXBwb3J0ZWQgbmVlZHMgdG8gYmUgY2hlY2tlZCBvciBub3RcbiAqIEByZXR1cm5zIHtDaGFydFZpc3VhbGl6YXRpb259IFRoZSBjaGFydCB2aXN1YWxpemF0aW9uIGJhc2VkIG9uIHRoZSBhbm5vdGF0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDaGFydFZpc3VhbGl6YXRpb24oXG5cdGNoYXJ0QW5ub3RhdGlvbjogQ2hhcnREZWZpbml0aW9uVHlwZVR5cGVzLFxuXHR2aXN1YWxpemF0aW9uUGF0aDogc3RyaW5nLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHRkb05vdENoZWNrQXBwbHlTdXBwb3J0ZWQ/OiBib29sZWFuXG4pOiBDaGFydFZpc3VhbGl6YXRpb24ge1xuXHRjb25zdCBhZ2dyZWdhdGlvbkhlbHBlciA9IG5ldyBBZ2dyZWdhdGlvbkhlbHBlcihjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKSwgY29udmVydGVyQ29udGV4dCk7XG5cdGlmICghZG9Ob3RDaGVja0FwcGx5U3VwcG9ydGVkICYmICFhZ2dyZWdhdGlvbkhlbHBlci5pc0FuYWx5dGljc1N1cHBvcnRlZCgpKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKFwiQXBwbHlTdXBwb3J0ZWQgaXMgbm90IGFkZGVkIHRvIHRoZSBhbm5vdGF0aW9uc1wiKTtcblx0fVxuXHRjb25zdCBhVHJhbnNBZ2dBbm5vcyA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpLmFubm90YXRpb25zLkFuYWx5dGljcz8uQWdncmVnYXRlZFByb3BlcnRpZXMgYXMgYW55O1xuXHRjb25zdCB0cmFuc0FnZ0xhYmVscyA9IHt9IGFzIGFueTtcblxuXHRmb3IgKGxldCBpID0gMDsgYVRyYW5zQWdnQW5ub3MgJiYgaSA8IGFUcmFuc0FnZ0Fubm9zLmxlbmd0aDsgaSsrKSB7XG5cdFx0dHJhbnNBZ2dMYWJlbHNbYVRyYW5zQWdnQW5ub3NbaV0uTmFtZV0gPSB7XG5cdFx0XHRsYWJlbDogYVRyYW5zQWdnQW5ub3NbaV0/LmFubm90YXRpb25zPy5Db21tb24/LkxhYmVsXG5cdFx0fTtcblx0fVxuXG5cdGNvbnN0IGFDdXN0b21BZ2dyZWdhdGVzID0gYWdncmVnYXRpb25IZWxwZXIuZ2V0Q3VzdG9tQWdncmVnYXRlRGVmaW5pdGlvbnMoKTtcblx0Y29uc3QgbUN1c3RvbUFnZ3JlZ2F0ZXMgPSB7fSBhcyBhbnk7XG5cdGlmIChhQ3VzdG9tQWdncmVnYXRlcykge1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYUN1c3RvbUFnZ3JlZ2F0ZXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdGNvbnN0IGFDb250ZXh0RGVmaW5pbmdQcm9wZXJ0aWVzID0gYUN1c3RvbUFnZ3JlZ2F0ZXNbaV0uYW5ub3RhdGlvbnM/LkFnZ3JlZ2F0aW9uPy5Db250ZXh0RGVmaW5pbmdQcm9wZXJ0aWVzO1xuXHRcdFx0bUN1c3RvbUFnZ3JlZ2F0ZXNbYUN1c3RvbUFnZ3JlZ2F0ZXNbaV0ucXVhbGlmaWVyXSA9IHtcblx0XHRcdFx0bmFtZTogYUN1c3RvbUFnZ3JlZ2F0ZXNbaV0ucXVhbGlmaWVyLFxuXHRcdFx0XHRsYWJlbDogXCJDdXN0b20gQWdncmVnYXRlIChcIiArIGFDdXN0b21BZ2dyZWdhdGVzW2ldLnF1YWxpZmllciArIFwiKVwiLFxuXHRcdFx0XHRzb3J0YWJsZTogdHJ1ZSxcblx0XHRcdFx0c29ydE9yZGVyOiBcImJvdGhcIixcblx0XHRcdFx0Y29udGV4dERlZmluaW5nUHJvcGVydHk6IGFDb250ZXh0RGVmaW5pbmdQcm9wZXJ0aWVzXG5cdFx0XHRcdFx0PyBhQ29udGV4dERlZmluaW5nUHJvcGVydGllcy5tYXAob0N0eERlZlByb3BlcnR5ID0+IHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIG9DdHhEZWZQcm9wZXJ0eS52YWx1ZTtcblx0XHRcdFx0XHQgIH0pXG5cdFx0XHRcdFx0OiBbXVxuXHRcdFx0fTtcblx0XHR9XG5cdH1cblxuXHRjb25zdCBhVHJhbnNBZ2dyZWdhdGlvbnMgPSBhZ2dyZWdhdGlvbkhlbHBlci5nZXRUcmFuc0FnZ3JlZ2F0aW9ucygpWzBdO1xuXHRjb25zdCBtVHJhbnNBZ2dyZWdhdGlvbnMgPSB7fSBhcyBhbnk7XG5cdGlmIChhVHJhbnNBZ2dyZWdhdGlvbnMpIHtcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGFUcmFuc0FnZ3JlZ2F0aW9ucy5sZW5ndGg7IGkrKykge1xuXHRcdFx0bVRyYW5zQWdncmVnYXRpb25zW2FUcmFuc0FnZ3JlZ2F0aW9uc1tpXS5OYW1lXSA9IHtcblx0XHRcdFx0bmFtZTogYVRyYW5zQWdncmVnYXRpb25zW2ldLk5hbWUsXG5cdFx0XHRcdHByb3BlcnR5UGF0aDogYVRyYW5zQWdncmVnYXRpb25zW2ldLkFnZ3JlZ2F0YWJsZVByb3BlcnR5LnZhbHVlT2YoKS52YWx1ZSxcblx0XHRcdFx0YWdncmVnYXRpb25NZXRob2Q6IGFUcmFuc0FnZ3JlZ2F0aW9uc1tpXS5BZ2dyZWdhdGlvbk1ldGhvZCxcblx0XHRcdFx0bGFiZWw6XG5cdFx0XHRcdFx0YVRyYW5zQWdncmVnYXRpb25zW2ldLk5hbWUgaW4gdHJhbnNBZ2dMYWJlbHNcblx0XHRcdFx0XHRcdD8gdHJhbnNBZ2dMYWJlbHNbYVRyYW5zQWdncmVnYXRpb25zW2ldLk5hbWVdLmxhYmVsXG5cdFx0XHRcdFx0XHQ6IFwiQWdncmVnYXRhYmxlIHByb3BlcnR5IChcIiArIGFUcmFuc0FnZ3JlZ2F0aW9uc1tpXS5OYW1lICsgXCIpXCIsXG5cdFx0XHRcdHNvcnRhYmxlOiB0cnVlLFxuXHRcdFx0XHRzb3J0T3JkZXI6IFwiYm90aFwiLFxuXHRcdFx0XHRjdXN0b206IGZhbHNlXG5cdFx0XHR9O1xuXHRcdH1cblx0fVxuXG5cdGNvbnN0IGFBZ2dQcm9wcyA9IGFnZ3JlZ2F0aW9uSGVscGVyLmdldEFnZ3JlZ2F0YWJsZVByb3BlcnRpZXMoKTtcblx0Y29uc3QgYUdycFByb3BzID0gYWdncmVnYXRpb25IZWxwZXIuZ2V0R3JvdXBhYmxlUHJvcGVydGllcygpO1xuXHRjb25zdCBtQXBwbHlTdXBwb3J0ZWQgPSB7fSBhcyBhbnk7XG5cdG1BcHBseVN1cHBvcnRlZC4kVHlwZSA9IFwiT3JnLk9EYXRhLkFnZ3JlZ2F0aW9uLlYxLkFwcGx5U3VwcG9ydGVkVHlwZVwiO1xuXHRtQXBwbHlTdXBwb3J0ZWQuQWdncmVnYXRhYmxlUHJvcGVydGllcyA9IFtdO1xuXHRtQXBwbHlTdXBwb3J0ZWQuR3JvdXBhYmxlUHJvcGVydGllcyA9IFtdO1xuXG5cdGZvciAobGV0IGkgPSAwOyBhQWdnUHJvcHMgJiYgaSA8IGFBZ2dQcm9wcy5sZW5ndGg7IGkrKykge1xuXHRcdGNvbnN0IG9iaiA9IHtcblx0XHRcdCRUeXBlOiBhQWdnUHJvcHNbaV0/LiRUeXBlLFxuXHRcdFx0UHJvcGVydHk6IHtcblx0XHRcdFx0JFByb3BlcnR5UGF0aDogYUFnZ1Byb3BzW2ldPy5Qcm9wZXJ0eT8udmFsdWVcblx0XHRcdH1cblx0XHR9O1xuXG5cdFx0bUFwcGx5U3VwcG9ydGVkLkFnZ3JlZ2F0YWJsZVByb3BlcnRpZXMucHVzaChvYmopO1xuXHR9XG5cblx0Zm9yIChsZXQgaSA9IDA7IGFHcnBQcm9wcyAmJiBpIDwgYUdycFByb3BzLmxlbmd0aDsgaSsrKSB7XG5cdFx0Y29uc3Qgb2JqID0geyAkUHJvcGVydHlQYXRoOiBhR3JwUHJvcHNbaV0/LnZhbHVlIH07XG5cblx0XHRtQXBwbHlTdXBwb3J0ZWQuR3JvdXBhYmxlUHJvcGVydGllcy5wdXNoKG9iaik7XG5cdH1cblxuXHRjb25zdCBjaGFydEFjdGlvbnMgPSBnZXRDaGFydEFjdGlvbnMoY2hhcnRBbm5vdGF0aW9uLCB2aXN1YWxpemF0aW9uUGF0aCwgY29udmVydGVyQ29udGV4dCk7XG5cdGxldCBbbmF2aWdhdGlvblByb3BlcnR5UGF0aCAvKiwgYW5ub3RhdGlvblBhdGgqL10gPSB2aXN1YWxpemF0aW9uUGF0aC5zcGxpdChcIkBcIik7XG5cdGlmIChuYXZpZ2F0aW9uUHJvcGVydHlQYXRoLmxhc3RJbmRleE9mKFwiL1wiKSA9PT0gbmF2aWdhdGlvblByb3BlcnR5UGF0aC5sZW5ndGggLSAxKSB7XG5cdFx0Ly8gRHJvcCB0cmFpbGluZyBzbGFzaFxuXHRcdG5hdmlnYXRpb25Qcm9wZXJ0eVBhdGggPSBuYXZpZ2F0aW9uUHJvcGVydHlQYXRoLnN1YnN0cigwLCBuYXZpZ2F0aW9uUHJvcGVydHlQYXRoLmxlbmd0aCAtIDEpO1xuXHR9XG5cdGNvbnN0IHRpdGxlOiBhbnkgPSBjb252ZXJ0ZXJDb250ZXh0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKS50YXJnZXRFbnRpdHlUeXBlLmFubm90YXRpb25zPy5VST8uSGVhZGVySW5mbz8uVHlwZU5hbWVQbHVyYWw7XG5cdGNvbnN0IGRhdGFNb2RlbFBhdGggPSBjb252ZXJ0ZXJDb250ZXh0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKTtcblx0Y29uc3QgaXNFbnRpdHlTZXQ6IGJvb2xlYW4gPSBuYXZpZ2F0aW9uUHJvcGVydHlQYXRoLmxlbmd0aCA9PT0gMDtcblx0Y29uc3QgZW50aXR5TmFtZTogc3RyaW5nID0gZGF0YU1vZGVsUGF0aC50YXJnZXRFbnRpdHlTZXQgPyBkYXRhTW9kZWxQYXRoLnRhcmdldEVudGl0eVNldC5uYW1lIDogZGF0YU1vZGVsUGF0aC5zdGFydGluZ0VudGl0eVNldC5uYW1lO1xuXHRjb25zdCBzRmlsdGVyYmFySWQgPSBpc0VudGl0eVNldCA/IEZpbHRlckJhcklEKGNvbnZlcnRlckNvbnRleHQuZ2V0Q29udGV4dFBhdGgoKSkgOiB1bmRlZmluZWQ7XG5cdGNvbnN0IG9WaXpQcm9wZXJ0aWVzID0ge1xuXHRcdFwibGVnZW5kR3JvdXBcIjoge1xuXHRcdFx0XCJsYXlvdXRcIjoge1xuXHRcdFx0XHRcInBvc2l0aW9uXCI6IFwiYm90dG9tXCJcblx0XHRcdH1cblx0XHR9XG5cdH07XG5cdGxldCBhdXRvQmluZE9uSW5pdDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblx0aWYgKGNvbnZlcnRlckNvbnRleHQuZ2V0VGVtcGxhdGVUeXBlKCkgPT09IFRlbXBsYXRlVHlwZS5PYmplY3RQYWdlKSB7XG5cdFx0YXV0b0JpbmRPbkluaXQgPSB0cnVlO1xuXHR9IGVsc2UgaWYgKFxuXHRcdGNvbnZlcnRlckNvbnRleHQuZ2V0VGVtcGxhdGVUeXBlKCkgPT09IFRlbXBsYXRlVHlwZS5MaXN0UmVwb3J0IHx8XG5cdFx0Y29udmVydGVyQ29udGV4dC5nZXRUZW1wbGF0ZVR5cGUoKSA9PT0gVGVtcGxhdGVUeXBlLkFuYWx5dGljYWxMaXN0UGFnZVxuXHQpIHtcblx0XHRhdXRvQmluZE9uSW5pdCA9IGZhbHNlO1xuXHR9XG5cdGNvbnN0IGhhc011bHRpcGxlVmlzdWFsaXphdGlvbnMgPVxuXHRcdGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCkuaGFzTXVsdGlwbGVWaXN1YWxpemF0aW9ucygpIHx8IGNvbnZlcnRlckNvbnRleHQuZ2V0VGVtcGxhdGVUeXBlKCkgPT09IFwiQW5hbHl0aWNhbExpc3RQYWdlXCI7XG5cdGNvbnN0IG9uU2VnbWVudGVkQnV0dG9uUHJlc3NlZCA9IGhhc011bHRpcGxlVmlzdWFsaXphdGlvbnMgPyBcIi5oYW5kbGVycy5vblNlZ21lbnRlZEJ1dHRvblByZXNzZWRcIiA6IFwiXCI7XG5cdGNvbnN0IHZpc2libGUgPSBoYXNNdWx0aXBsZVZpc3VhbGl6YXRpb25zID8gXCJ7PSAke3BhZ2VJbnRlcm5hbD5hbHBDb250ZW50Vmlld30gIT09ICdUYWJsZSd9XCIgOiBcInRydWVcIjtcblx0Y29uc3QgYWxsb3dlZFRyYW5zZm9ybWF0aW9ucyA9IGFnZ3JlZ2F0aW9uSGVscGVyLmdldEFsbG93ZWRUcmFuc2Zvcm1hdGlvbnMoKTtcblx0bUFwcGx5U3VwcG9ydGVkLmVuYWJsZVNlYXJjaCA9IGFsbG93ZWRUcmFuc2Zvcm1hdGlvbnMgPyBhbGxvd2VkVHJhbnNmb3JtYXRpb25zLmluZGV4T2YoXCJzZWFyY2hcIikgPj0gMCA6IHRydWU7XG5cblx0cmV0dXJuIHtcblx0XHR0eXBlOiBWaXN1YWxpemF0aW9uVHlwZS5DaGFydCxcblx0XHRpZDogQ2hhcnRJRChpc0VudGl0eVNldCA/IGVudGl0eU5hbWUgOiBuYXZpZ2F0aW9uUHJvcGVydHlQYXRoLCBWaXN1YWxpemF0aW9uVHlwZS5DaGFydCksXG5cdFx0Y29sbGVjdGlvbjogZ2V0VGFyZ2V0T2JqZWN0UGF0aChjb252ZXJ0ZXJDb250ZXh0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKSksXG5cdFx0ZW50aXR5TmFtZTogZW50aXR5TmFtZSxcblx0XHRwZXJzb25hbGl6YXRpb246IGdldFAxM25Nb2RlKHZpc3VhbGl6YXRpb25QYXRoLCBjb252ZXJ0ZXJDb250ZXh0KSxcblx0XHRuYXZpZ2F0aW9uUGF0aDogbmF2aWdhdGlvblByb3BlcnR5UGF0aCxcblx0XHRhbm5vdGF0aW9uUGF0aDogY29udmVydGVyQ29udGV4dC5nZXRBYnNvbHV0ZUFubm90YXRpb25QYXRoKHZpc3VhbGl6YXRpb25QYXRoKSxcblx0XHRmaWx0ZXJJZDogc0ZpbHRlcmJhcklkLFxuXHRcdHZpelByb3BlcnRpZXM6IEpTT04uc3RyaW5naWZ5KG9WaXpQcm9wZXJ0aWVzKSxcblx0XHRhY3Rpb25zOiBjaGFydEFjdGlvbnMsXG5cdFx0dGl0bGU6IHRpdGxlLFxuXHRcdGF1dG9CaW5kT25Jbml0OiBhdXRvQmluZE9uSW5pdCxcblx0XHRvblNlZ21lbnRlZEJ1dHRvblByZXNzZWQ6IG9uU2VnbWVudGVkQnV0dG9uUHJlc3NlZCxcblx0XHR2aXNpYmxlOiB2aXNpYmxlLFxuXHRcdGN1c3RvbUFnZzogbUN1c3RvbUFnZ3JlZ2F0ZXMsXG5cdFx0dHJhbnNBZ2c6IG1UcmFuc0FnZ3JlZ2F0aW9ucyxcblx0XHRhcHBseVN1cHBvcnRlZDogbUFwcGx5U3VwcG9ydGVkXG5cdH07XG59XG4iXX0=
@@ -2,4 +2,4 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2021 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["../../ManifestSettings","sap/fe/core/converters/controls/Common/Action","sap/fe/core/converters/annotations/DataField","../../helpers/ID","sap/fe/core/converters/helpers/ConfigurableObject","sap/fe/core/converters/helpers/Key","sap/fe/core/templating/DataModelPathHelper","../../helpers/Aggregation"],function(M,A,D,I,C,K,a,b){"use strict";var _={};var c=b.AggregationHelper;var g=a.getTargetObjectPath;var d=K.KeyHelper;var e=C.insertCustomElements;var F=I.FilterBarID;var f=I.ChartID;var h=D.isDataFieldForActionAbstract;var j=A.getActionsFromManifest;var T=M.TemplateType;var k=M.ActionType;var V=M.VisualizationType;function l(n,i){return s(n)||r(n,i)||p(n,i)||m();}function m(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function p(o,i){if(!o)return;if(typeof o==="string")return q(o,i);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return q(o,i);}function q(n,o){if(o==null||o>n.length)o=n.length;for(var i=0,x=new Array(o);i<o;i++){x[i]=n[i];}return x;}function r(n,i){var o=n==null?null:typeof Symbol!=="undefined"&&n[Symbol.iterator]||n["@@iterator"];if(o==null)return;var x=[];var y=true;var z=false;var B,E;try{for(o=o.call(n);!(y=(B=o.next()).done);y=true){x.push(B.value);if(i&&x.length===i)break;}}catch(G){z=true;E=G;}finally{try{if(!y&&o["return"]!=null)o["return"]();}finally{if(z)throw E;}}return x;}function s(i){if(Array.isArray(i))return i;}function t(i,n,o){var x=[];if(i){var y=i.Actions||[];y.forEach(function(z){var B,E,G,H;var J;if(h(z)&&!(((B=z.annotations)===null||B===void 0?void 0:(E=B.UI)===null||E===void 0?void 0:(G=E.Hidden)===null||G===void 0?void 0:G.valueOf())===true)&&!z.Inline&&!z.Determining&&!(z!==null&&z!==void 0&&(H=z.ActionTarget)!==null&&H!==void 0&&H.isBound)){var L=d.generateKeyFromDataField(z);switch(z.$Type){case"com.sap.vocabularies.UI.v1.DataFieldForAction":J={type:k.DataFieldForAction,annotationPath:o.getEntitySetBasedAnnotationPath(z.fullyQualifiedName),key:L};break;case"com.sap.vocabularies.UI.v1.DataFieldForIntentBasedNavigation":J={type:k.DataFieldForIntentBasedNavigation,annotationPath:o.getEntitySetBasedAnnotationPath(z.fullyQualifiedName),key:L};break;}}if(J){x.push(J);}});}return x;}function u(i,n,o){var x=t(i,n,o);return e(x,j(o.getManifestControlConfiguration(n).actions,o,x),{enableOnSelect:"overwrite",enabled:"overwrite"});}_.getChartActions=u;function v(i,n){var o;var x=n.getManifestWrapper();var y=n.getManifestControlConfiguration(i);var z=["Page","Control"].indexOf(x.getVariantManagement())>-1;var B=true;var P=[];if((y===null||y===void 0?void 0:(o=y.chartSettings)===null||o===void 0?void 0:o.personalization)!==undefined){B=y.chartSettings.personalization;}if(z&&B){if(B===true){return"Sort,Type,Item";}else if(typeof B==="object"){if(B.type){P.push("Type");}if(B.item){P.push("Item");}if(B.sort){P.push("Sort");}return P.join(",");}}return undefined;}_.getP13nMode=v;function w(n,o,x,y){var z,B,E,G;var H=new c(x.getEntityType(),x);if(!y&&!H.isAnalyticsSupported()){throw new Error("ApplySupported is not added to the annotations");}var J=(z=x.getEntityType().annotations.Analytics)===null||z===void 0?void 0:z.AggregatedProperties;var L={};for(var i=0;J&&i<J.length;i++){var N,O,P;L[J[i].Name]={label:(N=J[i])===null||N===void 0?void 0:(O=N.annotations)===null||O===void 0?void 0:(P=O.Common)===null||P===void 0?void 0:P.Label};}var Q=H.getCustomAggregateDefinitions();var R={};if(Q){for(var S=0;S<Q.length;S++){var U,W;var X=(U=Q[S].annotations)===null||U===void 0?void 0:(W=U.Aggregation)===null||W===void 0?void 0:W.ContextDefiningProperties;R[Q[S].qualifier]={name:Q[S].qualifier,label:"Custom Aggregate ("+Q[S].qualifier+")",sortable:true,sortOrder:"both",contextDefiningProperty:X?X.map(function(z1){return z1.value;}):[]};}}var Y=H.getTransAggregations()[0];var Z={};if(Y){for(var $=0;$<Y.length;$++){Z[Y[$].Name]={name:Y[$].Name,propertyPath:Y[$].AggregatableProperty.valueOf().value,aggregationMethod:Y[$].AggregationMethod,label:Y[$].Name in L?L[Y[$].Name].label:"Aggregatable property ("+Y[$].Name+")",sortable:true,sortOrder:"both",custom:false};}}var a1=H.getAggregatableProperties();var b1=H.getGroupableProperties();var c1={};c1.$Type="Org.OData.Aggregation.V1.ApplySupportedType";c1.AggregatableProperties=[];c1.GroupableProperties=[];for(var d1=0;a1&&d1<a1.length;d1++){var e1,f1,g1;var h1={$Type:(e1=a1[d1])===null||e1===void 0?void 0:e1.$Type,Property:{$PropertyPath:(f1=a1[d1])===null||f1===void 0?void 0:(g1=f1.Property)===null||g1===void 0?void 0:g1.value}};c1.AggregatableProperties.push(h1);}for(var i1=0;b1&&i1<b1.length;i1++){var j1;var k1={$PropertyPath:(j1=b1[i1])===null||j1===void 0?void 0:j1.value};c1.GroupableProperties.push(k1);}var l1=u(n,o,x);var m1=o.split("@"),n1=l(m1,1),o1=n1[0];if(o1.lastIndexOf("/")===o1.length-1){o1=o1.substr(0,o1.length-1);}var p1=(B=x.getDataModelObjectPath().targetEntityType.annotations)===null||B===void 0?void 0:(E=B.UI)===null||E===void 0?void 0:(G=E.HeaderInfo)===null||G===void 0?void 0:G.TypeNamePlural;var q1=x.getDataModelObjectPath();var r1=o1.length===0;var s1=q1.targetEntitySet?q1.targetEntitySet.name:q1.startingEntitySet.name;var t1=r1?F(x.getContextPath()):undefined;var u1={"legendGroup":{"layout":{"position":"bottom"}}};var v1;if(x.getTemplateType()===T.ObjectPage){v1=true;}else if(x.getTemplateType()===T.ListReport||x.getTemplateType()===T.AnalyticalListPage){v1=false;}var w1=x.getManifestWrapper().hasMultipleVisualizations()||x.getTemplateType()==="AnalyticalListPage";var x1=w1?".handlers.onSegmentedButtonPressed":"";var y1=w1?"{= ${pageInternal>alpContentView} !== 'Table'}":"true";return{type:V.Chart,id:f(r1?s1:o1,V.Chart),collection:g(x.getDataModelObjectPath()),entityName:s1,personalization:v(o,x),navigationPath:o1,annotationPath:x.getAbsoluteAnnotationPath(o),filterId:t1,vizProperties:JSON.stringify(u1),actions:l1,title:p1,autoBindOnInit:v1,onSegmentedButtonPressed:x1,visible:y1,customAgg:R,transAgg:Z,applySupported:c1};}_.createChartVisualization=w;return _;},false);
5
+ sap.ui.define(["../../ManifestSettings","sap/fe/core/converters/controls/Common/Action","sap/fe/core/converters/annotations/DataField","../../helpers/ID","sap/fe/core/converters/helpers/ConfigurableObject","sap/fe/core/converters/helpers/Key","sap/fe/core/templating/DataModelPathHelper","../../helpers/Aggregation"],function(M,A,D,I,C,K,a,b){"use strict";var _={};var c=b.AggregationHelper;var g=a.getTargetObjectPath;var d=K.KeyHelper;var e=C.insertCustomElements;var F=I.FilterBarID;var f=I.ChartID;var h=D.isDataFieldForActionAbstract;var j=A.getActionsFromManifest;var T=M.TemplateType;var k=M.ActionType;var V=M.VisualizationType;function l(n,i){return s(n)||r(n,i)||p(n,i)||m();}function m(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function p(o,i){if(!o)return;if(typeof o==="string")return q(o,i);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return q(o,i);}function q(n,o){if(o==null||o>n.length)o=n.length;for(var i=0,x=new Array(o);i<o;i++){x[i]=n[i];}return x;}function r(n,i){var o=n==null?null:typeof Symbol!=="undefined"&&n[Symbol.iterator]||n["@@iterator"];if(o==null)return;var x=[];var y=true;var z=false;var B,E;try{for(o=o.call(n);!(y=(B=o.next()).done);y=true){x.push(B.value);if(i&&x.length===i)break;}}catch(G){z=true;E=G;}finally{try{if(!y&&o["return"]!=null)o["return"]();}finally{if(z)throw E;}}return x;}function s(i){if(Array.isArray(i))return i;}function t(i,n,o){var x=[];if(i){var y=i.Actions||[];y.forEach(function(z){var B,E,G,H;var J;if(h(z)&&!(((B=z.annotations)===null||B===void 0?void 0:(E=B.UI)===null||E===void 0?void 0:(G=E.Hidden)===null||G===void 0?void 0:G.valueOf())===true)&&!z.Inline&&!z.Determining&&!(z!==null&&z!==void 0&&(H=z.ActionTarget)!==null&&H!==void 0&&H.isBound)){var L=d.generateKeyFromDataField(z);switch(z.$Type){case"com.sap.vocabularies.UI.v1.DataFieldForAction":J={type:k.DataFieldForAction,annotationPath:o.getEntitySetBasedAnnotationPath(z.fullyQualifiedName),key:L};break;case"com.sap.vocabularies.UI.v1.DataFieldForIntentBasedNavigation":J={type:k.DataFieldForIntentBasedNavigation,annotationPath:o.getEntitySetBasedAnnotationPath(z.fullyQualifiedName),key:L};break;}}if(J){x.push(J);}});}return x;}function u(i,n,o){var x=t(i,n,o);return e(x,j(o.getManifestControlConfiguration(n).actions,o,x),{enableOnSelect:"overwrite",enabled:"overwrite"});}_.getChartActions=u;function v(i,n){var o;var x=n.getManifestWrapper();var y=n.getManifestControlConfiguration(i);var z=["Page","Control"].indexOf(x.getVariantManagement())>-1;var B=true;var P=[];if((y===null||y===void 0?void 0:(o=y.chartSettings)===null||o===void 0?void 0:o.personalization)!==undefined){B=y.chartSettings.personalization;}if(z&&B){if(B===true){return"Sort,Type,Item";}else if(typeof B==="object"){if(B.type){P.push("Type");}if(B.item){P.push("Item");}if(B.sort){P.push("Sort");}return P.join(",");}}return undefined;}_.getP13nMode=v;function w(n,o,x,y){var z,B,E,G;var H=new c(x.getEntityType(),x);if(!y&&!H.isAnalyticsSupported()){throw new Error("ApplySupported is not added to the annotations");}var J=(z=x.getEntityType().annotations.Analytics)===null||z===void 0?void 0:z.AggregatedProperties;var L={};for(var i=0;J&&i<J.length;i++){var N,O,P;L[J[i].Name]={label:(N=J[i])===null||N===void 0?void 0:(O=N.annotations)===null||O===void 0?void 0:(P=O.Common)===null||P===void 0?void 0:P.Label};}var Q=H.getCustomAggregateDefinitions();var R={};if(Q){for(var S=0;S<Q.length;S++){var U,W;var X=(U=Q[S].annotations)===null||U===void 0?void 0:(W=U.Aggregation)===null||W===void 0?void 0:W.ContextDefiningProperties;R[Q[S].qualifier]={name:Q[S].qualifier,label:"Custom Aggregate ("+Q[S].qualifier+")",sortable:true,sortOrder:"both",contextDefiningProperty:X?X.map(function(A1){return A1.value;}):[]};}}var Y=H.getTransAggregations()[0];var Z={};if(Y){for(var $=0;$<Y.length;$++){Z[Y[$].Name]={name:Y[$].Name,propertyPath:Y[$].AggregatableProperty.valueOf().value,aggregationMethod:Y[$].AggregationMethod,label:Y[$].Name in L?L[Y[$].Name].label:"Aggregatable property ("+Y[$].Name+")",sortable:true,sortOrder:"both",custom:false};}}var a1=H.getAggregatableProperties();var b1=H.getGroupableProperties();var c1={};c1.$Type="Org.OData.Aggregation.V1.ApplySupportedType";c1.AggregatableProperties=[];c1.GroupableProperties=[];for(var d1=0;a1&&d1<a1.length;d1++){var e1,f1,g1;var h1={$Type:(e1=a1[d1])===null||e1===void 0?void 0:e1.$Type,Property:{$PropertyPath:(f1=a1[d1])===null||f1===void 0?void 0:(g1=f1.Property)===null||g1===void 0?void 0:g1.value}};c1.AggregatableProperties.push(h1);}for(var i1=0;b1&&i1<b1.length;i1++){var j1;var k1={$PropertyPath:(j1=b1[i1])===null||j1===void 0?void 0:j1.value};c1.GroupableProperties.push(k1);}var l1=u(n,o,x);var m1=o.split("@"),n1=l(m1,1),o1=n1[0];if(o1.lastIndexOf("/")===o1.length-1){o1=o1.substr(0,o1.length-1);}var p1=(B=x.getDataModelObjectPath().targetEntityType.annotations)===null||B===void 0?void 0:(E=B.UI)===null||E===void 0?void 0:(G=E.HeaderInfo)===null||G===void 0?void 0:G.TypeNamePlural;var q1=x.getDataModelObjectPath();var r1=o1.length===0;var s1=q1.targetEntitySet?q1.targetEntitySet.name:q1.startingEntitySet.name;var t1=r1?F(x.getContextPath()):undefined;var u1={"legendGroup":{"layout":{"position":"bottom"}}};var v1;if(x.getTemplateType()===T.ObjectPage){v1=true;}else if(x.getTemplateType()===T.ListReport||x.getTemplateType()===T.AnalyticalListPage){v1=false;}var w1=x.getManifestWrapper().hasMultipleVisualizations()||x.getTemplateType()==="AnalyticalListPage";var x1=w1?".handlers.onSegmentedButtonPressed":"";var y1=w1?"{= ${pageInternal>alpContentView} !== 'Table'}":"true";var z1=H.getAllowedTransformations();c1.enableSearch=z1?z1.indexOf("search")>=0:true;return{type:V.Chart,id:f(r1?s1:o1,V.Chart),collection:g(x.getDataModelObjectPath()),entityName:s1,personalization:v(o,x),navigationPath:o1,annotationPath:x.getAbsoluteAnnotationPath(o),filterId:t1,vizProperties:JSON.stringify(u1),actions:l1,title:p1,autoBindOnInit:v1,onSegmentedButtonPressed:x1,visible:y1,customAgg:R,transAgg:Z,applySupported:c1};}_.createChartVisualization=w;return _;},false);
@@ -36,7 +36,12 @@ export type ChartVisualization = {
36
36
  visible: string;
37
37
  customAgg: object;
38
38
  transAgg: object;
39
- applySupported: object;
39
+ applySupported: {
40
+ $Type: string;
41
+ enableSearch: boolean;
42
+ AggregatableProperties: any[];
43
+ GroupableProperties: any[];
44
+ };
40
45
  };
41
46
 
42
47
  /**
@@ -138,12 +143,12 @@ export function getP13nMode(visualizationPath: string, converterContext: Convert
138
143
  }
139
144
 
140
145
  /**
141
- * Create the ChartVisualization configuration that will be used to display a chart via Chart Macro.
146
+ * Create the ChartVisualization configuration that will be used to display a chart using the Chart building block.
142
147
  *
143
148
  * @param {ChartDefinitionTypeTypes} chartAnnotation The target chart annotation
144
149
  * @param {string} visualizationPath The current visualization annotation path
145
150
  * @param {ConverterContext} converterContext The converter context
146
- * @param {boolean} doNotCheckApplySupported Flag that tells whether applysupported to be checked or not
151
+ * @param {boolean} doNotCheckApplySupported Flag that indicates whether applysupported needs to be checked or not
147
152
  * @returns {ChartVisualization} The chart visualization based on the annotation
148
153
  */
149
154
  export function createChartVisualization(
@@ -258,6 +263,9 @@ export function createChartVisualization(
258
263
  converterContext.getManifestWrapper().hasMultipleVisualizations() || converterContext.getTemplateType() === "AnalyticalListPage";
259
264
  const onSegmentedButtonPressed = hasMultipleVisualizations ? ".handlers.onSegmentedButtonPressed" : "";
260
265
  const visible = hasMultipleVisualizations ? "{= ${pageInternal>alpContentView} !== 'Table'}" : "true";
266
+ const allowedTransformations = aggregationHelper.getAllowedTransformations();
267
+ mApplySupported.enableSearch = allowedTransformations ? allowedTransformations.indexOf("search") >= 0 : true;
268
+
261
269
  return {
262
270
  type: VisualizationType.Chart,
263
271
  id: ChartID(isEntitySet ? entityName : navigationPropertyPath, VisualizationType.Chart),
@@ -103,7 +103,7 @@ sap.ui.define(["./Table", "./Chart", "sap/fe/core/converters/helpers/IssueManage
103
103
  if (bIsALP) {
104
104
  if (presentationVariant && presentationVariant.Visualizations) {
105
105
  var aVisualizations = presentationVariant.Visualizations;
106
- aVisualizations.map(function (oVisualization) {
106
+ aVisualizations.forEach(function (oVisualization) {
107
107
  if (oVisualization.$target.term === "com.sap.vocabularies.UI.v1.LineItem") {
108
108
  bHasTable = true;
109
109
  }
@@ -227,7 +227,7 @@ sap.ui.define(["./Table", "./Chart", "sap/fe/core/converters/helpers/IssueManage
227
227
  break;
228
228
  }
229
229
 
230
- visualizationAnnotations.map(function (visualizationAnnotation) {
230
+ visualizationAnnotations.forEach(function (visualizationAnnotation) {
231
231
  var visualization = visualizationAnnotation.visualization,
232
232
  annotationPath = visualizationAnnotation.annotationPath,
233
233
  converterContext = visualizationAnnotation.converterContext;
@@ -272,4 +272,4 @@ sap.ui.define(["./Table", "./Chart", "sap/fe/core/converters/helpers/IssueManage
272
272
  _exports.getDataVisualizationConfiguration = getDataVisualizationConfiguration;
273
273
  return _exports;
274
274
  }, false);
275
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkRhdGFWaXN1YWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbImdldFZpc3VhbGl6YXRpb25zRnJvbVByZXNlbnRhdGlvblZhcmlhbnQiLCJwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbiIsInZpc3VhbGl6YXRpb25QYXRoIiwiY29udmVydGVyQ29udGV4dCIsInZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucyIsInZpc3VhbGl6YXRpb25zIiwiVmlzdWFsaXphdGlvbnMiLCJiYXNlVmlzdWFsaXphdGlvblBhdGgiLCJzcGxpdCIsImhhc0xpbmVJdGVtIiwiaGFzQ2hhcnQiLCJoYXNWaXN1YWxpemF0aW9uIiwiYklzQUxQIiwiZ2V0TWFuaWZlc3RXcmFwcGVyIiwiaGFzTXVsdGlwbGVWaXN1YWxpemF0aW9ucyIsImdldFRlbXBsYXRlVHlwZSIsIlRlbXBsYXRlVHlwZSIsIkFuYWx5dGljYWxMaXN0UGFnZSIsImZvckVhY2giLCJ2aXN1YWxpemF0aW9uIiwiJHRhcmdldCIsInRlcm0iLCJwdXNoIiwiYW5ub3RhdGlvblBhdGgiLCJ2YWx1ZSIsImdldFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQiLCJlbnRpdHlUeXBlIiwicmVzb2x2ZWRUYXJnZXQiLCJnZXRFbnRpdHlUeXBlQW5ub3RhdGlvbiIsInNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQiLCJhbm5vdGF0aW9uIiwiRXJyb3IiLCJhbm5vdGF0aW9ucyIsIlVJIiwiU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCIsImlzU2VsZWN0aW9uUHJlc2VudGF0aW9uQ29tcGxpYW50IiwicHJlc2VudGF0aW9uVmFyaWFudCIsIlByZXNlbnRhdGlvblZhcmlhbnQiLCJpc1ByZXNlbnRhdGlvbkNvbXBsaWFudCIsImJIYXNUYWJsZSIsImJIYXNDaGFydCIsImFWaXN1YWxpemF0aW9ucyIsIm1hcCIsIm9WaXN1YWxpemF0aW9uIiwiZmluZCIsImdldERlZmF1bHRMaW5lSXRlbSIsIkxpbmVJdGVtIiwiZ2V0RGVmYXVsdENoYXJ0IiwiQ2hhcnQiLCJnZXREZWZhdWx0UHJlc2VudGF0aW9uVmFyaWFudCIsImdldERlZmF1bHRTZWxlY3Rpb25WYXJpYW50IiwiU2VsZWN0aW9uVmFyaWFudCIsImdldFNlbGVjdGlvblZhcmlhbnQiLCJnZXREZWZhdWx0VGVtcGxhdGVBbm5vdGF0aW9uUGF0aCIsInNlbGVjdGlvblZhcmlhbnQiLCJnZXREYXRhVmlzdWFsaXphdGlvbkNvbmZpZ3VyYXRpb24iLCJpc0NvbmRlbnNlZFRhYmxlTGF5b3V0Q29tcGxpYW50Iiwidmlld0NvbmZpZ3VyYXRpb24iLCJkb05vdENoZWNrQXBwbHlTdXBwb3J0ZWQiLCJwcmVzZW50YXRpb25QYXRoIiwiY2hhcnRWaXN1YWxpemF0aW9uIiwidGFibGVWaXN1YWxpemF0aW9uIiwic1Rlcm0iLCJjb25jYXQiLCJmdWxseVF1YWxpZmllZE5hbWUiLCJnZXRFbnRpdHlUeXBlIiwiZGVmYXVsdExpbmVJdGVtQW5ub3RhdGlvbiIsImdldFJlbGF0aXZlQW5ub3RhdGlvblBhdGgiLCJ2aXN1YWxpemF0aW9uQW5ub3RhdGlvbiIsImNyZWF0ZUNoYXJ0VmlzdWFsaXphdGlvbiIsImNyZWF0ZVRhYmxlVmlzdWFsaXphdGlvbiIsImNyZWF0ZURlZmF1bHRUYWJsZVZpc3VhbGl6YXRpb24iLCJnZXREaWFnbm9zdGljcyIsImFkZElzc3VlIiwiSXNzdWVDYXRlZ29yeSIsIkFubm90YXRpb24iLCJJc3N1ZVNldmVyaXR5IiwiTWVkaXVtIiwiSXNzdWVUeXBlIiwiTUlTU0lOR19MSU5FSVRFTSIsInNQYXRoIiwidW5kZWZpbmVkIiwiZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7OztBQXFDQSxNQUFNQSx3Q0FBd0MsR0FBRyxVQUNoREMsNkJBRGdELEVBRWhEQyxpQkFGZ0QsRUFHaERDLGdCQUhnRCxFQUl2QjtBQUN6QixRQUFNQyx3QkFBZ0QsR0FBRyxFQUF6RDtBQUNBLFFBQU1D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LEdBQUdVLCtCQUErQixDQUFDcEUsZ0JBQUQsQ0FBcEQ7QUFDQUEsTUFBQUEsZ0JBQWdCLENBQUNxRSxjQUFqQixHQUFrQ0MsUUFBbEMsQ0FBMkNDLGFBQWEsQ0FBQ0MsVUFBekQsRUFBcUVDLGFBQWEsQ0FBQ0MsTUFBbkYsRUFBMkZDLFNBQVMsQ0FBQ0MsZ0JBQXJHO0FBQ0E7O0FBQ0QsUUFBTXRDLGVBQW9CLEdBQUcsRUFBN0I7QUFDQSxRQUFJdUMsS0FBSyxHQUNSbEIsS0FBSyw4REFBTCxHQUEyREgsZ0JBQTNELEdBQThFeEMsYUFBYSxJQUFJQSxhQUFhLENBQUM2QyxrQkFEOUc7O0FBRUEsUUFBSWdCLEtBQUssS0FBS0MsU0FBZCxFQUF5QjtBQUN4QkQsTUFBQUEsS0FBSyxHQUFHLEdBQVI7QUFDQTs7QUFDRCxRQUFJcEIsa0JBQUosRUFBd0I7QUFDdkJuQixNQUFBQSxlQUFlLENBQUNuQixJQUFoQixDQUFxQnNDLGtCQUFyQjtBQUNBOztBQUNELFFBQUlDLGtCQUFKLEVBQXdCO0FBQ3ZCcEIsTUFBQUEsZUFBZSxDQUFDbkIsSUFBaEIsQ0FBcUJ1QyxrQkFBckI7QUFDQTs7QUFDRCxXQUFPO0FBQ054RCxNQUFBQSxjQUFjLEVBQUVvQyxlQURWO0FBRU5sQixNQUFBQSxjQUFjLEVBQUVwQixnQkFBZ0IsQ0FBQytFLCtCQUFqQixDQUFpREYsS0FBakQ7QUFGVixLQUFQO0FBSUEiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENoYXJ0LFxuXHRDaGFydERlZmluaXRpb25UeXBlVHlwZXMsXG5cdEVudGl0eVR5cGUsXG5cdExpbmVJdGVtLFxuXHRQcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzLFxuXHRTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzLFxuXHRTZWxlY3Rpb25WYXJpYW50VHlwZVR5cGVzLFxuXHRVSUFubm90YXRpb25UZXJtc1xufSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcblxuaW1wb3J0IHsgY3JlYXRlRGVmYXVsdFRhYmxlVmlzdWFsaXphdGlvbiwgY3JlYXRlVGFibGVWaXN1YWxpemF0aW9uLCBUYWJsZVZpc3VhbGl6YXRpb24gfSBmcm9tIFwiLi9UYWJsZVwiO1xuaW1wb3J0IHsgQ2hhcnRWaXN1YWxpemF0aW9uLCBjcmVhdGVDaGFydFZpc3VhbGl6YXRpb24gfSBmcm9tIFwiLi9DaGFydFwiO1xuaW1wb3J0IHsgSXNzdWVUeXBlLCBJc3N1ZVNldmVyaXR5LCBJc3N1ZUNhdGVnb3J5IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9Jc3N1ZU1hbmFnZXJcIjtcbmltcG9ydCBDb252ZXJ0ZXJDb250ZXh0IGZyb20gXCIuLi8uLi9Db252ZXJ0ZXJDb250ZXh0XCI7XG5pbXBvcnQgeyBUZW1wbGF0ZVR5cGUsIFZpZXdQYXRoQ29uZmlndXJhdGlvbiB9IGZyb20gXCIuLi8uLi9NYW5pZmVzdFNldHRpbmdzXCI7XG5cbmV4cG9ydCB0eXBlIERhdGFWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnMgPVxuXHR8IExpbmVJdGVtXG5cdHwgQ2hhcnRcblx0fCBQcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzXG5cdHwgU2VsZWN0aW9uVmFyaWFudFR5cGVUeXBlc1xuXHR8IFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnRUeXBlVHlwZXM7XG4vLyB8IENoYXJ0RGVmaW5pdGlvblR5cGVUeXBlcztcblxuZXhwb3J0IHR5cGUgQWN0dWFsVmlzdWFsaXphdGlvbkFubm90YXRpb25zID0gTGluZUl0ZW0gfCBDaGFydERlZmluaXRpb25UeXBlVHlwZXM7XG5cbnR5cGUgVmlzdWFsaXphdGlvbkFuZFBhdGggPSB7XG5cdHZpc3VhbGl6YXRpb246IEFjdHVhbFZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucztcblx0YW5ub3RhdGlvblBhdGg6IHN0cmluZztcblx0c2VsZWN0aW9uVmFyaWFudFBhdGg/OiBzdHJpbmc7XG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQ7XG59O1xuXG5leHBvcnQgdHlwZSBEYXRhVmlzdWFsaXphdGlvbkRlZmluaXRpb24gPSB7XG5cdHZpc3VhbGl6YXRpb25zOiAoVGFibGVWaXN1YWxpemF0aW9uIHwgQ2hhcnRWaXN1YWxpemF0aW9uKVtdO1xuXHRhbm5vdGF0aW9uUGF0aDogc3RyaW5nO1xufTtcblxuY29uc3QgZ2V0VmlzdWFsaXphdGlvbnNGcm9tUHJlc2VudGF0aW9uVmFyaWFudCA9IGZ1bmN0aW9uKFxuXHRwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbjogUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcyxcblx0dmlzdWFsaXphdGlvblBhdGg6IHN0cmluZyxcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dFxuKTogVmlzdWFsaXphdGlvbkFuZFBhdGhbXSB7XG5cdGNvbnN0IHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9uczogVmlzdWFsaXphdGlvbkFuZFBhdGhbXSA9IFtdO1xuXHRjb25zdCB2aXN1YWxpemF0aW9ucyA9IHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uLlZpc3VhbGl6YXRpb25zIHx8IFtdO1xuXHRjb25zdCBiYXNlVmlzdWFsaXphdGlvblBhdGggPSB2aXN1YWxpemF0aW9uUGF0aC5zcGxpdChcIkBcIilbMF07XG5cdGlmICh2aXN1YWxpemF0aW9ucykge1xuXHRcdC8vIE9ubHkgYWxsb3cgb25lIGxpbmUgaXRlbSAvIGNoYXJ0XG5cdFx0bGV0IGhhc0xpbmVJdGVtID0gZmFsc2U7XG5cdFx0bGV0IGhhc0NoYXJ0ID0gZmFsc2U7XG5cdFx0bGV0IGhhc1Zpc3VhbGl6YXRpb24gPSBmYWxzZTsgLy8gdXNlZCB0byBhbGxvdyBvbmx5IGZpcnN0IHZpc3VhbGl6YXRpb24gaW4gT1Bcblx0XHRjb25zdCBiSXNBTFAgPVxuXHRcdFx0Y29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdFdyYXBwZXIoKS5oYXNNdWx0aXBsZVZpc3VhbGl6YXRpb25zKCkgfHxcblx0XHRcdGNvbnZlcnRlckNvbnRleHQuZ2V0VGVtcGxhdGVUeXBlKCkgPT09IFRlbXBsYXRlVHlwZS5BbmFseXRpY2FsTGlzdFBhZ2U7XG5cdFx0dmlzdWFsaXphdGlvbnMuZm9yRWFjaCh2aXN1YWxpemF0aW9uID0+IHtcblx0XHRcdHN3aXRjaCAodmlzdWFsaXphdGlvbi4kdGFyZ2V0LnRlcm0pIHtcblx0XHRcdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5MaW5lSXRlbTpcblx0XHRcdFx0XHRpZiAoIWhhc0xpbmVJdGVtICYmIChiSXNBTFAgfHwgIWhhc1Zpc3VhbGl6YXRpb24pKSB7XG5cdFx0XHRcdFx0XHR2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnMucHVzaCh7XG5cdFx0XHRcdFx0XHRcdHZpc3VhbGl6YXRpb246IHZpc3VhbGl6YXRpb24uJHRhcmdldCBhcyBBY3R1YWxWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnMsXG5cdFx0XHRcdFx0XHRcdGFubm90YXRpb25QYXRoOiBgJHtiYXNlVmlzdWFsaXphdGlvblBhdGh9JHt2aXN1YWxpemF0aW9uLnZhbHVlfWAsXG5cdFx0XHRcdFx0XHRcdGNvbnZlcnRlckNvbnRleHQ6IGNvbnZlcnRlckNvbnRleHRcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0aGFzTGluZUl0ZW0gPSB0cnVlO1xuXHRcdFx0XHRcdFx0aGFzVmlzdWFsaXphdGlvbiA9IHRydWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLkNoYXJ0OlxuXHRcdFx0XHRcdGlmICghaGFzQ2hhcnQgJiYgKGJJc0FMUCB8fCAhaGFzVmlzdWFsaXphdGlvbikpIHtcblx0XHRcdFx0XHRcdHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucy5wdXNoKHtcblx0XHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvbjogdmlzdWFsaXphdGlvbi4kdGFyZ2V0IGFzIEFjdHVhbFZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucyxcblx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGAke2Jhc2VWaXN1YWxpemF0aW9uUGF0aH0ke3Zpc3VhbGl6YXRpb24udmFsdWV9YCxcblx0XHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dDogY29udmVydGVyQ29udGV4dFxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRoYXNDaGFydCA9IHRydWU7XG5cdFx0XHRcdFx0XHRoYXNWaXN1YWxpemF0aW9uID0gdHJ1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblx0cmV0dXJuIHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucztcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50KFxuXHRlbnRpdHlUeXBlOiBFbnRpdHlUeXBlLFxuXHRhbm5vdGF0aW9uUGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0XG4pOiBhbnkge1xuXHRpZiAoYW5ub3RhdGlvblBhdGgpIHtcblx0XHRjb25zdCByZXNvbHZlZFRhcmdldCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZUFubm90YXRpb24oYW5ub3RhdGlvblBhdGgpO1xuXHRcdGNvbnN0IHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQgPSByZXNvbHZlZFRhcmdldC5hbm5vdGF0aW9uIGFzIFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnRUeXBlVHlwZXM7XG5cdFx0aWYgKHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQpIHtcblx0XHRcdGlmIChzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50LnRlcm0gPT09IFVJQW5ub3RhdGlvblRlcm1zLlNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQpIHtcblx0XHRcdFx0cmV0dXJuIHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQ7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihcIkFubm90YXRpb24gUGF0aCBmb3IgdGhlIFNQViBtZW50aW9uZWQgaW4gdGhlIG1hbmlmZXN0IGlzIG5vdCBmb3VuZCwgUGxlYXNlIGFkZCB0aGUgU1BWIGluIHRoZSBhbm5vdGF0aW9uXCIpO1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gZW50aXR5VHlwZS5hbm5vdGF0aW9ucz8uVUk/LlNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQ7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU2VsZWN0aW9uUHJlc2VudGF0aW9uQ29tcGxpYW50KFxuXHRTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50OiBTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzLFxuXHRiSXNBTFA6IEJvb2xlYW5cbik6IEJvb2xlYW4gfCB1bmRlZmluZWQge1xuXHRjb25zdCBwcmVzZW50YXRpb25WYXJpYW50ID0gU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCAmJiBTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50LlByZXNlbnRhdGlvblZhcmlhbnQ7XG5cdGlmIChwcmVzZW50YXRpb25WYXJpYW50KSB7XG5cdFx0cmV0dXJuIGlzUHJlc2VudGF0aW9uQ29tcGxpYW50KHByZXNlbnRhdGlvblZhcmlhbnQsIGJJc0FMUCk7XG5cdH0gZWxzZSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKFwiUHJlc2VudGF0aW9uIFZhcmlhbnQgaXMgbm90IHByZXNlbnQgaW4gdGhlIFNQViBhbm5vdGF0aW9uXCIpO1xuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ByZXNlbnRhdGlvbkNvbXBsaWFudChwcmVzZW50YXRpb25WYXJpYW50OiBQcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzLCBiSXNBTFA/OiBCb29sZWFuKTogQm9vbGVhbiB7XG5cdGxldCBiSGFzVGFibGUgPSBmYWxzZSxcblx0XHRiSGFzQ2hhcnQgPSBmYWxzZTtcblx0aWYgKGJJc0FMUCkge1xuXHRcdGlmIChwcmVzZW50YXRpb25WYXJpYW50ICYmIHByZXNlbnRhdGlvblZhcmlhbnQuVmlzdWFsaXphdGlvbnMpIHtcblx0XHRcdGNvbnN0IGFWaXN1YWxpemF0aW9ucyA9IHByZXNlbnRhdGlvblZhcmlhbnQuVmlzdWFsaXphdGlvbnM7XG5cdFx0XHRhVmlzdWFsaXphdGlvbnMubWFwKG9WaXN1YWxpemF0aW9uID0+IHtcblx0XHRcdFx0aWYgKG9WaXN1YWxpemF0aW9uLiR0YXJnZXQudGVybSA9PT0gVUlBbm5vdGF0aW9uVGVybXMuTGluZUl0ZW0pIHtcblx0XHRcdFx0XHRiSGFzVGFibGUgPSB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChvVmlzdWFsaXphdGlvbi4kdGFyZ2V0LnRlcm0gPT09IFVJQW5ub3RhdGlvblRlcm1zLkNoYXJ0KSB7XG5cdFx0XHRcdFx0Ykhhc0NoYXJ0ID0gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fVxuXHRcdHJldHVybiBiSGFzQ2hhcnQgJiYgYkhhc1RhYmxlO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiAoXG5cdFx0XHRwcmVzZW50YXRpb25WYXJpYW50ICYmXG5cdFx0XHRwcmVzZW50YXRpb25WYXJpYW50LlZpc3VhbGl6YXRpb25zICYmXG5cdFx0XHQhIXByZXNlbnRhdGlvblZhcmlhbnQuVmlzdWFsaXphdGlvbnMuZmluZCh2aXN1YWxpemF0aW9uID0+IHtcblx0XHRcdFx0cmV0dXJuIHZpc3VhbGl6YXRpb24uJHRhcmdldC50ZXJtID09PSBVSUFubm90YXRpb25UZXJtcy5MaW5lSXRlbSB8fCB2aXN1YWxpemF0aW9uLiR0YXJnZXQudGVybSA9PT0gVUlBbm5vdGF0aW9uVGVybXMuQ2hhcnQ7XG5cdFx0XHR9KVxuXHRcdCk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRMaW5lSXRlbShlbnRpdHlUeXBlOiBFbnRpdHlUeXBlKTogTGluZUl0ZW0gfCB1bmRlZmluZWQge1xuXHRyZXR1cm4gZW50aXR5VHlwZS5hbm5vdGF0aW9ucy5VST8uTGluZUl0ZW07XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdENoYXJ0KGVudGl0eVR5cGU6IEVudGl0eVR5cGUpOiBDaGFydCB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiBlbnRpdHlUeXBlLmFubm90YXRpb25zLlVJPy5DaGFydDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0UHJlc2VudGF0aW9uVmFyaWFudChlbnRpdHlUeXBlOiBFbnRpdHlUeXBlKTogUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcyB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiBlbnRpdHlUeXBlLmFubm90YXRpb25zPy5VST8uUHJlc2VudGF0aW9uVmFyaWFudDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRTZWxlY3Rpb25WYXJpYW50KGVudGl0eVR5cGU6IEVudGl0eVR5cGUpOiBTZWxlY3Rpb25WYXJpYW50VHlwZVR5cGVzIHwgdW5kZWZpbmVkIHtcblx0cmV0dXJuIGVudGl0eVR5cGUuYW5ub3RhdGlvbnM/LlVJPy5TZWxlY3Rpb25WYXJpYW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VsZWN0aW9uVmFyaWFudChlbnRpdHlUeXBlOiBFbnRpdHlUeXBlLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogU2VsZWN0aW9uVmFyaWFudFR5cGVUeXBlcyB8IHVuZGVmaW5lZCB7XG5cdGNvbnN0IGFubm90YXRpb25QYXRoID0gY29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdFdyYXBwZXIoKS5nZXREZWZhdWx0VGVtcGxhdGVBbm5vdGF0aW9uUGF0aCgpO1xuXHRjb25zdCBzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50ID0gZ2V0U2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudChlbnRpdHlUeXBlLCBhbm5vdGF0aW9uUGF0aCwgY29udmVydGVyQ29udGV4dCk7XG5cdGxldCBzZWxlY3Rpb25WYXJpYW50O1xuXHRpZiAoc2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCkge1xuXHRcdGNvbnN0IHNlbGVjdGlvblZhcmlhbnQgPSBzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50LlNlbGVjdGlvblZhcmlhbnQ7XG5cdFx0aWYgKHNlbGVjdGlvblZhcmlhbnQpIHtcblx0XHRcdHJldHVybiBzZWxlY3Rpb25WYXJpYW50O1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHRzZWxlY3Rpb25WYXJpYW50ID0gZ2V0RGVmYXVsdFNlbGVjdGlvblZhcmlhbnQoZW50aXR5VHlwZSk7XG5cdFx0cmV0dXJuIHNlbGVjdGlvblZhcmlhbnQ7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERhdGFWaXN1YWxpemF0aW9uQ29uZmlndXJhdGlvbihcblx0dmlzdWFsaXphdGlvblBhdGg6IHN0cmluZyxcblx0aXNDb25kZW5zZWRUYWJsZUxheW91dENvbXBsaWFudDogYm9vbGVhbixcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0dmlld0NvbmZpZ3VyYXRpb24/OiBWaWV3UGF0aENvbmZpZ3VyYXRpb24sXG5cdGRvTm90Q2hlY2tBcHBseVN1cHBvcnRlZD86IGJvb2xlYW5cbik6IERhdGFWaXN1YWxpemF0aW9uRGVmaW5pdGlvbiB7XG5cdGNvbnN0IHJlc29sdmVkVGFyZ2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlQW5ub3RhdGlvbih2aXN1YWxpemF0aW9uUGF0aCk7XG5cdGNvbnN0IHZpc3VhbGl6YXRpb24gPSByZXNvbHZlZFRhcmdldC5hbm5vdGF0aW9uIGFzIERhdGFWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnM7XG5cdGNvbnZlcnRlckNvbnRleHQgPSByZXNvbHZlZFRhcmdldC5jb252ZXJ0ZXJDb250ZXh0O1xuXHRsZXQgdmlzdWFsaXphdGlvbkFubm90YXRpb25zOiBWaXN1YWxpemF0aW9uQW5kUGF0aFtdID0gW107XG5cdGxldCBwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbjogUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcztcblx0bGV0IHByZXNlbnRhdGlvblBhdGg6IHN0cmluZyA9IFwiXCI7XG5cdGxldCBjaGFydFZpc3VhbGl6YXRpb24sIHRhYmxlVmlzdWFsaXphdGlvbjtcblx0Y29uc3Qgc1Rlcm0gPSB2aXN1YWxpemF0aW9uPy50ZXJtO1xuXHRpZiAoc1Rlcm0pIHtcblx0XHRzd2l0Y2ggKHNUZXJtKSB7XG5cdFx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLkxpbmVJdGVtOlxuXHRcdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5DaGFydDpcblx0XHRcdFx0dmlzdWFsaXphdGlvbkFubm90YXRpb25zLnB1c2goe1xuXHRcdFx0XHRcdHZpc3VhbGl6YXRpb246IHZpc3VhbGl6YXRpb24gYXMgQWN0dWFsVmlzdWFsaXphdGlvbkFubm90YXRpb25zLFxuXHRcdFx0XHRcdGFubm90YXRpb25QYXRoOiB2aXN1YWxpemF0aW9uUGF0aCxcblx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0OiBjb252ZXJ0ZXJDb250ZXh0XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuUHJlc2VudGF0aW9uVmFyaWFudDpcblx0XHRcdFx0cHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24gPSB2aXN1YWxpemF0aW9uIGFzIFByZXNlbnRhdGlvblZhcmlhbnRUeXBlVHlwZXM7XG5cdFx0XHRcdHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucyA9IHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucy5jb25jYXQoXG5cdFx0XHRcdFx0Z2V0VmlzdWFsaXphdGlvbnNGcm9tUHJlc2VudGF0aW9uVmFyaWFudChcblx0XHRcdFx0XHRcdHZpc3VhbGl6YXRpb24gYXMgUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcyxcblx0XHRcdFx0XHRcdHZpc3VhbGl6YXRpb25QYXRoLFxuXHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dFxuXHRcdFx0XHRcdClcblx0XHRcdFx0KTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLlNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQ6XG5cdFx0XHRcdHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uID0gKHZpc3VhbGl6YXRpb24gYXMgU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcykuUHJlc2VudGF0aW9uVmFyaWFudDtcblx0XHRcdFx0Ly8gUHJlc2VudGF0aW9uIGNhbiBiZSBpbmxpbmUgb3Igb3V0c2lkZSB0aGUgU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudFxuXHRcdFx0XHRwcmVzZW50YXRpb25QYXRoID0gcHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24uZnVsbHlRdWFsaWZpZWROYW1lO1xuXG5cdFx0XHRcdGlmICghaXNQcmVzZW50YXRpb25Db21wbGlhbnQocHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24pKSB7XG5cdFx0XHRcdFx0Y29uc3QgZW50aXR5VHlwZSA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpO1xuXHRcdFx0XHRcdGNvbnN0IGRlZmF1bHRMaW5lSXRlbUFubm90YXRpb24gPSBnZXREZWZhdWx0TGluZUl0ZW0oZW50aXR5VHlwZSkgYXMgTGluZUl0ZW07XG5cdFx0XHRcdFx0aWYgKGRlZmF1bHRMaW5lSXRlbUFubm90YXRpb24pIHtcblx0XHRcdFx0XHRcdHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucy5wdXNoKHtcblx0XHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvbjogZGVmYXVsdExpbmVJdGVtQW5ub3RhdGlvbixcblx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGNvbnZlcnRlckNvbnRleHQuZ2V0UmVsYXRpdmVBbm5vdGF0aW9uUGF0aChcblx0XHRcdFx0XHRcdFx0XHRkZWZhdWx0TGluZUl0ZW1Bbm5vdGF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZSxcblx0XHRcdFx0XHRcdFx0XHRlbnRpdHlUeXBlXG5cdFx0XHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0XHRcdGNvbnZlcnRlckNvbnRleHQ6IGNvbnZlcnRlckNvbnRleHRcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnMgPSB2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnMuY29uY2F0KFxuXHRcdFx0XHRcdFx0Z2V0VmlzdWFsaXphdGlvbnNGcm9tUHJlc2VudGF0aW9uVmFyaWFudChwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbiwgdmlzdWFsaXphdGlvblBhdGgsIGNvbnZlcnRlckNvbnRleHQpXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRicmVhaztcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdGJyZWFrO1xuXHRcdH1cblx0XHR2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnMubWFwKHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9uID0+IHtcblx0XHRcdGNvbnN0IHsgdmlzdWFsaXphdGlvbiwgYW5ub3RhdGlvblBhdGgsIGNvbnZlcnRlckNvbnRleHQgfSA9IHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9uO1xuXHRcdFx0c3dpdGNoICh2aXN1YWxpemF0aW9uLnRlcm0pIHtcblx0XHRcdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5DaGFydDpcblx0XHRcdFx0XHRjaGFydFZpc3VhbGl6YXRpb24gPSBjcmVhdGVDaGFydFZpc3VhbGl6YXRpb24oXG5cdFx0XHRcdFx0XHR2aXN1YWxpemF0aW9uIGFzIENoYXJ0RGVmaW5pdGlvblR5cGVUeXBlcyxcblx0XHRcdFx0XHRcdGFubm90YXRpb25QYXRoLFxuXHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dCxcblx0XHRcdFx0XHRcdGRvTm90Q2hlY2tBcHBseVN1cHBvcnRlZFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuTGluZUl0ZW06XG5cdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0dGFibGVWaXN1YWxpemF0aW9uID0gY3JlYXRlVGFibGVWaXN1YWxpemF0aW9uKFxuXHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvbiBhcyBMaW5lSXRlbSxcblx0XHRcdFx0XHRcdGFubm90YXRpb25QYXRoLFxuXHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dCxcblx0XHRcdFx0XHRcdHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uLFxuXHRcdFx0XHRcdFx0aXNDb25kZW5zZWRUYWJsZUxheW91dENvbXBsaWFudCxcblx0XHRcdFx0XHRcdHZpZXdDb25maWd1cmF0aW9uXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9KTtcblx0fSBlbHNlIHtcblx0XHR0YWJsZVZpc3VhbGl6YXRpb24gPSBjcmVhdGVEZWZhdWx0VGFibGVWaXN1YWxpemF0aW9uKGNvbnZlcnRlckNvbnRleHQpO1xuXHRcdGNvbnZlcnRlckNvbnRleHQuZ2V0RGlhZ25vc3RpY3MoKS5hZGRJc3N1ZShJc3N1ZUNhdGVnb3J5LkFubm90YXRpb24sIElzc3VlU2V2ZXJpdHkuTWVkaXVtLCBJc3N1ZVR5cGUuTUlTU0lOR19MSU5FSVRFTSk7XG5cdH1cblx0Y29uc3QgYVZpc3VhbGl6YXRpb25zOiBhbnkgPSBbXTtcblx0bGV0IHNQYXRoID1cblx0XHRzVGVybSA9PT0gVUlBbm5vdGF0aW9uVGVybXMuU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCA/IHByZXNlbnRhdGlvblBhdGggOiB2aXN1YWxpemF0aW9uICYmIHZpc3VhbGl6YXRpb24uZnVsbHlRdWFsaWZpZWROYW1lO1xuXHRpZiAoc1BhdGggPT09IHVuZGVmaW5lZCkge1xuXHRcdHNQYXRoID0gXCIvXCI7XG5cdH1cblx0aWYgKGNoYXJ0VmlzdWFsaXphdGlvbikge1xuXHRcdGFWaXN1YWxpemF0aW9ucy5wdXNoKGNoYXJ0VmlzdWFsaXphdGlvbik7XG5cdH1cblx0aWYgKHRhYmxlVmlzdWFsaXphdGlvbikge1xuXHRcdGFWaXN1YWxpemF0aW9ucy5wdXNoKHRhYmxlVmlzdWFsaXphdGlvbik7XG5cdH1cblx0cmV0dXJuIHtcblx0XHR2aXN1YWxpemF0aW9uczogYVZpc3VhbGl6YXRpb25zLFxuXHRcdGFubm90YXRpb25QYXRoOiBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgoc1BhdGgpXG5cdH07XG59XG4iXX0=
275
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkRhdGFWaXN1YWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbImdldFZpc3VhbGl6YXRpb25zRnJvbVByZXNlbnRhdGlvblZhcmlhbnQiLCJwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbiIsInZpc3VhbGl6YXRpb25QYXRoIiwiY29udmVydGVyQ29udGV4dCIsInZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucyIsInZpc3VhbGl6YXRpb25zIiwiVmlzdWFsaXphdGlvbnMiLCJiYXNlVmlzdWFsaXphdGlvblBhdGgiLCJzcGxpdCIsImhhc0xpbmVJdGVtIiwiaGFzQ2hhcnQiLCJoYXNWaXN1YWxpemF0aW9uIiwiYklzQUxQIiwiZ2V0TWFuaWZlc3RXcmFwcGVyIiwiaGFzTXVsdGlwbGVWaXN1YWxpemF0aW9ucyIsImdldFRlbXBsYXRlVHlwZSIsIlRlbXBsYXRlVHlwZSIsIkFuYWx5dGljYWxMaXN0UGFnZSIsImZvckVhY2giLCJ2aXN1YWxpemF0aW9uIiwiJHRhcmdldCIsInRlcm0iLCJwdXNoIiwiYW5ub3RhdGlvblBhdGgiLCJ2YWx1ZSIsImdldFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQiLCJlbnRpdHlUeXBlIiwicmVzb2x2ZWRUYXJnZXQiLCJnZXRFbnRpdHlUeXBlQW5ub3RhdGlvbiIsInNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQiLCJhbm5vdGF0aW9uIiwiRXJyb3IiLCJhbm5vdGF0aW9ucyIsIlVJIiwiU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCIsImlzU2VsZWN0aW9uUHJlc2VudGF0aW9uQ29tcGxpYW50IiwicHJlc2VudGF0aW9uVmFyaWFudCIsIlByZXNlbnRhdGlvblZhcmlhbnQiLCJpc1ByZXNlbnRhdGlvbkNvbXBsaWFudCIsImJIYXNUYWJsZSIsImJIYXNDaGFydCIsImFWaXN1YWxpemF0aW9ucyIsIm9WaXN1YWxpemF0aW9uIiwiZmluZCIsImdldERlZmF1bHRMaW5lSXRlbSIsIkxpbmVJdGVtIiwiZ2V0RGVmYXVsdENoYXJ0IiwiQ2hhcnQiLCJnZXREZWZhdWx0UHJlc2VudGF0aW9uVmFyaWFudCIsImdldERlZmF1bHRTZWxlY3Rpb25WYXJpYW50IiwiU2VsZWN0aW9uVmFyaWFudCIsImdldFNlbGVjdGlvblZhcmlhbnQiLCJnZXREZWZhdWx0VGVtcGxhdGVBbm5vdGF0aW9uUGF0aCIsInNlbGVjdGlvblZhcmlhbnQiLCJnZXREYXRhVmlzdWFsaXphdGlvbkNvbmZpZ3VyYXRpb24iLCJpc0NvbmRlbnNlZFRhYmxlTGF5b3V0Q29tcGxpYW50Iiwidmlld0NvbmZpZ3VyYXRpb24iLCJkb05vdENoZWNrQXBwbHlTdXBwb3J0ZWQiLCJwcmVzZW50YXRpb25QYXRoIiwiY2hhcnRWaXN1YWxpemF0aW9uIiwidGFibGVWaXN1YWxpemF0aW9uIiwic1Rlcm0iLCJjb25jYXQiLCJmdWxseVF1YWxpZmllZE5hbWUiLCJnZXRFbnRpdHlUeXBlIiwiZGVmYXVsdExpbmVJdGVtQW5ub3RhdGlvbiIsImdldFJlbGF0aXZlQW5ub3RhdGlvblBhdGgiLCJ2aXN1YWxpemF0aW9uQW5ub3RhdGlvbiIsImNyZWF0ZUNoYXJ0VmlzdWFsaXphdGlvbiIsImNyZWF0ZVRhYmxlVmlzdWFsaXphdGlvbiIsImNyZWF0ZURlZmF1bHRUYWJsZVZpc3VhbGl6YXRpb24iLCJnZXREaWFnbm9zdGljcyIsImFkZElzc3VlIiwiSXNzdWVDYXRlZ29yeSIsIkFubm90YXRpb24iLCJJc3N1ZVNldmVyaXR5IiwiTWVkaXVtIiwiSXNzdWVUeXBlIiwiTUlTU0lOR19MSU5FSVRFTSIsInNQYXRoIiwidW5kZWZpbmVkIiwiZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7OztBQXFDQSxNQUFNQSx3Q0FBd0MsR0FBRyxVQUNoREMsNkJBRGdELEVBRWhEQyxpQkFGZ0QsRUFHaERDLGdCQUhnRCxFQUl2QjtBQUN6QixRQUFNQyx3QkFBZ0QsR0FBRyxFQUF6RDtBQUNBLFFBQU1DLGNBQWMs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VSwrQkFBK0IsQ0FBQ25FLGdCQUFELENBQXBEO0FBQ0FBLE1BQUFBLGdCQUFnQixDQUFDb0UsY0FBakIsR0FBa0NDLFFBQWxDLENBQTJDQyxhQUFhLENBQUNDLFVBQXpELEVBQXFFQyxhQUFhLENBQUNDLE1BQW5GLEVBQTJGQyxTQUFTLENBQUNDLGdCQUFyRztBQUNBOztBQUNELFFBQU1yQyxlQUFvQixHQUFHLEVBQTdCO0FBQ0EsUUFBSXNDLEtBQUssR0FDUmxCLEtBQUssOERBQUwsR0FBMkRILGdCQUEzRCxHQUE4RXZDLGFBQWEsSUFBSUEsYUFBYSxDQUFDNEMsa0JBRDlHOztBQUVBLFFBQUlnQixLQUFLLEtBQUtDLFNBQWQsRUFBeUI7QUFDeEJELE1BQUFBLEtBQUssR0FBRyxHQUFSO0FBQ0E7O0FBQ0QsUUFBSXBCLGtCQUFKLEVBQXdCO0FBQ3ZCbEIsTUFBQUEsZUFBZSxDQUFDbkIsSUFBaEIsQ0FBcUJxQyxrQkFBckI7QUFDQTs7QUFDRCxRQUFJQyxrQkFBSixFQUF3QjtBQUN2Qm5CLE1BQUFBLGVBQWUsQ0FBQ25CLElBQWhCLENBQXFCc0Msa0JBQXJCO0FBQ0E7O0FBQ0QsV0FBTztBQUNOdkQsTUFBQUEsY0FBYyxFQUFFb0MsZUFEVjtBQUVObEIsTUFBQUEsY0FBYyxFQUFFcEIsZ0JBQWdCLENBQUM4RSwrQkFBakIsQ0FBaURGLEtBQWpEO0FBRlYsS0FBUDtBQUlBIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDaGFydCxcblx0Q2hhcnREZWZpbml0aW9uVHlwZVR5cGVzLFxuXHRFbnRpdHlUeXBlLFxuXHRMaW5lSXRlbSxcblx0UHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcyxcblx0U2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcyxcblx0U2VsZWN0aW9uVmFyaWFudFR5cGVUeXBlcyxcblx0VUlBbm5vdGF0aW9uVGVybXNcbn0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5cbmltcG9ydCB7IGNyZWF0ZURlZmF1bHRUYWJsZVZpc3VhbGl6YXRpb24sIGNyZWF0ZVRhYmxlVmlzdWFsaXphdGlvbiwgVGFibGVWaXN1YWxpemF0aW9uIH0gZnJvbSBcIi4vVGFibGVcIjtcbmltcG9ydCB7IENoYXJ0VmlzdWFsaXphdGlvbiwgY3JlYXRlQ2hhcnRWaXN1YWxpemF0aW9uIH0gZnJvbSBcIi4vQ2hhcnRcIjtcbmltcG9ydCB7IElzc3VlVHlwZSwgSXNzdWVTZXZlcml0eSwgSXNzdWVDYXRlZ29yeSB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvSXNzdWVNYW5hZ2VyXCI7XG5pbXBvcnQgQ29udmVydGVyQ29udGV4dCBmcm9tIFwiLi4vLi4vQ29udmVydGVyQ29udGV4dFwiO1xuaW1wb3J0IHsgVGVtcGxhdGVUeXBlLCBWaWV3UGF0aENvbmZpZ3VyYXRpb24gfSBmcm9tIFwiLi4vLi4vTWFuaWZlc3RTZXR0aW5nc1wiO1xuXG5leHBvcnQgdHlwZSBEYXRhVmlzdWFsaXphdGlvbkFubm90YXRpb25zID1cblx0fCBMaW5lSXRlbVxuXHR8IENoYXJ0XG5cdHwgUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlc1xuXHR8IFNlbGVjdGlvblZhcmlhbnRUeXBlVHlwZXNcblx0fCBTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzO1xuLy8gfCBDaGFydERlZmluaXRpb25UeXBlVHlwZXM7XG5cbmV4cG9ydCB0eXBlIEFjdHVhbFZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucyA9IExpbmVJdGVtIHwgQ2hhcnREZWZpbml0aW9uVHlwZVR5cGVzO1xuXG50eXBlIFZpc3VhbGl6YXRpb25BbmRQYXRoID0ge1xuXHR2aXN1YWxpemF0aW9uOiBBY3R1YWxWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnM7XG5cdGFubm90YXRpb25QYXRoOiBzdHJpbmc7XG5cdHNlbGVjdGlvblZhcmlhbnRQYXRoPzogc3RyaW5nO1xuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0O1xufTtcblxuZXhwb3J0IHR5cGUgRGF0YVZpc3VhbGl6YXRpb25EZWZpbml0aW9uID0ge1xuXHR2aXN1YWxpemF0aW9uczogKFRhYmxlVmlzdWFsaXphdGlvbiB8IENoYXJ0VmlzdWFsaXphdGlvbilbXTtcblx0YW5ub3RhdGlvblBhdGg6IHN0cmluZztcbn07XG5cbmNvbnN0IGdldFZpc3VhbGl6YXRpb25zRnJvbVByZXNlbnRhdGlvblZhcmlhbnQgPSBmdW5jdGlvbihcblx0cHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb246IFByZXNlbnRhdGlvblZhcmlhbnRUeXBlVHlwZXMsXG5cdHZpc3VhbGl6YXRpb25QYXRoOiBzdHJpbmcsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHRcbik6IFZpc3VhbGl6YXRpb25BbmRQYXRoW10ge1xuXHRjb25zdCB2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnM6IFZpc3VhbGl6YXRpb25BbmRQYXRoW10gPSBbXTtcblx0Y29uc3QgdmlzdWFsaXphdGlvbnMgPSBwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbi5WaXN1YWxpemF0aW9ucyB8fCBbXTtcblx0Y29uc3QgYmFzZVZpc3VhbGl6YXRpb25QYXRoID0gdmlzdWFsaXphdGlvblBhdGguc3BsaXQoXCJAXCIpWzBdO1xuXHRpZiAodmlzdWFsaXphdGlvbnMpIHtcblx0XHQvLyBPbmx5IGFsbG93IG9uZSBsaW5lIGl0ZW0gLyBjaGFydFxuXHRcdGxldCBoYXNMaW5lSXRlbSA9IGZhbHNlO1xuXHRcdGxldCBoYXNDaGFydCA9IGZhbHNlO1xuXHRcdGxldCBoYXNWaXN1YWxpemF0aW9uID0gZmFsc2U7IC8vIHVzZWQgdG8gYWxsb3cgb25seSBmaXJzdCB2aXN1YWxpemF0aW9uIGluIE9QXG5cdFx0Y29uc3QgYklzQUxQID1cblx0XHRcdGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCkuaGFzTXVsdGlwbGVWaXN1YWxpemF0aW9ucygpIHx8XG5cdFx0XHRjb252ZXJ0ZXJDb250ZXh0LmdldFRlbXBsYXRlVHlwZSgpID09PSBUZW1wbGF0ZVR5cGUuQW5hbHl0aWNhbExpc3RQYWdlO1xuXHRcdHZpc3VhbGl6YXRpb25zLmZvckVhY2godmlzdWFsaXphdGlvbiA9PiB7XG5cdFx0XHRzd2l0Y2ggKHZpc3VhbGl6YXRpb24uJHRhcmdldC50ZXJtKSB7XG5cdFx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuTGluZUl0ZW06XG5cdFx0XHRcdFx0aWYgKCFoYXNMaW5lSXRlbSAmJiAoYklzQUxQIHx8ICFoYXNWaXN1YWxpemF0aW9uKSkge1xuXHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvbkFubm90YXRpb25zLnB1c2goe1xuXHRcdFx0XHRcdFx0XHR2aXN1YWxpemF0aW9uOiB2aXN1YWxpemF0aW9uLiR0YXJnZXQgYXMgQWN0dWFsVmlzdWFsaXphdGlvbkFubm90YXRpb25zLFxuXHRcdFx0XHRcdFx0XHRhbm5vdGF0aW9uUGF0aDogYCR7YmFzZVZpc3VhbGl6YXRpb25QYXRofSR7dmlzdWFsaXphdGlvbi52YWx1ZX1gLFxuXHRcdFx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0OiBjb252ZXJ0ZXJDb250ZXh0XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdGhhc0xpbmVJdGVtID0gdHJ1ZTtcblx0XHRcdFx0XHRcdGhhc1Zpc3VhbGl6YXRpb24gPSB0cnVlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5DaGFydDpcblx0XHRcdFx0XHRpZiAoIWhhc0NoYXJ0ICYmIChiSXNBTFAgfHwgIWhhc1Zpc3VhbGl6YXRpb24pKSB7XG5cdFx0XHRcdFx0XHR2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnMucHVzaCh7XG5cdFx0XHRcdFx0XHRcdHZpc3VhbGl6YXRpb246IHZpc3VhbGl6YXRpb24uJHRhcmdldCBhcyBBY3R1YWxWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnMsXG5cdFx0XHRcdFx0XHRcdGFubm90YXRpb25QYXRoOiBgJHtiYXNlVmlzdWFsaXphdGlvblBhdGh9JHt2aXN1YWxpemF0aW9uLnZhbHVlfWAsXG5cdFx0XHRcdFx0XHRcdGNvbnZlcnRlckNvbnRleHQ6IGNvbnZlcnRlckNvbnRleHRcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0aGFzQ2hhcnQgPSB0cnVlO1xuXHRcdFx0XHRcdFx0aGFzVmlzdWFsaXphdGlvbiA9IHRydWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cdHJldHVybiB2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnM7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudChcblx0ZW50aXR5VHlwZTogRW50aXR5VHlwZSxcblx0YW5ub3RhdGlvblBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZCxcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dFxuKTogYW55IHtcblx0aWYgKGFubm90YXRpb25QYXRoKSB7XG5cdFx0Y29uc3QgcmVzb2x2ZWRUYXJnZXQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGVBbm5vdGF0aW9uKGFubm90YXRpb25QYXRoKTtcblx0XHRjb25zdCBzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50ID0gcmVzb2x2ZWRUYXJnZXQuYW5ub3RhdGlvbiBhcyBTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzO1xuXHRcdGlmIChzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50KSB7XG5cdFx0XHRpZiAoc2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudC50ZXJtID09PSBVSUFubm90YXRpb25UZXJtcy5TZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50KSB7XG5cdFx0XHRcdHJldHVybiBzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50O1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJBbm5vdGF0aW9uIFBhdGggZm9yIHRoZSBTUFYgbWVudGlvbmVkIGluIHRoZSBtYW5pZmVzdCBpcyBub3QgZm91bmQsIFBsZWFzZSBhZGQgdGhlIFNQViBpbiB0aGUgYW5ub3RhdGlvblwiKTtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIGVudGl0eVR5cGUuYW5ub3RhdGlvbnM/LlVJPy5TZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50O1xuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NlbGVjdGlvblByZXNlbnRhdGlvbkNvbXBsaWFudChcblx0U2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudDogU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcyxcblx0YklzQUxQOiBCb29sZWFuXG4pOiBCb29sZWFuIHwgdW5kZWZpbmVkIHtcblx0Y29uc3QgcHJlc2VudGF0aW9uVmFyaWFudCA9IFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQgJiYgU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudC5QcmVzZW50YXRpb25WYXJpYW50O1xuXHRpZiAocHJlc2VudGF0aW9uVmFyaWFudCkge1xuXHRcdHJldHVybiBpc1ByZXNlbnRhdGlvbkNvbXBsaWFudChwcmVzZW50YXRpb25WYXJpYW50LCBiSXNBTFApO1xuXHR9IGVsc2Uge1xuXHRcdHRocm93IG5ldyBFcnJvcihcIlByZXNlbnRhdGlvbiBWYXJpYW50IGlzIG5vdCBwcmVzZW50IGluIHRoZSBTUFYgYW5ub3RhdGlvblwiKTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQcmVzZW50YXRpb25Db21wbGlhbnQocHJlc2VudGF0aW9uVmFyaWFudDogUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcywgYklzQUxQPzogQm9vbGVhbik6IEJvb2xlYW4ge1xuXHRsZXQgYkhhc1RhYmxlID0gZmFsc2UsXG5cdFx0Ykhhc0NoYXJ0ID0gZmFsc2U7XG5cdGlmIChiSXNBTFApIHtcblx0XHRpZiAocHJlc2VudGF0aW9uVmFyaWFudCAmJiBwcmVzZW50YXRpb25WYXJpYW50LlZpc3VhbGl6YXRpb25zKSB7XG5cdFx0XHRjb25zdCBhVmlzdWFsaXphdGlvbnMgPSBwcmVzZW50YXRpb25WYXJpYW50LlZpc3VhbGl6YXRpb25zO1xuXHRcdFx0YVZpc3VhbGl6YXRpb25zLmZvckVhY2gob1Zpc3VhbGl6YXRpb24gPT4ge1xuXHRcdFx0XHRpZiAob1Zpc3VhbGl6YXRpb24uJHRhcmdldC50ZXJtID09PSBVSUFubm90YXRpb25UZXJtcy5MaW5lSXRlbSkge1xuXHRcdFx0XHRcdGJIYXNUYWJsZSA9IHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKG9WaXN1YWxpemF0aW9uLiR0YXJnZXQudGVybSA9PT0gVUlBbm5vdGF0aW9uVGVybXMuQ2hhcnQpIHtcblx0XHRcdFx0XHRiSGFzQ2hhcnQgPSB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cdFx0cmV0dXJuIGJIYXNDaGFydCAmJiBiSGFzVGFibGU7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIChcblx0XHRcdHByZXNlbnRhdGlvblZhcmlhbnQgJiZcblx0XHRcdHByZXNlbnRhdGlvblZhcmlhbnQuVmlzdWFsaXphdGlvbnMgJiZcblx0XHRcdCEhcHJlc2VudGF0aW9uVmFyaWFudC5WaXN1YWxpemF0aW9ucy5maW5kKHZpc3VhbGl6YXRpb24gPT4ge1xuXHRcdFx0XHRyZXR1cm4gdmlzdWFsaXphdGlvbi4kdGFyZ2V0LnRlcm0gPT09IFVJQW5ub3RhdGlvblRlcm1zLkxpbmVJdGVtIHx8IHZpc3VhbGl6YXRpb24uJHRhcmdldC50ZXJtID09PSBVSUFubm90YXRpb25UZXJtcy5DaGFydDtcblx0XHRcdH0pXG5cdFx0KTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdExpbmVJdGVtKGVudGl0eVR5cGU6IEVudGl0eVR5cGUpOiBMaW5lSXRlbSB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiBlbnRpdHlUeXBlLmFubm90YXRpb25zLlVJPy5MaW5lSXRlbTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0Q2hhcnQoZW50aXR5VHlwZTogRW50aXR5VHlwZSk6IENoYXJ0IHwgdW5kZWZpbmVkIHtcblx0cmV0dXJuIGVudGl0eVR5cGUuYW5ub3RhdGlvbnMuVUk/LkNoYXJ0O1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRQcmVzZW50YXRpb25WYXJpYW50KGVudGl0eVR5cGU6IEVudGl0eVR5cGUpOiBQcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzIHwgdW5kZWZpbmVkIHtcblx0cmV0dXJuIGVudGl0eVR5cGUuYW5ub3RhdGlvbnM/LlVJPy5QcmVzZW50YXRpb25WYXJpYW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdFNlbGVjdGlvblZhcmlhbnQoZW50aXR5VHlwZTogRW50aXR5VHlwZSk6IFNlbGVjdGlvblZhcmlhbnRUeXBlVHlwZXMgfCB1bmRlZmluZWQge1xuXHRyZXR1cm4gZW50aXR5VHlwZS5hbm5vdGF0aW9ucz8uVUk/LlNlbGVjdGlvblZhcmlhbnQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWxlY3Rpb25WYXJpYW50KGVudGl0eVR5cGU6IEVudGl0eVR5cGUsIGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQpOiBTZWxlY3Rpb25WYXJpYW50VHlwZVR5cGVzIHwgdW5kZWZpbmVkIHtcblx0Y29uc3QgYW5ub3RhdGlvblBhdGggPSBjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpLmdldERlZmF1bHRUZW1wbGF0ZUFubm90YXRpb25QYXRoKCk7XG5cdGNvbnN0IHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQgPSBnZXRTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50KGVudGl0eVR5cGUsIGFubm90YXRpb25QYXRoLCBjb252ZXJ0ZXJDb250ZXh0KTtcblx0bGV0IHNlbGVjdGlvblZhcmlhbnQ7XG5cdGlmIChzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50KSB7XG5cdFx0Y29uc3Qgc2VsZWN0aW9uVmFyaWFudCA9IHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQuU2VsZWN0aW9uVmFyaWFudDtcblx0XHRpZiAoc2VsZWN0aW9uVmFyaWFudCkge1xuXHRcdFx0cmV0dXJuIHNlbGVjdGlvblZhcmlhbnQ7XG5cdFx0fVxuXHR9IGVsc2Uge1xuXHRcdHNlbGVjdGlvblZhcmlhbnQgPSBnZXREZWZhdWx0U2VsZWN0aW9uVmFyaWFudChlbnRpdHlUeXBlKTtcblx0XHRyZXR1cm4gc2VsZWN0aW9uVmFyaWFudDtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0YVZpc3VhbGl6YXRpb25Db25maWd1cmF0aW9uKFxuXHR2aXN1YWxpemF0aW9uUGF0aDogc3RyaW5nLFxuXHRpc0NvbmRlbnNlZFRhYmxlTGF5b3V0Q29tcGxpYW50OiBib29sZWFuLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHR2aWV3Q29uZmlndXJhdGlvbj86IFZpZXdQYXRoQ29uZmlndXJhdGlvbixcblx0ZG9Ob3RDaGVja0FwcGx5U3VwcG9ydGVkPzogYm9vbGVhblxuKTogRGF0YVZpc3VhbGl6YXRpb25EZWZpbml0aW9uIHtcblx0Y29uc3QgcmVzb2x2ZWRUYXJnZXQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGVBbm5vdGF0aW9uKHZpc3VhbGl6YXRpb25QYXRoKTtcblx0Y29uc3QgdmlzdWFsaXphdGlvbiA9IHJlc29sdmVkVGFyZ2V0LmFubm90YXRpb24gYXMgRGF0YVZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucztcblx0Y29udmVydGVyQ29udGV4dCA9IHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQ7XG5cdGxldCB2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnM6IFZpc3VhbGl6YXRpb25BbmRQYXRoW10gPSBbXTtcblx0bGV0IHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uOiBQcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzO1xuXHRsZXQgcHJlc2VudGF0aW9uUGF0aDogc3RyaW5nID0gXCJcIjtcblx0bGV0IGNoYXJ0VmlzdWFsaXphdGlvbiwgdGFibGVWaXN1YWxpemF0aW9uO1xuXHRjb25zdCBzVGVybSA9IHZpc3VhbGl6YXRpb24/LnRlcm07XG5cdGlmIChzVGVybSkge1xuXHRcdHN3aXRjaCAoc1Rlcm0pIHtcblx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuTGluZUl0ZW06XG5cdFx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLkNoYXJ0OlxuXHRcdFx0XHR2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnMucHVzaCh7XG5cdFx0XHRcdFx0dmlzdWFsaXphdGlvbjogdmlzdWFsaXphdGlvbiBhcyBBY3R1YWxWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnMsXG5cdFx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IHZpc3VhbGl6YXRpb25QYXRoLFxuXHRcdFx0XHRcdGNvbnZlcnRlckNvbnRleHQ6IGNvbnZlcnRlckNvbnRleHRcblx0XHRcdFx0fSk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5QcmVzZW50YXRpb25WYXJpYW50OlxuXHRcdFx0XHRwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbiA9IHZpc3VhbGl6YXRpb24gYXMgUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcztcblx0XHRcdFx0dmlzdWFsaXphdGlvbkFubm90YXRpb25zID0gdmlzdWFsaXphdGlvbkFubm90YXRpb25zLmNvbmNhdChcblx0XHRcdFx0XHRnZXRWaXN1YWxpemF0aW9uc0Zyb21QcmVzZW50YXRpb25WYXJpYW50KFxuXHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvbiBhcyBQcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzLFxuXHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvblBhdGgsXG5cdFx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0XG5cdFx0XHRcdFx0KVxuXHRcdFx0XHQpO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudDpcblx0XHRcdFx0cHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24gPSAodmlzdWFsaXphdGlvbiBhcyBTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzKS5QcmVzZW50YXRpb25WYXJpYW50O1xuXHRcdFx0XHQvLyBQcmVzZW50YXRpb24gY2FuIGJlIGlubGluZSBvciBvdXRzaWRlIHRoZSBTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50XG5cdFx0XHRcdHByZXNlbnRhdGlvblBhdGggPSBwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbi5mdWxseVF1YWxpZmllZE5hbWU7XG5cblx0XHRcdFx0aWYgKCFpc1ByZXNlbnRhdGlvbkNvbXBsaWFudChwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbikpIHtcblx0XHRcdFx0XHRjb25zdCBlbnRpdHlUeXBlID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCk7XG5cdFx0XHRcdFx0Y29uc3QgZGVmYXVsdExpbmVJdGVtQW5ub3RhdGlvbiA9IGdldERlZmF1bHRMaW5lSXRlbShlbnRpdHlUeXBlKSBhcyBMaW5lSXRlbTtcblx0XHRcdFx0XHRpZiAoZGVmYXVsdExpbmVJdGVtQW5ub3RhdGlvbikge1xuXHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvbkFubm90YXRpb25zLnB1c2goe1xuXHRcdFx0XHRcdFx0XHR2aXN1YWxpemF0aW9uOiBkZWZhdWx0TGluZUl0ZW1Bbm5vdGF0aW9uLFxuXHRcdFx0XHRcdFx0XHRhbm5vdGF0aW9uUGF0aDogY29udmVydGVyQ29udGV4dC5nZXRSZWxhdGl2ZUFubm90YXRpb25QYXRoKFxuXHRcdFx0XHRcdFx0XHRcdGRlZmF1bHRMaW5lSXRlbUFubm90YXRpb24uZnVsbHlRdWFsaWZpZWROYW1lLFxuXHRcdFx0XHRcdFx0XHRcdGVudGl0eVR5cGVcblx0XHRcdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dDogY29udmVydGVyQ29udGV4dFxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucyA9IHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucy5jb25jYXQoXG5cdFx0XHRcdFx0XHRnZXRWaXN1YWxpemF0aW9uc0Zyb21QcmVzZW50YXRpb25WYXJpYW50KHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uLCB2aXN1YWxpemF0aW9uUGF0aCwgY29udmVydGVyQ29udGV4dClcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0YnJlYWs7XG5cdFx0fVxuXHRcdHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucy5mb3JFYWNoKHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9uID0+IHtcblx0XHRcdGNvbnN0IHsgdmlzdWFsaXphdGlvbiwgYW5ub3RhdGlvblBhdGgsIGNvbnZlcnRlckNvbnRleHQgfSA9IHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9uO1xuXHRcdFx0c3dpdGNoICh2aXN1YWxpemF0aW9uLnRlcm0pIHtcblx0XHRcdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5DaGFydDpcblx0XHRcdFx0XHRjaGFydFZpc3VhbGl6YXRpb24gPSBjcmVhdGVDaGFydFZpc3VhbGl6YXRpb24oXG5cdFx0XHRcdFx0XHR2aXN1YWxpemF0aW9uIGFzIENoYXJ0RGVmaW5pdGlvblR5cGVUeXBlcyxcblx0XHRcdFx0XHRcdGFubm90YXRpb25QYXRoLFxuXHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dCxcblx0XHRcdFx0XHRcdGRvTm90Q2hlY2tBcHBseVN1cHBvcnRlZFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuTGluZUl0ZW06XG5cdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0dGFibGVWaXN1YWxpemF0aW9uID0gY3JlYXRlVGFibGVWaXN1YWxpemF0aW9uKFxuXHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvbiBhcyBMaW5lSXRlbSxcblx0XHRcdFx0XHRcdGFubm90YXRpb25QYXRoLFxuXHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dCxcblx0XHRcdFx0XHRcdHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uLFxuXHRcdFx0XHRcdFx0aXNDb25kZW5zZWRUYWJsZUxheW91dENvbXBsaWFudCxcblx0XHRcdFx0XHRcdHZpZXdDb25maWd1cmF0aW9uXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9KTtcblx0fSBlbHNlIHtcblx0XHR0YWJsZVZpc3VhbGl6YXRpb24gPSBjcmVhdGVEZWZhdWx0VGFibGVWaXN1YWxpemF0aW9uKGNvbnZlcnRlckNvbnRleHQpO1xuXHRcdGNvbnZlcnRlckNvbnRleHQuZ2V0RGlhZ25vc3RpY3MoKS5hZGRJc3N1ZShJc3N1ZUNhdGVnb3J5LkFubm90YXRpb24sIElzc3VlU2V2ZXJpdHkuTWVkaXVtLCBJc3N1ZVR5cGUuTUlTU0lOR19MSU5FSVRFTSk7XG5cdH1cblx0Y29uc3QgYVZpc3VhbGl6YXRpb25zOiBhbnkgPSBbXTtcblx0bGV0IHNQYXRoID1cblx0XHRzVGVybSA9PT0gVUlBbm5vdGF0aW9uVGVybXMuU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCA/IHByZXNlbnRhdGlvblBhdGggOiB2aXN1YWxpemF0aW9uICYmIHZpc3VhbGl6YXRpb24uZnVsbHlRdWFsaWZpZWROYW1lO1xuXHRpZiAoc1BhdGggPT09IHVuZGVmaW5lZCkge1xuXHRcdHNQYXRoID0gXCIvXCI7XG5cdH1cblx0aWYgKGNoYXJ0VmlzdWFsaXphdGlvbikge1xuXHRcdGFWaXN1YWxpemF0aW9ucy5wdXNoKGNoYXJ0VmlzdWFsaXphdGlvbik7XG5cdH1cblx0aWYgKHRhYmxlVmlzdWFsaXphdGlvbikge1xuXHRcdGFWaXN1YWxpemF0aW9ucy5wdXNoKHRhYmxlVmlzdWFsaXphdGlvbik7XG5cdH1cblx0cmV0dXJuIHtcblx0XHR2aXN1YWxpemF0aW9uczogYVZpc3VhbGl6YXRpb25zLFxuXHRcdGFubm90YXRpb25QYXRoOiBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgoc1BhdGgpXG5cdH07XG59XG4iXX0=
@@ -2,4 +2,4 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2021 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["./Table","./Chart","sap/fe/core/converters/helpers/IssueManager","../../ManifestSettings"],function(T,C,I,M){"use strict";var _={};var a=M.TemplateType;var b=I.IssueCategory;var c=I.IssueSeverity;var d=I.IssueType;var e=C.createChartVisualization;var f=T.createTableVisualization;var g=T.createDefaultTableVisualization;var h=function(r,v,s){var t=[];var u=r.Visualizations||[];var w=v.split("@")[0];if(u){var x=false;var y=false;var z=false;var A=s.getManifestWrapper().hasMultipleVisualizations()||s.getTemplateType()===a.AnalyticalListPage;u.forEach(function(B){switch(B.$target.term){case"com.sap.vocabularies.UI.v1.LineItem":if(!x&&(A||!z)){t.push({visualization:B.$target,annotationPath:"".concat(w).concat(B.value),converterContext:s});x=true;z=true;}break;case"com.sap.vocabularies.UI.v1.Chart":if(!y&&(A||!z)){t.push({visualization:B.$target,annotationPath:"".concat(w).concat(B.value),converterContext:s});y=true;z=true;}break;default:break;}});}return t;};function i(r,s,t){if(s){var u=t.getEntityTypeAnnotation(s);var v=u.annotation;if(v){if(v.term==="com.sap.vocabularies.UI.v1.SelectionPresentationVariant"){return v;}}else{throw new Error("Annotation Path for the SPV mentioned in the manifest is not found, Please add the SPV in the annotation");}}else{var w,x;return(w=r.annotations)===null||w===void 0?void 0:(x=w.UI)===null||x===void 0?void 0:x.SelectionPresentationVariant;}}_.getSelectionPresentationVariant=i;function j(S,r){var s=S&&S.PresentationVariant;if(s){return k(s,r);}else{throw new Error("Presentation Variant is not present in the SPV annotation");}}_.isSelectionPresentationCompliant=j;function k(r,s){var H=false,t=false;if(s){if(r&&r.Visualizations){var v=r.Visualizations;v.map(function(V){if(V.$target.term==="com.sap.vocabularies.UI.v1.LineItem"){H=true;}if(V.$target.term==="com.sap.vocabularies.UI.v1.Chart"){t=true;}});}return t&&H;}else{return r&&r.Visualizations&&!!r.Visualizations.find(function(u){return u.$target.term==="com.sap.vocabularies.UI.v1.LineItem"||u.$target.term==="com.sap.vocabularies.UI.v1.Chart";});}}_.isPresentationCompliant=k;function l(r){var s;return(s=r.annotations.UI)===null||s===void 0?void 0:s.LineItem;}_.getDefaultLineItem=l;function m(r){var s;return(s=r.annotations.UI)===null||s===void 0?void 0:s.Chart;}_.getDefaultChart=m;function n(r){var s,t;return(s=r.annotations)===null||s===void 0?void 0:(t=s.UI)===null||t===void 0?void 0:t.PresentationVariant;}_.getDefaultPresentationVariant=n;function o(r){var s,t;return(s=r.annotations)===null||s===void 0?void 0:(t=s.UI)===null||t===void 0?void 0:t.SelectionVariant;}_.getDefaultSelectionVariant=o;function p(r,s){var t=s.getManifestWrapper().getDefaultTemplateAnnotationPath();var u=i(r,t,s);var v;if(u){var w=u.SelectionVariant;if(w){return w;}}else{v=o(r);return v;}}_.getSelectionVariant=p;function q(v,r,s,t,u){var w=s.getEntityTypeAnnotation(v);var x=w.annotation;s=w.converterContext;var y=[];var z;var A="";var B,D;var E=x===null||x===void 0?void 0:x.term;if(E){switch(E){case"com.sap.vocabularies.UI.v1.LineItem":case"com.sap.vocabularies.UI.v1.Chart":y.push({visualization:x,annotationPath:v,converterContext:s});break;case"com.sap.vocabularies.UI.v1.PresentationVariant":z=x;y=y.concat(h(x,v,s));break;case"com.sap.vocabularies.UI.v1.SelectionPresentationVariant":z=x.PresentationVariant;A=z.fullyQualifiedName;if(!k(z)){var F=s.getEntityType();var G=l(F);if(G){y.push({visualization:G,annotationPath:s.getRelativeAnnotationPath(G.fullyQualifiedName,F),converterContext:s});}}else{y=y.concat(h(z,v,s));}break;default:break;}y.map(function(H){var x=H.visualization,J=H.annotationPath,s=H.converterContext;switch(x.term){case"com.sap.vocabularies.UI.v1.Chart":B=e(x,J,s,u);break;case"com.sap.vocabularies.UI.v1.LineItem":default:D=f(x,J,s,z,r,t);break;}});}else{D=g(s);s.getDiagnostics().addIssue(b.Annotation,c.Medium,d.MISSING_LINEITEM);}var V=[];var P=E==="com.sap.vocabularies.UI.v1.SelectionPresentationVariant"?A:x&&x.fullyQualifiedName;if(P===undefined){P="/";}if(B){V.push(B);}if(D){V.push(D);}return{visualizations:V,annotationPath:s.getEntitySetBasedAnnotationPath(P)};}_.getDataVisualizationConfiguration=q;return _;},false);
5
+ sap.ui.define(["./Table","./Chart","sap/fe/core/converters/helpers/IssueManager","../../ManifestSettings"],function(T,C,I,M){"use strict";var _={};var a=M.TemplateType;var b=I.IssueCategory;var c=I.IssueSeverity;var d=I.IssueType;var e=C.createChartVisualization;var f=T.createTableVisualization;var g=T.createDefaultTableVisualization;var h=function(r,v,s){var t=[];var u=r.Visualizations||[];var w=v.split("@")[0];if(u){var x=false;var y=false;var z=false;var A=s.getManifestWrapper().hasMultipleVisualizations()||s.getTemplateType()===a.AnalyticalListPage;u.forEach(function(B){switch(B.$target.term){case"com.sap.vocabularies.UI.v1.LineItem":if(!x&&(A||!z)){t.push({visualization:B.$target,annotationPath:"".concat(w).concat(B.value),converterContext:s});x=true;z=true;}break;case"com.sap.vocabularies.UI.v1.Chart":if(!y&&(A||!z)){t.push({visualization:B.$target,annotationPath:"".concat(w).concat(B.value),converterContext:s});y=true;z=true;}break;default:break;}});}return t;};function i(r,s,t){if(s){var u=t.getEntityTypeAnnotation(s);var v=u.annotation;if(v){if(v.term==="com.sap.vocabularies.UI.v1.SelectionPresentationVariant"){return v;}}else{throw new Error("Annotation Path for the SPV mentioned in the manifest is not found, Please add the SPV in the annotation");}}else{var w,x;return(w=r.annotations)===null||w===void 0?void 0:(x=w.UI)===null||x===void 0?void 0:x.SelectionPresentationVariant;}}_.getSelectionPresentationVariant=i;function j(S,r){var s=S&&S.PresentationVariant;if(s){return k(s,r);}else{throw new Error("Presentation Variant is not present in the SPV annotation");}}_.isSelectionPresentationCompliant=j;function k(r,s){var H=false,t=false;if(s){if(r&&r.Visualizations){var v=r.Visualizations;v.forEach(function(V){if(V.$target.term==="com.sap.vocabularies.UI.v1.LineItem"){H=true;}if(V.$target.term==="com.sap.vocabularies.UI.v1.Chart"){t=true;}});}return t&&H;}else{return r&&r.Visualizations&&!!r.Visualizations.find(function(u){return u.$target.term==="com.sap.vocabularies.UI.v1.LineItem"||u.$target.term==="com.sap.vocabularies.UI.v1.Chart";});}}_.isPresentationCompliant=k;function l(r){var s;return(s=r.annotations.UI)===null||s===void 0?void 0:s.LineItem;}_.getDefaultLineItem=l;function m(r){var s;return(s=r.annotations.UI)===null||s===void 0?void 0:s.Chart;}_.getDefaultChart=m;function n(r){var s,t;return(s=r.annotations)===null||s===void 0?void 0:(t=s.UI)===null||t===void 0?void 0:t.PresentationVariant;}_.getDefaultPresentationVariant=n;function o(r){var s,t;return(s=r.annotations)===null||s===void 0?void 0:(t=s.UI)===null||t===void 0?void 0:t.SelectionVariant;}_.getDefaultSelectionVariant=o;function p(r,s){var t=s.getManifestWrapper().getDefaultTemplateAnnotationPath();var u=i(r,t,s);var v;if(u){var w=u.SelectionVariant;if(w){return w;}}else{v=o(r);return v;}}_.getSelectionVariant=p;function q(v,r,s,t,u){var w=s.getEntityTypeAnnotation(v);var x=w.annotation;s=w.converterContext;var y=[];var z;var A="";var B,D;var E=x===null||x===void 0?void 0:x.term;if(E){switch(E){case"com.sap.vocabularies.UI.v1.LineItem":case"com.sap.vocabularies.UI.v1.Chart":y.push({visualization:x,annotationPath:v,converterContext:s});break;case"com.sap.vocabularies.UI.v1.PresentationVariant":z=x;y=y.concat(h(x,v,s));break;case"com.sap.vocabularies.UI.v1.SelectionPresentationVariant":z=x.PresentationVariant;A=z.fullyQualifiedName;if(!k(z)){var F=s.getEntityType();var G=l(F);if(G){y.push({visualization:G,annotationPath:s.getRelativeAnnotationPath(G.fullyQualifiedName,F),converterContext:s});}}else{y=y.concat(h(z,v,s));}break;default:break;}y.forEach(function(H){var x=H.visualization,J=H.annotationPath,s=H.converterContext;switch(x.term){case"com.sap.vocabularies.UI.v1.Chart":B=e(x,J,s,u);break;case"com.sap.vocabularies.UI.v1.LineItem":default:D=f(x,J,s,z,r,t);break;}});}else{D=g(s);s.getDiagnostics().addIssue(b.Annotation,c.Medium,d.MISSING_LINEITEM);}var V=[];var P=E==="com.sap.vocabularies.UI.v1.SelectionPresentationVariant"?A:x&&x.fullyQualifiedName;if(P===undefined){P="/";}if(B){V.push(B);}if(D){V.push(D);}return{visualizations:V,annotationPath:s.getEntitySetBasedAnnotationPath(P)};}_.getDataVisualizationConfiguration=q;return _;},false);
@@ -123,7 +123,7 @@ export function isPresentationCompliant(presentationVariant: PresentationVariant
123
123
  if (bIsALP) {
124
124
  if (presentationVariant && presentationVariant.Visualizations) {
125
125
  const aVisualizations = presentationVariant.Visualizations;
126
- aVisualizations.map(oVisualization => {
126
+ aVisualizations.forEach(oVisualization => {
127
127
  if (oVisualization.$target.term === UIAnnotationTerms.LineItem) {
128
128
  bHasTable = true;
129
129
  }
@@ -235,7 +235,7 @@ export function getDataVisualizationConfiguration(
235
235
  default:
236
236
  break;
237
237
  }
238
- visualizationAnnotations.map(visualizationAnnotation => {
238
+ visualizationAnnotations.forEach(visualizationAnnotation => {
239
239
  const { visualization, annotationPath, converterContext } = visualizationAnnotation;
240
240
  switch (visualization.term) {
241
241
  case UIAnnotationTerms.Chart:
@@ -7,8 +7,10 @@ sap.ui.define(["../../helpers/ConfigurableObject", "../../helpers/ID", "../../he
7
7
 
8
8
  var _exports = {};
9
9
  var not = BindingExpression.not;
10
+ var ifElse = BindingExpression.ifElse;
10
11
  var equal = BindingExpression.equal;
11
12
  var compileBinding = BindingExpression.compileBinding;
13
+ var bindingExpression = BindingExpression.bindingExpression;
12
14
  var annotationExpression = BindingExpression.annotationExpression;
13
15
  var generate = StableIdHelper.generate;
14
16
  var getTargetObjectPath = DataModelPathHelper.getTargetObjectPath;
@@ -177,7 +179,7 @@ sap.ui.define(["../../helpers/ConfigurableObject", "../../helpers/ID", "../../he
177
179
  var oActionShowDetails = {
178
180
  id: FormStandardActionButtonID(sFormContainerId, "ShowHideDetails"),
179
181
  key: "StandardAction::ShowHideDetails",
180
- text: "{sap.fe.i18n>T_COMMON_OBJECT_PAGE_SHOW_FORM_CONTAINER_DETAILS}",
182
+ text: compileBinding(ifElse(equal(bindingExpression("showDetails", "internal"), true), bindingExpression("T_COMMON_OBJECT_PAGE_HIDE_FORM_CONTAINER_DETAILS", "sap.fe.i18n"), bindingExpression("T_COMMON_OBJECT_PAGE_SHOW_FORM_CONTAINER_DETAILS", "sap.fe.i18n"))),
181
183
  type: ActionType.ShowFormDetails,
182
184
  press: "FormContainerRuntime.toggleDetails"
183
185
  };
@@ -267,4 +269,4 @@ sap.ui.define(["../../helpers/ConfigurableObject", "../../helpers/ID", "../../he
267
269
  _exports.createFormDefinition = createFormDefinition;
268
270
  return _exports;
269
271
  }, false);
270
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZvcm0udHMiXSwibmFtZXMiOlsiRm9ybUVsZW1lbnRUeXBlIiwiZ2V0RGVmYXVsdEZvcm1hdE9wdGlvbnNGb3JGb3JtIiwidGV4dExpbmVzRWRpdCIsImlzRmllbGRQYXJ0T2ZQcmV2aWV3IiwiZmllbGQiLCJmb3JtUGFydE9mUHJldmlldyIsImFubm90YXRpb25zIiwiVUkiLCJQYXJ0T2ZQcmV2aWV3IiwidW5kZWZpbmVkIiwiZ2V0Rm9ybUVsZW1lbnRzRnJvbUFubm90YXRpb25zIiwiZmFjZXREZWZpbml0aW9uIiwiY29udmVydGVyQ29udGV4dCIsImZvcm1FbGVtZW50cyIsInJlc29sdmVkVGFyZ2V0IiwiZ2V0RW50aXR5VHlwZUFubm90YXRpb24iLCJUYXJnZXQiLCJ2YWx1ZSIsImZvcm1Bbm5vdGF0aW9uIiwiYW5ub3RhdGlvbiIsImdldERhdGFGaWVsZHNGcm9tQW5ub3RhdGlvbnMiLCJzZW1hbnRpY09iamVjdEFubm90YXRpb25QYXRoIiwiZ2V0U2VtYW50aWNPYmplY3RQYXRoIiwiJFR5cGUiLCJIaWRkZW4iLCJ2YWx1ZU9mIiwicHVzaCIsImtleSIsIktleUhlbHBlciIsImdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZCIsInR5cGUiLCJBbm5vdGF0aW9uIiwiYW5ub3RhdGlvblBhdGgiLCJnZXRFbnRpdHlTZXRCYXNlZEFubm90YXRpb25QYXRoIiwiZnVsbHlRdWFsaWZpZWROYW1lIiwic2VtYW50aWNPYmplY3RQYXRoIiwiZm9ybWF0T3B0aW9ucyIsImlzUGFydE9mUHJldmlldyIsInRlcm0iLCJEYXRhIiwiZm9yRWFjaCIsInF1YWxpZmllciIsImdldEZvcm1FbGVtZW50c0Zyb21NYW5pZmVzdCIsIm1hbmlmZXN0V3JhcHBlciIsImdldE1hbmlmZXN0V3JhcHBlciIsIm1hbmlmZXN0Rm9ybUNvbnRhaW5lciIsImdldEZvcm1Db250YWluZXIiLCJmaWVsZHMiLCJPYmplY3QiLCJrZXlzIiwiZmllbGRJZCIsImlkIiwiRGVmYXVsdCIsInRlbXBsYXRlIiwibGFiZWwiLCJwb3NpdGlvbiIsInBsYWNlbWVudCIsIlBsYWNlbWVudCIsIkFmdGVyIiwiYWN0aW9ucyIsInNGb3JtQ29udGFpbmVySWQiLCJnZW5lcmF0ZSIsIkZhY2V0Iiwic0Fubm90YXRpb25QYXRoIiwiaXNWaXNpYmxlIiwiY29tcGlsZUJpbmRpbmciLCJub3QiLCJlcXVhbCIsImFubm90YXRpb25FeHByZXNzaW9uIiwic0VudGl0eVNldFBhdGgiLCJnZXRFbnRpdHlTZXQiLCJnZXRUYXJnZXRFbnRpdHlTZXRQYXRoIiwiZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCIsInRhcmdldE9iamVjdCIsImNvbnRhaW5zVGFyZ2V0IiwiZ2V0VGFyZ2V0T2JqZWN0UGF0aCIsImFGb3JtRWxlbWVudHMiLCJpbnNlcnRDdXN0b21FbGVtZW50cyIsImZpbHRlciIsImFjdGlvbiIsImZhY2V0TmFtZSIsImxlbmd0aCIsIm9BY3Rpb25TaG93RGV0YWlscyIsIkZvcm1TdGFuZGFyZEFjdGlvbkJ1dHRvbklEIiwidGV4dCIsIkFjdGlvblR5cGUiLCJTaG93Rm9ybURldGFpbHMiLCJwcmVzcyIsInNvbWUiLCJvRm9ybUVsZW1lbnQiLCJlbnRpdHlTZXQiLCJnZXRGb3JtQ29udGFpbmVyc0ZvckNvbGxlY3Rpb24iLCJmb3JtQ29udGFpbmVycyIsIkZhY2V0cyIsImZhY2V0IiwiaXNSZWZlcmVuY2VGYWNldCIsImNyZWF0ZUZvcm1EZWZpbml0aW9uIiwiZm9ybUNvbGxlY3Rpb25EZWZpbml0aW9uIiwiRm9ybUlEIiwidXNlRm9ybUNvbnRhaW5lckxhYmVscyIsImhhc0ZhY2V0c05vdFBhcnRPZlByZXZpZXciLCJjaGlsZEZhY2V0IiwiZm9ybURlZmluaXRpb24iLCJFcnJvciJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUE0QllBLGU7O2FBQUFBLGU7QUFBQUEsSUFBQUEsZTtBQUFBQSxJQUFBQSxlO0tBQUFBLGUsS0FBQUEsZTs7OztBQXVDWjtBQUNBO0FB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LFlBQUFBLEtBQUssRUFBRW5EO0FBQVQsV0FBRCxDQURZO0FBRXRCd0YsVUFBQUEsc0JBQXNCLEVBQUUsS0FGRjtBQUd0QkMsVUFBQUEseUJBQXlCLEVBQUUsMkJBQUF6RixlQUFlLENBQUNMLFdBQWhCLDZHQUE2QkMsRUFBN0IsK0dBQWlDQyxhQUFqQyxvRkFBZ0RpQixPQUFoRCxRQUE4RCxLQUhuRTtBQUl0Qm1FLFVBQUFBLGNBQWMsRUFBRSxDQUFDOUMsZ0JBQWdCLENBQUNuQyxlQUFELEVBQWtCQyxnQkFBbEIsRUFBb0MrQyxPQUFwQyxDQUFqQixDQUpNO0FBS3RCSyxVQUFBQSxTQUFTLEVBQUVBO0FBTFcsU0FBdkI7QUFPQSxlQUFPc0MsY0FBUDs7QUFDRDtBQUNDLGNBQU0sSUFBSUMsS0FBSixDQUFVLCtDQUFWLENBQU47QUF2QkY7QUF5QkEiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdEFubm90YXRpb25UZXJtLFxuXHRDb2xsZWN0aW9uRmFjZXRUeXBlcyxcblx0Q29tbXVuaWNhdGlvbkFubm90YXRpb25UZXJtcyxcblx0RGF0YUZpZWxkQWJzdHJhY3RUeXBlcyxcblx0RmFjZXRUeXBlcyxcblx0RmllbGRHcm91cCxcblx0SWRlbnRpZmljYXRpb24sXG5cdFBhcnRPZlByZXZpZXcsXG5cdFJlZmVyZW5jZUZhY2V0VHlwZXMsXG5cdFVJQW5ub3RhdGlvblRlcm1zLFxuXHRVSUFubm90YXRpb25UeXBlc1xufSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB7IENvbmZpZ3VyYWJsZU9iamVjdCwgQ3VzdG9tRWxlbWVudCwgaW5zZXJ0Q3VzdG9tRWxlbWVudHMsIFBsYWNlbWVudCB9IGZyb20gXCIuLi8uLi9oZWxwZXJzL0NvbmZpZ3VyYWJsZU9iamVjdFwiO1xuaW1wb3J0IHsgRm9ybUlELCBGb3JtU3RhbmRhcmRBY3Rpb25CdXR0b25JRCB9IGZyb20gXCIuLi8uLi9oZWxwZXJzL0lEXCI7XG5pbXBvcnQgeyBLZXlIZWxwZXIgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9LZXlcIjtcbmltcG9ydCB7IEFjdGlvblR5cGUsIEZvcm1hdE9wdGlvbnNUeXBlLCBGb3JtTWFuaWZlc3RDb25maWd1cmF0aW9uIH0gZnJvbSBcIi4uLy4uL01hbmlmZXN0U2V0dGluZ3NcIjtcbmltcG9ydCB7IGdldFNlbWFudGljT2JqZWN0UGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2Fubm90YXRpb25zL0RhdGFGaWVsZFwiO1xuaW1wb3J0IHsgZ2V0VGFyZ2V0RW50aXR5U2V0UGF0aCwgZ2V0VGFyZ2V0T2JqZWN0UGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCB7IGdlbmVyYXRlIH0gZnJvbSBcIi4uLy4uLy4uL2hlbHBlcnMvU3RhYmxlSWRIZWxwZXJcIjtcbmltcG9ydCBDb252ZXJ0ZXJDb250ZXh0IGZyb20gXCIuLi8uLi9Db252ZXJ0ZXJDb250ZXh0XCI7XG5pbXBvcnQgeyBCYXNlQWN0aW9uLCBDb252ZXJ0ZXJBY3Rpb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9Db21tb24vQWN0aW9uXCI7XG5pbXBvcnQgeyBhbm5vdGF0aW9uRXhwcmVzc2lvbiwgQmluZGluZ0V4cHJlc3Npb24sIGNvbXBpbGVCaW5kaW5nLCBlcXVhbCwgbm90IH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ0V4cHJlc3Npb25cIjtcblxuZXhwb3J0IHR5cGUgRm9ybURlZmluaXRpb24gPSB7XG5cdGlkOiBzdHJpbmc7XG5cdHVzZUZvcm1Db250YWluZXJMYWJlbHM6IGJvb2xlYW47XG5cdGhhc0ZhY2V0c05vdFBhcnRPZlByZXZpZXc6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgZW51bSBGb3JtRWxlbWVudFR5cGUge1xuXHREZWZhdWx0ID0gXCJEZWZhdWx0XCIsXG5cdEFubm90YXRpb24gPSBcIkFubm90YXRpb25cIlxufVxuXG5leHBvcnQgdHlwZSBCYXNlRm9ybUVsZW1lbnQgPSBDb25maWd1cmFibGVPYmplY3QgJiB7XG5cdGlkPzogc3RyaW5nO1xuXHR0eXBlOiBGb3JtRWxlbWVudFR5cGU7XG5cdGxhYmVsPzogc3RyaW5nO1xuXHR2aXNpYmxlPzogQmluZGluZ0V4cHJlc3Npb248Ym9vbGVhbj47XG5cdGZvcm1hdE9wdGlvbnM/OiBGb3JtYXRPcHRpb25zVHlwZTtcbn07XG5cbmV4cG9ydCB0eXBlIEFubm90YXRpb25Gb3JtRWxlbWVudCA9IEJhc2VGb3JtRWxlbWVudCAmIHtcblx0aWRQcmVmaXg/OiBzdHJpbmc7XG5cdGFubm90YXRpb25QYXRoPzogc3RyaW5nO1xuXHRpc1ZhbHVlTXVsdGlsaW5lVGV4dD86IGJvb2xlYW47XG5cdHNlbWFudGljT2JqZWN0UGF0aD86IHN0cmluZztcblx0aXNQYXJ0T2ZQcmV2aWV3PzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIEN1c3RvbUZvcm1FbGVtZW50ID0gQ3VzdG9tRWxlbWVudDxcblx0QmFzZUZvcm1FbGVtZW50ICYge1xuXHRcdHR5cGU6IEZvcm1FbGVtZW50VHlwZS5EZWZhdWx0O1xuXHRcdHRlbXBsYXRlOiBzdHJpbmc7XG5cdH1cbj47XG5cbmV4cG9ydCB0eXBlIEZvcm1FbGVtZW50ID0gQ3VzdG9tRm9ybUVsZW1lbnQgfCBBbm5vdGF0aW9uRm9ybUVsZW1lbnQ7XG5cbnR5cGUgRm9ybUNvbnRhaW5lciA9IHtcblx0aWQ/OiBzdHJpbmc7XG5cdGZvcm1FbGVtZW50czogRm9ybUVsZW1lbnRbXTtcblx0YW5ub3RhdGlvblBhdGg6IHN0cmluZztcblx0aXNWaXNpYmxlOiBCaW5kaW5nRXhwcmVzc2lvbjxib29sZWFuPjtcblx0ZW50aXR5U2V0Pzogc3RyaW5nO1xuXHRhY3Rpb25zPzogQ29udmVydGVyQWN0aW9uW10gfCBCYXNlQWN0aW9uW107XG59O1xuXG4vKipcbiAqIFJldHVybnMgZGVmYXVsdCBmb3JtYXQgb3B0aW9ucyBmb3IgdGV4dCBmaWVsZHMgb24gYSBmb3JtLlxuICpcbiAqIEByZXR1cm5zIHtGb3JtYXRPcHRpb25zVHlwZX0gQ29sbGVjdGlvbiBvZiBmb3JtYXQgb3B0aW9ucyB3aXRoIGRlZmF1bHQgdmFsdWVzXG4gKi9cbmZ1bmN0aW9uIGdldERlZmF1bHRGb3JtYXRPcHRpb25zRm9yRm9ybSgpOiBGb3JtYXRPcHRpb25zVHlwZSB7XG5cdHJldHVybiB7XG5cdFx0dGV4dExpbmVzRWRpdDogNFxuXHR9O1xufVxuXG5mdW5jdGlvbiBpc0ZpZWxkUGFydE9mUHJldmlldyhmaWVsZDogRGF0YUZpZWxkQWJzdHJhY3RUeXBlcywgZm9ybVBhcnRPZlByZXZpZXc6IFBhcnRPZlByZXZpZXcgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcblx0Ly8gQm90aCBlYWNoIGZvcm0gYW5kIGZpZWxkIGNhbiBoYXZlIHRoZSBQYXJ0T2ZQcmV2aWV3IGFubm90YXRpb24uIE9ubHkgaWYgdGhlIGZvcm0gaXMgbm90IGhpZGRlbiAobm90IHBhcnRPZlByZXZpZXcpIHdlIGFsbG93IHRvZ2dsaW5nIG9uIGZpZWxkIGxldmVsXG5cdHJldHVybiAoXG5cdFx0Zm9ybVBhcnRPZlByZXZpZXcgPT09IGZhbHNlIHx8IGZpZWxkLmFubm90YXRpb25zPy5VST8uUGFydE9mUHJldmlldyA9PT0gdW5kZWZpbmVkIHx8IGZpZWxkLmFubm90YXRpb25zPy5VST8uUGFydE9mUHJldmlldyA9PT0gdHJ1ZVxuXHQpO1xufVxuXG5mdW5jdGlvbiBnZXRGb3JtRWxlbWVudHNGcm9tQW5ub3RhdGlvbnMoZmFjZXREZWZpbml0aW9uOiBSZWZlcmVuY2VGYWNldFR5cGVzLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogQW5ub3RhdGlvbkZvcm1FbGVtZW50W10ge1xuXHRjb25zdCBmb3JtRWxlbWVudHM6IEFubm90YXRpb25Gb3JtRWxlbWVudFtdID0gW107XG5cdGNvbnN0IHJlc29sdmVkVGFyZ2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlQW5ub3RhdGlvbihmYWNldERlZmluaXRpb24uVGFyZ2V0LnZhbHVlKTtcblx0Y29uc3QgZm9ybUFubm90YXRpb246IEFubm90YXRpb25UZXJtPElkZW50aWZpY2F0aW9uPiB8IEFubm90YXRpb25UZXJtPEZpZWxkR3JvdXA+ID0gcmVzb2x2ZWRUYXJnZXQuYW5ub3RhdGlvbiBhc1xuXHRcdHwgQW5ub3RhdGlvblRlcm08SWRlbnRpZmljYXRpb24+XG5cdFx0fCBBbm5vdGF0aW9uVGVybTxGaWVsZEdyb3VwPjtcblx0Y29udmVydGVyQ29udGV4dCA9IHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQ7XG5cblx0ZnVuY3Rpb24gZ2V0RGF0YUZpZWxkc0Zyb21Bbm5vdGF0aW9ucyhmaWVsZDogRGF0YUZpZWxkQWJzdHJhY3RUeXBlcywgZm9ybVBhcnRPZlByZXZpZXc6IFBhcnRPZlByZXZpZXcgfCB1bmRlZmluZWQpIHtcblx0XHRjb25zdCBzZW1hbnRpY09iamVjdEFubm90YXRpb25QYXRoID0gZ2V0U2VtYW50aWNPYmplY3RQYXRoKGNvbnZlcnRlckNvbnRleHQsIGZpZWxkKTtcblx0XHRpZiAoXG5cdFx0XHRmaWVsZC4kVHlwZSAhPT0gVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkRm9yQWN0aW9uICYmXG5cdFx0XHRmaWVsZC4kVHlwZSAhPT0gVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uICYmXG5cdFx0XHRmaWVsZC5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbj8udmFsdWVPZigpICE9PSB0cnVlXG5cdFx0KSB7XG5cdFx0XHRmb3JtRWxlbWVudHMucHVzaCh7XG5cdFx0XHRcdGtleTogS2V5SGVscGVyLmdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZChmaWVsZCksXG5cdFx0XHRcdHR5cGU6IEZvcm1FbGVtZW50VHlwZS5Bbm5vdGF0aW9uLFxuXHRcdFx0XHRhbm5vdGF0aW9uUGF0aDogY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXRCYXNlZEFubm90YXRpb25QYXRoKGZpZWxkLmZ1bGx5UXVhbGlmaWVkTmFtZSkgKyBcIi9cIixcblx0XHRcdFx0c2VtYW50aWNPYmplY3RQYXRoOiBzZW1hbnRpY09iamVjdEFubm90YXRpb25QYXRoLFxuXHRcdFx0XHRmb3JtYXRPcHRpb25zOiBnZXREZWZhdWx0Rm9ybWF0T3B0aW9uc0ZvckZvcm0oKSxcblx0XHRcdFx0aXNQYXJ0T2ZQcmV2aWV3OiBpc0ZpZWxkUGFydE9mUHJldmlldyhmaWVsZCwgZm9ybVBhcnRPZlByZXZpZXcpXG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHRzd2l0Y2ggKGZvcm1Bbm5vdGF0aW9uPy50ZXJtKSB7XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5GaWVsZEdyb3VwOlxuXHRcdFx0KGZvcm1Bbm5vdGF0aW9uIGFzIEFubm90YXRpb25UZXJtPEZpZWxkR3JvdXA+KS5EYXRhLmZvckVhY2goZmllbGQgPT5cblx0XHRcdFx0Z2V0RGF0YUZpZWxkc0Zyb21Bbm5vdGF0aW9ucyhmaWVsZCwgZmFjZXREZWZpbml0aW9uLmFubm90YXRpb25zPy5VST8uUGFydE9mUHJldmlldylcblx0XHRcdCk7XG5cdFx0XHRicmVhaztcblx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLklkZW50aWZpY2F0aW9uOlxuXHRcdFx0KGZvcm1Bbm5vdGF0aW9uIGFzIEFubm90YXRpb25UZXJtPElkZW50aWZpY2F0aW9uPikuZm9yRWFjaChmaWVsZCA9PlxuXHRcdFx0XHRnZXREYXRhRmllbGRzRnJvbUFubm90YXRpb25zKGZpZWxkLCBmYWNldERlZmluaXRpb24uYW5ub3RhdGlvbnM/LlVJPy5QYXJ0T2ZQcmV2aWV3KVxuXHRcdFx0KTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuRGF0YVBvaW50OlxuXHRcdFx0Zm9ybUVsZW1lbnRzLnB1c2goe1xuXHRcdFx0XHQvLyBrZXk6IEtleUhlbHBlci5nZW5lcmF0ZUtleUZyb21EYXRhRmllbGQoZm9ybUFubm90YXRpb24pLFxuXHRcdFx0XHRrZXk6IFwiRGF0YVBvaW50OjpcIiArIChmb3JtQW5ub3RhdGlvbi5xdWFsaWZpZXIgPyBmb3JtQW5ub3RhdGlvbi5xdWFsaWZpZXIgOiBcIlwiKSxcblx0XHRcdFx0dHlwZTogRm9ybUVsZW1lbnRUeXBlLkFubm90YXRpb24sXG5cdFx0XHRcdGFubm90YXRpb25QYXRoOiBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgoZm9ybUFubm90YXRpb24uZnVsbHlRdWFsaWZpZWROYW1lKSArIFwiL1wiXG5cdFx0XHR9KTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgQ29tbXVuaWNhdGlvbkFubm90YXRpb25UZXJtcy5Db250YWN0OlxuXHRcdFx0Zm9ybUVsZW1lbnRzLnB1c2goe1xuXHRcdFx0XHQvLyBrZXk6IEtleUhlbHBlci5nZW5lcmF0ZUtleUZyb21EYXRhRmllbGQoZm9ybUFubm90YXRpb24pLFxuXHRcdFx0XHRrZXk6IFwiQ29udGFjdDo6XCIgKyAoZm9ybUFubm90YXRpb24ucXVhbGlmaWVyID8gZm9ybUFubm90YXRpb24ucXVhbGlmaWVyIDogXCJcIiksXG5cdFx0XHRcdHR5cGU6IEZvcm1FbGVtZW50VHlwZS5Bbm5vdGF0aW9uLFxuXHRcdFx0XHRhbm5vdGF0aW9uUGF0aDogY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXRCYXNlZEFubm90YXRpb25QYXRoKGZvcm1Bbm5vdGF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZSkgKyBcIi9cIlxuXHRcdFx0fSk7XG5cdFx0XHRicmVhaztcblx0XHRkZWZhdWx0OlxuXHRcdFx0YnJlYWs7XG5cdH1cblx0cmV0dXJuIGZvcm1FbGVtZW50cztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvcm1FbGVtZW50c0Zyb21NYW5pZmVzdChcblx0ZmFjZXREZWZpbml0aW9uOiBSZWZlcmVuY2VGYWNldFR5cGVzLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0XG4pOiBSZWNvcmQ8c3RyaW5nLCBDdXN0b21Gb3JtRWxlbWVudD4ge1xuXHRjb25zdCBtYW5pZmVzdFdyYXBwZXIgPSBjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpO1xuXHRjb25zdCBtYW5pZmVzdEZvcm1Db250YWluZXI6IEZvcm1NYW5pZmVzdENvbmZpZ3VyYXRpb24gPSBtYW5pZmVzdFdyYXBwZXIuZ2V0Rm9ybUNvbnRhaW5lcihmYWNldERlZmluaXRpb24uVGFyZ2V0LnZhbHVlKTtcblx0Y29uc3QgZm9ybUVsZW1lbnRzOiBSZWNvcmQ8c3RyaW5nLCBDdXN0b21Gb3JtRWxlbWVudD4gPSB7fTtcblx0aWYgKG1hbmlmZXN0Rm9ybUNvbnRhaW5lcj8uZmllbGRzKSB7XG5cdFx0T2JqZWN0LmtleXMobWFuaWZlc3RGb3JtQ29udGFpbmVyPy5maWVsZHMpLmZvckVhY2goZmllbGRJZCA9PiB7XG5cdFx0XHRmb3JtRWxlbWVudHNbZmllbGRJZF0gPSB7XG5cdFx0XHRcdGtleTogZmllbGRJZCxcblx0XHRcdFx0aWQ6IFwiQ3VzdG9tRm9ybUVsZW1lbnQ6OlwiICsgZmllbGRJZCxcblx0XHRcdFx0dHlwZTogRm9ybUVsZW1lbnRUeXBlLkRlZmF1bHQsXG5cdFx0XHRcdHRlbXBsYXRlOiBtYW5pZmVzdEZvcm1Db250YWluZXIuZmllbGRzW2ZpZWxkSWRdLnRlbXBsYXRlLFxuXHRcdFx0XHRsYWJlbDogbWFuaWZlc3RGb3JtQ29udGFpbmVyLmZpZWxkc1tmaWVsZElkXS5sYWJlbCxcblx0XHRcdFx0cG9zaXRpb246IG1hbmlmZXN0Rm9ybUNvbnRhaW5lci5maWVsZHNbZmllbGRJZF0ucG9zaXRpb24gfHwge1xuXHRcdFx0XHRcdHBsYWNlbWVudDogUGxhY2VtZW50LkFmdGVyXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGZvcm1hdE9wdGlvbnM6IHtcblx0XHRcdFx0XHQuLi5nZXREZWZhdWx0Rm9ybWF0T3B0aW9uc0ZvckZvcm0oKSxcblx0XHRcdFx0XHQuLi5tYW5pZmVzdEZvcm1Db250YWluZXIuZmllbGRzW2ZpZWxkSWRdLmZvcm1hdE9wdGlvbnNcblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHR9KTtcblx0fVxuXHRyZXR1cm4gZm9ybUVsZW1lbnRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybUNvbnRhaW5lcihcblx0ZmFjZXREZWZpbml0aW9uOiBSZWZlcmVuY2VGYWNldFR5cGVzLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHRhY3Rpb25zOiBCYXNlQWN0aW9uW10gfCBDb252ZXJ0ZXJBY3Rpb25bXSB8IHVuZGVmaW5lZFxuKTogRm9ybUNvbnRhaW5lciB7XG5cdC8vVE9ETyBmb3JtIGNvbnRhaW5lciBpZFxuXHRjb25zdCBzRm9ybUNvbnRhaW5lcklkID0gZ2VuZXJhdGUoW3sgRmFjZXQ6IGZhY2V0RGVmaW5pdGlvbiB9XSk7XG5cdGNvbnN0IHNBbm5vdGF0aW9uUGF0aCA9IFwiL1wiICsgZmFjZXREZWZpbml0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZTtcblx0Y29uc3QgcmVzb2x2ZWRUYXJnZXQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGVBbm5vdGF0aW9uKGZhY2V0RGVmaW5pdGlvbi5UYXJnZXQudmFsdWUpO1xuXHRjb25zdCBpc1Zpc2libGUgPSBjb21waWxlQmluZGluZyhub3QoZXF1YWwodHJ1ZSwgYW5ub3RhdGlvbkV4cHJlc3Npb24oZmFjZXREZWZpbml0aW9uLmFubm90YXRpb25zPy5VST8uSGlkZGVuKSkpKTtcblx0bGV0IHNFbnRpdHlTZXRQYXRoITogc3RyaW5nO1xuXHQvLyByZXNvbHZlZFRhcmdldCBkb2Vzbid0IGhhdmUgYSBlbnRpdHlTZXQgaW4gY2FzZSBDb250YWlubWVudHMgYW5kIFBhcmFtdGVyaXplZCBzZXJ2aWNlcy5cblx0aWYgKFxuXHRcdHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KCkgJiZcblx0XHRyZXNvbHZlZFRhcmdldC5jb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldCgpICE9PSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldCgpXG5cdCkge1xuXHRcdHNFbnRpdHlTZXRQYXRoID0gZ2V0VGFyZ2V0RW50aXR5U2V0UGF0aChyZXNvbHZlZFRhcmdldC5jb252ZXJ0ZXJDb250ZXh0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKSk7XG5cdH0gZWxzZSBpZiAocmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dC5nZXREYXRhTW9kZWxPYmplY3RQYXRoKCkudGFyZ2V0T2JqZWN0Py5jb250YWluc1RhcmdldCA9PT0gdHJ1ZSkge1xuXHRcdHNFbnRpdHlTZXRQYXRoID0gZ2V0VGFyZ2V0T2JqZWN0UGF0aChyZXNvbHZlZFRhcmdldC5jb252ZXJ0ZXJDb250ZXh0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKSwgZmFsc2UpO1xuXHR9XG5cdGNvbnN0IGFGb3JtRWxlbWVudHMgPSBpbnNlcnRDdXN0b21FbGVtZW50cyhcblx0XHRnZXRGb3JtRWxlbWVudHNGcm9tQW5ub3RhdGlvbnMoZmFjZXREZWZpbml0aW9uLCBjb252ZXJ0ZXJDb250ZXh0KSxcblx0XHRnZXRGb3JtRWxlbWVudHNGcm9tTWFuaWZlc3QoZmFjZXREZWZpbml0aW9uLCBjb252ZXJ0ZXJDb250ZXh0KSxcblx0XHR7IGZvcm1hdE9wdGlvbnM6IFwib3ZlcndyaXRlXCIgfVxuXHQpO1xuXG5cdGFjdGlvbnMgPSBhY3Rpb25zICE9PSB1bmRlZmluZWQgPyBhY3Rpb25zLmZpbHRlcihhY3Rpb24gPT4gYWN0aW9uLmZhY2V0TmFtZSA9PSBmYWNldERlZmluaXRpb24uZnVsbHlRdWFsaWZpZWROYW1lKSA6IFtdO1xuXHRpZiAoYWN0aW9ucy5sZW5ndGggPT09IDApIHtcblx0XHRhY3Rpb25zID0gdW5kZWZpbmVkO1xuXHR9XG5cblx0Y29uc3Qgb0FjdGlvblNob3dEZXRhaWxzOiBCYXNlQWN0aW9uID0ge1xuXHRcdGlkOiBGb3JtU3RhbmRhcmRBY3Rpb25CdXR0b25JRChzRm9ybUNvbnRhaW5lcklkLCBcIlNob3dIaWRlRGV0YWlsc1wiKSxcblx0XHRrZXk6IFwiU3RhbmRhcmRBY3Rpb246OlNob3dIaWRlRGV0YWlsc1wiLFxuXHRcdHRleHQ6IFwie3NhcC5mZS5pMThuPlRfQ09NTU9OX09CSkVDVF9QQUdFX1NIT1dfRk9STV9DT05UQUlORVJfREVUQUlMU31cIixcblx0XHR0eXBlOiBBY3Rpb25UeXBlLlNob3dGb3JtRGV0YWlscyxcblx0XHRwcmVzczogXCJGb3JtQ29udGFpbmVyUnVudGltZS50b2dnbGVEZXRhaWxzXCJcblx0fTtcblxuXHRpZiAoXG5cdFx0ZmFjZXREZWZpbml0aW9uLmFubm90YXRpb25zPy5VST8uUGFydE9mUHJldmlldyAhPT0gZmFsc2UgJiZcblx0XHRhRm9ybUVsZW1lbnRzLnNvbWUob0Zvcm1FbGVtZW50ID0+IG9Gb3JtRWxlbWVudC5pc1BhcnRPZlByZXZpZXcgPT09IGZhbHNlKVxuXHQpIHtcblx0XHRpZiAoYWN0aW9ucyAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRhY3Rpb25zLnB1c2gob0FjdGlvblNob3dEZXRhaWxzKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0YWN0aW9ucyA9IFtvQWN0aW9uU2hvd0RldGFpbHNdO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiB7XG5cdFx0aWQ6IHNGb3JtQ29udGFpbmVySWQsXG5cdFx0Zm9ybUVsZW1lbnRzOiBhRm9ybUVsZW1lbnRzLFxuXHRcdGFubm90YXRpb25QYXRoOiBzQW5ub3RhdGlvblBhdGgsXG5cdFx0aXNWaXNpYmxlOiBpc1Zpc2libGUsXG5cdFx0ZW50aXR5U2V0OiBzRW50aXR5U2V0UGF0aCxcblx0XHRhY3Rpb25zOiBhY3Rpb25zXG5cdH07XG59XG5cbmZ1bmN0aW9uIGdldEZvcm1Db250YWluZXJzRm9yQ29sbGVjdGlvbihcblx0ZmFjZXREZWZpbml0aW9uOiBDb2xsZWN0aW9uRmFjZXRUeXBlcyxcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0YWN0aW9uczogQmFzZUFjdGlvbltdIHwgQ29udmVydGVyQWN0aW9uW11cbik6IEZvcm1Db250YWluZXJbXSB7XG5cdGNvbnN0IGZvcm1Db250YWluZXJzOiBGb3JtQ29udGFpbmVyW10gPSBbXTtcblx0Ly9UT0RPIGNvbGwgZmFjZXQgaW5zaWRlIGNvbGwgZmFjZXQ/XG5cdGZhY2V0RGVmaW5pdGlvbi5GYWNldHM/LmZvckVhY2goZmFjZXQgPT4ge1xuXHRcdC8vIElnbm9yZSBsZXZlbCAzIGNvbGxlY3Rpb24gZmFjZXRcblx0XHRpZiAoZmFjZXQuJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLkNvbGxlY3Rpb25GYWNldCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRmb3JtQ29udGFpbmVycy5wdXNoKGdldEZvcm1Db250YWluZXIoZmFjZXQgYXMgUmVmZXJlbmNlRmFjZXRUeXBlcywgY29udmVydGVyQ29udGV4dCwgYWN0aW9ucykpO1xuXHR9KTtcblx0cmV0dXJuIGZvcm1Db250YWluZXJzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNSZWZlcmVuY2VGYWNldChmYWNldERlZmluaXRpb246IEZhY2V0VHlwZXMpOiBmYWNldERlZmluaXRpb24gaXMgUmVmZXJlbmNlRmFjZXRUeXBlcyB7XG5cdHJldHVybiBmYWNldERlZmluaXRpb24uJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLlJlZmVyZW5jZUZhY2V0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRm9ybURlZmluaXRpb24oXG5cdGZhY2V0RGVmaW5pdGlvbjogRmFjZXRUeXBlcyxcblx0aXNWaXNpYmxlOiBCaW5kaW5nRXhwcmVzc2lvbjxib29sZWFuPixcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0YWN0aW9uczogQmFzZUFjdGlvbltdIHwgQ29udmVydGVyQWN0aW9uW11cbik6IEZvcm1EZWZpbml0aW9uIHtcblx0c3dpdGNoIChmYWNldERlZmluaXRpb24uJFR5cGUpIHtcblx0XHRjYXNlIFVJQW5ub3RhdGlvblR5cGVzLkNvbGxlY3Rpb25GYWNldDpcblx0XHRcdC8vIEtlZXAgb25seSB2YWxpZCBjaGlsZHJlblxuXHRcdFx0Y29uc3QgZm9ybUNvbGxlY3Rpb25EZWZpbml0aW9uID0ge1xuXHRcdFx0XHRpZDogRm9ybUlEKHsgRmFjZXQ6IGZhY2V0RGVmaW5pdGlvbiB9KSxcblx0XHRcdFx0dXNlRm9ybUNvbnRhaW5lckxhYmVsczogdHJ1ZSxcblx0XHRcdFx0aGFzRmFjZXRzTm90UGFydE9mUHJldmlldzogZmFjZXREZWZpbml0aW9uLkZhY2V0cy5zb21lKFxuXHRcdFx0XHRcdGNoaWxkRmFjZXQgPT4gY2hpbGRGYWNldC5hbm5vdGF0aW9ucz8uVUk/LlBhcnRPZlByZXZpZXc/LnZhbHVlT2YoKSA9PT0gZmFsc2Vcblx0XHRcdFx0KSxcblx0XHRcdFx0Zm9ybUNvbnRhaW5lcnM6IGdldEZvcm1Db250YWluZXJzRm9yQ29sbGVjdGlvbihmYWNldERlZmluaXRpb24sIGNvbnZlcnRlckNvbnRleHQsIGFjdGlvbnMpLFxuXHRcdFx0XHRpc1Zpc2libGU6IGlzVmlzaWJsZVxuXHRcdFx0fTtcblx0XHRcdHJldHVybiBmb3JtQ29sbGVjdGlvbkRlZmluaXRpb247XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5SZWZlcmVuY2VGYWNldDpcblx0XHRcdGNvbnN0IGZvcm1EZWZpbml0aW9uID0ge1xuXHRcdFx0XHRpZDogRm9ybUlEKHsgRmFjZXQ6IGZhY2V0RGVmaW5pdGlvbiB9KSxcblx0XHRcdFx0dXNlRm9ybUNvbnRhaW5lckxhYmVsczogZmFsc2UsXG5cdFx0XHRcdGhhc0ZhY2V0c05vdFBhcnRPZlByZXZpZXc6IGZhY2V0RGVmaW5pdGlvbi5hbm5vdGF0aW9ucz8uVUk/LlBhcnRPZlByZXZpZXc/LnZhbHVlT2YoKSA9PT0gZmFsc2UsXG5cdFx0XHRcdGZvcm1Db250YWluZXJzOiBbZ2V0Rm9ybUNvbnRhaW5lcihmYWNldERlZmluaXRpb24sIGNvbnZlcnRlckNvbnRleHQsIGFjdGlvbnMpXSxcblx0XHRcdFx0aXNWaXNpYmxlOiBpc1Zpc2libGVcblx0XHRcdH07XG5cdFx0XHRyZXR1cm4gZm9ybURlZmluaXRpb247XG5cdFx0ZGVmYXVsdDpcblx0XHRcdHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBjcmVhdGUgZm9ybSBiYXNlZCBvbiBSZWZlcmVuY2VVUkxGYWNldFwiKTtcblx0fVxufVxuIl19
272
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZvcm0udHMiXSwibmFtZXMiOlsiRm9ybUVsZW1lbnRUeXBlIiwiZ2V0RGVmYXVsdEZvcm1hdE9wdGlvbnNGb3JGb3JtIiwidGV4dExpbmVzRWRpdCIsImlzRmllbGRQYXJ0T2ZQcmV2aWV3IiwiZmllbGQiLCJmb3JtUGFydE9mUHJldmlldyIsImFubm90YXRpb25zIiwiVUkiLCJQYXJ0T2ZQcmV2aWV3IiwidW5kZWZpbmVkIiwiZ2V0Rm9ybUVsZW1lbnRzRnJvbUFubm90YXRpb25zIiwiZmFjZXREZWZpbml0aW9uIiwiY29udmVydGVyQ29udGV4dCIsImZvcm1FbGVtZW50cyIsInJlc29sdmVkVGFyZ2V0IiwiZ2V0RW50aXR5VHlwZUFubm90YXRpb24iLCJUYXJnZXQiLCJ2YWx1ZSIsImZvcm1Bbm5vdGF0aW9uIiwiYW5ub3RhdGlvbiIsImdldERhdGFGaWVsZHNGcm9tQW5ub3RhdGlvbnMiLCJzZW1hbnRpY09iamVjdEFubm90YXRpb25QYXRoIiwiZ2V0U2VtYW50aWNPYmplY3RQYXRoIiwiJFR5cGUiLCJIaWRkZW4iLCJ2YWx1ZU9mIiwicHVzaCIsImtleSIsIktleUhlbHBlciIsImdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZCIsInR5cGUiLCJBbm5vdGF0aW9uIiwiYW5ub3RhdGlvblBhdGgiLCJnZXRFbnRpdHlTZXRCYXNlZEFubm90YXRpb25QYXRoIiwiZnVsbHlRdWFsaWZpZWROYW1lIiwic2VtYW50aWNPYmplY3RQYXRoIiwiZm9ybWF0T3B0aW9ucyIsImlzUGFydE9mUHJldmlldyIsInRlcm0iLCJEYXRhIiwiZm9yRWFjaCIsInF1YWxpZmllciIsImdldEZvcm1FbGVtZW50c0Zyb21NYW5pZmVzdCIsIm1hbmlmZXN0V3JhcHBlciIsImdldE1hbmlmZXN0V3JhcHBlciIsIm1hbmlmZXN0Rm9ybUNvbnRhaW5lciIsImdldEZvcm1Db250YWluZXIiLCJmaWVsZHMiLCJPYmplY3QiLCJrZXlzIiwiZmllbGRJZCIsImlkIiwiRGVmYXVsdCIsInRlbXBsYXRlIiwibGFiZWwiLCJwb3NpdGlvbiIsInBsYWNlbWVudCIsIlBsYWNlbWVudCIsIkFmdGVyIiwiYWN0aW9ucyIsInNGb3JtQ29udGFpbmVySWQiLCJnZW5lcmF0ZSIsIkZhY2V0Iiwic0Fubm90YXRpb25QYXRoIiwiaXNWaXNpYmxlIiwiY29tcGlsZUJpbmRpbmciLCJub3QiLCJlcXVhbCIsImFubm90YXRpb25FeHByZXNzaW9uIiwic0VudGl0eVNldFBhdGgiLCJnZXRFbnRpdHlTZXQiLCJnZXRUYXJnZXRFbnRpdHlTZXRQYXRoIiwiZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCIsInRhcmdldE9iamVjdCIsImNvbnRhaW5zVGFyZ2V0IiwiZ2V0VGFyZ2V0T2JqZWN0UGF0aCIsImFGb3JtRWxlbWVudHMiLCJpbnNlcnRDdXN0b21FbGVtZW50cyIsImZpbHRlciIsImFjdGlvbiIsImZhY2V0TmFtZSIsImxlbmd0aCIsIm9BY3Rpb25TaG93RGV0YWlscyIsIkZvcm1TdGFuZGFyZEFjdGlvbkJ1dHRvbklEIiwidGV4dCIsImlmRWxzZSIsImJpbmRpbmdFeHByZXNzaW9uIiwiQWN0aW9uVHlwZSIsIlNob3dGb3JtRGV0YWlscyIsInByZXNzIiwic29tZSIsIm9Gb3JtRWxlbWVudCIsImVudGl0eVNldCIsImdldEZvcm1Db250YWluZXJzRm9yQ29sbGVjdGlvbiIsImZvcm1Db250YWluZXJzIiwiRmFjZXRzIiwiZmFjZXQiLCJpc1JlZmVyZW5jZUZhY2V0IiwiY3JlYXRlRm9ybURlZmluaXRpb24iLCJmb3JtQ29sbGVjdGlvbkRlZmluaXRpb24iLCJGb3JtSUQiLCJ1c2VGb3JtQ29udGFpbmVyTGFiZWxzIiwiaGFzRmFjZXRzTm90UGFydE9mUHJldmlldyIsImNoaWxkRmFjZXQiLCJmb3JtRGVmaW5pdGlvbiIsIkVycm9yIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01Bb0NZQSxlOzthQUFBQSxlO0FBQUFBLElBQUFBLGU7QUFBQUEsSUFBQUEsZTtL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Z0IsQ0FISztBQU1oQ3FFLFVBQUFBLGNBQWMsRUFBRUQsOEJBQThCLENBQUNsRixlQUFELEVBQWtCQyxnQkFBbEIsRUFBb0MrQyxPQUFwQyxDQU5kO0FBT2hDSyxVQUFBQSxTQUFTLEVBQUVBO0FBUHFCLFNBQWpDO0FBU0EsZUFBT21DLHdCQUFQOztBQUNEO0FBQ0MsWUFBTUssY0FBYyxHQUFHO0FBQ3RCckQsVUFBQUEsRUFBRSxFQUFFaUQsTUFBTSxDQUFDO0FBQUV0QyxZQUFBQSxLQUFLLEVBQUVuRDtBQUFULFdBQUQsQ0FEWTtBQUV0QjBGLFVBQUFBLHNCQUFzQixFQUFFLEtBRkY7QUFHdEJDLFVBQUFBLHlCQUF5QixFQUFFLDJCQUFBM0YsZUFBZSxDQUFDTCxXQUFoQiw2R0FBNkJDLEVBQTdCLCtHQUFpQ0MsYUFBakMsb0ZBQWdEaUIsT0FBaEQsUUFBOEQsS0FIbkU7QUFJdEJxRSxVQUFBQSxjQUFjLEVBQUUsQ0FBQ2hELGdCQUFnQixDQUFDbkMsZUFBRCxFQUFrQkMsZ0JBQWxCLEVBQW9DK0MsT0FBcEMsQ0FBakIsQ0FKTTtBQUt0QkssVUFBQUEsU0FBUyxFQUFFQTtBQUxXLFNBQXZCO0FBT0EsZUFBT3dDLGNBQVA7O0FBQ0Q7QUFDQyxjQUFNLElBQUlDLEtBQUosQ0FBVSwrQ0FBVixDQUFOO0FBdkJGO0FBeUJBIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRBbm5vdGF0aW9uVGVybSxcblx0Q29sbGVjdGlvbkZhY2V0VHlwZXMsXG5cdENvbW11bmljYXRpb25Bbm5vdGF0aW9uVGVybXMsXG5cdERhdGFGaWVsZEFic3RyYWN0VHlwZXMsXG5cdEZhY2V0VHlwZXMsXG5cdEZpZWxkR3JvdXAsXG5cdElkZW50aWZpY2F0aW9uLFxuXHRQYXJ0T2ZQcmV2aWV3LFxuXHRSZWZlcmVuY2VGYWNldFR5cGVzLFxuXHRVSUFubm90YXRpb25UZXJtcyxcblx0VUlBbm5vdGF0aW9uVHlwZXNcbn0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgeyBDb25maWd1cmFibGVPYmplY3QsIEN1c3RvbUVsZW1lbnQsIGluc2VydEN1c3RvbUVsZW1lbnRzLCBQbGFjZW1lbnQgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9Db25maWd1cmFibGVPYmplY3RcIjtcbmltcG9ydCB7IEZvcm1JRCwgRm9ybVN0YW5kYXJkQWN0aW9uQnV0dG9uSUQgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9JRFwiO1xuaW1wb3J0IHsgS2V5SGVscGVyIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvS2V5XCI7XG5pbXBvcnQgeyBBY3Rpb25UeXBlLCBGb3JtYXRPcHRpb25zVHlwZSwgRm9ybU1hbmlmZXN0Q29uZmlndXJhdGlvbiB9IGZyb20gXCIuLi8uLi9NYW5pZmVzdFNldHRpbmdzXCI7XG5pbXBvcnQgeyBnZXRTZW1hbnRpY09iamVjdFBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9hbm5vdGF0aW9ucy9EYXRhRmllbGRcIjtcbmltcG9ydCB7IGdldFRhcmdldEVudGl0eVNldFBhdGgsIGdldFRhcmdldE9iamVjdFBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9EYXRhTW9kZWxQYXRoSGVscGVyXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZSB9IGZyb20gXCIuLi8uLi8uLi9oZWxwZXJzL1N0YWJsZUlkSGVscGVyXCI7XG5pbXBvcnQgQ29udmVydGVyQ29udGV4dCBmcm9tIFwiLi4vLi4vQ29udmVydGVyQ29udGV4dFwiO1xuaW1wb3J0IHsgQmFzZUFjdGlvbiwgQ29udmVydGVyQWN0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvQ29tbW9uL0FjdGlvblwiO1xuaW1wb3J0IHtcblx0YW5ub3RhdGlvbkV4cHJlc3Npb24sXG5cdGJpbmRpbmdFeHByZXNzaW9uLFxuXHRCaW5kaW5nRXhwcmVzc2lvbixcblx0Y29tcGlsZUJpbmRpbmcsXG5cdGVxdWFsLFxuXHRpZkVsc2UsXG5cdG5vdFxufSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nRXhwcmVzc2lvblwiO1xuXG5leHBvcnQgdHlwZSBGb3JtRGVmaW5pdGlvbiA9IHtcblx0aWQ6IHN0cmluZztcblx0dXNlRm9ybUNvbnRhaW5lckxhYmVsczogYm9vbGVhbjtcblx0aGFzRmFjZXRzTm90UGFydE9mUHJldmlldzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBlbnVtIEZvcm1FbGVtZW50VHlwZSB7XG5cdERlZmF1bHQgPSBcIkRlZmF1bHRcIixcblx0QW5ub3RhdGlvbiA9IFwiQW5ub3RhdGlvblwiXG59XG5cbmV4cG9ydCB0eXBlIEJhc2VGb3JtRWxlbWVudCA9IENvbmZpZ3VyYWJsZU9iamVjdCAmIHtcblx0aWQ/OiBzdHJpbmc7XG5cdHR5cGU6IEZvcm1FbGVtZW50VHlwZTtcblx0bGFiZWw/OiBzdHJpbmc7XG5cdHZpc2libGU/OiBCaW5kaW5nRXhwcmVzc2lvbjxib29sZWFuPjtcblx0Zm9ybWF0T3B0aW9ucz86IEZvcm1hdE9wdGlvbnNUeXBlO1xufTtcblxuZXhwb3J0IHR5cGUgQW5ub3RhdGlvbkZvcm1FbGVtZW50ID0gQmFzZUZvcm1FbGVtZW50ICYge1xuXHRpZFByZWZpeD86IHN0cmluZztcblx0YW5ub3RhdGlvblBhdGg/OiBzdHJpbmc7XG5cdGlzVmFsdWVNdWx0aWxpbmVUZXh0PzogYm9vbGVhbjtcblx0c2VtYW50aWNPYmplY3RQYXRoPzogc3RyaW5nO1xuXHRpc1BhcnRPZlByZXZpZXc/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgQ3VzdG9tRm9ybUVsZW1lbnQgPSBDdXN0b21FbGVtZW50PFxuXHRCYXNlRm9ybUVsZW1lbnQgJiB7XG5cdFx0dHlwZTogRm9ybUVsZW1lbnRUeXBlLkRlZmF1bHQ7XG5cdFx0dGVtcGxhdGU6IHN0cmluZztcblx0fVxuPjtcblxuZXhwb3J0IHR5cGUgRm9ybUVsZW1lbnQgPSBDdXN0b21Gb3JtRWxlbWVudCB8IEFubm90YXRpb25Gb3JtRWxlbWVudDtcblxudHlwZSBGb3JtQ29udGFpbmVyID0ge1xuXHRpZD86IHN0cmluZztcblx0Zm9ybUVsZW1lbnRzOiBGb3JtRWxlbWVudFtdO1xuXHRhbm5vdGF0aW9uUGF0aDogc3RyaW5nO1xuXHRpc1Zpc2libGU6IEJpbmRpbmdFeHByZXNzaW9uPGJvb2xlYW4+O1xuXHRlbnRpdHlTZXQ/OiBzdHJpbmc7XG5cdGFjdGlvbnM/OiBDb252ZXJ0ZXJBY3Rpb25bXSB8IEJhc2VBY3Rpb25bXTtcbn07XG5cbi8qKlxuICogUmV0dXJucyBkZWZhdWx0IGZvcm1hdCBvcHRpb25zIGZvciB0ZXh0IGZpZWxkcyBvbiBhIGZvcm0uXG4gKlxuICogQHJldHVybnMge0Zvcm1hdE9wdGlvbnNUeXBlfSBDb2xsZWN0aW9uIG9mIGZvcm1hdCBvcHRpb25zIHdpdGggZGVmYXVsdCB2YWx1ZXNcbiAqL1xuZnVuY3Rpb24gZ2V0RGVmYXVsdEZvcm1hdE9wdGlvbnNGb3JGb3JtKCk6IEZvcm1hdE9wdGlvbnNUeXBlIHtcblx0cmV0dXJuIHtcblx0XHR0ZXh0TGluZXNFZGl0OiA0XG5cdH07XG59XG5cbmZ1bmN0aW9uIGlzRmllbGRQYXJ0T2ZQcmV2aWV3KGZpZWxkOiBEYXRhRmllbGRBYnN0cmFjdFR5cGVzLCBmb3JtUGFydE9mUHJldmlldzogUGFydE9mUHJldmlldyB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuXHQvLyBCb3RoIGVhY2ggZm9ybSBhbmQgZmllbGQgY2FuIGhhdmUgdGhlIFBhcnRPZlByZXZpZXcgYW5ub3RhdGlvbi4gT25seSBpZiB0aGUgZm9ybSBpcyBub3QgaGlkZGVuIChub3QgcGFydE9mUHJldmlldykgd2UgYWxsb3cgdG9nZ2xpbmcgb24gZmllbGQgbGV2ZWxcblx0cmV0dXJuIChcblx0XHRmb3JtUGFydE9mUHJldmlldyA9PT0gZmFsc2UgfHwgZmllbGQuYW5ub3RhdGlvbnM/LlVJPy5QYXJ0T2ZQcmV2aWV3ID09PSB1bmRlZmluZWQgfHwgZmllbGQuYW5ub3RhdGlvbnM/LlVJPy5QYXJ0T2ZQcmV2aWV3ID09PSB0cnVlXG5cdCk7XG59XG5cbmZ1bmN0aW9uIGdldEZvcm1FbGVtZW50c0Zyb21Bbm5vdGF0aW9ucyhmYWNldERlZmluaXRpb246IFJlZmVyZW5jZUZhY2V0VHlwZXMsIGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQpOiBBbm5vdGF0aW9uRm9ybUVsZW1lbnRbXSB7XG5cdGNvbnN0IGZvcm1FbGVtZW50czogQW5ub3RhdGlvbkZvcm1FbGVtZW50W10gPSBbXTtcblx0Y29uc3QgcmVzb2x2ZWRUYXJnZXQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGVBbm5vdGF0aW9uKGZhY2V0RGVmaW5pdGlvbi5UYXJnZXQudmFsdWUpO1xuXHRjb25zdCBmb3JtQW5ub3RhdGlvbjogQW5ub3RhdGlvblRlcm08SWRlbnRpZmljYXRpb24+IHwgQW5ub3RhdGlvblRlcm08RmllbGRHcm91cD4gPSByZXNvbHZlZFRhcmdldC5hbm5vdGF0aW9uIGFzXG5cdFx0fCBBbm5vdGF0aW9uVGVybTxJZGVudGlmaWNhdGlvbj5cblx0XHR8IEFubm90YXRpb25UZXJtPEZpZWxkR3JvdXA+O1xuXHRjb252ZXJ0ZXJDb250ZXh0ID0gcmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dDtcblxuXHRmdW5jdGlvbiBnZXREYXRhRmllbGRzRnJvbUFubm90YXRpb25zKGZpZWxkOiBEYXRhRmllbGRBYnN0cmFjdFR5cGVzLCBmb3JtUGFydE9mUHJldmlldzogUGFydE9mUHJldmlldyB8IHVuZGVmaW5lZCkge1xuXHRcdGNvbnN0IHNlbWFudGljT2JqZWN0QW5ub3RhdGlvblBhdGggPSBnZXRTZW1hbnRpY09iamVjdFBhdGgoY29udmVydGVyQ29udGV4dCwgZmllbGQpO1xuXHRcdGlmIChcblx0XHRcdGZpZWxkLiRUeXBlICE9PSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JBY3Rpb24gJiZcblx0XHRcdGZpZWxkLiRUeXBlICE9PSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb24gJiZcblx0XHRcdGZpZWxkLmFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgIT09IHRydWVcblx0XHQpIHtcblx0XHRcdGZvcm1FbGVtZW50cy5wdXNoKHtcblx0XHRcdFx0a2V5OiBLZXlIZWxwZXIuZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkKGZpZWxkKSxcblx0XHRcdFx0dHlwZTogRm9ybUVsZW1lbnRUeXBlLkFubm90YXRpb24sXG5cdFx0XHRcdGFubm90YXRpb25QYXRoOiBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgoZmllbGQuZnVsbHlRdWFsaWZpZWROYW1lKSArIFwiL1wiLFxuXHRcdFx0XHRzZW1hbnRpY09iamVjdFBhdGg6IHNlbWFudGljT2JqZWN0QW5ub3RhdGlvblBhdGgsXG5cdFx0XHRcdGZvcm1hdE9wdGlvbnM6IGdldERlZmF1bHRGb3JtYXRPcHRpb25zRm9yRm9ybSgpLFxuXHRcdFx0XHRpc1BhcnRPZlByZXZpZXc6IGlzRmllbGRQYXJ0T2ZQcmV2aWV3KGZpZWxkLCBmb3JtUGFydE9mUHJldmlldylcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdHN3aXRjaCAoZm9ybUFubm90YXRpb24/LnRlcm0pIHtcblx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLkZpZWxkR3JvdXA6XG5cdFx0XHQoZm9ybUFubm90YXRpb24gYXMgQW5ub3RhdGlvblRlcm08RmllbGRHcm91cD4pLkRhdGEuZm9yRWFjaChmaWVsZCA9PlxuXHRcdFx0XHRnZXREYXRhRmllbGRzRnJvbUFubm90YXRpb25zKGZpZWxkLCBmYWNldERlZmluaXRpb24uYW5ub3RhdGlvbnM/LlVJPy5QYXJ0T2ZQcmV2aWV3KVxuXHRcdFx0KTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuSWRlbnRpZmljYXRpb246XG5cdFx0XHQoZm9ybUFubm90YXRpb24gYXMgQW5ub3RhdGlvblRlcm08SWRlbnRpZmljYXRpb24+KS5mb3JFYWNoKGZpZWxkID0+XG5cdFx0XHRcdGdldERhdGFGaWVsZHNGcm9tQW5ub3RhdGlvbnMoZmllbGQsIGZhY2V0RGVmaW5pdGlvbi5hbm5vdGF0aW9ucz8uVUk/LlBhcnRPZlByZXZpZXcpXG5cdFx0XHQpO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5EYXRhUG9pbnQ6XG5cdFx0XHRmb3JtRWxlbWVudHMucHVzaCh7XG5cdFx0XHRcdC8vIGtleTogS2V5SGVscGVyLmdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZChmb3JtQW5ub3RhdGlvbiksXG5cdFx0XHRcdGtleTogXCJEYXRhUG9pbnQ6OlwiICsgKGZvcm1Bbm5vdGF0aW9uLnF1YWxpZmllciA/IGZvcm1Bbm5vdGF0aW9uLnF1YWxpZmllciA6IFwiXCIpLFxuXHRcdFx0XHR0eXBlOiBGb3JtRWxlbWVudFR5cGUuQW5ub3RhdGlvbixcblx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChmb3JtQW5ub3RhdGlvbi5mdWxseVF1YWxpZmllZE5hbWUpICsgXCIvXCJcblx0XHRcdH0pO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSBDb21tdW5pY2F0aW9uQW5ub3RhdGlvblRlcm1zLkNvbnRhY3Q6XG5cdFx0XHRmb3JtRWxlbWVudHMucHVzaCh7XG5cdFx0XHRcdC8vIGtleTogS2V5SGVscGVyLmdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZChmb3JtQW5ub3RhdGlvbiksXG5cdFx0XHRcdGtleTogXCJDb250YWN0OjpcIiArIChmb3JtQW5ub3RhdGlvbi5xdWFsaWZpZXIgPyBmb3JtQW5ub3RhdGlvbi5xdWFsaWZpZXIgOiBcIlwiKSxcblx0XHRcdFx0dHlwZTogRm9ybUVsZW1lbnRUeXBlLkFubm90YXRpb24sXG5cdFx0XHRcdGFubm90YXRpb25QYXRoOiBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgoZm9ybUFubm90YXRpb24uZnVsbHlRdWFsaWZpZWROYW1lKSArIFwiL1wiXG5cdFx0XHR9KTtcblx0XHRcdGJyZWFrO1xuXHRcdGRlZmF1bHQ6XG5cdFx0XHRicmVhaztcblx0fVxuXHRyZXR1cm4gZm9ybUVsZW1lbnRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybUVsZW1lbnRzRnJvbU1hbmlmZXN0KFxuXHRmYWNldERlZmluaXRpb246IFJlZmVyZW5jZUZhY2V0VHlwZXMsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHRcbik6IFJlY29yZDxzdHJpbmcsIEN1c3RvbUZvcm1FbGVtZW50PiB7XG5cdGNvbnN0IG1hbmlmZXN0V3JhcHBlciA9IGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCk7XG5cdGNvbnN0IG1hbmlmZXN0Rm9ybUNvbnRhaW5lcjogRm9ybU1hbmlmZXN0Q29uZmlndXJhdGlvbiA9IG1hbmlmZXN0V3JhcHBlci5nZXRGb3JtQ29udGFpbmVyKGZhY2V0RGVmaW5pdGlvbi5UYXJnZXQudmFsdWUpO1xuXHRjb25zdCBmb3JtRWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEN1c3RvbUZvcm1FbGVtZW50PiA9IHt9O1xuXHRpZiAobWFuaWZlc3RGb3JtQ29udGFpbmVyPy5maWVsZHMpIHtcblx0XHRPYmplY3Qua2V5cyhtYW5pZmVzdEZvcm1Db250YWluZXI/LmZpZWxkcykuZm9yRWFjaChmaWVsZElkID0+IHtcblx0XHRcdGZvcm1FbGVtZW50c1tmaWVsZElkXSA9IHtcblx0XHRcdFx0a2V5OiBmaWVsZElkLFxuXHRcdFx0XHRpZDogXCJDdXN0b21Gb3JtRWxlbWVudDo6XCIgKyBmaWVsZElkLFxuXHRcdFx0XHR0eXBlOiBGb3JtRWxlbWVudFR5cGUuRGVmYXVsdCxcblx0XHRcdFx0dGVtcGxhdGU6IG1hbmlmZXN0Rm9ybUNvbnRhaW5lci5maWVsZHNbZmllbGRJZF0udGVtcGxhdGUsXG5cdFx0XHRcdGxhYmVsOiBtYW5pZmVzdEZvcm1Db250YWluZXIuZmllbGRzW2ZpZWxkSWRdLmxhYmVsLFxuXHRcdFx0XHRwb3NpdGlvbjogbWFuaWZlc3RGb3JtQ29udGFpbmVyLmZpZWxkc1tmaWVsZElkXS5wb3NpdGlvbiB8fCB7XG5cdFx0XHRcdFx0cGxhY2VtZW50OiBQbGFjZW1lbnQuQWZ0ZXJcblx0XHRcdFx0fSxcblx0XHRcdFx0Zm9ybWF0T3B0aW9uczoge1xuXHRcdFx0XHRcdC4uLmdldERlZmF1bHRGb3JtYXRPcHRpb25zRm9yRm9ybSgpLFxuXHRcdFx0XHRcdC4uLm1hbmlmZXN0Rm9ybUNvbnRhaW5lci5maWVsZHNbZmllbGRJZF0uZm9ybWF0T3B0aW9uc1xuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdH0pO1xuXHR9XG5cdHJldHVybiBmb3JtRWxlbWVudHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGb3JtQ29udGFpbmVyKFxuXHRmYWNldERlZmluaXRpb246IFJlZmVyZW5jZUZhY2V0VHlwZXMsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdGFjdGlvbnM6IEJhc2VBY3Rpb25bXSB8IENvbnZlcnRlckFjdGlvbltdIHwgdW5kZWZpbmVkXG4pOiBGb3JtQ29udGFpbmVyIHtcblx0Ly9UT0RPIGZvcm0gY29udGFpbmVyIGlkXG5cdGNvbnN0IHNGb3JtQ29udGFpbmVySWQgPSBnZW5lcmF0ZShbeyBGYWNldDogZmFjZXREZWZpbml0aW9uIH1dKTtcblx0Y29uc3Qgc0Fubm90YXRpb25QYXRoID0gXCIvXCIgKyBmYWNldERlZmluaXRpb24uZnVsbHlRdWFsaWZpZWROYW1lO1xuXHRjb25zdCByZXNvbHZlZFRhcmdldCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZUFubm90YXRpb24oZmFjZXREZWZpbml0aW9uLlRhcmdldC52YWx1ZSk7XG5cdGNvbnN0IGlzVmlzaWJsZSA9IGNvbXBpbGVCaW5kaW5nKG5vdChlcXVhbCh0cnVlLCBhbm5vdGF0aW9uRXhwcmVzc2lvbihmYWNldERlZmluaXRpb24uYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4pKSkpO1xuXHRsZXQgc0VudGl0eVNldFBhdGghOiBzdHJpbmc7XG5cdC8vIHJlc29sdmVkVGFyZ2V0IGRvZXNuJ3QgaGF2ZSBhIGVudGl0eVNldCBpbiBjYXNlIENvbnRhaW5tZW50cyBhbmQgUGFyYW10ZXJpemVkIHNlcnZpY2VzLlxuXHRpZiAoXG5cdFx0cmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKSAmJlxuXHRcdHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KCkgIT09IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KClcblx0KSB7XG5cdFx0c0VudGl0eVNldFBhdGggPSBnZXRUYXJnZXRFbnRpdHlTZXRQYXRoKHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpKTtcblx0fSBlbHNlIGlmIChyZXNvbHZlZFRhcmdldC5jb252ZXJ0ZXJDb250ZXh0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKS50YXJnZXRPYmplY3Q/LmNvbnRhaW5zVGFyZ2V0ID09PSB0cnVlKSB7XG5cdFx0c0VudGl0eVNldFBhdGggPSBnZXRUYXJnZXRPYmplY3RQYXRoKHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLCBmYWxzZSk7XG5cdH1cblx0Y29uc3QgYUZvcm1FbGVtZW50cyA9IGluc2VydEN1c3RvbUVsZW1lbnRzKFxuXHRcdGdldEZvcm1FbGVtZW50c0Zyb21Bbm5vdGF0aW9ucyhmYWNldERlZmluaXRpb24sIGNvbnZlcnRlckNvbnRleHQpLFxuXHRcdGdldEZvcm1FbGVtZW50c0Zyb21NYW5pZmVzdChmYWNldERlZmluaXRpb24sIGNvbnZlcnRlckNvbnRleHQpLFxuXHRcdHsgZm9ybWF0T3B0aW9uczogXCJvdmVyd3JpdGVcIiB9XG5cdCk7XG5cblx0YWN0aW9ucyA9IGFjdGlvbnMgIT09IHVuZGVmaW5lZCA/IGFjdGlvbnMuZmlsdGVyKGFjdGlvbiA9PiBhY3Rpb24uZmFjZXROYW1lID09IGZhY2V0RGVmaW5pdGlvbi5mdWxseVF1YWxpZmllZE5hbWUpIDogW107XG5cdGlmIChhY3Rpb25zLmxlbmd0aCA9PT0gMCkge1xuXHRcdGFjdGlvbnMgPSB1bmRlZmluZWQ7XG5cdH1cblxuXHRjb25zdCBvQWN0aW9uU2hvd0RldGFpbHM6IEJhc2VBY3Rpb24gPSB7XG5cdFx0aWQ6IEZvcm1TdGFuZGFyZEFjdGlvbkJ1dHRvbklEKHNGb3JtQ29udGFpbmVySWQsIFwiU2hvd0hpZGVEZXRhaWxzXCIpLFxuXHRcdGtleTogXCJTdGFuZGFyZEFjdGlvbjo6U2hvd0hpZGVEZXRhaWxzXCIsXG5cdFx0dGV4dDogY29tcGlsZUJpbmRpbmcoXG5cdFx0XHRpZkVsc2UoXG5cdFx0XHRcdGVxdWFsKGJpbmRpbmdFeHByZXNzaW9uKFwic2hvd0RldGFpbHNcIiwgXCJpbnRlcm5hbFwiKSwgdHJ1ZSksXG5cdFx0XHRcdGJpbmRpbmdFeHByZXNzaW9uKFwiVF9DT01NT05fT0JKRUNUX1BBR0VfSElERV9GT1JNX0NPTlRBSU5FUl9ERVRBSUxTXCIsIFwic2FwLmZlLmkxOG5cIiksXG5cdFx0XHRcdGJpbmRpbmdFeHByZXNzaW9uKFwiVF9DT01NT05fT0JKRUNUX1BBR0VfU0hPV19GT1JNX0NPTlRBSU5FUl9ERVRBSUxTXCIsIFwic2FwLmZlLmkxOG5cIilcblx0XHRcdClcblx0XHQpLFxuXHRcdHR5cGU6IEFjdGlvblR5cGUuU2hvd0Zvcm1EZXRhaWxzLFxuXHRcdHByZXNzOiBcIkZvcm1Db250YWluZXJSdW50aW1lLnRvZ2dsZURldGFpbHNcIlxuXHR9O1xuXG5cdGlmIChcblx0XHRmYWNldERlZmluaXRpb24uYW5ub3RhdGlvbnM/LlVJPy5QYXJ0T2ZQcmV2aWV3ICE9PSBmYWxzZSAmJlxuXHRcdGFGb3JtRWxlbWVudHMuc29tZShvRm9ybUVsZW1lbnQgPT4gb0Zvcm1FbGVtZW50LmlzUGFydE9mUHJldmlldyA9PT0gZmFsc2UpXG5cdCkge1xuXHRcdGlmIChhY3Rpb25zICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdGFjdGlvbnMucHVzaChvQWN0aW9uU2hvd0RldGFpbHMpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRhY3Rpb25zID0gW29BY3Rpb25TaG93RGV0YWlsc107XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHtcblx0XHRpZDogc0Zvcm1Db250YWluZXJJZCxcblx0XHRmb3JtRWxlbWVudHM6IGFGb3JtRWxlbWVudHMsXG5cdFx0YW5ub3RhdGlvblBhdGg6IHNBbm5vdGF0aW9uUGF0aCxcblx0XHRpc1Zpc2libGU6IGlzVmlzaWJsZSxcblx0XHRlbnRpdHlTZXQ6IHNFbnRpdHlTZXRQYXRoLFxuXHRcdGFjdGlvbnM6IGFjdGlvbnNcblx0fTtcbn1cblxuZnVuY3Rpb24gZ2V0Rm9ybUNvbnRhaW5lcnNGb3JDb2xsZWN0aW9uKFxuXHRmYWNldERlZmluaXRpb246IENvbGxlY3Rpb25GYWNldFR5cGVzLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHRhY3Rpb25zOiBCYXNlQWN0aW9uW10gfCBDb252ZXJ0ZXJBY3Rpb25bXVxuKTogRm9ybUNvbnRhaW5lcltdIHtcblx0Y29uc3QgZm9ybUNvbnRhaW5lcnM6IEZvcm1Db250YWluZXJbXSA9IFtdO1xuXHQvL1RPRE8gY29sbCBmYWNldCBpbnNpZGUgY29sbCBmYWNldD9cblx0ZmFjZXREZWZpbml0aW9uLkZhY2V0cz8uZm9yRWFjaChmYWNldCA9PiB7XG5cdFx0Ly8gSWdub3JlIGxldmVsIDMgY29sbGVjdGlvbiBmYWNldFxuXHRcdGlmIChmYWNldC4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuQ29sbGVjdGlvbkZhY2V0KSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGZvcm1Db250YWluZXJzLnB1c2goZ2V0Rm9ybUNvbnRhaW5lcihmYWNldCBhcyBSZWZlcmVuY2VGYWNldFR5cGVzLCBjb252ZXJ0ZXJDb250ZXh0LCBhY3Rpb25zKSk7XG5cdH0pO1xuXHRyZXR1cm4gZm9ybUNvbnRhaW5lcnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1JlZmVyZW5jZUZhY2V0KGZhY2V0RGVmaW5pdGlvbjogRmFjZXRUeXBlcyk6IGZhY2V0RGVmaW5pdGlvbiBpcyBSZWZlcmVuY2VGYWNldFR5cGVzIHtcblx0cmV0dXJuIGZhY2V0RGVmaW5pdGlvbi4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuUmVmZXJlbmNlRmFjZXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGb3JtRGVmaW5pdGlvbihcblx0ZmFjZXREZWZpbml0aW9uOiBGYWNldFR5cGVzLFxuXHRpc1Zpc2libGU6IEJpbmRpbmdFeHByZXNzaW9uPGJvb2xlYW4+LFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHRhY3Rpb25zOiBCYXNlQWN0aW9uW10gfCBDb252ZXJ0ZXJBY3Rpb25bXVxuKTogRm9ybURlZmluaXRpb24ge1xuXHRzd2l0Y2ggKGZhY2V0RGVmaW5pdGlvbi4kVHlwZSkge1xuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuQ29sbGVjdGlvbkZhY2V0OlxuXHRcdFx0Ly8gS2VlcCBvbmx5IHZhbGlkIGNoaWxkcmVuXG5cdFx0XHRjb25zdCBmb3JtQ29sbGVjdGlvbkRlZmluaXRpb24gPSB7XG5cdFx0XHRcdGlkOiBGb3JtSUQoeyBGYWNldDogZmFjZXREZWZpbml0aW9uIH0pLFxuXHRcdFx0XHR1c2VGb3JtQ29udGFpbmVyTGFiZWxzOiB0cnVlLFxuXHRcdFx0XHRoYXNGYWNldHNOb3RQYXJ0T2ZQcmV2aWV3OiBmYWNldERlZmluaXRpb24uRmFjZXRzLnNvbWUoXG5cdFx0XHRcdFx0Y2hpbGRGYWNldCA9PiBjaGlsZEZhY2V0LmFubm90YXRpb25zPy5VST8uUGFydE9mUHJldmlldz8udmFsdWVPZigpID09PSBmYWxzZVxuXHRcdFx0XHQpLFxuXHRcdFx0XHRmb3JtQ29udGFpbmVyczogZ2V0Rm9ybUNvbnRhaW5lcnNGb3JDb2xsZWN0aW9uKGZhY2V0RGVmaW5pdGlvbiwgY29udmVydGVyQ29udGV4dCwgYWN0aW9ucyksXG5cdFx0XHRcdGlzVmlzaWJsZTogaXNWaXNpYmxlXG5cdFx0XHR9O1xuXHRcdFx0cmV0dXJuIGZvcm1Db2xsZWN0aW9uRGVmaW5pdGlvbjtcblx0XHRjYXNlIFVJQW5ub3RhdGlvblR5cGVzLlJlZmVyZW5jZUZhY2V0OlxuXHRcdFx0Y29uc3QgZm9ybURlZmluaXRpb24gPSB7XG5cdFx0XHRcdGlkOiBGb3JtSUQoeyBGYWNldDogZmFjZXREZWZpbml0aW9uIH0pLFxuXHRcdFx0XHR1c2VGb3JtQ29udGFpbmVyTGFiZWxzOiBmYWxzZSxcblx0XHRcdFx0aGFzRmFjZXRzTm90UGFydE9mUHJldmlldzogZmFjZXREZWZpbml0aW9uLmFubm90YXRpb25zPy5VST8uUGFydE9mUHJldmlldz8udmFsdWVPZigpID09PSBmYWxzZSxcblx0XHRcdFx0Zm9ybUNvbnRhaW5lcnM6IFtnZXRGb3JtQ29udGFpbmVyKGZhY2V0RGVmaW5pdGlvbiwgY29udmVydGVyQ29udGV4dCwgYWN0aW9ucyldLFxuXHRcdFx0XHRpc1Zpc2libGU6IGlzVmlzaWJsZVxuXHRcdFx0fTtcblx0XHRcdHJldHVybiBmb3JtRGVmaW5pdGlvbjtcblx0XHRkZWZhdWx0OlxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGNyZWF0ZSBmb3JtIGJhc2VkIG9uIFJlZmVyZW5jZVVSTEZhY2V0XCIpO1xuXHR9XG59XG4iXX0=