@grafana/scenes 6.8.0 → 6.8.1

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 (319) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/esm/index.js +1 -1
  3. package/dist/esm/index.js.map +1 -1
  4. package/dist/index.d.ts +1 -1
  5. package/dist/index.js +1 -1
  6. package/dist/index.js.map +1 -1
  7. package/package.json +2 -2
  8. package/dist/esm/components/layout/CSSGrid/SceneCSSGridItem.js +0 -33
  9. package/dist/esm/dist/esm/behaviors/CursorSync.js +0 -76
  10. package/dist/esm/dist/esm/behaviors/LiveNowTimer.js +0 -44
  11. package/dist/esm/dist/esm/behaviors/SceneQueryController.js +0 -14
  12. package/dist/esm/dist/esm/components/EmbeddedScene.js +0 -59
  13. package/dist/esm/dist/esm/components/NestedScene.js +0 -95
  14. package/dist/esm/dist/esm/components/SceneApp/SceneApp.js +0 -27
  15. package/dist/esm/dist/esm/components/SceneApp/SceneAppPage.js +0 -176
  16. package/dist/esm/dist/esm/components/SceneApp/SceneAppPageView.js +0 -104
  17. package/dist/esm/dist/esm/components/SceneApp/utils.js +0 -42
  18. package/dist/esm/dist/esm/components/SceneByFrameRepeater.js +0 -41
  19. package/dist/esm/dist/esm/components/SceneByVariableRepeater.js +0 -55
  20. package/dist/esm/dist/esm/components/SceneCanvasText.js +0 -32
  21. package/dist/esm/dist/esm/components/SceneControlsSpacer.js +0 -17
  22. package/dist/esm/dist/esm/components/SceneDebugger/DebugDetails.js +0 -82
  23. package/dist/esm/dist/esm/components/SceneDebugger/DebugTreeNode.js +0 -72
  24. package/dist/esm/dist/esm/components/SceneDebugger/SceneDebugger.js +0 -77
  25. package/dist/esm/dist/esm/components/SceneReactObject.js +0 -34
  26. package/dist/esm/dist/esm/components/SceneRefreshPicker.js +0 -205
  27. package/dist/esm/dist/esm/components/SceneTimePicker.js +0 -139
  28. package/dist/esm/dist/esm/components/SceneTimeRangeCompare.js +0 -240
  29. package/dist/esm/dist/esm/components/SceneToolbarButton.js +0 -33
  30. package/dist/esm/dist/esm/components/VizPanel/VizPanel.js +0 -406
  31. package/dist/esm/dist/esm/components/VizPanel/VizPanelExploreButton.js +0 -44
  32. package/dist/esm/dist/esm/components/VizPanel/VizPanelMenu.js +0 -59
  33. package/dist/esm/dist/esm/components/VizPanel/VizPanelRenderer.js +0 -285
  34. package/dist/esm/dist/esm/components/VizPanel/VizPanelSeriesLimit.js +0 -45
  35. package/dist/esm/dist/esm/components/VizPanel/colorSeriesConfigFactory.js +0 -72
  36. package/dist/esm/dist/esm/components/VizPanel/registerRuntimePanelPlugin.js +0 -11
  37. package/dist/esm/dist/esm/components/VizPanel/seriesVisibilityConfigFactory.js +0 -164
  38. package/dist/esm/dist/esm/components/layout/CSSGrid/SceneCSSGridLayout.js +0 -124
  39. package/dist/esm/dist/esm/components/layout/LazyLoader.js +0 -103
  40. package/dist/esm/dist/esm/components/layout/SceneFlexLayout.js +0 -135
  41. package/dist/esm/dist/esm/components/layout/grid/SceneGridItem.js +0 -30
  42. package/dist/esm/dist/esm/components/layout/grid/SceneGridLayout.js +0 -283
  43. package/dist/esm/dist/esm/components/layout/grid/SceneGridLayoutRenderer.js +0 -178
  44. package/dist/esm/dist/esm/components/layout/grid/SceneGridRow.js +0 -190
  45. package/dist/esm/dist/esm/components/layout/grid/constants.js +0 -7
  46. package/dist/esm/dist/esm/components/layout/grid/utils.js +0 -36
  47. package/dist/esm/dist/esm/components/layout/split/SplitLayout.js +0 -17
  48. package/dist/esm/dist/esm/components/layout/split/SplitLayoutRenderer.js +0 -29
  49. package/dist/esm/dist/esm/components/layout/split/Splitter.js +0 -386
  50. package/dist/esm/dist/esm/core/SceneComponentWrapper.js +0 -57
  51. package/dist/esm/dist/esm/core/SceneDataNode.js +0 -43
  52. package/dist/esm/dist/esm/core/SceneObjectBase.js +0 -286
  53. package/dist/esm/dist/esm/core/SceneObjectRef.js +0 -32
  54. package/dist/esm/dist/esm/core/SceneTimeRange.js +0 -231
  55. package/dist/esm/dist/esm/core/events.js +0 -11
  56. package/dist/esm/dist/esm/core/sceneGraph/getTimeRange.js +0 -10
  57. package/dist/esm/dist/esm/core/sceneGraph/index.js +0 -25
  58. package/dist/esm/dist/esm/core/sceneGraph/sceneGraph.js +0 -178
  59. package/dist/esm/dist/esm/core/sceneGraph/utils.js +0 -64
  60. package/dist/esm/dist/esm/core/types.js +0 -15
  61. package/dist/esm/dist/esm/querying/DataLayersMerger.js +0 -46
  62. package/dist/esm/dist/esm/querying/ExtraQueryProvider.js +0 -6
  63. package/dist/esm/dist/esm/querying/RuntimeDataSource.js +0 -6
  64. package/dist/esm/dist/esm/querying/SceneDataLayerSet.js +0 -100
  65. package/dist/esm/dist/esm/querying/SceneQueryRunner.js +0 -468
  66. package/dist/esm/dist/esm/querying/extraQueryProcessingOperator.js +0 -46
  67. package/dist/esm/dist/esm/querying/getEnrichedDataRequest.js +0 -12
  68. package/dist/esm/dist/esm/querying/layers/SceneDataLayerBase.js +0 -112
  69. package/dist/esm/dist/esm/querying/layers/SceneDataLayerControls.js +0 -51
  70. package/dist/esm/dist/esm/querying/layers/annotations/AnnotationsDataLayer.js +0 -130
  71. package/dist/esm/dist/esm/querying/layers/annotations/filterAnnotations.js +0 -85
  72. package/dist/esm/dist/esm/querying/layers/annotations/standardAnnotationQuery.js +0 -121
  73. package/dist/esm/dist/esm/querying/layers/annotations/standardAnnotationsSupport.js +0 -211
  74. package/dist/esm/dist/esm/querying/layers/annotations/utils.js +0 -77
  75. package/dist/esm/dist/esm/querying/registerQueryWithController.js +0 -41
  76. package/dist/esm/dist/esm/services/SceneObjectUrlSyncConfig.js +0 -30
  77. package/dist/esm/dist/esm/services/UniqueUrlKeyMapper.js +0 -45
  78. package/dist/esm/dist/esm/services/UrlSyncManager.js +0 -167
  79. package/dist/esm/dist/esm/services/useUrlSync.js +0 -29
  80. package/dist/esm/dist/esm/services/utils.js +0 -71
  81. package/dist/esm/dist/esm/utils/ControlsLabel.js +0 -107
  82. package/dist/esm/dist/esm/utils/LoadingIndicator.js +0 -19
  83. package/dist/esm/dist/esm/utils/SafeSerializableSceneObject.js +0 -39
  84. package/dist/esm/dist/esm/utils/compatibility/setWindowGrafanaSceneContext.js +0 -16
  85. package/dist/esm/dist/esm/utils/date.js +0 -15
  86. package/dist/esm/dist/esm/utils/evaluateTimeRange.js +0 -16
  87. package/dist/esm/dist/esm/utils/explore.js +0 -47
  88. package/dist/esm/dist/esm/utils/getCompareSeriesRefId.js +0 -4
  89. package/dist/esm/dist/esm/utils/getDataSource.js +0 -18
  90. package/dist/esm/dist/esm/utils/getMessageFromError.js +0 -24
  91. package/dist/esm/dist/esm/utils/metricTree.js +0 -53
  92. package/dist/esm/dist/esm/utils/parseUrlParam.js +0 -41
  93. package/dist/esm/dist/esm/utils/utils.js +0 -11
  94. package/dist/esm/dist/esm/utils/wrapInSafeSerializableSceneObject.js +0 -30
  95. package/dist/esm/dist/esm/utils/writeSceneLog.js +0 -12
  96. package/dist/esm/dist/esm/variables/VariableDependencyConfig.js +0 -150
  97. package/dist/esm/dist/esm/variables/VariableValueRecorder.js +0 -71
  98. package/dist/esm/dist/esm/variables/adhoc/AdHocFilterBuilder.js +0 -24
  99. package/dist/esm/dist/esm/variables/adhoc/AdHocFilterRenderer.js +0 -303
  100. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +0 -162
  101. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +0 -20
  102. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +0 -640
  103. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +0 -65
  104. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +0 -146
  105. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +0 -114
  106. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +0 -68
  107. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/utils.js +0 -146
  108. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersVariable.js +0 -289
  109. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +0 -76
  110. package/dist/esm/dist/esm/variables/adhoc/getAdhocOptionSearcher.js +0 -13
  111. package/dist/esm/dist/esm/variables/adhoc/patchGetAdhocFilters.js +0 -47
  112. package/dist/esm/dist/esm/variables/components/VariableValueControl.js +0 -23
  113. package/dist/esm/dist/esm/variables/components/VariableValueInput.js +0 -33
  114. package/dist/esm/dist/esm/variables/components/VariableValueSelect.js +0 -228
  115. package/dist/esm/dist/esm/variables/components/VariableValueSelectors.js +0 -72
  116. package/dist/esm/dist/esm/variables/components/getOptionSearcher.js +0 -15
  117. package/dist/esm/dist/esm/variables/constants.js +0 -9
  118. package/dist/esm/dist/esm/variables/getEnrichedFiltersRequest.js +0 -12
  119. package/dist/esm/dist/esm/variables/groupby/GroupByVariable.js +0 -259
  120. package/dist/esm/dist/esm/variables/groupby/GroupByVariableUrlSyncHandler.js +0 -63
  121. package/dist/esm/dist/esm/variables/groupby/findActiveGroupByVariablesByUid.js +0 -13
  122. package/dist/esm/dist/esm/variables/interpolation/ScopedVarsVariable.js +0 -40
  123. package/dist/esm/dist/esm/variables/interpolation/defaults.js +0 -21
  124. package/dist/esm/dist/esm/variables/interpolation/fieldAccessorCache.js +0 -13
  125. package/dist/esm/dist/esm/variables/interpolation/formatRegistry.js +0 -296
  126. package/dist/esm/dist/esm/variables/interpolation/sceneInterpolator.js +0 -87
  127. package/dist/esm/dist/esm/variables/lookupVariable.js +0 -20
  128. package/dist/esm/dist/esm/variables/macros/AllVariablesMacro.js +0 -57
  129. package/dist/esm/dist/esm/variables/macros/contextMacros.js +0 -43
  130. package/dist/esm/dist/esm/variables/macros/dataMacros.js +0 -134
  131. package/dist/esm/dist/esm/variables/macros/index.js +0 -26
  132. package/dist/esm/dist/esm/variables/macros/templateProxies.js +0 -51
  133. package/dist/esm/dist/esm/variables/macros/timeMacros.js +0 -86
  134. package/dist/esm/dist/esm/variables/macros/types.js +0 -11
  135. package/dist/esm/dist/esm/variables/macros/urlMacros.js +0 -56
  136. package/dist/esm/dist/esm/variables/sets/SceneVariableSet.js +0 -254
  137. package/dist/esm/dist/esm/variables/types.js +0 -11
  138. package/dist/esm/dist/esm/variables/utils.js +0 -172
  139. package/dist/esm/dist/esm/variables/variants/ConstantVariable.js +0 -38
  140. package/dist/esm/dist/esm/variables/variants/CustomVariable.js +0 -60
  141. package/dist/esm/dist/esm/variables/variants/DataSourceVariable.js +0 -88
  142. package/dist/esm/dist/esm/variables/variants/IntervalVariable.js +0 -117
  143. package/dist/esm/dist/esm/variables/variants/MultiValueVariable.js +0 -295
  144. package/dist/esm/dist/esm/variables/variants/TestVariable.js +0 -117
  145. package/dist/esm/dist/esm/variables/variants/TextBoxVariable.js +0 -61
  146. package/dist/esm/dist/esm/variables/variants/query/QueryVariable.js +0 -139
  147. package/dist/esm/dist/esm/variables/variants/query/createQueryVariableRunner.js +0 -129
  148. package/dist/esm/dist/esm/variables/variants/query/guards.js +0 -28
  149. package/dist/esm/dist/esm/variables/variants/query/toMetricFindValues.js +0 -96
  150. package/dist/esm/dist/esm/variables/variants/query/utils.js +0 -124
  151. package/dist/esm/querying/DataProviderSharer.js +0 -39
  152. package/dist/esm/src/behaviors/ActWhenVariableChanged.js +0 -27
  153. package/dist/esm/src/behaviors/CursorSync.js +0 -76
  154. package/dist/esm/src/behaviors/LiveNowTimer.js +0 -44
  155. package/dist/esm/src/behaviors/SceneQueryController.js +0 -60
  156. package/dist/esm/src/behaviors/index.js +0 -5
  157. package/dist/esm/src/components/EmbeddedScene.js +0 -59
  158. package/dist/esm/src/components/NestedScene.js +0 -95
  159. package/dist/esm/src/components/SceneApp/SceneApp.js +0 -37
  160. package/dist/esm/src/components/SceneApp/SceneAppPage.js +0 -176
  161. package/dist/esm/src/components/SceneApp/SceneAppPageView.js +0 -104
  162. package/dist/esm/src/components/SceneApp/utils.js +0 -42
  163. package/dist/esm/src/components/SceneByFrameRepeater.js +0 -41
  164. package/dist/esm/src/components/SceneByVariableRepeater.js +0 -55
  165. package/dist/esm/src/components/SceneCanvasText.js +0 -32
  166. package/dist/esm/src/components/SceneControlsSpacer.js +0 -17
  167. package/dist/esm/src/components/SceneDebugger/DebugDetails.js +0 -82
  168. package/dist/esm/src/components/SceneDebugger/DebugTreeNode.js +0 -72
  169. package/dist/esm/src/components/SceneDebugger/SceneDebugger.js +0 -77
  170. package/dist/esm/src/components/SceneReactObject.js +0 -34
  171. package/dist/esm/src/components/SceneRefreshPicker.js +0 -205
  172. package/dist/esm/src/components/SceneTimePicker.js +0 -139
  173. package/dist/esm/src/components/SceneTimeRangeCompare.js +0 -240
  174. package/dist/esm/src/components/SceneToolbarButton.js +0 -33
  175. package/dist/esm/src/components/VizPanel/VizPanel.js +0 -406
  176. package/dist/esm/src/components/VizPanel/VizPanelExploreButton.js +0 -44
  177. package/dist/esm/src/components/VizPanel/VizPanelMenu.js +0 -59
  178. package/dist/esm/src/components/VizPanel/VizPanelRenderer.js +0 -285
  179. package/dist/esm/src/components/VizPanel/VizPanelSeriesLimit.js +0 -45
  180. package/dist/esm/src/components/VizPanel/colorSeriesConfigFactory.js +0 -72
  181. package/dist/esm/src/components/VizPanel/registerRuntimePanelPlugin.js +0 -56
  182. package/dist/esm/src/components/VizPanel/seriesVisibilityConfigFactory.js +0 -164
  183. package/dist/esm/src/components/layout/CSSGrid/SceneCSSGridLayout.js +0 -124
  184. package/dist/esm/src/components/layout/LazyLoader.js +0 -103
  185. package/dist/esm/src/components/layout/SceneFlexLayout.js +0 -135
  186. package/dist/esm/src/components/layout/grid/SceneGridItem.js +0 -30
  187. package/dist/esm/src/components/layout/grid/SceneGridLayout.js +0 -283
  188. package/dist/esm/src/components/layout/grid/SceneGridLayoutRenderer.js +0 -178
  189. package/dist/esm/src/components/layout/grid/SceneGridRow.js +0 -190
  190. package/dist/esm/src/components/layout/grid/constants.js +0 -7
  191. package/dist/esm/src/components/layout/grid/utils.js +0 -36
  192. package/dist/esm/src/components/layout/split/SplitLayout.js +0 -17
  193. package/dist/esm/src/components/layout/split/SplitLayoutRenderer.js +0 -29
  194. package/dist/esm/src/components/layout/split/Splitter.js +0 -386
  195. package/dist/esm/src/core/PanelBuilders/FieldConfigBuilder.js +0 -100
  196. package/dist/esm/src/core/PanelBuilders/FieldConfigBuilders.js +0 -75
  197. package/dist/esm/src/core/PanelBuilders/FieldConfigOverridesBuilder.js +0 -75
  198. package/dist/esm/src/core/PanelBuilders/PanelOptionsBuilder.js +0 -22
  199. package/dist/esm/src/core/PanelBuilders/PanelOptionsBuilders.js +0 -85
  200. package/dist/esm/src/core/PanelBuilders/StandardFieldConfigBuilders.js +0 -52
  201. package/dist/esm/src/core/PanelBuilders/VizConfigBuilder.js +0 -78
  202. package/dist/esm/src/core/PanelBuilders/VizConfigBuilders.js +0 -114
  203. package/dist/esm/src/core/PanelBuilders/VizPanelBuilder.js +0 -162
  204. package/dist/esm/src/core/PanelBuilders/index.js +0 -116
  205. package/dist/esm/src/core/SceneComponentWrapper.js +0 -57
  206. package/dist/esm/src/core/SceneDataNode.js +0 -43
  207. package/dist/esm/src/core/SceneObjectBase.js +0 -286
  208. package/dist/esm/src/core/SceneObjectRef.js +0 -32
  209. package/dist/esm/src/core/SceneTimeRange.js +0 -231
  210. package/dist/esm/src/core/SceneTimeRangeTransformerBase.js +0 -35
  211. package/dist/esm/src/core/SceneTimeZoneOverride.js +0 -63
  212. package/dist/esm/src/core/events.js +0 -11
  213. package/dist/esm/src/core/sceneGraph/getTimeRange.js +0 -10
  214. package/dist/esm/src/core/sceneGraph/index.js +0 -25
  215. package/dist/esm/src/core/sceneGraph/sceneGraph.js +0 -178
  216. package/dist/esm/src/core/sceneGraph/utils.js +0 -64
  217. package/dist/esm/src/core/types.js +0 -15
  218. package/dist/esm/src/index.js +0 -108
  219. package/dist/esm/src/querying/DataLayersMerger.js +0 -46
  220. package/dist/esm/src/querying/DataProviderProxy.js +0 -37
  221. package/dist/esm/src/querying/DataProviderSharer.js +0 -108
  222. package/dist/esm/src/querying/ExtraQueryProvider.js +0 -6
  223. package/dist/esm/src/querying/RuntimeDataSource.js +0 -49
  224. package/dist/esm/src/querying/SceneDataLayerSet.js +0 -100
  225. package/dist/esm/src/querying/SceneDataTransformer.js +0 -178
  226. package/dist/esm/src/querying/SceneQueryRunner.js +0 -468
  227. package/dist/esm/src/querying/extraQueryProcessingOperator.js +0 -46
  228. package/dist/esm/src/querying/getEnrichedDataRequest.js +0 -12
  229. package/dist/esm/src/querying/layers/SceneDataLayerBase.js +0 -112
  230. package/dist/esm/src/querying/layers/SceneDataLayerControls.js +0 -51
  231. package/dist/esm/src/querying/layers/annotations/AnnotationsDataLayer.js +0 -130
  232. package/dist/esm/src/querying/layers/annotations/filterAnnotations.js +0 -85
  233. package/dist/esm/src/querying/layers/annotations/standardAnnotationQuery.js +0 -121
  234. package/dist/esm/src/querying/layers/annotations/standardAnnotationsSupport.js +0 -211
  235. package/dist/esm/src/querying/layers/annotations/utils.js +0 -77
  236. package/dist/esm/src/querying/layers/index.js +0 -2
  237. package/dist/esm/src/querying/registerQueryWithController.js +0 -41
  238. package/dist/esm/src/services/SceneObjectUrlSyncConfig.js +0 -30
  239. package/dist/esm/src/services/UniqueUrlKeyMapper.js +0 -45
  240. package/dist/esm/src/services/UrlSyncContextProvider.js +0 -17
  241. package/dist/esm/src/services/UrlSyncManager.js +0 -167
  242. package/dist/esm/src/services/useUrlSync.js +0 -29
  243. package/dist/esm/src/services/utils.js +0 -75
  244. package/dist/esm/src/utils/ControlsLabel.js +0 -107
  245. package/dist/esm/src/utils/LoadingIndicator.js +0 -19
  246. package/dist/esm/src/utils/SafeSerializableSceneObject.js +0 -39
  247. package/dist/esm/src/utils/compatibility/setWindowGrafanaSceneContext.js +0 -16
  248. package/dist/esm/src/utils/date.js +0 -15
  249. package/dist/esm/src/utils/evaluateTimeRange.js +0 -16
  250. package/dist/esm/src/utils/explore.js +0 -47
  251. package/dist/esm/src/utils/getCompareSeriesRefId.js +0 -4
  252. package/dist/esm/src/utils/getDataSource.js +0 -18
  253. package/dist/esm/src/utils/getMessageFromError.js +0 -24
  254. package/dist/esm/src/utils/metricTree.js +0 -53
  255. package/dist/esm/src/utils/parseUrlParam.js +0 -41
  256. package/dist/esm/src/utils/utils.js +0 -11
  257. package/dist/esm/src/utils/wrapInSafeSerializableSceneObject.js +0 -30
  258. package/dist/esm/src/utils/writeSceneLog.js +0 -12
  259. package/dist/esm/src/variables/VariableDependencyConfig.js +0 -150
  260. package/dist/esm/src/variables/VariableValueRecorder.js +0 -71
  261. package/dist/esm/src/variables/adhoc/AdHocFilterBuilder.js +0 -24
  262. package/dist/esm/src/variables/adhoc/AdHocFilterRenderer.js +0 -303
  263. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +0 -162
  264. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +0 -20
  265. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +0 -640
  266. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +0 -65
  267. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +0 -146
  268. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +0 -114
  269. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +0 -68
  270. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/utils.js +0 -146
  271. package/dist/esm/src/variables/adhoc/AdHocFiltersVariable.js +0 -289
  272. package/dist/esm/src/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +0 -76
  273. package/dist/esm/src/variables/adhoc/getAdhocOptionSearcher.js +0 -13
  274. package/dist/esm/src/variables/adhoc/patchGetAdhocFilters.js +0 -47
  275. package/dist/esm/src/variables/components/VariableValueControl.js +0 -23
  276. package/dist/esm/src/variables/components/VariableValueInput.js +0 -33
  277. package/dist/esm/src/variables/components/VariableValueSelect.js +0 -228
  278. package/dist/esm/src/variables/components/VariableValueSelectors.js +0 -72
  279. package/dist/esm/src/variables/components/getOptionSearcher.js +0 -15
  280. package/dist/esm/src/variables/constants.js +0 -9
  281. package/dist/esm/src/variables/getEnrichedFiltersRequest.js +0 -12
  282. package/dist/esm/src/variables/groupby/GroupByVariable.js +0 -259
  283. package/dist/esm/src/variables/groupby/GroupByVariableUrlSyncHandler.js +0 -63
  284. package/dist/esm/src/variables/groupby/findActiveGroupByVariablesByUid.js +0 -13
  285. package/dist/esm/src/variables/interpolation/ScopedVarsVariable.js +0 -40
  286. package/dist/esm/src/variables/interpolation/defaults.js +0 -21
  287. package/dist/esm/src/variables/interpolation/fieldAccessorCache.js +0 -13
  288. package/dist/esm/src/variables/interpolation/formatRegistry.js +0 -296
  289. package/dist/esm/src/variables/interpolation/sceneInterpolator.js +0 -87
  290. package/dist/esm/src/variables/lookupVariable.js +0 -20
  291. package/dist/esm/src/variables/macros/AllVariablesMacro.js +0 -57
  292. package/dist/esm/src/variables/macros/contextMacros.js +0 -43
  293. package/dist/esm/src/variables/macros/dataMacros.js +0 -134
  294. package/dist/esm/src/variables/macros/index.js +0 -35
  295. package/dist/esm/src/variables/macros/templateProxies.js +0 -51
  296. package/dist/esm/src/variables/macros/timeMacros.js +0 -86
  297. package/dist/esm/src/variables/macros/types.js +0 -11
  298. package/dist/esm/src/variables/macros/urlMacros.js +0 -56
  299. package/dist/esm/src/variables/sets/SceneVariableSet.js +0 -254
  300. package/dist/esm/src/variables/types.js +0 -11
  301. package/dist/esm/src/variables/utils.js +0 -172
  302. package/dist/esm/src/variables/variants/ConstantVariable.js +0 -38
  303. package/dist/esm/src/variables/variants/CustomVariable.js +0 -60
  304. package/dist/esm/src/variables/variants/DataSourceVariable.js +0 -88
  305. package/dist/esm/src/variables/variants/IntervalVariable.js +0 -117
  306. package/dist/esm/src/variables/variants/JsonVariable.js +0 -193
  307. package/dist/esm/src/variables/variants/LocalValueVariable.js +0 -56
  308. package/dist/esm/src/variables/variants/MultiValueVariable.js +0 -295
  309. package/dist/esm/src/variables/variants/TestVariable.js +0 -117
  310. package/dist/esm/src/variables/variants/TextBoxVariable.js +0 -61
  311. package/dist/esm/src/variables/variants/guards.js +0 -27
  312. package/dist/esm/src/variables/variants/query/QueryVariable.js +0 -139
  313. package/dist/esm/src/variables/variants/query/createQueryVariableRunner.js +0 -129
  314. package/dist/esm/src/variables/variants/query/guards.js +0 -28
  315. package/dist/esm/src/variables/variants/query/toMetricFindValues.js +0 -96
  316. package/dist/esm/src/variables/variants/query/utils.js +0 -124
  317. package/dist/esm/variables/variants/JsonVariable.js +0 -96
  318. package/dist/esm/variables/variants/json/JsonVariable.js +0 -95
  319. package/dist/esm/variables/variants/json/JsonVariableOptionProviders.js +0 -70
@@ -1,56 +0,0 @@
1
- import { locationService, config } from '@grafana/runtime';
2
-
3
- class UrlMacro {
4
- constructor(name, _) {
5
- this.state = { name, type: "url_macro" };
6
- }
7
- getValue(fieldPath) {
8
- var _a;
9
- const location = locationService.getLocation();
10
- const subUrl = (_a = config.appSubUrl) != null ? _a : "";
11
- switch (fieldPath != null ? fieldPath : "") {
12
- case "params":
13
- return new UrlStateFormatter(location.search);
14
- case "path":
15
- return subUrl + location.pathname;
16
- case "":
17
- default:
18
- return subUrl + location.pathname + location.search;
19
- }
20
- }
21
- getValueText() {
22
- return "";
23
- }
24
- }
25
- class UrlStateFormatter {
26
- constructor(_urlQueryParams) {
27
- this._urlQueryParams = _urlQueryParams;
28
- }
29
- formatter(options) {
30
- if (!options) {
31
- return this._urlQueryParams;
32
- }
33
- const params = options.split(":");
34
- if (params[0] === "exclude" && params.length > 1) {
35
- const allParams = new URLSearchParams(this._urlQueryParams);
36
- for (const param of params[1].split(",")) {
37
- allParams.delete(param);
38
- }
39
- return `?${allParams}`;
40
- }
41
- if (params[0] === "include" && params.length > 1) {
42
- const allParams = new URLSearchParams(this._urlQueryParams);
43
- const includeOnly = params[1].split(",");
44
- for (const param of allParams.keys()) {
45
- if (!includeOnly.includes(param)) {
46
- allParams.delete(param);
47
- }
48
- }
49
- return `?${allParams}`;
50
- }
51
- return this._urlQueryParams;
52
- }
53
- }
54
-
55
- export { UrlMacro };
56
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsTWFjcm9zLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi92YXJpYWJsZXMvbWFjcm9zL3VybE1hY3Jvcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBsb2NhdGlvblNlcnZpY2UsIGNvbmZpZyB9IGZyb20gJ0BncmFmYW5hL3J1bnRpbWUnO1xuXG5jbGFzcyBVcmxNYWNybyB7XG4gIGNvbnN0cnVjdG9yKG5hbWUsIF8pIHtcbiAgICB0aGlzLnN0YXRlID0geyBuYW1lLCB0eXBlOiBcInVybF9tYWNyb1wiIH07XG4gIH1cbiAgZ2V0VmFsdWUoZmllbGRQYXRoKSB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IGxvY2F0aW9uID0gbG9jYXRpb25TZXJ2aWNlLmdldExvY2F0aW9uKCk7XG4gICAgY29uc3Qgc3ViVXJsID0gKF9hID0gY29uZmlnLmFwcFN1YlVybCkgIT0gbnVsbCA/IF9hIDogXCJcIjtcbiAgICBzd2l0Y2ggKGZpZWxkUGF0aCAhPSBudWxsID8gZmllbGRQYXRoIDogXCJcIikge1xuICAgICAgY2FzZSBcInBhcmFtc1wiOlxuICAgICAgICByZXR1cm4gbmV3IFVybFN0YXRlRm9ybWF0dGVyKGxvY2F0aW9uLnNlYXJjaCk7XG4gICAgICBjYXNlIFwicGF0aFwiOlxuICAgICAgICByZXR1cm4gc3ViVXJsICsgbG9jYXRpb24ucGF0aG5hbWU7XG4gICAgICBjYXNlIFwiXCI6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gc3ViVXJsICsgbG9jYXRpb24ucGF0aG5hbWUgKyBsb2NhdGlvbi5zZWFyY2g7XG4gICAgfVxuICB9XG4gIGdldFZhbHVlVGV4dCgpIHtcbiAgICByZXR1cm4gXCJcIjtcbiAgfVxufVxuY2xhc3MgVXJsU3RhdGVGb3JtYXR0ZXIge1xuICBjb25zdHJ1Y3RvcihfdXJsUXVlcnlQYXJhbXMpIHtcbiAgICB0aGlzLl91cmxRdWVyeVBhcmFtcyA9IF91cmxRdWVyeVBhcmFtcztcbiAgfVxuICBmb3JtYXR0ZXIob3B0aW9ucykge1xuICAgIGlmICghb3B0aW9ucykge1xuICAgICAgcmV0dXJuIHRoaXMuX3VybFF1ZXJ5UGFyYW1zO1xuICAgIH1cbiAgICBjb25zdCBwYXJhbXMgPSBvcHRpb25zLnNwbGl0KFwiOlwiKTtcbiAgICBpZiAocGFyYW1zWzBdID09PSBcImV4Y2x1ZGVcIiAmJiBwYXJhbXMubGVuZ3RoID4gMSkge1xuICAgICAgY29uc3QgYWxsUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh0aGlzLl91cmxRdWVyeVBhcmFtcyk7XG4gICAgICBmb3IgKGNvbnN0IHBhcmFtIG9mIHBhcmFtc1sxXS5zcGxpdChcIixcIikpIHtcbiAgICAgICAgYWxsUGFyYW1zLmRlbGV0ZShwYXJhbSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYD8ke2FsbFBhcmFtc31gO1xuICAgIH1cbiAgICBpZiAocGFyYW1zWzBdID09PSBcImluY2x1ZGVcIiAmJiBwYXJhbXMubGVuZ3RoID4gMSkge1xuICAgICAgY29uc3QgYWxsUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh0aGlzLl91cmxRdWVyeVBhcmFtcyk7XG4gICAgICBjb25zdCBpbmNsdWRlT25seSA9IHBhcmFtc1sxXS5zcGxpdChcIixcIik7XG4gICAgICBmb3IgKGNvbnN0IHBhcmFtIG9mIGFsbFBhcmFtcy5rZXlzKCkpIHtcbiAgICAgICAgaWYgKCFpbmNsdWRlT25seS5pbmNsdWRlcyhwYXJhbSkpIHtcbiAgICAgICAgICBhbGxQYXJhbXMuZGVsZXRlKHBhcmFtKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGA/JHthbGxQYXJhbXN9YDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3VybFF1ZXJ5UGFyYW1zO1xuICB9XG59XG5cbmV4cG9ydCB7IFVybE1hY3JvIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRYSnNUV0ZqY205ekxtcHpJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTh1TGk4dUxpOXpjbU12ZG1GeWFXRmliR1Z6TDIxaFkzSnZjeTkxY214TllXTnliM011ZEhNaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIc2dZMjl1Wm1sbkxDQnNiMk5oZEdsdmJsTmxjblpwWTJVZ2ZTQm1jbTl0SUNkQVozSmhabUZ1WVM5eWRXNTBhVzFsSnp0Y2JtbHRjRzl5ZENCN0lGTmpaVzVsVDJKcVpXTjBJSDBnWm5KdmJTQW5MaTR2TGk0dlkyOXlaUzkwZVhCbGN5YzdYRzVwYlhCdmNuUWdleUJHYjNKdFlYUldZWEpwWVdKc1pTQjlJR1p5YjIwZ0p5NHVMMmx1ZEdWeWNHOXNZWFJwYjI0dlptOXliV0YwVW1WbmFYTjBjbmtuTzF4dWFXMXdiM0owSUhzZ1EzVnpkRzl0Vm1GeWFXRmliR1ZXWVd4MVpTQjlJR1p5YjIwZ0p5NHVMM1I1Y0dWekp6dGNibHh1Wlhod2IzSjBJR05zWVhOeklGVnliRTFoWTNKdklHbHRjR3hsYldWdWRITWdSbTl5YldGMFZtRnlhV0ZpYkdVZ2UxeHVJQ0J3ZFdKc2FXTWdjM1JoZEdVNklIc2dibUZ0WlRvZ2MzUnlhVzVuT3lCMGVYQmxPaUJ6ZEhKcGJtY2dmVHRjYmx4dUlDQndkV0pzYVdNZ1kyOXVjM1J5ZFdOMGIzSW9ibUZ0WlRvZ2MzUnlhVzVuTENCZk9pQlRZMlZ1WlU5aWFtVmpkQ2tnZTF4dUlDQWdJSFJvYVhNdWMzUmhkR1VnUFNCN0lHNWhiV1U2SUc1aGJXVXNJSFI1Y0dVNklDZDFjbXhmYldGamNtOG5JSDA3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nWjJWMFZtRnNkV1VvWm1sbGJHUlFZWFJvUHpvZ2MzUnlhVzVuS1NCN1hHNGdJQ0FnWTI5dWMzUWdiRzlqWVhScGIyNGdQU0JzYjJOaGRHbHZibE5sY25acFkyVXVaMlYwVEc5allYUnBiMjRvS1R0Y2JpQWdJQ0JqYjI1emRDQnpkV0pWY213Z1BTQmpiMjVtYVdjdVlYQndVM1ZpVlhKc0lEOC9JQ2NuTzF4dVhHNGdJQ0FnYzNkcGRHTm9JQ2htYVdWc1pGQmhkR2dnUHo4Z0p5Y3BJSHRjYmlBZ0lDQWdJR05oYzJVZ0ozQmhjbUZ0Y3ljNlhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCdVpYY2dWWEpzVTNSaGRHVkdiM0p0WVhSMFpYSW9iRzlqWVhScGIyNHVjMlZoY21Ob0tUdGNiaUFnSUNBZ0lHTmhjMlVnSjNCaGRHZ25PbHh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdjM1ZpVlhKc0lDc2diRzlqWVhScGIyNHVjR0YwYUc1aGJXVTdYRzRnSUNBZ0lDQmpZWE5sSUNjbk9seHVJQ0FnSUNBZ1pHVm1ZWFZzZERwY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhOMVlsVnliQ0FySUd4dlkyRjBhVzl1TG5CaGRHaHVZVzFsSUNzZ2JHOWpZWFJwYjI0dWMyVmhjbU5vTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJuWlhSV1lXeDFaVlJsZUhRL0tDazZJSE4wY21sdVp5QjdYRzRnSUNBZ2NtVjBkWEp1SUNjbk8xeHVJQ0I5WEc1OVhHNWNibU5zWVhOeklGVnliRk4wWVhSbFJtOXliV0YwZEdWeUlHbHRjR3hsYldWdWRITWdRM1Z6ZEc5dFZtRnlhV0ZpYkdWV1lXeDFaU0I3WEc0Z0lIQjFZbXhwWXlCamIyNXpkSEoxWTNSdmNpaHdjbWwyWVhSbElGOTFjbXhSZFdWeWVWQmhjbUZ0Y3pvZ2MzUnlhVzVuS1NCN2ZWeHVYRzRnSUhCMVlteHBZeUJtYjNKdFlYUjBaWElvYjNCMGFXOXVjem9nYzNSeWFXNW5LVG9nYzNSeWFXNW5JSHRjYmlBZ0lDQnBaaUFvSVc5d2RHbHZibk1wSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxsOTFjbXhSZFdWeWVWQmhjbUZ0Y3p0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JqYjI1emRDQndZWEpoYlhNZ1BTQnZjSFJwYjI1ekxuTndiR2wwS0NjNkp5azdYRzRnSUNBZ2FXWWdLSEJoY21GdGMxc3dYU0E5UFQwZ0oyVjRZMngxWkdVbklDWW1JSEJoY21GdGN5NXNaVzVuZEdnZ1BpQXhLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQmhiR3hRWVhKaGJYTWdQU0J1WlhjZ1ZWSk1VMlZoY21Ob1VHRnlZVzF6S0hSb2FYTXVYM1Z5YkZGMVpYSjVVR0Z5WVcxektUdGNiaUFnSUNBZ0lHWnZjaUFvWTI5dWMzUWdjR0Z5WVcwZ2IyWWdjR0Z5WVcxeld6RmRMbk53YkdsMEtDY3NKeWtwSUh0Y2JpQWdJQ0FnSUNBZ1lXeHNVR0Z5WVcxekxtUmxiR1YwWlNod1lYSmhiU2s3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUhKbGRIVnliaUJnUHlSN1lXeHNVR0Z5WVcxemZXQTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLSEJoY21GdGMxc3dYU0E5UFQwZ0oybHVZMngxWkdVbklDWW1JSEJoY21GdGN5NXNaVzVuZEdnZ1BpQXhLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQmhiR3hRWVhKaGJYTWdQU0J1WlhjZ1ZWSk1VMlZoY21Ob1VHRnlZVzF6S0hSb2FYTXVYM1Z5YkZGMVpYSjVVR0Z5WVcxektUdGNiaUFnSUNBZ0lHTnZibk4wSUdsdVkyeDFaR1ZQYm14NUlEMGdjR0Z5WVcxeld6RmRMbk53YkdsMEtDY3NKeWs3WEc1Y2JpQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ2NHRnlZVzBnYjJZZ1lXeHNVR0Z5WVcxekxtdGxlWE1vS1NrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvSVdsdVkyeDFaR1ZQYm14NUxtbHVZMngxWkdWektIQmhjbUZ0S1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJR0ZzYkZCaGNtRnRjeTVrWld4bGRHVW9jR0Z5WVcwcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJSEpsZEhWeWJpQmdQeVI3WVd4c1VHRnlZVzF6ZldBN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVgzVnliRkYxWlhKNVVHRnlZVzF6TzF4dUlDQjlYRzU5WEc0aVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWpzN1FVRkxUeXhOUVVGTkxGRkJRVzFETEVOQlFVRTdRVUZCUVN4RlFVZDJReXhYUVVGQkxFTkJRVmtzVFVGQll5eERRVUZuUWl4RlFVRkJPMEZCUXk5RExFbEJRVUVzU1VGQlFTeERRVUZMTEV0QlFWRXNSMEZCUVN4RlFVRkZMRWxCUVZrc1JVRkJRU3hKUVVGQkxFVkJRVTBzVjBGQldTeEZRVUZCTEVOQlFVRTdRVUZCUVN4SFFVTXZRenRCUVVGQkxFVkJSVThzVTBGQlV5eFRRVUZ2UWl4RlFVRkJPMEZCV25SRExFbEJRVUVzU1VGQlFTeEZRVUZCTEVOQlFVRTdRVUZoU1N4SlFVRk5MRTFCUVVFc1VVRkJRU3hIUVVGWExHZENRVUZuUWl4WFFVRlpMRVZCUVVFc1EwRkJRVHRCUVVNM1F5eEpRVUZOTEUxQlFVRXNUVUZCUVN4SFFVRkJMRU5CUVZNc1JVRkJUeXhIUVVGQkxFMUJRVUVzUTBGQlFTeFRRVUZCTEV0QlFWQXNTVUZCYjBJc1IwRkJRU3hGUVVGQkxFZEJRVUVzUlVGQlFTeERRVUZCTzBGQlJXNURMRWxCUVVFc1VVRkJVU3hUUVVGaExFbEJRVUVzU1VGQlFTeEhRVUZCTEZOQlFVRXNSMEZCUVN4RlFVRkJPMEZCUVVFc1RVRkRaQ3hMUVVGQkxGRkJRVUU3UVVGRFNDeFJRVUZQTEU5QlFVRXNTVUZCU1N4cFFrRkJhMElzUTBGQlFTeFJRVUZCTEVOQlFWTXNUVUZCVFN4RFFVRkJMRU5CUVVFN1FVRkJRU3hOUVVONlF5eExRVUZCTEUxQlFVRTdRVUZEU0N4UlFVRkJMRTlCUVU4c1UwRkJVeXhSUVVGVExFTkJRVUVzVVVGQlFTeERRVUZCTzBGQlFVRXNUVUZEZEVJc1MwRkJRU3hGUVVGQkxFTkJRVUU3UVVGQlFTeE5RVUZCTzBGQlJVZ3NVVUZCVHl4UFFVRkJMRTFCUVVFc1IwRkJVeXhSUVVGVExFTkJRVUVzVVVGQlFTeEhRVUZYTEZGQlFWTXNRMEZCUVN4TlFVRkJMRU5CUVVFN1FVRkJRU3hMUVVGQk8wRkJRVUVzUjBGRmJrUTdRVUZCUVN4RlFVVlBMRmxCUVhkQ0xFZEJRVUU3UVVGRE4wSXNTVUZCVHl4UFFVRkJMRVZCUVVFc1EwRkJRVHRCUVVGQkxFZEJRMVE3UVVGRFJpeERRVUZCTzBGQlJVRXNUVUZCVFN4cFFrRkJhVVFzUTBGQlFUdEJRVUZCTEVWQlF6bERMRmxCUVc5Q0xHVkJRWGxDTEVWQlFVRTdRVUZCZWtJc1NVRkJRU3hKUVVGQkxFTkJRVUVzWlVGQlFTeEhRVUZCTEdWQlFVRXNRMEZCUVR0QlFVRkJMRWRCUVRCQ08wRkJRVUVzUlVGRk9VTXNWVUZCVlN4UFFVRjVRaXhGUVVGQk8wRkJRM2hETEVsQlFVRXNTVUZCU1N4RFFVRkRMRTlCUVZNc1JVRkJRVHRCUVVOYUxFMUJRVUVzVDBGQlR5eEpRVUZMTEVOQlFVRXNaVUZCUVN4RFFVRkJPMEZCUVVFc1MwRkRaRHRCUVVWQkxFbEJRVTBzVFVGQlFTeE5RVUZCTEVkQlFWTXNUMEZCVVN4RFFVRkJMRXRCUVVFc1EwRkJUU3hIUVVGSExFTkJRVUVzUTBGQlFUdEJRVU5vUXl4SlFVRkJMRWxCUVVrc1RVRkJUeXhEUVVGQkxFTkJRVUVzUTBGQlFTeExRVUZQTEZOQlFXRXNTVUZCUVN4TlFVRkJMRU5CUVU4c1UwRkJVeXhEUVVGSExFVkJRVUU3UVVGRGFFUXNUVUZCUVN4TlFVRk5MRk5CUVZrc1IwRkJRU3hKUVVGSkxHVkJRV2RDTEVOQlFVRXNTVUZCUVN4RFFVRkxMR1ZCUVdVc1EwRkJRU3hEUVVGQk8wRkJRekZFTEUxQlFVRXNTMEZCUVN4TlFVRlhMRXRCUVZNc1NVRkJRU3hOUVVGQkxFTkJRVThzUTBGQlJ5eERRVUZCTEVOQlFVRXNTMEZCUVN4RFFVRk5MRWRCUVVjc1EwRkJSeXhGUVVGQk8wRkJRM2hETEZGQlFVRXNVMEZCUVN4RFFVRlZMRTlCUVU4c1MwRkJTeXhEUVVGQkxFTkJRVUU3UVVGQlFTeFBRVU40UWp0QlFVVkJMRTFCUVVFc1QwRkJUeXhEUVVGSkxFTkJRVUVzUlVGQlFTeFRRVUZCTEVOQlFVRXNRMEZCUVN4RFFVRkJPMEZCUVVFc1MwRkRZanRCUVVWQkxFbEJRVUVzU1VGQlNTeE5RVUZQTEVOQlFVRXNRMEZCUVN4RFFVRkJMRXRCUVU4c1UwRkJZU3hKUVVGQkxFMUJRVUVzUTBGQlR5eFRRVUZUTEVOQlFVY3NSVUZCUVR0QlFVTm9SQ3hOUVVGQkxFMUJRVTBzVTBGQldTeEhRVUZCTEVsQlFVa3NaVUZCWjBJc1EwRkJRU3hKUVVGQkxFTkJRVXNzWlVGQlpTeERRVUZCTEVOQlFVRTdRVUZETVVRc1RVRkJRU3hOUVVGTkxGZEJRV01zUjBGQlFTeE5RVUZCTEVOQlFVOHNRMEZCUnl4RFFVRkJMRU5CUVVFc1MwRkJRU3hEUVVGTkxFZEJRVWNzUTBGQlFTeERRVUZCTzBGQlJYWkRMRTFCUVZjc1MwRkJRU3hOUVVGQkxFdEJRVUVzU1VGQlV5eFRRVUZWTEVOQlFVRXNTVUZCUVN4RlFVRlJMRVZCUVVFN1FVRkRjRU1zVVVGQlFTeEpRVUZKTEVOQlFVTXNWMEZCUVN4RFFVRlpMRkZCUVZNc1EwRkJRU3hMUVVGTExFTkJRVWNzUlVGQlFUdEJRVU5vUXl4VlFVRkJMRk5CUVVFc1EwRkJWU3hQUVVGUExFdEJRVXNzUTBGQlFTeERRVUZCTzBGQlFVRXNVMEZEZUVJN1FVRkJRU3hQUVVOR08wRkJSVUVzVFVGQlFTeFBRVUZQTEVOQlFVa3NRMEZCUVN4RlFVRkJMRk5CUVVFc1EwRkJRU3hEUVVGQkxFTkJRVUU3UVVGQlFTeExRVU5pTzBGQlJVRXNTVUZCUVN4UFFVRlBMRWxCUVVzc1EwRkJRU3hsUVVGQkxFTkJRVUU3UVVGQlFTeEhRVU5rTzBGQlEwWTdPenM3SW4wPVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBS08sTUFBTSxRQUFtQyxDQUFBO0FBR3ZDLEVBQUEsV0FBQSxDQUFZLE1BQWMsQ0FBZ0IsRUFBQTtBQUMvQyxJQUFBLElBQUEsQ0FBSyxLQUFRLEdBQUEsRUFBRSxJQUFZLEVBQUEsSUFBQSxFQUFNLFdBQVksRUFBQSxDQUFBO0FBQUEsR0FBQTtBQUd4QyxFQUFBLFFBQUEsQ0FBUyxTQUFvQixFQUFBO0FBWnRDLElBQUEsSUFBQSxFQUFBLENBQUE7QUFhVSxJQUFBLE1BQUEsUUFBQSxHQUFXLGdCQUFnQixXQUFZLEVBQUEsQ0FBQTtBQUN2QyxJQUFBLE1BQUEsTUFBUyxHQUFBLENBQUEsRUFBQSxHQUFPLE1BQUEs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
@@ -1,254 +0,0 @@
1
- import { VariableRefresh } from '@grafana/data';
2
- import { sceneGraph } from '../../core/sceneGraph/index.js';
3
- import { SceneObjectBase } from '../../core/SceneObjectBase.js';
4
- import { writeSceneLog } from '../../utils/writeSceneLog.js';
5
- import { SceneVariableValueChangedEvent } from '../types.js';
6
- import { VariableValueRecorder } from '../VariableValueRecorder.js';
7
-
8
- class SceneVariableSet extends SceneObjectBase {
9
- constructor(state) {
10
- super(state);
11
- this._variablesThatHaveChanged = /* @__PURE__ */ new Set();
12
- this._variablesToUpdate = /* @__PURE__ */ new Set();
13
- this._updating = /* @__PURE__ */ new Map();
14
- this._variableValueRecorder = new VariableValueRecorder();
15
- this._variableDependency = new SceneVariableSetVariableDependencyHandler(
16
- this._handleParentVariableUpdatesCompleted.bind(this)
17
- );
18
- this._onActivate = () => {
19
- const timeRange = sceneGraph.getTimeRange(this);
20
- this._subs.add(
21
- this.subscribeToEvent(SceneVariableValueChangedEvent, (event) => this._handleVariableValueChanged(event.payload))
22
- );
23
- this._subs.add(
24
- timeRange.subscribeToState(() => {
25
- this._refreshTimeRangeBasedVariables();
26
- })
27
- );
28
- this._subs.add(this.subscribeToState(this._onStateChanged));
29
- this._checkForVariablesThatChangedWhileInactive();
30
- for (const variable of this.state.variables) {
31
- if (this._variableNeedsUpdate(variable)) {
32
- this._variablesToUpdate.add(variable);
33
- }
34
- }
35
- this._updateNextBatch();
36
- return this._onDeactivate;
37
- };
38
- this._onDeactivate = () => {
39
- var _a;
40
- for (const update of this._updating.values()) {
41
- (_a = update.subscription) == null ? void 0 : _a.unsubscribe();
42
- }
43
- for (const variable of this.state.variables) {
44
- if (!this._variablesToUpdate.has(variable) && !this._updating.has(variable)) {
45
- this._variableValueRecorder.recordCurrentValue(variable);
46
- }
47
- }
48
- this._variablesToUpdate.clear();
49
- this._updating.clear();
50
- };
51
- this._onStateChanged = (newState, oldState) => {
52
- const variablesToUpdateCountStart = this._variablesToUpdate.size;
53
- for (const variable of oldState.variables) {
54
- if (!newState.variables.includes(variable)) {
55
- const updating = this._updating.get(variable);
56
- if (updating == null ? void 0 : updating.subscription) {
57
- updating.subscription.unsubscribe();
58
- }
59
- this._updating.delete(variable);
60
- this._variablesToUpdate.delete(variable);
61
- }
62
- }
63
- for (const variable of newState.variables) {
64
- if (!oldState.variables.includes(variable)) {
65
- if (this._variableNeedsUpdate(variable)) {
66
- this._variablesToUpdate.add(variable);
67
- }
68
- }
69
- }
70
- if (variablesToUpdateCountStart === 0 && this._variablesToUpdate.size > 0) {
71
- this._updateNextBatch();
72
- }
73
- };
74
- this.addActivationHandler(this._onActivate);
75
- }
76
- getByName(name) {
77
- return this.state.variables.find((x) => x.state.name === name);
78
- }
79
- _refreshTimeRangeBasedVariables() {
80
- for (const variable of this.state.variables) {
81
- if ("refresh" in variable.state && variable.state.refresh === VariableRefresh.onTimeRangeChanged) {
82
- this._variablesToUpdate.add(variable);
83
- }
84
- }
85
- this._updateNextBatch();
86
- }
87
- _checkForVariablesThatChangedWhileInactive() {
88
- if (!this._variableValueRecorder.hasValues()) {
89
- return;
90
- }
91
- for (const variable of this.state.variables) {
92
- if (this._variableValueRecorder.hasValueChanged(variable)) {
93
- writeVariableTraceLog(variable, "Changed while in-active");
94
- this._addDependentVariablesToUpdateQueue(variable);
95
- }
96
- }
97
- }
98
- _variableNeedsUpdate(variable) {
99
- if (variable.isLazy) {
100
- return false;
101
- }
102
- if (!variable.validateAndUpdate) {
103
- return false;
104
- }
105
- if (this._variableValueRecorder.hasRecordedValue(variable)) {
106
- writeVariableTraceLog(variable, "Skipping updateAndValidate current value valid");
107
- return false;
108
- }
109
- return true;
110
- }
111
- _updateNextBatch() {
112
- for (const variable of this._variablesToUpdate) {
113
- if (!variable.validateAndUpdate) {
114
- throw new Error("Variable added to variablesToUpdate but does not have validateAndUpdate");
115
- }
116
- if (this._updating.has(variable)) {
117
- continue;
118
- }
119
- if (sceneGraph.hasVariableDependencyInLoadingState(variable)) {
120
- continue;
121
- }
122
- const variableToUpdate = {
123
- variable
124
- };
125
- this._updating.set(variable, variableToUpdate);
126
- writeVariableTraceLog(variable, "updateAndValidate started");
127
- variableToUpdate.subscription = variable.validateAndUpdate().subscribe({
128
- next: () => this._validateAndUpdateCompleted(variable),
129
- complete: () => this._validateAndUpdateCompleted(variable),
130
- error: (err) => this._handleVariableError(variable, err)
131
- });
132
- }
133
- }
134
- _validateAndUpdateCompleted(variable) {
135
- var _a;
136
- if (!this._updating.has(variable)) {
137
- return;
138
- }
139
- const update = this._updating.get(variable);
140
- (_a = update == null ? void 0 : update.subscription) == null ? void 0 : _a.unsubscribe();
141
- this._updating.delete(variable);
142
- this._variablesToUpdate.delete(variable);
143
- writeVariableTraceLog(variable, "updateAndValidate completed");
144
- this._notifyDependentSceneObjects(variable);
145
- this._updateNextBatch();
146
- }
147
- cancel(variable) {
148
- var _a;
149
- const update = this._updating.get(variable);
150
- (_a = update == null ? void 0 : update.subscription) == null ? void 0 : _a.unsubscribe();
151
- this._updating.delete(variable);
152
- this._variablesToUpdate.delete(variable);
153
- }
154
- _handleVariableError(variable, err) {
155
- var _a;
156
- const update = this._updating.get(variable);
157
- (_a = update == null ? void 0 : update.subscription) == null ? void 0 : _a.unsubscribe();
158
- this._updating.delete(variable);
159
- this._variablesToUpdate.delete(variable);
160
- variable.setState({ loading: false, error: err.message });
161
- console.error("SceneVariableSet updateAndValidate error", err);
162
- writeVariableTraceLog(variable, "updateAndValidate error", err);
163
- this._notifyDependentSceneObjects(variable);
164
- this._updateNextBatch();
165
- }
166
- _handleVariableValueChanged(variableThatChanged) {
167
- this._variablesThatHaveChanged.add(variableThatChanged);
168
- this._addDependentVariablesToUpdateQueue(variableThatChanged);
169
- if (!this._updating.has(variableThatChanged)) {
170
- this._updateNextBatch();
171
- this._notifyDependentSceneObjects(variableThatChanged);
172
- }
173
- }
174
- _handleParentVariableUpdatesCompleted(variable, hasChanged) {
175
- if (hasChanged) {
176
- this._addDependentVariablesToUpdateQueue(variable);
177
- }
178
- if (this._variablesToUpdate.size > 0 && this._updating.size === 0) {
179
- this._updateNextBatch();
180
- }
181
- }
182
- _addDependentVariablesToUpdateQueue(variableThatChanged) {
183
- for (const otherVariable of this.state.variables) {
184
- if (otherVariable.variableDependency) {
185
- if (otherVariable.variableDependency.hasDependencyOn(variableThatChanged.state.name)) {
186
- writeVariableTraceLog(otherVariable, "Added to update queue, dependant variable value changed");
187
- if (this._updating.has(otherVariable) && otherVariable.onCancel) {
188
- otherVariable.onCancel();
189
- }
190
- this._variablesToUpdate.add(otherVariable);
191
- }
192
- }
193
- }
194
- }
195
- _notifyDependentSceneObjects(variable) {
196
- if (!this.parent) {
197
- return;
198
- }
199
- this._traverseSceneAndNotify(this.parent, variable, this._variablesThatHaveChanged.has(variable));
200
- this._variablesThatHaveChanged.delete(variable);
201
- }
202
- _traverseSceneAndNotify(sceneObject, variable, hasChanged) {
203
- if (this === sceneObject) {
204
- return;
205
- }
206
- if (!sceneObject.isActive) {
207
- return;
208
- }
209
- if (sceneObject.state.$variables && sceneObject.state.$variables !== this) {
210
- const localVar = sceneObject.state.$variables.getByName(variable.state.name);
211
- if (localVar) {
212
- return;
213
- }
214
- }
215
- if (sceneObject.variableDependency) {
216
- sceneObject.variableDependency.variableUpdateCompleted(variable, hasChanged);
217
- }
218
- sceneObject.forEachChild((child) => this._traverseSceneAndNotify(child, variable, hasChanged));
219
- }
220
- isVariableLoadingOrWaitingToUpdate(variable) {
221
- if (variable.isAncestorLoading && variable.isAncestorLoading()) {
222
- return true;
223
- }
224
- if (this._variablesToUpdate.has(variable) || this._updating.has(variable)) {
225
- return true;
226
- }
227
- return sceneGraph.hasVariableDependencyInLoadingState(variable);
228
- }
229
- }
230
- function writeVariableTraceLog(variable, message, err) {
231
- if (err) {
232
- writeSceneLog("SceneVariableSet", `Variable[${variable.state.name}]: ${message}`, err);
233
- } else {
234
- writeSceneLog("SceneVariableSet", `Variable[${variable.state.name}]: ${message}`);
235
- }
236
- }
237
- class SceneVariableSetVariableDependencyHandler {
238
- constructor(_variableUpdatesCompleted) {
239
- this._variableUpdatesCompleted = _variableUpdatesCompleted;
240
- this._emptySet = /* @__PURE__ */ new Set();
241
- }
242
- getNames() {
243
- return this._emptySet;
244
- }
245
- hasDependencyOn(name) {
246
- return false;
247
- }
248
- variableUpdateCompleted(variable, hasChanged) {
249
- this._variableUpdatesCompleted(variable, hasChanged);
250
- }
251
- }
252
-
253
- export { SceneVariableSet };
254
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NlbmVWYXJpYWJsZVNldC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdmFyaWFibGVzL3NldHMvU2NlbmVWYXJpYWJsZVNldC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYXJpYWJsZVJlZnJlc2ggfSBmcm9tICdAZ3JhZmFuYS9kYXRhJztcbmltcG9ydCB7IHNjZW5lR3JhcGggfSBmcm9tICcuLi8uLi9jb3JlL3NjZW5lR3JhcGgvaW5kZXguanMnO1xuaW1wb3J0IHsgU2NlbmVPYmplY3RCYXNlIH0gZnJvbSAnLi4vLi4vY29yZS9TY2VuZU9iamVjdEJhc2UuanMnO1xuaW1wb3J0IHsgd3JpdGVTY2VuZUxvZyB9IGZyb20gJy4uLy4uL3V0aWxzL3dyaXRlU2NlbmVMb2cuanMnO1xuaW1wb3J0IHsgU2NlbmVWYXJpYWJsZVZhbHVlQ2hhbmdlZEV2ZW50IH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuaW1wb3J0IHsgVmFyaWFibGVWYWx1ZVJlY29yZGVyIH0gZnJvbSAnLi4vVmFyaWFibGVWYWx1ZVJlY29yZGVyLmpzJztcblxuY2xhc3MgU2NlbmVWYXJpYWJsZVNldCBleHRlbmRzIFNjZW5lT2JqZWN0QmFzZSB7XG4gIGNvbnN0cnVjdG9yKHN0YXRlKSB7XG4gICAgc3VwZXIoc3RhdGUpO1xuICAgIHRoaXMuX3ZhcmlhYmxlc1RoYXRIYXZlQ2hhbmdlZCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7XG4gICAgdGhpcy5fdmFyaWFibGVzVG9VcGRhdGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpO1xuICAgIHRoaXMuX3VwZGF0aW5nID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgICB0aGlzLl92YXJpYWJsZVZhbHVlUmVjb3JkZXIgPSBuZXcgVmFyaWFibGVWYWx1ZVJlY29yZGVyKCk7XG4gICAgdGhpcy5fdmFyaWFibGVEZXBlbmRlbmN5ID0gbmV3IFNjZW5lVmFyaWFibGVTZXRWYXJpYWJsZURlcGVuZGVuY3lIYW5kbGVyKFxuICAgICAgdGhpcy5faGFuZGxlUGFyZW50VmFyaWFibGVVcGRhdGVzQ29tcGxldGVkLmJpbmQodGhpcylcbiAgICApO1xuICAgIHRoaXMuX29uQWN0aXZhdGUgPSAoKSA9PiB7XG4gICAgICBjb25zdCB0aW1lUmFuZ2UgPSBzY2VuZUdyYXBoLmdldFRpbWVSYW5nZSh0aGlzKTtcbiAgICAgIHRoaXMuX3N1YnMuYWRkKFxuICAgICAgICB0aGlzLnN1YnNjcmliZVRvRXZlbnQoU2NlbmVWYXJpYWJsZVZhbHVlQ2hhbmdlZEV2ZW50LCAoZXZlbnQpID0+IHRoaXMuX2hhbmRsZVZhcmlhYmxlVmFsdWVDaGFuZ2VkKGV2ZW50LnBheWxvYWQpKVxuICAgICAgKTtcbiAgICAgIHRoaXMuX3N1YnMuYWRkKFxuICAgICAgICB0aW1lUmFuZ2Uuc3Vic2NyaWJlVG9TdGF0ZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fcmVmcmVzaFRpbWVSYW5nZUJhc2VkVmFyaWFibGVzKCk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgdGhpcy5fc3Vicy5hZGQodGhpcy5zdWJzY3JpYmVUb1N0YXRlKHRoaXMuX29uU3RhdGVDaGFuZ2VkKSk7XG4gICAgICB0aGlzLl9jaGVja0ZvclZhcmlhYmxlc1RoYXRDaGFuZ2VkV2hpbGVJbmFjdGl2ZSgpO1xuICAgICAgZm9yIChjb25zdCB2YXJpYWJsZSBvZiB0aGlzLnN0YXRlLnZhcmlhYmxlcykge1xuICAgICAgICBpZiAodGhpcy5fdmFyaWFibGVOZWVkc1VwZGF0ZSh2YXJpYWJsZSkpIHtcbiAgICAgICAgICB0aGlzLl92YXJpYWJsZXNUb1VwZGF0ZS5hZGQodmFyaWFibGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLl91cGRhdGVOZXh0QmF0Y2goKTtcbiAgICAgIHJldHVybiB0aGlzLl9vbkRlYWN0aXZhdGU7XG4gICAgfTtcbiAgICB0aGlzLl9vbkRlYWN0aXZhdGUgPSAoKSA9PiB7XG4gICAgICB2YXIgX2E7XG4gICAgICBmb3IgKGNvbnN0IHVwZGF0ZSBvZiB0aGlzLl91cGRhdGluZy52YWx1ZXMoKSkge1xuICAgICAgICAoX2EgPSB1cGRhdGUuc3Vic2NyaXB0aW9uKSA9PSBudWxsID8gdm9pZCAwIDogX2EudW5zdWJzY3JpYmUoKTtcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgdmFyaWFibGUgb2YgdGhpcy5zdGF0ZS52YXJpYWJsZXMpIHtcbiAgICAgICAgaWYgKCF0aGlzLl92YXJpYWJsZXNUb1VwZGF0ZS5oYXModmFyaWFibGUpICYmICF0aGlzLl91cGRhdGluZy5oYXModmFyaWFibGUpKSB7XG4gICAgICAgICAgdGhpcy5fdmFyaWFibGVWYWx1ZVJlY29yZGVyLnJlY29yZEN1cnJlbnRWYWx1ZSh2YXJpYWJsZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuX3ZhcmlhYmxlc1RvVXBkYXRlLmNsZWFyKCk7XG4gICAgICB0aGlzLl91cGRhdGluZy5jbGVhcigpO1xuICAgIH07XG4gICAgdGhpcy5fb25TdGF0ZUNoYW5nZWQgPSAobmV3U3RhdGUsIG9sZFN0YXRlKSA9PiB7XG4gICAgICBjb25zdCB2YXJpYWJsZXNUb1VwZGF0ZUNvdW50U3RhcnQgPSB0aGlzLl92YXJpYWJsZXNUb1VwZGF0ZS5zaXplO1xuICAgICAgZm9yIChjb25zdCB2YXJpYWJsZSBvZiBvbGRTdGF0ZS52YXJpYWJsZXMpIHtcbiAgICAgICAgaWYgKCFuZXdTdGF0ZS52YXJpYWJsZXMuaW5jbHVkZXModmFyaWFibGUpKSB7XG4gICAgICAgICAgY29uc3QgdXBkYXRpbmcgPSB0aGlzLl91cGRhdGluZy5nZXQodmFyaWFibGUpO1xuICAgICAgICAgIGlmICh1cGRhdGluZyA9PSBudWxsID8gdm9pZCAwIDogdXBkYXRpbmcuc3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB1cGRhdGluZy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fdXBkYXRpbmcuZGVsZXRlKHZhcmlhYmxlKTtcbiAgICAgICAgICB0aGlzLl92YXJpYWJsZXNUb1VwZGF0ZS5kZWxldGUodmFyaWFibGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IHZhcmlhYmxlIG9mIG5ld1N0YXRlLnZhcmlhYmxlcykge1xuICAgICAgICBpZiAoIW9sZFN0YXRlLnZhcmlhYmxlcy5pbmNsdWRlcyh2YXJpYWJsZSkpIHtcbiAgICAgICAgICBpZiAodGhpcy5fdmFyaWFibGVOZWVkc1VwZGF0ZSh2YXJpYWJsZSkpIHtcbiAgICAgICAgICAgIHRoaXMuX3ZhcmlhYmxlc1RvVXBkYXRlLmFkZCh2YXJpYWJsZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodmFyaWFibGVzVG9VcGRhdGVDb3VudFN0YXJ0ID09PSAwICYmIHRoaXMuX3ZhcmlhYmxlc1RvVXBkYXRlLnNpemUgPiAwKSB7XG4gICAgICAgIHRoaXMuX3VwZGF0ZU5leHRCYXRjaCgpO1xuICAgICAgfVxuICAgIH07XG4gICAgdGhpcy5hZGRBY3RpdmF0aW9uSGFuZGxlcih0aGlzLl9vbkFjdGl2YXRlKTtcbiAgfVxuICBnZXRCeU5hbWUobmFtZSkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLnZhcmlhYmxlcy5maW5kKCh4KSA9PiB4LnN0YXRlLm5hbWUgPT09IG5hbWUpO1xuICB9XG4gIF9yZWZyZXNoVGltZVJhbmdlQmFzZWRWYXJpYWJsZXMoKSB7XG4gICAgZm9yIChjb25zdCB2YXJpYWJsZSBvZiB0aGlzLnN0YXRlLnZhcmlhYmxlcykge1xuICAgICAgaWYgKFwicmVmcmVzaFwiIGluIHZhcmlhYmxlLnN0YXRlICYmIHZhcmlhYmxlLnN0YXRlLnJlZnJlc2ggPT09IFZhcmlhYmxlUmVmcmVzaC5vblRpbWVSYW5nZUNoYW5nZWQpIHtcbiAgICAgICAgdGhpcy5fdmFyaWFibGVzVG9VcGRhdGUuYWRkKHZhcmlhYmxlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fdXBkYXRlTmV4dEJhdGNoKCk7XG4gIH1cbiAgX2NoZWNrRm9yVmFyaWFibGVzVGhhdENoYW5nZWRXaGlsZUluYWN0aXZlKCkge1xuICAgIGlmICghdGhpcy5fdmFyaWFibGVWYWx1ZVJlY29yZGVyLmhhc1ZhbHVlcygpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAoY29uc3QgdmFyaWFibGUgb2YgdGhpcy5zdGF0ZS52YXJpYWJsZXMpIHtcbiAgICAgIGlmICh0aGlzLl92YXJpYWJsZVZhbHVlUmVjb3JkZXIuaGFzVmFsdWVDaGFuZ2VkKHZhcmlhYmxlKSkge1xuICAgICAgICB3cml0ZVZhcmlhYmxlVHJhY2VMb2codmFyaWFibGUsIFwiQ2hhbmdlZCB3aGlsZSBpbi1hY3RpdmVcIik7XG4gICAgICAgIHRoaXMuX2FkZERlcGVuZGVudFZhcmlhYmxlc1RvVXBkYXRlUXVldWUodmFyaWFibGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBfdmFyaWFibGVOZWVkc1VwZGF0ZSh2YXJpYWJsZSkge1xuICAgIGlmICh2YXJpYWJsZS5pc0xhenkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKCF2YXJpYWJsZS52YWxpZGF0ZUFuZFVwZGF0ZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAodGhpcy5fdmFyaWFibGVWYWx1ZVJlY29yZGVyLmhhc1JlY29yZGVkVmFsdWUodmFyaWFibGUpKSB7XG4gICAgICB3cml0ZVZhcmlhYmxlVHJhY2VMb2codmFyaWFibGUsIFwiU2tpcHBpbmcgdXBkYXRlQW5kVmFsaWRhdGUgY3VycmVudCB2YWx1ZSB2YWxpZFwiKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgX3VwZGF0ZU5leHRCYXRjaCgpIHtcbiAgICBmb3IgKGNvbnN0IHZhcmlhYmxlIG9mIHRoaXMuX3ZhcmlhYmxlc1RvVXBkYXRlKSB7XG4gICAgICBpZiAoIXZhcmlhYmxlLnZhbGlkYXRlQW5kVXBkYXRlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlZhcmlhYmxlIGFkZGVkIHRvIHZhcmlhYmxlc1RvVXBkYXRlIGJ1dCBkb2VzIG5vdCBoYXZlIHZhbGlkYXRlQW5kVXBkYXRlXCIpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuX3VwZGF0aW5nLmhhcyh2YXJpYWJsZSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoc2NlbmVHcmFwaC5oYXNWYXJpYWJsZURlcGVuZGVuY3lJbkxvYWRpbmdTdGF0ZSh2YXJpYWJsZSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCB2YXJpYWJsZVRvVXBkYXRlID0ge1xuICAgICAgICB2YXJpYWJsZVxuICAgICAgfTtcbiAgICAgIHRoaXMuX3VwZGF0aW5nLnNldCh2YXJpYWJsZSwgdmFyaWFibGVUb1VwZGF0ZSk7XG4gICAgICB3cml0ZVZhcmlhYmxlVHJhY2VMb2codmFyaWFibGUsIFwidXBkYXRlQW5kVmFsaWRhdGUgc3RhcnRlZFwiKTtcbiAgICAgIHZhcmlhYmxlVG9VcGRhdGUuc3Vic2NyaXB0aW9uID0gdmFyaWFibGUudmFsaWRhdGVBbmRVcGRhdGUoKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoKSA9PiB0aGlzLl92YWxpZGF0ZUFuZFVwZGF0ZUNvbXBsZXRlZCh2YXJpYWJsZSksXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB0aGlzLl92YWxpZGF0ZUFuZFVwZGF0ZUNvbXBsZXRlZCh2YXJpYWJsZSksXG4gICAgICAgIGVycm9yOiAoZXJyKSA9PiB0aGlzLl9oYW5kbGVWYXJpYWJsZUVycm9yKHZhcmlhYmxlLCBlcnIpXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgX3ZhbGlkYXRlQW5kVXBkYXRlQ29tcGxldGVkKHZhcmlhYmxlKSB7XG4gICAgdmFyIF9hO1xuICAgIGlmICghdGhpcy5fdXBkYXRpbmcuaGFzKHZhcmlhYmxlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB1cGRhdGUgPSB0aGlzLl91cGRhdGluZy5nZXQodmFyaWFibGUpO1xuICAgIChfYSA9IHVwZGF0ZSA9PSBudWxsID8gdm9pZCAwIDogdXBkYXRlLnN1YnNjcmlwdGlvbikgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5fdXBkYXRpbmcuZGVsZXRlKHZhcmlhYmxlKTtcbiAgICB0aGlzLl92YXJpYWJsZXNUb1VwZGF0ZS5kZWxldGUodmFyaWFibGUpO1xuICAgIHdyaXRlVmFyaWFibGVUcmFjZUxvZyh2YXJpYWJsZSwgXCJ1cGRhdGVBbmRWYWxpZGF0ZSBjb21wbGV0ZWRcIik7XG4gICAgdGhpcy5fbm90aWZ5RGVwZW5kZW50U2NlbmVPYmplY3RzKHZhcmlhYmxlKTtcbiAgICB0aGlzLl91cGRhdGVOZXh0QmF0Y2goKTtcbiAgfVxuICBjYW5jZWwodmFyaWFibGUpIHtcbiAgICB2YXIgX2E7XG4gICAgY29uc3QgdXBkYXRlID0gdGhpcy5fdXBkYXRpbmcuZ2V0KHZhcmlhYmxlKTtcbiAgICAoX2EgPSB1cGRhdGUgPT0gbnVsbCA/IHZvaWQgMCA6IHVwZGF0ZS5zdWJzY3JpcHRpb24pID09IG51bGwgPyB2b2lkIDAgOiBfYS51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuX3VwZGF0aW5nLmRlbGV0ZSh2YXJpYWJsZSk7XG4gICAgdGhpcy5fdmFyaWFibGVzVG9VcGRhdGUuZGVsZXRlKHZhcmlhYmxlKTtcbiAgfVxuICBfaGFuZGxlVmFyaWFibGVFcnJvcih2YXJpYWJsZSwgZXJyKSB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IHVwZGF0ZSA9IHRoaXMuX3VwZGF0aW5nLmdldCh2YXJpYWJsZSk7XG4gICAgKF9hID0gdXBkYXRlID09IG51bGwgPyB2b2lkIDAgOiB1cGRhdGUuc3Vic2NyaXB0aW9uKSA9PSBudWxsID8gdm9pZCAwIDogX2EudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl91cGRhdGluZy5kZWxldGUodmFyaWFibGUpO1xuICAgIHRoaXMuX3ZhcmlhYmxlc1RvVXBkYXRlLmRlbGV0ZSh2YXJpYWJsZSk7XG4gICAgdmFyaWFibGUuc2V0U3RhdGUoeyBsb2FkaW5nOiBmYWxzZSwgZXJyb3I6IGVyci5tZXNzYWdlIH0pO1xuICAgIGNvbnNvbGUuZXJyb3IoXCJTY2VuZVZhcmlhYmxlU2V0IHVwZGF0ZUFuZFZhbGlkYXRlIGVycm9yXCIsIGVycik7XG4gICAgd3JpdGVWYXJpYWJsZVRyYWNlTG9nKHZhcmlhYmxlLCBcInVwZGF0ZUFuZFZhbGlkYXRlIGVycm9yXCIsIGVycik7XG4gICAgdGhpcy5fbm90aWZ5RGVwZW5kZW50U2NlbmVPYmplY3RzKHZhcmlhYmxlKTtcbiAgICB0aGlzLl91cGRhdGVOZXh0QmF0Y2goKTtcbiAgfVxuICBfaGFuZGxlVmFyaWFibGVWYWx1ZUNoYW5nZWQodmFyaWFibGVUaGF0Q2hhbmdlZCkge1xuICAgIHRoaXMuX3ZhcmlhYmxlc1RoYXRIYXZlQ2hhbmdlZC5hZGQodmFyaWFibGVUaGF0Q2hhbmdlZCk7XG4gICAgdGhpcy5fYWRkRGVwZW5kZW50VmFyaWFibGVzVG9VcGRhdGVRdWV1ZSh2YXJpYWJsZVRoYXRDaGFuZ2VkKTtcbiAgICBpZiAoIXRoaXMuX3VwZGF0aW5nLmhhcyh2YXJpYWJsZVRoYXRDaGFuZ2VkKSkge1xuICAgICAgdGhpcy5fdXBkYXRlTmV4dEJhdGNoKCk7XG4gICAgICB0aGlzLl9ub3RpZnlEZXBlbmRlbnRTY2VuZU9iamVjdHModmFyaWFibGVUaGF0Q2hhbmdlZCk7XG4gICAgfVxuICB9XG4gIF9oYW5kbGVQYXJlbnRWYXJpYWJsZVVwZGF0ZXNDb21wbGV0ZWQodmFyaWFibGUsIGhhc0NoYW5nZWQpIHtcbiAgICBpZiAoaGFzQ2hhbmdlZCkge1xuICAgICAgdGhpcy5fYWRkRGVwZW5kZW50VmFyaWFibGVzVG9VcGRhdGVRdWV1ZSh2YXJpYWJsZSk7XG4gICAgfVxuICAgIGlmICh0aGlzLl92YXJpYWJsZXNUb1VwZGF0ZS5zaXplID4gMCAmJiB0aGlzLl91cGRhdGluZy5zaXplID09PSAwKSB7XG4gICAgICB0aGlzLl91cGRhdGVOZXh0QmF0Y2goKTtcbiAgICB9XG4gIH1cbiAgX2FkZERlcGVuZGVudFZhcmlhYmxlc1RvVXBkYXRlUXVldWUodmFyaWFibGVUaGF0Q2hhbmdlZCkge1xuICAgIGZvciAoY29uc3Qgb3RoZXJWYXJpYWJsZSBvZiB0aGlzLnN0YXRlLnZhcmlhYmxlcykge1xuICAgICAgaWYgKG90aGVyVmFyaWFibGUudmFyaWFibGVEZXBlbmRlbmN5KSB7XG4gICAgICAgIGlmIChvdGhlclZhcmlhYmxlLnZhcmlhYmxlRGVwZW5kZW5jeS5oYXNEZXBlbmRlbmN5T24odmFyaWFibGVUaGF0Q2hhbmdlZC5zdGF0ZS5uYW1lKSkge1xuICAgICAgICAgIHdyaXRlVmFyaWFibGVUcmFjZUxvZyhvdGhlclZhcmlhYmxlLCBcIkFkZGVkIHRvIHVwZGF0ZSBxdWV1ZSwgZGVwZW5kYW50IHZhcmlhYmxlIHZhbHVlIGNoYW5nZWRcIik7XG4gICAgICAgICAgaWYgKHRoaXMuX3VwZGF0aW5nLmhhcyhvdGhlclZhcmlhYmxlKSAmJiBvdGhlclZhcmlhYmxlLm9uQ2FuY2VsKSB7XG4gICAgICAgICAgICBvdGhlclZhcmlhYmxlLm9uQ2FuY2VsKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX3ZhcmlhYmxlc1RvVXBkYXRlLmFkZChvdGhlclZhcmlhYmxlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBfbm90aWZ5RGVwZW5kZW50U2NlbmVPYmplY3RzKHZhcmlhYmxlKSB7XG4gICAgaWYgKCF0aGlzLnBhcmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl90cmF2ZXJzZVNjZW5lQW5kTm90aWZ5KHRoaXMucGFyZW50LCB2YXJpYWJsZSwgdGhpcy5fdmFyaWFibGVzVGhhdEhhdmVDaGFuZ2VkLmhhcyh2YXJpYWJsZSkpO1xuICAgIHRoaXMuX3ZhcmlhYmxlc1RoYXRIYXZlQ2hhbmdlZC5kZWxldGUodmFyaWFibGUpO1xuICB9XG4gIF90cmF2ZXJzZVNjZW5lQW5kTm90aWZ5KHNjZW5lT2JqZWN0LCB2YXJpYWJsZSwgaGFzQ2hhbmdlZCkge1xuICAgIGlmICh0aGlzID09PSBzY2VuZU9iamVjdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXNjZW5lT2JqZWN0LmlzQWN0aXZlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChzY2VuZU9iamVjdC5zdGF0ZS4kdmFyaWFibGVzICYmIHNjZW5lT2JqZWN0LnN0YXRlLiR2YXJpYWJsZXMgIT09IHRoaXMpIHtcbiAgICAgIGNvbnN0IGxvY2FsVmFyID0gc2NlbmVPYmplY3Quc3RhdGUuJHZhcmlhYmxlcy5nZXRCeU5hbWUodmFyaWFibGUuc3RhdGUubmFtZSk7XG4gICAgICBpZiAobG9jYWxWYXIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoc2NlbmVPYmplY3QudmFyaWFibGVEZXBlbmRlbmN5KSB7XG4gICAgICBzY2VuZU9iamVjdC52YXJpYWJsZURlcGVuZGVuY3kudmFyaWFibGVVcGRhdGVDb21wbGV0ZWQodmFyaWFibGUsIGhhc0NoYW5nZWQpO1xuICAgIH1cbiAgICBzY2VuZU9iamVjdC5mb3JFYWNoQ2hpbGQoKGNoaWxkKSA9PiB0aGlzLl90cmF2ZXJzZVNjZW5lQW5kTm90aWZ5KGNoaWxkLCB2YXJpYWJsZSwgaGFzQ2hhbmdlZCkpO1xuICB9XG4gIGlzVmFyaWFibGVMb2FkaW5nT3JXYWl0aW5nVG9VcGRhdGUodmFyaWFibGUpIHtcbiAgICBpZiAodmFyaWFibGUuaXNBbmNlc3RvckxvYWRpbmcgJiYgdmFyaWFibGUuaXNBbmNlc3RvckxvYWRpbmcoKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmICh0aGlzLl92YXJpYWJsZXNUb1VwZGF0ZS5oYXModmFyaWFibGUpIHx8IHRoaXMuX3VwZGF0aW5nLmhhcyh2YXJpYWJsZSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gc2NlbmVHcmFwaC5oYXNWYXJpYWJsZURlcGVuZGVuY3lJbkxvYWRpbmdTdGF0ZSh2YXJpYWJsZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIHdyaXRlVmFyaWFibGVUcmFjZUxvZyh2YXJpYWJsZSwgbWVzc2FnZSwgZXJyKSB7XG4gIGlmIChlcnIpIHtcbiAgICB3cml0ZVNjZW5lTG9nKFwiU2NlbmVWYXJpYWJsZVNldFwiLCBgVmFyaWFibGVbJHt2YXJpYWJsZS5zdGF0ZS5uYW1lfV06ICR7bWVzc2FnZX1gLCBlcnIpO1xuICB9IGVsc2Uge1xuICAgIHdyaXRlU2NlbmVMb2coXCJTY2VuZVZhcmlhYmxlU2V0XCIsIGBWYXJpYWJsZVske3ZhcmlhYmxlLnN0YXRlLm5hbWV9XTogJHttZXNzYWdlfWApO1xuICB9XG59XG5jbGFzcyBTY2VuZVZhcmlhYmxlU2V0VmFyaWFibGVEZXBlbmRlbmN5SGFuZGxlciB7XG4gIGNvbnN0cnVjdG9yKF92YXJpYWJsZVVwZGF0ZXNDb21wbGV0ZWQpIHtcbiAgICB0aGlzLl92YXJpYWJsZVVwZGF0ZXNDb21wbGV0ZWQgPSBfdmFyaWFibGVVcGRhdGVzQ29tcGxldGVkO1xuICAgIHRoaXMuX2VtcHR5U2V0ID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTtcbiAgfVxuICBnZXROYW1lcygpIHtcbiAgICByZXR1cm4gdGhpcy5fZW1wdHlTZXQ7XG4gIH1cbiAgaGFzRGVwZW5kZW5jeU9uKG5hbWUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyaWFibGVVcGRhdGVDb21wbGV0ZWQodmFyaWFibGUsIGhhc0NoYW5nZWQpIHtcbiAgICB0aGlzLl92YXJpYWJsZVVwZGF0ZXNDb21wbGV0ZWQodmFyaWFibGUsIGhhc0NoYW5nZWQpO1xuICB9XG59XG5cbmV4cG9ydCB7IFNjZW5lVmFyaWFibGVTZXQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pVTJObGJtVldZWEpwWVdKc1pWTmxkQzVxY3lJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dkxpNHZMaTR2YzNKakwzWmhjbWxoWW14bGN5OXpaWFJ6TDFOalpXNWxWbUZ5YVdGaWJHVlRaWFF1ZEhNaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIc2dWbUZ5YVdGaWJHVlNaV1p5WlhOb0lIMGdabkp2YlNBblFHZHlZV1poYm1FdlpHRjBZU2M3WEc1cGJYQnZjblFnZXlCVmJuTjFZbk5qY21saVlXSnNaU0I5SUdaeWIyMGdKM0o0YW5Nbk8xeHVhVzF3YjNKMElIc2djMk5sYm1WSGNtRndhQ0I5SUdaeWIyMGdKeTR1THk0dUwyTnZjbVV2YzJObGJtVkhjbUZ3YUNjN1hHNWNibWx0Y0c5eWRDQjdJRk5qWlc1bFQySnFaV04wUW1GelpTQjlJR1p5YjIwZ0p5NHVMeTR1TDJOdmNtVXZVMk5sYm1WUFltcGxZM1JDWVhObEp6dGNibWx0Y0c5eWRDQjdJRk5qWlc1bFQySnFaV04wSUgwZ1puSnZiU0FuTGk0dkxpNHZZMjl5WlM5MGVYQmxjeWM3WEc1cGJYQnZjblFnZXlCM2NtbDBaVk5qWlc1bFRHOW5JSDBnWm5KdmJTQW5MaTR2TGk0dmRYUnBiSE12ZDNKcGRHVlRZMlZ1WlV4dlp5YzdYRzVwYlhCdmNuUWdlMXh1SUNCVFkyVnVaVlpoY21saFlteGxMRnh1SUNCVFkyVnVaVlpoY21saFlteGxSR1Z3Wlc1a1pXNWplVU52Ym1acFoweHBhMlVzWEc0Z0lGTmpaVzVsVm1GeWFXRmliR1Z6TEZ4dUlDQlRZMlZ1WlZaaGNtbGhZbXhsVTJWMFUzUmhkR1VzWEc0Z0lGTmpaVzVsVm1GeWFXRmliR1ZXWVd4MVpVTm9ZVzVuWldSRmRtVnVkQ3hjYm4wZ1puSnZiU0FuTGk0dmRIbHdaWE1uTzF4dWFXMXdiM0owSUhzZ1ZtRnlhV0ZpYkdWV1lXeDFaVkpsWTI5eVpHVnlJSDBnWm5KdmJTQW5MaTR2Vm1GeWFXRmliR1ZXWVd4MVpWSmxZMjl5WkdWeUp6dGNibHh1Wlhod2IzSjBJR05zWVhOeklGTmpaVzVsVm1GeWFXRmliR1ZUWlhRZ1pYaDBaVzVrY3lCVFkyVnVaVTlpYW1WamRFSmhjMlU4VTJObGJtVldZWEpwWVdKc1pWTmxkRk4wWVhSbFBpQnBiWEJzWlcxbGJuUnpJRk5qWlc1bFZtRnlhV0ZpYkdWeklIdGNiaUFnTHlvcUlGWmhjbWxoWW14bGN5QjBhR0YwSUdoaGRtVWdZMmhoYm1kbFpDQnBiaUJ6YVc1alpTQjBhR1VnWVdOMGFYWmhkR2x2YmlCdmNpQnphVzVqWlNCMGFHVWdabWx5YzNRZ2JXRnVkV0ZzSUhaaGJIVmxJR05vWVc1blpTQXFMMXh1SUNCd2NtbDJZWFJsSUY5MllYSnBZV0pzWlhOVWFHRjBTR0YyWlVOb1lXNW5aV1FnUFNCdVpYY2dVMlYwUEZOalpXNWxWbUZ5YVdGaWJHVStLQ2s3WEc1Y2JpQWdMeW9xSUZaaGNtbGhZbXhsY3lCMGFHRjBJR0Z5WlNCelkyaGxaSFZzWldRZ2RHOGdZbVVnZG1Gc2FXUmhkR1ZrSUdGdVpDQjFjR1JoZEdWa0lDb3ZYRzRnSUhCeWFYWmhkR1VnWDNaaGNtbGhZbXhsYzFSdlZYQmtZWFJsSUQwZ2JtVjNJRk5sZER4VFkyVnVaVlpoY21saFlteGxQaWdwTzF4dVhHNGdJQzhxS2lCV1lYSnBZV0pzWlhNZ1kzVnljbVZ1ZEd4NUlIVndaR0YwYVc1bklDQXFMMXh1SUNCd2NtbDJZWFJsSUY5MWNHUmhkR2x1WnlBOUlHNWxkeUJOWVhBOFUyTmxibVZXWVhKcFlXSnNaU3dnVm1GeWFXRmliR1ZWY0dSaGRHVkpibEJ5YjJkeVpYTnpQaWdwTzF4dVhHNGdJSEJ5YVhaaGRHVWdYM1poY21saFlteGxWbUZzZFdWU1pXTnZjbVJsY2lBOUlHNWxkeUJXWVhKcFlXSnNaVlpoYkhWbFVtVmpiM0prWlhJb0tUdGNibHh1SUNBdktpcGNiaUFnSUNvZ1ZHaHBjeUJ0WVd0bGN5QnpkWEpsSUZOalpXNWxWbUZ5YVdGaWJHVlRaWFFuY3lCb2FXZG9aWElnZFhBZ2FXNGdkR2hsSUdOb1lXbHVJRzV2ZEdsbWVTQjFjeUIzYUdWdUlIQmhjbVZ1ZENCc1pYWmxiQ0IyWVhKcFlXSnNaWE1nWTI5dGNHeGxkR1VnZFhCa1lYUmxJR0poZEdOb1pYTXVYRzRnSUNBcUtpOWNiaUFnY0hKdmRHVmpkR1ZrSUY5MllYSnBZV0pzWlVSbGNHVnVaR1Z1WTNrZ1BTQnVaWGNnVTJObGJtVldZWEpwWVdKc1pWTmxkRlpoY21saFlteGxSR1Z3Wlc1a1pXNWplVWhoYm1Sc1pYSW9YRzRnSUNBZ2RHaHBjeTVmYUdGdVpHeGxVR0Z5Wlc1MFZtRnlhV0ZpYkdWVmNHUmhkR1Z6UTI5dGNHeGxkR1ZrTG1KcGJtUW9kR2hwY3lsY2JpQWdLVHRjYmx4dUlDQndkV0pzYVdNZ1oyVjBRbmxPWVcxbEtHNWhiV1U2SUhOMGNtbHVaeWs2SUZOalpXNWxWbUZ5YVdGaWJHVWdmQ0IxYm1SbFptbHVaV1FnZTF4dUlDQWdJQzh2SUZSUFJFODZJRkpsY0d4aFkyVWdkMmwwYUNCcGJtUmxlRnh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbk4wWVhSbExuWmhjbWxoWW14bGN5NW1hVzVrS0NoNEtTQTlQaUI0TG5OMFlYUmxMbTVoYldVZ1BUMDlJRzVoYldVcE8xeHVJQ0I5WEc1Y2JpQWdjSFZpYkdsaklHTnZibk4wY25WamRHOXlLSE4wWVhSbE9pQlRZMlZ1WlZaaGNtbGhZbXhsVTJWMFUzUmhkR1VwSUh0Y2JpQWdJQ0J6ZFhCbGNpaHpkR0YwWlNrN1hHNWNiaUFnSUNCMGFHbHpMbUZrWkVGamRHbDJZWFJwYjI1SVlXNWtiR1Z5S0hSb2FYTXVYMjl1UVdOMGFYWmhkR1VwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGTjFZbk5qY21saVpYTWdkRzhnWTJocGJHUWdkbUZ5YVdGaWJHVWdkbUZzZFdVZ1kyaGhibWRsY3l3Z1lXNWtJSE4wWVhKMGN5QjBhR1VnZG1GeWFXRmliR1VnZG1Gc2RXVWdkbUZzYVdSaGRHbHZiaUJ3Y205alpYTnpYRzRnSUNBcUwxeHVJQ0J3Y21sMllYUmxJRjl2YmtGamRHbDJZWFJsSUQwZ0tDa2dQVDRnZTF4dUlDQWdJR052Ym5OMElIUnBiV1ZTWVc1blpTQTlJSE5qWlc1bFIzSmhjR2d1WjJWMFZHbHRaVkpoYm1kbEtIUm9hWE1wTzF4dUlDQWdJQzh2SUZOMVluTmpjbWxpWlNCMGJ5QmphR0Z1WjJWeklIUnZJR05vYVd4a0lIWmhjbWxoWW14bGMxeHVJQ0FnSUhSb2FYTXVYM04xWW5NdVlXUmtLRnh1SUNBZ0lDQWdkR2hwY3k1emRXSnpZM0pwWW1WVWIwVjJaVzUwS0ZOalpXNWxWbUZ5YVdGaWJHVldZV3gxWlVOb1lXNW5aV1JGZG1WdWRDd2dLR1YyWlc1MEtTQTlQaUIwYUdsekxsOW9ZVzVrYkdWV1lYSnBZV0pzWlZaaGJIVmxRMmhoYm1kbFpDaGxkbVZ1ZEM1d1lYbHNiMkZrS1NsY2JpQWdJQ0FwTzF4dVhHNGdJQ0FnZEdocGN5NWZjM1ZpY3k1aFpHUW9YRzRnSUNBZ0lDQjBhVzFsVW1GdVoyVXVjM1ZpYzJOeWFXSmxWRzlUZEdGMFpTZ29LU0E5UGlCN1hHNGdJQ0FnSUNBZ0lIUm9hWE11WDNKbFpuSmxjMmhVYVcxbFVtRnVaMlZDWVhObFpGWmhjbWxoWW14bGN5Z3BPMXh1SUNBZ0lDQWdmU2xjYmlBZ0lDQXBPMXh1WEc0Z0lDQWdMeThnVTNWaWMyTnlhV0psSUhSdklITjBZWFJsSUdOb1lXNW5aWE5jYmlBZ0lDQjBhR2x6TGw5emRXSnpMbUZrWkNoMGFHbHpMbk4xWW5OamNtbGlaVlJ2VTNSaGRHVW9kR2hwY3k1ZmIyNVRkR0YwWlVOb1lXNW5aV1FwS1R0Y2JseHVJQ0FnSUhSb2FYTXVYMk5vWldOclJtOXlWbUZ5YVdGaWJHVnpWR2hoZEVOb1lXNW5aV1JYYUdsc1pVbHVZV04wYVhabEtDazdYRzVjYmlBZ0lDQXZMeUJCWkdRZ1lXeHNJSFpoY21saFlteGxjeUIwYUdGMElHNWxaV1FnZFhCa1lYUnBibWNnZEc4Z2NYVmxkV1ZjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJSFpoY21saFlteGxJRzltSUhSb2FYTXVjM1JoZEdVdWRtRnlhV0ZpYkdWektTQjdYRzRnSUNBZ0lDQnBaaUFvZEdocGN5NWZkbUZ5YVdGaWJHVk9aV1ZrYzFWd1pHRjBaU2gyWVhKcFlXSnNaU2twSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVmZG1GeWFXRmliR1Z6Vkc5VmNHUmhkR1V1WVdSa0tIWmhjbWxoWW14bEtUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNWNiaUFnSUNCMGFHbHpMbDkxY0dSaGRHVk9aWGgwUW1GMFkyZ29LVHRjYmx4dUlDQWdJQzh2SUZKbGRIVnliaUJrWldGamRHbDJZWFJwYjI0Z2FHRnVaR3hsY2p0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1ZmIyNUVaV0ZqZEdsMllYUmxPMXh1SUNCOU8xeHVYRzRnSUM4cUtseHVJQ0FnS2lCQlpHUWdZV3hzSUhaaGNtbGhZbXhsY3lCMGFHRjBJR1JsY0dWdVpDQnZiaUIwYUdVZ1kyaGhibWRsWkNCMllYSnBZV0pzWlNCMGJ5QjBhR1VnZFhCa1lYUmxJSEYxWlhWbFhHNGdJQ0FxTDF4dUlDQndjbWwyWVhSbElGOXlaV1p5WlhOb1ZHbHRaVkpoYm1kbFFtRnpaV1JXWVhKcFlXSnNaWE1vS1NCN1hHNGdJQ0FnWm05eUlDaGpiMjV6ZENCMllYSnBZV0pzWlNCdlppQjBhR2x6TG5OMFlYUmxMblpoY21saFlteGxjeWtnZTF4dUlDQWdJQ0FnYVdZZ0tDZHlaV1p5WlhOb0p5QnBiaUIyWVhKcFlXSnNaUzV6ZEdGMFpTQW1KaUIyWVhKcFlXSnNaUzV6ZEdGMFpTNXlaV1p5WlhOb0lEMDlQU0JXWVhKcFlXSnNaVkpsWm5KbGMyZ3ViMjVVYVcxbFVtRnVaMlZEYUdGdVoyVmtLU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVYM1poY21saFlteGxjMVJ2VlhCa1lYUmxMbUZrWkNoMllYSnBZV0pzWlNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJSFJvYVhNdVgzVndaR0YwWlU1bGVIUkNZWFJqYUNncE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRU5oYm1ObGJDQmhiR3dnWTNWeWNtVnVkR3g1SUhKMWJtNXBibWNnZFhCa1lYUmxjMXh1SUNBZ0tpOWNiaUFnY0hKcGRtRjBaU0JmYjI1RVpXRmpkR2wyWVhSbElEMGdLQ2tnUFQ0Z2UxeHVJQ0FnSUdadmNpQW9ZMjl1YzNRZ2RYQmtZWFJsSUc5bUlIUm9hWE11WDNWd1pHRjBhVzVuTG5aaGJIVmxjeWdwS1NCN1hHNGdJQ0FnSUNCMWNHUmhkR1V1YzNWaWMyTnlhWEIwYVc5dVB5NTFibk4xWW5OamNtbGlaU2dwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzh2SUZKbGJXVnRZbVZ5SUdOMWNuSmxiblFnZG1GeWFXRmliR1VnZG1Gc2RXVnpYRzRnSUNBZ1ptOXlJQ2hqYjI1emRDQjJZWEpwWVdKc1pTQnZaaUIwYUdsekxuTjBZWFJsTG5aaGNtbGhZbXhsY3lrZ2UxeHVJQ0FnSUNBZ0x5OGdhV1lnZEdobElHTjFjbkpsYm5RZ2RtRnlhV0ZpYkdVZ2FYTWdibTkwSUdsdUlIRjFaWFZsSUhSdklIVndaR0YwWlNCaGJtUWdkbUZzYVdSaGRHVWdZVzVrSUc1dmRDQmlaV2x1WnlCaFkzUnBkbVZzZVNCMWNHUmhkR1ZrSUhSb1pXNGdkR2hsSUhaaGJIVmxJR2x6SUc5clhHNGdJQ0FnSUNCcFppQW9JWFJvYVhNdVgzWmhjbWxoWW14bGMxUnZWWEJrWVhSbExtaGhjeWgyWVhKcFlXSnNaU2tnSmlZZ0lYUm9hWE11WDNWd1pHRjBhVzVuTG1oaGN5aDJZWEpwWVdKc1pTa3BJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NWZkbUZ5YVdGaWJHVldZV3gxWlZKbFkyOXlaR1Z5TG5KbFkyOXlaRU4xY25KbGJuUldZV3gxWlNoMllYSnBZV0pzWlNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnZEdocGN5NWZkbUZ5YVdGaWJHVnpWRzlWY0dSaGRHVXVZMnhsWVhJb0tUdGNiaUFnSUNCMGFHbHpMbDkxY0dSaGRHbHVaeTVqYkdWaGNpZ3BPMXh1SUNCOU8xeHVYRzRnSUM4cUtseHVJQ0FnS2lCTWIyOXJJR1p2Y2lCdVpYY2dkbUZ5YVdGaWJHVnpJSFJvWVhRZ2JtVmxaQ0IwYnlCaVpTQnBibWwwYVdGc2FYcGxaRnh1SUNBZ0tpOWNiaUFnY0hKcGRtRjBaU0JmYjI1VGRHRjBaVU5vWVc1blpXUWdQU0FvYm1WM1UzUmhkR1U2SUZOalpXNWxWbUZ5YVdGaWJHVlRaWFJUZEdGMFpTd2diMnhrVTNSaGRHVTZJRk5qWlc1bFZtRnlhV0ZpYkdWVFpYUlRkR0YwWlNrZ1BUNGdlMXh1SUNBZ0lHTnZibk4wSUhaaGNtbGhZbXhsYzFSdlZYQmtZWFJsUTI5MWJuUlRkR0Z5ZENBOUlIUm9hWE11WDNaaGNtbGhZbXhsYzFSdlZYQmtZWFJsTG5OcGVtVTdYRzVjYmlBZ0lDQXZMeUJEYUdWamF5Qm1iM0lnY21WdGIzWmxaQ0IyWVhKcFlXSnNaWE5jYmlBZ0lDQm1iM0lnS0dOdmJuTjBJSFpoY21saFlteGxJRzltSUc5c1pGTjBZWFJsTG5aaGNtbGhZbXhsY3lrZ2UxeHVJQ0FnSUNBZ2FXWWdLQ0Z1WlhkVGRHRjBaUzUyWVhKcFlXSnNaWE11YVc1amJIVmtaWE1vZG1GeWFXRmliR1VwS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhWd1pHRjBhVzVuSUQwZ2RHaHBjeTVmZFhCa1lYUnBibWN1WjJWMEtIWmhjbWxoWW14bEtUdGNiaUFnSUNBZ0lDQWdhV1lnS0hWd1pHRjBhVzVuUHk1emRXSnpZM0pwY0hScGIyNHBJSHRjYmlBZ0lDQWdJQ0FnSUNCMWNHUmhkR2x1Wnk1emRXSnpZM0pwY0hScGIyNHVkVzV6ZFdKelkzSnBZbVVvS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjBhR2x6TGw5MWNHUmhkR2x1Wnk1a1pXeGxkR1VvZG1GeWFXRmliR1VwTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbDkyWVhKcFlXSnNaWE5VYjFWd1pHRjBaUzVrWld4bGRHVW9kbUZ5YVdGaWJHVXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNibHh1SUNBZ0lDOHZJRU5vWldOcklHWnZjaUJ1WlhjZ2RtRnlhV0ZpYkdWelhHNGdJQ0FnWm05eUlDaGpiMjV6ZENCMllYSnBZV0pzWlNCdlppQnVaWGRUZEdGMFpTNTJZWEpwWVdKc1pYTXBJSHRjYmlBZ0lDQWdJR2xtSUNnaGIyeGtVM1JoZEdVdWRtRnlhV0ZpYkdWekxtbHVZMngxWkdWektIWmhjbWxoWW14bEtTa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb2RHaHBjeTVmZG1GeWFXRmliR1ZPWldWa2MxVndaR0YwWlNoMllYSnBZV0pzWlNrcElIdGNiaUFnSUNBZ0lDQWdJQ0IwYUdsekxsOTJZWEpwWVdKc1pYTlViMVZ3WkdGMFpTNWhaR1FvZG1GeWFXRmliR1VwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHk4Z1QyNXNlU0J6ZEdGeWRDQmhJRzVsZHlCaVlYUmphQ0JwWmlCMGFHVnlaU0IzWVhNZ2JtOGdZbUYwWTJnZ1lXeHlaV0ZrZVNCeWRXNXVhVzVuWEc0Z0lDQWdhV1lnS0haaGNtbGhZbXhsYzFSdlZYQmtZWFJsUTI5MWJuUlRkR0Z5ZENBOVBUMGdNQ0FtSmlCMGFHbHpMbDkyWVhKcFlXSnNaWE5VYjFWd1pHRjBaUzV6YVhwbElENGdNQ2tnZTF4dUlDQWdJQ0FnZEdocGN5NWZkWEJrWVhSbFRtVjRkRUpoZEdOb0tDazdYRzRnSUNBZ2ZWeHVJQ0I5TzF4dVhHNGdJQzhxS2x4dUlDQWdLaUJKWmlCMllYSnBZV0pzWlhNZ1kyaGhibWRsWkNCM2FHbHNaU0JwYmlCcGJpMWhZM1JwZG1VZ2MzUmhkR1VnZDJVZ1pHOXVKM1FnWjJWMElHRnVlU0JqYUdGdVoyVWdaWFpsYm5SekxDQnpieUIzWlNCdVpXVmtJSFJ2SUdOb1pXTnJJR1p2Y2lCMGFHRjBJR2hsY21VdVhHNGdJQ0FxTDF4dUlDQndjbWwyWVhSbElGOWphR1ZqYTBadmNsWmhjbWxoWW14bGMxUm9ZWFJEYUdGdVoyVmtWMmhwYkdWSmJtRmpkR2wyWlNncElIdGNiaUFnSUNCcFppQW9JWFJvYVhNdVgzWmhjbWxoWW14bFZtRnNkV1ZTWldOdmNtUmxjaTVvWVhOV1lXeDFaWE1vS1NrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJSDFjYmx4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnZG1GeWFXRmliR1VnYjJZZ2RHaHBjeTV6ZEdGMFpTNTJZWEpwWVdKc1pYTXBJSHRjYmlBZ0lDQWdJR2xtSUNoMGFHbHpMbDkyWVhKcFlXSnNaVlpoYkhWbFVtVmpiM0prWlhJdWFHRnpWbUZzZFdWRGFHRnVaMlZrS0haaGNtbGhZbXhsS1NrZ2UxeHVJQ0FnSUNBZ0lDQjNjbWwwWlZaaGNtbGhZbXhsVkhKaFkyVk1iMmNvZG1GeWFXRmliR1VzSUNkRGFHRnVaMlZrSUhkb2FXeGxJR2x1TFdGamRHbDJaU2NwTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbDloWkdSRVpYQmxibVJsYm5SV1lYSnBZV0pzWlhOVWIxVndaR0YwWlZGMVpYVmxLSFpoY21saFlteGxLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJRjkyWVhKcFlXSnNaVTVsWldSelZYQmtZWFJsS0haaGNtbGhZbXhsT2lCVFkyVnVaVlpoY21saFlteGxLVG9nWW05dmJHVmhiaUI3WEc0Z0lDQWdhV1lnS0haaGNtbGhZbXhsTG1selRHRjZlU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDZ2hkbUZ5YVdGaWJHVXVkbUZzYVdSaGRHVkJibVJWY0dSaGRHVXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQm1ZV3h6WlR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2THlCSlppQjNaU0JvWVhabElISmxZMjl5WkdWa0lIWmhiR2xrSUhaaGJIVmxJQ2hsZG1WdUlHbG1JR2wwSUdoaGN5QmphR0Z1WjJWa0lITnBibU5sSUhkbElHUnZJRzV2ZENCdVpXVmtJSFJ2SUhKbExYWmhiR2xrWVhSbElIUm9hWE1nZG1GeWFXRmliR1VwWEc0Z0lDQWdhV1lnS0hSb2FYTXVYM1poY21saFlteGxWbUZzZFdWU1pXTnZjbVJsY2k1b1lYTlNaV052Y21SbFpGWmhiSFZsS0haaGNtbGhZbXhsS1NrZ2UxeHVJQ0FnSUNBZ2QzSnBkR1ZXWVhKcFlXSnNaVlJ5WVdObFRHOW5LSFpoY21saFlteGxMQ0FuVTJ0cGNIQnBibWNnZFhCa1lYUmxRVzVrVm1Gc2FXUmhkR1VnWTNWeWNtVnVkQ0IyWVd4MVpTQjJZV3hwWkNjcE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUdaaGJITmxPMXh1SUNBZ0lIMWNibHh1SUNBZ0lISmxkSFZ5YmlCMGNuVmxPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZSb2FYTWdiRzl2Y0hNZ2RHaHliM1ZuYUNCMllYSnBZV0pzWlhOVWIxVndaR0YwWlNCaGJtUWdkWEJrWVhSbElHRnNiQ0IwYUdGMElHTmhiaTVjYmlBZ0lDb2dTV1lnYjI1bElHaGhjeUJoSUdSbGNHVnVaR1Z1WTNrZ2RHaGhkQ0JwY3lCamRYSnlaVzUwYkhrZ2FXNGdkbUZ5YVdGaWJHVnpWRzlWY0dSaGRHVWdhWFFnZDJsc2JDQmlaU0J6YTJsd2NHVmtJR1p2Y2lCdWIzY3VYRzRnSUNBcUwxeHVJQ0J3Y21sMllYUmxJRjkxY0dSaGRHVk9aWGgwUW1GMFkyZ29LU0I3WEc0Z0lDQWdabTl5SUNoamIyNXpkQ0IyWVhKcFlXSnNaU0J2WmlCMGFHbHpMbDkyWVhKcFlXSnNaWE5VYjFWd1pHRjBaU2tnZTF4dUlDQWdJQ0FnYVdZZ0tDRjJZWEpwWVdKc1pTNTJZV3hwWkdGMFpVRnVaRlZ3WkdGMFpTa2dlMXh1SUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9KMVpoY21saFlteGxJR0ZrWkdWa0lIUnZJSFpoY21saFlteGxjMVJ2VlhCa1lYUmxJR0oxZENCa2IyVnpJRzV2ZENCb1lYWmxJSFpoYkdsa1lYUmxRVzVrVlhCa1lYUmxKeWs3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUM4dklFbG5ibTl5WlNCcGRDQnBaaUJwZENkeklHRnNjbVZoWkhrZ2MzUmhjblJsWkZ4dUlDQWdJQ0FnYVdZZ0tIUm9hWE11WDNWd1pHRjBhVzVuTG1oaGN5aDJZWEpwWVdKc1pTa3BJSHRjYmlBZ0lDQWdJQ0FnWTI5dWRHbHVkV1U3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUM4dklGZGhhWFFnWm05eUlIWmhjbWxoWW14bGN5QjBhR0YwSUdoaGN5QmtaWEJsYm1SbGJtTnBaWE1nZEdoaGRDQmhiSE52SUc1bFpXUnpJSFZ3WkdGMFpYTmNiaUFnSUNBZ0lHbG1JQ2h6WTJWdVpVZHlZWEJvTG1oaGMxWmhjbWxoWW14bFJHVndaVzVrWlc1amVVbHVURzloWkdsdVoxTjBZWFJsS0haaGNtbGhZbXhsS1NrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjUwYVc1MVpUdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdZMjl1YzNRZ2RtRnlhV0ZpYkdWVWIxVndaR0YwWlRvZ1ZtRnlhV0ZpYkdWVmNHUmhkR1ZKYmxCeWIyZHlaWE56SUQwZ2UxeHVJQ0FnSUNBZ0lDQjJZWEpwWVdKc1pTeGNiaUFnSUNBZ0lIMDdYRzVjYmlBZ0lDQWdJSFJvYVhNdVgzVndaR0YwYVc1bkxuTmxkQ2gyWVhKcFlXSnNaU3dnZG1GeWFXRmliR1ZVYjFWd1pHRjBaU2s3WEc0Z0lDQWdJQ0IzY21sMFpWWmhjbWxoWW14bFZISmhZMlZNYjJjb2RtRnlhV0ZpYkdVc0lDZDFjR1JoZEdWQmJtUldZV3hwWkdGMFpTQnpkR0Z5ZEdWa0p5azdYRzVjYmlBZ0lDQWdJSFpoY21saFlteGxWRzlWY0dSaGRHVXVjM1ZpYzJOeWFYQjBhVzl1SUQwZ2RtRnlhV0ZpYkdVdWRtRnNhV1JoZEdWQmJtUlZjR1JoZEdVb0tTNXpkV0p6WTNKcFltVW9lMXh1SUNBZ0lDQWdJQ0J1WlhoME9pQW9LU0E5UGlCMGFHbHpMbDkyWVd4cFpHRjBaVUZ1WkZWd1pHRjBaVU52YlhCc1pYUmxaQ2gyWVhKcFlXSnNaU2tzWEc0Z0lDQWdJQ0FnSUdOdmJYQnNaWFJsT2lBb0tTQTlQaUIwYUdsekxsOTJZV3hwWkdGMFpVRnVaRlZ3WkdGMFpVTnZiWEJzWlhSbFpDaDJZWEpwWVdKc1pTa3NYRzRnSUNBZ0lDQWdJR1Z5Y205eU9pQW9aWEp5S1NBOVBpQjBhR2x6TGw5b1lXNWtiR1ZXWVhKcFlXSnNaVVZ5Y205eUtIWmhjbWxoWW14bExDQmxjbklwTEZ4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFRWdkbUZ5YVdGaWJHVWdhR0Z6SUdOdmJYQnNaWFJsWkNCcGRITWdkWEJrWVhSbElIQnliMk5sYzNNdUlGUm9hWE1nWTI5MWJHUWdiV1ZoYmlCMGFHRjBJSFpoY21saFlteGxjeUIwYUdGMElHUmxjR1Z1WkNCdmJpQnBkQ0JqWVc0Z2JtOTNJR0psSUhWd1pHRjBaV1FnYVc0Z2RIVnliaTVjYmlBZ0lDb3ZYRzRnSUhCeWFYWmhkR1VnWDNaaGJHbGtZWFJsUVc1a1ZYQmtZWFJsUTI5dGNHeGxkR1ZrS0haaGNtbGhZbXhsT2lCVFkyVnVaVlpoY21saFlteGxLU0I3WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbDkxY0dSaGRHbHVaeTVvWVhNb2RtRnlhV0ZpYkdVcEtTQjdYRzRnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdkWEJrWVhSbElEMGdkR2hwY3k1ZmRYQmtZWFJwYm1jdVoyVjBLSFpoY21saFlteGxLVHRjYmlBZ0lDQjFjR1JoZEdVL0xuTjFZbk5qY21sd2RHbHZiajh1ZFc1emRXSnpZM0pwWW1Vb0tUdGNibHh1SUNBZ0lIUm9hWE11WDNWd1pHRjBhVzVuTG1SbGJHVjBaU2gyWVhKcFlXSnNaU2s3WEc0Z0lDQWdkR2hwY3k1ZmRtRnlhV0ZpYkdWelZHOVZjR1JoZEdVdVpHVnNaWFJsS0haaGNtbGhZbXhsS1R0Y2JseHVJQ0FnSUhkeWFYUmxWbUZ5YVdGaWJHVlVjbUZqWlV4dlp5aDJZWEpwWVdKc1pTd2dKM1Z3WkdGMFpVRnVaRlpoYkdsa1lYUmxJR052YlhCc1pYUmxaQ2NwTzF4dVhHNGdJQ0FnZEdocGN5NWZibTkwYVdaNVJHVndaVzVrWlc1MFUyTmxibVZQWW1wbFkzUnpLSFpoY21saFlteGxLVHRjYmlBZ0lDQjBhR2x6TGw5MWNHUmhkR1ZPWlhoMFFtRjBZMmdvS1R0Y2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCallXNWpaV3dvZG1GeWFXRmliR1U2SUZOalpXNWxWbUZ5YVdGaWJHVXBJSHRjYmlBZ0lDQmpiMjV6ZENCMWNHUmhkR1VnUFNCMGFHbHpMbDkxY0dSaGRHbHVaeTVuWlhRb2RtRnlhV0ZpYkdVcE8xeHVJQ0FnSUhWd1pHRjBaVDh1YzNWaWMyTnlhWEIwYVc5dVB5NTFibk4xWW5OamNtbGlaU2dwTzF4dVhHNGdJQ0FnZEdocGN5NWZkWEJrWVhScGJtY3VaR1ZzWlhSbEtIWmhjbWxoWW14bEtUdGNiaUFnSUNCMGFHbHpMbDkyWVhKcFlXSnNaWE5VYjFWd1pHRjBaUzVrWld4bGRHVW9kbUZ5YVdGaWJHVXBPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JmYUdGdVpHeGxWbUZ5YVdGaWJHVkZjbkp2Y2loMllYSnBZV0pzWlRvZ1UyTmxibVZXWVhKcFlXSnNaU3dnWlhKeU9pQkZjbkp2Y2lrZ2UxeHVJQ0FnSUdOdmJuTjBJSFZ3WkdGMFpTQTlJSFJvYVhNdVgzVndaR0YwYVc1bkxtZGxkQ2gyWVhKcFlXSnNaU2s3WEc0Z0lDQWdkWEJrWVhSbFB5NXpkV0p6WTNKcGNIUnBiMjQvTG5WdWMzVmljMk55YVdKbEtDazdYRzVjYmlBZ0lDQjBhR2x6TGw5MWNHUmhkR2x1Wnk1a1pXeGxkR1VvZG1GeWFXRmliR1VwTzF4dUlDQWdJSFJvYVhNdVgzWmhjbWxoWW14bGMxUnZWWEJrWVhSbExtUmxiR1YwWlNoMllYSnBZV0pzWlNrN1hHNWNiaUFnSUNCMllYSnBZV0pzWlM1elpYUlRkR0YwWlNoN0lHeHZZV1JwYm1jNklHWmhiSE5sTENCbGNuSnZjam9nWlhKeUxtMWxjM05oWjJVZ2ZTazdYRzVjYmlBZ0lDQmpiMjV6YjJ4bExtVnljbTl5S0NkVFkyVnVaVlpoY21saFlteGxVMlYwSUhWd1pHRjBaVUZ1WkZaaGJHbGtZWFJsSUdWeWNtOXlKeXdnWlhKeUtUdGNibHh1SUNBZ0lIZHlhWFJsVm1GeWFXRmliR1ZVY21GalpVeHZaeWgyWVhKcFlXSnNaU3dnSjNWd1pHRjBaVUZ1WkZaaGJHbGtZWFJsSUdWeWNtOXlKeXdnWlhKeUtUdGNibHh1SUNBZ0lIUm9hWE11WDI1dmRHbG1lVVJsY0dWdVpHVnVkRk5qWlc1bFQySnFaV04wY3loMllYSnBZV0pzWlNrN1hHNGdJQ0FnZEdocGN5NWZkWEJrWVhSbFRtVjRkRUpoZEdOb0tDazdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJRjlvWVc1a2JHVldZWEpwWVdKc1pWWmhiSFZsUTJoaGJtZGxaQ2gyWVhKcFlXSnNaVlJvWVhSRGFHRnVaMlZrT2lCVFkyVnVaVlpoY21saFlteGxLU0I3WEc0Z0lDQWdkR2hwY3k1ZmRtRnlhV0ZpYkdWelZHaGhkRWhoZG1WRGFHRnVaMlZrTG1Ga1pDaDJZWEpwWVdKc1pWUm9ZWFJEYUdGdVoyVmtLVHRjYmlBZ0lDQjBhR2x6TGw5aFpHUkVaWEJsYm1SbGJuUldZWEpwWVdKc1pYTlViMVZ3WkdGMFpWRjFaWFZsS0haaGNtbGhZbXhsVkdoaGRFTm9ZVzVuWldRcE8xeHVYRzRnSUNBZ0x5OGdTV2R1YjNKbElIUm9hWE1nWTJoaGJtZGxJR2xtSUdsMElHbHpJR04xY25KbGJuUnNlU0IxY0dSaGRHbHVaMXh1SUNBZ0lHbG1JQ2doZEdocGN5NWZkWEJrWVhScGJtY3VhR0Z6S0haaGNtbGhZbXhsVkdoaGRFTm9ZVzVuWldRcEtTQjdYRzRnSUNBZ0lDQjBhR2x6TGw5MWNHUmhkR1ZPWlhoMFFtRjBZMmdvS1R0Y2JpQWdJQ0FnSUhSb2FYTXVYMjV2ZEdsbWVVUmxjR1Z1WkdWdWRGTmpaVzVsVDJKcVpXTjBjeWgyWVhKcFlXSnNaVlJvWVhSRGFHRnVaMlZrS1R0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1ZHaHBjeUJwY3lCallXeHNaV1FnWW5rZ1lXNTVJSEJoY21WdWRDQnNaWFpsYkNCMllYSnBZV0pzWlNCelpYUWdkRzhnYm05MGFXWjVJSE5qWlc1bElIUm9ZWFFnWVc0Z2RYQmtZWFJsSUdKaGRHTm9JR2x6SUdOdmJYQnNaWFJsWkM1Y2JpQWdJQ29nVkdocGN5QnBjeUIwYUdVZ2JXRnBiaUJ0WldOb1lXNXBjMjBnYkc5M1pYSWdiR1YyWld3Z2RtRnlhV0ZpYkdVZ2MyVjBKM01nY21WaFkzUWdkRzhnWTJoaGJtZGxjeUJ2YmlCb2FXZG9aWElnYkdWMlpXeHpMbHh1SUNBZ0tpOWNiaUFnY0hKcGRtRjBaU0JmYUdGdVpHeGxVR0Z5Wlc1MFZtRnlhV0ZpYkdWVmNHUmhkR1Z6UTI5dGNHeGxkR1ZrS0haaGNtbGhZbXhsT2lCVFkyVnVaVlpoY21saFlteGxMQ0JvWVhORGFHRnVaMlZrT2lCaWIyOXNaV0Z1S1NCN1hHNGdJQ0FnTHk4Z1JtbHljM1FnYkc5dmNDQjBhSEp2ZFdkb0lHTm9ZVzVuWldRZ2RtRnlhV0ZpYkdWeklHRnVaQ0JoWkdRZ1lXNTVJRzltSUc5MWNpQjJZWEpwWVdKc1pYTWdkR2hoZENCa1pYQmxibVFnYjI0Z2RHaGxJR2hwWjJobGNpQnNaWFpsYkNCMllYSnBZV0pzWlNCMGJ5QjBhR1VnZFhCa1lYUmxJSEYxWlhWbFhHNGdJQ0FnYVdZZ0tHaGhjME5vWVc1blpXUXBJSHRjYmlBZ0lDQWdJSFJvYVhNdVgyRmtaRVJsY0dWdVpHVnVkRlpoY21saFlteGxjMVJ2VlhCa1lYUmxVWFZsZFdVb2RtRnlhV0ZpYkdVcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4dklFbG1JSGRsSUdoaGRtVWdkbUZ5YVdGaWJHVnpJSFJ2SUhWd1pHRjBaU0JpZFhRZ2JtOXVaU0JoY21VZ1kzVnljbVZ1ZEd4NUlIVndaR0YwYVc1bklHdHBZMnNnYjJZZ1lTQnVaWGNnZFhCa1lYUmxJR0poZEdOb1hHNGdJQ0FnYVdZZ0tIUm9hWE11WDNaaGNtbGhZbXhsYzFSdlZYQmtZWFJsTG5OcGVtVWdQaUF3SUNZbUlIUm9hWE11WDNWd1pHRjBhVzVuTG5OcGVtVWdQVDA5SURBcElIdGNiaUFnSUNBZ0lIUm9hWE11WDNWd1pHRjBaVTVsZUhSQ1lYUmphQ2dwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWDJGa1pFUmxjR1Z1WkdWdWRGWmhjbWxoWW14bGMxUnZWWEJrWVhSbFVYVmxkV1VvZG1GeWFXRmliR1ZVYUdGMFEyaGhibWRsWkRvZ1UyTmxibVZXWVhKcFlXSnNaU2tnZTF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnYjNSb1pYSldZWEpwWVdKc1pTQnZaaUIwYUdsekxuTjBZWFJsTG5aaGNtbGhZbXhsY3lrZ2UxeHVJQ0FnSUNBZ2FXWWdLRzkwYUdWeVZtRnlhV0ZpYkdVdWRtRnlhV0ZpYkdWRVpYQmxibVJsYm1ONUtTQjdYRzRnSUNBZ0lDQWdJR2xtSUNodmRHaGxjbFpoY21saFlteGxMblpoY21saFlteGxSR1Z3Wlc1a1pXNWplUzVvWVhORVpYQmxibVJsYm1ONVQyNG9kbUZ5YVdGaWJHVlVhR0YwUTJoaGJtZGxaQzV6ZEdGMFpTNXVZVzFsS1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJSGR5YVhSbFZtRnlhV0ZpYkdWVWNtRmpaVXh2WnlodmRHaGxjbFpoY21saFlteGxMQ0FuUVdSa1pXUWdkRzhnZFhCa1lYUmxJSEYxWlhWbExDQmtaWEJsYm1SaGJuUWdkbUZ5YVdGaWJHVWdkbUZzZFdVZ1kyaGhibWRsWkNjcE8xeHVYRzRnSUNBZ0lDQWdJQ0FnYVdZZ0tIUm9hWE11WDNWd1pHRjBhVzVuTG1oaGN5aHZkR2hsY2xaaGNtbGhZbXhsS1NBbUppQnZkR2hsY2xaaGNtbGhZbXhsTG05dVEyRnVZMlZzS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J2ZEdobGNsWmhjbWxoWW14bExtOXVRMkZ1WTJWc0tDazdYRzRnSUNBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lDQWdkR2hwY3k1ZmRtRnlhV0ZpYkdWelZHOVZjR1JoZEdVdVlXUmtLRzkwYUdWeVZtRnlhV0ZpYkdVcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRmRoYkdzZ2MyTmxibVVnYjJKcVpXTjBJR2R5WVhCb0lHRnVaQ0IxY0dSaGRHVWdZV3hzSUc5aWFtVmpkSE1nZEdoaGRDQmtaWEJsYm1RZ2IyNGdkbUZ5YVdGaWJHVnpJSFJvWVhRZ2FHRjJaU0JqYUdGdVoyVmtYRzRnSUNBcUwxeHVJQ0J3Y21sMllYUmxJRjl1YjNScFpubEVaWEJsYm1SbGJuUlRZMlZ1WlU5aWFtVmpkSE1vZG1GeWFXRmliR1U2SUZOalpXNWxWbUZ5YVdGaWJHVXBJSHRjYmlBZ0lDQnBaaUFvSVhSb2FYTXVjR0Z5Wlc1MEtTQjdYRzRnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnZEdocGN5NWZkSEpoZG1WeWMyVlRZMlZ1WlVGdVpFNXZkR2xtZVNoMGFHbHpMbkJoY21WdWRDd2dkbUZ5YVdGaWJHVXNJSFJvYVhNdVgzWmhjbWxoWW14bGMxUm9ZWFJJWVhabFEyaGhibWRsWkM1b1lYTW9kbUZ5YVdGaWJHVXBLVHRjYmlBZ0lDQjBhR2x6TGw5MllYSnBZV0pzWlhOVWFHRjBTR0YyWlVOb1lXNW5aV1F1WkdWc1pYUmxLSFpoY21saFlteGxLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pXTjFjbk5wZG14NUlIZGhiR3NnZEdobElHWjFiR3dnYzJObGJtVWdiMkpxWldOMElHZHlZWEJvSUdGdVpDQnViM1JwWm5rZ1lXeHNJRzlpYW1WamRITWdkMmwwYUNCa1pYQmxibVJsYm1OcFpYTWdkR2hoZENCcGJtTnNkV1JsSUdGdWVTQnZaaUJqYUdGdVoyVmtJSFpoY21saFlteGxjMXh1SUNBZ0tpOWNiaUFnY0hKcGRtRjBaU0JmZEhKaGRtVnljMlZUWTJWdVpVRnVaRTV2ZEdsbWVTaHpZMlZ1WlU5aWFtVmpkRG9nVTJObGJtVlBZbXBsWTNRc0lIWmhjbWxoWW14bE9pQlRZMlZ1WlZaaGNtbGhZbXhsTENCb1lYTkRhR0Z1WjJWa09pQmliMjlzWldGdUtTQjdYRzRnSUNBZ0x5OGdUbThnYm1WbFpDQjBieUJ1YjNScFpua2dkbUZ5YVdGaWJHVnpJSFZ1WkdWeUlIUm9hWE1nVTJObGJtVldZWEpwWVdKc1pWTmxkRnh1SUNBZ0lHbG1JQ2gwYUdseklEMDlQU0J6WTJWdVpVOWlhbVZqZENrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJSDFjYmx4dUlDQWdJQzh2SUZOcmFYQWdibTl1SUdGamRHbDJaU0J6WTJWdVpTQnZZbXBsWTNSelhHNGdJQ0FnYVdZZ0tDRnpZMlZ1WlU5aWFtVmpkQzVwYzBGamRHbDJaU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHZJRWxtSUhkbElHWnBibVFnWVNCdVpYTjBaV1FnVTJObGJtVldZWEpwWVdKc1pWTmxkQ0IwYUdGMElHaGhjeUJoSUhaaGNtbGhZbXhsSUhkcGRHZ2dkR2hsSUhOaGJXVWdibUZ0WlNCM1pTQnpkRzl3SUhSb1pTQjBjbUYyWlhKellXeGNiaUFnSUNCcFppQW9jMk5sYm1WUFltcGxZM1F1YzNSaGRHVXVKSFpoY21saFlteGxjeUFtSmlCelkyVnVaVTlpYW1WamRDNXpkR0YwWlM0a2RtRnlhV0ZpYkdWeklDRTlQU0IwYUdsektTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCc2IyTmhiRlpoY2lBOUlITmpaVzVsVDJKcVpXTjBMbk4wWVhSbExpUjJZWEpwWVdKc1pYTXVaMlYwUW5sT1lXMWxLSFpoY21saFlteGxMbk4wWVhSbExtNWhiV1VwTzF4dUlDQWdJQ0FnYVdZZ0tHeHZZMkZzVm1GeUtTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJqdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9jMk5sYm1WUFltcGxZM1F1ZG1GeWFXRmliR1ZFWlhCbGJtUmxibU41S1NCN1hHNGdJQ0FnSUNCelkyVnVaVTlpYW1WamRDNTJZWEpwWVdKc1pVUmxjR1Z1WkdWdVkza3VkbUZ5YVdGaWJHVlZjR1JoZEdWRGIyMXdiR1YwWldRb2RtRnlhV0ZpYkdVc0lHaGhjME5vWVc1blpXUXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lITmpaVzVsVDJKcVpXTjBMbVp2Y2tWaFkyaERhR2xzWkNnb1kyaHBiR1FwSUQwK0lIUm9hWE11WDNSeVlYWmxjbk5sVTJObGJtVkJibVJPYjNScFpua29ZMmhwYkdRc0lIWmhjbWxoWW14bExDQm9ZWE5EYUdGdVoyVmtLU2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1VtVjBkWEp1SUhSeWRXVWdhV1lnZG1GeWFXRmliR1VnYVhNZ2QyRnBkR2x1WnlCMGJ5QjFjR1JoZEdVZ2IzSWdZM1Z5Y21WdWRHeDVJSFZ3WkdGMGFXNW5MbHh1SUNBZ0tpQkpkQ0JoYkhOdklISmxkSFZ5Ym5NZ2RISjFaU0JwWmlCaElHUmxjR1Z1WkdWdVkza2diMllnZEdobElIWmhjbWxoWW14bElHbHpJR3h2WVdScGJtY3VYRzRnSUNBcVhHNGdJQ0FxSUVadmNpQmxlR0Z0Y0d4bElHbG1JRU1nWkdWd1pXNWtjeUJ2YmlCMllYSnBZV0pzWlNCQ0lIZG9hV05vSUdSbGNHVnVaSE1nYjI0Z2RtRnlhV0ZpYkdVZ1FTQmhibVFnUVNCcGN5QnNiMkZrYVc1bklIUm9hWE1nY21WMGRYSnVjeUIwY25WbElHWnZjaUIyWVhKcFlXSnNaU0JESUdGdVpDQkNMbHh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJR2x6Vm1GeWFXRmliR1ZNYjJGa2FXNW5UM0pYWVdsMGFXNW5WRzlWY0dSaGRHVW9kbUZ5YVdGaWJHVTZJRk5qWlc1bFZtRnlhV0ZpYkdVcElIdGNiaUFnSUNCcFppQW9kbUZ5YVdGaWJHVXVhWE5CYm1ObGMzUnZja3h2WVdScGJtY2dKaVlnZG1GeWFXRmliR1V1YVhOQmJtTmxjM1J2Y2t4dllXUnBibWNvS1NrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhSeWRXVTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLSFJvYVhNdVgzWmhjbWxoWW14bGMxUnZWWEJrWVhSbExtaGhjeWgyWVhKcFlXSnNaU2tnZkh3Z2RHaHBjeTVmZFhCa1lYUnBibWN1YUdGektIWmhjbWxoWW14bEtTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlIUnlkV1U3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeThnVEdGemRDQnpZMlZ1WVhKcGJ5QnBjeUIwYnlCamFHVmpheUIwYUdVZ2RtRnlhV0ZpYkdVbmN5QnZkMjRnWkdWd1pXNWtaVzVqYVdWeklHRnpJSGRsYkd4Y2JpQWdJQ0J5WlhSMWNtNGdjMk5sYm1WSGNtRndhQzVvWVhOV1lYSnBZV0pzWlVSbGNHVnVaR1Z1WTNsSmJreHZZV1JwYm1kVGRHRjBaU2gyWVhKcFlXSnNaU2s3WEc0Z0lIMWNibjFjYmx4dVpYaHdiM0owSUdsdWRHVnlabUZqWlNCV1lYSnBZV0pzWlZWd1pHRjBaVWx1VUhKdlozSmxjM01nZTF4dUlDQjJZWEpwWVdKc1pUb2dVMk5sYm1WV1lYSnBZV0pzWlR0Y2JpQWdjM1ZpYzJOeWFYQjBhVzl1UHpvZ1ZXNXpkV0p6WTNKcFltRmliR1U3WEc1OVhHNWNibVoxYm1OMGFXOXVJSGR5YVhSbFZtRnlhV0ZpYkdWVWNtRmpaVXh2WnloMllYSnBZV0pzWlRvZ1UyTmxibVZXWVhKcFlXSnNaU3dnYldWemMyRm5aVG9nYzNSeWFXNW5MQ0JsY25JL09pQkZjbkp2Y2lrZ2UxeHVJQ0JwWmlBb1pYSnlLU0I3WEc0Z0lDQWdkM0pwZEdWVFkyVnVaVXh2WnlnblUyTmxibVZXWVhKcFlXSnNaVk5sZENjc0lHQldZWEpwWVdKc1pWc2tlM1poY21saFlteGxMbk4wWVhSbExtNWhiV1Y5WFRvZ0pIdHRaWE56WVdkbGZXQXNJR1Z5Y2lrN1hHNGdJSDBnWld4elpTQjdYRzRnSUNBZ2QzSnBkR1ZUWTJWdVpVeHZaeWduVTJObGJtVldZWEpwWVdKc1pWTmxkQ2NzSUdCV1lYSnBZV0pzWlZza2UzWmhjbWxoWW14bExuTjBZWFJsTG01aGJXVjlYVG9nSkh0dFpYTnpZV2RsZldBcE8xeHVJQ0I5WEc1OVhHNWNibU5zWVhOeklGTmpaVzVsVm1GeWFXRmliR1ZUWlhSV1lYSnBZV0pzWlVSbGNHVnVaR1Z1WTNsSVlXNWtiR1Z5SUdsdGNHeGxiV1Z1ZEhNZ1UyTmxibVZXWVhKcFlXSnNaVVJsY0dWdVpHVnVZM2xEYjI1bWFXZE1hV3RsSUh0Y2JpQWdjSFZpYkdsaklHTnZibk4wY25WamRHOXlLSEJ5YVhaaGRHVWdYM1poY21saFlteGxWWEJrWVhSbGMwTnZiWEJzWlhSbFpEb2dLSFpoY21saFlteGxPaUJUWTJWdVpWWmhjbWxoWW14bExDQm9ZWE5EYUdGdVoyVmtPaUJpYjI5c1pXRnVLU0E5UGlCMmIybGtLU0I3ZlZ4dVhHNGdJSEJ5YVhaaGRHVWdYMlZ0Y0hSNVUyVjBJRDBnYm1WM0lGTmxkRHh6ZEhKcGJtYytLQ2s3WEc1Y2JpQWdjSFZpYkdsaklHZGxkRTVoYldWektDazZJRk5sZER4emRISnBibWMrSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1ZlpXMXdkSGxUWlhRN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ2FHRnpSR1Z3Wlc1a1pXNWplVTl1S0c1aGJXVTZJSE4wY21sdVp5azZJR0p2YjJ4bFlXNGdlMXh1SUNBZ0lISmxkSFZ5YmlCbVlXeHpaVHRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUIyWVhKcFlXSnNaVlZ3WkdGMFpVTnZiWEJzWlhSbFpDaDJZWEpwWVdKc1pUb2dVMk5sYm1WV1lYSnBZV0pzWlN3Z2FHRnpRMmhoYm1kbFpEb2dZbTl2YkdWaGJpazZJSFp2YVdRZ2UxeHVJQ0FnSUhSb2FYTXVYM1poY21saFlteGxWWEJrWVhSbGMwTnZiWEJzWlhSbFpDaDJZWEpwWVdKc1pTd2dhR0Z6UTJoaGJtZGxaQ2s3WEc0Z0lIMWNibjFjYmlKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pT3pzN096czdPMEZCWjBKUExFMUJRVTBzZVVKQlFYbENMR1ZCUVdsRkxFTkJRVUU3UVVGQlFTeEZRWGRDT1VZc1dVRkJXU3hMUVVFNFFpeEZRVUZCTzBGQlF5OURMRWxCUVVFc1MwRkJRU3hEUVVGTkxFdEJRVXNzUTBGQlFTeERRVUZCTzBGQmRrSmlMRWxCUVZFc1NVRkJRU3hEUVVGQkxIbENRVUZCTEhWQ1FVRm5ReXhIUVVGdFFpeEZRVUZCTEVOQlFVRTdRVUZITTBRc1NVRkJVU3hKUVVGQkxFTkJRVUVzYTBKQlFVRXNkVUpCUVhsQ0xFZEJRVzFDTEVWQlFVRXNRMEZCUVR0QlFVZHdSQ3hKUVVGUkxFbEJRVUVzUTBGQlFTeFRRVUZCTEhWQ1FVRm5RaXhIUVVFMlF5eEZRVUZCTEVOQlFVRTdRVUZGY2tVc1NVRkJVU3hKUVVGQkxFTkJRVUVzYzBKQlFVRXNSMEZCZVVJc1NVRkJTU3h4UWtGQmMwSXNSVUZCUVN4RFFVRkJPMEZCU3pORUxFbEJRVUVzU1VGQlFTeERRVUZWTEhOQ1FVRnpRaXhKUVVGSkxIbERRVUZCTzBGQlFVRXNUVUZEYkVNc1NVRkJRU3hEUVVGTExIRkRRVUZ6UXl4RFFVRkJMRWxCUVVFc1EwRkJTeXhKUVVGSkxFTkJRVUU3UVVGQlFTeExRVU4wUkN4RFFVRkJPMEZCWjBKQkxFbEJRVUVzU1VGQlFTeERRVUZSTEdOQlFXTXNUVUZCVFR0QlFVTXhRaXhOUVVGTkxFMUJRVUVzVTBGQlFTeEhRVUZaTEZWQlFWY3NRMEZCUVN4WlFVRkJMRU5CUVdFc1NVRkJTU3hEUVVGQkxFTkJRVUU3UVVGRk9VTXNUVUZCUVN4SlFVRkJMRU5CUVVzc1MwRkJUU3hEUVVGQkxFZEJRVUU3UVVGQlFTeFJRVU5VTEVsQlFVRXNRMEZCU3l4cFFrRkJhVUlzT0VKQlFXZERMRVZCUVVFc1EwRkJReXhWUVVGVkxFbEJRVXNzUTBGQlFTd3lRa0ZCUVN4RFFVRTBRaXhMUVVGTkxFTkJRVUVzVDBGQlR5eERRVUZETEVOQlFVRTdRVUZCUVN4UFFVTnNTQ3hEUVVGQk8wRkJSVUVzVFVGQlFTeEpRVUZCTEVOQlFVc3NTMEZCVFN4RFFVRkJMRWRCUVVFN1FVRkJRU3hSUVVOVUxGTkJRVUVzUTBGQlZTeHBRa0ZCYVVJc1RVRkJUVHRCUVVNdlFpeFZRVUZCTEVsQlFVRXNRMEZCU3l3clFrRkJaME1zUlVGQlFTeERRVUZCTzBGQlFVRXNVMEZEZEVNc1EwRkJRVHRCUVVGQkxFOUJRMGdzUTBGQlFUdEJRVWRCTEUxQlFVRXNTVUZCUVN4RFFVRkxMRTFCUVUwc1IwRkJTU3hEUVVGQkxFbEJRVUVzUTBGQlN5eG5Ra0ZCYVVJc1EwRkJRU3hKUVVGQkxFTkJRVXNzWlVGQlpTeERRVUZETEVOQlFVRXNRMEZCUVR0QlFVVXhSQ3hOUVVGQkxFbEJRVUVzUTBGQlN5d3dRMEZCTWtNc1JVRkJRU3hEUVVGQk8wRkJSMmhFTEUxQlFWY3NTMEZCUVN4TlFVRkJMRkZCUVVFc1NVRkJXU3hKUVVGTExFTkJRVUVzUzBGQlFTeERRVUZOTEZOQlFWY3NSVUZCUVR0QlFVTXpReXhSUVVGSkxFbEJRVUVzU1VGQlFTeERRVUZMTEc5Q1FVRnhRaXhEUVVGQkxGRkJRVkVzUTBGQlJ5eEZRVUZCTzBGQlEzWkRMRlZCUVVzc1NVRkJRU3hEUVVGQkxHdENRVUZCTEVOQlFXMUNMRWxCUVVrc1VVRkJVU3hEUVVGQkxFTkJRVUU3UVVGQlFTeFRRVU4wUXp0QlFVRkJMRTlCUTBZN1FVRkZRU3hOUVVGQkxFbEJRVUVzUTBGQlN5eG5Ra0ZCYVVJc1JVRkJRU3hEUVVGQk8wRkJSM1JDTEUxQlFVRXNUMEZCVHl4SlFVRkxMRU5CUVVFc1lVRkJRU3hEUVVGQk8wRkJRVUVzUzBGRFpDeERRVUZCTzBGQmFVSkJMRWxCUVVFc1NVRkJRU3hEUVVGUkxHZENRVUZuUWl4TlFVRk5PMEZCTDBab1F5eE5RVUZCTEVsQlFVRXNSVUZCUVN4RFFVRkJPMEZCWjBkSkxFMUJRVUVzUzBGQlFTeE5RVUZYTEUxQlFWVXNTVUZCUVN4SlFVRkJMRU5CUVVzc1UwRkJWU3hEUVVGQkxFMUJRVUVzUlVGQlZTeEZRVUZCTzBGQlF6VkRMRkZCUVVFc1EwRkJRU3hGUVVGQkxFZEJRVUVzVFVGQlFTeERRVUZQTEdsQ1FVRlFMRWxCUVhGQ0xFZEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNSVUZCUVN4RFFVRkJMRmRCUVVFc1JVRkJRU3hEUVVGQk8wRkJRVUVzVDBGRGRrSTdRVUZIUVN4TlFVRlhMRXRCUVVFc1RVRkJRU3hSUVVGQkxFbEJRVmtzU1VGQlN5eERRVUZCTEV0QlFVRXNRMEZCVFN4VFFVRlhMRVZCUVVFN1FVRkZNME1zVVVGQlNTeEpRVUZCTEVOQlFVTXNTVUZCU3l4RFFVRkJMR3RDUVVGQkxFTkJRVzFDTEVkQlFVa3NRMEZCUVN4UlFVRlJMRU5CUVVzc1NVRkJRU3hEUVVGRExFbEJRVXNzUTBGQlFTeFRRVUZCTEVOQlFWVXNSMEZCU1N4RFFVRkJMRkZCUVZFc1EwRkJSeXhGUVVGQk8wRkJRek5GTEZWQlFVc3NTVUZCUVN4RFFVRkJMSE5DUVVGQkxFTkJRWFZDTEcxQ1FVRnRRaXhSUVVGUkxFTkJRVUVzUTBGQlFUdEJRVUZCTEZOQlEzcEVPMEZCUVVFc1QwRkRSanRCUVVWQkxFMUJRVUVzU1VGQlFTeERRVUZMTEcxQ1FVRnRRaXhMUVVGTkxFVkJRVUVzUTBGQlFUdEJRVU01UWl4TlFVRkJMRWxCUVVFc1EwRkJTeXhWUVVGVkxFdEJRVTBzUlVGQlFTeERRVUZCTzBGQlFVRXNTMEZEZGtJc1EwRkJRVHRCUVV0QkxFbEJRVkVzU1VGQlFTeERRVUZCTEdWQlFVRXNSMEZCYTBJc1EwRkJReXhSUVVGQkxFVkJRV2xETEZGQlFXOURMRXRCUVVFN1FVRkRPVVlzVFVGQlRTeE5RVUZCTERKQ1FVRkJMRWRCUVRoQ0xFdEJRVXNzYTBKQlFXMUNMRU5CUVVFc1NVRkJRU3hEUVVGQk8wRkJSelZFTEUxQlFWY3NTMEZCUVN4TlFVRkJMRkZCUVVFc1NVRkJXU3hUUVVGVExGTkJRVmNzUlVGQlFUdEJRVU42UXl4UlFVRkJMRWxCUVVrc1EwRkJReXhSUVVGQkxFTkJRVk1zVTBGQlZTeERRVUZCTEZGQlFVRXNRMEZCVXl4UlFVRlJMRU5CUVVjc1JVRkJRVHRCUVVNeFF5eFZRVUZCTEUxQlFVMHNVVUZCVnl4SFFVRkJMRWxCUVVFc1EwRkJTeXhUUVVGVkxFTkJRVUVzUjBGQlFTeERRVUZKTEZGQlFWRXNRMEZCUVN4RFFVRkJPMEZCUXpWRExGVkJRVUVzU1VGQlNTeHhRMEZCVlN4WlFVRmpMRVZCUVVFN1FVRkRNVUlzV1VGQlFTeFJRVUZCTEVOQlFWTXNZVUZCWVN4WFFVRlpMRVZCUVVFc1EwRkJRVHRCUVVGQkxGZEJRM0JETzBGQlEwRXNWVUZCU3l4SlFVRkJMRU5CUVVFc1UwRkJRU3hEUVVGVkxFOUJRVThzVVVGQlVTeERRVUZCTEVOQlFVRTdRVUZET1VJc1ZVRkJTeXhKUVVGQkxFTkJRVUVzYTBKQlFVRXNRMEZCYlVJc1QwRkJUeXhSUVVGUkxFTkJRVUVzUTBGQlFUdEJRVUZCTEZOQlEzcERPMEZCUVVFc1QwRkRSanRCUVVkQkxFMUJRVmNzUzBGQlFTeE5RVUZCTEZGQlFVRXNTVUZCV1N4VFFVRlRMRk5CUVZjc1JVRkJRVHRCUVVONlF5eFJRVUZCTEVsQlFVa3NRMEZCUXl4UlFVRkJMRU5CUVZNc1UwRkJWU3hEUVVGQkxGRkJRVUVzUTBGQlV5eFJRVUZSTEVOQlFVY3NSVUZCUVR0QlFVTXhReXhWUVVGSkxFbEJRVUVzU1VGQlFTeERRVUZMTEc5Q1FVRnhRaXhEUVVGQkxGRkJRVkVzUTBGQlJ5eEZRVUZCTzBGQlEzWkRMRmxCUVVzc1NVRkJRU3hEUVVGQkxHdENRVUZCTEVOQlFXMUNMRWxCUVVrc1VVRkJVU3hEUVVGQkxFTkJRVUU3UVVGQlFTeFhRVU4wUXp0QlFVRkJMRk5CUTBZN1FVRkJRU3hQUVVOR08wRkJSMEVzVFVGQlFTeEpRVUZKTERKQ1FVRm5ReXhMUVVGQkxFTkJRVUVzU1VGQlN5eEpRVUZMTEVOQlFVRXNhMEpCUVVFc1EwRkJiVUlzVDBGQlR5eERRVUZITEVWQlFVRTdRVUZEZWtVc1VVRkJRU3hKUVVGQkxFTkJRVXNzWjBKQlFXbENMRVZCUVVFc1EwRkJRVHRCUVVGQkxFOUJRM2hDTzBGQlFVRXNTMEZEUml4RFFVRkJPMEZCY0VkRkxFbEJRVXNzU1VGQlFTeERRVUZCTEc5Q1FVRkJMRU5CUVhGQ0xFdEJRVXNzVjBGQlZ5eERRVUZCTEVOQlFVRTdRVUZCUVN4SFFVTTFRenRCUVVGQkxFVkJWRThzVlVGQlZTeEpRVUY1UXl4RlFVRkJPMEZCUlhoRUxFbEJRVThzVDBGQlFTeEpRVUZCTEVOQlFVc3NUVUZCVFN4VFFVRlZMRU5CUVVFc1NVRkJRU3hEUVVGTExFTkJRVU1zUTBGQlRTeExRVUZCTEVOQlFVRXNRMEZCUlN4TFFVRk5MRU5CUVVFc1NVRkJRU3hMUVVGVExFbEJRVWtzUTBGQlFTeERRVUZCTzBGQlFVRXNSMEZETDBRN1FVRkJRU3hGUVRaRFVTd3JRa0ZCYTBNc1IwRkJRVHRCUVVONFF5eEpRVUZYTEV0QlFVRXNUVUZCUVN4UlFVRkJMRWxCUVZrc1NVRkJTeXhEUVVGQkxFdEJRVUVzUTBGQlRTeFRRVUZYTEVWQlFVRTdRVUZETTBNc1RVRkJRU3hKUVVGSkxHRkJRV0VzVVVGQlV5eERRVUZCTEV0QlFVRXNTVUZCVXl4VFFVRlRMRXRCUVUwc1EwRkJRU3hQUVVGQkxFdEJRVmtzWjBKQlFXZENMR3RDUVVGdlFpeEZRVUZCTzBGQlEyaEhMRkZCUVVzc1NVRkJRU3hEUVVGQkxHdENRVUZCTEVOQlFXMUNMRWxCUVVrc1VVRkJVU3hEUVVGQkxFTkJRVUU3UVVGQlFTeFBRVU4wUXp0QlFVRkJMRXRCUTBZN1FVRkRRU3hKUVVGQkxFbEJRVUVzUTBGQlN5eG5Ra0ZCYVVJc1JVRkJRU3hEUVVGQk8wRkJRVUVzUjBGRGVFSTdRVUZCUVN4RlFUQkVVU3d3UTBGQk5rTXNSMEZCUVR0QlFVTnVSQ3hKUVVGQkxFbEJRVWtzUTBGQlF5eEpRVUZCTEVOQlFVc3NjMEpCUVhWQ0xFTkJRVUVzVTBGQlFTeEZRVUZoTEVWQlFVRTdRVUZETlVNc1RVRkJRU3hQUVVGQk8wRkJRVUVzUzBGRFJqdEJRVVZCTEVsQlFWY3NTMEZCUVN4TlFVRkJMRkZCUVVFc1NVRkJXU3hKUVVGTExFTkJRVUVzUzBGQlFTeERRVUZOTEZOQlFWY3NSVUZCUVR0QlFVTXpReXhOUVVGQkxFbEJRVWtzU1VGQlN5eERRVUZCTEhOQ1FVRkJMRU5CUVhWQ0xHVkJRV2RDTEVOQlFVRXNVVUZCVVN4RFFVRkhMRVZCUVVFN1FVRkRla1FzVVVGQlFTeHhRa0ZCUVN4RFFVRnpRaXhWUVVGVkxIbENRVUY1UWl4RFFVRkJMRU5CUVVFN1FVRkRla1FzVVVGQlFTeEpRVUZCTEVOQlFVc3NiME5CUVc5RExGRkJRVkVzUTBGQlFTeERRVUZCTzBGQlFVRXNUMEZEYmtRN1FVRkJRU3hMUVVOR08wRkJRVUVzUjBGRFJqdEJRVUZCTEVWQlJWRXNjVUpCUVhGQ0xGRkJRV3RETEVWQlFVRTdRVUZETjBRc1NVRkJRU3hKUVVGSkxGTkJRVk1zVFVGQlVTeEZRVUZCTzBGQlEyNUNMRTFCUVU4c1QwRkJRU3hMUVVGQkxFTkJRVUU3UVVGQlFTeExRVU5VTzBGQlJVRXNTVUZCU1N4SlFVRkJMRU5CUVVNc1UwRkJVeXhwUWtGQmJVSXNSVUZCUVR0QlFVTXZRaXhOUVVGUExFOUJRVUVzUzBGQlFTeERRVUZCTzBGQlFVRXNTMEZEVkR0QlFVZEJMRWxCUVVFc1NVRkJTU3hKUVVGTExFTkJRVUVzYzBKQlFVRXNRMEZCZFVJc1owSkJRV2xDTEVOQlFVRXNVVUZCVVN4RFFVRkhMRVZCUVVFN1FVRkRNVVFzVFVGQlFTeHhRa0ZCUVN4RFFVRnpRaXhWUVVGVkxHZEVRVUZuUkN4RFFVRkJMRU5CUVVFN1FVRkRhRVlzVFVGQlR5eFBRVUZCTEV0QlFVRXNRMEZCUVR0QlFVRkJMRXRCUTFRN1FVRkZRU3hKUVVGUExFOUJRVUVzU1VGQlFTeERRVUZCTzBGQlFVRXNSMEZEVkR0QlFVRkJMRVZCVFZFc1owSkJRVzFDTEVkQlFVRTdRVUZEZWtJc1NVRkJWeXhMUVVGQkxFMUJRVUVzVVVGQlFTeEpRVUZaTEV0QlFVc3NhMEpCUVc5Q0xFVkJRVUU3UVVGRE9VTXNUVUZCU1N4SlFVRkJMRU5CUVVNc1UwRkJVeXhwUWtGQmJVSXNSVUZCUVR0QlFVTXZRaXhSUVVGTkxFMUJRVUVzU1VGQlNTeE5RVUZOTEhsRlFVRjVSU3hEUVVGQkxFTkJRVUU3UVVGQlFTeFBRVU16Ump0QlFVZEJMRTFCUVVFc1NVRkJTU3hKUVVGTExFTkJRVUVzVTBGQlFTeERRVUZWTEVkQlFVa3NRMEZCUVN4UlFVRlJMRU5CUVVjc1JVRkJRVHRCUVVOb1F5eFJRVUZCTEZOQlFVRTdRVUZCUVN4UFFVTkdPMEZCUjBFc1RVRkJTU3hKUVVGQkxGVkJRVUVzUTBGQlZ5eHRRMEZCYjBNc1EwRkJRU3hSUVVGUkxFTkJRVWNzUlVGQlFUdEJRVU0xUkN4UlFVRkJMRk5CUVVFN1FVRkJRU3hQUVVOR08wRkJSVUVzVFVGQlFTeE5RVUZOTEdkQ1FVRTJReXhIUVVGQk8wRkJRVUVzVVVGRGFrUXNVVUZCUVR0QlFVRkJMRTlCUTBZc1EwRkJRVHRCUVVWQkxFMUJRVXNzU1VGQlFTeERRVUZCTEZOQlFVRXNRMEZCVlN4SFFVRkpMRU5CUVVFc1VVRkJRU3hGUVVGVkxHZENRVUZuUWl4RFFVRkJMRU5CUVVFN1FVRkROME1zVFVGQlFTeHhRa0ZCUVN4RFFVRnpRaXhWUVVGVkxESkNRVUV5UWl4RFFVRkJMRU5CUVVFN1FVRkZNMFFzVFVGQlFTeG5Ra0ZCUVN4RFFVRnBRaXhaUVVGbExFZEJRVUVzVVVGQlFTeERRVUZUTEdsQ1FVRnJRaXhGUVVGQkxFTkJRVVVzVTBGQlZTeERRVUZCTzBGQlFVRXNVVUZEY2tVc1NVRkJUU3hGUVVGQkxFMUJRVTBzU1VGQlN5eERRVUZCTERKQ1FVRkJMRU5CUVRSQ0xGRkJRVkVzUTBGQlFUdEJRVUZCTEZGQlEzSkVMRkZCUVZVc1JVRkJRU3hOUVVGTkxFbEJRVXNzUTBGQlFTd3lRa0ZCUVN4RFFVRTBRaXhSUVVGUkxFTkJRVUU3UVVGQlFTeFJRVU42UkN4UFFVRlBMRU5CUVVNc1IwRkJRU3hMUVVGUkxFbEJRVXNzUTBGQlFTeHZRa0ZCUVN4RFFVRnhRaXhWUVVGVkxFZEJRVWNzUTBGQlFUdEJRVUZCTEU5QlEzaEVMRU5CUVVFc1EwRkJRVHRCUVVGQkxFdEJRMGc3UVVGQlFTeEhRVU5HTzBGQlFVRXNSVUZMVVN3MFFrRkJORUlzVVVGQmVVSXNSVUZCUVR0QlFYcE9MMFFzU1VGQlFTeEpRVUZCTEVWQlFVRXNRMEZCUVR0QlFUQk9TU3hKUVVGQkxFbEJRVWtzUTBGQlF5eEpRVUZCTEVOQlFVc3NVMEZCVlN4RFFVRkJMRWRCUVVFc1EwRkJTU3hSUVVGUkxFTkJRVWNzUlVGQlFUdEJRVU5xUXl4TlFVRkJMRTlCUVVFN1FVRkJRU3hMUVVOR08wRkJSVUVzU1VGQlFTeE5RVUZOTEUxQlFWTXNSMEZCUVN4SlFVRkJMRU5CUVVzc1UwRkJWU3hEUVVGQkxFZEJRVUVzUTBGQlNTeFJRVUZSTEVOQlFVRXNRMEZCUVR0QlFVTXhReXhKUVVGQkxFTkJRVUVzUlVGQlFTeEhRVUZCTEUxQlFVRXNTVUZCUVN4SlFVRkJMRWRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzVFVGQlFTeERRVUZSTEdsQ1FVRlNMRWxCUVhOQ0xFZEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNSVUZCUVN4RFFVRkJMRmRCUVVFc1JVRkJRU3hEUVVGQk8wRkJSWFJDTEVsQlFVc3NTVUZCUVN4RFFVRkJMRk5CUVVFc1EwRkJWU3hQUVVGUExGRkJRVkVzUTBGQlFTeERRVUZCTzBGQlF6bENMRWxCUVVzc1NVRkJRU3hEUVVGQkxHdENRVUZCTEVOQlFXMUNMRTlCUVU4c1VVRkJVU3hEUVVGQkxFTkJRVUU3UVVGRmRrTXNTVUZCUVN4eFFrRkJRU3hEUVVGelFpeFZRVUZWTERaQ1FVRTJRaXhEUVVGQkxFTkJRVUU3UVVGRk4wUXNTVUZCUVN4SlFVRkJMRU5CUVVzc05rSkJRVFpDTEZGQlFWRXNRMEZCUVN4RFFVRkJPMEZCUXpGRExFbEJRVUVzU1VGQlFTeERRVUZMTEdkQ1FVRnBRaXhGUVVGQkxFTkJRVUU3UVVGQlFTeEhRVU40UWp0QlFVRkJMRVZCUlU4c1QwRkJUeXhSUVVGNVFpeEZRVUZCTzBGQk1VOTZReXhKUVVGQkxFbEJRVUVzUlVGQlFTeERRVUZCTzBGQk1rOUpMRWxCUVVFc1RVRkJUU3hOUVVGVExFZEJRVUVzU1VGQlFTeERRVUZMTEZOQlFWVXNRMEZCUVN4SFFVRkJMRU5CUVVrc1VVRkJVU3hEUVVGQkxFTkJRVUU3UVVGRE1VTXNTVUZCUVN4RFFVRkJMRVZCUVVFc1IwRkJRU3hOUVVGQkxFbEJRVUVzU1VGQlFTeEhRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRTFCUVVFc1EwRkJVU3hwUWtGQlVpeEpRVUZ6UWl4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUTBGQlFTeFhRVUZCTEVWQlFVRXNRMEZCUVR0QlFVVjBRaXhKUVVGTExFbEJRVUVzUTBGQlFTeFRRVUZCTEVOQlFWVXNUMEZCVHl4UlFVRlJMRU5CUVVFc1EwRkJRVHRCUVVNNVFpeEpRVUZMTEVsQlFVRXNRMEZCUVN4clFrRkJRU3hEUVVGdFFpeFBRVUZQTEZGQlFWRXNRMEZCUVN4RFFVRkJPMEZCUVVFc1IwRkRla003UVVGQlFTeEZRVVZSTEc5Q1FVRkJMRU5CUVhGQ0xGVkJRWGxDTEVkQlFWa3NSVUZCUVR0QlFXeFFjRVVzU1VGQlFTeEpRVUZCTEVWQlFVRXNRMEZCUVR0QlFXMVFTU3hKUVVGQkxFMUJRVTBzVFVGQlV5eEhRVUZCTEVsQlFVRXNRMEZCU3l4VFFVRlZMRU5CUVVFc1IwRkJRU3hEUVVGSkxGRkJRVkVzUTBGQlFTeERRVUZCTzBGQlF6RkRMRWxCUVVFc1EwRkJRU3hGUVVGQkxFZEJRVUVzVFVGQlFTeEpRVUZCTEVsQlFVRXNSMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hOUVVGQkxFTkJRVkVzYVVKQlFWSXNTVUZCYzBJc1IwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeEZRVUZCTEVOQlFVRXNWMEZCUVN4RlFVRkJMRU5CUVVFN1FVRkZkRUlzU1VGQlN5eEpRVUZCTEVOQlFVRXNVMEZCUVN4RFFVRlZMRTlCUVU4c1VVRkJVU3hEUVVGQkxFTkJRVUU3UVVGRE9VSXNTVUZCU3l4SlFVRkJMRU5CUVVFc2EwSkJRVUVzUTBGQmJVSXNUMEZCVHl4UlFVRlJMRU5CUVVFc1EwRkJRVHRCUVVWMlF5eEpRVUZCTEZGQlFVRXNRMEZCVXl4VFFVRlRMRVZCUVVVc1QwRkJRU3hGUVVGVExFOUJRVThzUzBGQlR5eEZRVUZCTEVkQlFVRXNRMEZCU1N4VFFVRlRMRU5CUVVFc1EwRkJRVHRCUVVWNFJDeEpRVUZSTEU5QlFVRXNRMEZCUVN4TFFVRkJMRU5CUVUwc05FTkJRVFJETEVkQlFVY3NRMEZCUVN4RFFVRkJPMEZCUlRkRUxFbEJRWE5DTEhGQ1FVRkJMRU5CUVVFc1VVRkJRU3hGUVVGVkxESkNRVUV5UWl4SFFVRkhMRU5CUVVFc1EwRkJRVHRCUVVVNVJDeEpRVUZCTEVsQlFVRXNRMEZCU3l3MlFrRkJOa0lzVVVGQlVTeERRVUZCTEVOQlFVRTdRVUZETVVNc1NVRkJRU3hKUVVGQkxFTkJRVXNzWjBKQlFXbENMRVZCUVVFc1EwRkJRVHRCUVVGQkxFZEJRM2hDTzBGQlFVRXNSVUZGVVN3MFFrRkJORUlzYlVKQlFXOURMRVZCUVVFN1FVRkRkRVVzU1VGQlN5eEpRVUZCTEVOQlFVRXNlVUpCUVVFc1EwRkJNRUlzU1VGQlNTeHRRa0ZCYlVJc1EwRkJRU3hEUVVGQk8wRkJRM1JFTEVsQlFVRXNTVUZCUVN4RFFVRkxMRzlEUVVGdlF5eHRRa0ZCYlVJc1EwRkJRU3hEUVVGQk8wRkJSelZFTEVsQlFVRXNTVUZCU1N4RFFVRkRMRWxCUVVFc1EwRkJTeXhUUVVGVkxFTkJRVUVzUjBGQlFTeERRVUZKTEcxQ1FVRnRRaXhEUVVGSExFVkJRVUU3UVVGRE5VTXNUVUZCUVN4SlFVRkJMRU5CUVVzc1owSkJRV2xDTEVWQlFVRXNRMEZCUVR0QlFVTjBRaXhOUVVGQkxFbEJRVUVzUTBGQlN5dzJRa0ZCTmtJc2JVSkJRVzFDTEVOQlFVRXNRMEZCUVR0QlFVRkJMRXRCUTNaRU8wRkJRVUVzUjBGRFJqdEJRVUZCTEVWQlRWRXNjVU5CUVVFc1EwRkJjME1zVlVGQmVVSXNWVUZCY1VJc1JVRkJRVHRCUVVVeFJpeEpRVUZCTEVsQlFVa3NWVUZCV1N4RlFVRkJPMEZCUTJRc1RVRkJRU3hKUVVGQkxFTkJRVXNzYjBOQlFXOURMRkZCUVZFc1EwRkJRU3hEUVVGQk8wRkJRVUVzUzBGRGJrUTdRVUZIUVN4SlFVRkJMRWxCUVVrc1MwRkJTeXhyUWtGQmJVSXNRMEZCUVN4SlFVRkJMRWRCUVU4c1MwRkJTeXhKUVVGTExFTkJRVUVzVTBGQlFTeERRVUZWTEZOQlFWTXNRMEZCUnl4RlFVRkJPMEZCUTJwRkxFMUJRVUVzU1VGQlFTeERRVUZMTEdkQ1FVRnBRaXhGUVVGQkxFTkJRVUU3UVVGQlFTeExRVU40UWp0QlFVRkJMRWRCUTBZN1FVRkJRU3hGUVVWUkxHOURRVUZ2UXl4dFFrRkJiME1zUlVGQlFUdEJRVU01UlN4SlFVRlhMRXRCUVVFc1RVRkJRU3hoUVVGQkxFbEJRV2xDTEVsQlFVc3NRMEZCUVN4TFFVRkJMRU5CUVUwc1UwRkJWeXhGUVVGQk8wRkJRMmhFTEUxQlFVRXNTVUZCU1N4alFVRmpMR3RDUVVGdlFpeEZRVUZCTzBGQlEzQkRMRkZCUVVFc1NVRkJTU3hqUVVGakxHdENRVUZ0UWl4RFFVRkJMR1ZCUVVFc1EwRkJaMElzYlVKQlFXOUNMRU5CUVVFc1MwRkJRU3hEUVVGTkxFbEJRVWtzUTBGQlJ5eEZRVUZCTzBGQlEzQkdMRlZCUVVFc2NVSkJRVUVzUTBGQmMwSXNaVUZCWlN4NVJFRkJlVVFzUTBGQlFTeERRVUZCTzBGQlJUbEdMRlZCUVVFc1NVRkJTU3hMUVVGTExGTkJRVlVzUTBGQlFTeEhRVUZCTEVOQlFVa3NZVUZCWVN4RFFVRkJMRWxCUVVzc1kwRkJZeXhSUVVGVkxFVkJRVUU3UVVGREwwUXNXVUZCUVN4aFFVRkJMRU5CUVdNc1VVRkJVeXhGUVVGQkxFTkJRVUU3UVVGQlFTeFhRVU42UWp0QlFVVkJMRlZCUVVzc1NVRkJRU3hEUVVGQkxHdENRVUZCTEVOQlFXMUNMRWxCUVVrc1lVRkJZU3hEUVVGQkxFTkJRVUU3UVVGQlFTeFRRVU16UXp0QlFVRkJMRTlCUTBZN1FVRkJRU3hMUVVOR08wRkJRVUVzUjBGRFJqdEJRVUZCTEVWQlMxRXNOa0pCUVRaQ0xGRkJRWGxDTEVWQlFVRTdRVUZETlVRc1NVRkJTU3hKUVVGQkxFTkJRVU1zUzBGQlN5eE5RVUZSTEVWQlFVRTdRVUZEYUVJc1RVRkJRU3hQUVVGQk8wRkJRVUVzUzBGRFJqdEJRVVZCTEVsQlFVc3NTVUZCUVN4RFFVRkJMSFZDUVVGQkxFTkJRWGRDTEV0QlFVc3NUVUZCVVN4RlFVRkJMRkZCUVVFc1JVRkJWU3hMUVVGTExIbENRVUV3UWl4RFFVRkJMRWRCUVVFc1EwRkJTU3hSUVVGUkxFTkJRVU1zUTBGQlFTeERRVUZCTzBGQlEyaEhMRWxCUVVzc1NVRkJRU3hEUVVGQkxIbENRVUZCTEVOQlFUQkNMRTlCUVU4c1VVRkJVU3hEUVVGQkxFTkJRVUU3UVVGQlFTeEhRVU5vUkR0QlFVRkJMRVZCUzFFc2RVSkJRVUVzUTBGQmQwSXNWMEZCTUVJc1JVRkJRU3hSUVVGQkxFVkJRWGxDTEZWQlFYRkNMRVZCUVVFN1FVRkZkRWNzU1VGQlFTeEpRVUZKTEZOQlFWTXNWMEZCWVN4RlFVRkJPMEZCUTNoQ0xFMUJRVUVzVDBGQlFUdEJRVUZCTEV0QlEwWTdRVUZIUVN4SlFVRkpMRWxCUVVFc1EwRkJReXhaUVVGWkxGRkJRVlVzUlVGQlFUdEJRVU42UWl4TlFVRkJMRTlCUVVFN1FVRkJRU3hMUVVOR08wRkJSMEVzU1VGQlFTeEpRVUZKTEZsQlFWa3NTMEZCVFN4RFFVRkJMRlZCUVVFc1NVRkJZeXhYUVVGWkxFTkJRVUVzUzBGQlFTeERRVUZOTEdWQlFXVXNTVUZCVFN4RlFVRkJPMEZCUTNwRkxFMUJRVUVzVFVGQlRTeFhRVUZYTEZkQlFWa3NRMEZCUVN4TFFVRkJMRU5CUVUwc1YwRkJWeXhUUVVGVkxFTkJRVUVzVVVGQlFTeERRVUZUTEUxQlFVMHNTVUZCU1N4RFFVRkJMRU5CUVVFN1FVRkRNMFVzVFVGQlFTeEpRVUZKTEZGQlFWVXNSVUZCUVR0QlFVTmFMRkZCUVVFc1QwRkJRVHRCUVVGQkxFOUJRMFk3UVVGQlFTeExRVU5HTzBGQlJVRXNTVUZCUVN4SlFVRkpMRmxCUVZrc2EwSkJRVzlDTEVWQlFVRTdRVUZEYkVNc1RVRkJXU3hYUVVGQkxFTkJRVUVzYTBKQlFVRXNRMEZCYlVJc2RVSkJRWGRDTEVOQlFVRXNVVUZCUVN4RlFVRlZMRlZCUVZVc1EwRkJRU3hEUVVGQk8wRkJRVUVzUzBGRE4wVTdRVUZGUVN4SlFVRlpMRmRCUVVFc1EwRkJRU3haUVVGQkxFTkJRV0VzUTBGQlF5eExRVUZWTEV0QlFVRXNTVUZCUVN4RFFVRkxMSGRDUVVGM1FpeExRVUZQTEVWQlFVRXNVVUZCUVN4RlFVRlZMRlZCUVZVc1EwRkJReXhEUVVGQkxFTkJRVUU3UVVGQlFTeEhRVU12Ump0QlFVRkJMRVZCVVU4c2JVTkJRVzFETEZGQlFYbENMRVZCUVVFN1FVRkRha1VzU1VGQlFTeEpRVUZKTEZGQlFWTXNRMEZCUVN4cFFrRkJRU3hKUVVGeFFpeFJRVUZUTEVOQlFVRXNhVUpCUVVFc1JVRkJjVUlzUlVGQlFUdEJRVU01UkN4TlFVRlBMRTlCUVVFc1NVRkJRU3hEUVVGQk8wRkJRVUVzUzBGRFZEdEJRVVZCTEVsQlFVa3NTVUZCUVN4SlFVRkJMRU5CUVVzc2JVSkJRVzFDTEVkQlFVa3NRMEZCUVN4UlFVRlJMRXRCUVVzc1NVRkJTeXhEUVVGQkxGTkJRVUVzUTBGQlZTeEhRVUZKTEVOQlFVRXNVVUZCVVN4RFFVRkhMRVZCUVVFN1FVRkRla1VzVFVGQlR5eFBRVUZCTEVsQlFVRXNRMEZCUVR0QlFVRkJMRXRCUTFRN1FVRkhRU3hKUVVGUExFOUJRVUVzVlVGQlFTeERRVUZYTEc5RFFVRnZReXhSUVVGUkxFTkJRVUVzUTBGQlFUdEJRVUZCTEVkQlEyaEZPMEZCUTBZc1EwRkJRVHRCUVU5QkxGTkJRVk1zY1VKQlFVRXNRMEZCYzBJc1VVRkJlVUlzUlVGQlFTeFBRVUZCTEVWQlFXbENMRWRCUVdFc1JVRkJRVHRCUVVOd1JpeEZRVUZCTEVsQlFVa3NSMEZCU3l4RlFVRkJPMEZCUTFBc1NVRkJRU3hoUVVGQkxFTkJRV01zYjBKQlFXOUNMRU5CUVZrc1UwRkJRU3hGUVVGQkxGRkJRVUVzUTBGQlV5eExRVUZOTEVOQlFVRXNTVUZCUVN4RFFVRkJMRWRCUVVFc1JVRkJWU3hYUVVGWExFZEJRVWNzUTBGQlFTeERRVUZCTzBGQlFVRXNSMEZEYUVZc1RVRkJRVHRCUVVOTUxFbEJRVUVzWVVGQlFTeERRVUZqTEd0Q1FVRnZRaXhGUVVGQkxFTkJRVUVzVTBGQlFTeEZRVUZaTEZGQlFWTXNRMEZCUVN4TFFVRkJMRU5CUVUwc1ZVRkJWU3hQUVVGVExFTkJRVUVzUTBGQlFTeERRVUZCTEVOQlFVRTdRVUZCUVN4SFFVTnNSanRCUVVOR0xFTkJRVUU3UVVGRlFTeE5RVUZOTEhsRFFVRjFSaXhEUVVGQk8wRkJRVUVzUlVGRGNFWXNXVUZCYjBJc2VVSkJRVzFHTEVWQlFVRTdRVUZCYmtZc1NVRkJRU3hKUVVGQkxFTkJRVUVzZVVKQlFVRXNSMEZCUVN4NVFrRkJRU3hEUVVGQk8wRkJSVE5DTEVsQlFWRXNTVUZCUVN4RFFVRkJMRk5CUVVFc2RVSkJRV2RDTEVkQlFWa3NSVUZCUVN4RFFVRkJPMEZCUVVFc1IwRkdNa1U3UVVGQlFTeEZRVWw0Unl4UlFVRjNRaXhIUVVGQk8wRkJRemRDTEVsQlFVRXNUMEZCVHl4SlFVRkxMRU5CUVVFc1UwRkJRU3hEUVVGQk8wRkJRVUVzUjBGRFpEdEJRVUZCTEVWQlJVOHNaMEpCUVdkQ0xFbEJRWFZDTEVWQlFVRTdRVUZETlVNc1NVRkJUeXhQUVVGQkxFdEJRVUVzUTBGQlFUdEJRVUZCTEVkQlExUTdRVUZCUVN4RlFVVlBMSFZDUVVGQkxFTkJRWGRDTEZWQlFYbENMRlZCUVRKQ0xFVkJRVUU3UVVGRGFrWXNTVUZCU3l4SlFVRkJMRU5CUVVFc2VVSkJRVUVzUTBGQk1FSXNWVUZCVlN4VlFVRlZMRU5CUVVFc1EwRkJRVHRCUVVGQkxFZEJRM0pFTzBGQlEwWTdPenM3SW4wPVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFnQk8sTUFBTSx5QkFBeUIsZUFBaUUsQ0FBQTtBQXdCOUYsRUFBQSxXQUFBLENBQVks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
@@ -1,11 +0,0 @@
1
- import { BusEventWithPayload } from '@grafana/data';
2
-
3
- class SceneVariableValueChangedEvent extends BusEventWithPayload {
4
- }
5
- SceneVariableValueChangedEvent.type = "scene-variable-changed-value";
6
- function isCustomVariableValue(value) {
7
- return typeof value === "object" && "formatter" in value;
8
- }
9
-
10
- export { SceneVariableValueChangedEvent, isCustomVariableValue };
11
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3ZhcmlhYmxlcy90eXBlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdXNFdmVudFdpdGhQYXlsb2FkIH0gZnJvbSAnQGdyYWZhbmEvZGF0YSc7XG5cbmNsYXNzIFNjZW5lVmFyaWFibGVWYWx1ZUNoYW5nZWRFdmVudCBleHRlbmRzIEJ1c0V2ZW50V2l0aFBheWxvYWQge1xufVxuU2NlbmVWYXJpYWJsZVZhbHVlQ2hhbmdlZEV2ZW50LnR5cGUgPSBcInNjZW5lLXZhcmlhYmxlLWNoYW5nZWQtdmFsdWVcIjtcbmZ1bmN0aW9uIGlzQ3VzdG9tVmFyaWFibGVWYWx1ZSh2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmIFwiZm9ybWF0dGVyXCIgaW4gdmFsdWU7XG59XG5cbmV4cG9ydCB7IFNjZW5lVmFyaWFibGVWYWx1ZUNoYW5nZWRFdmVudCwgaXNDdXN0b21WYXJpYWJsZVZhbHVlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRIbHdaWE11YW5NaUxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUx5NHVMM055WXk5MllYSnBZV0pzWlhNdmRIbHdaWE11ZEhNaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIc2dUMkp6WlhKMllXSnNaU0I5SUdaeWIyMGdKM0o0YW5Nbk8xeHVYRzVwYlhCdmNuUWdleUJDZFhORmRtVnVkRmRwZEdoUVlYbHNiMkZrSUgwZ1puSnZiU0FuUUdkeVlXWmhibUV2WkdGMFlTYzdYRzVwYlhCdmNuUWdleUJXWVhKcFlXSnNaVlI1Y0dVc0lGWmhjbWxoWW14bFNHbGtaU0I5SUdaeWIyMGdKMEJuY21GbVlXNWhMM05qYUdWdFlTYzdYRzVjYm1sdGNHOXlkQ0I3SUZOalpXNWxUMkpxWldOMExDQlRZMlZ1WlU5aWFtVmpkRk4wWVhSbElIMGdabkp2YlNBbkxpNHZZMjl5WlM5MGVYQmxjeWM3WEc1Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1UyTmxibVZXWVhKcFlXSnNaVk4wWVhSbElHVjRkR1Z1WkhNZ1UyTmxibVZQWW1wbFkzUlRkR0YwWlNCN1hHNGdJSFI1Y0dVNklGWmhjbWxoWW14bFZIbHdaVHRjYmlBZ2JtRnRaVG9nYzNSeWFXNW5PMXh1SUNCc1lXSmxiRDg2SUhOMGNtbHVaenRjYmlBZ2FHbGtaVDg2SUZaaGNtbGhZbXhsU0dsa1pUdGNiaUFnYzJ0cGNGVnliRk41Ym1NL09pQmliMjlzWldGdU8xeHVJQ0JzYjJGa2FXNW5Qem9nWW05dmJHVmhianRjYmlBZ1pYSnliM0kvT2lCaGJua2dmQ0J1ZFd4c08xeHVJQ0JrWlhOamNtbHdkR2x2Ymo4NklITjBjbWx1WnlCOElHNTFiR3c3WEc1OVhHNWNibVY0Y0c5eWRDQnBiblJsY21aaFkyVWdVMk5sYm1WV1lYSnBZV0pzWlR4VVUzUmhkR1VnWlhoMFpXNWtjeUJUWTJWdVpWWmhjbWxoWW14bFUzUmhkR1VnUFNCVFkyVnVaVlpoY21saFlteGxVM1JoZEdVK0lHVjRkR1Z1WkhNZ1UyTmxibVZQWW1wbFkzUThWRk4wWVhSbFBpQjdYRzRnSUM4cUtseHVJQ0FnS2lCVWFHbHpJR1oxYm1OMGFXOXVJR2x6SUdOaGJHeGxaQ0J2YmlCaFkzUnBkbUYwYVc5dUlHOXlJSGRvWlc0Z1lTQmtaWEJsYm1SbGJtTjVJR05vWVc1blpYTXVYRzRnSUNBcUwxeHVJQ0IyWVd4cFpHRjBaVUZ1WkZWd1pHRjBaVDhvS1RvZ1QySnpaWEoyWVdKc1pUeFdZV3hwWkdGMFpVRnVaRlZ3WkdGMFpWSmxjM1ZzZEQ0N1hHNWNiaUFnTHlvcVhHNGdJQ0FxSUZOb2IzVnNaQ0J5WlhSMWNtNGdkR2hsSUhaaGJIVmxJR1p2Y2lCMGFHVWdaMmwyWlc0Z1ptbGxiR1FnY0dGMGFGeHVJQ0FnS2k5Y2JpQWdaMlYwVm1Gc2RXVW9abWxsYkdSUVlYUm9Qem9nYzNSeWFXNW5LVG9nVm1GeWFXRmliR1ZXWVd4MVpTQjhJSFZ1WkdWbWFXNWxaQ0I4SUc1MWJHdzdYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGTm9iM1ZzWkNCeVpYUjFjbTRnZEdobElIWmhiSFZsSUdScGMzQnNZWGtnZEdWNGRDd2dkWE5sWkNCaWVTQjBhR1VnWENKMFpYaDBYQ0lnWm05eWJXRjBkR1Z5WEc0Z0lDQXFJRVY0WVcxd2JHVTZJQ1I3Y0c5a1NXUTZkR1Y0ZEgxY2JpQWdJQ29nVlhObFpuVnNJR1p2Y2lCMllYSnBZV0pzWlhNZ2RHaGhkQ0JvWVhabElHNXZiaUIxYzJWeUlHWnlhV1Z1Wkd4NUlIWmhiSFZsY3lCaWRYUWdabkpwWlc1a2JIa2daR2x6Y0d4aGVTQjBaWGgwSUc1aGJXVnpMbHh1SUNBZ0tpOWNiaUFnWjJWMFZtRnNkV1ZVWlhoMFB5aG1hV1ZzWkZCaGRHZy9PaUJ6ZEhKcGJtY3BPaUJ6ZEhKcGJtYzdYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFWnZjaUJ6Y0dWamFXRnNJR1ZrWjJVZ1kyRnpaU0J6Wlc1aGNtbHZjeTRnUm05eUlHVjRZVzF3YkdVZ2JHOWpZV3dnWm5WdVkzUnBiMjRnZEdoaGRDQnNiMk5oYkd4NUlITmpiM0JsWkNCMllYSnBZV0pzWlhNZ1kyRnVJR2x0Y0d4bGJXVnVkQzVjYmlBZ0lDb3FMMXh1SUNCcGMwRnVZMlZ6ZEc5eVRHOWhaR2x1Wno4b0tUb2dZbTl2YkdWaGJqdGNibHh1SUNBdktpcGNiaUFnSUNvZ1FXeHNiM2R6SUdOaGJtTmxiR3hwYm1jZ2RtRnlhV0ZpYkdVZ1pYaGxZM1YwYVc5dUxseHVJQ0FnS2k5Y2JpQWdiMjVEWVc1alpXdy9LQ2s2SUhadmFXUTdYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQmxlSEJsY21sdFpXNTBZV3hjYmlBZ0lDb2dTVzVrYVdOaGRHVnpJSFJvWVhRZ1lTQjJZWEpwWVdKc1pTQnNiMkZrY3lCMllXeDFaWE1nYkdGNmFXeDVJSGRvWlc0Z2RYTmxjaUJwYm5SbGNtRmpkSE1nZDJsMGFDQjBhR1VnZG1GeWFXRmliR1VnWkhKdmNHUnZkMjR1WEc0Z0lDQXFMMXh1SUNCcGMweGhlbmsvT2lCaWIyOXNaV0Z1TzF4dWZWeHVYRzVsZUhCdmNuUWdkSGx3WlNCV1lYSnBZV0pzWlZaaGJIVmxJRDBnVm1GeWFXRmliR1ZXWVd4MVpWTnBibWRzWlNCOElGWmhjbWxoWW14bFZtRnNkV1ZUYVc1bmJHVmJYVHRjYmx4dVpYaHdiM0owSUhSNWNHVWdWbUZ5YVdGaWJHVldZV3gxWlZOcGJtZHNaU0E5SUhOMGNtbHVaeUI4SUdKdmIyeGxZVzRnZkNCdWRXMWlaWElnZkNCRGRYTjBiMjFXWVhKcFlXSnNaVlpoYkhWbE8xeHVYRzR2S2lwY2JpQXFJRlJvYVhNZ2FYTWdabTl5SUdWa1oyVWdZMkZ6WlNCMllXeDFaWE1nYkdsclpTQjBhR1VnWTNWemRHOXRJRndpWVd4c1ZtRnNkV1ZjSWlCMGFHRjBJSE5vYjNWc1pDQnViM1FnWW1VZ1pYTmpZWEJsWkM5bWIzSnRZWFIwWldRZ2JHbHJaU0J2ZEdobGNpQjJZV3gxWlhOY2JpQXFJRlJvWlNCamRYTjBiMjBnWVd4c0lIWmhiSFZsSUhWemRXRnNiSGtnWTI5dWRHRnBiaUIzYVd4a1kyRnlaSE1nZEdoaGRDQnphRzkxYkdRZ2JtOTBJR0psSUdWelkyRndaV1F1WEc0Z0tpOWNibVY0Y0c5eWRDQnBiblJsY21aaFkyVWdRM1Z6ZEc5dFZtRnlhV0ZpYkdWV1lXeDFaU0I3WEc0Z0lDOHFLbHh1SUNBZ0tpQlVhR1VnWm05eWJXRjBJRzVoYldVZ2IzSWdablZ1WTNScGIyNGdkWE5sWkNCcGJpQjBhR1VnWlhod2NtVnpjMmx2Ymx4dUlDQWdLaTljYmlBZ1ptOXliV0YwZEdWeUtHWnZjbTFoZEU1aGJXVlBja1p1UHpvZ2MzUnlhVzVuSUh3Z1ZtRnlhV0ZpYkdWRGRYTjBiMjFHYjNKdFlYUjBaWEpHYmlrNklITjBjbWx1Wnp0Y2JuMWNibHh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JXWVd4cFpHRjBaVUZ1WkZWd1pHRjBaVkpsYzNWc2RDQjdmVnh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JXWVhKcFlXSnNaVlpoYkhWbFQzQjBhVzl1SUh0Y2JpQWdiR0ZpWld3NklITjBjbWx1Wnp0Y2JpQWdkbUZzZFdVNklGWmhjbWxoWW14bFZtRnNkV1ZUYVc1bmJHVTdYRzRnSUdkeWIzVndQem9nYzNSeWFXNW5PMXh1ZlZ4dVhHNWxlSEJ2Y25RZ2FXNTBaWEptWVdObElGTmpaVzVsVm1GeWFXRmliR1ZUWlhSVGRHRjBaU0JsZUhSbGJtUnpJRk5qWlc1bFQySnFaV04wVTNSaGRHVWdlMXh1SUNCMllYSnBZV0pzWlhNNklGTmpaVzVsVm1GeWFXRmliR1ZiWFR0Y2JuMWNibHh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JUWTJWdVpWWmhjbWxoWW14bGN5QmxlSFJsYm1SeklGTmpaVzVsVDJKcVpXTjBQRk5qWlc1bFZtRnlhV0ZpYkdWVFpYUlRkR0YwWlQ0Z2UxeHVJQ0F2S2lwY2JpQWdJQ29nVjJsc2JDQnNiMjlySUdadmNpQmhibVFnY21WMGRYSnVJSFpoY21saFlteGxJRzFoZEdOb2FXNW5JRzVoYldWY2JpQWdJQ292WEc0Z0lHZGxkRUo1VG1GdFpTaHVZVzFsT2lCemRISnBibWNwT2lCVFkyVnVaVlpoY21saFlteGxJSHdnZFc1a1pXWnBibVZrTzF4dUlDQXZLaXBjYmlBZ0lDb2dWMmxzYkNCeVpYUjFjbTRnZEhKMVpTQnBaaUIwYUdVZ2RtRnlhV0ZpYkdVZ2FYTWdiRzloWkdsdVp5QnZjaUIzWVdsMGFXNW5JR1p2Y2lCaGJpQjFjR1JoZEdVZ2RHOGdZMjl0Y0d4bGRHVXVYRzRnSUNBcUwxeHVJQ0JwYzFaaGNtbGhZbXhsVEc5aFpHbHVaMDl5VjJGcGRHbHVaMVJ2VlhCa1lYUmxLSFpoY21saFlteGxPaUJUWTJWdVpWWmhjbWxoWW14bEtUb2dZbTl2YkdWaGJqdGNibjFjYmx4dVpYaHdiM0owSUdOc1lYTnpJRk5qWlc1bFZtRnlhV0ZpYkdWV1lXeDFaVU5vWVc1blpXUkZkbVZ1ZENCbGVIUmxibVJ6SUVKMWMwVjJaVzUwVjJsMGFGQmhlV3h2WVdROFUyTmxibVZXWVhKcFlXSnNaVDRnZTF4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUhSNWNHVWdQU0FuYzJObGJtVXRkbUZ5YVdGaWJHVXRZMmhoYm1kbFpDMTJZV3gxWlNjN1hHNTlYRzVjYm1WNGNHOXlkQ0JwYm5SbGNtWmhZMlVnVTJObGJtVldZWEpwWVdKc1pVUmxjR1Z1WkdWdVkzbERiMjVtYVdkTWFXdGxJSHRjYmlBZ0x5b3FJRkpsZEhWeWJpQmhiR3dnZG1GeWFXRmliR1VnYm1GdFpYTWdkR2hwY3lCdlltcGxZM1FnWkdWd1pXNWtJRzl1SUNvdlhHNGdJR2RsZEU1aGJXVnpLQ2s2SUZObGREeHpkSEpwYm1jK08xeHVYRzRnSUM4cUtpQlZjMlZrSUhSdklHTm9aV05ySUdadmNpQmtaWEJsYm1SbGJtTjVJRzl1SUdFZ2MzQmxZMmxtYVdNZ2RtRnlhV0ZpYkdVZ0tpOWNiaUFnYUdGelJHVndaVzVrWlc1amVVOXVLRzVoYldVNklITjBjbWx1WnlrNklHSnZiMnhsWVc0N1hHNWNiaUFnTHlvcVhHNGdJQ0FxSUZkcGJHd2dZbVVnWTJGc2JHVmtJSGRvWlc0Z2RHaGxJRlpoY21saFlteGxVMlYwSUdoaGRtVWdZMjl0Y0d4bGRHVmtJR0Z1SUhWd1pHRjBaU0J3Y205alpYTnpJRzl5SUhkb1pXNGdZU0IyWVhKcFlXSnNaU0JvWVhNZ1kyaGhibWRsWkNCMllXeDFaUzVjYmlBZ0lDb3FMMXh1SUNCMllYSnBZV0pzWlZWd1pHRjBaVU52YlhCc1pYUmxaQ2gyWVhKcFlXSnNaVG9nVTJObGJtVldZWEpwWVdKc1pTd2dhR0Z6UTJoaGJtZGxaRG9nWW05dmJHVmhiaWs2SUhadmFXUTdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1ZYTmxaQ0JwYmlCRGRYTjBiMjFHYjNKdFlYUjBaWEpHYmx4dUlDb3ZYRzVsZUhCdmNuUWdhVzUwWlhKbVlXTmxJRU4xYzNSdmJVWnZjbTFoZEhSbGNsWmhjbWxoWW14bElIdGNiaUFnYm1GdFpUb2djM1J5YVc1bk8xeHVJQ0IwZVhCbE9pQldZWEpwWVdKc1pWUjVjR1U3WEc0Z0lHMTFiSFJwUHpvZ1ltOXZiR1ZoYmp0Y2JpQWdhVzVqYkhWa1pVRnNiRDg2SUdKdmIyeGxZVzQ3WEc1OVhHNWNibVY0Y0c5eWRDQjBlWEJsSUZaaGNtbGhZbXhsUTNWemRHOXRSbTl5YldGMGRHVnlSbTRnUFNBb1hHNGdJSFpoYkhWbE9pQjFibXR1YjNkdUxGeHVJQ0JzWldkaFkzbFdZWEpwWVdKc1pVMXZaR1ZzT2lCUVlYSjBhV0ZzUEVOMWMzUnZiVVp2Y20xaGRIUmxjbFpoY21saFlteGxQaXhjYmlBZ2JHVm5ZV041UkdWbVlYVnNkRVp2Y20xaGRIUmxjajg2SUZaaGNtbGhZbXhsUTNWemRHOXRSbTl5YldGMGRHVnlSbTVjYmlrZ1BUNGdjM1J5YVc1bk8xeHVYRzVsZUhCdmNuUWdkSGx3WlNCSmJuUmxjbkJ2YkdGMGFXOXVSbTl5YldGMFVHRnlZVzFsZEdWeUlEMGdjM1J5YVc1bklId2dWbUZ5YVdGaWJHVkRkWE4wYjIxR2IzSnRZWFIwWlhKR2JpQjhJSFZ1WkdWbWFXNWxaRHRjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdselEzVnpkRzl0Vm1GeWFXRmliR1ZXWVd4MVpTaDJZV3gxWlRvZ1ZtRnlhV0ZpYkdWV1lXeDFaU2s2SUhaaGJIVmxJR2x6SUVOMWMzUnZiVlpoY21saFlteGxWbUZzZFdVZ2UxeHVJQ0J5WlhSMWNtNGdkSGx3Wlc5bUlIWmhiSFZsSUQwOVBTQW5iMkpxWldOMEp5QW1KaUFuWm05eWJXRjBkR1Z5SnlCcGJpQjJZV3gxWlR0Y2JuMWNiaUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lPenRCUVRCR1R5eE5RVUZOTEhWRFFVRjFReXh0UWtGQmJVTXNRMEZCUVR0QlFVVjJSaXhEUVVGQk8wRkJSbUVzT0VKQlFVRXNRMEZEUnl4SlFVRlBMRWRCUVVFc09FSkJRVUVzUTBGQlFUdEJRV3REYUVJc1UwRkJVeXh6UWtGQmMwSXNTMEZCYjBRc1JVRkJRVHRCUVVONFJpeEZRVUZQTEU5QlFVRXNUMEZCVHl4TFFVRlZMRXRCUVVFc1VVRkJRU3hKUVVGWkxGZEJRV1VzU1VGQlFTeExRVUZCTEVOQlFVRTdRVUZEY2tRN096czdJbjA9XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUEwRk8sTUFBTSx1Q0FBdUMsbUJBQW1DLENBQUE7QUFFdkYsQ0FBQTtBQUZhLDhCQUFBLENBQ0csSUFBTyxHQUFBLDhCQUFBLENBQUE7QUFrQ2hCLFNBQVMsc0JBQXNCLEtBQW9ELEVBQUE7QUFDakYsRUFBQSxPQUFBLE9BQU8sS0FBVSxLQUFBLFFBQUEsSUFBWSxXQUFlLElBQUEsS0FBQSxDQUFBO0FBQ3JEOzs7OyJ9