@grafana/scenes 6.8.0 → 6.9.0--canary.1093.14409340532.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/dist/esm/components/VizPanel/VizPanelRenderer.js +4 -3
- package/dist/esm/components/VizPanel/VizPanelRenderer.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/esm/components/layout/CSSGrid/SceneCSSGridItem.js +0 -33
- package/dist/esm/dist/esm/behaviors/CursorSync.js +0 -76
- package/dist/esm/dist/esm/behaviors/LiveNowTimer.js +0 -44
- package/dist/esm/dist/esm/behaviors/SceneQueryController.js +0 -14
- package/dist/esm/dist/esm/components/EmbeddedScene.js +0 -59
- package/dist/esm/dist/esm/components/NestedScene.js +0 -95
- package/dist/esm/dist/esm/components/SceneApp/SceneApp.js +0 -27
- package/dist/esm/dist/esm/components/SceneApp/SceneAppPage.js +0 -176
- package/dist/esm/dist/esm/components/SceneApp/SceneAppPageView.js +0 -104
- package/dist/esm/dist/esm/components/SceneApp/utils.js +0 -42
- package/dist/esm/dist/esm/components/SceneByFrameRepeater.js +0 -41
- package/dist/esm/dist/esm/components/SceneByVariableRepeater.js +0 -55
- package/dist/esm/dist/esm/components/SceneCanvasText.js +0 -32
- package/dist/esm/dist/esm/components/SceneControlsSpacer.js +0 -17
- package/dist/esm/dist/esm/components/SceneDebugger/DebugDetails.js +0 -82
- package/dist/esm/dist/esm/components/SceneDebugger/DebugTreeNode.js +0 -72
- package/dist/esm/dist/esm/components/SceneDebugger/SceneDebugger.js +0 -77
- package/dist/esm/dist/esm/components/SceneReactObject.js +0 -34
- package/dist/esm/dist/esm/components/SceneRefreshPicker.js +0 -205
- package/dist/esm/dist/esm/components/SceneTimePicker.js +0 -139
- package/dist/esm/dist/esm/components/SceneTimeRangeCompare.js +0 -240
- package/dist/esm/dist/esm/components/SceneToolbarButton.js +0 -33
- package/dist/esm/dist/esm/components/VizPanel/VizPanel.js +0 -406
- package/dist/esm/dist/esm/components/VizPanel/VizPanelExploreButton.js +0 -44
- package/dist/esm/dist/esm/components/VizPanel/VizPanelMenu.js +0 -59
- package/dist/esm/dist/esm/components/VizPanel/VizPanelRenderer.js +0 -285
- package/dist/esm/dist/esm/components/VizPanel/VizPanelSeriesLimit.js +0 -45
- package/dist/esm/dist/esm/components/VizPanel/colorSeriesConfigFactory.js +0 -72
- package/dist/esm/dist/esm/components/VizPanel/registerRuntimePanelPlugin.js +0 -11
- package/dist/esm/dist/esm/components/VizPanel/seriesVisibilityConfigFactory.js +0 -164
- package/dist/esm/dist/esm/components/layout/CSSGrid/SceneCSSGridLayout.js +0 -124
- package/dist/esm/dist/esm/components/layout/LazyLoader.js +0 -103
- package/dist/esm/dist/esm/components/layout/SceneFlexLayout.js +0 -135
- package/dist/esm/dist/esm/components/layout/grid/SceneGridItem.js +0 -30
- package/dist/esm/dist/esm/components/layout/grid/SceneGridLayout.js +0 -283
- package/dist/esm/dist/esm/components/layout/grid/SceneGridLayoutRenderer.js +0 -178
- package/dist/esm/dist/esm/components/layout/grid/SceneGridRow.js +0 -190
- package/dist/esm/dist/esm/components/layout/grid/constants.js +0 -7
- package/dist/esm/dist/esm/components/layout/grid/utils.js +0 -36
- package/dist/esm/dist/esm/components/layout/split/SplitLayout.js +0 -17
- package/dist/esm/dist/esm/components/layout/split/SplitLayoutRenderer.js +0 -29
- package/dist/esm/dist/esm/components/layout/split/Splitter.js +0 -386
- package/dist/esm/dist/esm/core/SceneComponentWrapper.js +0 -57
- package/dist/esm/dist/esm/core/SceneDataNode.js +0 -43
- package/dist/esm/dist/esm/core/SceneObjectBase.js +0 -286
- package/dist/esm/dist/esm/core/SceneObjectRef.js +0 -32
- package/dist/esm/dist/esm/core/SceneTimeRange.js +0 -231
- package/dist/esm/dist/esm/core/events.js +0 -11
- package/dist/esm/dist/esm/core/sceneGraph/getTimeRange.js +0 -10
- package/dist/esm/dist/esm/core/sceneGraph/index.js +0 -25
- package/dist/esm/dist/esm/core/sceneGraph/sceneGraph.js +0 -178
- package/dist/esm/dist/esm/core/sceneGraph/utils.js +0 -64
- package/dist/esm/dist/esm/core/types.js +0 -15
- package/dist/esm/dist/esm/querying/DataLayersMerger.js +0 -46
- package/dist/esm/dist/esm/querying/ExtraQueryProvider.js +0 -6
- package/dist/esm/dist/esm/querying/RuntimeDataSource.js +0 -6
- package/dist/esm/dist/esm/querying/SceneDataLayerSet.js +0 -100
- package/dist/esm/dist/esm/querying/SceneQueryRunner.js +0 -468
- package/dist/esm/dist/esm/querying/extraQueryProcessingOperator.js +0 -46
- package/dist/esm/dist/esm/querying/getEnrichedDataRequest.js +0 -12
- package/dist/esm/dist/esm/querying/layers/SceneDataLayerBase.js +0 -112
- package/dist/esm/dist/esm/querying/layers/SceneDataLayerControls.js +0 -51
- package/dist/esm/dist/esm/querying/layers/annotations/AnnotationsDataLayer.js +0 -130
- package/dist/esm/dist/esm/querying/layers/annotations/filterAnnotations.js +0 -85
- package/dist/esm/dist/esm/querying/layers/annotations/standardAnnotationQuery.js +0 -121
- package/dist/esm/dist/esm/querying/layers/annotations/standardAnnotationsSupport.js +0 -211
- package/dist/esm/dist/esm/querying/layers/annotations/utils.js +0 -77
- package/dist/esm/dist/esm/querying/registerQueryWithController.js +0 -41
- package/dist/esm/dist/esm/services/SceneObjectUrlSyncConfig.js +0 -30
- package/dist/esm/dist/esm/services/UniqueUrlKeyMapper.js +0 -45
- package/dist/esm/dist/esm/services/UrlSyncManager.js +0 -167
- package/dist/esm/dist/esm/services/useUrlSync.js +0 -29
- package/dist/esm/dist/esm/services/utils.js +0 -71
- package/dist/esm/dist/esm/utils/ControlsLabel.js +0 -107
- package/dist/esm/dist/esm/utils/LoadingIndicator.js +0 -19
- package/dist/esm/dist/esm/utils/SafeSerializableSceneObject.js +0 -39
- package/dist/esm/dist/esm/utils/compatibility/setWindowGrafanaSceneContext.js +0 -16
- package/dist/esm/dist/esm/utils/date.js +0 -15
- package/dist/esm/dist/esm/utils/evaluateTimeRange.js +0 -16
- package/dist/esm/dist/esm/utils/explore.js +0 -47
- package/dist/esm/dist/esm/utils/getCompareSeriesRefId.js +0 -4
- package/dist/esm/dist/esm/utils/getDataSource.js +0 -18
- package/dist/esm/dist/esm/utils/getMessageFromError.js +0 -24
- package/dist/esm/dist/esm/utils/metricTree.js +0 -53
- package/dist/esm/dist/esm/utils/parseUrlParam.js +0 -41
- package/dist/esm/dist/esm/utils/utils.js +0 -11
- package/dist/esm/dist/esm/utils/wrapInSafeSerializableSceneObject.js +0 -30
- package/dist/esm/dist/esm/utils/writeSceneLog.js +0 -12
- package/dist/esm/dist/esm/variables/VariableDependencyConfig.js +0 -150
- package/dist/esm/dist/esm/variables/VariableValueRecorder.js +0 -71
- package/dist/esm/dist/esm/variables/adhoc/AdHocFilterBuilder.js +0 -24
- package/dist/esm/dist/esm/variables/adhoc/AdHocFilterRenderer.js +0 -303
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +0 -162
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +0 -20
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +0 -640
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +0 -65
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +0 -146
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +0 -114
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +0 -68
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/utils.js +0 -146
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersVariable.js +0 -289
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +0 -76
- package/dist/esm/dist/esm/variables/adhoc/getAdhocOptionSearcher.js +0 -13
- package/dist/esm/dist/esm/variables/adhoc/patchGetAdhocFilters.js +0 -47
- package/dist/esm/dist/esm/variables/components/VariableValueControl.js +0 -23
- package/dist/esm/dist/esm/variables/components/VariableValueInput.js +0 -33
- package/dist/esm/dist/esm/variables/components/VariableValueSelect.js +0 -228
- package/dist/esm/dist/esm/variables/components/VariableValueSelectors.js +0 -72
- package/dist/esm/dist/esm/variables/components/getOptionSearcher.js +0 -15
- package/dist/esm/dist/esm/variables/constants.js +0 -9
- package/dist/esm/dist/esm/variables/getEnrichedFiltersRequest.js +0 -12
- package/dist/esm/dist/esm/variables/groupby/GroupByVariable.js +0 -259
- package/dist/esm/dist/esm/variables/groupby/GroupByVariableUrlSyncHandler.js +0 -63
- package/dist/esm/dist/esm/variables/groupby/findActiveGroupByVariablesByUid.js +0 -13
- package/dist/esm/dist/esm/variables/interpolation/ScopedVarsVariable.js +0 -40
- package/dist/esm/dist/esm/variables/interpolation/defaults.js +0 -21
- package/dist/esm/dist/esm/variables/interpolation/fieldAccessorCache.js +0 -13
- package/dist/esm/dist/esm/variables/interpolation/formatRegistry.js +0 -296
- package/dist/esm/dist/esm/variables/interpolation/sceneInterpolator.js +0 -87
- package/dist/esm/dist/esm/variables/lookupVariable.js +0 -20
- package/dist/esm/dist/esm/variables/macros/AllVariablesMacro.js +0 -57
- package/dist/esm/dist/esm/variables/macros/contextMacros.js +0 -43
- package/dist/esm/dist/esm/variables/macros/dataMacros.js +0 -134
- package/dist/esm/dist/esm/variables/macros/index.js +0 -26
- package/dist/esm/dist/esm/variables/macros/templateProxies.js +0 -51
- package/dist/esm/dist/esm/variables/macros/timeMacros.js +0 -86
- package/dist/esm/dist/esm/variables/macros/types.js +0 -11
- package/dist/esm/dist/esm/variables/macros/urlMacros.js +0 -56
- package/dist/esm/dist/esm/variables/sets/SceneVariableSet.js +0 -254
- package/dist/esm/dist/esm/variables/types.js +0 -11
- package/dist/esm/dist/esm/variables/utils.js +0 -172
- package/dist/esm/dist/esm/variables/variants/ConstantVariable.js +0 -38
- package/dist/esm/dist/esm/variables/variants/CustomVariable.js +0 -60
- package/dist/esm/dist/esm/variables/variants/DataSourceVariable.js +0 -88
- package/dist/esm/dist/esm/variables/variants/IntervalVariable.js +0 -117
- package/dist/esm/dist/esm/variables/variants/MultiValueVariable.js +0 -295
- package/dist/esm/dist/esm/variables/variants/TestVariable.js +0 -117
- package/dist/esm/dist/esm/variables/variants/TextBoxVariable.js +0 -61
- package/dist/esm/dist/esm/variables/variants/query/QueryVariable.js +0 -139
- package/dist/esm/dist/esm/variables/variants/query/createQueryVariableRunner.js +0 -129
- package/dist/esm/dist/esm/variables/variants/query/guards.js +0 -28
- package/dist/esm/dist/esm/variables/variants/query/toMetricFindValues.js +0 -96
- package/dist/esm/dist/esm/variables/variants/query/utils.js +0 -124
- package/dist/esm/querying/DataProviderSharer.js +0 -39
- package/dist/esm/src/behaviors/ActWhenVariableChanged.js +0 -27
- package/dist/esm/src/behaviors/CursorSync.js +0 -76
- package/dist/esm/src/behaviors/LiveNowTimer.js +0 -44
- package/dist/esm/src/behaviors/SceneQueryController.js +0 -60
- package/dist/esm/src/behaviors/index.js +0 -5
- package/dist/esm/src/components/EmbeddedScene.js +0 -59
- package/dist/esm/src/components/NestedScene.js +0 -95
- package/dist/esm/src/components/SceneApp/SceneApp.js +0 -37
- package/dist/esm/src/components/SceneApp/SceneAppPage.js +0 -176
- package/dist/esm/src/components/SceneApp/SceneAppPageView.js +0 -104
- package/dist/esm/src/components/SceneApp/utils.js +0 -42
- package/dist/esm/src/components/SceneByFrameRepeater.js +0 -41
- package/dist/esm/src/components/SceneByVariableRepeater.js +0 -55
- package/dist/esm/src/components/SceneCanvasText.js +0 -32
- package/dist/esm/src/components/SceneControlsSpacer.js +0 -17
- package/dist/esm/src/components/SceneDebugger/DebugDetails.js +0 -82
- package/dist/esm/src/components/SceneDebugger/DebugTreeNode.js +0 -72
- package/dist/esm/src/components/SceneDebugger/SceneDebugger.js +0 -77
- package/dist/esm/src/components/SceneReactObject.js +0 -34
- package/dist/esm/src/components/SceneRefreshPicker.js +0 -205
- package/dist/esm/src/components/SceneTimePicker.js +0 -139
- package/dist/esm/src/components/SceneTimeRangeCompare.js +0 -240
- package/dist/esm/src/components/SceneToolbarButton.js +0 -33
- package/dist/esm/src/components/VizPanel/VizPanel.js +0 -406
- package/dist/esm/src/components/VizPanel/VizPanelExploreButton.js +0 -44
- package/dist/esm/src/components/VizPanel/VizPanelMenu.js +0 -59
- package/dist/esm/src/components/VizPanel/VizPanelRenderer.js +0 -285
- package/dist/esm/src/components/VizPanel/VizPanelSeriesLimit.js +0 -45
- package/dist/esm/src/components/VizPanel/colorSeriesConfigFactory.js +0 -72
- package/dist/esm/src/components/VizPanel/registerRuntimePanelPlugin.js +0 -56
- package/dist/esm/src/components/VizPanel/seriesVisibilityConfigFactory.js +0 -164
- package/dist/esm/src/components/layout/CSSGrid/SceneCSSGridLayout.js +0 -124
- package/dist/esm/src/components/layout/LazyLoader.js +0 -103
- package/dist/esm/src/components/layout/SceneFlexLayout.js +0 -135
- package/dist/esm/src/components/layout/grid/SceneGridItem.js +0 -30
- package/dist/esm/src/components/layout/grid/SceneGridLayout.js +0 -283
- package/dist/esm/src/components/layout/grid/SceneGridLayoutRenderer.js +0 -178
- package/dist/esm/src/components/layout/grid/SceneGridRow.js +0 -190
- package/dist/esm/src/components/layout/grid/constants.js +0 -7
- package/dist/esm/src/components/layout/grid/utils.js +0 -36
- package/dist/esm/src/components/layout/split/SplitLayout.js +0 -17
- package/dist/esm/src/components/layout/split/SplitLayoutRenderer.js +0 -29
- package/dist/esm/src/components/layout/split/Splitter.js +0 -386
- package/dist/esm/src/core/PanelBuilders/FieldConfigBuilder.js +0 -100
- package/dist/esm/src/core/PanelBuilders/FieldConfigBuilders.js +0 -75
- package/dist/esm/src/core/PanelBuilders/FieldConfigOverridesBuilder.js +0 -75
- package/dist/esm/src/core/PanelBuilders/PanelOptionsBuilder.js +0 -22
- package/dist/esm/src/core/PanelBuilders/PanelOptionsBuilders.js +0 -85
- package/dist/esm/src/core/PanelBuilders/StandardFieldConfigBuilders.js +0 -52
- package/dist/esm/src/core/PanelBuilders/VizConfigBuilder.js +0 -78
- package/dist/esm/src/core/PanelBuilders/VizConfigBuilders.js +0 -114
- package/dist/esm/src/core/PanelBuilders/VizPanelBuilder.js +0 -162
- package/dist/esm/src/core/PanelBuilders/index.js +0 -116
- package/dist/esm/src/core/SceneComponentWrapper.js +0 -57
- package/dist/esm/src/core/SceneDataNode.js +0 -43
- package/dist/esm/src/core/SceneObjectBase.js +0 -286
- package/dist/esm/src/core/SceneObjectRef.js +0 -32
- package/dist/esm/src/core/SceneTimeRange.js +0 -231
- package/dist/esm/src/core/SceneTimeRangeTransformerBase.js +0 -35
- package/dist/esm/src/core/SceneTimeZoneOverride.js +0 -63
- package/dist/esm/src/core/events.js +0 -11
- package/dist/esm/src/core/sceneGraph/getTimeRange.js +0 -10
- package/dist/esm/src/core/sceneGraph/index.js +0 -25
- package/dist/esm/src/core/sceneGraph/sceneGraph.js +0 -178
- package/dist/esm/src/core/sceneGraph/utils.js +0 -64
- package/dist/esm/src/core/types.js +0 -15
- package/dist/esm/src/index.js +0 -108
- package/dist/esm/src/querying/DataLayersMerger.js +0 -46
- package/dist/esm/src/querying/DataProviderProxy.js +0 -37
- package/dist/esm/src/querying/DataProviderSharer.js +0 -108
- package/dist/esm/src/querying/ExtraQueryProvider.js +0 -6
- package/dist/esm/src/querying/RuntimeDataSource.js +0 -49
- package/dist/esm/src/querying/SceneDataLayerSet.js +0 -100
- package/dist/esm/src/querying/SceneDataTransformer.js +0 -178
- package/dist/esm/src/querying/SceneQueryRunner.js +0 -468
- package/dist/esm/src/querying/extraQueryProcessingOperator.js +0 -46
- package/dist/esm/src/querying/getEnrichedDataRequest.js +0 -12
- package/dist/esm/src/querying/layers/SceneDataLayerBase.js +0 -112
- package/dist/esm/src/querying/layers/SceneDataLayerControls.js +0 -51
- package/dist/esm/src/querying/layers/annotations/AnnotationsDataLayer.js +0 -130
- package/dist/esm/src/querying/layers/annotations/filterAnnotations.js +0 -85
- package/dist/esm/src/querying/layers/annotations/standardAnnotationQuery.js +0 -121
- package/dist/esm/src/querying/layers/annotations/standardAnnotationsSupport.js +0 -211
- package/dist/esm/src/querying/layers/annotations/utils.js +0 -77
- package/dist/esm/src/querying/layers/index.js +0 -2
- package/dist/esm/src/querying/registerQueryWithController.js +0 -41
- package/dist/esm/src/services/SceneObjectUrlSyncConfig.js +0 -30
- package/dist/esm/src/services/UniqueUrlKeyMapper.js +0 -45
- package/dist/esm/src/services/UrlSyncContextProvider.js +0 -17
- package/dist/esm/src/services/UrlSyncManager.js +0 -167
- package/dist/esm/src/services/useUrlSync.js +0 -29
- package/dist/esm/src/services/utils.js +0 -75
- package/dist/esm/src/utils/ControlsLabel.js +0 -107
- package/dist/esm/src/utils/LoadingIndicator.js +0 -19
- package/dist/esm/src/utils/SafeSerializableSceneObject.js +0 -39
- package/dist/esm/src/utils/compatibility/setWindowGrafanaSceneContext.js +0 -16
- package/dist/esm/src/utils/date.js +0 -15
- package/dist/esm/src/utils/evaluateTimeRange.js +0 -16
- package/dist/esm/src/utils/explore.js +0 -47
- package/dist/esm/src/utils/getCompareSeriesRefId.js +0 -4
- package/dist/esm/src/utils/getDataSource.js +0 -18
- package/dist/esm/src/utils/getMessageFromError.js +0 -24
- package/dist/esm/src/utils/metricTree.js +0 -53
- package/dist/esm/src/utils/parseUrlParam.js +0 -41
- package/dist/esm/src/utils/utils.js +0 -11
- package/dist/esm/src/utils/wrapInSafeSerializableSceneObject.js +0 -30
- package/dist/esm/src/utils/writeSceneLog.js +0 -12
- package/dist/esm/src/variables/VariableDependencyConfig.js +0 -150
- package/dist/esm/src/variables/VariableValueRecorder.js +0 -71
- package/dist/esm/src/variables/adhoc/AdHocFilterBuilder.js +0 -24
- package/dist/esm/src/variables/adhoc/AdHocFilterRenderer.js +0 -303
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +0 -162
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +0 -20
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +0 -640
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +0 -65
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +0 -146
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +0 -114
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +0 -68
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/utils.js +0 -146
- package/dist/esm/src/variables/adhoc/AdHocFiltersVariable.js +0 -289
- package/dist/esm/src/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +0 -76
- package/dist/esm/src/variables/adhoc/getAdhocOptionSearcher.js +0 -13
- package/dist/esm/src/variables/adhoc/patchGetAdhocFilters.js +0 -47
- package/dist/esm/src/variables/components/VariableValueControl.js +0 -23
- package/dist/esm/src/variables/components/VariableValueInput.js +0 -33
- package/dist/esm/src/variables/components/VariableValueSelect.js +0 -228
- package/dist/esm/src/variables/components/VariableValueSelectors.js +0 -72
- package/dist/esm/src/variables/components/getOptionSearcher.js +0 -15
- package/dist/esm/src/variables/constants.js +0 -9
- package/dist/esm/src/variables/getEnrichedFiltersRequest.js +0 -12
- package/dist/esm/src/variables/groupby/GroupByVariable.js +0 -259
- package/dist/esm/src/variables/groupby/GroupByVariableUrlSyncHandler.js +0 -63
- package/dist/esm/src/variables/groupby/findActiveGroupByVariablesByUid.js +0 -13
- package/dist/esm/src/variables/interpolation/ScopedVarsVariable.js +0 -40
- package/dist/esm/src/variables/interpolation/defaults.js +0 -21
- package/dist/esm/src/variables/interpolation/fieldAccessorCache.js +0 -13
- package/dist/esm/src/variables/interpolation/formatRegistry.js +0 -296
- package/dist/esm/src/variables/interpolation/sceneInterpolator.js +0 -87
- package/dist/esm/src/variables/lookupVariable.js +0 -20
- package/dist/esm/src/variables/macros/AllVariablesMacro.js +0 -57
- package/dist/esm/src/variables/macros/contextMacros.js +0 -43
- package/dist/esm/src/variables/macros/dataMacros.js +0 -134
- package/dist/esm/src/variables/macros/index.js +0 -35
- package/dist/esm/src/variables/macros/templateProxies.js +0 -51
- package/dist/esm/src/variables/macros/timeMacros.js +0 -86
- package/dist/esm/src/variables/macros/types.js +0 -11
- package/dist/esm/src/variables/macros/urlMacros.js +0 -56
- package/dist/esm/src/variables/sets/SceneVariableSet.js +0 -254
- package/dist/esm/src/variables/types.js +0 -11
- package/dist/esm/src/variables/utils.js +0 -172
- package/dist/esm/src/variables/variants/ConstantVariable.js +0 -38
- package/dist/esm/src/variables/variants/CustomVariable.js +0 -60
- package/dist/esm/src/variables/variants/DataSourceVariable.js +0 -88
- package/dist/esm/src/variables/variants/IntervalVariable.js +0 -117
- package/dist/esm/src/variables/variants/JsonVariable.js +0 -193
- package/dist/esm/src/variables/variants/LocalValueVariable.js +0 -56
- package/dist/esm/src/variables/variants/MultiValueVariable.js +0 -295
- package/dist/esm/src/variables/variants/TestVariable.js +0 -117
- package/dist/esm/src/variables/variants/TextBoxVariable.js +0 -61
- package/dist/esm/src/variables/variants/guards.js +0 -27
- package/dist/esm/src/variables/variants/query/QueryVariable.js +0 -139
- package/dist/esm/src/variables/variants/query/createQueryVariableRunner.js +0 -129
- package/dist/esm/src/variables/variants/query/guards.js +0 -28
- package/dist/esm/src/variables/variants/query/toMetricFindValues.js +0 -96
- package/dist/esm/src/variables/variants/query/utils.js +0 -124
- package/dist/esm/variables/variants/JsonVariable.js +0 -96
- package/dist/esm/variables/variants/json/JsonVariable.js +0 -95
- package/dist/esm/variables/variants/json/JsonVariableOptionProviders.js +0 -70
|
@@ -1,303 +0,0 @@
|
|
|
1
|
-
import React, { useState, useMemo } from 'react';
|
|
2
|
-
import { isMultiValueOperator } from './AdHocFiltersVariable.js';
|
|
3
|
-
import { useStyles2, Select, Field, Button } from '@grafana/ui';
|
|
4
|
-
import { cx, css } from '@emotion/css';
|
|
5
|
-
import { ControlsLabel } from '../../utils/ControlsLabel.js';
|
|
6
|
-
import { getAdhocOptionSearcher } from './getAdhocOptionSearcher.js';
|
|
7
|
-
import { handleOptionGroups } from '../utils.js';
|
|
8
|
-
import { OptionWithCheckbox } from '../components/VariableValueSelect.js';
|
|
9
|
-
|
|
10
|
-
var __defProp = Object.defineProperty;
|
|
11
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
12
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
13
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
14
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
15
|
-
var __spreadValues = (a, b) => {
|
|
16
|
-
for (var prop in b || (b = {}))
|
|
17
|
-
if (__hasOwnProp.call(b, prop))
|
|
18
|
-
__defNormalProp(a, prop, b[prop]);
|
|
19
|
-
if (__getOwnPropSymbols)
|
|
20
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
21
|
-
if (__propIsEnum.call(b, prop))
|
|
22
|
-
__defNormalProp(a, prop, b[prop]);
|
|
23
|
-
}
|
|
24
|
-
return a;
|
|
25
|
-
};
|
|
26
|
-
function keyLabelToOption(key, label) {
|
|
27
|
-
return key !== "" ? {
|
|
28
|
-
value: key,
|
|
29
|
-
label: label || key
|
|
30
|
-
} : null;
|
|
31
|
-
}
|
|
32
|
-
const filterNoOp = () => true;
|
|
33
|
-
function AdHocFilterRenderer({ filter, model }) {
|
|
34
|
-
var _a, _b, _c, _d, _e;
|
|
35
|
-
const styles = useStyles2(getStyles);
|
|
36
|
-
const [keys, setKeys] = useState([]);
|
|
37
|
-
const [values, setValues] = useState([]);
|
|
38
|
-
const [isKeysLoading, setIsKeysLoading] = useState(false);
|
|
39
|
-
const [isValuesLoading, setIsValuesLoading] = useState(false);
|
|
40
|
-
const [isKeysOpen, setIsKeysOpen] = useState(false);
|
|
41
|
-
const [isValuesOpen, setIsValuesOpen] = useState(false);
|
|
42
|
-
const [isOperatorOpen, setIsOperatorOpen] = useState(false);
|
|
43
|
-
const [valueInputValue, setValueInputValue] = useState("");
|
|
44
|
-
const [valueHasCustomValue, setValueHasCustomValue] = useState(false);
|
|
45
|
-
const [uncommittedValue, setUncommittedValue] = useState(
|
|
46
|
-
filter.values ? filter.values.map((value, index) => {
|
|
47
|
-
var _a2;
|
|
48
|
-
return keyLabelToOption(value, (_a2 = filter.valueLabels) == null ? void 0 : _a2[index]);
|
|
49
|
-
}) : []
|
|
50
|
-
);
|
|
51
|
-
const isMultiValue = isMultiValueOperator(filter.operator);
|
|
52
|
-
const keyValue = keyLabelToOption(filter.key, filter.keyLabel);
|
|
53
|
-
const valueValue = keyLabelToOption(filter.value, (_a = filter.valueLabels) == null ? void 0 : _a[0]);
|
|
54
|
-
const optionSearcher = useMemo(() => getAdhocOptionSearcher(values), [values]);
|
|
55
|
-
const onValueInputChange = (value, { action }) => {
|
|
56
|
-
if (action === "input-change") {
|
|
57
|
-
setValueInputValue(value);
|
|
58
|
-
}
|
|
59
|
-
return value;
|
|
60
|
-
};
|
|
61
|
-
const onOperatorChange = (v) => {
|
|
62
|
-
var _a2, _b2;
|
|
63
|
-
const existingOperator = filter.operator;
|
|
64
|
-
const newOperator = v.value;
|
|
65
|
-
const update = { operator: newOperator };
|
|
66
|
-
if (isMultiValueOperator(existingOperator) && !isMultiValueOperator(newOperator)) {
|
|
67
|
-
update.value = "";
|
|
68
|
-
update.valueLabels = [""];
|
|
69
|
-
update.values = void 0;
|
|
70
|
-
setUncommittedValue([]);
|
|
71
|
-
} else if (!isMultiValueOperator(existingOperator) && isMultiValueOperator(newOperator) && filter.value) {
|
|
72
|
-
update.values = [filter.value];
|
|
73
|
-
setUncommittedValue([
|
|
74
|
-
{
|
|
75
|
-
value: filter.value,
|
|
76
|
-
label: (_b2 = (_a2 = filter.valueLabels) == null ? void 0 : _a2[0]) != null ? _b2 : filter.value
|
|
77
|
-
}
|
|
78
|
-
]);
|
|
79
|
-
}
|
|
80
|
-
model._updateFilter(filter, update);
|
|
81
|
-
};
|
|
82
|
-
const filteredValueOptions = useMemo(
|
|
83
|
-
() => handleOptionGroups(optionSearcher(valueInputValue)),
|
|
84
|
-
[optionSearcher, valueInputValue]
|
|
85
|
-
);
|
|
86
|
-
const multiValueProps = {
|
|
87
|
-
isMulti: true,
|
|
88
|
-
value: uncommittedValue,
|
|
89
|
-
components: {
|
|
90
|
-
Option: OptionWithCheckbox
|
|
91
|
-
},
|
|
92
|
-
hideSelectedOptions: false,
|
|
93
|
-
closeMenuOnSelect: false,
|
|
94
|
-
openMenuOnFocus: false,
|
|
95
|
-
onChange: (v) => {
|
|
96
|
-
setUncommittedValue(v);
|
|
97
|
-
if (v.some((value) => value.__isNew__)) {
|
|
98
|
-
setValueInputValue("");
|
|
99
|
-
}
|
|
100
|
-
},
|
|
101
|
-
onBlur: () => {
|
|
102
|
-
var _a2, _b2;
|
|
103
|
-
model._updateFilter(filter, {
|
|
104
|
-
value: (_b2 = (_a2 = uncommittedValue[0]) == null ? void 0 : _a2.value) != null ? _b2 : "",
|
|
105
|
-
values: uncommittedValue.map((option) => option.value),
|
|
106
|
-
valueLabels: uncommittedValue.map((option) => option.label)
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
};
|
|
110
|
-
const valueSelect = /* @__PURE__ */ React.createElement(Select, __spreadValues({
|
|
111
|
-
virtualized: true,
|
|
112
|
-
allowCustomValue: (_b = model.state.allowCustomValue) != null ? _b : true,
|
|
113
|
-
isValidNewOption: (inputValue) => inputValue.trim().length > 0,
|
|
114
|
-
allowCreateWhileLoading: true,
|
|
115
|
-
formatCreateLabel: (inputValue) => `Use custom value: ${inputValue}`,
|
|
116
|
-
disabled: model.state.readOnly,
|
|
117
|
-
className: cx(styles.value, isValuesOpen ? styles.widthWhenOpen : void 0),
|
|
118
|
-
width: "auto",
|
|
119
|
-
value: valueValue,
|
|
120
|
-
filterOption: filterNoOp,
|
|
121
|
-
placeholder: "Select value",
|
|
122
|
-
options: filteredValueOptions,
|
|
123
|
-
inputValue: valueInputValue,
|
|
124
|
-
onInputChange: onValueInputChange,
|
|
125
|
-
onChange: (v) => {
|
|
126
|
-
model._updateFilter(filter, {
|
|
127
|
-
value: v.value,
|
|
128
|
-
valueLabels: v.label ? [v.label] : [v.value]
|
|
129
|
-
});
|
|
130
|
-
if (valueHasCustomValue !== v.__isNew__) {
|
|
131
|
-
setValueHasCustomValue(v.__isNew__);
|
|
132
|
-
}
|
|
133
|
-
},
|
|
134
|
-
isOpen: isValuesOpen && !isValuesLoading,
|
|
135
|
-
isLoading: isValuesLoading,
|
|
136
|
-
openMenuOnFocus: true,
|
|
137
|
-
onOpenMenu: async () => {
|
|
138
|
-
var _a2;
|
|
139
|
-
setIsValuesLoading(true);
|
|
140
|
-
setIsValuesOpen(true);
|
|
141
|
-
const values2 = await model._getValuesFor(filter);
|
|
142
|
-
setIsValuesLoading(false);
|
|
143
|
-
setValues(values2);
|
|
144
|
-
if (valueHasCustomValue) {
|
|
145
|
-
setValueInputValue((_a2 = valueValue == null ? void 0 : valueValue.label) != null ? _a2 : "");
|
|
146
|
-
}
|
|
147
|
-
},
|
|
148
|
-
onCloseMenu: () => {
|
|
149
|
-
setIsValuesOpen(false);
|
|
150
|
-
setValueInputValue("");
|
|
151
|
-
}
|
|
152
|
-
}, isMultiValue && multiValueProps));
|
|
153
|
-
const keySelect = /* @__PURE__ */ React.createElement(Select, {
|
|
154
|
-
key: `${isValuesLoading ? "loading" : "loaded"}`,
|
|
155
|
-
disabled: model.state.readOnly,
|
|
156
|
-
className: cx(styles.key, isKeysOpen ? styles.widthWhenOpen : void 0),
|
|
157
|
-
width: "auto",
|
|
158
|
-
allowCustomValue: (_c = model.state.allowCustomValue) != null ? _c : true,
|
|
159
|
-
value: keyValue,
|
|
160
|
-
placeholder: "Select label",
|
|
161
|
-
options: handleOptionGroups(keys),
|
|
162
|
-
onChange: (v) => {
|
|
163
|
-
model._updateFilter(filter, {
|
|
164
|
-
key: v.value,
|
|
165
|
-
keyLabel: v.label,
|
|
166
|
-
value: "",
|
|
167
|
-
valueLabels: [""],
|
|
168
|
-
values: void 0
|
|
169
|
-
});
|
|
170
|
-
setUncommittedValue([]);
|
|
171
|
-
},
|
|
172
|
-
autoFocus: filter.key === "",
|
|
173
|
-
isOpen: isKeysOpen && !isKeysLoading,
|
|
174
|
-
isLoading: isKeysLoading,
|
|
175
|
-
onOpenMenu: async () => {
|
|
176
|
-
setIsKeysOpen(true);
|
|
177
|
-
setIsKeysLoading(true);
|
|
178
|
-
const keys2 = await model._getKeys(filter.key);
|
|
179
|
-
setIsKeysLoading(false);
|
|
180
|
-
setKeys(keys2);
|
|
181
|
-
},
|
|
182
|
-
onCloseMenu: () => {
|
|
183
|
-
setIsKeysOpen(false);
|
|
184
|
-
},
|
|
185
|
-
onBlur: () => {
|
|
186
|
-
if (filter.key === "") {
|
|
187
|
-
model._removeFilter(filter);
|
|
188
|
-
}
|
|
189
|
-
},
|
|
190
|
-
openMenuOnFocus: true
|
|
191
|
-
});
|
|
192
|
-
const operatorSelect = /* @__PURE__ */ React.createElement(Select, {
|
|
193
|
-
className: cx(styles.operator, {
|
|
194
|
-
[styles.widthWhenOpen]: isOperatorOpen
|
|
195
|
-
}),
|
|
196
|
-
value: filter.operator,
|
|
197
|
-
disabled: model.state.readOnly,
|
|
198
|
-
options: model._getOperators(),
|
|
199
|
-
onChange: onOperatorChange,
|
|
200
|
-
onOpenMenu: () => {
|
|
201
|
-
setIsOperatorOpen(true);
|
|
202
|
-
},
|
|
203
|
-
onCloseMenu: () => {
|
|
204
|
-
setIsOperatorOpen(false);
|
|
205
|
-
}
|
|
206
|
-
});
|
|
207
|
-
if (model.state.layout === "vertical") {
|
|
208
|
-
if (filter.key) {
|
|
209
|
-
const label = /* @__PURE__ */ React.createElement(ControlsLabel, {
|
|
210
|
-
layout: "vertical",
|
|
211
|
-
label: (_d = filter.key) != null ? _d : "",
|
|
212
|
-
onRemove: () => model._removeFilter(filter)
|
|
213
|
-
});
|
|
214
|
-
return /* @__PURE__ */ React.createElement(Field, {
|
|
215
|
-
label,
|
|
216
|
-
"data-testid": `AdHocFilter-${filter.key}`,
|
|
217
|
-
className: styles.field
|
|
218
|
-
}, /* @__PURE__ */ React.createElement("div", {
|
|
219
|
-
className: styles.wrapper
|
|
220
|
-
}, operatorSelect, valueSelect));
|
|
221
|
-
} else {
|
|
222
|
-
return /* @__PURE__ */ React.createElement(Field, {
|
|
223
|
-
label: "Select label",
|
|
224
|
-
"data-testid": `AdHocFilter-${filter.key}`,
|
|
225
|
-
className: styles.field
|
|
226
|
-
}, keySelect);
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
return /* @__PURE__ */ React.createElement("div", {
|
|
230
|
-
className: styles.wrapper,
|
|
231
|
-
"data-testid": `AdHocFilter-${filter.key}`
|
|
232
|
-
}, keySelect, operatorSelect, valueSelect, /* @__PURE__ */ React.createElement(Button, {
|
|
233
|
-
variant: "secondary",
|
|
234
|
-
"aria-label": "Remove filter",
|
|
235
|
-
title: "Remove filter",
|
|
236
|
-
className: styles.removeButton,
|
|
237
|
-
icon: "times",
|
|
238
|
-
"data-testid": `AdHocFilter-remove-${(_e = filter.key) != null ? _e : ""}`,
|
|
239
|
-
onClick: () => model._removeFilter(filter)
|
|
240
|
-
}));
|
|
241
|
-
}
|
|
242
|
-
const getStyles = (theme) => ({
|
|
243
|
-
field: css({
|
|
244
|
-
marginBottom: 0
|
|
245
|
-
}),
|
|
246
|
-
wrapper: css({
|
|
247
|
-
display: "flex",
|
|
248
|
-
"> *": {
|
|
249
|
-
"&:not(:first-child)": {
|
|
250
|
-
marginLeft: -1
|
|
251
|
-
},
|
|
252
|
-
"&:first-child": {
|
|
253
|
-
borderTopRightRadius: 0,
|
|
254
|
-
borderBottomRightRadius: 0
|
|
255
|
-
},
|
|
256
|
-
"&:last-child": {
|
|
257
|
-
borderTopLeftRadius: 0,
|
|
258
|
-
borderBottomLeftRadius: 0
|
|
259
|
-
},
|
|
260
|
-
"&:not(:first-child):not(:last-child)": {
|
|
261
|
-
borderRadius: 0
|
|
262
|
-
},
|
|
263
|
-
position: "relative",
|
|
264
|
-
zIndex: 0,
|
|
265
|
-
"&:hover": {
|
|
266
|
-
zIndex: 1
|
|
267
|
-
},
|
|
268
|
-
"&:focus-within": {
|
|
269
|
-
zIndex: 2
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
}),
|
|
273
|
-
widthWhenOpen: css({
|
|
274
|
-
minWidth: theme.spacing(16)
|
|
275
|
-
}),
|
|
276
|
-
value: css({
|
|
277
|
-
flexBasis: "content",
|
|
278
|
-
flexShrink: 1,
|
|
279
|
-
minWidth: "90px"
|
|
280
|
-
}),
|
|
281
|
-
key: css({
|
|
282
|
-
flexBasis: "content",
|
|
283
|
-
minWidth: "90px",
|
|
284
|
-
flexShrink: 1
|
|
285
|
-
}),
|
|
286
|
-
operator: css({
|
|
287
|
-
flexShrink: 0,
|
|
288
|
-
flexBasis: "content"
|
|
289
|
-
}),
|
|
290
|
-
removeButton: css({
|
|
291
|
-
paddingLeft: theme.spacing(3 / 2),
|
|
292
|
-
paddingRight: theme.spacing(3 / 2),
|
|
293
|
-
borderLeft: "none",
|
|
294
|
-
width: theme.spacing(3),
|
|
295
|
-
marginRight: theme.spacing(1),
|
|
296
|
-
boxSizing: "border-box",
|
|
297
|
-
position: "relative",
|
|
298
|
-
left: "1px"
|
|
299
|
-
})
|
|
300
|
-
});
|
|
301
|
-
|
|
302
|
-
export { AdHocFilterRenderer };
|
|
303
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWRIb2NGaWx0ZXJSZW5kZXJlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdmFyaWFibGVzL2FkaG9jL0FkSG9jRmlsdGVyUmVuZGVyZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgaXNNdWx0aVZhbHVlT3BlcmF0b3IgfSBmcm9tICcuL0FkSG9jRmlsdGVyc1ZhcmlhYmxlLmpzJztcbmltcG9ydCB7IHVzZVN0eWxlczIsIFNlbGVjdCwgRmllbGQsIEJ1dHRvbiB9IGZyb20gJ0BncmFmYW5hL3VpJztcbmltcG9ydCB7IGN4LCBjc3MgfSBmcm9tICdAZW1vdGlvbi9jc3MnO1xuaW1wb3J0IHsgQ29udHJvbHNMYWJlbCB9IGZyb20gJy4uLy4uL3V0aWxzL0NvbnRyb2xzTGFiZWwuanMnO1xuaW1wb3J0IHsgZ2V0QWRob2NPcHRpb25TZWFyY2hlciB9IGZyb20gJy4vZ2V0QWRob2NPcHRpb25TZWFyY2hlci5qcyc7XG5pbXBvcnQgeyBoYW5kbGVPcHRpb25Hcm91cHMgfSBmcm9tICcuLi91dGlscy5qcyc7XG5pbXBvcnQgeyBPcHRpb25XaXRoQ2hlY2tib3ggfSBmcm9tICcuLi9jb21wb25lbnRzL1ZhcmlhYmxlVmFsdWVTZWxlY3QuanMnO1xuXG52YXIgX19kZWZQcm9wID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xudmFyIF9fZ2V0T3duUHJvcFN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xudmFyIF9faGFzT3duUHJvcCA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgX19wcm9wSXNFbnVtID0gT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcbnZhciBfX2RlZk5vcm1hbFByb3AgPSAob2JqLCBrZXksIHZhbHVlKSA9PiBrZXkgaW4gb2JqID8gX19kZWZQcm9wKG9iaiwga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUsIHZhbHVlIH0pIDogb2JqW2tleV0gPSB2YWx1ZTtcbnZhciBfX3NwcmVhZFZhbHVlcyA9IChhLCBiKSA9PiB7XG4gIGZvciAodmFyIHByb3AgaW4gYiB8fCAoYiA9IHt9KSlcbiAgICBpZiAoX19oYXNPd25Qcm9wLmNhbGwoYiwgcHJvcCkpXG4gICAgICBfX2RlZk5vcm1hbFByb3AoYSwgcHJvcCwgYltwcm9wXSk7XG4gIGlmIChfX2dldE93blByb3BTeW1ib2xzKVxuICAgIGZvciAodmFyIHByb3Agb2YgX19nZXRPd25Qcm9wU3ltYm9scyhiKSkge1xuICAgICAgaWYgKF9fcHJvcElzRW51bS5jYWxsKGIsIHByb3ApKVxuICAgICAgICBfX2RlZk5vcm1hbFByb3AoYSwgcHJvcCwgYltwcm9wXSk7XG4gICAgfVxuICByZXR1cm4gYTtcbn07XG5mdW5jdGlvbiBrZXlMYWJlbFRvT3B0aW9uKGtleSwgbGFiZWwpIHtcbiAgcmV0dXJuIGtleSAhPT0gXCJcIiA/IHtcbiAgICB2YWx1ZToga2V5LFxuICAgIGxhYmVsOiBsYWJlbCB8fCBrZXlcbiAgfSA6IG51bGw7XG59XG5jb25zdCBmaWx0ZXJOb09wID0gKCkgPT4gdHJ1ZTtcbmZ1bmN0aW9uIEFkSG9jRmlsdGVyUmVuZGVyZXIoeyBmaWx0ZXIsIG1vZGVsIH0pIHtcbiAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZTtcbiAgY29uc3Qgc3R5bGVzID0gdXNlU3R5bGVzMihnZXRTdHlsZXMpO1xuICBjb25zdCBba2V5cywgc2V0S2V5c10gPSB1c2VTdGF0ZShbXSk7XG4gIGNvbnN0IFt2YWx1ZXMsIHNldFZhbHVlc10gPSB1c2VTdGF0ZShbXSk7XG4gIGNvbnN0IFtpc0tleXNMb2FkaW5nLCBzZXRJc0tleXNMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2lzVmFsdWVzTG9hZGluZywgc2V0SXNWYWx1ZXNMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2lzS2V5c09wZW4sIHNldElzS2V5c09wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbaXNWYWx1ZXNPcGVuLCBzZXRJc1ZhbHVlc09wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbaXNPcGVyYXRvck9wZW4sIHNldElzT3BlcmF0b3JPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3ZhbHVlSW5wdXRWYWx1ZSwgc2V0VmFsdWVJbnB1dFZhbHVlXSA9IHVzZVN0YXRlKFwiXCIpO1xuICBjb25zdCBbdmFsdWVIYXNDdXN0b21WYWx1ZSwgc2V0VmFsdWVIYXNDdXN0b21WYWx1ZV0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFt1bmNvbW1pdHRlZFZhbHVlLCBzZXRVbmNvbW1pdHRlZFZhbHVlXSA9IHVzZVN0YXRlKFxuICAgIGZpbHRlci52YWx1ZXMgPyBmaWx0ZXIudmFsdWVzLm1hcCgodmFsdWUsIGluZGV4KSA9PiB7XG4gICAgICB2YXIgX2EyO1xuICAgICAgcmV0dXJuIGtleUxhYmVsVG9PcHRpb24odmFsdWUsIChfYTIgPSBmaWx0ZXIudmFsdWVMYWJlbHMpID09IG51bGwgPyB2b2lkIDAgOiBfYTJbaW5kZXhdKTtcbiAgICB9KSA6IFtdXG4gICk7XG4gIGNvbnN0IGlzTXVsdGlWYWx1ZSA9IGlzTXVsdGlWYWx1ZU9wZXJhdG9yKGZpbHRlci5vcGVyYXRvcik7XG4gIGNvbnN0IGtleVZhbHVlID0ga2V5TGFiZWxUb09wdGlvbihmaWx0ZXIua2V5LCBmaWx0ZXIua2V5TGFiZWwpO1xuICBjb25zdCB2YWx1ZVZhbHVlID0ga2V5TGFiZWxUb09wdGlvbihmaWx0ZXIudmFsdWUsIChfYSA9IGZpbHRlci52YWx1ZUxhYmVscykgPT0gbnVsbCA/IHZvaWQgMCA6IF9hWzBdKTtcbiAgY29uc3Qgb3B0aW9uU2VhcmNoZXIgPSB1c2VNZW1vKCgpID0+IGdldEFkaG9jT3B0aW9uU2VhcmNoZXIodmFsdWVzKSwgW3ZhbHVlc10pO1xuICBjb25zdCBvblZhbHVlSW5wdXRDaGFuZ2UgPSAodmFsdWUsIHsgYWN0aW9uIH0pID0+IHtcbiAgICBpZiAoYWN0aW9uID09PSBcImlucHV0LWNoYW5nZVwiKSB7XG4gICAgICBzZXRWYWx1ZUlucHV0VmFsdWUodmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH07XG4gIGNvbnN0IG9uT3BlcmF0b3JDaGFuZ2UgPSAodikgPT4ge1xuICAgIHZhciBfYTIsIF9iMjtcbiAgICBjb25zdCBleGlzdGluZ09wZXJhdG9yID0gZmlsdGVyLm9wZXJhdG9yO1xuICAgIGNvbnN0IG5ld09wZXJhdG9yID0gdi52YWx1ZTtcbiAgICBjb25zdCB1cGRhdGUgPSB7IG9wZXJhdG9yOiBuZXdPcGVyYXRvciB9O1xuICAgIGlmIChpc011bHRpVmFsdWVPcGVyYXRvcihleGlzdGluZ09wZXJhdG9yKSAmJiAhaXNNdWx0aVZhbHVlT3BlcmF0b3IobmV3T3BlcmF0b3IpKSB7XG4gICAgICB1cGRhdGUudmFsdWUgPSBcIlwiO1xuICAgICAgdXBkYXRlLnZhbHVlTGFiZWxzID0gW1wiXCJdO1xuICAgICAgdXBkYXRlLnZhbHVlcyA9IHZvaWQgMDtcbiAgICAgIHNldFVuY29tbWl0dGVkVmFsdWUoW10pO1xuICAgIH0gZWxzZSBpZiAoIWlzTXVsdGlWYWx1ZU9wZXJhdG9yKGV4aXN0aW5nT3BlcmF0b3IpICYmIGlzTXVsdGlWYWx1ZU9wZXJhdG9yKG5ld09wZXJhdG9yKSAmJiBmaWx0ZXIudmFsdWUpIHtcbiAgICAgIHVwZGF0ZS52YWx1ZXMgPSBbZmlsdGVyLnZhbHVlXTtcbiAgICAgIHNldFVuY29tbWl0dGVkVmFsdWUoW1xuICAgICAgICB7XG4gICAgICAgICAgdmFsdWU6IGZpbHRlci52YWx1ZSxcbiAgICAgICAgICBsYWJlbDogKF9iMiA9IChfYTIgPSBmaWx0ZXIudmFsdWVMYWJlbHMpID09IG51bGwgPyB2b2lkIDAgOiBfYTJbMF0pICE9IG51bGwgPyBfYjIgOiBmaWx0ZXIudmFsdWVcbiAgICAgICAgfVxuICAgICAgXSk7XG4gICAgfVxuICAgIG1vZGVsLl91cGRhdGVGaWx0ZXIoZmlsdGVyLCB1cGRhdGUpO1xuICB9O1xuICBjb25zdCBmaWx0ZXJlZFZhbHVlT3B0aW9ucyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gaGFuZGxlT3B0aW9uR3JvdXBzKG9wdGlvblNlYXJjaGVyKHZhbHVlSW5wdXRWYWx1ZSkpLFxuICAgIFtvcHRpb25TZWFyY2hlciwgdmFsdWVJbnB1dFZhbHVlXVxuICApO1xuICBjb25zdCBtdWx0aVZhbHVlUHJvcHMgPSB7XG4gICAgaXNNdWx0aTogdHJ1ZSxcbiAgICB2YWx1ZTogdW5jb21taXR0ZWRWYWx1ZSxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICBPcHRpb246IE9wdGlvbldpdGhDaGVja2JveFxuICAgIH0sXG4gICAgaGlkZVNlbGVjdGVkT3B0aW9uczogZmFsc2UsXG4gICAgY2xvc2VNZW51T25TZWxlY3Q6IGZhbHNlLFxuICAgIG9wZW5NZW51T25Gb2N1czogZmFsc2UsXG4gICAgb25DaGFuZ2U6ICh2KSA9PiB7XG4gICAgICBzZXRVbmNvbW1pdHRlZFZhbHVlKHYpO1xuICAgICAgaWYgKHYuc29tZSgodmFsdWUpID0+IHZhbHVlLl9faXNOZXdfXykpIHtcbiAgICAgICAgc2V0VmFsdWVJbnB1dFZhbHVlKFwiXCIpO1xuICAgICAgfVxuICAgIH0sXG4gICAgb25CbHVyOiAoKSA9PiB7XG4gICAgICB2YXIgX2EyLCBfYjI7XG4gICAgICBtb2RlbC5fdXBkYXRlRmlsdGVyKGZpbHRlciwge1xuICAgICAgICB2YWx1ZTogKF9iMiA9IChfYTIgPSB1bmNvbW1pdHRlZFZhbHVlWzBdKSA9PSBudWxsID8gdm9pZCAwIDogX2EyLnZhbHVlKSAhPSBudWxsID8gX2IyIDogXCJcIixcbiAgICAgICAgdmFsdWVzOiB1bmNvbW1pdHRlZFZhbHVlLm1hcCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUpLFxuICAgICAgICB2YWx1ZUxhYmVsczogdW5jb21taXR0ZWRWYWx1ZS5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLmxhYmVsKVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuICBjb25zdCB2YWx1ZVNlbGVjdCA9IC8qIEBfX1BVUkVfXyAqLyBSZWFjdC5jcmVhdGVFbGVtZW50KFNlbGVjdCwgX19zcHJlYWRWYWx1ZXMoe1xuICAgIHZpcnR1YWxpemVkOiB0cnVlLFxuICAgIGFsbG93Q3VzdG9tVmFsdWU6IChfYiA9IG1vZGVsLnN0YXRlLmFsbG93Q3VzdG9tVmFsdWUpICE9IG51bGwgPyBfYiA6IHRydWUsXG4gICAgaXNWYWxpZE5ld09wdGlvbjogKGlucHV0VmFsdWUpID0+IGlucHV0VmFsdWUudHJpbSgpLmxlbmd0aCA+IDAsXG4gICAgYWxsb3dDcmVhdGVXaGlsZUxvYWRpbmc6IHRydWUsXG4gICAgZm9ybWF0Q3JlYXRlTGFiZWw6IChpbnB1dFZhbHVlKSA9PiBgVXNlIGN1c3RvbSB2YWx1ZTogJHtpbnB1dFZhbHVlfWAsXG4gICAgZGlzYWJsZWQ6IG1vZGVsLnN0YXRlLnJlYWRPbmx5LFxuICAgIGNsYXNzTmFtZTogY3goc3R5bGVzLnZhbHVlLCBpc1ZhbHVlc09wZW4gPyBzdHlsZXMud2lkdGhXaGVuT3BlbiA6IHZvaWQgMCksXG4gICAgd2lkdGg6IFwiYXV0b1wiLFxuICAgIHZhbHVlOiB2YWx1ZVZhbHVlLFxuICAgIGZpbHRlck9wdGlvbjogZmlsdGVyTm9PcCxcbiAgICBwbGFjZWhvbGRlcjogXCJTZWxlY3QgdmFsdWVcIixcbiAgICBvcHRpb25zOiBmaWx0ZXJlZFZhbHVlT3B0aW9ucyxcbiAgICBpbnB1dFZhbHVlOiB2YWx1ZUlucHV0VmFsdWUsXG4gICAgb25JbnB1dENoYW5nZTogb25WYWx1ZUlucHV0Q2hhbmdlLFxuICAgIG9uQ2hhbmdlOiAodikgPT4ge1xuICAgICAgbW9kZWwuX3VwZGF0ZUZpbHRlcihmaWx0ZXIsIHtcbiAgICAgICAgdmFsdWU6IHYudmFsdWUsXG4gICAgICAgIHZhbHVlTGFiZWxzOiB2LmxhYmVsID8gW3YubGFiZWxdIDogW3YudmFsdWVdXG4gICAgICB9KTtcbiAgICAgIGlmICh2YWx1ZUhhc0N1c3RvbVZhbHVlICE9PSB2Ll9faXNOZXdfXykge1xuICAgICAgICBzZXRWYWx1ZUhhc0N1c3RvbVZhbHVlKHYuX19pc05ld19fKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGlzT3BlbjogaXNWYWx1ZXNPcGVuICYmICFpc1ZhbHVlc0xvYWRpbmcsXG4gICAgaXNMb2FkaW5nOiBpc1ZhbHVlc0xvYWRpbmcsXG4gICAgb3Blbk1lbnVPbkZvY3VzOiB0cnVlLFxuICAgIG9uT3Blbk1lbnU6IGFzeW5jICgpID0+IHtcbiAgICAgIHZhciBfYTI7XG4gICAgICBzZXRJc1ZhbHVlc0xvYWRpbmcodHJ1ZSk7XG4gICAgICBzZXRJc1ZhbHVlc09wZW4odHJ1ZSk7XG4gICAgICBjb25zdCB2YWx1ZXMyID0gYXdhaXQgbW9kZWwuX2dldFZhbHVlc0ZvcihmaWx0ZXIpO1xuICAgICAgc2V0SXNWYWx1ZXNMb2FkaW5nKGZhbHNlKTtcbiAgICAgIHNldFZhbHVlcyh2YWx1ZXMyKTtcbiAgICAgIGlmICh2YWx1ZUhhc0N1c3RvbVZhbHVlKSB7XG4gICAgICAgIHNldFZhbHVlSW5wdXRWYWx1ZSgoX2EyID0gdmFsdWVWYWx1ZSA9PSBudWxsID8gdm9pZCAwIDogdmFsdWVWYWx1ZS5sYWJlbCkgIT0gbnVsbCA/IF9hMiA6IFwiXCIpO1xuICAgICAgfVxuICAgIH0sXG4gICAgb25DbG9zZU1lbnU6ICgpID0+IHtcbiAgICAgIHNldElzVmFsdWVzT3BlbihmYWxzZSk7XG4gICAgICBzZXRWYWx1ZUlucHV0VmFsdWUoXCJcIik7XG4gICAgfVxuICB9LCBpc011bHRpVmFsdWUgJiYgbXVsdGlWYWx1ZVByb3BzKSk7XG4gIGNvbnN0IGtleVNlbGVjdCA9IC8qIEBfX1BVUkVfXyAqLyBSZWFjdC5jcmVhdGVFbGVtZW50KFNlbGVjdCwge1xuICAgIGtleTogYCR7aXNWYWx1ZXNMb2FkaW5nID8gXCJsb2FkaW5nXCIgOiBcImxvYWRlZFwifWAsXG4gICAgZGlzYWJsZWQ6IG1vZGVsLnN0YXRlLnJlYWRPbmx5LFxuICAgIGNsYXNzTmFtZTogY3goc3R5bGVzLmtleSwgaXNLZXlzT3BlbiA/IHN0eWxlcy53aWR0aFdoZW5PcGVuIDogdm9pZCAwKSxcbiAgICB3aWR0aDogXCJhdXRvXCIsXG4gICAgYWxsb3dDdXN0b21WYWx1ZTogKF9jID0gbW9kZWwuc3RhdGUuYWxsb3dDdXN0b21WYWx1ZSkgIT0gbnVsbCA/IF9jIDogdHJ1ZSxcbiAgICB2YWx1ZToga2V5VmFsdWUsXG4gICAgcGxhY2Vob2xkZXI6IFwiU2VsZWN0IGxhYmVsXCIsXG4gICAgb3B0aW9uczogaGFuZGxlT3B0aW9uR3JvdXBzKGtleXMpLFxuICAgIG9uQ2hhbmdlOiAodikgPT4ge1xuICAgICAgbW9kZWwuX3VwZGF0ZUZpbHRlcihmaWx0ZXIsIHtcbiAgICAgICAga2V5OiB2LnZhbHVlLFxuICAgICAgICBrZXlMYWJlbDogdi5sYWJlbCxcbiAgICAgICAgdmFsdWU6IFwiXCIsXG4gICAgICAgIHZhbHVlTGFiZWxzOiBbXCJcIl0sXG4gICAgICAgIHZhbHVlczogdm9pZCAwXG4gICAgICB9KTtcbiAgICAgIHNldFVuY29tbWl0dGVkVmFsdWUoW10pO1xuICAgIH0sXG4gICAgYXV0b0ZvY3VzOiBmaWx0ZXIua2V5ID09PSBcIlwiLFxuICAgIGlzT3BlbjogaXNLZXlzT3BlbiAmJiAhaXNLZXlzTG9hZGluZyxcbiAgICBpc0xvYWRpbmc6IGlzS2V5c0xvYWRpbmcsXG4gICAgb25PcGVuTWVudTogYXN5bmMgKCkgPT4ge1xuICAgICAgc2V0SXNLZXlzT3Blbih0cnVlKTtcbiAgICAgIHNldElzS2V5c0xvYWRpbmcodHJ1ZSk7XG4gICAgICBjb25zdCBrZXlzMiA9IGF3YWl0IG1vZGVsLl9nZXRLZXlzKGZpbHRlci5rZXkpO1xuICAgICAgc2V0SXNLZXlzTG9hZGluZyhmYWxzZSk7XG4gICAgICBzZXRLZXlzKGtleXMyKTtcbiAgICB9LFxuICAgIG9uQ2xvc2VNZW51OiAoKSA9PiB7XG4gICAgICBzZXRJc0tleXNPcGVuKGZhbHNlKTtcbiAgICB9LFxuICAgIG9uQmx1cjogKCkgPT4ge1xuICAgICAgaWYgKGZpbHRlci5rZXkgPT09IFwiXCIpIHtcbiAgICAgICAgbW9kZWwuX3JlbW92ZUZpbHRlcihmaWx0ZXIpO1xuICAgICAgfVxuICAgIH0sXG4gICAgb3Blbk1lbnVPbkZvY3VzOiB0cnVlXG4gIH0pO1xuICBjb25zdCBvcGVyYXRvclNlbGVjdCA9IC8qIEBfX1BVUkVfXyAqLyBSZWFjdC5jcmVhdGVFbGVtZW50KFNlbGVjdCwge1xuICAgIGNsYXNzTmFtZTogY3goc3R5bGVzLm9wZXJhdG9yLCB7XG4gICAgICBbc3R5bGVzLndpZHRoV2hlbk9wZW5dOiBpc09wZXJhdG9yT3BlblxuICAgIH0pLFxuICAgIHZhbHVlOiBmaWx0ZXIub3BlcmF0b3IsXG4gICAgZGlzYWJsZWQ6IG1vZGVsLnN0YXRlLnJlYWRPbmx5LFxuICAgIG9wdGlvbnM6IG1vZGVsLl9nZXRPcGVyYXRvcnMoKSxcbiAgICBvbkNoYW5nZTogb25PcGVyYXRvckNoYW5nZSxcbiAgICBvbk9wZW5NZW51OiAoKSA9PiB7XG4gICAgICBzZXRJc09wZXJhdG9yT3Blbih0cnVlKTtcbiAgICB9LFxuICAgIG9uQ2xvc2VNZW51OiAoKSA9PiB7XG4gICAgICBzZXRJc09wZXJhdG9yT3BlbihmYWxzZSk7XG4gICAgfVxuICB9KTtcbiAgaWYgKG1vZGVsLnN0YXRlLmxheW91dCA9PT0gXCJ2ZXJ0aWNhbFwiKSB7XG4gICAgaWYgKGZpbHRlci5rZXkpIHtcbiAgICAgIGNvbnN0IGxhYmVsID0gLyogQF9fUFVSRV9fICovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29udHJvbHNMYWJlbCwge1xuICAgICAgICBsYXlvdXQ6IFwidmVydGljYWxcIixcbiAgICAgICAgbGFiZWw6IChfZCA9IGZpbHRlci5rZXkpICE9IG51bGwgPyBfZCA6IFwiXCIsXG4gICAgICAgIG9uUmVtb3ZlOiAoKSA9PiBtb2RlbC5fcmVtb3ZlRmlsdGVyKGZpbHRlcilcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBSZWFjdC5jcmVhdGVFbGVtZW50KEZpZWxkLCB7XG4gICAgICAgIGxhYmVsLFxuICAgICAgICBcImRhdGEtdGVzdGlkXCI6IGBBZEhvY0ZpbHRlci0ke2ZpbHRlci5rZXl9YCxcbiAgICAgICAgY2xhc3NOYW1lOiBzdHlsZXMuZmllbGRcbiAgICAgIH0sIC8qIEBfX1BVUkVfXyAqLyBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBzdHlsZXMud3JhcHBlclxuICAgICAgfSwgb3BlcmF0b3JTZWxlY3QsIHZhbHVlU2VsZWN0KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8gUmVhY3QuY3JlYXRlRWxlbWVudChGaWVsZCwge1xuICAgICAgICBsYWJlbDogXCJTZWxlY3QgbGFiZWxcIixcbiAgICAgICAgXCJkYXRhLXRlc3RpZFwiOiBgQWRIb2NGaWx0ZXItJHtmaWx0ZXIua2V5fWAsXG4gICAgICAgIGNsYXNzTmFtZTogc3R5bGVzLmZpZWxkXG4gICAgICB9LCBrZXlTZWxlY3QpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gLyogQF9fUFVSRV9fICovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgIGNsYXNzTmFtZTogc3R5bGVzLndyYXBwZXIsXG4gICAgXCJkYXRhLXRlc3RpZFwiOiBgQWRIb2NGaWx0ZXItJHtmaWx0ZXIua2V5fWBcbiAgfSwga2V5U2VsZWN0LCBvcGVyYXRvclNlbGVjdCwgdmFsdWVTZWxlY3QsIC8qIEBfX1BVUkVfXyAqLyBSZWFjdC5jcmVhdGVFbGVtZW50KEJ1dHRvbiwge1xuICAgIHZhcmlhbnQ6IFwic2Vjb25kYXJ5XCIsXG4gICAgXCJhcmlhLWxhYmVsXCI6IFwiUmVtb3ZlIGZpbHRlclwiLFxuICAgIHRpdGxlOiBcIlJlbW92ZSBmaWx0ZXJcIixcbiAgICBjbGFzc05hbWU6IHN0eWxlcy5yZW1vdmVCdXR0b24sXG4gICAgaWNvbjogXCJ0aW1lc1wiLFxuICAgIFwiZGF0YS10ZXN0aWRcIjogYEFkSG9jRmlsdGVyLXJlbW92ZS0keyhfZSA9IGZpbHRlci5rZXkpICE9IG51bGwgPyBfZSA6IFwiXCJ9YCxcbiAgICBvbkNsaWNrOiAoKSA9PiBtb2RlbC5fcmVtb3ZlRmlsdGVyKGZpbHRlcilcbiAgfSkpO1xufVxuY29uc3QgZ2V0U3R5bGVzID0gKHRoZW1lKSA9PiAoe1xuICBmaWVsZDogY3NzKHtcbiAgICBtYXJnaW5Cb3R0b206IDBcbiAgfSksXG4gIHdyYXBwZXI6IGNzcyh7XG4gICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAgXCI+ICpcIjoge1xuICAgICAgXCImOm5vdCg6Zmlyc3QtY2hpbGQpXCI6IHtcbiAgICAgICAgbWFyZ2luTGVmdDogLTFcbiAgICAgIH0sXG4gICAgICBcIiY6Zmlyc3QtY2hpbGRcIjoge1xuICAgICAgICBib3JkZXJUb3BSaWdodFJhZGl1czogMCxcbiAgICAgICAgYm9yZGVyQm90dG9tUmlnaHRSYWRpdXM6IDBcbiAgICAgIH0sXG4gICAgICBcIiY6bGFzdC1jaGlsZFwiOiB7XG4gICAgICAgIGJvcmRlclRvcExlZnRSYWRpdXM6IDAsXG4gICAgICAgIGJvcmRlckJvdHRvbUxlZnRSYWRpdXM6IDBcbiAgICAgIH0sXG4gICAgICBcIiY6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKVwiOiB7XG4gICAgICAgIGJvcmRlclJhZGl1czogMFxuICAgICAgfSxcbiAgICAgIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG4gICAgICB6SW5kZXg6IDAsXG4gICAgICBcIiY6aG92ZXJcIjoge1xuICAgICAgICB6SW5kZXg6IDFcbiAgICAgIH0sXG4gICAgICBcIiY6Zm9jdXMtd2l0aGluXCI6IHtcbiAgICAgICAgekluZGV4OiAyXG4gICAgICB9XG4gICAgfVxuICB9KSxcbiAgd2lkdGhXaGVuT3BlbjogY3NzKHtcbiAgICBtaW5XaWR0aDogdGhlbWUuc3BhY2luZygxNilcbiAgfSksXG4gIHZhbHVlOiBjc3Moe1xuICAgIGZsZXhCYXNpczogXCJjb250ZW50XCIsXG4gICAgZmxleFNocmluazogMSxcbiAgICBtaW5XaWR0aDogXCI5MHB4XCJcbiAgfSksXG4gIGtleTogY3NzKHtcbiAgICBmbGV4QmFzaXM6IFwiY29udGVudFwiLFxuICAgIG1pbldpZHRoOiBcIjkwcHhcIixcbiAgICBmbGV4U2hyaW5rOiAxXG4gIH0pLFxuICBvcGVyYXRvcjogY3NzKHtcbiAgICBmbGV4U2hyaW5rOiAwLFxuICAgIGZsZXhCYXNpczogXCJjb250ZW50XCJcbiAgfSksXG4gIHJlbW92ZUJ1dHRvbjogY3NzKHtcbiAgICBwYWRkaW5nTGVmdDogdGhlbWUuc3BhY2luZygzIC8gMiksXG4gICAgcGFkZGluZ1JpZ2h0OiB0aGVtZS5zcGFjaW5nKDMgLyAyKSxcbiAgICBib3JkZXJMZWZ0OiBcIm5vbmVcIixcbiAgICB3aWR0aDogdGhlbWUuc3BhY2luZygzKSxcbiAgICBtYXJnaW5SaWdodDogdGhlbWUuc3BhY2luZygxKSxcbiAgICBib3hTaXppbmc6IFwiYm9yZGVyLWJveFwiLFxuICAgIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG4gICAgbGVmdDogXCIxcHhcIlxuICB9KVxufSk7XG5cbmV4cG9ydCB7IEFkSG9jRmlsdGVyUmVuZGVyZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pUVdSSWIyTkdhV3gwWlhKU1pXNWtaWEpsY2k1cWN5SXNJbk52ZFhKalpYTWlPbHNpTGk0dkxpNHZMaTR2TGk0dmMzSmpMM1poY21saFlteGxjeTloWkdodll5OUJaRWh2WTBacGJIUmxjbEpsYm1SbGNtVnlMblJ6ZUNKZExDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ1VtVmhZM1FzSUhzZ2RYTmxUV1Z0Ynl3Z2RYTmxVM1JoZEdVZ2ZTQm1jbTl0SUNkeVpXRmpkQ2M3WEc1Y2JtbHRjRzl5ZENCN0lFRmtTRzlqUm1sc2RHVnljMVpoY21saFlteGxMQ0JCWkVodlkwWnBiSFJsY2xkcGRHaE1ZV0psYkhNc0lHbHpUWFZzZEdsV1lXeDFaVTl3WlhKaGRHOXlJSDBnWm5KdmJTQW5MaTlCWkVodlkwWnBiSFJsY25OV1lYSnBZV0pzWlNjN1hHNXBiWEJ2Y25RZ2V5QkhjbUZtWVc1aFZHaGxiV1V5TENCVFpXeGxZM1JoWW14bFZtRnNkV1VnZlNCbWNtOXRJQ2RBWjNKaFptRnVZUzlrWVhSaEp6dGNibWx0Y0c5eWRDQjdJRUoxZEhSdmJpd2dSbWxsYkdRc0lFbHVjSFYwUVdOMGFXOXVUV1YwWVN3Z1UyVnNaV04wTENCMWMyVlRkSGxzWlhNeUlIMGdabkp2YlNBblFHZHlZV1poYm1FdmRXa25PMXh1YVcxd2IzSjBJSHNnWTNOekxDQmplQ0I5SUdaeWIyMGdKMEJsYlc5MGFXOXVMMk56Y3ljN1hHNXBiWEJ2Y25RZ2V5QkRiMjUwY205c2MweGhZbVZzSUgwZ1puSnZiU0FuTGk0dkxpNHZkWFJwYkhNdlEyOXVkSEp2YkhOTVlXSmxiQ2M3WEc1cGJYQnZjblFnZXlCblpYUkJaR2h2WTA5d2RHbHZibE5sWVhKamFHVnlJSDBnWm5KdmJTQW5MaTluWlhSQlpHaHZZMDl3ZEdsdmJsTmxZWEpqYUdWeUp6dGNibWx0Y0c5eWRDQjdJR2hoYm1Sc1pVOXdkR2x2YmtkeWIzVndjeUI5SUdaeWIyMGdKeTR1TDNWMGFXeHpKenRjYm1sdGNHOXlkQ0I3SUU5d2RHbHZibGRwZEdoRGFHVmphMkp2ZUNCOUlHWnliMjBnSnk0dUwyTnZiWEJ2Ym1WdWRITXZWbUZ5YVdGaWJHVldZV3gxWlZObGJHVmpkQ2M3WEc1Y2JtbHVkR1Z5Wm1GalpTQlFjbTl3Y3lCN1hHNGdJR1pwYkhSbGNqb2dRV1JJYjJOR2FXeDBaWEpYYVhSb1RHRmlaV3h6TzF4dUlDQnRiMlJsYkRvZ1FXUkliMk5HYVd4MFpYSnpWbUZ5YVdGaWJHVTdYRzU5WEc1Y2JtWjFibU4wYVc5dUlHdGxlVXhoWW1Wc1ZHOVBjSFJwYjI0b2EyVjVPaUJ6ZEhKcGJtY3NJR3hoWW1Wc1B6b2djM1J5YVc1bktUb2dVMlZzWldOMFlXSnNaVlpoYkhWbElId2diblZzYkNCN1hHNGdJSEpsZEhWeWJpQnJaWGtnSVQwOUlDY25YRzRnSUNBZ1B5QjdYRzRnSUNBZ0lDQWdJSFpoYkhWbE9pQnJaWGtzWEc0Z0lDQWdJQ0FnSUd4aFltVnNPaUJzWVdKbGJDQjhmQ0JyWlhrc1hHNGdJQ0FnSUNCOVhHNGdJQ0FnT2lCdWRXeHNPMXh1ZlZ4dVhHNWpiMjV6ZENCbWFXeDBaWEpPYjA5d0lEMGdLQ2tnUFQ0Z2RISjFaVHRjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUVGa1NHOWpSbWxzZEdWeVVtVnVaR1Z5WlhJb2V5Qm1hV3gwWlhJc0lHMXZaR1ZzSUgwNklGQnliM0J6S1NCN1hHNGdJR052Ym5OMElITjBlV3hsY3lBOUlIVnpaVk4wZVd4bGN6SW9aMlYwVTNSNWJHVnpLVHRjYmx4dUlDQmpiMjV6ZENCYmEyVjVjeXdnYzJWMFMyVjVjMTBnUFNCMWMyVlRkR0YwWlR4VFpXeGxZM1JoWW14bFZtRnNkV1ZiWFQ0b1cxMHBPMXh1SUNCamIyNXpkQ0JiZG1Gc2RXVnpMQ0J6WlhSV1lXeDFaWE5kSUQwZ2RYTmxVM1JoZEdVOFUyVnNaV04wWVdKc1pWWmhiSFZsVzEwK0tGdGRLVHRjYmlBZ1kyOXVjM1FnVzJselMyVjVjMHh2WVdScGJtY3NJSE5sZEVselMyVjVjMHh2WVdScGJtZGRJRDBnZFhObFUzUmhkR1VvWm1Gc2MyVXBPMXh1SUNCamIyNXpkQ0JiYVhOV1lXeDFaWE5NYjJGa2FXNW5MQ0J6WlhSSmMxWmhiSFZsYzB4dllXUnBibWRkSUQwZ2RYTmxVM1JoZEdVb1ptRnNjMlVwTzF4dUlDQmpiMjV6ZENCYmFYTkxaWGx6VDNCbGJpd2djMlYwU1hOTFpYbHpUM0JsYmwwZ1BTQjFjMlZUZEdGMFpTaG1ZV3h6WlNrN1hHNGdJR052Ym5OMElGdHBjMVpoYkhWbGMwOXdaVzRzSUhObGRFbHpWbUZzZFdWelQzQmxibDBnUFNCMWMyVlRkR0YwWlNobVlXeHpaU2s3WEc0Z0lHTnZibk4wSUZ0cGMwOXdaWEpoZEc5eVQzQmxiaXdnYzJWMFNYTlBjR1Z5WVhSdmNrOXdaVzVkSUQwZ2RYTmxVM1JoZEdVb1ptRnNjMlVwTzF4dUlDQmpiMjV6ZENCYmRtRnNkV1ZKYm5CMWRGWmhiSFZsTENCelpYUldZV3gxWlVsdWNIVjBWbUZzZFdWZElEMGdkWE5sVTNSaGRHVW9KeWNwTzF4dUlDQmpiMjV6ZENCYmRtRnNkV1ZJWVhORGRYTjBiMjFXWVd4MVpTd2djMlYwVm1Gc2RXVklZWE5EZFhOMGIyMVdZV3gxWlYwZ1BTQjFjMlZUZEdGMFpTaG1ZV3h6WlNrN1hHNGdJQzh2SUZSdklHNXZkQ0IwY21sbloyVnlJSEYxWlhKcFpYTWdiMjRnWlhabGNua2djMlZzWldOMGFXOXVJSGRsSUhOMGIzSmxJSFJvYVhNZ2MzUmhkR1VnYkc5allXeHNlU0JvWlhKbElHRnVaQ0J2Ym14NUlIVndaR0YwWlNCMGFHVWdkbUZ5YVdGaWJHVWdiMjVDYkhWeVhHNGdJR052Ym5OMElGdDFibU52YlcxcGRIUmxaRlpoYkhWbExDQnpaWFJWYm1OdmJXMXBkSFJsWkZaaGJIVmxYU0E5SUhWelpWTjBZWFJsUEZObGJHVmpkR0ZpYkdWV1lXeDFaVDRvWEc0Z0lDQWdabWxzZEdWeUxuWmhiSFZsY3lBL0lHWnBiSFJsY2k1MllXeDFaWE11YldGd0tDaDJZV3gxWlN3Z2FXNWtaWGdwSUQwK0lHdGxlVXhoWW1Wc1ZHOVBjSFJwYjI0b2RtRnNkV1VzSUdacGJIUmxjaTUyWVd4MVpVeGhZbVZzY3o4dVcybHVaR1Y0WFNrcElEb2dXMTFjYmlBZ0tUdGNiaUFnWTI5dWMzUWdhWE5OZFd4MGFWWmhiSFZsSUQwZ2FYTk5kV3gwYVZaaGJIVmxUM0JsY21GMGIzSW9abWxzZEdWeUxtOXdaWEpoZEc5eUtUdGNibHh1SUNCamIyNXpkQ0JyWlhsV1lXeDFaU0E5SUd0bGVVeGhZbVZzVkc5UGNIUnBiMjRvWm1sc2RHVnlMbXRsZVN3Z1ptbHNkR1Z5TG10bGVVeGhZbVZzS1R0Y2JpQWdZMjl1YzNRZ2RtRnNkV1ZXWVd4MVpTQTlJR3RsZVV4aFltVnNWRzlQY0hScGIyNG9abWxzZEdWeUxuWmhiSFZsTENCbWFXeDBaWEl1ZG1Gc2RXVk1ZV0psYkhNL0xsc3dYU2s3WEc1Y2JpQWdZMjl1YzNRZ2IzQjBhVzl1VTJWaGNtTm9aWElnUFNCMWMyVk5aVzF2S0NncElEMCtJR2RsZEVGa2FHOWpUM0IwYVc5dVUyVmhjbU5vWlhJb2RtRnNkV1Z6S1N3Z1czWmhiSFZsYzEwcE8xeHVYRzRnSUdOdmJuTjBJRzl1Vm1Gc2RXVkpibkIxZEVOb1lXNW5aU0E5SUNoMllXeDFaVG9nYzNSeWFXNW5MQ0I3SUdGamRHbHZiaUI5T2lCSmJuQjFkRUZqZEdsdmJrMWxkR0VwSUQwK0lIdGNiaUFnSUNCcFppQW9ZV04wYVc5dUlEMDlQU0FuYVc1d2RYUXRZMmhoYm1kbEp5a2dlMXh1SUNBZ0lDQWdjMlYwVm1Gc2RXVkpibkIxZEZaaGJIVmxLSFpoYkhWbEtUdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJSFpoYkhWbE8xeHVJQ0I5TzF4dVhHNGdJR052Ym5OMElHOXVUM0JsY21GMGIzSkRhR0Z1WjJVZ1BTQW9kam9nVTJWc1pXTjBZV0pzWlZaaGJIVmxLU0E5UGlCN1hHNGdJQ0FnWTI5dWMzUWdaWGhwYzNScGJtZFBjR1Z5WVhSdmNpQTlJR1pwYkhSbGNpNXZjR1Z5WVhSdmNqdGNiaUFnSUNCamIyNXpkQ0J1WlhkUGNHVnlZWFJ2Y2lBOUlIWXVkbUZzZFdVN1hHNWNiaUFnSUNCamIyNXpkQ0IxY0dSaGRHVTZJRkJoY25ScFlXdzhRV1JJYjJOR2FXeDBaWEpYYVhSb1RHRmlaV3h6UGlBOUlIc2diM0JsY21GMGIzSTZJRzVsZDA5d1pYSmhkRzl5SUgwN1hHNGdJQ0FnTHk4Z1kyeGxZWElnZG1Gc2RXVWdhV1lnYjNCbGNtRjBiM0lnYUdGeklHTm9ZVzVuWldRZ1puSnZiU0J0ZFd4MGFTQjBieUJ6YVc1bmJHVmNiaUFnSUNCcFppQW9hWE5OZFd4MGFWWmhiSFZsVDNCbGNtRjBiM0lvWlhocGMzUnBibWRQY0dWeVlYUnZjaWtnSmlZZ0lXbHpUWFZzZEdsV1lXeDFaVTl3WlhKaGRHOXlLRzVsZDA5d1pYSmhkRzl5S1NrZ2UxeHVJQ0FnSUNBZ2RYQmtZWFJsTG5aaGJIVmxJRDBnSnljN1hHNGdJQ0FnSUNCMWNHUmhkR1V1ZG1Gc2RXVk1ZV0psYkhNZ1BTQmJKeWRkTzF4dUlDQWdJQ0FnZFhCa1lYUmxMblpoYkhWbGN5QTlJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQWdJSE5sZEZWdVkyOXRiV2wwZEdWa1ZtRnNkV1VvVzEwcE8xeHVJQ0FnSUNBZ0x5OGdjMlYwSUhaaGJIVmxjeUJwWmlCdmNHVnlZWFJ2Y2lCb1lYTWdZMmhoYm1kbFpDQm1jbTl0SUhOcGJtZHNaU0IwYnlCdGRXeDBhVnh1SUNBZ0lIMGdaV3h6WlNCcFppQW9JV2x6VFhWc2RHbFdZV3gxWlU5d1pYSmhkRzl5S0dWNGFYTjBhVzVuVDNCbGNtRjBiM0lwSUNZbUlHbHpUWFZzZEdsV1lXeDFaVTl3WlhKaGRHOXlLRzVsZDA5d1pYSmhkRzl5S1NBbUppQm1hV3gwWlhJdWRtRnNkV1VwSUh0Y2JpQWdJQ0FnSUhWd1pHRjBaUzUyWVd4MVpYTWdQU0JiWm1sc2RHVnlMblpoYkhWbFhUdGNiaUFnSUNBZ0lITmxkRlZ1WTI5dGJXbDBkR1ZrVm1Gc2RXVW9XMXh1SUNBZ0lDQWdJQ0I3WEc0Z0lDQWdJQ0FnSUNBZ2RtRnNkV1U2SUdacGJIUmxjaTUyWVd4MVpTeGNiaUFnSUNBZ0lDQWdJQ0JzWVdKbGJEb2dabWxzZEdWeUxuWmhiSFZsVEdGaVpXeHpQeTViTUYwZ1B6OGdabWxzZEdWeUxuWmhiSFZsTEZ4dUlDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ1hTazdYRzRnSUNBZ2ZWeHVJQ0FnSUcxdlpHVnNMbDkxY0dSaGRHVkdhV3gwWlhJb1ptbHNkR1Z5TENCMWNHUmhkR1VwTzF4dUlDQjlPMXh1WEc0Z0lHTnZibk4wSUdacGJIUmxjbVZrVm1Gc2RXVlBjSFJwYjI1eklEMGdkWE5sVFdWdGJ5aGNiaUFnSUNBb0tTQTlQaUJvWVc1a2JHVlBjSFJwYjI1SGNtOTFjSE1vYjNCMGFXOXVVMlZoY21Ob1pYSW9kbUZzZFdWSmJuQjFkRlpoYkhWbEtTa3NYRzRnSUNBZ1cyOXdkR2x2YmxObFlYSmphR1Z5TENCMllXeDFaVWx1Y0hWMFZtRnNkV1ZkWEc0Z0lDazdYRzVjYmlBZ1kyOXVjM1FnYlhWc2RHbFdZV3gxWlZCeWIzQnpJRDBnZTF4dUlDQWdJR2x6VFhWc2RHazZJSFJ5ZFdVc1hHNGdJQ0FnZG1Gc2RXVTZJSFZ1WTI5dGJXbDBkR1ZrVm1Gc2RXVXNYRzRnSUNBZ1kyOXRjRzl1Wlc1MGN6b2dlMXh1SUNBZ0lDQWdUM0IwYVc5dU9pQlBjSFJwYjI1WGFYUm9RMmhsWTJ0aWIzZ3NYRzRnSUNBZ2ZTeGNiaUFnSUNCb2FXUmxVMlZzWldOMFpXUlBjSFJwYjI1ek9pQm1ZV3h6WlN4Y2JpQWdJQ0JqYkc5elpVMWxiblZQYmxObGJHVmpkRG9nWm1Gc2MyVXNYRzRnSUNBZ2IzQmxiazFsYm5WUGJrWnZZM1Z6T2lCbVlXeHpaU3hjYmlBZ0lDQnZia05vWVc1blpUb2dLSFk2SUZObGJHVmpkR0ZpYkdWV1lXeDFaU2tnUFQ0Z2UxeHVJQ0FnSUNBZ2MyVjBWVzVqYjIxdGFYUjBaV1JXWVd4MVpTaDJLVHRjYmlBZ0lDQWdJQzh2SUdOc1pXRnlJR2x1Y0hWMElIWmhiSFZsSUhkb1pXNGdZM0psWVhScGJtY2dZU0J1WlhjZ1kzVnpkRzl0SUcxMWJIUnBJSFpoYkhWbFhHNGdJQ0FnSUNCcFppQW9kaTV6YjIxbEtDaDJZV3gxWlRvZ1UyVnNaV04wWVdKc1pWWmhiSFZsS1NBOVBpQjJZV3gxWlM1ZlgybHpUbVYzWDE4cEtTQjdYRzRnSUNBZ0lDQWdJSE5sZEZaaGJIVmxTVzV3ZFhSV1lXeDFaU2duSnlrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlN4Y2JpQWdJQ0J2YmtKc2RYSTZJQ2dwSUQwK0lIdGNiaUFnSUNBZ0lHMXZaR1ZzTGw5MWNHUmhkR1ZHYVd4MFpYSW9abWxzZEdWeUxDQjdYRzRnSUNBZ0lDQWdJSFpoYkhWbE9pQjFibU52YlcxcGRIUmxaRlpoYkhWbFd6QmRQeTUyWVd4MVpTQS9QeUFuSnl4Y2JpQWdJQ0FnSUNBZ0x5OGdWRTlFVHlCeVpXMXZkbVVnWlhod1pXTjBMV1Z5Y205eUlIZG9aVzRnZDJVbmNtVWdiMjRnZEdobElHeGhkR1Z6ZENCMlpYSnphVzl1SUc5bUlFQm5jbUZtWVc1aEwyUmhkR0ZjYmlBZ0lDQWdJQ0FnZG1Gc2RXVnpPaUIxYm1OdmJXMXBkSFJsWkZaaGJIVmxMbTFoY0Nnb2IzQjBhVzl1T2lCVFpXeGxZM1JoWW14bFZtRnNkV1U4YzNSeWFXNW5QaWtnUFQ0Z2IzQjBhVzl1TG5aaGJIVmxLU3hjYmlBZ0lDQWdJQ0FnZG1Gc2RXVk1ZV0psYkhNNklIVnVZMjl0YldsMGRHVmtWbUZzZFdVdWJXRndLQ2h2Y0hScGIyNDZJRk5sYkdWamRHRmliR1ZXWVd4MVpUeHpkSEpwYm1jK0tTQTlQaUJ2Y0hScGIyNHViR0ZpWld3cExGeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZTeGNiaUFnZlR0Y2JseHVJQ0JqYjI1emRDQjJZV3gxWlZObGJHVmpkQ0E5SUNoY2JpQWdJQ0E4VTJWc1pXTjBYRzRnSUNBZ0lDQjJhWEowZFdGc2FYcGxaRnh1SUNBZ0lDQWdZV3hzYjNkRGRYTjBiMjFXWVd4MVpUMTdiVzlrWld3dWMzUmhkR1V1WVd4c2IzZERkWE4wYjIxV1lXeDFaU0EvUHlCMGNuVmxmVnh1SUNBZ0lDQWdhWE5XWVd4cFpFNWxkMDl3ZEdsdmJqMTdLR2x1Y0hWMFZtRnNkV1VwSUQwK0lHbHVjSFYwVm1Gc2RXVXVkSEpwYlNncExteGxibWQwYUNBK0lEQjlYRzRnSUNBZ0lDQmhiR3h2ZDBOeVpXRjBaVmRvYVd4bFRHOWhaR2x1WjF4dUlDQWdJQ0FnWm05eWJXRjBRM0psWVhSbFRHRmlaV3c5ZXlocGJuQjFkRlpoYkhWbEtTQTlQaUJnVlhObElHTjFjM1J2YlNCMllXeDFaVG9nSkh0cGJuQjFkRlpoYkhWbGZXQjlYRzRnSUNBZ0lDQmthWE5oWW14bFpEMTdiVzlrWld3dWMzUmhkR1V1Y21WaFpFOXViSGw5WEc0Z0lDQWdJQ0JqYkdGemMwNWhiV1U5ZTJONEtITjBlV3hsY3k1MllXeDFaU3dnYVhOV1lXeDFaWE5QY0dWdUlEOGdjM1I1YkdWekxuZHBaSFJvVjJobGJrOXdaVzRnT2lCMWJtUmxabWx1WldRcGZWeHVJQ0FnSUNBZ2QybGtkR2c5WENKaGRYUnZYQ0pjYmlBZ0lDQWdJSFpoYkhWbFBYdDJZV3gxWlZaaGJIVmxmVnh1SUNBZ0lDQWdabWxzZEdWeVQzQjBhVzl1UFh0bWFXeDBaWEpPYjA5d2ZWeHVJQ0FnSUNBZ2NHeGhZMlZvYjJ4a1pYSTlleWRUWld4bFkzUWdkbUZzZFdVbmZWeHVJQ0FnSUNBZ2IzQjBhVzl1Y3oxN1ptbHNkR1Z5WldSV1lXeDFaVTl3ZEdsdmJuTjlYRzRnSUNBZ0lDQnBibkIxZEZaaGJIVmxQWHQyWVd4MVpVbHVjSFYwVm1Gc2RXVjlYRzRnSUNBZ0lDQnZia2x1Y0hWMFEyaGhibWRsUFh0dmJsWmhiSFZsU1c1d2RYUkRhR0Z1WjJWOVhHNGdJQ0FnSUNCdmJrTm9ZVzVuWlQxN0tIWXBJRDArSUh0Y2JpQWdJQ0FnSUNBZ2JXOWtaV3d1WDNWd1pHRjBaVVpwYkhSbGNpaG1hV3gwWlhJc0lIdGNiaUFnSUNBZ0lDQWdJQ0IyWVd4MVpUb2dkaTUyWVd4MVpTeGNiaUFnSUNBZ0lDQWdJQ0IyWVd4MVpVeGhZbVZzY3pvZ2RpNXNZV0psYkNBL0lGdDJMbXhoWW1Wc1hTQTZJRnQyTG5aaGJIVmxYU3hjYmlBZ0lDQWdJQ0FnZlNrN1hHNWNiaUFnSUNBZ0lDQWdhV1lnS0haaGJIVmxTR0Z6UTNWemRHOXRWbUZzZFdVZ0lUMDlJSFl1WDE5cGMwNWxkMTlmS1NCN1hHNGdJQ0FnSUNBZ0lDQWdjMlYwVm1Gc2RXVklZWE5EZFhOMGIyMVdZV3gxWlNoMkxsOWZhWE5PWlhkZlh5azdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDE5WEc0Z0lDQWdJQ0F2THlCMGFHVnlaU2R6SUdFZ1luVm5JR2x1SUhKbFlXTjBMWE5sYkdWamRDQjNhR1Z5WlNCMGFHVWdiV1Z1ZFNCa2IyVnpiaWQwSUhKbFkyRnNZM1ZzWVhSbElHbDBjeUJ3YjNOcGRHbHZiaUIzYUdWdUlIUm9aU0J2Y0hScGIyNXpJR0Z5WlNCc2IyRmtaV1FnWVhONWJtTm9jbTl1YjNWemJIbGNiaUFnSUNBZ0lDOHZJSE5sWlNCb2RIUndjem92TDJkcGRHaDFZaTVqYjIwdlozSmhabUZ1WVM5bmNtRm1ZVzVoTDJsemMzVmxjeTgyTXpVMU9GeHVJQ0FnSUNBZ0x5OGdhVzV6ZEdWaFpDd2dkMlVnWlhod2JHbGphWFJzZVNCamIyNTBjbTlzSUhSb1pTQnRaVzUxSUhacGMybGlhV3hwZEhrZ1lXNWtJSEJ5WlhabGJuUWdjMmh2ZDJsdVp5QnBkQ0IxYm5ScGJDQjBhR1VnYjNCMGFXOXVjeUJvWVhabElHWjFiR3g1SUd4dllXUmxaRnh1SUNBZ0lDQWdhWE5QY0dWdVBYdHBjMVpoYkhWbGMwOXdaVzRnSmlZZ0lXbHpWbUZzZFdWelRHOWhaR2x1WjMxY2JpQWdJQ0FnSUdselRHOWhaR2x1WnoxN2FYTldZV3gxWlhOTWIyRmthVzVuZlZ4dUlDQWdJQ0FnYjNCbGJrMWxiblZQYmtadlkzVnpQWHQwY25WbGZWeHVJQ0FnSUNBZ2IyNVBjR1Z1VFdWdWRUMTdZWE41Ym1NZ0tDa2dQVDRnZTF4dUlDQWdJQ0FnSUNCelpYUkpjMVpoYkhWbGMweHZZV1JwYm1jb2RISjFaU2s3WEc0Z0lDQWdJQ0FnSUhObGRFbHpWbUZzZFdWelQzQmxiaWgwY25WbEtUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2RtRnNkV1Z6SUQwZ1lYZGhhWFFnYlc5a1pXd3VYMmRsZEZaaGJIVmxjMFp2Y2lobWFXeDBaWElwTzF4dUlDQWdJQ0FnSUNCelpYUkpjMVpoYkhWbGMweHZZV1JwYm1jb1ptRnNjMlVwTzF4dUlDQWdJQ0FnSUNCelpYUldZV3gxWlhNb2RtRnNkV1Z6S1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLSFpoYkhWbFNHRnpRM1Z6ZEc5dFZtRnNkV1VwSUh0Y2JpQWdJQ0FnSUNBZ0lDQnpaWFJXWVd4MVpVbHVjSFYwVm1Gc2RXVW9kbUZzZFdWV1lXeDFaVDh1YkdGaVpXd2dQejhnSnljcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlmVnh1SUNBZ0lDQWdiMjVEYkc5elpVMWxiblU5ZXlncElEMCtJSHRjYmlBZ0lDQWdJQ0FnYzJWMFNYTldZV3gxWlhOUGNHVnVLR1poYkhObEtUdGNiaUFnSUNBZ0lDQWdjMlYwVm1Gc2RXVkpibkIxZEZaaGJIVmxLQ2NuS1R0Y2JpQWdJQ0FnSUgxOVhHNGdJQ0FnSUNCN0xpNHVLR2x6VFhWc2RHbFdZV3gxWlNBbUppQnRkV3gwYVZaaGJIVmxVSEp2Y0hNcGZWeHVJQ0FnSUM4K1hHNGdJQ2s3WEc1Y2JpQWdZMjl1YzNRZ2EyVjVVMlZzWldOMElEMGdLRnh1SUNBZ0lEeFRaV3hsWTNSY2JpQWdJQ0FnSUM4dklFSjVJR05vWVc1bmFXNW5JSFJvWlNCclpYa3NJSGRsSUhKbGMyVjBJSFJvWlNCVFpXeGxZM1FnWTI5dGNHOXVaVzUwTEZ4dUlDQWdJQ0FnTHk4Z2RHOGdaVzV6ZFhKbElIUm9ZWFFnZEdobElHeHZZV1JsWkNCMllXeDFaWE1nWVhKbElITm9iM2R1SUdGbWRHVnlJSFJvWlhrZ1lYSmxJR3h2WVdSbFpGeHVJQ0FnSUNBZ2EyVjVQWHRnSkh0cGMxWmhiSFZsYzB4dllXUnBibWNnUHlBbmJHOWhaR2x1WnljZ09pQW5iRzloWkdWa0ozMWdmVnh1SUNBZ0lDQWdaR2x6WVdKc1pXUTllMjF2WkdWc0xuTjBZWFJsTG5KbFlXUlBibXg1ZlZ4dUlDQWdJQ0FnWTJ4aGMzTk9ZVzFsUFh0amVDaHpkSGxzWlhNdWEyVjVMQ0JwYzB0bGVYTlBjR1Z1SUQ4Z2MzUjViR1Z6TG5kcFpIUm9WMmhsYms5d1pXNGdPaUIxYm1SbFptbHVaV1FwZlZ4dUlDQWdJQ0FnZDJsa2RHZzlYQ0poZFhSdlhDSmNiaUFnSUNBZ0lHRnNiRzkzUTNWemRHOXRWbUZzZFdVOWUyMXZaR1ZzTG5OMFlYUmxMbUZzYkc5M1EzVnpkRzl0Vm1Gc2RXVWdQejhnZEhKMVpYMWNiaUFnSUNBZ0lIWmhiSFZsUFh0clpYbFdZV3gxWlgxY2JpQWdJQ0FnSUhCc1lXTmxhRzlzWkdWeVBYc25VMlZzWldOMElHeGhZbVZzSjMxY2JpQWdJQ0FnSUc5d2RHbHZibk05ZTJoaGJtUnNaVTl3ZEdsdmJrZHliM1Z3Y3loclpYbHpLWDFjYmlBZ0lDQWdJRzl1UTJoaGJtZGxQWHNvZGlrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0J0YjJSbGJDNWZkWEJrWVhSbFJtbHNkR1Z5S0dacGJIUmxjaXdnZTF4dUlDQWdJQ0FnSUNBZ0lHdGxlVG9nZGk1MllXeDFaU3hjYmlBZ0lDQWdJQ0FnSUNCclpYbE1ZV0psYkRvZ2RpNXNZV0psYkN4Y2JpQWdJQ0FnSUNBZ0lDQXZMeUJqYkdWaGNpQjJZV3gxWlNCcFppQnJaWGtnYUdGeklHTm9ZVzVuWldSY2JpQWdJQ0FnSUNBZ0lDQjJZV3gxWlRvZ0p5Y3NYRzRnSUNBZ0lDQWdJQ0FnZG1Gc2RXVk1ZV0psYkhNNklGc25KMTBzWEc0Z0lDQWdJQ0FnSUNBZ2RtRnNkV1Z6T2lCMWJtUmxabWx1WldRc1hHNGdJQ0FnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdJQ0J6WlhSVmJtTnZiVzFwZEhSbFpGWmhiSFZsS0Z0ZEtUdGNiaUFnSUNBZ0lIMTlYRzRnSUNBZ0lDQmhkWFJ2Um05amRYTTllMlpwYkhSbGNpNXJaWGtnUFQwOUlDY25mVnh1SUNBZ0lDQWdMeThnZEdobGNtVW5jeUJoSUdKMVp5QnBiaUJ5WldGamRDMXpaV3hsWTNRZ2QyaGxjbVVnZEdobElHMWxiblVnWkc5bGMyNG5kQ0J5WldOaGJHTjFiR0YwWlNCcGRITWdjRzl6YVhScGIyNGdkMmhsYmlCMGFHVWdiM0IwYVc5dWN5QmhjbVVnYkc5aFpHVmtJR0Z6ZVc1amFISnZibTkxYzJ4NVhHNGdJQ0FnSUNBdkx5QnpaV1VnYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDJkeVlXWmhibUV2WjNKaFptRnVZUzlwYzNOMVpYTXZOak0xTlRoY2JpQWdJQ0FnSUM4dklHbHVjM1JsWVdRc0lIZGxJR1Y0Y0d4cFkybDBiSGtnWTI5dWRISnZiQ0IwYUdVZ2JXVnVkU0IyYVhOcFltbHNhWFI1SUdGdVpDQndjbVYyWlc1MElITm9iM2RwYm1jZ2FYUWdkVzUwYVd3Z2RHaGxJRzl3ZEdsdmJuTWdhR0YyWlNCbWRXeHNlU0JzYjJGa1pXUmNiaUFnSUNBZ0lHbHpUM0JsYmoxN2FYTkxaWGx6VDNCbGJpQW1KaUFoYVhOTFpYbHpURzloWkdsdVozMWNiaUFnSUNBZ0lHbHpURzloWkdsdVp6MTdhWE5MWlhselRHOWhaR2x1WjMxY2JpQWdJQ0FnSUc5dVQzQmxiazFsYm5VOWUyRnplVzVqSUNncElEMCtJSHRjYmlBZ0lDQWdJQ0FnYzJWMFNYTkxaWGx6VDNCbGJpaDBjblZsS1R0Y2JpQWdJQ0FnSUNBZ2MyVjBTWE5MWlhselRHOWhaR2x1WnloMGNuVmxLVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdhMlY1Y3lBOUlHRjNZV2wwSUcxdlpHVnNMbDluWlhSTFpYbHpLR1pwYkhSbGNpNXJaWGtwTzF4dUlDQWdJQ0FnSUNCelpYUkpjMHRsZVhOTWIyRmthVzVuS0daaGJITmxLVHRjYmlBZ0lDQWdJQ0FnYzJWMFMyVjVjeWhyWlhsektUdGNiaUFnSUNBZ0lIMTlYRzRnSUNBZ0lDQnZia05zYjNObFRXVnVkVDE3S0NrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0J6WlhSSmMwdGxlWE5QY0dWdUtHWmhiSE5sS1R0Y2JpQWdJQ0FnSUgxOVhHNGdJQ0FnSUNCdmJrSnNkWEk5ZXlncElEMCtJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHWnBiSFJsY2k1clpYa2dQVDA5SUNjbktTQjdYRzRnSUNBZ0lDQWdJQ0FnYlc5a1pXd3VYM0psYlc5MlpVWnBiSFJsY2lobWFXeDBaWElwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOWZWeHVJQ0FnSUNBZ2IzQmxiazFsYm5WUGJrWnZZM1Z6UFh0MGNuVmxmVnh1SUNBZ0lDOCtYRzRnSUNrN1hHNWNiaUFnWTI5dWMzUWdiM0JsY21GMGIzSlRaV3hsWTNRZ1BTQW9YRzRnSUNBZ1BGTmxiR1ZqZEZ4dUlDQWdJQ0FnWTJ4aGMzTk9ZVzFsUFh0amVDaHpkSGxzWlhNdWIzQmxjbUYwYjNJc0lIdGNiaUFnSUNBZ0lDQWdXM04wZVd4bGN5NTNhV1IwYUZkb1pXNVBjR1Z1WFRvZ2FYTlBjR1Z5WVhSdmNrOXdaVzRzWEc0Z0lDQWdJQ0I5S1gxY2JpQWdJQ0FnSUhaaGJIVmxQWHRtYVd4MFpYSXViM0JsY21GMGIzSjlYRzRnSUNBZ0lDQmthWE5oWW14bFpEMTdiVzlrWld3dWMzUmhkR1V1Y21WaFpFOXViSGw5WEc0Z0lDQWdJQ0J2Y0hScGIyNXpQWHR0YjJSbGJDNWZaMlYwVDNCbGNtRjBiM0p6S0NsOVhHNGdJQ0FnSUNCdmJrTm9ZVzVuWlQxN2IyNVBjR1Z5WVhSdmNrTm9ZVzVuWlgxY2JpQWdJQ0FnSUc5dVQzQmxiazFsYm5VOWV5Z3BJRDArSUh0Y2JpQWdJQ0FnSUNBZ2MyVjBTWE5QY0dWeVlYUnZjazl3Wlc0b2RISjFaU2s3WEc0Z0lDQWdJQ0I5ZlZ4dUlDQWdJQ0FnYjI1RGJHOXpaVTFsYm5VOWV5Z3BJRDArSUh0Y2JpQWdJQ0FnSUNBZ2MyVjBTWE5QY0dWeVlYUnZjazl3Wlc0b1ptRnNjMlVwTzF4dUlDQWdJQ0FnZlgxY2JpQWdJQ0F2UGx4dUlDQXBPMXh1WEc0Z0lHbG1JQ2h0YjJSbGJDNXpkR0YwWlM1c1lYbHZkWFFnUFQwOUlDZDJaWEowYVdOaGJDY3BJSHRjYmlBZ0lDQnBaaUFvWm1sc2RHVnlMbXRsZVNrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnYkdGaVpXd2dQU0FvWEc0Z0lDQWdJQ0FnSUR4RGIyNTBjbTlzYzB4aFltVnNJR3hoZVc5MWREMWNJblpsY25ScFkyRnNYQ0lnYkdGaVpXdzllMlpwYkhSbGNpNXJaWGtnUHo4Z0p5ZDlJRzl1VW1WdGIzWmxQWHNvS1NBOVBpQnRiMlJsYkM1ZmNtVnRiM1psUm1sc2RHVnlLR1pwYkhSbGNpbDlJQzgrWEc0Z0lDQWdJQ0FwTzF4dVhHNGdJQ0FnSUNCeVpYUjFjbTRnS0Z4dUlDQWdJQ0FnSUNBOFJtbGxiR1FnYkdGaVpXdzllMnhoWW1Wc2ZTQmtZWFJoTFhSbGMzUnBaRDE3WUVGa1NHOWpSbWxzZEdWeUxTUjdabWxzZEdWeUxtdGxlWDFnZlNCamJHRnpjMDVoYldVOWUzTjBlV3hsY3k1bWFXVnNaSDArWEc0Z0lDQWdJQ0FnSUNBZ1BHUnBkaUJqYkdGemMwNWhiV1U5ZTNOMGVXeGxjeTUzY21Gd2NHVnlmVDVjYmlBZ0lDQWdJQ0FnSUNBZ0lIdHZjR1Z5WVhSdmNsTmxiR1ZqZEgxY2JpQWdJQ0FnSUNBZ0lDQWdJSHQyWVd4MVpWTmxiR1ZqZEgxY2JpQWdJQ0FnSUNBZ0lDQThMMlJwZGo1Y2JpQWdJQ0FnSUNBZ1BDOUdhV1ZzWkQ1Y2JpQWdJQ0FnSUNrN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQW9YRzRnSUNBZ0lDQWdJRHhHYVdWc1pDQnNZV0psYkQxN0oxTmxiR1ZqZENCc1lXSmxiQ2Q5SUdSaGRHRXRkR1Z6ZEdsa1BYdGdRV1JJYjJOR2FXeDBaWEl0Skh0bWFXeDBaWEl1YTJWNWZXQjlJR05zWVhOelRtRnRaVDE3YzNSNWJHVnpMbVpwWld4a2ZUNWNiaUFnSUNBZ0lDQWdJQ0I3YTJWNVUyVnNaV04wZlZ4dUlDQWdJQ0FnSUNBOEwwWnBaV3hrUGx4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNCeVpYUjFjbTRnS0Z4dUlDQWdJRHhrYVhZZ1kyeGhjM05PWVcxbFBYdHpkSGxzWlhNdWQzSmhjSEJsY24wZ1pHRjBZUzEwWlhOMGFXUTllMkJCWkVodlkwWnBiSFJsY2kwa2UyWnBiSFJsY2k1clpYbDlZSDArWEc0Z0lDQWdJQ0I3YTJWNVUyVnNaV04wZlZ4dUlDQWdJQ0FnZTI5d1pYSmhkRzl5VTJWc1pXTjBmVnh1SUNBZ0lDQWdlM1poYkhWbFUyVnNaV04wZlZ4dUlDQWdJQ0FnUEVKMWRIUnZibHh1SUNBZ0lDQWdJQ0IyWVhKcFlXNTBQVndpYzJWamIyNWtZWEo1WENKY2JpQWdJQ0FnSUNBZ1lYSnBZUzFzWVdKbGJEMWNJbEpsYlc5MlpTQm1hV3gwWlhKY0lseHVJQ0FnSUNBZ0lDQjBhWFJzWlQxY0lsSmxiVzkyWlNCbWFXeDBaWEpjSWx4dUlDQWdJQ0FnSUNCamJHRnpjMDVoYldVOWUzTjBlV3hsY3k1eVpXMXZkbVZDZFhSMGIyNTlYRzRnSUNBZ0lDQWdJR2xqYjI0OVhDSjBhVzFsYzF3aVhHNGdJQ0FnSUNBZ0lHUmhkR0V0ZEdWemRHbGtQWHRnUVdSSWIyTkdhV3gwWlhJdGNtVnRiM1psTFNSN1ptbHNkR1Z5TG10bGVTQS9QeUFuSjMxZ2ZWeHVJQ0FnSUNBZ0lDQnZia05zYVdOclBYc29LU0E5UGlCdGIyUmxiQzVmY21WdGIzWmxSbWxzZEdWeUtHWnBiSFJsY2lsOVhHNGdJQ0FnSUNBdlBseHVJQ0FnSUR3dlpHbDJQbHh1SUNBcE8xeHVmVnh1WEc1amIyNXpkQ0JuWlhSVGRIbHNaWE1nUFNBb2RHaGxiV1U2SUVkeVlXWmhibUZVYUdWdFpUSXBJRDArSUNoN1hHNGdJR1pwWld4a09pQmpjM01vZTF4dUlDQWdJRzFoY21kcGJrSnZkSFJ2YlRvZ01DeGNiaUFnZlNrc1hHNGdJSGR5WVhCd1pYSTZJR056Y3loN1hHNGdJQ0FnWkdsemNHeGhlVG9nSjJac1pYZ25MRnh1SUNBZ0lDYytJQ29uT2lCN1hHNGdJQ0FnSUNBbkpqcHViM1FvT21acGNuTjBMV05vYVd4a0tTYzZJSHRjYmlBZ0lDQWdJQ0FnTHk4Z1RtVm5ZWFJwZG1VZ2JXRnlaMmx1SUdocFpHVnpJSFJvWlNCa2IzVmliR1V0WW05eVpHVnlJRzl1SUdGa2FtRmpaVzUwSUhObGJHVmpkSE5jYmlBZ0lDQWdJQ0FnYldGeVoybHVUR1ZtZERvZ0xURXNYRzRnSUNBZ0lDQjlMRnh1WEc0Z0lDQWdJQ0FuSmpwbWFYSnpkQzFqYUdsc1pDYzZJSHRjYmlBZ0lDQWdJQ0FnWW05eVpHVnlWRzl3VW1sbmFIUlNZV1JwZFhNNklEQXNYRzRnSUNBZ0lDQWdJR0p2Y21SbGNrSnZkSFJ2YlZKcFoyaDBVbUZrYVhWek9pQXdMRnh1SUNBZ0lDQWdmU3hjYmx4dUlDQWdJQ0FnSnlZNmJHRnpkQzFqYUdsc1pDYzZJSHRjYmlBZ0lDQWdJQ0FnWW05eVpHVnlWRzl3VEdWbWRGSmhaR2wxY3pvZ01DeGNiaUFnSUNBZ0lDQWdZbTl5WkdWeVFtOTBkRzl0VEdWbWRGSmhaR2wxY3pvZ01DeGNiaUFnSUNBZ0lIMHNYRzVjYmlBZ0lDQWdJQ2NtT201dmRDZzZabWx5YzNRdFkyaHBiR1FwT201dmRDZzZiR0Z6ZEMxamFHbHNaQ2tuT2lCN1hHNGdJQ0FnSUNBZ0lHSnZjbVJsY2xKaFpHbDFjem9nTUN4Y2JpQWdJQ0FnSUgwc1hHNWNiaUFnSUNBZ0lDOHZJRVpwZUNCbWIyTjFjeUJ6ZEdGMFpTQjZTVzVrWlhnZ2FYTnpkV1Z6WEc0Z0lDQWdJQ0J3YjNOcGRHbHZiam9nSjNKbGJHRjBhWFpsSnl4Y2JpQWdJQ0FnSUhwSmJtUmxlRG9nTUN4Y2JseHVJQ0FnSUNBZ0x5OGdRV1JxWVdObGJuUWdZbTl5WkdWeWN5QmhjbVVnYjNabGNteGhjSEJwYm1jc0lITnZJSEpoYVhObElHTm9hV3hrY21WdUlIVndJSGRvWlc0Z2FHOTJaWEpwYm1jZ1pYUmpYRzRnSUNBZ0lDQXZMeUJ6YnlCaGJHd2dkR2hoZENCamFHbHNaQ2R6SUdKdmNtUmxjbk1nWVhKbElIWnBjMmxpYkdVdVhHNGdJQ0FnSUNBbkpqcG9iM1psY2ljNklIdGNiaUFnSUNBZ0lDQWdla2x1WkdWNE9pQXhMRnh1SUNBZ0lDQWdmU3hjYmx4dUlDQWdJQ0FnSnlZNlptOWpkWE10ZDJsMGFHbHVKem9nZTF4dUlDQWdJQ0FnSUNCNlNXNWtaWGc2SURJc1hHNGdJQ0FnSUNCOUxGeHVJQ0FnSUgwc1hHNGdJSDBwTEZ4dUlDQjNhV1IwYUZkb1pXNVBjR1Z1T2lCamMzTW9lMXh1SUNBZ0lHMXBibGRwWkhSb09pQjBhR1Z0WlM1emNHRmphVzVuS0RFMktTeGNiaUFnZlNrc1hHNGdJSFpoYkhWbE9pQmpjM01vZTF4dUlDQWdJR1pzWlhoQ1lYTnBjem9nSjJOdmJuUmxiblFuTEZ4dUlDQWdJR1pzWlhoVGFISnBibXM2SURFc1hHNGdJQ0FnYldsdVYybGtkR2c2SUNjNU1IQjRKeXhjYmlBZ2ZTa3NYRzRnSUd0bGVUb2dZM056S0h0Y2JpQWdJQ0JtYkdWNFFtRnphWE02SUNkamIyNTBaVzUwSnl4Y2JpQWdJQ0J0YVc1WGFXUjBhRG9nSnprd2NIZ25MRnh1SUNBZ0lHWnNaWGhUYUhKcGJtczZJREVzWEc0Z0lIMHBMRnh1SUNCdmNHVnlZWFJ2Y2pvZ1kzTnpLSHRjYmlBZ0lDQm1iR1Y0VTJoeWFXNXJPaUF3TEZ4dUlDQWdJR1pzWlhoQ1lYTnBjem9nSjJOdmJuUmxiblFuTEZ4dUlDQjlLU3hjYmlBZ2NtVnRiM1psUW5WMGRHOXVPaUJqYzNNb2UxeHVJQ0FnSUhCaFpHUnBibWRNWldaME9pQjBhR1Z0WlM1emNHRmphVzVuS0RNZ0x5QXlLU3hjYmlBZ0lDQndZV1JrYVc1blVtbG5hSFE2SUhSb1pXMWxMbk53WVdOcGJtY29NeUF2SURJcExGeHVJQ0FnSUdKdmNtUmxja3hsWm5RNklDZHViMjVsSnl4Y2JpQWdJQ0IzYVdSMGFEb2dkR2hsYldVdWMzQmhZMmx1WnlnektTeGNiaUFnSUNCdFlYSm5hVzVTYVdkb2REb2dkR2hsYldVdWMzQmhZMmx1WnlneEtTeGNiaUFnSUNCaWIzaFRhWHBwYm1jNklDZGliM0prWlhJdFltOTRKeXhjYmlBZ0lDQXZMeUJVYnlCdWIzUWdhR0YyWlNCaWRYUjBiMjRnWW1GamEyZHliM1Z1WkNCaGJtUWdiR0Z6ZENCelpXeGxZM1FnWW05eVpHVnlJR2x1ZEdWeWMyVmpkRnh1SUNBZ0lIQnZjMmwwYVc5dU9pQW5jbVZzWVhScGRtVW5MRnh1SUNBZ0lHeGxablE2SUNjeGNIZ25MRnh1SUNCOUtTeGNibjBwTzF4dUlsMHNJbTVoYldWeklqcGJJbDloSWl3aVgySWlMQ0oyWVd4MVpYTWlMQ0pyWlhseklsMHNJbTFoY0hCcGJtZHpJam9pT3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPMEZCWjBKQkxGTkJRVk1zWjBKQlFVRXNRMEZCYVVJc1MwRkJZU3hMUVVGM1F5eEZRVUZCTzBGQlF6ZEZMRVZCUVVFc1QwRkJUeXhSUVVGUkxFVkJRMWdzUjBGQlFUdEJRVUZCTEVsQlEwVXNTMEZCVHl4RlFVRkJMRWRCUVVFN1FVRkJRU3hKUVVOUUxFOUJRVThzUzBGQlV5eEpRVUZCTEVkQlFVRTdRVUZCUVN4SFFVVnNRaXhIUVVGQkxFbEJRVUVzUTBGQlFUdEJRVU5PTEVOQlFVRTdRVUZGUVN4TlFVRk5MR0ZCUVdFc1RVRkJUU3hKUVVGQkxFTkJRVUU3UVVGRmJFSXNVMEZCVXl4dFFrRkJiMElzUTBGQlFTeEZRVUZGTEUxQlFWRXNSVUZCUVN4TFFVRkJMRVZCUVdkQ0xFVkJRVUU3UVVFelFqbEVMRVZCUVVFc1NVRkJRU3hGUVVGQkxFVkJRVUVzUlVGQlFTeEZRVUZCTEVWQlFVRXNSVUZCUVN4RlFVRkJMRVZCUVVFc1JVRkJRU3hEUVVGQk8wRkJORUpGTEVWQlFVMHNUVUZCUVN4TlFVRkJMRWRCUVZNc1YwRkJWeXhUUVVGVExFTkJRVUVzUTBGQlFUdEJRVVZ1UXl4RlFVRkJMRTFCUVUwc1EwRkJReXhKUVVGTkxFVkJRVUVzVDBGQlR5eERRVUZKTEVkQlFVRXNVVUZCUVN4RFFVRTBRaXhGUVVGRkxFTkJRVUVzUTBGQlFUdEJRVU4wUkN4RlFVRkJMRTFCUVUwc1EwRkJReXhOUVVGUkxFVkJRVUVzVTBGQlV5eERRVUZKTEVkQlFVRXNVVUZCUVN4RFFVRTBRaXhGUVVGRkxFTkJRVUVzUTBGQlFUdEJRVU14UkN4RlFVRkJMRTFCUVUwc1EwRkJReXhoUVVGQkxFVkJRV1VzWjBKQlFXZENMRU5CUVVFc1IwRkJTU3hUUVVGVExFdEJRVXNzUTBGQlFTeERRVUZCTzBGQlEzaEVMRVZCUVVFc1RVRkJUU3hEUVVGRExHVkJRVUVzUlVGQmFVSXNhMEpCUVd0Q0xFTkJRVUVzUjBGQlNTeFRRVUZUTEV0QlFVc3NRMEZCUVN4RFFVRkJPMEZCUXpWRUxFVkJRVUVzVFVGQlRTeERRVUZETEZWQlFVRXNSVUZCV1N4aFFVRmhMRU5CUVVFc1IwRkJTU3hUUVVGVExFdEJRVXNzUTBGQlFTeERRVUZCTzBGQlEyeEVMRVZCUVVFc1RVRkJUU3hEUVVGRExGbEJRVUVzUlVGQll5eGxRVUZsTEVOQlFVRXNSMEZCU1N4VFFVRlRMRXRCUVVzc1EwRkJRU3hEUVVGQk8wRkJRM1JFTEVWQlFVRXNUVUZCVFN4RFFVRkRMR05CUVVFc1JVRkJaMElzYVVKQlFXbENMRU5CUVVFc1IwRkJTU3hUUVVGVExFdEJRVXNzUTBGQlFTeERRVUZCTzBGQlF6RkVMRVZCUVVFc1RVRkJUU3hEUVVGRExHVkJRVUVzUlVGQmFVSXNhMEpCUVd0Q0xFTkJRVUVzUjBGQlNTeFRRVUZUTEVWQlFVVXNRMEZCUVN4RFFVRkJPMEZCUTNwRUxFVkJRVUVzVFVGQlRTeERRVUZETEcxQ1FVRkJMRVZCUVhGQ0xITkNRVUZ6UWl4RFFVRkJMRWRCUVVrc1UwRkJVeXhMUVVGTExFTkJRVUVzUTBGQlFUdEJRVVZ3UlN4RlFVRk5MRTFCUVVFc1EwRkJReXhuUWtGQmEwSXNSVUZCUVN4dFFrRkJiVUlzUTBGQlNTeEhRVUZCTEZGQlFVRTdRVUZCUVN4SlFVTTVReXhQUVVGUExFMUJRVk1zUjBGQlFTeE5RVUZCTEVOQlFVOHNUMEZCVHl4SFFVRkpMRU5CUVVFc1EwRkJReXhQUVVGUExFdEJRVThzUzBGQlFUdEJRWHBEY2tRc1RVRkJRVUVzU1VGQlFVRXNSMEZCUVVFc1EwRkJRVUU3UVVGNVEzZEVMRTFCUVVFc1QwRkJRU3huUWtGQlFTeERRVUZwUWl4UlFVRlBRU3hIUVVGQkxFZEJRVUVzVFVGQlFTeERRVUZQTEZkQlFWQXNTMEZCUVN4SlFVRkJMRWRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUZCTEVsQlFYRkNMRXRCUVUwc1EwRkJRU3hEUVVGQkxFTkJRVUU3UVVGQlFTeExRVUZETEVsQlFVa3NSVUZCUXp0QlFVRkJMRWRCUXk5SExFTkJRVUU3UVVGRFFTeEZRVUZOTEUxQlFVRXNXVUZCUVN4SFFVRmxMRzlDUVVGeFFpeERRVUZCTEUxQlFVRXNRMEZCVHl4UlFVRlJMRU5CUVVFc1EwRkJRVHRCUVVWNlJDeEZRVUZCTEUxQlFVMHNVVUZCVnl4SFFVRkJMR2RDUVVGQkxFTkJRV2xDTEUxQlFVOHNRMEZCUVN4SFFVRkJMRVZCUVVzc1QwRkJUeXhSUVVGUkxFTkJRVUVzUTBGQlFUdEJRVU0zUkN4RlFVRkJMRTFCUVUwc1lVRkJZU3huUWtGQmFVSXNRMEZCUVN4TlFVRkJMRU5CUVU4c1VVRkJUeXhGUVVGUExFZEJRVUVzVFVGQlFTeERRVUZCTEZkQlFVRXNTMEZCVUN4dFFrRkJjVUlzUTBGQlJTeERRVUZCTEVOQlFVRXNRMEZCUVR0QlFVVjZSU3hGUVVGTkxFMUJRVUVzWTBGQlFTeEhRVUZwUWl4UlFVRlJMRTFCUVUwc2MwSkJRVUVzUTBGQmRVSXNUVUZCVFN4RFFVRkhMRVZCUVVFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlFTeERRVUZCTzBGQlJUZEZMRVZCUVVFc1RVRkJUU3hyUWtGQmNVSXNSMEZCUVN4RFFVRkRMRXRCUVdVc1JVRkJRU3hGUVVGRkxGRkJRVGhDTEV0QlFVRTdRVUZEZWtVc1NVRkJRU3hKUVVGSkxGZEJRVmNzWTBGQlowSXNSVUZCUVR0QlFVTTNRaXhOUVVGQkxHdENRVUZCTEVOQlFXMUNMRXRCUVVzc1EwRkJRU3hEUVVGQk8wRkJRVUVzUzBGRE1VSTdRVUZEUVN4SlFVRlBMRTlCUVVFc1MwRkJRU3hEUVVGQk8wRkJRVUVzUjBGRFZDeERRVUZCTzBGQlJVRXNSVUZCVFN4TlFVRkJMR2RDUVVGQkxFZEJRVzFDTEVOQlFVTXNRMEZCZFVJc1MwRkJRVHRCUVhwRWJrUXNTVUZCUVN4SlFVRkJRU3hIUVVGQlF5eEZRVUZCUVN4SFFVRkJRU3hEUVVGQlFUdEJRVEJFU1N4SlFVRkJMRTFCUVUwc2JVSkJRVzFDTEUxQlFVOHNRMEZCUVN4UlFVRkJMRU5CUVVFN1FVRkRhRU1zU1VGQlFTeE5RVUZOTEdOQlFXTXNRMEZCUlN4RFFVRkJMRXRCUVVFc1EwRkJRVHRCUVVWMFFpeEpRVUZOTEUxQlFVRXNUVUZCUVN4SFFVRjVReXhGUVVGRkxGRkJRVUVzUlVGQlZTeFhRVUZaTEVWQlFVRXNRMEZCUVR0QlFVVjJSU3hKUVVGQkxFbEJRVWtzY1VKQlFYRkNMR2RDUVVGblFpeERRVUZCTEVsQlFVc3NRMEZCUXl4dlFrRkJRU3hEUVVGeFFpeFhRVUZYTEVOQlFVY3NSVUZCUVR0QlFVTm9SaXhOUVVGQkxFMUJRVUVzUTBGQlR5eExRVUZSTEVkQlFVRXNSVUZCUVN4RFFVRkJPMEZCUTJZc1RVRkJUeXhOUVVGQkxFTkJRVUVzVjBGQlFTeEhRVUZqTEVOQlFVTXNSVUZCUlN4RFFVRkJMRU5CUVVFN1FVRkRlRUlzVFVGQlFTeE5RVUZCTEVOQlFVOHNUVUZCVXl4SFFVRkJMRXRCUVVFc1EwRkJRU3hEUVVGQk8wRkJRMmhDTEUxQlFVRXNiVUpCUVVFc1EwRkJiMElzUlVGQlJTeERRVUZCTEVOQlFVRTdRVUZCUVN4TFFVVjRRaXhOUVVGQkxFbEJRVmNzUTBGQlF5eHZRa0ZCY1VJc1EwRkJRU3huUWtGQlowSXNTMEZCU3l4dlFrRkJjVUlzUTBGQlFTeFhRVUZYTEVOQlFVc3NTVUZCUVN4TlFVRkJMRU5CUVU4c1MwRkJUeXhGUVVGQk8wRkJRM1pITEUxQlFVOHNUVUZCUVN4RFFVRkJMRTFCUVVFc1IwRkJVeXhEUVVGRExFMUJRVUVzUTBGQlR5eExRVUZMTEVOQlFVRXNRMEZCUVR0QlFVTTNRaXhOUVVGdlFpeHRRa0ZCUVN4RFFVRkJPMEZCUVVFc1VVRkRiRUk3UVVGQlFTeFZRVU5GTEU5QlFVOHNUVUZCVHl4RFFVRkJMRXRCUVVFN1FVRkJRU3hWUVVOa0xFdEJRVUVzUlVGQlFTeERRVUZQUVN4SFFVRkJSQ3hIUVVGQlFTeERRVUZCUVN4SFFVRkJRU3hIUVVGQkxFMUJRVThzUTBGQlFTeFhRVUZCTEV0QlFWQXNaMEpCUVVGQkxFZEJRWEZDTEVOQlFVRXNRMEZCUVN4RFFVRkJMRXRCUVhKQ0xFbEJRVUZETEVkQlFVRkJMRWRCUVVGQkxFZEJRVEpDTEUxQlFVOHNRMEZCUVN4TFFVRkJPMEZCUVVFc1UwRkRNME03UVVGQlFTeFBRVU5FTEVOQlFVRXNRMEZCUVR0QlFVRkJMRXRCUTBnN1FVRkRRU3hKUVVGTkxFdEJRVUVzUTBGQlFTeGhRVUZCTEVOQlFXTXNVVUZCVVN4TlFVRk5MRU5CUVVFc1EwRkJRVHRCUVVGQkxFZEJRM0JETEVOQlFVRTdRVUZGUVN4RlFVRkJMRTFCUVUwc2IwSkJRWFZDTEVkQlFVRXNUMEZCUVR0QlFVRkJMRWxCUXpOQ0xFMUJRVTBzYTBKQlFVRXNRMEZCYlVJc1kwRkJaU3hEUVVGQkxHVkJRV1VzUTBGQlF5eERRVUZCTzBGQlFVRXNTVUZEZUVRc1EwRkJReXhuUWtGQlowSXNaVUZCWlN4RFFVRkJPMEZCUVVFc1IwRkRiRU1zUTBGQlFUdEJRVVZCTEVWQlFVRXNUVUZCVFN4bFFVRnJRaXhIUVVGQk8wRkJRVUVzU1VGRGRFSXNUMEZCVXl4RlFVRkJMRWxCUVVFN1FVRkJRU3hKUVVOVUxFdEJRVThzUlVGQlFTeG5Ra0ZCUVR0QlFVRkJMRWxCUTFBc1ZVRkJXU3hGUVVGQk8wRkJRVUVzVFVGRFZpeE5RVUZSTEVWQlFVRXNhMEpCUVVFN1FVRkJRU3hMUVVOV08wRkJRVUVzU1VGRFFTeHRRa0ZCY1VJc1JVRkJRU3hMUVVGQk8wRkJRVUVzU1VGRGNrSXNhVUpCUVcxQ0xFVkJRVUVzUzBGQlFUdEJRVUZCTEVsQlEyNUNMR1ZCUVdsQ0xFVkJRVUVzUzBGQlFUdEJRVUZCTEVsQlEycENMRkZCUVVFc1JVRkJWU3hEUVVGRExFTkJRWFZDTEV0QlFVRTdRVUZEYUVNc1RVRkJRU3h0UWtGQlFTeERRVUZ2UWl4RFFVRkRMRU5CUVVFc1EwRkJRVHRCUVVWeVFpeE5RVUZCTEVsQlFVa3NSVUZCUlN4SlFVRkxMRU5CUVVFc1EwRkJReXhMUVVFeVFpeExRVUZCTEV0QlFVRXNRMEZCVFN4VFFVRlRMRU5CUVVjc1JVRkJRVHRCUVVOMlJDeFJRVUZCTEd0Q1FVRkJMRU5CUVcxQ0xFVkJRVVVzUTBGQlFTeERRVUZCTzBGQlFVRXNUMEZEZGtJN1FVRkJRU3hMUVVOR08wRkJRVUVzU1VGRFFTeFJRVUZSTEUxQlFVMDdRVUYwUjJ4Q0xFMUJRVUVzU1VGQlFVUXNSMEZCUVVNc1JVRkJRVUVzUjBGQlFVRXNRMEZCUVVFN1FVRjFSMDBzVFVGQlFTeExRVUZCTEVOQlFVMHNZMEZCWXl4TlFVRlJMRVZCUVVFN1FVRkJRU3hSUVVNeFFpeExRVUZCTEVWQlFVRXNRMEZCVDBFc1QwRkJRVVFzUjBGQlFTeEhRVUZCTEdkQ1FVRkJMRU5CUVdsQ0xFOUJRV3BDTEVsQlFVRkJMRWRCUVVGQkxFdEJRVUZCTEVOQlFVRkJMRWRCUVVGQkxFZEJRVUZCTEVOQlFYRkNMRXRCUVhKQ0xFdEJRVUVzU1VGQlFTeEhRVUZCUXl4SFFVRTRRaXhIUVVGQkxFVkJRVUU3UVVGQlFTeFJRVVZ5UXl4UlFVRlJMR2RDUVVGcFFpeERRVUZCTEVkQlFVRXNRMEZCU1N4RFFVRkRMRTFCUVVFc1MwRkJiME1zVDBGQlR5eExRVUZMTEVOQlFVRTdRVUZCUVN4UlFVTTVSU3hoUVVGaExHZENRVUZwUWl4RFFVRkJMRWRCUVVFc1EwRkJTU3hEUVVGRExFMUJRVUVzUzBGQmIwTXNUMEZCVHl4TFFVRkxMRU5CUVVFN1FVRkJRU3hQUVVOd1JpeERRVUZCTEVOQlFVRTdRVUZCUVN4TFFVTklPMEZCUVVFc1IwRkRSaXhEUVVGQk8wRkJSVUVzUlVGQlFTeE5RVUZOTERoQ1FVTklMRXRCUVVFc1EwRkJRU3hoUVVGQkxFTkJRVUVzVFVGQlFTeEZRVUZCTEdOQlFVRXNRMEZCUVR0QlFVRkJMRWxCUTBNc1YwRkJWeXhGUVVGQkxFbEJRVUU3UVVGQlFTeEpRVU5ZTEdkQ1FVRnJRaXhGUVVGQkxFTkJRVUVzUlVGQlFTeEhRVUZCTEV0QlFVRXNRMEZCVFN4TFFVRk5MRU5CUVVFc1owSkJRVUVzUzBGQldpeEpRVUZuUXl4SFFVRkJMRVZCUVVFc1IwRkJRU3hKUVVGQk8wRkJRVUVzU1VGRGJFUXNhMEpCUVd0Q0xFTkJRVU1zVlVGQlFTeExRVUZsTEZWQlFWY3NRMEZCUVN4SlFVRkJMRWRCUVU4c1RVRkJVeXhIUVVGQkxFTkJRVUU3UVVGQlFTeEpRVU0zUkN4MVFrRkJkVUlzUlVGQlFTeEpRVUZCTzBGQlFVRXNTVUZEZGtJc2FVSkJRVUVzUlVGQmJVSXNRMEZCUXl4VlFVRkJMRXRCUVdVc1EwRkJjVUlzYTBKQlFVRXNSVUZCUVN4VlFVRkJMRU5CUVVFc1EwRkJRVHRCUVVGQkxFbEJRM2hFTEZGQlFVRXNSVUZCVlN4TlFVRk5MRXRCUVUwc1EwRkJRU3hSUVVGQk8wRkJRVUVzU1VGRGRFSXNWMEZCVnl4RlFVRkhMRU5CUVVFc1RVRkJRU3hEUVVGUExFOUJRVThzV1VGQlpTeEhRVUZCTEUxQlFVRXNRMEZCVHl4blFrRkJaMElzUzBGQlV5eERRVUZCTEVOQlFVRTdRVUZCUVN4SlFVTXpSU3hMUVVGTkxFVkJRVUVzVFVGQlFUdEJRVUZCTEVsQlEwNHNTMEZCVHl4RlFVRkJMRlZCUVVFN1FVRkJRU3hKUVVOUUxGbEJRV01zUlVGQlFTeFZRVUZCTzBGQlFVRXNTVUZEWkN4WFFVRmhMRVZCUVVFc1kwRkJRVHRCUVVGQkxFbEJRMklzVDBGQlV5eEZRVUZCTEc5Q1FVRkJPMEZCUVVFc1NVRkRWQ3hWUVVGWkxFVkJRVUVzWlVGQlFUdEJRVUZCTEVsQlExb3NZVUZCWlN4RlFVRkJMR3RDUVVGQk8wRkJRVUVzU1VGRFppeFJRVUZCTEVWQlFWVXNRMEZCUXl4RFFVRk5MRXRCUVVFN1FVRkRaaXhOUVVGQkxFdEJRVUVzUTBGQlRTeGpRVUZqTEUxQlFWRXNSVUZCUVR0QlFVRkJMRkZCUXpGQ0xFOUJRVThzUTBGQlJTeERRVUZCTEV0QlFVRTdRVUZCUVN4UlFVTlVMRmRCUVVFc1JVRkJZU3hGUVVGRkxFdEJRVkVzUjBGQlFTeERRVUZETEVWQlFVVXNTMEZCU3l4RFFVRkJMRWRCUVVrc1EwRkJReXhEUVVGQkxFTkJRVVVzUzBGQlN5eERRVUZCTzBGQlFVRXNUMEZETlVNc1EwRkJRU3hEUVVGQk8wRkJSVVFzVFVGQlNTeEpRVUZCTEcxQ1FVRkJMRXRCUVhkQ0xFVkJRVVVzVTBGQlZ5eEZRVUZCTzBGQlEzWkRMRkZCUVVFc2MwSkJRVUVzUTBGQmRVSXNSVUZCUlN4VFFVRlRMRU5CUVVFc1EwRkJRVHRCUVVGQkxFOUJRM0JETzBGQlFVRXNTMEZEUmp0QlFVRkJMRWxCU1VFc1RVRkJRU3hGUVVGUkxHZENRVUZuUWl4RFFVRkRMR1ZCUVVFN1FVRkJRU3hKUVVONlFpeFRRVUZYTEVWQlFVRXNaVUZCUVR0QlFVRkJMRWxCUTFnc1pVRkJhVUlzUlVGQlFTeEpRVUZCTzBGQlFVRXNTVUZEYWtJc1dVRkJXU3haUVVGWk8wRkJhRW81UWl4TlFVRkJSQ3hKUVVGQlFTeEhRVUZCUVN4RFFVRkJRVHRCUVdsS1VTeE5RVUZCTEd0Q1FVRkJMRU5CUVcxQ0xFbEJRVWtzUTBGQlFTeERRVUZCTzBGQlEzWkNMRTFCUVVFc1pVRkJRU3hEUVVGblFpeEpRVUZKTEVOQlFVRXNRMEZCUVR0QlFVTndRaXhOUVVGQkxFMUJRVTFGTEU5QlFWTXNSMEZCUVN4TlFVRk5MRXRCUVUwc1EwRkJRU3hoUVVGQkxFTkJRV01zVFVGQlRTeERRVUZCTEVOQlFVRTdRVUZETDBNc1RVRkJRU3hyUWtGQlFTeERRVUZ0UWl4TFFVRkxMRU5CUVVFc1EwRkJRVHRCUVVONFFpeE5RVUZCTEZOQlFVRXNRMEZCVlVFc1QwRkJUU3hEUVVGQkxFTkJRVUU3UVVGRGFFSXNUVUZCUVN4SlFVRkpMRzFDUVVGeFFpeEZRVUZCTzBGQlEzWkNMRkZCUVVFc2EwSkJRVUVzUTBGQlFTeERRVUZ0UWtZc1IwRkJRU3hIUVVGQkxGVkJRVUVzU1VGQlFTeEpRVUZCTEVkQlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1ZVRkJRU3hEUVVGWkxFdEJRVm9zUzBGQlFTeEpRVUZCTEVkQlFVRkJMRTFCUVhGQ0xFVkJRVVVzUTBGQlFTeERRVUZCTzBGQlFVRXNUMEZETlVNN1FVRkJRU3hMUVVOR08wRkJRVUVzU1VGRFFTeGhRVUZoTEUxQlFVMDdRVUZEYWtJc1RVRkJRU3hsUVVGQkxFTkJRV2RDTEV0QlFVc3NRMEZCUVN4RFFVRkJPMEZCUTNKQ0xFMUJRVUVzYTBKQlFVRXNRMEZCYlVJc1JVRkJSU3hEUVVGQkxFTkJRVUU3UVVGQlFTeExRVU4yUWp0QlFVRkJMRWRCUVVFc1JVRkRTeXhuUWtGQlowSXNaVUZEZGtJc1EwRkJRU3hEUVVGQkxFTkJRVUU3UVVGSFJpeEZRVUZCTEUxQlFVMHNORUpCUTBnc1MwRkJRU3hEUVVGQkxHRkJRVUVzUTBGQlFTeE5RVUZCTEVWQlFVRTdRVUZCUVN4SlFVZERMRWRCUVVFc1JVRkJTeXhEUVVGSExFVkJRVUVzWlVGQlFTeEhRVUZyUWl4VFFVRlpMRWRCUVVFc1VVRkJRU3hEUVVGQkxFTkJRVUU3UVVGQlFTeEpRVU4wUXl4UlFVRkJMRVZCUVZVc1RVRkJUU3hMUVVGTkxFTkJRVUVzVVVGQlFUdEJRVUZCTEVsQlEzUkNMRmRCUVZjc1JVRkJSeXhEUVVGQkxFMUJRVUVzUTBGQlR5eExRVUZMTEZWQlFXRXNSMEZCUVN4TlFVRkJMRU5CUVU4c1owSkJRV2RDTEV0QlFWTXNRMEZCUVN4RFFVRkJPMEZCUVVFc1NVRkRka1VzUzBGQlRTeEZRVUZCTEUxQlFVRTdRVUZCUVN4SlFVTk9MR2RDUVVGclFpeEZRVUZCTEVOQlFVRXNSVUZCUVN4SFFVRkJMRXRCUVVFc1EwRkJUU3hMUVVGTkxFTkJRVUVzWjBKQlFVRXNTMEZCV2l4SlFVRm5ReXhIUVVGQkxFVkJRVUVzUjBGQlFTeEpRVUZCTzBGQlFVRXNTVUZEYkVRc1MwRkJUeXhGUVVGQkxGRkJRVUU3UVVGQlFTeEpRVU5RTEZkQlFXRXNSVUZCUVN4alFVRkJPMEZCUVVFc1NVRkRZaXhQUVVGQkxFVkJRVk1zYlVKQlFXMUNMRWxCUVVrc1EwRkJRVHRCUVVGQkxFbEJRMmhETEZGQlFVRXNSVUZCVlN4RFFVRkRMRU5CUVUwc1MwRkJRVHRCUVVObUxFMUJRVUVzUzBGQlFTeERRVUZOTEdOQlFXTXNUVUZCVVN4RlFVRkJPMEZCUVVFc1VVRkRNVUlzUzBGQlN5eERRVUZGTEVOQlFVRXNTMEZCUVR0QlFVRkJMRkZCUTFBc1ZVRkJWU3hEUVVGRkxFTkJRVUVzUzBGQlFUdEJRVUZCTEZGQlJWb3NTMEZCVHl4RlFVRkJMRVZCUVVFN1FVRkJRU3hSUVVOUUxGZEJRVUVzUlVGQllTeERRVUZETEVWQlFVVXNRMEZCUVR0QlFVRkJMRkZCUTJoQ0xFMUJRVkVzUlVGQlFTeExRVUZCTEVOQlFVRTdRVUZCUVN4UFFVTlVMRU5CUVVFc1EwRkJRVHRCUVVORUxFMUJRVUVzYlVKQlFVRXNRMEZCYjBJc1JVRkJSU3hEUVVGQkxFTkJRVUU3UVVGQlFTeExRVU40UWp0QlFVRkJMRWxCUTBFc1UwRkJRU3hGUVVGWExFOUJRVThzUjBGQlVTeExRVUZCTEVWQlFVRTdRVUZCUVN4SlFVa3hRaXhOUVVGQkxFVkJRVkVzWTBGQll5eERRVUZETEdGQlFVRTdRVUZCUVN4SlFVTjJRaXhUUVVGWExFVkJRVUVzWVVGQlFUdEJRVUZCTEVsQlExZ3NXVUZCV1N4WlFVRlpPMEZCUTNSQ0xFMUJRVUVzWVVGQlFTeERRVUZqTEVsQlFVa3NRMEZCUVN4RFFVRkJPMEZCUTJ4Q0xFMUJRVUVzWjBKQlFVRXNRMEZCYVVJc1NVRkJTU3hEUVVGQkxFTkJRVUU3UVVGRGNrSXNUVUZCUVN4TlFVRk5SeXhMUVVGUExFZEJRVUVzVFVGQlRTeExRVUZOTEVOQlFVRXNVVUZCUVN4RFFVRlRMRTlCUVU4c1IwRkJSeXhEUVVGQkxFTkJRVUU3UVVGRE5VTXNUVUZCUVN4blFrRkJRU3hEUVVGcFFpeExRVUZMTEVOQlFVRXNRMEZCUVR0QlFVTjBRaXhOUVVGQkxFOUJRVUVzUTBGQlVVRXNTMEZCU1N4RFFVRkJMRU5CUVVFN1FVRkJRU3hMUVVOa08wRkJRVUVzU1VGRFFTeGhRVUZoTEUxQlFVMDdRVUZEYWtJc1RVRkJRU3hoUVVGQkxFTkJRV01zUzBGQlN5eERRVUZCTEVOQlFVRTdRVUZCUVN4TFFVTnlRanRCUVVGQkxFbEJRMEVzVVVGQlVTeE5RVUZOTzBGQlExb3NUVUZCU1N4SlFVRkJMRTFCUVVFc1EwRkJUeXhSUVVGUkxFVkJRVWtzUlVGQlFUdEJRVU55UWl4UlFVRkJMRXRCUVVFc1EwRkJUU3hqUVVGakxFMUJRVTBzUTBGQlFTeERRVUZCTzBGQlFVRXNUMEZETlVJN1FVRkJRU3hMUVVOR08wRkJRVUVzU1VGRFFTeGxRVUZwUWl4RlFVRkJMRWxCUVVFN1FVRkJRU3hIUVVOdVFpeERRVUZCTEVOQlFVRTdRVUZIUml4RlFVRkJMRTFCUVUwc2FVTkJRMGdzUzBGQlFTeERRVUZCTEdGQlFVRXNRMEZCUVN4TlFVRkJMRVZCUVVFN1FVRkJRU3hKUVVORExGTkJRVUVzUlVGQlZ5eEZRVUZITEVOQlFVRXNUVUZCUVN4RFFVRlBMRkZCUVZVc1JVRkJRVHRCUVVGQkxFMUJRemRDTEVOQlFVTXNUMEZCVHl4aFFVRm5RaXhIUVVGQkxHTkJRVUU3UVVGQlFTeExRVU42UWl4RFFVRkJPMEZCUVVFc1NVRkRSQ3hQUVVGUExFMUJRVThzUTBGQlFTeFJRVUZCTzBGQlFVRXNTVUZEWkN4UlFVRkJMRVZCUVZVc1RVRkJUU3hMUVVGTkxFTkJRVUVzVVVGQlFUdEJRVUZCTEVsQlEzUkNMRTlCUVVFc1JVRkJVeXhOUVVGTkxHRkJRV01zUlVGQlFUdEJRVUZCTEVsQlF6ZENMRkZCUVZVc1JVRkJRU3huUWtGQlFUdEJRVUZCTEVsQlExWXNXVUZCV1N4TlFVRk5PMEZCUTJoQ0xFMUJRVUVzYVVKQlFVRXNRMEZCYTBJc1NVRkJTU3hEUVVGQkxFTkJRVUU3UVVGQlFTeExRVU40UWp0QlFVRkJMRWxCUTBFc1lVRkJZU3hOUVVGTk8wRkJRMnBDTEUxQlFVRXNhVUpCUVVFc1EwRkJhMElzUzBGQlN5eERRVUZCTEVOQlFVRTdRVUZCUVN4TFFVTjZRanRCUVVGQkxFZEJRMFlzUTBGQlFTeERRVUZCTzBGQlIwWXNSVUZCU1N4SlFVRkJMRXRCUVVFc1EwRkJUU3hMUVVGTkxFTkJRVUVzVFVGQlFTeExRVUZYTEZWQlFWa3NSVUZCUVR0QlFVTnlReXhKUVVGQkxFbEJRVWtzVDBGQlR5eEhRVUZMTEVWQlFVRTdRVUZEWkN4TlFVRkJMRTFCUVUwc2QwSkJRMGdzUzBGQlFTeERRVUZCTEdGQlFVRXNRMEZCUVN4aFFVRkJMRVZCUVVFN1FVRkJRU3hSUVVGakxFMUJRVThzUlVGQlFTeFZRVUZCTzBGQlFVRXNVVUZCVnl4TFFVRkJMRVZCUVVFc1EwRkJUeXhGUVVGUExFZEJRVUVzVFVGQlFTeERRVUZCTEVkQlFVRXNTMEZCVUN4SlFVRmpMRWRCUVVFc1JVRkJRU3hIUVVGQkxFVkJRVUU3UVVGQlFTeFJRVUZKTEZGQlFWVXNSVUZCUVN4TlFVRk5MRXRCUVUwc1EwRkJRU3hoUVVGQkxFTkJRV01zVFVGQlRTeERRVUZCTzBGQlFVRXNUMEZCUnl4RFFVRkJMRU5CUVVFN1FVRkhla2NzVFVGQlFTeDFRa0ZEUnl4TFFVRkJMRU5CUVVFc1lVRkJRU3hEUVVGQkxFdEJRVUVzUlVGQlFUdEJRVUZCTEZGQlFVMHNTMEZCUVR0QlFVRkJMRkZCUVdNc1lVRkJRU3hGUVVGaExHVkJRV1VzVFVGQlR5eERRVUZCTEVkQlFVRXNRMEZCUVN4RFFVRkJPMEZCUVVFc1VVRkJUeXhYUVVGWExFMUJRVThzUTBGQlFTeExRVUZCTzBGQlFVRXNUMEZCUVN4clFrRkRPVVVzUzBGQlFTeERRVUZCTEdGQlFVRXNRMEZCUVN4TFFVRkJMRVZCUVVFN1FVRkJRU3hSUVVGSkxGZEJRVmNzVFVGQlR5eERRVUZCTEU5QlFVRTdRVUZCUVN4UFFVTndRaXhGUVVGQkxHTkJRVUVzUlVGRFFTeFhRVU5JTEVOQlEwWXNRMEZCUVN4RFFVRkJPMEZCUVVFc1MwRkZSeXhOUVVGQk8wRkJRMHdzVFVGQlFTeDFRa0ZEUnl4TFFVRkJMRU5CUVVFc1lVRkJRU3hEUVVGQkxFdEJRVUVzUlVGQlFUdEJRVUZCTEZGQlFVMHNTMEZCVHl4RlFVRkJMR05CUVVFN1FVRkJRU3hSUVVGblFpeGhRVUZCTEVWQlFXRXNaVUZCWlN4TlFVRlBMRU5CUVVFc1IwRkJRU3hEUVVGQkxFTkJRVUU3UVVGQlFTeFJRVUZQTEZkQlFWY3NUVUZCVHl4RFFVRkJMRXRCUVVFN1FVRkJRU3hQUVVGQkxFVkJRM1pHTEZOQlEwZ3NRMEZCUVN4RFFVRkJPMEZCUVVFc1MwRkZTanRCUVVGQkxFZEJRMFk3UVVGRlFTeEZRVUZCTEhWQ1FVTkhMRXRCUVVFc1EwRkJRU3hoUVVGQkxFTkJRVUVzUzBGQlFTeEZRVUZCTzBGQlFVRXNTVUZCU1N4WFFVRlhMRTFCUVU4c1EwRkJRU3hQUVVGQk8wRkJRVUVzU1VGQlV5eGhRVUZCTEVWQlFXRXNaVUZCWlN4TlFVRlBMRU5CUVVFc1IwRkJRU3hEUVVGQkxFTkJRVUU3UVVGQlFTeEhRVU5vUlN4RlFVRkJMRk5CUVVFc1JVRkRRU3hqUVVOQkxFVkJRVUVzVjBGQlFTeHJRa0ZEUVN4TFFVRkJMRU5CUVVFc1lVRkJRU3hEUVVGQkxFMUJRVUVzUlVGQlFUdEJRVUZCTEVsQlEwTXNUMEZCVVN4RlFVRkJMRmRCUVVFN1FVRkJRU3hKUVVOU0xGbEJRVmNzUlVGQlFTeGxRVUZCTzBGQlFVRXNTVUZEV0N4TFFVRk5MRVZCUVVFc1pVRkJRVHRCUVVGQkxFbEJRMDRzVjBGQlZ5eE5RVUZQTEVOQlFVRXNXVUZCUVR0QlFVRkJMRWxCUTJ4Q0xFbEJRVXNzUlVGQlFTeFBRVUZCTzBGQlFVRXNTVUZEVEN4aFFVRmhMRVZCUVVFc1EwRkJRU3h0UWtGQlFTeEZRVUZCTEVOQlFYTkNMRVZCUVU4c1IwRkJRU3hOUVVGQkxFTkJRVUVzUjBGQlFTeExRVUZRTEVsQlFXTXNSMEZCUVN4RlFVRkJMRWRCUVVFc1JVRkJRU3hEUVVGQkxFTkJRVUU3UVVGQlFTeEpRVU5xUkN4UFFVRlRMRVZCUVVFc1RVRkJUU3hMUVVGTkxFTkJRVUVzWVVGQlFTeERRVUZqTEUxQlFVMHNRMEZCUVR0QlFVRkJMRWRCUXpORExFTkJRMFlzUTBGQlFTeERRVUZCTzBGQlJVb3NRMEZCUVR0QlFVVkJMRTFCUVUwc1UwRkJRU3hIUVVGWkxFTkJRVU1zUzBGQk1FSXNUVUZCUVR0QlFVRkJMRVZCUXpORExFOUJRVThzUjBGQlNTeERRVUZCTzBGQlFVRXNTVUZEVkN4WlFVRmpMRVZCUVVFc1EwRkJRVHRCUVVGQkxFZEJRMllzUTBGQlFUdEJRVUZCTEVWQlEwUXNVMEZCVXl4SFFVRkpMRU5CUVVFN1FVRkJRU3hKUVVOWUxFOUJRVk1zUlVGQlFTeE5RVUZCTzBGQlFVRXNTVUZEVkN4TFFVRlBMRVZCUVVFN1FVRkJRU3hOUVVOTUxIRkNRVUYxUWl4RlFVRkJPMEZCUVVFc1VVRkZja0lzVlVGQldTeEZRVUZCTEVOQlFVRXNRMEZCUVR0QlFVRkJMRTlCUTJRN1FVRkJRU3hOUVVWQkxHVkJRV2xDTEVWQlFVRTdRVUZCUVN4UlFVTm1MRzlDUVVGelFpeEZRVUZCTEVOQlFVRTdRVUZCUVN4UlFVTjBRaXgxUWtGQmVVSXNSVUZCUVN4RFFVRkJPMEZCUVVFc1QwRkRNMEk3UVVGQlFTeE5RVVZCTEdOQlFXZENMRVZCUVVFN1FVRkJRU3hSUVVOa0xHMUNRVUZ4UWl4RlFVRkJMRU5CUVVFN1FVRkJRU3hSUVVOeVFpeHpRa0ZCZDBJc1JVRkJRU3hEUVVGQk8wRkJRVUVzVDBGRE1VSTdRVUZCUVN4TlFVVkJMSE5EUVVGM1F5eEZRVUZCTzBGQlFVRXNVVUZEZEVNc1dVRkJZeXhGUVVGQkxFTkJRVUU3UVVGQlFTeFBRVU5vUWp0QlFVRkJMRTFCUjBFc1VVRkJWU3hGUVVGQkxGVkJRVUU3UVVGQlFTeE5RVU5XTEUxQlFWRXNSVUZCUVN4RFFVRkJPMEZCUVVFc1RVRkpVaXhUUVVGWExFVkJRVUU3UVVGQlFTeFJRVU5VTEUxQlFWRXNSVUZCUVN4RFFVRkJPMEZCUVVFc1QwRkRWanRCUVVGQkxFMUJSVUVzWjBKQlFXdENMRVZCUVVFN1FVRkJRU3hSUVVOb1FpeE5RVUZSTEVWQlFVRXNRMEZCUVR0QlFVRkJMRTlCUTFZN1FVRkJRU3hMUVVOR08wRkJRVUVzUjBGRFJDeERRVUZCTzBGQlFVRXNSVUZEUkN4bFFVRmxMRWRCUVVrc1EwRkJRVHRCUVVGQkxFbEJRMnBDTEZGQlFVRXNSVUZCVlN4TFFVRk5MRU5CUVVFc1QwRkJRU3hEUVVGUkxFVkJRVVVzUTBGQlFUdEJRVUZCTEVkQlF6TkNMRU5CUVVFN1FVRkJRU3hGUVVORUxFOUJRVThzUjBGQlNTeERRVUZCTzBGQlFVRXNTVUZEVkN4VFFVRlhMRVZCUVVFc1UwRkJRVHRCUVVGQkxFbEJRMWdzVlVGQldTeEZRVUZCTEVOQlFVRTdRVUZCUVN4SlFVTmFMRkZCUVZVc1JVRkJRU3hOUVVGQk8wRkJRVUVzUjBGRFdDeERRVUZCTzBGQlFVRXNSVUZEUkN4TFFVRkxMRWRCUVVrc1EwRkJRVHRCUVVGQkxFbEJRMUFzVTBGQlZ5eEZRVUZCTEZOQlFVRTdRVUZCUVN4SlFVTllMRkZCUVZVc1JVRkJRU3hOUVVGQk8wRkJRVUVzU1VGRFZpeFZRVUZaTEVWQlFVRXNRMEZCUVR0QlFVRkJMRWRCUTJJc1EwRkJRVHRCUVVGQkxFVkJRMFFzVlVGQlZTeEhRVUZKTEVOQlFVRTdRVUZCUVN4SlFVTmFMRlZCUVZrc1JVRkJRU3hEUVVGQk8wRkJRVUVzU1VGRFdpeFRRVUZYTEVWQlFVRXNVMEZCUVR0QlFVRkJMRWRCUTFvc1EwRkJRVHRCUVVGQkxFVkJRMFFzWTBGQll5eEhRVUZKTEVOQlFVRTdRVUZCUVN4SlFVTm9RaXhYUVVGaExFVkJRVUVzUzBGQlFTeERRVUZOTEU5QlFWRXNRMEZCUVN4RFFVRkJMRWRCUVVrc1EwRkJReXhEUVVGQk8wRkJRVUVzU1VGRGFFTXNXVUZCWXl4RlFVRkJMRXRCUVVFc1EwRkJUU3hQUVVGUkxFTkJRVUVzUTBGQlFTeEhRVUZKTEVOQlFVTXNRMEZCUVR0QlFVRkJMRWxCUTJwRExGVkJRVmtzUlVGQlFTeE5RVUZCTzBGQlFVRXNTVUZEV2l4TFFVRkJMRVZCUVU4c1MwRkJUU3hEUVVGQkxFOUJRVUVzUTBGQlVTeERRVUZETEVOQlFVRTdRVUZCUVN4SlFVTjBRaXhYUVVGQkxFVkJRV0VzUzBGQlRTeERRVUZCTEU5QlFVRXNRMEZCVVN4RFFVRkRMRU5CUVVFN1FVRkJRU3hKUVVNMVFpeFRRVUZYTEVWQlFVRXNXVUZCUVR0QlFVRkJMRWxCUlZnc1VVRkJWU3hGUVVGQkxGVkJRVUU3UVVGQlFTeEpRVU5XTEVsQlFVMHNSVUZCUVN4TFFVRkJPMEZCUVVFc1IwRkRVQ3hEUVVGQk8wRkJRMGdzUTBGQlFTeERRVUZCT3pzN095SjlcbiJdLCJuYW1lcyI6WyJfYSIsIl9iIiwidmFsdWVzIiwia2V5cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWdCQSxTQUFTLGdCQUFBLENBQWlCLEtBQWEsS0FBd0MsRUFBQTtBQUM3RSxFQUFBLE9BQU8sUUFBUSxFQUNYLEdBQUE7SUFDRSxLQUFPLEVBQUEsR0FBQTtBQUNQLElBQUEsS0FBQSxFQUFPLEtBQVMsSUFBQSxHQUFBO0dBRWxCLEdBQUEsSUFBQSxDQUFBO0FBQ04sQ0FBQTtBQUVBLE1BQU0sYUFBYSxNQUFNLElBQUEsQ0FBQTtBQUVsQixTQUFTLG1CQUFvQixDQUFBLEVBQUUsTUFBUSxFQUFBLEtBQUEsRUFBZ0IsRUFBQTtBQTNCOUQsRUFBQSxJQUFBLEVBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQSxFQUFBLENBQUE7QUE0QlEsRUFBQSxNQUFBLE1BQUEsR0FBUyxXQUFXLFNBQVMsQ0FBQSxDQUFBO0FBRW5DLEVBQUEsTUFBTSxDQUFDLElBQU0sRUFBQSxPQUFPLENBQUksR0FBQSxRQUFBLENBQTRCLEVBQUUsQ0FBQSxDQUFBO0FBQ3RELEVBQUEsTUFBTSxDQUFDLE1BQVEsRUFBQSxTQUFTLENBQUksR0FBQSxRQUFBLENBQTRCLEVBQUUsQ0FBQSxDQUFBO0FBQzFELEVBQUEsTUFBTSxDQUFDLGFBQUEsRUFBZSxnQkFBZ0IsQ0FBQSxHQUFJLFNB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
|