@grafana/scenes 6.8.0 → 6.9.0--canary.1093.14409340532.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 (321) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/esm/components/VizPanel/VizPanelRenderer.js +4 -3
  3. package/dist/esm/components/VizPanel/VizPanelRenderer.js.map +1 -1
  4. package/dist/esm/index.js +1 -1
  5. package/dist/esm/index.js.map +1 -1
  6. package/dist/index.d.ts +1 -1
  7. package/dist/index.js +5 -4
  8. package/dist/index.js.map +1 -1
  9. package/package.json +2 -2
  10. package/dist/esm/components/layout/CSSGrid/SceneCSSGridItem.js +0 -33
  11. package/dist/esm/dist/esm/behaviors/CursorSync.js +0 -76
  12. package/dist/esm/dist/esm/behaviors/LiveNowTimer.js +0 -44
  13. package/dist/esm/dist/esm/behaviors/SceneQueryController.js +0 -14
  14. package/dist/esm/dist/esm/components/EmbeddedScene.js +0 -59
  15. package/dist/esm/dist/esm/components/NestedScene.js +0 -95
  16. package/dist/esm/dist/esm/components/SceneApp/SceneApp.js +0 -27
  17. package/dist/esm/dist/esm/components/SceneApp/SceneAppPage.js +0 -176
  18. package/dist/esm/dist/esm/components/SceneApp/SceneAppPageView.js +0 -104
  19. package/dist/esm/dist/esm/components/SceneApp/utils.js +0 -42
  20. package/dist/esm/dist/esm/components/SceneByFrameRepeater.js +0 -41
  21. package/dist/esm/dist/esm/components/SceneByVariableRepeater.js +0 -55
  22. package/dist/esm/dist/esm/components/SceneCanvasText.js +0 -32
  23. package/dist/esm/dist/esm/components/SceneControlsSpacer.js +0 -17
  24. package/dist/esm/dist/esm/components/SceneDebugger/DebugDetails.js +0 -82
  25. package/dist/esm/dist/esm/components/SceneDebugger/DebugTreeNode.js +0 -72
  26. package/dist/esm/dist/esm/components/SceneDebugger/SceneDebugger.js +0 -77
  27. package/dist/esm/dist/esm/components/SceneReactObject.js +0 -34
  28. package/dist/esm/dist/esm/components/SceneRefreshPicker.js +0 -205
  29. package/dist/esm/dist/esm/components/SceneTimePicker.js +0 -139
  30. package/dist/esm/dist/esm/components/SceneTimeRangeCompare.js +0 -240
  31. package/dist/esm/dist/esm/components/SceneToolbarButton.js +0 -33
  32. package/dist/esm/dist/esm/components/VizPanel/VizPanel.js +0 -406
  33. package/dist/esm/dist/esm/components/VizPanel/VizPanelExploreButton.js +0 -44
  34. package/dist/esm/dist/esm/components/VizPanel/VizPanelMenu.js +0 -59
  35. package/dist/esm/dist/esm/components/VizPanel/VizPanelRenderer.js +0 -285
  36. package/dist/esm/dist/esm/components/VizPanel/VizPanelSeriesLimit.js +0 -45
  37. package/dist/esm/dist/esm/components/VizPanel/colorSeriesConfigFactory.js +0 -72
  38. package/dist/esm/dist/esm/components/VizPanel/registerRuntimePanelPlugin.js +0 -11
  39. package/dist/esm/dist/esm/components/VizPanel/seriesVisibilityConfigFactory.js +0 -164
  40. package/dist/esm/dist/esm/components/layout/CSSGrid/SceneCSSGridLayout.js +0 -124
  41. package/dist/esm/dist/esm/components/layout/LazyLoader.js +0 -103
  42. package/dist/esm/dist/esm/components/layout/SceneFlexLayout.js +0 -135
  43. package/dist/esm/dist/esm/components/layout/grid/SceneGridItem.js +0 -30
  44. package/dist/esm/dist/esm/components/layout/grid/SceneGridLayout.js +0 -283
  45. package/dist/esm/dist/esm/components/layout/grid/SceneGridLayoutRenderer.js +0 -178
  46. package/dist/esm/dist/esm/components/layout/grid/SceneGridRow.js +0 -190
  47. package/dist/esm/dist/esm/components/layout/grid/constants.js +0 -7
  48. package/dist/esm/dist/esm/components/layout/grid/utils.js +0 -36
  49. package/dist/esm/dist/esm/components/layout/split/SplitLayout.js +0 -17
  50. package/dist/esm/dist/esm/components/layout/split/SplitLayoutRenderer.js +0 -29
  51. package/dist/esm/dist/esm/components/layout/split/Splitter.js +0 -386
  52. package/dist/esm/dist/esm/core/SceneComponentWrapper.js +0 -57
  53. package/dist/esm/dist/esm/core/SceneDataNode.js +0 -43
  54. package/dist/esm/dist/esm/core/SceneObjectBase.js +0 -286
  55. package/dist/esm/dist/esm/core/SceneObjectRef.js +0 -32
  56. package/dist/esm/dist/esm/core/SceneTimeRange.js +0 -231
  57. package/dist/esm/dist/esm/core/events.js +0 -11
  58. package/dist/esm/dist/esm/core/sceneGraph/getTimeRange.js +0 -10
  59. package/dist/esm/dist/esm/core/sceneGraph/index.js +0 -25
  60. package/dist/esm/dist/esm/core/sceneGraph/sceneGraph.js +0 -178
  61. package/dist/esm/dist/esm/core/sceneGraph/utils.js +0 -64
  62. package/dist/esm/dist/esm/core/types.js +0 -15
  63. package/dist/esm/dist/esm/querying/DataLayersMerger.js +0 -46
  64. package/dist/esm/dist/esm/querying/ExtraQueryProvider.js +0 -6
  65. package/dist/esm/dist/esm/querying/RuntimeDataSource.js +0 -6
  66. package/dist/esm/dist/esm/querying/SceneDataLayerSet.js +0 -100
  67. package/dist/esm/dist/esm/querying/SceneQueryRunner.js +0 -468
  68. package/dist/esm/dist/esm/querying/extraQueryProcessingOperator.js +0 -46
  69. package/dist/esm/dist/esm/querying/getEnrichedDataRequest.js +0 -12
  70. package/dist/esm/dist/esm/querying/layers/SceneDataLayerBase.js +0 -112
  71. package/dist/esm/dist/esm/querying/layers/SceneDataLayerControls.js +0 -51
  72. package/dist/esm/dist/esm/querying/layers/annotations/AnnotationsDataLayer.js +0 -130
  73. package/dist/esm/dist/esm/querying/layers/annotations/filterAnnotations.js +0 -85
  74. package/dist/esm/dist/esm/querying/layers/annotations/standardAnnotationQuery.js +0 -121
  75. package/dist/esm/dist/esm/querying/layers/annotations/standardAnnotationsSupport.js +0 -211
  76. package/dist/esm/dist/esm/querying/layers/annotations/utils.js +0 -77
  77. package/dist/esm/dist/esm/querying/registerQueryWithController.js +0 -41
  78. package/dist/esm/dist/esm/services/SceneObjectUrlSyncConfig.js +0 -30
  79. package/dist/esm/dist/esm/services/UniqueUrlKeyMapper.js +0 -45
  80. package/dist/esm/dist/esm/services/UrlSyncManager.js +0 -167
  81. package/dist/esm/dist/esm/services/useUrlSync.js +0 -29
  82. package/dist/esm/dist/esm/services/utils.js +0 -71
  83. package/dist/esm/dist/esm/utils/ControlsLabel.js +0 -107
  84. package/dist/esm/dist/esm/utils/LoadingIndicator.js +0 -19
  85. package/dist/esm/dist/esm/utils/SafeSerializableSceneObject.js +0 -39
  86. package/dist/esm/dist/esm/utils/compatibility/setWindowGrafanaSceneContext.js +0 -16
  87. package/dist/esm/dist/esm/utils/date.js +0 -15
  88. package/dist/esm/dist/esm/utils/evaluateTimeRange.js +0 -16
  89. package/dist/esm/dist/esm/utils/explore.js +0 -47
  90. package/dist/esm/dist/esm/utils/getCompareSeriesRefId.js +0 -4
  91. package/dist/esm/dist/esm/utils/getDataSource.js +0 -18
  92. package/dist/esm/dist/esm/utils/getMessageFromError.js +0 -24
  93. package/dist/esm/dist/esm/utils/metricTree.js +0 -53
  94. package/dist/esm/dist/esm/utils/parseUrlParam.js +0 -41
  95. package/dist/esm/dist/esm/utils/utils.js +0 -11
  96. package/dist/esm/dist/esm/utils/wrapInSafeSerializableSceneObject.js +0 -30
  97. package/dist/esm/dist/esm/utils/writeSceneLog.js +0 -12
  98. package/dist/esm/dist/esm/variables/VariableDependencyConfig.js +0 -150
  99. package/dist/esm/dist/esm/variables/VariableValueRecorder.js +0 -71
  100. package/dist/esm/dist/esm/variables/adhoc/AdHocFilterBuilder.js +0 -24
  101. package/dist/esm/dist/esm/variables/adhoc/AdHocFilterRenderer.js +0 -303
  102. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +0 -162
  103. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +0 -20
  104. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +0 -640
  105. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +0 -65
  106. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +0 -146
  107. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +0 -114
  108. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +0 -68
  109. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/utils.js +0 -146
  110. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersVariable.js +0 -289
  111. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +0 -76
  112. package/dist/esm/dist/esm/variables/adhoc/getAdhocOptionSearcher.js +0 -13
  113. package/dist/esm/dist/esm/variables/adhoc/patchGetAdhocFilters.js +0 -47
  114. package/dist/esm/dist/esm/variables/components/VariableValueControl.js +0 -23
  115. package/dist/esm/dist/esm/variables/components/VariableValueInput.js +0 -33
  116. package/dist/esm/dist/esm/variables/components/VariableValueSelect.js +0 -228
  117. package/dist/esm/dist/esm/variables/components/VariableValueSelectors.js +0 -72
  118. package/dist/esm/dist/esm/variables/components/getOptionSearcher.js +0 -15
  119. package/dist/esm/dist/esm/variables/constants.js +0 -9
  120. package/dist/esm/dist/esm/variables/getEnrichedFiltersRequest.js +0 -12
  121. package/dist/esm/dist/esm/variables/groupby/GroupByVariable.js +0 -259
  122. package/dist/esm/dist/esm/variables/groupby/GroupByVariableUrlSyncHandler.js +0 -63
  123. package/dist/esm/dist/esm/variables/groupby/findActiveGroupByVariablesByUid.js +0 -13
  124. package/dist/esm/dist/esm/variables/interpolation/ScopedVarsVariable.js +0 -40
  125. package/dist/esm/dist/esm/variables/interpolation/defaults.js +0 -21
  126. package/dist/esm/dist/esm/variables/interpolation/fieldAccessorCache.js +0 -13
  127. package/dist/esm/dist/esm/variables/interpolation/formatRegistry.js +0 -296
  128. package/dist/esm/dist/esm/variables/interpolation/sceneInterpolator.js +0 -87
  129. package/dist/esm/dist/esm/variables/lookupVariable.js +0 -20
  130. package/dist/esm/dist/esm/variables/macros/AllVariablesMacro.js +0 -57
  131. package/dist/esm/dist/esm/variables/macros/contextMacros.js +0 -43
  132. package/dist/esm/dist/esm/variables/macros/dataMacros.js +0 -134
  133. package/dist/esm/dist/esm/variables/macros/index.js +0 -26
  134. package/dist/esm/dist/esm/variables/macros/templateProxies.js +0 -51
  135. package/dist/esm/dist/esm/variables/macros/timeMacros.js +0 -86
  136. package/dist/esm/dist/esm/variables/macros/types.js +0 -11
  137. package/dist/esm/dist/esm/variables/macros/urlMacros.js +0 -56
  138. package/dist/esm/dist/esm/variables/sets/SceneVariableSet.js +0 -254
  139. package/dist/esm/dist/esm/variables/types.js +0 -11
  140. package/dist/esm/dist/esm/variables/utils.js +0 -172
  141. package/dist/esm/dist/esm/variables/variants/ConstantVariable.js +0 -38
  142. package/dist/esm/dist/esm/variables/variants/CustomVariable.js +0 -60
  143. package/dist/esm/dist/esm/variables/variants/DataSourceVariable.js +0 -88
  144. package/dist/esm/dist/esm/variables/variants/IntervalVariable.js +0 -117
  145. package/dist/esm/dist/esm/variables/variants/MultiValueVariable.js +0 -295
  146. package/dist/esm/dist/esm/variables/variants/TestVariable.js +0 -117
  147. package/dist/esm/dist/esm/variables/variants/TextBoxVariable.js +0 -61
  148. package/dist/esm/dist/esm/variables/variants/query/QueryVariable.js +0 -139
  149. package/dist/esm/dist/esm/variables/variants/query/createQueryVariableRunner.js +0 -129
  150. package/dist/esm/dist/esm/variables/variants/query/guards.js +0 -28
  151. package/dist/esm/dist/esm/variables/variants/query/toMetricFindValues.js +0 -96
  152. package/dist/esm/dist/esm/variables/variants/query/utils.js +0 -124
  153. package/dist/esm/querying/DataProviderSharer.js +0 -39
  154. package/dist/esm/src/behaviors/ActWhenVariableChanged.js +0 -27
  155. package/dist/esm/src/behaviors/CursorSync.js +0 -76
  156. package/dist/esm/src/behaviors/LiveNowTimer.js +0 -44
  157. package/dist/esm/src/behaviors/SceneQueryController.js +0 -60
  158. package/dist/esm/src/behaviors/index.js +0 -5
  159. package/dist/esm/src/components/EmbeddedScene.js +0 -59
  160. package/dist/esm/src/components/NestedScene.js +0 -95
  161. package/dist/esm/src/components/SceneApp/SceneApp.js +0 -37
  162. package/dist/esm/src/components/SceneApp/SceneAppPage.js +0 -176
  163. package/dist/esm/src/components/SceneApp/SceneAppPageView.js +0 -104
  164. package/dist/esm/src/components/SceneApp/utils.js +0 -42
  165. package/dist/esm/src/components/SceneByFrameRepeater.js +0 -41
  166. package/dist/esm/src/components/SceneByVariableRepeater.js +0 -55
  167. package/dist/esm/src/components/SceneCanvasText.js +0 -32
  168. package/dist/esm/src/components/SceneControlsSpacer.js +0 -17
  169. package/dist/esm/src/components/SceneDebugger/DebugDetails.js +0 -82
  170. package/dist/esm/src/components/SceneDebugger/DebugTreeNode.js +0 -72
  171. package/dist/esm/src/components/SceneDebugger/SceneDebugger.js +0 -77
  172. package/dist/esm/src/components/SceneReactObject.js +0 -34
  173. package/dist/esm/src/components/SceneRefreshPicker.js +0 -205
  174. package/dist/esm/src/components/SceneTimePicker.js +0 -139
  175. package/dist/esm/src/components/SceneTimeRangeCompare.js +0 -240
  176. package/dist/esm/src/components/SceneToolbarButton.js +0 -33
  177. package/dist/esm/src/components/VizPanel/VizPanel.js +0 -406
  178. package/dist/esm/src/components/VizPanel/VizPanelExploreButton.js +0 -44
  179. package/dist/esm/src/components/VizPanel/VizPanelMenu.js +0 -59
  180. package/dist/esm/src/components/VizPanel/VizPanelRenderer.js +0 -285
  181. package/dist/esm/src/components/VizPanel/VizPanelSeriesLimit.js +0 -45
  182. package/dist/esm/src/components/VizPanel/colorSeriesConfigFactory.js +0 -72
  183. package/dist/esm/src/components/VizPanel/registerRuntimePanelPlugin.js +0 -56
  184. package/dist/esm/src/components/VizPanel/seriesVisibilityConfigFactory.js +0 -164
  185. package/dist/esm/src/components/layout/CSSGrid/SceneCSSGridLayout.js +0 -124
  186. package/dist/esm/src/components/layout/LazyLoader.js +0 -103
  187. package/dist/esm/src/components/layout/SceneFlexLayout.js +0 -135
  188. package/dist/esm/src/components/layout/grid/SceneGridItem.js +0 -30
  189. package/dist/esm/src/components/layout/grid/SceneGridLayout.js +0 -283
  190. package/dist/esm/src/components/layout/grid/SceneGridLayoutRenderer.js +0 -178
  191. package/dist/esm/src/components/layout/grid/SceneGridRow.js +0 -190
  192. package/dist/esm/src/components/layout/grid/constants.js +0 -7
  193. package/dist/esm/src/components/layout/grid/utils.js +0 -36
  194. package/dist/esm/src/components/layout/split/SplitLayout.js +0 -17
  195. package/dist/esm/src/components/layout/split/SplitLayoutRenderer.js +0 -29
  196. package/dist/esm/src/components/layout/split/Splitter.js +0 -386
  197. package/dist/esm/src/core/PanelBuilders/FieldConfigBuilder.js +0 -100
  198. package/dist/esm/src/core/PanelBuilders/FieldConfigBuilders.js +0 -75
  199. package/dist/esm/src/core/PanelBuilders/FieldConfigOverridesBuilder.js +0 -75
  200. package/dist/esm/src/core/PanelBuilders/PanelOptionsBuilder.js +0 -22
  201. package/dist/esm/src/core/PanelBuilders/PanelOptionsBuilders.js +0 -85
  202. package/dist/esm/src/core/PanelBuilders/StandardFieldConfigBuilders.js +0 -52
  203. package/dist/esm/src/core/PanelBuilders/VizConfigBuilder.js +0 -78
  204. package/dist/esm/src/core/PanelBuilders/VizConfigBuilders.js +0 -114
  205. package/dist/esm/src/core/PanelBuilders/VizPanelBuilder.js +0 -162
  206. package/dist/esm/src/core/PanelBuilders/index.js +0 -116
  207. package/dist/esm/src/core/SceneComponentWrapper.js +0 -57
  208. package/dist/esm/src/core/SceneDataNode.js +0 -43
  209. package/dist/esm/src/core/SceneObjectBase.js +0 -286
  210. package/dist/esm/src/core/SceneObjectRef.js +0 -32
  211. package/dist/esm/src/core/SceneTimeRange.js +0 -231
  212. package/dist/esm/src/core/SceneTimeRangeTransformerBase.js +0 -35
  213. package/dist/esm/src/core/SceneTimeZoneOverride.js +0 -63
  214. package/dist/esm/src/core/events.js +0 -11
  215. package/dist/esm/src/core/sceneGraph/getTimeRange.js +0 -10
  216. package/dist/esm/src/core/sceneGraph/index.js +0 -25
  217. package/dist/esm/src/core/sceneGraph/sceneGraph.js +0 -178
  218. package/dist/esm/src/core/sceneGraph/utils.js +0 -64
  219. package/dist/esm/src/core/types.js +0 -15
  220. package/dist/esm/src/index.js +0 -108
  221. package/dist/esm/src/querying/DataLayersMerger.js +0 -46
  222. package/dist/esm/src/querying/DataProviderProxy.js +0 -37
  223. package/dist/esm/src/querying/DataProviderSharer.js +0 -108
  224. package/dist/esm/src/querying/ExtraQueryProvider.js +0 -6
  225. package/dist/esm/src/querying/RuntimeDataSource.js +0 -49
  226. package/dist/esm/src/querying/SceneDataLayerSet.js +0 -100
  227. package/dist/esm/src/querying/SceneDataTransformer.js +0 -178
  228. package/dist/esm/src/querying/SceneQueryRunner.js +0 -468
  229. package/dist/esm/src/querying/extraQueryProcessingOperator.js +0 -46
  230. package/dist/esm/src/querying/getEnrichedDataRequest.js +0 -12
  231. package/dist/esm/src/querying/layers/SceneDataLayerBase.js +0 -112
  232. package/dist/esm/src/querying/layers/SceneDataLayerControls.js +0 -51
  233. package/dist/esm/src/querying/layers/annotations/AnnotationsDataLayer.js +0 -130
  234. package/dist/esm/src/querying/layers/annotations/filterAnnotations.js +0 -85
  235. package/dist/esm/src/querying/layers/annotations/standardAnnotationQuery.js +0 -121
  236. package/dist/esm/src/querying/layers/annotations/standardAnnotationsSupport.js +0 -211
  237. package/dist/esm/src/querying/layers/annotations/utils.js +0 -77
  238. package/dist/esm/src/querying/layers/index.js +0 -2
  239. package/dist/esm/src/querying/registerQueryWithController.js +0 -41
  240. package/dist/esm/src/services/SceneObjectUrlSyncConfig.js +0 -30
  241. package/dist/esm/src/services/UniqueUrlKeyMapper.js +0 -45
  242. package/dist/esm/src/services/UrlSyncContextProvider.js +0 -17
  243. package/dist/esm/src/services/UrlSyncManager.js +0 -167
  244. package/dist/esm/src/services/useUrlSync.js +0 -29
  245. package/dist/esm/src/services/utils.js +0 -75
  246. package/dist/esm/src/utils/ControlsLabel.js +0 -107
  247. package/dist/esm/src/utils/LoadingIndicator.js +0 -19
  248. package/dist/esm/src/utils/SafeSerializableSceneObject.js +0 -39
  249. package/dist/esm/src/utils/compatibility/setWindowGrafanaSceneContext.js +0 -16
  250. package/dist/esm/src/utils/date.js +0 -15
  251. package/dist/esm/src/utils/evaluateTimeRange.js +0 -16
  252. package/dist/esm/src/utils/explore.js +0 -47
  253. package/dist/esm/src/utils/getCompareSeriesRefId.js +0 -4
  254. package/dist/esm/src/utils/getDataSource.js +0 -18
  255. package/dist/esm/src/utils/getMessageFromError.js +0 -24
  256. package/dist/esm/src/utils/metricTree.js +0 -53
  257. package/dist/esm/src/utils/parseUrlParam.js +0 -41
  258. package/dist/esm/src/utils/utils.js +0 -11
  259. package/dist/esm/src/utils/wrapInSafeSerializableSceneObject.js +0 -30
  260. package/dist/esm/src/utils/writeSceneLog.js +0 -12
  261. package/dist/esm/src/variables/VariableDependencyConfig.js +0 -150
  262. package/dist/esm/src/variables/VariableValueRecorder.js +0 -71
  263. package/dist/esm/src/variables/adhoc/AdHocFilterBuilder.js +0 -24
  264. package/dist/esm/src/variables/adhoc/AdHocFilterRenderer.js +0 -303
  265. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +0 -162
  266. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +0 -20
  267. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +0 -640
  268. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +0 -65
  269. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +0 -146
  270. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +0 -114
  271. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +0 -68
  272. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/utils.js +0 -146
  273. package/dist/esm/src/variables/adhoc/AdHocFiltersVariable.js +0 -289
  274. package/dist/esm/src/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +0 -76
  275. package/dist/esm/src/variables/adhoc/getAdhocOptionSearcher.js +0 -13
  276. package/dist/esm/src/variables/adhoc/patchGetAdhocFilters.js +0 -47
  277. package/dist/esm/src/variables/components/VariableValueControl.js +0 -23
  278. package/dist/esm/src/variables/components/VariableValueInput.js +0 -33
  279. package/dist/esm/src/variables/components/VariableValueSelect.js +0 -228
  280. package/dist/esm/src/variables/components/VariableValueSelectors.js +0 -72
  281. package/dist/esm/src/variables/components/getOptionSearcher.js +0 -15
  282. package/dist/esm/src/variables/constants.js +0 -9
  283. package/dist/esm/src/variables/getEnrichedFiltersRequest.js +0 -12
  284. package/dist/esm/src/variables/groupby/GroupByVariable.js +0 -259
  285. package/dist/esm/src/variables/groupby/GroupByVariableUrlSyncHandler.js +0 -63
  286. package/dist/esm/src/variables/groupby/findActiveGroupByVariablesByUid.js +0 -13
  287. package/dist/esm/src/variables/interpolation/ScopedVarsVariable.js +0 -40
  288. package/dist/esm/src/variables/interpolation/defaults.js +0 -21
  289. package/dist/esm/src/variables/interpolation/fieldAccessorCache.js +0 -13
  290. package/dist/esm/src/variables/interpolation/formatRegistry.js +0 -296
  291. package/dist/esm/src/variables/interpolation/sceneInterpolator.js +0 -87
  292. package/dist/esm/src/variables/lookupVariable.js +0 -20
  293. package/dist/esm/src/variables/macros/AllVariablesMacro.js +0 -57
  294. package/dist/esm/src/variables/macros/contextMacros.js +0 -43
  295. package/dist/esm/src/variables/macros/dataMacros.js +0 -134
  296. package/dist/esm/src/variables/macros/index.js +0 -35
  297. package/dist/esm/src/variables/macros/templateProxies.js +0 -51
  298. package/dist/esm/src/variables/macros/timeMacros.js +0 -86
  299. package/dist/esm/src/variables/macros/types.js +0 -11
  300. package/dist/esm/src/variables/macros/urlMacros.js +0 -56
  301. package/dist/esm/src/variables/sets/SceneVariableSet.js +0 -254
  302. package/dist/esm/src/variables/types.js +0 -11
  303. package/dist/esm/src/variables/utils.js +0 -172
  304. package/dist/esm/src/variables/variants/ConstantVariable.js +0 -38
  305. package/dist/esm/src/variables/variants/CustomVariable.js +0 -60
  306. package/dist/esm/src/variables/variants/DataSourceVariable.js +0 -88
  307. package/dist/esm/src/variables/variants/IntervalVariable.js +0 -117
  308. package/dist/esm/src/variables/variants/JsonVariable.js +0 -193
  309. package/dist/esm/src/variables/variants/LocalValueVariable.js +0 -56
  310. package/dist/esm/src/variables/variants/MultiValueVariable.js +0 -295
  311. package/dist/esm/src/variables/variants/TestVariable.js +0 -117
  312. package/dist/esm/src/variables/variants/TextBoxVariable.js +0 -61
  313. package/dist/esm/src/variables/variants/guards.js +0 -27
  314. package/dist/esm/src/variables/variants/query/QueryVariable.js +0 -139
  315. package/dist/esm/src/variables/variants/query/createQueryVariableRunner.js +0 -129
  316. package/dist/esm/src/variables/variants/query/guards.js +0 -28
  317. package/dist/esm/src/variables/variants/query/toMetricFindValues.js +0 -96
  318. package/dist/esm/src/variables/variants/query/utils.js +0 -124
  319. package/dist/esm/variables/variants/JsonVariable.js +0 -96
  320. package/dist/esm/variables/variants/json/JsonVariable.js +0 -95
  321. package/dist/esm/variables/variants/json/JsonVariableOptionProviders.js +0 -70
@@ -1,65 +0,0 @@
1
- import { cx, css } from '@emotion/css';
2
- import { useStyles2, Icon } from '@grafana/ui';
3
- import React, { memo, useRef } from 'react';
4
- import { AdHocFilterPill } from './AdHocFilterPill.js';
5
- import { AdHocFiltersAlwaysWipCombobox } from './AdHocFiltersAlwaysWipCombobox.js';
6
-
7
- const AdHocFiltersComboboxRenderer = memo(function AdHocFiltersComboboxRenderer2({ model }) {
8
- const { filters, readOnly } = model.useState();
9
- const styles = useStyles2(getStyles);
10
- const focusOnWipInputRef = useRef();
11
- return /* @__PURE__ */ React.createElement("div", {
12
- className: cx(styles.comboboxWrapper, { [styles.comboboxFocusOutline]: !readOnly }),
13
- onClick: () => {
14
- var _a;
15
- (_a = focusOnWipInputRef.current) == null ? void 0 : _a.call(focusOnWipInputRef);
16
- }
17
- }, /* @__PURE__ */ React.createElement(Icon, {
18
- name: "filter",
19
- className: styles.filterIcon,
20
- size: "lg"
21
- }), filters.map((filter, index) => /* @__PURE__ */ React.createElement(AdHocFilterPill, {
22
- key: `${index}-${filter.key}`,
23
- filter,
24
- model,
25
- readOnly,
26
- focusOnWipInputRef: focusOnWipInputRef.current
27
- })), !readOnly ? /* @__PURE__ */ React.createElement(AdHocFiltersAlwaysWipCombobox, {
28
- model,
29
- ref: focusOnWipInputRef
30
- }) : null);
31
- });
32
- const getStyles = (theme) => ({
33
- comboboxWrapper: css({
34
- display: "flex",
35
- flexWrap: "wrap",
36
- alignItems: "center",
37
- columnGap: theme.spacing(1),
38
- rowGap: theme.spacing(0.5),
39
- minHeight: theme.spacing(4),
40
- backgroundColor: theme.components.input.background,
41
- border: `1px solid ${theme.colors.border.strong}`,
42
- borderRadius: theme.shape.radius.default,
43
- paddingInline: theme.spacing(1),
44
- paddingBlock: theme.spacing(0.5),
45
- flexGrow: 1
46
- }),
47
- comboboxFocusOutline: css({
48
- "&:focus-within": {
49
- outline: "2px dotted transparent",
50
- outlineOffset: "2px",
51
- boxShadow: `0 0 0 2px ${theme.colors.background.canvas}, 0 0 0px 4px ${theme.colors.primary.main}`,
52
- transitionTimingFunction: `cubic-bezier(0.19, 1, 0.22, 1)`,
53
- transitionDuration: "0.2s",
54
- transitionProperty: "outline, outline-offset, box-shadow",
55
- zIndex: 2
56
- }
57
- }),
58
- filterIcon: css({
59
- color: theme.colors.text.secondary,
60
- alignSelf: "center"
61
- })
62
- });
63
-
64
- export { AdHocFiltersComboboxRenderer };
65
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWRIb2NGaWx0ZXJzQ29tYm9ib3hSZW5kZXJlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdmFyaWFibGVzL2FkaG9jL0FkSG9jRmlsdGVyc0NvbWJvYm94L0FkSG9jRmlsdGVyc0NvbWJvYm94UmVuZGVyZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3gsIGNzcyB9IGZyb20gJ0BlbW90aW9uL2Nzcyc7XG5pbXBvcnQgeyB1c2VTdHlsZXMyLCBJY29uIH0gZnJvbSAnQGdyYWZhbmEvdWknO1xuaW1wb3J0IFJlYWN0LCB7IG1lbW8sIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEFkSG9jRmlsdGVyUGlsbCB9IGZyb20gJy4vQWRIb2NGaWx0ZXJQaWxsLmpzJztcbmltcG9ydCB7IEFkSG9jRmlsdGVyc0Fsd2F5c1dpcENvbWJvYm94IH0gZnJvbSAnLi9BZEhvY0ZpbHRlcnNBbHdheXNXaXBDb21ib2JveC5qcyc7XG5cbmNvbnN0IEFkSG9jRmlsdGVyc0NvbWJvYm94UmVuZGVyZXIgPSBtZW1vKGZ1bmN0aW9uIEFkSG9jRmlsdGVyc0NvbWJvYm94UmVuZGVyZXIyKHsgbW9kZWwgfSkge1xuICBjb25zdCB7IGZpbHRlcnMsIHJlYWRPbmx5IH0gPSBtb2RlbC51c2VTdGF0ZSgpO1xuICBjb25zdCBzdHlsZXMgPSB1c2VTdHlsZXMyKGdldFN0eWxlcyk7XG4gIGNvbnN0IGZvY3VzT25XaXBJbnB1dFJlZiA9IHVzZVJlZigpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgIGNsYXNzTmFtZTogY3goc3R5bGVzLmNvbWJvYm94V3JhcHBlciwgeyBbc3R5bGVzLmNvbWJvYm94Rm9jdXNPdXRsaW5lXTogIXJlYWRPbmx5IH0pLFxuICAgIG9uQ2xpY2s6ICgpID0+IHtcbiAgICAgIHZhciBfYTtcbiAgICAgIChfYSA9IGZvY3VzT25XaXBJbnB1dFJlZi5jdXJyZW50KSA9PSBudWxsID8gdm9pZCAwIDogX2EuY2FsbChmb2N1c09uV2lwSW5wdXRSZWYpO1xuICAgIH1cbiAgfSwgLyogQF9fUFVSRV9fICovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbiwge1xuICAgIG5hbWU6IFwiZmlsdGVyXCIsXG4gICAgY2xhc3NOYW1lOiBzdHlsZXMuZmlsdGVySWNvbixcbiAgICBzaXplOiBcImxnXCJcbiAgfSksIGZpbHRlcnMubWFwKChmaWx0ZXIsIGluZGV4KSA9PiAvKiBAX19QVVJFX18gKi8gUmVhY3QuY3JlYXRlRWxlbWVudChBZEhvY0ZpbHRlclBpbGwsIHtcbiAgICBrZXk6IGAke2luZGV4fS0ke2ZpbHRlci5rZXl9YCxcbiAgICBmaWx0ZXIsXG4gICAgbW9kZWwsXG4gICAgcmVhZE9ubHksXG4gICAgZm9jdXNPbldpcElucHV0UmVmOiBmb2N1c09uV2lwSW5wdXRSZWYuY3VycmVudFxuICB9KSksICFyZWFkT25seSA/IC8qIEBfX1BVUkVfXyAqLyBSZWFjdC5jcmVhdGVFbGVtZW50KEFkSG9jRmlsdGVyc0Fsd2F5c1dpcENvbWJvYm94LCB7XG4gICAgbW9kZWwsXG4gICAgcmVmOiBmb2N1c09uV2lwSW5wdXRSZWZcbiAgfSkgOiBudWxsKTtcbn0pO1xuY29uc3QgZ2V0U3R5bGVzID0gKHRoZW1lKSA9PiAoe1xuICBjb21ib2JveFdyYXBwZXI6IGNzcyh7XG4gICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAgZmxleFdyYXA6IFwid3JhcFwiLFxuICAgIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG4gICAgY29sdW1uR2FwOiB0aGVtZS5zcGFjaW5nKDEpLFxuICAgIHJvd0dhcDogdGhlbWUuc3BhY2luZygwLjUpLFxuICAgIG1pbkhlaWdodDogdGhlbWUuc3BhY2luZyg0KSxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLmNvbXBvbmVudHMuaW5wdXQuYmFja2dyb3VuZCxcbiAgICBib3JkZXI6IGAxcHggc29saWQgJHt0aGVtZS5jb2xvcnMuYm9yZGVyLnN0cm9uZ31gLFxuICAgIGJvcmRlclJhZGl1czogdGhlbWUuc2hhcGUucmFkaXVzLmRlZmF1bHQsXG4gICAgcGFkZGluZ0lubGluZTogdGhlbWUuc3BhY2luZygxKSxcbiAgICBwYWRkaW5nQmxvY2s6IHRoZW1lLnNwYWNpbmcoMC41KSxcbiAgICBmbGV4R3JvdzogMVxuICB9KSxcbiAgY29tYm9ib3hGb2N1c091dGxpbmU6IGNzcyh7XG4gICAgXCImOmZvY3VzLXdpdGhpblwiOiB7XG4gICAgICBvdXRsaW5lOiBcIjJweCBkb3R0ZWQgdHJhbnNwYXJlbnRcIixcbiAgICAgIG91dGxpbmVPZmZzZXQ6IFwiMnB4XCIsXG4gICAgICBib3hTaGFkb3c6IGAwIDAgMCAycHggJHt0aGVtZS5jb2xvcnMuYmFja2dyb3VuZC5jYW52YXN9LCAwIDAgMHB4IDRweCAke3RoZW1lLmNvbG9ycy5wcmltYXJ5Lm1haW59YCxcbiAgICAgIHRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbjogYGN1YmljLWJlemllcigwLjE5LCAxLCAwLjIyLCAxKWAsXG4gICAgICB0cmFuc2l0aW9uRHVyYXRpb246IFwiMC4yc1wiLFxuICAgICAgdHJhbnNpdGlvblByb3BlcnR5OiBcIm91dGxpbmUsIG91dGxpbmUtb2Zmc2V0LCBib3gtc2hhZG93XCIsXG4gICAgICB6SW5kZXg6IDJcbiAgICB9XG4gIH0pLFxuICBmaWx0ZXJJY29uOiBjc3Moe1xuICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMudGV4dC5zZWNvbmRhcnksXG4gICAgYWxpZ25TZWxmOiBcImNlbnRlclwiXG4gIH0pXG59KTtcblxuZXhwb3J0IHsgQWRIb2NGaWx0ZXJzQ29tYm9ib3hSZW5kZXJlciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lRV1JJYjJOR2FXeDBaWEp6UTI5dFltOWliM2hTWlc1a1pYSmxjaTVxY3lJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dkxpNHZMaTR2TGk0dmMzSmpMM1poY21saFlteGxjeTloWkdodll5OUJaRWh2WTBacGJIUmxjbk5EYjIxaWIySnZlQzlCWkVodlkwWnBiSFJsY25ORGIyMWliMkp2ZUZKbGJtUmxjbVZ5TG5SemVDSmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdleUJqYzNNc0lHTjRJSDBnWm5KdmJTQW5RR1Z0YjNScGIyNHZZM056Snp0Y2JtbHRjRzl5ZENCN0lFZHlZV1poYm1GVWFHVnRaVElnZlNCbWNtOXRJQ2RBWjNKaFptRnVZUzlrWVhSaEp6dGNibWx0Y0c5eWRDQjdJRWxqYjI0c0lIVnpaVk4wZVd4bGN6SWdmU0JtY205dElDZEFaM0poWm1GdVlTOTFhU2M3WEc1cGJYQnZjblFnVW1WaFkzUXNJSHNnYldWdGJ5d2dkWE5sVW1WbUlIMGdabkp2YlNBbmNtVmhZM1FuTzF4dWFXMXdiM0owSUhzZ1FXUkliMk5HYVd4MFpYSnpWbUZ5YVdGaWJHVWdmU0JtY205dElDY3VMaTlCWkVodlkwWnBiSFJsY25OV1lYSnBZV0pzWlNjN1hHNXBiWEJ2Y25RZ2V5QkJaRWh2WTBacGJIUmxjbEJwYkd3Z2ZTQm1jbTl0SUNjdUwwRmtTRzlqUm1sc2RHVnlVR2xzYkNjN1hHNXBiWEJ2Y25RZ2V5QkJaRWh2WTBacGJIUmxjbk5CYkhkaGVYTlhhWEJEYjIxaWIySnZlQ0I5SUdaeWIyMGdKeTR2UVdSSWIyTkdhV3gwWlhKelFXeDNZWGx6VjJsd1EyOXRZbTlpYjNnbk8xeHVYRzVwYm5SbGNtWmhZMlVnVUhKdmNITWdlMXh1SUNCdGIyUmxiRG9nUVdSSWIyTkdhV3gwWlhKelZtRnlhV0ZpYkdVN1hHNTlYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQkJaRWh2WTBacGJIUmxjbk5EYjIxaWIySnZlRkpsYm1SbGNtVnlJRDBnYldWdGJ5aG1kVzVqZEdsdmJpQkJaRWh2WTBacGJIUmxjbk5EYjIxaWIySnZlRkpsYm1SbGNtVnlLSHNnYlc5a1pXd2dmVG9nVUhKdmNITXBJSHRjYmlBZ1kyOXVjM1FnZXlCbWFXeDBaWEp6TENCeVpXRmtUMjVzZVNCOUlEMGdiVzlrWld3dWRYTmxVM1JoZEdVb0tUdGNiaUFnWTI5dWMzUWdjM1I1YkdWeklEMGdkWE5sVTNSNWJHVnpNaWhuWlhSVGRIbHNaWE1wTzF4dVhHNGdJQzh2SUhKbFppQjBhR0YwSUdadlkzVnpaWE1nYjI0Z2RHaGxJR0ZzZDJGNWN5QjNhWEFnWm1sc2RHVnlJR2x1Y0hWMFhHNGdJQzh2SUdSbFptbHVaV1FnYVc0Z2RHaGxJR052YldKdlltOTRJR052YlhCdmJtVnVkQ0IyYVdFZ2RYTmxTVzF3WlhKaGRHbDJaVWhoYm1Sc1pWeHVJQ0JqYjI1emRDQm1iMk4xYzA5dVYybHdTVzV3ZFhSU1pXWWdQU0IxYzJWU1pXWThLQ2tnUFQ0Z2RtOXBaRDRvS1R0Y2JseHVJQ0J5WlhSMWNtNGdLRnh1SUNBZ0lEeGthWFpjYmlBZ0lDQWdJR05zWVhOelRtRnRaVDE3WTNnb2MzUjViR1Z6TG1OdmJXSnZZbTk0VjNKaGNIQmxjaXdnZXlCYmMzUjViR1Z6TG1OdmJXSnZZbTk0Um05amRYTlBkWFJzYVc1bFhUb2dJWEpsWVdSUGJteDVJSDBwZlZ4dUlDQWdJQ0FnYjI1RGJHbGphejE3S0NrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0JtYjJOMWMwOXVWMmx3U1c1d2RYUlNaV1l1WTNWeWNtVnVkRDh1S0NrN1hHNGdJQ0FnSUNCOWZWeHVJQ0FnSUQ1Y2JpQWdJQ0FnSUR4SlkyOXVJRzVoYldVOVhDSm1hV3gwWlhKY0lpQmpiR0Z6YzA1aGJXVTllM04wZVd4bGN5NW1hV3gwWlhKSlkyOXVmU0J6YVhwbFBWd2liR2RjSWlBdlBseHVYRzRnSUNBZ0lDQjdabWxzZEdWeWN5NXRZWEFvS0dacGJIUmxjaXdnYVc1a1pYZ3BJRDArSUNoY2JpQWdJQ0FnSUNBZ1BFRmtTRzlqUm1sc2RHVnlVR2xzYkZ4dUlDQWdJQ0FnSUNBZ0lHdGxlVDE3WUNSN2FXNWtaWGg5TFNSN1ptbHNkR1Z5TG10bGVYMWdmVnh1SUNBZ0lDQWdJQ0FnSUdacGJIUmxjajE3Wm1sc2RHVnlmVnh1SUNBZ0lDQWdJQ0FnSUcxdlpHVnNQWHR0YjJSbGJIMWNiaUFnSUNBZ0lDQWdJQ0J5WldGa1QyNXNlVDE3Y21WaFpFOXViSGw5WEc0Z0lDQWdJQ0FnSUNBZ1ptOWpkWE5QYmxkcGNFbHVjSFYwVW1WbVBYdG1iMk4xYzA5dVYybHdTVzV3ZFhSU1pXWXVZM1Z5Y21WdWRIMWNiaUFnSUNBZ0lDQWdMejVjYmlBZ0lDQWdJQ2twZlZ4dVhHNGdJQ0FnSUNCN0lYSmxZV1JQYm14NUlEOGdQRUZrU0c5alJtbHNkR1Z5YzBGc2QyRjVjMWRwY0VOdmJXSnZZbTk0SUcxdlpHVnNQWHR0YjJSbGJIMGdjbVZtUFh0bWIyTjFjMDl1VjJsd1NXNXdkWFJTWldaOUlDOCtJRG9nYm5Wc2JIMWNiaUFnSUNBOEwyUnBkajVjYmlBZ0tUdGNibjBwTzF4dVhHNWpiMjV6ZENCblpYUlRkSGxzWlhNZ1BTQW9kR2hsYldVNklFZHlZV1poYm1GVWFHVnRaVElwSUQwK0lDaDdYRzRnSUdOdmJXSnZZbTk0VjNKaGNIQmxjam9nWTNOektIdGNiaUFnSUNCa2FYTndiR0Y1T2lBblpteGxlQ2NzWEc0Z0lDQWdabXhsZUZkeVlYQTZJQ2QzY21Gd0p5eGNiaUFnSUNCaGJHbG5ia2wwWlcxek9pQW5ZMlZ1ZEdWeUp5eGNiaUFnSUNCamIyeDFiVzVIWVhBNklIUm9aVzFsTG5Od1lXTnBibWNvTVNrc1hHNGdJQ0FnY205M1IyRndPaUIwYUdWdFpTNXpjR0ZqYVc1bktEQXVOU2tzWEc0Z0lDQWdiV2x1U0dWcFoyaDBPaUIwYUdWdFpTNXpjR0ZqYVc1bktEUXBMRnh1SUNBZ0lHSmhZMnRuY205MWJtUkRiMnh2Y2pvZ2RHaGxiV1V1WTI5dGNHOXVaVzUwY3k1cGJuQjFkQzVpWVdOclozSnZkVzVrTEZ4dUlDQWdJR0p2Y21SbGNqb2dZREZ3ZUNCemIyeHBaQ0FrZTNSb1pXMWxMbU52Ykc5eWN5NWliM0prWlhJdWMzUnliMjVuZldBc1hHNGdJQ0FnWW05eVpHVnlVbUZrYVhWek9pQjBhR1Z0WlM1emFHRndaUzV5WVdScGRYTXVaR1ZtWVhWc2RDeGNiaUFnSUNCd1lXUmthVzVuU1c1c2FXNWxPaUIwYUdWdFpTNXpjR0ZqYVc1bktERXBMRnh1SUNBZ0lIQmhaR1JwYm1kQ2JHOWphem9nZEdobGJXVXVjM0JoWTJsdVp5Z3dMalVwTEZ4dUlDQWdJR1pzWlhoSGNtOTNPaUF4TEZ4dUlDQjlLU3hjYmlBZ1kyOXRZbTlpYjNoR2IyTjFjMDkxZEd4cGJtVTZJR056Y3loN1hHNGdJQ0FnSnlZNlptOWpkWE10ZDJsMGFHbHVKem9nZTF4dUlDQWdJQ0FnYjNWMGJHbHVaVG9nSnpKd2VDQmtiM1IwWldRZ2RISmhibk53WVhKbGJuUW5MRnh1SUNBZ0lDQWdiM1YwYkdsdVpVOW1abk5sZERvZ0p6SndlQ2NzWEc0Z0lDQWdJQ0JpYjNoVGFHRmtiM2M2SUdBd0lEQWdNQ0F5Y0hnZ0pIdDBhR1Z0WlM1amIyeHZjbk11WW1GamEyZHliM1Z1WkM1allXNTJZWE45TENBd0lEQWdNSEI0SURSd2VDQWtlM1JvWlcxbExtTnZiRzl5Y3k1d2NtbHRZWEo1TG0xaGFXNTlZQ3hjYmlBZ0lDQWdJSFJ5WVc1emFYUnBiMjVVYVcxcGJtZEdkVzVqZEdsdmJqb2dZR04xWW1sakxXSmxlbWxsY2lnd0xqRTVMQ0F4TENBd0xqSXlMQ0F4S1dBc1hHNGdJQ0FnSUNCMGNtRnVjMmwwYVc5dVJIVnlZWFJwYjI0NklDY3dMakp6Snl4Y2JpQWdJQ0FnSUhSeVlXNXphWFJwYjI1UWNtOXdaWEowZVRvZ0oyOTFkR3hwYm1Vc0lHOTFkR3hwYm1VdGIyWm1jMlYwTENCaWIzZ3RjMmhoWkc5M0p5eGNiaUFnSUNBZ0lIcEpibVJsZURvZ01peGNiaUFnSUNCOUxGeHVJQ0I5S1N4Y2JpQWdabWxzZEdWeVNXTnZiam9nWTNOektIdGNiaUFnSUNCamIyeHZjam9nZEdobGJXVXVZMjlzYjNKekxuUmxlSFF1YzJWamIyNWtZWEo1TEZ4dUlDQWdJR0ZzYVdkdVUyVnNaam9nSjJObGJuUmxjaWNzWEc0Z0lIMHBMRnh1ZlNrN1hHNGlYU3dpYm1GdFpYTWlPbHNpUVdSSWIyTkdhV3gwWlhKelEyOXRZbTlpYjNoU1pXNWtaWEpsY2lKZExDSnRZWEJ3YVc1bmN5STZJanM3T3pzN08wRkJXVThzVFVGQlRTd3JRa0ZCSzBJc1NVRkJTeXhEUVVGQkxGTkJRVk5CTERaQ1FVRTJRaXhEUVVGQkxFVkJRVVVzVDBGQlowSXNSVUZCUVR0QlFVTjJSeXhGUVVGQkxFMUJRVTBzUlVGQlJTeFBRVUZCTEVWQlFWTXNVVUZCVXl4RlFVRkJMRWRCUVVrc1RVRkJUU3hSUVVGVExFVkJRVUVzUTBGQlFUdEJRVU0zUXl4RlFVRk5MRTFCUVVFc1RVRkJRU3hIUVVGVExGZEJRVmNzVTBGQlV5eERRVUZCTEVOQlFVRTdRVUZKYmtNc1JVRkJRU3hOUVVGTkxIRkNRVUZ4UWl4TlFVRnRRaXhGUVVGQkxFTkJRVUU3UVVGRk9VTXNSVUZCUVN4MVFrRkRSeXhMUVVGQkxFTkJRVUVzWVVGQlFTeERRVUZCTEV0QlFVRXNSVUZCUVR0QlFVRkJMRWxCUTBNc1UwRkJRU3hGUVVGWExFVkJRVWNzUTBGQlFTeE5RVUZCTEVOQlFVOHNaVUZCYVVJc1JVRkJRU3hGUVVGRkxFTkJRVU1zVFVGQlR5eERRVUZCTEc5Q1FVRkJMRWRCUVhWQ0xFTkJRVU1zVVVGQlFTeEZRVUZWTEVOQlFVRTdRVUZCUVN4SlFVTnNSaXhUUVVGVExFMUJRVTA3UVVGMlFuSkNMRTFCUVVFc1NVRkJRU3hGUVVGQkxFTkJRVUU3UVVGM1FsRXNUVUZCUVN4RFFVRkJMRVZCUVVFc1IwRkJRU3hyUWtGQlFTeERRVUZ0UWl4UFFVRnVRaXhMUVVGQkxFbEJRVUVzUjBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4RlFVRkJMRU5CUVVFc1NVRkJRU3hEUVVGQkxHdENRVUZCTEVOQlFVRXNRMEZCUVR0QlFVRkJMRXRCUTBZN1FVRkJRU3hIUVVGQkxHdENRVVZETEV0QlFVRXNRMEZCUVN4aFFVRkJMRU5CUVVFc1NVRkJRU3hGUVVGQk8wRkJRVUVzU1VGQlN5eEpRVUZMTEVWQlFVRXNVVUZCUVR0QlFVRkJMRWxCUVZNc1YwRkJWeXhOUVVGUExFTkJRVUVzVlVGQlFUdEJRVUZCTEVsQlFWa3NTVUZCU3l4RlFVRkJMRWxCUVVFN1FVRkJRU3hIUVVGTExFZEJSVE5FTEU5QlFWRXNRMEZCUVN4SFFVRkJMRU5CUVVrc1EwRkJReXhOUVVGQkxFVkJRVkVzTUVKQlEyNUNMRXRCUVVFc1EwRkJRU3hoUVVGQkxFTkJRVUVzWlVGQlFTeEZRVUZCTzBGQlFVRXNTVUZEUXl4SFFVRkJMRVZCUVVzc1EwRkJSeXhGUVVGQkxFdEJRVUVzUTBGQlFTeERRVUZCTEVWQlFWTXNUVUZCVHl4RFFVRkJMRWRCUVVFc1EwRkJRU3hEUVVGQk8wRkJRVUVzU1VGRGVFSXNUVUZCUVR0QlFVRkJMRWxCUTBFc1MwRkJRVHRCUVVGQkxFbEJRMEVzVVVGQlFUdEJRVUZCTEVsQlEwRXNiMEpCUVc5Q0xHdENRVUZ0UWl4RFFVRkJMRTlCUVVFN1FVRkJRU3hIUVVONlF5eERRVU5FTEVOQlFVRXNSVUZGUVN4RFFVRkRMRkZCUVVFc2JVSkJRVmtzUzBGQlFTeERRVUZCTEdGQlFVRXNRMEZCUVN3MlFrRkJRU3hGUVVGQk8wRkJRVUVzU1VGQk9FSXNTMEZCUVR0QlFVRkJMRWxCUVdNc1IwRkJTeXhGUVVGQkxHdENRVUZCTzBGQlFVRXNSMEZCYjBJc1NVRkJTeXhKUVVNeFJpeERRVUZCTEVOQlFVRTdRVUZGU2l4RFFVRkRMRVZCUVVFN1FVRkZSQ3hOUVVGTkxGTkJRVUVzUjBGQldTeERRVUZETEV0QlFUQkNMRTFCUVVFN1FVRkJRU3hGUVVNelF5eHBRa0ZCYVVJc1IwRkJTU3hEUVVGQk8wRkJRVUVzU1VGRGJrSXNUMEZCVXl4RlFVRkJMRTFCUVVFN1FVRkJRU3hKUVVOVUxGRkJRVlVzUlVGQlFTeE5RVUZCTzBGQlFVRXNTVUZEVml4VlFVRlpMRVZCUVVFc1VVRkJRVHRCUVVGQkxFbEJRMW9zVTBGQlFTeEZRVUZYTEV0QlFVMHNRMEZCUVN4UFFVRkJMRU5CUVZFc1EwRkJReXhEUVVGQk8wRkJRVUVzU1VGRE1VSXNUVUZCUVN4RlFVRlJMRXRCUVUwc1EwRkJRU3hQUVVGQkxFTkJRVkVzUjBGQlJ5eERRVUZCTzBGQlFVRXNTVUZEZWtJc1UwRkJRU3hGUVVGWExFdEJRVTBzUTBGQlFTeFBRVUZCTEVOQlFWRXNRMEZCUXl4RFFVRkJPMEZCUVVFc1NVRkRNVUlzWlVGQlFTeEZRVUZwUWl4TFFVRk5MRU5CUVVFc1ZVRkJRU3hEUVVGWExFdEJRVTBzUTBGQlFTeFZRVUZCTzBGQlFVRXNTVUZEZUVNc1RVRkJVU3hGUVVGQkxFTkJRVUVzVlVGQlFTeEZRVUZoTEV0QlFVMHNRMEZCUVN4TlFVRkJMRU5CUVU4c1RVRkJUeXhEUVVGQkxFMUJRVUVzUTBGQlFTeERRVUZCTzBGQlFVRXNTVUZEZWtNc1dVRkJRU3hGUVVGakxFdEJRVTBzUTBGQlFTeExRVUZCTEVOQlFVMHNUVUZCVHl4RFFVRkJMRTlCUVVFN1FVRkJRU3hKUVVOcVF5eGhRVUZCTEVWQlFXVXNTMEZCVFN4RFFVRkJMRTlCUVVFc1EwRkJVU3hEUVVGRExFTkJRVUU3UVVGQlFTeEpRVU01UWl4WlFVRkJMRVZCUVdNc1MwRkJUU3hEUVVGQkxFOUJRVUVzUTBGQlVTeEhRVUZITEVOQlFVRTdRVUZCUVN4SlFVTXZRaXhSUVVGVkxFVkJRVUVzUTBGQlFUdEJRVUZCTEVkQlExZ3NRMEZCUVR0QlFVRkJMRVZCUTBRc2MwSkJRWE5DTEVkQlFVa3NRMEZCUVR0QlFVRkJMRWxCUTNoQ0xHZENRVUZyUWl4RlFVRkJPMEZCUVVFc1RVRkRhRUlzVDBGQlV5eEZRVUZCTEhkQ1FVRkJPMEZCUVVFc1RVRkRWQ3hoUVVGbExFVkJRVUVzUzBGQlFUdEJRVUZCTEUxQlEyWXNVMEZCUVN4RlFVRlhMR0ZCUVdFc1MwRkJUU3hEUVVGQkxFMUJRVUVzUTBGQlR5eFhRVUZYTEUxQlFYVkNMRU5CUVVFc1kwRkJRU3hGUVVGQkxFdEJRVUVzUTBGQlRTeFBRVUZQTEU5QlFWRXNRMEZCUVN4SlFVRkJMRU5CUVVFc1EwRkJRVHRCUVVGQkxFMUJRelZHTEhkQ1FVRXdRaXhGUVVGQkxFTkJRVUVzT0VKQlFVRXNRMEZCUVR0QlFVRkJMRTFCUXpGQ0xHdENRVUZ2UWl4RlFVRkJMRTFCUVVFN1FVRkJRU3hOUVVOd1FpeHJRa0ZCYjBJc1JVRkJRU3h4UTBGQlFUdEJRVUZCTEUxQlEzQkNMRTFCUVZFc1JVRkJRU3hEUVVGQk8wRkJRVUVzUzBGRFZqdEJRVUZCTEVkQlEwUXNRMEZCUVR0QlFVRkJMRVZCUTBRc1dVRkJXU3hIUVVGSkxFTkJRVUU3UVVGQlFTeEpRVU5rTEV0QlFVRXNSVUZCVHl4TFFVRk5MRU5CUVVFc1RVRkJRU3hEUVVGUExFbEJRVXNzUTBGQlFTeFRRVUZCTzBGQlFVRXNTVUZEZWtJc1UwRkJWeXhGUVVGQkxGRkJRVUU3UVVGQlFTeEhRVU5hTEVOQlFVRTdRVUZEU0N4RFFVRkJMRU5CUVVFN096czdJbjA9XG4iXSwibmFtZXMiOlsiQWRIb2NGaWx0ZXJzQ29tYm9ib3hSZW5kZXJlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBWU8sTUFBTSwrQkFBK0IsSUFBSyxDQUFBLFNBQVNBLDZCQUE2QixDQUFBLEVBQUUsT0FBZ0IsRUFBQTtBQUN2RyxFQUFBLE1BQU0sRUFBRSxPQUFBLEVBQVMsUUFBUyxFQUFBLEdBQUksTUFBTSxRQUFTLEVBQUEsQ0FBQTtBQUN2QyxFQUFBLE1BQUEsTUFBQSxHQUFTLFdBQVcsU0FBUyxDQUFBLENBQUE7QUFJbkMsRUFBQSxNQUFNLHFCQUFxQixNQUFtQixFQUFBLENBQUE7QUFFOUMsRUFDRyx1QkFBQSxLQUFBLENBQUEsY0FBQSxLQUFBLEVBQUE7SUFDQyxTQUFXLEVBQUEsRUFBQSxDQUFHLE9BQU8sZUFBaUIsRUFBQSxFQUFFLENBQUMsTUFBTyxDQUFBLG9CQUFBLEdBQXVCLENBQUMsUUFBQSxFQUFVLENBQUE7QUFDbEYsSUFBQSxPQUFBLEVBQVMsTUFBTTtBQXZCckIsTUFBQSxJQUFBLEVBQUEsQ0FBQTtBQXdCUSxNQUFBLENBQUEsS0FBQSxrQkFBbUIsQ0FBQSxPQUFBLEtBQW5CLE9BQUEsS0FBQSxDQUFBLEdBQUEsRUFBQSxDQUFBLEtBQUEsa0JBQUEsQ0FBQSxDQUFBO0FBQUEsS0FBQTtHQUdELGtCQUFBLEtBQUEsQ0FBQSxjQUFBLElBQUEsRUFBQTtJQUFLLElBQUssRUFBQSxRQUFBO0FBQVMsSUFBQSxTQUFBLEVBQVcsTUFBTyxDQUFBLFVBQUE7SUFBWSxJQUFLLEVBQUEsSUFBQTtHQUFLLENBQUEsRUFFM0QsUUFBUSxHQUFJLENBQUEsQ0FBQyxRQUFRLEtBQ25CLHFCQUFBLEtBQUEsQ0FBQSxjQUFBLGVBQUEsRUFBQTtJQUNDLEdBQUssRUFBQSxDQUFBLEVBQUcsU0FBUyxNQUFPLENBQUEsR0FBQSxDQUFBLENBQUE7QUFDeEIsSUFBQSxNQUFBO0FBQ0EsSUFBQSxLQUFBO0FBQ0EsSUFBQSxRQUFBO0FBQ0EsSUFBQSxrQkFBQSxFQUFvQixrQkFBbUIsQ0FBQSxPQUFBO0FBQUEsR0FDekMsQ0FDRCxDQUVBLEVBQUEsQ0FBQyxRQUFZLG1CQUFBLEtBQUEsQ0FBQSxjQUFBLDZCQUFBLEVBQUE7QUFBOEIsSUFBQSxLQUFBO0lBQWMsR0FBSyxFQUFBLGtCQUFBO0FBQUEsR0FBb0IsSUFBSyxJQUMxRixDQUFBLENBQUE7QUFFSixDQUFDLEVBQUE7QUFFRCxNQUFNLFNBQUEsR0FBWSxDQUFDLEtBQTBCLE1BQUE7QUFDM0MsRUFBQSxlQUFBLEVBQWlCLEdBQUksQ0FBQTtJQUNuQixPQUFTLEVBQUEsTUFBQTtJQUNULFFBQVUsRUFBQSxNQUFBO0lBQ1YsVUFBWSxFQUFBLFFBQUE7SUFDWixTQUFXLEVBQUEsS0FBQSxDQUFNLFFBQVEsQ0FBQyxDQUFBO0lBQzFCLE1BQVEsRUFBQSxLQUFBLENBQU0sUUFBUSxHQUFHLENBQUE7SUFDekIsU0FBVyxFQUFBLEtBQUEsQ0FBTSxRQUFRLENBQUMsQ0FBQTtJQUMxQixlQUFpQixFQUFBLEtBQUEsQ0FBTSxXQUFXLEtBQU0sQ0FBQSxVQUFBO0lBQ3hDLE1BQVEsRUFBQSxDQUFBLFVBQUEsRUFBYSxLQUFNLENBQUEsTUFBQSxDQUFPLE1BQU8sQ0FBQSxNQUFBLENBQUEsQ0FBQTtJQUN6QyxZQUFjLEVBQUEsS0FBQSxDQUFNLE1BQU0sTUFBTyxDQUFBLE9BQUE7SUFDakMsYUFBZSxFQUFBLEtBQUEsQ0FBTSxRQUFRLENBQUMsQ0FBQTtJQUM5QixZQUFjLEVBQUEsS0FBQSxDQUFNLFFBQVEsR0FBRyxDQUFBO0lBQy9CLFFBQVUsRUFBQSxDQUFBO0dBQ1gsQ0FBQTtBQUNELEVBQUEsb0JBQUEsRUFBc0IsR0FBSSxDQUFBO0lBQ3hCLGdCQUFrQixFQUFBO01BQ2hCLE9BQVMsRUFBQSx3QkFBQTtNQUNULGFBQWUsRUFBQSxLQUFBO0FBQ2YsTUFBQSxTQUFBLEVBQVcsYUFBYSxLQUFNLENBQUEsTUFBQSxDQUFPLFdBQVcsTUFBdUIsQ0FBQSxjQUFBLEVBQUEsS0FBQSxDQUFNLE9BQU8sT0FBUSxDQUFBLElBQUEsQ0FBQSxDQUFBO01BQzVGLHdCQUEwQixFQUFBLENBQUEsOEJBQUEsQ0FBQTtNQUMxQixrQkFBb0IsRUFBQSxNQUFBO01BQ3BCLGtCQUFvQixFQUFBLHFDQUFBO01BQ3BCLE1BQVEsRUFBQSxDQUFBO0FBQUEsS0FBQTtHQUVYLENBQUE7QUFDRCxFQUFBLFVBQUEsRUFBWSxHQUFJLENBQUE7SUFDZCxLQUFPLEVBQUEsS0FBQSxDQUFNLE9BQU8sSUFBSyxDQUFBLFNBQUE7SUFDekIsU0FBVyxFQUFBLFFBQUE7R0FDWixDQUFBO0FBQ0gsQ0FBQSxDQUFBOzs7OyJ9
@@ -1,146 +0,0 @@
1
- import { cx, css } from '@emotion/css';
2
- import { useStyles2, Checkbox, Button } from '@grafana/ui';
3
- import React, { forwardRef, useId } from 'react';
4
-
5
- var __defProp = Object.defineProperty;
6
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
- var __spreadValues = (a, b) => {
11
- for (var prop in b || (b = {}))
12
- if (__hasOwnProp.call(b, prop))
13
- __defNormalProp(a, prop, b[prop]);
14
- if (__getOwnPropSymbols)
15
- for (var prop of __getOwnPropSymbols(b)) {
16
- if (__propIsEnum.call(b, prop))
17
- __defNormalProp(a, prop, b[prop]);
18
- }
19
- return a;
20
- };
21
- var __objRest = (source, exclude) => {
22
- var target = {};
23
- for (var prop in source)
24
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
25
- target[prop] = source[prop];
26
- if (source != null && __getOwnPropSymbols)
27
- for (var prop of __getOwnPropSymbols(source)) {
28
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
29
- target[prop] = source[prop];
30
- }
31
- return target;
32
- };
33
- const DropdownItem = forwardRef(
34
- function DropdownItem2(_a, ref) {
35
- var _b = _a, { children, active, addGroupBottomBorder, isMultiValueEdit, checked } = _b, rest = __objRest(_b, ["children", "active", "addGroupBottomBorder", "isMultiValueEdit", "checked"]);
36
- const styles = useStyles2(getStyles);
37
- const id = useId();
38
- return /* @__PURE__ */ React.createElement("div", __spreadValues({
39
- ref,
40
- role: "option",
41
- id,
42
- "aria-selected": active,
43
- className: cx(styles.option, active && styles.optionFocused, addGroupBottomBorder && styles.groupBottomBorder)
44
- }, rest), /* @__PURE__ */ React.createElement("div", {
45
- className: styles.optionBody,
46
- "data-testid": `data-testid ad hoc filter option value ${children}`
47
- }, /* @__PURE__ */ React.createElement("span", null, isMultiValueEdit ? /* @__PURE__ */ React.createElement(Checkbox, {
48
- tabIndex: -1,
49
- checked,
50
- className: styles.checkbox
51
- }) : null, children)));
52
- }
53
- );
54
- const getStyles = (theme) => ({
55
- option: css({
56
- label: "grafana-select-option",
57
- top: 0,
58
- left: 0,
59
- width: "100%",
60
- position: "absolute",
61
- padding: theme.spacing(1),
62
- display: "flex",
63
- alignItems: "center",
64
- flexDirection: "row",
65
- flexShrink: 0,
66
- whiteSpace: "nowrap",
67
- cursor: "pointer",
68
- "&:hover": {
69
- background: theme.colors.action.hover,
70
- "@media (forced-colors: active), (prefers-contrast: more)": {
71
- border: `1px solid ${theme.colors.primary.border}`
72
- }
73
- }
74
- }),
75
- optionFocused: css({
76
- label: "grafana-select-option-focused",
77
- background: theme.colors.action.focus,
78
- "@media (forced-colors: active), (prefers-contrast: more)": {
79
- border: `1px solid ${theme.colors.primary.border}`
80
- }
81
- }),
82
- optionBody: css({
83
- label: "grafana-select-option-body",
84
- display: "flex",
85
- fontWeight: theme.typography.fontWeightMedium,
86
- flexDirection: "column",
87
- flexGrow: 1
88
- }),
89
- groupBottomBorder: css({
90
- borderBottom: `1px solid ${theme.colors.border.weak}`
91
- }),
92
- checkbox: css({
93
- paddingRight: theme.spacing(0.5)
94
- }),
95
- multiValueApplyWrapper: css({
96
- position: "fixed",
97
- top: 0,
98
- left: 0,
99
- display: "flex",
100
- backgroundColor: theme.colors.background.primary,
101
- color: theme.colors.text.primary,
102
- boxShadow: theme.shadows.z2,
103
- overflowY: "auto",
104
- zIndex: theme.zIndex.dropdown,
105
- gap: theme.spacing(1.5),
106
- padding: `${theme.spacing(1.5)} ${theme.spacing(1)}`
107
- })
108
- });
109
- const LoadingOptionsPlaceholder = () => {
110
- return /* @__PURE__ */ React.createElement(DropdownItem, {
111
- onClick: (e) => e.stopPropagation()
112
- }, "Loading options...");
113
- };
114
- const NoOptionsPlaceholder = () => {
115
- return /* @__PURE__ */ React.createElement(DropdownItem, {
116
- onClick: (e) => e.stopPropagation()
117
- }, "No options found");
118
- };
119
- const OptionsErrorPlaceholder = ({ handleFetchOptions }) => {
120
- return /* @__PURE__ */ React.createElement(DropdownItem, {
121
- onClick: handleFetchOptions
122
- }, "An error has occurred fetching labels. Click to retry");
123
- };
124
- const MultiValueApplyButton = ({
125
- onApply,
126
- floatingElement,
127
- maxOptionWidth,
128
- menuHeight
129
- }) => {
130
- const styles = useStyles2(getStyles);
131
- const floatingElementRect = floatingElement == null ? void 0 : floatingElement.getBoundingClientRect();
132
- return /* @__PURE__ */ React.createElement("div", {
133
- className: styles.multiValueApplyWrapper,
134
- style: {
135
- width: `${maxOptionWidth}px`,
136
- transform: `translate(${floatingElementRect == null ? void 0 : floatingElementRect.left}px,${floatingElementRect ? floatingElementRect.top + menuHeight : 0}px)`
137
- }
138
- }, /* @__PURE__ */ React.createElement(Button, {
139
- onClick: onApply,
140
- size: "sm",
141
- tabIndex: -1
142
- }, "Apply"));
143
- };
144
-
145
- export { DropdownItem, LoadingOptionsPlaceholder, MultiValueApplyButton, NoOptionsPlaceholder, OptionsErrorPlaceholder };
146
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHJvcGRvd25JdGVtLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi92YXJpYWJsZXMvYWRob2MvQWRIb2NGaWx0ZXJzQ29tYm9ib3gvRHJvcGRvd25JdGVtLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGN4LCBjc3MgfSBmcm9tICdAZW1vdGlvbi9jc3MnO1xuaW1wb3J0IHsgdXNlU3R5bGVzMiwgQ2hlY2tib3gsIEJ1dHRvbiB9IGZyb20gJ0BncmFmYW5hL3VpJztcbmltcG9ydCBSZWFjdCwgeyBmb3J3YXJkUmVmLCB1c2VJZCB9IGZyb20gJ3JlYWN0JztcblxudmFyIF9fZGVmUHJvcCA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcbnZhciBfX2dldE93blByb3BTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcbnZhciBfX2hhc093blByb3AgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xudmFyIF9fcHJvcElzRW51bSA9IE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGU7XG52YXIgX19kZWZOb3JtYWxQcm9wID0gKG9iaiwga2V5LCB2YWx1ZSkgPT4ga2V5IGluIG9iaiA/IF9fZGVmUHJvcChvYmosIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlLCB2YWx1ZSB9KSA6IG9ialtrZXldID0gdmFsdWU7XG52YXIgX19zcHJlYWRWYWx1ZXMgPSAoYSwgYikgPT4ge1xuICBmb3IgKHZhciBwcm9wIGluIGIgfHwgKGIgPSB7fSkpXG4gICAgaWYgKF9faGFzT3duUHJvcC5jYWxsKGIsIHByb3ApKVxuICAgICAgX19kZWZOb3JtYWxQcm9wKGEsIHByb3AsIGJbcHJvcF0pO1xuICBpZiAoX19nZXRPd25Qcm9wU3ltYm9scylcbiAgICBmb3IgKHZhciBwcm9wIG9mIF9fZ2V0T3duUHJvcFN5bWJvbHMoYikpIHtcbiAgICAgIGlmIChfX3Byb3BJc0VudW0uY2FsbChiLCBwcm9wKSlcbiAgICAgICAgX19kZWZOb3JtYWxQcm9wKGEsIHByb3AsIGJbcHJvcF0pO1xuICAgIH1cbiAgcmV0dXJuIGE7XG59O1xudmFyIF9fb2JqUmVzdCA9IChzb3VyY2UsIGV4Y2x1ZGUpID0+IHtcbiAgdmFyIHRhcmdldCA9IHt9O1xuICBmb3IgKHZhciBwcm9wIGluIHNvdXJjZSlcbiAgICBpZiAoX19oYXNPd25Qcm9wLmNhbGwoc291cmNlLCBwcm9wKSAmJiBleGNsdWRlLmluZGV4T2YocHJvcCkgPCAwKVxuICAgICAgdGFyZ2V0W3Byb3BdID0gc291cmNlW3Byb3BdO1xuICBpZiAoc291cmNlICE9IG51bGwgJiYgX19nZXRPd25Qcm9wU3ltYm9scylcbiAgICBmb3IgKHZhciBwcm9wIG9mIF9fZ2V0T3duUHJvcFN5bWJvbHMoc291cmNlKSkge1xuICAgICAgaWYgKGV4Y2x1ZGUuaW5kZXhPZihwcm9wKSA8IDAgJiYgX19wcm9wSXNFbnVtLmNhbGwoc291cmNlLCBwcm9wKSlcbiAgICAgICAgdGFyZ2V0W3Byb3BdID0gc291cmNlW3Byb3BdO1xuICAgIH1cbiAgcmV0dXJuIHRhcmdldDtcbn07XG5jb25zdCBEcm9wZG93bkl0ZW0gPSBmb3J3YXJkUmVmKFxuICBmdW5jdGlvbiBEcm9wZG93bkl0ZW0yKF9hLCByZWYpIHtcbiAgICB2YXIgX2IgPSBfYSwgeyBjaGlsZHJlbiwgYWN0aXZlLCBhZGRHcm91cEJvdHRvbUJvcmRlciwgaXNNdWx0aVZhbHVlRWRpdCwgY2hlY2tlZCB9ID0gX2IsIHJlc3QgPSBfX29ialJlc3QoX2IsIFtcImNoaWxkcmVuXCIsIFwiYWN0aXZlXCIsIFwiYWRkR3JvdXBCb3R0b21Cb3JkZXJcIiwgXCJpc011bHRpVmFsdWVFZGl0XCIsIFwiY2hlY2tlZFwiXSk7XG4gICAgY29uc3Qgc3R5bGVzID0gdXNlU3R5bGVzMihnZXRTdHlsZXMpO1xuICAgIGNvbnN0IGlkID0gdXNlSWQoKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgX19zcHJlYWRWYWx1ZXMoe1xuICAgICAgcmVmLFxuICAgICAgcm9sZTogXCJvcHRpb25cIixcbiAgICAgIGlkLFxuICAgICAgXCJhcmlhLXNlbGVjdGVkXCI6IGFjdGl2ZSxcbiAgICAgIGNsYXNzTmFtZTogY3goc3R5bGVzLm9wdGlvbiwgYWN0aXZlICYmIHN0eWxlcy5vcHRpb25Gb2N1c2VkLCBhZGRHcm91cEJvdHRvbUJvcmRlciAmJiBzdHlsZXMuZ3JvdXBCb3R0b21Cb3JkZXIpXG4gICAgfSwgcmVzdCksIC8qIEBfX1BVUkVfXyAqLyBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgIGNsYXNzTmFtZTogc3R5bGVzLm9wdGlvbkJvZHksXG4gICAgICBcImRhdGEtdGVzdGlkXCI6IGBkYXRhLXRlc3RpZCBhZCBob2MgZmlsdGVyIG9wdGlvbiB2YWx1ZSAke2NoaWxkcmVufWBcbiAgICB9LCAvKiBAX19QVVJFX18gKi8gUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwgbnVsbCwgaXNNdWx0aVZhbHVlRWRpdCA/IC8qIEBfX1BVUkVfXyAqLyBSZWFjdC5jcmVhdGVFbGVtZW50KENoZWNrYm94LCB7XG4gICAgICB0YWJJbmRleDogLTEsXG4gICAgICBjaGVja2VkLFxuICAgICAgY2xhc3NOYW1lOiBzdHlsZXMuY2hlY2tib3hcbiAgICB9KSA6IG51bGwsIGNoaWxkcmVuKSkpO1xuICB9XG4pO1xuY29uc3QgZ2V0U3R5bGVzID0gKHRoZW1lKSA9PiAoe1xuICBvcHRpb246IGNzcyh7XG4gICAgbGFiZWw6IFwiZ3JhZmFuYS1zZWxlY3Qtb3B0aW9uXCIsXG4gICAgdG9wOiAwLFxuICAgIGxlZnQ6IDAsXG4gICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgcGFkZGluZzogdGhlbWUuc3BhY2luZygxKSxcbiAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICAgIGZsZXhEaXJlY3Rpb246IFwicm93XCIsXG4gICAgZmxleFNocmluazogMCxcbiAgICB3aGl0ZVNwYWNlOiBcIm5vd3JhcFwiLFxuICAgIGN1cnNvcjogXCJwb2ludGVyXCIsXG4gICAgXCImOmhvdmVyXCI6IHtcbiAgICAgIGJhY2tncm91bmQ6IHRoZW1lLmNvbG9ycy5hY3Rpb24uaG92ZXIsXG4gICAgICBcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSwgKHByZWZlcnMtY29udHJhc3Q6IG1vcmUpXCI6IHtcbiAgICAgICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYm9yZGVyfWBcbiAgICAgIH1cbiAgICB9XG4gIH0pLFxuICBvcHRpb25Gb2N1c2VkOiBjc3Moe1xuICAgIGxhYmVsOiBcImdyYWZhbmEtc2VsZWN0LW9wdGlvbi1mb2N1c2VkXCIsXG4gICAgYmFja2dyb3VuZDogdGhlbWUuY29sb3JzLmFjdGlvbi5mb2N1cyxcbiAgICBcIkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSwgKHByZWZlcnMtY29udHJhc3Q6IG1vcmUpXCI6IHtcbiAgICAgIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJvcmRlcn1gXG4gICAgfVxuICB9KSxcbiAgb3B0aW9uQm9keTogY3NzKHtcbiAgICBsYWJlbDogXCJncmFmYW5hLXNlbGVjdC1vcHRpb24tYm9keVwiLFxuICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgIGZvbnRXZWlnaHQ6IHRoZW1lLnR5cG9ncmFwaHkuZm9udFdlaWdodE1lZGl1bSxcbiAgICBmbGV4RGlyZWN0aW9uOiBcImNvbHVtblwiLFxuICAgIGZsZXhHcm93OiAxXG4gIH0pLFxuICBncm91cEJvdHRvbUJvcmRlcjogY3NzKHtcbiAgICBib3JkZXJCb3R0b206IGAxcHggc29saWQgJHt0aGVtZS5jb2xvcnMuYm9yZGVyLndlYWt9YFxuICB9KSxcbiAgY2hlY2tib3g6IGNzcyh7XG4gICAgcGFkZGluZ1JpZ2h0OiB0aGVtZS5zcGFjaW5nKDAuNSlcbiAgfSksXG4gIG11bHRpVmFsdWVBcHBseVdyYXBwZXI6IGNzcyh7XG4gICAgcG9zaXRpb246IFwiZml4ZWRcIixcbiAgICB0b3A6IDAsXG4gICAgbGVmdDogMCxcbiAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLmNvbG9ycy5iYWNrZ3JvdW5kLnByaW1hcnksXG4gICAgY29sb3I6IHRoZW1lLmNvbG9ycy50ZXh0LnByaW1hcnksXG4gICAgYm94U2hhZG93OiB0aGVtZS5zaGFkb3dzLnoyLFxuICAgIG92ZXJmbG93WTogXCJhdXRvXCIsXG4gICAgekluZGV4OiB0aGVtZS56SW5kZXguZHJvcGRvd24sXG4gICAgZ2FwOiB0aGVtZS5zcGFjaW5nKDEuNSksXG4gICAgcGFkZGluZzogYCR7dGhlbWUuc3BhY2luZygxLjUpfSAke3RoZW1lLnNwYWNpbmcoMSl9YFxuICB9KVxufSk7XG5jb25zdCBMb2FkaW5nT3B0aW9uc1BsYWNlaG9sZGVyID0gKCkgPT4ge1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRHJvcGRvd25JdGVtLCB7XG4gICAgb25DbGljazogKGUpID0+IGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgfSwgXCJMb2FkaW5nIG9wdGlvbnMuLi5cIik7XG59O1xuY29uc3QgTm9PcHRpb25zUGxhY2Vob2xkZXIgPSAoKSA9PiB7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8gUmVhY3QuY3JlYXRlRWxlbWVudChEcm9wZG93bkl0ZW0sIHtcbiAgICBvbkNsaWNrOiAoZSkgPT4gZS5zdG9wUHJvcGFnYXRpb24oKVxuICB9LCBcIk5vIG9wdGlvbnMgZm91bmRcIik7XG59O1xuY29uc3QgT3B0aW9uc0Vycm9yUGxhY2Vob2xkZXIgPSAoeyBoYW5kbGVGZXRjaE9wdGlvbnMgfSkgPT4ge1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRHJvcGRvd25JdGVtLCB7XG4gICAgb25DbGljazogaGFuZGxlRmV0Y2hPcHRpb25zXG4gIH0sIFwiQW4gZXJyb3IgaGFzIG9jY3VycmVkIGZldGNoaW5nIGxhYmVscy4gQ2xpY2sgdG8gcmV0cnlcIik7XG59O1xuY29uc3QgTXVsdGlWYWx1ZUFwcGx5QnV0dG9uID0gKHtcbiAgb25BcHBseSxcbiAgZmxvYXRpbmdFbGVtZW50LFxuICBtYXhPcHRpb25XaWR0aCxcbiAgbWVudUhlaWdodFxufSkgPT4ge1xuICBjb25zdCBzdHlsZXMgPSB1c2VTdHlsZXMyKGdldFN0eWxlcyk7XG4gIGNvbnN0IGZsb2F0aW5nRWxlbWVudFJlY3QgPSBmbG9hdGluZ0VsZW1lbnQgPT0gbnVsbCA/IHZvaWQgMCA6IGZsb2F0aW5nRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICBjbGFzc05hbWU6IHN0eWxlcy5tdWx0aVZhbHVlQXBwbHlXcmFwcGVyLFxuICAgIHN0eWxlOiB7XG4gICAgICB3aWR0aDogYCR7bWF4T3B0aW9uV2lkdGh9cHhgLFxuICAgICAgdHJhbnNmb3JtOiBgdHJhbnNsYXRlKCR7ZmxvYXRpbmdFbGVtZW50UmVjdCA9PSBudWxsID8gdm9pZCAwIDogZmxvYXRpbmdFbGVtZW50UmVjdC5sZWZ0fXB4LCR7ZmxvYXRpbmdFbGVtZW50UmVjdCA/IGZsb2F0aW5nRWxlbWVudFJlY3QudG9wICsgbWVudUhlaWdodCA6IDB9cHgpYFxuICAgIH1cbiAgfSwgLyogQF9fUFVSRV9fICovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQnV0dG9uLCB7XG4gICAgb25DbGljazogb25BcHBseSxcbiAgICBzaXplOiBcInNtXCIsXG4gICAgdGFiSW5kZXg6IC0xXG4gIH0sIFwiQXBwbHlcIikpO1xufTtcblxuZXhwb3J0IHsgRHJvcGRvd25JdGVtLCBMb2FkaW5nT3B0aW9uc1BsYWNlaG9sZGVyLCBNdWx0aVZhbHVlQXBwbHlCdXR0b24sIE5vT3B0aW9uc1BsYWNlaG9sZGVyLCBPcHRpb25zRXJyb3JQbGFjZWhvbGRlciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lSSEp2Y0dSdmQyNUpkR1Z0TG1weklpd2ljMjkxY21ObGN5STZXeUl1TGk4dUxpOHVMaTh1TGk4dUxpOXpjbU12ZG1GeWFXRmliR1Z6TDJGa2FHOWpMMEZrU0c5alJtbHNkR1Z5YzBOdmJXSnZZbTk0TDBSeWIzQmtiM2R1U1hSbGJTNTBjM2dpWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUhzZ1kzTnpMQ0JqZUNCOUlHWnliMjBnSjBCbGJXOTBhVzl1TDJOemN5YzdYRzVwYlhCdmNuUWdleUJIY21GbVlXNWhWR2hsYldVeUlIMGdabkp2YlNBblFHZHlZV1poYm1FdlpHRjBZU2M3WEc1cGJYQnZjblFnZXlCQ2RYUjBiMjRzSUVOb1pXTnJZbTk0TENCMWMyVlRkSGxzWlhNeUlIMGdabkp2YlNBblFHZHlZV1poYm1FdmRXa25PMXh1YVcxd2IzSjBJRkpsWVdOMExDQjdJR1p2Y25kaGNtUlNaV1lzSUhWelpVbGtJSDBnWm5KdmJTQW5jbVZoWTNRbk8xeHVYRzVwYm5SbGNtWmhZMlVnUkhKdmNHUnZkMjVKZEdWdFVISnZjSE1nZTF4dUlDQmphR2xzWkhKbGJqb2dVbVZoWTNRdVVtVmhZM1JPYjJSbE8xeHVJQ0JoWTNScGRtVS9PaUJpYjI5c1pXRnVPMXh1SUNCaFpHUkhjbTkxY0VKdmRIUnZiVUp2Y21SbGNqODZJR0p2YjJ4bFlXNDdYRzRnSUdselRYVnNkR2xXWVd4MVpVVmthWFEvT2lCaWIyOXNaV0Z1TzF4dUlDQmphR1ZqYTJWa1B6b2dZbTl2YkdWaGJqdGNibjFjYmx4dVpYaHdiM0owSUdOdmJuTjBJRVJ5YjNCa2IzZHVTWFJsYlNBOUlHWnZjbmRoY21SU1pXWThTRlJOVEVScGRrVnNaVzFsYm5Rc0lFUnliM0JrYjNkdVNYUmxiVkJ5YjNCeklDWWdVbVZoWTNRdVNGUk5URkJ5YjNCelBFaFVUVXhFYVhaRmJHVnRaVzUwUGo0b1hHNGdJR1oxYm1OMGFXOXVJRVJ5YjNCa2IzZHVTWFJsYlNoN0lHTm9hV3hrY21WdUxDQmhZM1JwZG1Vc0lHRmtaRWR5YjNWd1FtOTBkRzl0UW05eVpHVnlMQ0JwYzAxMWJIUnBWbUZzZFdWRlpHbDBMQ0JqYUdWamEyVmtMQ0F1TGk1eVpYTjBJSDBzSUhKbFppa2dlMXh1SUNBZ0lHTnZibk4wSUhOMGVXeGxjeUE5SUhWelpWTjBlV3hsY3pJb1oyVjBVM1I1YkdWektUdGNiaUFnSUNCamIyNXpkQ0JwWkNBOUlIVnpaVWxrS0NrN1hHNGdJQ0FnY21WMGRYSnVJQ2hjYmlBZ0lDQWdJRHhrYVhaY2JpQWdJQ0FnSUNBZ2NtVm1QWHR5WldaOVhHNGdJQ0FnSUNBZ0lISnZiR1U5WENKdmNIUnBiMjVjSWx4dUlDQWdJQ0FnSUNCcFpEMTdhV1I5WEc0Z0lDQWdJQ0FnSUdGeWFXRXRjMlZzWldOMFpXUTllMkZqZEdsMlpYMWNiaUFnSUNBZ0lDQWdZMnhoYzNOT1lXMWxQWHRqZUNoemRIbHNaWE11YjNCMGFXOXVMQ0JoWTNScGRtVWdKaVlnYzNSNWJHVnpMbTl3ZEdsdmJrWnZZM1Z6WldRc0lHRmtaRWR5YjNWd1FtOTBkRzl0UW05eVpHVnlJQ1ltSUhOMGVXeGxjeTVuY205MWNFSnZkSFJ2YlVKdmNtUmxjaWw5WEc0Z0lDQWdJQ0FnSUhzdUxpNXlaWE4wZlZ4dUlDQWdJQ0FnUGx4dUlDQWdJQ0FnSUNBOFpHbDJJR05zWVhOelRtRnRaVDE3YzNSNWJHVnpMbTl3ZEdsdmJrSnZaSGw5SUdSaGRHRXRkR1Z6ZEdsa1BYdGdaR0YwWVMxMFpYTjBhV1FnWVdRZ2FHOWpJR1pwYkhSbGNpQnZjSFJwYjI0Z2RtRnNkV1VnSkh0amFHbHNaSEpsYm4xZ2ZUNWNiaUFnSUNBZ0lDQWdJQ0E4YzNCaGJqNWNiaUFnSUNBZ0lDQWdJQ0FnSUh0cGMwMTFiSFJwVm1Gc2RXVkZaR2wwSUQ4Z1BFTm9aV05yWW05NElIUmhZa2x1WkdWNFBYc3RNWDBnWTJobFkydGxaRDE3WTJobFkydGxaSDBnWTJ4aGMzTk9ZVzFsUFh0emRIbHNaWE11WTJobFkydGliM2g5SUM4K0lEb2diblZzYkgxY2JpQWdJQ0FnSUNBZ0lDQWdJSHRqYUdsc1pISmxibjFjYmlBZ0lDQWdJQ0FnSUNBOEwzTndZVzQrWEc0Z0lDQWdJQ0FnSUR3dlpHbDJQbHh1SUNBZ0lDQWdQQzlrYVhZK1hHNGdJQ0FnS1R0Y2JpQWdmVnh1S1R0Y2JseHVZMjl1YzNRZ1oyVjBVM1I1YkdWeklEMGdLSFJvWlcxbE9pQkhjbUZtWVc1aFZHaGxiV1V5S1NBOVBpQW9lMXh1SUNCdmNIUnBiMjQ2SUdOemN5aDdYRzRnSUNBZ2JHRmlaV3c2SUNkbmNtRm1ZVzVoTFhObGJHVmpkQzF2Y0hScGIyNG5MRnh1SUNBZ0lIUnZjRG9nTUN4Y2JpQWdJQ0JzWldaME9pQXdMRnh1SUNBZ0lIZHBaSFJvT2lBbk1UQXdKU2NzWEc0Z0lDQWdjRzl6YVhScGIyNDZJQ2RoWW5OdmJIVjBaU2NzWEc0Z0lDQWdjR0ZrWkdsdVp6b2dkR2hsYldVdWMzQmhZMmx1WnlneEtTeGNiaUFnSUNCa2FYTndiR0Y1T2lBblpteGxlQ2NzWEc0Z0lDQWdZV3hwWjI1SmRHVnRjem9nSjJObGJuUmxjaWNzWEc0Z0lDQWdabXhsZUVScGNtVmpkR2x2YmpvZ0ozSnZkeWNzWEc0Z0lDQWdabXhsZUZOb2NtbHVhem9nTUN4Y2JpQWdJQ0IzYUdsMFpWTndZV05sT2lBbmJtOTNjbUZ3Snl4Y2JpQWdJQ0JqZFhKemIzSTZJQ2R3YjJsdWRHVnlKeXhjYmlBZ0lDQW5KanBvYjNabGNpYzZJSHRjYmlBZ0lDQWdJR0poWTJ0bmNtOTFibVE2SUhSb1pXMWxMbU52Ykc5eWN5NWhZM1JwYjI0dWFHOTJaWElzWEc0Z0lDQWdJQ0FuUUcxbFpHbGhJQ2htYjNKalpXUXRZMjlzYjNKek9pQmhZM1JwZG1VcExDQW9jSEpsWm1WeWN5MWpiMjUwY21GemREb2diVzl5WlNrbk9pQjdYRzRnSUNBZ0lDQWdJR0p2Y21SbGNqb2dZREZ3ZUNCemIyeHBaQ0FrZTNSb1pXMWxMbU52Ykc5eWN5NXdjbWx0WVhKNUxtSnZjbVJsY24xZ0xGeHVJQ0FnSUNBZ2ZTeGNiaUFnSUNCOUxGeHVJQ0I5S1N4Y2JpQWdiM0IwYVc5dVJtOWpkWE5sWkRvZ1kzTnpLSHRjYmlBZ0lDQnNZV0psYkRvZ0oyZHlZV1poYm1FdGMyVnNaV04wTFc5d2RHbHZiaTFtYjJOMWMyVmtKeXhjYmlBZ0lDQmlZV05yWjNKdmRXNWtPaUIwYUdWdFpTNWpiMnh2Y25NdVlXTjBhVzl1TG1adlkzVnpMRnh1SUNBZ0lDZEFiV1ZrYVdFZ0tHWnZjbU5sWkMxamIyeHZjbk02SUdGamRHbDJaU2tzSUNod2NtVm1aWEp6TFdOdmJuUnlZWE4wT2lCdGIzSmxLU2M2SUh0Y2JpQWdJQ0FnSUdKdmNtUmxjam9nWURGd2VDQnpiMnhwWkNBa2UzUm9aVzFsTG1OdmJHOXljeTV3Y21sdFlYSjVMbUp2Y21SbGNuMWdMRnh1SUNBZ0lIMHNYRzRnSUgwcExGeHVJQ0J2Y0hScGIyNUNiMlI1T2lCamMzTW9lMXh1SUNBZ0lHeGhZbVZzT2lBblozSmhabUZ1WVMxelpXeGxZM1F0YjNCMGFXOXVMV0p2WkhrbkxGeHVJQ0FnSUdScGMzQnNZWGs2SUNkbWJHVjRKeXhjYmlBZ0lDQm1iMjUwVjJWcFoyaDBPaUIwYUdWdFpTNTBlWEJ2WjNKaGNHaDVMbVp2Ym5SWFpXbG5hSFJOWldScGRXMHNYRzRnSUNBZ1pteGxlRVJwY21WamRHbHZiam9nSjJOdmJIVnRiaWNzWEc0Z0lDQWdabXhsZUVkeWIzYzZJREVzWEc0Z0lIMHBMRnh1SUNCbmNtOTFjRUp2ZEhSdmJVSnZjbVJsY2pvZ1kzTnpLSHRjYmlBZ0lDQmliM0prWlhKQ2IzUjBiMjA2SUdBeGNIZ2djMjlzYVdRZ0pIdDBhR1Z0WlM1amIyeHZjbk11WW05eVpHVnlMbmRsWVd0OVlDeGNiaUFnZlNrc1hHNGdJR05vWldOclltOTRPaUJqYzNNb2UxeHVJQ0FnSUhCaFpHUnBibWRTYVdkb2REb2dkR2hsYldVdWMzQmhZMmx1Wnlnd0xqVXBMRnh1SUNCOUtTeGNiaUFnYlhWc2RHbFdZV3gxWlVGd2NHeDVWM0poY0hCbGNqb2dZM056S0h0Y2JpQWdJQ0J3YjNOcGRHbHZiam9nSjJacGVHVmtKeXhjYmlBZ0lDQjBiM0E2SURBc1hHNGdJQ0FnYkdWbWREb2dNQ3hjYmlBZ0lDQmthWE53YkdGNU9pQW5abXhsZUNjc1hHNGdJQ0FnWW1GamEyZHliM1Z1WkVOdmJHOXlPaUIwYUdWdFpTNWpiMnh2Y25NdVltRmphMmR5YjNWdVpDNXdjbWx0WVhKNUxGeHVJQ0FnSUdOdmJHOXlPaUIwYUdWdFpTNWpiMnh2Y25NdWRHVjRkQzV3Y21sdFlYSjVMRnh1SUNBZ0lHSnZlRk5vWVdSdmR6b2dkR2hsYldVdWMyaGhaRzkzY3k1Nk1peGNiaUFnSUNCdmRtVnlabXh2ZDFrNklDZGhkWFJ2Snl4Y2JpQWdJQ0I2U1c1a1pYZzZJSFJvWlcxbExucEpibVJsZUM1a2NtOXdaRzkzYml4Y2JpQWdJQ0JuWVhBNklIUm9aVzFsTG5Od1lXTnBibWNvTVM0MUtTeGNiaUFnSUNCd1lXUmthVzVuT2lCZ0pIdDBhR1Z0WlM1emNHRmphVzVuS0RFdU5TbDlJQ1I3ZEdobGJXVXVjM0JoWTJsdVp5Z3hLWDFnTEZ4dUlDQjlLU3hjYm4wcE8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1RHOWhaR2x1WjA5d2RHbHZibk5RYkdGalpXaHZiR1JsY2lBOUlDZ3BJRDArSUh0Y2JpQWdjbVYwZFhKdUlEeEVjbTl3Wkc5M2JrbDBaVzBnYjI1RGJHbGphejE3S0dVcElEMCtJR1V1YzNSdmNGQnliM0JoWjJGMGFXOXVLQ2w5UGt4dllXUnBibWNnYjNCMGFXOXVjeTR1TGp3dlJISnZjR1J2ZDI1SmRHVnRQanRjYm4wN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCT2IwOXdkR2x2Ym5OUWJHRmpaV2h2YkdSbGNpQTlJQ2dwSUQwK0lIdGNiaUFnY21WMGRYSnVJRHhFY205d1pHOTNia2wwWlcwZ2IyNURiR2xqYXoxN0tHVXBJRDArSUdVdWMzUnZjRkJ5YjNCaFoyRjBhVzl1S0NsOVBrNXZJRzl3ZEdsdmJuTWdabTkxYm1ROEwwUnliM0JrYjNkdVNYUmxiVDQ3WEc1OU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1QzQjBhVzl1YzBWeWNtOXlVR3hoWTJWb2IyeGtaWElnUFNBb2V5Qm9ZVzVrYkdWR1pYUmphRTl3ZEdsdmJuTWdmVG9nZXlCb1lXNWtiR1ZHWlhSamFFOXdkR2x2Ym5NNklDZ3BJRDArSUhadmFXUWdmU2tnUFQ0Z2UxeHVJQ0J5WlhSMWNtNGdLRnh1SUNBZ0lEeEVjbTl3Wkc5M2JrbDBaVzBnYjI1RGJHbGphejE3YUdGdVpHeGxSbVYwWTJoUGNIUnBiMjV6ZlQ1QmJpQmxjbkp2Y2lCb1lYTWdiMk5qZFhKeVpXUWdabVYwWTJocGJtY2diR0ZpWld4ekxpQkRiR2xqYXlCMGJ5QnlaWFJ5ZVR3dlJISnZjR1J2ZDI1SmRHVnRQbHh1SUNBcE8xeHVmVHRjYmx4dWFXNTBaWEptWVdObElFMTFiSFJwVm1Gc2RXVkJjSEJzZVVKMWRIUnZibEJ5YjNCeklIdGNiaUFnYjI1QmNIQnNlVG9nS0NrZ1BUNGdkbTlwWkR0Y2JpQWdabXh2WVhScGJtZEZiR1Z0Wlc1ME9pQklWRTFNUld4bGJXVnVkQ0I4SUc1MWJHdzdYRzRnSUcxaGVFOXdkR2x2YmxkcFpIUm9PaUJ1ZFcxaVpYSTdYRzRnSUcxbGJuVklaV2xuYUhRNklHNTFiV0psY2p0Y2JuMWNibHh1Wlhod2IzSjBJR052Ym5OMElFMTFiSFJwVm1Gc2RXVkJjSEJzZVVKMWRIUnZiaUE5SUNoN1hHNGdJRzl1UVhCd2JIa3NYRzRnSUdac2IyRjBhVzVuUld4bGJXVnVkQ3hjYmlBZ2JXRjRUM0IwYVc5dVYybGtkR2dzWEc0Z0lHMWxiblZJWldsbmFIUXNYRzU5T2lCTmRXeDBhVlpoYkhWbFFYQndiSGxDZFhSMGIyNVFjbTl3Y3lrZ1BUNGdlMXh1SUNCamIyNXpkQ0J6ZEhsc1pYTWdQU0IxYzJWVGRIbHNaWE15S0dkbGRGTjBlV3hsY3lrN1hHNWNiaUFnWTI5dWMzUWdabXh2WVhScGJtZEZiR1Z0Wlc1MFVtVmpkQ0E5SUdac2IyRjBhVzVuUld4bGJXVnVkRDh1WjJWMFFtOTFibVJwYm1kRGJHbGxiblJTWldOMEtDazdYRzRnSUhKbGRIVnliaUFvWEc0Z0lDQWdQR1JwZGx4dUlDQWdJQ0FnWTJ4aGMzTk9ZVzFsUFh0emRIbHNaWE11YlhWc2RHbFdZV3gxWlVGd2NHeDVWM0poY0hCbGNuMWNiaUFnSUNBZ0lITjBlV3hsUFh0N1hHNGdJQ0FnSUNBZ0lIZHBaSFJvT2lCZ0pIdHRZWGhQY0hScGIyNVhhV1IwYUgxd2VHQXNYRzRnSUNBZ0lDQWdJSFJ5WVc1elptOXliVG9nWUhSeVlXNXpiR0YwWlNna2UyWnNiMkYwYVc1blJXeGxiV1Z1ZEZKbFkzUS9MbXhsWm5SOWNIZ3NKSHRjYmlBZ0lDQWdJQ0FnSUNCbWJHOWhkR2x1WjBWc1pXMWxiblJTWldOMElEOGdabXh2WVhScGJtZEZiR1Z0Wlc1MFVtVmpkQzUwYjNBZ0t5QnRaVzUxU0dWcFoyaDBJRG9nTUZ4dUlDQWdJQ0FnSUNCOWNIZ3BZQ3hjYmlBZ0lDQWdJSDE5WEc0Z0lDQWdQbHh1SUNBZ0lDQWdQRUoxZEhSdmJpQnZia05zYVdOclBYdHZia0Z3Y0d4NWZTQnphWHBsUFZ3aWMyMWNJaUIwWVdKSmJtUmxlRDE3TFRGOVBseHVJQ0FnSUNBZ0lDQkJjSEJzZVZ4dUlDQWdJQ0FnUEM5Q2RYUjBiMjQrWEc0Z0lDQWdQQzlrYVhZK1hHNGdJQ2s3WEc1OU8xeHVJbDBzSW01aGJXVnpJanBiSWtSeWIzQmtiM2R1U1hSbGJTSmRMQ0p0WVhCd2FXNW5jeUk2SWpzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdRVUZoVHl4TlFVRk5MRmxCUVdVc1IwRkJRU3hWUVVGQk8wRkJRVUVzUlVGRE1VSXNVMEZCVTBFc1lVRkJZU3hEUVVGQkxFVkJRVUVzUlVGQlowWXNSMEZCU3l4RlFVRkJPMEZCUVhKR0xFbEJRVUVzU1VGQlFTeEZRVUZCTEVkQlFVRXNSVUZCUVN4RlFVRkZMRVZCUVZVc1VVRkJRU3hGUVVGQkxFMUJRVUVzUlVGQlVTeHZRa0ZCYzBJc1JVRkJRU3huUWtGQlFTeEZRVUZyUWl4UFFXUndSaXhGUVVGQkxFZEJZM2RDTEVWQlFYZEZMRVZCUVVFc1NVRkJRU3hIUVVGQkxGTkJRVUVzUTBGQmVFVXNSVUZCZDBVc1JVRkJRU3hEUVVGMFJTeFZRVUZWTEVWQlFVRXNVVUZCUVN4RlFVRlJMSGRDUVVGelFpeHJRa0ZCYTBJc1JVRkJRU3hUUVVGQkxFTkJRVUVzUTBGQlFTeERRVUZCTzBGQlEyaEdMRWxCUVUwc1RVRkJRU3hOUVVGQkxFZEJRVk1zVjBGQlZ5eFRRVUZUTEVOQlFVRXNRMEZCUVR0QlFVTnVReXhKUVVGQkxFMUJRVTBzUzBGQlN5eExRVUZOTEVWQlFVRXNRMEZCUVR0QlFVTnFRaXhKUVVGQkxIVkNRVU5ITEV0QlFVRXNRMEZCUVN4aFFVRkJMRU5CUVVFc1MwRkJRU3hGUVVGQkxHTkJRVUVzUTBGQlFUdEJRVUZCTEUxQlEwTXNSMEZCUVR0QlFVRkJMRTFCUTBFc1NVRkJTeXhGUVVGQkxGRkJRVUU3UVVGQlFTeE5RVU5NTEVWQlFVRTdRVUZCUVN4TlFVTkJMR1ZCUVdVc1JVRkJRU3hOUVVGQk8wRkJRVUVzVFVGRFppeFRRVUZCTEVWQlFWY3NSMEZCUnl4TlFVRlBMRU5CUVVFc1RVRkJRU3hGUVVGUkxGVkJRVlVzVFVGQlR5eERRVUZCTEdGQlFVRXNSVUZCWlN4dlFrRkJkMElzU1VGQlFTeE5RVUZCTEVOQlFVOHNhVUpCUVdsQ0xFTkJRVUU3UVVGQlFTeExRVUZCTEVWQlEzcEhMSFZDUVVWSUxFdEJRVUVzUTBGQlFTeGhRVUZCTEVOQlFVRXNTMEZCUVN4RlFVRkJPMEZCUVVFc1RVRkJTU3hYUVVGWExFMUJRVThzUTBGQlFTeFZRVUZCTzBGQlFVRXNUVUZCV1N4bFFVRmhMRU5CUVRCRExIVkRRVUZCTEVWQlFVRXNVVUZCUVN4RFFVRkJMRU5CUVVFN1FVRkJRU3hMUVVONFJpeHJRa0ZCUVN4TFFVRkJMRU5CUVVFc1lVRkJRU3hEUVVGRExFMUJRMFVzUlVGQlFTeEpRVUZCTEVWQlFVRXNaMEpCUVVFc2JVSkJRVzlDTEV0QlFVRXNRMEZCUVN4aFFVRkJMRU5CUVVFc1VVRkJRU3hGUVVGQk8wRkJRVUVzVFVGQlV5eFJRVUZWTEVWQlFVRXNRMEZCUVN4RFFVRkJPMEZCUVVFc1RVRkJTU3hQUVVGQk8wRkJRVUVzVFVGQmEwSXNWMEZCVnl4TlFVRlBMRU5CUVVFc1VVRkJRVHRCUVVGQkxFdEJRVlVzUTBGQlN5eEhRVUZCTEVsQlFVRXNSVUZET1VZc1VVRkRTQ3hEUVVOR0xFTkJRMFlzUTBGQlFTeERRVUZCTzBGQlFVRXNSMEZGU2p0QlFVTkdMRVZCUVVFN1FVRkZRU3hOUVVGTkxGTkJRVUVzUjBGQldTeERRVUZETEV0QlFUQkNMRTFCUVVFN1FVRkJRU3hGUVVNelF5eFJRVUZSTEVkQlFVa3NRMEZCUVR0QlFVRkJMRWxCUTFZc1MwRkJUeXhGUVVGQkxIVkNRVUZCTzBGQlFVRXNTVUZEVUN4SFFVRkxMRVZCUVVFc1EwRkJRVHRCUVVGQkxFbEJRMHdzU1VGQlRTeEZRVUZCTEVOQlFVRTdRVUZCUVN4SlFVTk9MRXRCUVU4c1JVRkJRU3hOUVVGQk8wRkJRVUVzU1VGRFVDeFJRVUZWTEVWQlFVRXNWVUZCUVR0QlFVRkJMRWxCUTFZc1QwRkJRU3hGUVVGVExFdEJRVTBzUTBGQlFTeFBRVUZCTEVOQlFWRXNRMEZCUXl4RFFVRkJPMEZCUVVFc1NVRkRlRUlzVDBGQlV5eEZRVUZCTEUxQlFVRTdRVUZCUVN4SlFVTlVMRlZCUVZrc1JVRkJRU3hSUVVGQk8wRkJRVUVzU1VGRFdpeGhRVUZsTEVWQlFVRXNTMEZCUVR0QlFVRkJMRWxCUTJZc1ZVRkJXU3hGUVVGQkxFTkJRVUU3UVVGQlFTeEpRVU5hTEZWQlFWa3NSVUZCUVN4UlFVRkJPMEZCUVVFc1NVRkRXaXhOUVVGUkxFVkJRVUVzVTBGQlFUdEJRVUZCTEVsQlExSXNVMEZCVnl4RlFVRkJPMEZCUVVFc1RVRkRWQ3hWUVVGQkxFVkJRVmtzUzBGQlRTeERRVUZCTEUxQlFVRXNRMEZCVHl4TlFVRlBMRU5CUVVFc1MwRkJRVHRCUVVGQkxFMUJRMmhETERCRVFVRTBSQ3hGUVVGQk8wRkJRVUVzVVVGRE1VUXNUVUZCVVN4RlFVRkJMRU5CUVVFc1ZVRkJRU3hGUVVGaExFdEJRVTBzUTBGQlFTeE5RVUZCTEVOQlFVOHNUMEZCVVN4RFFVRkJMRTFCUVVFc1EwRkJRU3hEUVVGQk8wRkJRVUVzVDBGRE5VTTdRVUZCUVN4TFFVTkdPMEZCUVVFc1IwRkRSQ3hEUVVGQk8wRkJRVUVzUlVGRFJDeGxRVUZsTEVkQlFVa3NRMEZCUVR0QlFVRkJMRWxCUTJwQ0xFdEJRVThzUlVGQlFTd3JRa0ZCUVR0QlFVRkJMRWxCUTFBc1ZVRkJRU3hGUVVGWkxFdEJRVTBzUTBGQlFTeE5RVUZCTEVOQlFVOHNUVUZCVHl4RFFVRkJMRXRCUVVFN1FVRkJRU3hKUVVOb1F5d3dSRUZCTkVRc1JVRkJRVHRCUVVGQkxFMUJRekZFTEUxQlFWRXNSVUZCUVN4RFFVRkJMRlZCUVVFc1JVRkJZU3hMUVVGTkxFTkJRVUVzVFVGQlFTeERRVUZQTEU5QlFWRXNRMEZCUVN4TlFVRkJMRU5CUVVFc1EwRkJRVHRCUVVGQkxFdEJRelZETzBGQlFVRXNSMEZEUkN4RFFVRkJPMEZCUVVFc1JVRkRSQ3haUVVGWkxFZEJRVWtzUTBGQlFUdEJRVUZCTEVsQlEyUXNTMEZCVHl4RlFVRkJMRFJDUVVGQk8wRkJRVUVzU1VGRFVDeFBRVUZUTEVWQlFVRXNUVUZCUVR0QlFVRkJMRWxCUTFRc1ZVRkJRU3hGUVVGWkxFMUJRVTBzVlVGQlZ5eERRVUZCTEdkQ1FVRkJPMEZCUVVFc1NVRkROMElzWVVGQlpTeEZRVUZCTEZGQlFVRTdRVUZCUVN4SlFVTm1MRkZCUVZVc1JVRkJRU3hEUVVGQk8wRkJRVUVzUjBGRFdDeERRVUZCTzBGQlFVRXNSVUZEUkN4dFFrRkJiVUlzUjBGQlNTeERRVUZCTzBGQlFVRXNTVUZEY2tJc1dVRkJZeXhGUVVGQkxFTkJRVUVzVlVGQlFTeEZRVUZoTEV0QlFVMHNRMEZCUVN4TlFVRkJMRU5CUVU4c1RVRkJUeXhEUVVGQkxFbEJRVUVzUTBGQlFTeERRVUZCTzBGQlFVRXNSMEZEYUVRc1EwRkJRVHRCUVVGQkxFVkJRMFFzVlVGQlZTeEhRVUZKTEVOQlFVRTdRVUZCUVN4SlFVTmFMRmxCUVVFc1JVRkJZeXhMUVVGTkxFTkJRVUVzVDBGQlFTeERRVUZSTEVkQlFVY3NRMEZCUVR0QlFVRkJMRWRCUTJoRExFTkJRVUU3UVVGQlFTeEZRVU5FTEhkQ1FVRjNRaXhIUVVGSkxFTkJRVUU3UVVGQlFTeEpRVU14UWl4UlFVRlZMRVZCUVVFc1QwRkJRVHRCUVVGQkxFbEJRMVlzUjBGQlN5eEZRVUZCTEVOQlFVRTdRVUZCUVN4SlFVTk1MRWxCUVUwc1JVRkJRU3hEUVVGQk8wRkJRVUVzU1VGRFRpeFBRVUZUTEVWQlFVRXNUVUZCUVR0QlFVRkJMRWxCUTFRc1pVRkJRU3hGUVVGcFFpeExRVUZOTEVOQlFVRXNUVUZCUVN4RFFVRlBMRlZCUVZjc1EwRkJRU3hQUVVGQk8wRkJRVUVzU1VGRGVrTXNTMEZCUVN4RlFVRlBMRXRCUVUwc1EwRkJRU3hOUVVGQkxFTkJRVThzU1VGQlN5eERRVUZCTEU5QlFVRTdRVUZCUVN4SlFVTjZRaXhUUVVGQkxFVkJRVmNzVFVGQlRTeFBRVUZSTEVOQlFVRXNSVUZCUVR0QlFVRkJMRWxCUTNwQ0xGTkJRVmNzUlVGQlFTeE5RVUZCTzBGQlFVRXNTVUZEV0N4TlFVRkJMRVZCUVZFc1RVRkJUU3hOUVVGUExFTkJRVUVzVVVGQlFUdEJRVUZCTEVsQlEzSkNMRWRCUVVFc1JVRkJTeXhMUVVGTkxFTkJRVUVzVDBGQlFTeERRVUZSTEVkQlFVY3NRMEZCUVR0QlFVRkJMRWxCUTNSQ0xFOUJRVUVzUlVGQlV5eEhRVUZITEV0QlFVMHNRMEZCUVN4UFFVRkJMRU5CUVZFc1IwRkJSeXhEUVVGTExFTkJRVUVzUTBGQlFTeEZRVUZCTEV0QlFVRXNRMEZCVFN4UlFVRlJMRU5CUVVNc1EwRkJRU3hEUVVGQkxFTkJRVUU3UVVGQlFTeEhRVU5zUkN4RFFVRkJPMEZCUTBnc1EwRkJRU3hEUVVGQkxFTkJRVUU3UVVGRlR5eE5RVUZOTERSQ1FVRTBRaXhOUVVGTk8wRkJRemRETEVWQlFVRXNkVUpCUVZFc1MwRkJRU3hEUVVGQkxHRkJRVUVzUTBGQlFTeFpRVUZCTEVWQlFVRTdRVUZCUVN4SlFVRmhMRTlCUVZNc1JVRkJRU3hEUVVGRExFTkJRVTBzUzBGQlFTeERRVUZCTEVOQlFVVXNaVUZCWjBJc1JVRkJRVHRCUVVGQkxFZEJRVUVzUlVGQlJ5eHZRa0ZCYTBJc1EwRkJRU3hEUVVGQk8wRkJRemxGTEVWQlFVRTdRVUZGVHl4TlFVRk5MSFZDUVVGMVFpeE5RVUZOTzBGQlEzaERMRVZCUVVFc2RVSkJRVkVzUzBGQlFTeERRVUZCTEdGQlFVRXNRMEZCUVN4WlFVRkJMRVZCUVVFN1FVRkJRU3hKUVVGaExFOUJRVk1zUlVGQlFTeERRVUZETEVOQlFVMHNTMEZCUVN4RFFVRkJMRU5CUVVVc1pVRkJaMElzUlVGQlFUdEJRVUZCTEVkQlFVRXNSVUZCUnl4clFrRkJaMElzUTBGQlFTeERRVUZCTzBGQlF6VkZMRVZCUVVFN1FVRkZUeXhOUVVGTkxIVkNRVUV3UWl4SFFVRkJMRU5CUVVNc1JVRkJSU3hyUWtGQlFTeEZRVUUyUkN4TFFVRkJPMEZCUTNKSExFVkJRVUVzZFVKQlEwY3NTMEZCUVN4RFFVRkJMR0ZCUVVFc1EwRkJRU3haUVVGQkxFVkJRVUU3UVVGQlFTeEpRVUZoTEU5QlFWTXNSVUZCUVN4clFrRkJRVHRCUVVGQkxFZEJRVUVzUlVGQmIwSXNkVVJCUVhGRUxFTkJRVUVzUTBGQlFUdEJRVVZ3Unl4RlFVRkJPMEZCVTA4c1RVRkJUU3gzUWtGQmQwSXNRMEZCUXp0QlFVRkJMRVZCUTNCRExFOUJRVUU3UVVGQlFTeEZRVU5CTEdWQlFVRTdRVUZCUVN4RlFVTkJMR05CUVVFN1FVRkJRU3hGUVVOQkxGVkJRVUU3UVVGRFJpeERRVUZyUXl4TFFVRkJPMEZCUTJoRExFVkJRVTBzVFVGQlFTeE5RVUZCTEVkQlFWTXNWMEZCVnl4VFFVRlRMRU5CUVVFc1EwRkJRVHRCUVVWdVF5eEZRVUZCTEUxQlFVMHNjMEpCUVhOQ0xHVkJRV2xDTEVsQlFVRXNTVUZCUVN4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxHVkJRVUVzUTBGQlFTeHhRa0ZCUVN4RlFVRkJMRU5CUVVFN1FVRkROME1zUlVGQlFTeDFRa0ZEUnl4TFFVRkJMRU5CUVVFc1lVRkJRU3hEUVVGQkxFdEJRVUVzUlVGQlFUdEJRVUZCTEVsQlEwTXNWMEZCVnl4TlFVRlBMRU5CUVVFc2MwSkJRVUU3UVVGQlFTeEpRVU5zUWl4TFFVRlBMRVZCUVVFN1FVRkJRU3hOUVVOTUxFOUJRVThzUTBGQlJ5eEZRVUZCTEdOQlFVRXNRMEZCUVN4RlFVRkJMRU5CUVVFN1FVRkJRU3hOUVVOV0xGZEJRVmNzUTBGQllTeFZRVUZCTEVWQlFVRXNiVUpCUVVFc1NVRkJRU3hKUVVGQkxFZEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNiVUpCUVVFc1EwRkJjVUlzVlVGRE0wTXNiVUpCUVhOQ0xFZEJRVUVzYlVKQlFVRXNRMEZCYjBJc1RVRkJUU3hWUVVGaExFZEJRVUVzUTBGQlFTeERRVUZCTEVkQlFVRXNRMEZCUVR0QlFVRkJMRXRCUldwRk8wRkJRVUVzUjBGQlFTeHJRa0ZGUXl4TFFVRkJMRU5CUVVFc1lVRkJRU3hEUVVGQkxFMUJRVUVzUlVGQlFUdEJRVUZCTEVsQlFVOHNUMEZCVXl4RlFVRkJMRTlCUVVFN1FVRkJRU3hKUVVGVExFbEJRVXNzUlVGQlFTeEpRVUZCTzBGQlFVRXNTVUZCU3l4UlFVRlZMRVZCUVVFc1EwRkJRU3hEUVVGQk8wRkJRVUVzUjBGQlFTeEZRVUZKTEU5QlJXeEVMRU5CUTBZc1EwRkJRU3hEUVVGQk8wRkJSVW83T3pzN0luMD1cbiJdLCJuYW1lcyI6WyJEcm9wZG93bkl0ZW0iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBYU8sTUFBTSxZQUFlLEdBQUEsVUFBQTtFQUMxQixTQUFTQSxhQUFBQSxDQUFhLElBQWdGLEdBQUssRUFBQTtBQUFyRixJQUFBLElBQUEsS0FBQSxFQUFFLEVBQUEsRUFBVSxVQUFBLE1BQVEsRUFBQSxvQkFBQSxFQUFzQixrQkFBa0IsT0FkcEYsRUFBQSxHQWN3QixJQUF3RSxJQUFBLEdBQUEsU0FBQSxDQUF4RSxJQUF3RSxDQUF0RSxVQUFBLEVBQVUsVUFBUSxzQkFBc0IsRUFBQSxrQkFBQSxFQUFrQixTQUFBLENBQUEsQ0FBQSxDQUFBO0FBQzFFLElBQUEsTUFBQSxNQUFBLEdBQVMsV0FBVyxTQUFTLENBQUEsQ0FBQTtBQUNuQyxJQUFBLE1BQU0sS0FBSyxLQUFNLEVBQUEsQ0FBQTtBQUNqQixJQUNHLHVCQUFBLEtBQUEsQ0FBQSxhQUFBLENBQUEsS0FBQSxFQUFBLGNBQUEsQ0FBQTtBQUNDLE1BQUEsR0FBQTtNQUNBLElBQUssRUFBQSxRQUFBO0FBQ0wsTUFBQSxFQUFBO01BQ0EsZUFBZSxFQUFBLE1BQUE7TUFDZixTQUFXLEVBQUEsRUFBQSxDQUFHLE9BQU8sTUFBUSxFQUFBLE1BQUEsSUFBVSxPQUFPLGFBQWUsRUFBQSxvQkFBQSxJQUF3QixPQUFPLGlCQUFpQixDQUFBO0FBQUEsS0FBQSxFQUN6RyxJQUFBLENBQUEsa0JBRUgsS0FBQSxDQUFBLGFBQUEsQ0FBQSxLQUFBLEVBQUE7QUFBSSxNQUFBLFNBQUEsRUFBVyxNQUFPLENBQUEsVUFBQTtBQUFZLE1BQUEsYUFBQSxFQUFhLENBQTBDLHVDQUFBLEVBQUEsUUFBQSxDQUFBLENBQUE7QUFBQSxLQUFBLHdCQUN4RixhQUFDLENBQUEsTUFBQSxFQUNFLE1BQUEsZ0JBQW9CLG1CQUFBLEtBQUEsQ0FBQSxjQUFBLFFBQUEsRUFBQTtNQUFTLFFBQVUsRUFBQSxDQUFBLENBQUE7QUFBSSxNQUFBLE9BQUE7QUFBa0IsTUFBQSxTQUFBLEVBQVcsTUFBTyxDQUFBLFFBQUE7QUFBQSxLQUFVLENBQUssR0FBQSxJQUFBLEVBQzlGLFFBQ0gsQ0FDRixDQUNGLENBQUEsQ0FBQTtBQUFBLEdBQUE7QUFHTixFQUFBO0FBRUEsTUFBTSxTQUFBLEdBQVksQ0FBQyxLQUEwQixNQUFBO0FBQzNDLEVBQUEsTUFBQSxFQUFRLEdBQUksQ0FBQTtJQUNWLEtBQU8sRUFBQSx1QkFBQTtJQUNQLEdBQUssRUFBQSxDQUFBO0lBQ0wsSUFBTSxFQUFBLENBQUE7SUFDTixLQUFPLEVBQUEsTUFBQTtJQUNQLFFBQVUsRUFBQSxVQUFBO0lBQ1YsT0FBUyxFQUFBLEtBQUEsQ0FBTSxRQUFRLENBQUMsQ0FBQTtJQUN4QixPQUFTLEVBQUEsTUFBQTtJQUNULFVBQVksRUFBQSxRQUFBO0lBQ1osYUFBZSxFQUFBLEtBQUE7SUFDZixVQUFZLEVBQUEsQ0FBQTtJQUNaLFVBQVksRUFBQSxRQUFBO0lBQ1osTUFBUSxFQUFBLFNBQUE7SUFDUixTQUFXLEVBQUE7TUFDVCxVQUFZLEVBQUEsS0FBQSxDQUFNLE9BQU8sTUFBTyxDQUFBLEtBQUE7TUFDaEMsMERBQTRELEVBQUE7UUFDMUQsTUFBUSxFQUFBLENBQUEsVUFBQSxFQUFhLEtBQU0sQ0FBQSxNQUFBLENBQU8sT0FBUSxDQUFBLE1BQUEsQ0FBQSxDQUFBO0FBQUEsT0FBQTtBQUM1QyxLQUFBO0dBRUgsQ0FBQTtBQUNELEVBQUEsYUFBQSxFQUFlLEdBQUksQ0FBQTtJQUNqQixLQUFPLEVBQUEsK0JBQUE7SUFDUCxVQUFZLEVBQUEsS0FBQSxDQUFNLE9BQU8sTUFBTyxDQUFBLEtBQUE7SUFDaEMsMERBQTRELEVBQUE7TUFDMUQsTUFBUSxFQUFBLENBQUEsVUFBQSxFQUFhLEtBQU0sQ0FBQSxNQUFBLENBQU8sT0FBUSxDQUFBLE1BQUEsQ0FBQSxDQUFBO0FBQUEsS0FBQTtHQUU3QyxDQUFBO0FBQ0QsRUFBQSxVQUFBLEVBQVksR0FBSSxDQUFBO0lBQ2QsS0FBTyxFQUFBLDRCQUFBO0lBQ1AsT0FBUyxFQUFBLE1BQUE7QUFDVCxJQUFBLFVBQUEsRUFBWSxNQUFNLFVBQVcsQ0FBQSxnQkFBQTtJQUM3QixhQUFlLEVBQUEsUUFBQTtJQUNmLFFBQVUsRUFBQSxDQUFBO0dBQ1gsQ0FBQTtBQUNELEVBQUEsaUJBQUEsRUFBbUIsR0FBSSxDQUFBO0lBQ3JCLFlBQWMsRUFBQSxDQUFBLFVBQUEsRUFBYSxLQUFNLENBQUEsTUFBQSxDQUFPLE1BQU8sQ0FBQSxJQUFBLENBQUEsQ0FBQTtHQUNoRCxDQUFBO0FBQ0QsRUFBQSxRQUFBLEVBQVUsR0FBSSxDQUFBO0lBQ1osWUFBYyxFQUFBLEtBQUEsQ0FBTSxRQUFRLEdBQUcsQ0FBQTtHQUNoQyxDQUFBO0FBQ0QsRUFBQSxzQkFBQSxFQUF3QixHQUFJLENBQUE7SUFDMUIsUUFBVSxFQUFBLE9BQUE7SUFDVixHQUFLLEVBQUEsQ0FBQTtJQUNMLElBQU0sRUFBQSxDQUFBO0lBQ04sT0FBUyxFQUFBLE1BQUE7SUFDVCxlQUFpQixFQUFBLEtBQUEsQ0FBTSxPQUFPLFVBQVcsQ0FBQSxPQUFBO0lBQ3pDLEtBQU8sRUFBQSxLQUFBLENBQU0sT0FBTyxJQUFLLENBQUEsT0FBQTtBQUN6QixJQUFBLFNBQUEsRUFBVyxNQUFNLE9BQVEsQ0FBQSxFQUFBO0lBQ3pCLFNBQVcsRUFBQSxNQUFBO0FBQ1gsSUFBQSxNQUFBLEVBQVEsTUFBTSxNQUFPLENBQUEsUUFBQTtJQUNyQixHQUFLLEVBQUEsS0FBQSxDQUFNLFFBQVEsR0FBRyxDQUFBO0FBQ3RCLElBQUEsT0FBQSxFQUFTLEdBQUcsS0FBTSxDQUFBLE9BQUEsQ0FBUSxHQUFHLENBQUssQ0FBQSxDQUFBLEVBQUEsS0FBQSxDQUFNLFFBQVEsQ0FBQyxDQUFBLENBQUEsQ0FBQTtHQUNsRCxDQUFBO0FBQ0gsQ0FBQSxDQUFBLENBQUE7QUFFTyxNQUFNLDRCQUE0QixNQUFNO0FBQzdDLEVBQVEsdUJBQUEsS0FBQSxDQUFBLGNBQUEsWUFBQSxFQUFBO0lBQWEsT0FBUyxFQUFBLENBQUMsQ0FBTSxLQUFBLENBQUEsQ0FBRSxlQUFnQixFQUFBO0FBQUEsR0FBQSxFQUFHLG9CQUFrQixDQUFBLENBQUE7QUFDOUUsRUFBQTtBQUVPLE1BQU0sdUJBQXVCLE1BQU07QUFDeEMsRUFBUSx1QkFBQSxLQUFBLENBQUEsY0FBQSxZQUFBLEVBQUE7SUFBYSxPQUFTLEVBQUEsQ0FBQyxDQUFNLEtBQUEsQ0FBQSxDQUFFLGVBQWdCLEVBQUE7QUFBQSxHQUFBLEVBQUcsa0JBQWdCLENBQUEsQ0FBQTtBQUM1RSxFQUFBO0FBRU8sTUFBTSx1QkFBMEIsR0FBQSxDQUFDLEVBQUUsa0JBQUEsRUFBNkQsS0FBQTtBQUNyRyxFQUNHLHVCQUFBLEtBQUEsQ0FBQSxjQUFBLFlBQUEsRUFBQTtJQUFhLE9BQVMsRUFBQSxrQkFBQTtBQUFBLEdBQUEsRUFBb0IsdURBQXFELENBQUEsQ0FBQTtBQUVwRyxFQUFBO0FBU08sTUFBTSx3QkFBd0IsQ0FBQztBQUNwQyxFQUFBLE9BQUE7QUFDQSxFQUFBLGVBQUE7QUFDQSxFQUFBLGNBQUE7QUFDQSxFQUFBLFVBQUE7QUFDRixDQUFrQyxLQUFBO0FBQzFCLEVBQUEsTUFBQSxNQUFBLEdBQVMsV0FBVyxTQUFTLENBQUEsQ0FBQTtBQUVuQyxFQUFBLE1BQU0sbUJBQXNCLEdBQUEsZUFBQSxJQUFpQixJQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUEsZ0JBQUEscUJBQUEsRUFBQSxDQUFBO0FBQzdDLEVBQ0csdUJBQUEsS0FBQSxDQUFBLGNBQUEsS0FBQSxFQUFBO0FBQ0MsSUFBQSxTQUFBLEVBQVcsTUFBTyxDQUFBLHNCQUFBO0lBQ2xCLEtBQU8sRUFBQTtBQUNMLE1BQUEsS0FBQSxFQUFPLENBQUcsRUFBQSxjQUFBLENBQUEsRUFBQSxDQUFBO01BQ1YsU0FBVyxFQUFBLENBQUEsVUFBQSxFQUFhLHVCQUFBLElBQUEsR0FBQSxLQUFBLENBQUEsR0FBQSxvQkFBcUIsSUFDM0MsQ0FBQSxHQUFBLEVBQUEsbUJBQUEsR0FBc0IsbUJBQW9CLENBQUEsR0FBQSxHQUFNLFVBQWEsR0FBQSxDQUFBLENBQUEsR0FBQSxDQUFBO0FBQUEsS0FBQTtHQUloRSxrQkFBQSxLQUFBLENBQUEsY0FBQSxNQUFBLEVBQUE7SUFBTyxPQUFTLEVBQUEsT0FBQTtJQUFTLElBQUssRUFBQSxJQUFBO0lBQUssUUFBVSxFQUFBLENBQUEsQ0FBQTtBQUFBLEdBQUEsRUFBSSxPQUVsRCxDQUNGLENBQUEsQ0FBQTtBQUVKOzs7OyJ9
@@ -1,114 +0,0 @@
1
- import { cx, css } from '@emotion/css';
2
- import { useStyles2, Button, Icon } from '@grafana/ui';
3
- import React, { useCallback } from 'react';
4
-
5
- var __defProp = Object.defineProperty;
6
- var __defProps = Object.defineProperties;
7
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
8
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
9
- var __hasOwnProp = Object.prototype.hasOwnProperty;
10
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
- var __spreadValues = (a, b) => {
13
- for (var prop in b || (b = {}))
14
- if (__hasOwnProp.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- if (__getOwnPropSymbols)
17
- for (var prop of __getOwnPropSymbols(b)) {
18
- if (__propIsEnum.call(b, prop))
19
- __defNormalProp(a, prop, b[prop]);
20
- }
21
- return a;
22
- };
23
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
- const MultiValuePill = ({
25
- item,
26
- handleRemoveMultiValue,
27
- index,
28
- handleEditMultiValuePill
29
- }) => {
30
- var _a, _b;
31
- const styles = useStyles2(getStyles);
32
- const editMultiValuePill = useCallback(
33
- (e) => {
34
- e.stopPropagation();
35
- e.preventDefault();
36
- handleEditMultiValuePill(item);
37
- },
38
- [handleEditMultiValuePill, item]
39
- );
40
- const editMultiValuePillWithKeyboard = useCallback(
41
- (e) => {
42
- if (e.key === "Enter") {
43
- editMultiValuePill(e);
44
- }
45
- },
46
- [editMultiValuePill]
47
- );
48
- const removePillHandler = useCallback(
49
- (e) => {
50
- e.stopPropagation();
51
- e.preventDefault();
52
- handleRemoveMultiValue(item);
53
- },
54
- [handleRemoveMultiValue, item]
55
- );
56
- const removePillHandlerWithKeyboard = useCallback(
57
- (e) => {
58
- if (e.key === "Enter") {
59
- removePillHandler(e);
60
- }
61
- },
62
- [removePillHandler]
63
- );
64
- return /* @__PURE__ */ React.createElement("div", {
65
- className: cx(styles.basePill, styles.valuePill),
66
- onClick: editMultiValuePill,
67
- onKeyDown: editMultiValuePillWithKeyboard,
68
- tabIndex: 0,
69
- id: `${item.value}-${index}`
70
- }, (_a = item.label) != null ? _a : item.value, /* @__PURE__ */ React.createElement(Button, {
71
- onClick: removePillHandler,
72
- onKeyDownCapture: removePillHandlerWithKeyboard,
73
- fill: "text",
74
- size: "sm",
75
- variant: "secondary",
76
- className: styles.removeButton,
77
- tooltip: `Remove filter value - ${(_b = item.label) != null ? _b : item.value}`
78
- }, /* @__PURE__ */ React.createElement(Icon, {
79
- name: "times",
80
- size: "md",
81
- id: `${item.value}-${index}-close-icon`
82
- })));
83
- };
84
- const getStyles = (theme) => ({
85
- basePill: css(__spreadProps(__spreadValues({
86
- display: "flex",
87
- alignItems: "center",
88
- background: theme.colors.action.disabledBackground,
89
- border: `1px solid ${theme.colors.border.weak}`,
90
- padding: theme.spacing(0.125, 1, 0.125, 1),
91
- color: theme.colors.text.primary,
92
- overflow: "hidden",
93
- whiteSpace: "nowrap",
94
- minHeight: theme.spacing(2.75)
95
- }, theme.typography.bodySmall), {
96
- cursor: "pointer"
97
- })),
98
- valuePill: css({
99
- background: theme.colors.action.selected,
100
- padding: theme.spacing(0.125, 0, 0.125, 1)
101
- }),
102
- removeButton: css({
103
- marginInline: theme.spacing(0.5),
104
- height: "100%",
105
- padding: 0,
106
- cursor: "pointer",
107
- "&:hover": {
108
- color: theme.colors.text.primary
109
- }
110
- })
111
- });
112
-
113
- export { MultiValuePill };
114
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTXVsdGlWYWx1ZVBpbGwuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3ZhcmlhYmxlcy9hZGhvYy9BZEhvY0ZpbHRlcnNDb21ib2JveC9NdWx0aVZhbHVlUGlsbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjeCwgY3NzIH0gZnJvbSAnQGVtb3Rpb24vY3NzJztcbmltcG9ydCB7IHVzZVN0eWxlczIsIEJ1dHRvbiwgSWNvbiB9IGZyb20gJ0BncmFmYW5hL3VpJztcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0JztcblxudmFyIF9fZGVmUHJvcCA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcbnZhciBfX2RlZlByb3BzID0gT2JqZWN0LmRlZmluZVByb3BlcnRpZXM7XG52YXIgX19nZXRPd25Qcm9wRGVzY3MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycztcbnZhciBfX2dldE93blByb3BTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcbnZhciBfX2hhc093blByb3AgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xudmFyIF9fcHJvcElzRW51bSA9IE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGU7XG52YXIgX19kZWZOb3JtYWxQcm9wID0gKG9iaiwga2V5LCB2YWx1ZSkgPT4ga2V5IGluIG9iaiA/IF9fZGVmUHJvcChvYmosIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlLCB2YWx1ZSB9KSA6IG9ialtrZXldID0gdmFsdWU7XG52YXIgX19zcHJlYWRWYWx1ZXMgPSAoYSwgYikgPT4ge1xuICBmb3IgKHZhciBwcm9wIGluIGIgfHwgKGIgPSB7fSkpXG4gICAgaWYgKF9faGFzT3duUHJvcC5jYWxsKGIsIHByb3ApKVxuICAgICAgX19kZWZOb3JtYWxQcm9wKGEsIHByb3AsIGJbcHJvcF0pO1xuICBpZiAoX19nZXRPd25Qcm9wU3ltYm9scylcbiAgICBmb3IgKHZhciBwcm9wIG9mIF9fZ2V0T3duUHJvcFN5bWJvbHMoYikpIHtcbiAgICAgIGlmIChfX3Byb3BJc0VudW0uY2FsbChiLCBwcm9wKSlcbiAgICAgICAgX19kZWZOb3JtYWxQcm9wKGEsIHByb3AsIGJbcHJvcF0pO1xuICAgIH1cbiAgcmV0dXJuIGE7XG59O1xudmFyIF9fc3ByZWFkUHJvcHMgPSAoYSwgYikgPT4gX19kZWZQcm9wcyhhLCBfX2dldE93blByb3BEZXNjcyhiKSk7XG5jb25zdCBNdWx0aVZhbHVlUGlsbCA9ICh7XG4gIGl0ZW0sXG4gIGhhbmRsZVJlbW92ZU11bHRpVmFsdWUsXG4gIGluZGV4LFxuICBoYW5kbGVFZGl0TXVsdGlWYWx1ZVBpbGxcbn0pID0+IHtcbiAgdmFyIF9hLCBfYjtcbiAgY29uc3Qgc3R5bGVzID0gdXNlU3R5bGVzMihnZXRTdHlsZXMpO1xuICBjb25zdCBlZGl0TXVsdGlWYWx1ZVBpbGwgPSB1c2VDYWxsYmFjayhcbiAgICAoZSkgPT4ge1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGhhbmRsZUVkaXRNdWx0aVZhbHVlUGlsbChpdGVtKTtcbiAgICB9LFxuICAgIFtoYW5kbGVFZGl0TXVsdGlWYWx1ZVBpbGwsIGl0ZW1dXG4gICk7XG4gIGNvbnN0IGVkaXRNdWx0aVZhbHVlUGlsbFdpdGhLZXlib2FyZCA9IHVzZUNhbGxiYWNrKFxuICAgIChlKSA9PiB7XG4gICAgICBpZiAoZS5rZXkgPT09IFwiRW50ZXJcIikge1xuICAgICAgICBlZGl0TXVsdGlWYWx1ZVBpbGwoZSk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbZWRpdE11bHRpVmFsdWVQaWxsXVxuICApO1xuICBjb25zdCByZW1vdmVQaWxsSGFuZGxlciA9IHVzZUNhbGxiYWNrKFxuICAgIChlKSA9PiB7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgaGFuZGxlUmVtb3ZlTXVsdGlWYWx1ZShpdGVtKTtcbiAgICB9LFxuICAgIFtoYW5kbGVSZW1vdmVNdWx0aVZhbHVlLCBpdGVtXVxuICApO1xuICBjb25zdCByZW1vdmVQaWxsSGFuZGxlcldpdGhLZXlib2FyZCA9IHVzZUNhbGxiYWNrKFxuICAgIChlKSA9PiB7XG4gICAgICBpZiAoZS5rZXkgPT09IFwiRW50ZXJcIikge1xuICAgICAgICByZW1vdmVQaWxsSGFuZGxlcihlKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtyZW1vdmVQaWxsSGFuZGxlcl1cbiAgKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICBjbGFzc05hbWU6IGN4KHN0eWxlcy5iYXNlUGlsbCwgc3R5bGVzLnZhbHVlUGlsbCksXG4gICAgb25DbGljazogZWRpdE11bHRpVmFsdWVQaWxsLFxuICAgIG9uS2V5RG93bjogZWRpdE11bHRpVmFsdWVQaWxsV2l0aEtleWJvYXJkLFxuICAgIHRhYkluZGV4OiAwLFxuICAgIGlkOiBgJHtpdGVtLnZhbHVlfS0ke2luZGV4fWBcbiAgfSwgKF9hID0gaXRlbS5sYWJlbCkgIT0gbnVsbCA/IF9hIDogaXRlbS52YWx1ZSwgLyogQF9fUFVSRV9fICovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQnV0dG9uLCB7XG4gICAgb25DbGljazogcmVtb3ZlUGlsbEhhbmRsZXIsXG4gICAgb25LZXlEb3duQ2FwdHVyZTogcmVtb3ZlUGlsbEhhbmRsZXJXaXRoS2V5Ym9hcmQsXG4gICAgZmlsbDogXCJ0ZXh0XCIsXG4gICAgc2l6ZTogXCJzbVwiLFxuICAgIHZhcmlhbnQ6IFwic2Vjb25kYXJ5XCIsXG4gICAgY2xhc3NOYW1lOiBzdHlsZXMucmVtb3ZlQnV0dG9uLFxuICAgIHRvb2x0aXA6IGBSZW1vdmUgZmlsdGVyIHZhbHVlIC0gJHsoX2IgPSBpdGVtLmxhYmVsKSAhPSBudWxsID8gX2IgOiBpdGVtLnZhbHVlfWBcbiAgfSwgLyogQF9fUFVSRV9fICovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbiwge1xuICAgIG5hbWU6IFwidGltZXNcIixcbiAgICBzaXplOiBcIm1kXCIsXG4gICAgaWQ6IGAke2l0ZW0udmFsdWV9LSR7aW5kZXh9LWNsb3NlLWljb25gXG4gIH0pKSk7XG59O1xuY29uc3QgZ2V0U3R5bGVzID0gKHRoZW1lKSA9PiAoe1xuICBiYXNlUGlsbDogY3NzKF9fc3ByZWFkUHJvcHMoX19zcHJlYWRWYWx1ZXMoe1xuICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG4gICAgYmFja2dyb3VuZDogdGhlbWUuY29sb3JzLmFjdGlvbi5kaXNhYmxlZEJhY2tncm91bmQsXG4gICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7dGhlbWUuY29sb3JzLmJvcmRlci53ZWFrfWAsXG4gICAgcGFkZGluZzogdGhlbWUuc3BhY2luZygwLjEyNSwgMSwgMC4xMjUsIDEpLFxuICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMudGV4dC5wcmltYXJ5LFxuICAgIG92ZXJmbG93OiBcImhpZGRlblwiLFxuICAgIHdoaXRlU3BhY2U6IFwibm93cmFwXCIsXG4gICAgbWluSGVpZ2h0OiB0aGVtZS5zcGFjaW5nKDIuNzUpXG4gIH0sIHRoZW1lLnR5cG9ncmFwaHkuYm9keVNtYWxsKSwge1xuICAgIGN1cnNvcjogXCJwb2ludGVyXCJcbiAgfSkpLFxuICB2YWx1ZVBpbGw6IGNzcyh7XG4gICAgYmFja2dyb3VuZDogdGhlbWUuY29sb3JzLmFjdGlvbi5zZWxlY3RlZCxcbiAgICBwYWRkaW5nOiB0aGVtZS5zcGFjaW5nKDAuMTI1LCAwLCAwLjEyNSwgMSlcbiAgfSksXG4gIHJlbW92ZUJ1dHRvbjogY3NzKHtcbiAgICBtYXJnaW5JbmxpbmU6IHRoZW1lLnNwYWNpbmcoMC41KSxcbiAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgIHBhZGRpbmc6IDAsXG4gICAgY3Vyc29yOiBcInBvaW50ZXJcIixcbiAgICBcIiY6aG92ZXJcIjoge1xuICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy50ZXh0LnByaW1hcnlcbiAgICB9XG4gIH0pXG59KTtcblxuZXhwb3J0IHsgTXVsdGlWYWx1ZVBpbGwgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pVFhWc2RHbFdZV3gxWlZCcGJHd3Vhbk1pTENKemIzVnlZMlZ6SWpwYklpNHVMeTR1THk0dUx5NHVMeTR1TDNOeVl5OTJZWEpwWVdKc1pYTXZZV1JvYjJNdlFXUkliMk5HYVd4MFpYSnpRMjl0WW05aWIzZ3ZUWFZzZEdsV1lXeDFaVkJwYkd3dWRITjRJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3SUdONExDQmpjM01nZlNCbWNtOXRJQ2RBWlcxdmRHbHZiaTlqYzNNbk8xeHVhVzF3YjNKMElIc2dVMlZzWldOMFlXSnNaVlpoYkhWbExDQkhjbUZtWVc1aFZHaGxiV1V5SUgwZ1puSnZiU0FuUUdkeVlXWmhibUV2WkdGMFlTYzdYRzVwYlhCdmNuUWdleUIxYzJWVGRIbHNaWE15TENCQ2RYUjBiMjRzSUVsamIyNGdmU0JtY205dElDZEFaM0poWm1GdVlTOTFhU2M3WEc1cGJYQnZjblFnVW1WaFkzUXNJSHNnZFhObFEyRnNiR0poWTJzZ2ZTQm1jbTl0SUNkeVpXRmpkQ2M3WEc1Y2JtbHVkR1Z5Wm1GalpTQk5kV3gwYVZaaGJIVmxVR2xzYkZCeWIzQnpJSHRjYmlBZ2FYUmxiVG9nVTJWc1pXTjBZV0pzWlZaaGJIVmxQSE4wY21sdVp6NDdYRzRnSUdoaGJtUnNaVkpsYlc5MlpVMTFiSFJwVm1Gc2RXVTZJQ2hwZEdWdE9pQlRaV3hsWTNSaFlteGxWbUZzZFdVOGMzUnlhVzVuUGlrZ1BUNGdkbTlwWkR0Y2JpQWdhVzVrWlhnNklHNTFiV0psY2p0Y2JpQWdhR0Z1Wkd4bFJXUnBkRTExYkhScFZtRnNkV1ZRYVd4c09pQW9kbUZzZFdVNklGTmxiR1ZqZEdGaWJHVldZV3gxWlR4emRISnBibWMrS1NBOVBpQjJiMmxrTzF4dWZWeHVaWGh3YjNKMElHTnZibk4wSUUxMWJIUnBWbUZzZFdWUWFXeHNJRDBnS0h0Y2JpQWdhWFJsYlN4Y2JpQWdhR0Z1Wkd4bFVtVnRiM1psVFhWc2RHbFdZV3gxWlN4Y2JpQWdhVzVrWlhnc1hHNGdJR2hoYm1Sc1pVVmthWFJOZFd4MGFWWmhiSFZsVUdsc2JDeGNibjA2SUUxMWJIUnBWbUZzZFdWUWFXeHNVSEp2Y0hNcElEMCtJSHRjYmlBZ1kyOXVjM1FnYzNSNWJHVnpJRDBnZFhObFUzUjViR1Z6TWloblpYUlRkSGxzWlhNcE8xeHVYRzRnSUdOdmJuTjBJR1ZrYVhSTmRXeDBhVlpoYkhWbFVHbHNiQ0E5SUhWelpVTmhiR3hpWVdOcktGeHVJQ0FnSUNobE9pQlNaV0ZqZEM1VGVXNTBhR1YwYVdORmRtVnVkQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ1pTNXpkRzl3VUhKdmNHRm5ZWFJwYjI0b0tUdGNiaUFnSUNBZ0lHVXVjSEpsZG1WdWRFUmxabUYxYkhRb0tUdGNiaUFnSUNBZ0lHaGhibVJzWlVWa2FYUk5kV3gwYVZaaGJIVmxVR2xzYkNocGRHVnRLVHRjYmlBZ0lDQjlMRnh1SUNBZ0lGdG9ZVzVrYkdWRlpHbDBUWFZzZEdsV1lXeDFaVkJwYkd3c0lHbDBaVzFkWEc0Z0lDazdYRzVjYmlBZ1kyOXVjM1FnWldScGRFMTFiSFJwVm1Gc2RXVlFhV3hzVjJsMGFFdGxlV0p2WVhKa0lEMGdkWE5sUTJGc2JHSmhZMnNvWEc0Z0lDQWdLR1U2SUZKbFlXTjBMa3RsZVdKdllYSmtSWFpsYm5RcElEMCtJSHRjYmlBZ0lDQWdJR2xtSUNobExtdGxlU0E5UFQwZ0owVnVkR1Z5SnlrZ2UxeHVJQ0FnSUNBZ0lDQmxaR2wwVFhWc2RHbFdZV3gxWlZCcGJHd29aU2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmU3hjYmlBZ0lDQmJaV1JwZEUxMWJIUnBWbUZzZFdWUWFXeHNYVnh1SUNBcE8xeHVYRzRnSUdOdmJuTjBJSEpsYlc5MlpWQnBiR3hJWVc1a2JHVnlJRDBnZFhObFEyRnNiR0poWTJzb1hHNGdJQ0FnS0dVNklGSmxZV04wTGxONWJuUm9aWFJwWTBWMlpXNTBLU0E5UGlCN1hHNGdJQ0FnSUNCbExuTjBiM0JRY205d1lXZGhkR2x2YmlncE8xeHVJQ0FnSUNBZ1pTNXdjbVYyWlc1MFJHVm1ZWFZzZENncE8xeHVJQ0FnSUNBZ2FHRnVaR3hsVW1WdGIzWmxUWFZzZEdsV1lXeDFaU2hwZEdWdEtUdGNiaUFnSUNCOUxGeHVJQ0FnSUZ0b1lXNWtiR1ZTWlcxdmRtVk5kV3gwYVZaaGJIVmxMQ0JwZEdWdFhWeHVJQ0FwTzF4dVhHNGdJR052Ym5OMElISmxiVzkyWlZCcGJHeElZVzVrYkdWeVYybDBhRXRsZVdKdllYSmtJRDBnZFhObFEyRnNiR0poWTJzb1hHNGdJQ0FnS0dVNklGSmxZV04wTGt0bGVXSnZZWEprUlhabGJuUXBJRDArSUh0Y2JpQWdJQ0FnSUdsbUlDaGxMbXRsZVNBOVBUMGdKMFZ1ZEdWeUp5a2dlMXh1SUNBZ0lDQWdJQ0J5WlcxdmRtVlFhV3hzU0dGdVpHeGxjaWhsS1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5TEZ4dUlDQWdJRnR5WlcxdmRtVlFhV3hzU0dGdVpHeGxjbDFjYmlBZ0tUdGNibHh1SUNCeVpYUjFjbTRnS0Z4dUlDQWdJRHhrYVhaY2JpQWdJQ0FnSUdOc1lYTnpUbUZ0WlQxN1kzZ29jM1I1YkdWekxtSmhjMlZRYVd4c0xDQnpkSGxzWlhNdWRtRnNkV1ZRYVd4c0tYMWNiaUFnSUNBZ0lHOXVRMnhwWTJzOWUyVmthWFJOZFd4MGFWWmhiSFZsVUdsc2JIMWNiaUFnSUNBZ0lHOXVTMlY1Ukc5M2JqMTdaV1JwZEUxMWJIUnBWbUZzZFdWUWFXeHNWMmwwYUV0bGVXSnZZWEprZlZ4dUlDQWdJQ0FnZEdGaVNXNWtaWGc5ZXpCOVhHNGdJQ0FnSUNCcFpEMTdZQ1I3YVhSbGJTNTJZV3gxWlgwdEpIdHBibVJsZUgxZ2ZWeHVJQ0FnSUQ1Y2JpQWdJQ0FnSUh0cGRHVnRMbXhoWW1Wc0lEOC9JR2wwWlcwdWRtRnNkV1Y5WEc0Z0lDQWdJQ0E4UW5WMGRHOXVYRzRnSUNBZ0lDQWdJRzl1UTJ4cFkyczllM0psYlc5MlpWQnBiR3hJWVc1a2JHVnlmVnh1SUNBZ0lDQWdJQ0J2Ymt0bGVVUnZkMjVEWVhCMGRYSmxQWHR5WlcxdmRtVlFhV3hzU0dGdVpHeGxjbGRwZEdoTFpYbGliMkZ5WkgxY2JpQWdJQ0FnSUNBZ1ptbHNiRDFjSW5SbGVIUmNJbHh1SUNBZ0lDQWdJQ0J6YVhwbFBWd2ljMjFjSWx4dUlDQWdJQ0FnSUNCMllYSnBZVzUwUFZ3aWMyVmpiMjVrWVhKNVhDSmNiaUFnSUNBZ0lDQWdZMnhoYzNOT1lXMWxQWHR6ZEhsc1pYTXVjbVZ0YjNabFFuVjBkRzl1ZlZ4dUlDQWdJQ0FnSUNCMGIyOXNkR2x3UFh0Z1VtVnRiM1psSUdacGJIUmxjaUIyWVd4MVpTQXRJQ1I3YVhSbGJTNXNZV0psYkNBL1B5QnBkR1Z0TG5aaGJIVmxmV0I5WEc0Z0lDQWdJQ0ErWEc0Z0lDQWdJQ0FnSUR4SlkyOXVJRzVoYldVOVhDSjBhVzFsYzF3aUlITnBlbVU5WENKdFpGd2lJR2xrUFh0Z0pIdHBkR1Z0TG5aaGJIVmxmUzBrZTJsdVpHVjRmUzFqYkc5elpTMXBZMjl1WUgwZ0x6NWNiaUFnSUNBZ0lEd3ZRblYwZEc5dVBseHVJQ0FnSUR3dlpHbDJQbHh1SUNBcE8xeHVmVHRjYmx4dVkyOXVjM1FnWjJWMFUzUjViR1Z6SUQwZ0tIUm9aVzFsT2lCSGNtRm1ZVzVoVkdobGJXVXlLU0E5UGlBb2UxeHVJQ0JpWVhObFVHbHNiRG9nWTNOektIdGNiaUFnSUNCa2FYTndiR0Y1T2lBblpteGxlQ2NzWEc0Z0lDQWdZV3hwWjI1SmRHVnRjem9nSjJObGJuUmxjaWNzWEc0Z0lDQWdZbUZqYTJkeWIzVnVaRG9nZEdobGJXVXVZMjlzYjNKekxtRmpkR2x2Ymk1a2FYTmhZbXhsWkVKaFkydG5jbTkxYm1Rc1hHNGdJQ0FnWW05eVpHVnlPaUJnTVhCNElITnZiR2xrSUNSN2RHaGxiV1V1WTI5c2IzSnpMbUp2Y21SbGNpNTNaV0ZyZldBc1hHNGdJQ0FnY0dGa1pHbHVaem9nZEdobGJXVXVjM0JoWTJsdVp5Z3dMakV5TlN3Z01Td2dNQzR4TWpVc0lERXBMRnh1SUNBZ0lHTnZiRzl5T2lCMGFHVnRaUzVqYjJ4dmNuTXVkR1Y0ZEM1d2NtbHRZWEo1TEZ4dUlDQWdJRzkyWlhKbWJHOTNPaUFuYUdsa1pHVnVKeXhjYmlBZ0lDQjNhR2wwWlZOd1lXTmxPaUFuYm05M2NtRndKeXhjYmlBZ0lDQnRhVzVJWldsbmFIUTZJSFJvWlcxbExuTndZV05wYm1jb01pNDNOU2tzWEc0Z0lDQWdMaTR1ZEdobGJXVXVkSGx3YjJkeVlYQm9lUzVpYjJSNVUyMWhiR3dzWEc0Z0lDQWdZM1Z5YzI5eU9pQW5jRzlwYm5SbGNpY3NYRzRnSUgwcExGeHVJQ0IyWVd4MVpWQnBiR3c2SUdOemN5aDdYRzRnSUNBZ1ltRmphMmR5YjNWdVpEb2dkR2hsYldVdVkyOXNiM0p6TG1GamRHbHZiaTV6Wld4bFkzUmxaQ3hjYmlBZ0lDQndZV1JrYVc1bk9pQjBhR1Z0WlM1emNHRmphVzVuS0RBdU1USTFMQ0F3TENBd0xqRXlOU3dnTVNrc1hHNGdJSDBwTEZ4dUlDQnlaVzF2ZG1WQ2RYUjBiMjQ2SUdOemN5aDdYRzRnSUNBZ2JXRnlaMmx1U1c1c2FXNWxPaUIwYUdWdFpTNXpjR0ZqYVc1bktEQXVOU2tzWEc0Z0lDQWdhR1ZwWjJoME9pQW5NVEF3SlNjc1hHNGdJQ0FnY0dGa1pHbHVaem9nTUN4Y2JpQWdJQ0JqZFhKemIzSTZJQ2R3YjJsdWRHVnlKeXhjYmlBZ0lDQW5KanBvYjNabGNpYzZJSHRjYmlBZ0lDQWdJR052Ykc5eU9pQjBhR1Z0WlM1amIyeHZjbk11ZEdWNGRDNXdjbWx0WVhKNUxGeHVJQ0FnSUgwc1hHNGdJSDBwTEZ4dWZTazdYRzRpWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN1FVRlhUeXhOUVVGTkxHbENRVUZwUWl4RFFVRkRPMEZCUVVFc1JVRkROMElzU1VGQlFUdEJRVUZCTEVWQlEwRXNjMEpCUVVFN1FVRkJRU3hGUVVOQkxFdEJRVUU3UVVGQlFTeEZRVU5CTEhkQ1FVRkJPMEZCUTBZc1EwRkJNa0lzUzBGQlFUdEJRV2hDTTBJc1JVRkJRU3hKUVVGQkxFVkJRVUVzUlVGQlFTeEZRVUZCTEVOQlFVRTdRVUZwUWtVc1JVRkJUU3hOUVVGQkxFMUJRVUVzUjBGQlV5eFhRVUZYTEZOQlFWTXNRMEZCUVN4RFFVRkJPMEZCUlc1RExFVkJRVUVzVFVGQlRTeHJRa0ZCY1VJc1IwRkJRU3hYUVVGQk8wRkJRVUVzU1VGRGVrSXNRMEZCUXl4RFFVRTBRaXhMUVVGQk8wRkJRek5DTEUxQlFVRXNRMEZCUVN4RFFVRkZMR1ZCUVdkQ0xFVkJRVUVzUTBGQlFUdEJRVU5zUWl4TlFVRkJMRU5CUVVFc1EwRkJSU3hqUVVGbExFVkJRVUVzUTBGQlFUdEJRVU5xUWl4TlFVRkJMSGRDUVVGQkxFTkJRWGxDTEVsQlFVa3NRMEZCUVN4RFFVRkJPMEZCUVVFc1MwRkRMMEk3UVVGQlFTeEpRVU5CTEVOQlFVTXNNRUpCUVRCQ0xFbEJRVWtzUTBGQlFUdEJRVUZCTEVkQlEycERMRU5CUVVFN1FVRkZRU3hGUVVGQkxFMUJRVTBzT0VKQlFXbERMRWRCUVVFc1YwRkJRVHRCUVVGQkxFbEJRM0pETEVOQlFVTXNRMEZCTWtJc1MwRkJRVHRCUVVNeFFpeE5RVUZKTEVsQlFVRXNRMEZCUVN4RFFVRkZMRkZCUVZFc1QwRkJVeXhGUVVGQk8wRkJRM0pDTEZGQlFVRXNhMEpCUVVFc1EwRkJiVUlzUTBGQlF5eERRVUZCTEVOQlFVRTdRVUZCUVN4UFFVTjBRanRCUVVGQkxFdEJRMFk3UVVGQlFTeEpRVU5CTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVUU3UVVGQlFTeEhRVU55UWl4RFFVRkJPMEZCUlVFc1JVRkJRU3hOUVVGTkxHbENRVUZ2UWl4SFFVRkJMRmRCUVVFN1FVRkJRU3hKUVVONFFpeERRVUZETEVOQlFUUkNMRXRCUVVFN1FVRkRNMElzVFVGQlFTeERRVUZCTEVOQlFVVXNaVUZCWjBJc1JVRkJRU3hEUVVGQk8wRkJRMnhDTEUxQlFVRXNRMEZCUVN4RFFVRkZMR05CUVdVc1JVRkJRU3hEUVVGQk8wRkJRMnBDTEUxQlFVRXNjMEpCUVVFc1EwRkJkVUlzU1VGQlNTeERRVUZCTEVOQlFVRTdRVUZCUVN4TFFVTTNRanRCUVVGQkxFbEJRMEVzUTBGQlF5eDNRa0ZCZDBJc1NVRkJTU3hEUVVGQk8wRkJRVUVzUjBGREwwSXNRMEZCUVR0QlFVVkJMRVZCUVVFc1RVRkJUU3cyUWtGQlowTXNSMEZCUVN4WFFVRkJPMEZCUVVFc1NVRkRjRU1zUTBGQlF5eERRVUV5UWl4TFFVRkJPMEZCUXpGQ0xFMUJRVWtzU1VGQlFTeERRVUZCTEVOQlFVVXNVVUZCVVN4UFFVRlRMRVZCUVVFN1FVRkRja0lzVVVGQlFTeHBRa0ZCUVN4RFFVRnJRaXhEUVVGRExFTkJRVUVzUTBGQlFUdEJRVUZCTEU5QlEzSkNPMEZCUVVFc1MwRkRSanRCUVVGQkxFbEJRMEVzUTBGQlF5eHBRa0ZCYVVJc1EwRkJRVHRCUVVGQkxFZEJRM0JDTEVOQlFVRTdRVUZGUVN4RlFVRkJMSFZDUVVOSExFdEJRVUVzUTBGQlFTeGhRVUZCTEVOQlFVRXNTMEZCUVN4RlFVRkJPMEZCUVVFc1NVRkRReXhUUVVGWExFVkJRVUVzUlVGQlFTeERRVUZITEUxQlFVOHNRMEZCUVN4UlFVRkJMRVZCUVZVc1QwRkJUeXhUUVVGVExFTkJRVUU3UVVGQlFTeEpRVU12UXl4UFFVRlRMRVZCUVVFc2EwSkJRVUU3UVVGQlFTeEpRVU5VTEZOQlFWY3NSVUZCUVN3NFFrRkJRVHRCUVVGQkxFbEJRMWdzVVVGQlZTeEZRVUZCTEVOQlFVRTdRVUZCUVN4SlFVTldMRVZCUVVFc1JVRkJTU3hEUVVGSExFVkJRVUVzU1VGQlFTeERRVUZMTEV0QlFWTXNRMEZCUVN4RFFVRkJMRVZCUVVFc1MwRkJRU3hEUVVGQkxFTkJRVUU3UVVGQlFTeEhRVUZCTEVWQlFVRXNRMEZGY0VJc1JVRkJTeXhIUVVGQkxFbEJRVUVzUTBGQlFTeExRVUZCTEV0QlFVd3NTVUZCWXl4SFFVRkJMRVZCUVVFc1IwRkJRU3hKUVVGQkxFTkJRVXNzZFVKQlEyNUNMRXRCUVVFc1EwRkJRU3hoUVVGQkxFTkJRVUVzVFVGQlFTeEZRVUZCTzBGQlFVRXNTVUZEUXl4UFFVRlRMRVZCUVVFc2FVSkJRVUU3UVVGQlFTeEpRVU5VTEdkQ1FVRnJRaXhGUVVGQkxEWkNRVUZCTzBGQlFVRXNTVUZEYkVJc1NVRkJTeXhGUVVGQkxFMUJRVUU3UVVGQlFTeEpRVU5NTEVsQlFVc3NSVUZCUVN4SlFVRkJPMEZCUVVFc1NVRkRUQ3hQUVVGUkxFVkJRVUVzVjBGQlFUdEJRVUZCTEVsQlExSXNWMEZCVnl4TlFVRlBMRU5CUVVFc1dVRkJRVHRCUVVGQkxFbEJRMnhDTEU5QlFWTXNSVUZCUVN4RFFVRkJMSE5DUVVGQkxFVkJRVUVzUTBGQmVVSXNSVUZCU3l4SFFVRkJMRWxCUVVFc1EwRkJRU3hMUVVGQkxFdEJRVXdzV1VGQll5eEpRVUZMTEVOQlFVRXNTMEZCUVN4RFFVRkJMRU5CUVVFN1FVRkJRU3hIUVVGQkxHdENRVVZ3UkN4TFFVRkJMRU5CUVVFc1lVRkJRU3hEUVVGQkxFbEJRVUVzUlVGQlFUdEJRVUZCTEVsQlFVc3NTVUZCU3l4RlFVRkJMRTlCUVVFN1FVRkJRU3hKUVVGUkxFbEJRVXNzUlVGQlFTeEpRVUZCTzBGQlFVRXNTVUZCU3l4RlFVRkJMRVZCUVVrc1EwRkJSeXhGUVVGQkxFbEJRVUVzUTBGQlN5eExRVUZUTEVOQlFVRXNRMEZCUVN4RlFVRkJMRXRCUVVFc1EwRkJRU3hYUVVGQkxFTkJRVUU3UVVGQlFTeEhRVUZ2UWl4RFFVTjRSU3hEUVVOR0xFTkJRVUVzUTBGQlFUdEJRVVZLTEVWQlFVRTdRVUZGUVN4TlFVRk5MRk5CUVVFc1IwRkJXU3hEUVVGRExFdEJRVEJDTEUxQlFVRTdRVUZCUVN4RlFVTXpReXhWUVVGVkxFZEJRVWtzUTBGQlFTeGhRVUZCTEVOQlFVRXNZMEZCUVN4RFFVRkJPMEZCUVVFc1NVRkRXaXhQUVVGVExFVkJRVUVzVFVGQlFUdEJRVUZCTEVsQlExUXNWVUZCV1N4RlFVRkJMRkZCUVVFN1FVRkJRU3hKUVVOYUxGVkJRVUVzUlVGQldTeExRVUZOTEVOQlFVRXNUVUZCUVN4RFFVRlBMRTFCUVU4c1EwRkJRU3hyUWtGQlFUdEJRVUZCTEVsQlEyaERMRTFCUVZFc1JVRkJRU3hEUVVGQkxGVkJRVUVzUlVGQllTeExRVUZOTEVOQlFVRXNUVUZCUVN4RFFVRlBMRTFCUVU4c1EwRkJRU3hKUVVGQkxFTkJRVUVzUTBGQlFUdEJRVUZCTEVsQlEzcERMRk5CUVZNc1MwRkJUU3hEUVVGQkxFOUJRVUVzUTBGQlVTeExRVUZQTEVWQlFVRXNRMEZCUVN4RlFVRkhMRTlCUVU4c1EwRkJReXhEUVVGQk8wRkJRVUVzU1VGRGVrTXNTMEZCUVN4RlFVRlBMRXRCUVUwc1EwRkJRU3hOUVVGQkxFTkJRVThzU1VGQlN5eERRVUZCTEU5QlFVRTdRVUZCUVN4SlFVTjZRaXhSUVVGVkxFVkJRVUVzVVVGQlFUdEJRVUZCTEVsQlExWXNWVUZCV1N4RlFVRkJMRkZCUVVFN1FVRkJRU3hKUVVOYUxGTkJRVUVzUlVGQlZ5eExRVUZOTEVOQlFVRXNUMEZCUVN4RFFVRlJMRWxCUVVrc1EwRkJRVHRCUVVGQkxFZEJRekZDTEVWQlFVRXNTMEZCUVN4RFFVRk5MRmRCUVZjc1UwRldVaXhEUVVGQkxFVkJRVUU3UVVGQlFTeEpRVmRhTEUxQlFWRXNSVUZCUVN4VFFVRkJPMEZCUVVFc1IwRkRWQ3hEUVVGQkxFTkJRVUU3UVVGQlFTeEZRVU5FTEZkQlFWY3NSMEZCU1N4RFFVRkJPMEZCUVVFc1NVRkRZaXhWUVVGQkxFVkJRVmtzUzBGQlRTeERRVUZCTEUxQlFVRXNRMEZCVHl4TlFVRlBMRU5CUVVFc1VVRkJRVHRCUVVGQkxFbEJRMmhETEZOQlFWTXNTMEZCVFN4RFFVRkJMRTlCUVVFc1EwRkJVU3hMUVVGUExFVkJRVUVzUTBGQlFTeEZRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkJPMEZCUVVFc1IwRkRNVU1zUTBGQlFUdEJRVUZCTEVWQlEwUXNZMEZCWXl4SFFVRkpMRU5CUVVFN1FVRkJRU3hKUVVOb1FpeFpRVUZCTEVWQlFXTXNTMEZCVFN4RFFVRkJMRTlCUVVFc1EwRkJVU3hIUVVGSExFTkJRVUU3UVVGQlFTeEpRVU12UWl4TlFVRlJMRVZCUVVFc1RVRkJRVHRCUVVGQkxFbEJRMUlzVDBGQlV5eEZRVUZCTEVOQlFVRTdRVUZCUVN4SlFVTlVMRTFCUVZFc1JVRkJRU3hUUVVGQk8wRkJRVUVzU1VGRFVpeFRRVUZYTEVWQlFVRTdRVUZCUVN4TlFVTlVMRXRCUVVFc1JVRkJUeXhMUVVGTkxFTkJRVUVzVFVGQlFTeERRVUZQTEVsQlFVc3NRMEZCUVN4UFFVRkJPMEZCUVVFc1MwRkRNMEk3UVVGQlFTeEhRVU5FTEVOQlFVRTdRVUZEU0N4RFFVRkJMRU5CUVVFN096czdJbjA9XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXTyxNQUFNLGlCQUFpQixDQUFDO0FBQzdCLEVBQUEsSUFBQTtBQUNBLEVBQUEsc0JBQUE7QUFDQSxFQUFBLEtBQUE7QUFDQSxFQUFBLHdCQUFBO0FBQ0YsQ0FBMkIsS0FBQTtBQWhCM0IsRUFBQSxJQUFBLEVBQUEsRUFBQSxFQUFBLENBQUE7QUFpQlEsRUFBQSxNQUFBLE1BQUEsR0FBUyxXQUFXLFNBQVMsQ0FBQSxDQUFBO0FBRW5DLEVBQUEsTUFBTSxrQkFBcUIsR0FBQSxXQUFBO0FBQ3pCLElBQUEsQ0FBQyxDQUE0QixLQUFBO0FBQzNCLE1BQUEsQ0FBQSxDQUFFLGVBQWdCLEVBQUEsQ0FBQTtBQUNsQixNQUFBLENBQUEsQ0FBRSxjQUFlLEVBQUEsQ0FBQTtBQUNqQixNQUFBLHdCQUFBLENBQXlCLElBQUksQ0FBQSxDQUFBO0FBQUEsS0FBQTtBQUUvQixJQUFBLENBQUMsMEJBQTBCLElBQUksQ0FBQTtBQUFBLEdBQUEsQ0FBQTtBQUdqQyxFQUFBLE1BQU0sOEJBQWlDLEdBQUEsV0FBQTtBQUNyQyxJQUFBLENBQUMsQ0FBMkIsS0FBQTtBQUN0QixNQUFBLElBQUEsQ0FBQSxDQUFFLFFBQVEsT0FBUyxFQUFBO0FBQ3JCLFFBQUEsa0JBQUEsQ0FBbUIsQ0FBQyxDQUFBLENBQUE7QUFBQSxPQUFBO0FBQ3RCLEtBQUE7QUFFRixJQUFBLENBQUMsa0JBQWtCLENBQUE7QUFBQSxHQUFBLENBQUE7QUFHckIsRUFBQSxNQUFN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
@@ -1,68 +0,0 @@
1
- import { useFloating, autoUpdate, offset, flip, size, useRole, useDismiss, useListNavigation, useInteractions } from '@floating-ui/react';
2
-
3
- const MAX_MENU_HEIGHT = 300;
4
- const useFloatingInteractions = ({
5
- open,
6
- onOpenChange,
7
- activeIndex,
8
- setActiveIndex,
9
- outsidePressIdsToIgnore,
10
- listRef,
11
- disabledIndicesRef
12
- }) => {
13
- const { refs, floatingStyles, context } = useFloating({
14
- whileElementsMounted: autoUpdate,
15
- open,
16
- onOpenChange,
17
- placement: "bottom-start",
18
- middleware: [
19
- offset(10),
20
- flip({ padding: 10 }),
21
- size({
22
- apply({ availableHeight, availableWidth, elements }) {
23
- elements.floating.style.maxHeight = `${Math.min(MAX_MENU_HEIGHT, availableHeight)}px`;
24
- elements.floating.style.maxWidth = `${availableWidth}px`;
25
- },
26
- padding: 10
27
- })
28
- ],
29
- strategy: "fixed"
30
- });
31
- const role = useRole(context, { role: "listbox" });
32
- const dismiss = useDismiss(context, {
33
- outsidePress: (event) => {
34
- var _a;
35
- if (event.currentTarget instanceof Element) {
36
- const target = event.currentTarget;
37
- let idToCompare = target.id;
38
- if (target.nodeName === "path") {
39
- idToCompare = ((_a = target.parentElement) == null ? void 0 : _a.id) || "";
40
- }
41
- if (outsidePressIdsToIgnore.includes(idToCompare)) {
42
- return false;
43
- }
44
- }
45
- return true;
46
- }
47
- });
48
- const listNav = useListNavigation(context, {
49
- listRef,
50
- activeIndex,
51
- onNavigate: setActiveIndex,
52
- virtual: true,
53
- loop: true,
54
- disabledIndices: disabledIndicesRef.current
55
- });
56
- const { getReferenceProps, getFloatingProps, getItemProps } = useInteractions([role, dismiss, listNav]);
57
- return {
58
- refs,
59
- floatingStyles,
60
- context,
61
- getReferenceProps,
62
- getFloatingProps,
63
- getItemProps
64
- };
65
- };
66
-
67
- export { MAX_MENU_HEIGHT, useFloatingInteractions };
68
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlRmxvYXRpbmdJbnRlcmFjdGlvbnMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3ZhcmlhYmxlcy9hZGhvYy9BZEhvY0ZpbHRlcnNDb21ib2JveC91c2VGbG9hdGluZ0ludGVyYWN0aW9ucy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VGbG9hdGluZywgYXV0b1VwZGF0ZSwgb2Zmc2V0LCBmbGlwLCBzaXplLCB1c2VSb2xlLCB1c2VEaXNtaXNzLCB1c2VMaXN0TmF2aWdhdGlvbiwgdXNlSW50ZXJhY3Rpb25zIH0gZnJvbSAnQGZsb2F0aW5nLXVpL3JlYWN0JztcblxuY29uc3QgTUFYX01FTlVfSEVJR0hUID0gMzAwO1xuY29uc3QgdXNlRmxvYXRpbmdJbnRlcmFjdGlvbnMgPSAoe1xuICBvcGVuLFxuICBvbk9wZW5DaGFuZ2UsXG4gIGFjdGl2ZUluZGV4LFxuICBzZXRBY3RpdmVJbmRleCxcbiAgb3V0c2lkZVByZXNzSWRzVG9JZ25vcmUsXG4gIGxpc3RSZWYsXG4gIGRpc2FibGVkSW5kaWNlc1JlZlxufSkgPT4ge1xuICBjb25zdCB7IHJlZnMsIGZsb2F0aW5nU3R5bGVzLCBjb250ZXh0IH0gPSB1c2VGbG9hdGluZyh7XG4gICAgd2hpbGVFbGVtZW50c01vdW50ZWQ6IGF1dG9VcGRhdGUsXG4gICAgb3BlbixcbiAgICBvbk9wZW5DaGFuZ2UsXG4gICAgcGxhY2VtZW50OiBcImJvdHRvbS1zdGFydFwiLFxuICAgIG1pZGRsZXdhcmU6IFtcbiAgICAgIG9mZnNldCgxMCksXG4gICAgICBmbGlwKHsgcGFkZGluZzogMTAgfSksXG4gICAgICBzaXplKHtcbiAgICAgICAgYXBwbHkoeyBhdmFpbGFibGVIZWlnaHQsIGF2YWlsYWJsZVdpZHRoLCBlbGVtZW50cyB9KSB7XG4gICAgICAgICAgZWxlbWVudHMuZmxvYXRpbmcuc3R5bGUubWF4SGVpZ2h0ID0gYCR7TWF0aC5taW4oTUFYX01FTlVfSEVJR0hULCBhdmFpbGFibGVIZWlnaHQpfXB4YDtcbiAgICAgICAgICBlbGVtZW50cy5mbG9hdGluZy5zdHlsZS5tYXhXaWR0aCA9IGAke2F2YWlsYWJsZVdpZHRofXB4YDtcbiAgICAgICAgfSxcbiAgICAgICAgcGFkZGluZzogMTBcbiAgICAgIH0pXG4gICAgXSxcbiAgICBzdHJhdGVneTogXCJmaXhlZFwiXG4gIH0pO1xuICBjb25zdCByb2xlID0gdXNlUm9sZShjb250ZXh0LCB7IHJvbGU6IFwibGlzdGJveFwiIH0pO1xuICBjb25zdCBkaXNtaXNzID0gdXNlRGlzbWlzcyhjb250ZXh0LCB7XG4gICAgb3V0c2lkZVByZXNzOiAoZXZlbnQpID0+IHtcbiAgICAgIHZhciBfYTtcbiAgICAgIGlmIChldmVudC5jdXJyZW50VGFyZ2V0IGluc3RhbmNlb2YgRWxlbWVudCkge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC5jdXJyZW50VGFyZ2V0O1xuICAgICAgICBsZXQgaWRUb0NvbXBhcmUgPSB0YXJnZXQuaWQ7XG4gICAgICAgIGlmICh0YXJnZXQubm9kZU5hbWUgPT09IFwicGF0aFwiKSB7XG4gICAgICAgICAgaWRUb0NvbXBhcmUgPSAoKF9hID0gdGFyZ2V0LnBhcmVudEVsZW1lbnQpID09IG51bGwgPyB2b2lkIDAgOiBfYS5pZCkgfHwgXCJcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3V0c2lkZVByZXNzSWRzVG9JZ25vcmUuaW5jbHVkZXMoaWRUb0NvbXBhcmUpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuICBjb25zdCBsaXN0TmF2ID0gdXNlTGlzdE5hdmlnYXRpb24oY29udGV4dCwge1xuICAgIGxpc3RSZWYsXG4gICAgYWN0aXZlSW5kZXgsXG4gICAgb25OYXZpZ2F0ZTogc2V0QWN0aXZlSW5kZXgsXG4gICAgdmlydHVhbDogdHJ1ZSxcbiAgICBsb29wOiB0cnVlLFxuICAgIGRpc2FibGVkSW5kaWNlczogZGlzYWJsZWRJbmRpY2VzUmVmLmN1cnJlbnRcbiAgfSk7XG4gIGNvbnN0IHsgZ2V0UmVmZXJlbmNlUHJvcHMsIGdldEZsb2F0aW5nUHJvcHMsIGdldEl0ZW1Qcm9wcyB9ID0gdXNlSW50ZXJhY3Rpb25zKFtyb2xlLCBkaXNtaXNzLCBsaXN0TmF2XSk7XG4gIHJldHVybiB7XG4gICAgcmVmcyxcbiAgICBmbG9hdGluZ1N0eWxlcyxcbiAgICBjb250ZXh0LFxuICAgIGdldFJlZmVyZW5jZVByb3BzLFxuICAgIGdldEZsb2F0aW5nUHJvcHMsXG4gICAgZ2V0SXRlbVByb3BzXG4gIH07XG59O1xuXG5leHBvcnQgeyBNQVhfTUVOVV9IRUlHSFQsIHVzZUZsb2F0aW5nSW50ZXJhY3Rpb25zIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRYTmxSbXh2WVhScGJtZEpiblJsY21GamRHbHZibk11YW5NaUxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUx5NHVMeTR1THk0dUwzTnlZeTkyWVhKcFlXSnNaWE12WVdSb2IyTXZRV1JJYjJOR2FXeDBaWEp6UTI5dFltOWliM2d2ZFhObFJteHZZWFJwYm1kSmJuUmxjbUZqZEdsdmJuTXVkSE1pWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUh0Y2JpQWdkWE5sUm14dllYUnBibWNzWEc0Z0lHRjFkRzlWY0dSaGRHVXNYRzRnSUc5bVpuTmxkQ3hjYmlBZ2RYTmxVbTlzWlN4Y2JpQWdkWE5sUkdsemJXbHpjeXhjYmlBZ2RYTmxUR2x6ZEU1aGRtbG5ZWFJwYjI0c1hHNGdJRlZ6WlVac2IyRjBhVzVuVDNCMGFXOXVjeXhjYmlBZ1pteHBjQ3hjYmlBZ2MybDZaU3hjYmlBZ1ZYTmxUR2x6ZEU1aGRtbG5ZWFJwYjI1UWNtOXdjeXhjYmlBZ2RYTmxTVzUwWlhKaFkzUnBiMjV6TEZ4dWZTQm1jbTl0SUNkQVpteHZZWFJwYm1jdGRXa3ZjbVZoWTNRbk8xeHVYRzUwZVhCbElIVnpaVVpzYjJGMGFXNW5TVzUwWlhKaFkzUnBiMjV6VUhKdmNITWdQU0I3WEc0Z0lHOXdaVzQ2SUZWelpVWnNiMkYwYVc1blQzQjBhVzl1YzFzbmIzQmxiaWRkTzF4dUlDQnZiazl3Wlc1RGFHRnVaMlU2SUZWelpVWnNiMkYwYVc1blQzQjBhVzl1YzFzbmIyNVBjR1Z1UTJoaGJtZGxKMTA3WEc0Z0lHRmpkR2wyWlVsdVpHVjRPaUJWYzJWTWFYTjBUbUYyYVdkaGRHbHZibEJ5YjNCeld5ZGhZM1JwZG1WSmJtUmxlQ2RkTzF4dUlDQnpaWFJCWTNScGRtVkpibVJsZURvZ1ZYTmxUR2x6ZEU1aGRtbG5ZWFJwYjI1UWNtOXdjMXNuYjI1T1lYWnBaMkYwWlNkZE8xeHVJQ0J2ZFhSemFXUmxVSEpsYzNOSlpITlViMGxuYm05eVpUb2djM1J5YVc1blcxMDdYRzRnSUd4cGMzUlNaV1k2SUZKbFlXTjBMazExZEdGaWJHVlNaV1pQWW1wbFkzUThRWEp5WVhrOFNGUk5URVZzWlcxbGJuUWdmQ0J1ZFd4c1BqNDdYRzRnSUdScGMyRmliR1ZrU1c1a2FXTmxjMUpsWmpvZ1VtVmhZM1F1VFhWMFlXSnNaVkpsWms5aWFtVmpkRHh1ZFcxaVpYSmJYVDQ3WEc1OU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1RVRllYMDFGVGxWZlNFVkpSMGhVSUQwZ016QXdPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdkWE5sUm14dllYUnBibWRKYm5SbGNtRmpkR2x2Ym5NZ1BTQW9lMXh1SUNCdmNHVnVMRnh1SUNCdmJrOXdaVzVEYUdGdVoyVXNYRzRnSUdGamRHbDJaVWx1WkdWNExGeHVJQ0J6WlhSQlkzUnBkbVZKYm1SbGVDeGNiaUFnYjNWMGMybGtaVkJ5WlhOelNXUnpWRzlKWjI1dmNtVXNYRzRnSUd4cGMzUlNaV1lzWEc0Z0lHUnBjMkZpYkdWa1NXNWthV05sYzFKbFppeGNibjA2SUhWelpVWnNiMkYwYVc1blNXNTBaWEpoWTNScGIyNXpVSEp2Y0hNcElEMCtJSHRjYmlBZ1kyOXVjM1FnZXlCeVpXWnpMQ0JtYkc5aGRHbHVaMU4wZVd4bGN5d2dZMjl1ZEdWNGRDQjlJRDBnZFhObFJteHZZWFJwYm1jOFNGUk5URWx1Y0hWMFJXeGxiV1Z1ZEQ0b2UxeHVJQ0FnSUhkb2FXeGxSV3hsYldWdWRITk5iM1Z1ZEdWa09pQmhkWFJ2VlhCa1lYUmxMRnh1SUNBZ0lHOXdaVzRzWEc0Z0lDQWdiMjVQY0dWdVEyaGhibWRsTEZ4dUlDQWdJSEJzWVdObGJXVnVkRG9nSjJKdmRIUnZiUzF6ZEdGeWRDY3NYRzRnSUNBZ2JXbGtaR3hsZDJGeVpUb2dXMXh1SUNBZ0lDQWdiMlptYzJWMEtERXdLU3hjYmlBZ0lDQWdJR1pzYVhBb2V5QndZV1JrYVc1bk9pQXhNQ0I5S1N4Y2JpQWdJQ0FnSUhOcGVtVW9lMXh1SUNBZ0lDQWdJQ0JoY0hCc2VTaDdJR0YyWVdsc1lXSnNaVWhsYVdkb2RDd2dZWFpoYVd4aFlteGxWMmxrZEdnc0lHVnNaVzFsYm5SeklIMHBJSHRjYmlBZ0lDQWdJQ0FnSUNBdkx5QnNhVzFwZENCdFlYaElaV2xuYUhRZ1lXNWtJRzFoZUZkcFpIUm9JRzltSUdSeWIzQmtiM2R1WEc0Z0lDQWdJQ0FnSUNBZ1pXeGxiV1Z1ZEhNdVpteHZZWFJwYm1jdWMzUjViR1V1YldGNFNHVnBaMmgwSUQwZ1lDUjdUV0YwYUM1dGFXNG9UVUZZWDAxRlRsVmZTRVZKUjBoVUxDQmhkbUZwYkdGaWJHVklaV2xuYUhRcGZYQjRZRHRjYmlBZ0lDQWdJQ0FnSUNCbGJHVnRaVzUwY3k1bWJHOWhkR2x1Wnk1emRIbHNaUzV0WVhoWGFXUjBhQ0E5SUdBa2UyRjJZV2xzWVdKc1pWZHBaSFJvZlhCNFlEdGNiaUFnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnY0dGa1pHbHVaem9nTVRBc1hHNGdJQ0FnSUNCOUtTeGNiaUFnSUNCZExGeHVJQ0FnSUhOMGNtRjBaV2Q1T2lBblptbDRaV1FuTEZ4dUlDQjlLVHRjYmx4dUlDQmpiMjV6ZENCeWIyeGxJRDBnZFhObFVtOXNaU2hqYjI1MFpYaDBMQ0I3SUhKdmJHVTZJQ2RzYVhOMFltOTRKeUI5S1R0Y2JpQWdZMjl1YzNRZ1pHbHpiV2x6Y3lBOUlIVnpaVVJwYzIxcGMzTW9ZMjl1ZEdWNGRDd2dlMXh1SUNBZ0lDOHZJR2xtSUc5MWRITnBaR1VnWTJ4cFkyc2diR0Z1WkhNZ2IyNGdiM0JsY21GMGIzSWdjR2xzYkN3Z2RHaGxiaUJwWjI1dmNtVWdiM1YwYzJsa1pTQmpiR2xqYTF4dUlDQWdJRzkxZEhOcFpHVlFjbVZ6Y3pvZ0tHVjJaVzUwS1NBOVBpQjdYRzRnSUNBZ0lDQnBaaUFvWlhabGJuUXVZM1Z5Y21WdWRGUmhjbWRsZENCcGJuTjBZVzVqWlc5bUlFVnNaVzFsYm5RcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2RHRnlaMlYwSUQwZ1pYWmxiblF1WTNWeWNtVnVkRlJoY21kbGREdGNiaUFnSUNBZ0lDQWdiR1YwSUdsa1ZHOURiMjF3WVhKbElEMGdkR0Z5WjJWMExtbGtPMXh1SUNBZ0lDQWdJQ0JwWmlBb2RHRnlaMlYwTG01dlpHVk9ZVzFsSUQwOVBTQW5jR0YwYUNjcElIdGNiaUFnSUNBZ0lDQWdJQ0JwWkZSdlEyOXRjR0Z5WlNBOUlIUmhjbWRsZEM1d1lYSmxiblJGYkdWdFpXNTBQeTVwWkNCOGZDQW5KenRjYmlBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lHbG1JQ2h2ZFhSemFXUmxVSEpsYzNOSlpITlViMGxuYm05eVpTNXBibU5zZFdSbGN5aHBaRlJ2UTI5dGNHRnlaU2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1ptRnNjMlU3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUhKbGRIVnliaUIwY25WbE8xeHVJQ0FnSUgwc1hHNGdJSDBwTzF4dUlDQmpiMjV6ZENCc2FYTjBUbUYySUQwZ2RYTmxUR2x6ZEU1aGRtbG5ZWFJwYjI0b1kyOXVkR1Y0ZEN3Z2UxeHVJQ0FnSUd4cGMzUlNaV1lzWEc0Z0lDQWdZV04wYVhabFNXNWtaWGdzWEc0Z0lDQWdiMjVPWVhacFoyRjBaVG9nYzJWMFFXTjBhWFpsU1c1a1pYZ3NYRzRnSUNBZ2RtbHlkSFZoYkRvZ2RISjFaU3hjYmlBZ0lDQnNiMjl3T2lCMGNuVmxMRnh1SUNBZ0lHUnBjMkZpYkdWa1NXNWthV05sY3pvZ1pHbHpZV0pzWldSSmJtUnBZMlZ6VW1WbUxtTjFjbkpsYm5Rc1hHNGdJSDBwTzF4dVhHNGdJR052Ym5OMElIc2daMlYwVW1WbVpYSmxibU5sVUhKdmNITXNJR2RsZEVac2IyRjBhVzVuVUhKdmNITXNJR2RsZEVsMFpXMVFjbTl3Y3lCOUlEMGdkWE5sU1c1MFpYSmhZM1JwYjI1ektGdHliMnhsTENCa2FYTnRhWE56TENCc2FYTjBUbUYyWFNrN1hHNWNiaUFnY21WMGRYSnVJSHRjYmlBZ0lDQnlaV1p6TEZ4dUlDQWdJR1pzYjJGMGFXNW5VM1I1YkdWekxGeHVJQ0FnSUdOdmJuUmxlSFFzWEc0Z0lDQWdaMlYwVW1WbVpYSmxibU5sVUhKdmNITXNYRzRnSUNBZ1oyVjBSbXh2WVhScGJtZFFjbTl3Y3l4Y2JpQWdJQ0JuWlhSSmRHVnRVSEp2Y0hNc1hHNGdJSDA3WEc1OU8xeHVJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSTdPMEZCZDBKUExFMUJRVTBzWlVGQmEwSXNSMEZCUVN4SlFVRkJPMEZCUlhoQ0xFMUJRVTBzTUVKQlFUQkNMRU5CUVVNN1FVRkJRU3hGUVVOMFF5eEpRVUZCTzBGQlFVRXNSVUZEUVN4WlFVRkJPMEZCUVVFc1JVRkRRU3hYUVVGQk8wRkJRVUVzUlVGRFFTeGpRVUZCTzBGQlFVRXNSVUZEUVN4MVFrRkJRVHRCUVVGQkxFVkJRMEVzVDBGQlFUdEJRVUZCTEVWQlEwRXNhMEpCUVVFN1FVRkRSaXhEUVVGdlF5eExRVUZCTzBGQlEyeERMRVZCUVVFc1RVRkJUU3hGUVVGRkxFbEJRVUVzUlVGQlRTeGpRVUZuUWl4RlFVRkJMRTlCUVVFc1MwRkJXU3hYUVVFNFFpeERRVUZCTzBGQlFVRXNTVUZEZEVVc2IwSkJRWE5DTEVWQlFVRXNWVUZCUVR0QlFVRkJMRWxCUTNSQ0xFbEJRVUU3UVVGQlFTeEpRVU5CTEZsQlFVRTdRVUZCUVN4SlFVTkJMRk5CUVZjc1JVRkJRU3hqUVVGQk8wRkJRVUVzU1VGRFdDeFZRVUZaTEVWQlFVRTdRVUZCUVN4TlFVTldMRTlCUVU4c1JVRkJSU3hEUVVGQk8wRkJRVUVzVFVGRFZDeEpRVUZMTEVOQlFVRXNSVUZCUlN4UFFVRlRMRVZCUVVFc1JVRkJRU3hGUVVGSkxFTkJRVUU3UVVGQlFTeE5RVU53UWl4SlFVRkxMRU5CUVVFN1FVRkJRU3hSUVVOSUxFdEJRVTBzUTBGQlFTeEZRVUZGTEdWQlFXbENMRVZCUVVFc1kwRkJRU3hGUVVGblFpeFZRVUZaTEVWQlFVRTdRVUZGYmtRc1ZVRkJRU3hSUVVGQkxFTkJRVk1zVTBGQlV5eExRVUZOTEVOQlFVRXNVMEZCUVN4SFFVRlpMRWRCUVVjc1NVRkJTeXhEUVVGQkxFZEJRVUVzUTBGQlNTeHBRa0ZCYVVJc1pVRkJaU3hEUVVGQkxFTkJRVUVzUlVGQlFTeERRVUZCTEVOQlFVRTdRVUZEYUVZc1ZVRkJVeXhSUVVGQkxFTkJRVUVzVVVGQlFTeERRVUZUTEV0QlFVMHNRMEZCUVN4UlFVRkJMRWRCUVZjc1EwRkJSeXhGUVVGQkxHTkJRVUVzUTBGQlFTeEZRVUZCTEVOQlFVRXNRMEZCUVR0QlFVRkJMRk5CUTNoRE8wRkJRVUVzVVVGRFFTeFBRVUZUTEVWQlFVRXNSVUZCUVR0QlFVRkJMRTlCUTFZc1EwRkJRVHRCUVVGQkxFdEJRMGc3UVVGQlFTeEpRVU5CTEZGQlFWVXNSVUZCUVN4UFFVRkJPMEZCUVVFc1IwRkRXQ3hEUVVGQkxFTkJRVUU3UVVGRlJDeEZRVUZCTEUxQlFVMHNUMEZCVHl4UFFVRlJMRU5CUVVFc1QwRkJRU3hGUVVGVExFVkJRVVVzU1VGQlFTeEZRVUZOTEZkQlFWY3NRMEZCUVN4RFFVRkJPMEZCUTJwRUxFVkJRVTBzVFVGQlFTeFBRVUZCTEVkQlFWVXNWMEZCVnl4UFFVRlRMRVZCUVVFN1FVRkJRU3hKUVVWc1F5eFpRVUZCTEVWQlFXTXNRMEZCUXl4TFFVRlZMRXRCUVVFN1FVRXhSRGRDTEUxQlFVRXNTVUZCUVN4RlFVRkJMRU5CUVVFN1FVRXlSRTBzVFVGQlNTeEpRVUZCTEV0QlFVRXNRMEZCVFN4NVFrRkJlVUlzVDBGQlV5eEZRVUZCTzBGQlF6RkRMRkZCUVVFc1RVRkJUU3hUUVVGVExFdEJRVTBzUTBGQlFTeGhRVUZCTEVOQlFVRTdRVUZEY2tJc1VVRkJRU3hKUVVGSkxHTkJRV01zVFVGQlR5eERRVUZCTEVWQlFVRXNRMEZCUVR0QlFVTjZRaXhSUVVGSkxFbEJRVUVzVFVGQlFTeERRVUZQTEdGQlFXRXNUVUZCVVN4RlFVRkJPMEZCUXpsQ0xGVkJRV01zVjBGQlFTeEhRVUZCTEVOQlFVRXNRMEZCUVN4RlFVRkJMRWRCUVVFc1RVRkJRU3hEUVVGUExHRkJRVkFzUzBGQlFTeEpRVUZCTEVkQlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1JVRkJRU3hEUVVGelFpeEZRVUZOTEV0QlFVRXNSVUZCUVN4RFFVRkJPMEZCUVVFc1UwRkROVU03UVVGRlFTeFJRVUZKTEVsQlFVRXNkVUpCUVVFc1EwRkJkMElzVVVGQlV5eERRVUZCTEZkQlFWY3NRMEZCUnl4RlFVRkJPMEZCUTJwRUxGVkJRVThzVDBGQlFTeExRVUZCTEVOQlFVRTdRVUZCUVN4VFFVTlVPMEZCUVVFc1QwRkRSanRCUVVOQkxFMUJRVThzVDBGQlFTeEpRVUZCTEVOQlFVRTdRVUZCUVN4TFFVTlVPMEZCUVVFc1IwRkRSQ3hEUVVGQkxFTkJRVUU3UVVGRFJDeEZRVUZOTEUxQlFVRXNUMEZCUVN4SFFVRlZMR3RDUVVGclFpeFBRVUZUTEVWQlFVRTdRVUZCUVN4SlFVTjZReXhQUVVGQk8wRkJRVUVzU1VGRFFTeFhRVUZCTzBGQlFVRXNTVUZEUVN4VlFVRlpMRVZCUVVFc1kwRkJRVHRCUVVGQkxFbEJRMW9zVDBGQlV5eEZRVUZCTEVsQlFVRTdRVUZCUVN4SlFVTlVMRWxCUVUwc1JVRkJRU3hKUVVGQk8wRkJRVUVzU1VGRFRpeHBRa0ZCYVVJc2EwSkJRVzFDTEVOQlFVRXNUMEZCUVR0QlFVRkJMRWRCUTNKRExFTkJRVUVzUTBGQlFUdEJRVVZFTEVWQlFVMHNUVUZCUVN4RlFVRkZMR2xDUVVGdFFpeEZRVUZCTEdkQ1FVRkJMRVZCUVd0Q0xGbEJRV0VzUlVGQlFTeEhRVUZKTEdkQ1FVRm5RaXhEUVVGRExFbEJRVUVzUlVGQlRTeFBRVUZUTEVWQlFVRXNUMEZCVHl4RFFVRkRMRU5CUVVFc1EwRkJRVHRCUVVWMFJ5eEZRVUZQTEU5QlFVRTdRVUZCUVN4SlFVTk1MRWxCUVVFN1FVRkJRU3hKUVVOQkxHTkJRVUU3UVVGQlFTeEpRVU5CTEU5QlFVRTdRVUZCUVN4SlFVTkJMR2xDUVVGQk8wRkJRVUVzU1VGRFFTeG5Ra0ZCUVR0QlFVRkJMRWxCUTBFc1dVRkJRVHRCUVVGQkxFZEJRMFlzUTBGQlFUdEJRVU5HT3pzN095SjlcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXdCTyxNQUFNLGVBQWtCLEdBQUEsSUFBQTtBQUV4QixNQUFNLDBCQUEwQixDQUFDO0FBQ3RDLEVBQUEsSUFBQTtBQUNBLEVBQUEsWUFBQTtBQUNBLEVBQUEsV0FBQTtBQUNBLEVBQUEsY0FBQTtBQUNBLEVBQUEsdUJBQUE7QUFDQSxFQUFBLE9BQUE7QUFDQSxFQUFBLGtCQUFBO0FBQ0YsQ0FBb0MsS0FBQTtBQUNsQyxFQUFBLE1BQU0sRUFBRSxJQUFBLEVBQU0sY0FBZ0IsRUFBQSxPQUFBLEtBQVksV0FBOEIsQ0FBQTtJQUN0RSxvQkFBc0IsRUFBQSxVQUFBO0FBQ3RCLElBQUEsSUFBQTtBQUNBLElBQUEsWUFBQTtJQUNBLFNBQVcsRUFBQSxjQUFBO0lBQ1gsVUFBWSxFQUFBO0FBQ1YsTUFBQSxNQUFBLENBQU8sRUFBRSxDQUFBO01BQ1QsSUFBSyxDQUFBLEVBQUUsT0FBUyxFQUFBLEVBQUEsRUFBSSxDQUFBO01BQ3BCLElBQUssQ0FBQTtBQUNILFFBQUEsS0FBQSxDQUFNLEVBQUUsZUFBQSxFQUFpQixjQUFnQixFQUFBLFFBQUEsRUFBWSxFQUFBO0FBRW5ELFVBQUEsUUFBQSxDQUFTLFNBQVMsS0FBTSxDQUFBLFNBQUEsR0FBWSxHQUFHLElBQUssQ0FBQSxHQUFBLENBQUksaUJBQWlCLGVBQWUsQ0FBQSxDQUFBLEVBQUEsQ0FBQSxDQUFBO0FBQ3ZFLFVBQUEsUUFBQSxDQUFBLFFBQUEsQ0FBUyxLQUFNLENBQUEsUUFBQSxHQUFXLENBQUcsRUFBQSxjQUFBLENBQUEsRUFBQSxDQUFBLENBQUE7QUFBQSxTQUFBO1FBRXhDLE9BQVMsRUFBQSxFQUFBO09BQ1YsQ0FBQTtBQUFBLEtBQUE7SUFFSCxRQUFVLEVBQUEsT0FBQTtHQUNYLENBQUEsQ0FBQTtBQUVELEVBQUEsTUFBTSxPQUFPLE9BQVEsQ0FBQSxPQUFBLEVBQVMsRUFBRSxJQUFBLEVBQU0sV0FBVyxDQUFBLENBQUE7QUFDM0MsRUFBQSxNQUFBLE9BQUEsR0FBVSxXQUFXLE9BQVMsRUFBQTtBQUVsQyxJQUFBLFlBQUEsRUFBYyxDQUFDLEtBQVUsS0FBQTtBQTFEN0IsTUFBQSxJQUFBLEVBQUEsQ0FBQTtBQTJEVSxNQUFBLElBQUEsS0FBQSxDQUFNLHlCQUF5QixPQUFTLEVBQUE7QUFDMUMsUUFBQSxNQUFNLFNBQVMsS0FBTSxDQUFBLGFBQUEsQ0FBQTtBQUNyQixRQUFBLElBQUksY0FBYyxNQUFPLENBQUEsRUFBQSxDQUFBO0FBQ3JCLFFBQUEsSUFBQSxNQUFBLENBQU8sYUFBYSxNQUFRLEVBQUE7QUFDaEIsVUFBQSxXQUFBLEdBQUEsQ0FBQSxDQUFBLEtBQUEsTUFBTyxDQUFBLGFBQUEsS0FBUCxJQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUEsR0FBc0IsRUFBTSxLQUFBLEVBQUEsQ0FBQTtBQUFBLFNBQUE7QUFHeEMsUUFBQSxJQUFBLHVCQUFBLENBQXdCLFFBQVMsQ0FBQSxXQUFXLENBQUcsRUFBQTtBQUMxQyxVQUFBLE9BQUEsS0FBQSxDQUFBO0FBQUEsU0FBQTtBQUNULE9BQUE7QUFFSyxNQUFBLE9BQUEsSUFBQSxDQUFBO0FBQUEsS0FBQTtHQUVWLENBQUEsQ0FBQTtBQUNLLEVBQUEsTUFBQSxPQUFBLEdBQVUsa0JBQWtCLE9BQVMsRUFBQTtBQUN6QyxJQUFBLE9BQUE7QUFDQSxJQUFBLFdBQUE7SUFDQSxVQUFZLEVBQUEsY0FBQTtJQUNaLE9BQVMsRUFBQSxJQUFBO0lBQ1QsSUFBTSxFQUFBLElBQUE7QUFDTixJQUFBLGVBQUEsRUFBaUIsa0JBQW1CLENBQUEsT0FBQTtHQUNyQyxDQUFBLENBQUE7QUFFSyxFQUFBLE1BQUEsRUFBRSxpQkFBbUIsRUFBQSxnQkFBQSxFQUFrQixZQUFhLEVBQUEsR0FBSSxnQkFBZ0IsQ0FBQyxJQUFBLEVBQU0sT0FBUyxFQUFBLE9BQU8sQ0FBQyxDQUFBLENBQUE7QUFFL0YsRUFBQSxPQUFBO0FBQ0wsSUFBQSxJQUFBO0FBQ0EsSUFBQSxjQUFBO0FBQ0EsSUFBQSxPQUFBO0FBQ0EsSUFBQSxpQkFBQTtBQUNBLElBQUEsZ0JBQUE7QUFDQSxJQUFBLFlBQUE7QUFBQSxHQUFBLENBQUE7QUFFSjs7OzsifQ==